atanks-6.6/0000755000175000017500000000000014114067416010772 5ustar apoapoatanks-6.6/tankgun/0000755000175000017500000000000012636021030012426 5ustar apoapoatanks-6.6/tankgun/4.bmp0000644000175000017500000000606612636021030013301 0ustar apoapoBM6 6(   llllllllllllll/lllllllllllllloo~~ )llllllllllllllllqq vv'7 (77777777777777 (lllllllllllllllloo uu+7 (lllllllllllllloo~~ )llllllllll.llllatanks-6.6/tankgun/9.bmp0000644000175000017500000000606612636021030013306 0ustar apoapoBM6 6(    iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiatanks-6.6/tankgun/0.bmp0000644000175000017500000000606612636021030013275 0ustar apoapoBM6 6(    ]h\!DDDAKq$1&gel(;48 ;J?Dl,AN48 MF%Y+_F3jIHl,B&%E MHF!N4jL%X*]A%W@ = k*AN48 LF%Y+_F3jIHl,el(;48 ;J?Dl,AKq$1&g]h\!DDDatanks-6.6/tankgun/7.bmp0000644000175000017500000000606612636021030013304 0ustar apoapoBM6 6(   fffatanks-6.6/tankgun/6.bmp0000644000175000017500000000606612636021030013303 0ustar apoapoBM6 6(    atanks-6.6/tankgun/2.bmp0000644000175000017500000000606612636021030013277 0ustar apoapoBM6 6(   SKSSKSSKSUJUMMMMMMMMM/SKSNLNMMMMMMMMMMMMMMMMMMMMM )SKSMMMOOOQQQSSSTTTVVVXXXZZZ[[[]]]___HHP (bbbfffffffffffffffffffffffffffffffff;;I (SKSNLNPPPRRRTTTWWWYYY\\\^^^```ccceeeLLT (SKSSKSMMMMMMMMMMMMMMMMMMMMN )SKSXHXMMMMMMMMM.SKSSKSatanks-6.6/tankgun/5.bmp0000644000175000017500000000606612636021030013302 0ustar apoapoBM6 6(   yqyqiqyqy{p{sssssssss/yqytrtssssssssssssssssss )yqysssuuuwwwyyyzzz|||}}} ( (yqytrtvvvxxxzzz}}}~~~ (yqyyqyssssssssssssssssss )yqy}n}ssssssrrr.umuh`hatanks-6.6/tankgun/3.bmp0000644000175000017500000000606612636021030013300 0ustar apoapoBM6 6(    UpUYmYB}B B.. 'j (n (00z (== 'KwK2F>YmYYmYatanks-6.6/tankgun/1.bmp0000644000175000017500000000606612636021030013276 0ustar apoapoBM6 6(    atanks-6.6/tankgun/8.bmp0000644000175000017500000000606612636021030013305 0ustar apoapoBM6 6(    I %%(())******************atanks-6.6/vs14/0000755000175000017500000000000013006377361011571 5ustar apoapoatanks-6.6/vs14/atanks.vcxproj.filters0000644000175000017500000002301613006377361016140 0ustar apoapo {4FC737F1-C7A5-4376-A066-2A32D752A2FF} cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx {93995380-89BD-4b04-88EB-625FBE52EBFB} h;hh;hpp;hxx;hm;inl;inc;xsd {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Header Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Source Files Resource Files Resource Files atanks-6.6/vs14/README_allegro.txt0000644000175000017500000000110113006377361014765 0ustar apoapoTo build atanks using Visual Studio 2015 you will need to adapt the include path settings to where your allegro includes are. Further replace alleg44.dll and alleg44_64.dll with the versions you want to use. Release 32bit uses alleg44.lib and alleg44.dll Release 64bit uses alleg44_64.lib and alleg44_64.dll Debug 32bit uses alleg44_d.lib and alleg44_d.dll Debug 64bit uses alleg44_64_d.lib and alleg44_64_d.dll As the windows build is originally not meant for debugging, only the release versions are included in git. You will need your own includes and libs! atanks-6.6/vs14/atanks.sln0000644000175000017500000000236113006377361013572 0ustar apoapo Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 14 VisualStudioVersion = 14.0.24720.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "atanks", "atanks.vcxproj", "{853BC2FB-859F-4E97-892B-389CE4555C53}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|x64 = Debug|x64 Debug|x86 = Debug|x86 Release|x64 = Release|x64 Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {853BC2FB-859F-4E97-892B-389CE4555C53}.Debug|x64.ActiveCfg = Debug|x64 {853BC2FB-859F-4E97-892B-389CE4555C53}.Debug|x64.Build.0 = Debug|x64 {853BC2FB-859F-4E97-892B-389CE4555C53}.Debug|x86.ActiveCfg = Debug|Win32 {853BC2FB-859F-4E97-892B-389CE4555C53}.Debug|x86.Build.0 = Debug|Win32 {853BC2FB-859F-4E97-892B-389CE4555C53}.Release|x64.ActiveCfg = Release|x64 {853BC2FB-859F-4E97-892B-389CE4555C53}.Release|x64.Build.0 = Release|x64 {853BC2FB-859F-4E97-892B-389CE4555C53}.Release|x86.ActiveCfg = Release|Win32 {853BC2FB-859F-4E97-892B-389CE4555C53}.Release|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal atanks-6.6/vs14/atanks.vcxproj0000644000175000017500000003364013006377361014475 0ustar apoapo Debug Win32 Release Win32 Debug x64 Release x64 {853BC2FB-859F-4E97-892B-389CE4555C53} Win32Proj atanks 8.1 Application true v140 MultiByte Application false v140 true MultiByte Application true v140 MultiByte Application false v140 true MultiByte true $(SolutionDir)..\ .obj\$(Platform)_$(Configuration)\ $(ProjectName)_d true $(SolutionDir)..\ .obj\$(Platform)_$(Configuration)\ $(ProjectName)_64_d false $(SolutionDir)..\ .obj\$(Platform)_$(Configuration)\ false $(SolutionDir)..\ .obj\$(Platform)_$(Configuration)\ $(ProjectName)_64 Level3 Disabled VERSION="6.5_rc1";DATA_DIR=".";ATANKS_DEBUG;WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) $(SolutionDir)..\..\allegro\include;$(SolutionDir)..\..\allegro_build\all\include MultiThreadedDebug Windows true alleg44_d.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) $(SolutionDir)..\ Level3 Disabled VERSION="6.5_rc1";DATA_DIR=".";ATANKS_DEBUG;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) $(SolutionDir)..\..\allegro\include;$(SolutionDir)..\..\allegro_build\all\include MultiThreadedDebug Windows true alleg44_64_d.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) $(SolutionDir)..\ Level3 MaxSpeed true true VERSION="6.5_rc1";DATA_DIR=".";WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) $(SolutionDir)..\..\allegro\include;$(SolutionDir)..\..\allegro_build\all\include Speed MultiThreaded Windows true true true alleg44.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) $(SolutionDir)..\ Level3 MaxSpeed true true VERSION="6.5_rc1";DATA_DIR=".";NDEBUG;_WINDOWS;%(PreprocessorDefinitions) $(SolutionDir)..\..\allegro\include;$(SolutionDir)..\..\allegro_build\all\include Speed MultiThreaded Windows true true true alleg44_64.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) $(SolutionDir)..\ atanks-6.6/obj/0000755000175000017500000000000014105060575011543 5ustar apoapoatanks-6.6/obj/.keep_dir0000644000175000017500000000000012636021030013302 0ustar apoapoatanks-6.6/atanks.desktop0000644000175000017500000000032014066454637013654 0ustar apoapo[Desktop Entry] Name=Atomic Tanks Comment=Destroy your opponents' tanks. Comment[es]=Destruye los tanques de tus oponentes. Type=Application Exec=atanks Icon=atanks Categories=Game;ArcadeGame; Terminal=false atanks-6.6/do_memcheck.sh0000755000175000017500000000024412636021030013554 0ustar apoapo#!/bin/bash /usr/bin/valgrind -v --trace-children=yes --tool=memcheck \ --track-origins=yes --leak-check=full --show-reachable=no \ --read-var-info=yes ./atanks atanks-6.6/gdb_memcheck.sh0000755000175000017500000000027712636021030013714 0ustar apoapo#!/bin/bash /usr/bin/valgrind -v --trace-children=yes --tool=memcheck \ --track-origins=yes --leak-check=full --show-reachable=no \ --read-var-info=yes --vgdb=full --vgdb-error=0 ./atanks atanks-6.6/atanks.ico0000644000175000017500000005640612636021030012747 0ustar apoapo( h    00hN"00(00 %^7( :5 T. TPd'5l^z:/<dn\p9P³cx1c4$U81D""MB7q6:IUS{N6ius>(  "JtJ t g""~~{{ȼ%s&[Iw&o&J&a&,m,;p;{{ij-^\?l`l&q #]/8XE^ =`H'f2'^32^>U`sAwu'`]!ZXIF=89.<5CARP ZX+`^KI6mkVT >)$f7'mC(//{:K*<7![YwRP 64 -*a"&!%',!]9HwUBY%F~Eu<f5#|+NiNhSjIMEaAxWQ#B%H[rá*l7~ }9!~'7x9>( @ +!L*FBX*dD)a^IhT*v1"(?sz`v붫ah3fx3svcvh8G167f{UTcsFstcUSG `D&$%KUUURR"%%RUUUUR""UV%U%"wt"U]"URwwtU" B[U" əərET 9qəKxxwwvgffk???x( @  ! "&"(% +-+0.2+ 87 53E A75 87 ;/&:-M JI?>T @A I& K!&D;DDH7F?K4ID \HIa#U%.Q4` #LKR=T95S3OKOPj,OMX5W;^!-QOSO$XAd EUEr!UWWU!WS,[B`7(b,3];2YK8XN4`60d+#YU%f*5^Cn%b>v@_?7d2[Y1d52f.aF1`F;ZW,\WAYZG`E {V[R)j//i4-bM+n(k8?^Z#`]6h@AgA+a^1b]VaT'o6 w+}z#s3@ec"|%QkO+hf(z+WhX{-+nSHjZ3jg0{/OoN(vG|:6z5#|5z? )tT'&VpS" 0~;(2{B,}>Xp[NuO//9|A8pl66Jom4qo`s[Fqq 2" O~K*+ c~adxw+O9:=4PVD}z 7E&(SdG"$BLnqB\eQ:Q?iedn$(28|Xh#Skv},4&-9cG#+:D3Z0:ry~@P;j¯_w`ވa^ϸip˴_thIhTtI8nKh$+$hzG$Jw6Z(Jj8.KG"_22X7K3u\^I8efMVE$$Zbv''NB>Ci5=c[ Q0HAS@=0AAPYQR4m];-;-!,,-,99L9]:(L]:#   ,,9]:/-9D#0%`4\,  ph}M9u sħ{澱ǥ1Oq*)5 "ɃFqߵ@pe}tyfWd&Ygk~gXoҚlr???p?( @ éCgC y NNH`HuUMTs_s_UoU%v%++iicxv7d7 gC5S5B` 7y7n K I b CbCMoMd*k*ss"LJ<\=qRHGl6g6nK"J" \ BfB%% _ ] .o.DVD1a1N|N.QO,cbCea8h? y u{}0d0TZT)f)b^(n(TaT/{/`_2f27`7)b)/c0TWGEF|{L3`]%XB^5g4"m@K6*GB<[Y'D=X7#b?6XLBZX7\K!b9Y48ZP9WN/`H.dK;YV*\ZR5qnRP,hf'_]$ZYRPUSONA?IHLJOMQOOLTRVTXVYW$_^WUDBBxvG~|"[Y&a^WUIGFD2*.! "" 7-&!/-=;OMONVT&`^ [YIpm.OM"SQE|z5mk"WU!XVIG;.R*#T(-[@3c`9yB9;7:2]=.#! 86KI!\Y"_]Eqo 53!UT:rp"YW'a_HF+ J,uI+|B{(zB|&#$/L2{C(a, +D@%_^SQ@^\A?OL1/0. 97'% ?y!  %%)781h6F@%WV><2jiNL?= 9774I( *(/&**2.G,3*,*-$+$"|6H9g"cnntRcX;aG"hOT<U=R?8 ^FOcq]ۊdx^ۋgls\_`b]t=k93^ED%:+ w/.<5D7H<:={9 C./@K8];F;Wy "%+j,np) z) 53*FZι"1Q6-`N&o5!}$+|7'tS's0.0-k/b|bWhY:~Ds|ðD̝ccPkPLtQKkXZpZ~~????x?(0`* ;4P !WS=aPV_X +t35rl :W]rU'{Pfig[Vf"&i{UTfb""&RfgUUfb B&fF""uT"[fb"&gr%Bev&eU[5)b""fdr!"egE'R"{S4Vff&iEVb&Ev$GE*6ipUPvtUWfuT'{38331131388N333333333S833;33331"DDwt34"Hfy@3>Q38wffffww3fffiip31yia^1̜ic4ۻ88v̬ɒMRvwgw'wg#d^!i4wT6fiffKfgxvfwvypfg'wxww fBBAK???(0`# $!-0 -&('+(.- 6: 8 4!A@32 41F'8-@:8<:E!>4O==G'?-%>3JMG*C'S@@ E4D?D>4D4&J&DEFBP -DD^ID] *R'Z2P1LHbNC MK,MJh_ \(+QCGMH4S; f&X<SP%_%mCQN.]-UR?W?DUE"c'f[FPSPi#t-VXi 3WUh)#[Q/W\ZXe4%[W-f1+\V5f1;c=I_Gt yWZX{ s#4_[E^^ca~RhN]b_7r8.w- x2,ig;rD$";hh0oWDig4kf(qW(lk/#yD6|6~=Wji gjh-04.zS2qpKyN!!4I$9:=ur>M;W{W 5vu2}`Gvspsq =/bRxv NS'(Bi0]yv47l{l5?~B:9i}| 4;p|WV0W9$&)[g1;M;8EMAeckmy':KDKUD*_!( D.6x.k2U-%a;jjUSPԀZzZڍfj\[dfftNNJfxJsya^sP070EgkNsb07by```nke?bE%II%Es]`%0La]KK/?sb%30Pzz;k+waP22u^Na6?j`;%%;gI;+"~a0^I2?K441Ct?sE7;PGaJwA%Pa7#;\o7okA&ڡFGR$Naa0~cfaakbuza?DL4L(Y99)8U[[r:dr:tS:d>SQ/Sr ʡ|,&,&l6,WWWlY6WY1|HHlWl6,QYUWlW9lC,  19&)9W&W|6)m(,|- &C&YY,CW&9C9CW.3VQ]\6,HllW &r|6 Xif}: WC6d&CCC)(Rw_EP_`~y (,YY6,R~ussgɚmCY&,,    puҺ , )6&6 hҺM'[[|C1"Ζ=>N!PcO_O<2OTTO==!ݷ> ¿ð›º¾> ¸{i`_w\@ ¿°gZ}{wpR~ bbz*[B{qzj{G5?Pc##.B v???(0` TUTRTRIWI?i?XXddſacaCTC**  4q4quqY[YJ^J sc__l??ptpqtqlnlZcZ^~^RTR"~" ubAFBOazNyNege:s: } xy!y!Q[QmpmH^]GNG~pR9>V>5Q5@Vq 88BeBvNCDc m WYWege>`>!f!$c$l}l`~}+DCGMGtP@-T-#H#5Zs1x1-u-eAYeY&J&G|XZXSSv[]K`KNPNWYWhkh 97MJEIG1v1|hQDCRg9Q9;};iH(M(BKVXV**^F\FBWBY<}L?&[P)\V97+[X975ec"KH<:.^[ 30;ji'HF?ge1RP0MK6^Z!PDA73XV0VU.MJJsq0VT4c`Cig .+;9WHzxJ)ec@><}{JG7utA@HFE/omHF(edLILKXV"\ZYX'`^"ZXJG![Y%\ZEB+hfXVSP"`]WU(ecOM0a_]urCA*ZXPN!YXA?VT+igKI8xwEC(`^86>;4usEC,lj31 GF#2"-    0 = 2!$#ECQODB ZX#[YDA6wtSP YW{Wlj <:"MK5hfd!URLJ4pnQP"][ <:>: E#JJ$O*.T[1W\8`D7:;=6z:0g2)8,  =;JHHFXU)fd$b`WUUxv/- @>B~}R0db0mkHE4sq@> ?>) <"e30mR7f;8o>;rg:j=L7878;<>BAh3VI?!.+#_]RP+kiKH6_]ff{x0.><RP>xuUSNL5usHF B@2e-yF3b 1wz; q s r y+X5O683s7( 80B?2rqB?%ZX7521 YVNL 641.31LJ97%# m %  ,(-0GHCD (a^SR#ZX_wu20BAJHHF.,#!/-,*8k= }&! ! !$(%())""+-:A#>6@8HGm~ .,>MKB@?=NK )(7! o= -66A.1263B4]6S12.//3,.&*2'[GE3Dhgƿ;7'YU,db&ZW1nl =;+ih <:POFE!M>PR[\XX؇_gYX׈_ݏqhh^`cf_banN~/[.[.,W>QSQJ8qmp&wtge^m,b h(h#^" ])D,##nn}~ghvjihtlqUYWYbcioS~?o)W%L@kwk)*):>9=N>K*_GE0eLDFF"QCC 4 #%((!8E " *%=%A#+!M ,#&'''0< 6D x,AJz{s|$8/0f28tG0yZ$y:!#xGqOk+!$)+0114/H/%'%7.)<{{,x4w4D4(D5,]V-`@#u'&y)0x1/zS(qX*k5./3w6)_+2P2HJH< qx$]hRwR!I!@!?!%U%%Y9;--INiN???atanks-6.6/atanks-4.3.spec0000644000175000017500000002501712636021030013423 0ustar apoapo%define name atanks %define version 4.3 %define release 1 %define prefix /usr Summary: A fun tank game, which plays like Scorched Earth. Name: %{name} Version: %{version} Release: %{release} License: GPL Group: Games Arcade Vendor: Jesse Smith URL: http://atanks.sourceforge.net/ Source0: http://atanks.sourceforge.net/downloads/%{name}-%{version}.tar.gz BuildArch: i386 #BuildRoot: /var/tmp/%{name}-root Provides: atanks %description Atomic Tanks is a simple tank game, similar to Scorched Earth or Worms, where small tanks use large weapons to destroy each other. %prep %setup %build make %install make install %clean rm -rf "$RPM_BUILD_ROOT" %files %{prefix}/games/bin/atanks /usr/share/games/atanks/README_ru.txt /usr/share/games/atanks/button/22.bmp /usr/share/games/atanks/button/19.bmp /usr/share/games/atanks/button/7.bmp /usr/share/games/atanks/button/1.bmp /usr/share/games/atanks/button/0.bmp /usr/share/games/atanks/button/6.bmp /usr/share/games/atanks/button/20.bmp /usr/share/games/atanks/button/10.bmp /usr/share/games/atanks/button/5.bmp /usr/share/games/atanks/button/2.bmp /usr/share/games/atanks/button/18.bmp /usr/share/games/atanks/button/23.bmp /usr/share/games/atanks/button/12.bmp /usr/share/games/atanks/button/13.bmp /usr/share/games/atanks/button/4.bmp /usr/share/games/atanks/button/17.bmp /usr/share/games/atanks/button/9.bmp /usr/share/games/atanks/button/11.bmp /usr/share/games/atanks/button/14.bmp /usr/share/games/atanks/button/8.bmp /usr/share/games/atanks/button/16.bmp /usr/share/games/atanks/button/15.bmp /usr/share/games/atanks/button/3.bmp /usr/share/games/atanks/button/21.bmp /usr/share/games/atanks/button/24.bmp /usr/share/games/atanks/button/25.bmp /usr/share/games/atanks/button/26.bmp /usr/share/games/atanks/button/27.bmp /usr/share/games/atanks/sound/0.wav /usr/share/games/atanks/sound/2.wav /usr/share/games/atanks/sound/3.wav /usr/share/games/atanks/sound/1.wav /usr/share/games/atanks/sound/11.wav /usr/share/games/atanks/sound/12.wav /usr/share/games/atanks/sound/10.wav /usr/share/games/atanks/sound/8.wav /usr/share/games/atanks/sound/5.wav /usr/share/games/atanks/sound/9.wav /usr/share/games/atanks/sound/6.wav /usr/share/games/atanks/sound/7.wav /usr/share/games/atanks/sound/4.wav /usr/share/games/atanks/atanks.ico /usr/share/games/atanks/missile/22.bmp /usr/share/games/atanks/missile/19.bmp /usr/share/games/atanks/missile/7.bmp /usr/share/games/atanks/missile/1.bmp /usr/share/games/atanks/missile/0.bmp /usr/share/games/atanks/missile/6.bmp /usr/share/games/atanks/missile/20.bmp /usr/share/games/atanks/missile/25.bmp /usr/share/games/atanks/missile/10.bmp /usr/share/games/atanks/missile/5.bmp /usr/share/games/atanks/missile/2.bmp /usr/share/games/atanks/missile/18.bmp /usr/share/games/atanks/missile/27.bmp /usr/share/games/atanks/missile/23.bmp /usr/share/games/atanks/missile/24.bmp /usr/share/games/atanks/missile/12.bmp /usr/share/games/atanks/missile/13.bmp /usr/share/games/atanks/missile/28.bmp /usr/share/games/atanks/missile/4.bmp /usr/share/games/atanks/missile/17.bmp /usr/share/games/atanks/missile/26.bmp /usr/share/games/atanks/missile/9.bmp /usr/share/games/atanks/missile/11.bmp /usr/share/games/atanks/missile/14.bmp /usr/share/games/atanks/missile/8.bmp /usr/share/games/atanks/missile/16.bmp /usr/share/games/atanks/missile/30.bmp /usr/share/games/atanks/missile/15.bmp /usr/share/games/atanks/missile/3.bmp /usr/share/games/atanks/missile/29.bmp /usr/share/games/atanks/missile/21.bmp /usr/share/games/atanks/Changelog /usr/share/games/atanks/atanks.png /usr/share/games/atanks/title/1.bmp /usr/share/games/atanks/title/0.bmp /usr/share/games/atanks/title/2.bmp /usr/share/games/atanks/title/4.bmp /usr/share/games/atanks/title/3.bmp /usr/share/games/atanks/unicode.dat /usr/share/games/atanks/text/weapons_de.txt /usr/share/games/atanks/text/retaliation_fr.txt /usr/share/games/atanks/text/weapons_fr.txt /usr/share/games/atanks/text/Help.txt /usr/share/games/atanks/text/ingame.pt_BR.txt /usr/share/games/atanks/text/war_quotes_ru.txt /usr/share/games/atanks/text/gloat.txt /usr/share/games/atanks/text/weapons.txt /usr/share/games/atanks/text/retaliation.txt /usr/share/games/atanks/text/ingame_sk.txt /usr/share/games/atanks/text/instr_de.txt /usr/share/games/atanks/text/kamikaze.pt_BR.txt /usr/share/games/atanks/text/weapons.pt_BR.txt /usr/share/games/atanks/text/war_quotes.txt /usr/share/games/atanks/text/Help.pt_BR.txt /usr/share/games/atanks/text/Help_fr.txt /usr/share/games/atanks/text/suicide_fr.txt /usr/share/games/atanks/text/weapons_ru.txt /usr/share/games/atanks/text/gloat_ru.txt /usr/share/games/atanks/text/gloat_sk.txt /usr/share/games/atanks/text/ingame_de.txt /usr/share/games/atanks/text/revenge_de.txt /usr/share/games/atanks/text/ingame_ru.txt /usr/share/games/atanks/text/retaliation.pt_BR.txt /usr/share/games/atanks/text/revenge_sk.txt /usr/share/games/atanks/text/suicide.txt /usr/share/games/atanks/text/kamikaze_ru.txt /usr/share/games/atanks/text/retaliation_ru.txt /usr/share/games/atanks/text/instr_sk.txt /usr/share/games/atanks/text/suicide.pt_BR.txt /usr/share/games/atanks/text/instr.pt_BR.txt /usr/share/games/atanks/text/kamikaze.txt /usr/share/games/atanks/text/gloat_fr.txt /usr/share/games/atanks/text/revenge.pt_BR.txt /usr/share/games/atanks/text/instr_ru.txt /usr/share/games/atanks/text/instr_fr.txt /usr/share/games/atanks/text/revenge_fr.txt /usr/share/games/atanks/text/revenge.txt /usr/share/games/atanks/text/retaliation_de.txt /usr/share/games/atanks/text/retaliation_sk.txt /usr/share/games/atanks/text/kamikaze_fr.txt /usr/share/games/atanks/text/suicide_sk.txt /usr/share/games/atanks/text/suicide_ru.txt /usr/share/games/atanks/text/revenge_ru.txt /usr/share/games/atanks/text/weapons_sk.txt /usr/share/games/atanks/text/kamikaze_sk.txt /usr/share/games/atanks/text/kamikaze_de.txt /usr/share/games/atanks/text/instr.txt /usr/share/games/atanks/text/gloat_de.txt /usr/share/games/atanks/text/ingame_fr.txt /usr/share/games/atanks/text/gloat.pt_BR.txt /usr/share/games/atanks/text/suicide_de.txt /usr/share/games/atanks/text/Help_ru.txt /usr/share/games/atanks/text/ingame.txt /usr/share/games/atanks/tank/7.bmp /usr/share/games/atanks/tank/1.bmp /usr/share/games/atanks/tank/0.bmp /usr/share/games/atanks/tank/6.bmp /usr/share/games/atanks/tank/10.bmp /usr/share/games/atanks/tank/5.bmp /usr/share/games/atanks/tank/2.bmp /usr/share/games/atanks/tank/4.bmp /usr/share/games/atanks/tank/9.bmp /usr/share/games/atanks/tank/8.bmp /usr/share/games/atanks/tank/11.bmp /usr/share/games/atanks/tank/12.bmp /usr/share/games/atanks/tank/13.bmp /usr/share/games/atanks/tank/14.bmp /usr/share/games/atanks/tank/3.bmp /usr/share/games/atanks/atanks.desktop /usr/share/games/atanks/COPYING /usr/share/games/atanks/Makefile /usr/share/games/atanks/TODO /usr/share/games/atanks/misc/7.bmp /usr/share/games/atanks/misc/1.bmp /usr/share/games/atanks/misc/0.bmp /usr/share/games/atanks/misc/6.bmp /usr/share/games/atanks/misc/10.bmp /usr/share/games/atanks/misc/5.bmp /usr/share/games/atanks/misc/2.bmp /usr/share/games/atanks/misc/12.bmp /usr/share/games/atanks/misc/13.bmp /usr/share/games/atanks/misc/4.bmp /usr/share/games/atanks/misc/9.bmp /usr/share/games/atanks/misc/11.bmp /usr/share/games/atanks/misc/14.bmp /usr/share/games/atanks/misc/8.bmp /usr/share/games/atanks/misc/16.bmp /usr/share/games/atanks/misc/15.bmp /usr/share/games/atanks/misc/3.bmp /usr/share/games/atanks/README /usr/share/games/atanks/stock/22.bmp /usr/share/games/atanks/stock/19.bmp /usr/share/games/atanks/stock/35.bmp /usr/share/games/atanks/stock/7.bmp /usr/share/games/atanks/stock/31.bmp /usr/share/games/atanks/stock/1.bmp /usr/share/games/atanks/stock/0.bmp /usr/share/games/atanks/stock/69.bmp /usr/share/games/atanks/stock/49.bmp /usr/share/games/atanks/stock/56.bmp /usr/share/games/atanks/stock/6.bmp /usr/share/games/atanks/stock/48.bmp /usr/share/games/atanks/stock/53.bmp /usr/share/games/atanks/stock/55.bmp /usr/share/games/atanks/stock/51.bmp /usr/share/games/atanks/stock/20.bmp /usr/share/games/atanks/stock/65.bmp /usr/share/games/atanks/stock/25.bmp /usr/share/games/atanks/stock/43.bmp /usr/share/games/atanks/stock/78.bmp /usr/share/games/atanks/stock/34.bmp /usr/share/games/atanks/stock/57.bmp /usr/share/games/atanks/stock/10.bmp /usr/share/games/atanks/stock/33.bmp /usr/share/games/atanks/stock/71.bmp /usr/share/games/atanks/stock/45.bmp /usr/share/games/atanks/stock/5.bmp /usr/share/games/atanks/stock/2.bmp /usr/share/games/atanks/stock/74.bmp /usr/share/games/atanks/stock/18.bmp /usr/share/games/atanks/stock/32.bmp /usr/share/games/atanks/stock/27.bmp /usr/share/games/atanks/stock/23.bmp /usr/share/games/atanks/stock/24.bmp /usr/share/games/atanks/stock/12.bmp /usr/share/games/atanks/stock/76.bmp /usr/share/games/atanks/stock/39.bmp /usr/share/games/atanks/stock/13.bmp /usr/share/games/atanks/stock/73.bmp /usr/share/games/atanks/stock/28.bmp /usr/share/games/atanks/stock/4.bmp /usr/share/games/atanks/stock/58.bmp /usr/share/games/atanks/stock/36.bmp /usr/share/games/atanks/stock/17.bmp /usr/share/games/atanks/stock/26.bmp /usr/share/games/atanks/stock/42.bmp /usr/share/games/atanks/stock/40.bmp /usr/share/games/atanks/stock/68.bmp /usr/share/games/atanks/stock/59.bmp /usr/share/games/atanks/stock/46.bmp /usr/share/games/atanks/stock/9.bmp /usr/share/games/atanks/stock/54.bmp /usr/share/games/atanks/stock/11.bmp /usr/share/games/atanks/stock/14.bmp /usr/share/games/atanks/stock/44.bmp /usr/share/games/atanks/stock/8.bmp /usr/share/games/atanks/stock/41.bmp /usr/share/games/atanks/stock/16.bmp /usr/share/games/atanks/stock/30.bmp /usr/share/games/atanks/stock/61.bmp /usr/share/games/atanks/stock/75.bmp /usr/share/games/atanks/stock/15.bmp /usr/share/games/atanks/stock/64.bmp /usr/share/games/atanks/stock/63.bmp /usr/share/games/atanks/stock/66.bmp /usr/share/games/atanks/stock/47.bmp /usr/share/games/atanks/stock/37.bmp /usr/share/games/atanks/stock/3.bmp /usr/share/games/atanks/stock/70.bmp /usr/share/games/atanks/stock/29.bmp /usr/share/games/atanks/stock/21.bmp /usr/share/games/atanks/stock/62.bmp /usr/share/games/atanks/stock/38.bmp /usr/share/games/atanks/stock/77.bmp /usr/share/games/atanks/stock/52.bmp /usr/share/games/atanks/stock/60.bmp /usr/share/games/atanks/stock/72.bmp /usr/share/games/atanks/stock/50.bmp /usr/share/games/atanks/stock/67.bmp /usr/share/games/atanks/credits.txt /usr/share/games/atanks/tankgun/1.bmp /usr/share/games/atanks/tankgun/0.bmp /usr/share/games/atanks/tankgun/2.bmp /usr/share/games/atanks/tankgun/3.bmp /usr/share/games/atanks/tankgun/4.bmp /usr/share/games/atanks/tankgun/5.bmp /usr/share/games/atanks/tankgun/6.bmp /usr/share/games/atanks/tankgun/7.bmp %changelog atanks-6.6/allegro.supp0000644000175000017500000000636212636021030013324 0ustar apoapo{ Ignore_glibc_conditional_jump Memcheck:Cond fun:* fun:* fun:* fun:* fun:* fun:* fun:dl_* fun:_dl_* fun:_dl_* obj:/lib64/ld-*.so } { Ignore_install_sound_mempool_called Memcheck:Leak match-leak-kinds: possible fun:* fun:* fun:* fun:* fun:* fun:* fun:* fun:* obj:* fun:install_* fun:_Z18init_game_settingsP10GLOBALDATA fun:main } { Ignore_install_mempool_called_short Memcheck:Leak match-leak-kinds: possible fun:* fun:* fun:* fun:* fun:* obj:* fun:install_* fun:_Z18init_game_settingsP10GLOBALDATA fun:main } { Ignore_install_mempool_called_short_def Memcheck:Leak match-leak-kinds: definite fun:* fun:* fun:* fun:* fun:* obj:* fun:install_* fun:_Z18init_game_settingsP10GLOBALDATA fun:main } { Ignore_install_mempool_called_short_noobj_def Memcheck:Leak match-leak-kinds: definite fun:* fun:* fun:* fun:* fun:* fun:install_* fun:_Z18init_game_settingsP10GLOBALDATA fun:main } { Ignore_install_mempool_called_mid Memcheck:Leak match-leak-kinds: possible fun:* fun:* fun:* fun:* fun:* fun:* obj:* fun:install_* fun:_Z18init_game_settingsP10GLOBALDATA fun:main } { Ignore_install_mempool_inside Memcheck:Leak match-leak-kinds: possible fun:* fun:* fun:* fun:* fun:* fun:* fun:* fun:* fun:* fun:snd_pcm_open obj:* fun:install_* } { Ignore_install_sound_pcm_open_config_load Memcheck:Leak match-leak-kinds: possible fun:* fun:* fun:* fun:* fun:* fun:* fun:* fun:* fun:* fun:* fun:* fun:snd_pcm_open } { Ignore_install_sound_pcm_open_config_parse Memcheck:Leak match-leak-kinds: possible fun:* fun:* fun:* fun:* fun:* fun:* fun:* fun:* fun:* fun:* fun:* fun:snd_config_* } { Ignore_snd_open_on_unknown_obj Memcheck:Leak match-leak-kinds: possible fun:* fun:* fun:* fun:* fun:* fun:* fun:* fun:* fun:* fun:* fun:snd_pcm_open obj:* } { Ignore_install_from_main_with_obj_def Memcheck:Leak match-leak-kinds: definite fun:* fun:* obj:* fun:install_* fun:_Z18init_game_settingsP10GLOBALDATA fun:main } { Ignore_install_from_main_with_obj Memcheck:Leak match-leak-kinds: possible fun:* fun:* fun:* fun:* obj:* fun:install_* fun:_Z18init_game_settingsP10GLOBALDATA fun:main } { Ignore_install_from_init_game_setting_with_obj Memcheck:Leak match-leak-kinds: possible fun:* fun:* fun:* fun:* fun:* fun:* fun:* fun:* fun:* obj:* fun:install_* fun:_Z18init_game_settingsP10GLOBALDATA } { Ignore_allegro_back_pool Memcheck:Leak match-leak-kinds: definite fun:malloc fun:_al_malloc obj:* fun:install_* fun:_Z18init_game_settingsP10GLOBALDATA fun:main } { Ignore_X_init_realloc Memcheck:Leak match-leak-kinds: definite fun:realloc fun:add_codeset.isra.10 fun:load_generic fun:initialize fun:_XlcCreateLC fun:_XlcDefaultLoader fun:_XOpenLC fun:_XrmInitParseInfo fun:NewDatabase fun:XrmGetStringDatabase fun:InitDefaults fun:XGetDefault } atanks-6.6/credits.txt0000644000175000017500000000316514066454637013210 0ustar apoapoAtomic Tanks Coding Tom Hudson (tom@singular.org.uk) Justin Ronco (jronco@users.sourceforge.net) eden99_99 (eden99_99@users.sourceforge.net) Jesse Smith (jessefrgsmith@yahoo.ca) Mike Wilson (CaptainNeeda+atanks@gmail.com) Kevin (sylikc@gmail.com) Sven Eden (yamakuzure@users.sourceforge.net) Bruno Victal (ubr47k@users.sourceforge.net) Bill Buerger Graphics Tom Hudson (tom@singular.org.uk) CtHx Documentation Justin Soles (wordsamurai@users.sourceforge.net) Jesse Smith (jessefrgsmith@yahoo.ca) Translations Roland (German) Yama (German) MyO (Russian) Sergei (Russian) Fred Maranhão (Portuguese) Olivier (French) Jozef (Slovak) Roby Alice (Italian) Ideas This is by no means an exhaustive list and thanks go to everyone who has contributed ideas to the project. Patrick Bogen (pdbogen@users.sourceforge.net) Rocky Dean Pulley (rdpulley@users.sourceforge.net) Mr. Mips (mrmips@users.sourceforge.net) Justin Ronco (jronco@users.sourceforge.net) Joshua Kruck (krujos@users.sourceforge.net) Neil (vossman77@users.sourceforge.net) Tom Hudson (tom@singular.org.uk) Sound Tom Hudson (tom@singular.org.uk) Original Code & Graphics Steve Condie (stevante@yahoo.com) Juraj Michalek (georgik@host.sk) Original Graphics Trevor Paulsen (supergass@aol.com) Ricky Galati (benogalati@yahoo.com) Original Sound Unknown Webmasters Mike Volmar (mvolmar@users.sourceforge.net) Tom Hudson (tom@singular.org.uk) Jesse Smith (jessefrgsmith@yahoo.ca) Any Other Role not listed Tom Hudson (tom@singular.org.uk) Allegro Shawn Hargreaves (shawn@talula.demon.co.uk) - https://liballeg.org Games for Linux: http://games.linux.sk Text Logos: http://www.cooltext.com atanks-6.6/misc/0000755000175000017500000000000012636021030011712 5ustar apoapoatanks-6.6/misc/10.bmp0000644000175000017500000000171612636021030012637 0ustar apoapoBM6(   wwwķ{{{Ȼ{{{̿{{{̿{{{{{{̿{{{̿{{{Ȼatanks-6.6/misc/4.bmp0000644000175000017500000000007212636021030012554 0ustar apoapoBM:6(  atanks-6.6/misc/9.bmp0000644000175000017500000025770612636021030012603 0ustar apoapoBM_6(,d_  6O-U{HmZzg{hkojnogkolgjopszkr{~~joc~tn~_lt^nneptZeievkstzvŀ{lli~gcb~cflp|ik{j{cwevb|gcjkzgwjp~{sxn|~{aiogp|pvxs|ztnxczepb~o|{w~vx|xvr|s~s~zrn|{„~tnki~kjl~jlojnogkolgjopszkr{~~joc~tn~_lt^nneptZeievkstzvŀ{lli~gcb~cflp|ik{j{cwevb|gcjkzgwjp~{sxn|~{aiogp|pvxs|ztnxczepb~o|{w~vx|xvr|s~s~zrn|{„~tnki~kjl~jlojnogkolgjopszkr{~~joc~tn~_lt^nneptZeievkstzvÅÁ|nrv끱 7M-cRydmrrq}jrrkornookkqwu}bos~}ivy^mi[ofns’Ӝ}v{iggzi}ggu^zfrum~quo}e}f~fgzeo}jrz}u{yr{z\eobs{sʬǤš~{zzqj{nn}{w}zu~{s~rvq{ĊʈĀyonmikonqsrq}jrrkornookkqwu}bos~}ivy^mi[ofns’Ӝ}v{iggzi}ggu^zfrum~quo}e}f~fgzeo}jrz}u{yr{z\eobs{sʬǤš~{zzqj{nn}{w}zu~{s~rvq{ĊʈĀyonmikonqsrq}jrrkornookkqwu}bos~}ivy^mi[ofns’Ӝ}wlq} Hi>tdpurvuwvurwz}|pl~„|uzuww}ky|e|kzyԠۣטψvvrhouoi~l~svvzƃ|smokmrmk}ȃȈysŽ~|i~}zͪ٬өȢřōƅ||||~}~pr|f}myz}|~şğw}uВԏԊ҄~yssymruywwrvuwvurwz}|pl~„|uzuww}ky|e|kzyԠۣטψvvrhouoi~l~svvzƃ|smokmrmk}ȃȈysŽ~|i~}zͪ٬өȢřōƅ||||~}~pr|f}myz}|~şğw}uВԏԊ҄~yssymruywwrvuwvurwz}|pl~„|uzuww}ky|e|kzyԠۣטψvxxw&dYsvvց~|~{|ҁҁʁ́Ӊύo~x۟駲줩䘙ք~~xuvv|ox|xs|؄Ճ{|v|y~ۄ܇ܐҏҏƃІЊӘӧǪ޶ᄇ䬶毬ܩ۞ܙҏՊ؇քyց{xv{|҇Ê~|Ɓ̊աҪϟ͖ϐͤǹͬܧ椩윣撘܉ه||x~ۇ؆؁yvց~|~{|ҁҁʁ́Ӊύo~x۟駲줩䘙ք~~xuvv|ox|xs|؄Ճ{|v|y~ۄ܇ܐҏҏƃІЊӘӧǪ޶ᄇ䬶毬ܩ۞ܙҏՊ؇քyց{xv{|҇Ê~|Ɓ̊աҪϟ͖ϐͤǹͬܧ椩윣撘܉ه||x~ۇ؆؁yvց~|~{|ҁҁʁ́Ӊύo~x۟駲줩䘙ք~⃛냱q9R0yfuڃڄچׁ׀ف݄րֆ҃ԃ׌ڑݖϔÑ꠨䖢Ꮯ߄{s}y܁{ـ߄}}݀}݁݁߄~߉ك߇~܄䌢ݏܒݖы҄ىܒ娹ᰶݹԵѵѹԳܳᳲĻ뽰᥯ߢԜ֚׎ԉ׌גܑׄ~ڃ{Ҁցݎڋׁ։ϒ̏ϋԀ}چחҢΥڤٗґרβõҶ嶽ꚤꎝ⋖݉ځ{݀{uvx}ـڀ}ڃڄچׁ׀ف݄րֆ҃ԃ׌ڑݖϔÑ꠨䖢Ꮯ߄{s}y܁{ـ߄}}݀}݁݁߄~߉ك߇~܄䌢ݏܒݖы҄ىܒ娹ᰶݹԵѵѹԳܳᳲĻ뽰᥯ߢԜ֚׎ԉ׌גܑׄ~ڃ{Ҁցݎڋׁ։ϒ̏ϋԀ}چחҢΥڤٗґרβõҶ嶽ꚤꎝ⋖݉ځ{݀{uvx}ـڀ}ڃڄچׁ׀ف݄րֆ҃ԃ׌ڑݖϔÑ꠨䖢Ꮯ߄{z녑~| YLt`mnr}mmjnurqvx~}vzlidjjx}ęϡϟӚЏȊzzl|i|jputu}t|qufxh|j|f}ftc~fy_|lrymu}ymqty•ââßǙաӢѣͣʞ~yuzvxrjjxfyn~r|xyqn|~y~t~jtz}}ǞϞǎNjĂtuvxtnjh~fnjjmjmnr}mmjnurqvx~}vzlidjjx}ęϡϟӚЏȊzzl|i|jputu}t|qufxh|j|f}ftc~fy_|lrymu}ymqty•ââßǙաӢѣͣʞ~yuzvxrjjxfyn~r|xyqn|~y~t~jtz}}ǞϞǎNjĂtuvxtnjh~fnjjmjmnr}mmjnurqvx~}vzlidjjx}ęϡϟӚЏȊzzl|it牺׋ˁyFc5H7CVEXkXh}ajd`UcZ\R_QaNdSk_wmuq|xytrslhbhaf\eVhZh[i\gUl^ultmhVdScQgUn`wlphau_TaPFPDBQHNbV`yljphad]jblbg]eXg[nctxzqscm^i]gXkYm]oah\gXi\k^g]d[_X^zX[sRNhFLbJYiXYi\TiZXrY[yU\S]T_TaRaTh[wi|l~n~r{}oxioejch\hTbKcNdP]J`KhUuene[SYK^L_T[TZ}UYwVPkO?U>5H7CVEXkXh}ajd`UcZ\R_QaNdSk_wmuq|xytrslhbhaf\eVhZh[i\gUl^ultmhVdScQgUn`wlphau_TaPFPDBQHNbV`yljphad]jblbg]eXg[nctxzqscm^i]gXkYm]oah\gXi\k^g]d[_X^zX[sRNhFLbJYiXYi\TiZXrY[yU\S]T_TaRaTh[wi|l~n~r{}oxioejch\hTbKcNdP]J`KhUuene[Sucz؅{~xyv/;3Um[Xt[ZyXX{P`UbUcXh[jYyesywwxwipagXhYe]_V^ScSfQaNdQ`JaGfP{kzmiV`M_Y[U^\eejjatcJZP9G=;LTESk[g}fleh`dU`L_JZGfOs]~jqprkg`e\kYjYhUjVfZaOeQfRi[g\jYn_ncvnjVgVmdqjqnuyxxkt|QZc;CG>IHG_NVxZbabc`YeZcU_Qg`pd{gqznqcl\i\gZj\fTgUgZeVi]j]ui{nobj]i_tf{mocg[kal~dlicxeRhUNbPRfV[q`bzdXxSVzO^RcXaU`NgTxhwklaobqaiZeVfYbVa\a]_S`Q`OdTaSbQ^IcNoavcgVeYg]ecdhotlyrbkkLTU@IC7I:>TESk[g}fleh`dU`L_JZGfOs]~jqprkg`e\kYjYhUjVfZaOeQfRi[g\jYn_ncvnjVgVmdqjqnuyxxkt|QZc;CG>IHG_NVxZbabc`YeZcU_Qg`pd{gqznqcl\i\gZj\fTgUgZeVi]j]ui{nobj]i_tf{mocg[kal~dlicxeRhUNbPRfV[q`bzdXxSVzO^RcXaU`NgTxhwklaobqaiZeVfYbVa\a]_S`Q`OdTaSbQ^IcNoaӂ犞⋖͇‹294JYMH[KReUYr\VvTXxO]S]Q`Q^OeShTcOfSgUcTdUbQ`P[R\T]N_R_N^PULaV\NbRgZuÌtr`bUdXgajhonhpjcin]ajTZaJRR>IJIJXKQnTaabXeRdP`H_KgSdRiVjYk\gVeThUlVhQiVhYi[l\l\weowekXhXuhswonfe|bat`^l`Yb`\dfZdcFSKBLDJXM\oX]tR_}R]Q_S\S`QfQeMiSbP_SbX`O`J_P[O\KbTcRbRZM`T]OcQdSui|jhZbTe\lgondriP]`NXaY_jUYcJPY@JIALEN^Say`b[cYaS\R^TaP`KaNdU]RfTfVhVkYhQhNaQfX^NiUjVgUl\j[g\qjrtdrg|v~|{lxmeklqswegkTY^BKN?OL>XKQnTaabXeRdP`H_KgSdRiVjYk\gVeThUlVhQiVhYi[l\l\weowekXhXuhswonfe|bat`^l`Yb`\dfZdcFSKBLDJXM\oX]tR_}R]Q_S\S`QfQeMiSbP_SbX`O`J_P[O\KbTcRbRZM`T]OcQdSui荏{7;>agmU_\@I@@I?N[L]nSb|X\{S^R]N_NdQeQfScR]N^OaPbObMbOcOeUfTbOaP_PbR_M^Mj`}xwefZcYnhwtm~oTa[HLOMKTJKU@CLFOQCPHAOCK^L[uVf[fZ_Xb\eZdPcNbS_TaT]OdRgVhVcP`UYOcRgU^KiXgXiUl[si{r‡mzh}s}zuwxtr|qottklp[]aNRVNU[GPV>KOBSIQpXc^dX_QdLgUfX_OeQhYeUdRfTkYiVjTkVjZj[gYiYm[ziydsZjVk]uhyrqhe|a_q_bpd[ea]chagmU_\@I@@I?N[L]nSb|X\{S^R]N_NdQeQfScR]N^OaPbObMbOcOeUfTbOaP_PbR_M^Mj`}xwefZcYnhwtm~oTa[HLOMKTJKU@CLFOQCPHAOCK^L[uVf[fZ_Xb\eZdPcNbS_TaT]OdRgVhVcP`UYOcRgU^KiXgXiUl[si{r‡mzh}s}zuwxtr|qottklp[]aNRVNU[GPV>KOBSIQpXc^dX_QdLgUfX_OeQhYeUdRfTkYiVjTkVjZj[gYiYm[ziydsZjVk]uhyrqhe|a_q_bpd[ea]chagmU_\@I@@I?N[L]nSb|X\{S^R]N_NdQeQfScR]N^OaPbObMbOcOeUfTbOaP_PbR_M^Mj`}xλӃ|7:P`N_vZ`{Y]|S]N^J^KaMeRcQaO]L`O`N`I^I_IgViXbO]M\NcUbSdVbZnopp^hYkaqkurapbINLFDJMKT@BL@EMIRUGQPANHH[Ie}^g[cXcYeYhVdPbPeT^R_NbLeReScRfXbXcSeRbLgQiUnZlYpdrhē}mvnuvswxukyjemg_cdOSUGLNKQXLR\CKT?HDBZJYvV`Y[SbQcYe[hYeSjZhXhOhSm^hVmXkYhYi[iZfVl\sezhyahTbTlayqtkd|_cv_gxfgui\beVZcV\]IOGP`N_vZ`{Y]|S]N^J^KaMeRcQaO]L`O`N`I^I_IgViXbO]M\NcUbSdVbZnopp^hYkaqkurapbINLFDJMKT@BL@EMIRUGQPANHH[Ie}^g[cXcYeYhVdPbPeT^R_NbLeReScRfXbXcSeRbLgQiUnZlYpdrhē}mvnuvswxukyjemg_cdOSUGLNKQXLR\CKT?HDBZJYvV`Y[SbQcYe[hYeSjZhXhOhSm^hVmXkYhYi[iZfVl\sezhyahTbTlayqtkd|_cv_gxfgui\beVZcV\]IOGP`N_vZ`{Y]|S]N^J^KaMeRcQaO]L`O`N`I^I_IgViXbO]M\NcUbSdVbZno≒|PB?RCZm[ief\cQbNcS]K]KaNbRdUfYaQePeVaUYOcSmSmUo`odm_f\h\mcyčő}~o|tZedGTQAMKBIJBJKALRNZ[LUQ?MBF_I^}`nee[cUbRhPkSfShRjSgTl]jVeQeXi^eZfZgZi^thq}kp_l\ri{xlibjzdhuciremphopk]_\HNI=JBJXOar`da`X]Q[PSJ[O_MeQfSeU_LaQ_Q_U_Th\fVfPaOfTiXhXdXhbzuŐ~vdiYqatfcj_SY^S]fLS[GLQSV\]^g_^jV^`>PB?RCZm[ief\cQbNcS]K]KaNbRdUfYaQePeVaUYOcSmSmUo`odm_f\h\mcyčő}~o|tZedGTQAMKBIJBJKALRNZ[LUQ?MBF_I^}`nee[cUbRhPkSfShRjSgTl]jVeQeXi^eZfZgZi^thq}kp_l\ri{xlibjzdhuciremphopk]_\HNI=JBJXOar`da`X]Q[PSJ[O_MeQfSeU_LaQ_Q_U_Th\fVfPaOfTiXhXdXوCR=liqnoyklri\_^KPN@JGBOKQe\a{fe_^V\Q\M^OaRaP`NdO`NeS]R_[eZdScS`O_NaQ`QbUf\f\rgzǎvvatcwmitcQXSGQPKSYNV`U\cY^g]`n_eoIUR2A6FZM`}a`b_YcNdUcRdYcRbM_OcUcQeOhT_T`SeRpYqYrasflZn_hYk[ujȖœ}uswYfeJTSKRQNTSMUYFRTLTXZ_`MZPH\HVnRb[aQeNiTjSjUh[eVdQbRhXkUgRfZk_l\lYgUfVnbqv|lm]l`~u~wxjpgliqnoyklri\_^KPN@JGBOKQe\a{fe_^V\Q\M^OaRaP`NdO`NeS]R_[eZdScS`O_NaQ`QbUf\f\rgzǎvvatcwmitcQXSGQPKSYNV`U\cY^g]`n_eoIUR2A6FZM`}a`b_YcNdUcRdYcRbM_OcUcQeOhT_T`SeRpYqYrasflZn_hYk[ujȖœ}uswYfeJTSKRQNTSMUYFRTLTXZ_`MZPH\HVnRb[aQeNiTjSjUh[eVdQbRhXkUgRfZk_l\lYgUfVnbqv|lm]l`~u~wxjpgliqnoyklri\_^KPN@JGBOKQe\a{fe_^V\Q\M^OaRaP`NdO`NeS]R_[eZdScS`O_NaQ`QbUf\yǿL[Guqtmpkeoe]baV][BMG=JBK^T^vglke^^P^LaO_S_UaUbSePgV^V_]g\hVfZdXeQcQdTcSdXf\laufzĒˑitedv[Q\M\d`nxykw|`mpR`d]gqgp|\hk?MI;M?OiSc`c\f[jZdTe[`O`MaRfXgShRgS`R`MkTmTnZoaobp]n`j\m\h]{sΞȖ{m{nPXPPUQXZ\QY`PY]Z`fdhl\g`GUFKaG`}YgXcPdThXeVi_i\jUfUfUjUlUhXf[gZkZlXgTh]qgty}lqapc}ry|wuqtmpkeoe]baV][BMG=JBK^T^vglke^^P^LaO_S_UaUbSePgV^V_]g\hVfZdXeQcQdTcSdXf\laufzĒˑitedv[Q\M\d`nxykw|`mpR`d]gqgp|\hk?MI;M?OiSc`c\f[jZdTe[`O`MaRfXgShRgS`R`MkTmTnZoaobp]n`j\m\h]{sΞȖ{m{nPXPPUQXZ\QY`PY]Z`fdhl\g`GUFKaG`}YgXcPdThXeVi_i\jUfUfUjUlUhXf[gZkZlXgTh]qgty}lqapcndoekcwuqtmpkeoe]baV][BMG=JBK^T^vglke^^P^LaO_S_UaUbSePgV^V_]g\hVfZdXeQcQdTcSdXy皸P_L|zlhu\ZgYbieqxvcnfM[OCSIXnbkmifbX`MbRcTcUfRfPeNeVaZc]hXjY`VaXdRcTfZdXbVcYl_l^neʜʖĉsti[kRnxjfsqVjg_qtp~ycwj;I:2C5DXARlNidhXgXb\gVgR_OcSbSbYcZ_NfOiSn[nbjbi^p`pajXq\gUmbzoΝǘ}wvrTVQRTQ\``MVZKOTSU^gmsmsqV`THZCSlKj\h]fZf[g]i`i^hYhViYiXkXkZiYlYnViUeUcXj_vjy}rtem_xly~|zlhu\ZgYbieqxvcnfM[OCSIXnbkmifbX`MbRcTcUfRfPeNeVaZc]hXjY`VaXdRcTfZdXbVcYl_l^neʜʖĉsti[kRnxjfsqVjg_qtp~ycwjCSB@FMQVRWUELCHZCSlKj\h]fZf[g]i`i^hYhViYiXkXkZiYlYnViUeUcXj_vjy}rte^|RUmLSgLex_|zlhu\ZgYbieqxvcnfM[OCSIXnbkmifbX`MbRcTcUfRfPeNeVaZc]hXjY`VaXdRcTfZdXbVu엪蓡ٓPaLtjgs`nxl{{draCUCD_Kabich\dSaU_UgZgVhUeOeVcVdTfOdPaXbZdTbUT|LPxDDg:Ba:dVfVf_vqěҟ˘ylvn}tzkwg|xwonO_M)4*'/'5@3H`BjZeVd^l[jRdNfSdYb]aUdPePiYpepimimepdpbqao[mZiZm`}tРԣÓ}o[hSFLC_f]p}saohFIGIKMkqts|rQ`KJ_CUtQdae\hYjZhYj[fTgQhSkUlXk\j[m\hShYiYgVk\m]{mz{|ksazk~tjgs`nxllvlS_Q2@23G9MfNich\dSaU_UgZgVhUeOeVcVdTfOdPaXbZdTbUaV`QaRcXdVfVf_vqěҟ˘ylvn}tzkwg|xw~at_;K27C64A-6I/Gf|uys|umdQjJA_?RrNh_g\eX_SbTeVeTdS]LdUcRbQePcPcXaU]KaTbUgTjUwꐢ苌؀ϖPeD~l|o}tujk_bTGg=Aa8_Tf\hZcTbR_OaSeUaQeThVeUbT`QbTaST~F>X6-(=%^Se\qd~ЪۭԤ~pcmfwvsyktQfQ1>- #1jYfTiXjUlVeZ_ZcVeQeYibqmyvdw_XpTLdJI^ABW=D\;B\9D^:D`8IeEg9Ge>Eb?Gb>Ke>Ia>CZ9C]8@b;Gk?PrIqd~ЪۭԤ~pcmfwvsyh~pmmd}\RjN0>- 9P0fTiXjUZxHKlCCg?=Y6?W2?Y8F_ATkQ[kXUfQNdKH^FNeFkbn`k\n^mYn[n\l_vƜϣ`pT8A4 #5C,@R9DY=AX7Hc>NnBQpDOnANlCNnEOmFSlITlKKcEBW=CY:BZ:AY9KjAW}LcRdUbUId@#. 8?8}tujk_bTGg=Aa8_Tf\hZcTbR_OaSeUaQeThVeUbT`QbTbS]L_S]T_RdSu甦荍ցu}_tW|xuvw~y{otgrdiZMo>VwEeVgUfUcT^UYR]QfThTeOfYh^eVeTfWGd>%5" -A'dUgXui|Ψ޵ݲɜy{otsbyeBS@#2B'oYmUoToXj]gakdj\jbhdlhml^u]@UA*8*  +=#;Q2I^AO`IQ_M=G:  "(!5C47G41?,&  %-=(9N2C\;C\9CY7DX6BW8BX;@T;4O/-  &*++8&%0   *=$?Z6gXui|Ψ޵ݲɜy{okjgjZqW=O7&.>%Rn@`~IPi?7J0$  -9,;H:>M=7I8)6))6'8K6AY=B[>C[;D^8D^6?Y4QoDWpNUhPi|d~vVaM$)!-?(:P1CY7DX6BW8BX;;M62B0",   #2 Fa=X~L[QB_= ++2*y{otgrdiZMo>VwEeVgUfUcT^UYR]QfThTeOfYh^eVeT`RX{LRuLMkJQmKXrMsݍ劓ىyuZoTŝ|wqznzj|n|myieRVFbTdTdRdT`TaVdRhTiQjRl^g\iZkZUuH;R4(Fb:k[kZhZ{oѯްР`tY7G2Mh;nUs]o^neokrsvqqraya[uYSnT=R? , &3 X{J[OaUhYl^tg{ŝpjAN=  / - ,=%kZhZ{oѯްʛsTeN4C/;N.J`<-<&   "(!" Ge=W~LIh@.A'  )4%zj|n|myieRVFbTdTdRdT`TaVdRhTiQjRl^g\iZb{RQpEPpGLlFEc@Hd@Jf>rb҃⊉x{wLbD¡ʣ||kyj{p}o|jn_h[hZdTbTbZ`Vf[g^h[l`g]cyX[qTb~\SoH +<#4C+:Q1eYdWVxI7M/)6$yj{p}o|jn_h[hZdTbTbZ`Vf[g^h[l`g]cyX[qTUnPRnGTuIMqDLnEEe=Fb@g_rvz~|=U3pd{uΨѣ{hwh}rrwlociY`NdSfZg_e_jfgd]t[VjSTfP]q^lna]LgE2H-%KeO8").qhvgma\P+)5#wh}rrwlociY`NdSfZg_e_jfgd]t[VjSTfPQcRXnY\yY^UY}NVxKHi?KfEgcvׅ{˂ȁ;T1fVhZsh}r~—yhpaoakbl]jVcNiXh[rlg~h^v`Ul^QbZS_TU_XgskqsfdTtMB^9/A',:#kYfUbTdX_KeSbUqby|t9F2SsQpkvsi~hXiTM^O^pdg|lYkX6B5  1H/f^g[h[Z}JQoA-?%&  *U3(7"  `MXwK6H2,?#hSeUPs@>V4'7" wumkWmZ0?7PbC;M.  c^ogm^kZSrD,Ea9`TdSkSgRhZe]kj`qdScXDPOHOO]`^TXXV^Yiveidi`bUaS[Pa\硠ۍzyy>X4iYkXiVgXhYaSdXeSiRfQdRbOfRgRjVhYb}]\o^P_UTbZP\U_e^prnx~{zz}ol^uYQjMHaC)8M0iVdObQiXiTsatfhWYHRzCRsDKlB:R38D3bu[axaipj}t|ɤĨoi"+!Јf7L.=P8[uQNkD6H-' gR莜ͅik*2-;R1RuAIg=4F+' ިxISN 切rVuIVpO^yTZ}N`QNmA& 9S.fRgRjVhYb}]\o^P_UTbZP\U_e^prninl^g^m{ik~he}`_|[b\aZe`Î݈~vr;U2dSlUlXk[j[gUaReReMeP`LgOjXm_i^cYNkKQfT]k`gxkkyl{w~lk^t]RkURoQ4H0#cUaRgXk[iUs`oacUT{EMs=Ko<@f54P-$,!hycmmsn{tq~³ఘE[C 攂q  EZ?H^B*9%hZ} >X6>Y5(8"ﵿ߶߿֧ȼ׌|k>Q9DY>J`CKgCUpJNjB0D(1A(m_i^cYNkKQfT]k`gxkkyl{w~~twnlfye_u^Xr[a_e^mdČ矣⋜Ճ{p9T3cYjUiTiYgVeQhUkUfQfVeRiTm`je_ZZ}SQqNUnTk}hrp{x{ywyuyYnYVlY[w_XvXBW=>Y8f\i]f[p`n^bTVvKKk?Ij;Hk8Ff63K)rm~h{rbpobopcmsĴ篗ˈX~JŃDW;1@.7I3&4")6'읕ϐɚ޸ںçMWK.A'2H-%3!u!#ّt.9)QiJ;M66H27K1:Q3D^:C`=8Q2)?W%'  Ö˕{:@D⢱؛DL?2?/G]C5E20?,,>'0D+7N1:V6:T6#U}Secibn`qiyptrvxtvrwfwnMaPMfOcioq|yu䟨喟ևv:T7]RaSfR_NfOfOfPcQeUhVhXf]]]Y[V}S[~Tkfoeqeljjs`dk\pzqvjuk_q_hgv}tynk[3>^1Cc93J+NTNV\YnuvhtuXabZ\ehnokzs|oZoV*9!ʋ鷴۱ɣxv{qcel@FL    #%5i_øߩ|vsr}z}zZdXAM@    "$6CK?ƧŻǖml`z]XpLRoHOoDNoANqARxEjVmVoZoVnVhShUFb<{oサ㸮Щ~|wYaj:@G(5'-@-/B-.@),=$/B$4K)>Y5QsHTxJ-B&J]Eia_p[ZhUV\OKQIGNLLTST]Y`j^g{fsrrqtpujte嚨☙Є~w#*/)didÛŵuoqfl`i[cQkSgSo^ow|߂쎯dOЪֺȮ|OX[ *'5!):#-A%4M+GjBIICIILNOJNMIRNZk_npxvrorjrhoaeVg[y䌢}ʁ}:W4bSdSdTcSeTgZd[c]fZdRaS^QbTeTf[c{_]m^RYVBDG@DHCFJ_ebmtps|ytpkokmdqataZM C[9F^8D[=B[9?V4;S1A[6Da8NpBNjDKRTV__dnij{okluq}w{rԓ鏖߄~yx懲}kUwGvr칽罩ͰM\\#4:U2RuE_QcS'XwN̝|_bfY_d]agszw΢ƑTpP&5!AW5VxFdSfS).2.W_\xˤ~ndh[\PR|GImDHE\d`|}svolhgbg]gXvfgX2F*=R0AW6D\7AX4=V2B^8LjBbX[zSR]ZQ[Teoaomwsy|xvmy≗؂Ղv|܅蟔љuuKfGqkḲؽīʽ¿M[[0C(KlAbPfUcSTzH^vVhooNQW]c_~Ϊ˒ToQ4E+QnAdPcQeUWyK9;=ryyĠ٩xf_]P?Z6*<$$5'7?W5b[gkyy҇鍤牜܄lZǖīƻýƀKWZ)#2-?&:Q/RsA^NfU\MMnB?X3*<##5!0'7!-?'2G-B]>8:>DHE\d`jyppsyuu~wrnmhj`dUhZeVu݇{tp>W2gPfQbKeOhSeXlblcg[k[k`mfkii~dhvfahcLVQ=GDHTMTcQwwɠxznjdb__WbSgRyek]#0+2D)=R4BW4DY4B[6Da6ZPqhf\ BLHbsewq{v|uzqnaj뗝މցy{wtچ♗әuxJ]Jqm쾲س|äϴǯ~OYW (6N/PrDfSgPfQbKRvAhvfxYhcevlso٭LjJ (9M.VtIkUoUgSbMTxK;?>äʦ֨毾ꪸ茄qbUFd<%  )8#PoKbcuxŐۗ瘪错ԇ~A[=ɧƧͲϼ˻NVV  %$2):#5H+Nj>cPeWeVB_8)9!' '%3+<%7J2KcEZwOiYaW3A0 !O1EX6Kb>TuAeYtgpa+9&/:0vvyrxgl\xꐣ熐}xxuq{ߎەxHZHvkإ|ѶŻ˹}KWP(9!?Z8SxHaSgSeMdRbLKh:OSLvxvz}t}ݥ줿tMlD&6A[4Z{IhYnXqYo\jQKoBGROʸ㿰븵䨽飲晬񔂴ohU2I+9N2a~U}vާ䏖ؒώuyƜҷŽӹȷ}R^V &+<$6J-Ga:]NgUdZOrE%4   ((7%3D1H\D[qQvftShS1<3'-&"$!./.HPJO^Uf{jvnyuolwfl_h]dX_JfNjUk\y甚㊇}ǂz>U2cOdQcRhUjZjcdc`w_SfN]iTirbgzhdtdV`QJLACG;^hZml}|КȋosbhW^N`Q`QfOqWnrclb#. #(7 3D*>N2Jb=ZLkcj_maHa> ~wtrhm^eVm쇠}ulnutx⓬療sH^Gul﫨➌չþն~O`R  '6I/Ie?`Ub[fXhTcOdQcRLj?JLAms_ܮ꛺{fRtE  '5J,Fc:aMjRiTkXo[n[fVJlE_k]䭤ӟғߊ爙}gW|D'>S7tԟנ䔛䖓ېEcDΗչߺضҳç{pr".A(C]:XxJdWfXRqI-@*  &+8*CSBUgPrhzh|iR`RELA:<3<@5^hZml}|w{jvep^eShXeTdMbKgTdV蘒Ձxv?T4gUhUiXh\g^iebaVqUL[GMSDNNCS^NfqcgqacpZnd|v͜ujdX]N_O`OcNmPv]m\RtFHf@9K4 "00A)>R7SmGl^snf`lapa J]Bwzqlfi]iZiYq숝znx]`S\UrgۛlMiGpf̍~~ֶܸس㺾ඌyx&3#UbHm|`pwuƈ{igZ\QXJYJbQjTwXcqdVyOGgA?Z=  !-0B+BY;YxNl[lcpiwlzj1C)#-rcpfj^jXgRbO~i匚ڀivdkcPOQ~P\\z~͙vpIiGthїҧ컺ɧ˘6B52@.RgKfYbTZwJUsHUuG]~MdTdThVgUKiBwᚪ٘׍և劗uagT*U9SlLc|[d]aU_UTvKSuGVtF\{L_PaRGf?ʽ旒ҁsrqz퇀neUHh=  (BTBYvYece[bNeRiTm[hYj\iYdRSoEibҠޓ؉wikr}qfJh?q%3!ҝءˢȏ}sxo-=) 6I1FaATmMc|[d]aU)8%3B0i]yg~p~r}lk_dThQaM^MfTiZeUgVeNaM`X^\~~ƔvfbTrSVoU9J0VvGVzJY|N^Th`pkvowm~pv}w{hu`|esfdWZIP{APwATyCV|JWNi]|f{c[{Q[v[b~fhdhY6C.!+?S5cUk[cPoY|hx .>'gS`KbJjSkSuۊrova{e\k\M\A3?/rhŘƉxhqcAV9 *=O9RjMVpQIcAKfBVqNa}Zb]e``~V_|PVvGVzJY|NE`>ߌyuqnzzjaVj^>S3 $2;/2>55J<9UALkS^{]i]cVeSkUl[o`j[cPQoAZvPÈ㘢҇Նrghz탫􍂹teX Mu=RrHcVqcpcob:O4=T9kexoogIcAKfBVqNa}Z4D1=M5}w{hu`o[dYbUcP^K`McOdVaVj^lYfR[{Q[v[ӟЋ}~xUiZAS'q}cU2G-$)Ո㠴꧸񙀱ln^p`vjlbVvJNpBaUzmۏƣҙmcVOgJ]tY l`v|kvfo`kYjSmUk]dY^Q[MeQgPeSeZthvzig]ZoY~բݕ֟ȭDTBqk`\[|QPuGSzMX~Qe[ugovuyir`iXeYbXaRjZq_l]ZPVKR~HT}CW}DXGcR}n⦣Ȕypf~`TkLezZ}n|-2,(E\@bYnhkalYiTgZodvcv\Jc8jUlXjQfOkԅÌƤ˳Ϯqxz;BGeT煷竱ݝܖےꛬ蚀sfYjYn]qexn\|PW|K[Pe]f_jeyxtsd}_UoPSpPYx[logjqoqk`\[|Q;V4eY݂xovrxz}zbgUpcypQdLGY@XkN}n|zyewhI[P4F:EZL]w^pqgag^nhkalYMi>JlAzj쌣ꐡ܊Ղuu{w}{wXsIgW}m^Hh=8P/Ki<ݝ֒Ҍِ嘧}ljYn]qendj\bTh\riąܠռ쳙ǐupNiO1=2,6&yir`iXeYbXaRaR_OdV_SbU`ScOgPdPgUpcypf~`oeÏ߶ջ̵?L=tnohb~U\~SUzRSyQZO`OjVmZiZf]aTaO`Qh[aTh[g\aTYLYJXJYKXGZGfQoɎsghYj[~r{IRI".?1KcJhdleh]gXmVdVg]nesjqf).=$q^gQcIaL}j嗤ʘҶӀ~BBHhV䈪獥֍؏ΏȊ˃~㈤菅xl^jVn[nbujzjn]h\i^h_lfvrxynjpgvuz|tnohb~UC]=`Q萘rqootx⃜}u\bNi\vsghYj[~r{pu^qgOg_Wzcin~leh]gXPh?Io?zfꍢފ҂z̀rkxꀀszz5D- +szgfQ\Ms`㖦ԓȊƀy~卮sjVn[^SSmKI`?D`9NoEf[vɔݱߥ٨QhU Dc>aTaO`Qh[aTZN[P^Q_QcRbRcSbN`KbNi\vsguӐ¼Һ5A5h{iqnez\YyRVvMUxMVzK[KaTdVaU_P`NdObRg^k]o[eVSHLy=NsUwATwBZIcRm^vglc}tdukxxajlS^`COMGOH>J=AT?]qVtkylpwvn[t\pTkT8N0g[m^lXc퍽ʌȜųƧx{seaa<<>eY爝~Ӄ|ȃ~с~刦폅om\jZgXh`mdynyjn^k[k\k_mfmiaoaixgpirhyymj]pVAT:`L茕߀lonhou~ze_QbUlc}tdg_pl{|{zoxjnwnjtvly|s{y~z}i^Kf?Loo_ĄӜ跮ОŠu~rNYMFf9cO`LfX_Q^JcOaPcLgOiPfPfSdR_QbUlc}τ嗰誺䴾ش̮,-,AIB@M?K_HSlKVsMRvHYzG]}LR{IYL`NbLcRbObMp\jY`MPr=Ij:Gg5Nm=Np?PrBS{FaRpcj\f\ylВxܖѲ~s~{]fdFIHDEACKF7F9DW@d_uц阗xjTnZ*:#%eTjTjS}g쒰ˈ٭Ͱnnj979h^䇣{}yvwv{⃂jkYlYgVf^havk~lwcn[lYdXShLFRBDNCWfWsl}tz|_s]K_H=O7bM兖~rggarxyfaU_Rf\ylĊuj^ndxuypbj[U[RQXPbmcs~{t}y~|}rvvo}i_MgBKl9}fـtẁv{탤~ppests`v``] !)0A+Y|Itᆛ~ywsv{߂ꊃllY/D(-=%bQ~ݣɽدuxtILI#'#1G)Mo>bMfS`PbN`I_K_GgQfRdR_PcSaU_Rf\ylĊ㚩畭睳ᮽ۰ί--/MPPEND@O=NcLbz^[yQYxGVxF]R]PYJ_MaQdPcMr^gWZGJm8Kj8Ff5Fg9KmAOtEVGbPjYaS_Tf[}x֡vv{fohJKIHJGLQRAJI5D89P;`^Չn`Fa:A\2kLkM}`劰؜}u633^_┞Ҁy}ztz㋫爀fhTjSeRcYiama|kmjWVtDBX93A/-6*4=4P]QwqŦo~n@O=9H8cM兘₏qbhdnՀ刜u`]N^P_Ti^}ŽyffU[xRO^H?G=9>9>E>S]Sx|pvdg[zYOfEJh9}fꃚ{}vˀ~roz}}jpb~qymc}VTgJ~s{C??#0n܆~ρzpuӁㆧg[~Hj{xuq}̀xuz}}gl[e\QiKAQ98C04@,ShG~d]X2*+PpLˁ~ypitҀ萯쐃iVyB saݘܦӯոüݷlttEEHPNQ+,*  Ki=dScVbSdQaNdMcM`Q`V_S`KaN`S`U^T`YuqȻیԚʬ)*(KIGPRMR\RM`O^n]h~ed_]U`S^OZNZP]PbQgYfWXIPtAHj>Gj;JjOwC`Lu`g\c[MvE/F*!. (6&I]Cqص}_dY977(&)""(7/a}_q\+;#>]5cUze䇢⅖{ތ}o65.FZCȒ⨛̊{uuuՁꍂlfPiOiSgXk^iZhYaRPgD4E,(#*"CQCrmѬ̵ɻuxq|~epe9F:\O⃖}xuoruw~zidZc[_T`Vlfun~mSmF1C*",#"' 08-TbRѰ}}oD]P:K9KoB~k툚샏xtv}}톟}ggTHe;* 7E-pk|ji\qie Ɔ~wur|~狩}bMl:E^;EGCKIGPRM@X5\O`R`OeRbScQgScS\Q_PaLhUdZc[_T`Vlfyr䏠ό̡/2*LODR[O]g\M`PPaQ_p\h}ae[g^_XYQ\M_OiWeTWFNv?Kn;IjϠҖ~svvҁ犢iiZnXkXjXjXbQIb?;N33D,.<'('?P>zw۩ܹԸ}p~qq~p9F;aPz{qtoklt兡{efV\O`ObRgXcYZvRRdHCR9/>((,4(WgSɪӝ|xɗUf]0>-Hi>xf슛싕؃u|wtw舢{beN2I(SeJy}knnÌρvvs|ր倦ꈀnQmAbRcWnepmnkyrȮNTFLODR[O-2-:Q0aP_LaNbMdRdQfNgMaOfTeOeRfV\O`ObRiZnc؆ˎ=B7^hY^j\fqbXiZM`OUhQcwZl_h^_Y[R^J]KYHMpSuCj[vcmZhULq<(M^CƱ||"&"!&#JcHzaO#0*=!lS}삌uyyОNVLLVMpm͖ł~w{Ӂㅞ腂ph\iUhScQVwE@Y4-?&&5!$1(7"$.!+JcEϛߴ˪}x@MB]H倚{q~eiru萧匂khUdOhT]MTuEBZ93E-2>,4>-5A.$/(1%fy`޽ϼdqk,;+NlAi肕〘ցrwwno~~bfR$kg༻̵?BDŐ͇ʂww|{僩pRrC6G-G]>PkJXtWgj~fn]^hY^j\BJ@8P-]HdPbRdTbP]JgMmQdPk\iXjXhUdOhTeShUl]̆̽҄FOBivecp_dq_\k]N`ODZDTpThfh`dZ]XOrFHg@7N.1I)5O,9S.;V/E`8C`8Jj?RtE^QoarbjVbM2G&/?+޿`md!!YmXj^ÖmXMf9<[0ozpynsƗV`R^`avsz{Ć|y~Հ兦~pgUgRfPWxG@V4+;#!.))'6"+6#!* )2A*ylњŜğsmCND[L|zluowyց㍤荂jiRgPfZUxM=T4+;$!/!-)3&5A/2>+"+%3@.̱³r~~3>2Nl<}buxzx|srq}{tadP ޭǖώyzz{爤~ifP  />(BY;LgGYwXwwuoivecp_ISE8O/[L_O`M]JfSaQgXgVgYfZgYjViRfNfZi_k\kZqOYJ{ytroopataF]EFbFYuVf^e[QpI:O1&5!""!0.@(2G*;T1?]6Cc6Nr%ןELF|o}t͡hkT"/kZ~uhkԄq~hlsqvq{ȅvv{‫tkX_NSuE@X5.?&+  ""/)5#(2"3A,\tP旈|}ȥҴȩ{Q_RVNۆߍqnphju傥牃ikSbQUuI@W6,=&,  &0:,:D42;-9D3[qPӳɸP^IB_4~`z~wvum~my~{glY    əɆtruv犧ifS)-<(;Q5NlGhc{{ytS`P6O/VNaVgZ[M^N`R_LcKgPgRfThShPiVk\jYgYk^nP]MonRiOD_ANkLgapcNiB,=$ !-0?*6K-;Y2Fh:W|EnYnVfRkZ7L- +/*봵ߤshvdXCd<)<#t~ulht׆ϑq~z~znkĎzv؀爮zbRE`:7I/,<&%3 %'&2"-9)OaGыzrawkzp¡Ǝas_XMxߐɆqnnqx}tbPEa;6J-+: %3%#+ 5?1=H9fv]Ț}~pu~ːapV0G)v[v}umjluy䄜}ioXvsupwy⇨蒀kgV5G- )8$]6PvDgWpq^i[QrI#s!|imgҙ욿eVbR!1}`rwlehv貐ŰӪliqxƄ΂ڌꐸveGb4A.Jc@fWteogus]gUIh9_O]NeUeXdT`SdTeUhZfTi[e[i\eXfSkSeTgSs猨⒤֕BW=wsy|pkRhQF`G__kaRlB8N/&4   *0H)Gf?_Zr⋢ߎuxPjNtf!we^z۔fVhSNr>Nk?uZ}fuavc|jrـݑ~rRWR츄~heƊ̄܏OnD/B*!-('"0 -! )-=)MfGԢΜʒmlѡĘ t}vy}y{ֈNhM-<+($& /," */@*[tTƽ٬jvjXeh{qwm Jq%3Kh=dTaTcQaQcVa\eYgXh[gYnfged_]~S]RbVd\dTv荠⍘ЄҋܠEZ:k]kaxmouurjikkkkqik[VzJMlC?W43I+?X5VxGwhΊҚcza`L$("(up̋阼sz^jRJm=).C)QqDdRp]p_sfwiv΁sh~s  Ԯ֏{ownƒЂr5J/!.*".''!,*9'=S7kdytl}sĔԠ֘ЊڎەƍGWAk[}ҁćɎۜz5A4#'".()"/,>%B]8yޡęͣάݜ⛊y}p:U5.C&|`cfwbwk{mwxuTwOKnCQrD(7!sh_V]Unhve{esɁ~f\g^f]bY!.#, WiNrmtbk]E\>!*7N0UuGbReUdRfY_\^^ibkckbh]ibe|cXmSNfILfJFjJX}TiZw숦腙Հ{̊\oOqm]i]p]pdtq{wǕߢޡߜψ{~釭Ⱦ꿮ߨʑ{Gb6%)#2E*陆}~onPbJTvEHh:;T0!/1I.:[8NpBeUk\wdrxrvi3E.ꕑҁu܇RoG(9#%" * *#/ -<)BY<`Usj\UTsIZwNl]}Μ޷㐮鐎,:*=X4x҉ˍ̤㹰DW?(1%   )",&25I(Jib6TIsas~ygdZ虯횥동وى~>Q6&4!%'"-!/<-@Y;[|Twlg_WwNNlCNmEWxMsi½틗ׂwn"/ ~́̂ɉǕڨmq-=- )  &'5#6H+NpBpaphjX_N]Rhb閯~r!/AY5YyK[zQ^}S`[YzS[yRf]}zi]V|JM{KM{C[PfVHa:+=!-('""*5&2<.g[m^m`mbqbk}ъ{zl{pd[gY`zRUpOVqR'1$(+:(>T7Jf?[}O`TlcxpѠʜ~M^B#5F1ZzMfUdXcVdVbYf[kag__y[UpVRmUMhMTnN\sRUrMNkBGhGAgDJmLu߅㆖ۃvzVhO˓NjvwdfXk\rb荡ߏیԍƈ|~ȎԑфxlӍ%.!݈ۆސߍ|haTTrDOmANjCRjG^vVRgMK^FN`IN`GCS>+4*?K'Ɂ̂€}v̍ȉQlM,<) .( /2G.Ef?e\noxfkXdR^Rh^|ވփ{m-=&2@+ObHQeLTjN^sXja{rച}jndne~pԀ܂vu惙넞ꆣK䏩ޑʈ:G4^yReUm^odwp…碛ٛŒ|nfb{Xb|XZuR_}[sjtcm_h[n`tgyn|xkaRaF09(   YxNrbh[eVcUdYbVbVZ{TUqKTpMRoLYuSZ{TY}O^}T[vNOkAHiCHkEMpIyo⌞琕؀xwE[<{jvʓĉvbiXi\ڍ摜܏Ӊy֞͘婬ȒNbFmˁ+:'/6*ܱߛ{}ݍ~fYX}KQkAPgBPaEQ_HL[JGUHQ`Q_p_at_eya^kXr~muoPjHG`BVyU{rw{zv{hX햯ˏQgJ.9+'1&$.%$"$"*-6(=G9ISCh{]~Вǀm~j{jˁ璟ЉˈՑلli\>W8ЇڢL\D.8)%0!#, # $$3!8L3OlH\Ssj}ۃwuqtچܡ؇vpa>T35>/;F9=I>WgWrrУ{Ɇք~vuށ㈜感⊥돢㈨ސr )2"XqHcRp`yp͑ةծƝ}uy˓Ҕц{{tyvsfpbjZYuMNeCFW;;G2$,  7O.eQq\m^f[dYaY\TXuQTqQPiJ\sUf~^j_odg]h`d|ZYsKQrJVzPaY{ꗣ㖞هyo?W3hUp\xer~ps^jZaR|ߗΌzǝѪ콽ߴ)2%@X7t:O1]~Rژ{|؂l[\}MVvLRkGPeIJYFKUG@K@BJAbh]y|֊kcfaqqsys||ryb)8 wqDX@+4,#)&$+)%#& '0&/9*CK:U\JW_MeuZ둯꒸ׂumjoʁꕒw|idUIo<)=! "ɀÊʗޯෆITE.4+'.%(/&#) %.!/=,@U=]{VnafUfU҂Պy}}؋ymm\NmB,?% 8C4?I<1:1281fl`ǿϻ̤~ˈӅpmswԁyсփ݃݅vW{FK[AcSl]oהﮪЭ}|yvkozЛוxx|wxjg[_P[}JMk?B]6A8B@:YVMœǛҗȿ͂iigixu~˃~{g7S+؝ig?R>+6/'..&-.&..,50;E:KRGW]OZ`M[cOcrT䇖{skgilxvuo}fr^cSQyGD`6?W25N,,A' . %)>"@a6\QfXhTi```XvXPnUNnR_x\kinprt{zxuzwtqtptgqcqjpjlcz煢ㅛ؆wAX4lZeScR^PbQfShVeUcSbSdV{ޑטȔ彺ᱷע`tXpw[xH7H+$/#1\P솽kaRTmHQeEQeIL[CFTCEJ@HD=IB=TOI]]Uμ»ƽѓsiijv^ntn{y܁yj[KkB%hf@QB-84'/2.587?@GQIRZNY^TZ^Q`fS[fQcsUtitqpsimppqsozgp`eXWwK7I0&%2%RiTȹӰ~yMXK9B81:07C4CN;YhNnerkqgfYeUiYiX썩ކ|slxts{p|snn|irbbzTJ]CatV֫s~shźȼďxponx_ntkwyㅟꊔ~o  ҙxuy|{ysz{y{}yx|ot`bOX|HX{GQpBJf>?Z48T/0I)(:!#1(8!7P/Dc9YLdVgYk]e^XvXKaMUh`axkkjrruu}z}xvstspnojsftfulslqguꈥ狙ր{z?W2iThTgUgThSiShUgUhYh[gZfYqj`mgbxhʼ㺷଻嫺媮ѝH[D ,?$y^ׄnXPg=H]8Id9yd|sZZtMPeKK]EM^HFR@JSGWYSZSOaVS_UUrroíᣒ~jzcin|j~fovt~⌒~~uj`LjD+)9#݁khBQD3=<08?LLBOWR\d]ggbofktkhof`h[ZcO`kTapYfy_b}[Ãۂ~zy|y⁠x~Ӊɂw{c^TkR^r^g{u묽eshRcQShLYxPlcuh{psfo`l]aSj_gVhR}ꈫ}}ׄ߄ꎤ؃ׁՇ֌Ѝw~s}y}}~xt}wȐƍĈyoorn~n~kuwzߊg[ۤȥwmn|~xyz~v{rxwv}nqc`PZKZIRwBQrAOo?Op@OrAQqATwC`NdUj]g[cVg_YuTTkRYkYN^YO[cblrz~}z}zuxmkh_dZmduh{psfo`zⅦ畖~ts;W3dTbQeSdVfXeVeXfYj]k\eX^y[SkVXi\csh\kiLZ`O\b\fppzĮӼgKg;:R-1G(BY9UwGlUoXdsꁳxdgx\mVq_Ąh_OxLKgFUhGrgvxtlaa_Y[XIFDG>?QLL]^\[__Z__̺Ԓ|onsqzۄݍუ{k}l^~OH`:PjCcUtЬjzYjdQdfViscrxjyw_me]h]ai\_gX_gSgt^gycd{`gahbăᑨ떤ꏤ荜ڃ~݆߃y~އ䉚܄چׇڎԉ~gkcvgk|pk}{lůr{ssjehcoiqftflXgPeO`Ok^fTlUoXgwꈙ}ڃ߃܇َփۈ䏩䎫߉܉ߗُ˂|~Úչ˽}rcepiirsqpuuqwwÓǏЖˍˋυ}zwlr|΃w쐴dT4H-ɀࣣӪwvpvÂ}w~nwffU^ObUZNWJYJ`PbUeWfXbUfYj]k\eX^y[SkVXi\csh\kiLZ`O\b\fppz{w{qunvsshcidoiqftflXgPi㓕{xw9V2bVcQfOeReVgYh\g]i^j_YtVRjUL^P\ifgtqTcaIU\JR`MR[OZ]p{|t{߬unV\HWzI`QaMhVjUlUnYx`okq]xfmSnXm]jV䌽ÌzncYeYnbxsif_POLTUSFCA>53FDBHMJRVXflirpңķᖖ́sms|v}܃倮烜txitdlcqaoʅޤ忚wcww]ovasuiyv^leXcVZbR`hV_kTizaljkcnbqe}pomsz~nvhzm|m~pifjprvxyzrpei[p`ixtgtqTcaIU\bmxĹƜ{vtpdpdvgudo\iUjRfObRiYaMhVjUelhlppxlqxptnuyz}zns}zwcUQc`]\c_inpѢץ٠➡ᘣޓތvx{s~߄{u0=)*8%uiϙүĜň͋˃~sstm`aUf[cWg[lYrYp\k\gYh\g]i^j_YtVRjUL^P\ifgtqTcaIU\JR`MR[OZ]p{|t{ipmkncpdvgudo\iUjRiۃߋqyu9U1`QdQhQaQfUiUm]j`i`f^`vYUgVKYP]hgr||ZbaNTVVZaVX_INRX^cktqgylb}hggӓ압|kq]fTl[iVeSdPp[r\nY|f{bt[mUpTkUi\j\y㐸론Ɏpqawi}s{qij`NMEJKELPNNNLJJC@F>OVS\fanpunxn̕ᤵ쒛ׇwnpmmjimjx勦茞{Ɂt~rvlpbrdodohr~sjy~kxjvxdnhUaTTbMXfPZhOduYmelcncncnbj[hVgTiZocf\_V_Q`QdQhQaQfUiUm]j`i`f^`vYUgVKYP]hgr||ZbaNTVVZaVX_^ejltzuzb}hggqjtlwlugi[iXjYhUbPl[iVeSdPp[r\nYiVlUiRmUpTkUi\j\j^j]k[q`m`maiZaSk_wn{qij`trfxzzn`i]oyt~צ訪ݡݡ蠠厤⎤݇߁ꆚ僝聠~퉗~퐾͂UpL"-%2@,f\ְȬͮϢ՞זٓۓܒهـy{~}prhl]sbs^pXaQfUiUm]j`i`f^`vYUgVKYP]hgr||ZbaNTVVZaVX_INRX^cktqgylb}hggqjtlwlugi[iXjYqۀ㎙~un:V3_R_PdO`PiXn[qbrdmbcxZgybakbP[YY`cosxfgiTTRTRQ_\`QUZPUZYb\au`dcpquusqvyqgzfxjsdm_m\lYjTlZp[o\p^oUkQnSoXdQbShXn]p]yΉtyetdxmy~o``PHFGK?P\L_s[kdxo|v|xtnofdZZR\NbTfXiViUeRiXlZnXmZeUhXn_rau`pYn[iVhSfVh[l_m^ncmdk`j[si~u}xjYcJFI;IMDT\Rckben_jxbrkur}juhndj_l[lXeSdZd\bXfTfUhYfXhVi]qcl]dUe\g[i]p^m]napbnemlojj`k^oh{upg]l^gusgwwcvu`tjk{il|`j~_d~[g^ncpcpck^eXdUfUeQcNdRdTaRe[k_j\jYkVeTm_qevji|`]oTR`LV_QR^VQ]\\cd`fiS]^IPMDI>GK?P\L_s[kdxo|v|xtnofdZZR\NbTfXiViUeRiXlZnXmZeUhXn_rau`pYn[iVhSfVh[l_m^ncmdk`j[si~u}xjYcJFI;IMDT\Rckben_jxbrkur}juhndj_l[lXeSdZd\bXfTfUhYfXhVi]qcl]dUv㍵{xixnlkojj`k^oh{upg]l^gusgwwcvu`tjk{il|`j~_d~[g^ncpcpck^eXdUfUeQcNdRdTaRe[k_j\jYkVeTm_qevji|`]oTR`LV_QR^VQ]\\cd`fiS]^IPMDI>GK?P\L_s[kdxo|v|xtnofdZZR\NbTfXr刞炙ـ~wJ`JXoXay]h]fYi]h_gZgSkZj\fViXgUl[vixi|lqurty|xxs}pren_j^f\b^eZgTl[mdkgf_\UVL\U_}\a{[XqPKfHGaESjM]xUh_h^i_i_h[fVfVfXf[dVfVsex{}vyrsivmyr|s~uwx|srme_cZdXbVa|X_zX`{U\zP^UaVeUdV`T`UbR]}NUtHXvJVvLYzP_Zidpbwhvcxesdg[mhwvvozhrbjYiVbTaP]M`PcSaSfZbQ_P_OeYjdgzfVlTLbJ@V>J`JXoXay]h]fYi]h_gZgSkZj\fViXgUl[vixi|lqurty|xxs}pren_j^f\b^eZgTl[mdkgf_\UVL\U_}\a{[XqPKfHGaESjM]xUh_h^i_i_h[fVfVfXf[dVfVsex{}vyrsivmyr|s~uwx|srme_cZdXbVa|X_zX`{U\zP^UaVeUdV`T`UbR]}NUtHXvJVvLYzP_Zidpbwhvcxesdg[mhwvvozhrbjYiVbTaP]M`PcSaSfZbQ_P_OeYjdgzfrozveall{{~4F1UuQYzV_Xh]reuavd|kw|zvsyfuap^kZcRbPZL_L`M]KdSi\k`eZ]R^Tb~Xcw^dtdj{klg]rROdEAS7E^@YuSd[i^g\dZcShYfYhViUfTlYufxixgnx{}|~nwgscobgYi\aZgae_h^m\oapjqrddVxVR|LZTb]ndlac~]TmOK`BOfJQjN`{[jfkfg]hZiVj^f\hZhUl^vm~vvttxy{y~rxmqjfaaYd]dXfVe}Xe[c\]zUXwR]{X_|U`VaVcUdS_OYuIZuMXuQUuQYzV_Xh]reuavd|kw|zvsyfuap^kZcRbPZL_L`M]KdSi\k`eZ]R^Tb~Xcw^dtdj{klg]rROdEAS7E^@YuSd[i^g\dZcShYfYhViUfTlYufxixgnx{}|~nwgscobgYi\aZgae_h^m\oapjqrddVxVR|LZTb]ndlac~]TmOK`BOfJQjN`{[jfkfg]hZiVj^f\hZhUl^vm~vvttxy{y~rxmqjfaaYd]dXfVe}Xe[c\]zUXwR]{X_|U`VaVcUdS_OYuIZuMXuQUuQYzV_Xh]reuavd|kw|zvsyfuap^kZcRbPZL_L`M]KdSi\k`eZ]R^Tb~Xcw^dtdˤte[uM^W4D/QsORuPYzO]Pi_vhpy|}~oxhq`hTjUkViSeOfQ[L]LbOeThXi[sgzpsgj`jaar[GUGTeXomxrngduZIbCAZ=MgG\wRe]c]bZe[f\g[hZeYdTobxglr}~|nyhs_mZfXeZ_TaYe_jcj`k_i^hbll|pub~e[|S_Vibtkzsuqpjh~^XoRF`DGcCSpScfgdh`jZj\k]l\lZi[ndtku{~xwiqbmbnfh`aV`V^zSiYo`k`g^e~]`z[a~]\yZYxU_Yg\eZeY\wN[tMVrOQsORuPYzO]Pi_vhpy|}~oxhq`hTjUkViSeOfQ[L]LbOeThXi[sgzpsgj`jaar[GUGTeXomxrngduZIbCAZ=MgG\wRe]c]bZe[f\g[hZeYdTobxglr}~|nyhs_mZfXeZ_TaYe_jcj`k_i^hbll|pub~e[|S_Vibtkzsuqpjh~^XoRF`DGcCSpScfgdh`jZj\k]l\lZi[ndtku{~xwiqbmbnfh`aV`V^zSiYo`k`g^e~]`z[a~]\yZYxU_Yg\eZeY\wN[tMVrOQsORuPYzO]Pi_vhpy|}~oxhq`hTjUkViSeOfQ[L]LbOeThXi[sgzpsgj`jaar[GUGosˮس~d\8F2ZvSUxP[|M\PaZndxl}onucl\fXdSdRePhSfQ_IcM_QaReUgUk[k]od|u}soeg`j}cZkYTfVn}ovurkh|_XlMH_?E`?XrU^|^c``Zc[g[l]n`hYl^rb|hps~pykrco`p]jX_QbUbYc^ofjai]dYd[eaddv|yjpecgblexpw|tyqxnpn`y^JfDGbBLjO]zZd^fZj^i[m[n^j[h\k_ymqv}owmpfi^i\lapepfi^e\e~Zi\k^dz[^uV]sU]tXc~dij`z`TqP\yPf\`Y^wQ`tR^uTZvSUxP[|M\PaZndxl}onucl\fXdSdRePhSfQ_IcM_QaReUgUk[k]od|u}soeg`j}cZkYTfVn}ovurkh|_XlMH_?E`?XrU^|^c``Zc[g[l]n`hYl^rb|hps~pykrco`p]jX_QbUbYc^ofjai]dYd[eaddv|yjpecgblexpw|tyqxnpn`y^JfDGbBLjO]zZd^fZj^i[m[n^j[h\k_ymqv}owmpfi^i\lapepfi^e\e~Zi\k^dz[^uV]sU]tXc~dij`z`TqP\yPf\`Y^wQ`tR^uTZvSUxP[|M\PaZndxl}onucl\fXdSdRePhSfQ_IcM_QaReUgUk[k]od|u}soeg`j}cZkYorȱʭɫ:F4[vS[yQ\{NcT[Rb]c]d[i[fUeR`MdUeUeQaNaQ_M`M_QgZeYcXf]h]i^rh}rwjg[mdrpoovu{snm|gk|g\sZIcJC]GPfN\w[a]g_cTfSm[jYk[iVlXo^n_m\n^i[i]j^j[bThXnaofncf\f^`Uc[hbhdpt|{lmielexo|r{pthl|cd{dh}hcx^XkNJbDLhDYsRe`kdnbl_l]j\k^eYi^n]p`n^gZf]h^i\pdrftiofjbh}]gyYew\at][r][q]^u_ZrZf}gkk^yZSqJVuMYtPZqO`sTauV[vS[yQ\{NcT[Rb]c]d[i[fUeR`MdUeUeQaNaQ_M`M_QgZeYcXf]h]i^rh}rwjg[mdrpoovu{snm|gk|g\sZIcJC]GPfN\w[a]g_cTfSm[jYk[iVlXo^n_m\n^i[i]j^j[bThXnaofncf\f^`Uc[hbhdpt|{lmielexo|r{pthl|cd{dh}hcx^XkNJbDLhDYsRe`kdnbl_l]j\k^eYi^n]p`n^gZf]h^i\pdrftiofjbh}]gyYew\at][r][q]^u_ZrZf}gkk^yZSqJVuMYtPZqO`sTauV[vS[yQ\{NcT[Rb]c]d[i[fUeR`MdUeUeQaNaQ_M`M_QgZeYcXf]h]i^rh}rwjg[mdrpȽش8F5a|\a|T_{O_~N^PcYYyRX|RZRaQdPdOdVgXiTgVaQ_KgVfZeYfZc[d[i^gZf]rj{nqapd{t~y~w~zysl`t_bud`vcXp\PfQMcKJiMYuUe^dVdShUhShSeMhOeQaPdUh[j\j[cYcVdXm^qdshodlfjgibjelghfkm{zxlcmargwmvjiy]anXYiRYjS_o[jzg_pZPfIQeG_tYgdidjcmbn_m^h^fZlZhXhYfXcZi_l`mbqduhrjd\\sP`rS`qYcucfyhczgh~je{ge}gihfa`yTRoHMgGPeLZnT^uYa|\a|T_{O_~N^PcYYyRX|RZRaQdPdOdVgXiTgVaQ_KgVfZeYfZc[d[i^gZf]rj{nqapd{t~y~w~zysl`t_bud`vcXp\PfQMcKJiMYuUe^dVdShUhShSeMhOeQaPdUh[j\j[cYcVdXm^qdshodlfjgibjelghfkm{zxlcmargwmvjiy]anXYiRYjS_o[jzg_pZPfIQeG_tYgdidjcmbn_m^h^fZlZhXhYfXcZi_l`mbqduhrjd\\sP`rS`qYcucfyhczgh~je{ge}gihfa`yTRoHMgGPeLZnT^uYa|\a|T_{O_~N^PcYYyRX|RZRaQdPdOdVgXiTgVaQ_KgVfZeYfZc[d[i^gZf]rj{nqapd{t̠۱/:0ffc}Z^zQZyI_Rd\\{VX|ST|N\NdReSaTdUfRaS_Q\Me[f]h\kalcdZc]_}VYwRjawpvhxkwy}vvnj{bTkR\o\_q`Zn^Yl]VlVJfIJhEZyQcYeUeSdThXeQgRdNcMcQgZk\l[j\i[l^pcqfmekefae_fad^idlcmfwwxmmaoesjqgdwZOaHKZBL\BR`Hao[kzf`r]ThPPcKZqVgcofqeo\o\jZhXkYhYgUiVdUdZk`lcnfulvnod]uQUjLZnVbtdonlnhke}glorskjjd_wVG[?BT?QgQawbffc}Z^zQZyI_Rd\\{VX|ST|N\NdReSaTdUfRaS_Q\Me[f]h\kalcdZc]_}VYwRjawpvhxkwy}vvnj{bTkR\o\_q`Zn^Yl]VlVJfIJhEZyQcYeUeSdThXeQgRdNcMcQgZk\l[j\i[l^pcqfmekefae_fad^idlcmfwwxmmaoesjqgdwZOaHKZBL\BR`Hao[kzf`r]ThPPcKZqVgcofqeo\o\jZhXkYhYgUiVdUdZk`lcnfulvnod]uQUjLZnVbtdonlnhke}glorskjjd_wVG[?BT?QgQawbffc}Z^zQZyI_Rd\\{VX|ST|N\NdReSaTdUfRaS_Q\Me[f]h\kalcdZc]_}VYwRjawpvhxk嶿䴪ʞsp.X5?Z5>Y2=W1+0@,:M6?T8AX7>Y4Y6?Y4@[4?Y4@[8AY8BW7BW8EY9F\=CW=DW?DY@BT?>P;9M48L49N6?T;FZ?FYGYCFUA@K93<+/6%.5$3;*6>/=E8@H?9D;1<20?26G4?Q8CW;DY9DY6CY5C[8B\9@X6?W3BY6BU6BW;DY?CX?CX>DX?GZ@GY@@P76G28G7?L=DRADTB?P@=K>AQBFUFDUDDU@?L93=-+5(.9.4C69K:;L69M19L1:M2;M6=P9;P89P68R29T3>X5?Z5>Y2=W1+0@,:M6?T8AX7>Y4Y6?Y4@[4?Y4@[8AY8BW7BW8EY9F\=CW=DW?DY@BT?>P;9M48L49N6?T;FZ?FYGYCFUA@K93<+/6%.5$3;*6>/=E8@H?9D;1<20?26G4?Q8CW;DY9DY6CY5C[8B\9@X6?W3BY6BU6BW;DY?CX?CX>DX?GZ@GY@@P76G28G7?L=DRADTB?P@=K>AQBFUFDUDDU@?L93=-+5(.9.4C69K:;L69M19L1:M2;M6=P9;P89P68R29T3>X5?Z5>Y2=W1>>???@@@@@@>>>===<<<======<<<:::777555444444555555222...***''''''((()))(((%%% !!!$$$(((,,,///222333222000...---++++++,,,///222444555666777777777777888:::;;;;;;999666222---(((&&&(((,,,111555777888999;;;===???@@@@@@>>>===<<<======<<<:::777555444444555555222...***''''''((()))(((%%%!!!"""'''+++///333777888888777666555555555666:::===@@@BBBCCCDDDCCCAAA>>>:::yyyssslllddd^^^XXXSSSPPPNNNNNNPPPRRRRRRQQQNNNIIIBBB999333111333999???EEEHHHIIIJJJKKKLLLMMMLLLLLLKKKKKKKKKKKKIIIFFFBBB???============;;;777333000///000000///+++(((&&&'''***---000444777:::;;;;;;:::::::::::::::;;;===@@@BBBDDDEEEEEEDDDCCCCCCDDDGGGJJJKKKKKKHHHDDD===555000...111777>>>DDDGGGIIIJJJKKKLLLMMMLLLLLLKKKKKKKKKKKKIIIFFFBBB???============;;;777333000///000000///,,,((('''(((+++///444888;;;???AAABBBBBBCCCDDDDDDEEEGGGJJJMMMOOOQQQRRRRRRPPPKKKEEE???~~~yyysssmmmfffaaa^^^^^^aaaccceeeeeebbb]]]TTTIII???999:::???HHHPPPVVVXXXXXXWWWWWWWWWWWWWWWXXXZZZ[[[ZZZXXXTTTPPPJJJFFFEEEEEEDDDAAA===999777666666666555333222222444777:::===???@@@BBBCCCDDDEEEGGGHHHHHHGGGHHHJJJMMMPPPRRRTTTTTTSSSQQQPPPRRRVVVZZZ]]]]]]\\\WWWOOODDD;;;666777===FFFOOOUUUXXXXXXWWWWWWWWWWWWWWWXXXZZZ[[[ZZZXXXTTTPPPJJJFFFEEEEEEDDDAAA===999777666666666555333222222555999===@@@CCCEEEHHHJJJMMMOOOQQQSSSTTTUUUVVVYYY\\\___aaacccaaa]]]UUUKKKCCCyyyrrrooonnnqqqtttvvvvvvtttoooeeeYYYLLLCCC@@@DDDMMMXXX```cccbbb___\\\[[[[[[]]]aaaeeehhhhhhgggccc]]]VVVPPPLLLKKKIIIEEEAAA===;;;;;;<<<=========>>>@@@DDDGGGJJJLLLKKKKKKKKKLLLMMMPPPSSSTTTSSSRRRRRRTTTXXX[[[___bbbbbbaaa___^^^```dddiiilllnnnmmmhhh```TTTHHH???===BBBLLLWWW___cccbbb___\\\[[[[[[]]]aaaeeehhhhhhgggccc]]]VVVPPPLLLKKKIIIEEEAAA===;;;;;;<<<=========>>>AAAEEEIIIMMMOOOPPPQQQRRRTTTVVVZZZ^^^aaaaaaaaabbbeeeiiimmmooopppnnnggg]]]RRRHHH{{{zzz|||vvvhhhZZZOOOIIIJJJRRR\\\eeeiiigggaaa[[[XXXXXX\\\dddlllqqqsssssspppkkkddd\\\VVVSSSQQQMMMHHHCCCAAAAAACCCEEEGGGHHHJJJNNNRRRWWWZZZZZZXXXUUUTTTTTTVVVXXX[[[\\\YYYWWWVVVYYY^^^ccchhhmmmnnnllliiigggiiinnntttyyy|||{{{xxxooocccUUUKKKFFFHHHPPP\\\eeeiiigggaaa[[[XXXXXX\\\dddlllqqqsssssspppkkkddd\\\VVVSSSQQQMMMHHHCCCAAAAAACCCEEEGGGHHHKKKOOOSSSYYY]]]^^^]]]\\\\\\]]]```dddhhhjjjjjjiiijjjmmmrrrwwwzzz{{{wwwnnnbbbTTTIII~~~xxxkkk^^^VVVSSSWWW^^^gggkkkhhh```WWWRRRSSSYYYdddpppxxx{{{||||||yyyrrrjjjdddaaa___[[[UUUOOOKKKKKKMMMPPPSSSTTTUUUWWWZZZ^^^aaaaaa___\\\ZZZZZZ[[[^^^```___\\\XXXXXX\\\bbbiiipppuuuvvvsssmmmjjjkkkpppwww}}}rrrfffZZZSSSQQQUUU^^^gggkkkhhh```WWWRRRSSSYYYdddpppxxx{{{||||||yyyrrrjjjdddaaa___[[[UUUOOOKKKKKKMMMPPPSSSTTTVVVXXX[[[```eeefffeeeccccccdddgggkkknnnooonnnmmmnnnsssxxx~~~}}}rrrcccTTTHHH|||~~~|||pppfff___\\\___eeeiiifff^^^UUUOOOOOOXXXeeesss|||zzzuuusssppplllfff```\\\[[[]]]___aaa```]]][[[[[[]]]``````___]]]\\\\\\]]]^^^___]]][[[YYYZZZ___fffnnnuuuzzzyyytttllleeedddjjjtttvvvkkkbbb\\\[[[^^^eeeiiifff^^^UUUOOOOOOXXXeeesss|||zzzuuusssppplllfff```\\\[[[]]]___aaa```^^^\\\]]]```dddffffffeeefffhhhjjjmmmooopppppppppsssxxx~~~qqqaaaQQQDDDxxxxxxssshhh```^^^aaaeeeddd___VVVQQQQQQZZZiiiwww{{{wwwssspppooopppqqqoookkkddd]]]YYYXXXYYYZZZZZZZZZ[[[\\\[[[[[[[[[ZZZZZZ[[[___eeemmmuuu{{{~~~zzzrrrggg___\\\bbbmmm{{{yyyoooeee^^^]]]aaaeeeddd^^^VVVQQQQQQZZZiiiwww{{{wwwssspppooopppqqqpppkkkddd^^^ZZZ[[[]]]```bbbcccfffhhhiiikkkmmmoooqqqtttyyy~~~ooo]]]MMM@@@wwwvvv}}}wwwjjj```[[[]]]aaadddbbb]]]XXXXXX___mmm{{{|||tttjjj```XXXUUUVVVWWWXXXYYY[[[[[[ZZZYYYYYYZZZ]]]aaahhhooowww|||qqqfff]]]ZZZ^^^iiixxxsssggg^^^ZZZ\\\aaacccbbb]]]XXXXXX___mmm{{{|||tttjjj```ZZZXXXZZZ]]]___cccfffhhhiiijjjlllpppuuu{{{~~~mmm[[[KKK>>>|||zzztttggg]]]XXXZZZ^^^ccceeeccc``````gggssszzzoooeee]]]ZZZ[[[\\\\\\]]]^^^^^^\\\[[[[[[___dddjjjrrrzzztttiiibbb___aaajjjwww|||pppddd[[[WWWYYY^^^ccceeeccc``````gggsss{{{pppfff___]]]___bbbdddgggjjjkkkkkklllpppuuu|||mmm[[[LLL@@@|||pppddd\\\XXXYYY]]]bbbfffgggggghhhnnnxxx{{{wwwxxxuuulllgggfffgggiiiiiihhhgggfffdddccceeeiiiooouuuzzz{{{rrrllljjjlllqqqzzzwwwlllaaaZZZWWWYYY]]]bbbfffgggggghhhnnnxxx{{{wwwxxxvvvmmmiiiiiilllnnnpppqqqrrrssssssuuuyyymmm\\\NNNCCC}}}sssjjjccc```___aaadddgggjjjlllooouuu}}}|||sssooorrr|||{{{uuurrrsssvvvwwwwwwvvvtttrrrqqqqqqssswww{{{}}}{{{wwwvvvwwwzzz~~~wwwooogggaaa___^^^```dddgggjjjlllooouuu}}}|||sssooorrr||||||vvvtttvvvzzz}}}~~~~~~ooo^^^PPPFFF~~~xxxrrrmmmjjjiiiiiikkklllooosssyyy~~~vvvmmmjjjnnnxxx}}}|||~~~zzzuuupppllljjjhhhiiikkklllooosssyyy~~~vvvmmmjjjnnnxxx~~~~~~qqqaaaRRRHHH}}}xxxuuusssrrrrrrrrruuuzzz}}}}}}|||{{{|||~~~zzzsssllliiimmmvvv}}}xxxtttsssrrrrrrrrruuuzzz}}}}}}|||{{{|||~~~zzzsssllliiimmmvvvuuudddTTTHHH~~~}}}zzzxxxxxxzzz|||}}}|||{{{|||~~~~~~yyysssnnnkkknnnuuu~~~}}}zzzxxxxxxzzz|||}}}|||{{{|||~~~~~~yyysssnnnkkknnnuuu{{{iiiWWWIII~~~|||}}}~~~{{{vvvqqqpppqqqwww~~~|||}}}~~~{{{vvvqqqpppqqqwwwppp]]]MMMyyyvvvuuuwww||||||zzz{{{}}}yyyvvvuuuwww||||||zzz{{{xxxeeeUUU{{{xxxzzz}}}~~~xxxuuuuuuvvvyyy{{{|||}}}{{{xxxzzz}}}~~~xxxuuuuuuxxx{{{~~~~~~nnn___|||yyy|||{{{vvvrrrqqqqqqsssuuuvvvwwwxxxzzz}}}~~~|||||||||yyy|||{{{vvvsssrrrsssuuuwwwyyy{{{}}}vvviiiatanks-6.6/misc/6.bmp0000644000175000017500000000056612636021030012566 0ustar apoapoBMv6( @  atanks-6.6/misc/15.bmp0000644000175000017500000000336612636021030012647 0ustar apoapoBM6(  UUU```HHH444vvvSSSAAA333444oookkkeeeNNN222444999kkknnnCCCEEE===;;;111ׯxxxOOOGGGPPPBBB777::::::ooouuu<<31=/1=-0=-1>,2@,5C/5D15E03E.4E-5G-5G/7G35E/4F-5G/3H-1F+3E+6E-7G/6G/5G.6H16G2=M:ITDIWE?O;9H37E4;G9AK=CIACJBDKCAG?=@=357*./(/-',''/'1;29D77E57D39E16E/7E17F29G39G19H27G17I16G15F/3F-5G/9I19I09I1;I49G1:I37G19I37G/4E+7I/?Q9GX?CQ<=G7BIAGLGAE===:;99313113+--/1/113-//%*((0).9-5B3&2%x}wzw|z]a[G;=H8M7T5AV8@V8AW7CW8CW8CV8CW:AY:?V9@V;EYAUdN[lSVhMI\ACV?GWEN[LRZNSYNTYQQVNKPK@DE:>@2875850502:0>H;EQACV>CT;DV>EV>FV=IY>GV:EV:CV;CY=CY?DY=CY:AY:BW:CX;CWEY7975:8899:555575::;>>@588273/80+6,&0%|z}|}{z}y[\Z=@=9=:9@8?I=CP?ET@CV=FX=HZ@CX=F[@Ja@Kb@KcCKbAKa@McCJbAKc@J_=I`?I`=NdBMdCLcCIbAKfCKfDIeCMfHWmPey[k`^sUOdHReLXiV^jZag[af_\b[Za[TZXHML<==;<9:?<5=68A6FTDObIObGPbHScKTdIQbEOaDReGNcDOfFNfKRgHNe@MhCLgEOhFNfEKeCKeENfHLeDOfDOgCNfDNfHSiL_rTl|`fvZVfL^iXbi^X\SPOLGGE@?@?==>=9?=<@=@>=@?A@052'/*")"}|{{tut^^`GHHBGA>H=GSFSbQNaIMaCLaBPfIPgHMgDQlGRmITnHSmGUoJRoISoGQkBVoFRmDRmGTpMTpLSpHRqGPqGQqHQpKWrQjdvmriazV[sO\qVfu`jtghpickc`g`bkeV[WDEDCDCGJKELKNbMYlQXlNYmO\pQZmNXoP[rRXqMXrL[rQ[qOUmGVrJTqISqGWrLUqKVrQXrPWqIXqFXrGVpGVoL\tSew\umxnmbeu[n|gs}mfmeVXRDBBB>>D@=D?=B=?A>C@@C9>>(/-~}twwrrt`_aMPLGNEKVK[hZZlWVmPSmKVnLWnLRnKRoJSqI\yPZxPZzRYzPZzNYwLZzKZxKXvNXyRWxPXyJY{LX}PX}QWzPXzSgdysw|lhYb}Xj}an|mp|roznkvjozoemeKNKGHHQPTSSZIOP@OFFXKWjR\uV^vVayWcyXe|ZazW`{T^zQ`yO_{S[zP^|RYzKY|KZ|MZ|M^~U`}W`|Q_|M^}K^|L\xP`{Te~^qjuvwhnbzuus]bWLIFIABKDBKDDLGKCBE:=?5::/34 x}w}rsqqon_`]RYRN\PZgYbs`_v[YuT\uSZuPWvOWxQYyQ^zRYyP\R\P`R^S^RaS^SY}R[Q]MbT_W^X[T\Ueaoj{||kj^j_smwrwptruvt|s[_VLJJPLRVT`UYcGTT>MEPaN]y[dag_mbm^i}YiYdVeRcWaXaV`T^S^R`RcUdYdX_T^T_RaTaTaTj_xi}zxfvrxwaiXKJCUQNNKKOMNQNRJIM=?A57:357#&&v{u|zw{rrsloulemeO_RR`S^l\ew`cy[d]^}XY|S\}O^Q_Q`R^O`P`ObSbSdPdO`QdUcQcSdW\Q_Q`SfZja~tpp_qetj}tyuywyuaa]POTXXe`dt]flITOEUBUoRa\hbpds`nVmWhWjWeZ`U`TaWaYdZcTk[hXdS_SaWdScRcPaPdYnay|~rvuqlVXOVUPXZZMQRWWZRRSACE9;>257(*+v|u|}}zwvws\l^N_PVfRbtZj^f]^Y[S]K^M]L\IcQaScUaQ\KeNkRcQi\gXhXfVcPfUdTfVj\pezln`jbskwpyt}|_dhY\k_cqbhqR\X?Q>L^Hbx^hdi`o\mVgS`PiUgXhYfV^R^RfYcRgXgXaO]MdQgQeQeS_QcWfYsb~~}{irfX\S]``TXYZ[^STUEHJ<=@89=&()xv}}{xuqesfM^NCXCSnSfdf^bX[VZP]S\NYK]N^L[IdR_PeVeUeWdXeWhUgQdMdXg]iZiXgTumψtm^ocwo}ymsu_ao_gtdpyallDSC8L2ViQmej]bQgTgTkVkPjPhQdOYHWK^RcTiY^S\P_LbN_L]NbOYL^U^OfSnɜysnZ`WYZ^Z]bW[ZVXZHJL==A99=(),yv|~wx_r_E[DE`EWsUd\dZaWcSbTYMUM_UeXYL\M^Q]KaJeOeQdSfRfOgUiZhWeWi\bRib~w͝ɘ}mpcwo~}cij^dniv{r}k~bAY:EX@bt[j]gRhOdJfOiSfQcNeMbK_O^PeSfT\OYMaR^O]PcSjWbX^T^LcNo^uŗԥʟeo\CE@SRSZ\Z[]_KNP8;>459()+zv}yX_KLLB^`YdhgQUW=@C238&()~}~s|dgo^flgZ^^BEF238%&(ɤ}lvhY^XEII47;#%&~|y|jreQVP597{wvyou{jobKOG(*'wt}ţzoasjzrv|ur|lch]EHBvs}zʟȕn_j^k^h{`du^amY[bSKQEwt|i^bVazW]qSWhPN[HEO@9A5xvz~|xvvj\fVa{SXnIMcBEV>9I6,8)yvy~|vqwhi`dYaSWrLLf@EY>9I5)5&zwz|}~}z}ptfgZbU`SVrMKfCCY>:I4)6%zw|~~{wqwidScTa}WUqMLgHCW>8H3+6&zvz{}|zwpyhn\fRbNeRcTh[eYaUe]WsSSiQWiWM\WNYa`jpx|{x{xsvkif]bXkbsfynqdm^j[_Rh]eUfQiSfQiUmYnZkWpUoTnSjShUjYhViYiWgUfTgYj]iab^^yU`pVbdQTTJRQNXSRSIKQEK\UXkgede`]d_clijymrmqjrkrisekZdScSfUbR^R]OdVeYdXcYa~YWrNNfHCX>9I5)6&yvz|}|wznvgm`dVcUcVdWh[iZcV\wYRiUVgZaqfZigKX^NZ`ZdnnxyuyosltqqfagbmgodrdjVeOcN^Ni\dSjTmVgLlMiNgT_NiPjTmTnWo]hVgXiZjYnXmXmae\XUZ|TdzTk{ayyiie^SSQQSPHECF=>PKK[\ZY]]X]]dphonpklhlkodlcl_fYdWbU^McQ`Wc\cVdWdY`|RZrMLbCCV9:I4)5$xu|||}{y{nwdn\cUeWfZe[g\h]WrUQhTK\OZgderoSa_HTZIQ^LQYNX[nyzryg}nkilanbtesbmZgThQdN`QgW_LfUhTjTlWdPcRfUgUk[kRlVk[hUhXcThYn\k]mci_]TbWl`thrug_\VONKSTREB@=42ECAGLIQUVdjgpnqlqpnmkhjdkak\gTaN_OdQ`LbPcT^RfZbW]yPWrLOeCEW89G2+5%ytzzu|nxfj\dTgTk[h^g^d~\^tWTeUJWO[fepzzX`_MSUUX_UV]HMQV\airoewj`{feeohrjujsegYgVhWfT`OjYgUcRbOnYpZlWgUjTgQkTnSiTgZhZh\h[iYo^k^k_gX_Ri]ulyogh^MLDIJDKOMMMKIIB?E=NURZd_l}nslvltnsnpgg[i[iWeShVcTeSgQePfSbShYcV^zSVrNPfGEV:8G3)5%xs}w|~uxmudi[gVlYo`pbk`avXew`_i`OYWW^amqvdegSSQSQP]Z^PTXOTXW`Z_s^banossqolbjZeSjVo]vhqbk]kZjWhSjXnYmZn\mTiPlRmVbP`RfVl[n[hZl`h_fXfUi[vkw|m^^OGE;IICWZXVXULPENUHX`Ygxitrxoynvnrio^fQdRhXeWbWcYeWhSkViTdWh\cY^|XVrQPeHEV=9G3)6%xs|x~z|pwfn\iYpdthnbctXXhPUbP^f`Zce[afcfkX]`OQMLKENNJOUST_Xas^xqtopopnlji`aUdQgSnZp_m\eUhUiUlUkXhWiZkZp\iVgQkVkVgQiWn^l_cVi_gacYe{Uoayowyh\bMEH:HMDYa[\b\RWLZcRgt`xq~r}nwjofgYjVjPePcTbW`UeXbSeRhUkYjbh`]U[yUWrQPeHDX>9G3)5$xs}x|}|s{jn^k]octhgz^[mSQ^KU]PQ\UP[ZZab^dgR[\HOLCH=FJ>OZK]qYibvmztzvrlmdbXXQZM`SdVgUgTcQgVjXlVkXcTfVl]p_s^nWlYgUfRdUfYj]k\lakbi^hYqg|s{vhWaIEH:HLCSZQai`cl]hv`pi}sp{hsflbh]jYjVcRbXbZ`VdSdTfWdVfUg\maeYZvQUoONeGCY>;I3)5%yu~y|}{s}pxlocobj]_sTTdMYgUYeVWdXT_XNTQJOKKRPITMGSDUdLb|ZrgwlujwpvnlacTcV`W]ObUh[cRfUgViZl\hSjUhXgVkXl[l]q^salWiVk^k`eYk^h]f[i]mbrm~~{~tZhQGK>LOFX`Ugteoiypyqvn}rxkreh`f]j_i\dY`X`YbVgVeRaOeUfVeWndkab~YWsSOgJEY>9H3)5%yvz|{yvtzqsjpeeW]uR]oVao[]m\XgWWbVRXPJOGHOCU`O`tXl`vixjykvkqdn`hXbQ`R_OdRdUeWdThYhVgVm[lWjTjUiThTjXk]o`seterenbmam^j_dYdVk`iekox}k}fR^P[fXdwamlup|q}qyorhndncf[dZg]eWeZcYdWcTbScO_LbPeU]Vh`gad\XvRPhHEX=9G3)5%xu}y|}zu|rxqunrdo`nclfhu_YdSZfVan`[h]TcT[jTh}]ug{jyixirfoefZdT_MaM`P`L^N^QaV`VbTcOcRiTjSiSeNjRkWfVj[pbuewdyfzisbn[m_eUeSoajgflp{~soat_lgrlyswuymuik_fZk_h_d]aY_S`WaYcXeZc\_U^P_SbV`YdWdYdZ[xSTjLHZ@=K6+6%wu}x{}}zw}rxom`k^rbxmunkr_[cNWdQevbkjhdrk{op{jvenagYhVfW\P[M_PZM\O^R[Sb[fab]]XbWeQfShThTgPhPfVcRgWk`obrc{l}kzbudp`jXrfuravbk|o}}uqiyrx~w{oxmriladZbZc^_[^W]UWLS{MZ~UdZl_g\dY_Q^M`NcTcWaY]|WVqMSiKH[A>M9.9)vszu~y}||zv{nxmpbobk^i^ev`gp^hq^^oXjbxr}swr}jwfkZdVcScNgQaP]N^QZN[NXzNLiIGaGWoV_y\_{^iaj[hSeReVfXhXi[jXgUh\j_k^p`ucyfqszjtjkictb[m[onzuwx{xxxnqhkbg[eX`W`[d^`VaSXIHn>FhBQmKYuSc]e^eYcSfTeSgZaXZySUpJOeDFY>;K5,9(vtzv{v}xzxyyzsteqbpanae[XoRYjXk}kro{qwvswft_n\hW_N_ObRaO^N`PcReR`L`{PTiLG\DEZAH_GPhP`v^khl`eRbRfXeXhVgPjXgZeZeXeUk\sg{itsynpgmeqgwmx}}z}oxilag^_XcWaPbTg^g`eY^QXHTxJLjIG`EHaFQkQWuUcYeWjZl^g\cY\{TVqMPeGCW<9I3(6%wu}xz~xx|vztxtyuxkuftavcqbeYkfut~tmxfp`hWgU`S_O[L^OaR_RdX`P]O]NcWh~bexdUjSK`I?U=I^IVmV_w[f[dWg[f]eXeRiXhZdUgVeTjYtgvgzj~osprwzvvq{npcl]h\dZ`\cXeSjYkbied]ZTUKZ~T]{Z_yYVoOJdGF_DRhL[vTf]f]f^c[^zTVpLMdECV<7G2&4"xu}yzxy}zxusrqjpfpcs_tbziuzxtqwds_n\iXaQ`OXK]K^L[JbRgZi^cX[Q\S`|Vau\brbhyij}e[pQNbD@R6D\?WsRbYg\eZbXaRfWdWfUgTdSjWsdvgve}lvy{}z|lueqam`eWgZ_Xe_c]f\kZm_nhopb~bUvUQzKX~S`[lbj_a|[SkNJ^ANdIPhM_w[gdd}a]vVWpNOeEDX>7F3(5#yv}z~{y|xusomkdf[g]tf}nwz{|mvfo^fShTiUgRcNdPYK[K`NcSfVgYqexnqeh^h__pYFTFScVm}kvplebsXH`B@X9G3)5$v}s~{~}|{zvqmmbe[_Xlbvj{m}lsajZdVbRbQcOfRdP]HaL]P_QcTeTiYi[mbzs{qmce^h{aXiWSdUl{m~~tspifz]VjLG]>D^>VpT\z\a^^XaYeYj[l^fWj\p`zf~nq|nwipam^n[hV]P`T`Wa\mdh_g[bWbYc_bbtzwhncae`jcvn}uzrwovlnl^w\KeFK`FMcPVjSTiQM`GDV>7E2)4#t{ryv~z{}|{vunncl^d\kflfmdqdo_n\iXm_n_n\jYj\hXiXh\ocnblaofpfqgypy~rodumyxww}|zvuosoezcTlUOfS[oYe~djfohl^o]udrbsdq`tawgvhuevgqdqfrgrdk^pavjwovloeogi_ldpkpmx{tuqntnwyx{ptlmmppfzaXhPL^GK^EM]IL\JETA9F5)4%w}txuyw|z}~|yqqdqcpetkkfjflfsfueudujwjyhwjsfqawjwlvkwltmumypwlwoz}su{rqsurtjnewfbta`ybkivpujugxixgxgvbxdvfseuixmznzmtktjuj|pux~u{wzwyszv{wxw{|{t|sw|zyos}jkyfkzgq~mp~m[iWM\IIUCITFCPA7E5(5&yx|yw~tu}t||{twnthxo|vvrspqkvk|o}pyq|q~oypxnvk}u~vvy{|t{vxrsoyzqovvxxtwsvrri~hietn{s}q}p|qs}n~o|k{k{n~tvuvuw{~}}~y}x~y|w|{~y}~|tlygitbjvboxgyusoXeVKWHAK?=H;7A5*3'zy~{{ww~uxx{}|}~y|s|s}uy|{|y{u|uxxusuuux}|yyuyu|z~xvryvzzz{||}yyqlrn}yzzwvwywww{{zz|~|v{w|y~|ulryfpxeu~kyr{pynPZQAKB7C81;/&0#{z}}zxwusr}|{|wzz{|zy{|yxz{{}{}y~yyv{wzv|z}{|wwyv||z|}}}~~~~{}v{sypyq{tzunwoMVN:F:.9+", zz}}xtwvxx||}}||}~~}yz|}{{|~|~{|v}x|y}{}|~ww{}|||}}|~x{t|u|w|owoCPC1;/!)zy|{wvyx~}{{}}z|{}}}{}{}~{{{x{~}}~}~~{{{}z|{dnc7?5"*"y~y{zw~uyz~|~~}{{{|}~xzuz~|~~~~|{{~}{yyv}z}~~~~||}}z~}}|~~~}{~}YcW#+"y~y}}v}vv}uzx|}||y}y}yz}y|v|x}y}y}z||}}~}|yyz}xx}~}|{|yyxzz|}z|z|zzwtwu{y}||z}zzyyz|}}|||{||}}{|yyw{y~|~}|{|{zxzx|yPWMatanks-6.6/misc/11.bmp0000644000175000017500000004320612636021030012640 0ustar apoapoBMF6(PF  yyywww{{{}}}}}}{{{zzzsss}}}xxxwwwnnn|||www}}}}}}}}}wwwxxxllltttqqqqqqzzznnnrrrvvvlll{{{eeeqqqfffrrrcccvvvaaammmbbb^^^RRRcccuuuUUUwwwUUUdddeeeooodddQQQGGGRRRUUUEEELLLNNN___hhhKKKOOO///LLLAAAIIIRRR======HHHQQQXXXBBBLLLJJJ===FFFQQQEEE???EEE;;;LLLFFFDDD===EEEGGGPPP>>>CCCNNNSSSAAAAAAFFFHHHCCCIIILLLQQQ:::JJJMMM@@@@@@MMMLLL666SSSKKKPPPEEEMMMEEE@@@TTTSSSNNN___RRRXXXOOOSSSRRR___[[[III]]]OOOcccbbbYYYXXXfffXXXTTT```TTTjjj[[[kkkiiimmmmmmeee\\\qqqhhhjjj\\\iiifffnnnpppiiimmmuuuooorrryyyttt{{{ɱyyyrrrkkkllltttnnnrrrjjjnnnwwwrrrsss}}}aaalllkkkppplll[[[___qqqxxxcccxxxiii|||wwwkkk{{{|||wwwtttuuuppptttfff}}}kkkqqqlllhhhpppgggffffffkkknnn___mmmUUUiiidddaaaZZZaaaccc```ZZZhhhYYYQQQRRRMMM]]]WWWfffLLLZZZZZZXXX]]]PPP777KKKGGGIII>>>;;;TTTNNNMMMIII000EEE@@@AAAJJJDDD;;;>>>DDDQQQCCCAAADDDBBBBBB@@@>>>:::888@@@AAALLL;;;BBB???:::III@@@NNN<<>>AAABBBLLLOOOJJJ555EEETTT>>>AAACCCAAA@@@SSSQQQPPPNNNJJJ@@@CCCUUUMMMJJJ___DDDJJJKKKTTTUUU___WWWLLLYYYRRR^^^]]]UUU]]]```SSS]]]QQQMMMbbb[[[___ccc^^^eee[[[RRReee```cccgggbbb___YYY___bbbbbbqqqeeebbbdddiiirrrkkkxxxnnnç~~~ttthhhgggqqqggghhhaaagggrrreeeoooppp[[[ccc___ggglllSSSXXXccclllcccyyyrrrmmmmmmkkkmmm___tttqqqmmmeeelllssskkk```mmm``````dddnnnvvvcccdddiiibbb^^^^^^hhh```bbbXXXQQQdddTTT\\\UUUaaa\\\VVVPPP^^^XXXMMMFFFNNN[[[JJJiiiGGGBBBZZZSSSNNNCCC???AAAFFFKKK444999OOOGGGOOO@@@000EEEFFFDDDJJJEEE;;;EEE@@@TTTHHHKKK???EEEAAAEEEHHH777@@@KKK111MMMBBBCCCBBBFFFWWW???GGG@@@III>>>CCC666FFFUUUFFFUUUMMMBBBFFFKKKCCCRRR@@@TTT888TTTHHHKKKNNNHHHAAAJJJQQQKKKTTT___SSSVVVSSSRRR]]]___cccOOOZZZUUU]]][[[jjjSSSfff[[[ZZZaaaXXX[[[aaabbb___fff```___VVVddd]]]dddsssaaaccc\\\___WWWeeelllkkk___ggglllfffooouuuccc|||xxxnnngggjjjpppaaahhhyyyjjjnnnsssZZZmmmhhhmmmgggaaaTTTcccjjj___oootttbbbwwwhhhttteeeiiinnnttthhhrrrqqqiiifff\\\gggdddcccjjjllllllccceeeccc___ccc```iiiOOOccc[[[___dddRRRUUUddd```QQQWWWXXX___UUUUUUKKK]]]XXXXXX]]]HHHZZZMMMSSSEEE777EEELLLTTT666666PPPGGGZZZLLL777AAAFFF>>>UUUOOO>>>AAARRRXXXJJJPPPGGGUUUDDDKKKSSSJJJFFFRRR888RRRIIINNNCCCVVVbbbOOOMMM???YYYMMMPPP???KKKbbbPPPXXXXXXTTTFFFPPP___QQQRRRWWWLLLDDDZZZQQQXXX\\\NNNUUUJJJXXXYYY[[[iiiXXXaaaUUU```ccctttXXX]]]^^^]]]ffflllaaa```kkkeeeccc[[[]]]gggbbbcccllleeeeee]]]WWWhhhhhhvvvggglllgggddd]]]sss```nnndddkkkbbbiiiqqqllljjjdddssstttmmmzzzpppmmmkkktttxxxrrrrrrsssrrroooiiisssiii___cccfffccciiittthhhzzzqqquuujjjbbbzzzssssssjjjuuutttfffeeemmmggg___tttkkkyyygggggg```fffgggiiimmmZZZhhh^^^aaarrrLLLfffbbbgggVVVXXXXXXcccfffgggYYY\\\eeeWWWiiiWWWOOOXXXUUUPPPHHHHHHQQQHHHOOO777MMM\\\WWWXXXKKKEEEOOOMMMSSSSSSOOO@@@NNN\\\]]]RRRaaaNNNTTTSSSddd^^^NNNVVVQQQHHHkkkKKKTTTWWWhhhdddSSSUUUbbbYYYZZZPPPQQQkkkaaaQQQfff___\\\PPP```WWWnnn\\\[[[OOOiiiXXXeeeiiiWWWdddVVVWWW```lllhhhmmmlllXXXkkkvvvqqqlll___dddlllrrrnnnyyy___}}}ttt[[[vvvggg___]]]pppqqqtttllloooccczzzkkktttgggvvvnnnfffuuukkkoooppphhhllltttooottthhh[[[jjj|||¿{{{yyyyyywwwoootttxxxqqq~~~yyywwwrrr___rrruuuiii|||uuu{{{}}}rrrwwwrrrxxxnnn{{{|||wwwtttfffzzzpppxxxuuuuuusssiiirrrsssrrrsssjjjjjjjjjpppvvveeekkkdddnnnkkk___cccbbbzzzttteeedddwwwdddlllmmmSSSjjj\\\ZZZVVVHHHYYYRRR\\\QQQGGGYYYhhhdddVVVIII???@@@AAAfffYYYSSSWWWhhh```]]]iiiccciiiYYYmmmdddeeeQQQhhhOOOvvvXXXWWWgggtttbbbmmmeeejjjrrrfff\\\ppphhhtttsssrrrppp[[[bbbeeexxxttteeennnkkkzzzssslll|||gggnnnQQQyyyooojjjxxxnnnxxxwww~~~sssrrrwwwiiihhhlll{{{ooohhhxxxxxxwwwrrr}}}rrrooozzz~~~www{{{tttwwwrrrjjj{{{kkk}}}lllvvvzzznnn^^^[[[jjjxxxuuuózzz|||yyy~~~xxx|||tttzzzwwwqqqzzz}}}|||kkk|||xxxfffttt}}}vvviii~~~rrrjjjvvviiirrr{{{;;;###IIIeeeZZZdddjjjTTTccc}}}eeeTTT"""DDDnnnoooeeeuuu||| xxxsssUUUzzzeee[[[zzz```(((ttt|||mmmjjjkkkooowwwzzzttt~~~pppooo~~~zzzzzzoooyyytttvvv{{{gggzzz~~~xxx}}}~~~|||www}}}rrrwwwxxxqqqNNNllloooeeevvvȿhhhwwwyyy}}}uuuzzzttt|||yyyEEE]]]jjj^^^~~~yyyFFF888ooowww}}} ooonnn~~~{{{\\\dddssswww~~~}}}sss{{{|||{{{ooo~~~}}}zzzjjjrrruuu```fff___iiigggyyyĩzzzuuu{{{mmm}}}||| hhhmmmuuu!!!$$$aaabbbttt777444}}}{{{~~~{{{}}}rrr{{{~~~wwwTTT```kkkdddfffwwwuuuȷڟzzz|||www{{{}}})))pppooo))) iii***nnn^^^$$$---vvvvvvaaa---666|||}}}ddd```dddgggaaaeeeooo|||ĭ|||zzz{{{tttpppxxxsssooouuuwwwDDD\\\ TTT,,,xxx888&&&HHH222 xxx~~~xxxyyyaaajjjpppeee[[[iiiiiiţֲyyy~~~~~~uuuyyytttuuubbb}}}aaassslll~~~tttsssrrr|||pppwwwqqq555fffaaahhh***%%%kkkzzz000??? """+++PPP~~~YYYzzz{{{rrrpppllliii]]]bbbgggooo¢~~~kkkqqqqqq}}}www~~~vvv\\\oooyyyhhhlllppp{{{qqq]]]eeeooorrrtttoootttwwwkkk NNNppp(((www{{{eeerrrqqq \\\HHH'''444yyyzzzwwwxxx|||qqqgggZZZdddiii}}}ȷ~~~xxxnnnxxxyyy{{{hhhooorrrllliiivvvuuueee\\\vvvsssvvvzzziiihhhkkkooowww[[[tttkkkUUUlll>>>___zzzwwwbbbqqqccc|||KKKYYYrrrBBB$$$yyyyyy~~~qqq~~~fffdddcccmmmnnnvvvvvvkkk}}}~~~xxxkkkxxxwwwuuuqqqiii{{{www]]]}}}WWWwwwjjjyyygggQQQjjjjjjoooooobbbhhhvvvSSS```yyy\\\hhh[[[[[[kkkyyytttbbb%%%]]]xxx]]]TTTrrrlllsssrrraaa\\\...555{{{~~~ooo}}}{{{sss~~~xxxeeefffgggwwwsssժzzz{{{{{{yyytttxxxpppjjjrrrqqqnnnwwwccczzznnn```gggsssqqqvvvdddRRR___ppp\\\iii^^^lllccc```]]]VVVjjj^^^\\\ZZZXXXcccxxxtttSSSooo jjjuuuyyy[[[iii '''nnncccoookkkuuuǭDDD$$$uuurrrtttRRR666...vvvzzz}}}~~~|||~~~~~~yyyrrrzzz}}}kkkdddhhhiiilllvvvΩzzzppprrr~~~~~~hhhxxxdddWWWwwwiiilllWWWxxxeeehhhpppfffnnnuuu\\\MMMhhhHHH___```qqqccc```TTTSSSmmmUUUVVVZZZLLL^^^oooZZZdddPPP ___qqqyyy<<<===lllzzzpppmmmCCCKKK PPP~~~{{{vvvwwwxxxzzzwwwooooooyyy~~~}}}{{{iiigggbbbmmmtttĭssssssvvv|||~~~qqqfffwwwyyyrrreeeyyyrrreee{{{hhhpppKKKlllmmm[[[rrriiiiiirrr___ZZZSSSUUU^^^PPPgggoooMMMcccUUUYYYQQQZZZHHHWWWYYYnnngggaaa]]]PPPaaa\\\HHHvvvaaajjj$$$NNN...rrraaa|||(((===(((bbb777aaa %%%ggg|||wwwuuu}}}uuuxxxvvvxxx{{{ppp}}}~~~yyy}}}ssswwwvvvqqqyyyyyyrrrpppkkkiiimmmĻє{{{vvvgggtttzzzzzzrrrnnnnnnoooeeeeeennnkkkooodddbbbSSSjjjYYYdddhhhcccgggfff^^^UUUSSSMMMUUU]]]rrrOOOcccVVVPPPTTTSSSKKKaaaLLLVVV|||ZZZdddXXX\\\JJJvvviii((( %%%lllbbb"""***wwwuuu222xxxvvv~~~{{{nnnrrrvvv|||}}}ggg|||xxxzzzqqqoooxxx{{{www}}}wwwzzzsss{{{dddxxxsssnnnż˵wwwtttppp~~~uuunnnyyyfffyyyrrrmmmssskkkgggyyyfffppphhhjjjaaaeeeNNNqqq]]]MMMeeejjjvvvcccbbbXXXQQQWWWUUUJJJpppkkkPPP]]]LLLNNNSSSUUUSSSNNNQQQkkk```rrrbbbOOOfffKKK"""dddfffBBBKKKtttnnnPPPxxx///ccc|||tttyyyooonnnvvv}}}cccssspppwwwyyy~~~ppp~~~}}}iiihhh|||www{{{kkkwwwnnnvvvxxxddd~~~}}}ʷȶvvvyyyuuuzzz}}}|||}}}xxxoookkkvvvlll```uuudddnnnjjj|||oooPPPdddXXXLLLqqqjjjkkkgggaaadddBBBXXXKKKTTTgggeee^^^VVVVVVUUUWWWTTTSSSeeeJJJ]]]yyyiiihhhXXXnnnOOO[[[xxx000^^^GGGoooqqqRRRyyy,,,{{{qqq)))PPP'''___}}}yyywwwqqqyyyZZZggg~~~ooo{{{yyyxxxvvvmmmrrrttt}}}kkk|||~~~vvvyyyddd{{{|||ȸvvv~~~ssszzzggg{{{www|||sss{{{cccuuu|||yyyzzzhhhQQQhhhaaatttuuunnnkkkdddqqqSSSlllYYYYYY___ggguuu[[[ddd___[[[RRRjjjZZZ]]]gggsssdddlllbbbhhhfffPPP^^^ooolllooolllrrrhhhnnnppp^^^fff[[[___pppgggvvv݉))))))FFFssspppmmm;;;%%%{{{AAA'''KKKrrrvvvvvvvvvlll---&&&bbb{{{iiitttooozzz~~~yyy|||ssshhhvvvΎxxxxxxbbbyyyᄒԸ|||tttfffxxx}}}yyywww\\\{{{```cccrrrqqqtttNNNeeesssssszzztttjjj[[[bbbWWW|||rrrqqqtttccc~~~ZZZdddvvvcccsssuuu```}}}vvvWWWqqqtttף~~~lllvvv}}}~~~׻lll|||娨wwwnnnyyybbb|||~~~zzzrrrkkkyyyZZZooo|||~~~rrrxxxvvvaaa}}}aaattt{{{iii{{{}}}wwwϴӧžƫ˱ÿΟ຺ɠijvvvȰ{{{tttppp}}}xxxwww|||yyy|||}}}kkkzzzТδڟ̫ɳܫϽؠ˥ʨȷػ̵ֳýǢĹnnnooo~~~qqqdddxxxrrrɟ̱˱Ҵѹ⼼ƻʵӴ̰Ըݣ٬ޜľ׳Ž޸Ůˮnjۨ˾ΚxxxrrrzzzkkkyyyrrrsssكÚͽҳ֪Ħӻû٥ؿȧ֡޳ƺۺںѰټ־¶ƶӛҩ¢}}}›}}}–ғˠ橩ƺİĘ̶꽽ھ۹ڮѾͫݺ̵Һ鿿̷ֵƼл𱱱ɻǺ¯ϢĬѹDzϫȻͧϳϮȪƪʼڶԶ˻ȟԿıӯʘԻ⼼ۗˬȦ˫ĴĻatanks-6.6/misc/14.bmp0000644000175000017500000000336612636021030012646 0ustar apoapoBM6(  WWW[[[VVVYYYxxxXXXYYYQQQ[[[rrriiittt___TTT]]]LLLuuu{{{ssshhhOOOQQQVVVȋ}}}QQQKKKVVVKKKѵdddRRRFFFCCCDDDʰrrrddd===>>>999LLLۡ]]]GGGٝqqqSSSOOOɆfffPPPFFF^^^OOOCCCᢢyyyYYYEEE@@@¿yyyUUUEEEPPPٷgggYYYRRRӰrrr^^^¥uuuҹatanks-6.6/misc/12.bmp0000644000175000017500000000336612636021030012644 0ustar apoapoBM6(  \\\JJJMMMLLL000333333wwwXXXUUUDDDCCC:::@@@iiiWWWWWWAAA@@@ܭttt|||gggQQQ>>>󵵵xxxXXXIIIŔfffNNN===AAAMMMnnnOOOIIIUUUݘjjjTTTUUU{{{qqqeeeLLLɆ]]]MMM˯~~~TTTVVVKKK:::===<<<ҽlllqqqeeeOOOIII;;;ܭƑ~~~uuuxxx___aaavvvjjj婩hhhҺ԰atanks-6.6/misc/5.bmp0000644000175000017500000000007212636021030012555 0ustar apoapoBM:6(  atanks-6.6/misc/17.bmp0000644000175000017500001700006612636021030012653 0ustar apoapoBM6<6(<  [v} OL r^qj e]Grv Y_hXUYfk~~z ]Ne |{~ ov{ zm{ yjfF4{  xju{XV iq\I ~ yp[V<OsgZ[d a2Y p!T]m m z { KJ { fQSs j_| m RLn   hkh j>:w mRQQmt !\k v Fo } qW _Zkjyrbo  gx mQklrhNow { oCexk}res_w~ }Qwz [:Xz |z x wsx{ ~o k ~ PhxY= U VPt%X ~ ww xbm ypngz}Xra|  z sx suz qT ~ t }qOx{ q xn r~ey  z y f{~z}ds}mtx}r}gsss ~p~Ti oI)h k1iwqot fMv  v N1H{vgrser vW j  ~^| ^K Yf l &W~l pl~rR m}iVOvoiz k{yyXRwtr^j y nwsv^q pPn_ SP#h ~m wm} ^o zp tC q ztG6Xo e7Q n  l)RgPY t v w g[}gdw]p}iswi v?Qx\Rhh obV Y &9t}|ndDqgwu| dp }    o r dIzzUO  vsq|V~ y^n |hlt  r }poos\i }mu{upnyvWtbpk[cEm  gu rwy kt qmvp w go[Nabmusyz } u| k~aR4*aT>Sj{]Vo|{| kwa \ ^ 8ruHlp:ldUp}tt nrzz}{ |Jv i } ~ q Ll}tdh qS<p |n Yo yf~ | y dqt} |  j ~s }j vn }fS,k!ks] wpTcx txy uqV,TgarSN zz xbsr  } o }S|s  qjoW>OD9X p|tgWv<h {zqi @e~ } vmw | ~Kn vVs x \p}pkY^~{  _m[ jjf pb?@v i kt{WnmM_dJ ~  j }  s  q|wvr}{Qbpt } iW|}gOp { xa`Zj zqg x p~lCOdU{  sZB> j s`O+l ppi |  {}t}nz( wa{r\r{w^g }rnTx] w bholo ry^lw_ss | {r karf z } nlh[cw qg  r  su w U_ fzyiq}gD`m\YqQ3 i}{Hf j~r_\bgu `c {` { ~ rqar r}   ~~h|~xj \fyx`^MZu`ry^~x o"efV`l~jX `qzure~xuP ytn] p u^hm`Ax hZbm q j 1 i~Xev {lunFjo5lfU l s3]piYQvh*V~ndQy y rq}[ Y mgzP=SPC9r oPgM h5 b vfjhMVr k P  UdpxnLWrgxqjbY ~ ceg]\[_hsr {v}h_hrj~~~x ~w |{xygu |wzV>x xqgq|sRUyaq dW |~{l j R[ r rZ]g\*HTBTNMdmo_[ w kbreU ~~ n TPn |{iw kwu OJ   p [H\ouXonChxt[[Tgdkwm[f l z Uymsv u \l}x^k |solp { xY v ~kHQgshtjq    v nyzUep`4RNChS {x|bfuw { vg  ^t  x] xup z oz||c swwSpmtkuvh yiyt lz ql`| ~yvp xyt { ~ rl  ~ cfqN%cr7ZqmppcCgw kR%8hpjfvuet sLj | ]v\ d q s 6Uttb{  ~ c pw |P nz lT?etaXy  fw}ijVZxt  poqk mq vZb] ~ZJ"Q qbguqgu ^dnph>s ytW C[h[5X qx c (_ tWRgu qn ys m{  v{tct GY  {j_jdp uji6F}~wQk k{os{thq ~ cc\HbeJL   |d_ }sb   nz tus t  o~sxwbq ytuw|y ~ { atmg r $#[ypz mt ux}  y | smmb`nn ~    qn~yvW>.hZEJTk`]`ul^w~crf[\=vzP{ d`1a]Towom s |Vy  {h  | z}eVNoy  y}o  qp zlU>l zhRl ~m ~ } kli pmj y | r  twaS,^q h ~oV r s Zet z|{yyc(CQSjz LHhw iz }uhp w ~ |n J{ zv   zs r XEUQHakx u\|Fe~rjgg  lKd { zsw  Ypjnl ow  sl} { e v!_bbZysf:/f h vyp h zyc v vZ n zw|hk igt ben|}I^w nkmia| y [Bf ~ {  rnb u m  z sI[ pYy  u YSM]u r[Bg|qknwwyzhr eez sj }  n~|YVmt oJhm | kjigklsZboatnu }w pcoe z ~ w { sppV y  spkmiLY gwwmo t hW pxaV i P=u!|\ffNm{{ k g w} } iYeXl up}u} z}  sw~waqt m^ fl qykbR\ul  q{yym \]]VO mkbuz}t  ]w | wosZ ngQf pbB u pe n ajh0`zf~x z ~Zh { TvYkg Cix l``>b qcX} x w| f9Sk gy \K\\ UC o qatV pGq~ wm sZg  n QyX^otkbHH~  tgf~ tusq ytsivibt yphr |u ]iiiljrt[`ucswwlt~zx{YO  t u  ^l gwi h   ~z feoxari<[dLkXW h rdde ~ a j\^ y k rkd\q~ } \O  t ^[pk]{ { Wn | nl h tmbcZBNz x o|pr {jnvmld\]t hx nr x  snrj[ 7:Ut }Z u rPUt z u yso\i { Tt gNdHk{x{tQF]vmjpvZux  uWnl`Tnga}}zu w {rsv { _ { } l} utmuk_ zaf_lpjX_qppxg]Zxxo ~ vq~kk|zwlpdegou|  {rftW.g& Kr   { k Ae}hZY 6 Qz z{qc r  lGktY } | OXgeI^iR<]isi^y  Su~  pPv lYfswv^yxgfW`nd{|z z s  }mh v\<Twsr sjjzks w_3Z |gcrmshQF:UyhHl  j8hoalz ldlpkyq{  lxKV   |x}t   Y[{}| umP iz  zsr||xztw ps t n r r RS} u j r t | qimu  p xu y| { vzm`r rjswtuqtqbqwf z an |eqsqXhx hq {   ws |  |} tt~ { ~ pw rgo{bs w[ { jn pZ\UFh[G[uz`u z k o[ v NjvvOsiax | ssus  gWswj} qukSRWlmeuq  pozlrqf^Oy p Y r} }u e}   }ukz gY_   iiu  nhGjzv  | Z qybeox|zu T] acyZY r sef_ZLF |unh  miKvlfpwowumzuht rlv oOfi ?Ug^gags jPU v ivtu ~ | Za|}myy  zuwrqQc~hlyszsf _5A] Y x ~ } }tbo l Y eu]s o~x^SOEWqv~igtZf |ymcin~tiIdsl m^ w   fy|}mjwpnJd }cy tYo mbrfs~ne\h_gdRa^Wf mei ry{~ YJ^tlPi   | pnogkgdrh { lo{{tmxowqW^qki z ]mwp~ slsw jNYvoovvv z u g^ z p_hN: hfWWWVHmwxcb  }cinl{ ~ x r{ ps s{o Xdm fYf~ap  myuk]`st zl{ xq^fX`g gQd YX { ~}v  gq } | opEXyp ~ !xSx obi w } v =^ oZn`z  l s  c!pzd9ax v q nPe  u i s o Sh x }ityd\ ylKsw|_h~w[ | nu  fIf{siv  {tz  y tgl`Xk |jc v p  { jsh~     ~ }]] |tq s v y  Sm}bjT\x|vqnt{xd ~y \ys _ tot p`fEQv yi  a}|^X[r autyfX]fliM@_fg vm]}{w int}o n lu{mk fO] xrwosr| u{ phc\y eadUXfu{~ hgmm lP Pg |_ iHCYojgmz| xu ~a"y bz]pw| dS\el]QigM_[e{ tanmqf||uo}kn}okvdjM^s ~yw   mZ~w d\MacdZ_pqtpp  }pzla|ydSw|x | ljda`fnsqt{ocjR7 `rLk ~q { o Gy  eYV9Qwnu}rY]xyYs  u`n s } l[gp peq y`Qk i|f~ u|uZ w va yp  zrajjYskmpj~rp yw{  oYf } u  ~ ~sxT` ~ | kirvTWSmziOp St {  ul^ln z vy  } RS tuww lxdf y gXDZl] {s{vo  yx lrwvdby | j a lP]eZbn_[Viioaamn |usx |zjtb\nqrnvobcfng\p^DSNMM[akuuu]ervdgyoi}rf`]^bvw} rjjdlZ\qlP[} } qux\b }h~ ~k" qp^V !tt t m{ o w lzgx e{mj } oifl {ce |{s}  s ddWk|z j  sw s q `y jUZ\\VF]dboetvq}wwx ohNKnsp| u wd|  a t!m n{ {yt ho oj wac ytshdZOjyt`V q[{ ib^_nq| } x z tduz ir pU]aIboi r tu vf[ z\mmgtqs^Y\ o zoluy|}}}|~ x S^p bi{|ped C] _Ift|v ufjcTuqov^s r  ~ n lXe    z  la{ qm | iSmoax  q\omdwe|{tdfnk t F d o~t]_aV  tt ~  } w  ||viqq`]dVMx|rk~  s_VhaUh}xu {  x   y q |n rkty{ihwyylZZqqkjy  xu xt q bt {swpesuehP<_^Sb_ t ox ZX }  oolz {s wl}x~gk|q n} rUW^TFt gq yg x megq | ~kavn} yukhg w\\HPlkitggh[o}_bxlccv  RVrv } q| rQqpg r { zrHhyagdhy tk[ksdQ z okNble`VoqEI sWrx{z`su kZt r~y[ZfXgzm{ Mj xw`bfp{ { kJYoqu  r U_x  | hcx y ujer | nljmh[i}pku  zs zclj_aky z p x]^{vmOWfcXZjnRoq}`cy{vip| v`yukzdi}sqejY3@a\Mllzpu s l{ tq  u {`f ~}v re rqv~qkfq }t\hw}pa } }  u| }o  bMbkjjjjuihv } |sjnea u|} } yq wa{ reu } z  }tql v ZG^]Mg^^o ~mY lu{p{ox ad kxc]q]abnp~l[ s q ol\dh u sw  | ~ ~  qyq`lmrbK]Y]quihl u} pkxqgskhfNGZYE`gYztdA|~ o w fFL y  |~t YkpiTbosW`i PRflluy~ogs g |k} u{rbqcx~Wmdrqu n{{jtu|r_geVmplgd ~ x qljhup uscjp vl| {t]klj]g tq~t lv g!tp}v^ s~ |Qt x{ ~anq{q mt t s w {SO~ xd\asgjISX EK[ v } i t cS BX ]CWQlq iaVqc{y|~tswquy_ac_jpY`klo^AIY=XlerurthrzzjQZ[ad[^qsqe { mn {u} | }  ~ nscucddgc~sssldnsgdqmb`klaXd`jmcYSXHTpoPUqmgg~ qexna]blwUu{qnWer { rwr zyu~zh ujol^[aqktv gkvnmz~q` igKb upxZqsi}txytp\fr|k`RQ\]Ob`\]HX_`aZ]lnwpY VJq z ot|  opk   fvx zwwrowpTfohngl z{pr y`Nr{y m  vuo }cf zrgmkXjt Zct yonnc |qqq { i nx virs } u s U\llo ~ |}{|nu} syv b]ep l| mw|how umkp tmy| o quxrou ^^pciopkv| uik  vi vslm}~l smtw y | z vYr    y qidwoz }~t{}}``dWZ nhcz p ifof]ksehZgoju z zr k ~qtxta[du  ~ vk } s } ~pchu qxrswp[Tk ~ }  rm { wlt } qvl_|yz~ j v [Si| rpof hv umukXkue rkwkdthW[f \ Q s | h v } k vzfbgl  pny  zu lqgm}y`itgonWm~fcmfNawz  t s`\r]ifQn ~sm~vW q$&tvs_e }qg]ij][ py    qB7n bHVU`fQewj g \ckbw lnco }r cntzxroir x nQM\ yz}zx_]gv{kOK_d_h tsernqvwvbal\YsjSe^bzsfcMYvb`]MMSfmeXl XRhu  b]p yoy~ c x'*v }fmv{k^| om{mv s lQUpd[ulkw j  dj_k xb{{ z dv{  hc ts |vw q{ |xhNb nzfwtow|w|atodsv } dJ esusq p |bl  ~ y oh t~xzzhe {t|kZp hkjl ux~|  j h|gRmnfjtcGiy`m zr~ ~vx v } t [_ goiepc[Vln w rj x p y x`h z xswi]s~lozqu  twt|tgg]krhdjpkYwuqv{}f k pic y vc }c=s| mu`\|w    y  _ rtnWU[mfm pQTk c_yq v i|d^wv~~lp`r} _md^baMV_]^gyr_ef^qrqfZxro  rw { nx kii xxefbpe`ym\W u }ntgYjc ov |lywmEt~ss}}qlQX[h _[m v fggt|[Pj]`y nkW\U CCGadQhe] N jw_]Xin k cUbl  {}{}   osodqz em t |pfygr nzrz ~ut~xx[^gmfW]r f x hp { yus  ~ wzzhw y  v t{p b{ vv y lkbLSqscgnronqqr xoT\ yzqqr a r |\[tnSWo yld|uce m q { P mtzyb w oz rnxl| z ~iiq`k mu ivm ~YWu trlf~l z z_z~nxrrr vv wumuy ~ v mf u vh~ {mp psproq }} ~ \~ dU k y uln jutr  pnhgvvY p}vww~ |}zp{{hTilX[Yqvo { oqiu {gg  v  jrw Tbu |ztp }xxyt|qu } uxv } w waekbk } | | vly v} vmahv  vx!z~eeof`^^ q t} |tt`lvgkperz c`rmol^[orxnrgnwxjoo yumn{{fPUp u]d`k    rj t ^n}  | ql }}yeinpagfxtqtnn[] n^Yp{q kr { vdu ysksvhfkegpk~ f zxmbr ~ mrpdinmhb` ~  ~zxh`n s rtwk_di^Rcptntrfv u |^vwy x k]Sd sar| g\qdlowy zh u~i| yr wz ~ o ebJ<fn`lqequ\Xa\z rr   uousygz t tav}r xc[ypxs c| zp yTS`UYpVNhq ~ w qdSRntjpwt~rstJ@l y ef l \ak[o~ qs l u wnu bZcj]nvwfeuow n   qw {  p s $%~|[bu   |bfxzoey r~im{wy } vlmUF\fUKgbj { }pQT ~ xs u\z iZey nUc qgu tXjxbvktix|ybluylZtpl tox   }  l gmlunnj}tYg[iw}fNjslqvgw Zm } jnhNTndmsli} v  u{iNm qxyqzqb[jxr  esu wz y ~ k eS\t|  tv nv   smyk euz{zj|oux j[fce^[kiwxv  |x er'"rXgo kktmPl}r z  sqvrveZd_Zr|m]b z  v e ~~} { dn ufh\Ni}gjt |r {xu}kiSs p[f }  s y  t vy~{ xexmJux]gp [S[NUhnt_Ml p zyt  { } limiysjs szon}wxq {q { {jtq wwten~o o ll hm]G_XRmZ`i v frqtx iw l[n ~vtegm~ml {]Ruxnp^@PyiNWirrggxqypW{ yv jZSUP\X[gsrshs n [ xqs os k dgazuk|zr\w wnihj syq hm } x{ w     tv| `de w  p`x x|w   w q  { gj  `kW^hlzmqm`[[g | s~ z whg_lZXnhioi~]ap~  wf_kz z\c  ~  vi}sWWuwdbnlefxylwzZj r~cj}ooe{n _o ZM nr }y  | } c[nrfUp q{o k {^M x x}~u n |w xKoto z qjqXaqy     | yivtdz | {xuz{tp xxZou\YZsjsrlsce z {  x Y[h[_skpqpxtu o v| tq twwhs | y npwqf| jciywj y luuw| w|i| {qp |oiinqkie`rsrlngjbjn [cqmpvsxst zyttjmjq~{d_h]pxo~ }} zo`PgiegsmS^sqvzc }  hd x ~ jiv orchpmyr wpcLhncyvc^afLVju{xsyxhabHUm[jb^W ulm  w q w yx ybkl eZgni| z hi tdy  {u{{ }kg f y ~ ivx | vumehfe wq [xtqtrthtpek jk xpv y ofu} y ~  u xc y vafr  {p^k semj_iig]KYgaTeselrm }x | p lRHy |hb[VnzWT`Pjy e^kgs } xyqVow z f| | iwtne lwsv} e`u { xp_y xj obi^`{eSen } os \Q~ puypYhkkgOLrzm| tn w h  w}wq x z x maYtalqtirthy~ h  q{ p nh p u dmt~ OLluhoyyy^eazefrss{y   p_ v {k yfu| m 'm Y|z xo {_{{ e t w U]} vOcpIfml~p~ lw ~UZtok^Nfglkku^Xw]_oplir nlx g\  ky Ti ~p ~ w V\w z x t z kYgq p {sKc xvy  jt| l hkhvtzd cP ^w{  w  ~ea`emkn{`bqw ipxm zhf| ltnrww ntrqfhon}oYljgbHQs pbh vw qvqQbnjn y ynho ktt{ pzub`vl ~ r Y~y ~ fr velj`|sos |b x q ~ }fa{sty y thjkt reg| ~\] v e[`pj{ekpSvzai`WXX]iali\hcZkdkz xz w iepzke\n }{ ~  |~| { ls ylo znru{ jiyx ojfl jUyu cpzkgx epcoh]kcEo xq zon { on yi_x kp } bc uiv |ps uws jull  jhroZ_\_cotnPVr n]|  {yy |swkksn ~g{tvr^Ub q kMRbvuytcnv}  }  tv~ fi fy~i br ~ slx_u~tbxk zf u} jYax v~dvbfknpq{ ~ |rsu  } vQhcn^gxomnj y b` w o |wy{ u| s} ]]zt^^~ o o {vnj~  n |{  zVMnsOOV^ZNeLEibxrRZQl mmvc^ml[DGM`^ y f pP}y  ttrrYpiijWsmiho { t yY_^ZXZibipby  { j {yh|v  yzwZ[Z |^Sim`l^q\ddYf`NN\\UeZ:7HEWt kqz z  wlf^Zldz pgMbt r ckvnc{xs} zfsere^w x muq  |mdew } yqsw}   xgvvqoywgc t ksukid\ghdplcqy  jdrqvpahp_Y]Uhz } p _{zhj ~u[g yr^ f[fl[qbnv qssgjxse gt Tn { s v z z{rr  |yw uK[ r [jbVD\_`|vsxv } viy  }{ s O]~lgsymmkwpsg\rl { qt z kg ex}xouvrcwvuko } ~   pfp{iyyz|ounY]`h qWSg v vt xin { w ydx{qco{isphs   xw s]mrcR`rjp leohnqo}y{q q]Z]nqth\ioYYhQgu _Pe_ak[l zkm][][N g j} _ y p ~ vjJrvdnyur ~v`\gvn_Ldm^K_z ~ x } kc  r brs | } z s`Q z k}|v n  ^\  qu wzosf~mtu]n|v" | o W n kyqoqp_vjTp  gz gt ^T]gii ~ H_l`  ]rlkdadOuld w mvt{os~ z ~ strin |s[PE[`mkj} sOvvudxwmvZ^v |ft ~ b~c t~ trx {jpznz z as   {xsh^j]oW^wp xau |jcv   okslz sUQ_p`n olNSovyhvzl t?Pq[es [n   x u  ~   tbeioz{ \J \jm z y|y qhoi_gdYlWwhLZZcUQrX y !w` wpqxqk~  nx { gspiukRxumpK^gVV`k| wtjpn_aeffku y otu | zx w[;Bty[cb`qw]Xlgpcq }yiz{ys_xrik]~ ea p \`ij_lwuusu{ymr ~qldbusel }qingr }ds nRonuvko o} vy ylzj  iv  }wtzn{wjYzo`y olr u mkvajieoZap tslp  tqwywep w o _p n |  |  syah ~vece{ ydVmxq y |  t vsxr[XjrjXc { jlkvzvpqe~ wr rk tkdml wdML fXTs tk| ~u  |jwyx hr u{e nueo zmWNg`_Y`eeroY`n`v ~ o}vhgchmXBF`^rwid u k\_nrml^^pxrVemwgup v s rs ~ w q  stxjuiq } {r{ tdrl]_rso    ~ {~||thYt| y wunk |x``lhw\zxnt gS r vr j p s b p ne}  a  hNlt~ wxlz | qOScKPlgflut\alwk\mqi^ { k xlbyuqeptpjuvip krgeuztwi fneqqsz y^iprxPQ|z } lx y z }zv`r dUbagr u mabXEXx{ pokrf_qnwos oOibtogjSUf se^u zx]mwghr}}mocz nTdRWb^h~}hf~gs " y abvqqw~ su|  ro |z zqh]_jkilnn iXd]agLTf  s{ zkq yjkhjhdu  oeet~ z | jk b ~ vi r `cta`go ss{phtz w |ozxxy | ao } u}dpy} shrQt tx fe qpml`WZgfSKiq~{y { [`vwlm| vzshofbVoolewqblvhq ~ ]hy d}tlwr{ ihYcj_Yhojmvq`_]k |xzk |tsde\^yj v syozu_ch]iZamnl^f_sw qf_  ~x  m  {  { d sl| |  {wurdbqlkw }qouqbRaIy t PQMANJMdglhgkibGQ[ x o_oouxvx`^brwkwaj  u am z SircYgohha z nRT n~chkqs`wj Tk_ xr v  c]t|ys so wnuypwxNd^em q _OXf~ycgrhYe{Xo } z^szjq{u   Nbp^z{bxn_VXH o plsfx |x^`okt qlrvusnls o u jplf{_ssgmhxxsmrYc } dl}k\Zaez{ u v w sysolbr |px{ u  z { v c\wjck_}qcO]jbc^_swvyoz { eYciZe^l zs{tewlL[u rrr YfucWWI_u }ywouvl  `0BVTZbgjalitqo z ujkV| jbUeRJwhPj iTv}u ~ pz sv  kv w ksp _ _ x xu r |}zp }v y trs w u qt |g]_TXY`dz qUS ~ p  } c`t qr^`or ~gx~xtki`RZds} `uow  q kwyyvy  w w~zmx{_qmeeU^rqaiytSj |er }baw yxss zpt`oq[d~ wx u { pP f \OZTW`bXWcptpo nkkkror  ux z zu hqz| | e\v o v qf  { p  |y u tnj}zp iiw hz|x{}yml v| tet rdmjz {z|wvyxs~| sl~y `Zw l`v v kvshz  ~jwyv}jg`j^kn]n} x g`tm p lg v { spse w   |yud^jbFNa] j omfx r h k u tlngdq } {_p ~nfcahsgruftkpsho | ds\{ q{ wvimuon }{wyzmcf}{ ~f |  qlwc\p| ml| zq^l n Ta^^^ p rmm lb zg  s yq| `tt[^|y| { t[[[ll_h {tf|yzy |m}rckf_x q^ch r^Pcrs uaay rvmejiTajox^cf { {  h|oZa[et {  yudKY o j`\Q]cfuvrln lVq n  y zadsxr_iwwg {x nlm nT]HM][_Uf_] p VZ qmuw_f xo}yqpw  {q wxy }om z znfjp o _kkominhx rbf { }gq qw q Ya|oY?Cb]W}  mv ~ l|"}~ z w y `o{|{purfdelkbnqwv t _S]mrlwfrzrju zt a ~{ | xuaYm qxmpf o n [r  yz{ |m^qo} ~ w |g`Zrtmn{wpq z y_dm  ~ wpmm } zxtruz ~ ~ { `_b]\g_l ~w }ko s y  y y o t uhlltlgjTZioxyxhk\eqg]Um | vyr^x}~osxt[_tg } v~  }| }o{x!wn Z z {Yl u`to]o {z z y }{`eg scyxtrtkmq}staexhPgqeNsrkx~^p w dXn{`lw z uhqj `jOn eovjtnptYPdx wcZgkzvuq_nakr zqncaosir zecqVozyq]p yv rdjsvu Z q|fqfQs s nxsu f { lxwz    bqy[c ~ ohis { | | xs z pZq  uv|~{| XXu mftkcb^bvxlmyhshmu thce}~smpf_Tgdm vdniczti`K`lYT5L^g op{} ~~w|} s n eZg ~rrjlwv\EZt w r \] w moq HE^zpjegv xf{jg@N_Wj} }lpyqrz l_m[{{siga%!{f u rPkvgf`quagny | mgpa_`Rru~~a y wx ltyjkf` }qf`bdgp { rrpkilm  \MubknhzxY]ut yfgll {r^jz t}v w ^`x  Rckmwwujq||y| z rv }r sp } ~ix mv~{rl | Zl qQ[zhPWSTiloqbh gnbMTWGHbi\\pw xlcsrgDYa[ k kt  ro } |x uj^bo rs  wxoiceuwvrSIdYczta{ se y  v}|  ~hhwsls\ds izy   ytu upd\b[n  rw}xnrv tjp|c^ rt | }vr  zo{u~ uhv xp iw o uzi|   y uYa" y p|wv | eq y liclaxrlpzupumgn ~ fu uoemq x  nwijqglvjrY{ s~ snsnaev~xwwhyzyto u~vo{m{qxr_m uht   yWgvuiXacj ppw v bR mt}pgupsyjkit v \r m fe w ~y vz q wir]faz } | k} y pxhKhk cVWg {jXhuu v bg  |grolrhmwxva pvs{q| o {~ v x} |r vzh P]q j p l j _dnsjd`Okjyr  eb { vd  jaj wv { } |q w[Txl]covw`k |x xptz ue ~ s|z }{ w  rr z xfkjh`Xkb`fWYlPWhj]h}}e]app ][msmPU|gO shttjpse } xnjno {ypv Uimkshsumlpv zsx uxvq}w |nx }u ~ j qdgx ub`x tx hu kTf x { rlkjm ~k l| { gprrfuvaruijhntvkqushrk}  yuu ~  zut ~sy} v  f]gbjxoe[hjeqimqcpcprx  kt {^^WZk ~t ~l  zrwjfq^lhZgqwqr zlv  qz y pgwzZ {x]z { _s  vywyk |pomw  { {oKh{ q\|pz  ett] w }\k } rqhcgd>Wgkc[]dwtxub^q}v} zjqs}||yo{mw   ylv {  ``qXehnwae} szlhpvr| Sg$ ~ qRo s qrszluwt`di[Xlx } Zl m BVy ndhquvdK]vdsxy  sqRF`so\fc y lr ldrt | jv {{ut~oc_z y t \ZNRbf tp|uldUcpcrWqs s  }|}{w| rj  r VvUZ zuwq^^w v{ s_Y v m v#%gVaz}x `t ws}a m\orU{ | {o{  { w j xqd t XTv j_o fx~wr { pim]g  {oyoqd }  g {vnthxvrhssk ~ {n_VW_iq^c tmmhblQu`bk_u}gfty szzmorq\^ q i^\Te y r^N u  wtdj v nh[d[isndcheaYfT`} chuo`|p  r f { $cm wj}g_lgq} i ttw r bdk ]Z| o w |V^h^gjv} kgwn|x y  u w yrq{yzupdT^og| gY o _ml]mmroaR[nc[\R]URIQm~_]b hxry~x}q^[NZgWa]b tqgdbOn ruyslkqou e[y v   {| y  zvzvl`aRWjWa`iuhnj=/Tbpr| xn } Xm {vtr  }rw  spn } knz ssgmn |  mxe^ocep z gj[n }lyotyu z | oelvjhg{ jXvyzyvs qby| ~af| nT[sa^]l|vO^ tmsx { } npz UF~|lj{fapqt ~ r wwyikcigpvn } { | k y efw rvauuhtjVeoz o[o cAip ~ n v n syyk]g  v su`oka^S v vfly uqu {tux{ |k ] nxhvzv|r qvk`v w  n m j ! y\z   tck    w } ~x hYz }v |wkyu  { {y  {j ~ lxeSZd`\m t wvrni[aY^jff ytrw v r |  x]O[ o phmqy _VvjQwofnbZd]FhsvcVjn ~yn y~  w|  c^`[ijtw y fx }}wv wn]_ | |woz } l } q W^oaq {curd` rZ fx v]psr_z vTsotxZd y Yjtunelkbliljvtlcgrslbu oz } n| nco`fpqa\nppuyo zclsx  m  T[[OZkl |t  zwwprk^i_TZ\gw iW`RsjSm s vxwso n h|_l|oxxzqd | wwknmqueg t K rvh x p`z{q  ucZg |vj z y q~ c z { vpaap ml{z | {{~|||zoqvu} {vue g Sjwolob { w ~eluns tGVq w ~du rjpoohnsnQ`k]QXpn  Zpu Th ~ g |uxxw~{h`q{ qr\a u u|!!w s cp~l\hk{pn_\gjlZm ~y| wqd pb YTW roivlgttrohxv |    } m{ f wlk{jq xyf[vwkKrQZ { vrsa { jdw} } t hkjeoddmvp h { u vkNY]8mot s vhvz q~ f`x u  ycjbcy d_j|kt  }gom MXut m v v l  g} ztx h rw vqx vkkv }{kk ~x {ruy`x r {"!t|ngr{gmpc_b s ^[nle`S]nheHSi ][p}p y oq~{u ~ xmgpV[w ~ v^UmrgypX~ u t  mbpt {ms~ xx|ol   m~|vvu tqxirs rn   |x~ ~ oiq ~vpbpxrr z o]kzrr qexisa e qm  q mhVp wg`Zek ro kt  qj jp { }| {|tv v _l q y ns uZpyx u z} { TB_nXS_clh`ib kw ~iuyv z ~}x}~vln\c_VWNgpVo xVFbchj }r}}r} j ~  {pryim v u mwxsom}~igZXR^gjxqc{mbrbamq]\\cnh^os`givqntuynh sg  wmv  }d  ||| adxo\e zso x i w  ~}  {iy}XX~zrq |r|{tof }xrivb`apufonmry^p bt w p~{p {jw{p{\ { rxn} v   ts i\gzukli  rq]y xoZCi{^Tlut`q`v {jzl yk[] uxafl`a{{q qhesoohi mKXhcf<A n^Leley|  xan detxrdp slyaSo|q} uke_r v \e|qgbe| lwmgyjUY^UM]ssj~us| | { | e]djcaemtcb_drrt qb\ o x x_I[a[y z  sq{gMp w e| |y{ u { {iovgkszrrxqqejqfPftwyv~vz~l_iyxumsm~ zm gUe  hQRq ropbP\{q] pg }fWge|  uc wsvYt \  }{wn ~ ~ thitz vi x ~ktv }xyv lmmw~ olwtortt |cmpw{{rr\vXWZZdd_a[Yltfn r z ov js rkhf[fy m yq uTeztn ~ { |pazv q~ telox}~~yvequceXjmc^omsqty_a wNy zxs| o]pv}|t {vgzwW_oi^ wmbttc { } s xw v w | oo      { lehvpq|nk v rZj { tppXr l lX`mjntIUs y  } " ww  gr zq fi } zpmx | hxzyvvoamrksd r ^Ocwt`e o ^qxy sgtzr{ { vbdnrmR`kcdjpZ`PUV@]aXYj|upwrmijzq}    { u``U\UdqUYs ~r xx z sr  tTwxH]tuccO@m ~ bUYivvt foxw zmp ut  yWq{Wrkrg^X fbXkhIIOGdp_ecnpppozvo{ptvufhgDU mfu  ula u yzuUq {tqc{ u}ziju xllx jb tkrh[fshWjwimhmw w iXj{ `hsrj`pih}  y{ ntb\m  nq |yj   zuhosppj w ys {e|z  mww `i{ }   pn~{|xxschu}b|xjgm z u fdn|v d`t wndjeMSbqu yl ywp`t np`TfbnsU bgZt ab g I`sqnd juqhdmz }oc lxfl }  wjt x`tZhd x jt zXg~xvthno__ikrp I>RbWDV^ihbi\M`n^ovwz { |w ~{ u| khj\ w xPq zd\qufRPqqmbo {z on zkhcony~ uvss khohm{se vm } ml y | khssvlarzhhXr {rsut |lol`{ ~ |am  x\z tmh{zvkktpiszzz   gh}y ~w{} ydr |X^|| t r~  u  y^Xo|~tlyk`dvtl} mr} m~jq p fi v q ow rx ~ n wtll_j jY^o nxkqhfb  y zp   y [obhot g{gt zh|j{{xylTOeqitrd[lj\ow{ wofiiOS[ca-9`ZYhcPhq q Yp} wsorti y u t ZMb vbe | z m[p {agi^MHZv vZfg oogvzozjfwsrunghfrv}_`ah z x y yn^ p    x m fk d^vtooxsxhWo|saogsntoioyilgx}qnz}~ hgfjUi r ~zqxk[a{~{vn z~ }byvYBQqp^GKabyhmg WXu {vhht _7DbaM`t~p o mf{}vtyrvk|| { { { zyxo} {rqjp p uvZdxhu xyvvk nouv` q i r}yyrt]yzf`ur\YRXgmavvhzrksfr{y~ub p  nZ w pmm } fctz} ~|fr~zrkameb n k s z  }jwz qx l {n{z {ty v q  q F o vqsmqs crpgppiutrWvxelure y  uw`o }r v|n enhwjd\\}gq }~ xo pot | ~ or ws}}ks|baop| sShrXqrat x  |} SZo moqgv v p~mp } kqs q ptzo v^o y ~   yeVgtlrb|\dysYWRBWjn|g ax  | zu sq ~ dryr } upWadPe u yq{  ~y qfkx{jkmirptdbkbTgfPHbkV`m \o{kzsP ~ w EZipcbhJawgd`QtrrYbvw  ~fb s j  w o xktxx pfXe`[vsUaq rm^px}ty{~z vRi  v mtzj]Rb`ywQh vnnmx yes ~ s  uj`bnyyl }qdytg\hqb_madi | x^vu} pz vs |yfnlhxw { o ~ }  eP]jfchmXjrr} ywogm t un g\bbiwuvxt   r dsjpmS | yaVa ~ qh]JZ`\V]jfQH[~} ix ~x zo   m\l{ ~mdkey ~ e m tcrlgmdln{}dg{lcl| oZCSiWMJe~i_qzycz ecXp]j z[l  toqbaqo{ g hq bz z|jbpy coulilso zqtzrzkq wm wj z { Rno_i rhhnfr zm`a    }~{j_kxvpe^`tgv w niuggjrr m|ok  ts~ } u { y hsscPn{ xx wx }bQc p QE^ioTTs  z|jGiogo  ~m rsjejrysvu{gUncX`TYVXk[piLMno\ddy p a~!$ ntv  {zgnuus|kuwS]cjbhl jzpx hruq}xohRO]cQPTUrlaommg  u }  rpf[aV` m W su_qUhq  o]fssyumeqqe| } xux}|{t Rc!zo uunZjn} q\ rrv wsslwt yqb\ql |yvfRenXgtnZSi ojc| sxy }~{ s s ~ wv vostt}k^x{  kt r m | { } ~l Uj|rrp n s_Oi|xv  h x  | w  |wuh{ z}r~vqx nj qyv_JY^ v unyt {}| ~x r { z v `wzrY h xV\ij| ~ vqhcr} }i]bcV8;[ZPZv tzvri g  |jx } twvohionjf xtxr je`} }Ziwlu|su uoPddsm  w j{kkiuzxm  ~| {f|p^vyg~z_O[mqw~  p ~k\ m d Vfc [g r| } { jw xecP m  sa p xrz v }pong|fCkoei`b n_y x ~o { ~ o x  mo oov _Zrn|q{ iPr }{ | wqonaU t t ` o vs q| ow  yuyrphh`m } npz] otYsy nbhyyi rhgfcOTPN^kbgopsjais t m~ zwtdxqdl^\m}{v ww  i}w m m t} ~w z zyd]fvkld\uzkw erxtwpttYdh h jt wz   |v t n__ ty~{ ~natbXw uREcq]jw]rrUjszlI{yFR[sqidUqv{ sypoZr  ~~mj cplGXylxikkfail|hdaf qe^ypQb}p}  o mx |ez w}}x{Pcw^cvtk f v p  [hl^j~z zutosa  ~}tioq_ { ~ v   ~tqt qvywvrfz u{z~slflcp ~ }  v fvn r{uxvtt teqtbXdmUb x qmq t pappWklok]vtZco `Xjr vxtv  ~z xxj^zzuiKzwT@K x y {{br { rt~x_Q_x qx |rf xo[^Zliop| odpsw ~ }}u_rzdjx~ pk r u~ oaeoz oLVlbcUo y`] { |a~ xm{dsek }x nhxxw{ tz Up {zz ~qz } dpuja[kjwka^i|}yw~o x ~c z {pk yv ofmqxxdY~   {|  o]ev   q flhnxl}|gd |lnlnm z  pqqkjou tiogstbkuYEblmsqp}tWl{c^k t {iWjm e`y g z  m ok y |{k{x[{h vq | v ow dx bUS s gF_ ^scC^k w bwcm}{zyXeoepv{xyg y f rz^Waw|WdeSYiuW[workhshw|rlkqma `XQv~ |vyyjxtjlavzjglbhif_ n K^[?dp h bkl zy { tn { zbh}sglw  p|3ObYi k vkkdkq p]jV^ }tly ti |nqysmi{ v]{zziblw { ~ kYsstcTRKU`lrop} |t s{|  np { gu oYaadyk]F\ x~m^kcY  ~v }}}  ^mij||yTo   { y  ufx|tl}{kUZTpqk| bsz sofqr^Wgmu hy s | ^ l{Vf tu xijtu y |}}h^ou |o e{p`[s |uwxwqp`nh [y tqfo   rr }oTXmfrnlbZipalodywb{ts{ p_ky i~ps kuqu{rk|ay o avj\x d^ybeefOmeg ^X]bo {maoYzyogS le Mbd MNXbgj^mp m^Cc y l\ p `_ghv v y sz] } vv Un ~ xmkww oz|solo]\os~vteiyhg}w uoUm pkpolrr_Qm^BU]W[trhn q ac tv|qqq{ lpn]x }]s tj ~ v { y ||tfrwsn| ~ ~ylp s wr xl}~xvspdhkdyxxu usu o uvjt  uu u uQYegXk^[vjfuzlfXizvsuu| bnphcj }tk htw~ck |   }k j`hc_r z jt{ { s~ u ~th  }R   ~ e t z| ~ }e |{if ~ Y_x{ k]fWcWl~ u nn} xu x uhRXMNR[`XZQ^rTMhfr thltx vHf z ~ {y t xngk r {oef p} n]ddU@svmz[Tvw|rfb | yw { go||]]l`aYmdXqYWf^[jgksjw s gghxqbcgfjm~wpges ah v kimv kdhVFWdgkMPx|}c} lswYmmaRssw~q`Z^o\g ! |wS l_| &$ { zz{kttgO][]UTXh`f`o uabfqoiad[\j r s}{~vj}jg }t|  xhg ltthPx\Q_`_irkel ~ {sUdl`M`udz Rbx q l aMT_VE_hcjupnrr~unlgg^FBbsmjhgXnqy xinoz vodzvbWfq~ ~lslr| PgvojfbkqhfcZg vx wg^GQ ibd { z }wrnm{trkdmrs{ynrttqbdfq{drlZI\RMQ[bptnjtm{ xnpw~zd utv wku p ydmlz ~sk^tz]ywx{o m[ ~m  l w ~nmn^Y\zYUx  v{ pwkhnztqr[T} kpvw tmju }z`ms~] s dRCOreb z igkf{   |k  ~l szw   i~}lwzqtvgr|W | { { y~ }~ z |m`y]Vprgww {j\jsm IdUbv nqnp[vn v { cerd}s cs or  ni |`si`Yaduoxrw}r    rkXjms ZrjjdcXgke] x lmz{ycsu_cruwzyl]{~wlosa|]V r mmvy pBLsxdQe ury |RS z x x { qVc^[l^m | pm~yxi ybjYowzrSUMFb_OV`jav vk[n}vbuc ~t`blikt   |~ tYej z lf~lhsVg{nv ysWksx sp|  ub y wn ovq m j vu{ q}i_}u{jp  yq{munW^eiOr~cY`gublZbecp RM]MMr z s`g poky~~ ~ojz } tvo\NSlomoUPmy{jGn s Xurfkzi q `Wn } _x i r psp t g s pox  toymtucSx v lvW``djbh^hmert^dhums{ } b u yjtn`w{b]@Vi\`eWclf|zkgKQQN?Y]YqqbY o q | vv {pkpa w[x  u k~nx y ua m vyzstww\VNS\mex stuyzdiq p xr^lt|lb[Xc`LXx} q~sq ki x rx fiw im|xqW_qq t y o{vhmmXFOY]ef\khsqY^qwg}ypzu  sw fhvt rjnmwhd~~eqzuruoWu}gbh]Y t | hgvz wtip _o} z vw }    ssfb\\^X]I\ r e p|ev   vrptmLahvrx} yuu atyeWZf }uolq tz |v x ww[ zl |fcjmphc]rnrnQVho]ijfd`xs q {vqj t hccaqlXNLZk{qlq z hr zrj[ nedhahqntif u pco py ! z mz y h{  }di|rpp e h yv ~zteSQ~ ~`  y n ^bXxxkp  x{jc{ y trr~ qnx xvk`Xigkd\l|su~kdqchxsgY^nrfIkurwm j x ~ {}   im!!|gdu v Vs{ISc`fj m XUXVT oonml z { jlty yz x ms uxynemxr{|zi`Wt]\fYqs_]eu z U ruqjd`dmnaeZbu { yjI;V k _^jotqt{  {xuv|{v |txtmpnnjmq^x| n \ r prv| {w~ {{p zq xsx}kqfgn~kdcjtoVl uXejqfpyd psms  v { fXxviukVl { u t h iea~   }m|   x x XU| {kgkpa  qemrp_mt| a}mq  z xsuocv    c ~ r |lvp  o { { kq y ` z xx r  ~} zjqrdI`eXWitw{sp y vd  i|eq w y qos_v x ~ xf sk x rlvt} qguqd } zjbmmrj|fw    |lr wgk}t{v qoq Ncu ifn {h{ x  ~rtqsnfwhk  x  p}\] v woeruwldrbjw ea\_l^s} ||wwuu |n  t ui z |z j {{p nniz~uq qb stpracgmy if kOZZglat{ov~bah c v  u b| }~sm}xl`x tg } trtwcdqt  z xa{  w| bfz |nag[iUGOQgO vyuy { rw eigV_X n j i q m| z vc^jmhf oqNdw ~kr~sx} v hg xhf ` f{qkn_nj]btmPgmVa`gq y idUGOiiemnYRdeYgj]U r q~s|   px ~ yvsw tp]fpynbk]cfi   v Ve w gg l _ji`nxyps |sxngt z v \[cvs[Ut qnfa  q[x  [WnfS\bmuy}bav}tjffdjniNUY\^jbkmo | p ~ \USb}v^ht}| tb_fXTSkm_gon{nmkge s _jx uu`elbk|t {tv xeKUV\sbTmweXmj\buvg | vq | z]\bl tx n}e u  |  s alwi | x}lRv lWRLFWgco~qnw|ytwepw{ofxvuzr{~xxxt { ` m pSc l IVpu}{qnsu ucoauzpskeVk uQZxzfUID[ovzwokpy   sx e u olu { {v w mwtko\e ~  j s wkymr| ~ xvzr v s|smtsw z di^o{}{voh qnnno y { s ~v z s jv} u} os\Z_d_h} w | ` i   {c\Dk uoaK`ZFDQVKn yqt} u feUPk  sl | jermvx j\GPKTbclrmx z prcku~{u^ e {}p W~}  u xt{ ~  zp { pc}| e{cpnelp y r r nmm xvqfnukgdt|y ~  wvv}md |p| uYZffmnsvs| y pa  chefwo g#%~ r mkpxr { d^ s  }hWuwxz }y{~|lkt ~ ~|  tmmoy dx ydstw x zZTaj[lui\m{ } yoo| ru}sr b\ x} y wTX | p  sqUhkgM  royw { qtrqu|etx} nf kY\ v }zvdz  w ~ZRgN\nph^XSu| ucknocq v { }x {gRgplf~ v | Uotehiy p_j_oyrt py |  v~ u}fpprhSmqey|o^apy~q  }Zgpnqu{  rmp zu ]y qx don ttyjuzx {g s q  x}o n ko zwu{yo| vo  r^suyv\gty{umjfn  t  | v\pupky ~fx mk   f^ ofYtkWlykw j l | wqj pmajz v vpqho} Lgvu{}nZSK[X_^[XH xsx w v ~ q } ve| kyz   m`w |tsV_c]zzioygb  {clabm ^ay xkkcKHQK\y|}s b| zizwfn {kcw n Zo mccfQRfl wrkr Oa |  gixx ef x {p w ~rii\w `du     }p ~ vdt !~ sYcpw][[QLHYaEIO]lnck {lm}  yx u~mb~ h pyxulz } uz as vah`fkegvuRLqrs  ni  p} je pkxqr pxqrywmj {  mvqni zu mr  jq st }i y x p hmcYqnfn q iwp eiop z ihu ts]Logk j c s i_ms ~ ^ d ~sXY_himztWTlzw|ur|xir rhcmuqx wr xhOZkgep lq { j_PabXbkymk|}Yp ne  x gyr_lytj{y ~ q  tvxsx | qm~iq zlNerurjynx{sryrqiu gpu q p uot  y vj s wo]W_q\ q} toiS{u wiju tqz tos {tu y |lyqr~r   wj sl ?JjURgp  pr ~ w }n ~ wmrmRhz_p}pi\Tp   xd_edmsvkVXs eNt|wz vy} t nt\Xwz di pfmXdtheobe } v ppgo | ~ zqkz { | bf\mu{{xttuutmnoad{ vri`ht_]eoqddgky k`t~  | PVam\p }ogl Q q~ xdZh jREWk_os tocVklX_J<Mvzzx|jltkTgx | lg~~ w r{""z |w{ ~ u q a q | | lXl~iRwvvzpntpV]gby{uinffaz x~t uxtv | { s |~y|~lhkcff]dntbVkkmrl mbp { xsv}~ v gq zw } fyp[ v z { m r y ~ vk[p ~ i\|} |zyx xnsy}ztxwgly ~ { srXi gzsiqomk} |m_ u xahjZSZhuxofj {s }w ~bItlhat~y_fzs~kpYXtgeO{uozkmv { { op|{ ~kur{yt[U\utNPbmuzyprltdffpzepRYlNf w xfb y  { ~  wjny ~ ^xsbV^x{yqs | j_pmZQv z fuoQi s\^lo |p _i[dk`Y^}z fx|dj}ejlhsjVgn}sZv o  wquwyazhj m i j l jtz   rp y y _lttnegl vtf[^nkdnmSp }s\a wmpfvvZMOf{ls} ~ rntd`y wcx skipwpgfQJdwtuduxo\i | ^wyo | wy|djcED]vslul~  gas]`RtoOYstwoafzyr`fmkmlmci |zzm|omulIk }toyypbNa l g[^WQxfWk`Q\c[_mriNhz_l u{qeupvvsy` t q}{s r cv|  nzlj`R_ z fd[LSc SSox{`Ppxgv|jz ojweJg  y| `Y[gq `[ y l FQm{y b\m unj p v rh r } ~ y y j{mvmkph ou mn   kia_aro   zxjhf~dP[x~bg  xoz zrykivhZft tcxz |xwvs q y ygjy sq uz_f ~{ws p} ilh`gyj\o\exkfqrshYmrxn`tpowvrefv yy ~s}llqd v {} px mepmcc_R t oWkz kicko  { Zr}[im `bgtx u lu ijpnhkzu\Zp } yxr{ |inlcaivvp{  f_yv`e  m{u`p s nskx ukxnsOl {~xp  s   o u sqjolUm ~ shawlryvix |VY zhBOY`hf~tt x{te`VmoLQK=KcSLbWNgfcOWefa]e{ eh q_jiTv yhu sqzsqkh~ywryrjt{ziso~wcn t y~}t  ec#s  {wuguulonulo~ `r jv ywz fTj| q} gbj yus  bWnj Ro ukumiq~xgf_u ~  m ^ie  vtwVawstroxt}sr~}undx  tyqx { }xudgtqfnqd\kqt|} tr |xsrw  {w immyw Sgs{ [e |v jn sf  eg~nqoz|q|  dT]otp| s smygk ^ku { ukh~uji\[fffcKUdlh\Kk} cCViUXhc]cjea_Xlmxvoijkr ~u }} {pryyzoi v tkrr{{px qhsz  y  z bj { iks~~{ssl|[ zw vQ_ndVdluel} gsf z {GFs { opk x ~ mbhlpqirn_cdgsrw w t  t o udpuoi p g ywZhiuuidhtosq yeuud_e| n[g nl y coapsh { yz u}vt| |  ~{  k\^~_VZgnvzz il_ouy~^kapw i{ | d]km[^t vlc]r } _upa[`lpzhfol sp`L r ~jqiU\fRRdYbdj VcX]^NAA`eZt rv }rtpcfeYTXegQet |d   uo^ojib]_\^m{ rq } rz{nm_kokcNGFZ`Zff>aykQXmhu s}z qfi|{    }jqyv`s yqkw yyaM[lg}si {aip_thWmtt } w }ccttp]jstp  vt w jwsy{s^_v~|ch { {n_^t~zknco seovu| z j| y nrX\ys ^ q kN c to`agmTn z^e | }y | { z unuv vf wq w n U[ {l |  q ou j| gW x xz ~ kv qv } jQ[~ eU[q|df xUL` o tgWhy [NP[hgb s   ~ {r s rw eek`| _b nesxsirm vrrz rndzn l lt z{ob rzimeaovoZd{ql||| |omqkaVhrrs\p~vlis`ieb^itiewzj { xhtm_m jzotx~} qd   s ~jtogiw qr {tnvx | l { } { }{vyo[bqrkrd  cowZm~ueg }pr{xlu }pru|c_ms ~ vtus iwz phupf~{ ng gf u} j u pp w emiiz z }` z  zw }bu q x ~ unqvWccqdXyy}x _ux}_e x {fr qs } ~pln   | r YPs { xafn ]p edkerm t}hm{ royfej]yx{ cw } ~ yx ys  vyoml ~ v uiuu^_okyynuxu } t i} qpp {rl[ zyq} t  dy gjur x}hNWhVc|vfgp  } |cXn u_ w ~ nod]hw|qiYdeqk[lg ``yrsyqyon|} svsywty y   y|}njtnm { hrx{~}z| rej |  ke  ~mXvqJ a}!j l   fu w kukss }|     ZXcnxnzv| | iV`v jdjckoW`N^tpx } ffz ~ damfMh ~vZ^mWa}|nu~row t   sxzp ~{~tokmx }Z~kjnttUep sqt vnnz  u } or z_dcpt{ | x v l vOgh ~z| nxxpdmuyfh y |ub{peu YK_hlpipbSceY[Xc[Tefhon ~zijfov k}n neZky s e{ } GH {  iquyt lrb]b u yls p l n m W]zrsjcQcw v Z]p xtoZcjhha_t |ijpqv~mcb~ tf gz~ i yt { kq ewn}ih xvk }qYm{n ~ oq u y~zmnk[cxvkGg x s{ la nq a_ ols l }~ qdNdley  w{wtnh t _bnj^wwmvzztv~mmedhX[fqimu~pimu s| y u sa wp woeb[nmdsn<_u\`olesy p\jr~os to_frvcw z    | w gxwksk  | |s ~cettoon n s yx ahpkjzq }{ jus{nw met jj~z ~pft  mrjc\gr qhdhq} zmjzuebh=C`ql{Zr~|kfbi IYtWXr ytw yhm {w ~ y~qjylnwkggchqkk wuh zt } t Y]u  y h} ~}~n\toktim r }mv   { ga~juv ^NZfom Yh z u u | sf v { ld^UZrjy tu vz~ |wkubmkjm  ~ }uYs kW]qpacnpzspaW o} vqt`Yo vy x \Zrxf^joif }v{}penv  ty|xnn |nhhhen { tlx u ipt fzwclu|xt| eo s q]L{ ~  ~pxjkblmfeoyyYrmS |ykrqy{inwxz{txna { wm  rwi}nz| com^zyj}u | ~ oTWimo { krxokw taPgd_ ~ {qv dk|ib ~ {xpqZcXa w kuq]f | o   }u |nNotd_Pez y y wypy `Ytznn oVbeofkh | s }ts | z |qep |v bS  ~vx" t } |hpku{|apvvo x[t\_ x }cm~| o x z~so ~tqgZqmnxzjw } zwmkf_ xrcgQNgbcXYu xq t i d ihV_oju| zr x~i ursy| u |rx tca^osy~rs q]w{~xt~  mo_]eI7fdVcoptulg yu yvzrz u{yr { gadjfw xm} jg { xqnt}}wnms}k\]jp|qowk\ SZw lj|frz f_  h ~ s |utslqz  }dqw ~ ux} juobQmonrzs msr { ~zrktmTk{ xv { ^c pecz ~ mrrs}}ze | | q } z|tkupnv iz|vw \der ~|  tvdbmcdgj_eem|pgqvouzx o\ iudjoqqx~xgkqvrhgu iyj\dww`Y`krppdJX\Zcd t qf uqpvq{wvqhwia~s  paj| |l NO xjq t fY]X\T[hYJZw tfv yk |n[BKj xfmv  otxepofd v{q`au| vut  h   } vz`htjjpado  z o "ev y rw ~ ~ fbv uMfr w qrv qigmrri{xq x |op{rlz ouu w "! u nnlqc  } yuupsbeceeTTUdXfqt kljv fcqv xq   { {r ~ G` | t`golv   r LYh]klZ[grx { } tXn txrrmmiwy{x h vlwY^{ ~| yy vo { {mqm a]WYkt oaeufe y g^egjdPu{_fugn niv kdt t  xgk} y pnvroaMSl { hf u vhcp O\opnync{ z {RX _CFU_ZPfh[DJgYY[BTTRZF`dT`[fl[Y^a\mwr sy w a^ uqvpb w{z t[Xjrbeurn  k| ~ y r| jd~|Zp w e\^hnq |jt yllv rdyx{nkikmrgnfWhheu| zu|yoi_nloy|v ~aiom^[rrTLSVnji]Xu } qs{ bSfoud^v { jj vqkWsxou~wus }quxsml d`bXLR^XT_Um sYcwulhkbkmVqhFby{m\txy |q { }oktxsrtQ{{uec}wly{ zumpx rx{zjh_sw | ufj szbXnwm  x} sx x__hbe z lw ~s z{clX\v hm\]qudcF\ }de pauxgp aj w hgoukh~ wxrimdJevqjOWff\ y vty fczhu_e xp p onkan|hj`fsq { l]g z u lvrm_mn {k_a {mgrz{nZgz} ] r hxVZvcuota^fyhLd_`IXQ]kX`_g^K^Z]szck {o }khaXNjoqnLUthkQCVlda`RSY^DFbikjlm|puqupowrl{ p{|x y qspmsy~  kwu }~xq y dYnYjsotlyq vyrwpwntw  mmd^f^[[_Rhxncw  n^lqx p nv  {zx~tcPJW]\RShupbNooMPjtZUz znhtc`edbn ~tt\ } iuy{}xsvqyot y w~s nershmhb{V|o^lrqxyj y w y j\~  { ]^  mYhq\cbrfMvritxfq y~}zwldpl{[plw~qu_b_kxxzwq msw zt  vp^V] w frxqoonmb|qdrir fe} wn|z v lu | zmm}  s p m t tq } }\gln v p z ucnkq z o ui {yqxbuwf eas { sXRyp{}mmy~qX  y y `o wl y rWn~k| m"$xYIj s abiqwwxxbpoou{}ul ~  te  zows~} ky}tz ~ncd xqo_Webc^eUG^`hpKYfs ~mr{~ x | u{ `uwv t }y tw vmjUdjSnsolmpmpzsq|woool]Vubs|e v ^ZxfRjmo  xkturw glmmf h a Xl Zfbmw kji tkqk mn~z  x~z wtZg }uhqwt ($lo ~|nox ~ ~ poiX?_ utc`fssr  z d yRWm s vyy|c` zhmUTZ[YQTXppiizd`mafjgu jSkt { njt[ex jcp u yhlz x{ }ywpvy pj_q} m{x tt}|{ x|V ^a KT \g ^H gwh LMcRY ^V ge^mL i usmZjyjddrfq { z } lUh {ppvnk wb_  |`n qkriq}w[hb`]ffgrq|`c y kGio^aeopn qyz{jcnzpe x~ { yu w {s\bde{  mgmxyZq  }m bint t fj|{ nhj` {tpdb x |n d pszy_]w | muywVix { z  {u  |y xt}p}w mnhbi yr`fUglKdmiiakfulRdhn m Qb w }yos ~  om } ~vu uNst{ un hw| woxjst~}}rkv |ri_ais r _^onntihpqittX]x vyydm x wm wqm wyegKNgdki]otk o J`~]Z{j m s xmiXq ~  {knfXbP[ebx ow } mv  tr}rsx|qm |xv } vrl r |uhvsgng]`| x w" n]qol} sad} jn wjv|sbi{wjwYvt} ino} t   njhnWgghput | vll z `o{bhvx  {obSUoxnhUc s z w eR] z y} yeggllbltmQx { cou djb y }Zu ru u v ukYid v ~icpf\n | ~t    o h { } io  pnpgTxuowmr`UY`S`cabY`ZrfXl^GijSiikp~{w~yr }qk_s{ ~ |q  k b lkr_Tw p gkjXQp} _{b {mgwhX[`jcAdxpkty|yx{k~ v xgdpWyzy } ne } jk}sc omtet|ut   uas   kOs  |fsyt o o n\y r~}s~z r|vsdz u uzzn } } v kvsl}{q}h]cvyp { r[lpUdwktmrpblgmk qmz}fr | { k|qq~ ~ yvoxvpi imysny}}  s{ }{}ptruYakTpmStr|mpvy^w jZ { vy mQh vX} VJ_bio|rt`t v{ qXw p { uw y j u_i   }ts t rdl s jcpy u[lnfevo ~  zdl r   kZhqo]L[hulheY[zhjZlky n pr yvm v p`kfo]Yh^mset vtpw _eqYThpddo~ vv nw|uwwamjcojemaq  hsv^kwo}jgrglTXjWdh]v }iw ir[`td`cY | ~ rqfyhhXfqe }o]]puh}uio\jkci v sbsbd }~hncfxulbq^d  ombedomykGp  wmtwmq } h|  x t \  n  ir glrt kahmtqbm |ythpbSaffhms q[w y z va| { fms{xibet  g\UYs  xv  r  } zmnuiy ~ w{  dc xkpkfa jZk _ cY\ qrhnp\R\u } nmc x jd|Yro`k~ v \k` ~ q[rmXfWcoWVm]crgio {VUyoaYnnv~{xdfjg[\hxt UYmo`hol { zs x |zi^cjSotv}st x  t ~ ~{_v qy  m^S_eUt {}yy xi_|}y\X~ wZOp vvv vVhs{cvxrw zm |shuktddg~{ sfnvsw  |umly x wp|v| |urciu`me q eQ]kno`rj ~ { alli\uvhrvjw}yaufho~ ryx[br{v  ~ prxkiNdv uu ZY vvlaafa_z{w | }q{o_kmfyqe]V^_ceYr i^zssofrnmiNf } fagja\|}mx jThjtzoo`SgY]f^jh ~  v _|y w}    qk } y}qfm}pe } n py r qse]`v f\`_ v kgrjntonvy yny mop~ u rtoy y usy wl r u y gt e |txt jxj{hp tomgnoty ojvzur]aj y s ef |wo r t{w}~ zl{h# ~fn}r p b~Va{wnp w vw k]c]gt w {{olropyjd`lu][kzkON[ha__OM z  | u sut z ~ x w qzjyr a|sg |mckymn}|usufsdngcrts { y s i l l vf^   kVghx ~i| l^hns v haeVeofmy urq{~_l`_ vmptOx xeczrz  sk { lt u  jpytm~ jo~~r Ua|n w fTp  zbd zw u n f|og v VWx  |v x}}o\ly ~q { t|pop  hzkaxl_X_\i gtwhx ~hl |owohpgvtgi{nirpr i z |uc kbt}r|yql^jnucaXd  up} zxw ~ k wl y c`v z f\u m` z  x k bQd pLY^CH \e xzq{\a opz vf  lr l ~ vznbxwWXfgfili]RZd t spy| pumca\Y_caL[]j y ~uXN_bh|n UQy  r fW[ring | l v ifZ^otlYfs st |w z w iq}  rv js|xnder y n\e]afivqpm^rto  } `t|fq tv{ sv]fx  |iv|jwt ~  { T z zykyke]y ykyr{}}wy j vpe { kj v oWWgh\dsts nr|xkyil}zfogfi} u qu gLynx tkq mnx jxs kwo|}mqzaku v {vxs pkf } zirtjcjw xmmtxj ~ fny yhZW_uukhZMYqzlsrsxykmwyw rsuqm } w c}w  [^z  ~|kl na_fhadrpm} wch| x nufrUu t ygh {  } b\~v}{`[Zi udbilp u fyz P@`snmfqu   wrx }c`|  zmz pp wnp ~orw} sc^bQputlaelz heh { x t t Oq ww zf\a^NlwmecoyxsoruVn  eZv jc|vpq } yW`ly m vzy}uay tl_\W=P__drxndbgpj| ti  v {{uu ~ yudax { l y lo\DIcaeXb_nyjwxlcvv dj z~ {go s]Yaz|`l{mqx  urve| er{ xm^ z idfkne`w yot   rbp xu zqlv{yo ^r nfwuv tgP_nkwwf^Uuy  jo_nju[ m !"xc w sz|tp`m m^Tjg^c\^qtcrzua\kfde_dz mYqzoxtmp wi odbqb\][ha]ZQ_u ~ llq {v~  qs } y y |mj xhygidipdfYbRWPK^\ZIqe^|y tgXKTKZp ~ im } upkfv|{wmw  s z zq\okYS[gksm s v vqrXg uaPkbKMir eG_UXsrn {ww z{| toqvsootp{vjv pm w  m[x ~ w t x]\ | ~yx x  w x |x v i{}mle[ psfkwis{pv } zgd_j`Udps| qn n d kx yna~ | w|ePIpjba`f\jyw e`kx {u |t } teq zwx budTq n n l B ds ow_TaYHUimb_uqlv  t} wa`ZNQid x xn jLQbRj|p w ir| nXnjhi\g j`oWM]lo_o xq  yY[i`aht{rlkapc` x pimvu{w ~ rrehdmo_m|vu ~ mwta~iu ~u{ } {h x  fw~hSi z vpupzxhl[a } ~  | qmrxz}}x  puu_ y fwxivul u ~{lyibV`y dj|YYQJ\ w w ~`\`ckkiqrdjuq$ |om ddrgdr | vke[c t qopqy{ vvhhmkv w~rVgbXrvURggc |yi_v { w x  {vm} { chv w_pnsj_XUgwxgvt    ow|vjo}s xky x Uq||urlbl~   orzwx ~g`} bsxmb vw c}zu u | Ouz }|  xv piy~ow~gk i^a p\l  ~ otd`m nwjgZ~ ti\l}`Jhry} sge |zrs z_gv|pM[qwybstmmp[iu u   {ox  r{yns } |lrztk yvv  c|{^fw ~ yl]Vo ~ wt `PY\dfq a^\kw snutkUl cal`^v o j } y  gj ||wp_ikc__UVk} {jkjp ~ pt|~^z|q k`jtv^Rmx v^mp zjih^]o }cr tUo zzrtjo  zxmu`]t{jw tmmZY{ ~ t | u faIbz qvrif`at q[n~~T^r ~~kc_OBnysZev ii  [l ~wo u | oluwmlo\bcdbVfltns  | in sp|{W o ~y lvwuvol { is{{y } q | tt ~z g {  |p{six w q t ~t~u s u |#'ypo z xb_ixymy shta_^lzt  ~ { x}|{{y} my {ew s q  {r{sccx ~ xZfs q   |csxai`_} {rnr  }r } y}u n^rr}o vqw Z` n q q| p~xhp j g l{x qu `^gcYo|ifnmimffz  o azz\kilnX]lj_Ro ~zpqp |x }q~  ~ v lokm[Xodqw aswhV_acj`qpCKTKms\fhoujmpxuc_w {za { lp ~  } t oYRizlo}~  {xxqx zxdnw  ~`| nl v dd s `\adaWdBUgUM`lVHb}v RdqYZtnb |~ } z { pbdqy|wwps{xnn  { puwqn s MMhbn ~ sjj`VcmX[e[bjRau r h]Zm { `bvn  ty ~ { {jc m z cchfm ~upiZc{ sm] v } } s[yp y q eg^] v wov wzv x {n qam}{yt~` rQc^db:Xc]midmdXknb t wnsmoxmZ`lq{||r po \ttm ce n ev  uupq }zs rl{sn qpz gkqrSe |l\vtUWu s n { ypz oh y fh_vnjsot } v x^espvzlxyZ | vbu vijidJWtulYcm^ERnv{owvp}  } o j w^Ylj}yrmmktz}qofRhR`ieekoac} ~siq ns us" r~da^SQrpx z nnnu~tiZm\l jw   n{ xs} us}pq~qkdiujnmghV`lgq cn gRfVVp  `]x zjmivuw prsg|  ~ wx{qu of`pc[a\ uvrirtd ~rhm}  ssbzzzqe u|x ^ ~ uz u n AKs{hjh^pwy hhn\v  zwwawm}qh | lPelglh| nP\dgmscEf xlvtso{hg xk  {z mikbU[L`stkg laas ~{uhKijm[i} lbh } upi | xkediSYbbtVhu ~ | yycgljYV]dagok ~  l ~ nur xz{~ ww|_}{Z`vz u r e] }v dZioicxpodn {tkgZURN[TK\V s w my ~jh{ w{  }pdWT_w|s } rj  pi  ms wt| } zkbhw  xcrdqcahbUTtxdw^{ ztqu `cs}} nq { Y\ r|pswi] } wj`KLqxziXj y u mlN[ }wwokrmjljTWhs ucRf  |l rxiWy filz fd [ k { jfx q| ego |nncn i_aUQF\ads ir _[nmex{]mkTw z s } }njzwmtknneZ_`Vmdn | vhhlv y  s  plk |~iem\jeXYSok ~ em y{cZt^V z { h{ |}jhpqvu{letvw} tr { okckwts | qfs}tms{vZR`miimkMYherrtnNVfhcU_XSkqh\Tbtps f prj||`mjoyv  {vmgif z uouvtrs mm|xktfu xcj y u x uiY[p~ { x buqjrm[bc`Rbljx w    xf x { vo t zjj^l aq y`npjoeaZgj\z`j aVsuYgmw~ urvomz {o {kh   o q||u upWV k m m tflkml^` v oonOMZlsy~a} o ekgenaeknc yg{}  y^d {i y s k x h ~  }rlchas|  }lTbxx  { m{ti]errbXf}droz}~Wc~hdf``p`J^eVcm[bu^^ t } t q%%tjvjc{WX_ok~xRe~ hckgYturhPSc\VE[mvqsotxye s  wbv xp zlnzv u| w  n }iuhYv ~q{   wn  r{ rdh { vn z  {| {wgJa y {jYig lpx xp y z x |tnqzg[qrcni x p_ w  pQe | tSu z o o hyk` z xlw} rvnjtkkZsjgf]ot lsx yunrn\vzt  WieduZqupp_k^m }}y  t ]d sq{~ ua qz zh_aNSbZifw$"~umv  }vi| gpgTlu cQ r sohi hsw i }muc`{ {b|vlw ~ xvuu vkay qaoVl aq srqo~ql_ft}tpyi w  {tMSSPaICWnrSG_ m x r\^ex to[J[[cZ`f]e ls p r{ y z w kf} x sg qj| mopm[k uhiv }zuou d~  yk ~}q|fJmompmn \aw} w _mooubklYn | qe y w`mtpnz bWbmp}u  idsfubu yjttsl{YX whUp ~ { uyrfw um^w mm_duk`h gZ]y z{~lzm_tnmQZk^_clib`c]opko qwm | { nrqow}vw{q}qlmon_]ek w yltx ~ z^q z j_v qoodibgv  j `d ~~tw fYw }xz mal {s pmx yundnv {s gnhWZXjf]dgWVh~  xrqxj v~hdlptzf t  w  xh u w  k }r ~ xbxwbuxVtrhgn^] ~ w } y ^c y } rnp bT sx ~neWL_emf[gturyZ^||}qo ~s{lhpir^g | lor hZ z  u{nls_dMc dW`^y ilsxm]mskjn gNbe`h\[[cx| wv}txeWyrs sjyznomyuqojlgpxt^[yc_Xg { rm qhaes y lkv_po^YOeUfnU^pu[j}`X|^hy  ~pWVgttimffqibjfmu s ypjdgligaF3> wv|i\l  v Wcus{zxqnws untnaw yj[\kpgQYtm`p v w bokktvm{  qf~xvcku   s v w { }gvas qll } | aQ[n} { t g  o {  qp ol}oVon[P^qkxdZgZimQuvqokuq | r Z|iukj agehnhpkxwwnpmmo_n wi~| zfgi lcjhYVb[TcWcjmeSWs t w | ddjml ix{i]epnq kx ~ } jvo|~w~  xieptcn t]z v gx ~ yobadax u |r [`bSljfwrl`ovoips~nvp z }ai v yrpkf{lsqppl~ { io y z tikwx { kYp u qhhneknfHUiqbcu x v   zllnp iQcy |}wkr u u { z   wpvr} jrjnt^ zUsqmoh\sx ~ vc`sp w r z y|~kneN`r xcM a[\b_Vsq { und_thrxofuvfuenndUp~rVc~  X zsiXWv r e } i\\dpagjnu viz t qXyzu z u~wo{zv z ` | } owxmvi{  mt cs  uiZi u fo |lVbaask lh_hi^bCMWY[bgg }t v  y l | h r] w} ~rhyzXbf]v { ~fZ izq_ei  { ~ {sizxSb~ }T^too|{mgldb xrwioywo z { ona` pa\kz iR_w ~ tWRTjnni\kjl`__KX ec^iz`Xrg^  vgqfl lpqx db z  }q l u    }jv n vl vi{qPes }rm via }  u { ^vy| ~m }v\i x laq n`a~p{gs{qmlsv   xmyap  } e { t} ~ b_y lXm qlqsjpc}} r kvdp g UTr}~m sv ybqz ef t xyslk^orbd\WNdptojkh`a{ngrh zz }sroaXejWpssrdzz gnsw^S]cy]_q ~ h xbe v|eS}yt{mpuyzsotyw |hku z snt wgWZ v w xxm[Z o } sftps   ui  xxjsvqopVxxn  hmsjf;JWpkwvq xa nm| r |[`j r Nh ulfodVpvx~ }ymTWehlmws upfvnz{ vn { yu ig | z  ordk ||w m ]NM w  tr \l  ja^]z bh ~ r|yk_ t  |m}~bnlgtb^chx}  p` w u||_r ~v u ~gddn{e_i][Yi } rj||{tywthlm xoqjtye]lmMj"eMjnTTlkmewv }trx | v klmnut x |gg{aaksz   r]Q@) j s j\_n zvb PXhny  y ak} z  } z vx  } t y qikq_oqs t   v{  {pyqz}{vqqtoZgh XiucQazvmfa v lfnnrl[ }ep{ph { zp]p  bXssbc a wx zzrq rh  ybVkhpx ^ gqjw ns icgcgarrlh s c wu]Y xdn}yfLIFW^r}ul~~vluxoz }uz z pimsrmeqxqmh y~|bd x r yll | n {lqz ~ nlg\=_aS`h ryrl~ |zthrcKpYa|~{dnv {|  rs[kpbb`y|  m~ w sxvmyrpkjj_[mp| { p[ mr i^k wzz hnv ofu tq}{xtrwozrTa{  {$p` r bjmrzz"z }  {m qvqupcQViey uynu q d|\t}plnqj[gt g`  ngp]agnwx|  ~ggo y fj isql_mYkfeSYw |~xyz xcs ~|tuf zkb ~ ~ ]t hZWQ m s l~    n |} kaHefm }w~wwsspux}   yz   } x Yhz{ykeWgu dkjeYHbcdvp xswe]VQXp w eu~zrjmjy mqtUu}eqz}so~`foxz `M||qv^IVGctijkiox |usds\X z `dqsy{wzthztuz ~{mnkR\Pey{ }im rk o x\` y zdgdnnupk    }\g t jX\jstfc}w s}ri sj e xot ebqwtg_blzx ]bfU\\VLR rjZr  | kpt ~mhlgRkxnzvZny  rvT`p fm v k h g  y |  ~ ruv  wpvju |`v~mrnqt wffvoco} ~}~~rvvrtg w la^x{mv |q{ } jh x  z pq `gd`aTL<KZi vp |  upyv  }xjt{pbmscu{vxu l^g y uhoybucd }p { dO w ~~tsfk{t xkvyr ~qnvsr|y ip  nhw w o]mvlgbil tw o j mtu mx | s o j { z ssRhck|fs|u sPHZ s } rxvcq w tghvf}ZV\dF^ y yrlv ]mvlo{  om{} pc_\g[s  wy uzuxv zsb[horo^em~ qg^hsu|}kvtgRN swq  y     { mu }ttgdxtYcthrgx ~  jvpl { jh`Wkinzqv^giw }{}n~ ~ yuc]tv w lv  j t rs |rhswwm|{uhm xf y yq bx  ~   g v r N^t]Jhtbbkssu  z oejor x oekr{zbZt`kvz} }  tohQ9>USBIh | { j ]afdm} dj yqps rdi`cadavvzpg}orru | ~ tRdr y {x qxh   y}py rkuv^^IX`a v Zps ]P`| ~w h[q |i q u fnxltwlffqaa_swn]t  lZv~h^yz^  ~xw ozyurl`idzpX pzjpu~m z o gjibepk~j zr Qp]kx}qjcfX jw { zwt} yq | p}z }omx  x cixm`[nw v [ew} | ]]lwrrXdy| v s q Ruubju  tx r}~p[t {a {gn  ]Zz}Zp}szj { xs y { ntq{kZ } dghjpmxuz vr~||vxzql\s|j\p |  wrw   kpg^s   rvLP_fVNS]z\Qgajo pkw _glO_hilbMSdcs  lj | {y z rp is mw  ~ z | vYR_SKpqgl |dc[eooxvuzsjdys j`h   y v _ z ~hg | xzvZj xhTx |lRppex te\Tp xjvavxu ~plq{{b{gf[U[Zby rsyttmdgea^jy}pxjrqbsv wz { aosy }glv bk   hK n ystmqvy yfXn}mhv|tmjU xfvvo w rvulq  | tt nk QpfqyaWhKbrZS[d`joihPQ` y | WGm }s y x~trx  lob thqwp{srrj pz  s| o_ u |_[s  } {|zt   fkwobgx  xd \og} ugj \Jcsepjy vhnvvy_^_\de^G["#y`pz ~ x npdfb{^x  hhx taks ai eLRSqot fw ndlq vt wobX\x ^khQWW^dooqxskpw  vp~ zqr{r uz{q qh`p  o~}zqgedguvvml |s ujdn qubbi|ue | ~n`ssl kt}}zqvnt } v^  {ut t u u { }ko  m kf ufs_IfyxsjmVTfYcVnxXjs }xgr| { lxix ps obh swnl | iqpdZ\_O@FVk]QWnt^UIioit\rks m  xpUk oqpn\f~ rbXg|m  \ | } ehr w _s }nh}as j]j{pn ~x yln poVkvv n}{zzuswuqvz zzp[d d`kxsf^ h [=6ajfST_oh]hq|[h zwumm  r qv sY^x yvn x jbyhz{ x [VWUq acv   l ~ {wy`Tqjr\bv y`sl`hqxn wwqapg[Dfkjl| k`y okhdpy kp prjxnbca`gges`Vbfj w sqntwwx  zs s i^Zq neq  }xysU~xkd^Tvoks]\jrcu|~uq hcvtnnu}vjp~]Qg`KE;]| jRbsp| pba^^Serd`os jidc_j t h{lSby ouyevs^tw iziouufx~rmyf ~x q pvo?QI]Zbxzrfcucj{urq|o^\^mg] ~rdawzze{ z | } rj{ psur xs~vrv v c^p}|}sq yldQsxnq  wvitwa y rq ~  } hzr^fNm dn | ~tr kQP_w}x rOo|u }omjr i~ qtjZety c]_ edm\Zqyulz_drmqk[bgmLqyy o}kszkosho|vyy |m { qrvnx{}ml ytvzrl iz  hTWn`T` o u wShbUUMXXJPQ9F\`plicp{isofm hr mYhqdd`s v V]pdggn wgineOsacqgX_ t |bq }x ymp w _cYP^_ect}xph }rfep _rV[qvOg wWp|o}rv u ekuaQVhn~ urwxocs{txt s  nvgyzdbn dav  { ssm^cjYgebfpqULl hw  xxwtefqbeptvhouxszq } q |rW`ne^yr { j yzpwol[\m ph`Om yrp y rm sbz]t pntj r vmnhSa z  ypu{ } } g}vqoSdoicYNb\Zmboukoq ryv   vew zxogp }qs| ~ggkh  k   ^rqjTL xrul z lY[`Schht et nswjer sn  ~} |YVumvqejs|  v kqn w wy ~zuo~ }emp[mecBE]bKfmc_WXZ\UfrlulXTbmdug]fc`c{l imx | eWunZflpbhn} t{l xha} hf~`jvm xnq`s}ujstvv ~mg seRc| | mnca[haSslgx yq } y } rmn ~ jprutply m|es wdi |sx|Wgnmk cr\`kU^Sn{ midql vd |q^^NYQAInmb\iky ~ xhi u af~{ { nz |ps__v ctu nf\U q{Sb uidkfhh][aNgxzhqifezwW {z|d wlk zdWN r y vdWcxl ~ ypSiSi pnhfk\S_m o wnqyqka`x  { y|noOXde]k rnr{[GhwowS_rd`dcqqTh  ysp_t |bafl w k  u  td wx^tsdmv l_jZKSp r cm^ces m\hiyo`ds  bw w  jmp h\chVlymYp}sW }mn z ^ z z fhopi^df`vngtz| u|x i{  r |p |wvg_ l rpbc} } | |[|wsn | uu u wt zqrl { ssutvywu ]Pfh`_K[{ oNavhfktie\q z q d__bmqWNXdVks z ^dz wzxgy^Tw jowo tg | z { odPap{qp fopXVUp jhv{ w nr\k  ~ wmngjb^vkgck p{yr ~ sj qho vox uv zdTYn{yyqmwsxmUpukj{x~r k]q^joz }z y gg Vl y {    y|n ij{ xNv~er w }qnisx   }wv t  { pv jpdc~ z~cmoajytrpcsgj hfYq | tmdnbbyoormnu m } w{ wq |xsw~xt|puu ~ |hq| fZ]vrh rw } n zdgbeg n!)~"[o y u { qfp  mjpZ^b[`g[iskgZdj\iv pcz { q w  v bd fgu r l hsmk u   ~t{{{n{ w jt t q ` p zkYjjk^dbX`bgbyx]p  i v ot zpw| x wxj| v } xovo^`` | k[ x mqz{pnpq } {rzm^^fXc a`giiQJg eovtnrgl~ ksn } ~ v iioeuoircx saq w mt } lxrysj[Zj uhXEXm tztfngsjn~mh ygeVr~ x|~hr {x ~uXXgt xs nlq x]z{w [lu xn ^o kpy } xqzx x}sx z ~ oqwvypbk ~yhfksyi]f v ise!v |egslSG l fij[cln w z s s ph`fk z okkx~bw {ow }c|ric vmsskYco x mi t o z wo{ iZYjyi{yZhqeu qm\a} x[mmil g_ce[fhVm uaZnv u {w n or`~kiceq rgQbwmchq{jhgn|vsw]V s z qetYfqdldkygw |ijwyr  mq ^SZpz ~     wm j{z~`ew hionckxtdp~tlae  hslnWd vmz~kj|qrq^z y vllmis` sxwXgxg ~| } {q s\dwd ^r ha]eL^sz ~k_|hn y }u {yhlre]PBg{]rje r sw{trbpnrr od ` {vpsrq y| hT l t {wqm { jyyw^t s N`h u z | ob ab awoytcQY xxvpeH=NTfZYo~s}ai wmk }zsojSget{` q" thZ ~ fl {|sb`lrd b y xy |v~y fy thc{}ena^`X y |fj | z m{m\_ r lX\mrpy| spnz z {  ij|~qw o c]cor  uk tVx ~npq\ { } osw}piigq|np }xyt|on y v mxdajb^mh | x{ tammbjp h`t mR t |eg m z} " ~lenzzn zs qx vqz~z~cb| ~s gibqygi | | orrtw } }ss  wcjs`ekuxrw tUazalkimxg`~i[ y xmZTI[bcUWlkUbzsk Z\tmrpht{ qw sju wlprvS]t~}wdwlTY_aZffi}xd~o s{yljq  ~vvw | q^v~ z  n| |s v dZ`quvmw wuu v u g ikxwqj\br t~~ v o o_s uos |k e w  {~ htuy|m{d`z py^q{ w }ngyp}x{{m gmiitczwz{ uwqksham{wvsop zxusmppolornrp}y t gp w tt u f}! xx ~ ~ y] v !" } }  m  { hj v nbg  Zhl\Kabr v u x odivb { ~ lvwm`i y rcTpyr { w m n ~h r sokYZvpey z }{| ~ ~ oyhqc]cjt s {zgNIKMV`MIt pw}  } ptx_eWk j`tlYW`Ze il v  l[jl  p|z~xw j s  sqkqpfSZbN`hgvg { s xrww {fms zv ~  xbjz yfqt}l} m~sed   z pljnidfik nPv d w }r ` niixry uuz{vnzmnpo`mSyz p }vbhmksy~ yqqrr[o bt{kn |~ fYcZ]ZXSjqv y z sm rytdcsjr{zwYt |u zVjk~li ~wyxssv|z d`maO]\^efsd]_n xlru]cq ts u |m {jo o _e_CRwi[QGOh zutgv z~ raupVLFTw w| fi yliwzrkmdl }|  aam r q} ux  y ~ j   udOR[q wv | mf  i~mt rjolWVngbmtv mk]n tcNYojdkqijtbe^S|{ tp ~ y j cq xl }~x{ n ytr  { }^aliuuys v cj yvm~ x{}tpr} |{nptmooLrijdpuuwk \j|x\_imf b uhuhqtu zwl`t ~ ~qeo_ny~mklivtovp^N@;Rfa^\X?>e^_nu { | c Z d_n]Pbxwu  w w s th`TgLZdJW xyurf ykhvx|qa`feWw |[{ zxnlkVgcbWbom\jjigafg } }j } lo     ~z~umv`Ig mksW\kvg`qr | } t |ox  l SpoZr t{h }vz~kei__twl\DU\RxrNn  lZgd_]Yrgjypy ~ f p k_mhbil \Mbt aM r ljcim`dq rradxyh| jcqZj qentwY^|  x cb`moT^rhtx vwjn~pno| }yrnpeu  | aa t l_u}lf{lYh z  rf[p s ipm~rv yn |v skomu ep {h|ziltu[a {}f g|vr  } vj v }tnv v{vmgdyuq  x  ziv { lw x st{nxwsyzdWlgf x ^d { kp ~gfmw u~ q ogt { ~ w`Yn{fjwvs_e }lWu vwjZ]U`uwoq`Uihisliv ~ r  xw  `X`mqgpecw  c ~ tg}l vrizj piq u ~ {{yokswliz | x  wpkuymrqrsldelgmnqhhY[`k xh^o| }w{  }U[ccsvbgv\mkUWie`j  yk`F] up VjbnqqpjbhpYwl{}cj | gs | lny{t`xpu {||~ p Xtzag]rjck~ | jutu e\[]db{~  u c[\ho{ q l!{wbfyxz { mq_gxw mdjdedcn  { r oh  ~sl_s lraujhrdkw fns } eyxt y dfpai}z xjetby yu{r   qn u ~ } kn zrwmW[ tquvz{| xukrlchqpj?_  y Xmrattj`XfdcxlhcU][dcf_gT  }o ~ x`es { a`iooscVfgoYa`Idn } iyv |p r u rqi|xqwqnocZf x zuy v{ ey{ e]knaRUfmsoXZ zxy|   {bd x mv yij {u { dknma qt~ | xs^jo}x llrs fr t \jukg\U`s  zkrro vyaTJ^ozi~m r | qgw  | } ft } ckkz}m }~{ | o`qr|rznjt r]wz{y} w {^u vpw xlny ~no ~ z | { jg | { onmmplGxzhz udj vvrr | s~w{q^nmuu y i]uwj{ di| y}|}nlv}qyuXfi^_ {   jk  w}{ mZb ztm`liauuvykw  {z |Pm v Ws|_[rz{wfX ~romifrlOo   ~kw rtuql{ res | x|w r sphyunuoie_XZdf`bjMGbWYehk w e mxm}qWVgnmkodevnds|lq`_v``WFT y } x iq i]kvuglli i^}ep rppi^^ mb nhdpyky vtv k ydftvyzqvutvrlokQk|el| y kpsmloxmpdfd$}{   sx wk u N\ux o }{| rlq  rpot |  { Xj uq!sxp ~ wn fr]SlimrR` xq pvx gU_nbAeyed Zbj_VVW y z`Piiqj^ q dalQa~s glq VOe p l^Z]TSJIh} zsl`y wyup  { m ykh^gtz  tx} { ~ t {  | m} xbpvv{ mv qgnnVYpyapqevl]e\i}s {s z yUOcXQ\dQupz rix { ]oaji {zxq_mzmauykpmgZZj^NZabMZaWN_TM^igb_oe\hSjsfSJaxv[Yry |bWUa v o_`Q o w f_f uq_ w  zfn}mTcyov _ ~  zb^]h}xi^a^`t yos s aefq|uu]HY^O`u ]c | X { lv } ^odwy q|qcvufZl | vyxirvzq_rzpaYhwr x|}q}ww z le^gndT]QR]f u WW\q^r~ eepswwrrpg |rrzu cloqw z pdL^  jp qz |\\y~kot|zt h}ZnxmedhhrmI`oZ_Na^VXq v fu oqm z| blnuuu x rp  ql~nsYg |spuqxk^jz {w{|t rl v ypk \Jgu  tp]k ouh  {t {i x[dkleP^ x__lmu   xgkVn rrpXtfatnz} v ft gX`Pa nJK``ikpzexvzy_} yv}}rGNk }x Wf  ~v_r rl |tdvu} | i`dt elkc_z evwcjz kmnuqvZQdi vh w x\r uv vugt {   ktnyttzjX``hrri ~ |h wpwunl ihbdife ywzvz zttqkY]rn zwiq|l  s{yn_y{dhv |zw_v wys{g} s nx  v x~ y qny xp^Pn |iw{oSSv o dh mi[f }tylv z g y puwhwqnivcRad|ztqbUurakvls_wx  py } y qomnWirin{ajb`tov ~ xnt ~ssuetzUiw ~ vjmq updnhr { r ]} zr wr o Rrs ev`Snp YU k [em\x q { [c xaXoopo y ed | {wq zek ~nwrl | ljw iq}}yy | XgjLj v _[k y}i Z ~yg[ynQk  |aym }sgw qe xrmx  |w|} ~nysnmi }~  v o sulkw} w y`g} x }rrWi{r  jr~pqkhsmcr~_v ~mhv~wec | |qrdh ykd xqsukgcsvz ut zxls |q |np tqnnuz u {hmsig`luy    rj~ | nw~}  wjg  seEVi^Zjqm~w} ^^zrLOfjvx q Y`]]l zp qVX}|{  gj }  u {}zi{zx w  b  PT }jw yotztIai]a[fz s sh#zkrinmc| v v {ah~ x khk bTagl q mwjqtft} } oYiq sk{yrse``Wqqknrgofdjqporpeir_rqrjntq` v {iwuqzopihwdi{vlml`Zc }vzugphYbVSY^cz|tjo~ { c[qnh souxvjjz raonl t {vtlt }o]mr^bvwqg|ul v iX~{e  u cy  |ustzRs r]HWpucdtxy x n bPThag]Bg q fdVVcokVp gk zdq|xiUivm{ psu x ~ uhc_lx qre^`V[ v } rZ s y]n|^a|Xxb xtyp  r {  teo{pZevmugmp^grq}njpol{  k |yz~ ~ ijtxe xr wv x |_hoyam}{xzrvxwy |zsorkznlid^ao   t PU ~_k  ~r  ptuq]Unpqjow}dnbg  s vmohnpQcsky p _f_WgfZmaqtom}  |srsgjzsl v\a~ hu ool[   |y}{pxwvnyxh]SC^m]m}n y edihw{}|r{ tZs} jft{j\ooWRRQ]o~ rnaz   ~cu jkv\^ormZg ufg r IW~| mfmeldckRb~qh    _Obu y agwyzvW`| o  xfoq~zsvov vfa zk{}ij| r }z   t wlzp mw x t }qx z zy w |hid^WYZZSkocOv xl r|kq[^qsxjb]syuqfanqoqovoXivy  {pr ~ w fhobxgzqm  w|  mx}afpgnppumiopz iK^ }l   h[{ de xi]_{}tfpfhyqz{a x two |w|w ~ qp u  | f} w|wmxmpda]faWMYY`qqn pymmranz ~yodrq } }bseH x ~dfv~{u{ w | bkc^t j_Stu n~wn}\|s \` QO r n TM kj ww^tymd ~ hgvk |tiolagq vnf y_b  }q }} cWljovz{qx  v |cvf\f  v { fR {yu s _ sUbsvkJa\sj^svogcfsx}qj {y x  ytpwz kTXigfv| kr||Qbvn~vby }tmrv wiw szurig x| v fZkg^khcofdz virxo{ e^qmnki   wykgjr| egr imi`luy{ q  ~ }vvx|  | z [b}yswnpt zhcw x[^n nq ltnkjbb |ohphd_XAQXVX`f!z$YV{ w  |slv   \QhvoUptolepohoo Yyxq l ym  ~ m   pbfcmdq{{u  |i | v  np  |oecndqnr  ~} o#z ~ }z lohwrl zj}|tTHbcfktiicX]bUUfWN\e[`XPEL^iOZb[w oj{x wg\j]_ o uy{{~wh uv v c``b`z|r_Xjlde~ q t]r wv { \Sm mai v k |{ zvtf} gqx } v~}h x ka z ph | ^ }py x|uw bt v V`rpco ~ ketl yqT} xl | dUUajRfwtjkzvp~ w{  |sys | y | ndpt y np yjZ | z g t |fdgXL z qWnrQOlmipi ecv|reb yv\`faxqx } rhpwxw ~l t typbfp{ w e{{skztnp  luip  ogpk]nllxiawth^fw ~ }{  exjb u jo{uiciqkZNQu  katvxtkmu{ve~ } kl  tkky{_`]`nxpu  { iqwjqkemhaqk\t w u rqed x z   to v i  VV } `k {y  iu  ww  ~kq}f\NVmnkf h_t{gi|u]i] k}]^hx^x }z } r|}|q vq { v y rlrx xq { r} xfw x^Uajr gq v hx WP v z| yhn cZ\PSfks] } p {  gWioo^eq|{y[[o v }xop u{vlt { qjlp`ocrz ~ ujUjcloemg_r| rdk_\qz~ ~} tnprh_]j[h zfGakku|z\X|xz~X_r  { w x  | m u qdUQmuqnk x~ {yfL_LSQQbglXRdnm]o{ ek~{popdj }vtfk i }z}hXdet bf  rnjl z phzx|rUiinzj z | } qut  iku  w t } r { k{hd v zzsqqdwxwsr y ~l[p `Ef|{z yvx o} z [e]SZkq_QLXX\gxp_h_xlZZQY  i]{wylR   y }vwr  ytnnqr zi\cJNjkh\lpn { my xqs  ojxvz { w} m^v  ~nY}ykh^neWldMXgmnO\e~ eqwvm_[ani{{_tqjvpdn{pmq sx}pm^`t pbih} prryz d w } k  } {uknrm[ad~ |kxsjj]VejZTnpa u qy xm unh`zvre]^qz fgn{m kz zoqxy   uxdz yndelnopm_Xw}s slw_knlaQLW u yhlrgbs { rymzzorfkieN^jkhYisSVoccmcYNUZZhlSE^icRc w pru u wdl_y rK n nj k Y`  }{{y }n  qs~oZvcgcrxmYyu{mYwrf }x~ ur v } mRchn {z|  yktk p m  lrmbmu ag|r z z { } sdath j edy  y tbiebd[Z_gs w r yovs| {w ~ nljgh{xvlgvq\c} uejvMQx kt{{y~l^tu^Q\NKO mi^oxzw}~erv nZotv zkrgv|bn[Ldvlnk{|avxvt| sj y oi~em xgXm ynwkz{bti }p vhpxsw rn wZnwzmm  lgvs y}s  sbnvxjaliOb`e^ehltrrgM~ } m| ~ [Fgufb`xxt_r~ uf orpk z y hnumzw_idSir y scntu ~ r g v} w} {rp  isx  iw kmv ed }o vqgr ~ tqUlh`mZ\   {ecfy  ~]cflkdk{s  gl ~rmrwm pdbjhe}  s ~ } ~trv]s |w abm`yvm scu  ZIcb MXpoz | uqo { v{ k_MTu  m kjpg nfVs |poiyrloy leugwpoqsw  zxn} zz q}qs{ wg\ |w icptv o}} yn WOy xs x v uf w v nmg^ilqSpvZp|{wwn m ~ nanyqs`^hz~{     z }x }xgap|sjx  }{t ~bntucedQmkv ~o~hik j^iYYn qwlgkhn vitwpm r  z_pkepy bv"#~uv}jhkptts~ {yyim { w{kn z }pkf  yt{jti_ x g^_]fl s be u| vc v  s y   x| y qtqqvn v  jv~  rQk Zj ZYnrdhd{ jy t h  cv fhq^ vsv z hfwnwqcrqnh yqz  }oonaw ve{yg w\R |u}xsyonm g] { umbqpT[z~bt z ~{ m  bp o lgx{ s m s hno{g`\uy}ngse}w{vgr ~ zw~sm  uy vnhS[xtm_pok oqti_pydfxkdfo ~ }p  uf~wt { w t zhmwzdV[ zgv}|ocfq q~| Xoql|uhnh\_n rvvq} qf oh[cdvqjx{ bzy mvwv  xt} vqbw z v p z|!$wrj\Wi u p y lq cxoq  w z}o{ spts } { op |wv]t x_V^m } z cx iYwu w u| { xuqp Nh r _[ax hn vz hZa\ x|j}vfgqovjr { ip ~~ lp x| |bn[AY } }vvkkoo `Xnvg Yn sq j h t mlqlt^fWnQ1YMNC1.n hf}vzwf}  }m^nPeze\zol_j{ tkdx{| z }pp adkkn`_zlq}zj[npli}~din|uxxhpxwj  { ~ o } z s pr~eb {  ~ }~xqqwugcwl} } nz  zncs]e vkjvytjn|s|tbw pdzeTNkiYheTVo w | y    jb`jT]o  zp | bgj]fu[rk~lndmkyjq hhy kv]dp][m w t RU xqyyv  wr[q| dUj{ lt |xt je t^k v ^Ebjrq\OWnv { pel}ytkwg`X`p\\}mspjrleu]q|ju sLktoeonrkqu{ v a|~s x tus\Uqv\mvhwre y o f]nslbinukf]jju vx ~yo`~ ]x }{b x |x x  sp vxhqrhtdqYb y Zkbb qi]uy {lWegviifxrXX ittYg w gsu\b} u `Yu | ulg}m s{| eb zb]lptmcsqDG_pgTj`WuyvZ k yYlxho}kcsudt  t q qvr{bV |n }wnVx }tehwvty~war~s ng sgz zq wfU p qmbd_Sa tia { m! wsl{jdzmkUOFdoUkyk_cpnm ydhjwr|tjj`[jcW }}`gh v  ~ x ] e yvg~pry z r |l vsyh Mlc o { mmorab xeq ~| xzs z s| nivk`t ~ }xxv | k~z x v mlPrurrxu_b y z gh_\z\hXUZNMZcNr ~z|sw}eo xeM_jrqh{    zs {hj   ~ `bxnxqrlqpz gjrn|l wap z qTfmkxX_ uWTXtwgXleJutoun ph v q_ns { imj_kfotrzg]YVOdaTfESMZU\ | uc  vfpMZ r~ zp}ry ~ {E v }fkgglffurx v mrz  znwmkq|xlo]s ylxQ]jl c{w t\LVSMTehi lefwygqgdbl|vp v }vt qt~xmompswxuqs[g]lur`jvkqrv x   { z owc` ~mp rpl vktx gors  } } |uqib v } `del nvvJZp _k qYTfjbYvi pu |qhvohbj]u { X  { dibu { sq ~ nHv hZZRmyyvp q }tnt }t }up |} agw qrw fl ~ tip menyymwi | z c^ sMkzfw g h o ex z iTs ~ u q v blpVruvkv|| n  u}xd x   uv xy|{lm|xmoym     jx x~ WI w |_^ qh jQa orq|[l ujzmZ@Su| vs  | x n bnw^WUSftrxr`g{  t |y vmyzgmq ~y{x |bzvfR[faqo  vzfgrr~ y~ |rox kWvlz~ yxyq}wuon}{o x |q{h p^kkh{ t [esu w t  vdk~qch nW_ {v | lx | uxxZ { qfq^ z xoqftlpno ppz } qnn | w]do }g`y s{low|  oshay~mUpo[ v  z z~ ~ rtml^mekscaacNNt oc^jfmu pq z { ~ xlw ~ t } rcnwlt sTn vobsxvxsninb[ vskjcnqdlqT]d\pmeys n i{ ~ ycX\cyymReemlo {z wra  uVlc { hfqjcgol lxw  wtjg~n { h_ab^jmtwk q g[   | n aGNb\PKc[TYk HJko z yk`iyp v q\o molf\^jkvxp ~|pumemwvoy  g^ap UUdj [x {O d w!h xjowlutkw zur~~y}k  mr q pRIutsjwvoaPppeUrx^rmuihr ijrllgdjylbsgPdhh}j] jv q$!m |  yus rt  w iY vx{  fu w ~fpp v ]rqin eWVGCswhoe t xr}n b [goYo`^b_dRwn[[Te`N`v sL]e\`gaYh\^jv squ[es ~w{ncu  it^\o }  ~ arglw`x mlx pwv tVH q }| ~~t} w z yw c^mi ml bQsohp t~{ ~mw| o {  ~ ~ {   uxzy } ls x   ~~ ~~r {yyiqxqsyX\ez~b_nxlqh\Vnvm`r p V } |o og u qanqoRj p ^\Xiz   r ptsgv sl ra[ hoVU } ybr y uo z`cu }  njvkj  }   ~pw {Kgfg  ymj}yim{uxtmmu mbjgiqr pZih\oQUYeXX g_]\^^UEQaXS]i]LOcbXgtqcponte^`q{ kk}{~yrxwv ybp { $$mon x~ djcR[rjqxqpZo xd }qy |}ng|y de~ilgng n e]phamrc{  Yo v ffd ~ ~ {wp^p~ycljk xgkg:M cR[gYVik\Nxwfns|v seqfXMXPdgIu | prcaZ_gviH v pecZoqsyqj|  y k | z z o^Yd]fq_Wb| | ggpyox_QXQVjnfaw oy x v !\ys{~jfgeSaZK<K`jifd^ zm y r { z epqsxqwiXt |  wq y huurzojnejqrkl } ymbi o~|su{fv y dW b\gUEWB9Panvi   emwgavynhrye c~znnb{n~ t hjjmi q ji[[ {qrsxtsiny |tbx nh { v |nkcqjgli |}x|vs s bwfce^itlqldq q s }gf xt s j ~ l  tr y `z xd } }sreomf urYJOT[V n r isout\]tkfvj[t xqppi[Ykuqjvsu { uZn } wnsif qmgy sb]y}ijqohg_\|ws rq u } u t ~ refija{}ljS_u q^ | }equjfny| yvujtkyu }  dRmy v |{  qty w y } |dl    vl|p xswsnf^mqsn_i } knp z ~t~wr z t r}um }uvxevuvkm|| ~xcshb t N^n{}^u ~ imondhu k \e~qqpjoca`qsi qh | ~ ~vZ r ]C_u{lemdv sZ_n~ x \ s r XS]UPjgciiZ]iWdwjtp m qmafnk  i |u| wnj s yxz   }no | _X]]Nh x vDT k dpvV\ xwqto`mxucoxp  w  kpoj mQNs owsuzqVJ` {rfspgqj`qsco]]jlnufb } |[f`\ ~e p j\`bq\dmeabmlw|{we   nr { { ov}g jgkb y tfr{ usf_ xz^qpY\J<;MYcztuyqlW|  z iqcPbqqPX```urq ~ mfw   jmp ~  zlv _s]\_ieebjpsoW`NYfUnionlp|v{ v^ u }{ { f u oz ~ } z w qewvio qvxz xn~joqoilZencl x v_dil ud[[Xq ~rrt} w y szxslgugZbz yY[kxlm zj^\x | mww^  }q pu {jqunKTcZb``etzuy {n   x ^{dfrt]cikfmSL\Xltmqv li ~ } inybakaq"&i p bm ~x }  {sic^avtzni} zw|pimw nd~q stp\]ktmmi }ubt ~idhx{hrs| w wslZcepot`_jmxvt{ qg  ars`hf s~cnn\dogopebIU } rS`ke[fr~nk~  uw"pktgdukd[WaYZhl]x_ix kaVmlgtsz   fy  t~snw} zRh~ mkz j cs x jWthbzsifx~u pw`\lp\{ oprmi]nzb zo yptre\`p _TMaakeHUc^ htd[c q t [\m|ml  q}{y  y^u~ lht u s $$f  no {\\bjo ~ v ph\tgoeavxgiht_goglq ~ mRb^g sW_S o w } ~ vs sn z lc_j~ m i l } t}} } rv`lp[_ iancj\[l_Zegikon_xxuzz|h s rd  xjsy\rfz | j| ~ w|aY`V\bu stb\}wsrprcdmkc\m ~ wgk v uvzpwxhVopY{h`]Zy}wxw r w ne{ st | vrq`id^da[\IH^bTBe ykfr| zrcs w^lo]OnrjplvsjqqYMIR]LW\UXUkvn~u XcjcPekvqw ~ xs z } lqxt`mimkswj]cii_ u od[jvgswxpslew qu{jjdchl|bsvtpi\mvdgV^ w c |{foiXPQfmwgmtw }q}y  x|{xkwus }}oz|qrgiphr~ ~b^uzws v  mei y  isyhsq wmnw }im | i }  } ulalhfqecn m   } nn{{  w }jc vXij~ s zq vzmo~ l MMi```^xiv  qb}  |y { v_ v mT^ixoc}  i xh_UUqo]gsasf[qrrm gls mnu t y  | Ts yx z yg_Wo|i  ~|~xj y x[cXUh _^ t kx }[b w x | y n[j mr wv w  ~emnm }fa {ulnl } aZ e |pp w ikgav { yum{  {i]}|t`\cYRY r `k ~ nh`harqw~ sh x o  o`ujb w skl { f ~ zmw{ rn]W t|{Xoldo]] n}rk ~{  |l| w ~ pit~ mqy  xuz udq  mldooctssvw}s~i] v y m { ki`fpy } q vatmy krln`rnt  nmdnxwclatymbm |g{ z| |rghc][Ndytowtr ~v{khmnJXbT`rnWc`en jd][ssu~~zd^ll_ ~plici } c\aft^`mgldg zi o s [vzyslo s{ll xy\fgY n nYUr ymown~urVt| eh| m{ v vjdf[ovtz j`\nkW]l  {efl jen  x t ~rjm}  ~ w y y { |j y { jm z vwuj iks w dp~hevzn{twt qu}ve^pz{  |o z fhho[ p _ljv u cp v  b^uz `kuiYfvppz|  rr | ra y sn n qxu y p| gvqmcWtslymllyxkos Vo p|kg} ]q lor i{ t ` ~   l }r y vfgj b tvv ||gwxj ~v ~ r pju r id r jywUXga m| pg m{~ff ytjvo ~z  ~ ^ru^jdNNRIgeQgsgZ kgdrt z t q Vr zqqr  ztlx~i vtd`m s Xg`h{ bp m'&u }~ | xokt xw q`Z iXtg~{  k|o^ooRRki}   wx uxx ydz pjsssV_ |cpnm y d | zty x r n e v tr{gel  ~ s tvihcfm^jt l^V]v s j v vchuttx q[pkR}nillv o zx }z t~}vmnfRfug Jg ra_\pjodd qjx } qe {| xy{{ hiZ_ p bfhf ~ hnr|wigc^Y x z z zyjw uxvn`oZZk]fuoisuqg|{tg|zcqx}} v} ksYXOJW\s _l    s{r ^ol k^kgfz tz } w {t}~u |  ws   ur ~w vm[f we_pvwb[fa[SeXajnzeicvqw~sd[jodc_ajrlgttsthakniiVPd x n  ~tu {} ~ uh v[nglmb{whl~ok { qUTx svve y y jtxbmotfl  c lr xudr z r {uu}  pX] w ~h u }_bhMRU[WM[XGPULbrtX o yop{ |}uWi pkz} { pw z kqix lvnpv|j }s chidphWX_ }rdtde sx  r~ | wn~yrui{ } d^_ruif_ v w kz rtvpx  nxjz fTmW[ oocZhtvlWT^Zg x_dw {p^`s\ tt~{fYVn_Pxykbugfl o`^mZ`wm}u|ztw`Z wt " r_ hs fr{sr|}{upv ~ vwchrz tuz smw yeu  if_loZbew }  } thipv y twqw   { | b~ yo{yswcfq~zpr]r |uoc d n yn u} yudZVVTC_xyu | w| }xv ^u s[euue{tpoy vvnn ~xugWmnSpuqxw|U^w {z r o{  v pptkahl]vz{rig^s y un | nywhpau~rv }}v ~yvs_q ~ ~ onq{ } kwtonskjzyip}mp mh y m n QZhofa`espVl vpt tj | wp {w { !|~ tr zj w} ~p  xql n ou| WY} u^Ukstw yqs oosq ~v n ln ~ y be z x u| { a[rrp }}wa {  uskm { r$nq  nkiammPOsncltgx unmpqot |ykvyj { pofXvzvXRR`aUWZOg q ry ~{Ucm\Xqig|t]lyluvRhth xj v[NUsrRssqs } | cmlpm\s } xsq w | z |xs m\h_fvqjlyurs~odt     | ] ~emmTWZNfbPhrlUx    x tupd^Mpvqxahzun\^p g `}z`fzgPmnitgW_eYohblhoj[]ggfp_HlpZIZQhtjqzw {mikQN}tm vt klq |wg xz WWrrY?TpmW[ t h zmw pnmf h i q   ~ ohk z nx~ikaenb`v y qi`x x[rvalsphpx q yYy w sp{x ~g  t  wz}{w| eh tm Sellgcvcld[aXpt |tyxxw }vxge { x } yxi_w}x ske~dxjW^lnhpx  xrd{ykvryrg~~un t ho||} zx{bylfaaocvmj ~}| jw o L kmufx kr~tlngid^   s  tat  psyuulotvpak| xs   yhm y nknuhgkr ~ pdZj mx| nuxq nkp pfnsiLYq v v t qx { z`Rd }lx y lr}y]`\Xmrbgqffjxxkr Vjspvc }  }x  |y rmf_hucqvj { }  }v} XXnx\^d |l[s |tbq} vuj`y {  { lkqs_w [cj_ hg s w dw } imjZr{u_hlmdex ~{gvpcfdidt {hojn  }uh epohp ic w s dMNmgl[aKP\psq u j q|xtq  svvaWSqoZSPhniq t r umittkHYnrar`ipF<SXfvc]]s| vstbtzuso j adk_galhn| l Rv|{fxsed {xgos q}  } bUkc~n| bx pfk wyy | xx~}tokp| uqU`muwouu  wlts[n w~~ffdlr |o]pwo} unrsjlndlpfltqsrpMjuiqhzr pw dfhxpq{V^z{r[Gl }[`hal wmvtv{vwsko mr ~ pfkjgwvxo  ovq  yy{]d } auho|}  `gu{ws w iez  lku {unsll   sjPgu ~ ntv`e o gzxv pl us   |\gsvlkh v   ~ | } ~ uyuqtl o `dk}~ }rt zQ]zz ut}yq {{tpjk[x { xle}ri yzkx  oj v|rc afb | n~vsb sdpsuik_]`iy r X_ s oq y ld } hfvkn y}rUq t~igX s id{lld[`aRWoo}lwu icfbWikfeypx~r\nplnVY`pqfg fQ^ ~ xever et xdwmj}zhk  u| apc[peWmpddTb Znsnhrwvalvb_Q\i`WRcoxki ~ zx{    y~h{ x~  {Rymip`jnf skOky mf|{xz z lf z { }meZPjUHogv zd  vTMcXs r} q| ~s`wgh\s    vgl s K<_gUFPZUe\OEGQOfeXos~ k y c r l^dpkXW m^hR`foeX_\X v   rp ~ecj{wo \x{ zm  ~jyoZmo^pwqwrb z y h_Wkekym}uliRbvteu|s}tvz  }z ~yf| ~ r{ddjSblfYswvfuuupq u|{x  { { ol~jpwojd`va^| { ]Qhrkhjgchgv   mt l`vvjgp ytp | w    c} yx v q| c n`g |vwi]_uyTcV@yyfc yjtnem t vrttoaPlpuwdem |kUamndyz{{ {{t z s lgky}n y }{to v |ucalyj }   qx tho oju|vYdjb\ZZ_d| v aRbwcu xr]pt o b_x |ioz qtp~~x}eyxi  jqru   ~ gg z einahmk|z{nkw yp u` tx}rZ` n dfXCT]`^_fe{y n _f a_Llgn } hem l {~jy  un_^cxf[rqjl x y nklY`h { gkec}y { ocU[ls`RLWnqXfa^ wu n OZni pk k[BIig]`TNgn~lo}  zytul a^ f]WfaXi o a[XVt_y wrt nki]p xrzn  ]p vu xx { pjWI| gq y| rSz~o sTX vy | x}   ppaPYTqlorf|w}ypjwvw x  |njlounhrb w r y smv tx ~\o{| ~  } uZd`Rbbtqrtps { vwglwux{zOq w lld|vtkujsk  hcx s]k~w[_eCGPeqzvw { | ~ ~~sudl{keusu{p  }x|~np  ^s  w yyr|   th { mk~|}jjx  ~ { gp{\go}lqlV`gZ`fw ~ ~ w `O_a t x {s_p t~ dcltje] w z ltfk{afjz | snlPX``f^]Xi t  qm xQ` {qomsp~yqn}x yzuQn } pot{vzy^bbedJElwgZx p  rf[\ w u s~   iVOYibLWf[Ziyx aWh_av]s n Zvslglxp\AXii[Xkhkiffc`GIy u t nyrm  ~ g {t {v ~ | kz}yt |yv qo u aglxxohw} x mr~w y ru { t_i ~ | k ~o{|{in~} qu |h\jyxjahtnp | { w {tbn r\[pq jf z sz q }yfzwiu~ d   v xz x b i v wn|{yz z _` m igt { }olt h { hF_ xz afqhXmo x |WSmqt~ wbm tnsgX<K p rgidky_Pq tWcqSfog_ p h~{m a dr s} jhcu}jx`Hc k`m z m_kbsmhm x_MXLARe nahXbo{s oT    }x t up~ zl|tz~{saq }_jf[YVfXb{ txlu} ]cvtaqzq|sqt|  vej  s   izjnspj wqzuy~ m[s|  qnaap v hl ~ }uwtqLVvkaoj`k x | } inrx`qzeu } u z qg^nf^q~ u\\Rfsrss  p | }l u_fKdx oqreijx_ [ fj~ mhw ]X]urkr w eulr z s x yr rkcSvurjv} }idXKUPTs v ^djXZbZb`[eiebioqe } sejv{ o ^h | ~wy e zwxqifvq`MUbF[V o Wge q s ldjxrwzzz q  crnkT_zzz} qq } z y hl } qmo  w{xu ~i^yrakk} { acth k dOUL g iJUa ig^Ogf`D]s ah |md^`yde p | {ul la v~ofl u zru^l v |sZhcdlq_eZ_Zp vxf x  bpme y u rSoz rp y xpbd wz o `at iktonz}wvrb_~t v u tfbvoh^Lb } ^ xr nq s}{k{  i  nz  ms y|nyd[zhpt rv[z w{} HUwn_^akvv   z n x{  zz jz{w}tpnw} x { n }  }s|crjoaXc\orf_s u Qcskm gipkx~ ~o zshq}on }|{jq ywv o Ht {{o m x q  qsww }|vv vbhmTl n t w | y|  |tkwrru} tpz `u|xw |l _e uqyz _hok t_Uv}xwu xk xv zy yq[dvoy ~{x|teicneiqqnq ]FNISS`fuMSIVmnir~ s ga| z { YRb]ablrs  xy{eu q\LX`TUWkgkpjNg~|  yhi| |  ^p   | h pj }z t~x~abt}sUe~w{~ now qxy zokmv iQ] lbc_ ~ p|un]Zs WeiIZ l Medd`f p ~jTkqnhh xqwlj z xwO?_hfm }u vl a }q |qpzs  q  | {r  ~ZWacheisb^lng]_jqu_gg]Vcz | sfq } x m ix}| x wvnv sdr{tf[f[CX` v x} tfVY@>VZPJYXowTf j ~r}zzZ  gkfj}i  i twuqrvo~hjnIS[YJP`s ysp { {  | UbtpsxmYL``fnmSVZap mrc] |uUbz  } qx~ s}! SQz qxz| r \s iDO   #wg kpwniz jc {`~ x { zsz }\q rnnvsp~{}{[Qth}la| u z| x { r   znf yg jTz tb`T t    z  orsp|fuofwsxdgv}xbpn^a|~ he { _xtk y s { sx{vyhu  x ~vayqxnq| ywyqxeY]no lw{ }} _ujt b } pYe stt eTv ~ec_ke x| t l e rthuz{wjz zoxr\q | jc lcuv }ecsuOp q`g { xZJPtk^ez unfqbrbi { vy}{  u`tstt^rrspui`j^\[dR^mYms rjjjnrbZZVONeg ~qXht sYU`ju gf}zd{vz  nkSQjh\jo WpolsuXoi^ilgqpt wt d |vRg^qM]ogaak z ~ } o } zmznrz  jp z dcnh`^qpsUpw gsz  slqq uzpc u |} x| zr | zz y^gut z ~{ ertIIg`fbfs | sy yh}qzm } n\ |fdxn  y { ~ p |   v p^ x u uew qo~tv w {~w |xan| yjvkew ppz oc_ sx x z nj z l]nim cxno x doomx pYtpfwu zn  ~ x ~  a||zoeZ xp\ y edmaq]YSM_`^NWmsvw]na { scjl| mr{sz{kouekmx zcZrv l`T][jrnhc\dEetYfvgqg\Yo o l%khhbO`u pbf y q yr }{p s Zj un mGXv xwft _qmYj mrws s { zo }qw | pplwufbjnjul  vjp e vtl]m]ZUgpeLWtlIes vvsndqjIP]c=`mqdkrqn | Vfydwztjqmhnnf_EXpgt   |p  xqu irfffjorp e\`VSKaV] u_ddvyz ol u oPYysvzuhewvjuz s ~ v r ~v s } K^| hq| { }  wcS c noem  g[`ZnreWur n v  qsy p ~wuv ~  ~ ^c v  ~ pmtwz } |\o zhnfJfn[sxsl^kgumqnn{xg { }p k| z Xem }[x }s^ k{uuu{|u sj{~ cXz  wi l rnlL v s [lpqz }gvf`o rTem\V]pory{gr cZsmfn]a]l [q_gm|rZjirkjolzkgkai|li|i_`Zvpw lgs_|l~|rsy]Ycrt c z wfhi}x]x wrnhoqqxysacmg\z| w t} gz { mUi} x i z  zr   XZjemkiVeiu!&td ~ [ohq qxc  }vx i_| }~u rUR]\9* kgff\QLHic[xp ycZ { Yw  v }w}}y{i uq z qz qRmybnYL]R^nin r}m{pvqlrzb } i vtq k] y ~ne urrutqm m xpelrqqanfSUjq qe y xXicYdY`oer z v|o~  oo xq{ rinx | bLemkbprbu yktlc y {t ~fjqo oe\dx ~sn\`\g|j vpu }tYg}z oc  w ^x iS`g[Udt rqTRpt@dlfiu~vfi  fV]oi[_e[`ZaiXYdn qp { {p    | ny |~jo v  x |w vxnw r cVSidt kn q v d[P_ts z ~k ~ | rih  | j } xu pqv iwmTkmdoslpkz fz YelRm eox Me bWUZ]elgc`Xkldvs\godn u XRcklkz uoMfn\_n~{ibbtdhofSmwriqzz  xk~ wn ~ ~GO kY^`ZftjXxy}q acXwo {t q] }  |k |j  uro~ssp| w vi|pjZqz gfz y jqz ~|npri} km ~ds hgvtja| { pvwz olhu  o]j]WtxtZlcdhU]cPS\]G]`clYdzxrfxzvhyr wlks\]xpjkhl^ v Z p} ov |  v w k t |omsorvhlQn  z vr t  s  }ljo_hhhnkkt }m }$&w  _z wpn ax {n q m heec]e UMUtnf_eejiqlupkk^aa`[9]a_uwt`lSj  |Z_o qf} {l } feah z^NWioeal r lgc x  m fzv vxqwqix mUYv bj Wfhhmoonr z lp}~]v   z } tsx Zdra} om zv | ~w l Od t cjum vkzmjupohmx } ~ nckz{r s }e^ sj mbo }  ubpe\Yrvi}|}xoix}ruzclmhcw { UYY\rzkgikF[t_^^hh`bq{pYHA`^I\yqrwes } u b^j !zmyvi]hx z [fx|ov| w  y  y}ichy}jjovvlkraq {t { ^ }v | xwm s|voo\hgThzqjk } gkyiy b mqvpokvmohlzqnaL\kie]e nvmHfvrj v x yp { am qY nyi` w v vsfe ~ zpqda^ci |ij xm}rrt | p{l{qonz | | t t{ wrukXj{igktsyTtkmp V t ~tpgw ly rovpfowtn rv h] {   u fz | hr z x kz s q |^]kjt } ihZQbs l`}sYkp {sv]tjcgxje~zdkif oRXZVMA^`flq{  |yzxrni`hX;LNbec_dQJq} zgu }ysvorrwm k`ZLjmfpoe~loshp y Y  ~ mci\c~ {pzi pwi{ji ~nrkUr |  refjTEfubhMUeSI`|{ ~jg^cy { u  z | "!rt    ~dpbrriq hmaW]fbkn\Qgex { `evyqr   ~ { o }vraHjjer }xrkv}}~ ~ | } wwmv cYKe} hmTcou  }fkvhizuWcz|ylbs zieibXdt }_U} ~ ]lklokn j Ze sfjtrh}po u os|}|iVjsjjkzwtrx y r z ngptrsrcZZisb {z o mr w  {fck  w r ~|rs t{zhRs ov gyrwsm| Wk`]s x qu { wrxV~t  n |yvRh {mn wrknnvqixxqpstftgchkgalt| hbnZSr}{mca woq{ v Zb xujqzto ie yt`kkUfqWms J\ u\fztk bnarp p}m { w~ nma y Vmh\aHKVpx mrjq u ~ifyjeQq { hetnUbv |vdftlchxmdx yxv  ~wn z yaT]h]Sez_R}yz~ yvs{ u uq \t ttoet xqcVM\\XXeXf zv x }|\iaI\hcW` p}ik xqsxt~} z x au x   | ix ~x y ~ t~{lfo~ofk | zP\ { Xo } } c{ yw v  z_^dq[|xkzjr } smljl^al  yxy z|  |Sxjx~ izje} YNa  ubL_wgSmipqp y rZu t hkgYRQZdwsMioT_{r| o |  lyv { l\ |gh x}{ v v vqoku pj r tey{t ~   mppnhQvrcph }   s _ o lPW`z ezs}vntoiopwlh wni qs |p}rbn kp [g{|t_ v eoez nx  t} ywzhTTa[RFILZkcXb k R h #%o jfftg[mxgR8fmYp ~ # { hY`pnahj  {iflW[l i DMoher|q^ccVekqq z ~ uppovvhrv mygqqlrRnofsvwvfouh~pple[v} lz |gkxozzm { |iReqgnupvtivzwvuzus dn { z l\eww S[henx||}wj| ygjcH] i_TlwhmgSDQlsnpn h w mod zvst{{pTtqb nt icgk  {    w z~ u { ^PcXPZoWx hlkKb| u d]w t Yp|jq  `fzrh{ i u}pdxp uyxf{ {tvsvgls^gvrsv f xl h njhwgcZGKcq^] sio ty z }i { y qf~ p}`s ncj VIO]YXm}     ~ z u^r ~ utt{ernjdblhdeifiqtq~ v { q `iesiUlhhqkdc t u Ow ~ v yz q wpgm~ s sc vh }aaxfXnr  ~gqy TIhqhlELdX R_}| vvx~qf\m ^huirj s hW_ikaqrXe{`t|u{ y nb`cfv wbYggw pim`^aafppor}ys z { }~iK{~siyulbt|tttvunujen ~ { nUgcmnit uyz fk |YXdhkhjt~ } qel y eu w mloe_U?Lwty{yg z  vklnn y kh} ubluvuv yrnkv y ekuk`QRhhrvsvsqrdqlbm x y }zpjr `Qel_mmny pLh yV]nyb{owriwufu y qq | } u}k { fvvzy]l~qw   |u  {pok[h x egpnq u| ~}t p l_ |uyou | ab sy ~ t`ffb xufmmRjtZuXkz Zaz nssb } vrtk ~ w qj {sru]t~ y |kfb ~rn| usagzlia } qjsnUFh ~ v pq_f^p {ks{w }w~ xttmrfloo{mhfplX[tr]  qsvuqlni xs bxwol { } x xho p r m oai} vsnt zZkk\ ts_af w b]_Vwgkcs y vmgsWbsdQ`sxykrsYb~s tujfp v ]FSqiTNku NYobu y y p qpj[g wgoc uso | uptsy| d`k ror!`vwr { ycqrmy  bS_m }q[g{vmot v } ~Xw  y p w x lcg f]{ | Trq`mZd } pybuy`_j zfv ZW{xX^_W^jilkliabadpbTnos|^h~urdDc~y_fQn w  r_xxj t lz {w~{{}{{yr{x {fuc_f]tsmzucda na\t zfib wrko|su{jiww|| {su[b]^ x  y`^CU k a`_i wfu~wi Vx hiro | ~ vk\Whsk\Z||XP o dK Z nnRa   ti o iM\ p eaqkXd|{ zjpx puk l ~uwl } rVjlaciopp | t  |} m ~ hw rq }gaZRai`Vbvm }zx jr ~|zlw uzfcn{tZITt ufekf{zpxsx z oW f rqg w u{kNbyws s hri z ni ~{{sr{xfIc`Rb o cTihzdb]l~ritmw  ~ z p^urs]_ow jrrW^lj`\neTrpsel ryer skxdt svqfy | nwkocae^brnj su u zcz uw~qm {dksm ectac_M_]`km]Lq {| }}f| }|sV[cTTkx  v |l y z{pyylwn^da\dimovr { s^rp mwjenwnjs Y} | r y p klz abnwuq vb  i} | dh |obges~bujg  js iWs pnsxufVcpuvKQoc_lbeXJ`ryjx} f u gy xy  xnm tvwwntyouigjccf]chmhYYdnlf | lFt gia`HY |rrpkgejf^kg]bq }t TVr vlwt Y } o yus vgt  pjwqr xtv z vf[p { e u~~~{zq gey |  zVMkhoUSlOL[UVgottolxun ||skutdqwll]Vt ~ uuzwzvs Zeffg |  ~p \]qtT> \cKRihi v lv uVs ukovd{ealbs  } ~ ytyuldpuji~tv}`jptuem u hhq strgu | ~ yqrwmqv { o z qu yy t wy l]   } rv zm u{uj kbwwon k ly ecu { tm`pVJ[`nh zrc]dMIu}{smi_g y ts w km y zsq }"" y ztw~m\lh`\evtsn{|pqwwled} zuw} v} ~  jjbP{ lhtySQOXIC_b_\TZ | xZq ~xpv y | x u ij`cxvp_`{ y y wgoq xp[_Rmwieqy~| dl ^]w}ow }_Z } skqtzch~ w bjra z is}k | z  w}umbh  |~ x  vt xqs{wruxlp z odji zp]^ qz}et {ymthgwyz  m e u vws`k|ttufvnwkw { H`l`]jpha n p _`s | w hoXa xs {Vhpeem zs ox|b_ } djiU[u }yqv | v | | nZ z }}~gr w z~`t ~ z\w }p gtf[g Yk }  ~vg opt  oon~ }o{ z ~ llap rnpuaan`Zbcn ~ uu u{v]ph[v rVg { qpsq ~w hjtyhXk jjjuum\f^lpfx}cUj_BLc e KPr }vpxtd{}VYiXY zipzzaXk x dw}iqoizvjxxfm ~ rissir  qfqluwv {dt u ^ji_a{{qdbVju u nsiwnqqx  kszvomqpjt} z yrk {~zys e iknbt l ox  {bv { z nhinumns  ~ tju}ewkR]q m_]Z xc_Sbqldpijkpsv ~ gf} yiSz } ~uyq^`p w qn | ub v ~ io on zmquv  tq g{~{|ku } ~bmgr ~|nptnzos|npw^g { dhgitv t iZbdm q |dzzvixy}qrq\cyu z    ]Wltz  } ~   y jpnon_V[fcKcb m pXx lijljm[dzdWpzre\cPPcw \cj| v  i | ewuw }rhjo| `pqn{z g x]Hb { ~vzyojiQV^fv^dngmzpa_| t {wago{ qmx rwscZeqons }hgwr ~ | r w|p Zs ehgY\bopbv Mcx p|z {Y_   xpzvm  } nov{niLTismw {dyvak}qp ~ mm~ xf]xkfihlrq{ ge|tczyv  v l `~fftv~i^|v z[c v o z }womwlcpj`njiwtltodx ~  kuzzy vzkR_^TSfwwlSXl  s< [ h PVw o  ~ fv w w vh~gZWKbaujx{ ztwxtsdgjmc u} togis n jcbZGYblnmy yqw ~ r y lri`tune{ x`Tw}|zw  } |rtz | jawyo u inz yot |via`eZg n t vl ys[Wlcex}~qwlqc\kXj | kuwlluskleh| ~xp~} wo ~ { z  ~ | vqx xc\ }{t z   | { s ZSu  lj { pt u t j~ } }sn z`v {xx} }vjr s q } r g x{ldK]lj`fvstgg[M>j vkm }  y } nm   u |f[sigy   yu { sch} y g z f v |^urniat{tz~ | ~ z i  y ~   w  xgc^iaNNa^^Ucw mtmets `^yw { h w  lknYjg~jex {uxqaCObTr wW^Whpjpss zc{tdhmco w vp |gdtou prg{o wqrnrWd |v[lzjdPUa^gsVZbg|   } s w r  zyx~ypsrronpyt  lb qjee`hruuw{ }k n sbv ~ {~| }  df_lsaj }z ffo{wrfr q} u`b v uYJ[knhln^s\`  | o  {uqpyhUez mw|y mt{r  { {r zuixs^hpvykpky w o[r |hlvoj]Nr| y | n {v juhthkpw r kg  kgi{ ~ v yvnn z|umz ~qSLM_Yn{d p| sP_{|xrlt v u sopagsz pndou ii~x_`p tlUQv ~ {tzw yrl }zsgrnWSWVddWjvg}t } k ^a xrkxiYhgV_udYscXx}ryxhv|y sehrrb z u]fY\ w w } surebxdqwpis~Qevhn z {{ vkdhv m !|Tfwivijhk| y~pw~iunuot vrgkTQirw wihsn | s } kphidtss |o\jcebMnohk[ismd pu ebirrjjwbjmw M_wz x{i |euzvqlknq  tw sp uotXj r QGWjmkz ~ tv w gmy xskvjhvpw ePQu vt xgc q Zeu e[do]aeb]ak qdq | z y ~  ocfn}gCdihibps } xjp r zohts cm    x |  hhv ~t | iFY ynph^jn]drhogfqqmh\] } ~~ {wzyqzk~vksmg {vvsc_V~lgrw{|  akpq~z ~  ~  xu { gez { svmes|z xmnrlq qrsyxh {xrvs{z m |XhrZX y  t b~ziesify wu  ngUYXXaZ[kpp } v ~ {}   v~ vqpi { w { { qpqe\Zcikt|  tvxhp z luoSW s obK]n vXZq tmy miqll]hqimm y uzvykf}y w y v {i[tz ~lg xzhV`l mvxv unijphjw u | { tomQ vs zjijk__VNcqk`}zzx yoj ~ |vqgpzpau~lbfwj_uwocjtemyruqpxu u jm} trowzv | o w k xna}z zxvfigmz mrv hf`rlR`kj`ewtsft zt `x|jfnlmqim`cebKVificly ebyoqy | }sfQPdgfWl x [u i|tri\hljohef{om { h]t}wc[g~vz p }  |utllja\m qiUeyu]hrXSq lfyUNpm ~ vat ehncpmw d y | fr{~  }kSNi _ q tclX`eo TZR`k^ q[_hY ggic } |vwvvzfkz g\p[i vdeNhpnbgn u zolMZ| ~ r} }qc x sg r|cu } hkrqt{p\^eh{|z||w }ZdVm}nset|qzt[smli |qwrsnegbu } rqxyp ws b  m xs wlanz u uumqrrzrbbotfZgharmw iXr  t^o    w{l_et w  qz jn }xjpyz{ql } } _gz bet }ns w{|wtyzi } zbmj^u z {   {xyguzfktn yeq}zwrfjcRsorn { n]hofhoY_{lgipzmdmbz|y od {  ~ vpv}pWORol ahmxtV[yhgrgt jlrof`rjlft mL\t x fbp ws o g { } y }vx vyudrnh\PW^VXjt\gn~jji u}rot\TffV^lsbUtaMsyrj}|y fotmt`]`cZV p ta f QJ\a | o z|lerr`iqj } ct  x\ w  rh yre |uq kOP_Hc b 4F`^p`V\Tr   dx lu x _ v idraavhbi qd` r sjZTJUShc\qmppcqnrouxisafw r olblqeZwkl v kjq ozmcns\ljr`c_ lz |qdhg[atqosdh zxv ~almPRVgjmzop zr  srdmn{nX\y} v lgSf xkpv~tr x u jdhaljw zrxohefi~X x {wgno } }qvgfdkymouVGXs ~uq y  YRk |\[kw x xqq t abu^`t~ vhkv |rtnapvh ytncLx rmy | _Vvo | |ur{~VTfqnpxxsqwvovub^w ~ { zxtugeyw}ngi|uzwpwfv  zwzk^  ptycZmrh\Gmif_SbWa vo  r hdS]| }fZe^XkgodKdifhw| zwucst zv ~ } wgjmjioydei_kymv}i r!$ z e?GVaK\k l`ibSK`ugmg`u^WXVjn| ryn`mpcuuv rcG^gpykk { cW\\v wp wfj d\kpwn xqgrgQesg~tlv y sj s lZgsfdulhrn^y  ~ tbhxsjzvq s hqojj_S`Vfw svs sciiXh Ychull}uorhni_mlPhe`q jWf\rsynynf\fwdfrmrs}ozgfs }x jw ~dr |nd]Vf } }shsvr\eyoqmu} p ungqu|ox|{ssu_TfuoYksQjs[i`kqo { } qkVYm oh~rrq~~ foo  jjPVp~|y y|fv at r_s u YVlob bWv ppjYp oqlqrvn { xb`]ap v _ ujr t r r s |$v zf |g w fdgUTCasLKvw ~t   mzvfVgDXaDL7Pae\o x_vvrQ^  ~ ~    vm` otYkpu ejopx{y  y~oaulp{{ h ~ve{ ~ \sni`rz~{u{womaWqihgjd z kWy si {w zqgfgggfUalhexva{ ~ o m kt~ rlwv Tbx }`jt p k y     |xt u vm}kwaXemlssospo\a r t{tkt~usxt|ryfsuk~uldy v{o {au|||pm w |nblcIm|^mb`j`[qzrwti   u } bVmertrqVQy   xsz iXO`S]hW msbc twqWr[`j |e_ |nbhxwffx }t zpabhnqz}{}usvryg j UVMisq`v_n halw ~z s o  } mryx]VqY x { vn|xp myxxsqt  } ` t p \^HDSGmi^ r}   x y isZs yl\x ydRmm`eclpORhM]tYl y~wtC[tu ^fw ujff u sqtzxxhxv nv qnSdsyuiw|} vv~lqk _chtm_ y dj { | mwj_jj_bw~kwmjqp sWbgZjtyjmXp}u  l { { bioyddtZoqmnioz wmnqtzqvekpZcpc{ |} n | y ei { zst~cv   zlkqt s_gj^blf]^`wx`o sgwrszkmchhl ~ un^A4DYhl ZR\bf~sZYu  ~iOahbst j|vn xbe uSPmvt`fdszxfwwhwypw } n[u pn y m M{gpkkdJKLm ecsijh | dqmghohst | e]Vctos{ u|x jy~x}z~}kZonj  u cXy  |v p} uikp t royVRaj WFn qQh vypft wnn u d]|kS`u y m o dfiospv pruvrahibkt ~ t xWelq  eiv]m`` w{ xzy  zlpzw {wjvm yfismc]^]u }xa_u lm u  pp w Ph {ms z v tb  ~ehdnwp fy~^n e[p ieeg { }ot ypul  x  qm sdXXrntqv u r Wr t [uw hCl x Oioo^r~v{ |hs jec\k ~ hzw wsn o ]e u l   rbqptm ljtqjsolwhl{rzwto[ev } d } apt^csps]r oVj sdwopt r\^oaUgro~|f } _o| n  | hq w rpikkgo { u a\ ~x~usbbxxc_o|mYeap }  }y   ve a|{uw {oYef_v  t Wl hjnz ]}YYpoa~ z{} c  quo }rw   z hjw thCz xPbjp { b^Yei } a   w s q t lts z tt z ]U|{a {f{ vmjWSrZEUa`[ u}  }wm | pgl\x}`]e Thdw{}ek wi\v}rpwgqrryos}}q z zyf ~lr ujmgm }in ~    g\mk`dl a~u sScqtdR[ojNO[Zcw~~|ssny fb vsq\c~ voz t tifexx } sdt ~ xmesxiflrvx{  } monfsv yhnz}{ |} t~q   tla{mx bi y roolz nygv rgx ikw q`X1e w sguqjm ~ }}zccdivpQd| aczs nvpt  jl  |glxho |sdfyzo }qj { zw|y w  dr xvyia w wlWeQf v mgu ei tpg { `Z xmh|s wn{vt  yf } |  y XomUnefhpo { t  } pha mb {  ~ vpuj]bbjrlv   n jqju zyv u qdppb z sw  rhxt }ov|so r ~ x lpq ~ v {w  wb^nmp_pmdnoqltw km | yvbs z|}iv ybdhv~q| rz    ~yhl k`rcp w d z {otswv x hpzjs wgz ^moipo~}yyx { z ~  | ridn qU` |{ykd   v { { |v} {c MT j qi vbZ]el ~lgmir t^eZGUdm{q^c zntz a_jttt`SWuxb|n } { fv } }g[ppackU@qll^`o]iky mwqibX v y bidjryhlmx { uhytv |uhqbkx~w~  wx sry pi   po}nc   z tz   dQ`neUgfQatoq ~ ug | { nrp s~x\k`doz tb hmmjrnqzjow } l}|~ nwjxzWP  vgk}  s|u|| yw  sr z }|{|xeZi} |{TVijrl\n vr y Ui |nqjZib~ ~ymk\d tz q w sSfm iuhgms   | { xrtgqslcsx^nzpdcwu{ma |`{|Ui~ v Mp { W w ygpxxsuXaes zqondqiowqv xg UObjrk zmndnkr|pvqjlav {`  }sjnvu{lefm^ol~xWUbbe]p |fTkv {glcktq_d { { k~f}xshz | l x}~{tpqhw| y aY | y~w y usxob`o y`c_t  ||k\Yp ozwZ tlx {pzspv  lW]wo[[VeuQ ugch]Gamlppx r w{itnqy~zuwxw|{mjsttRqyx pca` }~bsoUq w} { u o ^\{ddklnqw\PidNbVmcWjrf seR q td[hf_pmqjZSpkih[nogf iPSH]i^ioYgi\\z vz s|zpki[vwfk x smjmrjhz|x|wj  zyrqy on v| yu YKY]XVXjuW`aivz n g s vu lbhni X\ hgjx  rhonhc} { y aawojw oy s r \MP_XWRO[Vbiltwtxxn~u_an | lpugjm xY[q^itudgf y pt} p my ~ yi y lZktfghnrbmpfR`vuipsmkgv sbu v hu p^R/Mbg_jne\t x orqs~vQVhyzzR_{~jymyux |cWpm^Vm px|_Riinueusi[kv u{ }}    v cruu bbqH\ utnsvv^Sik]l} t` ubd z bo zz} vopjxi ~  aro[mhml s ms dpqmimz | }kj zp z w~zrr | rk v yv{ bu  w {  {gmyzshmxj  e y {} tq  {`r  quqsv`osmrn[rvow\n}nq{yu|wx wy w  rly z nz ~ ~ jfukt  qy~ khjxxr ~i\q{x~iiqx  |q } s||f {    |mc{  g_s~ w^m w w ~ z ~  | wh[`cjkx  |}|vqmoqac tdlebzw|shpv{vwy\\u yf~~ zo u { wpsk_n t wp edch{{ki}| uh r rq {eQq pPdl^dfNTjqoZF[wmjpt^Mw{fopo |tqn` } zuwyxyqn } y d { fn} |krzpr|yjoq{ u~x wuognjjjXVqlv{Zcve^ { plemtteO m } zn{ P\dWZl c Y u y njiaef] q {njku~n x  ~p   xw{ h}jv  tvr}| cy~cNx  wy &! }kkmszgOgZ\gfji[lgY p p q qh {  { z ~qsju }eUZ voxUe r|  {ttXn  qSbcv  {k_Z\RZiZfdXl t wdLd]\beh r } z | s  lztyknmw |{ ~ s\kiRn~_jeY y dW p | rkjq ~ vom  ~ udbldglbchi bS] w { m  v m^ w }zzzyhY |uc ~|~ pe l^ inv|   ng ww i{ wjz}{t xhfov{ztoztbpqZr  zirpamnxuqhmWjxowe[    yz ~qfe { k\P\h |z~qPYlj ~sV||gz x}v~md^w {vdryQow suw sZbdkrqu |~~u w| r{x~}unqx|z|~}tqx}{\ u{d[ { kbNbrimph`j ooncpt~ rl kmc qy u z ]s{`k d_ pl~o r ~vktz t wy_^Sf qkuufwl_lj`vuzpl } od znt{jhwwkX_qi_ig^hcWpx u{pjngej]V_WRcpnj u |ils qjdol]\NUSSWShknmnz|~s mia]d o{oh v|zy{d\i]YeZng{rjWw yi\]eXfs} z mz { ttz ~ jq |idfjK`p\kjaMSTmmq{ | izdftgiO^h^P[g\_nu tb x |tpsynqkf t bk}gQ]bXjkc[ HRo~xwu W w  w{ yx W] } {cs z lusz { cc fy pwihwlu} v \hiv~oznsnwtz | w m uu ^^hjp { yv r Vu xbozni nfqTt {u|o{jbg[ias { mtvpvq [ pz q tr uimc`t|frsls ku x { w y spoblq} su tjpd z {Qj z  st pcbrbn   xpe_} w] ukfvn s rir}obLcu|}rz z`l |jrnc}cu qw}t zw}~y}zp{ sfnyslnbs }wj{t|{ |{w z| to| {s]{rr}~xzvsplplc]c_Naxz}y{~xih{ qutmmnU^n v } tpt | uaS[W^]jwvtmdb`igonrtlf   |rtxk} z `\w nsyedXdz {w y knx{upo o jdh}~iXd_hi\ s qi{sy jMh} z [gw{fud_n{ |lcq  w {wax o~| ^pp|smlY  }  y | qxv\w}\nsjg{tsqv ru xr}nt }ps  |r[Xz v{q t yaZwqn]]`WeZGg nprz nen d _elhah\\`Z] s | z z nkzj  nx }n }  ! xs|_ w Wkwkpy ju{ z kNoq]ex mkiv xflZc`aqjksbR`ZVOJ^ZX]enld]dY_m{eUey psUPr } oy|yz bl tUjey{  wloei z krtbgabacfda^_[Vcw{ntwuz jqzx}  r|  jn ||t }    ~sfpVb} kf y Sy _ w p^y  v p y |p  | pxuw {sp yp ueZqyjz u oZ   |lyh\~{w v|rk q`MYGbqoy d^dva] q y ||   { yvqw x t z ap qqm`jftv y t { \r |k| n_ |p}s^cswtiXYox m hpssos   |eip ` fz   ~ ~x tqt eys~t{}s} wl}  {~fom^mmvqjlw  t}| v vtnpX} yymx vl`uvky  ~~ | pwZu  k y uwniyx |m    } dp z y edUSlco s`gld w ogjtq | }fl nx v { psk }bNgom }nglp { n | pzqn q`\ sicrpo{\M[howv | y pohhhMDfvmk nirx plwkce ^f__`Uqxxmdv}poh^WRS\b s`g{||t{mkvert zg| l p  { sr| nuzjnc\rnprjnXi wx ~`}k v XVRgkkn l  kl ~mscjoqm xtfotsxr y rntkl t erk[``gsrj` \ Nn  { m r Dis{nuuv zLP| mVcvlyvvn^scbs zmTslxxbr |db ~zypr^b ry   v|hms_fvid| tv pdf]d z z |tOu xd |  oi$z ]v yuo ~ |jW`pWmwlnef`Qct|u v t`gb\vqx rd qk fmpdglibx{  ss zy~ms o FN_`|}zrdixcFRk_mvw ~ tTT^VM_Q_ochsmr~shZt~zzsv ak  }vlu^nser { ow  }zy} }quk^}wmedrx`ut_ny  u sms{gbqqkr{u ~  mqlplu q{}rnfmkqm`h }xy}vs{pb`v z madcnooopg}}vzlqkszy xqsf xv {zxm  xqmeiu t ~lbt v x xd q ec so ts{} {wtsxuv tjit { nv hos_ t urv w c|imvvt}ns |fbiuyV^o z {cm l v x Wbp jtqd\>ceZ]pthqgltp z z a ~ dw vs |tzy|sniwrq   rl|  uo  nks`]~hS^Vbr w w tpnvnllllfvml q]as} y urqZOfhQZi\\`i } rgcrmW{e } ilftztqtzY ~ } |pnk{~ r tu | |nrc_Vak[RV\ejhq{nny p \ m{ z } l Daj[gS_q|urkgsv}{cyk{  ~}t qzxsq~ ykt qXWfl[_hmwlxsjkkm^uuw{ hmq`okow~  }li~ oc| j>hf kxc]x uz~} g^ov|   zuxqo ~ { ywluz{{ ~|b   v~  lguky{ {z}{oufy | vt | s\hfbIMfw } sx{{  sryz z  | cfy}nsrkriw |  h upe  mu yw n r z xs r surnu  ~ou m }_u  L^~r ~ |z s vlq~x  o k tiuknnlqmgy z{ctk^jm}|{yy }ky~x }sZbUu} x vxy {~`m tkmv }{zqopEi  grmof\g_glbipnxxtaiow l racy t p^^b_ u svlgn  hk x~ tw yrYj`b z v ohhsk w ^ml xoy y y {b~ x x  tv  | |wu fG m} nW\wsk_Yiytuqr z  pf } }~mXjwq||uqja\_rXk}wx~x|  rbfz}p]z nlz y qv|pvspwkwlxts]i|w j n { of utnbm } iwqu{mpnsqwqdd]sgqfkmfphkradsby wz   x l nVpz wb y n>epv{hq x } tl>2Xhe[;I[Zhsgig^q_Zp y t`k y nv~cq jYpvpf\xyONv~mb {    u okwkbru} tooch z g\lp ~ eAaYDenn_Xw mwUp}x n }~gioRd ~ zdmi o kafy z m~zu kkt`jgYt}`[l_Mg qkz sovps |njXMRb w }rq z cv" vku pfw  fjccc h ] ounpy y   zbs~ zxtktvYbx|}s|  vqWchXfpganvpgiqwwmzph~eehq}yY xuu } } mVesaSccV\{ur {|do |mec\_ikcix  tivtrg`bzt~ | vf[x  oz { ys y y z|vflo } t} rpnYoZLpwbgo`ejm^``Z[aotssfUZe^t taw mabVppqt}    u | }p mo|y{wpjn u vx }xqJm  iz rt  |nq tP^ht]`l  iUay~fd w cik~ jz zp o MoePKkp]g^hxusp]wemzq z ~ tx z |ra| tesvigpzu ixi{zx yun qsby s kn]cnzv o { | s }   x|ow x |str } {ouz_Vkp TYoeYUUhebcy lXqe {  n{]`pm~{ro | Zo   } y{rzqv v yt|k}sy yxj }  } z  yy}  umsv h o| { !SruqyWas|tf ~pn} }{ v ]h ^ s y ywn{ro tg }  ll ~ns s YZm y lw ~gu mrvu] v |v z~nx { mtqmr z  } | kg taV!Mg}h dp_Hakx||uhqrn ~  }u }nwvxwvuf  ||x[| yllyzr } vjlwiV^yuuznml{}v|qynedoxcyvcVbsy u t lvto}l  pf[XYhecqo\Yqw~yzgtxpw ~ \rv]_D? v{ll yw pX]rfr w q xdTO^i~pfabsZz~c`wt@Np goqw quiotx}[ggWlq}~{jilmfgj { p] yiy { y  {m~ lntnfs w\^Tqz v ~vp x wt MdZkpj xy|}z{ tA\zqdn w  } |t }lbZnwpxx cmw  r s\Yz u s t qlonnp { hi g\m x ut  u c n XL^nmepdgb__dv tpvv w u f|rnli| qs|tqvvgy|qhx jW nvvd`v s iw  |w }  pz m    ymu gx~}yxvyz yzpi } po mghg w uzxy o]~ |vs ~ wzyp|{oe ~ rgt} o n{hkteilo utksotmp rs uesfz lo w ouekx em}^ton q v gt  p wKm w  |`dj p VH x i p {ux z }omj]ljdca|nirx[`~pezz ueOmoKI giaLbScsfuq~ ~}~vr~}}inueonxbxhSo zu_Y pffhVt{rqyfofjw^ejO[urm uqt qlh|   p |t  v{ q y {b oi {mkz~v fx pttvkcloton^ Ug xy{ee YObbVh ~ ~u |sqv  ur iXpz} y } z [Xlbgvr   xjtonoh^lsgY_jlq yvgf a z lnx  prz grn VXjplar thf zur q ppv umyz~gcyul]ZXvro{} r `ivryij p]f~qy  w{ }cb\_ } tu myyjwgQ]tgklX`rygow z ~ |   vuyq | ~ \mmk wk} }x~uuzbhjbebni { ooi~ ~ shXq gwyg_bkdbvi<m z jbc  cS`x}kdmjld rcfQ { nxnuodTj { kfm tgy|ia_glwnqscq}}s  z w drn ` nxspoacqsuce`ql]u | i ptiifwtu~|ouxr  ss vxv | { f  iv x k{eg w ldvxsq{efbuzp  xw q~~fbkul w ~w w  x ~v |}liy ~ z`rt| x urvk`b tibq mqq Kd^xbkz } q ^w pnqfLMQzv_gpvsn~oxot^iqpl{ xpgLRdvktvfJ[PS]efIbwpi tn zvly rgwhoqlc^iXG qXiu kh y _ m hypw{ vfljY]ihkuv| wm vineh]RJQ]X]eeTtko~wux uz~v`b}yyiq x y qxqrx {\nw t XR_ouw^clyubx ~ r_Sjkj y { pg   kvzjz{\lkih D6cm_}_Ynvrl i\auh vq^jt\OXf ~ybbw ]uk ]e vsxw  { xws t~{r}~}}n w  qljf y qWv z_vr r mhtoyo_ y iY^\K] r`\Kdn d j hcZdaVdkgP` y yxxu}} yT\r|zlWV_uohvjgs ~wv i~ x   p~v}gTiginstns mrYu t ZMYcebv wutzyb] l ]KJaa\fR``kjw{~tx~ zq^[mhf[Yx |qbozz ev} w ho zgUijq m r  } nwy|povzxo y}kznku ~ tj w t r mdm u s p| | v } x }so~pgqihVhtlljhmmv|nq |i^~t pnqq |wt x qw fah~cS]s p tcbt mfsqztmfmgmkp jk tamZm^fmjs^in z_r kbrnmjk~w | qJdoyZZWWyz O?x| m lmmjahnsrcnbX[\ ~  upu | z  lP qsUN[ m lcjPnrbg}ov   sx   ph rsh~`^rjYl~| ]HPVadT[nkrwrtn u cN`m[d } w yvmfWjss |iXq aYw ~  m oxb oclo }m}kwwwuw |n gZAEZXl~~{lXM\Rn vdiy u{n}yfzwa` ykvrovpupr { { b[h_]tihao }w} Vk z xsWjw qkx  lSt eZflpn`ekus jm y u VTbplXjlh_kpp t ww|   ty    qk b z rir{m umcJKumjq`by VOloafpix}ps  vs VInyuq} | w zyis| ykov |u{ y r  uqYpsigup\\| |z  { gfazsgqc_WWYfkc}oidlu{ky ~vnqr|Rv~x`Z^{kt z{s]w`oVnUn y|b_ w y jXj  sy{navyw| Tjzdf z } ukkjdofk\J|pr]eldkyvr n n X[]Xt }j pnryjtigvxhgfi rvygc[mt]^tvdp w]b z r  wpc`l y s]ixhYw r^l aVYcS^]_ scfx i zmgxy} wmv { |bxpVZooic\n~v ojoXMWs_p w brclk s xqcOoea xy[i b`|} rfye  ~ k pokkm r MKPf]dwz t w wphfIdtmcojssx h }nSpbWddce` v w [omYpvkcyuh kT]_Qakooi } pjtuorjkdZrrv zh y w fW[cf qoiO_ sevkmotwygh  li~libqrz}`n}ow ^Zbfhp [cfkyc or\y}{vhz zw{|ipxhmvt v|]Hb^S} t [Xhg\^i cgvfwrb z  tkot  y ng t }ptzpxiqs{mrf]ix| {rwnbakpWYYinjWrlx  U]\kghldxqYltoYgo X`ug \AWe[_des { m } qVMpuxys{} }n ow| rdd vhb xq uy{r Xmx| { v {wx lVdeebamZiii_ltZmk[U\\]N\aiuk~ gg s a s m|inynp ~ yts`Vk q v^Pi`dUf|op  pYajpkltcX}zobjjy }fp  pkyptg {am } r`ktcQCLM\TT]b[ehs |d[c_fn n\Qmx y kfttm |vW v e]oY\]fpv~po zjpu lndogaLYj ahWSnpcvtzyoqtfot | fr{k z `eTekn } gm }`f y]t y ~ ~z~w  u Tkx w pq f_y}R4]jtugbjz }ie ox x { qegpvw wf`uznQw x\NNgj so Q u jYg| z { xu x^XxhYyW_rmWZhi^Whz |wor }| | | vo y l|mj y ko{v{wr[lggmXQ ugad]\g yw`XSGen_GX^Yl len pv  n`dLIkddt~  vxlicp|l\`k_nmc q o VOo yoiqce[UK?XlWPag]Y[ecrnt |[ak  ~hw sf`_hhzvhWP`gJM]z zZy | tcyvp}zxdsxsqk v  z~ze_Ycftlm | ql | gf~  s "jisqsqYK[aR>i z f}~ogY {  `V t zrtv{yw n?f ojsgw p]s z y  l  nabgr \dea`o`d xionk pcXjrat y p    {slq|  zu`ounluxiUts|w  jnhh|yn !U w ~ rbh | ]s }p{ozychl^vrgu]uof|pjmZMdr v jbre r z  sq ~ k ~orotz t zjiljjf\p ^]tvyznkncj | tp njyjy } tkpo\ | |pvsro_ }~z u{kk\Mcq^buff x} ZVz  wh| z |ynfpkefwpVkpclvja[`immn^S`[XX n uZahcKWrleftuzq zcpt { ~ x cq!!uz|  t~  wsfpiu~  ix iqwwp }]a g[`smaReeZvzivvl]Ta w wnf_ h bo v x k z  {uxtio_yuXjfgqz sqfxhvUi yjhI[ o cd p Vfx p zWd zmtls {  t   }q yt[~jSQ |  yzqw oVbqbah{c_l twvort{xloi]qfdpng } ghyzndl}~vtu^b]d q odV`eYUm ~ q[Upbw wxab }cfoc[ u tz tt k rkctw im~ntpv  js qX q wOj| ^ { q{xysvt^NQYb x  u{fgeh`Zhvjg`nm^qljk{ } k[]k x osxv wyrm|qi v b  { vez uyego[`oxwosndmy noh t yrj >Qofq np |  |r {kv  \m~wWx lu  qwmpqkoXewo^i  nchsut r s  | sT_r aq wowj ~ lddYl DMdn[Zam\XtxZ[qpt} jg mqm } }^lyvr{odnkVVUqkv z uo}wzph t r ehofzsf| {ytfb { d_v  jhphhbvpi v`h_gshj yiZf tktz{qn r i}yYOOnyij  tphx |qll^jZn }krsp{tpmuwtfjvdfOXtxn zrzwqzxw~ wnOjr{ qdv T_tu| vw {luu }o^s ~ ^^a^jZbeY\^obfq  v| v]km uuX$ [w{y z ]Xneehy ~p^Ry   { } se ~ } ro } x}  j v}i  z { xio pnfkp }cpyt} YALk |woklsuis u T r iof[ zguz  z cp |i}{tmwrmkcvtljcPg pXaviV`ijlhgsn z  x n  |q sp~ tll l  fbfwpq{vw wo ipw|hyicbf_H3D[f]r z qw|ryxvahkkv r v { x  { f`a^ o aY`NVmnnokcw osxnu| u whkljNrtSj udQuV  hX o}q xhszqn x q Jtyt ~|^e]M]ei w qYy} y mgg ujo w l^hZ[~r w vq znhutVczpegj~xyxvnxytny s~ o]|   ukg`ejV t n C_luwm]Y`n]g xy~ so o dyvs} uvw zjr | vuZM\Sj{  |nlamvwTTXTp v reepz w jg r jlnmy}  ~eeuyplhsxnc`of]l | yywvtc x{ { wlxtw { x  zP=[l qaSbgurqyiqvn | m |n\OYheeaox |   gcqe[[s  ~ljc`NZ t ~ yrrmup lywtv |pb y x y {|{  zpaq hmmuxgp``fa`umT\ '#zjarx ^moi r}  l[^i{norz_U^`]m{ormy|~nV  w ~ r q ~tnr| j wgr | { ntpsy[dF\zrtfbgs qtruxwb }zmsP { |mg qtsy  r{ w ZWeUYeh x mnu~ ~ ~ y  } r z jptquv{snnlhnwxhrki p m^MceUNh  v tpwzspp`x d^gqo ~ {xof ro^noOPlSXWc}vj\]_MhrGQv t _t ud} vs x z q jfbW o z s xvts ldx   [jhgkngipvnw~|{qfu q z{h`r xv kz| l\kj w nh t u{ qlo { } fZ t mekfWPKdqd_gP^e]`^bbZ_iyzot  _ay{] zolp}z kx z w Xg|v`au pp|}m` }tQS lfsnjm r {w t ye` ~aWa |xq tjuv  dj x x{lss]hrsa^ vgmdfy[z w x s{wwk} wuq u }| w dx  rh kY_hrvpwirvujrid |tn |v z }pt }jh zhg un}|ok srshm ~lj wjuxlkU` }uy} }~}w {xx e]RJYfd_Ugmmnyrxmu ryeKa`vr^eum^u }\\xpv | oom\SWRpRSccTdpW_eah]egar n wfhp}zz ~ { iim Vx o H]xkgqhfnys  y]p ~vt{ z k   zd_ogmzgxs zk{w { ~qv z v urs  v n s s}z wyj`ykmeXqvqvZfioy| w rnockwn{|ur|xlYq z q y |lQcjOPytarux||z tz~xp {woe { vmnr~wr dit \cvbepu s }~x~ w r y }wR^geblrl_V u s~ z wni~vd[mohr{x{zh nhbysr |Z lw{nv |kgXfc`rsu  ~ }   n| hk r\q`pqiu s  rkcBi~ f`olWad bgdqx _yw kggrpnxx s | m{zu||uwx v T\ vrgY[Ttxel rskhVqtk`rtn iyfVgxm y  qyxx[v r[iq x |{ v j`ogVsz {vz~pz pddb u lc ~pl }p~vs } nsjn z`gnn  wkc]v ~ {otiSi w |rht  ~ tnf_hns ~ zx txzpvc_ z _ouiihw egjx }u{x | s pehZWm w uaa}|rhjqxdP`p{jgigwmy uuzlotx y nq^fx } | } }t x mYQeetslbl ^dw{ wrunol y \hcTPYSUcdmgdsg_kdt}rn` y   u he v p u vYIw um Ub xg yx{}tggm  { ma_WU syz~wo_cc[@r xgm~ s z y ljpt Z p ty   lv{z Tc|{l]T`tmcdXnuwRkahYniOuvrpf  y oZ`vdyzqz ~ ty krtm { { p^neld[o~{ {y } ~ z arv | p}~zxx|{ h|z qz rfv { i `t  | h ut ~  { sq wfx mml[\qno^wq v  x _w hv v bjcd usoq`r]Y v nZki]uw nqx y nf]QLgqj yvz ~ ~ s    |}q {vy xYeqp zlix~ ms~vwtvkbr}{id`djU]cfx}t| ra y y  x  ~t nfjrqrhYY\i  } vz sx pngopku{x{l_ lfknJ]| mow}| `j {  Zn ~wc\j|mq| z j}z |YUv z ~}rt| | v z o`  jk uus~ w  fk oxtqvg | sx {  w w  kl{Qu unz |z yfvqqljbgrglq`Sf  vwctqiafqvng { ol { |  | tnun~| } wcgx|r qvz v  x n uv  p[ar uocYq p |  rn y  |{vn|}pbrxgcNhz{n  | z pqdr { r au qotlr{~h^e m WQ lVPJ[e hMUZTkpl } s |vh snrk mk hk ehU_j twkotsvrab cgl_w n@b{sntnhisjvxrzzq^q { oy_rsw t} }i_w  ie { h^_ bkursjmekja`|jiyuks ~mpcmlt  zsn}{} jy { iqgqoXed\fqsaoy mgo`gw py mP_ z {ho } juxeYwi z zz ~ ospma_gptrldlla_g { gXj`Rd {]ewiioofr r { hk | ir wf_mqwhKvw~ ~ wo vaptikvtuuYng\qgl {J_km\w ~pr hkc^poiw | vh   { u^tnY | k\ima\Vv  mcHi vb^pp ssujWkp mjs_r |hrrutljmhu~| } } gors`~eq xt{ { ew]n}nki| i]Ya^ { mywqvuz_nn`vrnmu  yfeeUv| x`nu`lj[^ih`  }u }hs pl pmdmw [`bdx ~ ~ zw ` ~uxp} w b v ~ vx  rj_bm x vm ~n~zob cvwiquwbmuw} wbYQ[t ls~pfq z}b\mlqout|}njj y mzqfr\sxgopglt { } ayk x s p  ~iw ykh yu ~ t q v q ~  vm  dssh__UUe[[XS_YT_[myroah  w mbtn z |hGgplo U`pi`u uwtjhx{lc]a    r fWrwmx z }{ pN q {`Xhie\rypqojemZv } frhOZswkacvxilq~cj t v cev ppy n x ixopbf[MhWT`YjxtmUboXt xqv  ~ zn | } expy jR^t| oienw rRjmcurh} uo {uxVs| p}   n ^jk^YSZfqtodak z { pt xrio ~  lxkh v ub h  v oh  yynbvhYlfTdgJThvql n n\v }p wnqjTqu x{pwx{ }T[`^~}blgpxru|z   vsv|w}~vtThpouylk y xYtwWanv_\ll`lufg_gtpgi ]o z t   {z ~  xa } ~ gq   z | uxz WYgkrOiyslmxut{ {  m[{ ~ y~tn}d^koxz  { i   ih{jvh t p {qtw ~ytw ypejoiu kv  v{ZY];X^W[bnznqw{ho|sqwkbkf tnv  nxu owg]epv} a] { r{ yxym{} y dcl zn qxt~rbee~sU]lq{lRew   ulq xrt f q[diupqt plyzqz} wR~ w~ohlkh r o { s y|k ~  zzulol t^f|kZ[d tg|x n~xtx xct ssqga[e^\L`q x{   qslnt zp f~Pm|  |mfl |uq}yzpmTgqv n  hq |oodjiz r hak_NApxinmt|szuqwxobw ZT r nqhqb[d^zihyvjry xkoz ggjgup { n | x cg y pY`imh |qpv c`i zdv|p |ekrw y o | mWx"oa|zz r qhushadlqqs vu fdRM^}qm ucu #vtyxtp p cm u  vsttpye]so Sy{{vkqpkval { lhw|{uUph`uhktP`tfX }z }  qmbmoins lymK`ix qz yXckWx pbr oaz  | t_} zv zoqdNe_ab} uyr{ ~ i |  zf hYYhqy |q v   vw hn  icr r my_jwopxrrgnq | lr |py y}{duqkbdv y gohe   d { | icj!TY} uintnryqq velwalndbW[eeQvkq  blsdqluxmsvly y ygks id wfz wfy u~ ~ fapekuqzwg^apt| tlu~ o u ~  ~w| umdu m {wi h } peeTjlir\{|tmW_ZSbqsqRbog^_ ~ {y kjrhq y x  qtq u  |otz x }rz }ndSUfp~pv}{ {q]d^kts|d v  { ks }x |bcz} qbORrjm{wwxj pXZhgofe }hZ {j q x }n  z ~jRer{ `mpbdYFQ]bbWYej a[ hQZx t x^g z~e`i]YcZWsvpy ~ wssc] s `cwqzuvm |Y } {hg{ svncapsk w tqowyjqc{kfw k{ ugo urvKkz m w ~ nu lavxnpq llmfacik upt ue w~xakh] k zjl[Z| | qsq~wq{lY } upz _mheq | p_[^Yn u du  rbkcKdcuk}v|| { ong ipiYuuepdcnhkqi{wyujfqo }wL`nimxfS]dixs_fdsikqmev}kmw fs zun Dhugn xrqh_v| m_uq| y i ~ q o } ee z uppimt[k | ti`~  {  } zyrom ~ [Hkngqjim`chZi vgijjUZu {om |Sbe Pe!ak }imf\XZUEO^UUEUfeqetdoqReokgdh|wsy   vxkakn x}~jgb^tfN@IVgjhz_Umgmtvmtlvy pkix nbuaaXp{rk\cfzw^n wx  qM[n} x{  z } ~ mrbellwqrr u w|P kn_Zfg[_apfesy o Zpxvns ~  s  pr v}ol {unw vf | }olgi`YDYhkjrr wuj`n\dZSn| g{}}t j`_uwry~  k[F[Sai`tX_gtxyqMdjxyYxfYnulZ }  xz {r ~ prvtpaoNGfhw y "l}  yjlyr]aff\]MDWaQQZ^id ~ vu  gk} ot  s  qyem~ay lurUdqdliqhl{ lMa _ LV]mt tcSH^\Nfhuxmp }mmWPbw z ~mpvqlc`SXY]n]extlnuzmwrwjhx k_y~lrqkf}rMbw jdw |j y ic | t `o aZ { norqzljZcgidbTh nUjgmrn} S\} i[ z  ~o sl wv| o }}s}ybttm\ikwyt wanw~  ol b ` m qhZXRhtv so|\X^f ~  {  gsv rxw} oszrcj v lwdprm    p   }r| tfgt } g  u hagmxux{rtxlyor v v {  u\\ndU y fnlpykkehlfux]c {{gk |oax {p^ | um ucqiuz~ xhftopl_`elfYfvq|i{tvwvlmerptm sUugm } nw} rzki[dj fhs~| y xeZ{~uwUQp]\cZdsiOq }w{{ yor}|  y ogWT_q x} } |qustxtzgz    yggtsv mp { m Tbts uwlkZ sfUi { z oabfi vNP  ~ kn w  tworb[hdlV^egs m gu mkxlcY_\YjVQehjORqzzy} nkvlbf]bww  y ~fctg m ~ qzvo w_~ z yym{|thaWbc]c`pzzzv{ tabt z[mni xiX]tvlaeqx| } z Skzq |x \g| ji sv vvy x ksu m} rwxtXrpt{gZv|n  { hauuw uxuw t xux vwqjlZipcr}  | o| w vwf w{zpnl ki_Redlyqtkjsj{tu| w o  `kdgptRRSqtu tv ~ s| { x PSbM]jeeofjku^mdhzkcueSSssWNZagkkqy^l }td~yt {sbjdo~~shcvt bW z rrzj|  s| ~gcm zz noCUX=OjmOq x k v w v kbt a\p n h[mqw  muw cl z ytjcruxvw|{uvv}vqiacc yl|  { k_ z {l^c eg^_ s_[dguypv~npo x vje\iij z ocMd~vuhp v  {h yt l s Yiow  wv ~ kx } lkZ { yzys |vz|~zU w p| }olepg[bktbO`srmgj| fibs  ti ~y  y  n     u [ oy wtnn|dYpmrp`iq kuvz ~~oi vl Ympggly ~ jc^m [^Xayg nrut { q Lcp ex u jw }o rzbnlfkc pWP`gp nq[`_Ver}whpxqkadg} mk[ljnvsocrlotxfhz } ~x w | v[qlIISlt^jwgrtpwq ym{ hjiVMMXp  xf[wvbnono  k`k |hk|{q  | _]djui}}l^nzm xoisqh pv  } ~ }o ce |oiz ~ xkbla{ e js ~ {yxrv m[db]Z\ETla|hdee qv G\ sfWp yh}fe {ln x sh |  srz v   ovnkSU\ijpy m]`i|u{yeWXm }ufQftp w f^XZpndpwrMQs _ey } }}   o~}b_Z]cninQ[mxfikfijndXh tf_]akurW]jkf` piZst ~vfe]p | gg vlsyhyt le x _Xsminkwuxu|  r jk {hnga ~z[} ~s^s y~YZu {sy |~ y| y fb q y mz| x } vpmQGVPOdhaz| zzyzox z {s|nfubhur| y pkpr tzzz t] x e\uioklr}Sw   ~oqppqjspq sp{u ~ } r]_u  z q y |  z|uq]Zekqrg ru rw}|oVq np} v|vi s|np~ u p q iex YMpxnrhSVXW^{pifg^rss u]imntq  }nsoh tmztoMHdqsvojm ~| y x z u|~ rc kn QOXLO \O]xmf[ q db~ slv ww{vym z sfjhjkv{ s}|qks | _k]Zd\ONrsaX^muv t o[dn m`s ||ikYdmyb o ii  |~{ j}z  tm^mk`Zhx gY_]o{ keacqto kuu~onxtkfeY_f]inwqadUdvfqvulciztr |f\X[kna { w } | r  {wrrju a  lmg r { jb Vm|tjn y kmu{y~tq} x| wwlc|e w z t zgswXi mjukUQw s ruw ts } \_qqlRbmdaos`wu  aUw yy ~ vn y qs l| t x ksxuTacOZfgXgjfw } ~t } ss z zq |lo ~ | } w } ~ zwyq } ~ ~jbi{u\fpv ulerf t rz z z v nn ~ {yzwwtnpkde_dn{ z ^lz y hm r ~o~pk {e x qj pjl[p ysr_y{fhcoorio g~z~}t u T v y"jpvx~ysruxl[^b } iQci`M_jVn } _fkhmmjbJ_j^jsejyq[n  ~ s  }}u\r } xy     wq}tpUXpmyliny{vvy ~ lf^b s q mojv  sq n VQ^ _wuo`jf`]mpdq } |{k    q f\cTceSb`[Xnpudn~     yrxu zjh q lld{ si |  y vsWsu z n`f } u  zwlv  }  ~qd` zm mu q mg} kcqu |yqt mjjetk }w|oser\Zqufapz|wvj ~pitps r  {u_~cl    {ps ^ibfmz]_th~ sip"` n{o\l |tb}hlf^i_ZO`jrfbbil`p r xsvwxtflsokhp y|\HMcz~yanxi  t  u rje rh[ zzQNzhh {  sjy i sypiy ~  ~ clqn ~ xsvke^\up r ujkw um_kl[Mg^Eq do tu~rg\n x b^otqowxcqh~ # xi z \c |maxpwxxso sw a wrPjv Tk}{xvulVjx| csxvughp ~kmw lj{ssigwxtwYQh ml y|{ ~ ~  {p ~c_\ ps`b_`ZWn_iw  uwzfUexrW }"u |qd`Yn  |e~{ioq WViUXvafun{ z }todpv { rmt v px mxu | w | x pyhjy p}  rQpxghspwo\y~olbmxxgr fQI i simh_n p g{  _ij |lw cv   |gzut ~c_}  yszyutheiv^XekVZ`TUf `gq h_ qWXnj\X^wyz  oskaXde]lw r }|ltkpw g z wcf { { lhl^Z]ciryfh ~judibwfOjfb ~ }z  | m |s hto^o}xj| qqt h { x z w ollkv wx}    }x z { lkpirotnphRoz bk| p~ p   yrqqnb | rn  | uxl  ~vvlv \prv m{~ yq]u}i\gm^_jiqoY~ x~rtcz[oy_g z mXu ddsw{^Sspjgdq nw k |"%zqsyqi y y ov uxvQGc`aec^tiZV^L`~yr]cmx ~ kr   mfaYoqhYjkglborkyw|mX]tl_f { x jdhednhn~z } } v ~  ~ uzp z ~]VqxuTWeov { iy~}l_dah~ |r } ~ rqsvvtmkdannmz v qy } | ehly e[nbd~dE\ZXptclu^oppq_nkee]gfdSSaj]~xhs lgFef v z ~vuy|m spt |}{ w procQnzw b s yb_t~aaaaihUSBZfPYg]`suI\z{qcwqmslUmyuw}s~| }ekjuRRkg ygqrmx{} l x g t s i]YIRaonnoYDOgtt sx | x r | ymPes |fzy~{ { qeNW_w s_pkgY_csYZ| ~  ~~ yw v |j^]SYLfYRgrjt]eon| jzyzz}wy~gkvafcWm uu|ja^l xwq|~ s Xar otead[QXeqox^p_^ }dfp~h~   {pi[l y d lqwynrm}vovlii]S_wrx oy] vdhz c x pp{tb d[in{lsoswhkz x Zh me| {u`suX`yzn r y |uirpvlf  y {y|trl }t u ct z} i[{tmurcWhkl~ jw | v~v`l hfy!#wphw ~}_e   v lg zprw ss  ~ _\ }wlwvju{mrYjn^eUXnhym  om\ u s Xd^jr`encY^[vfr`Vu[mh~ymRh}bm uy} ws uqkn}inXesu  _auyigoU]qqkdlh[n~}xy!|_f} }xth } ulx t_P[yxpncplmn }m z vy } se{ s} pfywtoL] x gxrrmrpnmgZ[eldqfUbgbt o ga q f t ~ {  zwkjaZfdpibYmls icr~ yowq_ffVKE_]VaX z{zn m\W xcvy|yz{ _ggm ubc p tgugSOl  vsurp{yyZq w }mw{QRmr  l m uw|v  lgm } vz |wuyttnhbm_g w t |r ^dh]Yl xnbb { ~ pydnckult ~ }wgtny { rmgz sZjbq q_b\GTwfs^P[b | y zs _W_] {khi]hiiobkZSlTf eh   m  z |m vyrv p^emi w  }xq }ntul { ume ql}cTwquvku  }ngf~oqtnoocdP`  svyvxkzskhcn~}lVO} ||Yfw ug ~ Sr g~ynrobqnRbzwY`o zntin [o{ v { jv ~ i w dw vty u m xophTluvydhy }]axrnv w fk wUy | rVr vpz`u{mv lgpvtfs\pZusecu |y himndbd |v|~ | r^Sh[Yggwt  yohsqfd u[Zt ~ | p}xuhmVdked]mn^iip~wlz  ~x| qyz | bl h zau lZtqNl`b x { jjq {sgvz x xfr y odtiV ecu |i`JSMXe v ywzx_Ynqpnjqz naljw o sizkez}{fky | xgxujjkri~  sd`q  io ~ xy  qt~gls v v ru  vurmrvxwvxstyoe^be { qfw``_ to v l~t }   rdnqoW\dfyuogogcmy { ui zmkaJ] \[W__LRcna^bkqnuf w|{ | |v au Xhy tsfhsxzxbq } wenxhdoghf\w_Q`sv  ~r pXh zy tprjWYndegPR`ddgy  jwjg |tk[fgMamvwynprjdYk paoxwnseXlx|tzpvt ~ x prvr {xb}Ne_JPmsR]lo wq z q  voz{wlxws~ lfsrVe mg| nbUttMSm w psw  {udoxq } v w} ~ns {   lW{  g_T__[bYmouo| y{}}W`rbK>W q^ddgzx[a  tp }yqk{v }plkgt_e  n_iq x xxw | |w  |`SdXUcb ~}   u fOghVha_nkutpxc z z cT } siqpysqXesyi } uvoozvnu ~ r o\i v pu]jxxv { dn tiofXm yv |syv mjo{ piwoafttd_c  yk`xvmngqt| p}wuxwxnTi{ olj`^q pg[<TmXjt\\Xwm }z yqomqngvtig\\{~~wjakugk{lwzxtflnwrygU?SZl | ii pituiizn` Sm p`ZPo wz} { nn} grquwx mlotlYZLY^tfYMSxwke_USruq k{s{lr z [\UOXefVpsjs}  z{ { naZe~ }qr rv  ~vqr  kp | noe^ccc s w~sf_x |v{ t w ~ v hXfmczs|}bapeYi |phqsn|ko |w | sv w q_j ~  {v | ~pn tQtonh^qw hjj y tq}hh} ~ ddutvv ~gc`TY]^\[jjMCbpg]vuwukowllqzvrblki[]^W r u cZmjyjZn~xo]]wmglnryvt Vh  ~   }v|xtaUOizz}bZSen|x\i yu hZxq~}r}w{xc y |hs |   y c  ~ ovv`fdHVqscvw lq\jabib   w   ~_dvjpookm o}"m uYspji[~ tz u vxwr_w ~rllvwcdtuv{ nqv |wt  r kpg r ori y xnl y x k p XZqmu wdd}|jyi~  wwx  qg]u }^l`Rh~zw |dsx|rcg_zfxgpr z  qux z uv vp z omgqnsv}p} vmZ o g[[`dexv]c z ~ solqw ohkox ieyramxk{uty q{ } } nz yq zzy   ~w^d yop  w    z z   zyt]p~nwr{{} sjuzshlhvj^ j RWVoqcptah]We^jxvlqnriprp}|t vlp{} ugvn r|[Z ^aZij^`d_nvcbO`qerqV}vprjipnz w br }Xl}} }uw| hbnow||ur  oa taae[fvw z {s ak  L]    sk~rjm s ry|wi |tgn v SglPYV_prfjqi_Tf`S cr p_u|fr }wtmw z llqi^q} w^uup y {a^ ~ f{tj }} {r tbmr u{xe zplrumn[ { kjobclu  {d}qlvev ubikqt{x}cSlgpxqm ` f bUTDm~bZb]mxpvsrY`lbR:OgRcjc ~`d ~ppz |z t {h\TY q ei { u } uffgfm}kt~ ~ nshbp_boerpzm]T t u emVn w t z vsvrtt pc } ktutooufh xfdk[j x xhe | x} mx tqu sb n|w y d o xx x } t }  vpviWkmapqnsq| sr v x oz n y z mo  ig yi^oqqrck`\Qkswz zz  nu   }q   u Yt Xs sxk } }kio j ~ }| lv~{ } } fdx ~ea^vrVRqblk } w ertx|zfplyq  y{   } f U|rY\r{t xoqxkw |  {rfgi }khllm}q p hVwr tj]_vun v|| |}rq y w |  {k|mcxwaq~i~}mklenrp  jnu~p~zu { ps{cp t s}x ns~iebmquvdej |pe]c zg x~ Wy|~| niyu_j  yopla` z  trrr {  zzmOi wu}i^dp}sfknl q}|xw xv~{ mipoxp~wfdkhgyyqohR]n v g v u v lx }vs}yrthmooTV`Lfk YSOs t ^r q aSlzn|} cbx}ny~{ } pZ pnx wg   {nO x  n k \s  hjl }|j  hPrz `h zo bkn dz y p{}dTutqiiyv{ZffV]~}pjoiocn^VdYgq |dn tSWf^foicqkNMbI`nx }]i}y i^ omo{{{|lqy ~gv sxssonv ~  yq zsrwzo^Xl_R[XUMjphkjuqjgFRo f^]Zbtpg}o|urz |rh { }d{ pS]wxp n uphu }~z{ }}iim _s  lt r s  { nuia\teoqu y otpuhpj]^Po ~f } ~  ly s] z zfmqKQ$ k lq j t psv w~ |ZbWc_[r  x  ~ w z ys k^m ui y s lwuotw ojW]j XWyu rhS[RTV_cu }zqiqrp[dsikhy   v~ mv p{ {nuiaq \[[itlr { } qlvpuy { xulqr tq ytv ~nunsmayu   h n v r wrl o {Y}xyxnh_Ue }yerzSeun ~~~yzxwtx{qv z }vt ^enkw { rWgs{Ua wwdW w scdnpy|ri x nXP x Xys | nsvzo xz kbtdV_osc u bl | nq}vjq|yk]i { zrd| q ~ mc   ~ pzq^q ~ zounHpl]zwdi }wu | j |  { vrnov ij~wwol{~f  |vyegZNii^]mplUZnU^me c \ m s i jbo n]aNYji|   mp } r]blZkli{\a|ueep vqzj { x klw^Tdem`XigUes S\s fio ~^Rlz rspi r  u{~  pk~ z v aokadxqutllimwzut`my{vt Sb yjj} ngigiVPisquwc smw tqch w v } c^| rjo`n { uorzjTem cu|tss} ib]dccrs^funj  urm  ~pqsvtxy  ~{ { zs  }Wm x St  }qr{rjgWvut_tvnvtWN_gu z sqf{sg} zxv asz{  vogUo uiv  y||wbOv nYn}lz {{ xvs~ |z m |    ~ sz pv$ u~ |u |v} {kx tvpzuq| jao  }ygzra r|~s wmlp]y |krrremomo ~ pdjhJ_s w wb\nw wt |ddgjnlnbh_u | jefxg}  S{ x zs  jn }{| nm~nt ~cs gcow~| oKbkv`cszldfalz  w }mjhr  rkmnz{ wsw wn qk  uimfj]l d`~s}wt|s}wzdeuT r{fdTut Tn|s uq}kl |~n}qwnO=VhXivsau{ ~   vR} u p Qbx lmesvl{jZt  {yqi qwskf\Mixoxz{cw|g`v x i|far rgt| v | } l\m jruzlUdpxp[^klz xhcqkNJf]_YZu~ ii|lbvn{  st xw} plw ycq}|klntux nftjf`gne]^ythilfZ x xhknnp}wFW yif m {x  |yny~xzs | sr s \[fe` ~ u\fL^eeb u q^gZ_b dn snx g^R_{uorx tshvtoznnvur]y~b o]lkp^s ezygxy YIxy T\gjlhopl { |r~cY$% t c x uksfYu {wwy_ijnl]`cXZINii\hx r r b j sUFu s niZ`W[TQU_cchkjns |rp|xgasw}~qv  }cw  qxne p Ydjo}uqwqqonhnhjihr w v v }yg} po|  z{om y_y  jxg[_k x } sh s izt  ~ { |oc r y vh  jzv zz  z mtwtfckptuumo {u{hssk  vgY]tuwxhs~ymYLs]lsmpumh } rcp q^NxVoogsegipgt  }pqxjZZcm`{ofk~  xx ~ qoz w sx tpgQ ~s { s  |pk{xq j } n ~ ow t kg z y Kj_Iikcespjy xttumzj^`qmYd_Zee_mx ||q  xugaur{Zgqx{bc_xuvtw r{^gs `ztry ~ u pkh`hZ_ cg xfboym}zqbwsxfmmc  kcy z jm} W\wkfi yv uln sp | ~~z  o{qhfwq  kuytt ypr}rw m z pjyi[^[[NUo v t~ |grm~sidfnkt_QYUi\MROi { vu|zeub_u~j`en uUXqtv}us yq tqe{  | } rvw ~ ogo | _b { klfzsly } x{pz yjkp}|WnY q y lwlhytdMq u xer{u y nNIRDY\cXVc t e ^|nt} w cmmkuxsndU>Xe`Yjsrmz xmtt tXiplm\q o sz{| ~ yqlxzoy jtwi_x ]Qh `spcomah]hs_fxmw rvqmufYak| yu jamdh  qyzuyfVs txeoxvvtusvqp~sLbqWf^`hhs{tmll xx }bj {{jWRrnIfvw ~u ~ ty x| v w {^b{` tiee`vy tb nr rs  xob[Z[bae x l s s uxbc}{rhggq|vt t h ~ujfy w| v ^VOhaQahrw} u}ur ~ k wZ} nn^q zg ~ x |u  q { hny u  r`^ r {ltqiUZ]j{   |Z  } {[Tgtwqxjp } }kq |l }  wmTF^mtqhz`O7Mpgh{} p wigyuhsvv\ p \cq |}z ifmr^Q h fkv {kuz  v x| v}vfjjZo zwhZl woonn t {y |zlvxYou{w nifb\g^Wigmh| ~yzhu z x hzhinji}DVzuu wq{~c v u   vxt z|xdSXc_UjfXj ONPXP m o ao eeew _][fu  |fk  z vy} n z|twpzls}~uToo }_yqogqn^ x  z~|n}xhFggHTg v tovqds uf z`De~ q iuc znSGOZLf } { yyzpr kk xztroZgxYBq s sutz j u y x v txsnlr~h_tty||wlt ~ ~ ct pmPfnmviWht ywllpr ~ tqnf[a~{sn\qxkcp} sjZklbxj[MK\lmhd U o*) v{xpnyrpwokwv m[tdq |k z vvw ]uqavz|}qVVu {v~hzwnz  | n [[knx{ ht fdh{rioi]m q_r y` tfs nqvhedm_j ~slx vx u|w a_]hntcXn^bi\Ydgak|tx oEl tu {   z bXhcfZOdcu~flfojhxf }  uchl_kzh  kaVWnlWc rkwymjghkblisokingc} z www fi }w ~y {xns jqpt     } ~ cg  no ~ldo{o }|ynkhkQa~  vmqhgsfd ~ oq |kz{fONQQVYceekw~tx x wzi s |mt  xt| hy pwylp{w zwk aWdy u o kkrsknotnyqjq ~ w lk[fwtqyvwl{v yp  w vnzx{zZq wdZniccVzfYfYc[ y ucadTURUfibklluoNf zZikasvm zw naT v y sek t n}~jk g[s o nZfnnNOow^es yhlg]qvz~u lTeZUSjrm^s uyx q\prfbXb~ hW]UMgqnm}taZlf| xx_u fQ\Htnafe\_KYk V\peu  || rg jk  zj ig_S_usjywi u yeYkqytfp~}vxt} cj pc r xfp {qsu!" x!sm} kl tXhawj~xuvkxsmqkWgv`]lt Veced[llqwhi sw}rqik   w lmhjmcQWlgZ]Z_fX^}ymmhgx z{}y{ zwrnwvjttrld |tglUeijeg| { }tu }c z X {pqgormkRV |zz r y qr z ylxpeq_otlyuq\]_aeuojW y xvt{il s}| ohkxrZmnTGr ~ v  z t k t zip`ZJUp\^u  z }eTkvqgu|hy%is x yzhblkWQ h \Zn  rq |q xzx}v`f u`rqusf k  {b l^hxxvv e l sK t zhklursdcic]ocZkk{ tt ~ } zjprarpdfsroUfw bc ln r zjX?A`abvk\lzxcZTee s | w capo^ijdvrf`bSq {nz~ wz ~ ykYbm } | f]stt o[V u  |   ~_ u isu[przf z pe x ~y  ~nXz mn wy ~ z|kvzboaYs q fx]}skkr `j  |  r u ~ xm ~tvtlQ[u_M u { tqr pol\|si` rq[^o|`Zw twvwfZrvp { mxz y ^gprwp_dxuynmmk{  r y z sh y}n}yjkuu| ub ixxvt]QbicebDZ{adq  sruqurpo v ^j zZbbXl ulk[_t vsn| nblniagK]ZQgk_Zdxxp kh sq{ybn _j`v gkp n  }gs{t cgs^hn ~ t s v ~nu up{{{kjbq{pgzoihcemnglimnmY lqn`ahmuno^az r[utwun_x}}ku   } lp r UZ uivo t mh}  abueflrz u| |rmk xwyx{b`l` j| z r jwfmThrw{|{pl sw xrz `Xr k i { saZ_} ohux |t kt wbw y } xbdhgZ { } io ui}}qcbensw~hhnunmxwwyfp{uhm{korqb p{  ss v k `T\hcgusb\v yxu z} y x kz ~~q wnkeh}}o ~ ow yv | qysqu{ u}y} ybu o_p okQnxw {nw `i^eWQHUs v j{ {ZfrV]`Zp }hjv qaZ p p e`_c[utw nw  }ox xnk rhpsds ui ~ { ri nq _ o \[\s ~cs olmyk^ |sld  ht keu~mdurppm   hx  wc   || R\mWap Zl{~~xzw f`{]Sm z vb|~neftvng[bn z oZTXlv{t z  quuo ~ vk  ~ e v oR_k`t ukmdybqu hx {otiWgw~~\toh[J\xskqshpzj_`lZglppm{rrymbftyzfesv~ s x| w { g]xz|zlegk y z lqkbyy|s w{   x~ ~ qxxzqp}{ pxr }  { mouV w z { vg\} aYiiq|t v sp{ { n ztf v }p u {s im {cTSPWBOcb]nhi\s pxyr`r   vbIftt}}  l q qw l k # c^ohgo u m ~ntu uLjlm z ~ ~i j ur x |pouuriou |bcx s {qa^r  om]e!!v ~|v~xzs[ f`A mp^drojc^ar in |p | t ~ o ~  yy~{z{ p{~vrroe~ ViqaY eoq rqu SMkg^wrZh y |iaYifa{tiv  uutrf`f} pl{nqur zkVXVozr{ ld{   } fz z~^jv|jYpew | kwqugphaft  xwwyw {t  } yzpx|s_Yfm]M tgKm  { xjn smqqrayp\ieoe`w  ~gk~mf zy tmQFY^_nmgX u ~ ihm \Y{xy rs oXgjd vsp y~hksz~}w~lh r x z s`n   ~ xhr~ qy v]q { r~ up{r2E_J[cvwz | }  ~ {uwxqcjxidfWa zTgwhadyy{ rassk pObaX}yc_` yuic a kk z y`m{ !bx XkxyrgdXZ  fd_ckuzhgp|x |u u z ph~uzu p  sm ~ xy | x pu{m y s m cus jlq wy  xsvz u zjy|t}t|y|ru { owecxhi{aqma }v stpu{vq| qbuy  xk_`~qdhpqmVajLdgQlddpqxom f xw[eotlmqjYZemgz kXh~p j wp`Y] xkgrv }ssxguw]y|l`w |a]ipXu ~ivzio}{}mgx  uu ru ~p n   ||}i\tt{d eo }vt`__TU\dw{ydTtpwl zqfcp]wxnok ~ zsp~jsws}}~p]bkjnnnp | o _n!tt ~ xebs z ge@eyw u fz&ga{ wa\}v~ uu pfx qkwZTh t t uzsowvtlwz|v {ld }gkd^pp[sw pc u zi~nqpu~gz qox q|ywpVu fy sr |n{ podg }~r| m  yo    ` fr\h s Uejy ~  {fa sdV^eq]m w v opgm oppf[S`w nt n b x|y ypzxncm^pxi\v } g rf{m vw fpqu~shZ?Z[FKVREmwmouw p ts} ]o ~ ptlP]  y }}  x r v }slzw xsck||unmdlnbt oj{ pc  yrnpu}n^heZn ntzbdllrndq  { rQb { y zt ~ { sn~|mgvwuqxjoRisjf^i_ellx{|{oecb uodtvda^T\g_[z rl"% x ni t r\pvsn  ygv nu}s s\eh wn q Un ~  uyupS^~|x uzj`xa^k]Uftqu yekf\gjzoFj~aM_krsz y y  m[ch^dx{z  y  yo}  nn}  p  ridbnvwZSCHt id wz sx~z~`p RD_ qVf |vummjv dh u }moXaut wrwwmn| u  vj[o{[_ j cbve] |ncp { x fdarkXfofbt  s }uk[t wn w| o vkqjrvnhtg] | ~rur~gq kt|oas g } ~ }uofb]Whcb{nw{ttkstyu}  z~ |y q dbg^NonSm}  ssi| mir knc }zhh}zv { geyy  i]`nu zhx wiUwb` }wx~ } lu thw ui  hpqwu } n tq_nsbk spW]jxptwpajynx z^sxf zpfm{wtw|T j ~inlo |l_i} sb wq ycZXki r {dhNR:Jn\fYb|}kn v y c_oZav  y lm tOZ D>Z\TN bXX\S gvYZhjjuu]Yu~vqvi}xlm~onrv~ ugb\ewt[r p fr} oj |ur { vy  ~ u tyyqs  vrsw~xtsglhmiZs zws{s {[{sZqg]_rd ntvmou]u } ean_oqo | w nc^fglT]YoyyteRUzyw}]qosrWcdgqc ~jy xpp lex su ~ d\ { z} tw }nm~r  j] ^  msc_y\[op kmZZu dL]~{d s rohR  guromcpl ~  ume  ttx~ywbz `o"! wndjrVSko \pl\ { xwmd { tr\V t  _ThpjGnqrijrr } ~k{~}mn { wzyvy][dhuht||rvxkjnzxus jjie5Dd jv W`w j]V`n wpqbAQ[YNU]~rttYVx zt fhd }}y uontvl\kNe oppssq{xyalp{ip }\prrr yyja|uTt } { z v qgnfpdXgxrid_  u| lijQMXmiYm r [_zbZybmy     qxhfv c{xnr ty oxrtql } vysyikmhejgmimwuyu{|qnqjp { vm } q^{oqf^bXaTZxj }pSrll sz{r i } xr t[baqsUkz ~ og  ~~x} yznk| s y py ~~nt }  } {gpwpcno^^eiwr |f]i w {eu e` ~  }hx rmkkq_l { } bW`UKVej` y kc {vlxp{ ]V_WYVOUWy ql xzylnadh[hrngjfUahgXdn~kl |y zj Wls~  x    zjSXNL]FHIp } g|qq{VYndkjnmcj_Psur| ew um^br\kqSbt xe z { ulokdf sy n{}mf|}x o }qpy z i]lk ujuw jzx~ahIFl[b| vvw~y | zeHh|br  q } mdsnehx |^fwy~muji v t}| t mh {s ^ h   f[T ugjx l` nrtd_hkryyu | gohhw }wz  | v {wldm hQ] wvl } }|l ~ y pg |e { sx } uguhujyeg u^iwz v Xb |}qy v ]m}hi yx}sg e unu{ ysbbswoppgs w{} ziYjw gf { xoo t cP`j[msm  w_u s  k b {x u]rvUYk r {v} ~ x x zm`[`dUP o c\~jovtSgpg m | x gTkibcj x v S_xv} kxutw{uson|wxbfpm| v td]oxh^]zfpoxzmv | {lruZj ug ERv uo} k[f_lr}yza z p`hTHah]HTfZRHcz n}   mo|hu}oi }zovy bTPaniPaVFQd`]mgn { lwurham  yjWew ^Ywuv|ytqdfjlphch[flpvnlluw_y dsh]xyrr ~ mq x}zvwdvwx |`YiZP[imqony}~pm`s{xp_MXxvyts [gwejgci_stdss xhbbktlgqfdyt qp wtehx~fjv srk o !#UIvqty{fhkJX|}egts z gRk v x w nroukX{~jIIs"  ~  sle e_ y tz{rndhmhtywh bl ~ ttybk_Vx bUhs bFbnvhgy z zuz w w~ {   wpghei s cu tt } sevy|jlcfi\17U]gOQpmXKMik xgq x v k t eu tmmg sz}w mfTj x}  h~gr t |z rrrry   t f|  vkpno z o`jjwkSlwqfk v o|rj v||u  o_ x z w jkq x m_ u ^@] n TXfVjkks{wopXisku f }`Ucci`px~l{  yseug koww yrt vcZ`epv ~{ { s z pg |k nlccn cl joq } g~ql v ~} uabb^aabr ~ { axzxsrwuu  x| { ^fbsmu~y{jmus}dp {xvbu } {rv o y   hfp}r| my \Lp zimcvr v qv ci}qu b_gXWf t { p y g\`gql tixqt}tk b^xfs}x~ svnsx{  rms tkl togsqu iUmm rtv  y V c^er]QFgvj~bX ||gixrmfchp y xrx p {tknuh u {c t w klezzoiuscq m u u||zi~tzyrsz{m`wskq # os o i j}p qx ww{~zm  }]hs`uxqzxu { w z yt  {bcmbc\`\UUTpxegdO[ yYR?^w at wex |a |ojqnx ~ x weinTShrxq`rr}uvu~o~ }oafd SMhmd r kcO]gfvfo vnr]ktkt { nxx iroor _eoi]WHUdp`c zkx}ovitsnqqlt|zwt]ltt w mpifWEQ^UZoh`hu gWfq\m } xy zl}kv^Y | zbwzLT`Wfu |} i{  vv }la[`QBdeSjaaqhZwtX] |y i{ }vp x {aYfh{ yxq  yntbj ywXbl iof l l _t{| m Tuzffhmv{ g`kmir wRUw }ry v YY^j j y y n uUWtfZnyhs  yy mp }b^kophf |sX[jlhc^i zdteS_ s jx jeo]kdeaZ_nuu| bflYfrhosiptv | x y x s y |rsz  utwtgk x e  zst}q|z { x d\s }oq { uoealrxwo_v}tYexo}oh|~^j|qtju { dul[Zj_vztlfoyxry t ih`_hUXsid]eqbNWZjkerhsb]N`eU xttms uPf~c[aioyd^r l_faaOgkVs urTFZalm {t {t fUppvw}  }lm z | wm^z ld{[p}l~nK]~waVp n Zx vh{zhv spxsz | w {~ x |lq r [mqu sqlbP`kgXd_iv_]{ ughZWfu}  x~  ~iTjfbzn[dq }  ~ ny| u u pbry  {  s pw|  |v u$${orzwog_cbr zqln ziu|~p~ ~ uugio rjw px ecekkcmtq xu~ v xMzc sjZb[V^mmc]Wa stzf i_mf\Sj iiWgdZVbY]QqqW x nv v lqthit sxv|}omruqk}m zsjl{lp w h { lwsg } pUadgnx umqjhqciuwcx~}sw ~mk  mrzkbaujqyr|mhsor|`\|wtvYh  }y~ i~ vr{s{}qlZs  ~ qu }kei^erjr m { }[\j rzwxqn]fldqqg`kiepfoz~teWNt qtvnv{ mqzv|   u {yylw z ~{ {j z}QnnPUTM]beix l[ m f y vfWrrc |j^qoikyx sj v ~wtwwhxyp   x xb{ w fn[k~pjl }wi}kz y |db u j`p v l  { ~ zaxmT^k q| ~ } ix fXikp mmhmkx{seyzz jkshxz|pml qp y uw ux gq  qy z~ xeg^qy ^WQ=Erwx} ~oQ;Tm^gg]kq}t~Wyq  } msvfjUU]YerZO^kjhW\n{fZjem  v }}vgd^LDYXN`dh\lk[aKTt ~  yyv{ ~ sojx |z |{mq wv ~k Zy  hcmeaoc]siYasscl w jx{o { kp u v {  ~ s|| lYea\lquwl^Ys obtzo^excckgnducfwm^jyw]Z  z g \gvigdsxssehqew{vqq  z qhx p W}e v umzaa{}`^yvq  o t i\illxhe r v ikeml Vc vqQV\adVcjm ys t S}v zsr squt_IROMvyb{  p `v  uknqnvwvxaems ~v  { n~}bb zpjht | qqf`t{ wijmnhi{}riY[inr xpp nqc p~ qyqirp{x} } womrzs t ~ | fv f` x ef y poseo v bo|knwwwyn`r w `|}iwy vo{z}zyjpspaksdkea[^mv   vh~ x Tgy s ws| s z x }|su{Xy xj^cv ~ }smmjtdf|sheon^T^XYLR { zv~fkMQx ma z|   u !is yfZZb`nd_jdWcn{PenYk`cOCRKKJ\mbw thXtwysv  invsk |  ujs}cq|n s iHSrojZss e  yi ndwyrqi[iUXdejiamp{ ers[mkc  yng[ctl_qp|qj  { _| b^`crjsuy  h\"%o{ _PJPbuuq yz ~  vwhrptzbZ b^Z}{~rxfchowg^qre srustnqdk  v ~zor{ n |  qdeuSGjh`_I^trqmrto | ukdo }z R z }e w jYeb]e{ vi dzotwb o r " h] v p~  ~rgRkiL`k\ejYcmyxr z }nqz u z v|ytskrlZ]vh]x slcap`^dd {w }vnq xpkq y ~ y ~ y tt\clnUVkj^k]_~ogtvq`p}tp { hpqbx tj  s hq}xgx| ktYh{t {ouzksxm{pge_dg[`|~dQRckotw} exuwx|zxahllta][L`p   {{ || txufnywt}  x y vx]gxzvsy  mV z w Knr[mj_olcdr } o`i\qs nhe}qby t q sefbm| v ertkmjsf}x {|ucn_Nng_qbj|rp t vnx dmmnoPN]XXaYQY[gqnps | ~askLUGRg`e^i q`tlm t v w `\nx ymuoyw y r s x pu y}mj\tbYz i]^bhL[ksyzw|Xe|{}  w nv etz m_@Eu  u h ]m t nxrf} yyTxikxm[hlVY\`lkxp ` w{su `wu wo e y doxu  p`wxm |zyjgok |lhw | nu|wt }oneb_VFFZ`cjWi xu ~eTz  fk ~ q ~ o`xz S_o u ji n]c~oj ~ y lldjjsiatst k } q   xxukrxf`uy  uno p f\XXf_jM_tmk  \Ws`}}QXw  ipkwolkdlkcWquunv  } y nd e ops}gi ~zhbwymjq } ~isk^fjwlX w{s u y~ w q Yc vt`]Yk sbijagn z Ytyt t l~ ~ ss y ~gph m__Kn }w vy|zvpm qe s p k ~{ vy s {  xx ~zjx l`i xipkct | t  xy~~xvmx xmmcazub rd]kngiv uo   }yzrip  fwujri^va\}kip x hrn v x V_n^_bpfnstS[n\ o vmufl  mj  vwrfr tdvlsztpgbee  qp  [l | qq}kfouz jtxuq| Y pgcfy } {v~r}rv}nmxoq|qkXP yzzd z VP oj ^p mj}  tj z sl v{rmvvut    xt n}mX}o_HI ecYN\mYfw nodqm]tv|tc^clZjqfyzr} vlnx tkzvosk yl{wo~ tg{ y`iww{n\ i g n y wvo\_ { m { z g xuarw { m x oh~ wt Uwmqwp x |tklseRQxl ~ nmq s}   qoxvpu w } q{yy  pl }t [} mf y z saXYblfftrgwtjp } }  jco { ld_l [_sy  y km}hZ~yYn }}vjncfdhmek iuykpuiWURhZUSDrz Ya~tk  ~| yets`oscpr^bj l} g^ch xtqekwhn  qfz vqrk z soqj |  ~rkx x logbgz }x m ~  umln ZOdbPoYMjklrtor  u x }j w q]ss ]t | s  gn w xif |r{ |q u  wc{tu{rZ]stk~ ~smmtpbbvUxRYszsvy `{ zx~cozy rv xkqnyzupnxsrkrl^]_^alpgX``hIFS^]W]d s sRGu ixiw ~ { t u f{rfgn { s |sehwjPXqccmq { fz { oy xdkiZn ib~pkksqjgsn[TKPjl^tmw x_` m j_XHRXOYfkx f~^pbexdaZTw }c`gT\_breXes }vkvonn r z}  u|po`vb\| rec x j^fmss{nqbh| ~   tb ufm |hE@iw~ rd_jhlrlehwzztm ~ n{  ~txu m wu g y oPfod[X_Q r \p zvi ~p } | }qnxs |  ~ecj^\`fja`ekZRlry~[d{qko^Mlp| bc o fptxs sw `u sikhbUZhm{o~woezm\q|{ sc\n p\tymmppx x |{ x  |] o  u t hbu ^`{  gkwp |~v jp | j^} ~vq{~ {p`upRou[ y q q m{{dlu fisdXUZc^gotwy xMm|x~ n~ v }  w gy || liz{y giqknsg^n|{ywskQPCKyi H[} ~np k~ yrywqc]we[v q jz }j zqtbmpl lv m \a zlxqalii wrv {  } }uvhcmjWcTWgcu~y}p~y~ngosjgnny  |ruiZmm`hlu ]n z fs~~ y y y gg r \ p xcm{`cpePX  } u  } uoklu~xx {tvurs m s{   ~]]lhm^h^e[X`lq`xzko Xby]rx z sf}{ xvt|{uu  ~^ {r b }d^vl ]r kT^_LLa]IJb ~ {{tdpx~v|xlrx| uf  \[zz o`jyTb uddbh s y i | y  szxmznr scwns n |  isqsrhw } zl]ko ~ wcfb l x vz y]S } kvtlwyilcq ~ sfnxhskvpsa^msimVgtgjlZnpx sv ffkX@Che_vuxy xz ~  [`pp_[   } u}zsm ~ pl|{ mi[`MF\^hd__bq{ x { | pqzuphlmw||dY{l z  taP\{^[^jzqiweWfhsu]m ~}zmn^cZ]`SUbhcrz c^u } v nfyomiU } wRXs~sw~}epyhowq z tkb w | jgf`rwfcba{ynotq | ~ qr~}uytlvq y y zy{zywpgc`_aa]^} ~ yr ^psj  uimmfya r bXnb_fkQ]z  zyocds znzmhueHVk]Qf_kmss]\  hljW] w xk_cf}y_qow |um }x {uz vvwZv`avyy|_y zuifyoxw^r z y syrpqxl|  p z }eefb\ae_] j u sae sxi`Ym pRX w r  hal]Rbjlir ~ px }zkmp tb ~   jj | | mUZwikiruWhl]bnn`st d zt otr  t~rcqhOJTuio y ih n  o s kXes n w ob~  |mhUltgqq_k diubah vqsne_]_p vnurspsYsrub x ikjq}| y| hbot|ysf~ vs{z|kK=X_iu {mfd l i x zuyt| eg nkwv   wtjrqfhglfoq c~  u ot _w\q {zun]XkgXho|u dgbi{ ~{ t ypjhw }slkrk zs gp vvp \gmsf~ys x~ek`bac l[htpnqqiRhtrw x fzq]s }y { rs  z v trh`olqgi ~xr{ cp} nfoqp\Mrwusel md\q w u s xo} |yuv{ }k]mhZnxbp`wtogogPTglkco }uqtspe|ws wixt`u { lx z   l w  y p r s riok } xoecoq|~|wttg r xh<7_XDIH[bZXcno}{ xUUlo} wxb~yfp_foTg y m{ |jrr}mTY^_onb[oikpu    { z w zg u!  wv~ } ~~x{} z uurks||~pi_pf\c[cRTahtsetguz xnpib z qpkP nxUn { ^em[@Kvw v myw xpscUallpp|znprlfW} { ahkqncaRHVY^Yfpy w st z v`~ j }ikrn{vun\mvqquxeib`kck v xgpj\| q }r~ qb } y eh|batlr}{y   xi^v}hcgP]yp sicm`Odakrz   ~luyz tu}j~ qtr]^P_m\WSbi\kxrr   gtlutaWB\ w v| { [Jhq_kjmovy|pt~zrih } szw lr}{ qoofgiN\daofxowz]h otspbefz} mmy |oZ     { |ivfb pm`^]h]Y dW\]`lkpjdouku  lb^ljl]Twl z lRY ~ qkkwsn~iYXZ`XQl |}~   ~kr vrpfagoaS[k{zw   }p y b  gmx xvtst~dn z igu ttfZi m a~xtmjwzr w lYj   syzrnv  n~ { xv | ~}|  |oooij_OlqefT[fWc ~kovg ybrli~ mdfeXYmptq~~`etzo {  qx xqrkq oe z ru } pb^s xhOMI_bUa} u vy}} x {zwx}{wx|gs k]d {} }{eu  oi|kx lm qrkd z urql~q~q oww| lv}oo |vq  TYngal]i lY]WRQGRg]eu~ osg~vsbTtun} dgttjq | | i y wZpv ggqtixngsgasfjl`r~trZ`{k^gybiI`p\`nqjz  su sp ^ rwt mwn v {|g uye[Z  s z l_VL[rwomnlw  ypsk}kkg^ezz v} cYcl|sqoi { x}|{eY s tx}ya]hn ]u |wzw | mnph  zrunqy tm|p`i`hnps hv|wl p\pls   r^u viv rrdu z`d`enm z xusz  o w }vxoe w  x s y x u wsiXkxr v jR_]l j XZNE_]a v zn_kn`vqc}| r`  pz  |r qko | o^q{u~p^oqtdaxmgm w Q\nhcpz~eJdfgklt }wlrbNYdreggk {ppptlw qo{wzzmkj|y { vyjjjn y t} n|rbqsh v x Xemks hmgXfW]{~tpc s~`bv p ti]U` z}kx|  v | iq w g  o u\jmefq t m QMo | uq vkyZl|f } }u ~n`ns_oiVc\\j} y j} orxuzs  }  }pixw r Zj }y{vks}y |okqz rulm vmmqhsr y ff{ msTjli_qpltdemRfxer{]n  oLUiik^dbharsqnmin|{|w ~taGuw`jl}kk tj vwp ``iolgfpn]tbxnf x n~`Yj r|  |  spzh t u u fQNV[UlmTpkz }z xe y~n| de iezuyjiotrpm|  |} cl w vrtST ry jav sZlr |rtmj]_gdb`dkuoJd{{}}w w \lr YRapdVisns   }h tx x jJg {icj[Z ywuhk}w| y ]yzt xw u   up s |_bimxkzip wX p  sovuhgcut  d} vzuOfhz z ~ rpy limjhp { x h skir j rkaek w odnocqvy zlqnocWq|bmkk v s w r zlks c=7awmommwz |nt { y { wiw xx}|| kg}t xv` s{txs |  y } k`lmoe[ehNo y qqkly~v x k\ v  {woahxujdrxw _rqgckqxhmv } }t }x xjU w  w s mnsl qw }e { }p} y} w wrQX u  xv}{kso to xlkt}~ ~w rv   ~ w d x z uhj] r{ sp}~vy gontviojmvx {r ~ { jk }| uscf ~ }zq s v l]pwvjxcjhtqazr~vmo    {{st^_t xt [ffZ`fVlwr vig lbizjbv uh  vdzww\afvkjstr~ij }vu } z i { tr {tjz pf|efY[gz } Zmz ZNQW } sz  wlievf o cc}g y v {  q Qdqn`TQp qlndo ~vji`qqwt^iSQll[axw{pw w lu~xsrnrpz  x z m x|  { ]z~Yryuyyumm]gqho rl {ou u }znN`qr\qi qhat \g{x} wd xs `hdgZr r zt meYsk_{cjiszrXo\twncovnxg\Xcz yz kmmkajfxpWabmiZqmYTefWpm^ btrYdszfaf]\mp k v } { h{ zpo} ilwtT[ni`lz  mQhhbYkQFG^p~ppqlw iYUoidVj || zzdrw} zr xrm v   n ugjjljg v qy {s}|bv z t ipdHSBLr ys~~_ |{cjnkn_`V]o{ m |} s]w m\e su | pym ksv]s|]Q paj |veZnnesHz~Yn s bv  { |xkg{ v tgijt" xo}pjmsooqf^e^ff]QJXimdP@DXhimbltyld\]itth tu|}uy otvm  li  zjso}wtrZr}r wr`l w s ^i { r }~jh } wy} z | pw | |}_YkltrrgzsxnedljhY`jUR shbggdKp u t i o revu} ~  s x^hiTk qv jlm|qf z r_T\NPbZomp t! xuyx{|^b  rjx }| { XgpoTTac][fhrviw r  k_X | yaR uv {oh w } }r}g| y jlh ~lpot |kvyw  x hs  ~ h zye uouytbus pww |]i z kv~u }n  }w|rkxq^J_g q n z   z ~   t g_simz q [OTlY~ wgTedoqjttvr lly xs\_pjd`S_dvqt } hanmu  u ifz oZ xpm} kf  xv  xe~_@_ u scgqi`btu| p_a]mqctjf^coykZ][]p o\bcu rs x zyguqpaz |{vis|s}y~Y[r\\s|mv m { r Vespdoynl } x stwunbesnhtx|urpv { v ~~{ [ |kzoi ttp j } { |ddnsfmiicf[ pmnzy}nqeXO\cme__bcqn|nz  v| {  r tex _ruw   | p  u    ~qot sermri_XTeb]]] rd^~ {yy|pg} z qk y X z tvtbjnles{ rpv|    \t ~qVfn {}hpsoonpxy  uVewdeijmz ~ouy nWeq]ioqk     ~  f | y { wvgyy} xtxkaSi ~ u t  jk } rtq| z ea z n`tifbbZrqi~uqiUc|qVSWzWJt}ou lR` ywv z t Wsqsmk y Zg~ y dto{fxis} w ~ t } |} ur { koxqs ~ehq sg~p | z z | nfmvok{ w  nvs{ z ~S[ips zr jp r dcj  vv{] ~ tbmsnjwwxt ~ aj }lz su}  } y ~Zx v x qmx|lqhN^]z hm {mkg w ~ qxlf^ r jiycm x wtsuf|PYu{ i_ g LGl f Rfjo{ { gk{\w {t Yu flrehTVSVR__X_Tivnzyaln r z~ |{ ^k s v uoas%%  y {{bfxrYeh^j\diWTkYg z w | r hv wu t Ls y ceIF v }} g  Svk pv o }mbPc p _bdA]ib~ s ak`hkcfSa}~ yzs vy s Y\jkIKePT_lomcx ~woF tzZkhNX_To| wxtc^Z[bURe_br|s k`^SUe vo w }vt s r y  wzt    xnz hg  uv|{vpsjVUcgZHd  ~yo yfwacv_]gpvfR l v aK iqyr u  z w cbqin } yuzms_fr z {[_uy| rz w s pzn tph uz jc{ vp bL]is~ ci^Lunohkvnwo } cz z ryy { s{j\_d\[gkq o h^o kvu fz d]| tt |bw z fdmkbYW]hbJYdXqjb\`tm yu \ y } |t y usyg ksw olgz{s ~  u}~v  uv wm{ ~r|b s qVbviqmmu{qjp y Thqai   zgv}y v  vnhl ~  vw|z}  wxv uh\ wqq|neYORebMiikfYd]dfS[l v pzk   qz thkz | tz}s wtx|~vnqox ocw na{ v `\u yoa\sicb jS]oqkmvzxsqw umeV_qcak_YQK_gSEQW^ xjZ[Wha^ sg w |c_hcGLcjunww{~ {qrymgz rm ct ~|bq{|rz toymu ~ zy} ~ qhkhl } ~ sqmmraWr~zUy iq_LPNOjqyd| | z j`Wdk |v w oh px w    uez jbcdlgpt y uec { e y skool y {tvix nj{ yofg~ |~v n w ysrw ~geu v e ncdkoi`k un ^Zw n e  y kvvnff x cq{{ } sfprb\i v x w u x zl  oT`ZYKRrpXn v  ypcetgLk {`Z`jbdzueXw ~ soxzforkiXb_pvkmnu_cpi`^pe]fyy|  ~ v V_r~   dssgocVrq\^[jw {^Ri|w l} s hpj}i~~ v dp |qgX ~ t roj_h w {ty mPk vn~dbx { jn zvpgoll{}xa | ki raqmZhp]fYopjols{ p_eqly tq wfjdplu z av thr_[b v}lhn  xezv s  lk t inz}ypu Ri pkrh lw }ZXNhmY]Ubtuodxxj| x~s`z u qzem y jorel r ls  vj}oap _I]ZPWfbk h ~y hx  kpwv}p p e e d lcYhd}{~~gmiejnqqV_Sd[dmZJsmmxzzr { t a r }rZa_^ qe w  v tnjnXWmqwf k{  ]{|sdLdhnX|_yte vsvyn_?Uug_jXf\UicZh\^ZacScu ps rzjdsn{^pgjutv } o w Ru { f w qWa^Jcl]nhlv  wmifh\W`Vfqt v { z w ykhegyzo ~y x q bbr}}xmy}}yx {is qw  x||tjny em~torsy| }kmxcanx ~ elv gK^nngvw~ } o { nnwronw pmu!p e w vm_ y uv id ln smz y ogiqger m l lgursXh]Tolri q|x{y d rmz   us ~qlsc[ULYWfk\s  k`tt bf x tv^p |xu y zy p b m{a v {h | z  rRentytrjdv_y  q`xscu xnsyrnx~rtyr| nf { } ^Z  q|qzus}xk_FPdnhICJuyx{oocnxq~x} }nhj uvzqwusxtrx~{~qoky |~{d]Mo~rts{ ns k XTZZTgiii]aYanTO_gaok[| x|vs} r[ y z ~ so ~ || torspv~|nqsw{fRovqkZrt`Vw  nf| uv~| qn}vp{ |rz ufoz tkm`_ p hjxm ui]m]QbZp ~ramH]hzz u rsn]| q  sru \hvfvn]ozs{negffmpkmy}spha`bciqfnjgtgRd{cwxii ^O_[X v wl\wwt ry z wd^_kv wry qk {kjnocn{ smsssy z miiuuUw r ti  `vr`Oh|i { x y [ }n  }ukhx qcjqpvtot |xr v rp]PXzm _lugtt`oeg ~ ne  zujZi{ | o]]ZN`jq`aa v z tg tlN`qtsrb {  |  v fbmfOx{pl u j  zk} zo|if  v ~  trpg |xoq`Xfggat u mby    |`bm ~nnOehYkhNy u ciacfhT:KccXfYz  v m  x is  t a {u~qjps w ys {c| wwx { { a[tjjt z v ~ xumTWrry rb z y cpj{bXgn^Tldj`w wssmv} |zuhn|ih{qhokzx}iryygn`Xbq prp xsmrtt z zodd k_{ zt |o dgxth`aqW_]ZaRR`mig| lSWUptm uXYhhXN l q J_k  ~h}sbep]k y louig}xpu~  |cv {s w aqyohl _`t vy {wrqp n sc`\YDO_[p  iopmsyyxk r g {w ulZKjmgss}cX][nhGericqkjzht|w|zqrrckqoSk v Zp}t{|q} xxcduf}nf pgzz \a u dqju jafcaofc[ b b sq m { ufs y}\}u! znqb|nQote { zirl dur  mkm rq k ^F_gbhtvz } }mX]ZVuuvpn l ae {{| {inz  vm}vfqpeltnt{l`zqwvx nfpz{toksqjq } zuxy w q| } bhqi|t|te~mnxx|v}g_fk]}[jlftygzhqv\a\ksktlh`bpebnb smi  i nVU\]d[bklqtfsmRqrey{esy}sqkeqeinfZcXTmo\gsfo z Wftongejtr\kley|v{srz \gqqz}h[tZm lPnxmd`x } t{|ws jW     lbdn fXOvxlxsrwdp}{xrq}lbn xskrneohfrlkoqqwwmd`u  x}}r\Ifvt{{ q { w loune~ { |s w w ~m`gll u mf}|zmrv uHcseqi^hed}z| |} {h s pl]kdru fUs   sl  nrv~~ z w  ~ ~y~ r yw tl| tpv daw pg }ohuh r hs |}W w y^f_ q {qnliOktt_ttmcwvt pUhscyu^\lsgswtp | ~ { y}w x o`iw x } skrsvuxjb^{ra~myl  {ewu\k^hm_Uazqi }ll    }njrp{ub\hofhsuTs vo  w_ |`tRh  hjel|r u duq`quxphqz  rig r { | v y ~ rm |ptl\LVP]oncw{}md oel ~if{|~z tY[lqkdvtw ~ } xttw z} r {tTeuurlTbfXfu z z rmtnPn} xbxpp  jYfuocuedxvxmrw y[}} yxjrppx { { u_w   tfv `bcwjn[ psgqrf p k^ sqmklnU_lfWaPm |qmi~y  vjp ~ ~zlk |eh qbmjhpjq[q_ejSfpiap^PXZY_^d]NSu pbr y gT u whxve { ~  |ys pi]q htq }x | va|{yxx|yrsufs ulzmzu } u~  mqtjljvf` pi x mhbgvoZkyo wkvu yr~lr}vg]gqllx q[V]}   o`p | iRj lMOUmktsZnnjjkQ[ | smq | set ~ fnvve^utjiXRl v g~}tq~{~u{ ~ {w |ml p{oVd VZsusos { y tx ~ ~n qni { w sl~ryt }z zyS s | kck`h|htxr|tv | ljliQd s Ugs{ ~|q ydYi o  r j ~o  v  }ikwlrdlsnhjq  y| h nrx eci [RVkiAi xdwpabRl uc ~z_z} zoc }u ou\uznqlnjkp { lO\qrz ruq~ppfZrihZYggi yobrtggr ~t wj{ tkw|pv tnjb`hg_]cYr\^njuyw } rwsszobjxymr t  r[lj_dkksxl pilja s}   z x} ^f } w |vvmu  } ^qlm rn_ n url_[lyy^kpWfkq_Lktdn} XX | ~ } tl| |  zg`us\m {hlwmQe| x}ojluuZhyb}uX fx|l hsx{t{ |j | afyymzgQlxxpRfr{ v xzs |  wwwysn[Jt ~ y uoyrpqvqrpuvh Y} wx ppjw ~ | `H ku { mo yrxv~spt ws hWNi~|u|~z s[s w } | qx { qkltgrofa[S uttrix } no]d\:`zhlgiug]sno ynwmZq}qw r d{bsqvvhXipjXWsyqajtprfjla v vgv}th y~vv{mzxrh |  hbsmm  pq |y r { Ojvguxaj|u  nw]qlYPfW_W { x]|owlmpZfxnoim | s||x|o uqbl |vy{q|oa |~]x{vtkou{waT qgMdrtf{ ubw {~t g ~ x ^y bjutry" wf|~s tol[^MWjenxpfrzlJfw]Nfcjtw s Ry qVn { sSe}xyzou oy s omer { ~ wknnrsdcocmqpts  | o\_Vf |uqqelldpxu } } svcelu |r } r  }z mlmsw hu   ptp`ivuurnuojv } v]na`ytaU[snfj]muhtutib~~qwpQkqlzuthxng ~}~qct {{rimUW[z|zr t rhab s s eTinoq w |r  r`e Lqwmmy wqu  oghl weq rx  t wojhvaSm`o { `uy kd { wyzozxz _d j~hWe {  qw oi|fm | x r ll Yd msryoz whisvrqw ~ xyo  yddz }i  ~ g} lr uspadqaX_R[`m]Uh`Gfxq|utu]H mwmf } uqs tkl | |o y cFLrz  tUd{^pueYL\ykxsqz z ~  ~ fqypn }}nz  mnx|fv xgdUGPbZqpnnrkwvyx ~   z |Z jb`y v^dje[`oz gsr_mr~s O\ q krr  v } ewugp{cWv zsiuloiieeh[fi^fhlqfpmh[Lcmm tc\`kfYnqqd \awrnuuinq{AJDU jt fdi XY_qlKir Rex mfe O_u  rg  Tj ~~mRUSekZz t{||sj_m rai |t  z wyuhuu{ojslm vXktpnouw{zyk}hy snsno{y{~ xxi~ v gc]h y p x mt{x wrlx~z ysy~   qtrkomgmnb}~qv xf\ jqu{ ~vaa {  | z }z~lcf| wigZp}lu | cq v } X;hwblx_Uq _h`Xmsc] wliu  xnk  y  fr }~~`hn i n}l}]k ~yzkoyls\^ikhq } vi~  bju u oqcbmmmtsw  xgN] yp i|iuqk_[k ~dbafwjdZP|w~ufc y oXfxtlku uW: g oz nmwt }}{| rrlfaQMk z  du|{}|  y |yp{ v |lfwna |_PT>Wf^bgdqed[BdodcVasgdqg^nyimO4Qi do o \ q xw{{ihptn]_xw z muvoqduma xsbnpiZu|oy}   w ~ v {us  wgk zp_d z a~km|ik{i|| m  { ifT vjChoTemonuuWbn^b^ixjs  {} uy vo}qynd~Xm{}sm{veWo s ^`seZpudhlixjx ds ~ wib~dcmvbdiXYlpvVe#tw p{pU{g_k lvvpfG t iZiurZi   xp]i cs ~ u\_pwmjW\pe`v ~hj xy srkgs^[yd`gY^z o imqrqZmhk{ m yru eXetw ~wwv|}y su }{ u x} ||yysw } xj`mXg z q ~knghqrss~wh x}{v{|ntsav|yfmrv ~rY\l   }z ~ xa] x }gy y xw | nr  p\]@\ |s ne s sdb x~sqle}  qz zxqt zqht { f_ x m z |Wdi[\nn } |p {{ccteOQ^kyjkipbS`jm[mf cg NMyg_`j\emql {  { } } j m cm xfYefX | f   {l v wyxv r | s_pldrUdzvqvrru\@[bf]t| xmkhej   mq~~ gKMed~VXwzaxwwdkq|pmlpbo | me]lq\efy~im     |y  }vmiq[Z rq w |}pqt{rf~z~  xxu\ k mj~ hq| { qt g~ | q`rpf\\ m f^^cjwms q   yj[q z t } z    |qi mgfhdjhb^Scbrfe\dzaS[vuf^W x Re   {xmol~pk_VAJjo y {v at x N`tnecR\hmSI o j:Q }np v |~| o_\[f\ ~lrx{wnV[phbry^l vy   pospylwqp rbg j  ~~ ~ ~pmo } m fw {rvpmnpu { w p o tfg n n v v b]O[fn^gcX^p | xllabrgWK_]Vreedx y v }w qz z y  wx z v ]WyqXgflxwup]obd q fep} xx  | q }c_d } zi y d{zxv|tZy zP x{{ y{ npjy |pgxe^gopq m _xf u tzyrZ[o|v{xsw\P}|^ z k hex } oq fgp }  oz }   xqy|khrqe~ki`lqs xwz   y jPG`be g z } wnrvqhn  ~ d Oyoxu`by `k~}wv gNj hddb\Zapuxx}tol\[fn} xWenotkjv {osxlej]wrm| rd" {l v_kvox  xar}  ybpr v } u gn | tyN_tkv r Tx nuz||s |  rs rhvistqvs v ~s q ~ sv| {r|whbheX]vqdY^oikRZl d} kr||o||pjo}iqrv{ { l` tiIm xl  }ww z _pyeq t lqgmgo {nsae    ue { xYl y {nl z y ln x shegnfzu]tmfjdwyq^OsfRP`Wh{dby|V]{xs  jwq\ radnkpb ys |s\`z}{`ona[N\SYsx ~ cV`sxx } aZngld| |s }olqdou XP}   iVgTLd\Rerx}k~u yhtfkjdkpq{wmkrp~s~ yqezonaut`u y x } |}| ~ xsw ~ yh }l } ~ yz { {r|{g { | z }crs qtncg~sw  y j j  ~uq| x   xu}i l RTnaV?Ppskaw~x }tem ~ x}r  qppz |~ }c } |g_ochqPey  { tsvrusnx[Vot\u rU[gnumoxp s[et pexhYe ^]{ uyt } osx |   | knrmg[XJUmrnhnpk y oXhbjgc[cYf vkmiiurh u hfkuwxoqxurdJYUe\kvsyus |s fj  sy }wv `ftc lohs~tyf yu~mmyuj w |``IWdfV[w s x w s x zz j^b g QW nhowylkl{tj w~ ~kmqwox{ e lw qt kvy qrtudoqfPjt s^Vei`r {  tq}xgp ~rl~ ps qkkkudzxv } |tdk sprx } }{ rv ^qiu } mc~{h]XufGQkvmql| } w rjjf~ pcOVfXhmrxwupvukcu Uh xgfdw{{`Op h-?h PO\d] s#mbcbN s {pvzpn } wuw ehr\aohs } y}{tqch oZ[z^{rinx|kYR| xf waj}~ } { pvrnh]RPS`Va\ds iskmjhTkvtgh |  |bl { okjn XZcppgm_qrgfqeZadi } k qsthqu]l^Zbdk}w |qj j tksb\vufz}}  s v o g}d y mf rX N}| ~ {wywy uh |  { piq j L]p^odowefY]u~u~ } wjHw p @Xxeq  u_tkm f baw o~w l~ x qe^_`vdZjsh u xlx|njzywqc[YWVZcas}ky~x{ ykqn | ~rdInuy z eadm  mZkpepkp lh| z ~ s    f]s w ys{w~ rO[hlukklkxyk u|k}y_w uo~ rYv xilgxok| |sq  xm { b w bZkna\a[^uSc p\goZ} bq} wvy  zflmjcynizntxm uct} m {mxbi{s~tpv hX`v vm qwrz_\\htaoxrk kk m{wo_Rq|h_XRdotp xqiytl lz|^jpmlqxW[qq`iZ\zxvou p]t~rjr xfhyyunqmtl[ ll { {rt tqm{nlqivy } lPm~x n v W`p fb u a qq t  }y w t  tz torfpflx ~ "~jm wpxirgfouqv}ubx}uulo i}wdRy j ]v o _{ y  hyz }out { w} y v o y tv aplhjb y pN]h[Xchr y kg r w wj{ ~anbY y yspoxluza{~a}ww ~ qdfNgiUXb]aww  | uj{ jj}tgkg t|{}|n   nwev u v `i }q\logpfU]npwar {  vux jrz` |ii juktw  uzzina nRPgkQr} qe v xx pnuro t xkht r ep aWvvnyloh\Yu { oprli_SF\ s onqq psrwnhx q| rlgiWe ~vxxrtnWobXz { {  xznt j qf~sw| w| qiy s`Zdpr o{x\m ~ uw]_kiqYju  wu {li {{wp_k u Y[SY\ZCCVE[YRe ymww|uaal mT[q eiqukxw i\n`d|nt~ wqbW\ w yq}uj | ~mejpvoqznp ybU_iZnnusupowwnp{vql ~ qsnmwZpkju { tf_hiow }ng `mjy {at{d^]jYC;T_i y ios u rjaV } svtrs xkkftxkvouvrtmo w}aK%uFZ{ gflwcekoflvq v q{ ~ qhfnjkzo{r]fhankk } |nvp dxq}  ]sgghf~nd_mrjpxepvkr w ut  ~ujk { qlakn{zklhveq shy | qnug`rwnhwpt~hfnh]`_H\dObv|kjctvrvxzn ~{  |w f x qpjchv | abnjs }xvov o|[iw_jltsl oW  cveima{rulsssdv  gjc^Pbrk  z y xt xtloqcE k iKO``\etm|z j   {nhVggUcif_jxj z z  uVdrX`s{ tlp rhzz }wp m v fb t S w {f{  arauqtp[i { w x l\srmd z oce y  n z w  i lqd }uh  teQ oxvr { ~~Y kusr sh~u r hmgptiY[R m t bLigdloq{ i lfg y wU_ yoaiy ubv_bbPm s^oy]  qtmehn  } pZp  tu igix { g|jPh trZmr cdj|ntx{ w{t}xysl } reomrohmrtvs}jh {rmQx t}{j\l z  ~ v~vu[x vw su{nl t ]gj r penVm""y ~ xk ~ z \ z nla xx |qovjbu }{spvnubzur~nymrvvgYu y y z {qx fxmaf y]e  |mx{ _} zr vyrsofn ~ z p v k |k v|^tsv} shk {~mie ~ }w~z  v} xvifoMhkzo] y m czibqs{rq lnkf|qopo_jwd qhX\Y_S nga\mvtxo  _wrhVLR;TBLMWSDOfQfht z bxw} ~ oml o eljlh`vr`fqnarkkpWk| gn tX sukfjbLdw^qwfd  zrkvyujthbx}eq|iVUh}~pz zub[o ~ r[Wrsw[ak[ qhqbwyVjw hfsv|wgzvol {zvxpt kqtzes xdml } ydlf  ~   ssiorqjk go thy{  } w`^ |oide {uf y z qa ~ qWa s cYg c_izoae  ~w }pl{{ qg  p{  uzoj]gtt ||{zy`myqRdxt { mqrnvWuwg xjbZpkgl p o| ymw|v^epwpfky je Wl {tp~ir|zvcXt} wtan |   wSb~ { ~ s\qmbknoyhsxkh}q]Wgsljvw xv  |pqy zpa} z inovxstb oixxsn|u ~ bg yg onTbqqiY`scetnikbL x u rm[dks`~|  j xv {m}vw oqw zdw  xow_N!~Wi ~  {g vrn} v lu]_b]]smi`civxiurckeah^Vlsuw`up Zs}  y  ~z} s v tu } z~zhhqhjm|ztz{qp ~nv{ |w }{ppqRSszlgt zz om| n{z  {zsimvevwpzwbguz wzpaYpoh[QSchQWjp |  zz w ~ }x WY {emnxytim }jOq|Zti hea ~ z w  rjj~ kxts { u fs y fwsq~qti]pmnmejn]Ii kY\`TNP^RXZhnnekpki_ty w z uv sr| { z ~er R]ow wlris q }{u iugapK_ s  w }mk } v[U_YZikm { hTorg^g m| lfow {]PG7TRFWfhovm[BX`_`jqxw T| t wlpkcrxoefcw  ru f_Pk yhZorqiuw v`bULn z]bs jfl | {f z hz{d z f ud[clo{q^exnjm^_cficY zrTe u | \m{ } {pf_\bcqo rvqoqlrmonnujvm}ki xvt l^w    ]vvrqft | s  ~  { crfpri t lgr^bhffafLXo t {s |otcWlnRkukww zuw  qeg ~ oq | pb {r_t uupv} pa z | v jcue\\hc}qbboZc}rfqpfymrzt   ~ idgpfd}rair{ e  nt` w {xxeRSjjdi^_c ljfl ~ q}zrpi_Ov zn  } vrpamv xu  mj y ~}reUhhSUaaH\ v txpnz{~ ~   o_dW fe a [ef \ enS^[p}n}c]n mrzts o\ft q[c r bak x v } ~ m} ir}O[k vjMgq`TTCPfWXzu v u pw syax~edp m aW_{ | ou p   x o {lh ~zchz nx } trw {oo { ws{n ~yv| |~y  oxyzykqpl[bdvqgtypp{x x } } | upyfoorz|xuuv]c wk[]Y v!~`V ~~n{ gWusswy}{]kw _S]am | { bar qtvpwop{qlu na}| qZ_dntiqkbLKW]dbvtm no q {  nqg x t r x Voq\{ | oiw  tq {   |tl inruldq qmar xsmvo w }|{qli~S[ x { }iWllfp w{k  nq tgr ~rppqla\a`[jr { |veususmb slmrt|{x} }v bdrb} ijWg}s| zhis{xnsr [ v{~qmo qoui u ez|vt yexdn ~tYd  qlrxfX {_i  ~er| ~sf{ x ip_^]edsnldh v z uuo|wh{z  cqX2E[ox} u }x|{ dlkdl y |xkosnu}uwv zjc qu ~  zty jd{ xmdgvot gozuzw{   }kkv iv r `oibfr_h wltto w xq { sjx s ggx y k]jlkaWZ\fmgyo insp_d_kspiipbGm k~ ymg  ~ k|njpsQ x z {v w gqt`jc_\]Pjc[dmw{w ~ }l{ rcb]NFVbXZU`iihqzwqk  zqhz xqp]t |p`m wUeorderXecs ~~  y  } n w ny[i ry  rs wcj n }  ~|   p_ ss~sit_Yemsehl `yoUr} z { _pqoqsnt kLsu{v x {tn}  rtg_vq y| qr vr ^txv  _mutgjaYcvs_ithin } l rwp_||XgtXu u  ~nv}|  tjq vpi^UZUXNFijUe { wx|zkqiglozpuhhof[bgobeptqksdio{kv]egynboqr u]popyul`i`L[U[uytssw ofurh z khrqrnjKBYgbTjd]i\] wk { doyvmy }yoi}vig} xsy r| v\o~   ygZh n}kj}ylj_k | q w | urnis nwrrSpca sb y z  w jrsqgi\RSjopdgg`ejn}y~s { q]Wy po je r  neov ~d p }~    p nx  {xrhgr r|x }q v w t r tx r lv||n e^hdfnnh]Vn u ych qj``qoxs n | | Z_c1ANaiQmt[`YYr m]hojqn vqn  o  b   yeboph xv ~z| ~ y efzq _ |  w p su vhw gw xw lk {   ll {wuz {u}{ d s }zxox uuefdwrflkfmspjr_fner  |ylfworhv}vv xRa }yxqiiLa t[gxjg\yurwhrw  zqnnbk } jq | vpqhkyobbraShmiv { djls{nnfbSWf n jWa]Mlzm``_h^krl | | v loxUlpYlzf]`q [Naggflonjsygnx~ z d{ ordt{piy iwru  sinuztwcRo {^[x   wr} t eirzhxqn kYe  | vxjaY]des t rsx kw }nsv Ty~qnlwel  w rwhn~y~l{t   sz yz | rlz v cQ |}xk}  yne`Z r ]] p Xsrc\wrtyrt x]_pufiuy fZrgWZrym ~_jovrg {  s  wz uy ~ njmlsy}o }rb trg|q k u[ASaeig`tw~~  jnmflohlzwwv  wwv   xnu~e]^ptgmeypwhbz  yuxx `kjrvbpuq  u  ndm_lkamc`l w g z{qxm^eeKXx y s z w mj{w uX^d`VQRSksisfzli y } r v kwqv ]=do|\pl pgb~y~rrr Un x`zyk]jrixyzu zm" rx {u ltni t {u r { z } w  ur  t nmY ~  e\q | WlyqptZM_ tmp  {lqxqc ~ {kka{ ji|~wmp}fq u {  ~   zi  |  | y  ~uu sayxakqnw  s } tt t\ {tqjuipq]]}t} npn^jn}r\Wfuu `koy ||z srzymsur|ktghXT~evux|ioxw iw ypus} yz  zg q v " p }r]j y {ibhx x~ ~  |x sifs wcix }wjw ~ { hnylvy|mcdWYv  ~p   six tcqgt }][kWd_cplayphsvvv y cVnup^tql }tu| o | u{  r  |   ui tz obkhszvyeyqv|kpwkrti\UOQbz`b| y  v~ }mr zkqlxvm~vxzqikmv_sNi t qZwvppauzrz z lt {o n {  { |  r tpzx~ z|v hbz |h}rhx| z  tc p vaVTQ]^DXcRaidp| sbOhdkepz |toZXU[vfozpnrrdakvwXOs xps } ue zimu utwwkZOpjx zms | wp}lnr}|e| kmjYvs j m Ykx}h nh ezvc ~ pkek_[~ tZr xZ   sjcZ^ pfUb`m}sid ztd r {Vx |i xgk th ~lm~ngkd[eq| guxsvy }aVmnfv sP`tgmlm { v{nip z ~v||u| din]Yx}v ~ w jrknau| Qf { zxuknFZ|`  |f ~  }j  t~sg }xkto_jgnp\nw~  u hj} ~ s u oev | { x  zt x n\]g p u gqpW w}lnw nm]ckjtseVarZs oj{kgp r f_d[cxznbcmgu ~ qcau kp  o } pgx m~pmn_erywtkWupe{    {tb^`hpWTjpbU^uvWCToyy } }  ~ xpboi^bnhjwr y Stv`_gmYWkziwv v }|z rpvvkjzt| riweNAooixjkzs ~ s aw} k u k mwyjyqtl { gmpf\o   y z moqfii vcx z jx|p~xy zxxyow | u xk xli ~n|q cP k   g{rv |{x x tz se\adVX u zr ~  yx|}lf^jlx} kunwTX   o{s }mnphr ynlubZcSbigsry { h  xiqm[drr}hgq z}w q k~ ry s v}s }  u y ` w ~ x } lrrlTwn hxmn ih}x}en {^ r ^_ x tsv bv}qdqxw zxh" ~ qutrr_w| u } { w x z } ru z}x|[ YPn { K_o~siz{iWe wml ~ lhmf]bf`Pll[LJkty_Zosqusjvt} wcisfi}}rXjod`v{xyz {ulcH]kYfkis} { ja ywumtpUQltlnpxiixvks uphhfv }   yz |x px j~ksilx[vxu{i_ upXpl |xomiz pq fy~   z emt |~lU\d]SNTe ~ ~ vw| qj } wt ~  kry z ks } zi ~ j } zwokyp_bof`p }kol ~pvy_ngqdp}fpqx}rk{w {  ~ v ~ mYlkwawsk zpl x jnnqx smq  w~jNOh k _gci zlprk |lpoZZhfg{ sipt imcfnahmjm  mb  ~hvyjndgkr~mx{zunlrqzNo yn |my~ yecv w lk ~wju zhpz | s t zgc unszu | ~o q ml  vvriXUXmr y ff s { psw os[Ne m_k s]kqaicRBVTRPZ`dnltcyxd~| }nx  v uwwsVMcj^Rbx t_ jZdltttvk]Ru p|zrzsr hadqo_y| c u | o ~ xxu lr|tj|}i\LF<BL>5E^P8\{yt`PV\fw kUZPXem yc {fl xOr yrd {wi {mpr wpx w nkm | |Xm ~ okmkrTLjqfmpj{Yhwdtnnyksk_kuhez}kc xtt } iemu ~ }  | py{y lioLc { ylffg>Lh_`Pu u ~ o  q gb ~lodav| ~ | gy ~~urgZZi tmefTL[`]h |o{sn~y w iiegphopY w {jkptsijpnrqqakv`puuvs ~  mu w  kbcwvylw faznujxjz} i u  ~w oc v ~ wi_opnpt |  ytsss y lw}vpnaO`pln ~ qt  xcyqjuv}  { b piz  o _g ~oywp} l vv} } in^acptfdtum}  yz^KvtkmT]cO_UJcYSj \WLZdYdmqej_^`nqd }n^r x |icilut^i|madn }u u t|o|vq~vnsvrdz } {m~mllVp Y8R | VhUX`[sd{ m{}|rjr u fdj zvtt}{{{ s kh^mdYz  ~| z v ydX[]fi[u xuj v r xw~ { se ~  xp| s ]p sqmQMZjniga t_lpgu xt xlaquhgVlvdY^[cOPZam`dV rj{qn_W^yssQ[quc}w`Smpnxiwynwwt ri_XNrsmplk krurnoyzw p}     nw ty{p~ ~Yi[qsVak k sv j]g | zoctq{ zou{vj~ zr]Tklsf_ggk nnucq p mu tt ~cr{qdrqh\lxxuvzz { ]j ygcedtzyu | xVV z| }  } v zvwuvpmep  t x]\kNX]om^y }dlv sdjteUhj[nikxe  xs|hNZaUnqrqcf` t v n q Y^_jlskjf[[^q}s u ~zia]]kkx maev d_q {s  ~bdynehnf]sqfqcqg`qc]nsqt     olez~d[v  m}qt w{ zyfhxirnvrf  uh   }e } yktdX v mgs cfh[ZYmqq|{ss ydIBe so qbgu o{ z ~v oo{ |k zntz gv t ~ w~ } v}o| ylqgPnr^t} f vq~mpzy z ~e }"|l {kcjo`]krdthhu^_aK[egkalu aZhkr z lu~gigfttk~v |waRYin sbdp }w{   }s kt{y}n  s~  rgwwlimosvphU nx`uw i_kv | pz|wd] m q u\^ow f iZ mo|xrYttx y| ~ ti } mxyo ~ _  ~wju}{  |{p |i [O]dRTW f XHh~ yks up{ v fl _^`]xtXcdOXWRu}vnduwe~ } goak xgbfmjh ~ ~ RgvrnjeyfZirx {dze x ~ | x s Y z sfv{jbri^lewtur w z x ytsy`joZg |yU[l_YPUhuu`sgwnZ{y`} gox {mdmnso]lyrpw | x slp|u~{jclkgolf{ulutnm u mkul { zi |lgpt s r sxsx | jm z wnpfes^muxv_fuwxx ynx nrqw  og{|j } {q | hsr eo { zjchogpop} yyw  ||rn | umat | lmws{|r}y {u    wv{ j~v qn vm Z[tgr  _RcYZ_kmdne x {h x gpnz rs y   t[  ekvl vo{q;OXQ;OYNejq`^]gdtwg{ mTSdk_\fp{yik yskj x k y y| sz ~ { i   lm { nT j]>Nw wstdzswtggRelXjr}| qkXw tvy~ w qap |{q { oP`rmrs pq qngvsfgx q zw io xrlb^PMFahmz |ij|mOo r  jao{ynlg{^kk\gc\hfbqwsuYa | | t t s mj x  zz#mdjzlh r aSe  nou`no_qs`} wluvv}rovs oz { p n  {rd]]\Y`ciVf{ w ouw | brsysgu}^T|  lYewhQRSr nke s dl   w nel ~ | lkljly jnb[i}  ~ zxqt~{ufltin { en w v | u"x  e    dn t_YZ uw m glq o pslkved|ttwvpu  z }v ztecWTlnaRX d ixZZ`mk_ |mrooldteXquey}}  v##ov vr ~ sw xfkdlzs mnk|{qfjhj gjw x s {  { wqldc] s vYSjd`dplp jh tfswi]wrppgtqmy ~ }u y pb\[h } yytpdtyygb y stht{ten ws  iw ~ f ttxi }  x^y y jtcTdf_kdpwc`hpkr {ux z {l `Pc lqr `hwkm y vyss~oquuy~ jcRkoem m To n^rt^x~mhyruwlw su wiVewm  vkiqsqv  eo mrru wYny jbR^i]`obvrdn v g]QU]PG d dq"zeu ~  s} }tj\^^Y {   ro{wt||zzmV] t o~r  z ~n_tysaXlz|fZ]ons gjg|zzonYjplv{kj ~ y m}ji^O[L\truq{y  {   wdmqv v lfR o| xn}jplz {j~ sh|d` tgjgaxy |ji{ n[^q led | ~{s`aes   gn } uy}}Xrydlskgyfibp { x r`W_`NMepehqs}tcb\Rq w q y!hTn o p iQ`ObbHgfOk pY\{ql ~zmc`mh\e zpoz {xkdmix y r n ngdnnl u qogcgak ~ q { y q srorrf[[ajkcjpjiwdk]hkVi~r m| sepabrx  yy  o ~ zwptXm_km{~nmg sojdpxlqo|wvytkmxxhpue_uiye[ntgfx nh }  w { icjlvwnxwkah\Pm srdc| rqx t|pzin | cro]y{ v| mo~x}x ^ {   vq z z }{w liewvR l  w } vmk o^f~qqt | wqlxmjqx }v ximrtt  vp s p} lhusbchlO[hi{px_agdpU z | e rs]IV y  ~u x mqqwmSX^Pbo`zrx}vzxwdqy}{s~onopbd wnap y[lxd]^az a~ wpn  qv}  ojz_ajpic`TXQ_[euvakob|r  | mw rok^lu zlspnsv{v p |iffwgf v j} &u tjphw c Oa  tgpj wqhpypvhu ~   } unz ~vyp_vnYtp } yihkgaXZFUcYEPYdPiv wvv  us\hi_SqvfR p W_}  rlooeiy }qexkwz {  | z}swwvky ddkbbcVjs[bnm`m xVz    oy  r b\wmXNO_f g il v rn ~z|~zzzs^\e``a  p ^W ~ tbb~ fu!om w  fv | lru ncq} }|~nq} ly~pp y nf| q { y ^hm}  q| } {mt heX]kiSNdmkx rryuiVlw v auvtlutnu {{qq y { wo~nu } ijs { w { rpi]gy { {tbqv|ef y ikpz xq} z  je | nj]r { z^|t  w hnvnun ~ nfxt cnm\ixn_\FIITgXepf^N|~trncenm}twlk}vu~yyihZnnhyn Zz w t     twv`h ~ tii| y } gbjv{bm lrx { w^n w qjbu}jbfWve[gigU>P]J@]Zcs eR nv~n`ryizlur zZ  ~ w~ s ~l`tmp~ ~fy wr  sfsxmz{ z jjd  qm_m } ohf upaw o |  v z\s {w | s~  ~vot }ns xr~ !jfE\ ps| z  z\X qfXTwp}|~  nw x {y weg u^Kky\ | }wmq x il hi { | ogssv[Whb} vQcyo_szqtuhgfahrliq i`p io }    mm rXqwhovmVVt|fTmip ui}ld~z^n i Vi}t  z r |ljpm to\P][\dggcYZisl tl qrqqrjsx[bcbikwr qw  | wvqqb^cd]R[hm zdu hUe  |mVn^svvqsngkpomgnweksqfk jnPi" uxwv |oth|we o }{flgoxVU^_X\ghR_mh`n^w z ]NY`VU_f[t}vzp z kn wsztq | tviyjLjfe\[rh n~~sz lr g  i v w khrupvvw{z vw ]rvu{ksocfZaXNqpj t Lb u qjwxpelqt vt  ~  | vp[ ~ pln_]n^V{mw lsg^ e u k^pkYmeaU>SR>fvmfr{hV_i}bs |o  V a qz {ohw   {ma q  qrn odBdt kugHa{ouw l m larXR3TqjfeyymjZWsZh{r  ga_SXil}xpsw | yvow ~ qtXvn r  zvsdcYt{{f^_qwrihoZpu a  sjid }umn ua_gt`JT`@^j^RP~i_ ~ rn LTvs [k nukwsn _q cUli^Xqmr sjfgqm|q| u tvWfgjn xz    qu|qguz lXe{k P n u|  jxd }|{auxx`_ t _jsx{llym     rzywxhyhkrs}{ {ug}Txja\k~ voyzkklvoq|qWhsqmv{ { q]KVif v ^ju [k  zrn wgzkjs mfPV` wrhdx sY{ymms~ vy t~zy}j|mOf l _qthQTea_^_reWs]Zv_~ z\\[\`RMOVTv}{z }z dc hfn { Xp s { | hev|  | wryg { }n }iobstlgIppn ~ d_abfnts~di~ {  xoz ol w dtsz~zY\l~| } { [okXm[_[b { oSbphRp yl z zjnnxkdwveU y an wsg| ifuvff o n  ~ irysowqebXi ysn ~ xzo zz  |v{o{z|G^ oacw   unz ~  ivaw u ywnnu{ksv\gsa]s\ w uv ~ wpg~njgquum  svrmx b[hpnjj[w~vsuf  u{    h }vs{sozrnbs |  |  x}  {tzuT } r m\Zo|xy xkemjVVglflopw \fu chz ohkOUiuw xq^v aQecy Wf}zswyxz l {po  w gaoSPiPWv} x }rtrg }  } xga^bKfcPewcXcr ~y qp stqq ~y  pf{yywaXkkWnytlupjts^arminjqrbw r ^ ec|s}rs vg {  } { zwjfu y fhr }vtv~vopy~ s{psq  p{v|zq[wmgpyx sm y |wsvebx ~ z ej} xrejsy{}}nt uzz rhkzs } }s   otrf_D[vy^r  zm {lxx~`frx { rwobxgjSUlmvyev|xgRj[QY r wli y  r w| w x }|pu~czngzfrdipXezuy l kgdi ibnlty smmgfT^^alu\tijx  k{p}|pvjto  dpzdqt{tt qq } evtwzfloYfng{}  tjbfnot~{g`ls lzgntorm ~ { }}h tykU_SQrrcnlr`Qozcof]khYc q q paop[w pu xt{]nw p RYltpnq   xr ws|}||jiejbO`ja z [i~rq wp hhlnwbe F^q]Y]ornmbZ ~ nw~p{jpmgu } oltr  ~vz z  ry}o u\s _h|~qrvjb]y ~ ypmrsgW]rbnbKqxtpj]qoi|thzmkeisu epzHg pVOGnztoxnmRo}bk ko_cl_WqaUggULmos rpcdie~rw   t |mpo {rnzu ~ }y {YYr lETV`momfUu ruq l  lz#v{{|| ~oq  ncpoou}feeokhzipwv  mow {k y" q s yx y  {eksuky|sVWespb z } hjc v plu ] ywrk  } v t  [m o f^mxU|r mtq  }}vyt}d>Oj ceb srfadghUl ~ jhi y }]r~ vr_XWPRTOCasrnmswnl{t} yX s s bk~nci txsrkmbcedfgca^gWjv[sqrwiotemkcfHESkgq kzdi |lwqz zwxwlv } piHc]ZQV z z r x uhXl wegrnlq z i`stemdx s xxrccbl y kmxtq{{v z sp{o~}g\kr`]mm { zwwyhtvx PZup ^sqjwcs tu|ist|vcfyvqe`nur   mtt}mt nw }hdw]jhhsmsplvaf znuxt {} } mk~  i{  gjiwyb~uujw} ~|  }|q |up{yv| we xltqphm o m |  z r N    ~v sV]q~|~| sjqplzcLlrgb^ l pw_a}x icWIbiiv loo ~l eSOcnnyZak^^eV\jkndPechy  gf { d^xdrxq~~nk`jsgpou}  w t u}mw`mpXYj x v h]ckf\juvan }} z snzuXwe_qgT y xhkx { t{vm|kVcZ ~ ~xoific]iqdl zt v {tt{rwvz yx z qwu~wbiujx}u_qqov{lin } z vqesz me|yx ~ { in |ynwqjeyzxx y  }n  ~ q ]w  } } uo^xzx| _pyrtlt n`upRTfeps_min{oU`QMX mmSMf~ n bmiaWmxfk r r{s~ } !!z } tdq ||yel``\e  qj{  w }{ ~xi flgrq]xqjtwu |  } s{nsjSkkiclppuquuz}zvuk~m~ut_q||\bszfj st s } tfZflzor jXeag ]lw k\x r{xtz|vs| z } rpnV^hwpy | iolS^[SpdbwFU oryrlly\lvp`[ju q{|~z  gx x t vrxm| y |P^~a k rsq ofWk dnk_tprony vv}{~zl| }z yg xj[j Xj w|{_[os wt z s t yzyXszssl]hhblee~yrpqsl w ^xzZ d _~inpl kQv  noqvc`wnh w x #"o Skik }t{msqc yZdog z }uw |y { qi[^K km~{qux   np w ^ `_`bj { z f ~ ~ grw { bsUnp jy|~  gr }r[mypixv} z } } ipx{  i  {!j w!~ t v unthhhw{x susiT]mpjec{pfgW{ jXn fN\[SPCj|}|v zxw ~ pvvpdfZn r Px}`zfstewwskit |y}i }u]kx jop z } ~z |nfpa v fmy   t } } qrvvfy xngfhhoyrh^ q{`fj|yfZ^ tp [UPT_rpvy  u  hmpvxQjafst ~ x  hchmjnzQitoio~nv|  {~  z  y nw\ w q y ldtZex } wv xmvk] s ueu^t } {v sdeldo| ~}x~viq yt mZfii`n {gboy mlnqp asx{ b^kr ^hoswht   ~wo_`pvzwq pmnaj ~ hp |db }gbwjVge_njmnsnu | jspzjeqp t q eg  cg z w |gv o pma} vb vks s b[\hp m b[rguTPfWXfrxi[`[\jmh\@7Oaqmabpomx p Bkyol mo T_fhlnljho m eu { lo  t\{ camTNhpo ufOjfezlv  qzr|l^fb[lSUj^e f [[nomXGWVc lyutiatZo~x t{ovhflhqv vvu mm vlrp a] u y }kYevm[\nyn\mq ~y ~ | zXn zmnkuqos | t {zjZ} dY | ukYaSWciObthiql\jlnbx { frz{"$mjs o| {iv  z vty|jhm wtcp } qoztq~ } ms ~}mr bq yng~ zol  p{ ~  } cplmtf{}xz Qt~    { ~{]euop^qfq w fcnnl}^dsoy}jt| }nzot g!eVgjrfRcngP]k[Ybhlv_cthn | g{ y { | x    z { stwro  lhdw u oh zmpjY nhW_S^o[XSkmant m^v zn w a`yns{plxmfbdpwg_t lXp} s }sdqusqjs lu tl b{ ~ shs  uycl} qhn\]  go| kZq{t{}}z xtyumwg\dk`nxwu}} t qh{yQ[ qr}lorUh}|oONeghx| u|vSlwx q   }tyu{Za { lctur o l fWhclgc z~ } xvus}     ktjy}w|p`k`ahTm| i^ejuvjnrvu dZvw   ^t}t y r j } zy |{z vclueZ i f~x | } uoYqw }  vh  tl w t wYnkqz o} x ^eipi xxjhhyuopsx p b>^r] sndmlqwnr{aUZ e pllukglufajZbnUuwReq w z|bgqr~ii eehvpbtyqNX[\iwopvYiz hfn\DUaRWks u u _aetqtsas }xnv | x p vpjUs ufmr]rxp fNit~  s|wsfg}lgqtt p `Jpxnv V qiw ~ijk|xtfp   w }k x v~ w v ~bys]jry {x zmoxzj~  v ti`l tmo`{u}yxvaUVh ukikgju lku   t  }aikhdHusSTpydzzi{ } { v s v jrb} ~ u^agV^ngx{vyg`ku | tbW ~ } ltqq x [grpxj  o|lw hZp n Xm ~al p~{v}z|  qruzq   | ~fmtqn]ghpgswqv | zt   tpss cw t | ulz s  {vsdh ~  raocm~ yt_~kmLG`f[o zc\v jo  rh| ~ gw{zy ox w_jclx_K j q`^XWhhLPfkilghdmhWf xk_u mcUD_rh]D^o N]Z^XTZl wkhjb~ ^avpts {  ~ y t x s x~ZKj| xaZpzvz p Ag}xt{!\if`ih^_Vg qitte{{u r^ u tcn { bRdnmu p^qe_u ow |s|zrm sweuz vj} | ogkeqs }{  b^ n MUeej{xp| pjdbauodmk\\c^n rg{ `Vir { k]qsrx y pke { nyvt r Sq{n } jvuoiZ^fR]q`dnc] xaXx  z zu | k qx ykq{umx z ebe_i uy tediY`~}{nxy Xq  {x m w vo} zxr | | r xwooj_hytqeewyaauuh[t x c^  hkmr z svlnzruz { Rfsvnoylovv p  yvvb x  ~ noty jw wpp  z x di d} cYpr {bozu `rrg l v s{e^lakoUfkf[]_ajsxx{sjgj}zsurac[lgX[wtsg_ o oe}kp tn_I\l^]h_L`fj~cdyy oo ~xteryikw`ea~  z| ~zekmg Xfaz o]h uzda { rfbDAmueap {g ^q{|   } onti u t v rh ixUgzw t i|  u_Pksntmusppgtz vR_ycb s\`fjgltkdligasbh } latzt s s o kz qvsousiloplnx } yvghXivmvniobplSi  w{   |mlx ziuvmncUqx | h  ~ {kj } v|v~ rz{k { ^fkU xZdg zy aUMXsxwb]k u l ~w _NgxZBQeaTolju yva r kK% } ~ gfHekkrz xyQl k }qw~~nt~d l fh w   ndsppfz wlw cz adu lkz~yu  t  xvsyvnxx_kibcd^`mU[dRVbVEXaNPal o l Zghh| z] |yt  s}w ~ x ku   e| wjQeks~{k |xllpWk}xs OGonpzY~  tqsz oq vu^av~ z} znYchZfl | pwp\kol}  gMZYkrg`fxzmj\Xf riQm  z y eosygDhpwyZfl}}sooy   xqwmYeihtodoq[o x hLpgvxcykiy~ xmb{   kqrbkvghuv{n^ffhrljt } qkti z sdkf`rhN_xis | g\qkPXm^[rZpdbeo |   yjtdr }dvv   ly || }~   vop q|~fZ glmdohssk~   ce } thV]zx pnxog } ytpj z    h{  tj{tzuOq |slcai s Y`som qj ddn cPcoS`s liXGQalaNim mkh[g zmg  }| yy  r~vnlv pf syqyRs r qwhtqq|kodlvq~zXevu ~ lk ~ ~  zo  |zn^b]MOYcpf|}qftreu|u } fuw_ou{v uux wt{caygkoeo z ~  sojZRvzn y ubfnp y|s  jY]ltbXo  z y mw_^uz iwpmiUjuykWke_oqvwkqzakwtv w lyb[x v ~ |tn vbx|ipslpgm}ugmsfSKSbpvmorYIeqfcVeh;YjvobWI bitzjVoqfbgecllgyr{qrmdr }y   | }es n\z ficg uulmyv vz ~ a^igijo[i t j\} m| j[cm }il }Zo yjrjtwdTcJavXQl quct| t `q|l n  ~ { o|\ei]MRPMV`jwpgZ``at{ {prxfbgstZk ~ xh]csjdv{ sp{vy msmmd[x oi{ t |  n |lp  slpekqu {}gab` {u yenxhOOw y xsrh`fPLrw^Papc bu } y} vs z{u{l cilmbal^>GCKgfhx`XaAfwn|x o xsZlruvdrzwvo  | ek zgb naZ`a_bfcckowqs _YpjVfshhk^f w{{zsmZ]jngdknj_su_qnt{u~x~j {kBPnq\_su |r s v{} yl {}o{ xs[e  nrypu}lph`ulro^s v^hx |mnZOPTuy`KTnh]ts^N\sfHlpf\pjdclf[ oe@j} {yrw or`romt| {x\rw z     ~w o chov}yvv z  tx ]k bZUnpo mk } ~jn   }{ ozvuq   u~  kx  u lxzv sg|xgz c ~ m]{vksiy | {s   m wfd z   ~r wsnqzWcrk pRZ}sp~^qphzdYvpbaWcn WRdoklyvscpkOQcpmz  qqotxy Xahovsmn{ ha pwXm tas{ o  |j  y kep    r to } lrgqxmsy {_p~hCr | k[ig[oY_}kuwh\Nbnwqqmmno x s`jznkw nujd} u~{uzdajVijhwoo} s^fxkt  pjz as { thpngiuvleff\fWbdXi`qz |tx  o~vl|    }|}m cS  nhku~||mukiv |y{!!r wk zuv lx   qhq y sovym y ~bx y zyZ~ z lUbtll o _U\ o nb t xUg p n| v rprym\dyf y{ mnw o thcsw {  uuvzqf{ {piz^mxt]Yflojo {ytyq ~ _iuy |mqtw~x~t  qp x cTc w z xoy txvqt\w hp  { ti qaj |t h]}orce{{ms wtqjg y~j p t |    {vt | hZkrr { glsV n\lq qzyk`sr~u  y ~  zo zukozUOivxas}vjpbs pwtn  mn y  rxcq ~ qv petv loeqp Kbi |jTp~gx `yqrj\eifqsl } ~ ny  r~hUbnq\Hdrt}nxmi|  {vzz s    x^bp jgMVuu`xhf[Uxxr_crZn~re nbg ~ tn]M[_rud u tj  hpwkXRhv  nc~fnwhm r to lmx tysbjjp``~ z hp ww] xnvvjv{|uuon  { wo| dbrknpl| | q { v | h ognz Xgklmq   maY\mo~ tw f Q y z|z z }oj zh_ } ~ nUco[V``]\ZiXLhhZ`TWIp pZ\cw d]usly pn { yjxg<^ e\syk ~q h{   q X]^tg|{zi_n }wim sk wuvxssz{qpo mwp w yyz ]l x|{ ~ mku pejv sii } ug { ~wv } nlT^| mjy{mi gv ~ {itqfUwymqfeoutVjyfgpoqu{vpzy | qns n a_ t qs~~ { s lupt kTtxt lm j {qy txxjggqe A[ijkme~  xvrtx eZhyfrre  }{l wv yxrz trnt maXdI\uh_Vp tlgt u sm j|  w n t{y  ~ { | { | {w {{ vnvspm^rrcv[j l voRfwm]Z\SU[VM_d mV v ~ne wzz|whWx vka`} ]fqzzfdtsex gu mq|r { vooukszmes x tyvus y lr v {rtz {vfk}{[frvsYeql ~ z bm  {  }t |xrzsh } r w quqm| }q{ wYdstjElwmZuoi z de o~ tlbdTRbe z w_o z `h ~ |yix ud v nfp{g`gm|{ s wz}x~ }w|rwsizwgwx  m { rqjgospli^lrt bPQUjutjs iriru y qd y r~rx   yr q!hWxswz ~}mfl~ { t y umx}y~  x _`rbVjwofu lx}~ xgipf\`_XZdC^jj}pUx uxw`lzu} geetumvtWdjkws  ~ { sl`kVltlhwe] rkdgjki\bovuzm r  ta[q   y s~} qq qdmt}fe| qmgmxvyqp   pv|  u ~ t weoqe | }g o kVRW hwyxvqohmrSnkivim~ w^ uh Xbt~ bUq qirgfy{py  xfcfon{ u_c`kqx {u } | |n`pslsfpl_q _ y v r gd y zqb }uxv~ vd|yrno }mgv kq |xz q}  y { pqt}  kp ~ w ~ mssw  { ~^n l   k  r  i ~tlovw|zu o } zadyvnTirfZYafQM_ch _R q{z vu axlqnjkl shsy ~ ~   eUPTs c]yz{ w hysmfs{ m z  umwX\xz {\YckyjO` s_nun[kxr^J^pzn]|lv }u| qhr  v{{nvmbfr | v | fH_  q pgj xpyqfskpeSgxlw wl s^loeostrmqltln zrrzummkmn\Nmz~  ue_\W_YWtok Di mhpw ul { ja ~ ds } f]b]_\X k ^O j k qx`XE lsac[} yt qqokl z y{  lBk n`vw`wjdmpieeSTRx j{|~   o }   rjp^ |   r  v ctwrr uu v M_vpogovrjmb^rx bZ ~ | ijjdp q ms [d vltthg[\[\Jcvpw b r wp }Vfw }  ~   qkj]\ktl Zrv{  v fv ot{ h {|  { bvw v  w u m ^H^lnrx]}  }ocpz ]]a jPQUHXdztr r}uvzswx ovtc n[p| ld h z {lzvsf`b{ag~dgnpmdooqpto z sgtjmefehx}zjhkmrqZjxx|pkequ  ]q}vhc`c` xlZ[\d@^ t}qYjp| g qm{  | qee z tXmhp_f~{z z {  {{o u {{zv}vyxupnYW]sn`]x yjq~w Uevsmos bjoe[UXptg |anzmivpfl_Nwskvtrip tw  ~ i v ]} }g~ uiqu  } y qym { d }qjmm | zs^oul\vohl~sz~ }o wifxs  ~ywy kV^YLd ~a vnqnjov  xr p | w onxdgRWdiaH^pliZkbjTS\Q^jaVyreru ZFm zre^ ~  |x ~ rnwk~zjVf txsdevnLi oYguqdUZtzu {Zf wo | Shtn{nYz mw  ps }{ tymmpoutcx {wg  r s ss uh ygWhda`gmkYhelw eh~kUpo sZNN[]^WM[wucb v x  uh | } z zrn  vn  } n\ y ios l`qsb u r ct XCYLOOKnpxsr{kx~z P[aUPXBO]d}v We ]YbWrxYUkY_dZ^ } rp{ ^PW z d]nkUYP\b_vv~jqi]pd]u { qruz jq q Rgf~yjzw ]^uo ~pvl}sddgr vwxka{ `vxrs{a_aadw ~ js ~lz oa zai{tqzl { gl y |kpy\]t } }mtsVf\ z   zjoo|t]y y h r  |snsx ~rzmgf} ~yip h`u hbeai e O`lltg }tZkcddgpshof[tl ~  ljmdnZ]s~ }n u tf t _q gglmuwb]i^c }v  k nir ^_w arnv r Wi o jq{ou~j^j}z tu|| zqnq{ozpW } gT[  sgiWdTiqektjcqhlm } n x z jjUm|  wqx ~ yrm]lr yqiiu|{ zmmdbRb|t  ropvh`fVpM_~  zrn gznj  |}uqm]Xn gb\ingkoW\ wll ibiZQ} }   wk bpS_nrffhdkbqgW{ x nqnywu {k vb{wPbikghd gz t } s]i{hioR[eaUai pef^a^hjnuZ^rre]md_ y n| vsxich { {twtz pfpm ydvykrq zbq s dkjjpruuyv  h ~ ux pwth } otsjavvvo z jWltdttjrj{do    pq ~ }utUqsyv ynhY\bd \Y^Xb p p x vpj}yv{}tmttkb | ^\Vj{ } vxjYjBOqaSH^gAKMhh bimkluc`ZMru }z so  |~tkqkvtvw ol~x { o j {bv |t w _ |j qawkt cj|  eu  dr} |wu{ | rp zlt z u fboxm  x t   e kq ~  a mquhks y ovad xrne { rlzkxuu ooym ys m`ls |b`^pgcgQezY]lp|xqnvqxv sqong yd{x|kir dn %  x v urvqmckZswXotnk yZ_fpifp| }x{mh yl  ~`qmmR]hjkdoitrylcgl\XN,^sbsc_l]_e`uuwvc`jmx krqer rbluWH[r|cgtpYKZls_vu_ky{ju { hcnbb@w sbf |sj zyr ~ YXdcXWS\mZo w [q~mt  |v du sx |nwi } wrymn jG x~vkc|ebg|{ xly lt y} ~ geiv ~qgYunc qg v` swd^q uek]miw}si v r h oQKbhjyr`tv znt }~}vzsz{hdnhiskxs xpr _M]^`w rk { xU t w g|s\jrf]Wnp  | modXgn]x o^nv ]d}whg v v z l`Qp z o pc }wy~moesyw  ~ nqe^ w w fz }qgVaZjxv| q]eduvw gtyzea x } r v ~ u} mzdtd^qfcb\R_ gNH\ld v pdr]m { ga{ f u nXanhYnbaIava\RU`N]7^eZNR`ozt^Wcu r Zwug zhw r] xdjijhC\sq {s z q j{x u o jTjwxz kr ~ngs  m zlepju~ }vgkvtrpg } wq^IQU k iUIL|oewlsqdplLpucop[fnsry  y}~ `l tt}]Hdspylo }h ~ nlf {}cZ y sv y  qn } i m  |jca{ t pz mnjcimmpsg]Iznn { qx}ztVarw ~}  }syl | q { zpgz~vsrrmQ_udar}     t kuppQ\ s y{si  o ok |z{ |swwnqmmdhx ~ rv  {r`ty } |r]Z ys|qa z }dnX\knxu n} xuW@a`Xk cesvv tihaZvuh egu wtdZx}tuz~n ~ ]m ~ |]klg[fl rffYWX`gy n`psnh x jZtn { { } snek } | nktw  w xpjsfc{qne^gXa[HTUMOTnxvyv~ tvmqz }yhuy wyz_YfpXa uh\ q t a x { { y rpzrz~{}pl ~  i wvyaz{t bep~}tiXP_jmku~vvkj~s}ut|yxw{{kYkr[`N] p wbs Xk n m pf z n nW l w" {{ulog l _Ahs{}utsy|y}}{ininfl xgdwts ahhr}qtz pTsy { jpXjxi{smw tcrNYg}vvz|nflyrxqu z ~ lvv}m\UwxTx v`ccy d qyrij{{tp  lw  xvwlw   t nugfet |p q q  |x|!f p | cn }   ~  z   ye wV_a| zvtYOW_nhkal}t{~uxlcY | o sp  kqrujsz  {r{yh|wpap{ q  m r u ejl qYZf}~ | }h7`sfznjsbfif~ }jnvv w eg]KWk x ~s|k_ u v]r!~n v  }gl } |sbBtrxxs`dsj`pbeuyadu xriW v ^n}\o~qkvrekZgs ku uq { ^p tmleigFkyvc`|wc\ { ry_r kxtrwrehvnjYt | usr sy t u zx ifr^tt^muZu~t` [ljp| wrzqhZg]prsmzx|tz ~upj UW\YjgZ`eWn kkbcdocattOjq | tfy  iZo{tnvr  w^cnl~ tfui~~~vq | { { y i  ueqvf\my qsuyv r h| }{   dk f`yt   rqYi }xmh {vm vp xqm{kvz |t vhUs}lnmugmxn |{t z znrhNPo hXqn||q }dorWS^`hrn\bqnp z | w ar {lkeich q ?U` f f h w~hXdv x k t | h y  | h j^]b^CXc``ho~~vs  u} | ~ u_ zzhVvyjtf y fc]PDkw uq`js| mcq reywzmZ`aw t ^H? q  t }  h | |m y | gkfax ppgu{kSYW[m[Ldrhgpm`p}osgf`t nKDrs_ {q{{vpom {g u tZNKfm swskgryu xq] x|s \opy~} saevhjdmuk^\_qh x w nit ~  w }v}vPb lSOWaj  y}sm | ~ ~ cg svxgTmhaq[` t lkgq|  { vfkx ts  ~ dutznis X`n^oysmaT  u t { w f  y u`OfXRbY[_e so^cfd ~q!wy  zv wu|n } s{ ~xm | nvwwv mfkfjyajlnf x mRghVhgcbZVENjporukyycw~zhtydqyd {ykmjef x p ij }  }{ }{ p vs yy z | ~ jho |\gyp k zw l m nqm ~   j_[tqpgrul{smk^v zzvtz }qe z}~   qedYgl\hnmoj ~ z}m\k y u \]btw{ptd r u{    ~[gglnfjknl{sT t } {smmfjow}{|s ~ ut y ~uz Zg jlw~pyujI rtrm v Xdn\y hp| pj |ips trvqsvq\ogpr ~ iefZjmxm\Xe`;\rqdmnjx~ yo ~o vi ~ } ^gqrt ~}is ygYnkessrSi z olkfkf^[Wl}jlo}snt~flqa`^v y ^St z UMKjdrvQP]_mmgTr | y qgx ~{ z|nhn|~~stuqpb^brx mxmslx |{ rw("s m v }[|~ z | h ihlyr }q t eVce_a]Wm t^o{pYgw {nrs{ t } zGu rqaV z tk | gy ~svzww |Q |bw`lyvfjiVGBMV[ t poZmu tqp   N o  hi  kWw~qozNRy|h[rjh w }  z {`p`exrujww mfhi| ickTj |pS^ky  q p~} v| s {wiTG\\pnoajtuotxz |mV^dr ~ c s g|~n~_`uq Vcvyro| ]~ s ]^T^XW`aw{sqx~ xbU_nm`dpZanux z}uiupxQ`mpvozodW^wto{ cedZPcqo^Yhnd_he]m p fzvuv } { z Tavxqclmstls no |  {xn]w qei rkk_bf z{~w k_]q mv}x sxt|qn       k sj| mpb s{hozpzvrv}r QXkf[mjV t vhz{xia { viay|wx }jVq{q_Xx{up_} y q yji  x "#|x x p{   u y y   rYGr  bm}| my}v xyhZl uly~xZ m^a^dmeiz z wuPThpsrj`} XKrlazpbcccacY_j[ } t j`Yelr xsspouwnzojk\coqXfclop} r[_~~qwnjpe_Q` r t t oa^Yk{ sn|l zxRqvg `^]O_[[hqy y o| o u  tek`amWf x n ~ xru}  v hvz mWa^bhf`V\v  q    z r Xn m]tthvjT~| xu qt~ gyzp}y s{_ZjYWSZ ss`jk j{tbx knxi ukkz } zxwdoum`q osuq } | { mi v ijv x v y l}}e | pb | | ~gqtmey~pw~sd rx|hsn  } v n ~ Zpvohnux{ { o_wqj |jvfpn{   n j l `Z_XUYSUhWfy | qt t   z} d\vms z\u  ~ } srjft ~ tla   {t |lZfedq { {k_lk~px } u w wndvtw uf  z x w{zf zpjsfq|yl { pQmrk}lfgty     y |~ qx  zck tv }  nY | |pxyKn ahuhhz  } ox mq ~ b y rk^pmuig z ~{hf}Wj | |q} w t   qa|v_ o{o{rWgwjm^`twlrbv |qcqkdy!]n | troiik^SV{zn`pzYUdvzdnrmcYq zb\swhe_ xk c_n n} ~ pVg so { ldWlp]wwox sy~ vjhks|sjd| ue\etvt}z||  {__s k_dnr ~j t  xyiiVeZZ{y ~ont y ~tt`Zjmjqk[hy z_n  s ~xykr   mv~djx  Hkxer ktn h t| }  Zx ps| r v}fW`cXZ w ~ dizQg}_ p uzoers{u Lvnh zu\Su xo _e nf^ZUr ylrnuTTgpoSYjgtton|ofdd { ts | `j{ {fil| ~l`_puini   |tm r gg  ~wwmislQUTl ~ Zlr~ {qhf xq`a } | |   } sW w u s z |qv{y{szw `_q w jgulmgf  { lpfYifJ_qx xw}tgznl} sqj k bl t   cgg^`WNhqgfhs }`juz l\Vkk`cbiwriv tnljn t ip}q ^h qlcke`v} ~jOVu{|rzy ~lvyuqikmdyslv jvuios z ufrt _p vsz  ccvvmlucis \\nor\Pm|shqt~ |hXhxtgf ~ }lnq dh| |fbj`hns p~ s wm`s|  oy ~ m\`szt~uz~x |zqukTWiabx |u]#  vr p\Qcxsl{ |diqw y a|('wdsi | tgujhn_x   ~xpmuyv wyxnjc_os_nimjj } w bt {| v { es|x w [acTP_L_dDkokp {jz | fqv`k  xm| y  ~y|xqry s\i^`de`[`owlsootq   t cyq suc@[jgal { n|}u }y|^bpkibh kqabmgZjy`Zk ^eRFQds| {qXitkObyw s~wzp|}{jivcZw vuo w foxh z pdwz | y } x cowtnrvso | g`u   {z{w{n z ak { Ug| | y wdxcow j[eeemY|t[^WqorsvZ^bY` u rkzrjwim kiko~uu{d\wis y KY^Xbg ^igfdv }tZgvs e o o d[LNP<PVRcc\ix xs|  uq{et }v|zmahdYqljq[Ipslg{qzwj   { {vYtun uhcqx~ nl|xeoiz gwxm}ybFOu{a`lp{xzee ~  tu ~ Utt}rk~ {wrjv lt | ^t { rfnx| xuqmtwism vrlvg\yUyy {k zt[p~ ~}jjrni    fk~$i vtuy  nZ u { lt  r rd { $ |x ~ r {v y jWa_pscPUo^syd ueIE\aRke_ghuelw{ y { mnt obd{fenr  stxzqzkjrdP]v fizrce^Zpy|r ugq bVslgkaurw lp  w{ q } | h{ qt ko~yvq}sv Ui h[h~  uj] v Kulo {t^~{iu{z~sndeclnF]mHFU_kW\ry~Jy z nx{|xqokprx ci rm UQATdZG`if xbYcr{`b v orq z  ss q{tmnoqaZKczuia\js |w {jl !lk   {k } m `N_vvR] uvw w ~ocxzphdaY]d_]bgez xopy  }xv~~rw ogfmjgqmuldw u{ uq kuwmlxm{ q wp k z pfq  w ijpmgUPr{wqjs souwo`] tnd^fiQ>[c_^W[eVZ o l]n}vh~phpj z | x mi}~j   piz  q } qmwv dx} tf_l^fRROPSOMPmklQa m o bh~{ x  xt u z ~\ds y ofltq`v uoj{qjnzq^Zz   tqccnlms f x u\[^aVb^^bXbth\q zxeP^j v~ ucS~m~wz}y~ z  }su yaSWNZ ~ p^z vs{\K^pf]opm`x ~ n }Tc} o`fw t}|agytojf y  y wmushry sqss ~r   sk | u ^x v~} ~ { ~\oigwworU[far k | `} ~ bh  v  ~aw tZi |dhymy~ivkfn{vz~~z tyuummux evz tuesqpebq tvx mRc |wrt   v}mm | ejjojdaqxmq\aikdq ecrju n [bqn ~  jijt`o w v{ssw dRbz jjashelb { } qnkyqgln } xlmpwooiu^Zagb}{nxn_t mwXl | ^hnq~} ~ f}^lvmitnrgW z pgspq{xtq { [  ~ rzuo}{vffoz z gp yQ_ZR^deqq p i z  u TOXRCQONXYe t [ajcf m tdpvx}| js~rks| wu v f| wvu jXu {uw uiy}vl z su hl`vip  r rj r} sr  s  iO] pdor|tw]js|]d {z \q$ wn|govuwtvrngfwzgdo |  { rouyolk nh  {} xdlTmkelccjrhdWjcooc | z brx~hh o[k w  ^W]dRr } }xvs iFs}xwjx fmzubqunmeqz j| jtqcpsw|fpp  se]tgtyn{mVWnn ]t p mlgz lmuts ~ q y zs i x{hnzxwy{q  ~ dn "qxoikd nimu|}q rg{wl {obyru nx zlx wpzypSZoptY[ety mx  y x tjy[e}{ {gXessrkwp`tmSk px wt nxx  x{}tf gm txXuo] m gl  }lVJ m fg y ~ lgm{TRste\bc KYt qVjkg  rkisba{qa| g| }{t zpuplvpull`XGV uxo f^kzyvr zRMiqp Y_{kcf}v^jxfYbvwRI zv xu t fr}ysksk\djdmy dimrks#t y }w  tw znsplV^ip wn y oeot]szm ~ | t{ }y ipwo sqXeWNIbce|onwwo_[z   | q|  mmk ektd_q }eNXfde[[jZas fZi~zsu_fb xxt}xis{ x]| sww | yhovpjb^Vio`SN o oe m k t qg`VYa}  zXSQ`KQekihjjkg_lrems ~  { x{ vJXvgfezx|x~pYP|  yrfo }u| v  wjcp km_deSb{fYf gP\e]ro]Lm v huvqoux y~ kw | vvu|nl[\x kecvw zq gr rz~kYE] o ` qNTcUEgpkknvu} u ~ wp{|sidXprdi\eeS[`v|hlpw|mm~ zxrpu\M^izn lcqw  b vepon xlp  pXYsoi} dt~ y _irnt~ux m {  w qvkyztutqu~s wrv  ~j`fu lbgowokicS^ r Xb { oqs chtgokdaqxpupuci r q b`^`TS`cjZ`bgep }amv o{r z r {   p vl~j|zq nuytptumZ` }uqc z yrwysrn } uom`apqeeoxqt y v ps |{y t vd]t | foskudYhlwe o} xnw r~cX~qq { zv|zowWp~qz ~ sw p }p | |  wp`hrlwkk z ol ~ v |ut } tjw  x ~ { npuw yt zoq{ ~ | ~curysue {tv  xxl^pxls{|] ~|maraWy } `s}bmp fp ^u zm  v  [d q x v  ~ fo{w[gzw  LQmo |spx { {{  yr y sl | sk^tiRRx ~ vp weMTAY[dkeo|hd] p ksopod mzx u p zfl{{t}v z ~ qh } }   x j }fKnlmdGmz rev t vxsvrZ{gli_gxrv ]lg x r id }vuup xn _c voZpqvzq yvyuvwnb }sf dwz ||zfpwmmr{ [[ wvo}|lrvqz}so^s {q ndwojho xUYZegprku{sot|ngugmTX\dmxpaszgow   pdaLh  u |   rotku   ugei~ {m{ }  }pl~kt xubThtq\ n }}fas |iKKc\_kvzds~ |yx^i wgkvZb t ~ z z]Tqq_c]lmkft mrstvy { ~sl uht  s p x w nu lQFbnfP[t ph ifvulv z  gL | rzx z ou| }z kww n |qc\^P^iQTaatv frywx ~ d^fnsdnfWvyXfhZwqjk  z|}ymy suykroq|thllaD?\[^   ttzupf_pth|  r jfZZ wl\Vn vfl un u mh}vwfUX z z z| w "s oq  wxt ix ~w UknVbXglgXJbsimtrrf_^r ocZruut y zo]fn   xv yt~ p s rx rWk ~j  ~gmgown\q ~ ~ T]~tm  |y   mU ~}x } zr|m`_jxtlanondg rXUw v og }jrrd  qizsd w x qgjmgg` ssg x| fg  { ~eY n[BCWjVZ`fb o lr p ~ zfaiiWcW^d[I\\qnw | }i|netsitr | tp^uoYkdr ~ uyr qvpvq_Shecfr  fTW\hk]OVees { d zriacm}{ea_~t~ qifsgr uuyw d[ceYYar|okx^jpm{fueosx ~ w s |tsjp } ~ f\as{ ajhy u { vQdmJUlwms zoisfnkiSir[jwt |glv w dkq re l q qegcfeqcl v qq wZl  { peaUo~zsfvxr fnwtu { x v^WponeQ z  { smnd`jdcV^okp{s{rprz `bk{wzsx Sb wxlgj v iS`i { Or}yizmkcr~YEJB^hcwwm|{mvxlfyeck^ko~ oku ttz p y| [g wowr  wqnnme w uw  |    { dp{  ~ ~q vn d`thc[y x |{mw { _rv v{yi]s idl{}|}dWdt}hz bZ|"cf_bmkgJUVIULruq yjzuKMkzr v mz uaf | o} [kwk MEUXcXx h_mrt   wiyz]hZQigZ w } p ygU^v z tn {p^h X noxrrrl[[y |  ~ve|}jvq}q{ q  o_lfctzbgs^Usnnk_o dr et yVs } | ly}k rli| l w ~ sw\zs\eVe y v w c  }uqqvpOYqlWllsvk zw{{ iOo x fU| | `pwk |}}wwuht wialKO u |y {~u w yoZyfxxihxwskz! q pgs u    y{vl z mroms~r\m ls | vmn ~ kIi v v Zjyzrahqzfz}v  {V[bWarforedWg vmdrtmruieg`gRhxl ]l iXr|~lgxiy |fkwqw fo  z c w WRu~f| ~rz vpyeTq ybger`Mcp  ~w  } rxs o b] zl Yarn VZhpd xzi\| y_k q_ { |r~kh zoM z t~vhYrjnnh{qw z phxsakoua`Z<LOLETSbZmues   z } qkn`qo` p  | ctcme | zusrcargff]go} |u |j~ r db}jUltuyx|spncevuZMhlrp_{hffv  }jWg z i[vzqyl }  sc[ wjfc sX~vpxsq wfjrt~dz|d~l x qlX ~ n |x  uiu y{ su }yz  xW`k  |zz }\\pUh  |i| sxgmnki~ u u uh sn  sOr | zz| r   utnnngz[DegTTz~t| ys  x } wfqsnbgpkiPorasxgr y h`u^N[}i s v[^ m jpna   ~ct w nb`ckn o fnch_eoegq]rqpzm\v x ztx nmnp { xyh#$w ~  z` q[e  ~ khkj{ q jeQe { egbjpebj u [^b]^VvwjYwh[`]Zaks ~ r _cfw w hmzqls z XSgg t g\]mwpkbb} wpefvol { zq uw } o]hI\vv  xps w| epwvs[u qe  v oo |m} s|y vmptgu}eaimmsfZm v Shymo | yzzmisi x j^} tvXe | yghwsr { t z wwe{~w pnv{ngV nsrbd  km zx | tee y fmnv\g tfqil v |jq z rmpa ~ kbr\cjqrdpdb q_eaV kd |rXh} _agmqWa`VaSUkek | lt t| |krZX tmkxpnupuzom[EMip_JNJdhX v ]Zs |u y o  }~y y  |  } g nsp vg rm y dAmw h { kzt^u qn w rs ~ ~wbb{ ux q ~ z ]l {  dyk q |lslvdVojcsuoy t\z xnvpZsncLihn| o_{ ~ pkykpz wpvyrbaw  ~ m[j q[OPEIRWksTUh~ rvfktd_uwa^vrtWziWLd` " jb`z rx x{[yuu  ~pzvustrr}qjfgvzjmv [go{ mew { tI\fKAO^cYBNS]ess} wmusydTdiVo  mv ~  ~hMgop}xnt j ~lj t}| gw}x{ y vmr sm   ~ v[eqtp`npcwud[yl}osr~  sshSXTVrt[dlkqgs ~ xt  ln sj }gRYu~YK j fhqe_[yxmqr\r| eSm { zh]luKf wh`fnm`Xf ~ynvw wclp  vl qr_SJI m gZGKU_]cOcvqxu imc\s u[r}gsommyxhOcpqoonfO\YJQPcpn v uj { } inv zcw!x tlvz  x}t x v zl~ r Vrtoqqqbckzx |ks`qw kk`p  j x{ i skq z zho| {Zz ziszzm`^ p  wrqe\} tphmo z   ~il}Nc xUuwh|pvacagXU`hj]PdT[xnqrto ~ u rlqayz  pdokt x s u| yuhG[ ~ yUNy zn } ~hzmk uwtt z uwiZ|r_dqqofYEixr}r zs n trn {{ v g}T q p^b{~ u uprsi |  nz rbfv kj{awz~la{n yrUjf se{uUnn r t ^l qv m v t yse[gNfdr qup r g tz pti } | {  znhx{ r  `Zyrhaexurt sw  {htxq | } m y y ub }  {|! yl q wsywikn zy j n  tsoltm} pu{wb^ z  ome } |pu rr~wurjlpridaf u bqx lqg]V\m`nyxwdusi| q}} v~ r  q{ }qr {q kqlm{xkpy \guiass x | t x nrkw\qy{ qnjo y x mkrgq wu ~ pkp p p \koht~Y]l_fhP[z~bqsjm~ zvs~t\ZaX_ie zvw knl~ifcg so s [X q fdge h XflhXqh]m\gt l}ym s taf ^u } emr ~  nc yy} xzsubdu s { w  | x$ ylorww~szyurxnmguw~~jykx z zk     ghg`{mk[LcpjjqaJVll u   wkgcgicdk}w  s l hcRtz {i v xk [jrZRsx_gr~ ^\jjYgo[impaWw{ ~ ^lo | r x} `Yekmp y xvy~mp |v pYgvfds fgki ~ ]TVpy} wv  z guvr v {{ }`^{ mp k_cpPxyr   Yh~u{qiu ~|oo{ntpel vw{n y jn r ~v | pv k } { n^p s_X^o paM_hs{tpu| s`vjy ~lNV`H_ y | chw|{  dDe]] rzz gcnvljshjpxv_ ~wsr|{ | n vz  z zt  }i}  y v r~vr  xyzqn }rXhwmgWe~qjisp bixf xfey } \Ne\c { | m | pa| s i Tf    t av  } {stscaujXjlrr saRO f cmrt |hv }vwikdk y hUanhVt ggq cgt  l v } r p{y~mo w v a^aqocn } wkx bup vz  | z{yj}wn}v vk{[m smt }qUj |t{ s x { nlZbs mzvqW klt {{z  re rot x_  w |ieYk |w{ }ncp lka\^ z}y  ~eqpy ~_knnthvrgkoh]f r{ q ]R r k ]x| w syrxrosZgcbircx }_cgvnxj{ jt ~dd} ~ ia xh z }w|  `q~| | ~  }m ni ssf`Uyqydu mh{jL[xqsq|vq m_a}|qp  | ytlojZjp w t sljuzppvryz } jxv{ipyrh u_j]u  qrxdjp v klp pi^j_aqt  b}pm v u t hl ~ v| |p k[nmauafrdc[gj`ejr|qes ne gX^onpv k }ox  |   {  hhZUQSbaHfqhkvzts z qsu n p t xuc_v } lfvx ~ o x ss| zrw_ veo { ~unyzw t | s`qw krlhkmmhp~hhv | ihs]RUv~qsk~ y| ysNnzsxzuz ~ptvrlgyynjp{~cer}d\vfs ||{ } ~nv qm ikqav  | ~ sltgd[`Qq kk y ygYahlW] wmj TU~lYbiJVr }Zhaqak {rtz hkb]`Zmffcbzfoquvow y l\{{khfah| yu u ~ sy z  w q~pnYuwz~{rktm~lx    {  uzx~tw  r\y prmpkslhut  {m  nmxckbJ#!ku { s Voz r jr }x} vuylfhgnh ~ `Ri |icJw q v" z} epp\}{@S^UXdt`S`jXm hy}~a^j~h{|swfqqyrjlt |cb s w s }ztvppt}~of } pwu w  {{ &  }o {mg{v}  {sefrbivw | wp %cygaZSVmpHhz jp t  dj zffvvqv{ rq| ohqaTVu zr jf`fsmg | mo ly hq  j zvpu v yydq l m s qffru {v nq yjjk`jhUdhe_r m_}ld q r p | jlks^VZpvjko   }e{nhihnyrs wZhls{    {vg{dNn~zh  n {{  vz}~x~ i} iqvnviZq{jrz f pixoYeRQpzsj| v^uww } gg} o a~ x LOx    w _y|z np pgm  pcebbd | xiZFzip } ou{zz | rc{v |w[m kj yjl}w}   t u  tuf|xks n u v kuep z qjkvy }]g m V[ccmV`nqurrvp~ rt uc y {abtgX\jkZQms dukYhpzsm~urj{v{jVe tNYkdha]q|tgbuqsmLdqsm]| r{^o{tty  eUr punaYqom z t z]t~  naSamux~tcsz  kt w r} {} {s~ y   rz ~lqz` mkFQ^RftgLIP^o]HUOdXb|x o rb |ubonuzj^q{ }z~ rczpaQXps ]VKhrq p{ n ojy ~~{gpr]|vUnkm pglQ@Lci\d^W gfa^}xlnsgwsgzrzz~qdrjdSU][W n n hk`qvsjr wbnrZ`^i`WhRTns y_tw`ku| kaotmgcfcWJYUZx [eudlgilfdhuujo xslx yk]lflwnrdc tx}yQZ_[VUZ`Lfh][clieupkjacet tdWl | mh| ci | hgj{r{r_eclezvmoQp | himq ~  |zsz kt~ } issrki z x \nq}icwsibh ~ oqpq  xo\kyuqnnlfZkkHj|vw lwomqovmync`mviaaijQSy djtukfiiioeibivqm`oqn{zgivtom t _gyaZslgy }rbknnXVqztk^Xfb   t | ffrvinWguy  v  zt z | no lmq|}xzt`s { oocSk xy{ytvz { } ot d  styt m_msa[gkWh} utpw }~qflqttlu}xUqv{x~~cw{m zt| y maUg~sr{ }Y o } pv { o ~ r qnc}|h} w   ~usds[E[|}rgEgwfWQlosx~ x o w q tp inzqdvym v itrz  ]bnv{| }u }ri u s xteeZ_agqywpkiOjg[hi mik[` { } nV| yok zlsw  } o_ { ww osf_c~ y{ _f\kq n h|~[ix kq rx g`ntkkhat{twwz }x nu laYo x sheqwosmg|rtzxtz  mn x wm|eiYS^kdp z } z z  }  jk s rrvlv|}imvtituo s f  lpj pl v~ y ~ zkx ~ xn} ~shZgzlm `epkpw} nw ~ | sjNmup wW|s{qumj|lpv~u~zmy wqx dp  s{ } wryqgy gshowrqu\Smt_PrjWdkcwsXc{} mVyuL<l{}uw se{~z vs u |z z pk wi_gr dnei |osm | v_ici|qmv egz__p{whz ljYonci`iuwtYivstjj { ~~ \h q]WZ]l][juvyz~ow}_j vhr |caolZLbletvgkmyzh~w t`m  virvOg}swr }pmu }q L]jjlYxtYlzs{ f\ z   uhxkirgl Nn|jvuxjp ~  r} }]m}|{ aUicI^ZTcc\ix}vs  rkkX`n [ qu l t }o e_ eot `ibq ijz sek  }kW u v fj`qkRv { fhl_vr_`md]rhdUVr vj m[dd_jh jUWqk\i uwip~ nrsa}z]olxg`zfJR[ew r_Z m p ed | zmv| w qTz z ip   qyvhbtkp ilme`c^hca{vg`u p wno ys !s} |y {uqpkppoix u ~dZbj _[ieg }ej|qs v z ~ } to s nnox hv }snw tsy u{kl~ecmdhvnl p|   { xxwtfexrha][TYb]L]thg s W\q ^ZWbnnv } jU^onbsirlXsjX`lq | xw ozpi~~fdi ydh w g u o{ki yt ~vrgr{cnzrsqjdqq{m^p un~kluprme} wmeetvirux _\y]antomrr|oqrlblon ulank}}Zexu~jm jr v t ^Ue{yn\T ba  x s f\} | yuu z fh ry v c]okfs w  }cn }yy | ~xMSltrmf~uqhirw|hgfp ~$` ~x xmve_go s]mu _d_Zqcjo}ymjnn fi`^dw lLc]\ y ja tuTjiZyossset  ealnmoaam_E_pbrdjakuxx x^dm nbTnp_utoaRe r zz~ sxq Vc  t Mhr]XQ]]`nzjf]_ y y re} sWrgj }}  ~ i}v{ rrupy|qlti]j ~|} k~ | tY p kabUlqqZUZPPYmqhJp haYeV\\gp~p\zvpy[S[[FGPabhXYQ[^\Sge\bpc\ity k\Ucjale^v zjc xqoz  wmr zzxory{ pvsY } pewxouvtw aiuuj|r[h\Zi\MVv e^Y^optnrghf]cqs | s^txzz_eitjhccm]su {rpxoujTX\jTQjz st r \t }w  wj xegWiifl[eosx kU no p pqyrm{ |wu|qiqu|v{ v |wr q {ucm }x t gsmb ~oktlU u x }|!!tk wnnbe{e{znHV xa  gIiwwnq ihu|rpsk itz ysra_}  gp{`pu}vxkjowhR`xur |qv sh^bwtmmpfny }|t~w} ~ uWcmhk_^mu_q}moirkr{}yvv {xy  gft lpqp { m^eu z { u p~p w {gGL]^Su| rl ~ g ~w}| }xvliyv _t~v z ^lqfq Vp{iovktmpund {sy ysOs n|h }|  n}} bustolcqu^xy qwlY[er t rnd v m t{py |t tchp xyltjbjq_GIaqvgR v r r dz | c~ { gzza~ mlxjk xz q othoX[b_[acP[t gUWjr`ax v~qk in iwpk mwkm qp | } rroiUZls p cGgeYc s t gy  y u ru|xkngZm\Yz}go| | {z  tsyn q sv~uu fl n`n hfnm nttt| ~pshaoobmq w whv y cet]ak{tZqlfrupu~ uyszz}d^aw}   sx|vtq xouyohor_dru`m s s tabjYdbbcSc v kQR}tvj |nhs[f{ |pnq~ y  v zjp{tte wt mz kk wek }|zjwxu r| lk ~|ur~s~ rlrzhVjmor r q {j w | {primz   p  je}wvorxv tq[c { y ie  ~ `htzk^h  k `  TYx_Yo { aT y onbp { mdcjdqno slqo{|_e nhek |wtz|w|fc~ {   yqpvlgWX[lWz y tncsrv xr|ta{yfs mcudbbzrfbacTXeU\ lePc[Jmsa zkd ua zty\m  jhty nkYozr phywy~ido ~tp  h  o[g{ mtkw qwhm^ tu z | yqtxrml  qx s  rgkvemtrzslvz~qz }{ovl{zjli^i   z |x wy{|}  p`mgb^IX`qvw hTSZq w mInx jn iogj__kskjrqx gu t pdv fme v ypcSWTjlnm{rt~sjck jaq | zg` tp  tu yqfo spwf axlUXf]Y]dlbqwx{ wg| s~~`Zss ljo jgln {nlpbfojqpg z eq kk{z{nek^o}~   vz  | x xwg_  unUl } ljt|kw u mc |{ynt} ni y uq  { {t    ~~}syvtrp iigcxyk]pgU y wyuo} kMh ~ rl nl y u q b[xlo{mh_ s W tJWx ~r }sh t Xiun_`u|_`itjekdv[br tspnkbqj[JZw ox s}|  z t{PVy {w{ww }klhn |e[iQWwwkv{ q wrrrbYSVpsy~srw~ dmq wmvgp ~}rv~ifrgZu~jm ynql { ~ o| vf[gmXdgn dON]\F`g]f| lwjf~kouxrwzc[rrc y u{abzqmq i |}kvyhyvcoyk]ywv ~k B^tl yo Ti ^`  u qzf }uvrk~yyjXWWakkqhol {p ~ }\`j^tmnkg} |}wpv y _Vi~ jRowt}ix  y ""lx ]u {{| o r ~s o s^cOYpugfhTf rea ss ev ustuv[X`pv kypbw morroxplfkyxaYcl n c\dVJbzoabopvmo  { | o\ap {ccqvtk{qughxvku_jlus`y r _`saie`]_yxyyx }olaio[eei}t^fmdOd{_\n zaq ybTdmdi{ mr  SKEWU] vW^vlid`sry|k xrnv v]h{gj z kln\mqs | i|lS { poy gb y w VOV_e]X|iq~vr yus x\\df\UJgp n hoib ~  eckcgcu }tfqngv~lj  |    |ju~cS^^] y n r l{x{     whs yx|ypvr }pvswdn`gts ndp ahq|wpguz i ^b_~aUl vi ~or { g\\j^hw qq ~wu t j zfj  } ea y qeSS^Uenhi q p x w z {y} ~ tnw fx z}zy~  z}jWgxqs {| esy ixwN_ e  ru ~ i{ ntqcvrtt p xgt  t{ {~ m    | ai { bqx} kh n X}w {{ ztz wyv q~w mw zw zs|xxxyzx~ y~ h_oog} ohmpx~~zvuvxys }t    bFP_sx lBgqm{fbhmc\ni[i w ff}yrro z z } }knk wsk |w{ }sx hcmr { | ml }v yu}  sbk ~} rut\ yr~ znaqotpmrn }wuzjyn|ro~yiastsr p t xkjcSjix vq}  {xd }}unl y z  |z {um |v cRceZdno[pvij } x ~ymu}gg bWzf | | ws{y  v }rnie\Vm sfYnp atx yd t SgvaRLG[aYMIcgQ\ qmmcgLvX i~rorveiVYmv cYl zu a_x nbnvqqk f~jms vhqplbql^Mfwdh|~egn o zb z y ~x z VXx tqqwsvpdq{y\U vil}hr~ss|xorjYVWpw   ~sonelq{zo}`m {vu|ih{mg{ tw {pklrtfqmoZeeSXchgidw}cy ~q~vr kux~ { hk v c u~ lv x r{x qx w  x   l } { h{u c ~ | fel\7CXVVTR^ IOhu xxnqh_[ q bbwuukki\ejotqr } \`e`{ tk} nm y e t p]f thw qn k _nx r z zpw y x| uk|tV_^crabmk|gy }Toy} mk yilmtuoz^m tngcwr]z yr os[Ri xkq|vfuhkxkekV[hv }u{ ~ }r u x oYk { tfi_`SPmq r p~ yshZco[hvnsj wrzz}px sgxx  x qhf xq~y zs tmlp t nld`v q]hpiRl o[lz{XSnvqp gn { nn w~}rspxff [bLUYnx ~  w | npeotuupT_uch~lpxckr  {r Yp s ~ j_t | mmo {  w Ysqrz`er lz z ~ofZhodUnkiiq ~gYpp b ss djj~ dljOXqPY{ rhr w| ~ m yedpfZpdhYhjjo`kct wkiihlzzwwuq~~{yemkzxsodZcc[mt mkx jkhlnnpoxtfZz ob|fWj | ma   ykml[Z vt~}qnut |uf ~nfxm r^t{ unvpop o eWSWPhe\\ukpnu{| x n ~ ~ lrrrkr o iS fugn } ssvn}_wveqw WT_y  }tc{}{}  br~q}trg { m|w] x| |z  }w ~tq  { { x[bye |fbYWw|yeYq y xv pe uxx { }] vnnkx}hvuupb ~v~ }qgq ^_b^Wy ouy   v ~ ykuim rt{ uMruq  |n }wm z \lqaWcpt|wl }    y zg urom}{ ~sfmu~zY_m tmnqy^]xt efozwpoqcdo puw Oja x nrtxhim wtq kP`TUo y oop uokv}s_xmfik]bcWp z _y yojv   sPkorgcnlR\XZdj} jqgfg  |qp z my pr{ v{gkx\_QEk|d}rwzt~     xt| ~sh { wbhyf_ { pum]ivnMg rgaWo~t k m p}}z  ~_nukHe   wjbGQY_T[d}v qdsuuy `^ ~nsv  ~tvxr~ m\ } usztLPahrPcbkmto[[m { {ly  z z~qz p stm|x }  q } i^Tldl rw~r ~ swsqmxudu   km r tzvjt } zxmunh y yy | z v oj{ ~}jsipulrz y ~ nk w d ry do y lzca]u k  r m| ]ivfZ xw v~ebol y gh _BPT^wfhjs[`mim { gw s`fgmuus{xj tl  `Yh^ s oUbtchkeW\b\nr dea[nyjZc j k m ~ `YJS_ZSVOdbRql>bw _bs^Y~udo s|r{ zw\mrog]qn Y  | |x{ hPab^ z ~fkclwu kq y ~ v}u{  xiew^a } yp peh[SlnmXo ktmj~}p o }  cwmt e~   we[p { | ~{q| zc_w  {tpndtuzm  rfpux p`Sih[ocs } uU\cjLJuy w ci vea zv  | z y q[Qiaqplw  yqhai}swvqmmt } | y x hvh|p~| kv  ~w }wv}wwywrdvkg| cvur |uttiw vu kmnhmyvv~gmvo fvrix bp }ch y~t  w ~vmfcYG@ETO`]VZeOe`] pmdmicRbqu zszp vxt]JLq~qmp ul vfRjq {hx to caq[^]rj w w y g y | x z q  qoznm   v ~ }igmg _EL`DY`c{ sybn }v`\ek slvp|spzpo`YUN_SWqX gi~~zbe\\\sspz~qu rjnnbn r{}  ~t }wZ]sr^nydwZgr]^h xwpt  i sujtvqws |yWhop |y | }t bw or ~ xsh~  s]lqy | v  {Wtph\^o[arzz xwr|zz|nkzx_T { | ^rww ynsqkuwtv     tkOa xsat~vtv}ysnylw yj  umv   t| vq y ~ xnydqfgn]\^`tyiocQja_lvnUQin[JLRU@EegVXZsy|kgneft~xhe  Zfl y vttytswuqflkYq |}kiz rqq  nsr|vvw but|tgcu}tzSirolx ~vl wp ~}eXt  r  { vz !"yv   m|s y z elfl   r u xuqdUgssw pb yfXy sgMb tusUv z nakb s | { }t VSx ~u poab x ow qzlz~ v{ ywur q cVS}mg {  doy}iu {v _Qf|jss  np | i]v y k r vYjnz | ti   r {   gZz kipfo l~ }r  | s{ Yj ruw~X_{luje { { dro} uzx omyw |w  ~ ni zveirxgh_^q ^\\ULUWToajdc_[lagijeaLVwiyspltr xrvnVv{  qxv p`iOTgthri {   qix{lslteggs z|ig`QAi |hbeao r aV s tcnod`djv v u   | |cRDJVs  {gm ]Wggl`\sUStW`nrlvZ s Tc vfY\aep | | d h } uhhPj q^ w t  ntvkhwrkl]Vtl x  y f y u~pzywq psVaia z w xsm ~  zR|jxw`~ jk w sXd n cZkou cia`VLeZX]_evy qfk~uts|ri |    tmh\Ustbb} w \m u n{|kvv\R\L>Z_IWNH dev  ~qtzo^Phkifhswrlbj ww~u } {wlsz z kYw kd rnhc| v {szuwuonfnldwvXznhp~|miqzhlpxponddugy} hiqpe znn`o}z~|ntwpukp~{ksvv~u l s|thqz v|wud  ~ } z u  ~y fc ~  {ie {q w^jozmivyp|ggrjdly ~ ~ v hy x~ ~u| lu  rt v g x v{limwrmU]teymq jjmdUQVVLMihhus} | v oj}dY {xcS~} nmu  Wmlg\tz ttpmys^o !x ut{z  wn  | cx"# ms| } h  kbq sox z]^nop zfnour`yuh s      nUaodiuuo[ssvmWe`V\]keCnn^_ejm r Xb wus`jx xj{tkm}uk |g { wjqiZbsfeap { y uxyv{{}SOxwbrmwyit w~  |uy~t_lb_otm] s }}tlgcw~ gj~zh_^nr o{cbgK`genu o u  p xk [zz uw s pu`Z`dRYy |knbn{quu]\iuzs]VwwYX o |tyt|zquz x xwjd_hpmr jx x|z{e   sp   `sw x supc{ {|oxh[jr_fltvzibjmgtx  ~ tvmt gxx_aSYl_bl|bbt | i_^[]^Vcv s { x e zo bm~~ y oOe py~cz ~ eJWnmHXWTVU^[msz PDM`utp{ nfpq_e]d{aoiwhpt  upisbQ7*RTK[Gd mx nkz  n bdeN]dTSu~tmyeYr t [U p am zgvracXz trdkppvw]P]k qx |dhiti^us } gm xy s^f|uuid z } ~ ccbpfafbpcZcchn nfgzyfcdYXXV_rdhlmigkSn|f]^hoqv y v  }VTxvz z{w|vnq_Xej{} wynsynkrx yxz ~nf }   oedkjvtpo fQ=x ts y w li x x {  {i r oglrr|{ up~ o^R`i uy zvw { h %md lowwlx l O p Rb~krskegjl { sw x o`qggu j  qtwxnppzsitssalp rw  bmu r ~w|}ez wTvmw|fq~idgbV p wd_dan s t l{t b r t zs qiqu thh|t v`p{~ws} |neum\^ y vf`t kx }jw  |dm sdKTVHSREI2@Yb`z  l } z {rc} xz qqvgw wist hXs ql ob_  v} osrxtkm n jm~xyt y |vtvfgoyklon^_f\q{iw z v it nx {w | si}{|z| qbr}xfQ\spSbx t ymr be  l Ww   |  ~uktm z afmeb|cbv | bWx  t nl]led ~  h  ~ pnv ~ ]oxjc  elzy{qhrvotkxm~ }e_mcMLWj{wup ~ vmu|} eje{gm|z {turhehgl\\]kwa`snty yqqi\{t^Y cnkkq "%\u~r Xg xeux d]ls_f \`zr[BZk^^bcb\Tp{{ lwy } {  n qt peulw_Ragewmj~  u{{mf {j   z~kW     g{vz`s woefuoS }pkptv|ccjkmJ]wlsifs { |qxwfvznqkaTi vl j`iuus~ sup t SZ | |pj^mz~kly| roxsi^i^_flhSfzuutv bmvtb hYmo`dbbc^ r fgkTlmpv~reunodc""} v  } %iayfPPbfYu y jk  z y  uY}sy{vVT_yzpznsup`Vo  hhsxx lx  {yj ~yq v |z n| izygtz~ w vjw ynlidreRv|VU``cfkegia\KZZV[K`rgofrbIrx Zl}wc~ yk oc{ mk~ rz  |wqv} ~ rn}mwnYYozw} ^ y ~l t' ~\j}pFS[Z\Y`\bdp^a_j ympnqsvt]jrsgj[e|q_l`l|kLfthx{ ~ysnrecQI u t g ^>T^XRX`} ~ \Qo tiks s]rrg ~}q } gVn|q nn^[`XosqfVav w[cagsyo^U@;HJ[sru{sny^df \dq}]c~ ob }[e ~zslgt my} xvyrwo |q`lwkp | vu { lneg v z t zs^ x w}zzv{  da  |~y}w~ow  nq _\lp sk{ }kmhjs|tit jfrb[q eZq ~r v `h x x| kXj}rqj_ntV`dZcupltrlspeq  |  {dR^ hvyre s mt qpw U k^U ssuwili O~s [n   nl } ~ ofof~tljbunoxZkmOd`o{loy}{zv}qn vjwujorkge z {txetz`p|~}k ~ | ]qrwu{  r\l ~ jsseq}ug[zyjq|  tqt{VNxqxo\mXh{uyqv  ofj bRgqN_w~q q |w { r oysqPa   my {  }hs cvkhw tnubfe]txupr xuiyi_  m^Pfzjmkpks|orpyvhgiyvTw ~  z ~t|vx  ou   sx~tvpWsp qupc`q|xfxv~  }  urcs   {^ewlH[roubfGH_S@TdcZgntfrrphUi[jiTmo`dnaV v obhq{wXE_}ran wf`U_]^| m pkp|`dktQYw~uYTcqvlc}|{mrm jcrq_Z[qvi  sv ^ qgjqr~yyy  | w{ { t vpghp_c{qpxyie x trhf xpfk  _g z t`m  rvw y zr pWWxu~dr w`VYbd[Pkypvul]Z]{eq_b]]oqikw ym|zr |m}u {lwofw{vvxvp_rz{ssf^   {jt } x|d psx{yzxv_ z xvlm\blIl qgt   xscvr jli`cecr w  { u ]t}nfkwryhmw~zmo zu }y pUa ~zo s}iv nul` ~ orjphV q y n~ ~x~ yjwgOR n rq~{tdcw  |  ZBQfp n]`woX ln~|u  wDt  kxro qxgl}} wg^h rr{{tvz{t~ ptkspiq } tw } }hxrZii\sryqlu hsmt ~pmxoXk |  { z q} x {usjTdfdoWo}u~ { s^ }n~q}xwb  } ou}w  vv xyp w}y^[ r wy\||{ km v`u bl|y{ troify w vriq ~~ ~~~  | n[ivvt[mxp}qy rz}eu{yz g l` ]{u k ]G^]FCINnv XEi~  tx _hkpq  ~ z Y]mo u n``nmwq { r iaq m|ry  | qmPEU\m saty eWlrdk h ijmx[Wjvsd|qSQqkulnki }u ~ | ~ v z xXf  ua_eqnq ~ |ed y {w zqh x o xumyy{z`^ ~|yzpsluz yv  { p~o y {  zjqw_Ybhtjcy y u z ol{ZO\p^Whrqv UX r ozyzfWv~u}t cv ptrealqmmji{sT\z  u ]_w   o w o yxs nP^KL ~ rqu tq l[zj[pzx  yypefnywywgw a\[9Zaapfmzhgw     sp x  }p jvjj r| jty~o|tx gj | ptxp  qu  kxrcqzzhV{yot{o}x{pe|a  v k y r } wx{|ypr x Xlz{u_q|u } yyw  |go r qOe | tk  s u^j q|  phe[R]Z[a|rs ~ mtf^qssqhi`Yi\Sp vj_I]t Zbgmcizrrp{xfc`omD\helzys } }l {u|hq ~ xt |  }wtm`r^JYfq{s r sbm ~qdquillbeusqwvRZ  w ~ yQaoh u_f n^caXd t z hjm}syvxjbmjxi[gllx | la } nd o ty y `Rc|~ gismoRJ@ q qWkabc~opz sanuVfqv sciponr  v }  yse{ uhZr v}kvyop| |x~} y v s q |y tv siv y f`ncm jp   nXg~}gZki`htxvwt|~ry xm`^ue~  vz y|xz{jnmfhn j_k sfsw {f]e`VcieXq qdTN^d\W^c_IUaoto s NLeb]_r  |  s%$xx  qt    }g|orzv | g|}Y  x}    rly}klm\]py   clz  qky vjM\foc\~unt  {rTPmg`]`Vft ~ {n } |a{ } s tw}t | { sPDMVV`sf]erwum`n }iYdpyw nz`~a[spiv ~Do { g{ov {~! xv| {swt vs { y uXV qp][MRqvyzx {]|| zzp zt t \fll ~sS{w~wxfllts} w |   { zv | {Z~ {uo~ooy vr} {w|{ j\ r x jceb_?cz ebtntz^s } |}sluopllev hY|~pimqsqjnZbmz yZlwl p gq}  } m}  q s^Yzxk_~ gSZakHfxims sp~z pidjih y u { y sz | v_kpy lu m n m itl_Pbmlz r kqu { u{ wt  g\ zsisp]n { nfovfjnav }t }c z  tdYbtpp | { |]Vl tzvqk[gjsd{} z   }   e\vy  |gks jZl_eh`soekikyxk z qf u u w~ pm}  ickxfelpv !d[hnzuphn]v ~q  {~ |  x|vt }c_elrxs |z _Vsy llcs|z{oi oOa | nlq y ok xe[ncb{ unz kdzx p{ sr p Sm|r xz rgw |s{  {o}~wqw us}z is q`bZz {qnnwyj { kfqko o_sup}{i\nqkspseY~sfjiPew suv z }s mn}x WkhRQaov^r|x {swznyhuqtt]lvmljh y ktxy |y{vSi|sHXYWdUb ri^lx cbi\ n~ z smu~j w edx ullgfQPocf} }pgNj{aij ukgywyx  uqmZjqi]\ldq }|mvp^cq[ckf^co wki vm ^h s l~ f^twtcgxpjkujgn\h }oZl %nz ~uhv | R`hc  p} vs{ x {$#qn   ssqq~ kipmq pm t^kov w eah  x qwybUR}k y } d\y|mtzqddcfqp{zmkwvy~ ~ynyzxvpqiz xw}x v m o{ ~s|{rmmmlaRcvr{tlezm`s |lhoeq xo   q  } {w uotxwqqhSVmwhe lf n~  zpouskse}rwmz  qop`CSe^ rpxpcgxz x | { ~ ahui`u s r|  x ]]ccXL_ohllYi oqv ~y  yx|\l{zbQRl{r|b { {phco}y  }zt y mbjti{}icu_b|lty xm s | sYijlx^}sjv n [s lYVPO]\qrw mYhqdjr y Xlumn w blxvuxx}z~k]^ nf]pc^i sz}vioy rm u tsoai|cx}iSz }xci T o v hqogo^Z  sqq~utyy~hb{wvr ~!rkzt agY]faanvulcmnz}uw{sz~ oojvl{zgv|tvat|xw~  }~|r}z{zp  z ^ o   yry{rsnx ~aTdi`]__a:\w olwtxU_{ppv|zpuykb_ lsdirvnboocatyWfw cYZYjlhWy q vkk } m]u vijeh |XtybV_dre`io ig\YWtwimw pfr y ukhyp~x]ouseg{pVHhwq y ynsleodxw wnmv\dn} h` { ny x \diegktehncqspm }p`r  ~wsh[i~rwwqgLP]hzXenl wmjkou { tz p hx tzv  tyy~o^phq^N]^UZ`bw vo| nd vor s v px z   zy ~y} {kmt i ``ju~twtkXnp f w{vz{  zvz loxxmz eZjimn[THYnrqk u|Z r sll  zgo t mihuyniw wfqf v |prsvt [og ~ yx xanvnhnmmqgbf[l[XPQjhr{qzahtfUQA[od[hfahRhvccd`hnbXgnenkkomhjkopk rZ] t_ebSXkq w s | x zhk |f rt `ikPN\ r c q y qxbh  z edlg } ~ tq { mv w cs w mcbdWhrm|  ev as y pmRSSNIU`y ~gyfR^jscuy_krZl]e{ z |jkdsy r R t { lqf w v fqz~ uu t n~ udl]fvx~ y esvbgv `jnib]XqmfYY`gEXiZgpcst u jp {m wvr hsj| ~hVLYkiET\X} x d s ytwmgq u n\\fop|       vqou wdjp ~ uZQQqwz qjjmwZNUz obk|~ymtlthc oXcnro\p pkv| ~ nhgagouuroomqj| y }xs~ugc  d }  vs}x  ya_u }!ptw t wqo`m w\Znfqy}s{ l}wxyzzvdc rx kr  mp tog_egjeXKiqQY xh\hXqnnx]e  ygo} q \gy } zj\rtwxylwy} qjeze|||{{v~{y|v~jt|w} {{ip  ~ ulwyt v rpf]l ls pcp ylfs }sxinokjpmsdk\sykknvq|v zzss | v Vwwto_muutx m UonfhZe r e } rjgw xgkumK`ldjmv yp{|t|q r r{tf^Z\f }st} xv yegq{pyU wuhJOmd oR]iiltow lT||kv~ ~dlw t vfYmjn gQ`_`b lvm v m t qb pbbma[h|vflspmumr|gnzs]}xrt ~_km`w lz     ~~pxr      ~sb` |o~ vozut x   { y ^^i l jnsx [p } { pn[g~{n ulz y |oq ~ { { tu} ~ gr{fYq xRan`bcd y ~z`ktdtu{ }eqc s p|rk y{b`zZ{  l a kdg[MGBBRQPZnl_cpldUgrmiw^r z k| ut  ~pfp|nso vl_gx|w{yii_Wc\crehglq ~ uy kj  pv}iqjlvs { ljumskgwpYooztZjgloi yk\arclw ~Z[Zdp PSYO]UV[^ki[fhbohg_`tq    { ~ pbt }rr z n sm y tbWiblmWN_bhmfspx styvvoY^RYSHpmt{v ~ { |ia    noj| knsx t} |}  ukXervvhi{bq {ri{ ~ w Wa w qwhp x y~ |xqi s  |xoSo~j w n sSZojmu a^rjppiv}s gp qs|ji qlZgu }pzxwfv~ zuvrpitlpgpmskrt }xzoxx z p|}z`ixhl nqu}b[\i zRYdZS6.STLQi~neblfYih[Xr mhgTg| | xv }vgz ~} ||mo } qRhv tw m {lba]qt`~ya`hpW  bvknqryx}liv]t]~ | isvz{ym_``vzmpwtvomq x _p uy ju { |~u arsuomtFf  r k }w r fkz  yd p k_~ehnPt|qp y |Vh mc oOZ|yrncdz |mpfd]r hmzvyoveUmaSZcZ^cq]QMps{ |ywwgRU ska[z u quxo`i~z^oj| } bh { pp}p{r | |opw} z oaZgpgZ`Un yp~rWS{Tv}}hd|ht~   hpmjgim|}yn qlgY py^e|o {y{lc q  }uu xnhe[Vrvz|~z  ~ ~{} r \ tzW` o| p}qtdSz   yw yg  | z vx{||k    w}ohv {{m|"i~urx}yvjnhm}ge vewvnp}wmcvrtolqn y fS^kp w\hy zzeXU oijjr { oTt {w~ux  " vr| ~kQzuppfz  wxs Zy fm u dtiiw nt{sSo sk z ux{lr\dakp yul[Umvxwqv   rvv|mryRy ymU h|ny d` k u q us zq Muv|edbf~t ysh sn XZPZUQWJGQY\T[Zi s lf^{ h~w g}gzvpp\\h\Giok_yk hvto| nU ~y}{{fk{ v xt     x}x n ~drzg`sj^g]_uo`njs fq uq kklp y x { } ytngfrx ` rycUgZi|uh| wf |xw lpnd Yk { t y p\h u lhhTemu~y _d`~o} y { p{UT v`9X~jZ k kr s w[i l m Zgxufgsvuntytlze} v Xommre`WJXvwjrmrjp z |sql{ |keQd~rqswx  ~ y^i{ lo x w}{szlfslmolcXwtehQ[zwgf[YhWf { sftf{ nw { tr o}poaUiorsvvWZouvs }gv ~ uroqo { ldsjrni[ sgm y [k { i |ttx}xzng o aEkjkpl w~  rfONoqy}iiqxytstos v } wiv{p y }  } em  eSm`ewxmfWhmiMQsnbXxjfs |wv srgqjz    [qq]qd[u q SZcY`t ginv oe xs [j lm |vqyr | { wsw ns| t ib { | jltlt}t~tvx v uqieVekf_jtib\nrcQQNVfAL l h bLBm jcV n x l k zrn |w ]Sm w ^hxy z } gt}wu|mo ttux{ }pf|mp} tuxzobn | _upxv } bncdl{p]Pmnjnk^v ~vyavw }olcTb_atpwuutnot nq|\t tx|_lxvzh } e[p iUriYR`jy oFo m w `T v rfug Un  {q kfmq cl} {an~ pWh{odchZbS]bcwn `~#!n|y t yk^^s~Wf {u   | w am xheou} ^cu smbdo~mh { qz n r s s t {{rhw txrwjwp  e j%w }s_ ~ qs n]ws | wszr  qkgu zmmpiqb~ r ~aXTdW_{w {{x      v  |d{  x ~z j{xvd x Yg uq b{ nUr  v ~ tbocp ~  zu  } |y   vv smfr  yt  y_zpugzynss||skmV { y~yuv{ |zkvsnlhqwch ~ x ~   |}v}wvrnd[i zk w v | s  hq { qox cy x~}sz vb  }q  v }  xx y d xjf |ou[i}tZh pond~ku }s~ s z |vmbWVbologR`sq  vsy qzyw Tl sy { j]dgVOsknfjNe~ | | ggps |w{eup lSpnknw~{ dsqn z vpczu`u~`neqtyvfocwj^{m ny } { }Tl{ ~w| ou    s{uzmkmrSM_gepk{ylv   f  xxu} e[`hj^UYeuo y q pz{ut`aLOUa\H utpaen_b }|u[kqjcm sp y ~ p} fh w q  dttp z mXmZha o pidkoqzt zUUK rkWZtmipPV |kKz }g x|{ {s ~vzgv{znw{ kfho{ go~k x x } vpkV_ { }q tbb  y  v s upZg v ~xxarqetuZaz}  w z    ~ ljruxk } ~ rwmbyptq{trv  j { buw |w  { lj  }pw q etyq^krl | vzq}  qw ~hvuypl  q | qboolp[`vlqkvr zs ~srnQ v nhkmfocn|~n ubYx w Xcw lp  q`Yg zuaqfj\nk {v{ v xeSjgijotpd  d rvmX`}pcdfciiwkh`UVWGkpu~g loqk} tl! tnzm w gn | kkXYmooq^dkq~_dqrgvfUc^x u]ZdffbZL_ueglv } stdy psgwkS| pj_[bh_s x | njsff z | } jj o aWt pzzosg { tzub^ ~|ohg xlsw{wmvltqn~oo   j{lvi~ ryorovrkttmfVl ed|{ i{}kojbxzcwwqjWryk   }  w l_y}{ou poc{ nr{]vgszjw{ukYkkfbi{xbLgk`PRYz w Nl  yiZ upejYIar~}ukx vqwz fp}~uS`z s Yj siq~ u[XTX m bXuuel|u pysbcffT j  xuz x | m ~qkuirsb[YorSbr{gdp]joZkz hecsrf\nxs ||xoo~ o` {y rTl |w{q wg w} {y~{| n nrs uxyu z z gsodYZB@YX]i`x}rqukoq   romsql } {wj{pm yx  ~pwwX uW`   yn  n }s^_p fifUZTNWQERge]mntdx ~ xm~ dm  yz usm|o{}um }qe{y  tn] v  wn x|  y j | {j uwz vxx  | lf{ vl[_tk}z oqw w o x tgmadohjtlgl _  uz  {  vo_qebsvq| cj z^bspl\kdSZi | wv  uvqllin  | motn  ywz ~luygGg~xtXbwmngZ[YOUztvwwN_qp ~ z ~ v  up t | |rv | `Ufpzqtuwl ~skts|typz gfth w  ~ oZlrm^n{z    n ywqdrkbXMN[b pt{izw{tx qfh pzwqmw { w { ~gqyywwpghas p ^t w t}jq~w s irujVViohV_x  catjW_t|jh h uqwj yq]kZi_m n hc s {qr}v}\YDk uOT{ {t"$\a! zOf lyuvw{z {{px } { pulk{cq ikj{  ~lo{zhdMJnmrujo egm o d X]jow {v[s ujtv fgmeibbosqtnskre\mUbnali|pYemlmejha ~ u~ w{{tugx\a\Ljft rrfizbeik | { y R_ w hny ~ pv}|t xelnwjh}{  p } ta_litbexomlk_jylcewzpr|a pau y ~w |r lo z{ rRWbx|mm|  ~xhdu }  vj_bYqwrqlpp  oa} |pc efj ubbjv t tp cg `O_WceNi owno} o[r{pmbhkz `c {qqcf u uy {m r kn ~ibkg[ql_fXl zupi { udunr ~ oppz } }ownz|~wo{mirbYmvr { u y w mkeSel ukiy\ n} {~m u u jizp yjs|y ~sy  sl|eobg~e\lv}y woZQrvwg~{}uh~  wxut u|w x`q~} vl | [pptqeuvjuqqg^mt`xo|} }cx t^asYSfjrqPp z gv ~haw skjr  z `pytb]byzSaww`\qvuvg_pycYn | u x{^lzkhvuN_{Yg} p^\i y wml\YePHec`[reQj y nvykOO |j__fxsd|  rlxx{ ~zf"g} s qu^ rWdkYXVlne_q q h w| qcQd`Ucdl`GPjdickLz v   vlpb_oUe]svs} xp}  ~} tpy[lrkh[jfqigidhmllUNLXZMUiut[Zvxrx j%)rt| }~  xeiX`jieLV^_UV rxa]^eKepthjG]wpnr  q izzUh xknnrr ~u ~ t w hn{hen Z^xyyn\tq]gt zu_q jhqwwrtt rmtqm|  |nknutot qvwbcqhrfsw ym_m{w} }iaWsyuy g_zyno titlr{ wsv  fb | { ~~u n~ v_QO?i w s t nlw | r uph`\pvnkw y  yVgqw_oy  \h~ { |  \fl`jgryiuq q }m { } {s {g| | baq ~   zew~v oyimv p| xr_dmu |gwk^qo`|rgss } | { | xuw{  x } yuylhj rwr_eY`iq` | ~x  }r mhz| `lys{ ~c]on |]a y  sp ~itx{^Zwv`wxnkMhwwp ulnja t yyzu x|a v{ ]ezpwNVp{ t RXx~ uhipovxm w s x k | u | pqwkzlidi | fn rldw wjkllslnlVH_Z^`RVU`d} r p W`]l |tYy| y spwtlnfifdmnloigZVbFU | d]Rhllzq{ l dy w}zr}udn\ktrnZa shj[\| tgaZ^nn x FK``Z\ukW\mtkhy~z| zsw s{ yppmt }v     { wzhf ~ ]qq^{ t jg_ XdOarh} zbaaszpky  ufvn |qhlZRqxsrsk{ ~ l_ y{xueSjpjR| kp f p rm } } ||o x qmr h zdtzq{jPcbQomidNVf~adv zhk x t n nk n| {yu~m wuyz ~ estmxqslntelglmWdlltg x {pke]^WWK^ftu nmdKZ` jll Vx w^e^p jpysefusxoj}z o ma_z z {uh\tn|fqypxrx  s jy~ ~ lvr}we } wr| ui~  |sufpubp  v  qx  e{|u |x}yw rk | { jvo} z w} l vy]\yTMbly w \\tt`dvx xz ~ vuU{ }g^k qw r e`jr   nkz  snwvv v_[u}r jnq { Yhdo]b~} p js  jh y gbt v ul } zamo}  bRu~wpjah}tbxyngsmo w n \ t t i{ t x { ju^jndeb xykbmaPhhr zrekntrsu r cZho s mnNt {  | }w~k vgM^v kkxscm~|  t s | o_ ~ nlh u   z ~bNP_ f _Sj ~ ^^ottc^fxiw  \| `p~{q  {l y  tfP` u ce m t t c| gkq wbltyyRm} ldW[jfs W_sknnpoudw vdnh|b{~vbdb| nbq} wl tpw `g rjuvljij| pu{gmwthcv w^t { x lsnrrxlospwe { { z  psfuvmm_Unruli {rhvqyow ek{v|~~u]Yw r v mm{tnq p hdqtOg vvlkpnjs{ jls j[^ t yh\k  iy | w   zbt vxsv  r}xuizgi\nsjx ~qignvbmyh vtsvwxvrtz ko  nw o`{{o}w zpwm~   mutj {}z   x}prke z v tw  si wmqs v    lwyuZzyyitw ||hh`WaajpKh{zukw `_kp}yxzwe zzaXuqXeoy ~ew{ hqqo_dpl }s}zckvYeyst|Zjuwva]ouogaa suppcOZZZP`jevnu| zrx`r { fs x ods } v ~  qg } xzvv prli yd]^lbpvSm {ny nl{nh { |  mm{ap yxo w vvxp{vk| ~ ym } u ~puuty^d xllemwehzwt]r w w y jtim{x }r ~ skt zup~ y~ y {w | ~ eacinn[x p h mT dkV_ru~b_`ounfx {wmggmXehfn wum ~ }z| w | ycQ\bjcgpdTacY;etbezb l ]Mhpulnqaianw o |y u ~ t_ }ox ~TQ[zej{hrZa w y nlv~hqstb { vg jHN]^WffWchV_trfmega_]X^_e`Q_jw x Vf tr{zf n a`X[d qhjurYabirq{^y~o|mv t lpujhV^mb_XFUl }wg`Pkawz } yul| p` \RPho]Lh rVo z l w} uno_Xk}  |zj lo  xq~{vf[ |  puoszklvrs ~|rm_ |urwu{  `n[l g s s w\Z u jqx chcHDRQJRdeYqgH o |obf}niky | s]ItkVd nhs   { p oup}bZp tvh_ghur Wa  } ck }]\mn n s z{ ktx ~ }z|}o doi_wxssm_i m }xjq hk_SMY\MWgjejmjzrnz ~ ula~qjtnf r{ po~ x^ZW`h\N<Up O\[]ejeftb{{e    eprfuz[f  qrpRgqnvkYbsyi_xxmrlsk ~{ z zksx {n bm ~ [e psti gfgKXn uqHS]?d xpqVbkbbH q nf   } y lvs wz} hy v~rz]v ~ phins dct{}}wy luuXsmwe| psl} r he|nv  |yrihuhvy_ZX` |} nv }pgpqoWb]VRXj  tow } va |ihjr | k`oyturpo}{k_xz pi}osnfQ`qjt} ldzy_e]_j\Yhn ~ r x u I\xnlpqr ur {ijz lXZoee[la ~ { tu  rrgWtr|l_{}iu  z er tq^jtnwqmv{esbsvppo ko}xss`f{faVlrszrpgt qmvh_mleunvcnn[{ogq   || fqgV z  l qt   uo  t}r xv q  z[u~x_V[bipkTcidrmagD f tqW\} utu h yvagmv  qpgVop ~e\vvhqup |}~pRotllZVQHd u g { p z  w }  l{ h zzfSt{nedk{ ~taqw uky { nt^c{ynqrUekpMpw d^R_oxue[i sz xrnbd yo~ry t cbwi vxSabefU`xwZ_rgdumdq zgh o x r\pxy   |  ~lluzyetxwrs zni_apaw plt x sl y  v } wrvr}yk |wz ~ mvfn sfy } zmjrjX;APa\`y  y |b_ sv]v u q zaxwjnaQ\_Wj qaikmbl\q wkcesy su}nrdjhgxx{{ { znhks{y~ {  sLj~wnhn wtebyu !  z{n {} vwpw w yzma }gum``q s |h }ilokaPP mg~ { e {h _Wciurljbjnfvxioelx ~xqxtkhd { } VX{{  y    y~oukrrwb_qXRWcjry~fp~vbu knus z eLZ] }lr}}yzkVcpW]jmm~aQovV]V_yd\l r tsrg^e s zxv{ybrxhbekyxjkq| wbquqlleagegyzrqd pqmeg|x^eO^~oHXfu_[iv enoWbnlgs re yso] l x } rp lngtwxjW]K<Mmwma]gnljhkqlbUdt~ odqomlUSlz myfv~chl_`fq~}}}beiqtxlkm  jr  bj xkok_k ua u{ |ylhioZ_npjgciop r ~ zje }}} {a\`uvqn\WJ^wqXLOlqw ljgfYWaQ { ~l z! zfwvu ~ o{  syz{|| t]Zrpe`bs~v}{ tvorc\apuRh poeZ_hl WO_ ifiJfyu qmqqsWa[Sfzxx }xqr n   a{  u{    ziv| } ytow | ]x  {zptv s r g rgx } y { | q z s nj | x ~o  ~v{ wskhu|~ }~ldal]TqXLNCKQ_gis v c_o~zy { xt  fVfdw tp tt|o ^ v v z }w k cutXfch}un u otzmvcp  yskn}  t pj r {lepegZf\ y tl__\~ w s^yp   zb l } } ow ru x}    ix balah dr  x~gqj||x}vnk| sy s~~  _x}pv_xu |qz{|vwq~ } a  |zp yw   q |xgh[r~i{ |rk`cglxxajv l qsK a e]=;Z\[q aSqnijwwz | yl_olykdssltr~{ y ]rq}tP`} {zl Pe!q gn{ fk{ ycom u]uug y oh |}  l~ ~sfmipW` ~ zu tluhqq`]SZ_fsaR` ntznssml|z vr{{qPTgVezvfxuz{^`yw nloir ry pj {pt  p }w uulYdkx}e`ot  nqoxnorprpn]s g_cr~~ xyj ztfo x tgz prx~inl{x { cg ~ ylxgq}nlqpjaYgxf[kf krcbruuv { tOgcNTS{zrtq`cbe wn pj^J qVk xmilvxw mhFP`bywz{ ~swpw }~kpky wb u | mawgn h\aWm ~vwrhm`h zp{wv{nsu ogcv v { lkrfh v bXMPrw r\ u md|z v { {xyennovivnt   zuliu x _]{ y zrv  isz vpwb`[qrzwo t}vs ~  mT]Ulvvj\tgl]_twq[cqmojd_ir] c u!q]]MNew n|  x q sp dmmddjdcZbf gjgVqm_wzsx }niolwx y u  splggbi \_ pjdZ_} ^|| |zp | td { gg cmsdj  nx|  {kX` umyxonmjlUo qheeu}nd } zkp^MZh Ve xYm}u vz{y xll } ufoj t z ty] ~ uy f o ryhUv p u|~  uww s w  u pjvkfer r~ww rlkx { soVr ~vrr qqWe z pctqvpw v ~t t eVylsk | witm`mk |xw |x|px~qp~th {u  wxcbsyXv~uaewlu  u]bssz{x rds h]bsrizl^cye  }mrOl^  y u }wrk~o y prtb }ztnrkg]t\ehxzfmr}jZw~ y gfcpxxeu } y t tw z | }jtnrvxnoyux w} } pkeSRQTh q {v q bcl  l hrm~tntgmdZK`jZ[WKLPJaobxZPfjbkny{opz er wkacnw  luoi p~y u m Y g k ZLLSs{i { w b rfGaN_m | eMYhc mhw zz vno v n z  bn  vnjb cgs{~ {~uwqxy  qo}n}|| z e{ r choe_cakhg  x{ zoZacd{ xTkooo w ucvvo ~gpwv } gz urkahxuku h wt  } lgu ]~x~Xgsreg]]J^ZMbZV`j`a]uxjckwrvu rxge^ptx j npsXbz}~v RbmZnZesemigN69Q`US<TdSyud } m\~s  r ~eqs y Z_tfo{ mmux{| pok wrp sak | ~|vrnjm`s}tnot } y OV_Ndto k  |}db~w {fcXVc    |uhnbbsyuo|kbdhliZZl vj~xu x}}  {u tSav ZVSUnnsw~aWjs`]b[peXkwqxwm[XUhhoofiy {tu ag w { { {~ sc t##rb s lj i `irsvioyczzcamz}|twvw ntp_jr||tTf  uuysh]{  tv}|tvbiny|}lsjy}_sx u`uisr_VMckwu}ztpgPM\v  op z llaztp| yztpl[de]NklYmojh rg} veswwiztokohfgo x ei k s|p_VSw rhysksxkn{yamu  ~vupY[tyvuwr~   { vyyaYp py fgqpu kuv {ojcZUALWNUbc`lof{ ~w|rj uqr{eshY^r s x lx\~|c[Nfr`zrgsqhtl~dhbfiegloe_b cRolx rwa]}Vp ~pqswb }oi YW[hfOa n wc`| sn {| |~olnet{^V {{k w o WKXH] t Tk ~ r|{ouz{lfp q nj qS`j z z `nrkv Ww pn  }d ~ brhvyxy~ kywbl wnon ticq xg |ghws_am{ {  } W t y vp aZ mz| lvkrp } | u`_UopnWXhwupqrg]jcfscbjcq}oo{pu   }z   z{vpxzX oow{ k} snk tynw  | twb~ | e [|  x|uriqxmnwt`ntm r`xdgi`b^nw cpz }zkcxcn   {wekfnbQk z{ouv | r_]cafc^evu| m  |zuz nzhw| qspgkcz ~ux v_UWt {h k ogxvruw} q]hnh u v bl s^j y o ""u \p {s x ~wrptdu  uvsfYX\_osZ_qgd oirml  fdNVpXMFTklYpkZs iNr\UWs vSek TSR`gQVYI]KXgL_jmr\h|  jobrllztxnpji| ou zfp q|x| mxeuhv | x t r~yjzup  ~z   f\ szYlld oPZi\Tdgs mo  wlz }`hXr^nu~uj~]~ uh s y }  [ly m qZb`\Va[mqde |}t u q }rvjabnrpk} {z xZk | io} z vbYRXif^Ng uOoeRw u_Fsa{{bq  p|cmvtyudnZoovylhk~ mt laj }rxs}u `pqbj r g fWeZ` z hk yrp sc[[j x~xu }st llcfgq y ~   hr|ammm ostnnhcu oP_ t [_f ll^tylyzxq }qovZok`t  qhd^f\ilps zndscl of } { eZbLXjOFhn]QH_qxy[sgu w dfho}sspqqelgln uT`w  { i{} { dVu tq]r} ww{cly sn tv{vf} }~  |{ | h~wwyrsmadqzx{~vkq   p ~sx  z kr  p ~ b`M^Qbyreq m ~z uhegR[Z_yfb`;pndfo }~ls  fllr z qk s GYoayywuw  w ~ hP ~fiws  hbrw[dpn | usu| twzrpfbr hp r w q z~gUadUMG\X_\i{vuzwm[otrjmhkun  zl}d\]`Ya^k yWap q w x lljSdmY]HLspWIl~ u lui Qyz v_{ pk \wyYST u bhu y  [Sn^_]`w n^^tWelpiihk jZo wl su kmrpu xe{ acv pxyxsyow oyjevwq`bi ~ }tg uwmoits l| xlya_wo]bjmzhYx~|   oh wuw  rg`fdW_S|| q{qrvumorm[[`_f qns} rrn`x kbwskk }      hq{extfz ~ {yext   |g  stki|nl|v  v~zp| j ~  nx ^u ow| [sw J[v nlngons {{mmpqrdu r{ |fa`rej }} s d`Z nhz xn yz}ky { Xa vox w hr nv v|{}} mz{ q}zvna\  ~{|  ph\_`y s{nTr  { n pp}si ~ y| { s}o z x t x h[~{  }vuooqs_aedk f [l|y{ynW ndogf\kmk y gk{gWd}ag{jmiZ ~w p  jx pnedl[^ZT\WtuVhtogTe`atWWo]Qak p`^ { z}{nnwz |s   voi j~ xzz  | q       jdz&!_ o'# nv}~y|bUi~   w  xjq qjlpts ~ uy z wcm }d]g {terjq s  {dm { jgVv {{pv {eV x tekd xw rvgZWcboz  w s n v wyhdpq~ } `RSBIM[_Q^ uo | s jz okvory rfiv {{ yu |  y~yflY Zo s_koYbl[Yzq  { t ^mefvw}ku vvxutYr ~   wtpsqU| w~}  p zxi\wu hm q ddyyul z } } { ~ yunpywrszvrx ahy xp Tkl`gt q^aZnqsbo  v KZe `d]`grscc  ruv{ p}xp qg ~ypib[fahDEmddreewk y t f]uu{ `r ug{snqvt vuqr}mnskyus o]V qpdjkutxaYku v pklg ~ ghhu gy}p`w| oq smlU`|v|vapj j { mw umdt v~qIo m  jqwp w{Vkl y  v t\W zv ^`lx ugbk r mf{rbjPC[_ILGe x} t_kxx`drbf {{u}| y ~jf_KOpcY gpkaPit xji { }  i  ttormy   z } ~ l~p |rRg }  zw_pwcZ x[no` r]jkEls {gzyu dw { e]g|q l {vjtqVNmk]G^ q gdeht e_j |w mfdskj~u [ciat  prz bwlajp~~~y|k rpu t t  |lZ[lqr k{yuvyhrl\]ldYl Z] xwnlactgZ} { psw{hky{nc`m t kob ~ u{iv  ||xmxn { ~sqps } |ywV`yud^zyp xs |~| zxdmxdrue]nebudPbjplp~v { ~  ~z~   h}   }{ut yktmq xukRqnhyip]tz sywWq wNj}u { qofe ~ }    z{ |x  serp ~ |xvm { n]XVcYjkZ]]ttlk{|gsuQTy|thXW`d_]jxw|rhw ~ ~feZlg_vdszwt b[ }}  { t t l} |Zs  vmp h{~pfx}ypjxjts ijr {]A`ddjpsoia\bjhsneb y~oy~xy y fz~ ~{ y uw p_` {sx pnwm\ vqdl~{cq{elps z e v  }pk  qg^ruwadm``hxx c}   inpb`alg[ammp|n {zc|}sbevsxlc{q v |}Yo|MUsswp_iw   oaq ly wuv swt{ss  s t} izzonlnvol  y emw qrx {rrrr z  njy xtk]pxq]d xkYlbI_gWNb_V}y mshVPG_hdjyru u |}fstrz| nmoXWs l p Xypag[NknMGSZb`rpmo | zlg k}sf^ko]aibmujoyonvr l ^ |fhiWbeTm!ki ~ fXp} xf\ ywt}{apl{ |qqL[vx|  uu xv gIz |xr}|gr  { qpGd{gSat]h   z dniggkyxhke_ft z } s|}[ r ~vuqn ~_ ~ | {  jeu n|  eia  u v zql ~ hn z}~v}|{| ~ } }gZ} l_  uu yH\u zsq walla_   s Xaqyt{e\`^Tdpdjqldenmpz ~gyyyslYX r   aQgnql y syvqnz{{  {s^uvw } { | ek u tvnkuuZxdlvkjis  jutq uev | m okthm  xkojv udsaNffROYimcUOh^X q srtD i xvmy ~|{h} } { st }{{|s ty|jaU;3ljjx g | oq}momg}{Yvvin^bWcfe]`bqvyy|j w`uh\cprzxmlT\f_p`[z n Xfrr mSu|t {wMm s z  flz  |\j o f[i{fgsilqsorkg\ } |] o~ zqs u|ymv phopoffteTcdT^njgfdrzwi| }ro|  fhllwc]r{{v ceqps XWvvudgj_} upw yiu eh |x gunSs|~ij w}v~g[n qgao| r pp  xu {|i{~}~  gm  p||sdxeTioakkv x{   }  t ]| wdjU^bikxy tvxrs||oddjx y]gi {o ~y s vvytzl y} |vr  j}{x lZl z r ~ {vggw[Vt}ng~x ~w } i ryw}nu ~zm mcffWflZU^lk i rgay  pmrgajtrqlYKicpyoui~zkt^hnkeb]fxu} z x    vq }  lzk]bkk]^ dQ |  mc zlli{ njw]p { $" | ^ twlrsiv n`w }imqYVszn\yztt uxtolkgaXTUpwihrq rr } uvrv|xpuzbjrtvdw}nxuk {hco ! } xnw { vm]sx{}zt kXNYWDMTHPXTlba{   r r{suki lwsrpo{x aryPb { {{    }|x^bzogbaolz  y s ~  ~rk vsh\e^^hfi }Z^u{xlwx  |  | | uu`ehvxpj }x teq  jo"r~ u [p z eOYF?jtvzx  ~uVp ~eetknkkgrPyymvkhu  v txmlT scWozd z b Zjsca ur eYccpypfg rzq`iucZ\TU\f{ |u mg zr{yit rV^rYexvjik odl}ysweegql~ SUenloppbh } o [|zad nx y [xnKYp Ud lUl x ~ {{u }nm ~  u{ |  Xi  { jg~Zt  ~ ~u  { { pfeu vby u m_  iluj~yYVqtw\o t}~r{jdmkw YEeus]Kw{ee U^vx  ~ u |~m]w}tg`ft { t zkd l kf}" }qnqh\[pvjkrXp} z t ps  xe{{ {ky ymojg_[]aTgtysx { z gr  so { yous ~ lmvgos x ir{o u`n[Sdc ~ p^XqhXqjUcakag y  nYc[Ypno `{{mq u{eu } w { u { nmynmes jXks hy|   vj ws p~  am {py~zzj|zY  y sxdcbltxaX\mz|fwvfm\ xvfn | wt  ~| jkfOZVWnm\a v qub{  \vlo |u{zLSqimqrfWi n s mhnak yzrqw yk q [k pW p u{{t w|  ngfrlf w wihprmjszpmp |yvkx}} ggnhsfd|{tbblow_` z z l| } ~ lq~x`xn^z  g`~{}{ {\w xofm { t mq zz{liinpr { |rscht xz  ap  s~ n}tgp{pxl ~~lv oxy x}v b { )( w jdiggx|u`[jSNStnq|zw| lnz{mm^uvh|jxu{ t ztz|tnZjevo  w{s   u djx}k  Vl zs z  w  |r}|mf} | z}{z} ~|s_ky ojm^Zie^t pbZmuw  ik  | {~tu { pgowz ~w]x ls } |  hq | } zp v wunibdb_]OAZu n~ f_Zdo_\cOr| eUkw } vjew ~ {\lwwb v  v pj { wdwqwtX@VmcLq ~wv ~~| xgqvs tpvrj^ v|   { ekrx  {m  ~[UXfv}|sz~|r}{~jzli  z n o y|g q t `qis |! w  z gd jw ~x u {xnzxx kv sLn {}| }j rc xpqpgh[dxra{ r `n~ x|kx vqtimmnvqkang\cVcfgfowsYWagcquio | { uba  jc z } w x x c| |gr^W{ wuowwRv `e |mhbbaX<cjgywt oyw} w t g]oq _ teuy ag } } hc z ~tcgcquf[ctq  }  s | pn | r ylg {  g{ym { lbcVZk yhghmzusi\y{{{w p r aahndeplXXr { og   |der { }g ^jzUZypxp{o cqqogeu~oz}qksthln lm RRt| x b^tpHPUVcfyvq x l_so^z~ariWJyT\ wtp k]y ljy{n ~ mtc]nmhQA_qxeP}\QpsnSRlrffu { mn zmZl{wb lo~tyvp s h[j~~ xcs x iXu p lw x sejtgf mxjttm^n| nnw } vgc`_O]n`dckt`Zrmfpu ~ {s n`mcjs^m f_} }yuj | uhehz mmki }y` z rg[d} wdQm{iav| ~ x~q t osr| v}aiv[BSpxsx {emrqgbhbepkmSddR^d` {sa{ s  }[hrl s { jqkQwkhkaZgnwx u{ yz z s w w ecmigy ~n soi x[c w d[ss^pwrnw`p  c`ux } ~gfuejlfUg q grz q o Zm{r | w }{|vir vgo ru ystz |kl } {pv y | {r{}qem |omgQc}y  ngonoa_wsm^SR_ylfhde| uc[ o w ouy  yjx   ~Um~qbsysc[ukzx} m ~ uf_e]U_o {fux v{}~xry| slmZMegQZc\ |uNm {x$zy ~ [eppomqsqTmv^\IOg[[nh]_gz olokjpw  x |yw |w| mmvxsvY_um  x~s }vwmg^ ir yapvjp twzzn `x ull vc_~ob|    r|z  qw { y }|~on tw qbr  {  wj  tojkswofprv   r ~  { ~ww u}|~~tjmkhi]N`owbnqVljrrakt | bWYYlrpubqrno UPXyr]e ~ssn  nuzp q~}}|WYtgFw}zy  yiu{  |zqohJaxojcrsqu |s { }oifl{  w{{X[ d l |z wj }  w{aVjolof     vwwXYz os} tklsy x^QdcYv |oi m w wv "~    }{Onuxsspu   rb t pxxgcWSb]Eh j ]lsx{~   {q`f{ |ngbqbno]deebdq u qkypr~td vsw| s c_tz_UbehsuXh ~ xoss vhs  |uV~bm  zj`]honp ug  rv} hp|qh} hvhdzhhkc{   p^]rh^mnmnt|wiz y mr | zteyryl { g  uv|{ia t_lugofopj  |{j {t ~ fiswmu n_ko^Yw}vjrkjQX q s mv  f^  d o sMG_cn`o j hkcda^imffkjglndJYd\rqHDSU[^amo`w l^c_nhZmf]u k^unZjm ZOs j p{z wu y w_u lxodrowqu ~ tj }h mb{nb]emgbgjjaWeaXetuhk\v |qt } te_gtx^p { u[z|sqfeciabechtaXx  z  y{z ~mtt~ t} rttwiq ~k {w y w ZOrl^^^^bXIGMZJLi ekx evwk vmxus{r^oioqf~vw  czqvy | | Xjtmy y  q p`ajnxymddtyrweh p bm~ {ybcmymknmr }  d mv jm fZ vx| }`KG`jni K^ eVGcyvu  |gjhfYa^so y pevyen  z u gpkY\_ctwryovvz t i yUXoaS[bakpwtq Rtme}  pv  ~   g`kUSPMU<W pmuk } } n wjw  zpZmiNYc[qmbw{iu  y {wpu {s  gfyvuhJf x vl rynXOk{lihaX^ rd\QIEgcOJc t ovoxumas  _x~xhqrkzibqr|{t ps vw maea\IdoXa_l{rwzpliKbeK\c[~ rTw rm oaWgt^trzwt ^v ~gpv r t twdeyxkjz}x~  {|  xnkjfl{um z[Oiiy {v   eWiruX`szoZ]}   z|ag |wm^]kYgnsq[WnvbYhz vw  mq  y }} ku zm|v    |ekxuw |vjsmknfsprx~ w wn v{ x   xu yth[dn vq ut{t^kpoVeg]rc`{yl[lmot { ga|dSPkbVjfSZhnv stx wh~ kcs ]: m wucp|u z ey ~ ysvwinrN^voaXhaWj]dZ\bo wtojjn}pit ^\` h v seygIffdetu} nm |sgy   mijSVv q   tjn`V|}v w { pdt|xys|Zn w}pk`]m}uk w t }hkkXaeLu{hjm`_~{mbjs||pdl u tssn |p qllaYo y yyj} gypv~xx  wsy kdy~]gyrjqx ~tjr  |iDbhK\q|tldl r j[tyfzp^az ks{ v}c}y}tn i[ ugy  zzzjdmng { o`ckqoZipbUdqtzts  f { |s ~npsqvmcb|t qwme ~ x~`emrtbukkrhd y| yttv_Trrqqqld>Ra[V]i~ a\ qblhUIYkv`g[Xjv w o~}} cl "t   l h  ~ty x ly qlvp ~ { o} u pqtv sxvx| uy z w { lfkOU\hn^n[Heroy } wk}z{ u pqiuvt r z x sncf |gjbeknffhNi~~jt{ uv{ nwxw_z{s[iXXTcY`akm u gT xq rbm  {aUe[kS_y jtwvuzy z ~i\v u w s y yk`k smai gn jw qhx  t~wvvum y d v t  y^punx{sdw og qmlofjZ`gbi u ogcq}z  i^f |Z^^jrmfn  vxxuv|w rrYu sll{xUBEaltnJffcQq q ~  o{ukm y mmWkwgt{lq~vpu g y  t  wvz|ni y hg`TqqP] z ww }z  v Gop ` twquOa z yskm~ u ~ s aiOi{iy  | mt{tmb {xYQS[z kax| {{zubadgcWWTWgimtqysl ~{ | ^wxrf|unx vhe smlqon y lpeeb"p[ o sj{ qqjdYe}h |y ~   w t | u{ Vf ylw |v ~oy ~ kn}z ~|  {x j px{wy_ zqh xqg{r y{ }xl | $$ { pq | sr ys\Xkg_ijd^fblfk{  ~tt q  p bht|z|wp  ~rby  fR} tv[`gk]lows [\nqwesz  uyiW[hioebsgnp ]v hqvu}oed\YXu Z[zlde\y h  j}ng{~itumi]^ebo }s}utxk |whnxpyp }peu~o szhxy vu |vo ux~ ozelxy oUjvkKn vj z po}wv  j\rw`[^|tg t }jc_{gq bw li }l|prv^:] b rsm} t{y{Z{~{}~or w ]i |v mn x lup { d\cstnpsuv~ziOAQk {m` z tW r nmgigrh~ef tm} |x }~ulquiyxo u rw  }g|umflldltil}wlwvos { [j}y xnv}nr~ii`rs_dlZanPpu a[sg_kjcp{ qx z sw w k  ~sqm zZg~ w w u} uiow {h^uj|{{ }  } uio } cqzg z u ~ |re c`p} }hG^bU_r tpm r ]w wmuxfNkx i} s|v lyy x pzcY}o ^jp xstempnikt| s~~ ~ |^  l^p {{  zmt]fndubw} W{z y p{bXb_s_fjuthvjns k V t x z{| qo |k [ ztv }Le rcWXc} WP } nkxvugi ~ xt_Vhu vcWp    n`r l }  r lYu piyv ~ xzu { sc {roq[oxvusorws~pxgsp~~ajqjftjQFec_dq  m[jluszx }|ms } }jv ~ ~rg s Wdit |aikYTa yvq{vx`x{zyuwssqoaqhnmPrboy}|bX^er^ s s fux urhm_lt hZ z  } ~ uw}nbppx `TYf{^klTR] u {||rzv`jtwzou ~jbjrlw} syj }zVScfk v y m^m ynm s mhh u qfv  kQWj\>NIVgc| ~ y ~ mtohej v z uk   {w`r{mb`w~yygi&}! qB` p nI^| yciwyjPdpijfmZm z vm  z lv~jnt  vmthi ~mhc[ }tPb| igiw f y PLi\Ql y z[k { nXy { mrnb lyfo o `u cjmvw{iinu wl ~ uk mz ql`alnfijlmgn}nnnz }}x q {lz mumfo saYu qqgojj yu|jj_e uaH pm\ }vtnndjs  j  wy   |jXx{e | P\ py{ppmhk xnqsw ~]clnr pys voty~vg  m|{ z ~ ^rysW g o _`xzmpge pf`qf^[bav vp|  v \q nge }rq} {s_w{ j{rS=W_^fqht y } nzy lxgdt| | yt~zoq^KRD^n g^ } l xsdp|qcokll yuUP v xrjgZym uax {a]ttvfro]_fqwr   ~y wx { l~ zny }{rvked[adxkduaWeiag j rns  {l~z{|w gu\~k  w {|afglehxhl_`~nmo{ y z |ndi~ ^wob |w wSa  f!}k k_jxyuOs  qz|  v v zlf z zmcp edjqeYfumddgkm ~ ~gVy rz o_ r s Zk l{!px  wu bryoZ^njjuhQjj]pmqxct~{yn ~| o{  z  x  |jxy}hm{Ocljlnkiy y z hjz { kil_Tnmba^kG[ } y skuobgo| ibix}h y xkf ~ zdh{ yu }q { |`mn viaXa ]lo yarqb^z zwunlg{Y w qtsz ZkfLdxj{ zzpvlna^gp\_ t \WJW^imyo v l`_fosb  ~yXfynbjgdupmxlhiM{|lw { `}abp^xjrul  u ~ xxnk  { qt o Jmqqgnnq]Yrj[oil oZmw iacqfOGy lh uv rezgPYakcRU\hanwqx~piOb`mmjl Rg{{qs | zv} nvo^qkpnRjwwz xbs}  uq{}xt y y  } \ikhpvzfn `Zibr~kV  mmifjfu|oy| lv } uee_r{Tk~r`Yj~k`srx_w{  ox } g } t` { jzu} moek_E]`Sdg z wf`^mepl[Nqwt } }  vx dgn x _x w ^[[u t{l lTqwTRjfjemjpyhlmqjxqysk[bz WOWWbllgWj }pedY_j | jO_riDTmdTqeklj smmsclh^Yaosogzlsi | } nj  {Q\pbqaIb v o aP mk|y|k{zmhTcVYpnvpgst_  z hg y kO^Xns}   qp i]yqQ{l rgs pUg[VRj vee}m\nmcmlMvjcTa_X^][lyiYfcacvlbrt ms~v^m{moy~yt | jr }v jbmop s{Nhr]pv ~{dqcUa   { {ut |s { fcmgqZAd~ |u  n }lmim { z kmU^\pz}| }^r ~a^l ry ~ ~  o`\aQPe`]ughs _bqxou  ny| vlhitgtSob } { | p y~yu`j |p[SaLKkq{tlu~|lo  qfjw vx   ssruukbfa} u~ghy~teSmve}r]@ v snq  t  wl   worq xw ~ tq uiYj zjWPjdc wx }|!t ' vg mbydt fwvt Si |u ZYpwv ~   _j"kk~ ~   |{gk}kqxjv   vk}susvizic y v}~whmp{kbNNXEg| xmq }pkr [f r klgo~|gX\klormltoSvtj|pqgfwakgqdrw ~ { aD\kN]hOX_c{q  qObkjxred_elmfQs glhw x f^rgVYY\f ~uw  yumlzrr w Ku u Paf_|zlpqfenzw y ]kvcfb}r`qy_[uku~z}~ }} rzs | mx|h  uyqv rst } vtnx uwxcoyzihyvm zr ipw akjU_ixtv _} y s}[Um{}plh`kxvVb  g`nvlhYlx  z{{v aw ^d ~gV^_lzmmefkqu fkz`lu{ |qwr{}VctfRS^k  lqvnaw j Y pvjwhmugtru`^[Ps }~ qj t HZd`UkiQmmk | mZxqhvlwmfwz { ysxqzhwbU]XXka|nj  { ivn| [x wlffy`Xv|u__h sj  z^SU q p Y^bubvxnzs`VP]pvocm _u  ng|yvm| pnf^kp y } miy z w {v dj ujhstwty mYTnn[bWPbipcw o ]csw`cceox  tp|qu ~hkvx qimorv  vsi|hp}kgw {tlp^pypqtornxtsibrguoXa~ u t }  v | ldhqeZ]hifnwuv~r hk\Z`bes xuri{ qnu { | uu  fqkr{xyfKZbIX q smjpu op|sk`etspyztw|tsg|t|mtzuj\^fy~surv`opw net |}mm z fL\PmZr|w he xraeh wfBI_`}hAk sgxsq} }v v [TZ\glo w Vrvhl qcqndr irmo~| tp u} lc wq]sevlcp~vglkl jor { _i!o{ug  Wsni_koikjdvuk vq qmteUghqsivmbry |}vs ~ jjpsqieohXipvVknbs~i w idk| mzuu v  ~ w w qslu zyq  oo^drn_fWe rr}yrqa{Tsy ^e}}lmpv  s}ql wppy ox w | j]  vo} x nly } fagXV | tAZlTqs[bb_wnuw}jj }ev yr  nhr{{ps  vnnt ~ {x  six!igaw vob ztq }"|c   |zv|cm  od  zrouo}}qqj z pSXxn | yqbj nvzqfgsn]m  TMZrldkVlkMfjy{zJc d]~  qrvzxSU| khf_p| uz|d\oflt`gt  lZ u z sw{e]n[fsckjr  k tUr Ucx {z z }  }qx } }z pl~vdhY{q_llqyy t| a ~tkx t g |w iTwoF_~n`Go w}^klgjhqpiliz yxxivx q|  yw ]ZNFSt lgvq}x{g\ies | `trT v dPagc^Vjmafw }n~ zv| u  ewrdm } |  llz rt{ y|qk~uvwnmvj{  |{yhttn uz uqdjrmdq~ xt~ }  wy }~ zu }^mlt x e\^rf bmyRlcYn``q}yh`iwx_q h`_ykXi   {oPi dfy mlQg{o x |  }! ~ khz | |pq }}~rZnronu  yxqdX n e[e_nutw{us y~v^r|ym tb]e iWcr [WZc |g}}tx { ptpj | kisr{ n`e`d  lvy qfqcqw  _r } ~uhl~ w bSq}kpz cy  yj`p ut  |wq   tfek}}ocju  v~{sozqtjh { w z wcVZZX`dVZ p lb y ~ ojggrjfPp  xxz v|yq o z ybp}t  mktfo lj { jddh[W| w { ys j  prwru }z |v  ^S`VbXAH k bf uyxu  tx y |x qhg~~xwilyl_aZTd vshs r`x oZbq }wlmxkrstw } nu}Xgvllkp~xuripqp   ~  kgx~wqqy  ux u| }mqiqwnv| ~sn | | ql_ u ]vqt`d ytfvv}jrzs zMhx lQGTlfiplyyvv z oqis q[feS w vq{kz t rq ~ uqvkou^_um`Yz}hfhdeahywl{  ~ lnmq mmlqW[ | p |h|_v ~ x m } {hk|| sz ws  ~w v  } }u~vjcav |omo yv  u s _~z | qvuxc ebk{}vU_ai~ vurxuwnn{x zudwsydgpk^gT]v q xfQtre{uae {ywy ~ns~yyyo}p  zegnyqkegdp pos cQmrRjjOfcf wr x  ot y{nz pmy{| ~{}wq~ tvylmdw p|pe uqw ~j  yj  zseeZX| y~y  u xr u]ToxU~pqjxmmkfTYilafvsndkyswoz Uk Xw ~xz Oe{_Q } rh qq  qur}f] z v~ jd wqj x |^kpnr }z q[ s }  xv mks }e wxw} d|bubg w { |  {jo| ~ } q so[wn]kok | ~zotjOas^ay m `~zozr{ q  w x}ps ~ uo x qiclicjf`wvzrwxx~ ~}   nm YGNrnjy{zqh~uqy{f{~~mx|om x w xox! tq i_lq{prvSXob]e   wv   |x  { wy }z|| |yu  ws pv y v {`[keZlu nw{w|  oltf\} } htxRVr lv q`^xfUGRplNvuf ~ yon~ rq|er  utc }|sj_g} vfnnomd ?^f[rsojZd o hpn|}l wnxgcgd`URTTcggow]a moej  { ziYSg]^sc| ~ ~gw |u f y~o vih| y |gg~ xogjfogkv [usgi_tc_zzimlmn{ { z| i^ tc\ng[ | efUWd n ~uijzs r^~ lfn rRf|wziddo|tsig~yu s j^w{sYL^vneoh|ymu|w tx | v { zt z vypd { z b{}snv  \q yyvuv rj~ } qtur |zklsfsvo~otp} le{ w zn~ w t]iy dt} wolbiho ||zq~~ }k\h f v jUYYOUa`amyptry }yr|wwz oty{ cb z w yvdUb w~i{n]cn  }fj r lehhfjjoxRf qist|psl z z t |st ~yyshftl~ x~ w pqonn[b~tlv { vgmvoplq{yzqvjdvVo| p s bcp | k   yo u~pw Qo rlc |zirjs~|  | | |~it nUg nd" zbxoa_i} wuxin|ch {jR<Zwodl`dpcw~k{ ph[klvosLLpod |w ]raqwj[v~npwee}}tju yk~ } kr |z k| | qe]nv mjhttjdw~o{ t rSu smbv||wYicm{fggj}qc\m | acmhccnp wyn`tw  gdklg pTP^b{ q W }w q^rynrprxgv rj} utk u uptplpu } z lv |cvs^ w p fzj y  v~}y bju goqu} | w {vz w|w ~|nefhmr]ykpnQYr~uXZj}qQmwfao   w p|OYv{n x ~ }~   { u Uz n pkx~ }  zr{soJ\s xGax}s{ZfrQ~ }  yl  z    q~mfq vnjqu Xad[cjcyzb ox  vh| kn |jqw{WuilwUru^kylrxvq~wabtmu~j  }   ~  y uu | _bjLLg ZV  y} p zp i} u { zv qgkc v wmy rsk }q z i]  t srqu   sxo^] z |  {t ~{{ m||uz|w[\rlkdl ryh~ v     ~ szik s][m}x| ujy  } { zmuw~~t sjp } iUtstljkaqgXfwi_fggs tkodZ{ f fd{ uz vds  v g rj j  xs x gmw }g|  ulp ~ xical y`glry yWU~ndtuvr`Y[ciPWfVSmt {  nm }xpmlf t ~ ~ [U p |kf wy w~ s ik |  ztqm[l } n]RMaaNg{ | cmup    t{  uy |kn`__L u | rtc w gd  zyx{{xtfa~qhn_Pr w  xjp x  zwnn} uk X~ skjmS^p }t w sf^j v q { aXnrplmu m {ZPidgg}  y{ gowlqurns{}mo  }pw g w| |x | su qg texpozz  w|{p~w}jwf`rp_]L]jb_s x\b oTjtjevellWhkjarxzgWd k w i i kejiafv{pswruuo  jiuu kb |  | {hXVuw uoojt kt v r dVca_if^jiQeimxo zm]f^[mbcnqnvwj`[^Vmrcvz r {`^Mhj|v[k ppsg_aceao xlv | T\nMa ohtmosxrSgxqok |}^f|~  frll z s}    z rx d { }xd r cPhp{ [m v kakzrvy  dm{T^ }u ~ cd$  cxdx xjZnv | WW~ { j  w Xj^i{smaust zhl ~vk |pfaakhT_qm_vt}qes}wtlz }s etyjse~qTqkndv  W xlhnuv {zt xje ikuwykYO_ca\ifjmit {|hdum { ~rfz| {x{ww }rs xdu mfiimh v  ~pxzp|ysiw_oVf |}ukqqTRfWN u su  { sx merkW~k\_p~uz}l|r q | | n~ z G_ko  e  zv  yysy } |yjs !l|| t l }  ~  n |rlnz    y} yqz[b"e {  w Nhoshqul _lnq`bynu  }vgyYVcUUy s wzyjspc| |`ik|tlSl zfv ! u}\ zn{ ^omQPnfW\pd[\mykX_s`gzv ~ { e}ztnp r~~uvo ~ sormqSNb UX  | vw ih^RV_YdlkjVhd]kgasrld xrl {k }u xqq   xz r cWdbn}t   vx}v hwyo w ivqaWvw dwuaiqxw ~} qhjwxem bX  zohx zw xv yeyx^ORpo^rtaS nc]o l\blb]fh]cq xptjq_ hv  klt`Ae vdXix`_o y pr w  } eps |r`u~ uecqugXUe u z | nawvvjcg{knqcl ss t {yuxukuz mhKRv\uc]viljp}ufas nz y | w sw|oQc z {qdY_kWhmu yet slsy k{|| m^ x~s kf  yvy tvng_`  }cZp vp kg~ rgq} x owpUDjzvpu s^NJjsaefqx } rhotpv[bsx{xyuu o  y gt u l dz zom`lykkcYQQhjbohZh l`r qahy }h ~ p{fg odyqnx o~ } wumv s { { ms | z z ~dpaXvyu\f {  o~os tMsxyt | ~ v ~r vcmx  | wx |my fclk}s e |  w {}qn|lduu|~vpZhoq yz{|vsp{| x[ uyw~zxuorirpZryrkr\Tkdfvzno }qrleXvx_ghZjtng AirwiUYr`Pk| y h m [ipqgu  wy  Yft_ j s i r s  dh{r|gb}zlvmuhngeqvznfac]T]jY bhSFY[`q cns \d n bjx qu]gvz bs} cY q~^ryx xjcrz zw }hWpkb {QV z\m |wwkl z y ~xZWp  x xv  ucrznjmp |r } yyr  ~tnu l]nzr ~{ |e |  |rx~ Wtkjvwu  z sg  t y  {^iup uw } w }  ~ ce ~"houniT]x w |vr uyxrseX[ |z_axy`XZW zvj}zm  qx pc~eq}nr|`j    r qt d z ~ qagqt^\e\[uqRq |j]bk`g~ dw o|l$!wy |k~zm z Ik  ilw Vkz xr ~vpclsus h] #vrr|f`q zn vtpuzsv    rwojhe z  {|{aWqb xs { xrRd~{ |o}zs k{{xlaoZbk{ wx}wwmnns dZs}s  xlviNdZ\|}v u Tn x i_ t} s `wqoz xjl vrr xiqdp~rqytu^Zi]P_cin[ondxffl^W[NSnjlusshZo} y ~  ~ rnw jcx nb|}w~u }jjykYcbj]Wwvvxyy} { ocW^T_rgz tww{xy_|wwxfys } xq s smi oiv rvxsvo{nro^fUc mwflt ro yNX t  } i t y swi| iuru` paYgq p x   |qr  {  xh x\~wZjludivd=g dN@TkQAiqUbomgpu~phwo s`nq  qpw  w pu z }zic{uyzgmvimdlv zdqbSkkYp}xvstqfnu| vU_| Yxor|  ozoVDUNR\gc~y \`u w no f yuoo`prf[Qju\^}   o c u nblp ykcw~nmjm ~reX u mo}p ^nlTJVruvddk ~ |svi[L u {{! m [Qh{mfnuw }tp { z uxfuxvxu  pYUkgwfZ_r^V x|vtv | vqlf { wyj_^UT^kwi\et yc zdit_nc[t { jgmbaoicfu xtss\gov_a^]epy  ~ ruf~ t{s pw{]uqsybr | u }qz}|iluudj}ziw^]eaif[[ikj[{} t}q`eejor zY[Y]_ak |mt| x e  }xksj[nlln~u n }mg } wkz ~y  u h  jy zjirz tPgrvhSK\orVi} u !t r {ueo}w|xz~jl w j tokcp{pn fym xuc\~{|xnjv| l j`Vtudovgd`l`UXVBh`ne d u o ci  lh x`T]cS^i]k } gnjZ_Mksln{dX {y{axqj|lkt } rpriPcZP y{UYz arvmo`XZXggNHQe^W^Ugkdku urpk|zio{o }  }wnhun_r v ~oT tj~sr}Zp {pv tq   v dQgjcdy y|t qw   nksplHGOI_cmcJXg`_~|wt|  vih {^Xp]fxq p { !"q{y   w^~_Wbcqlkwhn{} tx|jhu rxppddtnlwnhj]et]ood~s_kz pckqz~ps ~ ` ~cj|`it u  {~wjxoXAa}sl}uiX]u{ v Yt{il|iadWba^s~yv |\rpl z qxnk  m qfRjp[zmwtxv   r{  uw ys  ~ {]b^iylqrh zo"  t }z   {} nxo  }e}  { u nfcvfq sgr g!" l nhx u v sej w cp|nq v  }isqv yu  qfixy   q ^}|hj { }x y quri  vvvj w m\UO^I<]bny{~t}un y qxyr^Wg`nnV\p[gp{plupfdbbZkeism } uqx wc   n  wjnh}{ }  {k|Jf~syvqu x wo} {olu | }qdhN]fjoonwsm~vfns` zu i kop~w  E n n] L` whTlkRXlvllysZbq_vrkyt urk| xoi|vumx fTb[fncp ~ ]cOK]\tn`vxs qw yupfp |yLT { | Y pkwmt~ {fW qohvil~zuyuk cj ~ wneWSo y rmeo} rtl y lTj} y u l rlePUi ukee_khu~vyz| tfW pr r ~^z z ibZlt} vaYl y {~nJ6csgdx{oOQlzshsns }pn}xyx y k v wtWSYqXY  ow ~  ~u |}|hpt{ wefml^}uzholz { l { q zgghedoneYu tx|{ukoqiku ~xl w task^h`hj\Aexwmps^ow XehYgmluw| }kjq uffz|fo ps zoc`Vhjlp^in\    qlkuuylsmk[V]hZjw~v    z\ v uy }{yzytzy tbfehwfWhzyr} v  xlx  vuxmTrvrl   gc vjl_foiZizyq{nv~pbngkwol_fij w i Zsc\l kVx wofUPu Y_[TYUCZYOhzv ov u v VqejX^y|]\ zp$x qx v cn { n | { iw z noUoynq ~lYo{ u vvt{{wtrn!" a ~  um!lz xv|oWe rk klw pr ktrf]hxuvtjz`]wjS}svt~ {|w{wd^jaL,V`]dxoy}_ y m]  iulhc[xtf r}|fp{~tu `Ylz y NFO\zpz]a }z  }| twv   zsy{|}y|yn ~ O_f^|iv p u  xcZnmtvr}{ x |{u  {p_z  ~tqu} x  }   nk`sgjq| o|g|  py" {uvmy qo   n]pkj[qs{ou oywvsvx } h^z}bY{ y{ x ~ Zp xyashY~pqsneu  z{ t~jolnv ~ zcpkt u yij cUcpc`\MZOV`w u}ssqsi  bztuvrh}g ~ _mchwXg Z<Ra||bVzqfhsyqhjq[cxkZp  v~zm {www } mlpqqyziQkpa_ke]fm[eymf | x} xhwp[m vs ki~oVo q k~jpeksdgshxxp\Wot{xnky  ypi v | lmWr  iypwu}}l{xl vbfn| xsxqfax }j   hv q}  smyw{tk{k`bSfdY]cm yxu]n~ ^q dY |pw tw}  Ks  t[g zqe  n ip{wq x]vvuphk`~ w oqcd|tpds kg ulypprp v in~ ur   zr vjfamed|rS` | | R_^rwXrwt ~ rfr_nrwhgoi_dyzqrs o ct | spu lztou\Mc[VSb_SOWe ypbg]^co  {{ ty j[J_^VcWIhoLam v qqo w ze[mwz  }bDbjTKes s GZ { yp xmyeTefbjqglokre]kamsqu^Z]~u k SRphjxzrSXXacsq z iwr v r |{~ } khm \`t y z v]cj^} luokj~z y ] qo  {s mdlpown_hre{ p]cYdn h]sqgfm k VryZ| x uh wysb`h} vx my }df   z} { }hu wrn\  ~u  xts |  y d| }mszwjIfci  } pkcd t ieet} z||pdiidYwo y || s Yt k g` s`ujb w {q^ivx   v}  hxwlqt vs_M lW<H xyxv~}aqaiq [NITaq Qs  zk z |l}|v v `ct|fp j^ g]o xrywuw~ }` gt }\mt |oq_} u vy|nnp hz x gliqms ~~|wyxqu ~   | |   svon wsfinvqSSb ~l}"r o }XW qmdkslsptykn~kSs}sx a xyxpt  u {y | {x]d[[dkz{q{gqjq~ z\gw v } jrolswb w lrus mf  m_]Tfijo{ukwv ^l Y{ dn im}setw| hxx z} dooq tT[vgmih w x c{}` y thd |{Has nvcWx||X kl\rzc_} yhntvdv  ix|vqWm{|  w uxqml  la{ |puln l| bK jnvdu~ihLaz}q wvpZpoeetlt  xb kzqaz ombdfustwk}y` z^_xtx yqw|s[^ceraecSS]~{|{xbkvrux} [h |s k TEy qbY | |oyy |jsd c~ wlllvlmcrseXnqlrvpx~ ~ n eeqly w |{fj{y| iol   o } u[fZcusytg ~k\n  n ytz  vTmo n_hpq|yu|x~mmsjwfpfm]fq}~{z   } { x [m{  j}v nr v w\Z^evh_swqjh p{ { uv{zvx jyo_QM9a_YU r\l |ej }[y xijijPXxod g[mrw|pakwrv`tmx  r o o t{z  x    z  r e~ xtqxo|x ibo g wx`Qc y z h \q| | iy  %$lj {tn{ rrmh\`s~ nz kn voixt xit to   ~  ~| } | x bEej pg[ n^hqiYs`yne} txvjhnlo { hjxvtyxnj }cS n|[w ~ svubizobttZXR^ n amggjd_e x y u o qcckjghruqx v` naaua`\]qh~ siX\n t l o wt x !u ar y ttepmu |m^jqubu|nfj   ww  z trvrou tzf_]f\_}lwhn^pn |v~nocbVdu x__ac]Mjtgl | zvqJlx ojg&&^ uxkr Ou{q  {Rt ~a?krSjnpvc|p  ~   vi { zle| nd`jfo~  ph~i y g yl]a{ei T y l o vy g q {rZgrtv  u ~  pqs |ipc~~ q~q{pjloy _z uZih_mjZr|qmVZ zps_o{icfbf} ~|{p } x   jt|es  } hdZ`hw S]or ~u| nmobphRX}rwhdmf{~~tuxmn`q ndho tktpuv{^e{ gd  ~ w | ~ $v^^mYE]r l r gc w}qcp  sx w|q[z v sf z~ujm  qypkg^sndt jfks xsty{xYk | yoKQWQ^XakTVxkENj]eUhj`MSr ~r^Wfk xojq~|z^` ~T v[i~{ xqgkhQocq zyiwsYhnw z^`c?lyk}upoVXhd y jTGsu cj } y uc"x~}VMjzmyg ~_ nYt ks  y  pencgm]k~qzxrib   xg pZ{xw | !{h   v  }]m ~k  zvpaT u v  } pk { t ruX_ w vivz w  o xkaohw r g`u}squ|xg u |wpttN\i\\L1OSVSE]`c y riqjv|ts r dYsxaci m_m { }   pZsqVMc_X\bfgl }zjh{qkukw h}y}zOq  up x yev} wUn}urx   xry  fy nqhZr { e  t  x } ~}|rn`fine_qwrojqnj~|tj^P=Tb{os {[q{ }mxb^ xvxcu ^Ynz u{ | vmotwuojkils pqidfu` k YZbkXasp  g ~ |n wi f zh`Xw y {velh`n v hjS` ~ }hew~j~is zn{ tia  xx } ~ }}vj{~} xn{nl q dfqm{mLVleTKg{|hnrne r ]Yyhuhfq}r } u p{ {ivpwis zh ssysd t v ~tr r|    v`Yv jh jbeVc|{lf]utXm gl |kpqsvkk~sp{ ~wr  o_{%# oyyprth_ o |tkw seOR^Z y ~ x r s z  }}qx yvvt|wii|oh gZ l YSou lmr`gmuxWSdc]b^ePTe]VFgid u kk xm^kbcp si x }wcnrgen xztyz~tisjhpzvkxvg y nzd]pkmvqxqib`Zf|w rpjbqecluqs v nx { u { } rm_^mkaOtt`{|~z ~rhsm ~q|  Qn j? ur zu w [u y ci`al^jj`apvtxktj |oQMBU{y vs]iujwmk }uhagy s _Qy]\jt {[{ {qjnjhS[[X\d | ni^so  d[[lbkpte~}  |s  xw| g{}vhSijcusc| xs`f ke{zpy   z q  ys \bdins}q v klzvzsv sTjp  r  zfbyzno}{u     nwsgZs thdRl fs  jqmg { { n{ }]^aE0=JLZlqPOovprs`juttpsrvkQnv lvwyjgr{ szokh\uxqy v |    KZtqztTPe\jq | mp} gkp r z ~ i]h }~ rfwno } uw~acR wz Tr  } }|bzot  ydnjmtw  u [ v x {xyvft plWj }amr{{`} ugm qSjopwe w {cw lo m  ! t v~ \an_imkfavqksnw x|sZvdc sv|r|~{y|vt  kyyz~ x}h{ ~ xzxvhrzzpg]yyiq`j |xj{z x le}  t   rnr ~ nq~h`  } |xwv nq{q u gqytos qVbgwy~[pz lsmUiiigYilitnmz p  u o b[i { sqX|  Z y }tt | }l zlYvzg`u h`jomnik pcv ~ plvby}uTjzy|z{ym | zkwy  Ut kz~ whunq|m^\k kx {zlnzeja c v xxy~  nuzx |   } l {z  wfut}wn w_  xip dS kz wlrrmke__a\VQQRYdsyy kg } {wtwzkc}izsy{leraY y vvx vsil_g} ulhrn]} pzzsoaSatoteM^ki\VORSUb [hkf q  tt wu qedqWixXa |x \PeuuiqrtdoaR |tbZ_j~vx k |g~p tfvcMrymfe^JT\`KIf_O]ghmwvmS[z lije]Oay klkf { o]dZgpjgkpo qrcV^~ | | {}  ohlVo p|l } kike vljtytpvettcm  o  |z}dWNQ k [Us   ~rdhk wr} ms]OZZhXXe_WIefO]QQfcZn K>I_URhluo { } l^U\khcnmuy s drpoqka\rx^YY  s s tt q }rk { mcakk ~tiynknsprmq uwv\ljr t ~ah s pShkYcox }x wsu x{tm z \| Es u}{|}Taif }y l^Udb\l ~s_gei uk { o`x`Nfjw{idwuugf|tmxv`T } ~ Z[juuWr|pmu }yyk rh]]SjynZEZf] ~ tnn  ~qsnLiwhxuknwww xjgiy ~ |n  k{zp gu  } ggxxih }~a_ |x  p{t_  zdrzwqj|er\`qv ~ ss||w}sY`hytp ~p\wo{|t ~viv|gm vma\k y u Wo ~{iWiiu ~ w |pnwbjjpcl v ted]^k mh yqu rioqiegaF[ohV^o^ejU\pez s | tux puterooouu} z \ewq  rlqx} yqhe u o z z  |z}kw }y _c{|y y{bl Z{c x uy}lukvx }  vf_e~p   r mxr  d~ }y teZdkzwpy {a xjeg}owo~sl nzzxWwq  !(#uqzhnz   uq|}}yul s_!!x{}~|z{|ov }}jx }t plgclf]p|u ~ oy ~ z z  ~ ih ~mtotlbe v s qg~ua`w jrddmQBimlrhy uwxpysij] x nzpk di\mq ` | sxul~yu r { xl mZltgfgYjuw~Wkls~~wcw lWUdqgkfZvz jhyn y}gjsz{o R_ilshwovtnzz pqgZ {  oz y qict   }  z pbqtyz^ovr   t~ y   v}y }|ysIl v |   tV^~ p{yrxlkp pkf d \ZSi pi% ju ! |qV }~weqw~vt m mf rp|{ qsw i r _Rjrco iv sgt t}}d\aa]YGF?8@9FFBB\xqkx~ldi}dut s udpxnm|rdz lY  }h[Zg}|fm zx`Uun` }m|xeb  tXw ~ z z ugq t ssS]a\aqw qde rnhP hhv y wzwn t tlm} zf[mtvolu}tjyybCQgu} dt |{` uy| } }po~k]drupmZpkez n  |}t sW[ ra]w  y |twxt yftp udldq v v ~ t dShh s}ol zqaLY rc\rqiktuoifl }yru r oov}}zi{ uus_kpn  y v} oqwkts\ |lt~x m\w  ~   yx}pcwtng_og w fiw`Saoa r qefcis |w v{imX`nortxdfnsP u Mp x{ ~ inu kv y ~ hwq { { xy{xwy q |e~iXw { } r}     yk\go | ~ r v x y s x fcbm  v_ll`rvwxp { nz } ]} doVQYhn nt { uxn}}fa[inhd { ~ {jmeZm s \]  { jiw ~s n XVx s ~ pt\Xx|t aoztgQfjXoYP\hxln  xrzwvzrs { n | } gy { ionTZrqlj`hqv ~ry lqxxvvqw rr~nbahclhrp|}~oos jc|  x y  zv x rhm s ^iy lOnvzZ]l f xlwoopbroWdlnc_w[wrxq} ~   {qroszhOu|``YVjevwssrv { x[m ~ z[Wfsrzs{ r SU ~ _ | bf zni k  v qdg y { }~ iu~mz tyzrsgw z}j}|oee p#* zw^l|}d| v  u v   {v  px}a]xza}y_rsfpcr mo rs {    zzy^{| } x yTf   xY` || tul  {z~yo uz| eds  or gjn m~{iLTYcx ql pS>Zefoh|$ns }nm nsjo{l[ko~fb\v n ssgcumj t wh priv}xuzx w bV^gvfjmle] }z olvulj`x vaYjrc  v~ys| ~ q rq}g u u lt | n  {qZusTmxj_]y }sen |     zq%bx _}tlmv[ekb{z~ m{fkxk|qvqlYaby } Ysqlw rUZ~~  t~u }  }yolaskShk y} xW{ ~    pw u y x  vaa {fgy} kntdkbWm oZj v[ z muzvxqhs{ p~  }}qac_t{ nYcne_jkntogpgsut r ggxlaqybdtula{r mz x o ^U[rr[^u xia lq  q jk}i  yml  wyv kl{to{vypMg| _ovr|xod  } y xq zdwxsqv riy ~pRZmrxvx[[dkRliv|uum xaqsk qcfz   t{| i{ iqos yxiioWJanshuz~ { urt ! x {if   o^poqzohssnvp_ q%!y l | xu{{ytnmp }|  {tr uw s|| agig}sy ynowmtojy n |^hmjq{z vn|xd{ ~ uu | qn]_cl]\b\dSLTPCMR]Sg]kUk x{  {YV[_=b} uIkyjmxqmqgmt u{  z sbbrh fw j` |umn xdaftme {ux  sbTw w ^ktq x{|{ }qsq{mnnu z _b_lv zl { }dqu hfg k h`cq ~ |{wgtwggqifdc_^XfpYJplpl`gufa  j]eXjo wu ]lzv z |u{ |r{tp!# z nsswmiy z y   ~ |iqmKi  wrp~ } ~ |u puzxr}w ~ ~ortl | ukbubb_{ ~} nd{| } lfdvzin}u wns|]s u} t TUbU_Rjwu ~^d r{ u unWz~y ns ~ y {qsyx{xTksz [g{eyl`]Yn byzqyxfg o RM u oWxw{ tklQMx|{^q ob hwytom^^jca y pfwuzr~}rxmpjdjms~{mYT^kd ubZc e|   y~r_q{n ~  |zuvr wx| x|sjh| x v| sy  }  gv wquis|al}lhe=Pm uz  ^cy qas|cb zzz~zl m  ~d[oyl{} p   pqc qz  {s{ l y} gUdji`Scm \h tm~s | tzt rkxtlspv y h]tiYH]zrWwoz pz~rm | xgoesw  }tqp  ~ zx z v ks_g pUv}nxi\jnj meoy Uf{n }|sc]gnbgn}y {hwo[lzrURhc w ui[WZzxmm~~   taZj\|}^v z{ rx  p ~    y{    u xx   fq dqyg tap wv  rvq ~| zuk uY xYT_nhd r rcN_`qrl jj j^l  fLMbPZwv qs oVRX`t\^ftgNu p} |~znwu     ushzphzzjay oq njy diffojeo t p lt  {kkgtx ~ {o m u rw ~ g\ iw } zjro ~ yo vo~ uu q jju { { fkknuppVm} bgtms  x hwvwxu x  nqxumpswypk| giw |s| lds } ]jkrw| dwn ]xdvyvpks{zu vk{ti} r x  wwinuZ@L]higephqugmls po t dPlr| tm {|p``ltvsfqum  }q_YY^blozsm`l |pmYTls\Z]w v sq  xr xlvuoJaaYo{{kumcqskvpy| vhrq[p kouujnezfbgo}hfv kVf r z[s v pYgkg{lggmpHfzWg pgS]mz wkqq |  Ow xtomy {~zi   glg^`cZZSQ<:bc`ftzrg_VvoR_g`sppnm}y  ~  x | t|}jz ~ } zlnl {~ mlw iSywt| uuuos ~  wv zl u ~vv y tp{us }lNqhm`QOU fSHd{ i]VCUYqafqoq~y  r| { } qxpqt ~ }qcb_W^iiTix~tr  }av tr vlpoie[x eiln  stio kh {thx y h }zly| { s} neqhcmqeSfv`b y pk w ee x|cjrgs r _fo y yduy { wh  iek u x lzsvneqm{o }w eo~l f}tcgnoyep{\eqP_s}vz}{ unbckaVtvs  jh  |^IiwqfSkkX``es w x{ xl\hsegz nilrhr  z _ t go uhYhde \Q~pIs~zurv | lr  w|qzwpz|| }~  }ry ~~ ~tpnbeqi[ns~{k ovx vwwywyxOXw v t qhb  ~k gt n    }z`n   qsU~   qqkw]rz rxx ~ qetz wuuj{zp^Usuhe~ p  q { ~ydx xowh`qwc?PyvQpggg uxvlx{xlmr spitw ~spe  se p xPw } ygjd_aPYenHS[Lz n\o ablpp_[hU^mmt|x p mh {bs x u \KIco_ZXchsot  tv    r~   }sqzsgl^v    w     or{a tjQ{ hXjz{y | ~} utz   zm  z^ su ZMTbYHVo^``Wb`_Zo{mg ~ jTb w vYQ\R^onuwhk  zi`a p Yi ~a}p {   qt srxv z| w r [flZb {cJc}vp il   z pjgzbq wX\ij ~ jaak n r xqR?q YereT }~ihmaPvzqrzxwlqvy{ebbaagkn_rrqspxgzsn |   rx} { k  u{   w}~}u q}  bX]yrktp `yflrkbn { uZ^a^rz }w pjd``iqlvqjvdhjsbr}pxp|wYYgqq\U]Xk^LIU[go s kN_ai v nlx sn^mykeZ[f][qx kwopncl vabiblh^J`y ~ v|k {u u jh{zlx{pmfx xl[^ v | qWt{ckjop| q | triy | vu]bkqunivr xmmhmlojcllev hqm y ighl  }uv yPj~un p pnYgrwlai[MTrs^lectqgqwnpb vqz wfc mt m mRUemdfy zmnyn}euwggj}~ f | y y pz lhn xu _j smhbl_tr_pd[ ~  p} riovnhldrs~} v\aUcncfmqm }wy ~ v~q ^WR `fLQcU[zxgxtweif\Rfpejr u_smfjrYlhj`Vja_knegf\Fa zli  xl  `^glefs ~wu^kqdu { fr v kkd[q yhb y |}n^ ~w ^ wkQozhh_Vmr } | kv sfqjf y ml ~ g} wjgep ~ yvvq ~tkffi x{} {u | no\v |]gv{w n zzz^q lv} couS^jtv~u  ]e vhd ~ xdw }vwQ]z sO yjebyrm~sbg z t_ v nj      hz|dm } d z oixe} u $%  r\ Zrgzlt uy  re ~|qyf}ok ~~   ysx tvxaeuis{xrVlt]`|~uf`wo^\{  ~ jr"! ghpm_t { u aMz|xb|NSfnp  \gnon[\jniNImeqqmLnsu W |y TOq }~x}v |u| j} cPdvn`qqbswbcjsyh}x~ u sX] ^nnl sy} yvs  xkr{yhh]nj[X m |Sygpkglaan_jv xes rT~ z fx s{m{ ko } ur{  h~ t m q { f_f v {uf bcoapkvmrnlhgvchuegil y]itu ~zs   am}mrsk^ZJc~~ t  ~a|jqmq { nqzj]UZgqwx| vj  cfoc\f rfTi n[r l\^Z_Zv  pdziiemobe_mpovwsz | upe{hU j"|QcZp } z {b^r}u |z} ikll n_ t\\y x[i| j` gm ~}{ fxXfhn{ x Ykkevw r _SXuot tlT fvv fV }ku x cDdrttx xy mkkr{|}qnkkiinrh  |ly` n z nc}}{zlkr kmv nbdddjo }ro]]ns{e\\lkjjbIevkn } lUdqlk\_Xmmptysqw {xxo zgh z b^^ n ` w  ge r zqy tpdjx prps mtrp y mgh\bpq  ddaakf`kmf }  rp u s t xl|{foosu}w }g`hv|sssgyw  vgcb| {m~ zxlno~ v lh  ul t jrggdck ns l{kesmhzw {ahp ztwyd| wlp | rhkJfrccq kmqr y fmd[b y ngwx #mvwk m_rcrry{} }qi t q iydj f^ w yox rzpj | p | x ifMldWSPm p[LSlso xgm u x klgpsh\uy lPEQ[X`IWMS_XNe ym_kdhtu^mhyr mrpv~slP a"v$dp qboyn_luwzupq yvun  y swe| |k y t | t  yms o flx }l n eIix u^YbX^khQp y xhi ~ hp ~ p x k {jlh]d\YB?UZ^_fv xsqgqlhNknojkw { ~w  }w p| } ~sxz }{cvta | | qgrodiuzq\{{gt r m cUi_i| mrn z vamveSos TgwsmtlVl lozc ww }    |  y y udr }mpdhvuQc {_bt ]  { rhroq`so^Rbrp xp n| v \| ~puioh~[x  uki~t  |} o s tfpcPm|z u {|  {{tafoxuujxto {p ikrrtv ^mbXR]\w fe]^bUmt w _b { }  lypdoYfwohi |f ]ind{kj|msrc_kd`^hmfpuz r Weyqw|Pgaky vq {w{ kfvxr YXlsshn  sy l cv | gieZv_  t~ffw~t m vvo r x^j m zi y grqlfgir yntwmmn t}tl\ p |  m_J[b`|vhoqdWholvT`y ^wxt  ojfs s v meo ZuxoUmrx } tslfgyg[hsnXWl\ukZsyew oekclwbgltwqc~uz|v}m  ~}rwpJRq xr   mj {oZ|hvw p^^hj\dYilrwspj} ijz av ufp s m]eflz y ~k~   i^unolnj urvucDQi u h i _hp\n m_qzcd   { ipoXN tu Ulowy]t{q|{`o~ xt {  tdbwpvp { mwyk x oz |yiljFsw`or`Hieh y t yc`m| w qp\\bn zwvw~ rYt }vvrz`ta;X^MQ[`ikrqp^meMOWScpd_eYsr]dz~ybfwzvg y } | s | z sflvu z~qlwf[yu vye } sy {`gn { }y|v~wwntznkhh |  wv u{ y wnui wr~ rilgt{ o` adsy`uneUry|lh{xK`w ob\XM] ut ^ur}} xkpn cg ykx } y  w np  ^xy   p| {  gh s[_klwem q qdErm a[e ~ hyz  ~ myk {m|dq pu {ypt u nwsroty }dfwynjla v ry be} vy l v uazwjl }g^|q ew { im| ^ivupojgs zz ku p x r zjlilvt myoqc{v]qqpihlll KPXLas glkx  qd u sk{ ul |\fvm ~ s{|npk`_furq [Omu| wbhr ]YieJgv xs y jr { q q r |YRVjdp ij^\f|pZOVgxpjmnf } wtaX_]Y[_dskpnx}v}{|   g} auw~zzyvz| lZs u uk `Uk[kn[\Yptg } vcm zql xwx\nhnlzs}niqty ~aioqo }u ^`z bn  h\^w tT}   p}uzu tu[HRXS\]]mgIm  to esZRXIazjzcg {q |~  {pwf i{owpmzvutswuo~u  itx  g\jx  { u\ioq~brm{vzsPS z tu } be  r m }jjkR  q~~w wqby~ u  {t u lw z m }xv { Vzqt uu  qprZ`hrjv{|no  { ~tx  ityZpzwkkJGfeg^\gfYXeHAC^ZWg]qs`[ f i x  yyqr~wlZXMWm\fe^ q c_q [t wvo z mblnr} YYlShzcetn{ {n`Yp ngq [yvNWwqv  rfh}uev|w| qrk s{  xzluzxsza}w vw{i   }z {n y mt} ww l lwkVn \f u {uw yhgU] scit zzyhgry_y ~oy y ~ vttunm| dTr t n}rju\pcd } sabloaf_g}i zr] | d[r{| v zt`Z xohzyx{Xies rNYq uyxtn^ep_`wv  q pwx |hq~ucxjM w n zsWgZ\qpf\Y r akhia\`_j} xj||p zyrbqhhqd|q QKW`dcejji yo bksjz  qstpm{bp n svr p~|    }l p ~ha]eY[[a w | kXik } vvy [iypift~}g o w y{~ {uyzukgWnm~ox{ yxrk |uo r| |~wmqaiofX}  uvto[pu` qlx upSZv q[ n_lnMbqnr}ypqiZ[yn~ }|v ts~vqy glob}_k s} si r_KOZ_RXUXXE]^e\^qykwx  |bvpd } w ~devjgzyjbtugr u  t wz ifmnw~bjww ei y xuh ~r  | jo {u r |m ugg zci y ciops yovfruuz p_wok z u    o~{o^z l{hfh_ o# sh{ ~ xyy dKd bgsfTEd ri`{pIM^fY  x ys{ wur $lc  qm^plK\ge^_rwpxuhY[oj^b^nk  }  {u{q ntuw{uppm {{ o ]{yp voo y z |~ kq c  fbl`l smzpp|z^lqbe]\y|} uontu x rp | a{uhg`w }dagbVtP[ {   ip  ~ }fu cl}d}hn|o^ay |jwzqq} ~ifx_`q m[PprpJcz m v v  q x } |y } oorq~q}hfyyxp |e br  qy o{ msku q|pnzg z`u ko { | o^w   p x~tsq iRZey {ajm| }f   zj| jcqp|f_zsxn\Po\iunlez ~b] }Ulzfpe[xu_po ~a { zez~o~z}}l}  q ~   t   mdlh^jybvukqhoebu{ovzbtzb` y libi z znlfYPdvorUn|j hcUk s{hv{e^qab ~tmbO`t~x n q k~ xtw n h l p ~p gvdsz efnlx|aWtrZompnw`} enwlhw|n x xz | yfq{zxu sirz`gme{usuji ~ y  q  q   xyl]ctrcyxcdm|~ o } q\cUWuiz }tu { zf`ngbk~ nk  vUhtdmprp p_w}{ ry | }v{ lP pyrys~om  vfglpeiZ\wg yrXy  "xk| { |llxbtvtexk\t ^U\l vzie } }sjmwx ~ k zsbhaq q~yc z~zj]e_cccxotr  ysjs |m~ {  tvfn khtq | }u nr y v } \n}krhfbU]rqxxsmn} w{~q q ot u voa?_ w  yggWujh pWg sr  px }  {ty{ |ghgqw y uaviyu_mrdkrs |zythjgpmirrt { unt sryo[r|z mmeQddNx irkvjgy} RVo~ n{i p ('w|}vrngbl rm`o{ gz}xz ws~ }{szvz aVgv]o ~ p`n l OS m n kpjifdnlo zooytyw at s _ll\uln qvoa[pp`gw } | nruoqeaylUflt[n } ~ nkynjofvqe o Zc { {r _]ZJ\h]Ofl \kcawe_k { gfjges|qtwmtv| {Zix]Zk_[s  }k~zgUpvt z ~ l_bz bSiki`cn`CmeW_bXI pvh s zj] }  xs { uqmt b]vqiv^vywxxTdxogx ~{ w m o } rvo    wq t q v ~ srshgbSQltsifoldm  | ebZ ~ }k   hnxfmolrrgxl_kvez zvqmu`a|kz ~ { p y ^ {}{fq yifc]LdvYXp}ny nz y{vow d nuopdUa  qi tuwyu u{ ljp ydu^bo^motvz hor ptu&x kihe  yx|b {c ow{ u s{} x pggxu }Wko~vqvv zgp |qUpz^h }ypvsfm vk ss}qo}s vo~zc} vwshlm  }w } lz}~iVjqu~m}xx h]pq  u  {~ hns rnl |  t\ m oun`q o u w oskt|zn z tp | xq j s}^ p {|  vym q^S z } ]o ttywfwis tI_tnnae^Za}wnt} USZdx v `YkbruaZpv|  e]| uYdXa  x p  r zxiftwk y vqu~ k_ouy|ly{j~|dkrfr } xo~  ~~ wpx  xiocb| y  kdy m   q s mfd t ~  w  x{  qrgb   g yfYeh]Ph z~ yxuzq mokiro zs Rgle p}{ xu~ n| nkq^pza>Sjezt s}um   lh}n yonkx m chw uqgs| x qdno x] yrv sz}~rgihVjn`Zrz uvhg y | `_\uvplpqt ~ xl |go{wsxzy\_u S_rvd]r   x y  mp qujy{zt ze v   Q m v rmqwme]^gdfoxi v_o ~ ~ y ~ {]hsx z z Zvunw_l~dk ektulgnqzt} }t z z y t i} jv w_hkahff  ty } } m`[hs ^Whrqqi^inftoWYYWUj l Ymt` p~ m{bcwvU[dkeb^NMln ~  wtvqnkmtpkhqvWls vy } migpz~~ww r} zyp t^muVkwcOgm [\o qo iy} grqn  {eg` v hkm]escd mmkmcb yygo xvv  xzmw ~gemUVoc v_dx{ wzusihqnQd U\k\^`b r i N` r iZa\N\kk }n[]j]X^ci | { q lm|g y`d z lqv~ pxemjo w  |ueZhTOvrkv~xx pKptkp xrXq}fs sy | gWwho }gq viV^UE\\Xx w ]x spli~s q }kumzx t|xvgqpukfgingj { {xefjfjlY_k hdhPUdi `U} | k[`x v  ~ bot } |   ~ osm | zv ~} hl}q{taX y a~ hlz |   ux |`\rzir |iyseesryuwsNjaV`uwzdQm wf~ nu  xsqy sl k|  gt fzjn|fj^ynq|ol|~ ~lu zbb]Y p m |TdZQ w  b wd| bn o}whkm_rtdY ~o^g y n }W zy~sdWrfUc`|sz~mqzs {\  pk~  {vbo}}v]w eedRJbt z  kay s q  x  y\ythwr}z{{nn|z{fp { | | i kw]hoglrbZQex bc ymbdWx  zoxvp q c o njprs o]sys fo}zx t d~}|~ ~  { p  r { x }  |riksxwu | } Vl } v  hdvU[v ~xx l[  Pnyfk` l `}  trjwWUR`tpjgz u }ov z dd! }ma{mx l |w  nrrat~ur~ujx { pxtu  |pu~ ylvvwvz  w}{tyj} hs }|k\]_ysxu ~~ke{\Xf^c]fhe~l_s ~ nQ` t gkbu]MJDGQPa`bacb u uqypxvy     }koceaOen[;HW] p p v }qdlgwrXQ y |p wkzix { xofr}r } z s}f }b | k~d  |yzwyxqhi^qwm_YjtsolvviZSnt^T x vhgh utgx{ wpu| ~ gj~e r s zp _g{m } ax lfl s^\p o iihrj|repSamsx| ~}  xB eviXo {qggq wh_gnZjaGNexocm |xqcewj~mneoV\ocL@oseLOY[t fhn |sy  ik xp d\Ys}hs pxwpvke~szv ykk { slx zyq_gog  |tj]V sx h vq^ | bqhhn `chm`W]ONZIYjvnytuqkssk_kq Q]ifcqglmXRSbcklccjlkemegrfpc^i w a~ x up gnd dx~[ { {aamunx qYn~nv  ! wtvgb o gT`utnouv{| gk } { sq wep~ide x`S[_ wy~ mt| }Wj ]g |vb`z w er z yov wr { lnv x txufroflUPOeld w~ m {qtr { uixifW[pfhluyvq }j`eTZ|wt  [v  jttvykpu_Ymbnudjz } x e j a Q_b] {}^vwYrv fVaTUmkTTXPgle x y{oogpd^hcphk vykedh u|[^h m o sah nusT}~ v ]dpdVliHPinq } }rz}uh t i  v}| ~ s|mso^Nt |h | qu}w ~ z W^w~prqZ|rgcou|fptd  { z  s{ wi~ jw  nbnn_Xx w{ o t mx~p }w}w|y vxvXb]x z\dZIipn{x` v^ xjhpewnw rt{pp tZb  u u w y ^    xZvr wkw ~_  zn  ~o   w~ u{ l  f u o `V_\fu| qe v ey mku cy i q  {z  sgdWf~ ~ z v  w |v fmtfbBU obawqk]Miy | jkx d^g\dc[MZl wgv ^avtbgcJekqstqmfa| urq qha^`fhcXfPp z x|diwu^Zdn j d v iX  Tp tzh m l  pw ezuan}  x nys yil|xqcRY l q |xXh  mk_jy| ~y  {h      y j~ |T{x~zt  ub~w{evdv}o| q nn o { {z[e}yqcQPTgnmfz pf sikl~psehcbyw` o ~gs v a| i]YY`Ynihafb xsr}h~}infjp{zxydjcj]Nnx m_hkagalyyxuecwsYP x  fy{ uxnx ~ u`kuyv z bpwi pe ~`tdg yd  |~wcooq~ y xr} zc_aw |cZ w  eX x uodQ[ yta{wkzim{ptsuypt} hg^ lm YWb_WpjVabVK_h UKWdkf[of n uZan~yxqf }uQYthn]lbWY jschtx ig_zrw}llotk|  ol{em| v kU mkpm`S]gn_epfM]rkc]aspp y ws wk}  ljz  prxox }ktlb} id q mi xhZ xafgnuwrq  {q~fpz^S\siwmrrgst} py}cmpoglgt um p |  ~ su { x~p~t ~ yx n ec| zgg } r { yhqinvr_fgjN[u dhx x efpal ykgoivxy   rd^ j `JTf yrojiwx g{ x gcOVlTRFegeYOGUhjt}wr| ek _n  ko {u{z ~ww  ZgprtxyxV]]^WZh u ihy~s~^[Vk vbW zyu zjjzqTQjfiZWshW]aNW z  ^crss_q }sqveqv ow uzyzr~racpuwg j ] c cbZmmKZktdzwil| s `Wjo a\P>FYcqqclw yzmw`m_[v {~~ pggt}U_j{|mneh`GlpkdXZcNFs~[U`\ep k]{ }qx f_ s u |{ ~vw s ~Wiwlyum so }o~zsqw{q|~o  sr ~{  y { qrz}    rduz `t~ulwqegr_ryhhhfkulw } {y      uok\t{i w pWpsjw wq y ~xo {r w w} zg~ ym} m_u } tk}zf z{tsr  {{v|y   k{ }p  p^pr  } "   } z stw z m u~xtw m| ph~ tt|xsqmwhcem yuz yr umx xfRj y xivudqqy|eJgukXS lgm  s v w[idqttup_XyjZj|  | xz xu{^u  vy ohMm | ndgfa[WchaKo  z`r xtikWPf|yws {a {_s{v ageonfW[jkkYGT_WidsPj}} ~simjq }env `| we x } xr h}vYhwrJmu~  o | |dn } w}}ljzxy|y }yq|twx^fw  {ngln ~yo o]wnkstx ~wk~ttri{ rqd]kt Z^ks l x {   }'(| tzu t qxys\nkggUV\`Tcgr}zhp kqm_ u s | q x wo{ ma} tz  ysytl Rb } ulipPggT\SgcOd^Qo`UihljZlkn rytfd]x}x~  ||u  kexl wxh  op    ~{ xycd`IO^Si v} |rdtncd t x ^Vufn x e `f~ pojfu tWQ]Xpn xjfp} uYi w vs|   }w~v|rnv` nr _UY!  yx}zkao }us rpllwzhvu { lg | p|~{c\begbck_iwk{ vfvu } rfiYZx t k { z xw  }  y`t x a[e_qk {  noilahhWimu\\`h upd r { } tmmkfhqdiq y ib]J^g` u   ~wy{ _m{ ~ ~ wlksj`]V\k_s} gZV k jYb t vtvrpy {{~}  w w z pqfsvzwmX]mls~su{{ k g] v pwidq rqtgcbjlnnur { dnhcoplrh r v edez y cqx v\IW zs_Ql} fm~u r  w^] z w \^}m|xWWtccppl w n M`ptuw|a_mr_l| oy }{icy  vx{whl[\X][vh w u{v z mdqv y hJVk x }sw[v yinRd][ y yw tigq~_u} rxn w ga o`c_q kXdh_j n mmrq\v } r l`YCISMP^x { ls  gz xssm rai u   z  | q  } iYi | yqqusxgqr\{ }jwaw _  ynqfibflnsxzwun||qsovkswwjq\   sn ~   ~~xdu v x kn ~ yt~j`gwsw t   ogkvyv{{ w {{ ~kqxdj`pzmo~lso~um|zvxq{`kitU| x g~yy  w z}wntuln{ y ~{n~{oglbldh g^ p ygx|tso{]Nq  v m   | X{m[P{ xw^v_b ~ y ffcopvw i  jr}zyvwlijI_  ~gth wHttj ~ wop {znFg zktk t v d q uv wnTxoWtv} oT[ftokaer{vd v~wy j zY} ~|ol y pr s~ }Kk o \^Wbfk]KViv} !n uevyiq { t\| ~  }w {  }zww ntyz { xpqg{sy jTogfrl vy~oj   mepjW^ac^f`i qc}y w ndds qi^p n |~q ~ | |jp }i }ht}ykv t | dW ~ m ul {yv y{~lp mi~hwr{qkabdh_]@JhismkuU{zq{t ~lvmb z bYjqy } ftif  n xrge^w  |  {  rq z~ {u}    ~{ niw  v{ {j u |`m p~ x| xc`waecuqSup k ZXtwirulZ_H c ]]lu w jk z { fp}gv~tvrom~zrp  puzqq`v r M=Dr ioqy  lju pr{n{jqpim {_jnzjY upovnoiorosvrvt{rowm} fj]gyqpq SGhl\mu{jo {qn yrbx ~~tt v r{fr | ntqqk sqe xy{y  vsgW o y qdqiZfx dz Zjtkb l\ p vg } {   ~z~{oouW\ qw }vsiak r w ~} } b|zwt]NZZLXgtuzukf`i }}}m}wo}z  o rsq { ~rq_NC]|{t[enV`Piglnekryvrt~x jqab ~nl`f { z p^o~u Ygy`f }cam z vUpp]GQ`jxr^W  \g }tcU cnreYho Ld | ~ ~ x sw ujitdrtum]eezph |~v| yv_{ qr{  }   s h]nx tbp{a}wwuaaY]ib[kz vsmok]apsug`t oyon y ~ xswsg x} kpdd pt{hfgU_ifNkp^ v jyy j]u~{oxlf n||`W s ~ rcU r hopk`^ZTgr t }| razvnw  it  { yj!  zrrkxwt~z  xxuo n t n    m kx xmlv    vzrs z swqyjnqq  vq vrpj qQ`zt  u nr  lykt fvimzpxnjgp uSzwg  pv   nq|j  {hrp u zvtx   }yYFymYpxi ySE} sxyqrjht{ov yPDg{r^dX] rv }poq{gh }jf   } v| uGSqqZmjqio o Xsnjrzzkw xHMmd_dip {vho\m{ } y fMs|z[dx xhbv |umv |h^m tvpv xy zfn~yr x os^Yswshv ||nnoziJljWxy|mSj}|v|t^ rcyj|q{quy |  ~ | x |vef susn_j}q_vljzzim{r }  t} {t ``@@UVMkf]UejwqQc z lr_Wr|hcxxnzfn~po |z ruy}l_} qSaa[nxi}rmzs\f { {]coH_\[it~ilnzz Yc  iy | fx{x|z sz~   pt w `qkcv\Qrl` vYc }nzzv{   nr vkxwfggywr]_KV |knyum otwu||tk` |kjoXr{ory y r | ~ nzoy x nvpmt } x r Zj n _aduhgebnnVdv tstn_U;Aa d[WbhQLgt~s} ~\r\b|nmkw{v bl unxzymz~cyz nh }^Ua sl TZ n tskhy xpr     t]| { v ~ um|t~dE_[YWb[`Uw hnp[P`mu u | at | rmcv rsPargpd]cqjm} |  ~ mrkb\N_e y ygncrhq xsl^hdhbgsa`pnfx  vl  nlvz q qglf^mk r momx n]nqqxzh]W z ynkmgg v {dy p mzhco l oZas  zzu[Tisw{jwwzz ~ r |u _ili`ffv yy} _k|  nl{{tfw u [bnTW} n[p wmW`i`W chfpp SLkuoAPk lniy]S  { }| vkt qLc x pzyuc] xu iqu~ wis o ~k {|}pu~vqYnt ^_{  ix u~wokplpzrqn|zngX]uvkpytroql[]inljYQ`f`]t tor ~ sujjvmo | eb w{f| qz\rebv] ~ eXbqw`\`[ovw }urzcP l {pZG`Ykqpkp iTWq {u y g{ qv z }   ztzn  w  }     z  keja xVs w | yr vn|kej u^\MQ\_nodWjtourrg~ y | zuuhm~tpkkoWepu| w  y ! |~ ~ } ~ !'i |i||~yghkoakpf[y \{ {kn }n_m}qsvpwq  ta px { nu|  jT {   {   }[Qddmspax oi| vd_| ggvshz x~t}  zwxa i y x xw wmfE_qieqyxdf fi saXjmh }otoYmv }r z  qe Xeutq\d ~ yrq~} qpwsonao se{ob]wpx}xp x } }  xs  {s}kax_^   wfbwy j ~txzusnxmfabi{    u {qjhkfj qeqy\ x jTieQNXXg}  xz muYU l qZ x| sr w T_ }d\q yx yvknxla[v zjel tc kmb_trlysxxssk tmjvg k ia l z {s z boz w } w aluvsmsvoh{~iiwn~ o]rb[ | ob{ ~ ZWy honhin}mi   v | | yajPWn\a |ez kpvtu{z|ucsngelUekekptthdu  p_VWljTran wy ~ko hr yq qm zn j gcnlQZnwrojabTMZ_dm t{c[u a} [| pbqtfhdbblnc q sfz{ cy { ot w_oqr WP\`^\c~|r~| {veLi y r ~ vt q\rlnr zs p [y { v q {r} ynr^u ~ uri |y ki_cx[dgnabrsvxr}woaHNNgrlq {\kwrwdivek |jncb`ov| r |m ri  rz wy{p z } tw`dytnZgtk~ucq{~|wtlegu~cs {rW^ecW``OOgl r afu~   _U p }|oxxvv |q{u_hvvis qt~z}|bgm  z|  {bqxz j[wkUx yrul]Um vf ^q Pd }xxf U hflsklhH]g[joiWUjaVgz ~ s  x e u t tthmzwqqXefUXjeh xr`YI:Tdhki qwyz tjirz w | petmpfj~z ge ~z | wehuo } ~ pgdqvp yv|}}  qs~twgg jzb l z%\ubnrzcjmNYTSeWTirluoq m]w p[ o o}~rw t `]jnn{w|val ij}  yhj rkNisYXaXSxrz~ x w}~ wswp snx~tnjX ajr ktlt t xew z }  vv uqxgizrk f |~ndju b[QRgm}o  }iwlgtlv~u { kfy#$   v|~   h~psi}u  sqz }t z  }rl ~oa |yWu    u~ljirvuqp } pdub\f`PTet `Od yn |  us  truywefz uwhi} j `  s   mja| inifVekvpcvxngq v tvv  }u|^~pfp |y x uuqq tg r}brrmgpz`h b_vu ~ \xcrmentjfw~tokpeqVWjrq eu}tvxnxzv`} vtzyh^|vl z^h    o } u  u k[NM]^w}ijpu } qu~wlbVX_ qybd x Tvn Of!}n j aYi u x clkow{}u|  nbx ry z w zfk  cSy sj  }|}tiWSt  ujzsaz~u eglnz|iuv ~ { kclcU[]eeU^j }sckeggY9Nimnihh^Z^| v u z qu \qzwc^kk~nWj edlamo  VBio txtlix  yk { x{ ~g|sewzizuv{xm { } ikb]o|ioptywxue`r }qxr e ] |ef o spjQQ}x qijjo  }t np zz [V^hxqoo u|   tr b zhrtt ppo]fd y w_plr  ru m zsudZekcYYlxwq]c {fhv~szs] t h^iet   |r }qv  | z oQk|w~maqur }n   utr{zyrro  | lm  x|t   upoWj  rrjljYbr k~tdddn z { uehqO { { ZRs { motn~p a`acgGJq y zdk v u| } wkvx}|tnkfdty|w\iobq clmii|mntpx}    `\|!utej wsiy   t ~ wz |yo ^i   o|  ~ hoe }zo{ iU o l^Yd~ |Oe zlsinYGcgaao  vrs [t }mw|{pp n]gto ~wm]e`np\en t { { ru ~ l pjad se]idSNG:N ` fmjrswszv nemnw xzhripik~| hd}zutn`evk { } okz ~ts vx|{    s  jlrxvmTnV^_Kgwlc|y p tx m hrW;Xz ptcy f^r  we o p x }     kp yr~qrmYSerhd^ z  gqteY w {jiojvcdie^K>DKK_yw sm     z [}mm l bkdipqim_\sugmtm he yrz  | _g`v  z}riihbqdp yq| lpg^qjz | { o[h  o ~u  iduXg{{  og{ |{ }q~    | w g{~gtlqn tnmj  }mv y }  kgp j`k P_eUWig`os}ql  {uum]nVT{sZu  yeZM^rem rn\fblobvwoip x skl[Z\__lkrsd {eufhjeojbZqX[yz q jdpw~ w rt}eetxh  dv ig ~ rgmu w} s wa z cdj^pl }prZe y~xyzxO u {rpqv v   u)(kn s  zencWqq~u pw qtsaaWk_eq\w   ~}  ygkr}i` { { W pt ] m ljq d]ljb\g`glo{   vaw xtlap my }mu x n~ bMkeE7Pfghrnpo__ki[ejf { nefwiy | nt|rul{r_mj`hlbdklk[elzwgkgy y aBUiokjbccSWu r u y u wjv xkoi~{Zedge`_bxdHl koy }r gq usb ~qtxztr  gudrnaq{xxwlymsuqzocs { { t }~nfpxtjwt l~ ^uaVdx{ |`FlltpieWbzmem z y u lgksx} w} {q~ u}  z  {r _ mbm }vursoeibsucnzz_|k{m_hlnqwxsrn  ~v x  ~ | edtyt l u vqf zxqqkprfo v mw oTp{`] }wusnxosmkvsmotpk |ujp  ~z{ v xu | wZcvos  }pt _] y y sjmlgvswgfx\ x vVKn ui{uj  os`]`pnONfou ^] l}lssiez {yupnjg  zd }luo vrcg y { om vqoymenzsXNiymoc`rqjgtxnrso reapz sxv} o~ FH_mtfjn v z  a qvx k sb t u^^f{Se s yyq wnlzt{ ~ mztqn_b~pm{dgalk|lp{  || z{ wymhhlohl w|zfPQa[_TTdmYekcdhnrxsx{ zuf`KLkv hczyzvriZcpfg |s \`jel ~ ~ tg_lon{{uu m r r~oqn^hn oktweoXHFXclaYsq ~ iw { z t j l|Nb%( dqis {lji   v w  mbnz r{lhu| tq ypex   u m jjumso r j r s uwlq eHitv x  o er ~o~ fhjen |tea\`invWCz ylgcu    {y|{pgt  m  t{oysnthfl |^{{mcpm  { | !&wh skq |rmx gXp{iZWjomg vqxt|v}wt o| h tp nk~dZty  {uy mz  {qouicd { fosir ~  r  s }dy SMq|qskOs } rb_iu r d} wcut |mzzqjild]nfac} u  p { ]uzwwypi[jQZ x o`Xow~{ooptq~ ~ yw qlnn ~!jf~ Zn~ w { ~}z|  k x  le | }nvf\{pxtrQh{n yj^u{ z pmk mnlrXPhjiszkah z is}{~  v   }w }  lv    }uq tlzcflgf`gkce|y |viu ~| }  wUi~hruacXdpgaomdzdW |ZUrykns {s|nketu } svoz}wnj lwm{ drxr up } {un|}  q  x d n xqt } nfcS`eecbjh { | }vwl}q smx prhq~ | Qjysccpt ibmy[\Gb|mrtwwvupz} {_~   bq  ~   ~}} ~js {m~ }xlfmrnhVYahiYeZbsy {ev hq  |qz  ~ y {s {}  }jiwygY^`O]ozqense` |oZog[adoikxpmkWZ^Yn x } _ja r k not tz   wx | { ~mityylr tik { ueQpujge]Zhb_igrwYo   w lXqwlaegc yzogin  v kfjq\_]VU^mvssr tnv gaflirt qWV w{ ~ |lh{ y w} eor qk q  dTosg z] efvqbf} sdmks y dY  gzj  l]u~pqytid^fhnjTs m z sssjuymd` { vemly vxbqyu|vlsshflhULOThcJUawf vt|ubelO NXVVJQSQetxh?ix^jalxi }sh y jnz  l v y yns  }rpuqv|es vsr[XVlot u  { |jv woit|zrn{mp{y|rvwhoo } qpi vkws hydP]nkbX]y ~vrw wplx|    x hqi][pfMU`gmyxvpl |tq~t_[X_t| b\YOcqsj ke| sw s j  jU^ajQRim]MPnzQW  b  jn{uqe`ptva^ilvo{}qJL`Wf{n w ztq  rfPu pwn | ug| ru jWg r eg~lbcluODV^``Yuxn  to \u  oz  z ofuqpyul pSuykuh v  zdfuuyn  ~ o} y v}yLfmxpu~  pb uupekzn  j{ zkz| rb} waa]n|n v t_jt{s  zvzzz |gUhp~zf{|bn }xsb]]tqprro} vy z    reQq{}rTsvm\_k | {Y q |yo   yx y xw o  y ~~ xqOq{rtmurmr s xX`{l]XY`sog`brekiniclkXk qMV  }fo|   q u {  ~ xf "d#   Z\ncs l`yjzndst]Tqo y c`PG_UXeqe`]t wxt   ylr  {  kwxoxxx{ |qyqp  z~{~~w{} yu { { twvw z { zVh}| }~w{ ziotmx _[ ba~__nZu plt uw x {} vqzyum]izufqy|}vj]oujn|yr ~m_l zvxxvugoospjk`{r~qln{u|nj\twimZt{Wmufe`fdTScni cER r p jhleeqqxxwaF`fcrwi_g | pok v   zzufo ~ }r[ly}{wru ~  v   |z g lstry sf\j ~pyxnr { ly{zs`er y ve[^WVsxqkpwnk { ldrlfhgros{ q u c_ZVl v q[sgfu p u} ~ru y mWdj`__f__kjedovoflxo | jXr{z ~ukn u ej yiHZdg`clSiqhmcn~zplkg  |  utx lg^ellso_VnfXe_Tr sdcciYRu {}{r}|dh{ uypgdim wyp v vbnoa ~uOqwhmx t `[q^`wn t w g\ p b{  } awiiupikkin ~ } Xl ww vz|q ~ {ba~yb o hnr  zeu ~  ysy  fovkceco pUc g }]a xklfbahV_ oeb[i pQey wO v ut  z{syix  x`fwyjl zz~y^cprvvmw ff xov nqbhs{{knn s~tblrojertprq t n~ s}mx|v  ~di{pVXuyw nr     } wn}  r { q { qo kkkfjjdqehmg^\q }x gu~da~g[tmYbz ~ uu~ rm}z| q hu pTOc }u^u| ~   ~oh yyx gjowm  \`gYcvuz }k }c } gxupw qvmaq ~odgitqomnj  co ~| o ss y|xihicw  siz     }|tfr[ojPmnwpsv{   sv   xw |V`bd^dsu ~ itmx z lw|sZ{ } {zx x   u}|g} q]nw i  ~ v_zooYqaUx ef~~x}w oUbshte}{{   x jh z {{vo qq{q wy y d |  tTj ~ ugVZ$$ r {y nwomosusqqqux~gt q  xZw nwhar t xSXumfghjssc_[ w | s{{q x{ s `g lMNy ~ xojqxcc ~| || }`ildtd^z   nnunz tx   ~y }}lk|uuy l{~rzvuy~{  y {~ {{}gqz}rexyzxnmjOUV[u ai|{tztm xostm}sdi smdhmudhjyao } z~uxzxr{} | pv \\ RM |zX\l Rdui`bw~ whcaghn|pz   h  ~ l~ dtum{qiuvbqso |~ } x gp|{ } qr}uusr  we{y ^_f ~ Z |cbkeMK]dtpWSn rdcw lcplurrqT]RAcjbNR_VXKMhokztmlcbnvoR]jxhc]cpwtppz w~ q | sX  w{olyvzkf }Vi} r~yl| h{|zwgt z ~sil _\ }ony z v ir |yqjs } ~ zkwtkrrojWljl}q_q[cN^ ~pVdtqccc\ernqqy  ikuqiyxm  zorS_hM\obLdounv|bs r |fey{pnlfqtzy{ye}uYgk\j{tspz n^k|r~s  puzn y {x  wx wkyY} zt{ ~ } yi w \Wn sic[Rshx  ^mu | i  xx}st  ul }!^bx y nopoVahfNL m mW l\[ pZp{ xpa p v { oghq ~ qv | y v klxgkj xYEZhjcefup |Wbt pyy~lnp s sR r alx ubbf}wn_p kq vniwjl  `e h } vzou y {st}ok|  wjc}w{iqw vup~{i_SQNfs wxqysl} hXt x z o[jrrnZTa^Vll_`ojev{z|  t~ yb{  vpa{   pttt { ujbi }k} kn xx{h_`nnrrz } zso qynxliQ]nj|}}  qt`W    tn aw{rv{wwub | qXgp  y ttlw ~ { |vv  y }  ~~w }gy w {z~txzzu{ wqox! om ~fgjvom }       wn{  iv~ boy  { pz x  e~z gytp {~~u|}u{| z_z ~ s'n{ j hqsob[vnk}}     ~ [g k }    ~ qWJUqw  vi{ }~zsi|s qs{whOf}tl{_Tx u avfR{xx tsz  zsoq h v bX^itn ~ cv  ~rdzlx[` {wu wp w y^rw v rfa jUGg~ k_bV`xujkymr}~{mzyyyhsgoMMaaZw  x}{j{    }f~u msxpyy    |z oj}|}}wo}}zkl   wx   ovul^] v \d qp~ ko[q} ]edSh]]^h[_uxz x ryYZ\s|v ylau}| wgwdd [Psyym tnx }eepz m{t^h ~q  p oowlp ~ | culgywnj pit}smkhq  {e~   x  | g! x VW^tuHwoak ~daoqZe^Vo ymv w hpmo  w] {o dh tqxc]yvrjadqdit ulq~{uZh[v lyi z tz x[[kuR^squgush  f p }ytru qPEy xpo  zv { pnpe^]kz wt}  ~ }mQiofq kdT\>T { [dz  sncVd sotuu_\ndngo v[nupuWqemwg  }~}k{li ~ mnyp~|pnrsvx ~w    n kx ls }oexzm r synntqa z y nvqjxyr znx | w zp  htjvxxlw j | dRg|ng_{lx ~ eswvi~ ss|unQa~_aw {sjm^ork\Uu r[r ZSe Ng vzw_cfoc]bbdixqrkmuopuolq | jH]lx |s mt} vtw ooxr}tt{ dof`gmub]d  m^g{ r`c w v n|hiw lkaq ez z ^c u vi {o ziP| h{ ydujmzmicejucRg u c o iOTzVd ~ z ~ ngsqr]gy{xue^q tehwm x x z u`gkvpbpnj`t wjinpccvxuwo  ~|{vxeu z mhh{x {x a {kimcj ngx[aOWumrhl| rs{ojusbPk  sji|qcnshci}|wjoZko  t~! t|vut c^r v~SRhwoslom t| wu jR~vdy ops|  d b vhte[h{vt {k\wr  | ~ muqopw qy  z~ ~y xh { ~ xu  Ydo] x  y|j  {x |mn x] ~ |uw bwklvxkp$ v wzm mw{ R^o  jtqwoeZk[R`OHor|uf} |nn{lvx{|ucTd w rr~siy z^t pmsickhf~xasgx}zvq{ycbw h`rekvf{  fo v xkot   vlwq  oggT_yzpyrwrff w rjrog`qmiWb { }  |nbUa"um~bw ~ wqkmokhus v z   wsur  k |wy]m~ v`y}tx  p  v~qnur zk[q~ eq ~ ~ | | lgy dfnyu]Zlm[l^mzhumf}y  S`ga nOwoo rl  ds~ }{z| z t{ }xv ~ wjkej sqw m{~~| mpqpquiuwlfqs{zrx aN|jk`PadSq _kidyxs~^Y  ln Zpr=OkaSg  n_ t~sq xq x_aWZ\]jb{ ^mthibwl zgP xlp v zpq| yxxw }  y| Xk pvs h  zx nf zga}volan i| c wf{v{ao||kxRFgMStmc`z l} t }jrp^clnrg[lmb qp z s v yuWl ogv xp w | zMXq z mhr zwv { tq uu }fc ^wxrt { a|i{ v  u|kjo{hj ~}gnzsbqe\puw``trw yz aT`XMd  inx xxrwryytv rhf[ZaWY[JPYRSLTmk[XbiTaao xpw{~pryq }sWgr v feYqqeaidhdspVjuq~wx{srbewg  w} w }` k y_xy cdEe } }kbTLp qsxq{xy  b]g ur|t t x  rdbuxj[oornqv~ loivv qme | t^`itrbPL`kZbb tfis m l ^x z `Vhn [WVK[hU]lY>avooodo~ t ty wqox sYip} wY[{UK_UUgebf q} nYaqssrgdnjX\| {w z zu{ psl`Zc`uydYciew mu }t v zsouy  }vvnwz~~ r ufj]`_W |wljWWjng p! v Z7]  w su~|fJk yn uq y y} s | ainmwtfa?Hsyrbu} [m zqcd~weo {p m  niUd^sxc_miw r_qo^ujvwe}~  [kk ~t  c| | V}z   o}yx p{~wzrkh^irt|{|m|}mn~}  |    mo| jz m    ~ vsv rYwlr{} o re wsiut  t{ u}p{ jswnrEPWmeMbfhf]Yieb o aUklyt`r u vwwamtmdg h WXxddjn u  o ~ } q k } vu  {}pdb gc{zwmg  w^mv{rz t w tp |u|tw z {t sbi u | v xz{ mjwr f n o b_ p meOQhq ~ |hQSirmlurvjo v t} z{lwker z} o ~ixyht{y }hytudu zvbunrme~ ~ v muv zw my zpd`vq`hv wlsl}v cx xp`rzwck i_y|`@dzVR`\t| \n xniopgnxmtrjh\Kdammse w~y{  uhk kk t|xy}zyyukm[Nvkyq u qZk cjc]rrl s]Flzsj`P { `w{ l u  vYeyu rkuxnZrujiWb q v z|  }ptbjeUio{l~ y{np | }tpztmnz k }nifMelenfYr~z  ~ ~ djt y s`y s{q~  txg|aT|g` { xk cswqeuuuow v  }y  xdW\ekmgiggn pt`o lp ~ ilx} _n } r]au }v { xt y | sd p yl z z`} m zg\nmdsp rkozoo{zljnqYQhtt`nlcjnm ndlZBOswor bus[s }m|v|rnbToisuvwugq p^j i ^`d rkUf~v r`wzTVYg ~ylw~t  n ~ z ahno\XPeur z v qidqqh{ us   vz m xy]cy~srhv srQe un`vvuzXn}}vysd x  y } |q~stwkzkdl pr ztxqaZWWme_   ~m|q  ynn|w]qu^Wcp} o gbt v indnSbkt wfihh`fke`^Zg uaafX>W  wfr~{q yw v r s~ zZZt TMa]bvxto tt e p}~ y nn~b\ wihZ^{z}vv {rosoo\nvnhli^ zoq s hjqoppsz x mfgiolnu lewy } | {c[   pov}qo t Uw|qj  }{sgqxt hh"!tu~ ~ro  ZUgriS`jx|J^  xegt^nzptpe{o ~}h_ |v_jkj} x   q!%u|z~Br XPi q h_`Wnc_^jzi f    jvn{ov |z   jt}    e~  y    qm mo  q l{|   r u |oi   x|a|s_ynq    { } kto sp { tumn n sj bpt s_gmz~uWijpjg e UVt }rnroqe~xvl pzqb{ }V] xlng z   |v |eUpnes pe\EWp lZq} z  ibZsmY^g qusy kz u~~tvodhb\\S[kZf w x j } x~m_ed] n}bhoi { it  sbg s wvttlv~m }|  s z  y|{bZ\nVt~ z l~ t  ~r   {oj{y ~z szpamkt~ r z t|fhw roxs^q l kz oppVbjktu[BdyYRRWvy[jwwozwaexldlkkqgUgZ]]dpOrzw{kegbh`cadyr|py|o~~|vrpkgYU t pq ~ y { {m|vwkdxxp}uOe|qcigKv Xwtxx ~ge ~  {{ ly|b o{ y y | k { uu~{fw u|  {|fdleZ[[U\PX\ZkntsUkfeko |tzbu | |xzee t x tl\Xjnpnvps umh]""pYhkbWl w yx ~ x szxv xor }qeuuxyim`_dl  y vh noy|psvrty{h ~~{u |` }xl }wii z wn y u   n | r~wijqcz i mtwi uk gnhe| xi|csk_| k { lgl\chbv    {sxtnc{\u V sy XVWdycp} mf  { ep qegfnqzt y r { xno } l\ ztr n r aah]d  u~tsUn zpfqlw f fmphpwoxvgrnjqSJ`XQWkjNFYSgvmip p t~g `x advu~k }cdx  |{ [qg`ghjbLcc }~ {t { ovhgiachV_i v x md_d|tmg_Mb | ~_kwowc ~sxxzu py myy`i mUqtq vt rlnx ncm tprpet zdYlkvdb| ~ {yzht  ot|  oa[VV^^POVXd]`gd`djkqorr`_~lq~ [V ~~ztz{qfu  | [p|q^ | } tpxp`\mnh sbit q y | i{ ed}  fks Qa  tu ahsgu]So k{  o]uY]wx zmP t{p_k}e r  Khf^esiuy rvyr~uj  ex }y ~x  }}  }mtj m } cv x KjxpXZO\rgbtygf  nk  nvk }  { ufrpePkfc  q  kx u Um }tt{prcy  ~n {zp~r~ } d]w{ z ro} ys u}nru  k | zzaZdnqmlop  pt}{pvkczz_HcUQMY]g_M`swbGXpegv yrgYJZmzeYoy ytw waw { |zixsd^{ uen Tnpaosmy~w y k g ahjPM[\Sxzsqea]nq^_m]ax~zw } p s t uustp{ x^jwkgud w { stuo~{r qux eu| q z  w ~ofnmzz}|| zwhg t XTrii|pqrylyzw}|ru {mju y_]Ig|ksvnqbwrlPS^iuu^Lj icSb j uu  | fh |y { oi x ro |vop { fy{   z u ums tzp|   uccuk\o| ychqqc\kj\}ewuinj Ku z Pf^DWZ`z b[qpwwrl|vnsrnSbjRXaY[w rQ[jjigjw^p gy omz pjsdlt i[jlew fjmduungKe uloxl dnobbymh]`n s y y ~ubjzqoqtl|vexl z h{jS |lxznaj{q mys|ickwv|{ {{ mtpd_eyzu ~mxsvxybelgekzy`uzynrsrhO_mkb    wx | lZhb\ w yrwt  ~ vadydz z\ my ~ fyseq r sr    s|oh |yms zp r paj  {kbptp|r  md ~ fz~ i   ok\_ fqha y~z v`l | pld[o`n r z j{wujshUqfStr[Zfopqu}  z |{nv Ui{{nwqzx i lrshn|{kie]lS[fjnpd_k]x rn s k eiN[|bixxZh xmFFiZjocgMimejnsob^_yotx  sputuudqr vin |keU`cvnk wct |_  xz  y tn y p z y _l zj]xujcahgmshbpwtz { li |dyu iplbw|}z } nn ~ vsu}  yqpgo x z t u z} xpv }ww ~ uuv~}gc {} Y^ s\Z z^onNU u!{gjv`}x vn|ywY\`imn[a[LSimny ~ fi pq`b |  jm r  }Sj  yrv  novj{qWez r`knt|wvm   W[i  rP s foxYtid|      |kroPdxutr ~     luxuu{qvourt_   by n}Wu}Nryfer   ihv~is r|l}yy{{zln} v`f yr{nuvNgjdUkcay l~##m m p]3<X ~ut~u|siqj]{vkhqetyay}~mjwtknu|ruumx   k p x  v  | ntz~  z tlhgkys`p  x mup p{  z umskVTKcPVu qpmusv rU]YUHe^LW=`q iuqiu { x { hd kw x[OXVQnml{ |emtad ~ ningvmp yr tih^hnqup{  v mrz z pnw\} go~etlv  uzktk{{yZki[u{}~zk{|pnpn   }  zyzz\gXNg^VnchcegSed`jurvfg }pbjucd Uhyfiphqfx `Yj z k[q {x]]yoy  y } fnut shxrf} w qrc { mw {vgfd`s| s q k }  z  v~tli}xoirlZgkd q tZ { lmgiet wYLYXW\`T\pesv t u]l t]aacftnz tf^]kWcTktferkiidt yhgw } | ^r cVvz_QumpoWUvqfPONekdnlZex z y qi ~ } cme k   ifwqvt`noogppZlog~tq ~ oyrWh  { wtd\j  flvlho~ } fpuzihk yu^\ggWg ymkobMpgU v z }} w z v_uzX{ }as g { |qu _dvz{ x d]nz  wxypqsccxhu{~}zc]frkcw^hij`fr nqw upifaha^{ vw~} uvz ~mt k]p^jek\u wwcsm`{u]~ jmxu|}mvzrpwxp } su y}h]vz}{}uu}y xxw sy  |z o z    k w{ |qj nSbmll ~_c~ x PM rz tt`z  x { w o oopxqzx  sr{ ox nx ppcdp~qchbmsXv ~wpiklgfVbZc y n { z ctuaj~}wsqxu| z hbrxv    wvtw yr  eox~ mxokokrtqy w fkmor v y { sp | wstn~sv qk |  Z^ f^ yf x } YIYbTb\Lq]MdZjmo|{n{}~f|v yv qcsl`Zk | {uo  kav |opq  Hj xfix {vlo| qmuopx n `g ds { ]v x m } st  | wwy\iwvqs vtj| vh |  zq{n}~     s p ~ `vv Ml    t  kn~~ o~}oXazpQPi{v rkltrccu `^LQPCRZ]_frx]e vson y "$  s  z z } {     |umkj  z} z ab{n mg r  v |z | "}yumv p{ }tl| rji{mkmt  ywon`a y {hefitmkpagTg[z|pvX u x z wknijf]INcw{ e` j cbida x tk wus }u xv{ t kqql_jqfpuw l]ysq| t  |{  rwa{ _uo^tz     z xs }t~nivo~l^xgpphfRimone gbz c\f^ttoy } j | ~~ k ^ q zv gs  gM^ } Vayky}y z ekkarzp{p\ifimjhbl[dgg\]g]\UQmskdV]XddQ\dhx}uiw knrn~ww pgb`  kjU_j^~ qzyt{ xc`infjv keslrx w y `j y spw w v  ~ | | sqm yy tpy  e { rhyt u tu    ^e  bJ q]z  lg }aZPv qwx bhwlhcb[ ngl  ~fkc q  t xrx yhp cl l}Ra]Ml\fy gq { m[c{ yp }{ xaku~x t }! qs z a]g znx u\bw|snpzzd sQg wnd   ~ u`q}[w }_o|e v v q no {nl]\el |  y sYmygx  s w kfl Wh RUXVbgijzf`sw \\uWYofZdmtsllwvi v mrde[sxv]k`Zs }mr v `  ^  q} y z wr xk e| {  jaq yjevv| zruer   z rf srroqqPZv drp yr to~~ ~ whz~txu skkn|ijw~ s  jTkjs|yuScw}yhrszt}nYRYZjqeWgs x d^Vcx  wve]pn w|p} ~ e[eaW]{qhmm`e gmh kr}\x vvzzyi[a`YTTYaeet z oqt ir|  nn z pv jo s~z seo qkdLJ q\PaZf e z {v|r| tlsqhj]nupah oiqbWlu|jcn}ujc]tM m }df z  | |~v uimulrjv  m  `plmcn x}t  jvgddu{rrn} nu | lswzc oxxn{   l t}u  g~  z vsz_an}b }  ~{ |   y{ }z }nsb~  vhdly pjggeG]aivty sv}rpihtiv } ysoXzzqmw{ivz xg|  } zu }zjj| qWhw {t~r]p pjnbyy} }rv yww { t}zyrbneddc|t z}  { zg\Yge[fhXns yxUcZs~z } _rxw uZ`wretipmdPh ~ dpmit } |vp |w|{jglkormbOVx obuwpl`oqdm[pzitr] ~ s}|} yzq~pjov q~w}w~v|   ty qlp _x |{t`tts y jciyr{z vUjw }XS~  wr{l xsp~ ]mt pw l ]dY~ m_cp uU]yrGQihkuy  zkn{gvxsgjch q q t |ml | { tb{xqhbYJbdLU^iysqfV_hZf   swvu| ~rr ofrtpjtjsnPaagvrf p us  yw|  nlx}y^knqfeawopp} |zv z~~ | ^qhZbg]QZoq} }]U} s Ziq  w{  z ib jk yocZYPUEIi p^YLq`K^de ynh } {rzxkgii u z  krj^ufax}io|r lbfVJ]nmSfy uXUsvZbeOLWdWkr{ q_QUsrke z ~jv  { bbcww~nV{~mjg{ubj{wYm ~`k t \f]XIZt^Zwyzpnmcjkb }knd_\eUascsxvx|xw t } kcy bdiirstr fRlv }hc {bi|rabo{x ln ycwrv}z pcoy| viYS`ndw | ^nm [Qt pt ~l_TSaf\p r rPQigruzxi`q ~ yqv |uxr^`XGLY_nlX\PIqoNA1+hm]n { Zknxg ng| om ~ thtsl~{qy pkcu ^\NXjb v} e_ ~ut~ ci} yZc r k[k _k tlabmttmu ~ u } x vv sq  ~ ljx tgkpim{tX[ |eoal g~ o   {} ynr ]TZjljpjZ`g\uj{ kXaphiugr   {x ~vy{mrr xXf p a n luds y{ tb ~ sw [Zc_ X]uj vws  so~  }l\|sb v |  hexy lagbhdjstz ]c yPh z`r{`sbgdnkgZchkiKnqzs}|dkw u x\hvrv||}Z }s~}drz}k } v  k rY~ x  z{og{b`t~fI^  ooo    jp { }u~ {  !m vxx ~ ydkk|zgj}^} {mv plgvwiWuwmifu\XYSPj  bl| qotoks~ dN qncqsokqlrgdxsZiu     x ox  t~}grk   vy b`l &r | ~qxnm ~ z}dziq{ y m   u  ~bh  vpr TYggPb aRp^jrepbfx}xnmlsv wt_\nml tytw{z l uxnTl ~ wn|ryx xztsxms}o|}   ~  {tvt{ xi un}n o t iknvuhg]k ~ z~|x U^q[Pyxu}mtilkcx cq u qqtee w gy}j[Yat }n u yX`j z lklqt s } p\ny ilfecTP]cl | l | }x~  q^zz ztp\# k n rw qv {odq w u cGU~vcgtx|wir dz  p }x} x {bh u w j_mwy~t  }qr{sYm { omvsgjgupmg^g | eoiu|dryy ~ZrrLWpkZfttt gWx r UcxyXRr|vwi   kd  |} qrs {{ q nc lebwvYI= j [ZZF4AUOQcw}wxm ~mnfqm`y  y o w jt lkum pu  xYV]]]fmux ii qyw[Wfr]dXm]Jrha[uy j}    rs vPrqgqpy  yb n { ~ y~ t gs}hl^WCAcgk{w wgpn[q_Xmq u vkj q}~p}xfgzyy z {qps { |lO_gr jf}iuml ~ tk oZ { z vu qmn } }jhbdVgskcjYovJ_zxdanpeSFSZZ[ l eoNOa]kv   su z ~  y xouybqaUOQ\y  q tjU qz x ~g Xu}e }NW^zjLpjKDidb } xhdw  pv pkeok[nzq[n{ qq vg_a }{lwvj^]au ~  ~ xl { z v Zf slyu jiptdeidhkh xlx syt^Lv   { eV   w~ o z xl  ru`U_Bdqwzg r }mn]w kjObmsjqlkkljhcq{b {z i}t \ssY_n ~ |glm_hgw~ rquu z fy g|ypzkWv{r h Yh { v m y |     tzuhz qx|{}v~z a^x b[ji\cznm|uXixz  wtjstjkc_kz {xy x     r _vw ^Yq|Pcu qXve]{pd}{hk{pwnEz nwxw{ {}ucnGA_\\phfxyov rucpwr{ ~ q}u vt{ u t ~{jep}x{toll| zvhZt { }i`R }~  v  k`slS`  Yt  x uzyrlf}rU yz{wlmY` wq[Tminhi`n|mz vr{qlttuhkY[j~|v y {} y ox | xtu ly~k dv tkW\_X v |  z| ` u  | |kysL v c`ngekmhGW pq  { xo~ tZRy |~  { w  ~sh[shhrrs}   {v |  n d\PR~sq~   n  ekzs[osgpz~|v |  jv { zlpzeomk tmn~zhkkha ~   uqhwpt d]o {po | zo   | pn  wjhcg v mlkvu[\ }ns w }tioyzsl  a]vk^g`Xugjoms}}s ie! t hz i\^xs  oh } wc`jpJi{zqyalucizy~vwlXldywos{{]Harf s `{vln fgwnc_} w{ysflolmUMUei[^mfdt  n ltwhvo{~ nVqjfdksag |x  ~ sq}x z {|{ w }mzw pn y   ren Xirw } | llm_n{nodjkhr{xb\Tbg|znk njq} lfnhit x~ft yk zms] { ek kqdl mx y   |f r t Y]sapslk\  doy     wx}lu } lPd unat p   u w ez {u  { ji t w dkgnymurz{ k{soxgxeov vdxzl } q\kcfx v oqv v[bYW r j[omYT_ o { x  |tohj k}\v FXw n`kslw||w t ~|][u si x z smtukV v { | y  wo u fb~ z [bmpn m } {UQZyzaKy cSn gg |{kgy ~x yuq sfUcvw{wz~wz w]TOv yvn^sv eUMXherwvsiw z y ]isjxtlhjjTg o bTYn wius x vrv~jepm~iRf`fylshlrdg| ea | z q}_x  hvpexuq {jy {jnbu{xkxsmtzzraj yh yu f uyXpnKWd]m\e m _b^ t~rtqz| ^uk|~   yw  vg[h y lRJNV_ir{o|lk  qyx i {t`s!#  ut} } m r { ! } stwtvtjPZ^t~w      b} }stw}ryr|~v~ }  r[khQ q} ufvs ufy| v} y Ipem  s|vnyb[omx~s~u uwYml{  ||zuy |  |p|qnt    stzz{}~}owv vc {rWt yz}}|}    } pi_etz ~ ~} z  {\w } }{uoj]d~|iXTg]`bl`gxkv{ ut swyilz{~dinykWe{op}ytncr_fdd^MaXCVcgrlqtZ\  sw ||~} Vz   xx { ageg  quz |Vb~|iw w ~ y ~} sp`[\evnck }   nq i~ c]MQ yim~ wms|  ots | ySb{xvo xrrkp tty |jib a] z z navy|x utfV[fuk\jpzrix}tkh`_nOQUoqTVi^_aslh { t]o |  }o t  px\[xy}~z } }w]Vn kj {p`NhkiViw ezuihw! I` z}zt^ p xdl s}lQN@dnlccnyjt u "%s uy opxhchuwvnwvz  ~  z rw } }v ur fu ndbppw op{sYd x mmlwz_d | jo{|zz{rcr x~t x|z}zzZfjifp |o{ quVZX[tmc]SSs|m yws{upgSP_kxzx n g dbwz uo} qgW\idowyg o bf wdbk^PK^gioozV o yms x e  uiWo v \TN^ie_jsqpwh} q{ { mXi w iOal  }on\jfYd^evrZWa^Yecoo_w }|z {}m |t v |} }iwtaxsagRSeevzoh  hrcWo m` u x oWa k kmyyrx{ wrsoqm y x^d p}s wd`bpjYbpW_hZ_ow  ylF[e[c`lxq~zy | h^iobax_hrt ytu |`RczzeT q~txkak } mw~zv y sfq } uot{ ]NU x  my~ p dZxk ~  turbj{}frxl}{pq u} o rkcwnz| vuzuv }huqr x mh ~ lryprpxsiu|q~js]q {u|ymy r  rvz~ ~fgxik]VglgSbpMr w O\x z oqyf YLk~ n{ hsmfr _r}m  q{xmo`lnfV[gdY\eVXfhaW[KDcwg^NPTccRAN| ~| eyhowng j q r~}vxmr tc{ z   j }ns|l]s   x~ i   x  Qnag}{    }z   |{xr{v pepumx |}  ~{ rwe y{vj{x ykqipl q\uthV| h^g} {tojlx v ~ z ai} v   y sy ~lh | }  |}x{} |  swrr   vqm} ek  pq | | xz  p~bkqqxu| w^Twetyzxzs zxLl}kq zts z ce{ `_y sieszqrnxxto z |ghx} }vx  }u u|i_X{lx~ oorm tw ~ f  nh  z ~      y  |guzpgmx z zrt | |r l]q|`[ry|zt p aqqq v   vnll || uujvts|xrod`o qken| ywcrplm|wSlv kngnutV\{ wp }x v wwowyqde^benhk fciurss [p q^o v bozhV[gq Ki } vetm pfW[d QZ q y }puk^QBgkoaahxqfuZ[ _ ]wu~rh r  yw wqiqo|~no } xwy  ox ~  xi]ljIWcZevsu sx } wen|l]\ o nPUwsZ\hmkqwiUy wzoa~}tvfwk|pdYc w qr }t pu^[ {m s qo g qpj wxs q PTjhstka\SKkk  th | uq{w   ta{y{xcx ~_dt }qkn vyfQbbVWZkNYgl{ w b{pl {  u lkgyxlvt t } ~ sTg| `isz ~npjz{o { oo | ~os xjag`s nbmx}t~z| v{yu~snpz  n ~ jrlqba}q_ puvb v x l { ~x Xcj\gqrwgwmkmr_o znojh_ oipjm~]QL^d[k|Xs~ jm ~ m   c x vk_Vash` v szlqs  nmoluy{  lVqx i   }   qu| mw xrwr`flitz rtx  ^KKjrx~y xwlyrfS>dto  {z} tsv y w~p jxdboo~nbut }r^mjskkr ~  x t { wm }  kqaGUL_qp rt {xp}zpj} | ix kkxjj[TbfgYm vRuh]o idt i ZMl t du bsfnpKem_nvxqzr^ozw { q|xnis!~ } d ^xyr pe Q]drqf\E??WdXHN ulgztlrzn{x{rrlv\Yikmsty ku|~u hy }doiXfrpvu n|{ t{ ~Zdxu ~ | xexsuzw` tu   } p     jp\w x~ {  ` ~{  ~y~wtbx~uzt  m t xlg       "$oux }~reklihVQmyy{"#w x |  y  } xl z||o}n {ow xv |wy |uiq|^[lsdezy {qy whso_nlfqu j eonxw~{}rlwrXq{\Wgywwt }jm }^[swso oxsrvq| w y w  evympx}}aymtrx"| rm  qqvk rav {e_   } }  p|~  t e  sf\ja]ahpbl g`RN qfp}j`os{wwuo^ntW_x|zyz { {muqr}wv{ut!x fn ~ jp }]vx trVly mMIafbiwy mp_ow } } ~ zmi sgp u z" {uvo~m z|jo u q Rjw ralhe]RWd TXabt  squ e]!!| tmjtq[XiSRHR rsmi s    pjuhlfjfdcdmriq ~eerpny{ psocmis tvx | | vlck y tj_ u u _f|ouworxaIr | v|  {  {ukstx    { pxgpfr { v v SXtk{k]a[RgYo~jt t`w~} mxwhVf`rnf x lqxw y {}~ } kfbw gWVZniUwsq^cihd\hdwymq |tmpngosmU^sq\gyy rvu  s } uux nry r jaQklloyri} } w {wyzo_kmrwfvqZw }u fn n tpyfy whrl_RalVgpvxl| top{jq}nkijWq }z {v } ~ x ~ \z qw |j]ws zy~g\qz nnasnx  {d^]ahgkfz{ljWEf } wk en }x~ oq  z#{  r{ rTS[TXgfd`pw`Q@^nw~xqpo|pdM+MYe{|q|xn | } |zz nekfgdZoh]gj mfeab { lm p  |q z ldz } qzr]j^iro    tcqlilT qsVmte`uxqimvh|pmzzwkhxpc i^ wxla|t }]jrW]hZ w dy { osswv zp   ~cfnz|rp| cVu y |{y|}gt tkKPppq}{j { yq}t tsnzwmkn} bj {gw i\r |tqf lmjolt_Y okx w yfmrTmklz`i{ tongr ~mzq zj ttw}}]~}  u|xmpsjjdui{w}m    zwqV]mtp_b w Z    zm~ }{z~~ {  y  mdxm\n|qbg  fi{y}t ^ svuoltz llqmj^Sdsy~liYagQcmu}uv{velvb utifXnjfdNmdgv qrr|u jo}mqx|pobt}zyzyvrkw fW`\Xpxh_a{snlururdzwfy m_dswxu y {  { s   x}tk ~pmc\lq][cszqpz ~py z}~wnel|nf tz        w }wa\xu||sjh}uf zjpwm]lql|zf ^vsusdkgwqcjcaTh ofNF qoqthw|x w^{gn wqssy  {x }z xovz h[~ wayjgu xl wUetc}~ ^ iZeiVIYgmyel y{|wvj_\q[myk zu{ lkrq_u v~|hP\  trgi thml\n|{edz s s~enin`dxymjnvxuu{ q zprspefms|| } qoz{ w} n]XhlZ[hktwy { yrpnNcdV[u|mqyt  ~ kc s n~yqi]ry ~yops ~ {pmiq ~ smnff`hbpjw {q|btwz|X{~k z v{fdx| l n m t{`n nrwVFPeb p `p`y   | | ~ pt|xpt   s| {hc v nY {W\ddaUcjsvmjrunjjdbbhoojs ~eg }ntvvyhpzyyibl xocUklopzkb p cd v io { qnt vl W rqs { p }t_ mxv  ll t~ { vu {g`pj v ~hw  { uzq!|w|rgnl y lvx yljv zZn^PftbN`lfkTgovnkrymo zi}v  ou tnsy ~qn`Vrti^[WcVOa^baXcJNu n t }kp p~ jl ukjlu} { zRhvz }t xo|{|kJenx}hnxk | y _hkhxz~{}lcl u | p_ wrcggujtnjcosff |t ~xf^pldw vyv n t bgg_gdZhgxzlasonnI`tlNdp ep |z}us xf }tux | oc  xg~ v lvs  afjzbr]mkipmttylj ~  |odaZX__l oZp|txbm   } nv qt te{  v~i s|o|}ut  |tx di}}ef z cE]} l qltytxrV wo| zjru_[ns^xr}pv |}p_^Rk c l{ju[u  ~ V qy jn x~ xw do]glo z ~wy  n^Y  zy lv  y  jw|Vo qovs~x} r zoqfukq{pcr_hz{hZqzbgvquiy }ce}sfAlt`Rgktsqjj tr} y p ^lvnriur^plqghladhl\jpX   {{lortoZ?ceglk | ~ st{zp rv  {rs[mtjrukunj ykh{pyy{er}~~  v waj  x u |k^ruz  nfny  } vq {e`^Uchbgppbanaiioio yy ykud  t} wqu u r~   |    tj|{{ { m`wvf v } q  o }} v { {ahrfRr&$" h Xiqkurj   r}  sZp lp ~ug{ q{ }ro  }uc^rc]} xg zqehjXo K`vqh~~_~  yjoxeNbm oeo |urovns| z ]kzbmkvvkqhfMbrg]kfY[cx}r|nuoq zq rv|xtmX]qmmfgniu {yhfxz_px   yr zxtvvz vg| rzp    ~ _] t u`clplvu ~  skh`rpgeq ~|w}rwocjlc^SWj\JWX_W]Xdx v b[_gut spfggzm wwa v h ~ a{wce^}ohd{}x{ia_wp\n m ikT@G\V j [l { Wz ksx kpifwqhr~o}}w fj | [ ky~tm{   ysy~| uruuz { h{ dVpsxo z ~ x rw   | y { }ww l]ZOS^Wbom[^cn h Ry} z  { qzsyl^u{~tth~{p ncm }omtulo {  vnn^} |pxjZtoqn`pn~vi]dz ZzjTh~w ] u o\TRgnmrsx|jfuo{saov ru ~ ojwt  |e_r v gTbQ;FILSE_ @Gddh n^d zr z  x { v   z{^jpkkh^cox| uWirmvqpnuz agp cvw ^hi`bajfmhi^jtnd~mz{uv~{zq z cM[bllWUjoftqv~ v |q~w r u n\bUeeghn v h^[h z u PVWHd v ncbkyt pl q]u |lsrhZW} ~qZm q fayp ont ap|bp } ` ~ u{{   rQbv{  v { } sqzx} ~l | |z eo stxpmib tm`vqe}   m   x { q]Z{~yz~^c { |~ siy|__ t`vfx f v  } ~   mqzyy^r^ymrg}_  g uw qn g   | fqTMILRZ]Sr ~ ez   fg}]r|{} ke r cp }t rqte{ tr^FaYZb`scf~ k }z nlu|]pkz}lp   ]  ~xsr ~ xlRlqpz   si ~ }  s y ~ b hh  xj  et | k[t leaVi dzwdko l pnEQgihhcdt sj ue_vp jxp raovy{|v zxjvsfk  rqZks{| ~urrvs pyzylr|z} z y  vjshkro{kjl  p ~ || opkT^iztj    }       woool   muydxp  lx  nPev t^Rfs fkl ggirsnZcbZcsp}X_t`szdmYTl}}w~ }pjdVVmi_ntcu qpNn{i}    cq~  tx { m o g n `i x | ~ okr mTWpfYaW_am w jy]ptee } w iul ~{|vx t   v }  zn]Tm|a]m |~}zqecx`ey z qfokp a_nkev w ^N_\b`f[tniszykrid | } nfp\\osxzo~xu | tlumr  mntu z kXjls} w _ai t hiy{|~  zris \xzkafps tiegqvvi]^t{qzm_^Vf]MYbU]w}Xf s g phllK m yhlMHmoi}z uwj tevpei y rv  lz} dS[ ~ Qn~o ~ scbhwssmhr~y~{y  wwxn n_| qn y { lxfgy~lisu} uw  kcbm y tb`qu]fe u lTl v pvrn[\^kk uwzhk  viuf~t ust  }oz sbo| qqnR rsn}qmz |srk umpketxn m[k} |y  sl}  z ldvxtr`qwa^`t~ }dftx { zmY{{gtx w }c|#OQ\ky rq u|}ttrj y rqrlikn\ky| v |yz x`ox | | uwqz mt |n  r~~laawutd\q| {l w  |vr { [\cr| q k v sk{ | p} xkpi cjy{ ljNZrw q in^aifqi f ^JUi^ON\ru f^uwiWpw Zsqe} tU\[ONol]burhhq_`ni\ ~ s| ybgsx~v~ruxoo ~ ~} y  ~ #jn ot  rckqd xgQx yv~hu ip   |fst^Wm bhwoto} is  bshn x oo   ~  gx u  { f d   txvm{rf~z|x ^ |}|ux yrs||   ~{ h iw onlwply_Z|~k    c _|x lu } {f w n    tb ~ ~ ^e sj}  Vvpruszy u{| } } |rU^d | pxrjqylzteigKn l z wPQ{lz  pls td|~~ us `cTswikeXXZ>` q  { vrcfxpg r aSd h m rh nq| ~o vfrtgZwx uqn}|myyzy | smloz} ~ ~ not {uv~ xhOkz |qs | w  ~ v| yz|m{~  xz}u{w}ptmdvz_nquo|{~p| oYro r|  vWbjmlrj {jkm h~kt u }{ u  clp]tto\g}|quypjXNVjeY_kmy|slPc }rVlvt|kk~ |zvlaKjeYIOni^dl { hl ys de x y z {d`]oq`i | vpv c p\p |gZu lr  rg r y  t yihbWDU~y nYfi]ZaYGFo YkuomfZco \Xni\ZafRbzo{ {bttw{ybn }l lg}u}xvr\sqmnv vu xztzes gpz|nk y ~ in## y q   oll v _y gJZeVdZSx wnry go}} ni|pmyioz rr}}Xll_bpro8`r p $"gQshaz rkldqrkqrnuk ~{oxwg`Yq ~pv uol`vuwqm| }mrt ~ ussQk } u {[\jk[k[YqdPjp`gWR^]hflrtqiqxmp{{hum ~ oTL^^ee^LUXdj } zb] |d` |}zg uyslldnt^ oeNFj ~uqs ]gq w |z | z ~o|  yz zq { tw x yi{eio  w y la y ztXn vkq ~ o   b\jlr wgmacptvd { ~s|u utVV]_dra\}}t { ~tadyzjyjs[h } ~ sigzpWjtrz||~ vvzv  ox  s | vwr  rumr  x {yzm } k r{  iz uvuklYYXC]bY^_\fljff_gz z gvvs p Ud { pm w w{ ~ xmhs i_~{ nex yw{{ w al[S x oe|vx y | mx{b^o|vkknu zr_w {|r|uq rpppurb~ZTu w  vkto vajxz igv vuzosjxlul}\p  js | wy{qyx{~xgx    u   firkf_w|xoqsZnvfeI }ovzv  X~ r{vuP yZiz u o|xyw~  sk~ zz ~  }u}cXw| vj em ~  |  bty~ lvy t  {}z    |m`e~r x| { l { \ uno} nzirvmR  ~mgbarpyrtt}_a_WQlj<b uEI[ojn  ~w z}q| vQlrs{x}   bk z t  wuko|l_qZTr hgwf`LW|   zm {aZ}b ~s_^uwmquuo[f| y  tpbu {u xw ~ wt{{~~otsVa\P~m j ~{hquw } |zypu   t     fuu ~eqlv| ~ } ~omypXt{bhvyq  u{~lstagpo~om}u  ~  | wr^ v v [h u x ~ x w u dqp~k{ {|klmprw j W` qz  wxr  qyx{k[kn^kdv tttnshMQhvgfsgTh u U\gpujxqUU bXutLR^jonr ze hT_ z ~j]] wrxunorx xkp }ng v hnutt~h t w }y l vr  u|~qwqhi |qzpmpsqrz[s|os px}{|u pgc_ljlmk~moynjc | fqt^azp }x x xfm~ oa} } t  y mn f~Lb_a |huzl{{qqwrx~qv z}s~}lh\ | xsduwsjcwrmq{{} ts{m^ab^nw isuhknc y `^ v\fvrf]Rgy upnv }v y   rt tgg{ fx z z |u v c|eu ZPt eey~sqhx gyx[wlqkhiJ k x r f_f| | ~dn xlp{ q h_|pjl_abymd`p  rs{lPggq~stv|d\Usozvne` {{ ugj]Qamsd | x v{kvrqzz q}}}vr u v  |u }ujx sj|{kiyb`qfZemm  {~svl ry{~ {gsvtgeaaprs iy|snjrqrV_n | ix |twum z y nibbm_howts { yux{{hv {j_l| z y yt p aZxyks  x~ ppf  v   y}|lz y y^]h|~wwshPr zatdicwtfmumSl_sy io  ot n z gltr}z[_q eks{| w dxzwsu_sz  | |  uz w | ~wl uw[zvnhJdcQcrntzq{ m  ~~az  Ll~vwsuw~g jj  }n   | oy  v|o  veg|~ njw\f}weu  p  ko  {  pxvYc|fr{psv}  ~or | k { jspo|hf~ }z  wuf  }qpn| yp} sqy u}q`}[m fhmv} go}zyztt q yv | x     is  s|y|xykh| he}qtifoJFX^ } p Xrzpvrsju[_ _ r|sp {  ~ectqzwsc }sxzdjwx  ~n q  flr]wz{} |z p  | |wywx{v z}     ep x   h | oxz   xq yrWr|a` qYcgo}v~ rpz o|}urkk ~ {  zol] x }dkl| ~ {nnn|dehvybd{m {kljjux m Yg fhnq ~qi\n ~ s~ ug~jdS] }{ulr t l_h y v rnZLc o QWbkqlzuXS `[ywb e stjdfp q lSdw hk   tpowuks~oou   hrp^   |zvy|gv t {f ovsnsppv ldxxshksy|{s |zvq`d\MWTcedx{}|hnz|gk    shtyr_]kyo~q\lz kp |m| x {h~c z h jm|hsne} r}yw {r~ aTRwro~{o|x sdgvc^lxyw|kcs{vtsjny ql  ~ qt ubm|]U} wul z y ~rw |lhfdjx }k   xvzmjt dt } xgPo~ t !`dt ] { ~ }j]gxrm} w zh[p{oX]tzrb_~~ c]f~ {tiz|dl{t]|s|dhvd^ra^dWZ_q}paTL^p{y  { gz pt ~p}yfum  ~ y%vvnq  {flofMby}~vyq }  |rsgXsgea^ y pq u} rl | t f{ |t}oqp |  { v c] v ~v} mn | vtw_Cfrtuik_XhVpfh~^~vlafj zmSZgrx`ivz}wu v ny   yyz{  p\jli s gWgj`euxnZN_ uty|{z{uaphg uns~`jsw |fpwtc} vxx | wx{ xt y }j wbj  lf "t w |q py nw x p~|rRe }wz||  s } qrlgs `Yixgo~spdov |rj | p zij vSs w\v j  tsjtp^{x}ws ~zlbS[laEv gjntii~xY{ uz u }t~ zarvyvh rv |mx|  l|o}aytxs swtw  qs ~ \l ~ ryzxiaw tep w}ptr}|Xs pkb y qf~ s{zomq~ vugtlsmmo`mpqmnpln{ n| hea}wuqs \n utwmlsv ey  sx vx } ypU_ia|oWq~uuovqq^jlpxyyki}}s wkqzqoWf~qefdy wxtr} n~_zus   yz|{xu    uy~x{~  v|yq{}zyz|yn uLSd tr_ yl\elj\ce wjrt\{hYttXb\izr}{ux t vqoYRaf[goq~ wvs`ts YWHameaVW]y|qhu yqqaslw{l v mi}ynUiz|v\]fq { _q |v x  }^l s wzz vrnou v | xi`qq } ~w hWZQe^HU w unqqylKc  } y |yvt ~vyzz ztn|~ { mpaMgfropfd{v| ik~k |{vi}v~w~ qet}q{ufuvuosuorur y} tmu b str ~ |zv|~pp  ns { }br| }eqkmu{vqx z | e`ruOr a|wgp z`or!$x\t~flzeq y [K[dZ]m^[ w ~n     r t edvy } |  { ec } } tkoy~{n} }oka[hta]l^rszil~k ]{~s~gzy | vqu  tsfW]s mXr |s   qxvdjrwS_shopv eYfiZxWPtl\ { xx } } uq |w qTefn[K[]MGVlt{~z n`g  { k pm} uiti x rl z jb uir~mfaq vuueUftqo} r |pv{gt|{uti  wb`ksmryoq rtcHWxw{ rnd wnbori_b q_jpucdwj~ iie^gmm  m  {w y am_lus|qpmqfaOUijhnjYb v w y {aLgqt~    zq}c ~ ukaas qmouw }fgtyopfx|  z ywz |xbUpuj p aVk^gh{ y owvvxw  { }v  y  yrmp|sas vrn eyv{pz w o x  iWzznr  swtkxtw{ }krxwjrsx{}gl~yWczyfqss|haqtjn{uu eiu cl|rwpr{r }e y   t xu i`|Xhgbztr]p|~ yu  wzo}~}jkxtbp  zbezU y ungukjk# l     t}k x} {zuxu}y\i  m{V{  iuim`Yy svifnoxuns   ~pz}g  v~ ap  {tpb z s_qterqsphxtxubtm}rw{t }zz~ xrst jhWsvl|M;]d@Ym_d\^ejXm   ms}muy sUxn~u i  ~w~}nYh x u{ed{~vpx}uj|| w plyxnliw }njxw{[v_tunx         |    }  z       szqxbe^SmqmGK\ljYn jdmu qjiern`isXm ~ cJ[wv \ckx    uw lm|jx ~ iZkeT\ks z{yh z zgiTr ~uobcez xt{  |wsekforerlf  w]x  jb\[gfmH\hc^txpR_rf z sar tcdjp xyo ~ puy~  y_^[tsJ]  }  |Sl  x {v}usw mt }jhjy{  zm | {    qt{je wzsujetg yq[jxiv ~ p{t ~{rygiw ijtg  pxgnwpgp[Pfn vonnl]i` imw nw{ qm~tGduoGgvjRaslPRosXeXEfoUgpeb r zx m|mdo|`o} hieWlqgfidko{afhY^Tl[Qhovsnqz| v xqyvlzogt]jesqrzk cyvdorli~x  ZT w oXq |q~tj  ~ fp mpQ`un y y rp u o_DkRPxgnw fa]knjp t ~q nw]Xei`do t{ _DEltmat|l]nhaZIarj w jd y n xz nartz o \lwyem  d tw ust|q tVV]suxml}yy}up ux[]suXf uj cYih[o zjj$ x i y{[q } Rsxjbjgxu y  joKSWCO9CHVi\[^Uaj`Q]hdw llx~  nhn ~  ~w{~xvvcd{|y|mennknus ~kcp{ {k^Iiwjnqpt~t^tzs}sjh\dtqw}kfmwmn VLn p ifsvs p q!r v vqupor~| r }rv| w qwz ~{usy  m\t }yv{ pniUv|gm| v ^Sz  ` }~t{~skmuksrzrX^bXtzb\|}xx~ux} s| w~yt}x{|  o v} f y   |ju v  z  } q  mww    yrzzr yz mz      |u  }lu   tm b|ryx o w[w yz   t    yfyuul` }Zpw_mk{r`t w z skmu sos xn~~|  |~  adr tds{wguv | b`Vs ~xd~yrt~  } {m_uw q   a] cotpzw| {\f}jnun|{vP qu up }}iWh { r pi  tprmz ~ ksuo   ~ yw  j}xz~ury~hm~  u  {}okvt ~ ~v ~skjei~}  |~   x  }pu}|~jiovs`hlls }|  ww gnqgQXu jb_f zxy{lv ry l|}g s t lhkr}~nqfz z m v ap wslrnxzotlkn\^nio u~ y^dpj  sSoprkigiy }Sjvjc}  | gjcA_p]py}ujtag ~wlsy~ z[X^~ Ve  ~tH]pjn_ n sp yohghh|x ZfhLrg[oqcwy y x p { s    xsrp{ qv l}~ y|lzq}o  kzrwgm|vaiia  {wfyieizx~^Wnq} ~}m r { fjm[zx| x ~ }`k}xf} ~_s niw|g en { owYe } pekuni]dshssgyy `n} w z { asyuwVm p cwrw |ww~~{kp }muukw khziqajq kqo ez |{ k| v v ~ul  my cY| wl yv { }crt~ { u { }fhaxZZr ~kmdj\hlvulosv gn n t x uqh^f{cB=enf[s ~rb sv w]ozkwphxaaqongy| q]ku}`_tfEjjx ~ jx{i yr} z { wz i ^qlPe xojgakt^g wp^\ p sxm[|  vok!~||z w }ox q ]_ M[^XbVh p[k!$ tevx k| t{ lmmpmqd_RRVbcbuztcwvt wofOYe_ocQWr ueIhrYflpisso} wrpkq | z _Vhie q eVi s hp ~yk\Wkv ^gm lkXWU\TINEWfp lrtv  dk z n\wv{  yoszw } tf |}mxqe`Uoqv   x| y  w ~e ~ jZwljq}ukpmlx|~ s jsqn  }q}vtuw} | }|xvTUym rrq\fljlmur {t x~r  } o zrzz  ~~ }t ysu {r  z~p      y yo `n zrz~ss wf wujmzwXx ~ j kkuwi} y{n}xuegjdnu ~k y | h]bj   { {tsV[{te  h   | w y\o lt~c{ kn _kw oo |tsw~u`k whnfv~  prxm[ols{ eozrys  rppx } ~w}zxKa y rl ~j]mk^z|o  w| { ttatyxx ijqpwzvjeis dotvzsxdam q|hoxsyurq lz yr]s ytzqfh u }ojv jv oohuu~yvzx|   {x vzwfdrstv q{ | |v  pZYn r m\Yhktxener ee{o]fjjdgqso}}vw ir{trz{yr }tt| jnhggy jp xoqNb|||wsor  dwibzoj^ { \pvp wiz{x | wpn Uh{rsg>O\SXX lmjwrls d]~} `k{nOn m ]hu der ygUltblglil }m}\tl^~x ylmiw pxozl  s} yjqi\{ym}} zq v ~ tim`tto{ |si\pwnyr r]f sr}_r rn{a}mq } t {WarxeVPdabj } t t}mw yuts~a t hliw ~ peihn~clygnydbt w tv mmqc\]YjXfpcczs t kk lqzsi| pn} y w|j  zx _mufpiVizzxhzaafRDkrn_wxboq y { mm y y ae sm  |s }  g]  o b v  uf s }`p|qsjwhetrx zr ovz sfm {kIagWm z tWy ezq ^Vp|tqormk zk i ^yxvzuz upucWbbH[a{ x Qs| q{~~ iX^ m s sluk`pq x q `X P ]]p {jt} cjw_x{ftohbkznqoeZiovidinlj zys  xer qq~dT[SM]kf`lfd t w tkj w  xpik]n }yq \Oct^``qy v oylckb] v}il v iTmnnvufdmo~ z op zs n_u t{ o   w  o w `f  yk}x[r~ hhoeflw~ ~ nzj~wr z ~x   |   m{ zw _^ss|   v|udlch  }smvuajpZv  x runi y wsd f   z~wtk~qvo|y  b} k }tYfqurd{xb`tw}~~ nytlm   {bjpx {   t{ z m  y l}xklqn\Hs~rofh {y nm{a uZjrgc`nb^`YfzU^}^Xkpgz\h~M[m g_of\UZnmUbj[[\\fwybl  v zeemioxyco zljbu }te[Yf t  xjowlITr yp j{l`m{e]nq   nn x w _jjjdrzciqhfd]ja]Wcrcq{| ~ no    }  kYgliWruy tVHg~ xs|pfozjr  x|  ywy~|onmqicUkmf~jbcb ~ kf w { x} qn x ruxcgS^sg]wnbbikdm ~qtph~{phw vc_tqmdhjltyuovn^o  r { y nw {_k yslhnw cvjl zl z [  hw {qv {^rxkq } |glrtl vtowz^w  yZkvmoe|wpzvs}v x t } zt |u}^u v Y[X`TVs odu~xT^kX@fs didjctypux }zhn pyw_vzrtz  z} " y e} }f y ~u mj~rmel_Z_[ s wxjt { yts zjff}u ^\wvbkxz[[ze]{ yOk m{|s p t~v io amp~ | epl]i\T_]fdeksf`Xijxlkowoslezfu }ity`cs | v{mwrt x i^bbtfhrZT\eoh`f y{ zi xh`ffrxlaldSe njPbpj { uWx ~utq t h\|ty s }x vaj { } dg wjuil|   r d  ye\`vxxfSS\ Xp| {}u}y~ ^{ }rvx skwbtrah { v\r hm~~aSm| toehiezupp  c  | xxuv`[q e]hn{ v Ynw u{p_JRNZjfo`X w m`pf c \XYLsvtt xfE^hS`j[kaaj} | jny tp  uo x x ~ s~w||u } muxnmwxz w [pgcmfao p dfh^^jc[k q __ w ~}vx }z~^kuw {p  {zp |{o ~jw tdmYS {pdajz m^vwq { | vtkhh`Sgzuoq~chexxPc  bckrogJftcfnnkTbbVfQWs{h x w _x }m ysu{x~~eob~wlul s{} qwwx~ k~|  bmsrpqXjg | z mp{{wyfhe  cx||t} { ~{znUuy  }\ k { {  jp}zj^ t}~ |]s  } z u #  w |vy   nmev x|oyvegl{wcmuo{ y W  nphl ~~wmza k!  tx hf { Udl]U[ulkn Uh~I]ur hvgg~fb o nu ~ptfuuq ~ jq yhbO] g f \C?Rh u  viz^Sl | m pm {pi  xl v  t~ tiuwrlhc sqj v iwwxt  } ~ } x zzfo |z xt pq x r   v {     ~ nb xkw~jbr  }|  ~     vd | x   xhZqb^SVhfPKRVasjlujs w wtx lgxpn   }qbwqhy ej ~iQTx ~}{ v  w }anhppk|u WW~ vqjinr{ `qbiy ~qg{Rng~} tpkUl}ropmo_ju w j~|gjelpC_qkn{} hz {z nul |v{ s ~}~ t{{yt| }_y x ZXa wkcp \mw zz | gRmqckcbSt{zyx vvlmqJ\e\Ymt|  ~qzoso][tfShlfpevyvoyt~{s \V   } }zij[ x yxlrvw{p wl i^j r hk kVDKT\BMu\c _ltNa]KqrQQ[nrijjVicVutdur`fSD_Zciwz ~  ~ llph n hsnv{v szw{u`w { yz }uwmYgu } tn s u  whsmlvjk  | t ZujX\lxuif y v bkt Saol | u\    mhm u v hcrhgurXfn{kqu t`wrdbYu{ s _PVwgvmmpvu{l{ ho [ zvgdcow v ZZsu\y ub} ~g^sbkkwtg  y _~ } d mz~  fk yvk]z rmquq{} hldZfikh{ w z | ykrwz  u    t p xy m`t a h !z Xb y l|zl[i_l p ]Mvoz}w tu} |x  vWPu u ^TiXYjffgaTVj{uj^k xvvaf^f_[V]cxwmplmvfncht m v i v~ zw~}tpY_q { us |mxm {l{ sutv x   tt[_nujjdVYPYc4N\SHBSV\bPMQOZMWa[fhZgg|  r |   ug\qkpnxpr|vuwctw} r s q x s~trz p{ yed[^~yjzr szp {os z{z~ o~   s  p  | {~  ~ r   pz |  u| |}} j" opdnm{}u u| urcww ykvkbaqaVxd| xwr  { Pw w |wx a ~og x| tl ~ |  ~ t}c ggsv b ~ ir }vukysk vZYib}  us] x xv rk z]gY`[;Z st  zz peKaf?GOfsmis z pkxr| t }|}o  } h y}lvy | kry | | }}  h{  ~eW^p |]z|    vr{}   yw {w   |oqyxos|twm}wow~w}m  z~p z  w }yvc| y suw {cmqo^\MWgrf y fl { ~ tum v   z| vk }rcemv} nefw|| y  uwc~}t{Uc|vxeo^duux WkpZVTcbR_a<c_IasannmgcaNP`WR]Z n xc`tr ltw  r r _\\<Qhf`w z]w}xt]jkm| uwY\Oc r~f|" ozrmlq g] }umdrwjh  j    rurs su k p ~  j[n_QZEnfqps`[tpd}zvw xxsdki_dQ>dn|zu } smh u oepj y g[dprvX]v TFg twRVbSdwvz ytiZ `ip | ekbh{onut|v_lcPYw gelqszooad_WQcbfwnj | ty tp{pi{ y u p| uho } mbdqgury { ita` x b^polY_m ighyy lhshjylx u sZywaz rlf wzrcpegcsxcEOhc_Z w   jjxw ppynj t qy| fa } ^wtvb[u|jhx isvX z raa_gsqj^ftZel ` x tq[ei`T]ouPu ~u  bx {yc~  pvlz fhond` z   ~ tc`PX\iijet jytmt}}umu{ x z ~ pa_ sMTnh} ^b} jn  ldgW pvZP|  gywsgjo |mk z qo}  }gVi o lh r `djppn }vgmv {rvz ~ u ~ xo hfmzspqyovovy~oy l ~ x}|vtv |ymVajnnm v  t ^~jazw|mr{ z  s {rx sju  |uu~rgRWdw yGs~ {s }{x {pqy x z  y u p  s |u xs     w{ s r } x x m{ t w {   uwvm  ~cy  stv   x       v| ik~w|xyugx| w |nasm _c sf} z  uzwv w _qohe]ilxk   y ll   }xmW xqYdqmstloWo |lwmrnyVldVEWaTK<Moyiz~  ptuqhXe|udhrsth mtnbxfLT~iSdac_EZ_W^os}j ~  z la@f *lhvtt {nZ{#b]\f y y hdnapliod v tl | jzyhv|uz mg_^cYdzrtwnrkz     v aZi  {Uz y ~zyh^ }v  ws ~y}ww ~v |v {yui yjmfUacmmelpnaysat|}uq    |co{mv }fg  z{xa} hn z |{oSlfL_dVY]~h[XYglg{{\T` n} or sp[amo t ]~z l i q } q{iRu w` w |hkjljvjZ^ le^_Xf m WQ[TWkj~jy o uyPf { ul| y  vwp y SaZ^}qpW^xr{ p| m  w ~ n{zw  qx tr}||xp |~rcp~~xc`mzvjq]i u  tYOi z z wn } } }p w x ~ zn Xu lwzy  {lmyuul_dXkt |w{!jk | s|jx z w o u}|ows|trw  w| Vb"tu xxyt z ogX_nvx mirewynn{r``^STlf}} mr  |i]`rbdrdus[w tLZ rUPgrpYXb ^dqt_^it`lqscv  nx_mnnh|{g\W{ y | x r c ddk ^be to  qqx _qsywcao y kux~hiwsbq{ uw u xu ltt_ {qu{vies\Zd_Zlpl v n w ijsvRt ~ yvav|| {vyzdmz^baeW\mqwvvkx  ifanp\^v\ztrvsu}xhgnmtuknpleRgq6?TGndl& ri z{ w^z}ZQk} uigarup\CYRTlv n_hlq p mt ffivxhr{myztjmon    t ~ ~ nfQU z  | z { y  z iq kluknYctkv}yry { dWhg]_\]maGk\_otzga| {lqp ws qsx rr  ypy x\Yp$ W  n    x v cWN_ mfrk_qfk  | }mpk z~qj}ykx p ^ap w u xqxi zsdz   tw {z jkw{x}| xjjgp t~ujo  } yxhr   {} tasxlp~slx | tgo~kj| wc  }s y t i | v  {b     iw|  {ls bc qhbn{~t ~ [f yaw rlX]eixomurmv  mh^v } jqkaNh{umtuqpnl|zq qS]o ~ xt vf} z ls }x  |x DIYMXiVloo{m } } wo uhxkqihr fq hPd |ekgowkcdozyj~qq z ~ zq  yurlt| ^h q y Jx wvtzv y c |dV[buxbg  wpzvovp  }gsvyul| |n {s{uu x {  uuqwb\p| ~}~  y | {q{ e\tovpWfppT`ort|jrz l kl {nqmnokwz dMFfnqmhut`buptsrt t { z} { f o z unq } |w~y v w{ tmeU`Z`eQPhhz l s q p H_q h_t ~ ms  { nr h { w wsi { { iyn lsfr | y  }~rkslt  {d y y | xfm|tjsknZe|  w | v { } px | o~ lrwrx{v wk zrlrj[emiv z v ^|uz }urkgloxlv zcdhmhwx  ji}uk} qw sy urfqq y mk"z |   ~i~ } tvs   yq ~lz { xnp pilypq_qiJqhJ]t[[vqlqis ziv  m|tgcy z z ~ grtqonynaWv ~fy yi ]  yal r `caeSn ~ jhdYht  mi r~ im  | tx ||agcTu |upivpskbwmbud~ qtj y  |^supnh ~ xquxtq }vlxims[edlZclly{yeuqtz  mr k } " y ~z  ~w  q v  }~zjmomjOem 4Od=Zrw ei ogzlkr ~ h}n c} msu {utiu| | ]p_\v {l`kpthe { |xwy }jgpjtpkaYbgdsp n|tni \lkapv pw h{vxowiqsihrl  yr zldy ikc^riKk\dmy~p_pm`^qysyxyouz~iiyry}kYi ~ |`jrmz gmjmvp|th`_cfSQJN  zr | m jbix jni ~ yixsaoivo z~}wl r  y  xuytvn]Qb|lqo}yyy}n`]|ch  r   j x|t}}}wfv  ~ yj|w { w iwon~ w|mopmnbk~ywd | y v|v z[ qvspp~ay uu ~u a |  |ml |lx oxv`] mr~vx}x|  sgcp z~g~x{rw_l  ZY { o }kspu| ~X{ ymjBbrf h y {tjscgme qam  o^kuy jfocqkISqsp| tz wz     {z~  cx ysp_ zov}srluqx~]f]`~b ~ {}zpX       pp    x~vzp} {ntutfzzf nqxkpp  xw   {jcpqvxufftxv iyfTxv pstyVd z |  v`  ggj | k } }nz pcy}rkdnd |ix|yylvjk | z~ } xj} Y`[^kxdbypjw{ |jysttuvop`aXafT[ smym wplUdkVJ`ncl  r }l ~ mfzlx }gg~u { ~f|s\ivjk~ lxgm {nngz}   x  _rlw ydo yg vobi {s|  }lutk{xamsno~~ x lv t  {ul}y|Z}jg ~ ws }svx ~ ~mqwhYgYUQfdV\]z vea]tqfidetux~x lmbb|dO vu ~ { {okst { uq{zuu  tu`zx~j[Un oh o   q  c| }in s^^r  rm l_g{ l|  v  aYboja }v  kt { xt ~ }pWajwtP^jrjLQ{l]v}fi o sYn v~w\X`z}kfe us x_bpkoi}~tuk{z{|dmiV xrv}xez za t | k`bvlpyn{umbcug`Z_XL`^Ukly| k v ulp { | v { r apwaeljc mW`ri jn tskmz y n ~ nu  kswx vR {R j "d{ fRJa_VgY\_ pp| tc} xii y| {|y yd_y  xw {v  ~ y  jp  zz y nz`tvkz ~~fdsl`kfVttj[pie zek]^ rpc_fZkuqm { kcx wp bs{~w}s] uzstqyzjn zsyyynYez} ln ebtlz ~a``i}ys]m y| ~l mdZ m {if fp p| |  t grT~  q }oksn  wlm y |    wou  {s sq  ~x|  wqr~nRn{yir}sy| pvw}}  | y{ p\VEdg r} #p}tlptrzvnoseTowwXspx {x}w{wi ~  |xqlUl |ehy{  `vx| e^ ~s y t nz|heSCctr    ow ~  y z}t |sxS[{ww ie} m {ym rcozpHn x gpGMnu!W wvs| w ocUk k Omo ir $|gjs |rp`x nmwsy{{t|zj y } Yi{wpz [hnYeY\e   w }ls { v ~s U {{|w}   {x{|  zzux   r\qpQSRWGLM`ZWts}wl} sr|hZhqn  p xh~x n jok zjPonrr w YPPq|\Qn  z| l q | uq tu^g\z  lg]] s vqp_fr nug`nswR^XTbaWOj\k~jfdqk^tfimfpx p { zuhqvght_`gSty | o |  fScq df  l~ghS^ pvzUWy{rj x~  ftkkwj~zpz bdk\X^krin   XgyjncPid { }o_`w {ttzjdnojl w  }{y}zkq u}qvos {kcnmeci    }|rnt tYzo kkuux{ wyy w}mwd_Rdl_SKUUQVOWVT\YV`inki |uw_TkH4WXbcXdf{idtf g UW]VYibS^ | vkhv|lbJ_dctxkZJe madr~ |o l |{ ~hbvzxgb[R^j~k jltzn\x s no { toh m nX]`puilhsm>Ntzp ~~ eeo u Y[mr ln y z t VWrz|zel} |rhu fjaXlwn ulYt  {   m  jxqu c]grp{ u ~ mm |rz t| rQqp`puloosa]kpeoddy}w { nXY`95<8PHKUCF_dMbtjZbrv ~gswy yMyUUnf  ~eVq~ zc` teop ^o  jj  u~v{zpp[_tusv {smm|u} r~ oompq`_`nnho~vzSc ~ {swnf {yjQ_ZVeadOCWedjo]h z zgqiZy| w xo h |n{|X ~{|us~ iv  puyn[jrzirl }erq|jm  zt i }Wvqpx}bo oh} ~ ~aorzr |pam{I| zqp|jv e  zx wr~}k`{ }    ynw{{~| uild|y{ u {| l   pw  q ew}mawz ~ |_liy~wx~!|     qttx  c{ }Xe !"~}  xq w }urjjr{pro i] z | icmaiozdanay b] zo|y}yq`n z yup`syq{w y| mo~txsoig ~rx}z|oT_sjivu{pq }f wi wn|~RUWJcqȭjz?c"|punwwnyj HR\]cq u khu }h{ z ~ {ru|y  l x~~z_e vlnusspxlhjy   x py v v~nJWbe^Sbrco  ytrx su     xsvx}   }  zgq t men{qoqygmg  | wc]rks tri|y~} i^_Ug | nmicchp[GBqpZ[mlpvtux { ZYolJGWdin_tty oe]Wt { wm^jllt^\[ju [q nf qjg\t[jyld`uvr ~ nw z m{ p } w  xsn`__Ohzw w {hln \Xpum|s}juswyJT vaq rzsf ~ rcj\p|rgs} yr qnzkp} Wam_w zhZr }pynksync v z wy  tu{oowebghwptvwmk z zmyu|jPeb[t|xyvu hg{rjwx tw{yvh on}| t w sj^c nnfjrushprygeo^S^KMUPGMaSI_\] Tr yjy ~ dYpyvpuzxwz gmnu {oXo ve\lwtng g z{l  xrbd{}y^l|{ mt ~  nYlfr z je  ut{]cqeu w l z |HT }s ~lc v ~piu   { hk{qk y u hh   xw }mfs f wqr { ~ m wk[iffjp  to w w   m]rw} sywp}~{dftlyp z nq || {x |  w k }  u~   XkyZa_ ` ql faQC^gJ_rm_fx qzvu Srmkw gu qa| h_whcno h\nt]]ruvmty    |q z ssvgiqftna^nlzlr mv xboohv x vvp{w|  zssq  es w z ryg os hjm`f u{hz yy |rz d q nhorkWio|mOgq  |pow qt~ hp   vy qcn trbx xzx uaou s os q f | xt czzkzy]eZf{oge }o}yZgw S   wgj }iq es z   ~~ mw |pmw~| &   u  { w}}`j zi  t   vy   ~v~su w twpmg^[[ytc|   x   q~Zcqv uoy xjv }yrr[NPqx d`ternbfxx m }xu rq }vd_S\{msx xw o w t mptlzux ~ | zsnwyjqlicb||}xu g_joiouomkg{iVbgdYSy||xi(-NY˳θٸٵl}gy t ~ jSZ`dflttpo|{} jsphvv{l ~  } rrqrpTgw hg  t  lxxl { sqp~wswNbx`gt    zq\Y u |m WW| {vw t }~ }~y }xq  o  }  u brpcg { v`rmg yfuhzk trymvy|rxX\pjs|juwsr ~ il nr td^[obgb^u{g` gbvqZ`    tl\w yo } pw kukej\ouqii { ^[xn |zw  m js} ~ qmopws s wuir iuz   nlcLdtxq}kq  t ~TWviRfl rnzf vo|xqd!py ~  stohWr| {|ict[Yp~ve^\s     uhyc_el }  ~x}{p   | ~zslu~k_]kriopwb\c_uw{ |ng_mttuhs}rtv{ }e}v }  u~ ~ qtzz sv zuyt  |hp} sz yau u m hyt | m]]mkfqplu { squ  p[l nVgw u of  n ~rqn[ |  z^i   NMTY]jyfZY^ZZl_bng]sjuk s zf ~ e{  } | yOV |rx ~moolj } zxven}ki w mu s  zjw}  w ~  }~{ u xl y zwvuwm stw|vzgmp ~ hWiz jele`if_n s oq]qqm x hz vyte`lv z k   nzu QivYgZVrzy ioVsaq ~ou   y}omY} y ~ `k h w shnW^e]_jomNOfq} jidWm t} uo| } r}  i zjxo w }jx  uy x r {{u  }useUin z | yzkp t {s x qhj  v|wu{y ~ | xgooi |~mqq v qcm uqp yjh^Yz tv sgnvk\ ooatoylxn\iVKPUox o  ]s~|xjx s nv yhvwu ru{ X} pt zv`[gS_ido wv|uv  nf yltx { {  ~ w    x  {PU} viwggw|vi|~qxxrwjzxtl`l~  i  x ra`c wej{~qju z quv g  vb`|in|rcdjtr   v bydgx x so }ko kb~mmt{uzgoown| z roamd   nmpbf_`c][ozo } lt z y ihz~ ukvt u } y ~  } o  y i |igtq޲nzp%#oy ~tx   }th{ n| ~ t| ffmSqylZeho^]hZd| z  }}phzk ybx v vknxj bt |w t  z^ x x v lh rs|t }ynky}p   }  ig kqwbGaw~fge t| ooW   r p~q z { tyw}cb uq ~ o }  lx ru   p { ngt ] l {el tXljfzzx xsnWr tjubu r mtf|xt]l l\y tg|x{xzh oxt { vqrwmo vrjl}]ips{{v | y bn~~q vt|kjwp }mZT| y | `bm j ur |i yjiy}z}{}pUmvpamk xb z } }makUqw nw y#t |wet z~xy|} rd]U]aVf^Xjjte`~  p{  pUSe}wi\[ivuwfsmhfz zysz}hicm{n} vzlsy yhq s||^[[[\Z`pr  ~ wsr     {v h| { g^rx uzqmttacso } z mp }hWfz ^`w z kS``UKf\K]XKnts{ r MZx cw|w~ xqho y x v }| s| z fsh}{^t vYw nebtoiLShqulzykfUSSry u~wszd`bzwkbQ^hozqs{r{tvy { oj z yvw| utzuwz{cffsZR\pY`stv } vkhzohc]hkcgniWaSZ} p__kqlWdm_o z ~ _hZU`r{zkY dy s ct^^ |~s}f^eaq }[hsVbqbfZ t s^Wfl~gb^Sr s r t f]k w} o o yXRdnl q X] o {dot|w~ u  mg|ym Re{yysha y}vuqfup xeot zn ufr { tjr} x rjktpajhbvxetupjyw{uykvg }u ~su yxxkok ]g| q c   sdxu}  ygkw g ~ o] { l{|naX|dk saacv spEkhl zeax{mz| tk}u}xv o hfl|or~p}z VlvWpnyZs~zvx {kst}|ha|  ze qtrofy  |v{yz^j sb`zrnjm m muvxp{   }   qsy\is}x  yvy p`ofwz|rf  rz ovikmlrsdrq }{xvyjy ruzxtvsdda\ftp~hnn { fj v   tk v t ap w w jd{ y uRsS q is뤾׿ֹ|ɐ fx }vtz{x{ vz y  uj[| |y   omtp`Xizm`oxov cmv zvs~ppr njpj!p qu  xr{ j w { { j{m}~{}{~d}|qts~pOc kr  } u|  provmNa jiqzsg| \C[OThT l^Tq pq x |i { } vs  m f p u m} x ru msoliI w } w  yqZh }Zo %! q xx xqu }sFLo w~x[_  up{y un}ud^|nukeaVzw_njz z ntqapppfrwjx| vq ~ gZg qdzq`vz}qongihVQej ePL@FXY]^\sp]uvp q}sh\u }znW|hU } w^ {   |ugsuq | }  tzxU]jkWWYo[pzd}m|oY}}l { xrs{v vhZmknst pd c _}  |    sTes|   jx]rwu pjo u fgp YP[lq ex r iz{swqizy~_Rija`l w opwib ~ }w~ fajml[qtq y vgehkpvx g|~uxidjzzu cn~  jkzy yeohOaY[iZAES[|{\t y z } ~lg w pcrsqzmqhevvovnzxv I_ng k xlkcLmq }dvssx }bemt}z_Qahpyrh]S^WUZaee\Qak_iiwulz{i|yzw q|s [ x }su}vry N^kr }t  q |vrz  lg} tphdv rbsxeo   reyyo]x tv jsfu xeQVlw]ov[hqaWKfpj^efr yp{x]k t njXNX_aS`cb v w tr_Sh `\_ { ^  }{tnn[Y\c^Wgw}| }r vdiws }xwp{pq}zmkq ~cmqj`aitdcen txgkxwwyz |}|nqtj   ui}pjcqzyZs upR  z_e_l fb lm  rp nz vwxvl mr{| t }   apxtmf{v rl v     |  ~ y t u w    qly{e ~~ugvxv{  |  z zy{    zu dw~ xy |u rz  {s  ~qk  }~  ~ y}]pul  rrsuy ~ z l} rkk}zv mymx  z~|tx t oilot osWTlqm to^^bFe_[[dSRhjjde|Va | u{ TK[cjwnWwu r u a]`nbo}a rxt}tny |pq    yzvjr x   ~xlf ~xfYw}{n{ }  ox{         py  yvnt}|s  r n yn  lVk xotx|i ~ fQ^MZi]dZShd`wllWo zq ~d]k{pr`Ys gtqinKZgg\XgoktdWojak Xfyn y { }xn}z  { Z^q{ipk w pwxo]lxqvqyyektpxttqXlj\ocqtt ~ } ry ~ |knoesmusmw  zemzj  o  }vw pl lwh__ meNadkg`x v]m|yz|i t  zshw]}  x{v  u{yYZ[\trbazxw y ciuy aWjwe s{g y u ] u nd~jprr y ettllblfikfh[ZVdowzzt { u | WTR_oorkbotm yz hujsw]^fmeiujmllhc|vwl xx rfvskaXc_]kdi |um~ } ha rix  ii y _` ~ qzuvse ~  }|w ~t |]lnz tn~  k_p vq zfz noz t f g lu  Yeuuq w | wsthg r \ { y | } |~  x  } Wg xb p~srs cWr ty[cotxbp z k o}   rb s { wwmhfcpmkYSbgahv ll ~ x~ sywkuwu } v nz} r b{tr w k`sj x biw } u  |vuz pi~ { ~wu|wj~ ipytcu ~ ~ wn js hod]  w }wyc}o}ze twsd_qxzb`agofnlUdomkXLTZcSUv_f w m r wh^ l ^`f zfnrstkrln_dXb^ahuzkm|zn  vqx q q en |u bstu ~ }qdavq}~ywquutt}  } |g { |~ o vf{oof|r^m dV|zrmgVg|jeoyrxuTvyub1b|k |s Uplt  aj qo~  w|n oy ~  | s~|ml\^x c t|u|~  ytu~hn  p  zzp } |y } v  }t yzpq  t xtox|nfchxpu | ytqav~r y {kq{  xicpzywbni^cn|   tl lvvos{tvhq  ~}| pozk~d_} n yoxy|vu bmk yl} izr { z{ v|v {jwqqv } xr qcxno t[Wanmpn uw bla {{gC Jx/tA&s/ocy bgwjr z aW}|tzltr s }yviy| y zeUWUVkpy vzov|cScu|lt   |} ozs  ~      op}~fwgr{yrs}   |wvg|m}{aRquz^_|zh}p \~iv |ma\~rh} ujTra[k`WoxugW\lfj^clasvp `Tkh[UfkdvqewqmoWYcept~q~v wvylYw r [Ydnj[n { ur[mufm\n\Yv q}Ztilw jo ueu y pwv ~  ~yxtw_ay yykq|rm} uteut]w~ |yvu { t]l  | y yhxz { j r |vtw {n p~|{{jm i    w}rtqy} }noud  kqtm] w ma w^m^phNsozy|yxlbchfuypfj ~uevZ]X`ferzx sts |~fw }   qyytg[wsejogv{i_su vfu{sm\p z s }r tk  si xs | bd x`k zls^huhmdbpmnce^w z XPQe QGbhgit wr{ y t |xticcdp []lkbjhbd`ppasqWt stsyumk} ywmxyUb\ v{os ~daou ml {  fjgKd y{}r`qzx}xrt{zusvndouti~ yuohmyx[Q^ZYRczmlmbU`PU\^p } rxhyqqk~qwwYYv srn | ~rw p{ utksm h[aujm^Oikmr ~ }  y ma y{gqk| u   lj y w {onjWks{ oadl| mXl\kvcppbjfdZloSJGTlj w x ulgh { ocn rjq ymg\WYeqsjlaoy  ~st q aeo  wuquvr{wo_ wl{vZpl[kaNAVnqhvfVhdUxi`]``rt_ p { Zx yNl|p~ t csjm  v_ik}zyujhk|z| z y uc{mi| pr]Ygp |l  } pgW]X\jc\k}wrrc|| vv|mx  w~{wu{mn{inrgdnzoj    u  |x }    {q|{w ur~xyp}lxsvwzv  u } {ion~uo{ of p  v^j ngbqn{~pc   wxw vxuzwjilng {v} `h|l z j ~en zdkzkfm  z  |~ ptzq } ~jv rz k`lv | } z y oBnNo n W}ן߱S[msjm~ pn zu GDihm|z t ~yiQ^nsiq{ aVUTQckyskq    v{qkz vsvnv{uy^j tt}`Yvxio]KLj }{  ~yreTm m urvqn| v{ lr kmjO;[l\hVNn o_t p ]p]eywgQU{ld z v eR v } t sax |}  jjrqlm uv qh~ o|vtz vmgifcoro}n  { zgxkJEd y rg| l y x^l\ w aWik w `sr }rmnVl~ut | x yqvo ~i^| rx v hm xiw wq } [ecH^m|~|tq{vkp ryktqpXyhc{ ul}y{{m ~uuzn vl} Zu xhx |z   } sYxzn zne ~ sgvumr] zr   }xtq |  { uf w v|zi| ww tkc mpts { ze{ugfk]exl^wqosymy ~ hw rzopxnev| katvpyhjm z \stkoivt\R_uskqf{ v _j {hUe x~ }ummhk ttl_ahiw  fk   tt`poXe[Ebq]Zcmyj\m{zw vzVfqPvziru_c |df`crl[iyg\twxxgu} zptzzx gZyiPfmtpqqkvkcpv | mcndjin uurpr x nYTau uxez ~  vsyy]_tpsgqx j^ss f ~qu y } | lngV zgfr| |r annqrfvs{eLK^jmv wpp x{   hrv uljj xwi wex t ~sj tlgarmlpnwhyz t o cg |z ft ~  q | ~naa`_\Qg_dY^`elsrgr zke[spgs|y~ecbmjo | y rinX{xg lmxdefu{x~yegq r x} flq }!bznjz{twc_ y ed  rkkyum q } }ytisbn _iq{{gbz xgtjj  ~s| xypr r xz |tt}    zt|u{~ }Zi |w~`q |zqr}~}n{ ujy~u| }u n| ~ |     p~wzr~q   r{z|xvrw`Wx   xpsu|n}~ulb s   j zyf ~ s dq ziqtiz nwsktr tmqkm`hqx\iPawq]ewnYqr||j| }nt hx sx x i\pl{rp^Z nK p " ifxؾ֨guy& i q opyjXt lw  z rk  bhtmvl_ix}lptacm kzzwm`]nuzf~y{tgt| ie  i  aZ{ s v u[B^wur]mx     ux  }gzt~rwzz  } ru sVp hqs_voarsb{mi z oNYk[\sp\Ot    j{ z   z~d\|ury iz  pdr sp|  ~uxkerqk}|m  }o _Ceit{|s~fub sitwukzoo {admkl | ru }pehhtcrgkk`czti{|z mxyfv~   }txkij xy| { akan yt}rfn{q {k ji  y |netklcS`k AJjp[Zit~wdv }el mholy {{wTvysvq ~zvjxfWpw ~td  !  kuttvt  t~v axg\v z nTs {f\c|uco_U\_gtv sd {jc pwvwms~~ } oorkqcwzoeklb^uy|kx xmq z _ {  ~p o xs    h x  w yr  sqmomhios  pn rnv  kk  jpni u^s ~jhw y t }  {xzK]vd}r  gm { tmkc u sy|{ { qbwz|~o x } y"uw wrr|v` kz   ~v s {q{z w j r holhv}  n]ZvjXynnwz udnozp{wx ppqp sgo^QdYIg | q z v | tcceW  g\bljfgdqnlb^uvuc o  {idgk|mrwr  o~y}{ruremp y `m|ytu |gx  bul{jpmsklrUUJO_jhWflrSfgXWZX[]fq } qt z ~wuxwyy mpcxuflz~spn}qtz q us m]u{ }! ~  tes    "|| zxg} v ~ llnzl  onjj   zs  z`dxphjo Y`}fosvXv{y        zj` lUswu |    { xr} fkjo~ {ymv {^h |u~m}~| z to    zouqq~s~  o~hu zv ~~y~w]|y ztr z  } {     qT x}x {  ~}    } m_ m    i |glt ztT` k y {mhv{~ub  rt| q{nrvsspxtU^ s wij  vkrv j rvff }uq{ixk{  |]J!k1>ٲdy)7jd d{n_kS^h_VUgkennjtqx z pju u  zlZV`tm_[|`visxo { q^tlWuu|r  zyvrq "oWs  ww~{y~w| qv l   ~}   ~v~ |_y uw|h{ r~ }r {w Rd~go | `Sl^erl^kwgfrod`nUI^gfr ~y\q~fU m } {qyy~z qnw ih {rk~}{~atxJ\q{ y {bvpkx ~ sl|} qo xqtgz wjdltvtkhwx vmgzup  z  y  {}jL] vyz _  }sy q nsQMfp y jglgjf`mYG   z  ypt qc~kZhiw{qt hws vzx xeq}  }dp z w ihqp|{ihgwvcitmUyoenby^y !!wc | x T`\_[^yv } vpnlmi`[{wj ~ waqpp y t~melmt }nywxz~}l ~ | qijjjpx~ pz q x{ f  w{o h}zqXQ[iuVi q|t nwvspowxy u|  r b dfo v^Pkoj{nsfu ru ubs sowotg_jqlw {y xvMZql|q yfkzrzu v g_k[Xsiii`r|~~}segiWfrjl t |kmoo d u x vr  w zw  }ounupkfn }tgb  s{ u pr} q{ rmr| w  }nofc sjun jSo of{w |tx j ul zptrx pqh ^al j`i~zu{~{w k` l _r{`isp{vo ~~  t~p|xbhdq tlnyf| z equh^ {nog`jwyql v |Vh u p u w o n iq }u tu p    }rqq}z |t mki[iebgz tps | q v kom{u} uic} ~gyat~y nrwnvv  zbZytp { r x`d aazspzqtpRLenilgy~p{~{ yr yy t{  rpxw~ ke  srvegkahq}u~mf]h_g pw  nqyzjo  x     yu~}rp          gtx[fxypuohytpzj}y {c  u { { x ex mow trb ~   } p{uf\m   lYHX z s~poSp|f^u}ihm|kYjrsappbrv}vYyw| ynfj sz  u|  nkv hd   vr ez}sw~ kg {s ~w {j`\rz$ްS\]^ To v Zm| yx vmv }| |p|      uvt   xey {yu{puf |dsi] vy~wtb^] v  }v  }zsoaDIarh  u {~~  yaxve    zt~  h}fvk^gl} zpxrn {  [JgaZfqyn} dI z etmx~~oorTi xcfvwrn y]k}U[sxfrvpauz } iw v oo{uilp | n ~ yxxutsd  zgz |qw   zn}uk v|ttq}x   _d w ~ vw}t lP ||  j~vxd_q ~~ |zx qRpqi{  t{ x btrywox i} u  oy pw`eieVWdl  vks sg_qrp uw~ iu wZmyhk Z^]iw z ~ r y p \ { wo g`z paau |ij\dph{ncbYatlgv x u { n_ z rjjhfkwqzqzvlnj\p }xdgRS{v[Vff}xZm t~  z~x}xtns hUXh} |fUHeff ox|fx knof^t} ~ } vg mmjw  }  n nwt~  }vyxvsu}kmsl z h vnjfNZdTR_mtrv} l p[dewr`[ktnlowylnu  z|f| |s ~ puqnr]eq~jmqly {ls i]xs } }twtWo t|r~xe\ ]x o^y wl q liap sgVl g\Tm upmtzrcU]udz}i|}rzgsu }{ slt zvz _ctwhw tpu tYh}k_nq zxv^bu w x [m wVz{ed o n k\ yv jiVy}   whbrx{ ulzimn_j__s wtzhjUZbalrxmn z { uNijq|} Unlyq ~|[fnk  ra| kXx zf x_hikq z{y jpwz t wk{og| l~zzu u x }   ic{ta}somkZdTc  kyju  zikddnrw u|w}\f {z^     ~  {}~ }z ~| v wz  |}y i  x {g~ | jwdgpt     wpplw{|q v~ tcquru_ABftxx ~ e z |   hpoh z ru _sn]m b_NCdqnz uv |w  tvq^z}x tv iwzv bfj{halq~~~pnv eaW vLjń"e" r "{b{tjtmnxv~wdr}   kif}z~k }wx   y |fs{ kr  y }~ ue{  | y }{wrt y ~ k| p {r }|x qj|{      kz  lzlqqorx  xzlZlkJf vvw~ z {   x q t r  zo~ ~`=n\ywftz vztc~fo | ~ rnqkeoppYZ`iWe { vsl\`nvisp`]nubZWkno\xwmfkrp\~  j t |xm zpcthZz   }  ~ xw }v h`~lo }jun `Bt  wk{yoks}x   u lu^RQWgync|xn k}uxLe | |`s  x| iz fn`ryncs qqzwycbvv v yimvhpq ]buV]kih taXUo pmj[apvth | wo dWnn jkv ofcdthj v gf xq Yjkepc]x swrihulzxk ~ mZoaTbwvn f  u lwqww z^crhZ\pt}  qw  }}pren^jj TM[qz haX s kg t~k }q k z  ns  x rotu^z |sw}wtfoiy~ txz|uqpSX{vvoryoz z j ldt }w  r | |~wpxos|qdfjk_as iyxfhgu{{ } {ix } dNr d_h X?E[q rvwlz sZ{ YWhjM_!op ~WO]Hk{]Wbxudh_j^azk_ y { dRHfiqy{| hXZrTgX rqq~xkiw`YW o lt|z fZ y tu[[iokbwW\  q\fYrx`uKRCi q_w ~c | ziXZl VWj s q m q s [u}  udkWcmttmtctygld[i | z o u xkp\ rx svaqkWiqsp|rfa v z}  }xuPi}y un ~ }oq vu  }y}x~veeik o }~    ~~ rqiumfo ioo[]{   xy nu  r}z~ z  ~mt~} hy ~r n }{x|   |}|}yxp`jxpnz|    gy m  } ^ u\    p~g  y s |    og  l}  ~ |md`s~ohr} rjujn bDegv_ vmp{ulsz\ |qmxqv htpu u{ddsto] { yssiuaHTMSR n!| r z~  `T``{ jl_eXjY`pt}nsxM\ rc z{z}tsxtxggfnw{ ou  }pnhdwu  zluy {}{   v nts {| ~yvkcsq{{vx wmfmfajpikry{yb`T]eI[ } {|ov x {x{ }z c ~ ~ cpn mXdlc>T[QW\Lefiou{f {v ~ h v ~hf|q | hiysw t{xpm^tv  vz |ljy ~wst{Swvplmr]xxmmZ`wqhSp } ~ }u`S[[`w z oipuggMYjU~v_ttnrbsvrv xsm\w}o]et|xivr {   |zv  ypiIB][TCpyfTl u`  p~ `exrez hy u~ smkx dl|pb`u ybp lphRt~qh}reu{himkJfTDeqXL {wsyv~wzfMR p il}m]dnod | ~ f]al[nrm}x vvommpx rtvp\usoSbkfny ek}uv {pwxs~ v bqmko m]okj[YZ]gl_Q\gZLDW`btvXdno g zttvdaUEmaibjkgt  xorhXa n Zbhruwo n }s`ksuqpeSNTYWsmUfon} unhI<n xspxsx {g s _o { prkY v{lip{y}s  r } rxm { |  vvzngtqmtr^o~ pZ s hZfg TMXo  ~xmd |xxjIE\qzmp yl s|Xys m} { lpsggq|n[puqvq{up`Z n OWutUtygw  zqu]UMYs rtue|rf y gVf |jh }v ul o`N mo Ylvcs}bcjX^ieZct e{vs~ tmeqbfjh} rkk\Rc  ~ hd u  }nr} ~ o^i~wmp~ m  }q }x j!u~r utqwrmk{ }qoom lkimz qimkurowtOV jboqZN    x   z  u  y  Xn n{ |vfwz~v{ tws  ||kr}vpygo x{xt|qGb|us yby _~ ~`mihl^n{vjZ  twyrZ | }  us  i vsvjci~{fvw{ q  sxvjp  wn |f }  y w  p {zfo~t y xpzt vt~t qet cu08 ifn{|xwpum`ZI^T]Xcgw f^p }| j_^:Ewv^\v ~z   uyqo   v }|{ tlilqXajkn |qiu} ~ {r}fpddxsouui^kgjk}}qsqusp { y | eeqslil p xYh  tugecfag{{v yu|osXqoT^[rqlj t q U h j ^b]R\dfhx qq xoicstnqXWj\ojk]rydke |xkeZh[prv xxgnu t~ _~xoopu]pncf`o yq ^w   f]RER^PKLLN_Um mY  r |  g tt yb| y`d  x y xrpw~u|tckpzz ec } w aR~wx t slx}jypaglw~yqlr {l ~ltmgan n_ ps ~gt vpmYl wn[   } wZPfg{ooslgey xuzz ]gz kqkrmo}ka[[ y ~~ wUn! ~  fkx y~ { unvlZejZahZV pllrtw x oei n k mj y x q ~^flhs a|  r qk^svkjd e m x }vbj !|{r u } x || n ~ yurf\ ` u n`{ egjp{{aEk ~ {rtw~{w j} v^]]SQFJldcVovurfsx g tmVX`p~pc|u |t||{ fo z`k vg v to twsg^zr  eRgu}em~onw yU l]ypqn | msx u } pxri  }~ ~z f_nUQ spZkkZkyz   | qfc{qs oe w zky \e ~rebrkkp |n }{h{ || l_x } jx xqrp! |elvump~q ywtma sb\h_hnw~syt~q_U`yuYt fxl zgyqutxho ~x~  { ` v{ppx zq w jY zcfwfwx`|{r^`nYyytyrn{|bpmn  |  y {vr k]~fx x  |jp{  wf  `n hq  ~po  vu} ty{vtw    |   is y  zs p{ }s}~rbfy}yc{my~ |   mHfymom z   v xkCbtipzrpc\U~}f|xt}viTv|j v r | ~  z~|w    onHbx|ul_i|nlfg ~wfjpj\w  z s v nuqg{sv}w #,ͣ[nn# vrmxpw}pnl zt ~ } z_o    s XXzvT]drbbn| ~w zw `u{p_dhmmro |      ~ {ru  ~wl{ v |ql    t| | u~r n Ud}}ovxq qwg^g]iqpu z opviwoyw x fm maw|t{|njqhZ mU`  sxs nq x  oXxqwf | rkllmbU`nq\ryeimv u vsvux j! {  t   ysk \gz mww kp x czi tl p v | y Uw hZi]ll v}   lbhXez  |nm v c u  t ~ r w  w{~|sfrnZy{ p| p {g_|yfuvh ~  x nc rs Z ss { {  ~ m| x {uy} |w~ fm|nuu~oq thWfq uavyy  Z {vu{|]Tc^elimm^` zlq x Xjo[_up  uzzz yrjgio ~ n z mtl} ~ qWa } uoc_W db_ uvjwNY`fUU\~ x}w~  ~} rf k  u\u qglz  p R[fitskamNM`gT^qstXeu z ts rxn Lf s jgXchnmigTfiGs ~ xsjmO=?HXaYZmnw y bg x} jq u y } }|iUai\hcb_kS n } }_r dd qfH ~ hVzzx^v puji|mux _h{cp{v  zoo~qa~rwsbe_d[`svryxvu} q`i zui{wkq o} rxsnvufoln ywhbu tyv_nppq ~| ~v`zk{vl~o s qcz|v uz yllo} in rR\ju|  t |p}z|zpwnkjlp{evgH^`thltsmp`Pphgmf f ~m  g    yhrjf wu    y np~xXhu| pv{_}b| yr ynt}  uw  u    ~v`\i}yxx|zytgabdu w      }   owvys{z  ~  |{   y  u  ~ vt yl  ] tdqjdydp  [jnm f{{staQ  t f   |brsfXfxl}xn  pq ~}Wl|}}z^jbTA9AY_^_TTl^=Fdg^W{  |vizjQ]jfkfq|wyrd Ɖ͗L]rc z uhrw jbr ~ ai{  wk i an q ~ec u u|  } |uf      z  {  {  ~sw ts |}re |uj { }gw z ouaUASlnucmnek ~ w pvh[__bvz q } uux } ssg]j lfmx lrvnf s [Wr nq{p]x  v sh z w | oU^m t [nvX`er l up{pxo ~ } m^kx qns  }xs{oz~}| vk | j~  ~ ]rgUzvp_GHZigsBi {m u{ pp iev pmn\h}~rvv  u lspltYym  p| yp      m | oZ   uo{ubw ~ }u nPn|qw{lciz ~brjlheo~sg| svs| ~}tz } }} zxhdfm]mnop  Llpcj} zi t rnz|x{xyw u zsTl xeSusgqwrwtt }vf_ag yzxnpkxnosw{ojiXVnseZVOeVb s}qh\GPQSLMQfd~txuj|luz~ ~r`] w_n th p  nZX]^j u w u }a br u Yckq{ dcablnj{oEl f v lefdd`nnPVpGtzyudw l caes } } | rn} hn _cmw n z v |xmtx{  { b]ZS^^YQp~qUduuchm%"|\s c{ ~Yu zy{ q nzj~ {k xqzrt  zr yqwii{vr zet ukc | zzv { y lut~ z s }  qwmw{qokt|usse`b`nkrrt xu {yuYi o~~ gdhn^X~    yj qqumS] o s gTc r ~ r~r  }{t }ynfci}  &'vv  {  xlf ~{xn~ rsc    ~{qi{f~kkiw{h nyag amvp  |o }v n   iyl   w}  nntw~ q~yvjy}  ~oqy~ v n `f{smlkp w v  |~l{ t}h~  pxfzv  x  wuiaz}ptsz w \  ne  r rwx a ~  y~~ybryhP\xgc} p ]{ zs r  p nes }y ~zu`Vjrh^kxqh_ng__luolm  _KRq~>@k n wt yvio rv~r  vnp stuj{rs~w~qt}y   q ~   yu{ pQWU^V_  q} su| }|  v|zw|q` | z u_JZ^ gJ] qd^c~oo w gTFUikmWa wf[h hgoektqaho { lsyu ~ y{ ~ vs`Z`c`clawrouznd yqu{mzrsxnbe{|~|  vsl { {aci r[gjEIMX`Jd^c{{xnzysgZYd\Vcfc`[`opbn~ku ml }e z{b|lc  g is {Tw  z {}r vvrls}ij j\ki[akfpq   yxxofhKq{lhqs xVeuws p^i    lzr  t}} mjt m]jwwa | oiu`Pc^XKNaa_Uq   |  wq{    ig {w y~x  ~ x{   |Xw skpwpX` } `lzt| }oi{p |p`kuvMZtr{    sky s kni uqhopihqco  || {m y odaXoX\  w zz w i k vpobh_TkaroakfvzsrlZN t | pqwdU^} twvw~mZb n pm p mq y blxv d p n xxj\owp~qaqu xosea  r mjyz}mimfdhbi l _dcd_oq]fmecepn v ro oys} pgi_Prhcz m Y { s_Uk } wzWpzq|y  z  v {q~ kyibq^qxnllz y y r## ~  av nfyj }shl]q`_[algfr ~ s  ptyrstsxyxznrpk{rrphn\SWj t v nttgX\`;myLjuqwgmy u^lor}dGO]d_] o nxwqvx  z pfdhy  os {p{ |q`n{w}z pc }hv we_Wxmj}| {x ss|~ uwokj  nxycpl  n|t  }#"wz u     q{ jq w   }}  {k  |qt|o~~}tr  z  z  o~ sttvs~ fs qbxmqs ww s f~  }vjk^e zubg t{p[nkSjo X w| z | p_bxbe+)v\}   zz  q {e`Ox  zn }  z ~  tw| u oktqdp { o k ido rp^{{=Etv56 p u |lfsmt s~zi\Xr~`kax mV prwxut |hqppyu v   r[tvpx{ ~| |hxkZ\ q  n   ~ tbxvx dIOSYER^p of }lr | o eZf z ~ itsfW`nt } x_q y^Y`sqckl{xkd]mo^emwx v ~ ttpuoid |v y wmoesrz nf_ zv|rwtz ~ msszz t vahm{rgu i p  vxwnsro { rj { vplbervbl ft hn^}q|r^zqklp| zi o~ tvQjvjS_ldtll up |  ke}t^\z t Zktbbkuerquyvuty}dpsyw u mTl{krv|z{qihu ~ VStwr|seroqsgz|lmccjeUPe^Ym~q~ p  sv\Xqvudjs~ x~wjg  `Xkeqsi |u[TadWVk`iyqafmvjlkr| sxqUu ztu }ow | _m|osvmn{s  tq ntzm}~  wow  w lj\w|}qzvtk\nfk|uwxx{a } qnhzc\s { x{zsohRO o pkS`}szi  } iVnz } {rXEMmhstowm^b qsekggcHRe`]lo xt  h  t|kwfOcicYlt x uqYuyk|te]]p}evfYYROTFig_kie^p | dinbYSWn zxx| x{  pfUCVqcS`EGiaMOc } { ~ `ttieadwtuncpv]espqdgmZholz|~{ighY`VXq w ru f}nop lwv ~ ~{|zh ic^_hklx | k ~ wy}{thsnpsu z plfb~  { vfVRePOpqdi w h l p A o {Wqmrr`eirn{ys Zq z}  v} lu w {xtlwvaXooihtvjfv    le y wr _ |  u    wunsq{poswyvzsnntnwd  } {| {  ydfbt ko  ivo^bigEBywZaatj}rq  ttzru     ~g{u~|  w } { x  s  | t`bviph{ Vb { ~ { z~ wntNkww{{ }Rtz||}y  pliHr  wm|qx ey xksrUrqXgc}nM\dp xl^_rSU } t|}ylheU ~  s  v }aTu yge]Ucpvokty} ~  |^y zeYfY[oiScmw'ؤj2}EN O i p xxty  sjcuuow|^y ~ uto r |~~hr s   ycpndou   uh rl u o~{~vx|| wfvr | v]^ k neec ~ rwnis b t jp w  tv zt^mkgl~wyzw{z } ho q||r{ w{um_Z j abd_e]p k~q ad}z|{~gcwpjrgvwl rnw xz y ^^|wwx{yx  w } pk  { ps sfe `y{|g|x t\]g^RQ}y^ps[fr|wx~xnizz{twnkpqsype| ldjmwlbluqvhx||wlxwjnoq{ngm  zoYozw~ mg_fou}up gmd`h l jd { xxl u z q^q kr iyne swycezyu `o}qyo[Spw WNaZccVr t feqvilny{khm| oknj}  n\o } }xvek}otztop uxzw yn  homq{yxwsrl`_Sov  } iPo cbykgihxmp z v kgcs ao x~xtwqdhQQix qc vzx}y~  t  put x]LZ fm tiw racw|l~ ib  qfv } k Zgpfxu r iyoYOYX[ e[ k aUNbcrj]kyuvxitq  y |q   { zs rrhjsruw{   x p f g{ | pgj{rbd`qonYt |wh^`  |x wz {u  qz | { p|maE=U]^at|g pt styulu  lxqljipsq { | _wx}yrimxssqsgn \T| {v~~zt v qci_qgsrnti t jNw q Oh_p rxsqfx tZsrgvvwvx{x~  ~ lvylnn{uq  vfq v|  lpx ~tdr | v ~ ssw a^cOi|t  l^_xho| uz}    {npydr`Jm~vk  v uf zkft| {pUd`YX_iPZ|  snqPil`` }  }} {st w v ckbpai~{ jmg} s~sYSZcXWtxf    u    skw x }p y} ayl{wr i sdjjaY v| P |ub x o zmv ~ Zlk| zkkj z emfl`wq\n m]|xtgf^PXf]z}| yZY} poihqsz}jiifkq y Rnrjk ridw kd^y˒Ҟ]co h  uyoy  {    }| }po _o  r w} x   x{x o m phwl  |t~  z}zjxvhvn}nlz vlZIhslluh xe} onxhswu   di x jigmoeigny~  gkgssfl |x rjPMe[Yc jhM_jOiohjjtW_ y sx{}otmmqVbf\{~eal l  { ^] wy{{yf  wgz imyy yz| oeo} zqWewv`Pq  }fw xy  |{y xvrytmswtuiRy~Z}|}  e    ~x z  rv}|gshqszxw q w fXcgwxh]~ |yosw x osurnqdTixdn fq~ubbenZZk r eLi  y ixpjrdjiX w} t vjjx [i| uoye]bQgz vceqtwldv\d { kk | woywk}yq}x uvwhbeb^Sqr~uz ^qjv{optimqU^gk]WR^PW\fiq urfl^Zh| utz{ zfqu[P ant|nl_jtw ~ t^ uar ~xWl  S`qolvQg|{s o k X^g_$"gi t l w meoq d n x z au ~y ~x|zwbx  zu| ty_kb^ZUV_S\mxrmcuu jnxq xo|qfMotr y f`deu |mr xz   yjppb ~ q{u{  zia s}lgrdVcfcbX^`W]icWg z ux { jpgg[e { yomx yv   zrb]M { | { ntujvx wiwwpiQniZgcr y m  vojw dp|blaLSE@>Gc Tg_huvdx}{yuxri} {cp pwnkn~ {sws}uv q|s ~}y{~mjhefheiysz y   ~r ukrspTq|   u u   {z  v r l  |  z    yy }p  {dz|}zrvyv ~ trrmx|ve mrfq~xvv u { c] n|p |}  v| `qbssb | y y     ybzdM ~ mz  jmrl }sl  pw}t  y| }|{{sxwu}p[ttcgw|| ophE v } h wp_Ymqsyga h~ z lzsiol {u j  nOX̕ԪEYT gxx uf k^bouq  {  r rvzXaw_o  {{mjyy vyxka~ xpxta }|qovur~~t|~ x w  sst}suwz hjw }   n  tnryww sg_Ujfj t~ {okU x kSSmskvlr]Mq lexs\P[UKZa[d]iSDt buy w mggXv~yunh|l }uS puy~vb } ~ frZUQDNi scarp vs|su{loxed~^`}i `z  | ox  nz ry q pmt bd ns  }v  kT yfv[ebSXh ol~{|urnf~|  lnnq}yq||y|y  }y~kritu`ai|~gfz|{wyvz  ~ }t{l]yguai r k u ~ { z j~o| {momb {gPp pv yrbe{uo { vp { prx{vq|d`z   ~{{x  ~ | zowf_Sm x||"^pp~| xx  { w{{rsqamZi { jw ~ wh { f\hpfb_u  }quwtt| {prs{f]R` # oejg`acfWal{n\ `n{v gz lr ~| zt {ymVtoo  q} w~}ivoelcf_[wojsn y eisu|thrpvztemro`tleWV hVLWgt}p^ | zs |z{_y{ w [~ z ^`gNctlbjwjtus_^_Um`ovl{  ~ujs w ml s _NZ_]\Yio`codYlwy {vlpjoaf unu }    uo! sc}v}si_irp}tsZ v v hoeoxo ~ y } y~ qYUP4<I@Tfkqm wUct| umisp\`zgs v~wux~ {t t{  } w }uw  ophl{zw wo{ u  |  y_r |q y  |  }}ysue_M{|}oy oqv{  p w r {}     {xxu }} m  v  |  q } x}}vpx}q { t jz~|Lx {ry  { t x ^ qv| ~~r |ru ~q  zv} avvc]fe\x r   K^\k  |  h y z p ]t { yu hz~bnqp~ k]i~ r p{cNiw } w @H̥mx16dRkwbXdS\ytg   gx  {wa}  htiYqwr ywu ~  orv~~ n bx| y{l`~wvzqrx} }}vyy     ~yy }y ~ t_Icu ju | }qxpgk~te  ~ xp  | t~ ykqYs} | u  |u u{c_} r uyxbi {ssup c] y ygvxpl~ xzbefdxzyu szP uyubpfw kviif VU nx dUggz ~vvz } nZymm byvqYt n xhrv x  \kz j\fy je |w jnolz wt{~ bxkqes u k {      }s  {}q} xpo  zo { mjm} lduuq rbm } tqrw]Ya\hrnplmsw u  v yqr{ nc v_[ump{wxgdurudpphnfgrz`jfw~~zom{xmko| t[~hr ~{ gzu w {~ lblseblhpkqqarqmvp e]dlnnfS\ v wfx~ql  y~  {o^bh } zfZw|zabi~ x ` Yi { |~}mm z ~|tyqvfpypniyzvhfur~jo{| u xlmbagh } x wts    }inwso ~  ok}zy x_  {wtqv ~~vv Wh x t [q zbsh} trutv| ik v w}ev|\frqomiv} i_p v r tffcawop z YNfx knwgs v x lwea |  rpv {rsuw}|chtdUji_f} znkls v v | s] y  z|n v z t ~ ommojyuw{\| |tfZUiTcrpsmahjXZvz x}pmys~ubx jsviiw {wde^dspwvrlnw    }zqv r  o^i |  {|vw imvk w}  ty~  zlv }vs  |{y ou yv  ~x| w   w tyn  {~~mzvxvxzd}l j p|o u v d  ~  v  gm    z |mr oz ~ j^rzm ~}^]Uhtaqy Ur s t p ^{ xsnu ss|e oxoZgmlqՋ\g-0t k t i rbL~kkktez~| b`jrx | p  m   ~   }      ~`e~ldd|xkn|~}}ow |~tos  {rsh\ } ynjdW_ o qe >U ygkba}qSb}w mp }pqscixpn {jj ~rx~sfb`nlsp_v|twu   g]w rtw ~gk z rl{||y |  { x k e gdUdj`de wmc{tP rx|jy ~ jwi~ ~ n w^]f|~zzv{u{ kGy|hO kp_ }pbJglsyulq gmsgWzt} }j| }z~ t`zy vi ``V^gjpyq xq}j svip vo} w  z zv~ n |y{pXifl aOeo^Xr{ls   mmomtlc { {l!ly}thot  }kyph^GDMTclrokjg_d\a{ ssfiup {   }fi {kcmg`f^hk[f j ~ iz ~upoot x t gV\ s lJbox^\ndfboo]rkt\Wjsftyxuct zt | xknool yy zb`_tdS^zzj~vl~ hr ~xfc    zigy g]\s[KtuT^jekkigYkvsfYn{ wstk[s y n\htc { xsst{ zt}vrpv v ge^R]^qmqtur z    ~op } v }q {tgl}~|^t|i^babxabopsljUb wkT t x \kq ds| upx jci w|aponlrtxxs  zv} y x x u pes~qpr[R l ~s{ph y | iui`vj_ahndiW\gsu ~ ks vk[en`Yitugem n os j | z|  ~ j ~  } w ju[Xhfb^slty|q ~   t c y| {jblYg w v ~ vch r ca |yy{}ngzr{r`gpjsnhlmwktyk^Whtp   |  rr~ ~v uww~~shewqyzpt ~ z n rx}   vz  zzm  |  |tz pyaz w} nq   }yy} ~zy   fguwruz~[w ~x ~    ~|t}t  z~y~q }} wxpxyvn  t  zslrmnz Y[wkw}    ~ } h|w  swp txr|vUz[q xd_ZD`qanxlkibs Muxfsed ڗϳ܎VTp%QYrXEw ytpyf z ~n ~j    zy kv~  z{        m}w krtt{ y |u |}kTllagk[]\ i wGNfXf_` xqkycWwy^dsglwZ] ~|  r_rfoeRktja\bj jvuphobe{ypv\Pq ~ tz{uxpzpqu  eZ mkYeqe`ap_IVSAj}n~ jrvi}k} w sv lz    vvfxjr|nA ~ t `~~  sd  \d } |~u{s}f}|hw  d{ sr[hug~w }qsww zk  | ypgjpmrrto }      pz #%qlq |q _vn[Rlr_bqxnw t|v { wk  ] xk   }{xWt|x u { pdfqrv } ~sfg^`miikff[i wpvW[x toidnw hmiYi ~ owgsq`[dhd y |cat oRV^hXXcYU\kocs vxqj{jzx{w\dytuzkxumos  w  zij\ppmq vov{ulv  |{jid`psu ua`_t y bUNdnOOy | _fhS zxrjZYkvgVix ~xevm[kmrb y y Nq y vbt}vezsbir|hj m _ot yr dq hds u kr y_iq]qn]kr h m es  i| |q wo qliq y ~ ~d\n  d\~giU\Zwzmf yqt~hYqr ~u{~yuoysmmejy q trafusph[Qg x r{ti } r { {y tu{}u tYljt ogn ysil u l | } }_QSLT]TbWYej |ymx{upk z  y sxts} {{ns qoos ^`{ j zu ~ } z v \dv  t^j x^Jp| z   |  zp uwv yowrmsswiU_tjg y    w~ z      } n| zb]} x ~}pufwk{ m ztr{ |u u~yw tw}   ~qxunlt|}u^l z}qnHi }z   |~ut q   v}qdo wtq  g} yx|j{ u  quhzyp}{T^kNmd^h`f rin id }nlxiu~eqy|~onr |^h{~ O^jJGj m o l]mpQmwzk v sfhpڹяϥY^1t1?9h w j qy p { |z  z|}lp z{yzy gdmqx x }p    r|yz y~  ~zz {  z zikrbr |{ a\q Rd{o {hq{~vpyzs{| qs zpez u^ w pmx t  ~  x | pu |y  iKj z{{ mp}}zyvbTz  x u t ny n XVME x nxzbkofr_hhpnhiqnZkid]ft ~tnmbfl | Zz o} mm# pu  }r  ~v^ vmgksmwz kme~{  |   v   w~ym{|wqrp vzeiw zuxiQ xhktyx |n {m qpwvky v{ ~ ~ sg ~ Uq! x   `    } zjk  xrwljrmhp pridkPSjcp |[To{~js  ~pbnp { uljz ~ndlof |qp {ubgfk gdj ih` t {ms| wx  w`^fer{j}{nmnrbrz|s pT{ y z n d|  urplj u ~| { svd^UJV`it{jPIj t ja|en lxy\ | vz}z x ^wzsagYk{{|r ttlu` ~ } Jiqupp } zn]vo\h u h s |v } o[gTMdlYP\clof w blhWa g `h Yfy{kXn{ xm$vt u u t vw~ iVfy]d y nw  blbxrdQw ~ yx q`y q l } ~gqkvndbbn{jkpai ~  }dXcqoqshpxzv{ ymw~zo{i\p bju_\fged]p mk ~ bXXQ\`al]ag_inqkrqmifss x } y ~ } pt|v{kklg_Z=Nj yhx ~  ~ vt } s } hPj|t x~ ey ~{t |o  u{ |dlujx{ps   n     }{ x }  u   vg z~ | xfjtylt    {u   p ||gsuou uox zpsvsqzvq  sMg  |dT{tY| }~k|xh`zxkgz|   {| j|y v m   { ]jz dx{yyik rqbkok]Sqdl {p hit r| uz wrx}u p   t uZD _ _fvuw ow j !jl mr ~ixUQКգyǀMN-{("ts| p d srs  xi[potp  } ~sgpqpsyk}ss~b|  |  yy~  vuvu}~t|i}}uir_ x {fn y y } yu rz  uqmu^s ypqrwomu t py|yrwktnunpvqwqq bq ~wysy oYvnxtmk^hi`YE9s hryix } zwo  vqyt~ | bpd]SZjuool^d`{xhrsRlfl^vrgx}YUrxve x {~ iuusti  {{ zv o mf y t  rur vz|    sohxnfnhkv}k`i]b;Y weS_x x  |  {|lbgwvf[xxXj{n[ht|weok"u  spquk]f }z |uhoj]Ztijoo }fg~r jdkp uqu ~ rcqhv tn  }{zos ~yr| {ggkg[\ek]q v getwjia  x}~rq s qr  x} {vt { gltpxzv nIqwabRBg} gf\ML[\J`on ~ xkry{~x` Ys wjaQtUb{van pNhixi | axw j{ |{v  }tffx z } psm | sguc\aln FT\Z{ yw smgwjdjivk {s{wir r l m OUncu tffkmU o daqnofghcrqh X`tbvza_mo tnTnxuzxr ~ ov s~eo  |il{qnrfl ~  z n p | ~xttc{xef}}kdw |mwabohq xnzrrcqldnqt y qxo v v  ||}xsk`cZcd^`bwl|sqyureHNmvkk~|invibfipv ~ eQau doqchnutuX[ ~|snykow~v{ qcsy}t} qsoif]\Rcq{j {zu t j}|wuug[j|ltxhl~sav^ouuy~r~   zxx xw tWs wrvmvw`kpjxsmw|rpx{{}uy~  {z  gt    r T} pUn |rw}s ~ob~ qdmvl| v}{z xsw]lx k{ bjw o ~ uyqx }z t x t  rv~n`epv vm  m  tonQb\amYRk }si mi}muy t y )y,ӼÏқs2= ` dwxcx | dr}x[[_Revr}   |{|}   q{u}rz v{~qmzyv~vt}w| ~{  s } }{h v fXtvq }jm |i[lWauv~}x ~ ugiXj wunkrdffTO\\u ~  pq]g| |~jp~ hf[`gbp   nnwpeepU\w gozs _pwa}xz x z u\J]vm w~ { |{ !  } s hz x qrumXqu}\\gks  s[v p t z|nwo}}Vo|}hoqk}x`Xyey}a!v` }hg  { |vp  vgox xtp ww |z\g|^g~jx{{m w ~ ~ t | w y wxrag} nbsr`g{|rszddzNm pxsrkwv}tzk } kk { rh r yorw ~ijxp }tuxn^qkmvyjlx ~ zxqalytjw  |z  ~it xpjuzitf |ydmlipyyq} |w yjqwvy|w x r Pnvd w qXw z xn^\ifTkpayx{w| md yztiPr gq{e  Yrv g {  z k zgzxeikp`z y hYeqZWSb[Qfxwj | z fan j 9F7, u | u\su z y aXa[cxpxusz\_sbq  |jkz[jii { }} ot}z } o gx |hu _m vgqkdqxrwZv}ejmagttzyou z bvuddidjolbbq}uy  Zy hgum   {} { | k| }t{ x v z gnuao~szxu| ytmljmrk }  xs }{{ w j `wvztjxt{yiixutrYg~fq uxuso ueimTaudsy  pl   w}  xqpptmae[bp { ddmunb{p il}x {r     fyiyfz  g}  r w`pYerwoNgwrp~|~ }{   wu  wvw~| n qv   { w] |f{  b~  ~}v|~ qP}v  p~  |    jv  lxz~ egbTp~r  x{ {{|ppaahhZWTJp rynn|k_]eheW{wZjwxv smt~txeX p }qgemm} ^y}qsd d ծ䫃͋W_oc ljMS\Y}n o o\^sXn{~  y~  j  s   ~{ tj|f`vyxxjsn{tww| }q {qwm |vnqk u }j Vg YNi \\fgUYuTJe^lkl mbYj~ p~} xfrthfkjikq|  iiv ~ ]_{qn^ npf} r    yompK\w}~t|ofv ~j     zon jkj\jlkci~rv}{ r cerzy  |rx m\ { f||y pn   |}eyp{ucwyjuye{~ {r y cU q } Q rTi| | ux   { |   | }sn  qq{{zng{ sW\o}oypnh|qpgfZLQUYRQTm z p | z zs { | {   ~u_ru  x r mv`t  gltugQmogbve{mivw y~xv} |j ~ |lk { ~ gao{ ybaslVUakxs ||zcx {  } tq_pn_Xiwxxqb`ronh  y f}k { nJi yvt t z} vs xm | ulfsoOGn~ ~^}zy{ | je TtlfojeVdMl zpdxo } uhejhqg\^z u pw |s| wa]{!"d}dTnwuaygpmm | mw syx } x } n{{gvxu_mvWmhc } { z }xioQo homdrf xz ht wpbv y yyHZf\efE] q[XbOafng|rs ss wwom`[hgje`il {[p z ocqrru  mcq qluoys~ x~wxdnaY[ejbmhum_krbf gp w{ z}{za`w}  { tns   m| rf  wr w   #   wnyp rr|qkw}| ~ purtws  ^ xy z      uc~qhou}uQ}|xj~    }~ zsx    ~|t   {xxyi]} }y}tr     {  c} kikt    gowx~z wwa }xY_v zftdimJd t_y  { |wt vuq | y }cw[Xkuwm ulv avw U ǕѼƲЙis6}>YR ] _ Z[Ru_bzzv}r]bQ } nRYi`uyWx y  ~ m  } v s pq}xzuv h  {|m\eaTNkbl xodqtmv}ty _b~_UiihWGj w pVs y   y t } x{khsuu |t {p mnia nfz zty ~ ~tn^bn t iuprnbmr`v ytl n npquxtjkiznVmli`ev eTPGVV]l_du`^u  vf`olo pvz h_mio | iwz  owxn  }o |Lk|iglupivu`protoo xi  zu xzeWV | jv  x ~iq u`qf[^kobw ndd~zeqpxihpef v fZ t} y xaw w nuit  !zw  q[dbw }jxx|aqtot ~ Zjy mwpWy|][iqosq rx } qosjxxi~ }nkbma^ ocPQZqo ~ud`hl }{wuH>GkffwWig\p o i\u |    z  }hY]yugwjqwoiauoa shihleNMgu { Vowqrq`KLjPPm }rpjxwl z \ q }a\_sei rsur y ls | ~l ukuwchujWqlo{ ~xy{ m | ziw ~p{~dq y ego prwz |ywx}k~ v gnu d`ch }ds otdTXWFathhpn qmn_sbu  |}` m wbu ny tsgmehvqy { {xtw z pdd~`ptgV\flcdzxulrnaf nm~fgbfwi]pmi{} | xy}tt` w xn{ ka}~aeko_Tqckyon vfyrSLgq{xutlj``zt~| o{rbu  mt zx|sm\rxv jakv}ks~xz  r  |}yx ~eo  }ni hmn ~~ tkbbn}    {yz rW   t  |{  ~u}}  q{}{zx ttuli|~|rk{  i}     MtqomZNwrkso   u| }  |}z  y x { fx t  vwysky ~|zluYs `eu pd]o{bzuw{{ǻ㧇Ąge$q'dqRL k d r x hrrt|     ujNqxfnx asyjs }z|{  v     ~ypp { ~ fh } } " yn}lnz w n  gjnjq{rQ\mwqWkxnZu wroj]lm^gw]Sfqtip |ywt uvk[`Tcf\mvsh y kmznw{USQJMl`Mk^hlQ`q  pdbem m {}gc v ~gY ~ w x thiXgYciktwk^uifK_ci {znsx_\rrnrt    wu{si d   |  w~tqrh x}y     mUnfx r } ~  tygd~hs v | z}z| xzu u v dQSqraVjiMNPOWVaw zbwmgvuZXPcmldu~ lt |}  g ~ vd sovxwz n}ukrzscfj`dof\l{sjv o n v lcbvs~ q^cg{||\>U$  w z hlxirdUcTcsu||q jZWfouj| ptymiae\_|~pklp  p o `ptaq v hhhbYWt`Z u yw vwSlze_Ypq~ut}rwup|yryu  sz }t|qox mfr xb^[HZ^GGI nfnnmqhmVc` vyu ~Zats{vbz[lpuwwyke o gXfuijty~rZtw  gw`xwl {  ~plkjrmruvvgmvwwec y Yfomcik t gi x | xd  yph zhmnl{ l Wzkokks ~ u  o  h   p^yTNSecSudr |vz ug x ]Pmuwl`\ woio}{cLqeNGhdJ]ktk_fzt st oe_nge v [SZa\Nc vo~xk  {wy{rc  wxxqq]jqj~m]l|z {}pfkqkm|rco}     k  mnuyo jfp z   {ix{|{wwutwhmq  wpd_r|pbxw} r    { ~}J~ }  z|j } n qgs vg]oafrlvqr|~ z|| ysqit}zqvv^V}  x | |~s]umhoefz  ~wmr  !#meb ok~Xuyl Z^ʺѓknZ\99)u'ngij dfnvgdnr| { x l         }|p  hy  xnox|| g m } ymufwx kcl^Ye^Jn |k|zoozfmosenslu  gR^x ~gNe zxljcTK^aJ\v ri`kibgottfs } x |p z iQY[IBVZTc pkv wd]  t z l y `dktu{taMCHUBVbn}pdy vn xk   u}  } w `t r xy mrhi  vp  z|{k { os}{n h p_Xer {z`f~  nw~v}|||  y ~  ~ aivmf  yx z  ywumdXPbc]Zs iYdk f`WOZeI\cbdfpnkg{ }temlwtqwY\pg^m e {w~ m {xwv}zlzkh{ ~ qpssmurhn}~uuhsnoypnddyi]d} n ml | tWfxp  y {so{ xtrpfskqyojrqutdsvd][\rp    sx ydaxmo m l t r |tmktik t }xbk V[s|  h   isr{ kmr`dzr_sqgsy} lpiizz^^ zvpjpry}g`\Oc_ ^`L p v ypolsRW\ t onuxebsx ~Uaorzqwufg|zme~v  w  win sxsqosl |}| ~oiquopr | ywwr mg {aipriibhen v } y Xy   { gb `jnj uUv o|{ gl }_t e d  x gcq("s_~o |r  kXkq xyb\ }wqjemxjx| d Hmh \Ntr\n {  ndnyh{ mvq} t wcc~kkrqo]g  p zi |ohts wl   w    yos[hvt x i y  x | py  qnyzbijqwu}k    } { \Zjw|e|lkbk~}{v| iy |  } yn { t ~x  z   rwy{u}x~ i   pww m[c oeYx}{swlp_kzuxvpplzxt|squgXqm|sb y |{gxij|t js  ~ qk{ hwsxf{ ] ~  g`x{ r gf|!8<ĽﲟܜˊffFF@@1z2h a a WWhlk v nels sXerh{ lv {kcnxy|ryxy mxYu |zyz  zzztqZU<js lgl jvrdcibZhaFm | f pq|puov w suo q  " odk | }  zi`tuTam qjmvstnft|eklvrpitoXaf MLdgQ`udi  }oautt xj xr~  ~ n c [Xl}|y x]lz{ttc}{  l{  }r  ~rqas~o   |icz z y~vks n}o|{ozj`aqm {{{rU|v W} ywu    ic}vy}yxu~zuuzy{ulxn| z}XY`YSiypm |    } z{}ui j{z z rzww~n x w ex| rndff[j q ha r v up|qtskmV` z \Pa u sg} w    |z| zxlx  ~ rq { t }  u{z } |wa ngaixpROPbls |lQ\n`]pusfe t ji~ ~{tz tt n w v u r }  q  y z tge } {  gj  obklpi^mtcekhntk[_ { { uq|n|yj h fji  itpvr hi  |a~ gq{wdf]GQQ@JWRp ~ysYuuwu|z  knw ~z `| |  aPV[hx piz zkq|}U]k |v{ rhp s ob z vs y { ~ tr`e[bR[twh~ tvpz sxy i\{}vnk| u ~ |onk {{{}rp_hmu }Te|zte}S x ~\e^X~Wz l{ ~ioh { i~f|w{ { `Wl v]Slfz|w}tp{iou up |unijna qv ` F{qpayt e| b\q w}z |x}mw ox  | n}{dw}vesmrns|h| {   jz  x ~sziqt  kz}y y v|mv|xqt|b>eooogo} | ae   {omt~ |owzhxmt|qq n    }l} qz u yz|x{dlqr}||sz    py  ct~ sx hu ~} ~t{ | | wwav u~~     ~{rd| {am } pl z p[Tymxsw mgpb  iu_ y[`t|s hyzp#r!η¨ܴ•r}lw`iSZ?F(z/ _ho "s$VXyp|y m m ty p dbieWQYwtkvmsirWk xopt t y|y qm mxzb^er'.w(*w:GYcoНݟJH ||  w px~ y ifOxi }{y ~sw y vpgv\c xdiun{ jcfz{} t`{n xy xzr htxh_LQMKJ[oduffyyoex qik{{yvruhpdkmXpyw}  y|%!yfd| {si$ zm}|k~xyxy ^rtt|wpkciijyuyjeuwulmzt_w  w| vjw ry |xo}y~  ze  \ svs   t~|r   t~n^^Ydq}jr}|  tx jdhvufWT[s ~~pwz   o wf^jp s{ y \su  yvrvq n lcorslwwv } wvbo"!qgro`~ u hrjllh wwzx zyxv{  |vwhy{hj" }kop| {xe{~ voqb`^`nwvo_Zl{qjroiKJYE@]hs{kkz f_WiXWpq w   q  ~ s [} ~Rml_{ |if}  ~ |qvq`fpmvnbbcd^^x zqcm x cp rYl p L]g RMcittW v { yq {tu g }pasXa\c _psrVgyrvp| qr| }pf    mWZR_sxcev v x {sx xs}`ejq ks|iXbcXfZk]Wqv y t v o jk zek } }Tj~ qyeen w || qj }mboanqqzjs]c }{z| kvoeo!^byrfc\n k ymd dxhtu ceq y hpruoiwuzn]ec zVN]g\amqxzvp    {   ~ z   yvxeg^H6]kXabqle_quVXr qtYx wk mzvzw rhfv }h  }  ~ r fpp {s}  b~}{ } ny|}X`}~  q{ { {|nW{   y ~y}ad   }sr  on yc~        ~  { }z  uzyw{|   x   f{~ } msshq   q"y t|         tu } d ivw  | yn`mikmyrvvb~{  ey gfuxiWmw t fߘʿī寡ޤ駌ؑщko_aVZY\\aTYFK?BAF=B,~1q"q${!oj q`h #z`k+'2-u52@>@=HH>AMQ_cnr{ǀҌؔٗ⠮һչgazrsjm} z  u o Zym vx{ttwr{rc]bGSkf[I[g[v |p | v  pouuu{ | }ktxh~|gpq ts {  kk y | vjy snfhh {wk^^tcibi_?QXW\wxb^ ms jRp ~seZ  {lk rp }wv q f w{wpg[mp|{wuw v | { z ju {lu n    n  z Yt  nn  hp   ~ t} uok    u v }| mso~}rzq y vfWm    ~   xqug  xrx s rz z]mz_gz  prmkjx n r v q^gigwupX[ sg] j iVh^e__PefRZjtlwhgrf^cffltpaG d kRJ]icj[]]myo|phvjv| q r wz|qYGO j u ibgos^av\Nah nflc\R^SG_]d}slpgutlwoY xtWshUo y al|{t{ rkw  ~ {  uhqrrcfqSSQF[fJP[ _ \ r uv{_s{ vn zqpbry`hsj`p{  escd|c\|}w|pw {}r|z{ziq[^HBWf^fkro | } ~ v  hq }mbwzkw  [ ebZpa` nvmhlY\_Nfqrx mck  o} ^mz vn`ek p rtlt uqp{zl y nsU_ zuzuoup v ap ^DTl qWZ xqWO| da vwjdw|kqk]U p ei }yvl\]kjtnesj|}v { } ~ | w }}qnndsaiotw yuvnvs|us`c^RN ynktti_m  lpz_m mq  dvddtUhuo } d\ Zh }oWgp}}||f | {y  qbjwq^RT | gd  {   w    d^qy~ xx   }rXpv} uk~{|w   zs vgs y     vxyu }zfn}}  o|  {}zq|  ~iy x{|oknn|| x  ~ r z i~wp|u w || {ujn oz{} }g]Zdax f ЇʾԾɿܷ0) |rt ~ kvvn`Ncldqst{wrneim] ` `Jdtg lVwj { t z^X{sghv|u|a"{iw xy{  ~ t wqt\_ekhi zpnb]ZnmfZPijigalkM\a`\~fOPWYHLjpjUBfbamk^l`m{{vy{mm o s z uy { kkosr|ntpV^ | j z hztu p~yShjormWhxidd  _rnhmm~ cwuvp|} t wvnys_^fsy}{hNdzy~vs~w pae_Vbw ||n oubXkp`q mpw} z lvuYZ saYfodzofyxu]Yk\OS o gb| ~ }qaS| c_j{q{mlqldcjlp~ oQoxjiruv~ttmy z ~ens a o    c WPszwx}~gi unoc {stol tjSdZ]|tqvw vr y l sc~pdpp_{ wv } xbiz v~ utzz  jewfnto | vkh uk z qyrYecbdXnv^nugnhntgowyf { v t WUh`c uvqpzvzfkmuvab k!}\HJ`V]ZeTmj xtlu w vlax\tjzV gj`{g}x{gi sckcmmhu  mlu_qyieciecb[cabxyhJ^ {y xx[hi x_m " {   u { wj y iRiwmZ`lm K@mywmZpo]}|nmb]Vvwr  |hv r| z yv|qxji{vgux|syhi\?O7FMW^pvzxw~  oe  y  w } nr}{ |ut ynr {\fcnpgw \ et  kux   Sn~| { uylhaljaNP| z| }b~z~xt a~th{z   {  ~  ~ } w nvmv{u|~ `hy}sghfiuqf_Ss u  uthp teu~u|uycx s |~} u {  v n l x }{t_VXYg\gdp]WWe\^LX yr z^J^w!xpuv}}q|nt z#  { p } we\MTCa_ʤ"z w pu~fv|aTL`leea^gjhjpr{b]q f Ffxtf Kwb{b[lw w iW|rmxlSsjIjvjftz nn t  { ypqtswk z} umxu} uy qv t w zc txzv ~z t{dw sXH sq ]bhZ_JZ  | rp} | z`wg|u|pbgg`q|h`pnZcj_sy\kwvs^~ sqxr~  y     k wu~ u{wylqg _uhrq {  }q nhv}z|ynk]v zso_qXup| seL5QcgWawpiulUj ~n{  y  mf_ wl ~ t s vsm_`ykx vy` qth w yy | | |nu { } a pldosouwrqelsn t _fmzy~ Vl   kb n ~e\st|v^   ~ ~x|j|njzujv zuygU j]uomkYNiu ~o{pzpQRcgRadr | z}{r ur{   o{g{p vxipy psujioUVkeppys_i yvp xwx ~ pw { {  yw j^b}en th m W!namyx | ~  u| b"gqt{ w ~ z v  }vt l |o| ~ xvtYmrcr lEU  w | ~ ~ Y[lSU yu }{sr^n xl[u m v x _ tgWz|b kMXda]mz|s ~w z uWe {osxx{{~r  x~ lu `Q s|gglfx }v   ~ oa\swz~ w  jx{ u eu hsds{twk  s     | h[\V`rm{mp}}\}  so   | n  {    wvdxlgq  p    x   {n{  unzxWwv|utso zz|{wxvxvgf|~ w{  r xw| } y y{ }   }v wZtbga s|wm  r vt{w|z lw xwvzYbiiiiG?gky | wvn |~ }]rg |  rs|jVx  zu ptmdIKFazzz{x ew |  nqvuy \w s \w {jhGbeNh WV^Pkjd|n[Rnjmq]noVmmoiv |fhdb_dxqnnrv ~ vsZq |pr| yio kg~zs xl ~jv kj oO|p `m{q Wv  s  ss{oxf`k@_{] |v  snuw   qyxg }{#"n{urunt    m v   ulfkz_hpZlaxihw  mn|p ssfhP[rm} k]z r|~|xz} km zx xukdx ~ ~x z Tczvs  y fooqt}x n{zutk ~ k]Qu\p| pj  l pbn { | oph~myXr | v_KZl`cupri jt} OV t { p am  s{txu q `c] f hX ourkw  y ^xwn]h vyo` | ienrld[S^s q{  qm {dgs } u|{uvnj  q o r`h ~ {yi o  xer{jcTw~t{xornfdeb zi| }nkuxmk ~ {r~ zy }p}  t  xvgi gltkcIpkgpjh^hmsi{{ ^xyd z do w } ni{yxtmni { o\h]kj}     x dm x s  |W^ u  qp y bXmc|  z~~qr  [lvofYmtXcrZ sp f~_   {ain hc w  zkyus `[tonr~y~ s    yt s\m | l_e`jlyu}x{ xli}fu{|mmz~piat{Ztxminui |uz{rcz|z }{sqx ~ yw x}" d wx~wokyy{g  }  }w d ~ xhzs}{~vpbgn }lgrpk{ vlm~ upzq   ~|{zp{~|oyul{ t     zw{|sx y |~o m vzk  zjpx  w sw ~ } ~ j  ~} y jy  cWmf y  sp oq~y {i ukwnf v kn lFyx {"~jdYҪf_] }upbvlt { t}vw u x  ks} iQyzVdXjid~ }  }]Ivdkw do c vrlgta^X[RKpjdciknx z vt^x nc{~  |znoxbXkiks{}jvahvjt  kLq x [apgk`}  k {z  yp Qm |b    zsn  lz!  oj\ikTuv~s [   t z~  |  |jar gc} vaplsuhlVjoqw~r   r^e  z  ~rRVn`_jyjqsy~ emykkfVX~tr }sirs^H|}fnp ldy xzqibbvvqww ue t ylu  uw V`vr %ta} ryzVLlvktjPVnxs{{xupg oc]UBVb^lqcn{ ej w cyqhjcmdoskpko y lr n kqx ynqm}|lk u kt  qdgspiaUcotgPR[JUcYXLUbgiMMWRR@Z zqs} | v mY j k k|fovnz }  ph| S\_^l ~ zhiiZr yyxgxop tvvb~vykiekfdW]liv~ } r]q{p w \bh_liYdjXX lj^^bgnhd[_ p di\ rj`mgvq^Zbrw|ZUmyr_dkcnlpqt zks] { wm  } lp tllz u}sk  nwhz yooFrw } v ]ZTf`m zzju{s ~uhcp{ w e|| z~ hq  w rq ve z| qp|k^x {xyv {ej o}etuvp ~  ~cw wqw   mk}|Uwuqhw imx{~xrnd }~|f{   }y |q    zyg~zfjyob~u ~}xz       ~u xjs l{ |yg zlkh{pvm ze~}y wgf`j uqzp{  fl~zko  r|rs {uyftzxxepobjcfykm r t jZo j r }Ioz _D9ٔԈʏ\p|{xi ~ bWjquqxm{uu}pyhn  rX  daPcUVmenqK{{ YorOfngMopjlei ~vw yv  |vq|stt]rk `sxnvyt ~~yukshi    zx p| l|x`r|~qv}u\x z`Zq w xo n  ~     {{m ~_p w{yyy}q ooypyjkd:W_e_`[r~ s}   vv   { a_} x  w } kd t~u v  tXELhnrhu{ qqv~yt^ety}{{sunptpuxlht} wuxonh]vx{  } jQtlg~ ley pemjwy { { jcv~tqz{x wLGPTLcgN` ljEP \ Gpse {|vqW wu]fek  {x } z w j x|yqWYe\U_hl_ | z|ohldfqkp z pm} hs c^en }~xgm|}zni vjbr| {qw zvjuig k NTq urVVixg` m msdxt`hgckaf`e xot ~ vw }uiz ~jknr |  y| tTa|rmgZ xz wz z|xq zv }zuefahqry }  sW\gjp_gddwxluwh t uxpsxxx lVOgx liW r pgo_p p [_enw  khz  nsyr}vlsu vx^ym]mn`gveks w u}nd tv s M^rlzqh\heXrv_r{ xxungd^aibNy zal ~  rozwldbqmXswdhyin z } q{m{Yg o s tt} ot znquswRd}~ rki{}   xj~ e~p | irz w}Zewtra bu z { lbxwWuu}   t{ x m   {{trzxx   zyr }} ~q{ {nmmfru o~{ |    { ]dd^w  x f r}xqtnYZ[Qcm^~y |orohxl    xp  } sp w]_rk }dhalybQXeX| lg"" \ | o )m ޼LS`udsspoe } { | xu {| n x mQx siRfSWfYf cp XjqdUqnlvkk{qpl r{~z }zy}|bjvglheQ__[{ qxuss ZQh   ~"}  k y jjjg{nUvhZ`|ptzlcrgWwlZTHbat}mz|uxvxvhupv{{ufu  v {    zxy Rfk s u v rfzovqsvkc_mhj~|!!}hq  u    ~ xwc}m`wr{t`VWglykz uw~{ y ^a zxt~ {v    } ~  x zwf{x}}oouy~| mOivaahu kl yqwkpwramrjymuqdbin^vx ccg h I ^ _ 1]w uql wv{nY tt`a } }zxxnqxvoUUa[H[hnltsqq { w w |rq |nb zamTSV] v  mf  xm`m y eJJY`m {ih ~  } y|psxVut s f n ~uk m `[O`}~ p l y r yfg xyv vkhi^RadH}  ~xuq~~ZZprtlRmu opl xry ibn xw v  sfsviqtz~{zibcfbnef| } p\p ~~ r]is npb~  v {gaa_^u xjMNdv tep { t  mnq|tx_xpdstgm luuvxg`Q^Q@Wkkwtdnrp  mp s   w jaR p ~   dKV\;db=Lw zdk |  {z}yz t qyz ~ z x  }kp }wg~ al ~  jfy uz xwr } ~}tak}idzp~ } ~vz|| `umrl} {zygf`^{~z l`}wqMav  m  |  |z   it     zz zi] |jl| { ~|owq  tqv pu    y  wwv z|{ioy _  t   x tz{l ywr u}ufuzz ~z   uziex jl^p }ohqkkop zW s J´!p!wjjm\lbUeee ~ pl  soor] k zrmZ   s u w{   }h   j| ~  w vnp`[KYaX`wei~x|  r ~x g }s_~ owz }|bY]} mwocp j }hv zae |  }`z}vr zfszwz dmb^{xt{ uj`khS^]nkhn{k | nup]ak{Wi{ tyx { t}  w      y um ~}l    }uz v}|gfad[kj  ~    sn |nRbo jpq|tk { lcUw np~ zu ~f  ]  ~yuiimxl] q g`c{ rtl y^ksao v qs crn zo{ |t] z vFx zoks uw mV Q7_yuxu ~ pmtqul`]VVd[m xferneqt pp |nqcdhmxfomjp } i uhav ub|wk_P^tne\ci]U^ipb_twij~z w w v Nt}s |tz~| {o m ZVP`tz yz ~ii {xs|phgg]\ z {| }uhjroaXfRN\gtl^ookm_ r v jev n]]h s { p } r zjt }  okebeSUs } u^u vuvzjejllf { iz z n ^^]Sci\>AVfdVclagnhp | ~wzm {zozka_^bMh` JPXZji]`fex u ~nr rh`vZx@\utq mmv }qnp W m |Hx!"ZV | bx  |tmv z ~v}~gYmiYr}ltiiu| rfz is {p{ v\g[r uYl z~sy|sx   {xtr  pl~ ots_p  t   kj{ ol    wu  y  mw xv py  ~q}   oh} v  qp  wn{y   wr}wk   tkhntZ_vx~|yzn ||   ujk{vwP~  k|n |butzw~}hz { g~ ~|xf  qkp~w`]mm\Undfn^]Ufllr  hat^eWr W`u ܖ곿Џȉg(&zl|o^ndVjdPfebokuj]BTs|t a  mkiooyiYfqfrzhszw } } no]irkr ~ cgxhn | owj_scLdwpzysqbdVl vaiXSNNggssejfX wmh  q  |wo{{vy zvhz s ywdg]g { ppu   r~u zsvyz]m z }   y zx   m~wrtb|}ro| vpj |}stkg  ys~u} qnqJLRJ[iul\Rcx |_cRd^jyq`  _ssnmosnhlfY^pcbwoaWjzqw zessdu v [l~qu`q}`  }l xR nf y}h ovX?\uxwx { ngkr  men v of yoixxojcXYefq\][`p }tc^`^  k r bV l}zxoi y n x () z  xm { ~olsr  ~u Mevu ~ okprwn`cZ_^jwzjrvknof]bwlm{xuu n^Yh w w uofeq  |q y vpv|q {tw }dq y_Zo y facrsi } qym\hnpz{t|}rrj i gRPgkn z c z | }| wy| i_`^TWgerx u} jd wq{ tx   t tt } npx tron x~ { xvjz to r kvl qkfsyolngo wkny`k tmm X~RY"~ mg{ X]mbk`_ |[cbCk n_ |  lwy{zr|j[or t oqr]Rn q` ~ t z sohisov~ahvyef|ts_hhTc~ | yysfehpvono}||iw oq    zuyrd    w   { e  mw  |   }|}| n|cppaXXm|z   |yt]uyp~q{|{q  cg   x    |yr~zsx{|ln~h~z {rzgj|yvl      ~ vgTz y pz]hrz o|u|rs{  ztpumxn_k |  lww ps tc~wll uku{ rijel`fx_ aXPK^L_oijg n "%gwtnys| gf ~~e Rj\kf FTTVRItrncagfVi v`kjn{| t} lw w V`nYbyadhmr z \c y[[maYr  wrglX`   r w xtsdVn sZFclpth } } { }y   qd{{ekwyirot ~  {q}  ~yi ~jzk\Z_jTg{zgcwulqei{~ | } ss_|Wv ~zx| ~ psxb`| uqltpot|qjt||uiqq } z \ bj x} ujl w[  p yh~pm { ^jpcYssm_rnroVSYaSVPLcck} }ttqbor[pjo ~ ds f[ ly w | |b rbry ~p  wzq ^dw|r |~}zv} wl }  }n {lfy } uouw{ qplp u uvpZWLc|o`YNDZmpm^Uk qpmdjq ydaoy} |mu| odjgeielo Xsq]`[dottreh[ZVZw~zy|sjmlfcxckvusj^^geg vW[iz zolu y | ihp{ lkpkt~aku rbn ssu kc{ { g\leKUZ]lnj~ x yyhlsd_ypVkefl ssww nhZK^s ombmm\u dYz rrqrx ym }pnju`]edgc[Y\_^bjlWG^\iicekrek } skuxomoghk\hvaq{qroCa pT@ i_O` sWlztv nk  ap uVavi`sungkus }  cgbl u  ~i] z w \uyi |~  w  v {  zo }ykbmmgytcq} s{| \vpg]tikxqx~   wj|}z  jj{rjYwrz eu  leu  y|mx p #vmy znn}    v    ozQW{  x|y} ~ys qyh  } {   x  lzz x]a ~ k y[t}elq  }uqztzpluf_fg\d_ppl ijqvtnz   v   |zl w p     yrTf|:|5`YVklcqm[e\Hbdc t e_{ f]z vbiWS qZebMe my oStnpho ~c p s[ r hs{y|~ m`pzcn s{{tm yboovqkz  }yjl`W |  e| wqvey nb { k OgqojWic\[U m   wofZip{}ziumpp[eyz|vcQs y }ws wtp  vzkj  }  s |zR}    jgl]d y xvqpjhj#% ~ }x rwr ~ WOIYt pg oW  k vjwqgjcj~rt~dmqztc ou r^`V_rg^gt ~|| zdlsYfn\piup s giampzpv|r ~ h  y^^hij~ xh {  tq t { {wvt}nez{m{sl{ ~  py}   uly }xpnp ehz } xjXapvs``ic[TMSWbT`ps jx~ukt z iVp qnpn pq ^o tq~v ~ o f`ct   } sg j| {mTax ng| moZ y ykpt  gj } uiZ { s ~ fkusxmbxk  wxnqsz~uw }wqolgezUh | v\Lczupsnsik`glk]^VZeEJYaFh q nds~eYhke^_fhpkqetkgh w h`  qbNX wSaq |vrn s xr x ~z{ pWlaqrVm _ s z cbs{ wz qq  |tx | nrr{  y   mq sm{ r` rzpn}ml{   x y{}qnsski{     mlwYbmivxxy  x~{at|v |  jm{~ |\W sy  |  n} o l}gsw]l~nq x z}x}|   y|le }Z_sl{op\d  v  z{z  e~ kqw|}t}}}}   fv  d   z| yty tu o in  p}x qr }mzurf   |l} xe  w m UdS¿/s&n nv} q x ~ rc\k  zdZz  m\q }xwYaf s gv  ~gYh} vt |lfjMZ| |sx{q~|d  {y u\z ~ vvsmx l v  | YZ^!$|wt kdqrfje v  r  qx p{x|pw }  {~|vxvwzz{sz~y{k{ tup  y  t  v   {  sv} m  w   vwvw    sj xw|x{Vyvk |z]k xxY  zv fp sVl |mw  w x~ | y j {  |~mihrtYq{uq gcufkmq ggzql_qz} p rI`^\stmaWk\\gjVkjh| urksjr x p v uys ~ } d ~ me {  r wviofdx {iM k  y| { ide v u~ ~w^ y pgffnle]_ruexufpu k  }m^hw v |z [w po z v \]_xu~|w {t  } ckrXgem|s wse ~ |tVfpp{ddp z| rl} v_gsho}tqq y  r|}~{pnokols\gymccqr`c | rr {z z pq v_[jcTeid^ tu uvrvxwz x{kvxtv r   |n iprvpm^Zq~uiguuq rcktANzx`n X qqev ip pwrpncT_vsb v  {z~{insswu  t r q ~ |ehet |{m~   v|z~xs{$ vpjs|}       x  uOLjs   ossXnsq  y ksfsnljhyot {|z   |zrz{snssx~z ~ iiz ~s |{st~ s zrprjI_}{u ~~~}wzzpz~y ygvo~ xt     {  {  hl yumfgy{ }|^ ~s~|w u_jgw w nf\ӎad`c xq!#c pq ] | tls up  glo ~x  zm]s rpnyx ~ [Tfkgmuyev~w sqwut p[v qx u tL;;Zeb~s o r    mib v~ m fo x  ~ifyyx  yt   {~   }yojwn y}z}  z |sy|  kyv    } ~hk |~upUI[`ex u |{ } z ]qsgr]_x  s gIrswzmkybp _rv ion`Olz  ptroxvf |swjkqzt[v r vcil y nn{civvkrl~n kxwsieojmwua[YVh xvzs^epngUkco {lQozcbhgrdl|}p{v  pg v wV m  qmf| vmtv {  m~{ y }xk[`peQoqanv iz{ywutngakj{ wdlyqatvckxu qae`  z|w{wx m |px z wakydc`cr{x`qqx u| ~  spp{ynnmgQ[kcgoc]Wggu s~~}zsyw``o_qgs { os~ } lmzhg} szv   }  v tumga{ wx {~{ |szpla~nmyy}qcz {t|{ la| jTtd^b z`drqE^ { fQfgYchMb]icanqkbSjz mcuvgnfduz }ekswt|iyqosff}waowoOMph`z p  ~ ~  { ywqty{spinpprvwuqw~ {{m_lruc^Zm  ^]ofp  wwy |  z   xrxy}ot wpl{  x qr w|nr    r}   adheZJXWd{^l { t   ~ y|{} w  m_j  w  q    [MZgv}yxuqk{y`i nlw|zp|xphwvk{uynztF=i\i s fYl}vtrfYXi?If{pbx  vhknj _aak ijz }b x ~ ~v} k ]XUVbqiyxwyv_[hg_Skw q fx sj` y }tYDOeos~x g `i z vrwrkR wr {wubiz  ys kvhtxsgk mx yx   xz { p} oi zw~wt  ~v yxn vzv~zz|rst{{x{y~y  wtqv  yjzqt k ~ ]Ze`gqwpsv zwcy    } w l~ xzf z ~yWY_j`RaYIimt wsx `jm w kdlre``ns^llgjVJ_mqkpcl m{rx e xdm~[jcex|y]Xhsnq  z~  qpin |r  zvspoamblxp\u l x x u   {u zS_yvspl vq znlp|{}vpkln zz ~ }xp_d kq qyxy~wiayxr ylz oyxb`m w s hjUi  ~~|yptjh[jjntsqju t y qjmpv_ y v| y  y|imrhnn|m x pikaXUkY]w p  w_v lt  ny nnvxy | ieirudqlRjokuzqrym w qvp xw y }u }z w~ tyyvf~ ~|ypsur ~z y o vsx [ z "!qloff~ ^ r ~d ~ p x{etpphkyt dmrt {qqr }qs   rskOitl da}vckq   r vxx y   ~mmzyi{   |   {   z  ueeu  tppWX   w {o{ ~  menrj`buygp {  |if  t|   l|y  | rvy~ z ~ s|  w||z  x ~  ~}nhx q         z~pux{  z     zs w gdvw z  v~ Wbt~{~soo zMDMC+#^f ~ }opyR]`oebngdb^bi_stPXOVXQ]\kf[s } uzuror n gdem x sVh { nis |ods eODYhZOahOF>\jrw u eRf z!~ysd{ V[iqmqvkGp ~ maY^`RD^NO]RZdeZg~]lz nmqm}sjm{  iysqv}ulWai{h_Xe_l zv    z   }vrz  ww{   ~xx rqx qk  qkw h      zr[l ~{ ypl tj}jgbXlfj~ ntq iuu }  xurXYu yrwbdm yo v bu wfsos eUam ~   mj ~  wls}vgqxhrq |eMWgI`sUetzy`Uk~a y zts]} wwfpu~yvsljfXn| }nlrmsentup|i sm`lt} z{xvjgxyQUp~qi^\ l hsvqh_xru{w~|`kVUSb`jnmh\_ xf} z`ttyz~  sgylixyrbs }miX` lMRds{qosxtq|dnab }qru    y sklnqU qtv} h_eo_aedu`buoq y |nt |plpkhhe\pbn yt { wuuptmrowt | ow vvqrrguXjhl } y igfcWYh O\Oo}ulff m lrqo hoodfy v_ wy ~  } ~ wrml  rjxrvwgywklB` |lrk\b~Wi cz   ~~}   saWi[bt | sZ_{ u w ulwmwzwqt  cx vm uo }k_o}q{ws ybuqlpujx|   zz  yv| t  x ~r{  } {vj ]Txwtvi^nx{y{      xvxcu{o}snonw~  th {z  upv ur  izmwry|v{   myx_wsm }|z|} |iz |Scqszy l  | ng{|`b|u| uwj~zmk wz oq  ~u} }w  }  ~mw  ]W~tyB5ݙ"n _l g } k u  ef|~truop_v ar py w wjkXEYab[je[U^`_ehc]pQe | nhq | {t xbZt|kv}m scl   jV` rt~~ynoz vf }m  zijy { q pq~npt[owaZ[]s ~ p   m {mnrxo sp~w     v~ vsw      }   |svv }}y }r vry ZWkwwwxsqaOw r~cg umfk |  u gac`elqqtpZVq x  ~  z{r wv^g  uvx~zgdrl_Wc"o u lrypdk|hjkt| } kWjzQmquhDYakjdhYaht zspz jiitzvuxpguo~xx|{NVZM:?IOeb_^turh~ `cyq[O\RWc j ^Shdkoepxg v qifqo{ z phc |pclbNiebw xr  ~   ujt~{ws q w^aptxniclwu{s }n ~ utn`k_fiyxSfq x  rlvhotbvmm  zqsgY^momkb]Y j YVk_]afnlgylctrsovucfo zm zfhosy{uog s w`k {   | vo_fJSB]lnj[Uh t nlneqpfehcJaYS\k y} zl p x t  zswjopwnZj Gl{m}i\c|vO^htwr{xvw wkenYYjq ytSE`ejjZ quk|ypjn vviWao{UH^x |laruwwvb\u~{ g}sotqs{rw uq x t   z  y yrrj  ~x ytr~    y  z{ w  | s}r`zpn}t      |  u vwv|u{  ruiznj {    yw{phz ~ {K\yzhltvws h}xeyr| xh  }p ~ hgvi_U^tu\j y Y]_U^mh o  |nqisv uSE燿觾Ԅc@RUpntopmll^dtpm   srb%#n{ s{~ {u rZU]ZZSkpm mnkebgll t Xi}oede\dvqdYv w  w uvn|wlPHBVusp tutn vn   v h}suy}ek{n q vc   q } l~ x x ln  |mo{] ty   |   ~ vlhylz~vu|t     x~ v|zw    uf||zswhW ~zjj  zmh z nfviX\ m envvzzfYqw   rt  zzuvnd v { r_X|gjUl ~ j y zd r |_msis{ z_hpRjs r MUYmorypmq  w op~hk   vpmpyt|  hu##vV[ddu w i\t }  qp { peWjbal s b]ohon_jtq tpe w rhxki`x mi zld~sips{ }~|  onqxdfpnt r t{\e v xy p q cismr cz{h } tmoftnp ti_rkBHbv{~ru uy ~} {}{ovko{ yqh^TPZTWnmctqkfoplwvyn{{l^kn^  lbappxuobx tuQevj  ~ {vv~ gWl{|x} t yrsqaso\dtYy{[LLTrh[\iesxtkknx p G | iuxrkg |\c rv~vhY^^[vvhqu  } vor } dlfjhOqxjs}ot  kf bg} qehgl\JSitkgx|} xu|tr qx|  wl ql}qq ~lfv   z   { r}  } wu   }y~wvkm~}|z     | zt~~u^xz } xrmlik|y } |s   {} xy}k|}lt  {~ vvws}hx |wcb{   y~{cgn{j  |  {    rq  mmw[T`RWVGXv v c_e]V[q ^bv twuqq.ju z zqaEQbq w~ } ypkc uptvmwxijX v\lqwt}| v zuufu wvp`a pw}c u  zj{~z pYqyoo d po xhtomT ` H^z rg[ |]sucjSgreukOu  z  ~ n}wns   ~!w  y[itip{ zm l  kvtq otZd}z zmu T } } i~t~qtxq{     |pe ypu |~y k|  ~  kyt~}}   z     w     z t  wv oi_b]Wqp`f}mz u`stlbilqy rZoeglo | ~  { ~{dp  jRpgZ`KXrgmZOdoW_dox mwy[fj|ud p |mttn}{  nf  |v javkfmz~o~x kWdo~s  ml|||vvh  v yh}w |~ ux u _" }e }|k {z ~pu |yo } y qtzyrk]ljr vjop  ||hhLQ^EShq{uyfjthejYgqew xbnm|   v{kbR`k}uctzz w |s |  v{ zvy } mp wup { { i | |pbcqsirslqdz ~dvwe  ux }nv{zhmqs {\{ _xujw vkz |xuw_N`n~wzonbpvt  io{u mfcg omtbcwn z v w }|Vu w|x r g  lj{ tz } s_]gj u p } v ft qgp  lZnrc |s s uTkp `xokfs w} |   z v {m y{tj}`zkv sx}yzt_cjheilusWys}}w_q~wt} ~x}in~ |rzeuo|w  m| s{ogzt   { !  { p iv~v~q  w  ~   u  ns} r{x   zr ~\k{x    kli   x qw~|  }   zjg x nsmrv hX y"%~ t\W tjfifmeuV\z n ij,}医sdcUg |~ r  xjwuz{sx wZj{Ytswr x ~km}u ~  } x v lnSdvu}|qf{urpUmrjaww[k p{  d!x N c z| Ujk |wogs |ntSdaftj\nv~ r~ dd t e   k`o yngtf `  g p~}}{ {mt~vW ~ rexpq~r|~qv|y    x ~} th| vgiz ^k pnpy dmj_ksit|u  cy  }klmsqq~my | nnu  u ou pqu | bc |ikNY vgikajile`W[bXMymf n XJvgr } nYbrjrehelx~ ~ jy} z umtj^gt `hy mbqo v e um u ~ cmffhora xrll_kj z _kx i}  n zlx m~z yt ~ jj r Np| y nv|}j } |w ~  pr[bjb]_fkmldx agYOQN yw{x t w^hvsvz s{ { y gj w q    pud x x ~ } ws  m ezxx hd ibkwt y r uz qysl{t w { ~ {mpoqmZMomkkw }  z  kxhuz{ n   zput { eo ynklswvr s`_W n~{o d {ezli{s{~{a} {ps } y u w lR { sdqc_u~rpxy |y ovsyut|ygZcla  |rwq  uefbq   w lg mtxiY u} dsk[l } ~ rxv~bs iyb|pTcpult }n ~|{t   ~ w| jhjp  {mn    |v p|be{fwnp pw{k   zwybuyy z { zporz {qvyv{pxyrw{f|~{|oz{ls~ ~  rz    mQm xw~ y {v ~ zzpcryxz tu| q { | cz {ktph ts} {qsx {]S׀݌:z.I`hwug| xwfz}vvjrcxz`eYbbU\ xrthp }nww fz z w | dd{eu}gox{dn z l `j o z {grcikr|x|q x } uW t u[]]atkXpujc{`j} qqx ~hbevbj{kq{^q xikxq ]k}mXrm wv  }}{ ta]    x   wst~| t{   }w{{sz |pZniYurZhb\Wm rt  {~  }djottv tbvs   cxk\ ~  oxss|oft { w m q~U^mcb\x { p | zs| c` i q mo  | yu xx { |twce snkldvx{ ~imcXg} rlgfh^kwgVUq| qd  g  } {  sl od v v wgfYuk \b}s g ye np  v k vp khupZqqpiezkh r bflgUhnbvMq^e[`kt\ |lb t r q u u{  u | }af\H<vovdp~|##Zoux{x x ]p  qvgopqmy fY x|h p fglS[\t w ef|wqa`xiejonkgxrosmqftxpmmz xzx }  rf} z } vrw xe o |q]k  |lmwv x zqqe_}}dq q dUsrjzqjjZUGWa`XPn ~m ljtr}u _u ke no_gjXJjhO9anmkjxb[bk`axpt}v vozw ~tfrog y{ ki  v dk ~dmz| | eartd } _ u$ jxvwtyuv lu zhu}wrvgYraUntlo_q    } ss}cXnw}}          v   o|u}  r {  yvjrqdq[oyyru u ~~ x} xs~ }}|vkqyor z{r  z|   |pdSWw ~j`` uoz~u|}| lszxvvtkyt  xpedgn`s~z~  { gp|  zW { wu | tz~i ݉ی묿梴Z h m v ftwx _{qy^\zy[f[hdZ w n_UMPd xvvpsnkr } odqtXmss lo p v~ jk vng Z^e ~  lubYx ks xzueofgl[vp rvsbi pyizk_h |pihlvt ^af`Zam v | w ^rm x tyg~~~  s  k }x|  y{ihq^mg[z|n| ox}}yv}{|~sty     o v su | q  rw    yzv kbn~uil@ev~}r~}[k yjf}u]Pqnu~Vhmsndnnn ztuqbvvklW_vxz njzwq{^[bjutiow~} ~ n[Wqv n`igY`k\MG^meWw g { u{z m|m s y x e__qdWTcUL`aPWWn}vhekclqzpbvwxphzl r iiuu bolnsrpbi y x \trp| t t tyrtkftz y ~gh]^bkW`pZikmfttzztxds  ~itmde ~p`aXg^glRbdp } gq  { r{ }w }qpo~y~ zojjyz~yyvh\qsrmfZS`sxmVwwo ~ s[^ | lihoueptiY[Ml ss z ^ s~~zf_\v  xi|  rw y s w s_Zbc r lg\N_ffvs^Sin[Zt bM sly ~ y{ d`zw^Wcvirunidogt gi zueqecxba}}vo val{qtu~eo{ox{xgwX`{ x l mn^lj[c u |x   u~ iugettyjlxugZp}   vn|z|jw{~ t\v         r   s   z~ {r{ r  i  rw d{zwl~|x   wlreaytQ[ x_n}|u~z |xy x   sn vh  x }t jnrkfj|sfqyhp  m~rj o tx{}}zgI\_gZkip叻坨!jowPj z} } dxrf~sUPt fnl t gc" vtl{  |ribiu z qozzgu|{ir v|x} tp li{WOG[w y ~jucKdx go { | x  ukr\`jgp ox Ydtw njfp }{ms   } {g\\dnbn n~ p smz]t}|z|yyzh }x~  ~uyz|zus rxr }  ign|ppovux  ta   olgmuw}ioyqWm z  }w  ~  q  vi"|O\ u xlw |{ y jz tp}id~o cvwtqluuin zjb s q v jws yj}}jz  mqp|vs z xvuwjpfdQk runu |~q hv}mpxgfvre`yty {ppuaTRdbd}y\epmvzl|  u~ |{pagqa`jWe|v Priw   ||uq{tcnpcQQ_eokx |~xt }  p sx `mtq|lf`mhxwbcfr x u _ri\` RPR op p xwo fr sgg~w etim szt  xso ~   {  | pdqzz |{scixyvcupoeXyyvfmvpx p[p\pp i xe  | i]e   ow{zdekdjke r qj{hlc_efm }} o`x }gc {jMw  gi p~rnv | c m yqYV\pp{qeVTh_ipcf| s | z{~ p txsngWj{sz { m |mO`prTPa`qhk~ydyhb  x}z |a^|oy v{   fpv pv      sNi ua {wuowpLbmpndpw|v  i   wm ~~u | |  y {uqgLqlclvunoixz|  q  ~u v    lqge ~Xa ou{y}xyyov}      xsx  ~ly zw pZf]dS\\q~ xo qbsl  yxenxyl s rgfg i~ݐ盟݋+zp Parx ~ llyuqgsv { n` {x s ^s swyyn^`r ~wz{ rwy wqs xtru to XZolpr` s jKTlX] tns | ym |jalqy{ yTb  r ~zn{ | { k t| { n so|~p w~~ooqhhx|z   vuv{    wxjrv~u twt nL{y~{{d]Yfps}i`ji~Yf}sw{si\x~i|wjz  wc pw j o |} rt l | }lny wx  tn[y rw x lmvx ko  x ltmsq qhw ~ klzznwwbdllypq vtj u Yqv | { uup | } x nhole ckX[i]V[n d{vo~u y u t fio s kruvvuyvjhq[c|nn~gtehfswvu z { { qhju} yvw wk  r}p|u } tw wcmstuvdewex|{ sp r iVpg\[} xg[Xuywi }jw zfs fRO p  |m[ez^e|vzx  ~ z } u||} ~wx w ~}jmzrs | rl | | bP_qgqej x } zd juv Xbvk\ }|  yjY[ toqv jtxu wq rr  o|y{snpw{} m wzxmRkpZXvyhfmoMRtoconwvx{ z fbukx__wnium t l |zt  wduqhnwwleqqpvc  kq}~u | y z u wj}ne uhwj_qol|zu nnuurtxuumeZr  ~gmxqn~ v   yax  itppiipWmek|~u{  m|   ~~zt~vgv |v zu{g  qppkX{qpy uq y~  } ~  uwwx  z  {zrx~{xuvtst v|rprqmryziy   l y|lzo vv xs} `gry do u {^l j ujsy-"dldfx ij y rs  vbo wv { }hV wj[]_ Dg ux } u _Wg w gkorx{ dfaW_hi_]kzhc}qwx {lgupptextUg zbcsho}{~qe {ro {li ,+` l  f| }n r  y s w~z t   ~x}oxys|{|} ~u prw ~{~sx{py| }hv~| q W  o  tkxqpzbn{}z  }u{sf  z xfhochv j_WNZc m^co \Uf xjak u} xnx x qszcS\i`^ehgdcu  irwhhTr|fusndovohq kzmikWaWWr { nhkq GWucfbTSR^`Z_]PKLTu }gz Vpsditeswpxnvtn! sU k o y   f sxktt   }|  |tzdZpmmv|fu i_[i } rkdg zqm xuq  fszjm}zrjdjimn_fs{~sv~[uv ymz w b ylbWitm v h\q|i_yvehn^c{hH8]pp c ]w kkzy n[`tyiuvz | iep v|tqtsofx{sy{jwvvoqjcjrk`^dZiihrqxveydp ~ `j zfemwv | q\_z nmpadq ~ pzu~jmwzt  {wsolt`}  ol^y  to |uhue` | q vstnx x [Xuox u\_olcebde zqxgnw {vqY`sgn~|rs t }o~uzvphogm~V\ |n{h_ldusv  z~|{wv ebQUr |~dq|psqto~xxl } ]}  ~ t|  vr {~t  ptsilh vo } u{ omt }  ~ | tj vvn~y{ z z}x~ z{ }z }xz|}}|z~   wq |mb ||s~uy|}       i   x~  [f qiTezq joh\z}kgzzf z nmgx t mrkqzsZ[glgjgVGljOP_ :W xz|vvudYalee`dtr qs_Zcneal{ lh  ow pr}w x   b wzt|  z onp UNgdkq ThywVm~ry |uvzk pr~ s} }}|d   }{}{   ||x{urx~| w| z    xllzr}pmr p S~  v   }ntqn  crwy   xp  x  gixrhxqjXGVWhWUlg`d w qgdgz }ifobt yodki[N[le[_ ~ p{uqasufx{dmywtrp~t   z {h_ozpbi mGNdY^fc]\kjcr w u b]c ~  vk xnvvdx  qj}rYPu n MlhLR`x~qZ]fe w|  z~ }TZanxw[g q p mltvbbpj\Vsr^\Yfi y b ywpz   zvrghx  ml o Je^af_Xqy url_j|z w p_j rg  vo^En |j k  nkwusgRXgm\iik}f\f { { {zwte~ }  fs modhidhu z u y y lr y msfrqjweqmu xjb zq`cg}wp \h mhq}kj}`bmg z z~n nt   y zyWt  v {l v } ~]X}oc{pp{vgjEAgeiZj v } ~ y fboigmWiwp  xw { dbp `dz{ rxvv pywk~yjnd^ xpv`bxby ng qkrtqopurz{{y zt        x p yW y { n|t `~xu |{xyz |rxempfyv    }{ y~ } z{{`oyz{  dv }o{ |s~}uvzwl{sluns  yv {tpxy} r    ~ `uwz ~v }x}r| t|yn       ior~td|  w    ny cVrޒۑힽޗ呴[K#ld o lg umy pv ~ t ~ p_ us~Iavi|vx{qikl i h `d y k{v x hc j `TW`RTsuhmzz|  ~h  m w }lz   v~ uohsg[WEQc{ ~ztXl |ru ~ vsmn Vcj   ~  ]twhz   ~  ~z |  {{   z  u  zocpznx fCtx~   lv~noz{|]z}gr~ sp~ y{v  t h}h z q{n{ic\[v |}znwxyez} ]g |qaRspz }} ~ ~ ~ {prs~qrsuqej y rlplz n |~hk zt { |op~r  u mh{m x| nmv rfw ~tyu r_ } tN}tWX`rZWZMRW_Riiqp{ p  ~ a qy us } x }}jazuplqajl`yqriy|  }w v pjfitsecg S^^eil\e^moso| k mWVs fXv   uh bHu wZ[rxgj| ~ uuvz rs^W\illsqw|ze ~ }jv{ ~ ur { } r y } vs z lsbk { fkugp wviiUgaprhtnr ajzysq|y qengfnfGFBYkTh  ] x z jxwaoubW\Y`V_ v ie{z }nbW s mxogvpvy|^jpqqoa i   z rr ]ZkeVY_[eil|u}ol~ohuuol vjw YSm`u r rlpixw}  }wn | x fjt} {x} |ys   ~  yu   unx|o  z~x  tuz    }~| } }v|y^z wr y    xmy|    o} w`djg]b} vo   }~    z~vlp|    skjov~{{pou  goWmjm | x wxru | u{[JYH\XXXN^ts { q m  x _yw }P ~ }y{ w w t ]_X` v _n zg ~qhjq_VUELlnWSupm_PKP`_{~|rd xp\hiYmyv vYO^ { |rn\q yi\fv}yw[t qx ez  zt wo|  aj}r{~u{ygr x y}ppcZqkixx{ ~}yknvvnqy{ym ~     gj   uct {}~    { ym}}zun|~w tjYtxl|  u vurn| }   Vny gu  iokn xal}hgs |v| ~ h y hgrsdd p|tfuhn~ o|rcj~ ux}lm{ejmynmj| q~ ovyu t qryqax uvc n th Wqug g h MFRcTUZfajwv |bx }w{ wqjhe z { pz ka icv`} s bgcjQs} ux~~yuwqhZ^x z rddZ { } { t { jgSTpeuz }Ul d Q~uoerq{v ~ va qc|ody~ }wz}ux nz| xq~zg |sgk] wtrqy ym zusqqy y p{ { ll r Ob zf]bmms]tfge`c^[ o \R m aNOY\^ mkoTz }\Y[o rLIe_hoL` u ]a\dK[gWSa]Wikhb r ""jo u{w~ |z xumrmj { l] h  px v }o r bjjl~qs| |  mmf_oQ^o z p ft bzv     } yb fz sf\\U[ggiml`ksOV lj}~~~pd{jrxt} x  ~  yg  s~     z}y}jvw }xyw{vbVn|nZj y } uiwwwp{tywzr}woy r~ u sxrpmfvy uv  w {s|u          {xuws   ruvnw}urn qQ` dU  c u({߅꒱C, j `vvt w]^{njzzbZl zin `z }af| q}z ryccv jk vn~xu z kbhi y\Vg~c`^ls nj`f[Lj shWcfht`Pq zyu   n_h  y} lswns{n  o `s  mi z }s u  wl  {~l_kqr|u mk{~ppn\k~  tw}} yRPvz|ukc[y|l{ vm {{nimlwi[| ~` x{iuz| jYil z^vm|h ywfdo} m } ~ y~rY]gfxcn x]jSP_ld`tergeixzkrmfe` t r[cf vRX```au l} lgxwyisuccekgXg^Wiibfcmin us t z avra\~ y s_q }dJu {_x r vb^|ihpsahv ep|hqnhxbe qqgr  leyoznn  xxwgyux w TU_E l_jj     }urvov } { f`z~{uy s} qolwiq`Q w vlZrotn v u l qh lyurfcg {wyztbhfr  ktk|{oePheki`Sbokw s u }}upkejrt  swzYn ~ ou v  xrihilk_^ v ib p\U\_U{ choTjce [V w v x w [ r kg p gr}y$ph~ wbL_ x fp ~~qu~ {  } fczeupauyk lqwiqjmsuhf~~xz{  wsxuhwx z tw{u ssnurSa|tdp| }h s|}} tv  |  x |VW ~ ]^ tsxws\mxut  zz  ~zxlXpo~        }~   }eis }`]x|vt{{ tx|zyp}}~ut~xtjyq{utuhglj{}}pxyh~stso     y yuluptxwgfcrzo{tlltisy  hfhwhYQkyl\hgMFN^efgpoNh[cc冭ނ3"y|oq f|  sy {km|n wgt t][jdf w p x} d[ qWb{hn oqlrhf{ } legp q cfhx  zs br }uxrq vw ~i [v~  xz {   }wd| wu~| x w ^Tp  uk  s | h~u v     ~  z  ~ v s}|{rp|z z td  m^n u |  vq|~gb{  |xv_T zbOntlw ~{xy|~ x|m }rzifihNWnmfrpce`V]Y y wyd#xn y rs odoqk}qr vc_^ wqd nk zp{zebg  w v b\uu }sq x ~ wol~ i^Zk\h y hPVj]ifN=STZ]BWsqa ~ggadw aazoorsohwyp }  qz ~  tx qx}\lyj]am_oqq }v{ t {u |{ d^c M` TSb y }jjnr{} zzmvzv y ux~mmr~m | v s |mX u pm_^YOjcPEVUk n Rm p piibw{fqppi`KZQO_mu`h ~ l{  mZroh`SMYSEYwu_yxaz {uxyk^\^hmn htwx  ~}z |znq { w ez|UXreIi |gYWx~ YVht w jNevojruRYbhomtmgHJmem{ vxrZw|okg  zrXPy zcr }uru r~  |  ~ scj|y ~ glx}fhbZh k^p|pk{ |x jWqmgmhgsr| ~y z  op |s  ~~ yev  qywp}xx zm  w {i| z      ph }ho  } x   ~ svv~ {{w}qtrxt      iu~}}u|yjv ~ } tc c}w~p]O[~ypdfnr[| gds]Ty폜v lvts| z l]u yvvmtco ekwn{i`cahiNam]\w Sdr Zh vz {zpz{snjnbTe^k zsndM\vxrYgojfPEXSn y|zkkj r{ul w~qt} jy~ox`Qhtwjo~rd}nd m { wq~  oo   ~}ts  s|ytuivxt}{  }  ~hz!  { } t~ws y yn  rh }~x kw   g y tq   |da fm_p    wrWS%$ zSw w l{~oya]v  ns {prauiu ~#!jjd} ta[oq }  ~ {hr~|r fh\dsiKb yis t] KXU^]MW szl wq cn ~ q|qlswebpzbiuzzncptr ~v` } vot jkupv vk} x qx { z tk m [d`MWbcS_g^aceg]k ywidz {||jd zt} Wgl v zzo[osyr q lbsu`ZaRj rX\ek ihTalcma_idQ o lVYg~ognZau~ dYro~mclcSkx|atqYv xr y qrxrfy{\i y|i|wzxis{uyez~dhlldtni~  cly`WsvTW`prbLdnp {  wXdlq } ~ { uf^qfdutmpj\qpg]pxwukgVSq{kgpfjix { ^z{rnp ps  ~{ v| |TO] kZbe[ f uo f  } ]"{ot uy~   ~x| |yn }iffvls | u v yz~vujj  ejxzsnz]btmmt }| m{_juz} r xz ~}xt        ~     r m  |  |}zt[rzv  x kb\u  w'}b w| p!w懯扼{!y pmjachkB]iwtr{zzgru   |  get_c sS`jZ`~svou z~  } #lh  w  kpz qfSN\N`st}uaP x{}~ss| o zy xi}qp|c~qi   fu zp }svy~lk  | slw|t{q~ t s{vh|}{zygylzlr} |j}x~yx{ oY~v`qugu wubq tx {nv ~{qosdXfrhdyvmxndm p tg y    xY?j9\hVcd\|}XUvt   #~w it]e]aeVUNx|kWMM[qs_ehkbt ~lhdcas }siks pu~XqkosbZ pq ~t]^ij_snjo am yc}~{zr\fq`_fttjXhrz kd {x| slpeg r`v |d |lvxlj u r ]mo_^^k_ w~d\`aogr} ykar ygn{vor} {orx~PMGUftucgs ~ ~ { t~ p { | jnkecfS]dixgignkk {gbDE]oX\ t r| v vmm ~oz|iwuwbdw { rr y rfT mqX^miqh uhvsqs^aqolfay}luqtri {p { ps sou } t {~rd xv x z|qw  w z zyq ~ {kozicXe|  xj\g dnr\eNogMcqcTKH[~ xjhlx rm{ix{ ^R_s ktta  p vw vzrpgmlLxq"  rv{qicmqo ~}| ~ue{     k| ~   xn]b vw  z  ~~   ~{|utxq~  jyhg  p| ty|    w ~ tv  ||w   xeono~r l      peyzzx   otmpz~wilhgyy}xv|vp { w܂ݎم쑮℩iFzt pp`mp |vt  vhr|lael~tyzxqv}o{cjh^e xca{|w z mm utx {jimmog`ty~ nt m   x lo  nmv rv }^D |ywuyz zru  wgw~x j[s     lb~  hkyv{up~ }| w key{d~|ums  x  ~ am  |qt|{y~qg  v rw   y|{w{[ u~w`qr\g  u zwr{ qNX  }sr{x hmnl` v ic}wuzqoewopzqdos bzfC q |uYm|ad[X  RIZd\7>LSWcTN[V]er r wk {} uc_ ~  {xwkqlYR[YTn ~ w|tnvvlt zkt Yn twq~feieZ k [ Qvu`t]k u }} {t t{ ~ i_nqh_Zi_f`OUvkVdaVv y n | kf z z ` w vs ukv twy xwqt ttpdfpk]p tmjpzlw|{ne\`qyqq{vmlptngy p} |~sv v }zo vw ` { }u z  n h u wUT[Tkd^a zoYu wrpfoty\Rae`dmh[Nuuol vqx h }wxx u v xuns t njh^ouwov wkn|v ^faqw ~|qx~lmoxlwqbs { { {jlwel a[ uhTg x~ew z w nt q aef z icpppl ~ zkk{vys[s y | }podk[L|wkJu  xs }yn}smx  m y |   | l fu|o   p sjx    sz   t ospxut|zthsxmtonvv ~ uyai  qvu{u|u {     lh{}{qrkwyw~|}{~ l}{ ym}vx ztwk~   kw r{x| |dna&y߅ـj!rZyw y   y  om | m\jwux t px }~~~km y ork~x s  | |qtl`amjTPELZhdozfjZj bx umadtell_ZozdNstvpdx tnstvyb`qrv|iw}r f| {  } pk    ~ zck   {~  z  jw y  |  ~   {z~   s  uj | rur ya ~ weed}Y\w{~{w}{zv ge_wmt~orr }umz r_[`Egz w a v z {i_ }JDJhkL`vW_kYLRIODVvtidow | zb] x  wx{   y ii} y{ r { } lkwv]pz  u r r q ia q[ O } ~bm^botsykktpv}of x p^y~}z ~{  xbjpcZ]jZ`z^c~ r e r s Xo v lz ng}s~ y $np || } |njf^cmb]vsbxtkbw  |   } y ~ qx |r r z {zqy|q}{ } { pfwvZutkyp{fix } akoko_Q^} yiq ~mhdi ~ nm }  vx u Uw   }|l tz ~   } ostgi_SKbytku|lcieZotYXQgtx { {fs w O] xgaz ~ roiw evnSi  gSe|}abfmpiw ls   | tu oqv{ | t p qyjh | xu  x ~  zszrr  pu  zz `Tl}ldNZt{{ p`udq u p  ~x z zqsqygmtw Z  w}  p  sflyz|~y|akxm`o}mouw wr{z   { |mqp ~   mwzzxyzjzwtrq{ z   w ~   wovzv{ z   }  g ~Yly}}{  ysi{ xx^z wu xq }   ~   y&w ~}ߑ⌸ڃ܂`G lv qrusaftdw pl v rki zyw| l   { x_iw {kj`ex lddsu i s rZ`e^ixwey w l{sm^Wf\]ijgz gQz}as xvw wy | u UShxk ~  sps    }{     p{x w o}xz|j} }w  ~}t^f v} |l z |yY z  yd zykOe zm``{ kgvwnsrhfebc]Wd p gm]gxopit  ~qdhVr }\g { { ~h`|jfe|t ^d  tu | } u p p x hgctjqfVJloc{vqntqv \lynxraiysYnvunbi x lcg\hn_rvvqkygav~glkYPMJVQPQSaigYno[xudinopz ~ jv pl |jl~Zd r`_m u^ip dn}pgz y {i x u x |q u  |mmvlg | [i{v }{xv}  tkf zu_j { } t t{w } utlcvhb ~sw rf^ z z {zq l prl  mxp { | { z {p k~}m |  {q } rqy ~eDl  x{  gbsrco\el]fgm |zszx t   zovo~|}al y }gnqo|t ~ r}nug_t ^Zvuq l} Shg FZy oe v yc_\\VsgSbt hSQPV]li^lq^]k`d  }v}yo}yu~jqudqu}  d\z kjx dSj^t z|   iz {k\ktxsnb  R x ~uxsjzzt } t { w~w z  v yw z ysu  | r }w | nzz {sk|  ~~|vw   ~ z|}e~n  qr r p rphf  } l{tuxv   {P2t߃瑷搰fo ye  w {jl}lYn]QX_a_ { wp }dU]mh|v |  }eoo_iebjgnuy  } } um %_l r o ~ engs ~ vkw qp~ rzeR  ilyz~  qlrozw  e\qun\ ~u__cgrm~ wv}yv w  x }r}u ~bi|map y `s{ |tuXhkhaX`n{{~ yvczt| n |u~ ] |  _   l y}|b`v|wrvwsdceqndIcjnwbhsq\_Zcfw  idXfmi r UgtsoY\ tqvqi_rjqhm{podi jmS_}i^Iw ~h vdhbeJm ~ n |wlt boy ~ od^ss uhN[dZlu z x  jl}l hkTq |t c_ m rgZo xgxkijshbpdr vlym} z Yriglsp vpt }uupd`hTq  mks| vel yz  y x ~br treqncwyzq wYPZx~d_jfhg_`M^ o fi\OTSSel`mQ` { YyhSXx|w]j _b^rgg\_bm^Ti|  o } jwiupf`lf qI,QiteMX\wyXRilk i JY\OdZQdjW`k v  | x ~ q^~up y onqb | zvl[usi jlwngk }oky|gumlfgWYvk {   x x } | gw| }} mozzjzqp_  zsz{vwpqvopdhpxkzt i] oi}w_dPt `u}e_fpsilvvl   n|~cz ]b  y Ynk~|x}zvy shtmj |        z{}o { qrz t v {x{xuywjoxvzx~ m   }~uws{t|tzwpv`lw w~}}riukuz||  u v~{tnwtn t yr fa} vnvyZo|gel`\^nnv |^C%璽ފn4 q `nst{kf rg_ t cdcYC_srk{xqasiecgxetr zojpk up }q  [ ~ } qx ew  l[Yfrpv {{ ws  r] {|~pe ~ x  zt{{f|~z uox`{ ~}tcl  xs}w} ~~~v} tle{wy_qzxk nn }v | vv   wyy |l{  ymd tvb  xv ~|tcycz nb~bbdx}} |pvymt in |~ns ~ n{ s` t oaiod`ZbTNhskw } c[ k ~ {hr | sy tq qjdgp gg^loroX_eXZRZ U p{\G t  zs ~ } v  |T`t yl~]f}} ellm x\gk`  tt  { o\w }ms q erd ys s ^MchZPg{ iaw {  y  | xxz x g w wMf}bjp| x z zu ts]d|WYn ryvk }~v } qqy fkdw _| znz x qn jk~jkrgrmehWgr egj k o cX``jwUSmdC^ t`Vho~_p  vypuwymmjsf^Zv { bdcOfu[lponrd rX= Tht cJcd}  ^ [ k d n i NdePi l ^q vce^edcV`gbJ=fxjm|vhu qqlScj v k] vr^q}r  {fsog z ~  y~utkphhxcbyxwqu }   |    {y {   stretz t{}~~{ntmt^t}wybd x y ax am q bps ~nwm{ sp } mp|   } x lqrs]]x|bI    y|u jairhvpptnjhv|rr x z}zqmjtvnzw  u{l}lpp{zrz~      |  v    |    qux~twn}xlw|vo txl |o}yw x`p    vwswn}}~fXt kb  j_ |j  w`rbm/dAꇼ~݄ߊ㊡ v`VZb rhz sl ktz]k r s rw  { z i {ytu`cn udcc} qk}j bvkmY`houf]ZZ\Xk`n|~ ~hx|pXwz v ek~qr{|{or~ p lk}uby b rz{  psu~|w    hwvfR} } ~zxzt |tu~ t|n{~  qs v } mk   y  {xn _\rtya_y}ktz  ~} syzx |qzvn| sx y w r v mZbfbksnv y i hw j w rmeg tor s l\d`ltu xs| v afj f  fys |e^ tsx~ xnx }UYtgww {lveaoy ortz yelqi |unkfleKi{wkt zp plqn zs^cefV`k^\p{|tu } wzlvscekschjIf |ajo | fekxy sr| ~v[exRQfd__eqldYbhWZ`YJh]b ~ow{qoq~ WaINqhv y ksu ~  ~txep we x| x wp rpfe}wR` yery ~ |u  }  {q upkukfb | m}~f } juvw { u_peCKc}x iak g^qo  j {az} ^v sxllw tz ~ v_Jb uv wgo ~mon x i\kjS^lmm|} ubf`QZh`d muwwgppn il  oho} pqh o ~ ~ ~ sw uyjc  yw    |tnpdh|t  }  }v~w`|{pxz|y }  q r hP      yq} w{{wbmaVdc\Vj}tqcn  z  z ~vrlwtq}pz  zq |~}wu~ ~y x  y|sjz~u  ~ {  y  u~y x{ullv{~y }du  y{ zy z w txw q\\} x n  sm| } av j|  jlkE{ށ߅݊햲犦4$}gl~fd| ogz n v"dl p{xierppp^x  }xh^l g[_~ mfvZ w[o~k |vw ~  pvz q ~ vwvswfn{ xs y}oW v oe{jbl|xk  hr|}u\}|jtu}     s  t^t } uyxs{ |thixxs}{jo~yegkjftz {w}   |~z_j |zs  up {b  pm  }z| |}    }p {| {qpjmmtvy {y o m mr s hggfZMTgeVw qcXe }uy ~ qtgnuokv z d s pZzrs[s |pkZ`t{} q} !daj`nnerw  wpbq mx w stpl ns n   { zsozt`u~rs ~ zlsrrz{rialahj[Ygnsk^q s p{~{vmypt}cu|_mwnijtu onnu|vW]z ~b_uqXRdupc[grhj lqpu }}t} t  jyXZqrk_o}hlzz } px ~nlyxpbbqogr]iX[~ u^wugq }mpz  z  ~ vmgrl_ y~j$$ yx ~imlS]o{iWMV}j^rz v  t  o {zs w  { v bhyr ymf| {vyuqn w z kl s`aeji}  z t p f\nfay zzai i `  mp  {i]lrqvmq]trnsr{tovyqbqun_foowu ggi  |  q|YSx|pr ~y  vnpL]r    }k}u~{ y| km  l^ z| |} xm|~} z xb  r| ~su w  |uz|    |~  y} }lm}srvzj\fszoz} }tv~|zvwxz~~v s wn  ys}       w|dk     zu |qz`x  zk  y  z~  u[n| | ^e }rW3퇻y犽ރ⃩O<ou jo vu wi l wVUO^ | yiuU | pT{m llrag tr }j ~sUou _t w opjgU`x{x l | sy mk|yys x nQj y jXs~ hgul]xszyq |  z   z yu   ||~n |n~trwv zt x ~ { ~ ~ xztiw} p}mfuz    uu ~ a twn  }|rpvum~ yg}yzuz vjlh {n][YYwkpqj yk_dho v ldhu t hiqofv{mq |jynr } io |ly { d u~^} twh}rbKSqzxa|ut ym ~ bfifvun_j  ts ]t yfmo }oiiiX _\[Yilsm ~  {   tz zx~ ss|qddk} ~ keot }sUgsk }  u {z m}  wpvr{ u } lj{xqq\d  {jr| s n } ~ mzy~s yso ytqi yqf]p |fahj|}yoz ~gz t_]lj{_p][rWwsgr~vw~ ~s| | p aqseR_]Px rlde | { pu pZ i vwbSKBYqh `lxqp]  oe |}jlpbu  ykU]tj ys m]v |ypbir xroohenmwtvshs w _y q_{ s}xz\_ZL}gn   xl\bnuzla dktkeoulx nesf[hh`OUpuYmphyz {| wdkeb}cdurzsjkrxl~ wg_x \i |   v}o~  wq ~hfywhar ly vy  | vqnvu ~g   ~| yz r}   znt ~xsz|~  {{wo~  | u x    }  myt qv} pgwhm } pu}}    rt |  vbv |p}lyiI儿荺ᅮC*jq gpux mdkurW_  h `~d ~  he ylpyw v vxyJdnS^aV]VV;=RSN?Rnx~ls~ }uix} qc||rSPkkXlr w }y_ tkxy zt j g   ~t}~   s~ p toy u}    x pp   }{~ ~ ~s yqQ|otlu {zlnrNuiqvyny  ih {znqX_ v z r^icbmq~ x| x v |yi`x  wm{ w zr|| v  gr { lOYq R x xymz w `aytPu on qmwasql{zukfolluYtxi`Se`^fiPYYcfnlr l nfml  } ~qyxvbo v t |  yVebWqpvswqnpc } t q}~rfdj`df }y ul` z }`Uv jo{tbtvduurk` ~penLZP@p ~ oh { oy yrnmrtt|fp zt|zyw v i ~  jc gmhpx  tknehgpaWnmeT^]FYslfa^tql~ nVh u} wr`X]jh[c x |gIp w SciM`hZYeUhj\n{ w^BU| v rn [ z  } mslakkwoj{ ~~iu z dgo    r una~iq|u u| u r t u uh_nv |jyon{qf  nWa|{ t #  x#  u  !  t | w t p o  ~ }vs yrut  | uoqcvnmt  sxx U t~  |u yr|{   v vVsxq   xp~}osx~yu~|z~qcn| { | pt~w  |    y }ql {lx~zxu mqin}]ddk z rrlx~ t y  {n   y /zX논t|{{쇽߅\?%wOdmgwgNTw{ `e } q} } fw^tux } g_wywqvo { w cn { ~ Odt aio l zq t jfxu hPYz  | wrjamzx b {[hwfWhq|zpan | _y~ zrv{my k q y jp  z~jrv x  } yw  | r |w    qs~v~p   pkume}   [ z| zr  {rsx V t [\ } y| xz  bks z thr fimhw ~ns i]qzuaZq{ yp wvfp x oUbkSy} }m ertd_t}lU}s t os { d{ r  | x w } |~ i v y ebe v z zm][wy rs\Rtmc  |  {q{nnomilruowi v u qpxlkd_lbeuiswuupt zg_YruxwryyohSk oXhqx l~ioplZSrhgu apoc_[ZV |  z u } } } vonyyx~ejvqnokr x { qTkeYm cZ {f dk_Ywxsvqtvjheqjfx z zi unh{wp ~ sp tdx x } xl kutrq aa zvTq rPYRU_l eYcUmydiuxY1Ehd_dSV<]lbepvqmgwo yn| mrm`y wc}~a |v{ ef ] U  jf zueai]TT]lohx mzj t x  ij}v\if\rg ^eR]YXncmusn``_] njz v t qix  uq wm~y{ |Wrqy   sv    ~rvy`{  {|G\iusfz}~z|w~ v }ytqz t|{vyzy   tky{ | z|zww|}}zhp zZr     w os   }wu| s  uty+by}|}x䀾䀾슼zۇ㎲nT in}l{ki~|y cir~lnsj{j| v }uayutt ~p | lm gwyt {~x lo qp y lPLgotjsicl`XYdmzx^  hzaWdrvsuqxt   ~} lj|c| m ~r || f ~ p{mshcnq v{  y{i zm~{ | }vt  {|  w[uxevw  } ~    l u| {p|yxm |p asTBXghhiqznq  |fuzkyx{ rtndqko  pgq~tchfZ{thtbVs{P_ lePelT niz}l} mt|z v `rsydosRz t h x ~m{~| {zf{  m tdbf_bR=6Ydfn]^}  th | xi {iz w rjdcdgmzn` w smjks{rm ~akkd{u|rsvu a[MXkuxo ~cu~gv y }lv v   ~ ~ts whji_]V dWffXctsry  } ~  nq |utvng_d rmgeYakx hb~qhY  py `|vnttp| | { sj q{{ZZ | { uzys rr xfqht{ oav qo~u fqhx |jq XPSdfVbZ{  jKd| zv}s |\x  wundbz ~ n ~p[]n}uwr y n[idTmeEs uu_\NGn l^txep v jcgl x { ozmoe~ta z   t{tT_eTQEMW@KT[ { {uozq`]}zQJ^^jbceZqz  g } ~ |g~ p  l u  {{fSj||}  yq wqSchpzact z  ~r    y  }         }{}zppuuwzwyu{ y hkwshqaboznu~vpo   n~|        zv  } }r  | uhqgl p`d}z|{{|{~~~~~߉㎾掵U>}~| u {zfl {  y z }s ty|qi zsxxe } ~r  msw z ~ { s |bhqrqi URiiyyhexvg Vap~ yM^vgxiiqnny~ny }zq^x{r~ x^PhGX[@^``hr}vYm~n ~ {z   |~m {jsjelosyz~{  }}|wsrhjy}z##u me v~s|{s  ukloen{     ygl{ j NZkqpq  Z] xy{g ~ v molervp  vr rp  {iqvt|yrw^Rm wRmyiMc v [j_x }ab u~  }lqrs\k  tGocNYc]agUMTXBQbniw }o[ sklld y r `GdvsjVb{}ti`naVwwzof|ww zxtros }|hZrsxoqotxgm^k } ga  y }  ymwllktun   fs|rq]h{mn xvs hdwpv}~oxyqw y sr v oe]ef { Weq| qkv w p wu z|kjwzs crl  w~ fzzfkv { j z {yw  yjlw {sm quky rs {cf vb v ~ pxxk zs }pos c_gk } gtlrmj~ u s x]pmsr t n `w }fxjojk zq``cqWj smxtbt u [ks{ | rdy xhg { zw { p { uvhj   [hbNfuWVjnw  xw   {    ~  ps ytwr|y]K_uo\q bi| jbzrl  ~y |gjs  z zsqiv}{uxok  z  z{ ttp }ty~fv}{r|ommn ~{} tk{ }  zv quzp    y |w|~{  y~ { ryh}wp  p| ~ ^~r} y}| ~y+i큹vy||||||||||~|~|~|~|~|~|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~鍷}]nckigcKVQYeis p z o v | u{ygfui]Yd `nust{vhW^bfq} uf| e^r xiZd gfY|hkhQaiZ[cdqx qi|amglvj`s}vpyvowh }{ y  z{ }  ~   twwzt u qz}x{{  {pw     zrxysbcjx  h z l! qYac`qVdvx ople    zuqpdfn bdcVwz | ~ skf{ }v   {h t m^^[\hpsph `f^fvy  {  e t  dp |p hm y |[H_e[Xpphql~iQZwOmzilgj]g^CWdKc\ pYmuYp}~~}otsv Y v  | mc[o  d x mvxoXiumstxss | ve}   { osonu{n] z { y z jonu r hqpl`tvyoqvj]Vnxpd{vn^vey }umbfo  ~ {iaaeutO]olcYSRRRbh wjhtzjwswh  vtfsujcu { jeugWlzsu{ vz  w u z }zvso\mtuybgj u}|~x ~ono { w jclc[^fuh{qtwo  ~ uo\moos~{plasku yrS o  ~kp]rcpsrr y Tfxx qx{t z[qhSo~hcbeq tm { xy ~jkmjifxzg { uug |    ~   w x}h~ } z w kr}m y  mzonrtiswhcwnenr yl zm x | xp   {q  ~zz ~p}  x{ z}yr~ qrsyul|xrtxktyjskv {{nqyzihu{ } } | z{q | |pvwp~{kp{| ~|xvorpY vww |i{|]r{i   m p lv oC'^뀺y~y{{{{{{{{{{{{{{{{{{{{{{{{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~܀刼ㇰ℉iJNZUmnfQnA`j Zesmfg  h t  l s |} | jc~ ovv powwoTU_q{ nh| `Surzr lX\ s\} s{ y xtaxspn{ ~zvi ]p   v }{s}n nef soxu  v~glvzs  w    xlnynvt{}y z   zt j~~\t | { zwxie |rn{ t jnfW[u }dVot pwyngXelcz}ul] q umkd^f v j`^ v w [imoutqoxvsq s { ue pz y SB[cTLdhYee u dQZ| l ~ spwufh h Ra yihs t P` jo }t mX w { odWjwsnRiv  }du zvklff{  n}~gy x ~ phy\_ip}r\f\ffnonxv n[oy   ~t  x opvif |l t]ys]guqw sndZfpuP^ wxyoprgjm wns}  {Xmkzy ~y{s} } hjx cpcVJ[_bslt~ }wuuWh y}{el w ec{ }q{ymaZ]tj z{ tq }v |ov   ~x  vvvmjgn^h~qx \etuv{xvd { oeo { ujh`p x ~ukul^j  weclp  ~ d[ xrt|aVT | ~aZw `YeZk}q}z{~q`fgpksm`yju le~x_tz|vyn s } } i{  | x     }g} }qsz |   }bvxjpkpwz{uw{dx |  t  lvphjzebyxiv   nm~  }yq {tnu sv {fmrwzk z~l oxxy}tfgvithiqnxvw q ~ x [~sq|q~_o ub_t|  x wy| jmaE(pvxpuzzzzzzzzzzzzzzzzzzzzzzzz||||||||||||||||||||||||||||||||~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ㅾ艡w&o bm} ~x  lPcv]mtgm zbi rw u { s ly ~ }| }wua_mmt_lvsql z`Spx~s uvzsh  ~ s}  yqou  uc lt r z    {v}n\ aummp{qxyt{pw{n ~~u kz wyum|hjwovt| yx  u  ~ p{lgpz ~ lm rv} r ~ypbgs{i[r{x{xqsiku fzwqc x }upiemrfaclr { zywhfefqmsg gyvhivsb_^yso[junNCd t j [np`mm w hTZqek{ z w z !nm}ey|agx nsit newdT n t pd]N`kfkNUp ]|zu x e | yrdfcbw {ersxyvdx p | |k[ht lmqs}im xfbYXXcu w votqy}xp  zruuwimq\q a yoelq y _bf^bqi_sfYr } h v  ~ xw qr ~ y | Xaiw|o~ rxtx } aXts]`gZJdlgve\r  \fv{ qw yhX tr Wjz   vpubysrwpr } xsm~qfot pljn| vrm`bkp cnrd zd V{~w~qyqdtolvwf` |Xiydx |yv | mX v s }} ~ w z\P wqun^Y`Rn mlxn |   yzonp onbpwy y | gs  v v v    atvyys { yUuzqZbwnn|}    s }x yo }} k rv |  pt~{ n}z   x   mv q{  |     tkx jouy{{c|  szvsvzspy { y ~ x| nv  g|vjnl {yz \akiP\_\fot\kv~q  yhDr|rv|xwyyyyyyyyyyyyyyyyyyyyyyyy{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{}}}}}}}}~~~~~~~~~~~~~~~~}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}gJw yz {fq p fU]Z { fmulVN\kzy]\YdhYc{zrw|   mm|xz_momkc uaVm u}nq_\Z wzz zsxy~{rwqi ~cvxhb }Zanqq}p    nk  h~ } yqo |rx lzqzuj {^y z yw  |y~  }u{tahmgly{jx~v}x{qfz~\u ~|t  ]h   { zvsf{ xs v uz  vumh zfwyvi { {skinonka y kdqmmrbjhq } qyc mxxrfpia[OeigXchdWKh{xiw{ix x z n [bqR\s~sr { | l j} u ^`hWTr~jX wok saNc x l \ o z| o pl   e_ yizyt}pgv s pgmp ~ ~nx |  p}n{|kaZfnyyj o ~ pne_\hln t  }y{uo  }|  | y_p gq sh]fe~sptssvr } yf kn tqxsn znm|{ljwiekpcorrjkktimkptZRon[d{v j} y j }slux|~mefimw ~~n\Gdb<Mbykv zt{sp|sst^Vc zqfxfbonl\[c p ]\[^v nozuq~ aobSu}yvkzsk | ocnwif o UenU`myr wy tWfdb| { }t w_  }}uz  rvrbt qnmmuw kj {zcj n o }|rjX`JFqylZSy p  t{xp ~ zQ]svishidSP }sWqiZTfxukpxw|lq {t   mw ~~   w   }   z y  u   owe^iq{vs  |qu} ~ th|{||f~qz    q z z`kx{w {vxzxnvs tk ry_\xk y{ zqu aq|az}y{Tr{zxs{vq|wwwwwwwwwwwwwwwwwwwwwwwwyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{||||||||||||||||||||||||||||||||||||||||||||||||~~~~~~~~~~~~~~~~~~~~~~~~z{戹ႳhHzqwn{]~u kd[uo~ phQParu]_^pnUYu tusrv} tu  |   sn`s  z{qhndPA`xz u|wrn zkmv pjs rRks   nz{l_ ~sntw~w`zvzumhew Z:jqe}}zk uf~ r|}{vu s | xse y by sy  rf~| x  y~  ~~{i\rvR[tm ukh  |r zUi srffaV^_]Oeokhge {   vdc`h||mj^^{ lxzuk ~   ~{ smk`pppxoqufleplqy w   ztts z| xdr | u  ky{x ugp ~jg  {vp|xtldp|urkjXMh~lZ }qomnohTby kr x yc^~ |||}gb ztz njp noipschhuzwcny o zicdgp  k l| {u{ gc_x   |oav ukl_ikepaT^jklgqo }wuuunmlcn wcvvt]^U`\\aPDWefsnthcmzvr grry v rkj^s  |ellykt ngum[adp oluwsx}zm\|~Zg }pl uzs jPN | nynjd]lhd o zjn vr {~ u y  {l qraWbrwomxr { qel { rm{lv feyvigbkm\jW[} {g~uf! _ }xv ufn{ ~st u]os ]YQTqpvwl[Y^lt ^]V^ s bkrj~bDd nbMbu^k  z r w xv} rc,py }kiyzos p{ i~  q{zw|}|      vtv     { xyqq s t|} sf~ |}xqsz~~  |l{  | p}|{z   {{axqpris~gsxx     wyzxz`b\s|xXw s   ~rnvs  y {ny#uhr逷m}sy}j~wvvvvvvvvvvvvvvvvvvvvvvvvyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzyzyzy{z{z{z{z{z{z{z{z{z{z{z{z{z{z{z{z{z{z{z{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{||||||||||||||||}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~߀߁x~}`qw sXl t z slmshz  mhqqbo  zz~zrspszy { rw j z  {  xeQ^tpgw}w| nxz {dsrfnzz } p[ w y y gyw|rcu dL x fxew{fx}ZKt   w}u~ y q  }~   v    |       t"'} ~ o { yuhFUwymiei]YRR[^\Qgj]m_MZej_X`_cprp z^f~~oer   v hps { | mz w z cfkT t xm~ wkemoVXarnsf pu w s   p z      rg]    rj ~ x |why nb tj~ wtm jq firqxwkf]ghrvwzd[n_fo\Whu | | | lmiufkri}yjgpjmuo ruqqjjm\TEXX^uyuqfs|ofc`lqev v ]o {  { w ~ kpwd\rc[oqlkr ][_n td SUlmwp{rho ~xy|own huy dPw hn gv uoutwzmnmjwos s |}wiZZx  m{}tudl zkY[}tz uj} q} tny ypmxqbl y ~ i|{k[kylq } uj { wnmx}wtw uwxj yknkrp_kSMq~r^|]n Wpxq~obhms ztyxtZad[] N i vp qr|~jx k |ftw a\ q| nq ququ r yf[ z~    hq ~Aj }~yvn~rsu wUWVompspkhw|qy{d[syfz sszoq  ~}scFjw |c~ #u  ~u|ql   vu   r  z qi    |  u}|z|t{^atz } } j~x{ uu`z ^ycs z zo x{wwvjusy|jmq{pvuuuuuuuuuuuuuuuuuuuuuuuuwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwywywywywywywywywywywywywywywywywywywywywywywyyzzzzzzzzzzzzzzzzzzzzzzzzyyyyyyyyzzzzzzzzzzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{||||||||||~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~~~~~~~~~~~~~~~~~~}~|{눸wxu9Vfh | { pp w} jzyteg | | u cq~ w g_ty  } ~ljjlt {\e\ZfgZ qmbn  { ~ vjl~p_rwhviusuuv   v  ~ v] q uyp u wl` p bshs{o| vhl    |xu~l  x ~    }        {}yvt|tg{po{ t[b{}}w~vtklxw m ^tr]j}l T]sz teq qjib`k]f}}fccgfhszwqap w w kXfqb|o p`Jedd|ndhppYWen`pu  yvnpohoqxrvqs{yqnWgwVQt}n|  qixzoge p r j|}^] ~p{{qso us ^afuw|lmzss ti y l~ lakls y y~pt kt   z i  ztv i`^l\  {v on y zuo[n fk} z u {w }z  ~ooo`` | } z ph| zhk  ~ iuumws ~{oygb v|wiWor{ut x hjzspmixcNkl U | cb swsr  |z jZkie] wz|  {qWOk  ox ~| ~ {jh  z{  x k{|jp zrz kw    qnzhu~rpZVhurltxmi {gxhx eNl s ] ~ ]d  _uywv { y  yk cf q^i } oz mk nzxzuYj v h`xxMa{w yecoqdixe pX`  |   |  ^v ~sst{~w  soo~ { v {t ~pz Rnp^hnhjl   z~y  |U{ yx|{  s ytp~{ ox z|~|~sbxtlx npren|^qzz u\Jp t| ~{ ~~ws} zo|sient{ x}k xig } tyil  m    .| zr~vzwowvxo{puuuuuuuuuuuuuuuuuuuuuuuuuuvuvuvuvuvuvuvuvuvuvuvuvuvuvuvvvvvvvvvvwwwwwwwwwwwwwwwwvvvvvvvvwwwwwwwwwwwwwwwwzzzzzzzzzzzzzzzzzzzzzzzzyyyyyyyyzzzzzzzzzzzzzzzzzz{z{z{z{z{z{z{z{z{z{z{z{z{z{z{{{{{{{{{{{{{{{{{{{{{{{{{{||||||||||||||||||||||||~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~zu{섴x~5 fmhy hfdwlkg z PSu^MWPQenme]r\fgix ~ligp{Oe^^ihY p l]dsx~ {pci q dqfpub]j} fs wp}i}yq|VF| ch } w m  y~ X` uZzo }qo  {vf   v |vmumy{ywzz}zngo{m}{}}{|x| tlqn x]oq~~morky~gi uzwvld|kL]f\`w w^b } ~ vjpmo  pkX_ps{~ jvssqqwxn\TehlqgruVc\ffdoaL^V_rjt tu pd | {~lrtr x nh\b`klktyuze{ v v fluv{lfqzsY__\` oo  }p| qo }  jv ~g z tp ~ q { pfg\[fjsjq fhot~ { e  psjow ~ Xw xynjtoq iT po x ypo\Zjx |z }ymqxfrjhl^mjebx } ov } s{  sm~t~ vx{zsllmgrvmq {lq{q{igx sg_o qWq| { l]j }zolb ~ z z gi un_gny{  |u#hQT nr| l^lwx t qe} xgd zpm}hx}}i#q q y w{naxxXYvvkoruvy|zshq t ar v ars}}p{vYe~W w Wc!c ywuv jntlwodigZmyl {\ItvaqeAe }| mr ~jqgt_d x TTk|  zx x  ~  o znwxqkspxd} }ul{~~  x   uoRyz Lswv  o`qiku~~x  t ~ n_Wilnfwyqr~   u t ~|~unfktjrtUV pt  rWtos{lvysvdu{wsw   xo |   `rvhj^n s^s}mnfhq\j c=kxuu{{tssssssssssssssssssssssssssssssssstststststststststststststststtuuuuuuuuttttttttuuuuuuuuttttttttttttttttuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwywywywywywywywywywywywywywywyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz||||||||{{{{{{{{{{{{{{{{|||||||||||||||||~~~~~~}~gGt dw ^`_dbhb^vSPq v  z r[ej | z r {  }| q| }z wzt| y~mekpriu| tpin yyi`rbxiu[hv}rgu`g zL!$fw{wor}d}kmv ~i  ~   |}  ~yw{  nx  txnqysxuus|ht zj{     } ~ksrxtiw~  |ms`Sk s `Wx p_ {imr ~ ~  z{ j?\m`gxj`n\ } |w{ [mysqt\|yckporu u iaxYXrw  vgc lcjsteojlquqayxp{   { w  | w urr{gWayzh q TLxnk~{vppjbepy lHop_Z_p ztshX{nanu | fcfripu[mw uf^es{w`m }um | gk}~yr wz }`l^[TXos\QWTUR]rs{ ~yp |y ~ xtys w kz { p | ~ uporrz }    } llndmkmyq{ rt xomr vdookqhPSfk udQM t hj~lvq]RtwpdOSZhjhuvrso{iMPoj s ZVr ~ rnvq whpo\KWicSZgU[`VQ`aVg{nemtu  yulfprlYV^`lkis { zxtlrj s s t ncvsr w z iW_ k Q[ xkLkoR]^q  }{psmmgql[h{ zko}   i]sz` | { Nn}{twmw uvnzebytRNsxemx    |{Z  zt}zhzzt\t  js~ wxlzw{  {|xrz`iv~ ~p o~  uepjdchp} x pxx z oq}z}  {q   |pu wun ty  x rw |      zsw{~yoqcy|jq } y{cduvcWptt ru~z~  rKcwytuwttsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssuuuuuuuuttttttttuuuuuuuuttttttttttttttttuuuuuuuuuuvuvuvuvuvuvuvuvuvuvuvuvuvuvuvuvuvuvuvuvuvuvuvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{z{z{z{z{z{z{z{z{z{z{z|{|{|{||||||||||{{{{}{}}}䂻uwn:!qq obz rmtq~|t v dyu u } k ysm zw mhd\gsqsyboqiln s   wmy| ip ~or~~gm wus Nvx }lb} yr s u w  obcr  v  lf {t gs    v {t   {u zsnrv}x{ }~thuh\ q o {jol z  {x | Vt {~ uubwv }{pg]l v rt y ^v { t | wi |  vk_wa]yimqyrZK^tkk | hhhl { tn\r zgzzc`}zis  s xen r s [[lgVd~ugtxkgaUJBS`V8SklYRakkn |sgzjXfl| tst|rt{bjx  z y^hx h]q pu  w~z ~ ~ v hi w  s} vhgn {w  qo y z ~ qghctr}x{i ~ |tomfly eflumu puyz zhksr|uy}rp }w{ uwyqcbps e^sxwhkb]~ s j b[XcffokVvuc {}Xdgb y  v ]Jophoubh}ow ~lU_w }tcn]]_LSGLI[nmhkq o }wlktrsu | rmpyqpxupXaulfsmaft}sgs q\js Sga7=PcELlu utxni{ uw}  zq t~  ml{a ^| |~   me  }  zy~_d}  Y n  x|}q lvtz{   p rz  ou }a{fs|~    syi   ~ yz      r       s |w|t~ yvs|        y{s{~ x}qx  pt xs u| pzi} ZuUsuusruurrpppppppppppppppppppppppqqqqqqqqqqqqqqqqppppppppppppppppqqqqqqqqsssssssssssssssssssssssssssssssssssssssssssssssssstststststststststststststststsutututututututuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxzxzxzxywywywywywywywywzxzxzxzzzzzzzzzzzzzz{z{{y|}X8S n~pj ujtnikul } wvRixY[bicRb}xjPQL]rrnj} d[[YTa^^_PW_[__ywr  ~k[ | {tn{ zpqthjo\x{n  ya }kl`tz t  pr|u z n~     #|d  }i w]a  {  w~urw{lZPw{{ lY]fgsoeu |sp | lbeajvkdoo~lly  z ^s { |lriz riZegdm y apnoxv\z  upd wq w| {qtwqu}uttlshm`k |zdp{vxa\  { p mkxxgs  ls  ygvy |kx tzxwqf\Kfv iNSvme { { p|w|  gpp uqnqgk~ k`d} v]ix kmqywbXleYTu~ {kn { gq  tba_c v g| ~ lz z n t l_qw {{|  u ~m eT` xhkukfx{abn fhwrz | de  yr{\X sgknkwt im w r $yn|  }i_ohXai]NUa nzq] ^s xLg z iuu}kEhn\k  d[nfn~}ty z os rx hj g m t r h\VWuxxzom rg zv { s^k }| wpqu tx ~mYoj~|Z[X q ^`zswqv un}i\fstla~ pSM\pqmp}!   e a"     }|~ ~ ~ s x ~ ~ zn } iPjt nnqjw ~mg|| u   ~|  | w w|        ~ zuzt ~r  x|wsyyq| f|wvlpxzyqzganu}}~ d  }x    } }y ~y|~    ||   r| f ]dbqtmlorsrroooooooooooooooooooooooopppppppppppppppppppppppppppppppppppppppprrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxzzzzzzzzyyyyyyyy|yw|v鄼hDbp s ce[_k]i m {^g uuVpwQ\W_^[estunvr u { y {  {  uk\QNa]^jiom^ULhkci }hN^qlmkvor}~vxq|znqurvzd}q  s   q} x   {  w} hx    |zw r y t iZv{|x z{}   r} qzV {n}z p {  zfq |u ~ usfXcyuhs~j]in unqQXmeYjuvrithy{nqv{pgi t _f sn v a|~pe y~y   }p ix{x xil[][lmhclsn { cLd\^Zc{~gex u^bx}v w lesg{ mqw   z_|"vj tk  qwes q v qx|_^^e^Upo^[qyl_elsajy{fl}d^]Vio| fdhRI]ZWZZ]_\nq^wn|cf^qcYal~w x{vvn l~xykudely |jv} _RZXgpltrZbsw{pk~\Jd _kj\je}{abjhyym_rpqu{pcXXeaM`qk YSWhwlSv{Tl tP {nx {$Vq| ]b{ jbmYopg^dnv }xo rw rt w v lXIUx {zxtvr_r | pwx_fwrswgrnl} x y  { y ~  zsr Te ye}!ovfxhj |gsopyxpqx ~ yomx ufzyaWYUP aYaly _v u Iy|{{w{{mnb\mg| v}peum |p n~l|[Q     p   y z|k   } ||xzt|unru~~    us { {lv~|lj }     l }~tz|wu | rxp|}ugW_wym~x|oyf{v} wu}q{ }j  ex wri   |y| } z {    }}ho{_sm^  ~ zm?"pmunkmppmlommmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqssssssssssssssssttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvwwwwwwwwwwwwwwwytxzt炾n}|k'p dd_] } {_`c! u | | ` f o opdi zq ~ ~ }u {  } p } }~fdy z ~  ~qeplhexwttrr{ xxx }  e z vr  inzt zsrxxwtyqj| wz   x{p qy y t}z ~  zi ~}  xu  {{xk _ ~s}{x  jj}~urw w|yxi}mlvpdc[y ~ rYQk i ~lls{qi }   ~gm{ vlg q`_wt w d|ma{ qdtj]fx kjd[hes w ~w w rlXT{ {jkngd }kN_\NMjsp y} u[`y{wb]iuWkf u |   {Yqz} m qm }  {w[eqmsefcz pv}m}q s  |xbkz vy rr w _pp su{im z  }  { | vavfy~x lx {s cy t{q`_egUhbQaOKc k_v y ^ u  p lW^eq pnwgINcetvmj sS` g ilf{j^ak zwly }yz | ~`k y } pe^f u nf kz qF s vqvxg ~ rs|km ~l^fm v} yuxt ezo nkdmx | y l\Jqsk^PX^tyohwtipif`hpcQSNUif]lhYZaigh |[m x_ktl{lvhp q{skwwjmtlmuhcw u aq  whhhk gUWb{zty|~j w jFjnkj{|{pvwx~j^po~tZc~abZ|xiQlms}WT {    m   xt_w{{ wxxxyxmuxytuv{{lpovv vw rpwolxx   |d ix  w   r{yzqv t  u kt}tpt|rrv }v |ty }h{uow|  ~z{  {z    }wy w|qzu_Z=nnolmomlgkommmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnmmmmmmmmoooooooooooooooooooooooooooooooooooooooopppppppppppppppppppppppppppppppppppppppppppppppppppppppprrrrrrrrrrrrrrrrssssssssssssssssttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuttttttttuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvxt{wlsw{~yX#sm o { rngtt  b}  u l s| lh tdmn { stz x `` { {o{ |sz x  yu  w  la~|u  ufd{ u |wv  }_  yurkty`pmv|nnpo}{zv }   wzx|~ }}t{ nr z } wtpw ym{|~~yqtypb\ xz{[U x   wxpcZnubhaxyyrxxm{~y rnl x }n]l\l qzu~tYiwy_`rwpgl[Qpy| w m rcw o_mePLYMW\_uk b v eoy| t t w^Jt r w~ilzj z iU`t{ w  }bir a vgj` q}lwttt zdzy{{]~khy `jsqypdau w~~ tz y ycm jv { }hhda~|jebkum | { { vyx~ wq~r oc ~ z pTnyjzsfjz | i{ qd ~lat\W y yShx |v }jlqz  "bcmt up b`k yvq  w]Wb{ hYR]d wsquoq{ l zvmpru ~c | U v { vmgu vgu~ wr  q z { vvssxr~q}{  riv   | ve[ } |gV_[ { {h\jcYymqurq | ouhd`moasobdkpji t\yqt t ktcicu~xrqypkc]g`c| r W} ~ |yu\Zl      fswzw    qbg  }_}fpnxjg  s}tSIo| u}{ n{~ utc|wy~ vqy}     z {    iw {qup   xq jZ| oz~y utbrvz t|~ vx n   z| y  ~z|x|r ru {  kx{ws|ko~z~   z|qu srb4wnovgjkkihhkljjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnoooooooooooooooooooooooooooooooopppppppppppppppprrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuqvkyyouoꀻqw脞{5` zufWYko yg {bh t lz  spn {y`]jnVUmj`kk z uzs}ow{wp]ohK;kkoto    yul {zbxuqkdt ybwul{onxi|  |xy }jbko {    v~s|~s x   jtmwzq{ {zp }n |}v| z~y  r|uqiebm|z  y   i j |n~|wshgXrfsw~ ynn^rtz z vsc  nly  gq xq}  { k kWDM[aZ`z|}h|  r }yenudkd\ j NO[MVmygjsfXF`ifiis|o j p|i a_e|x`nzw qT_  vc}  jcLO`[NWcgke }x t  [||`Vows{hu }    iiw p w x qcTVaENp zr {~v zq zw { ggcmp`stuzsfmgttl}tmhbfn o k`t zgyl]vwru w myjuXO y PUbv~}   wlgeYj ~ gr {i uv  wop  } bSUd dG@NW~vqt Z~jx yln}tTnhdW[r |uxzyt ixyolqv| {  }zoew }| ml tyg}s htr wt  xp { ~ x wo yewy vyrY^_t~x }x t s y qq z`  mdz  }zw  tox|v  ~sy  } k  z rw z^Y ~ $${Zt|{vg| ht}{tozv we y} }nz{xv| z |x ~     w  |zz }  itynzoo v q{z x wcux{ u wyz nhwtlxu}s w     }~x|i  tad}yv {~u v[k|}w|    s p_`ounpkmjljhilkfjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjljljljmkmkmkmkmkmkmkmkljljljllmmmmmmmmnnnnnnnnmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnoooooooooooooooooooooooooooooooopppppppppppppppppprprprprprprprpsqsqsqsqsqsqsqssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttutututuuuuuuuuwosxprupwnvy~ujJ l{sk]fWvpciz ^Uhadlu y tr ~ uVXq oo  {v\_l n  wkYxn_ ~ oiodytnqrye|   }p[n ~y rtu  xwu r k~}}srs l hw  lw|ktont{vysuuju|b~t |tizvv    sd     p}pv{r  rh |gmvizpp xsgkZ y "m ~ujq| xxa}  z Yvg\ vr`fuyz dr  vem~uul seQ\aifqx{ i } us| }e]zc` o jiqzh u dYZkh_WgUjl`d`jYom_ q fOtvqiM[ ~~U[ qqddgs n n t {  tndg }|e r^ } } qkvv|{ z`g_ztXistkWf}VNh~tbjgiewqburqz|{s { s VdegprcjZskhfu iSLHXqtl__    r {zzgj {p|ie l^ vp ri } y vpzXc ~ iVhajhVh v } ztm| {o {  u `_j n[Mc^{ xqp ]anqhM } [c rj}xlu tlpivjkpz}jk wmz {zz iq [nahtqvdpScv yVa|v y p  s {km | |p{wu x r     izx ~ tmq|lkxxx lk} s |}x iU{ meahnuytp x t [w qpzX}  h}y  k{i{puk VAe n {z u{jk  v   {{ ~  hr ys~w  ||~|{}t}yksp{ ~cot|          tz qwkd  suxz|l~op{ztw~     ppjyppd_yx~r s _ }m  x |~   v7#jjjjjhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiihhihihihihihihihihihihihjijijijjjjjjjjjjjjjjjjjjkkkkkkkkjjjjjjjjkkkkkkkkkkkkkkkkmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnmmmmmmmmmmnmnmnmnmnmnmnmpopopopoonononoooooooooooooooooopppppppppppppppprrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssrrrrrrrrsstststsssssssssssssssssssttuuuwd2~j|ocZmm\ly [Uuiknbij qmx t|z{mx~ ljgssxq_tz|pur}{{ o^fckoz  ty  {  | e ttmqkv y  it |  { no  njef`w  |zyzvvyrv  mtv|q~\awgbjtty auyvy PLhjQS} |sx p { alwwzxp{ p`Ud sYq |oxH_bPhd qgcQKcjXlt[drvvqiwxw ju|r zoay {mo }   ~ x~ |  l lyr pf_kzr z n_r zo| `Ps zZ{|`w  ^| {]fi r zql~{u~ }tj`g xt  p txf| su ve_b qtz{n_ um ~]ooWde^eoi_c[d^t q aeos bk { v | ~ zf { yvpqwy { Volp eirxuy pnk]`iiP~ y pvtgvbTaXeOSwv y jk{ ~ kiriT:M^O^xv}pl{vvi{ |uuz }dY[\su y {^`n ztEfdi|i[_t i svw~v xa_y {bazjfozq q zpeS^\k UZv}fy ijoluqOYohtqrk[}sq|wlzvyyhfuhumcwrx|zvuv~  q\gwkty{twwz k n t  y \l z}|gyucSpk` x } l^opdh v m Ysq~ v b  ~dnjvx vbJf u  u    xk    y    u }wx   rx}{|w i|  nnr~|}w y } mg  |      }{y{}       wt{ttd~ pr}b      aViz`ghk  z  U=kgggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiihhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkllllllllllllllllllllllllmmmmmmmmnnnnnnnnmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnooooooooooooooooppppppppppppppppqqqqqqqqqqqqqqqqrrrrrrrrssssssssssssssssrrrrrrrrsssssssssssssssssssssssssssssssu|}X8Po$k t _r| l ohd[aYafy | wqofx{q`UiuvfQf  ozqty    tuuz  w ~s ro|     w z   ux zvux|~py     { sx|~yz  {ml   npyohiqpq m{x{ gsz[X x oxx   xfl   eAWtbink zYfeVr hfWV\Uab Tgl |_k z{ vu jhm{ vmZLe { lowrptodgeoo  Z| y}} | ~knt`]hpszVijT x tXs j x y jkk mwvq |nwz{}cLIZ[tr]vyaglblhVoiirq ov n    zus X]Ia iej dnndr uw gh^ o r gdnkV` lgo uvoZmvx txx a  qfospmna\k{pmfZRXV4lsgi`]f q"shlivU\rojv}kx ~ w  zis} p Z t ^b md~i   z |kn yu  z |rFq gk }n_[ov]g pv tv`espk{uqquiy}k{ {rbhs_Us }mlf_muSfrgolka`wusqzyq oww bmiUgh^sjn }zofg^ZcccdV\_oqX\og`dahq^Poxzoky | sKRed^z u z |tzk pt w i osykYh{ uv k[t}r ~z |~reoXfqb|fhgrdv~ryqdtn|trl  zv {u ex ]^y "    xqt   yzql}x~w{   ]k|vh{{   }  ~y~|  ~sv twuts      f|vp} f zeskys pckti }qk  u_ ypHmpgfffffffffffffffffffffffffffffffgggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiijjjjjjjjiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnoooooooooooooooooooooooopppppppppppppppppppppppprrrrrrrrssssssssrrrrrrrrssssssstuwzgJ'&gpk\vv`m yu]Yb y wij hetmso{ zoXo iu { r{~kldx  | ~   xdq} x|teai}thag]g~   btul{z}  qa~|}zvsu  tv   ~w |y|t||uee   tsp  |cbgnsaozw}aSqk^`wcn ~|fk TUiV_\fnu~ xJW{oejr y e} p `~th[cn g f ^S\TdgGJ_xwct yii  jclu| ~ lw { is ykim`ij_megtr[qsyv}lszrgtmx tsk^ x^w{soa ~ rkokn  d y }vraevy w ZTb^ y{a ddaT_g\tmfhVMMYqqo{puoV[Qbtgi\tvf | mk_muti uTLI?DNNQ?Qmy{uwi^zff r uux~{rcu y~v y l v t _rYNdk d_b }pq  f p svhjpj { z fs}ju""Xp!lmz { qn ~i~zplucxqz {Ln rZ]n} y`u}^ceiqy { n ~ xz  }{zzfs ~ mvyz wddczbVkmikv rb}  Ur x qtq t l}    nzvwr xgoj[tqf{scmkenqw m j uv v y n n it~oZ y }glr [[kf[nxf{  z  wo vpkrkju} ut p`kyi{lp  w y glr_sniqax y~ s     v i~   |i{{|s~z h tkxuc`s  }p$!}vvp|  |wzyszjv s  ko|~k}}}zzyzoel {   uv}~yrunv~ hfj`Lii{|   |   }|^}~rvo^g lq~~   tn of{Ogbdeeeeeeeeffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggghhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrn섻lp~bwp r_hwaj usuaPXrrcf caiu{ gt sPcnlpt  jk { Manfyvyt|x umttu }ow} o~ | mjioms  xt v  |vkyz{ y~ q}  }ttt~~pt~mpz }p  ~ uy    zzq~[VZ]`Zkhqtgb v wcj}do | lscgU\ r aaQ]edcsuQUqi[htl]k_T t re]d o olee m\p nTQg _s znl vsv qlmnlgWj } u | k | z l{m^_gpfsydgms }  | vy ~la { i {qg[DdulY^^ksPoxn ~ og|z  p o xjj}{ z s ~n  v jfZkjlyp oj q laq | x ~ zx | s{ yjeeis |j qZ_w zx gc ~ gi u tpl ~bp~ryt sqrglg`^N^rw`^ y wUf r x x y jjdQ_tcX w nGZn]hur {c^np  {~  x fx ^w ~s ]pxkb\g z {t w z } ylsxmyuojmoXiotpszpgkl!  }oxpiYxtmgO| yqpqs^qtp  }xequcoaikgfeVxx{i {  { ~ |ro { t{w{~ }az oqfho"qv v} y sx qbV][l zfyrovwvnyqlu ~ { yhr ufi xq~mk  ulmztcy{{xx~r  o y} {ylnp} _nynwuoa| s|}k}}u\NZfig x{~ow r {     qt|tt   v{{x  nn~i  nqxji~    v  {xuklys pk vv   xy s |`   zr ~ ` } x p_l  ="e]lf_bbbbbbbbccccccccccccccccccccccccddddddddddddddddffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnoooooooooooooooooooooooosqysjwddAq {rtu\U m  srxrbcy yr o mn pny |^hr z niowpdr wfi| ^qlVwx mompbanhi|zux|oywrnvtox~ y z{c wzuw srprl{    {uzzy w{z|rw~z~y    yw z{   vt vmz r  alyx^ p v_ zw f |uw`d {~qrtqin pTj z sjz tp ~x pujflolm y{s^d aw | sm upppnegi`f_L[nlwxZur_xtmzr[Sp l [zt zehij ws vlnljkj  ~i\x wt qk`GZ r q c[ey vMouj vtlXsy { zg e m `tt_  }xxyo xsw} z ~  vw  ~  laxpky}q sr|vywz { uxz{ un} plt~sPX ~ nbbseVivsYptotqptgUWaWUkwZUkdG\ mwtw tornV\vnNfrgqoWjn i oL=et hPXgutil  p |]ixu ~vp ~ xgfkwy jops  vbTopql |sojnrR[st}vvugkyf yqu }oa$ petwzqljJd`Yrtuyjyp[bUS\YScJc|qku ~ cs y qiZpgY\ivUiuopyxtVgzjnda`zpu { wr~ aMV[_^\W^rm^kp{us rU[g ~x}dky|~]^ xztG;cv|} uxx  t      ww jkvc__fmtqXge ~p v  w}gu{c t}um^s} tu[fw`o}t| x|    tzyw~   ~q|}u yus}pvi xw ||y | x  ~ |~ ky h  | ~ pqu\n   zd kS]t$hGlbkabdbbbbbbbbcccccccccccccccccccccccccccccccccccccccceeeeeeeeeeeeeeeeeeeeeeeeffffffffffgfgfgfgfgfgfgffefefefegfgfgfgfgfgfgfgfgfgfgfgggggggggggggggggggggggggghhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmnmnmnmnmnmnmnmononononnmnmnmnmrcssoq~kj$e haDDZ u }tu}vpw utku{h{upuhpiivlp ~  }s w |~uu t       s zip s{ `nxz va uvhx xwrjyt~{yv|~u        }x{vt }|~tmfhomz  uz y  sV_ekShhZ }vmnrze]mq ~ }xv | u] w { twsrwxukuunpr{ujafsbw x `] j }vlcbx qgorvkhjeh{gjsr  }av uvgozmKCiS7_Xey `fabyxp wshgomxuzhWefpyokk ^ann pg q ~T p okz v q M`wc[raX^^w r _}qhc_`Rlvk xfx "o~ uqzyt  tl\km^mpspvtzop} xq{~{yy } xZ^ | p z ~qz ny vsny xtumordapsbckgT^ tnijn z q n u w  ttkWkRXqV>\g[TW_p u jhvvr{ st^Vc[UZ_xpl vopcapwrW[QJUnaYlwsq {  { {`aqtz{sZ]lVlpgw  y fZ! d^dnzol pN qui  q~ | |ng rbdhBGab]bkq^prtoXofQL] as zmgw|ovdn ~usliZv !ff~ m | {mf | i`h`q xz w x~}n{ {g|  zY__itn{ lttfb  ol   {  |  {v{~{zvyw { x u i~  s t ss }  |  iq ot}|   |x|  | ~{vdp nw ~{ z {tp~zmzf|~n z rz t   z }y       | sp|}y _xwgvxmx}po} ~z at k wZ\-zNibfVeYcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbaaaaaaaaccccccccccccccccccccccccccccccccccecececececececececececececececfdfdfdfdfdfdfdffffffffffffffffffffffffffgggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhjjjjjjjjjjjjjjjjiiiiiiiijjjjjjjjjjjjjjjjkkkkkkkkjjljljljmkmkmkmkmkmkmkmkmkmkmkmkdpqcjkrlvzmH z xsn^YZ`fdVUn lg` ota Isuwv``[`V\h^gtzqepsdlhjw  zl  |vx ~} s  q h_ q_K^fc|}casq~zk  r  l~ s }y     |}xtyqn {qytoxy  od| wxsebo| rb`e p cqzo dcp k hmq { yt} zqcdpkjd\cafgfnpm  m\RWAPRURPu~\dnfbf|} prqslnu f\g^cjp  ugx}zdmxz [ZwbGiis o u c] { |i r x x { zy yl\]Uhwnkphgph`bb s r OaZig_lQi~ v q i\_ez r f|}tplkt Xmt cjIQXO^q xu|rn m |mjn_ithYsp]   tu  owsilp{ lifiu ent l`pl] t  tirY`svnjxvlgm  k pztu ~| ~`Y{sqp y x zq s  tt rwkmn_iagjUuyw s rzpbd}r~   qiz| y_^]Yn}rp z pqy  q zl^g z| } kesmtmi v dizfvu  kgn_ }uy{ejTK now_ l|wwhnxJdk`    v  pl z c t {RPm{ xqmzm} k w`RV |}_ toe[ZswcoS^}vmhHfZZu uc^og]  t|pfls{ spNc z otls  ~y ~zkwuvxq{zzvkyzvftlu ~klkyy}w zykz  gvz y  w~| w~  hv |  {  xp y}|    kgmpbn{gvq|} h{zwhux r{ kwx}  yl   t~ ley  y `{  {oq qw\Te v  tF`gfddZcbZ^```````aaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbaaaaaaaabbcbcbcbcbcbcbcbcbcbcbcbcbcbcbccccccccccccccccccccccccccccccccccddddddddccccccccffffffffffffffffffffffffggggggggffgfgfgfhghghghghghghghghghghghggfgfgfgfhghghghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiijijijijijijijiihihihihjijijijijijijijijijijijjjjjjjjjjjjjjjjjjkkkkkkkkjjjjjjjijjfmogjplnzpqO%pag`bnv`R o plXwxag Gs Mul u zxp u| oW[^VfX`dsnrz{o  pv~ olnn z } e{wc^q qII^bl uep w }j#   ~ }s  {  v}qzxw }w|w  y  y   zow vkn{}y o d ljil vx}yv``bbbd x tzty~xz ziwu ~ { w  p|~fmzyndk XdWYL:Vl]mnlnn } |rqpyz {lnt x| yw{xu W_ v vf~{x  |sh i_mXfZmr u obz  sy xXaVckP]T spa t \j qhci _\]l`]sw~ tir]hj[p UYXC=D^r}ki { ^jX_dY\wimtyo[_ y  | tmv lb`gsbmq{yogyxYklUyzfcmvnm{pj~ g s om| w b_  tXa[f\E_ ufcx  }p satoiq  jpmljurahzv  j  nn kbvu  x }rfmy wj } ps hmskmpsQ x {   qjd }h[c^\udZ  vjy  t cikoxyp ws }   gt  y }meYQ u\py] rczx z YW y^eGs n^orbU~n  ~ em  bjmwskg_`wqR { mzb`zyrz ~ fyvs  x |w ~  t   sz[j      s v p} xawsbwq{ |   }vxk{xjnl`k u~ |z~}y~qm s t k  yr|zhu}  s w| nkjfsds{ sn  rxvspuz}v }  xsz w~tz     t[)eecaa`^]]]]]]]]]]]^^^^^^^^]]]]]]]]]]]]]]]]________^^^^^^^^^^`^`^`^`^`^`^`^a_a_a_a_a_a_a_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbaaaaaaaabbbbbbbbbbbbbbbbccccccccccccccccddfdfdfdececececfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdffffffffffffffffffgggggggggggggggggghghghghghghghghghghghghghghghghghghghghghghghhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiieeeeghikkusowqX:l  t  |i~qolxx [[8iew   }}~ }|z }w z  ~v kl  x\bs uy{ x    tllrs]Kmx y t Y q }[ y{yl~mztnty|n}  z  }|{~  ihzxy {k yvqn z  zxtx~bps jefg lmrvr{~uham[hw q|tzsv ujusuyz~v|ccjw~ x _p  }y y i   zpiw xsn ~  |s p { t |s {ji o  |rx r~xokg^R>GNg   yn xt|  {niXmtn_m  x l\srpnb tn R]macu~|{bnqpih~ lknVXcv{ pv v | ikuuZxcx ~Zagly }vn  |z zr su\o  rpny dfgbiuyfz }Zgp\`ogo hVvjppvk[m s z }{u  owxppyvjopfpzkcsmupO_m tpn  {jkf^xevzkvvlg ~~ k[jpX]r  s }rwyuXllm y ypprkbd } ~ z n t` mgp  l w! y y {   vmkx ~`q ~ | wyo odjtnsqaZupvuh mW }w u&vqut  u|jk nr wl u uk x       yr   ~m o tjl v fli  opfUpzrwq ~ u }uz ~{tmr}   } ytt}wztyzjwoxp~sozw|o} wio   vr{~} u  w q}  y{ y|   q  q ~| z    w w    }u} }qr r>jf_a``^]\\\\\]\]\]\^]^]^]^]]\]\]\]\]\]\]\]\^]^]^]^]^]^]^]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^````````````````````````aaaaaaaabbbbbbbbaaaaaaaaaabababababababacbcbcbcbcbcbcbccccccccccccccccccccccccccddddddddccccccccccccccccffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhiiiiiiiiiiiiiiihedddeghihnolt{q`3gg  ~  | twky {tFv m|~vvpwnrqjhizutxrpvngnw{  {svWXfWg paht t yrew y    |z  crp~W~z~x q|mk u| }}qagty{y|ry~  }t irw`ttqkr} {n  z rvvjy sufi~} or v t l]Yfnpwnw~} ou w pu }~w}tx }ko }~vzjs ru wbt ~ s ~ rml^v }qr } }p`iymfUcecvrymclxu sq ~f{y |kr re{ xqb[To  ts f[crkyzy~   s uiZcrunldwz{xd v t ]fwopw ovr } {mugn xrcjrkqxsrmh wt { xx  e`nz zTYfh_^q}ylpx}q|r}tws`f}lSaznutt tydp r`arwnuwpZk kS^n _h dKs} {w pxzmgrvknjkhpxs| ww     z nq ~ q`towqKLNU^Wdd]i m ks ]y ig x uUhx zxsaNr{fbm{xkvtrhj^Uismnwn^b {}z hy oOstYW_syYVqgY q o u z sq~ }t z ne_hxyuxZgg[fz{ | u Zs b s{ss} rhJt i^{  \u w fgas }Yn u | {ntdZm jfz vz  w   y y yqb}r s |ebrmumu y oYaXikgzt  }lw qy{us{y}  |sx    t|   | vf_ { tsqzx}|  }xvs~r x}z   }u|i~} z~  ~u   x }s  vwlx       }q}  kFdh^fa_]]\\[[[[[\[\[\[\[\[\[\[\[\[\[\[\[\[\[\[\[\[\[\[\[\[\[\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^__________________________a_a_a_a_a_a_a_a_a_a_a_a_a_a_aabbbbbbbbaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeggggggggffffffffggggggggggggggggedddegghikljijnw}f3zy_wwwm pn^v r~~ wpq~ ~ghp^d z | t _m z\e y}ys}wk}uu zm}zzz}    ~~w`~}}         |v     w} wiy} xkzqzy {v   }z|ov mcqu viw_`|vwwwtdY]\^pg |{q|qoo}   xv |qv q q { | ]ccr w bPceUg^Y]Vm |p   fg} zr u ]qtyvp vmz ZY vnQnjop\ m l ] zrn { s ttiVw {o yc{}lllhp   | vliu{vt xswyxct |il|wvq v{ zuo { yhons y dKeukqu } vrkli sk]g ~ jnu_Zkv jjZbsv  {z | }uo\dylT\iqhSWtfhhklsu|jW] srXgs \hk Stw} ojl } vgksqohrwrtuml ~hvvolrqs x~o^qs h pl k pfjdZ]`do Sxi\ x }SUi z}}m T | zu~~sypxx palusppdNE\bto^dV} yPs{VQXjx^Ob[FXZZYRQWPZWhxgj~ t v w uy  m|    yvu Lny  ]nil ~z  | t^?m|`I[}}]luikcm v`u }zr_e p]l`mveijomdq~mn x\p}krow }o_a  r ru~     |lxLm yu z{zte    }    y| {}|kZwwhopys} }~~|uv|}}lv}}iv w}   |kx       |{~{}y m  toW_OZcw~q yus|} wZ2biXagR\[[ZZXXXZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^________________aaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbaaaaaaaaaaaaaaaaccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddfffffffffffffffffffffffffffffffddcccddffgfhkmigjtye]@ez t { m  {kuzvu ~  ~ {kklo~qh{oqgnh|{p` vcj~ x}kcurj pn vh~ z}xw  rx} zs}   uz  {s z  |l}|x |r{  z  y  } yz ~~xh mk~z}z l_if~s!  }uzkeiq|ynwzqw}}qfhdj | y{{ ~ lbbw  m ~sxiThl^qdchcs { g {  so |kp]gsztn  pZ sjq\\| zZukjfLfjUoe_o v s ~fo~Z~jdryw} }po|or y |x{ bt xr~|xiukv vrhp t imqry vRr x un z u xy w r uiULh ~ `uv| ~lZcpm}^aooqmuhryt r  |mv}l sz | fh  rp| cluus y gdtfWmt oz& u |~ shmq\hpkpguurwui\ahQbi\N_ scf q$ mgq u    q jj ttKf}j[oak {\ ~ ~szw{|xotx}tw}zwrgjus  t x a `  w m m|  jnjUIYd fTGTVJ7N]S^_L`q~ ztz^kx }  ealiFdcYgesZUNZwkh\gcftqvT { jTd {{qxw~mwy| {rp pvaqpwwm`mo~cT} z|ur ~ uu ~s zvo     v Zo    rf  |kWz~kk{{zxyz   }mpkyzsf ~q{ y} ~y{z~|n|~dv       x  |    r  ||thbm ~siryx z ~ ~}u {x t v {r=N]ZYdYPa[ZZXXXXWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYXXXXXXXXZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^________________________aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccddddddddddddddddddddddddffcdhlkhdq^djwB=dplY  dYWf zjh |s w |x z n | znl ~ sr skw t ol w |l ~ tn{nr   s  v  ox ~  | pvyxl_v cq  z| w   vnzrwy  j^w{ z kxs~zwoi_Vma} | wrloqkeW`ajq_ew qmvl_X\qysa]```[Wt  z  hx u | xxq p|l[dew rnvhi]Rgouo { yb  e_  m ~ ew qx}x q`js\mrYroEgz x ~l]kvsvyrvjbo|bgku nmwlaowyv v x~lwwvv  Ymymf_mi[at~ wqiWo[z|x } ikiewfnwejUW_\\iiboypz { t | x } u n|jz|etlgsjg p d_dx x  h r v t  tws\ltmrgobetyr`ds ` o  qel b\THWsrcXkry{ rlt!Zvz _ qp   x Uo|sml}zx|tkkvr mu    y   w Q  hw yejx vvzpW c s1.v^r&#r\r~ r u q`L`ppkedmXUSSdkdnpmQlq^ge |vtn qw { ^f_Wch}xV | mOS  z u u xxefyx{ o |{]yi   }j |y }ho~xo}~f{ yw|u   y}    zv   vd}~|  } v ~ ||tv {hr|eg~z  hx vmnqgmwsng{}zisus {~zyxv}}ra|}wu~qeounx}  z|z  h wc $;fjWX\SX`UYWWWWWVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWYYYYYYYYXXXXXXXXZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaabbbbbbbbccccccccccccccccccccccccccccccccdgf_^aa^`V]\Vcm`@|gB_obi o_z lf}kohdrl`r } v} diudyw y w  w ux lu        qZh  z   ogqmuwqes ]u {    rg{zt   }s}vssr` q| {zt cuic |tx}{mn}XL^Ulwxx]bme^LXQo |pt | {  uid usodZ^THd| t~qtyosrigdWc[R[Rf}qrn q r _o u{nrtc u^ q  mt }hfzntiRlqQbpjYtodqysytl  { q { uyr yznZ_{| p|}p~ xe }z_brvmtk{ nw| uotobq~S   z~| ow  m ud\ wzfxt{yolptksgr zeV| ywq^jtouy z uhgS[kgmiNSMW~r}uk }vg| x v ~ ut } { wjuw YYl\fu |~oSYqtsUd  vsp}}teX] v |c |S z{ kjxlObronp   vyy~ lw wxxqnrw| y Q xrwwdBReuysx ghhv^p wman~|}c o uomnr z y u nhx tv ~ fz{ | x ~z{ s c~   ososgW{~qH:n  w {i xh[bwyuqs]ak{ l}~|qq} d |  qnztmzsk\hzl   }  zb~{ vzzw}z  s{   |   xy  |}~ ~svqut{     prz~xy    j xssov|  qxvn| }xwrnkvyk   }  ~g z v~{mfpmk| ~ u r vj~ iX tvg;s_QX[YWSSXVUUUUUUUWWWWWWWWVVVVVVVVWWWWWWWWWWWWWWWWXXXXXXXXWWWWWWWWYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[ZZZZZZZZ[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabceeecccc^cfdeccdbiaZcigp〥lGhu| \i zl_n XecZliWaqr ku w WU[R[dy o qnexcWt~pvtmbxyj\fkq }t whr  wtrqyolk qx|y{}} }z }iszl    [}trzy gtmajtqn~~xwuj~ }g    |z }agZU podt|   us y n| sy  lr y ubYc ^mtsrkq xg| ~u t kkp {aaQ>Vd} | } yrrlpdX]cSa_bl\l zx i m q aapo\j |l_yvo~vKl_QXb[f[Opytnn|xh   o { v_k s ~ ttxodwvs gdcbeSs }wws]Sjqk|}fleOptleqtsz~ } |ygqwsTR] m E{ z wv np r~|er jPu xk~os ||u rrxmt`k { mWxzxrejoohy {{ oo ~~  }`bUXweircamxg`{ u kr { x vjkdlscm hu ~|fal { g][{zz } icw rOZhb=bpa[^m{}hQ x r | | | uyy{qxto} oo |sosRt  z|We | vv{wZ`ZibXppufX{vqj twrrrqrt v r izqi|vgnlr { ke w z Zs~zx y m  gPq{xfaCUrmPO;Tdi  z} {~ _   |ggmq tW wp  w    ~_y |v{ } ly    {t}hvwq{vurs   w  ws ~   v  u} |vv~{  }t    o  qw      } | j{  w{  ssYtxfwj} rpk  p 5\^\_WXTRYYSSUUUUUUUUWWWWWWWWVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWYWYWYWYWYWYWYWZXZXZXZXZXZXZXZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[ZZZZZZZZ[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\[[[[[[[[\\\\\\\\[[[[[[[[\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^`^`^`^`^`^`^`^a_a_a_a_a_a_a_a_a_a_a_a_`^`^`^``````````aaaaaaaaaaaaaaaaaaaaaaaaccecccccea]`a_^_b_X`efplioeai@`SWYal[SdTnpc w|dfwkvm_gQLIXyu|ZVST |kWo}    |b | mnhjxhe wvnU]g`T`   x  g { ||}psra fpytm~  y ezwuwyjuts y    voyp[| o||v umm`\z|ceoooutg\ojyus~x  {}ahss xr zvYe| ^~hcqk_Ygpu[c[K j o} wt{yx }rr v  t l vl w w ~kw} t } w v l[Ln o ag yjcuvsP v idh w q| sQk| { {wsx k|    ~il }  ql  { rhxx |qg[jfFhyutwnXisphkuh jlx pf uy z zu{zu ~z vzlQ]qK qzmp kto\^_ul z w^{rpt }Wqxgo |v w r{puV` x q W  }w hx `anj y z y } v r{ j ~ { h |w v q  vxk} {wuhqy~yZwfX`\ZMEvh o} qf\ wu Veq bWf\be]E mog[EHFVfaRVUdl x_cbt eU } zsbt r r"$u&1X { abr ~gp } { }nz|qZhl{l|xxn` {z~ ~cgw xjlrjpecek aqw|hey[bt v }k~ x q ejn |tv}  }z imY`u}p]csp|y wsdhnd  duz ~ |y|zylxvveq{yzq vgv}mOXmJZpsXs ~}x n      s   {ui\ }|s~l}x         ||eivy{|wl|dx ~  z    {z{ } ~yzs z  z{ f{ wsm_ |z| } t    mvzty     qhharv x p% " }Z$abRXYTRRRRRRRRRRRRRRRTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVUVUVUWVWVWVWVVUVUVUVUWVWVWVWWVVVVVVVVWWWWWWWWVVVVVVVVWWWWWWWWYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[\\\\\\\\[[[[[[[[\\\\\\\\[[[[[[[[\\\\\\\\\\\\\\\\\\]\]\]\]\]\]\]\^]^]^]^]^]^]^]^]^]^]^]^]^]^]^]^^]]]]]]]]________^^^^^^^^^^^^^^^```a`````aaaaaaa__^^^_abdfgccmdr0,kid s   yv eYJm{vwf}tulZxodskxpolts {~sk    ~ t qj y xe }{vw ~ bq tq|z{tvy   u {t{wl  h  u t  ~{~y  ~} y~ znpw}~wpkgo} aekjm | { }tVy { ~ y q]fpfrxl{} oty j} dwdlyordx  gos   ~luTLklgrjm\kdTNUk |} k} pmm]d[YkQeplxjT`bUZnio |nl~ }o~~x { fp zj t puxclsjk svtX[z q s{iYepr wg[k |  |ty { jzqmq_gx lq{xdyu ~yu ~ jlvg|t`htvk vtps } r\c[Bs|eqzvjdqan}e vpy i  VjY^[\Zctfiuf_oNT rmiw | fp| FK[Yilnw ~ |et  v_v } } y  ky ~xgmzl{wv}x x luo{{SWX[ r wweUy zYz~ud|  py sa t f\ w y o xrLSWVUJSO\ nnZPFWcmdadeOKlzs^eYXli1Z t cfdtuWcrilk~ w |zc z{ ~fl|zrpoou y wu  | } {lu pXr}  u xhSGZoVWoriasx o v uufS_ uprxp  z lffXppSWWrfn|vtnekm^ z z v {sc md  v qnelw w Ym {}i s Xy{ yu  }y xi ~i{zq~rzvdU_ndpty wgp o} t~ z yxgy  }w~yuq|yyzyz~~zr }in|p~ gn ewy ryvwxyw{v\znv typw vxz  z |nvfYosu~"e,`aGR^HRRRRRRRRRRRRRRRRTTTTTTTTTTTTTTTTUUUUUUUUTTTTTTTTUUUUUUUUUUUUUUUUTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWVVVVVVVVWWWWWWWWYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZYYYYYYYYYYYYYYYY[[[[[[[[\\\\\\\\[[[[[[[[\\\\\\\\[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^```````````````^]\]]]]^^`cb]`ffbT/ r | s|{ { u Vmz ~zbr{~pc~yw}u {~fs^kslx ~hhz tl z xi  tzj  ss  | !   ~u  ^~ b | oz zzsnwku}vw}x{xst {jabcMViiglo ~ zXdyt_v ty | rXf~o { wfu|s rn xqtj amfT } ocs~v   uv b\vy }  sy p`TQasykxw`dk[e`i""uv zpy {m|| r w # pi} m_ssk~y_pmWcn\_imsrjSR`OJTV[HG dea zlsxwl ~ xhm | ~ zv{ reux~sjo`dp`d }x pb{|o rz {rudUZ]R`uuc |umgj{w|mMWV;\h[itjsft ~qzcihns h|uYkul[ht y x ldv`\TXWafgmiyzV[t qjYU]YgbZZVe x dp~xxktqdrr_Gy hotbZsitusnfu fy| ol_i rfmLhcVF`kftikc^ptdZv~iYv    |lk y q {x v~jkp~r`aQOb b3g qdeWl y ]bcvyy {onfp`f p\{ hhw~~}uvqq|rwt~ rnYRckZ@Ya[iwxjYgzjk}sc  | | ~ wl m |ux }q |  vzs yqevxxjecieS\^ {zr   a|x~{ im l sz~ xFivvx \Tli]y{q{y| {wpu`y w }  uw v{veh|zo~ |z ~tx m|sio~ ~y~y  sq||y v}wzrn}{ihq|{ v~|  xnxyVmku | {   xfyw~s~   esyxN_VWWQQUQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]^^^^^^^^]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^]\\\]]^^^^adc^`iitq`-${'rbp}t^v]an|bk }oyou  tx|{  zlwxt  hoxo{tcTl{| s !  x l| ~pv  |nu}kp|qQt}~ {    } {zhp   uo}rcquow  ytgt pnkf{{a[s yarqfzsgR[ql } ygnuezseqnml | sSoh]pp^Vdsphuv} t o y v   ~xxx m t bb zt ts yozz tV|   tm o xa ~j| it srss v { mf zev z r ugWfmi    rkwwqw y hapx | sdg thc ohsj l  zsr to | vawkjyszl m l k Unww zt | mq| s kbn z } t hu w wy { { j u xt n x yz wuztvz^[ewn_kj s o {v lj\dmV`rwrnwvghpgPp rq yxtmpxsppd    }pqz lfc sY s l| uz  {j |[x   qg |k_ } v}vsm\gozmfmbgs j < p {omas |m v atu{ z w vkqYRv|oZs~ b y  ~st }z y on{t ~ku  | `qytnr wn{ ~s zwet p{s hrou }lp|y}ip s | q`j ~is vq { khj |th ~|w  ^nk  uv bw ew  zN wzv}^Z { si~wfxzy{n~{v zct }p     xx}wy  }  wvs v{}         }~w~t }{~|     { ~ ~~t x    py r    ||xlv;e]XOOSRQSPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRTTTTTTTTTTTTTTTTTTTTTTTTSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWYYYYYYYYXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^]\\\\]]^^f^Z`da^ag^jm^tC6 stpyvwcLj\T`t envzj~     ~k }x  hs }  t { o~pl}   pxwqyto]~ze_t  s ~n yw{ t ~   r    ohx~}   pir}t``__jvysmly { } yl { n }|brurwqpwmwqk ]rtdkcttmUoq r vp[Tiw cGSz pq lZ`aaZl|x  ~x yz k w ZHdday{i`g`U^ehMplhqjoowPjrs}|pivx|s  o s | zadml x~}w~ slzwmui`dy  rec t v sy qid{sbnrnzpxugz  v nk zqSyvjjzw ~ldeUc ~ thvvls y ffu  x!qX m u xs gguitw ccoe_mu | }|   } } v  to w y} eesx sdy { jtkb ~ } ~ pvs zxnkxytuj`bl o WPtv ^  d  w   vx dnxkqlng]x pZq xiz~rs]lop z t |Pp ~ x { pnqV s x w uv sl | m YtkqeGT_ | [w   ~ zwhhVpf~$  hr  zq ujy | w ttbObltMgnm~tf]nmqzszwmnf xjgqd`yyot q u   `k x Vx  v   ry} "t|bt | c  rq   | z{  q   ft y    jy~|      u}   }y|j  tvr{k  v   }     hy x  x    {  r~   |)!    kfx3~[]ZEUXOPROLOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRQQQQQQQQRRRRRRRRRRRRRRRRTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\[[[[[[\\]^^\]_cgjdda`gdaw% z mz k^mwwxgp w kz   vr y x s[fcqu{x  ~ v  tu |   }y tt|{~|t  " "  qr{ zqaek s t w z qchupagtvi vzrm} jb\hfboz | vt|x  w }uu ln w ey|kjlkj~~sv} wjaers qe o jb]d| trktg    u  p]picsm| tuw |_q u{ pz ~iaYJRW^cNZux lnb }uz vtrt x rme]w  ~jl ~olqSfX]mph_dYf t ec ssj { \c{a x m[^bnyvoxw | avp| yy | bRwph floodhtnm PTzwn{~nksuw{_lwv}suv  vuz{ux}~ u |w g  xz q{y qqs yik  Zn ccpivbd~  t `Ykw dpp_h N^hmc\lvkw ku x u}qccJ_kWYO_Z] rpxtkh xht}|zq   | mlw  ||m[h xkOThg |rhk  lw\ r }kqpe o mn k bo | _ hhx v~dPoqo| ~xz`\]NJ;G`fHV~zzyv tjnxmz  v`j z    sz  {cd\g }qs{i x y toh~wu   ~jl{{{qvo gv|     l  bcw  zwom}  z~yr w}y| |vxv | ~~  z~   }l  s`}xzum{v {r}}} p  i   xpajvx{ruoqx|l    r{ecbdocgC u| }vp@XSSQPNMMIHHFHFHHIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJLJLJLJLJLJLJLJLJLJLJLJMKMKMKMKMKMKMKMKMKMKMKMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNONONONONONONONONONONONONONONONPOPOPOPOPOPOPOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRQQSQSQSQTRTRTRTRTRTRTRTRTRTRTRTRTRTRTRTRTRTRTRTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVUUUUUUVVVVVXVXXXVVVVVVVXXZZ[[\_cmoap?G&thnyo  v  xls_Rj]| u x h u lmup vtaVL`S]ox}|}c }zix{qwpiut\yw~}{kw}~ | vxn  x/kG~Zy[ov lx   x ^_aT[i` x nntrilaYk_lx`r t{e[f iuUmv`b suzwvy hlciu } h potxmk{ }kfuedarZ raX[ a^IH_iibTn gRbeYhneutvaRv nj u ry v {g`ntflw lv w~yd qtuno yw`ed w  } }z|x_knihiZe u}qvzy~qbr o n t n t j r ]j\ble^ttgVfd|ukv`fpceVVi | m }kl{uosv[epl`qt tm{n\ii[f[Y{xR[ vm_espzi}`|~||   oiWnu ir xxy~wqznglywe\oxoum{zXn ~vi_ca\HR w  | x } n } r v`l} lX` zrfkctwr j|w w e nhn v s ~  ~ km||pZtu|  tqyy p |z j%~ t s}e~zub`vwsn_i uMYfjeh]`k bYOK\m y ]^\m y$om { jgs]@Fg q S[ z p ypbirYdlmkbf| p{cr| z o  jnoYl_W|it o~q  u tix~ cy{uyi |   z    }q yv}pzt{rn~u|~ps  zw{xq h|  |z  |xr|mot {m^x {| | z ~swxqr}|zze   { }{  {yt~  s l)i>q\TMMLKKIIHFFFFFFFHHHHHHHHIIIIIIIIHHIHIHIHIHIHIHIHIHIHIHIHJIJIJIJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNMMMMMMMMMMMMMMMMNNNNNNNNOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQPQPQPQPQPQPQPRQRQRQRQRQRQRQRQRQRQRQRQRQRQRQRRQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUTUTUTVUVUVUVUUUUUUUUUUUVUVUVUVUUUUUUUVVVWWWYZ\YW^fdVK5|cIc o\hqxv}~bh|    klmUZ`_oghn\ihov n[_^l}     }   ~ |sxqWmr}oqpz|| x r,|V,zOWdne^ipwlon_nkV[ed vq h v qtu }wlkgiZ v rr | nmd[Kr y WdnTYw|   sdz~ik{jjY[e`P |lk}mi ylZTbLf| ik n qh\\jsp_R mi UgeR`fWaO[cNRtuef``r t  vkqs`coeg  xj}wV` qwojiztxoMNOcmiv { ~ } qy y s o y uwvp|w{tzly}zk^ r x{{n} { p y ceSe~w h v rkcm v ^ y z su| jfv{ m lx pZ_nn  ss ~ n z } s ~oi `e  } z t~y d|  zx  s  |x_ntdp  d k phy  mb_} } qdsivyay|`an tc[e  |p   wz xW]t s mieljY{  qutapnw{qvyvqy bw  yXemfDb { ugjj[`kscUk q\_oZ}qi}ywjo~`jmp y | iiz sdWXp{rjhnpWYm ho  }krj }_b y  b w |jz}uvrhlmP }ktbap[Wopx~  zx[ktnq |[al`m~yn  {  w  tw r|xkj\dTwo|n v kxz|n      oxrv{ v} |  z me{x qt {       l^t}tv  z xw{ w{zw}   zfw{gqll       r*z]bX[PJJHGGEFEDDDEEEEFFFFFFFFFFFFFFFFFFHFHFHFHFHFHFHFHFHFHFHFIGIGIGIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOPOPOPOONONONONPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPRRRRRRRRRRRRRRRRRRRRRRRRQQQQQQQQQQSQSQSQUSUSUSUSSSSSSSSSSSUSUSUSUSSSSSSSRRRTTTTRUONRZ`backYpD< SY dmoy  ~`]s  ywku~r~zgvz ~   ~f| ~yvo     q  ~ywy{~{tu} *, ,\1Wmc`^[]a^j6v ] pmfvvp | wgps`bohjlpivrdbgdVw p! &$d { ""newlquq[z o  ~ u\b xqn z}yy yr   _Zod} zyuowqi\vr d xv _guv m | tpPcfR\`LZ|m {  Z\ld[qzn[yo~v[fv o jbw }t mk{ v ciwmm } w x t s q y ~ xw z w dwt k }klfbdg |v~xY[ktj~ v mlb[u { t{tziX { x}  laz{h`X^hZb } yjs { l | tk ab   ~v]qp fpxri~hdsoswpuwt  yPmr\h{ IW_W}mceoe { ~ z zsgy wknmnykY|s yvx{  xt| { Yan svie x]z}w ~  }txvkaqdtruin zpz `\_YMVgjYYfb|~y x   |y xo x ntc  }s} |wl[Y dTWkx }\ t  z]W | xr }R w}l || {vpS {p ~[[wTb hXe~tyn  } { wptylovu|l p| n ~  | c  s y~   { qg{wq|m~y  r ~ z  t   ~w~}s| yzkl~x{      k|~wnkqn yr }  {x|dGPgry~w{ z ~hw}z{{ vJ f`JPUKGFDDCDCDDDDEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPRRRRRRRRRRRRRRRRRRRRRRRRQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRPJOTRLLSZ]j`^hqixF>!w`a{ hHOoxy oow  m  |~ l~ fz~u{|uylaw z|~szy  u ~ wsyypq {~#&:yEkiga`ca_^\^cfe2Zt st|z |p{ { _WmigqwgwsaPZ_Uhip[q~ nv f z uujevllkp ~ ut okva xyvor  {q ~ t w   xqbz ug  mXdx ypve mwcubr}k {ikw y #z i v  z w p ^prooj]a v qVUgb^upjefeuvz |v  |nVkcUt ianpgchsmmqdxo_\lmR`mhnjyjknatZrw ^a`buxzbO lxx t\_s`h~wdgoj  ui dgutkkoVo{gzxutxnyx  wx{iu z cil{znYfh\qkZknY\\a_`[oxc } nkZm\ w xf zq  } y ~ mxuy me ~dtwsz zr\vqx  |  z xinnrm mw vuv  y { }p k x{p { }wz| xstu xf }^ w m^kmsefy }y k`Uf\jwy }h wrl r[Su   Ow { ]|yr } uTlo^ opNfej  {yt w {p\p }yx xtveqY{m f]cfjHar w{ ve { m_tzy t m |y {i  }i r \Rgx| q`  k o s z |w   } ~   |yuu}u{  y vx wuhmxs_    | {~ v|  vpj {t} xw~sq{urzkCG`hu ~|   x~ }"> S\RCXQGGDCCCBCABBBBCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQRRRRRRQQQQQQQQQQRRRRRRRRRRQQQQQQOSUWXXZZV\[]\Y\]acZBl+B 5yhf] |  el j fpvrvx  juxmhz`r||{}yw|    pv" ) 7^,~Db^Zcd]^a_aZSQPVccS Vvklz ty~pvwur} w  lm q huim Xn hHMMOQ`mfd | c\lkd | vjz o]trNrznsqYQw{r  ten]bglv|t t  s { jj } r}xn {h r mvc pzt  jg s xjs |f^yjabRco} r  vwq_glfxlatq piaStqophiiuv lUqkYw fcrygb uok | z|}vlrfxqec w bd y { }xnss { [}`gectyu_ovx z dm z mlt| |g lu or z j~ah { sqhsfxv vx vzyyl { x~ { m wyrz } r}    y ~j xtp]v `flflkcs{ aW_[lfkr} { xz kd{rcgecn`~zr^;ZYcv ~ xs x w ug n wj[fnrnknohwhbxrnv~krusjfm`Ot sckvycXq sYP_tsi\DXVp {c] xj_^r bPIdvx  a ~ \{qvuWw zf zty JU yu}reTj }m { vqjz } ~| p  {wtmFQpyjuz}  [dt|_T|m{  jWXWaOl y r|s ignzu] oo  i` t q]l yvdxy~yxq{~}x  rrec{   v|wls ~ { xvno x }u py |zkt   } |t   zgk{x mg |{ y{^` :u>gVBEP?=>CBBBB@@A@@BBCCDDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQPPPPPPPPPPQQQQQQQQQQPPPPOPXVSRSSRPPLLQQNQ]ddYUbbmf}NT-A(~ iKX "vwljq ~    po  |s{k}         K1X5yOijca^aa]ZXYZXUXTTWTQVheczid  | ~ |y{w  {ma^Yl c]Un l TXJHZ^qnouftbWiXh_ x ovueUvi}{iswWIp||os t oRJVLMRZ^w{s }xis wtc x  kiykto bajZhnSp r  zv ~YSTYRYcOOo{ic_s{vyo swwm } qfqozv dOeh dxgormnw ve k m\[hfQKWRUkkhp o csl z x y t|d_x|{y|uiwq]n zT|jy wnuu }msu ~ ho{ v njnhy l_y{\d }| y y xnnkukx Yxh^ijpqqnn`ope^`bchm lnef y u }v | tn~ } ro yhonXrz p ft _Yb\TZTagL;BQjcnp q pwef }wsryuey~\vbY o ahni^ q iUae aLbvvk dxmkpcjx   ~rcd yk{rTmoy ~|tukVzij~o rkg u [ [ EVch _\w| ~lh y{j`mpp{yv}cq\n qnus x|{} [X pj    { cn zmw~xztlpjnyxp   cVw k|}o`fgzTV |yX~   esmcw rq wv|  xO ~  xank[qw[w|j}vjR]rs~wi~o}qongv}}tlu{uuv{qkyxz ~}} ~ v |}|s~z s q }geq_r}htqstqz nj      }l }nm m`jhmtld}@~=`RGI;C?L6>AA????>??AABCCCCBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEGGGGGGGGHHHHHHHHHHHHHHHHIIIIIIIIHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJMMMMMMMMLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOPPPPPPPPPPPPPPPPPPOOOOOPQQQQSSSSPPOONNNNPQQOMMPSPRUQPRONMSRLVP[Ze^`]TM@t7J+sj!r%~ y wuo  pyx  co |      }&$ #46 R#o8J[en`cd\W\^UTUVSRVTU]WOJILRX_lF'' z put}xywvp_`\gkhKaqko``fhtd`rthrfiZhU_aX`cjm\sy k{ yhbptugdf_SQc[YY^Wopkg`XWV\@X`Wkurenxw }t {ld^ v x \rp|z| { cb[fo y | Zr#zans|  wz w{ |r ~ jktg q oe]X\[{n{  oy {h q~xjmonz{qypcqwsxsp[cg snc z w{jn } q[]cF_m[upgpgtzokv|qr| _bd[UGEZg^YzwPTqund}xoaWc\{qhmntx|irs`~ | { meiceqyqDGFZr whsafu likcpoQgsqmwez y}nf qp~ sg nbu~tx qs oz  }}u { p{ }mSyeT]Uci\Oj l `hg _H[mnYWq xsflw wx q ro `uRXq~ z~ tWt  {kpoXo x ` _I` mp fdu gbv { nholq |}mnfcs vi[gsZh{ ~~~ Z^dg uw mgqw~z t plq ~kaw~ z r\ n { M\Zh x[ g r ~ tVo   ||  n y  h| ~w    qx{ qZy r} vsl_txpy~~}z  y m     t v~o} p y~{  qq~wvh_]|}|~yvlzpvx|yb{uykr jk} ~yZ"KZOJC>:E694=@>==>==??AABBBBCBBBBBBBAAAAAAAACCCCCCCCCCCCCCCCCBCBCBCBDCDCDCDCDCDCDCDCDCDCDCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEEEEGEGEGEHFHFHFHFHFHFHFHFHFHFHFHFHFHFHFHFHFHFHFHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKMKMKMKLJLJLJLJMKMKMKMKMKMKMKMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNMMMMMMMMNNNNNNNNPPPPPPPPPPPPPPPPPPOOOOOOPPQQQQQQONNNMMMMNLKLMNMKOJNPQQLPOTMDNGWYUVQMRZ^Zaij]ZT}S^75lntpbpvkmv {e!lkxuu  v a`"<N&W)MUSg[`b`^YZ_YY\\WVWWTVQRTRTSRTQGHRWXf`6 d_a_t{}kx    }ixofo x jo{tm ulbsefs y g~ y |fd | z ~wxbqpjxxj y |} oow u[[ nhlt | zx } w t}Wdh]nwws |}q  ymgunWr nyssz rstglrt }sKWjjLn fotu s y_ssy{|{pzl | fb^cnb[\srsy i  zzqr lvz~xmu ~^cfmo`sjujr ~  } wvew lc  | |m z hpu v z nl  kc afvcNsn{x { lW]V|u]x sn{~ \ ~ dqvo } ti wu  mcWYoslkswrp}z ~{z{vyu q lg | { ~y{ | } y}bnblzkjaqzaev_XX _vnxr[nbSa\ zk` y | vot khz  yryns t[NbtcZgmsq e sggiZIb\Ok{msysy f^l r { W_ r h]fpjon t  syY u vj y j\utu w t wr zue mO\lgKaeHL | rr~\hx smy yvz{{{vsnk\gdmqh{xq{~k {jjy  yzxpWqxwrhtwp lu itwq}         }{  ~{ {tttxv|zy{z~it  zpqwwjxud]cgzns|x~}|k v } z| wwp| | }}tpby qtULls   1 ^*QYG>DA>;;==;;>>>>>>>>>>>>@@@@AAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBA?A?A?A?A?A?A?A?B@B@B@B@A?A?A?AAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBCBCBCBCBCBCBCBDCDCDCDCDCDCDCDDCCDCDCDCEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEEEEEEEEEEEEEEEEEEFFFFFFFFEEEEEEEEGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIHIHIHJIJIJIJIJIJIJIJIJIJIJIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNONNNNNNNNLNNNNNNNNNNNNNNONLLLNOPPONNNOPRSUVWYZ[]_bdb\VTSHa3a4Q$/?K"w%|+.*""((3 82 6FP&Q#T%[(g3zCVbf^^ZYYXXWVTSSSSSTTTSSSSSQQQQQPPPPPQQPNNNPR[bSg^SQtyvcix vst}q sz{|jz{yjXb]hns_UY^z u { h z  ~   srkuncuddq v _l o{ ~ y|z s}  v n| n  nqyrtv zoqzy\t{ qrpm ~ yo_qcx ytjmbb i v ^GSeaki\nqjeb  vq   mxmn l x {nh } } y} u opw~zzuly xf_qbx pz y{rq { x||  \[novx u } ~fn}v y x oZiwq ymXuxSr r alh frsengiod } | w   zcivp` m oh] y h{ywoz yo{ a]pnvvpgsxr| v  ymW`n WXxzofYolV { x  ftzsw fwx jpkoii\]yx t|  v{|um v~ r igcs p l teppYXpfSgtgjhnwfOUPV kr} r prk_^Zrylqro y TkcNgwut no }  zmbd|z{w zh leis vd~ nh wvWhndbpx ~ {poyw } w sk { y | z t wkm{ yo^]adlrx|yo s|xx}y  oTiuprm_ind { # }zgk wsu   yt ~   } } yy x woqmrrr|ak     ih zwf| } sp i~ulp  {pt{ofvx t z{ }   my  | vovzu } 5 u6UK79@?::::<<==================@@A@A@A@A@A@A@A@A@A@A@A@BABABABA????????????????????????????????AAAAAAAAAAAAAAAABBBBBBBBAAAAAAAAAAAAAAAABBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEFFFFFFFFEEEEEEEEGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIHHHHHHHHIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNMMMMMMMMMMMMMMMMMMNOQRTTQTYYXWYZb[__YeiY\^_^[Z\_W^^WV\``][\_bb^WWRRQQPPOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQO\9| rY` ppniaO]q y| t{ ~j~~uw | y  qfrwkmxsi_ZvwpUh slprz vgdteWfcgu r Y^yzz{{~rotflu}lhr w z o ht lief up  wrqmvdownjd_o  }tkq\ pv ~^Th | y`]cgu|z yg znz[q{z z es | lgbtvv{z_usjowyvzuhy tmhu x xt ~ ~{rzt\d k~ypkeohvucdqyz s~vs jq} {  w ~ qf~|gL\ONuztxi t } }z}lzrelnfd zoSj } x\so[>v ox  rRolX ~yhy_i }  stu } kz |c | yoiy {gmka  sajfaxx~sw {v jwsquzxu [Tnqc[r ou lsxwslbZgai k[ u qTl"{ dpymjfn swm |ypqyntul~ui ~vu @`maw s|np|  piaga\Qe    t!|   i w vn   {uupso  w ~ }|{t { w {tuvq  wonmqi[ODNW`kbtg^ptfw| k {o`{   ~ oxxb{ | yxuws{]Y   v{y}{ }~ th rz vssyvz  i roryjupn }ehnnsy ok|w} mu  |p  ~{ | q{ zd }ync`bt~|qwsge~     iS`XDIIB?E@3:9::<<==<<<<<<<<<<<<<<<=>>@>@>@>@>@>@>@>@>@>@>@>@>@>@>@>>>>>>>>>>>>>>>>>????????>>>>>>>>@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMJJKMMMOONQTTSRVXTVRUZTMTTSRSSSRQQTURPQUUXWVY[]]YRONNNNMMPPPPPPPPPPPPPPPPPPPPPPPPOOOOOOOPZSfc.r\b `ojckVcks la  lqfisco pjkyyt ~ ww y} w|z obb { xOZuuoipr sl|m_agb p sjjaaq} yyz rojvfk |sy ~xslkjc[i t [Zwvdur o kl~|m  w }vkjpvxw yw }`oy  g[r|rgidiwuvzr_z~{bpeddNk ra^Xgykikbs y sruvuigalpfefr w _ax x y qo  }rNXs fv{~ { ~ | z  ~{|o}vs iitkh o i t`  }k { cW gtv i`maBOY\ eo o j zmD^x { Zp y k< p yz | i ~ t`w ntln{w{ro t {gs |ras vTjrdcm hgylWg| xw j_ytprq vlal|w r { of }  }Zl}|hj ~ wt } prvm |vd~ }ku{sjkoei\ { xw ca t lvvs } m~twVnhTw ~ wsxuw|rppnbcN` y ~ xwea v  Zaf]ex   x {mv_disgd } vvyitwrqha]kqaYZZhuonmj k uz vedq|r `{ ri ~ {c| ]syzplz|  q Z   {z y} wxzz  w}|pttz{ rop| j{| {pzxz }!}}w|   p   ~}xs   tmiyz | }}n     tv}} |MH\VB>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>@@@@@@@@@@@@@@@@AAAAAAAA@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMLLLLLLLLLLLLLLLJIIIIIIJLNPPPNMNQTVPOVNJTNMKKMMLJLLMOPNQTPPPRRSVWONNNNNNNOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNLSTHYea] x~^gaaeOl ~{u i ~ al}pod|nkvuv {  ykis fm  gwh_v |l r p^axlx} r bodnx u w mal`o[e yrw x}qukoi^_PWqa]z rg udgme}|xkujw{ow  txlv|rp  ~ r wWZ|}{ye{ |{q }o s o Phcfjgr mmjo}v ~xoot `v~  btwVYhWZg[IVu} oio |pskYpi {  ~  m w poiig {|zgy | |~gbjbXQRv q_ v~ {{rb | e~in oap tR[ j l e j m cx pBNcoVm N l } jiz y{ ~tr {zq tv}wxoZdkS[`YOVbFVcYSM[edH@Y[C]{ {v zobwnexc`sovacl{ykvjhma^v {bkw }ro~ }   }z i Xd~xvs }nhGUZby^_v q|o { qwrivp ~kT { }}z~ w yh nOReihuoqa\tf`l ndP d d UU\y u v s YgpsvdiiaZm\alekloo in {jYek\Za]j{znex} xr  nws} byzqod  ql { X{} t~uxttn{pu~puj|ys   ~stu  w  |     xz } nlx }ugnw |} v{y}zultq|s{           vnmso  {zww|~ 8x3QD@>>?<968;8789;;<<;999999999999999<<<<<<<<<<<<<<<<<<<<<<<<;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHHGGGGIHIIIJIJKNKJLKJMQQLLMMLKKLLJMONJJLRSRROMMNNMMMNNNNMMMMMMMMMMMMMMMMMMMMMMMMNLLLLLLNO_Xaar j a_t w y q]kqjvp o|u|tdnonok  ~ltx ahrxe{Zn y| gimr q\telkitpjdZbHVc]^hzrumrutzfk yu} pkorg vomjdNkxnnlcgxy Y\ z]n searzU]cuxuosY` ntq u { z` yWb\_ vxhb } u`vkmv urnn dz ~ vkjxc`lhTWddw{{xvcRs^nnrjpj v lv ~ |o} { ~aow~ u[kzeeotszh | trkYnbxz_lrjtwt{igngov [^fhRc z tI\ { jd }{ ufnv~ ftwvxvtt|ef o m i\cu}g\uyZp#!zq{ u x ~ z ws~ qusy| kuvp cc | v mqw ~s hnmpzx}  ykp  | ~otz  zmegY } xc^dd{pkbq {wh ~ v h` m XVmor  vrnbo o eQ a d a IK_cgcOWYemriZ_q^bbUcdOTPZg scVe p goyig y |u  }rkdUptyp aooi    ||xi Yuvz nd b  w  |~vu}zx }p yq qgsronmmtk } vv  tspw }mu{|zxyn|do ulu~ xx      kx{}{#\(NILC9:<99;;7166778:;:878787878787878899;9;9;9;9;9;9;9;9;9;9;9;9;9;9;;<<<<<<<<<<<<<<<<;;;;;;;;<<<<<<<<========<<<<<<<<========================>>>>>>>>>>>>>>>>>>>>>>>>@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AABABABAA@A@A@A@BABABABABABABABBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHGFFFFFGGGGFFFFGGJHMLBGL?GFJGEEFGIHHJJGHIFGHIJJKKLLLMMMMMLLLLLLLLLLLLLLLLLLLLLLLJKKKKKKKKFTTY2 f^MbnlhQgpqjk|{ouzgcts ~wszlpmf`Xz u`l|j xSeflf\  jo y | lh { il slieyup~ f}  } zxv vzxx inpt_Yqpidjq jP t } snrl_\apXUhLcdRO`uPUYqwtel~QVhbhhcWk cb  zjpqil w fcs y `qpXuh\iwtp m q n } {~|mpsZXo hf|q o o`jTR x | sc j\fljjgyTh~rv } } |vepuv | mpnmjnicTpvfewcdpbtxkefelv}st gv}   }~sY[vmNR }i } nlsvdZ][Z^ajrpqrrx|s ru tjq{| ts  r~P]s xurner rxwv y ~ rw |ur a_y | nv }}xfX]XIY[Xet x{stnulivvx|uwlq u u } {lcIuzndig|xnc  hQ_ z ~ oz}stus fd m a`{shxw t ei}ro  |\Y_l^anxyql rb\x | { |_h~t zlWjgQbahh u op syccpde u xs { pl y y zvbjz { lsdopbniqb[qkgTWuuooh[~  iPoz s Xxlmcv t |       y~~vxkz}gZz  |xvvt  |      t    {v  w   x ~m     rz     ylzyxm$7E[M>;2=89;=7/2:667788::76767676767676778898989898989898989898988787878899999999999999999999999999999999;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<========<<<<<<<<<<<<<<<<>>>>>>>>================>>>>>>>>>>>>>>>>>>>>>>>>>>@>@>@>@>@>@>@>@>@>@>@>A?A?A?AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEGEGEGEGEGEGEGEGEGEGEGEGEGEGEGEHFHFHFHFHFHFHFHFEEEEEEEEGGFEEDCBDEHHGIJCGGHGFFFGDEEEHHKJKKHGGFFGJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJIJJJJIJKOX`vEtk\r{ jnpkfmrqpz mpmlpw|}| umonqpVirjVZp dt y_x yh J\r_eV^ zp]Zs w y ipxu }w  t#l }  w xow } {vwetvck p ^[mKUa[NLj`bkosc | }pv u umv]t u hi u#o k t ~eguHSTQY]WGZVYrumqzznv}lq~z}is { hp{q~d ouf[U^NYkqnvhgwia r i_i n k k s k lQHll p x v  dWj^b^^clwl{iv v ly }nqyquem u s   t}{ | } y|nhop|tw ~hx v l j h |upx ~li}  o Z ixzwux ev re`^ejfeespng ~qwz{sr wphm~zm  Q ov uhh{{^`lk r~ypdnyeWnp`arupef vwWpt_Xe q tkn_kcms `}opqfmbQX^liay  wx[|o } y nf~iWJU s^jtlpux}`abZW tcL[_[P[ v qnuy la`rv ut {y w s _u j u {dozl{ t fymfrkom{ rp u{ ghvhbofg^WPWklj\fzm} |w ~|tz xp zh pjpss|`;dnRj { m  zu\k|f      u { ~ ||vix {m{  |t zy}{{sz|  h| ~{   pxy  y u znuuzxl~r~| +|7QQ?>?D8=89612873667788:876666666666666668888888888888888888888887777777799999999999999998888888899999999;;;;;;;;::::::::;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<=<=<=<=<=<=<=<=<=<=<=<=<=<=<=<=<=<=<=<=<=<=<==>>>>>>>>========>>>>>>>>????????AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABABABABABABABABABABABACBCBCBCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFEDEEEEEECCDDEEEDFHCBHEAGFEDDEFEDGHGDDGGDHFCBCEEFIIJIJIJHIHIHIHIHIHIHIHIHIHIHIHIHIIJJJIIIOKK\TjVLoq  y v~ | { { qr}  qjkit  tl|{ ~}z^cmu bZmhx ]adxJ[faw UY |jgXhutz [vvfkY\ }rbjtaw ~v`~ q iguphcK^[RgdNZybms s sq } lpvm zq { r |   y wn |f { ur rcY oserTY jIgo z w~ t\l k k~v |}ugtsclcxx~yhx qmyt~ebib^U[DM^hhs yfs naegcSUXj`OV| {hvuPbjrYslqre } } nkryenxcuramlamp[a|]f lpz{l x} }y| vtt rkppaNEFI { ykk} r_ ~  hsxjg |orjlpev~ vrw z }}s } }n{ ugURh y uVfp O[ d x~xbYz ~ v { hqzd}p{w} qo~ z o pequzw]^v pZ^rfaUy v s_af^ l\at ~xpfVZWeeqnoye_ h Xdq y n\Ys~ v t p {Jfzf} z pyssolXj {esot e^tguqwqrWPnsgflnlbX]`YOKKOX`lbh t klzbw x jggceiwebd]e glcb^Wjj x `in ~qx rxo } toy~ vnzst u]`be }  z] mjxst}mLt }{}{zz}| k  ~ t }  t  |~y o~tWr{pr}~mn  {| }   d   si     ~ /o/UG@=<::9:9544222225555667765555555555555555555555566666666555555556666666677777777777777777777777777777777888888888888888888888888888888888888888899999999999999999999999999;9;9;9;9;9;9;9<:<:<:<:;9;9;9;9<:<:<:<:<:<:<:<<<<<<<<<<========<<<<<<<<<<<<<<<<================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>@>@>@>@>@>@>@>@>@>@>@>@>@>@>@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABABABACBCBCBCBCBCBCBCBCBCBCBCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEGEEEEEEDDDDDDDDDDDEEEEEEEEEEEEHHHHHHFFFFEEEEEEEEGEGEGEGEGEGEGEHFHFHFHFIGIGIGIGGGIIIIIGLLLNb7 {vlixvw { uy | ok~]yt zw en  th ~zzzp_}uru}k`iz y }x l{ {|eznUm\CimKbvgYt_v { ilfXX  z clat} g _n pqhuhv zqmpqi_jXYlcikgw _nx dpjlinpLNy }ztaulatvy{ [mjU } | []jgq~h\nnjx ojx x r uylb bTutgVXotrycbtdiop ygoiYXbrisl\aXbi]asvr zhlcfx`y  _ahZg~k   sm}  u~pZwektzr  }x| ~wehw q g_ Sby ~stsmc?ob\]ahZqtb_vnn`^up_qvkcb`ceksvju sl XLZ``M_cDCNY\kpbiuknTWfZsosot~nomkke yts~ jbrlc s~ t`Trppo`ePSWx~t y~|qeMSYkprwiKVPVgdgc`fyq ncz ixb|nYpoitv uzdcz u } zw rjh} x n^d uj ehkid_WP[__cc__e p gmx rlq^s w nkdYVlycYSEMP p rnaVaZ qwYlv `kvfn }roaVfe`lv ~z~ piu|vz m z} td|t{ bs ~~  { }wzv  \}x   w     }   ~~r_{ws  yr  ~{w{x}{~xjby  ~   ~vJMN9:7532355544222222555566765555555555555555555555555555555555555555555555556666666666666666666666667777777788888888888888888888888888888888888888889999999999999999999999999999999999999999::::::::99999999::::::::::::::::<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<=<=<=<=<=<=<=<=<=<=<=<=<=<=<=<=<=<=<=<=<=<=<==========>>>>>>>>>>>>>>>>>>>>>>>>@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBAAAAAAAACCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEGGGEEEEEEDDDDDDDDDDEEEEEEEEEEEEHHHHHHFFFFEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFHHHFFFH>QVVi3jfWdyonqkmtmes]z}fyz]_ztc_w|  aw  v ~ }z   }{z } gz  xv z h ~}qx lbyjx{ xs q s p ov iv w\Pcvmryt xmnsjYRIV us wv v pVcoX^^lnx ^Vz  ~{r  ZtrRjoVWcVjzwuqnsxuqrv yxj sx xqs aKru ~ nbzn pq}vyp zvtvp q zx~ { p z n t }w y|oqoUW z YWvf  ns  {lf  y~}ryq|  usqlu   z m|y n VWyle { }yujL ztz ~r   ogz}  usw~ xs`ekq`ixvzq tgu zp { y z s~iagYizjhgq w~}u} m pwp~  rl `v w} np^ x |lqipkjj]hgjnn` h jn } ws s st { m i_|_p|]s t]x{opl~gfbkbppt|himioc]Mh laU c qhj rz yu hYXc e bc`VN[dY^ nmie_qz { | wmhc v iecXcjcq s eYXBX_CLQCNPB^st z qg| p t mget ncfs ~x~vmrn` } t  m{z~q  ~v xu  nrz}   |vy|}onz{m~|   |  {r ~ to{||t|w}z m ~svur^ _pop} t}sj~wiim:cD@H(/-**++-.122222444444445544444444444444444444444455555555444444445555555555555555555555555555555566666666777777777777777777777777777777777777777777777777777777777777777777777777777777778888888888888888888888888888888899999999::::::::999999999999999999;9;9;9;9;9;9;9<:<:<:<:<:<:<:<:<:<:<:<:<:<:<:<<<<<<<<<<========================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????AAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCEGEEEEEEDDCCCCCCDDDDEEEEEEGGGGGGGGGGGGEEEEEEEEEEDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEFFFFFFFEK=KOKX&   ]qvsux|  t   yx {um|xwyqv{ !"[j | n e} pi  ~ y w v ouXnlalijt}h t~ yu{txw ttw}pgjex  pwkxzh[oti^e y[qyz n]^ v qokr gz  ~q{} o^v    x t   do ~ llz[i uoict xz }pmnS]u qS`nsy!rM p qy` ^y {vpsphnn ~u^\mdgs} f` x zz y w ^a!!zzpz ~ {m rf | y ^o~rXlmim` y z zj t} z | ~ tzz~||rn]Zxhc  ~  zkXu sv ~p  wy  ysv} |w |z{   kxy |} y pqid~ rk~sn_l yppy  t ~ l sv   tm|{iuw~ s|   uvc v y jqlqfll` kj_cam | _^djos q_bpvZ\`f d }{e v hOk rjmk  xra qdnnr unq mrruS_k eGJ c fcem uvgP_ he ]^b^\\bVWeiibi r vvu qidbx o p pcl qft t kd^B]bR a `OV YPVm s| o _n r]defjrzk][ilbkzpR x} m  |j  { t rfa\y h{h y{  |xitmmldn  zzux vrm tppvrzmr      uf`uu}rvz  } ttw~s{ w  o[vzz  | {w!DJYHB8/6.+**+-./2222224444444444444444444444444444444444444444444444444444444444444444444444444444444444555555556666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777888888889999999999999999999999999999999999999999::::::::::::::::::::::::::::::::<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<========>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????>>>>>>>>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACDCCCCCCDCCCCCCCCCCCCCDDDDDFFFFFDDDDDDDDDDDDDDDCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDEEEEEEDC@GJKQPd   Ws iylr{ skj z|{| upjwrx~spoU8JXKTums\WlthR\jks Xrpkzpjtxs]v|glsqtkmjz|qt~n_XSkt}~ jww  y jolP\nad { zt  gYnqqkx et  rr | jWeprncc[_khlu  b~w rdp Mcnidbjkeinhpt][v} be w x| t _osxaiz {k{wywk e]ebo} rjpllhfr ~ v z e` |  lo ~~tsujXdd[dVMM^WEktjmbq ~ ~ dzh^dww{ nlt`i | {}wp`Ur`\u|y u ^osiqofihu pq { t sw qicdry ~ vkv   wRpxs }tv|s cezxkztgz~ xq  mjkvfn}di[xj{ktz {psgi pwkk Qh |rjs ghb vvzu xo fUjzr ynhpbU]nas{][mmJILW q_}{ftuR``W_d |s Z lbh_Wlkjo lnpv` h ryUMqhd]]dneR] g d [[^`cbeZX]^^T@DNTZb e`duj l l^chornigbNq si { yfosf^ljl]OdhWh qvohrtWZrufo|yWs q^ {   |utg~ rvm   lyy}wqhw~sWRwvfYcv xrr}rpyvzcn } y w  rx  t tymxmhtyg  { u^ u       "2JSTA=<236,..01347743333344333333333333333333333333333333334444444433333333444444444444444444444444444444444444444444444444444444444444444444444444444444445555555555555555555555555555555555555555666666666666666666666666666666667777777777777777777777777777777777777777777777778888888888888888888888888888888899999999::::::::::::::::::::::::<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<========================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>AAAAAAAABAAAAAAAAAAAAABBBBBCCCCCCCCCCCCCCCCCCCCCCBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCDDDDCB>JDCTH"} t\p{ n  zrw lVSrskmxqr ~ mixu{y| x^qpSU {wqgb`sv NU pdv }  vo  xs ~~~wgjdq  z p ql yv z sdy warv yq   `]kqicjsv zfVqq ~ pq|zvyreeXGRbaihb\ h q pvubv { r yq `s|vSchdlsv | q[vk~ mfo tko__rsoa ~||  xl    k{ {nl{|odkje[V]hjq w havxfdom}}zy`f{|xljla   ~~} pn{~ {|_HW_YYouqo m bQGo_Wfik y z is t Uk ~ y ar  qah\bu]U`eej o |}  }x k} v} }uY`YShbbhmieRO stqwj r {} pcs v w y v ~ {hkYe\Mdiooz{vyqSUbZc Lfm^V]n }hpdx zo  vo` s  w | isu } ksf]JU^Gfyw\hzWbWCED[liaN][\OCOUZbc[RHK[ a m SHiaimjkogW] g h b^XTW^aZ\]XWJGJP LIOM@Zi [\]PW_effjl kWtu dsnYeiR[jgi^X o p c h bb_\o~SZ y}|hobJ]hsw`o q  rf  t {~upz x{~ |z| }m  }| {t tr~}w^h}{vs}   {w~og kxwugkyk^z o rrlsuct{ z]8FNM4(,52,.21344578743333344333331113333333333333333333333333333333333333333333333333333333333333333333333334444444444444444444444444444444444444444444444445555555555555555555555555555555555555555555555555555555555555555555555556666666666666666777777777777777777777777777777777777777777777777777777777777777788888888999999999999999999999999;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<========>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>======>>????A?A?>>>>>>@@@@AAAABAA?????AAAABABBBBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBCCCBA?C?@?KUn? {yy  ~z { rivwmo ~t  xq ~~~uc  d]  } y se{_` nu t hrurle_rsro jy|v vux zvzv^Xgdhf u]JZgrqmWbuzfifdmxyrt^q ky ppnamgwh_cYESqtu ubZ l sqzjrmUknirxnwekqh`wy v | ukp w rkRxxjgady }X^xlo^i~{z~ qfoy|xqyyjPTts|}zxvqnnlf`^dWUq } qjr\cv vergo   j{ut  ~   np y z|njfXKA x psheojqovbiy zaZsvf[\EQkPDLPVagu w icaXpju{t xh yibv e]djcmYFb yub_`enaIMu gmr v }qoeiUK_ m trutoz ~^USLPPk lmb`j v} d r \dqtum  lomSs{ zoswlcq } { `ZUC_z fr|eyo [\Znaik ` ZZ gm__fh k qk^>6HN VA8HM^j kl mbPXad h j b^c\ZXb c _ ` UJPWPLX[KQ bVWUBIS`ek k e kW elWjgN\aEOda_UP_UNVRV^cp w XXz|{smbQ]estQg   h~ %!  ^m ~ qebpvky|~}  z  h t y  x vdg    {{xpu d`o m zy}x| ugx ~}y{ |   q| pTnro ~'< c"KTC<37,$03/64433200034444444332200002333333333333333222222223333333322222222333333331111111111111111111111112222222244444444444444444444444444444444444444444444444444444444444444444444444444444444444444445555555544444444444444444444444455555555555555555555555566666666666666667777777777777777777777777777777777777777888888888888888888888888999999999999999999999999999999999999999999999999;;;;;;;;<<<<<<<<;;;;;;;;<<<<<<<<;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;;;;;;======>=>=======>>>>@@@@A@======>>>>@>@@@@AAAAAAAAAAAAAAAA@@@@@@@@AAAAAAAABBBBBBA??:EIIOM txx}yqjpd_n ~|  wkx{qrpl^sy{{ joiv }rs zotxSUUZXbiohpk`l`VOZkRX x v el z x ~ tsak}j_j enwu\gu uo} py { umv r | {cixtg ~rxzklc}wsvnWb  ld|zs|yk  opr Yczx_^ajpln xr u lSx yrpr avrzajxp{  wsdr{~wsm vwxw u{ | qku x g]r{w|n}}~uv t}  | p  mrrspuxjf{t on }s| z n ufQutz~qp| sf`ciZ w r en ~ bopkk_XWRbYd`cg^x q|{juurl zotpg {{}bHa ~|}aifh} | hhhuU[]l_k# zjlmYXWgovvr~~x ^Xeao c_ck r\rb[`hrlyrqul |~Vd^ ~ x|kinogt fl cVj| \in\t hTZ_u k]UY] hmm c]b_\ i p h P+=U ` R P YKSX[am eSXYX\a\Y a VNJX]Z]TJPUICV]KE][ c! c"QWcb ebP@PEML?` eH ZeIS f^YRR`S`ur khfs{_S lsq {~ v y t yy  N]spuqiG\ wss}z       vduhp|  wm sXq } v w~~p i{z~ tkd pwu ks| nirsssxu yq|~rp i v# tl-UTC>C7,*-0343344320///3444444433222000233333333333333322222222333333332222222233333333111111111111111111111111111111113333333333333333333333333333333333333333444444444444444444444444444444444444444444444444555555554444444444444444444444445555555555555555555555556666666666666666777777777777777777777777777777777777777788888888888888888888888899999999999999999999999999999999999999999999999999;9;9;9<:<:<:<<;;;;;;;;<<<<<<<<;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<:9:9::::;;======::::<<<<======?==;;;====>>>>>>>@AAAAAAAAAAAAAAAA@@@@@@@@AAAAAAAAAAAABAA?BACCHEM=pn rxhsjqb`ehw~xwv elsmyvlk[Ltguw shpmmtfUXcW]Xj p pqlx j_ZbuUIph_vrfzxrx  {t fvv `l|~~`YnlkRlljkwugl  vx nnrk^} sv urg   |ej~n  ea sty {  nigU\ o dgUa {vgcai { jOjy imxx\~ ~h z ]pwew|{szmy~ rtjx jqjlmt zsnrxclz  u  b\npmqmqj~o\zt} s q|x { uLL tqn ooy{wiajpj y  }I?eck| cacf yyjb }{mp~t r{wx y cuy qhwu| z  }obuo[y zmQinkw i{ky { rv waLV`Y\u~t   } w uw zvq~  zx   |rlu k[kgdq Oi mywt| ~untir{ } rn w rZlnts`gd jzX]c|[aYPVW62Em magba c V _ IDEIP^ n ncKS XdTR] UW\RR a ` X[VQY ^ RJRINOLPY\ZT\_O<:Pf;ab^ xVoKeB_;`1a!d\Q NV Y Y` M _k ^ kw[bjk dc k k bm yw wrgpz h[YSCofgjp r nrjwpO]wl{ z xDd|}y|_  ztvk{ nql {w pg  w{mxv^x utss      smx|wx n{|jnqx}wsv} wr }z vq mp p{z~}sfu{s"1o*MHA<98771/1122223333222233333333333332223333333333333333222222222222222222222222222222222222222222222222222222223333333333333333333333333333333322222222333333334444444444444444444444443333333344444444333333333333333344444444444444444444444444444444444444444444444444444444444444445555555555555555555555555555555555555555555555555555555555555555777777777777777777777777777777777777777777777777778787878787878888888888888888889999999999999999;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<:<:<<<<<<<<<<<<<<<<<<<<<<<<<<=<<<<<<<<<=======>========>>>>>>>>>>>>>>>>>>>>>>>>>>>>@@@@?DB>EI=t/u^iqrcszzwma^ isoe ~ ~vv shrse xydW u xflx | tpodp {k\b]XTek{ur ||x ~s]|   ~tpl pjplaevpc]plcrqgojd;WbY[[^X] zz uza|z ri~ |g | } w | rho| xmxvx_qqc~ { rj ~ ylr}zcnxuxuxof}{x{asu|gepys} kl vh w  zz lnm`p  {y  zsz s^cujtfgwoe  | mj`qj` }tvyq{ rwst sFy xm |inz }ko x }vNPs c_jp  mlns uaLewrb^kxfbepqw rvylcmqv}{}}sic{q\y wZmmlcli_o_dmaQb lZVm{ ur ry vg[nz jj~ |t ~o |slv Qh s uwtqt xwwoq y x yuhifSVbcIX`cmo]db l k WYt} swi a f jROJ[m bg[TXPY J??GNW^^bRVSPCF ZKGIFFOQN`_QQ \ X L O NIEGR[\UMMS\#i: vRft~swy y x utod_UvFm8g/a$Z\Qc kXcvgen iZY eeWYccif\hu knjRN_MVUV\j z s } w gy x xRhwx V~~poWQSowbd\z nk   m kxxUxy~ zyvq  ||zw}qw    }}qm yz wuyz }ss     ix;CHD@:65334222222223333333333333333333333333333333333333333222222222222222222222222222222222222222222222222222222223333333333333333333333333333333322222222333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333334444444433333333444444445555555555555555555555555555555555555555555555555555555555555555666666666666666666666666666666666666666677777777777777777777777788888888888888889999999999999999;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<===============================<<<====??>BC@CFA< eh p}t     xnr  c~y ~jnp`w | wzk\w nPVl  | } qw rh n o tnm`uz~ mb^ioaZiisu|nqej r x|  { iao } {w ~ xkp w }a uaacXRm{ yo | azz wzja zjeogiusohq| q gqx | ]hi_s zzt~zm_f | zy[ovstz{pvlws {}znyi^`LNj {jn}vfq  {w yxyuz hm ~ pt  l  ~  y| |n |||]hlpyyy { Xu~ vs~rz imir~ w {oemxhYN`z w k | { rnsgrv {w yvwvu{yjm~l p ~ pg{ `{wn~uz bxtqpfokdggwq||lYepokx}yrjsz mxqnz Wj |mu{gckdjifngi wckkeg xnaYZho\]TYUA7 ` kYg`g ]aeVYSY^V`UOYY ` [HAFMTXVZVYYJB9GNHLV Y[ Y TP\ MEU V L SFDDHMQUWKV*jE}^qy}{}~~|}z}x|w{{wq n g [Wc1QD5G]V \k hZZ gbM\]Xd eUW``{{`svbt|k_drg q r \m xvgi O_yz    h{utol| x~nytiu~}}  a    wu|wuo|xy   ~zuzxsw~x       |x y | s}t x  % -[IBC:8632122222222222222222222222222222222223333333333333333222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222233333333333333333333333333333333333333333333333333333333333333333333333333333333333333334444444433333333444444444444444444444444444444444444444444444444444444444444444444444444666666666666666655555555666666666666666677777777777777777777777777777777777777777777777777777777888888888888888899999999999999999999999999999999999999999999999999999999::::::::;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<:<<<<==>@B@@ABJ!v sn{rn rha_\\juXklbtt jZaVilhdoVR{~cix  ~ ux z  y \r} gYV_TET^XlhtpyvgfZWatz }zpr { wnq twprp z |f~ y wqk ^Ug~ |w { dSe]Idi^mn~mXg  o  ry r][`RMpz}apvho~vhs~}zztf| z nkyrKbzsr`k| vyoy   w| un o]V}tz   ms  {o}ztuwut^l yjnwmSm}ztq|ojnY v mbuocmgbhppqyxzoQsq   rj ejW[qo^gv\ss{ y m~ ~ ytou oh  ~ v {|  y ~~ nbimmkhjv|pirnYr{y}l { iT^W}  |    zWmrto\sqkwnqjw   ywwigu~vy xwr { Zgv ]omdeQ^_[i\X ug^cihs ua rq z h e ]b\ @-OYNZF` W\d SXXh e_od[ f a a bRIKS [ZQZYZ ` T S@EHDDN T U Y OE[RG UQFTMIGIGIQ"]4vWi u {zz{| vwy}~|}~~yrngl[\6HA6KW WS] o qeh]Q^ gXV^Wv t a os ` u w lfjr _b^MXgfk][Jm }u}  z         ~v~  q z{xn~{  ~   }||psuncijymwv| juw|{ ry{zy*m3PA5C663221///12222222222222222222222222222222222222222222222211111111111111111111111111111111111111111111111111111111222222222222222222222222222222222222222222222222222222223333333333333333222222223333333322222222222222223333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555556666666666666666666666666666666666666666777777777777777788888888888888888888888888888888888888888888888888888888888888889999999999999999;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<::::<<<<==????=?JNgaeZZkhqd\^bgorR`^jw m ziflbmo pju p bekrnpmy{o vle_v|qWcmxznlq xn ]e pbnmqk} z zn \dxuwyw{z pi]bsrmqo~y }g { u w| qcUTgtj |  v ckcWv{daa u h^ s q j  ~}  pot aar}u| z  dtiuwy xp Yk|v|xxuzke]^`gyjy r  uom[T}j|  yhisxwros{vjglr {s { |s } | ~bz |  z ruvgws }mw{ q utmoyulpdKYLbyojvsf{  xb vllj[[ n b up |t   unomh}shVZcfaShpfr} kfvqy ~ yz hZfzu_Mguoyr\ pjX[T r }p uq yu dvz| tg r | }r  }w`bu  wq~{|y emz_phge` r _Mk mlef_h x r doj p t` c_ h x\Se n r nVYMWh VM FZ WP d ^Y g c _ VNKM T^XFQPNRFL>F EC7:=EQC9M J J_ YO _b M>?K-^Nsm |z| |}zwuwxyx y}yy{xz{ yy{{~~r}mprvor\cDb8Z&V] h mmuiW]_OP] Wh_^XfZjnmkik^gfksw x{mo m | px  q   y {y zxy|s  ~ zr    ~~u~}  vx| }sq  vmiuqmyyt }z s[p |y} t yz }y& DKDB9D;7211//.--01111111111111111111111111111111222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333322222222333333333333333333333333333333333333333322222222222222223333333322222222333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333355555555555555555555555555555555555555555555555555555555555555554444444444444444555555555555555566666666666666666666666677777777777777777777777777777777777777777777777777777777888888888888888888888888999999999889999;=;;=?<=ELoz~ uv  { y {   s n [w u jsron ]^ammm`nyufdrwsbmc\Ulroafp||qksy ncyosp ~ |y ~ w|~||}|y } szt | x hVYnqaizx o w ob z ohbcKOt]fnZo~zp oonu } qxqq { utkzrmdqjlqw }'&m | otnisu  yqnmxj |r{    zq[Y bqr{wkdhu     ooz{w wu v~~dz l    vxryz  {kq^pzh\_f|fiovfXx  wb mz ] px ahqqmgs znu y{s]kdbWBG\eaTpymsz ihz pw z rq|v\Z j  }kX t } { a w u bbW p { hhdmrx~ it z| p{ qhy yso p|{|ymqytw~pgqwrw jk }  oomlygL]jgVUP_leXIO_i\` XYe S[_e n_SXCH ]O D9KE7LMI]a_ PG@?AMPIDGOQFC;EK QFKL MWC: B<?VVJRIRd6 y[w |y ~ }y zxwwquej TZGNFNIQ PT WY ^\fbmfpkuyu|w}y~ |~~~~}}|z|x~yyzn z_uPr@j*d`jle liUT^af[kYhds } { uhdY kr fsr pi]ftw|go |~st  yt  xw    wo |  |  z{ow|{{ |lpv|u} ~|  }   | w~  or  uu  /Z&PC?=71/-,11///---111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112222222222222222222222222222222222222222222222223333333322222222222222223333333322222222222222222222222222222222111111112222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333444444444444444455555555444444444444444455555555555555555555555544444444444444445555555555555555666666666666666655555555666666666666666666666666666666666666666677777777666666667787878776767676767676768787878777777888999<><J Q HFWZXK EL IQ JY W OVDKQE:EM KMuM~_px~y{~yz$yuli]ZQOIFDBA? EC!FBHAG@I?I?M?NBJD MHUR`\kftnzvz~z}|xyw}yw y| |u~huSp@c%e_ lv n m l lja oc][mlnsw wcknjy ts k ^cr  _\ n {vo }} {wwsx }} ~|nccvos{w|w~ ~{w| wv   z {vw ~     {v   `#QW=:(277,56....--/01222222211111111111111111111111122222222222222221111111111111111111111111111111111111111111111111111111111111111111111111111111111111111222222221111111122222222222222222222222233333333222222222222222222222222222222221111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222224444444444444444444444444444444444444444555555555555555555555555422222222222222222222222222222224444444444444444444444444444444444444444444444444444444444444444555555555555555555656565656565656565656576767676666667776899:9;?G[#v x mx|| | w w { ~xqp ygmxf\qolokgO^VGnrZt zv r {x g| rj nxt{ot ~ ju~u j_rus d]ournpg;Tjcig]ip\tk|wumq{e^dn|elvn _]hpr u } z m|  tyz ~{gV_XV_chSfwZ hy h\lnpdiQllt{lcfllbnTejn x ew ups h|| v{x {xjts cvvgglh_R=e ys  ~vproZYnpsvwwupq cSk l MScUS^Xgpv zRR _HG3FFRlxmey ypwgTZdehmjo]o m i {jy  z  `^rrl ~ w {x  {sw |mmz}iejdqv y v swioppqmhoy|zwoTj | ^s  v|p {zvampqqylw|x  tehqeh{cw }p]Sk~nkztiix } ppgn d[n z l__g qv|qfx{q n\ pv vsaaaVBRRRM@9DTRMS _ UYbPQQ ` XBYY GQX]TDCNI>ERL < GGSGDHFF;JI> PH=O M ?Ga8xW kqxz| ~vt]\TRIHDBGD$IE*JE/IC3ID3JB2IA-H>)F=%G=%I="J?JCGDFCGCHEIF LJ ONcbvs{{|z ~}zv~~~}~om vHSRcgg_beclqXX p w ptm t zm{ su qaY\ ~SHZlss} }woxwssswnhpmz}z  | }  |~|z  nj}qjr {  ly|mx    {z zs5HS:.7.92,/3*,-/../0112222222211111111111111111111111122222222222222221111111111111111111111111111111111111111111111111111111111111111111111111111111111111111222222221111111111111111222222222222222233333333222222222222222222222222222222221111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222224444444444444444333333334444444444444444444444444444444444444443311111111111111122222222222222224444444444444444333333334444444444444444444444444444444444444444555555555555555555555555555555555555555566666666666666775:;7457<@?\_^{xqvc_s rmmPYapnpj  y_nkV{ hxtU[Yhnup^c |ml { { |elqwg[VXdMOhops x nAausxpdqoKjbw }vwqv }xv pcf\UYclsdy z y m]jt ~dcha vvgW^R] _ b f QcrP^q | { iij { wxg rv }  ~ y eya y ntfk|  p Te v | ~ ~\hvjidt v m tpqi^Q>SYSdst mjmz |hfiv|uw } } w vbgfQ`tywuct z x ydZ d ks o }u`}idwv{ zp| ~ djvvlhPpi v j j    }z t jz~ w c  gbvfo`b ytsjglht  {NUln|eb x m|ir w |r r i iZNU`N]x r| bvmo  `hvuaT uz r^rpNOVo|~zmnn} xen m n jc[TU`cf[] qm o W__^`KIC=>:35EJA>JJU_UFHRN8 S QDWZ\UR?FJ:<=;==<;@FJOLJKIDDGB=D^=|c{~|~~ |y|wzqob[N K?IIEHDGDF$FF'GF*GD.GC/FB0EB0EB.EA.DB-EC,DD&BCCGDL"FN"CL!AG!AG"DJ"HMGKJMSTcbtqz{ xwz{~x~}y~~~| kgAKBN[]]Ti c_[`[OXkun}wiu u^TXYasv_[`o  {}|wp    p iWSxw}mcrvRx{a  ~p ~     {szm~r   }~ q|untuey{vz}u|owR"BUJ963*////..../00011331111111111111111111111111111111111111111111111110000000000000000111111111111111111111111111111111111111111111111111111112222222222222222222222222222222222222222222222222222222222222222222222222222222222222222111111112222222222222222111111112222222222222222222222223333333333333333222222223333333333333333333333333333333333333333333333333333333333333333333333334444444444444444444444444444444433333332200000000000000000000000222222222222222211111111111111112222222211111111222222222222222222222222444444444444444444444444444444444444444455555555555555555556666:@Tj pgo~jygJb|}  {t ~uf  u  vjh&%!ls  slYY_ju |  vRi |pZnu{ y hkx lrsnp { |  ~  |ejops}awnx gjlw {zv   ko zfe |bO]^agQPYc wtlW`rv uscRfimmWR y lm}{ | w ~z~ ym | bfjouhestrU@Sgop{Xg}lrv }{q} ~ vjlmYbz sv{ok{ s { lr qat| { r xnl odx     iohz~p|xhrrwtp iCrv} x_x r^qq } xeX[kllln{n xgv~{m uxfbqai^b |{}xwpnxzx~ |` exo m WOay}oUj qT`jgdQRZq vZ[d Ibu f]moz}g| ~ iq } _s |l[ rx re}|gq j x   mckx nY u xjMPOONHEI]]XO krj]cee jZ^ ^]WTLM Z [QMRMT\WIKU M 8 P OBSXYPN@G K ?DHBEJO ROHB?@A@:45 ;P5lTs|xyuxxy{{~rscaVP OF+QE3UK1SS.NS+KP(GJ%DE$CD%DC'DA*FF,FF+EE,DD,BG,BG.AH*AI'FO$EN%DM(CM-CN.BM/BJ+@H%AH"DJHKJKPO^\rn |xu|}y{ v |^oA\"OVQLh aRNZb W[bf^ster vt pk ox qa^jxswtu  uh_}!y{  a f ~xar l{ ~}y    xy{n~ |p o       $O"\HJE9//.+//0//.///002233320000000000000001111111111111111111111111111111100000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112222222222222222222222221111111111111111222222221111111122222222222222222222222233333333333333332222222233333333333333333333333333333333333333333333333333333333333333333333333344444444444444444444444444444444333333332000000000000000000000001111111111111111111111111111111111111111111111111111111111111111222222224444444433333333333333334444444444444444555555555555555555556669=DF5GD6ACCHH@ E H =>DRLFHO PJA:=<1(4XDzl x ~zvs yw!#|y`_XWNP*QSE9211/-/00200/000023355520000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222223333333322222222222222221111111100000000222222221111111122222222222222222222222222222222222222222222222222222222333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333332222222222222222222222223333333333333333333333333333333333333333333333333333333333333333444444444444444433333333333333334444444444444444444444444444444444444446 8 =T7s]txvryx{zopYZGHHK-PT@Z`L_fR_gS]gU^hVaiNbgJceGccDcb>^]3UT'LJCCEEDD!DG"EH$DI%BI&BI(EI#B?'HA)JC)GB(C@,DB3KK:QS@Y]@[_A^cB`e?_e6Z`.S[OU VXml{{|}{|}||z{~  y} wge,e] k h [_f X\ bb e \p s ZkblgQYXpnugi |z}qv ygxq{ tuzrgrr^ds s ^y ~  z km|ujyxoqxlv     | fw    ~dy ~ kulckrPBOF01+(,22.0511111///0023555520000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112222222211111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222233333333333333333333333333333333333333332222222222222222222222223333333333333333222222222222222233333333222222223333333333333333333333333333333333333333333333333333333333333333444444444444444444444445;CF$mv v ~ v X\t urnnjeqwsyxpVn xZ_v^h o`kkhr r aQpqZsyn ]kxd w w  w p~  {~egtmmrq} } j s{jh r |qapg v xx o o k{uyq qlnVPajx^tzfjn[\toow WE\mtbNaldstw}rcfk ~ y xrkgiibifc nbY su~ t]n{ mr vtt|pXEOPk w bn kt|}~   tQ oxz ag   | x  yv jquu ~ hcit z`glyi`oX]ZZ}qf\c^Xbjppow ~ ~ y  smqm\rzp vich|k9._ORv xq^ } yz  sk{nc~yzmv q[oyrlsqnszxzxuusWTqvYT^p}}hffiYn xwpXYcbq vg [ sx k t  }  } x  | tt} z {x } ~ }seewe s xjlaJI[[NNbiehfZU `d XNaoX ImqhU[[Z_PTSR W QG F O MIM Y X ^ bXJJO?9FIEIGC?;:>H G ?A B@ ?=>= : 9D"`B~gxy}u| {pshd]RPBF@I/EQFScPXiU^lS^lLZfEX`BYaD\bIaaHa]H`^Jb`IdaA^[7TQ,KJ&ED#CB$DC'GF(HG'EF&DE)GB+I<+K:+K:,K<0NA5TK>]VEc^FedDbcBadDbgGdkEdm@^i6\a'ZVZTcbtz|yz}~z~y~ {bk1S`iXY^S[^ ^f ^jdSoltum xp pk{ vxnt      ~ t |  z{ ~ozzlk_ y  }cel x  }}x{|   ^k zy  t | |  px"z)yI}8WJ5300*,---/69222111////1122221111111111111111222222222222222222222222222222220000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111110000000000000000111111111111111100000000111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222233333333333333333333333333333333333333332222222222222222222222222222222222222222333333333333333333333333444444444444444433333333333333333333333333333333333333333333333469BX| z{ v[Zo xyq } t|z nXdqSJopNdo`w phyp bWz cq} x vk| ruwqYLXgnr~yi v u`ebl| nZae^]hxt dql\twqbXIdoQZwn s{j`grh|vwnWVlc\hbUmzu^ktm}wkjq{   }~|vsu|ocq|ztxlgo hm}|{vbYW^eiHe~\kpxslvv U}~spsycZbattsq  zw pz| nqv ul y |u {tachgfl   }~ y   j |  qyq  ou ^Wrf ~ ` dwp]p{yt}rfvxup^exeQ |  | { w lnjk} zv}y`_y]QP_igO\Z[N`rqxz]\XJCRNSdhVU`rclb^lxy kurw } ysw{ccc ugpmalp k Zpr dUeje^`UNVWE6R^B8Y\ _ L \ \Z aSV RM T M@=A<7=IMW]UJIMA=DJJKH@G @ >= E I C J 4 : ? 7 /5M0cMntw v|w}x zwk^ \N ODMEJI&GJ5JRFR^T[jQVeLSbLXdM`hJdjEchBadHbbG_]G][I^_LabMbcH]_CXZ4KM-DF(BB*FF,HH(GD&EB&FA.NC(I;%F8,LA:YPEd]HfaFc`B^^B^_C^bB\b@ZaA[bE^hFchDgc2^X XYbfq{{ }|yz~{|z{~~xw `e9ONOg mc ic]k gk_Qr xwvt uh u  y} vmmpt x  zt | tdwxq ~|ypws|xnvdcQgxbIIpp@@`qpm {  }nwyogh~  nuxgcfxqxo}zvom ~ z  $ z8^$AJHC832/),-,*.56142221///...00010000000000000000011111111111111111111111111111111////////////////00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111000000000000000000000000111111110000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111222222222222222222222222222222222222222222222222222222222222222222222222211111112222222222222222111111112222222222222222222222222222222233333333333333332222222222222222222222223333333333333333333333339/??uy t wd^g u xk u}{x { qa  ~ _ t { dyvs g sz | { w { v hjlgWLO^ltzn`mua]hgjwpfonbXZmqafle"smkllt  |    }tolanjg | t   |  | ~zrx njm}  o vwvp z u qIg^kl~ wx |hu~ yrk]o{loru | }d ztw"y      uk kk{tj|  xe|zynmzs  _]z xedU {   rn ~q{mnhy y@~`riUkx zwyu~hjysfficgrldj_]|    kq  y yt wbie p Tbvtyz^mu jhrr q vdTeYPGMRd xym}szalicf y} x| u m ^sx jQahf_e[RWWC1 U M:+CNSIX UQXLQ KFPKA?@80615ALJ EEJ I GEK M K F:846/494>> ,$5ZEyi x~z|| yy|{$~'{vd] KEJHIH!IH FF BB$DC7SSKeeB[]KbdOhjMggC_`@\]B`aHfgFbcG`dH^cJ]dM_fP`gR^hR^hGS]8HO-@E,BG-FH(GF%FB"GE#FI"EI&IM2RWA]dIciIagF\bH^cNbgQejPdiL`eJ_aK_dLbgLbgJei:`b%WU_Zrmw }v}syytLe#Z o r lrg] stvfN j ypii]TSkx}{wscSb^Wc`RSlvv`nz~ zzk~~{z u~u  WYdgcb py  o^q znhx}u wvq  v|rely{|'LQ\FA5-02-+)(+-.341,44221//.---...00000000000000000011111111111111111111111111111111////////////////////////////////////////////////////////////////////////00000000000000000000000000000000000000000000000000000000000000001111111100000000000000000000000000000000000000000000000011111111111111111111111100000000000000001111111100000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111222222223333333333333333333333333333333222222222333333333333333322222222333333333333333333333333333333333333333333333333333333333333333333333333333333333333332222222222416D}v ~ t g` vzzphuzvktytmsfwvuo} ~}sew}x jo} |yyr j s   {  crmn~  uywnlx | mlvaixuv jr} plqt|}~ uu|  yzuv y zy s ncc i SThw r`c [HXSe t nqo| |s zpv ~ | }vu~zm_  `WL]iS^sniu~ vjnz fx!n }  tj\xuz{ ~u {zxcplHYNQoy }jl   ~hkphkj]Xom  zb ywqvwu heq eZX:\slgrnm y OPSjaUaFsdz v cv}t wy zqzdbl sn{ wjkuqjtmVi |pw jV`qyp z x u t"#dqaw xqor j xsp fnZjy   i~ | tg { vbg u tpn^VJb i_G]ijS]VOY_ QC WFE3DPD>OJFOHR LGPOJK NF?EA?CHD 932><8>DC>3//;57;4A1 I/ kSny {z|ii QP GAH@!JE$BC)DH*EI(DE*FG1PO=\YCb_GfcDc`@_\A`]EaaGccEabC_`C\`F^dK`hM`hK\eLZfO[gQ]iO^gG(HS6VcB`kEalD_iF\gF]eH^dJ]dJ^cK^cK^aK^aK^aK^cJ]eL_gLbg@_^)UOVLma|~v|~}~|w~x lzIJQa\e]X sx{jUm|{y{j ~{ty jMw~t |u cgq} os |y ~     |v{z kj  w~ ydv  lptmmv{|u ~ }kt {     x~HHOJBA2101-(02./10.,0522211//..-......000000000000000011111111111111111111111111111111////////////////////////////////////////////////////////////////////////000000000000000000000000000000000000000000000000000000000000000000000000////////////////00000000////////////////0000000011111111111111111111111100000000000000001111111100000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111222222223333333333333333333333333333333322222222333333333333333322222222333333333333333333333333333333333333333333333333333333333333333333333333333333333333332222222222(;/9@ow~qpbUr  }   w }~^q { b nalg^hu | zqstz oR\j |p }qg r j UUlstnks|r {rqxoupw | ux{usjXrn_dnfZhZ[njxzzx{{  ~ra_hcke_ONACDXYG:II>RS`kbdYhjXorp | ~ jYimp`]s }yjnr_h x KXka[m}  srk| v \ mjZtyrnjkwqaUmyvimmtxs xpnUzgsZLaq uw zsxw r  {f`v]r~ z^   {  tcg nKgu|~ x vybLwww|zjawpjzptknvrs ~~ }vinl>clVatZJZxm sjbq nxt` | |wzvSf^d qu` u} } y jmqt { rfsukr br s OVh _Gi j Rae_IZ k pXNacVRSTPOPK [ ]SDGIBIKI>IBJQMN N BBGDGHJM8B I< @5A >=@FIC:=8:>6. <T;{hs z{z~{~{{zrr[ZIHIHMIICG@"GC%CD,HI'CD$@A1MNAZ\F_aF_aI`bI`bG`bG`bG`bG`bG`dI_dK^eL^eL^eK^eK^eK^eI_eG_eGbf9VZ1PS%DE"DD%II EC%GG"?D5OUD^eDafA^cB_dDafC`eC`eE_eG_eI_eK_dL_dL_dK^eE_eKciMZbR^dRbh.MNKJok{~~}~~||~vzmc<BB U RVT[ik kD[ bjy {{ wi}s{{ nzul z kz}it~ uted[w y ~  v xzqsnwxu |{ wyh|lu |oy z|z|rhaqv   #6 p1CLC88:510000.00000000000000000.0.0000000000000000000000000000001111111100000000111111110000000011111111000000000000000011111111000000001111111111111111111111111111111111111111111111110000000000000000////////0000000000000000////////////////00000000////////11111111000000001111111100000000111111111111111111111111111111111111111111111111111111111111111111111111111111112222222222222222222222222222222222222222222222222222222233333333333333333333333333333333333333333333333322222222222222222222222211111111111111112222222211111111222222222222222222222222222222222222222222222222333333332222222233333332(.8?s7wy}nu oN hz xhw u uW{ vu{s ~ m v v n ~skla]U\a`c]Ofx _Pjx ter cae`Y@XOALOSnu n  udv ~jqo^my } m`s||{ozxrvphglh{pu kpwbp  }|ljio|z rq z yl   y |{ u pwlaM:H^VgXb{ pr ucmx ohuzsdX\iUiomow~`_i^ p lRspysqw|nr_j zgwh_z mhqronn] o {|mmkt~rlwb }u~rpc  ~~ws  uqvcy }tz ZQ  skz  wumyrywgi vt~|w~psrVqt r{ qIJ_h rcSh~nupb } pY` _QtlnO`hfr{ v toQPkihse]`OajPXi gHg wj riZSZg teYba_VVWMNLCW _ [ PTTLRY V L V D>BE> D @ G L EDBF M ;AD 8;/36549CC>A<12 E) fQ~nz{ws xt|zyudaOM HFFFGEGE EC#D@&EB)HE&ED*HI(DE'CD7PRD]_I_dI_dK_dK_dI_dI_dI_dI_dG_eI_eL^eL^eL^eK^eI_eG_eG`dE`dEcd=[\6UV'FG#BC(GH$DC&ED.GK?UZHaeHaeD_cC`dC`dB_cC`eC`eG_eI_eK^eL^eN^eL^eC[aH`fN[cR[dU^g=PWGJSSjg}y ~}{}}x x hcCM!PKS]ilb_<PPPWY_aTw z{| {z soz q}wdRUiquzzz   zp   w q}uw  ~m it{px  } }sxphTe { cp(}n3Q<=91265-0///////0000000000000000000000000000000000000000000000001111111100000000111111110000000011111111000000000000000011111111000000001111111111111111111111111111111111111111111111110000000000000000////////0000000000000000////////////////00000000////////00000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111112222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222211111111222222222222222211111111111111112222222211111111222222222222222222222222222222222222222222222222333333332222222233333332673??v y  w |oJZdsdKISYPu qdplw { roimvofic^_gppQksa t } wvibfit nIsk _edds t ^yrlo vj hoppbWm rj z qznvvywz { zywsnrsk`\jghZ}wrzts}m  z g ddd xkij{ykl}ziinokw rmw bl| |lckr{|npo]uur t|v{fn }p z lywtwz{}wd{ xcprqzlpx]ir {  zstjUz w| {  x  w  q rJ`b} vwwsEEq{te]et{y{utsc }{vacqy~z  ~ w {   b[` r xb w  xhUebmZ[orfp|kOZ[S v { pbbjop v[hf^{|{ } mz {`hymPm}l o q p`X]ttf g ek[Z Z LLI:GSNHMHBF MF?QB79ADH>?@754. @< C H@@4><85; A ; 0+;Y:v]tzx}uyv#'pq XZKLMMQSFG"HJ'FG'CC*DD/GG/DE'??)EF)GH(DE+GH=VXHacJ`eI_dK_dK_dI_dI_dI_dI_dG_eG_eG_eI_eI_dI_dI_dI_dI_dI_dLacJ_aF[]4IK+@A0EF-BC.CD>KN@@?423':7:><>4'086//6@$nUu`ox wyq}xlm`aUYUW+`c8gk:cf5X\A`c?Z^:QS3HJ2EH3GH2DE+@A+DF(FG(DE.JKB[]JceJ`eH^cK_dK_dI_dI_dI_dI_dG_eG_eG_eG_eG`dI_dI_dK_dK_dL_dN_bPadO`c:KN.@A3EF0DE1FGF\aG`dIbfG`dF_cG`dI_dG]bI_dI_dK_dK_dL_dL_dL_dN^dRbhL_dE`d@ad@adEfi?\`&FKGJOQef}| }|}{~x ~ {z xv fg<TLM W_W Z\a[` kqt kRit { y { vs |t{     t z ~ rmnyn{`q{uz z} yz}v||}    |   } u {z>~AIO>F52000/+.1////////0000000000000000000000000000000000000000////////000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000////////////////////////////////////////////////////////////////////////00000000////////00000000////////000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000111111111111111111111111111111111111111111111111111111112222222222222222222222222222222222222222222222222222222222222221,25;@O jkuu t nlYp} vzp dT>Rg` t kprfav ra|t  } q u sw ~ v  {qo ~x |p {dXde]prv k\o | yyquidyq|}m\klQlg`dhrr w { v~| ~ c x ]eq YgjZx{u~y } zym y xaoz qr y|rnqlfj {   utnptom } w n|| uovm ~ ~qv ~xnmogjoersu gqn ~ rem|yzmgrzl ^o mk~ owywyxigl yr y kce^u yc_lh\e} tw}  {jgyeH@  xk a n pyid|x qwqYpw is now lo{ojyrtjdmatcbr}ylnbwqn  x }zp{st yZmbb{~klp}tcmt p gUZcef[Y^eqgQWk^RemafmfbI7IVJC@THJMEGH<K WJLPGGH N E4 A : ; 5,7>9A B621,863:@FB8.+3A#U= p^y| } }z)giFJNQ,WZ:`e=bf?_dC`eJbhNdjL`eM`eM]cFV\9IO0AD1BE5JL+DF&DE(DE2NOE^`JceH^cH^cK_dK_dI_dI_dI_dI_dG_eG_eG`dI_dI_dK_dK`bL_bL_bN_bL]`PadPde;PQ-BC.FF-GG3MMI_dJ`eI_dH^cH^cI_dK_dH^cI_dG`dG`dG`dEabEabEabG`bSciGZ_?^_=cc8`_?ccF_a8LQ-CHBFMPhj~{}}{y zvzqxu q a }UmBf<d7S$HGLKRZajdOkhv~ntwq{xyx }   z{n |rvz } q~{}w~p|{   }  w|    }t}  v (7|7LI?B6*8+,.1-')/.///////////////////////////////////////////////........////////////////////////////////////////////////////////00000000////////000000000000000000000000000000000000000000000000000000000000000011111111000000000000000011111111111111110000000011111111111111111111111111111111111111111111111111111111111111112222222222222222222222222222222200000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111000000000000000000000000111111111111111100000000111111110000000011111111111111111111111111111111111111111111111111111111222222213-3>9K!wls kk_B[mgh m VT;PMCZXdme\athRpwkcTWcbdldb\Qf pcYaxl uz |~ke      qZiaSeeol] x | w} zp { { m }q z w c t j`efjsxfkuvtsnnklzxwZbwRfzjh}  |  { nk[pzt~ ||  s}rntcakmZep p   y{r}r}|zzvklapuakeufol} z  oehoecjtx~ }emvv~ofo z|~jz ~j`mcppdhz ro} zvkg tpnmqobo\Lw|hc o d`}! j y { ggdgjaaq st  |sl^ zpiw uj aM^olgr wkojo{sz {~ {bnm\ xn|t`hebv k_cejmidjwugem ^\k o ac m hq d QZha][]XVTLJGBAMAK V KLIKH< C897/2609>346,8:7:965,.D&fNmw~vyxpp {~nr SW DFHJ)OS?]bE_eGagH`fH^dJ]dI[bHX_M]cL\bN^dObgH[`:NS1EJ,CE)EF&DE)EF5QRG`bIbdG]bI_dK_dK_dI_dI_dI_dI_dG_eG_eG`dG`dI_dK_dK`bL_bL_bL_bK^aL_bNcd9SS(DD'FE)IH6TUHaeI_dH^cJ^cK_dK_dK_dI_dG`dE`dC`dBad@bb>bbJXMP LM G>NH G D >A @6>C:=C28: 3/*)1[Cm\pyv|z#|`jIUIP"HJ"DC,PJ@a]E^`G]bE[`CY^H\aMafQejPdiNahK^eG]cH`fKekGag4QV$AE'EF'EF+GH7STHacG`bE[`J`eK_dK_dI_dI_dI_dI_dG_eG_eE`dEabG`bG`bI`bK`bK`bK`bLacH_aHac7UV'FG"DD"HH7YYG`dK_dK_dM`eM`eL_dK_dI_dG`bCabBab>bb;cb9cb7cb;cbEabI`bKdfGefCbaCbaC__AVW2AD7EK0DICGSSolyxuwwu}{}z} |u zv |{~rr ogsId0f'[\ nw}vvpq| x s|p _ h{wu{ r{|sx}wl y   lz~|qw vt x ~stqw ~   qum(Z$AJ@@065785+/0-*)*,+*........////////////////////////////////////////................////////........////////........////////////////////////////////////////////////////////////////////////////////////////////////00000000////////////////0000000000000000////////000000000000000011111111000000001111111100000000000000000000000011111111111111111111111111111111////////////////////////////////////////////////////////////////////////////////00000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111112222222222222222222222222222222222222222111111112222222222222221.54.@>EutgoW| hn~ ps  pr |y  o p|kf v q x~osumnw yyytmu  xlk znkxy    }vo }nqqadrfb__Xiw `vtmu ~yqc} x \gybn v} { y q uupvsk | kqvtm_flR[rmkaikiy }zlesz o kdTP]YgY`XYe tlptw pp ph ucG`uhrpstjvwq|v{    k y tkmnmvwgp ypcvvwwq}|us}~~lak  {ysz   r !{r~p~c pwfh | eqyvdmzXJzm|{   ypu to~r| |ypz yp^qr l { p t fk} {{p~~r{yu Tk _^{otxs {wywqdp u m^ci aZ\ h aPP`\U^\KZQLPMJG<LJEJD@ O IP 7CP ELHN</GGC9/ 98 4 ? D 879444 / 6G/ aJ o|q{ ||y  msQY HRDO AJ&@F,DD4MIB\VKgaG__LbgNdiLbgH^cG]bG]bG]bF\bJbhGag?\a?]bEch>^c3SX(EI(FG,HI9UVHacF_aE[`LbgK_dK_dI_dI_dI_dI_dG_eG`dG`dG`bI`bI`bK`bK`bK`bK`bLceE^`Eab7VW$HHCCIH5[[BadG`dHaeKafMafK_dJ^cK_dK`bI`bEabCabBab>bb>bb>bbB^_KbdMbdG\^E]]HbbFbbA[[/BE3DG2BH&AEFIXWrm}vyx}||yy|z |~  {y {tyojlWd-Tctz {z ~ru|a x   x  |s{ zxoex w|y   n s  pr zg] nwul } rr~  okW!MI<;318,2/.*1((.1.,-/.................................................--------........////////........////////........////////////////////////////////////////////////////////////////////////////////////////////////00000000////////////////0000000000000000////////000000000000000011111111000000001111111100000000000000000000000011111111111111111111111111111111////////////////////////////////////////////////////////////////////////////////000000000000000000000000000000000000000000000000000000000000000000000000111111111111111100000000111111110000000022222222222222222222222222222222222222221111111122222222222222211&4638B8 iw _mzo ydb  g{vru||[_nghgsoYg~haw t |  y ~x||} ym mkf x  ql  px]kq{ |ryekumn }y| l\nvb tz vv ~kl~ { Z[ozwq snc  t ~ txol { dRZ_\VhrUXw swv{xy| {unYR_g^^jgTWq _{rrfk qqum xfu l`w z R Yg ~ xjnuousghmkdn| { ty hed^eg{~   tviqlwt|  ~  "~q |   nqznp ow pjxen|Ssv }qsn tvzm`u y RNp bijjsjv zokX`ij z  q~ n uiel ~ yx  y z r  { }m { yvs|wtzuUMCN_mWaz}t { ~  yk rz pr b lie^ h ^ k cf i VYo dV\ YRRSOONARLMG?<G J 9-<A=DO @;B L OF3; 2+. 5-#"),9T< r]r x~u~ ~pt\`KRFMGLGJFHCB"IG"C??]XNc`J_\IaaG`bG`bG`bG`dG`dG`dG`dG_eE_eE_eC`eB`eB`e@`f@`e)FJ.LM%AB:VWD]_JceG]bH^cK_dK_dI_dI_dI_dI_dG_eI_dM`eO`cO`cN_bP_bN_bN^dM`eK_dB[_Hei2SV FHEGAC6_a9_c:_c?_dA_dD^dG_eK_dN^dR`fS_eR^dQ]cQ]aQ]aR^bN_bK_dG]bO`cPadL^_K`aIccB^^.HH+CC.CE.GI!DGEEXUqn~||~~|{{{{||~~~ | wrg S{9y&}{ grw zyjr{ t  ~n }~~  |~unqrZV|y r ~}x{% 2 H:OJB;40--000....-......00................................////////////////////////////////////////////////........////////////////////////////////////////////////////////00000000////////00000000////////////////////////////////000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111000000001111111111111111000000000000000011111111111111111111111111111111111111111111111111111111111111112222222211111111000000000000000000000000////////////////00000000111111110000000011111111000000001111111100000000000000001111111111111111111111100122458}=wtz ecY sx k T@` hGD`FX{| tdo}~O_pg|uhrtir z qpq_Jf h][_uau | ojn xr } fpyz x| wwzupvrXoh_^moop_lqMitc z e`r m[rdu`h|bttdvac^Gudoii^fohdx | ~ hurnu   ltn~n|]rx]lr   | z t bx ot  Zm$rz~   } znptny fkuV`kdm^kipv|ny lomn |ly m} oayxvxse!$x [Ldwqgv }  vfu | \Wv hqsnsenm_]MPTTjvo]m t{qoQY rqtxyepu[s x xiltq\ijr ytzy t r lk t zin |suslg_ceY\UV`a j j ck e h i RRi aP [ ^ ] ` ^ YWRDOFGB??;D80<?9<;89>? D?00/04 4)&1: aGmv v y ~ ~} xzilWZ LPIL'HK)EE%B?%FB"GCFA"JE*LKA]]NadJ]`I`bG`bG`bG`bG`dG`dG`dG`dG_eG_eG_eE_eE_eE_eC_fC`e5RV-KL%AB4PQIbdD]_H^cJ`eK_dK_dI_dI_dI_dI_dG_eI_eK_dL_bM`cM`cL_bL_bJ^cI]bLbgE^bIdh3RU&GJ%HK$GKBeiBbgAafC`gDafH`fJ`fL^eP^dP\bP\bR\cR\cU]dU^bV_cS_cL_dI]bO_eO`cK\_K_`Jbb@\\&ED#BA'CD)GH#DGACHIUVrw y}|}z~{yyxyy|~~}}~{w v q e XNB~3u$#| y  {pkg  tw  xf|xz pu     z  oz qp ~~ ~y  |Z#WUBC>94/,+,.0......000011110...............................................................................................////////........////////........................00000000////////00000000////////////////////////........////////////////////////////////////////////////////////////////////////000000000000000000000000000000000000000000000000000000001111111111111111000000001111111111111111000000000000000011111111111111111111111111111111111111111111111111111111111111112222222211111111000000000000000000000000////////////////0000000000000000000000000000000000000000000000000000000000000000111111111111111111111111../1269?rn rt sVUt w hX@I dSUr d ixtmw  }ae um | tpajwl[ghLfaOXS]Olyrpjvjyp z x} tnw v~{vn{z~ |ok |qwx rlYUtlSptZ {jYewgP^arhr m m|wy ~ p{zw x v v nogjj`bqvgo hy }r{ kqvp   vb rwxM] z  |}"  zx ~tm y w owlbiv tZY^ w z      ]`z|wdb ng`nt^mx r rrz] nr^Ztwoiw  } ~toe { r{ ~uvp~ | v ukf^Zmys_ctkrns YPvemjn[U\X5BKVIFO\bah [aejWbum sw ~x  sh~ sq{ tpegcgk ebb^ebNRR`PJVV]_ II _[O W V SU XW XTGOGF>>>@LF =D H B D ?856 8> 8'4/** 09T<u_ rxx{s}y}|noWZNR!GKBDB@G@JAK>I< H<$I?'IC)HGM; M< I:&I?,JE/FHJ_gI\kIZmHZkI^fK_dK_dK_dK_dK_dL_dL_dL^eL^eN^eN^eN^eN^eN^eK_dKdf5ST%AB+GHG`bE^`LbgI_dK_dK_dI_dI_dI_dI_dG_eG_eG`dG`dE`dBad@ad0IOLLDEGLEEQ MAJKKR VRPMFO S P <;35B>/.7 ; 9E-#/76/ (:[?w[ ku| |&"gpT^'Q]6Yc=^g=`dC`dM^aJXW;PN/JF'J@"J>"J>!I=%H>(G@/GE3GLN`kJZjK[lK[lK^fL^eL^eL^eL^eL^eL_dL_dL_dL_dN^dN^dN^dN^dN^dK_dHac>\]%AB+GH;TVJceMchG]bK_dK_dI_dI_dI_dI_dG_eL^eY`iY^gR]eJ]d@^c8`e0cf(eg"jjnmqrlllk kj ihtu%tw(rv&pv$mq#jn#hk%ei&cg.bh2ae9_d@^cH^dN^eU`hVaiN]fJ]dG_eE`dF_cLceL_b?RU*DD'GFGEEBCC(FG6EH2DE"D=LB]Vtn}~~} { {~~~~~}|yq|l Nu.hptmz uy|~q~mt|   z t kny uUwcif\hnZYy ux~ "} +uH{ASE41-),/+--...-....../////////¾/ɽ/Ǿ.................................////////////////------------------------------------------------........................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////00000000////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000001111111100000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111222222222222222222222222440.-/6>G3zrXZ{ |qql ~ppu ibn ivkgn[RbZ]MFLG`bd  crmzh st{v z   {saeb] m c ji z iuq yw  o]k fj z {w d u sSh ~ z]ayujcat  yv ne g`~  iz  u |xxnbn |j ]O { {fhtjPDitHyh { mc[s ~ g hn {kc } Wd kifvlt{ukihfwh |xMwwv{ Y| wry iv N>\hu Zcn y } {| zm{zor k^osgtn p qu zIo$'eNn{ ilo  }pnlfgz{YWi w| bcomhbn_Y\p lY[dmmm_t{rl {knr}{ylyv^_  dWpzhgf Q]XUgY] v tmgehw y jlmho fYeaSVaZNUV P@V OJIHE>A@CPNMPKHOSOKLEI P Q<?77F G 95 >@ 7: 22 3+ 0K0 dMxeuz w { x lj [^RX1ZcG_kO_kSamTenKciD]aOdfMbdF^^7SS*IF$F@%GA)ID)GB)DA/GG8NSK^eK^fJ[hL^iK^fK^eK^eK^eK^eK^eK_dK_dK_dK_dK_dK_dK_dK_dK_dI_dB^_Cab)EF+GH1JLG`bJ`eG]bK_dK_dI_dI_dI_dI_dG_eI_eL\cJ\cC]cE^%"~niz zkhj vadp} |iZ_]y upm }t r fTWL iq r ~^ir|b\S`vlhg~   ~ hk`a\Yl_do\u}cq |s }kfYOYV]glpjshxxYk  em| ubr|n {~ u nb s}uylcqp|vv wegmkNw xppyu^^ bpzbpzsbrq^\ZdTW pk~t} r r|u^}u w xR~lQ^sx  mh %n X{ } ZVo d} t   w  hY|lhwsq ss { G` x]Sjjksqsm~ }p f o eby kLRoli tjpokfz o^] w v dglmssWgob]qQSqlp|~~o g` kJVdVn}} wt zshsktxc`u  pg_ k vmnmjkhTi lac h ij ]_YV` ZPP XUKLMQ[ Y U Q E>HNKGG?AMR>D:4CF 81 < > /?0- ?!^D{fus|oqdfWXOO#QR0WY?`cFcgD]aBX^H[cM]iK_j:W^=_eDdjB_f8T[/IO-EK.GK,EI(AC.GI@Y[D^^HbbH``I`bI_eI^fI_eI_eG_eG_eE_eE_eE`dE`dE`dE`dEabEabEabEabB`aB`a.JK'CD.GI9RTG]bJ`eK_dK_dI_dI_dI_dI_dG_e@`e/be&fg$jj"povs|w| ~|~}{}|~}}~~~ {}zyx tr#on&ij'df,ad7ah>`fGahJ`fJ^cL`e?XZ)EF*FF)EE,FF.HH.GI*FG&EF#ED)JF"EAACHL\dsy|}~|~~~~~~~}~}~}~|{uz ~xzv jMl*`l   x   } r| }erf qjpSp{bo>z0K:.61)70(+-,(&''*-/122.+---------+-+++--------------------------------................................................////////........////////////////////////////////////////////////////////00000000////////00000000----------------................................................................................////////////////////////////////////////////////////////////////........////////................////////////////////////////////////////////////////////////////////////////////////////00000000////////////////////////0000000000000000111111110000000011111111000000001111111100000000111111111111111111111111111111111111111231.-+.5=HJ){y wf x  wcbgk s| u la|  |  zvg qZlpp sd JLhsv^b[]rkknyitoo{sxrxxnWlk nhXct{l }s v ]b^YacbcWVf`J\bGX{yWf z lv u tsx}v  si]Nmvz}w vxo~ | oOv z ~ ~  { in  lt` r vzulqrpf} zkjrx|wulnmZmcq v R| NTlmoZ} th`  palf xjt{ep   xf zwys{  _z v~ y ls    r g~ u j~ "X_ zn|mdntperbSUwx |ms { qfo[_ }enp} se  uYoegp{}u ru z y dgvb]Ue olnnnjldj^U]dfk b a V ^[ \MO \ \RQNJOKJHABO W OG@9;MU@F94A C4,7:)* M0s[m}ox}}y}iq RZ HPFLCG-LMA`_Ihg@_^?^]HdeNdiL^eMYeM]iDcl<`h=\eB]gF_iDXc6KS)>F,DJ(AE-IJFbb@]ZIdaFa]H`^I_dG^fG_eG_eG_eG_eG_eG_eE`dC`dC`dBadBabBab@bbBabHdeC\^6MO'>@2IK.DIE[`KciG_eC`e@`eTZ.GK)BF0LM">?>Z[LffJddD^^HacG`dG_eH`fJ`fL_fL^eN^dM]cK^cH^cF_aB`aA`a?aa<``>``IaaK_`:KN/@C4DJ2BH4GNGah>`f5ah+ch$fkloswz}~~~~~~~~~~~~~~~~~~~~ ~}~vw!hk3_fDahH`f;TX*IL$FF >?&BC1HJ6LQ7RV;U[BZ`C]c?^_4ST0KO1GL.AH"DJ_b ~} ~|u|}{z{}}~~~}~}}~~~~{sp cEs(gez } y{}t kuxu }t~zkv    | }+ -A ~:PB>2/.--++-----,,,,--..////...........-.---////////................----------------................--------........----------------........................--------................////////........................////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000////////////////////////////////////////////////////////////////////////////////////////////////////////////////00000000////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000-**145533;=i0 ng lEZ {v z v iniRRDKTXSNnwq } {tq ubUjw PG` p y}agWebtccYZz{krz { { ogu yhMn s RWoact p{x~tssUrv mld_w{`Rv{mRcb z j qnm z oWutrrakhN] zp^ ~ {rtj xg y owhs zksx ~ tUy }l^  sxur]ihfO}qs  jsl m w  xx {u Zkvnql` k]{ ocntd^v yx z  y ]T |p  {{j` l[zadpobqqg }cLf`hxytq}|  u ~sxknvzl[wyqen~ pg^jom}gU[l m  t]DTn x q_mn z marp`[becJRMYRXWG\[GHCLMDMK:36@LFA/(AH;?G 1< AAR1 pVou ~ysw cg U[ MRHMGI#GG$FF"DD'FG6UVA`cB_cE`dG`dI_dK_dL_dL_dN^eN^eJ]bM`eL`eH^cG`dFae=Z^3PT%DE,JK#AB;WXMdfK`bI^`LacIbfF`fG_eF^dH^dI\cJ]bJ]bJ^cJ^cH^cG`bG`dFbcEbfGcdJacH]_4KM'BF+HL CGBG"UX/lp(os"sxy||~ ~}~tu-mr9io7[a,JO"CF&EH-KL4PQ>W[C\`F^dF^dI^fG_eBadCabKbdM^a@NT*EIQRfcz|{|~~~~ ~~~}~}{s d Nh%O ~ kifz ysm   j|zutu} w{}oalbt  u"{b'BFJ:)-.-----..--------........................................------------------------------------------------........----------------........................--------................////////........................////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000........................................................////////////////////////////////........////////........00000000////////////////////////////////////////////////////////////////////////////////////////////////////////000000000000000000000000000000000000000000000000000000000000000-')17:83039Lx  qU^utfk z yx~~vn\g|xf | p w ~ys yrl t r hep m|jXW`WijQUOPjkdttv{q y {r jSwin~jcq  { wuw y lggfl  mn`xcCZhiRUZ t nzrhda{ v^vs  y nq uVwxsxm v | nv`bm^ip{y btoWo xaYz ~ hUalhUk ^UX{ ~q wgx { uqn| {mvoh{RUr |k u k SokQSv icn|sjggxxbboorux{ kiu}WQ |t  Ubj]` o [z z[Mp  rveIWb]Ml^g{gqhbiegfzqxqrj{ m~ s[txqhuy }]fllhNKWT r kTd itskhj xoiw u eZZ`hYa \_PRM<PL?F=JPDBG=9<DQL C@69;9@;,: ]A|bpot}{mnVWHIFG"HH GEB@&EF'EF%CD'EF0NO>\]EbfFaeE`dE`dG`dI_dI_dI_dK^eK^eK^cNafJ`eC^bA`a@dd[aROWRLQ]GPbgtllfZ {aiqv  cbjTIn{  y w v z o v zdjik ~wrl^Ue r hMsw w} xoedserunp  umtioiNV_qtofu |   p { rx|  sviw { Yy{|zodjvr[fshu   w ~j w xszz}jjy`i em  h| qvoX^tzVi}wrt}k    yj{}^ x } e` tw e^m u|zpsy v | ~ }|" pr z o j e?]^_c\i][mdzjKVi y greXz}bFHIz{r{ c`lj]V_fg LV h i[^ i f_XTVXGK;9WVIK<GPG8H JD:6B @88G0se)wzv~{}vy agPX*U^JeoTclJU]WekGX[3KK)EE'FC'FC(FA)DA-BC1FH-BD3HJH]_MbdE[`H^cG`dG`dG`dE`dE`dC`dC`eC`dB_cEabHacLacN_bO^aR]aR]aO[_3DG.CE*FG4VVF-CI+AF1HJ,CE3JLI`bLceDZ_J`eI_dI_dI_dG`dG`dE`dE_eG`dI_dJ_aK^aL_bN_bN_bM^aM^aM^a3HJ,BG*EI+HL>_b<_bC`dQ_eS]dO\dJ]dD^d:=;0.684541+%&,0**++,,,,--------,,,,,,,,,,,,,,,,,,,,,,,,--------........,,,,,,,,----------------,,,,,,,,,,,,,,,,------------------------------------------------------------------------........--------................--------,,,,,,,,--------------------------------------------------------------------------------------------------------------------------------........................................................////////////////////////////////////////////////////////////////00000000--------------------------------................................................................////////////////////////////////////////////////................/0220/++,-;Cw;doj_g y y ysxrgq orwqj x|mkxzxak y\Hkmiw|ebux_Zh_ikyqpsos{   zt~y[z l u}wkv  ~{stw esujxt\l xfu tofhz~mpvx | in ~iq {ml | | lj {}nvgy{  }ium ~  ~ t ww rz fu{st|  tvjSrtrex   eu{ cipn R\fz ! y    wq|~rkugsuYlyqo~  {  rqmdRfgX]]Xdfn } ^h} ~ ytu~olgyhpxj]aSfc]cnsg} }x x o }u {ylpf ~a Wi }skrrz ap t` p ^cXT]^_eeb b ZJPZ QRAISd WSDDIP HS I ? <N4qczz{{}mm YU OJ C>+TV9\_BcfDcdB`aC_`FbbJddHbbF_aG`dI`hE[f8P\.ET*BN&@F.JK+DF1JLHacLceE[`LbgI_dI_dK_dI_dI_dI_dG_eI_dL`eJ_aI^`K^aL_bL_bK`bK`bH_a2HM+DH+FJ#@D>[_=\_EbfH`fG_e@^c:_c3ce-hj)oo!st{z}|~ }}|}~ z| ~ ~~~ |"||0km?eiB`eC^bB`aEabOabS_cT^eO_eFcgFehJ`eH[`G]bJcgGdi9\`!KPVWyw ~y|}} ~~ihUUTUUVRRUT^]vuzx{|yy|~}~|uy~~|S3w\   i   }myljqi t=OJ:9(-&+(-/16/*.-*//)'**++,,,,--------,,,,,,,,,,,,,,,,,,,,,,,,----------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------,,,,,,,,,,,,,,,,,,,,,,,,--------,,,,,,,,........--------................--------,,,,,,,,--------------------------------------------------------------------------------------------------------------------------------........................................................////////////////////////////////////////////////////////////////00000000--------------------------------................................................................................................................---------------.0220/-++)1:6H maqKH]m`W\cUpyeo u rhj{ raxcb  {mzhwje}y^bf[Xebsdxr_d^Tvx} }i n zzy X\  | zqfp zsZfst  ~ k_kgfx htqku ie{tz_fhjw~h{}y ~gZ | ~u y~ iwtrw~  ouo mb| wx|~ Ux rh {k}~ oya}vwz$ tT{ hi}y|`v}ztt~  q  q]\zpMv |y| {  |~}zm^ }uv|l zu}x { } } w wgj SOp x~| x|rervk`OZ lip jx~{cirqrtx l`u gnkpcVmysnIo  s]ZWppfatn]e l i Y^iUOX _S] l d ne bc faV PPWZ UG::A > 9 FY3mP j|{}zjq[_PPJCI;R='YG@d^Bba>ca>c_>c_Bd^Gb^La^O[[W^aX^eS\fN^kD^l1Ra"ER CG&HH'FG1OPFbcIbdE[`I_dK_dJ^cK^cJ^cJ^cK_dK^eJ`eG`dEabD`aF_aF_cG`dHaeIbfD]a1IO(BH-GM*GL+HM7UZ=cg,ad&fg(kl(rr'wv"zz}{}||~~~~~~~~~~~|{(z{0km7`cA`cDbcH_aN`aRadP^dL^eE`dG`dN^dP^dI`bEabJeiA\`6TYKO^]}z }}~}}}~~|zyaaOQSURTNOWXTWZ\ffvq { ||w~|~}||}}tW?x_  ez   s  `o5|/gc FA=83,)&''(+.132.++++*****++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,++++++++--------------------------------------------------------------------------------------------------------------------------------........----------------........................////////........////////........////////........................--------------------------------------------------------........////////////////////////................----------------------------------------------------------------........................................................................////////////////////////111/.,++%6,::730,*'(((*+.//,+++******++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------------------------------------------,,,,,,,,--------........----------------................................................................--------------------------------------------------------------------------------........////////////////////////................----------------------------------------------------------------...............................................................................................011.-++++4)16;7p{ghyusfn\es]^gollonqyytt{[Wy|_Nujjtv{|io~w~ kYz noj^lzmRXh v}  tkqj~[ZiYZ^m[]iJIp y om fi }h ri | vip  |p xk ir wg\] t | xgk^jq ygqbJtnXnuz zqtw ~ rowY xq  zpw    wk}l}z}`cuw  t r    q  queMe{z~ } | } kz   kk^WeocSJ_f_TZnp r plhm` q  vw pYNkbgtfoi}wlku | rjgk YJb`Zg]i p^Wr  xrr_[_Wjj^UnxZj kgb`aTPIPNFEBD04AJJDAC WIE=2L%vVp~|vwhe[URGK@F:G<%H>'F?*C?1GE>STJacE`dE`dG`dI`bK`aK`aKa_Ib^Fa]Id`Hc`E__H_aKbdL_bD[]&HH FF DD*LL>\]FbcF_cKafJ^cJ^cK_dK_dK_dK_dJ]dH^dD_cC`dFaeF`fH`fE_eB_d?_e/UZGKFIUV^`hitt~{}|}}|~}~|} |}~~ ~~||y(pp5egF^dL_dLacHacC`dG_eP^dR^dN^dK_dI`bI`bG\^OdfJcg(IL@CZYrl~~~~ ~}}|lmOROR WYLPPVPVORNPRQ\Zkf wq~w { {y}y }q ~Se!nu }w rl  }~lo-ODDF<;1....//.-++*))))**********++++++,,,,,,,,,,,,,,,,,,,,,,,,++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------------------------------------------................----------------------------------------,,,,,,,,--------------------------------------------------------........................................--------------------------------------------------------------------------------................................................................................////////........////////////////////////////////////////////////////////////////////////////////////////00000000...............021.+++..4&03;>M~x u zfcqd{ tst|ossssnjtxyTS{ mcw vnj}p" qx  |p w{n\jn z xr ~pZXpbn xym~ bb w ibT r i{`VjooloZv }Whp ujq ~ |ag vywjn{~ }ffn {  ho j y}qtcKhqWe { lid{bcljlr |q { f~~dZf poxn yo  u| {skd]p p    rqq mx   og} ~qvp}}  r    im{ gqmjv }c uz pls yuk w xk tg} wbp}zt]@Q9Cpjpfy xwu~}}hWo s v  v o s g][arhwtfh[fdYLbp[ l ieg kqm m ^a e\XZWJJR \ \ U LJDML\4&b$o jvuyiu[dPUKKKE!I> D8&I;+L>-LC-HD1FG9LQIU_R^jK]hK^fL]fL^eN^dL_dI`bEaa@c_@ea?e_@b\Ca\Lc_Rc`Mb`3SR&JJ!CC*IJ;YZEabG`dH^cF\aG]bH^cH^cG`dG`dD^dD^dGagDaf@^c=]b;^b:`e7dh2gj'df^aghwv}|~|~}|~}}}}}~}~ } }~ ~ xx.ik>^dJ]dHaeC`d@`eE_eR^dS]dK_dI_dI`bK`bM`cI^`Fae4SV!BEEG[X|w ~~~}~}~ww_`TVTWOQPURWRWRTPQPPUT[Vjevn z }zwzx ~ }yn xNw4 %    ! / V!C?C413.3+)()*-01110-+)'&&)*******++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------------------------------------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,--------------------------------------------------------................................................................................................................////////////////////////////////////////////////////////////////////////00000000...............021-++-01+5*,48C)~qn  xyl   x |~ |ih~a_to{{ntp`hqZI[aWmojwx os} v nz  vi rlvvqdo^^qreQgi aaqrpl v et _ma|`^\Slc] w} |x}{aj^o YSjpR_mkofVcmmrgrccYWQ[bYmkdt ~  | o  ~ srxwm\quwcm y }sx^qyqnvttz[y n    sf{z| t  p ni  prz  } zll  w z } }{^atnrlnyyhv    }ex`b&{  x |zz set}  v|sjngogqoX p eoo hZh s ] lg `][a^j XV b ] W \ YYO Q[ [ PDBJY/`+{|nvj|opf[XQQGFBA"DC)JF+JG'FC&EB'FE&DE'BF0FL?RZLZfU^kS[hS[hR[hP\fN]fK^fE_eBad?aa?dbBeaBd^Db]Gc]Mc^Lc_>]\,KL"@A(FG9UVF_aJ`eF\aJ`eHaeFaeDaeBad@ad=`d?_dDafC_f=_e5bf.eh*jn#prtt}{y | }|~ ~ ~~~~||$np3bfA_dC`eB_dB`eE_eN^eP^dI_dG`bK`bL_bQcdH]^Cab8WX)GHBDKJebyy  }~{|~~|~} ||uw``NPQS LMNPRS TWTVSUPROOYU]Xg`vn ||}yx { ||s Yh^ k^ iL#PRA:1/'4/*'#%&),/1110-,)&%%)*******,*******------------------------------------------------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------........................................................................................................------------------------................................................................................................................////////---------------/10,**-13/8+&*/KD jh   oylljZzv y  rkll u w }js { mr uen cPn zwp} gjy{mgkty`]n ~UQjn~ y t r krhdg z na__ptU_proix mzagv[{ dt |]a r YVa wnq  o  vaqeq~~^\tv^coorjXZsZamit_er uZ^mpm jbjx}xslpp dnq`Xgz    csourqwpj~dLUQlm {  eh} | | wn~  z u  z u{ xm {vknlbjugimvv}hWotlco| {n   w byhco Pwq{ x qr ~v|y|{ |ursn y ~}lqkr pn] c j Td gc [UYR[QKVTKQR C7:H J>=F`: {cu{x uwceQQTO*SN8VQC.EM@U]K]hL\hR\fR\fP\fN]fK]hG]hE^hC_fB^eC`eDbcFbbGb_Ha]Ja]H`^F``/KL&?A+DF7NPE\^LbgH^cIbfFaeC`d?`c;ac9`b7`c3`c3bf1fi/jl+qq%uvzy}z {{z~z~|~~~~~~~~~tv*im7afA^eD^dE_eG_eI_eI_dG`dG`bL_bN_bM_`LabGef3UU)HI'IIFHLMlnyz |}}~{~|lmRRRS QN PMNMPOQTTVSURTRRROSP[Wicuqzy| ~{~| lu?OeqnseiHe-AEB4-00."&$!*&&')*-//0/-,*)((******,,,,******,,,,,,,,,,,,,,,,,,,,,,,,------------------------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------,,,,,,,,--------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------------------------------------------................................................------------------------........--------........----------------................................................................................,,,,,,,,,,,,,,,.0/+)+.359*0&*0;t1c\ yoqp z }gc^Koyob[or`f _`| {z  stxr{v0.sPj wsbv~sw[^ps ntspv h PS mPET] x z | } w kr y w fi _kw{tanbtz_`ue~ ow&" rebBDonOS:Dlx{\|  pj vObuypo w x ~ {a zt} }yltrSYkVblnff~ ubugy| zgp iw lm|wy  vv l ~  z he  |wmepi}j {mx }    ! yxez Y]_i~|ka^Rlzomt|fvxvnu } vbt |}sQ[W^h QY\b|}m z{{~v jp`kur r ~ zgpkk_Y KT]AQbh [YbY_c\ b] LRWO DJXQ@Ic7 g } l{ J\$KZF\hQahM`cPegQhjLegD``=YY2QP+JI*FF,HH)EF%AB.IM=Z^Daf@]aEabEabG`dG_eG^fG]hI]hI\iK\iK[gK[gL]fL^eL_dJ^cJ_aJ_a7LN.CE/DF2GI?TVL`eJ`eE`dB_c?`c;ac9bd8fg7hj-kkrovqzw}z| } ~}~}~~~~yy~~}~}~}~}~~~~~~~~|~~ {{qr+fhA^eL]fL]fG^fB`e@adE`dK`bL`aN`aK_`KccIee4TS#II(JJ)BDDFVY ll~| ~{{||~|}|{egVUXPVMRMPNPRPUQVQVQTRTPRMNNNXYjj yzxy~{|~ume*p 8g$HU9:2*04/'#,,(#&-&**))*))))))++,,,++++++++++++))(),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,****************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,++++++++,,,,,,,,,,,,,,,,++++++++++++++++++++++++,,,,,,,,--------,,,,,,,,--------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------------------------------------------........------------------------................,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------------------......................./0/+)+/579)+%,.4FfPxtkhbp {mhfVltmfZcyv]RhfE@QIJ`gsghvdwTNh [6Mpihd_s~~ qr t bZhjgur \^~s okx{}mywqrji Zu   {_x~w ~ pftgmu_R life@CnwroTSda cy} cotSo} wzxopzY{  z xbam vmb|  z w |dg~k} }   w  } toe {u ^`~}~re s v wl~|  x{z   w lj{x p w   { ~_u | z  t | v }voPa}  elg l k UKMMh p[^ftY^YFZk]elValqagljrr ~jrnfPJBTbBQ g p`_n d] kd f ^FJSIAN\M:N!yYp ~ qz Xj&RiF[qW\kVWaW_fN\bFY^DZ_EabFedA`_9XU$CB+GG+GG'CC0LM?]^FcgA`aBbaBbaBabC`dE_eG^fI^fK]hO]iM[gNZfM\eN^eL^eK_dK_dL_b:OQ2GI.EG'@B/LP=^a@,IM CF^`xv }zz{z~{~~{ {{YWTMUKVPURSUQVPVOUPTRT SUSUSURURTTT xv ~|{{| d;^sbB6G4/ƹ/-)*&!'')+((,.-+++))(()(()+,./.,+++++++++++)))),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,****************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,++++++++,,,,,,,,,,,,,,,,++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------------------------------------------........------------------------................,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------------------......................./0/++,/35.6"$*$1CDO2 {m unj\4]XD\bE_mC\l@\cJcgK_dL_dL_dK_dG`dE`dCabCab?]^7ST)EF+DF0GINceH]_LacJ`eJ`eG`dG`dG`bG`bF_aF_aE\^F]_G^`IaaJacKccKbdIbdDcd/UWGIFHKLTUbdooxxy{|~ ~~~{tz"jr+biad>adBabCabG`bI`bL_bN_bO^aKZ]7HK3FI+@BLceC\^JacK^cM]cK^cJ^cH^cD_cD_cB_cC`dE`dD_cF_aH^cI`bK_dBad*^^YYYXbbpnvv}{ ~}}|z"pw&dj:acD``K`aL_bL_dI_dC`eA_d>\aKciJZ`:HN-@C)CC#HF"JH FFFH?BQRyw|z~~~ | {webRQQQUVSUPRPRQSRSSQSQRQRQRQRQPPSQ][nm |~}{o'_OS{I7'#03,*++((*+**++,,,,,,,,++++++++,,,,,,,,++++++++,,,,,,,,,,,,,,,,++++++++++++++++********++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,********++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------------------------------,,,,,,,,------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.......001w wq }  t]r p`UueY x yg[ z | t dfRRcSRceewdQR ~ [_sjqtwq ztl\Sbv z jftnnrlyryy~    { cg lv |^h { uzzud^  l |j t ^Fek\ u l SXNeb^zr_ xxov  ilhnxijSht^t cswtm  sq s { hcjU  keudzl{flbpjhq zew|    {l hy%&m |   y gu t{zxj zxk{   x e[f y zpjg{ou { oa { dbpx   q cbz{~{opu{~ggy| |}yuxtl{r`PSVk y m`\a_Yzzbjeaj ol f h ii\ Y b[Vjo^YaYX[WYU NQND]2 eyzaY-]WJceN^eH[hF^jA\`Ecd>bb>adBabEabI`bL_bP_bR^bU`dR^bCRU1DG*ACB^_A_`DbcG]bK^cK^cK^cK_dK_dJ`eHaeHbhCaf?_d:_c8ad6cf9fi1jk&tsurwv~ }{~~}~~~||}v|%in6bcD`aJ_aN_bO_eL`eE_eA_d?\aLeiEU[4CF0BC-EE#FB"KFFC%ML#BE?B^]}z ~}{~~~~~so_]TSQRQSQSQSQSQSRQRQRQRQRQQSPRPPULaYor|~{~x uk'dNZE4!!24*)10(&*+-+''*+++++++++++++++++++++++++++++++++++++++++++++++************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++))))))))********************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------/6Dr{t {  ]au yrOll^ } r[fiqtg qicoRV rh`rd]Zx v ljpxv} ssq[Vjrof{ z ynt ~ ty ~x uq vz om{ a ty~}}~ x u q x[r}j|nx~ ne t oot| ~z tw[w  q~wy|{  pd yz lW\Gmou u {mfqtl{ogl  ~}|yx ||tw~w}twz %inj|xy} ~# z ~{ }  b\k y spn_p { ghqh\ } qaks   { u nj   ~  gjx} }sluuqs zea\ s q eb``Vq u fnb_kk]Xce\QM b ^ Vik\ eo f b d c ij O LQ I wP pxppPPCabNadN^eFZeE[fMfhE][K`bL_bN_bN_bP_bP_bP_bN_bObeJ_aG^`&BC(FG3UU>bb?cc?beCbeF`fL_fQ^fS^fT]fQ^fJ]eB_f7dh,ik$pourzx|y} }|~z}{~{~}}~~~~}|~{ or3ceB_cJ^cM]cO_eM`eE`dB_cD_cJ`e>NT1@C2DE1GE%FB"GCFD$HH-IJ AD EFed~{~~~ } ~{po[[NPORRTQSQSQSRQRQRQRQRQQSPUSTVIUH__rz}}~w{ | v!f[SC*$14*)43($(-.+$$(+++++++++++++++++++++++++++++++++++++++++++++++************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------........-------./=C hr[_v wyg}nox} ^qqi }y ovy fk ~rcY } | nm vw  sn |qb| }{mihshhlhb^cpne_khfxxViys}z ~v~x m~ mp  s ylmY{pmgbno|x{lt` x~|ouxp ~qmf X xz} y  vsz v}|wnutkkxsccab_zxtt yixan    w}ys{lr x  ~x      \[ t  { ~ {]ot\aqnb z m Zgfuvmmrqn f xw }   y}x z y~qtodenh[o { jgfchbs z qtlp { v bW[VHC5RTERPGQ\VWVRY ^ RCBHbs{u[^'MQPchN^dL^eFZeD[cTijF[YN`aN_bP_bN_bN_bL_bL_bK`bKbdD]_Hde&BC+IJ,KL?^_@bb>ad>ad@`eA_dB_dB_dA^e;_e7el0jo(rtyz~} ~~}zx|z}~~}~~}~~} ~vz1fiCbeH^cK^cO_eM`eG`dB_cB_c?XZ7HK2AC3ED1GE&EB#FB$IG?>+GH-KL?AMNpm||~~| }{hgUVOQRSRTQSQSRQRQRQRQRQRSOUUVVJQCUPfiwz~m4_iQ9+0/,,01'%),.,#"'***********************************************))))))))))))))))))))))))************************************************++++++++********************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------,,,,,,,,++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++********++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------,,,,,,,,----------------,,,,,,,,,,,,,,,,--------,,,,,,,,----------------,5~6lxW]d s ri lwxz yzw{ }z}|tp db tmiiMA>]e_dsdit}qw{ xg| v[np`kpqSdirhikgsvrfdpzvei~ xO\jq{qgicl}{ uif ~p|v z_ ztkyur}}`x~{wuo~tv}   l`^y y qyugb lpyp x  rJUc[em~ } w "  uwr  {n| y  yjzrkhvx poba twx  |woF@\tpz|\ { } io y sboI;US_e`eWUXNUP[h`q u |{  t} x rl zpsg|qssens | zsyw }} vq sph^B] cS[WTRYRVUNT \ TI?U'jwvt LQ;U\R[dM_fF]eE\dH^dPbaL_\IaaEabG`bEabEabEabE`dE`dE`dD]aLbg1GL1EJ1EJATYI]bG]cB_d<`f5dh/hj%kknopozy ~{ }~}|~|{y~~~~|~-jl?dhD^dJ]dL^eM`gFaeA`c=\].LM/DF3EF1FD,DB'GB&HB*GD#@=%ED,KL)DHAEVWpo|~}  vwddTUOQSVQSQSQSQSRQRQRQRSPXPVTMUISHZSjl}~~|uq9buM7+',++)))*,-,#"'***********************************************))))))))))))))))))))))))********))))))))))))))))))))))))))))))))))))))))++++++++********************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,********************************************************++++++++++++++++************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------,,,,,,,,----------------,,,,,,,,----------------,,,,,,,,,,,,,,,,--------,,,,,,,,----------------/0CRxmi n op cn{jn xkurkh | {k |wnp sh{w jk t kmfNGRhgU\lZ^isqjcXohLc|oXrs _lw vX]e }szw z |vfgyzj^awvWaes qon_p}}|ck[Lch]qkb xZq v  us^htro  s { mus^riZsqb~ wfZZi_ho Z y i[lhW { fSOVnokl s ys  dh q  tww"    ysuv sc  z  {|iVi}v gtutj\kW=MH[jcbPV ecdW^fQj |h w^ex |ju{| s ng  {t { x{y_it y~ m^pkkmpqp rr lC\h\ b ` c b c Y\[QWa U Y IiCp {ttHML]fMT]LaiA^eA]dKafLZYTebEaa@bbBabBabCabCabE`dE`dD_cD_cE`d3NR'AG(EI1NS=]b8ad1dg.ik'oo wt|z}~}}|}z{}}~~}}}}~~ ~~}~(nn;fi@`eE]cK^eMafDae@bb6XX%ED(BB3HI.DB)A?'IC(JD)DA/JG#ED"DC/HJ"CFEG\[~{|~~{~|rpXXMOTVQSQSQSQSRQRQSQRSRZLTQP ZS VHPB_Xxx}~{{oOb|G/$)(%&)**,-,&%)***********************************************))))))))))))))))))))))))********))))))))))))))))))))))))))))))))))))))))************************************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,********************************************************++++++++++++++++************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------,,,,,,,,--------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------,,,,,,,,,*1>" u{ njz|uion]} y {fW }  l ~ wkj {p~npxvjV e|o q x]Zdom r vblk\v  {hl zua] ~ x t z |o wr~i m ai|dj   wte m d Ql } r Qg zuw ~nxz g` upktx kmez | \{p lZy WW z x j c ~ |bthvtjsvp}q   u`g  zf }  wq} {r|       up |[\p{` y } ldwl_ln voy~mdk ~ TQlZazyZY__{ gi } qT]|jV ~ y| yxa\ shi|o`c`_XnedmbXVUSOMG;MF9=@QM _ XS0y[u~z^`HMN[cOV_D`g@dj=]bI`bVbbN\[B`a=`c@adDaeHaeJ`eL_fL_fG_eEbg<_c+TWFJEFOQ]]!zw{y}z{ {}~~~~~~~~~~~~ ~~)tv1dg=ag@]bF\bJcg@_b8\\"HH#HF'FE+FC.FD*GD'HD&GC-HE-HE(GF&FE$FF!DG FHHIcd~|~||}|~| ikUVLNXYRTOQPRRQQPRPRSPVOWOWRQVIXFXIWQw|{z zzhZ[=%#&¹"(+)+,+(())))))))))))))))))))))))))))))))****************************************************************************************************************++++++++++++++++****************))))))))********))))))))********************************++++++++********++++++++++++++++++++++++++++++++++++++++++****++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,++++++++,,,,,,,,++++++++,,,,,,,,--------,,,,,,,,------------------------------------------------++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2$2<5 o}vehuwz|uiqzej}~t zx ig^z pp  sQ j }yovyXho~n| | bzxr jjxpjkfq w ef  zr |v ~kYc ~txtpv~~  yfh y i| |w~} sr~tewuntrqqrhq { j}ob  z mj } sg y xz {h  ~r`Phrz|   lw~cs  fhEYoWvpi{wmqytv  w }|nnkqcufu { w uycuhi{w ynr}cVuv w gs v u xt\`gdYnltq  gRxzt ys oqgh]nddgWPY a c d a [VfleXY _ PTVL6 }g}x{UV$GKKW]NZ`AafJSLJAVMI^f Ya=y{lsDD(GD6LJK`aFdi;^b@adCbeA^bHaeI\cG\dD^eAag;ej5io.nr'rt${}||}{ ~}~~~~~~~~~~~~~~~ %{{$bb-Z]3TW1JN.EG$CB'IH#JH!HF"DC%DC,FF2KM7ST:XYA_`D``GaaF``B^^<[Z7UV3RS&ILDF\[}z|~~}~|{~ ~noWWRRPQSTTSRQROTQRQQSOWOWRTTPUJ UIRI]Wvv|}}|w)ccQ4"(-'%'*,,,+********************************++++++++++++++++))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************++++++++********++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++********++++++++++++++++++++++++++++++++********++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,********************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,4#,1.f t z s icr }oqGTsWl^kp TqhNgmbWspaig`NXp} } a]\rz[pmv  ts p j v opcqikhhibhqtm ysk_euudv{ym`uzlqwop v ldj m\brz yuv| zjl k ZJ mz s lj^o u { lrx  z y p v}{ht}w{ kTp~ qlxid dXh m vz }rwqzyqafqrv mrrp_|z m   jwsW ^g}       v ~kcy {~tie`l  myfw z |m r faq xke j gp Xf x dT]^hm }} v xt~ v zrvrYYm oc`{  u| dpz z [fro k o e \ g laYJ[RLX\[qU ~{vgpFD&I?.JDD_\JcgD^dDcf?be5]b5bf3bf0dj/in,or&suxy{{}{ ~~~~}}}}}~~~~ *~YYEH"AD/CH5HK*DD&FE$IG"GE%ED,HH8OQCW\G]bHaeFaeGcdGcdJceObeNadHacCab;VZ(KOILbd{z }~ {{hgUVMMRSUTPOPMVSSPRQQSQTRTRSSOTLTLRLgh }|{~|r=`|C33.&#')+++*))))))))))))))))))))))))))))))))****************(((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))************************))))))))********))))))))********************************************************+++++++++++++++++++++++++++**+++++++++++++++++++++++++++****************************************++++++++************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------------------++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,++++++++++++++++++++++++++++++++*--&6>itw gXcvqkvIGaUlY`gZxqYz  u c  y j rv cjn{ fnyliji{cbxzw{}uxukv{pWjz ml_^]ddSirvrdx  yv { y~{j^b o o d^jutplmkol^QkoUx k[ZrukX^|ycmvv|qvnciv~dmrwzpoz_^q uytl   wz~  |{rt    } zi pyzjlwv    b {} qzbg r     d\brzutysljdgrtx {hnYl~tmx t^\w |f[EGV COchlk w z} r |  w  q xvl{q | hYp kf\cio s d u wX_l|{idf`\^ZX c b e e RX a YPFUy`~~u`iJC"H<(J?;WQJ]`M_fGbf&I?(D>BNNQ]aA^b2eg)vx~|{}}~~~{~~~~~~~~~~~~~~~~~ ~~ || yyuuNLC@EE(DE0BC9HJ0DE)AA,HH7SSH_aOchO_eN[cM]dN`gB\bC]cJ^cM]cN_bP_bT_cT_cO`cH^cHcg7Z^KO]]}y~~~~||zggSSNOUTVUONSQTPUMULRM PQPVPXNUUYPPUQqj }}|{}z x6f?.((**&%(((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))************************************************************************++++++++++++++++))))))))(((((((())))))))((((((((************************))))))))********))))))))))))))))************************+******+************************))))))))********************************))))))))********))))))))****************************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,************************++++++++++++++++++++++++*******************************,./((&6AK iYh z} neio {oni }l Op{s j y|_~qn[i}b`r {qty}qlsnw{ qf  r  ~ j  xv yqw ff mcz szq } lunRbjt r|  wznysu m ~{r~ }s\Yiisgtxa|t uo |g]q^s^id uz ^\ l YKx eXGw &"  l |l|  uovkov  ~y {uzuw}t  }^xe ~  ~ y ku q {       `] |  |y|trmy vm  ~wgn ~rlx`J{ |vztslukr{}  {  zon  |suy}  tqjqihY`g XZ`b r qkvmf^T]m kfj eY]`O@Y)tuy JKEC)D@*FF(C@2GD6QN'UV,rryu |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}}}}~~~~}}}~~~~~~~~~~~}{{} }}}yx ccMLII!HF&FE)EE-FH/FH,CE(AC5NPAZ\LbgKafJ^cL`eM`eG]bE`dE`dI_dL_dL_dL_dL_dL_dNafI\aK^cE`d/Z] NMvq{~~ zzhgRSSSXYONRQRQSPSPRPQQQSQTQSTTWTSOWRsm|wxz{~~tYL<+%,/*%(-))))))))********))))))))(((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))********************************))))))))********))))))))********************************++++++++++++++++++++++++********++++++++++++++++++++++++++++++++++++++++++++++++))))))))))))))))********************************************************************************************************++++++++********++++++++)******+********++++++++++++++++****************++++++++++++++++************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,++++++++,,,,,,,,++++++++,,,,,,,,---------+*+-2;ChK\u| vg my p}k HdjZ[|tfuz~_o yGFPLGRAgosv{ ~khatmrqmw pqw { jkn ~  tuzm | ncdjn{}~ly{ pxrqfs i} r lo`XX_gl_hp csp k  x!|~ _ j \]gi sY ma] n l_k o ^ E\lds tY pgv   ^ltua~ uq{zj[ik_od_nx k  {t  k j     v} v b  ozs|   @Clwpgq{ u zk]a |u | zijmqpq q[} xzrk hWkjwyxqrr y ldpj^vxtwu |w  } l j xjcaboebqmgVCN ee_ZQLXa[ Se8 w}|pm FE$FF/GG-DF(AC,EA(LFPO!qp{u{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}}}~~~~~~~~~||}}~~~ ~~zy tr&pp(ijUWACEE)HG'FE&ED+GH*FG*CE.GIbhB_d?RY2FK%AB*IH'FE%DC,HI(DE+DF8QSD]_IbdLbgH^cG]bJ`eMafI_dE`dE`dI_dK_dK_dI_dG`dG`dL`eL\bQ_ePdi;^a$ZZ]Yxr|~}} hhTUPQRSRQRQRQRQRQRQRQRQRPSQSPTPUQYTkf}x~}| ym=Z@+'&,0-)))))))))))))))))(((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************++++++++++++++++++++++++++++++++++++++++++++++++))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************))))))))************************************++++****************++++++++********++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,++++++++++++++++++++++++****************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,++)+,/5<~?Pcs  z pZot `czsjp`s o| qxy{km zg[ uf i gK^ j i`m vzt }~ry_\ |  g{ n\PZlxltly uvt }ni yqixzYesyvfs zm{}~rqy|y    ok  xte[hMe{ oU^y ~}kn j`izZ} {~}yz{|  lldhqto qen}w z   } gwscs p i ztov v   wzx  Vy~tt }        G 5 \l kjl Ycy}$x!jwvtyk t erpkwtp{ukzwtw fj v x y lax}y y pp z~` xtq ge |  xfijqcVJfjaMQtvcb[ k oVMUb pv p ib^_ Ud5r~zupKG#ED-BC,EG-FH)FCD? IIuu ~}~~~~~~}~|}}~|}}}|||}{~~~ ~~}}~}y|xyuysuprmn jl%hk)ch2bf9_d?]bK^eU`hSZcJT[*AC*IH&ED%DC+GH'CD-FHB[]HacIbdJ`eH^cH^cKafMafH^cE`dE`dI_dK_dK_dI_dE`dG`dL`eM]cR^dPch@_b0`aTQsn |~}|  tsZZPPSTSQRQRQRQRQRQRQRQPOUSSPROUQRN]Yztx~|z ~ {}k[M8)$-1+&(((((((())))))))((((((((''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))********************************************************(((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))************************))**********************++++++++****************++++++++++++++++************************++++++++++++++++++++++++++++++++++++++++********************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,+++.27?)g_frijOgcUWikinZh~ g} x }    kllierT` ldWk } msxu|}aSz i{z jZev  ~ nu{rtppeksiu[^ekmUmm]]b`sil n ~s  ~lx\ t mTNixjop{ hsy}{    smswm{ j _s_U|n[~qdu t n  ssx r v  to`       QIs wtt ^lqiv }p| } dj o q mpwwru{ |unrfgoqwhZrs hpj]JQYY`X`^^u {   p Z k miQLkkpofrrWRaXi q j`Y] gbm< szvpk HD$FE0EF+DH+GH(GDEBKLyy ~~~~~~~~~~~~~~~~~~~~~~}}~~~~~~~}{}{~|~|}{z~}|  ~~}|yxzy{{zzvvvwyz#xz!tv!ps%os$mq'in/cj4bi4bj3ah5ah5bf6`e8`e<`f>aeA_dB_dH`fKafK^cFZ_,HI*IH&ED&ED*FG'CD2KMG`bF_aG`bI_dH^cJ`eKafL`eH^cG`dG`dK_dK_dK_dG`dC`dE`dJ`eM]cP\bQ_eE^b*+(%%((((((((''''''''''''''''((((((((((((((((''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))(((((((((((((((())))))))))))))))))))))))))))))))(((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))(((((((())))))))))))))))))))))))(())))))))))))))********))))))))))))))))********))))))))))))))))****************************************************************))))))))))))))))))))))))))))))))****************************************************************++++++++*******+..,+)+,05?4 q { | x c~ l{ ~ udhfOX_hwv poop{   wv l sj\oulmx } oxgIhynl ~z jb\YutqlzttukV`eqkzqv[a|d}^iso~ w _ v mZrsqv eqregzleabpmx|yy~rl}~ttp xzhesff{{pvym   ~|  i enZ~ygq|    iwfqqguytuy  {"" lr{fZ t     lo|      v   XRkp{q|~eb skfnkpfT[caWbbeut {txus y iiiwf\ v g v  oxx { s{{qsifz vypkfkmoj`jkkX\ { pk^K\vj ]\QXi m\W^\Td0r{vpLF%ED,AB*CG&CG$EAGDPRy{~~~~~~~~~~~~~~~~~~~~~~~ ~ |~ {}z}z|~|~z }|!|y"zz${x'yz(xw$oq$nn'lo'jk(gk(eg&cg)bd0ce3df-]_OQDGCFCF?CDH3SXB`eHbhKagNahOahM_fLbhKagK`hL_fL_fK^eL^eL_dI]bJ^cI_dG`dE`dD`aCabEcd@_^(GF%DC,KJ'CD)EF=VXG`bG`bF_aI_dI_dI_dH^cJ^cI_dG`dI_dL_dL_dK_dG`dC`dBadD_cK_dR^dQ[bP^dF_c>adSS~|~|}{ ywb_TRTQSQRQRQRQRQRQRQSRPOSRTSRPSQURRNe_yv}}~}}s]N7( #'()))))))((((((((''''''''((((((((((((((((''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))''''''''(((((((())))))))))))))))))))))))))))))))(((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************++++++++********(((())))(((((((())))))))))))))))((((((((********))))))))))))))))****************************************************************))))))))))))))))))))))))))))))))****************))))))))))))))))))))))))********))))))))********++++++++*******+..+*((*+*:Zgjnibtbihh v t mem c SWP^ bo~ rswz  || ck { qdehuaik s w!!Wfy vh{v^f^` } vo ~zw~|lx  {fhnMjuT[ed y c y |igy |  anycg  wx vq| jevxx~hapqunt{ wu { iav y qvuguso{|ss}lo{syf_}nju} n mu _k^i| u""    } c   ~   z|   a d yonr{{yw]_tll}~yx ~  qfhkry ryvpz { nj\gr` s`q{loy z~ n xqms w | sxkcLaeW7@mi_]U g{ kZX` ] lr bd rl bn9 u}xpj HB&FE1FG-FJ&CG$EAIF QTy{~~~~~~~~~~~~ ~ ~ ~ ~|||| | |~|~|}|||z{xy!vx"uw$sv'rt'jk)ii*gi+gg,eg+cd,ad.ac2bf5be7af9be;af`f>ae@adBcf=\_.MP%DG&CG*EI,EI7MRG[`QdiR`fO[aQ[bV^eS_eH^dB_dD^dF^dH^dJ]dK^cK^cM`eM`eL`eI_dG^`D]_D`aFdeGfe'FE$CB.ML%AB)EF@Y[E^`IbdHacJ`eI_dH^cG]bJ^cKafI_dI_dL_dN^dL_dI_dC`dBadB]aL`eT`fQ[bT`fI\aIfjIJ}|~|z}{|fcUSTQSQRQRQRQRQRQRQ UTLKQP WVQPQOUSSPUPpl~}~~1`hH-#())))))))((((((((''''''''((((((((((((((((''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))****************************************************************++++++++********((((()))(((((((((((((((())))))))((((((((********))))))))))))))))****************************************************************))))))))))))))))))))))))))))))))****************))))))))))))))))))))))))********))))))))***********************+--,)'&&).15'x umvmkbgocf\i\TT@LGYmbeln jz~} twujrw{r^iacZXkZg z samm fwhaqsi^y  |~|l ysy| lsrRrfhojz `m zg`jooq mu kVrjUVifh~x t \v q zgi ozxk\r|wgLVci{w{  m zi gv|spv ~r!!}o e~mkk\fwWj|bq urzt{~ghgz  lt yjr     afs {   ook  ~{rtorhccsuoqqviopqkkunfk y lslcoxgnv ~lq xr{ UloW ~ }goxj[Mf u r Xesv^ m RMdaVK c \uz[`vh_k6l ~pj JD'GF,AB'@D)DH&EBIF]`z}}{~~~~~~~~}~~~~~~~}|~{}}~}}|{~~|~{}z}x}~{{ ||~|~|~|}|}|||&yz*xw*xw(ts'oo(nn"cdPQOQLOHKEI3]b9_d=_e>`f>aeae>ad@`e@adB`eC`dE_eE`dG_eI_dI_eI_dK^eI_dG`dD`aB^_>Z[$@A'CD*FG(DE6OQI`bK`bJ_aM`cM^aPadI^`>ad;bdadBadE`dI_dK_dL_bL_bL_bL_bL_bK`bK`bI`bD``3RQ!@?*IH*FG(DEAZ\IbdG`bG`bI_dI_dI_dI_dK_dI_dI_dI_dN^dN^dL_dI_dC`dBad@]aNdiLZ`R\cV`gO_eF_cMNwv}{~~}~}| }wsQOTQSQRQRQRQRQRQRQRQRQRQRQRQRQRQSQTQ\Zutz}x }}{} v5Y0#&#''''((((((((((((''''''''''''''''''''''''''''''''''''''''&&&&&&&&''''''''((((((((((((((((''''''''((((((((''''''''((((((((''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))(((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))****************))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))************************************************((((((((''''''''(((((((((((((((((((((((((((((((())))))))(((((((((((((((())))))))(((((((())))))))))))))))))))))))))))))))))))))))***************************************************************************************************************,..-*('''+38w4 ~vm vuqxsxx v lkb h Xm |okTnvr ~ qb ~ | xlvbg[^ o [_ecbw ]o"'p  t xhjtvgrsz ko\YlggsmprtvWptuhtys\gi_argu#{|  pmgd]a l ]ek o aWim l`b`\Sf ygt ruov  k ^z xz  _~} t z` beq Zq  ~n v p xqixal jY q{  |s     w    V` s | ~ ugouafm  }ttgnume|vq   o`kuar~w t vpjhx }dU\[fRdaGbdlg| wYo}bs  nz_Y o o_MOCMXOINITf3k |nh IC&HG0EF-FJ*EI.KH/WU(gkuy ~~~~~~~~~~~~~~~~~~~~}}}}|}~}}}|}}}~}~~~~~|z|x}  ~{ }~ zw~|~}z~~|zzzyuvuurt pqlojlgk#fi/ef3cd5ef3cd3ab6bc/XZFH%HK'HK'DH)DHG]bJ^cL_dM`eK_dI_dI_dI_dI_dK_dK_dK_dK_dL_dL_dL_dL_dL_dL_dL_dI`bF_aD]_AZ\%AB(DE*FG(DE4PQFbcG`bF_aHacH_aKbdD`a@adadBadC`dG`dI_dK_dL_bL_bL_bL_bK`bK`bI`bG`bD``2QP"A@*IH*FG(DE?XZHacG`bG`bI_dI_dI_dI_dK_dI_dG`dI_dN^dP^dN^dK_dC`dBad@_bKdhL\bR^dQ]cN^dI_dMNwv~|~~}~}| }yuURTQSQRQRQRQRQRQRQRQRQRQRQRQRQRQRQQRTSgc~uzx | }{}k`@.,%''''''''''''''''&&&&&&&&''''''''''''''''''''''''''''''''&&&&&&&&''''''''((((((((((((((((''''''''((((((((''''''''((((((((''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))(((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))(((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))************************************************((((((((''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))(((((((())))))))))))))))))))))))))))))))))))))))***************************************************************************************************************,..-+('''#0#D}vo  xph s fuyruU^kcdtkXoknjm} {  p } hf]bwhkhdmtNVs pa wv jvqs | ~ `e xqt }nlrv m xot  ~ k| | jh v mbvts u} w wlej^m|i[ejrjo w |jt  x zulp q a r t~py}}zh |  ` y }l son y x!}|z     x{  gv zwy ygikhFJV[dhgvpbcmux } uvr`u obptpxwbot^nzwqot kc]i |gipnpn vzh{ y ~tbq|Z m z kduhc t{ o _NGEP`f edTm: s ~nh IC%GF/DE.GK2KO>VT@ba4kn#ru{| ~~~~   ~~~~   }}}~}vutssokiee+kl-jn,gi/gl.eh/ag3cg7cj;ch=bj?ag@_hA^eB]gB^e>]`>]^>``=__<^^<``7YY%GG#EE$FF&EF'FGDbcDbcFbcHacI_dI_dI_dI_dI_dG`dG`dG`dG`dG`dG`dG`dE`dE`dE`dE`dG`bI`bF_aC\^'CD'EF(FG%DE2QRDcdCbcA`aBabB`aEcdD`aK_dL_dN^dN^dN^dN^dN^dN^dL_dK_dI_dG`dEabCabBabBabBa`1PO#BA*IH*FG(DE=VXF_aG`bG`bI_dI_dI_dI_dK_dI_dE`dG`dL_dP^dP^dL_dE`dBadBadGbfM`eQ_eLZ`L_dG`dKLxw|~~}}{ ~|wYVTQRQRQRQRQRQRQRQRQRQRQRQRQRQRQQSNTOQYRpcv{ }y ||}~t8VlC3))'''''''''''''''''''''''((((((((((((((((((((((((((((((((''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))(((((((())))))))''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))(((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))************************))))))))****************++++++++********++++++++++++++++++++++++++++++++++++++++))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************,,,**)&&'$+=L~ q x   |ly k }  sou]mjm | t[kfhaZjs | wyoghwu lW`q pXx }z lwxiibwquz|iloam w }z o|uj{ wez{fbegW^k]]{`s   {soujwxiswio| ~  yrttx~ pk } {hoqhz r k      n zf{mg~orsv y~qeyzx_ar{rg`{}j}q    jajyih _a i o |  "~o gv w v    |w[l{nt}{ ~w ~ w htyjpjjpcunob]sbnw u jnfm frvd`qccX>K`aC^p[X o s fcif[b`TKW lqf S rB w oj JE"GE+CC0FK@WYNcaGaa6cg-ot{|}}~~~~~~~~}{}{~|~|~|}}}~~  } |~ {} z|z{y|xy wyvx uw!tu!st$rq lkffbbXWJIGG JH DE&VX6_b;af;`d>`f>^c>[bC`eD[cG]cJ]eN^eQ]gT_gU_iS`hPadMbcNcdKccGaaGcc>]\,KJ#CB%ED'GF'IHBdcBdcBbaCabI_dK_dL_dK_dK_dI_dI_dG`dG`dG`dG`dE`dE`dC`dC`dE`dH_aI`bI`bE^`)EF*FG(FG%CD1PQCbcCbcA`aBab@_`EcdG`bP^dS]dS]dS]dR^dR^dP^dN^dL_dI_dI_dE`dCabBabBabBabDcb0ON%DC(GF(DE)EF:SUF_aG`bG`bI_dI_dI_dI_dK_dI_dC`dE`dL_dP^dP^dN^dG`dC`dCbeB_cMafNafK[aMafA^bHIzy}~~}{  ~y]ZTQRQRQRQRQRQRQRQRQRQRQRQRQRQRQRSOVRWSJaR |n{ }y|}}~~wgFVA4,'''&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))********************************************************))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))*,,,,*''-ȿ9-=)wo}c rrmvnyzp|uafU]pptwXitx |fx| t^b`j} v x  sogjixvi z [q  ~ ]n|nbXq |mmlo{w {{ zlz jt|ruckz|tn  k} vr dvw zhh t ^s{ ~      tmquoqqnogcfov{]^ka}p\os~ | eU ~     bvri   u{|p  |k{j^vp]{s |  {yz }r}  f_]_mvptk] O^^Ymj ~  u~st}}bt}jm{ ~ z y }  {lz } t | mmnn| }pktvlt `aZXdTOga`SBNekSqq\q vhoqho f _QI[l ^Ln?q~zpk MH GE-EE9PRI^`WedK`^;^b1hm&vw{{~~~~~~~~}~ }~}}|zzz{{{{|||||}} }~{{y|z{yxvwvxxww vv!tu!st!qr"oq!np'lo2fl9el8dk9ch8bg9af:`e;`dDgkAbe=^a3RU'EF&DE+IJ*IJ1TW9`b?dh=ceAdh@cfAafGfiDafDaeE_eE`dG_eH^cH^dJ^cQ`cP_bQ`cN_bI^`Jac@Y[/HJ'CD'EF(FG)HIDcdDcdA`aC_`L_dP^dR^dP^dP^dN^dN^dL_dL_dL_dL_dK_dK_dI_dI_dK_dJ^cK_dK_dG]b-CH-FJ-FJ)BF1LPE`dHaeG`dG`dE^bKafK_dN^dR^dP^dP^dN^dN^dL_dL_dK_dK_dK_dK_dI_dI_dI_dI`bGcc/NM&ED'FE&BC)EF7PRF_aG`bG`bI_dI_dI_dI_dK_dG`dBadC`dL_dP^dR^dP^dI_dC`dDcf?\`HaeMafJ`eIdh9Z]KK|z}~~~z  {_\TQRQRQRQRQRQRQRQRQRQRQRQRQRQRQQTNVW\TKSGkc~x |~~~x~v%iYR@0(((((((((((((((&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((((((((((((((((((((((((((''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))(((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))********))))))))))))))))))))))))))))))))))))))))(((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))++++)('(-08_#c r e ERPKTRbg^kz } qzot  hv   | dtyu{jfSUpooickituxoa mSiwdy {oc { ue v oo}z } x qkxupvkrz}so{  jqz z mWfh o {f``Pc^_d~} {    { oyhrz} w{ }  g | ttwuqbOkmbWOPgtv |    k h n       _v{       *y maWa f\\WMCSWNWUc xsvlpvzj ~ jgp tdehrki |p ~ yq xrb[cbljdz wwsq ~s { w n{ o d ~ x laMWf kUosaj}p{ ~ u m\] _ TYigM oAs}|so LGFD/IIH_aI\_U`^UcbE_e1_f)lo!{| }}~~  ~~~}}} } }~~}}||{zzzzyx$wu mjca^\[YZY`_)gg,hh/gh0fg2eg3df4df3ce9beA]dG\dH]eH^dJ]dJ]dJ]dJ^cK^cK^aL]`CUV4FG1CB4FG1EF9RT@]aC`dA^bB_cA^b?\`E`dGbfFaeFaeE`dE`dD_cC^bG]bJ]bN]`N^dK^aI]bKbdE[`2KM+DH*FG*EI+GHFaeFbcD_cF_cL_dN^dP^dN^dN^dN^dL_dL_dL_dL_dL_dK_dK_dK_dK_dK_dK_dI_dI_dG]b+DH-FJ-FJ*CG0IME^bI_dI_dK_dH\aMafK^cL_dL_dL_dK_dK_dI_dI_dG`dI_dI_dK_dK_dL_dL_dN^dL_dHac,KJ'FE'FE&BC)EF2KMAZ\G`bG`bI_dI_dI_dI_dK_dG`dBadBadK_dR^dS]dP^dK_dE`dCbe>]`E`dG`dJcgBad-SUTT~|~~~z ~ {`]TQRQRQRQRQRQRQRQRQRQRQRQRQRQRQRSNTV[ TPOG[X sp }{{|~v6bbM5''''(((''''''''%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((''''''''((((((((''''''''''''''''''''''''&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))(((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((()+,,+)%,&15:q x _L ]\ORYk s jhn v lv sz   is } {`osgklpVSmqyeY^^{ yy s z zqw   pyydVtqPpvcbkZUOak_kppskvw{vlr{}dehjgWTFOjdZh` wxvutfh_klbXS { ~ {   u ]nrritsl t hywbZp r { qdqw|xz `{oSeeye  z       88;1x(kQH{ .[*X'X-g.r jhp_jy uzrxwki } | f_agTPNUG?^w qxnlrochliihgo{{wmjjf{s u m a ~ z gi U[beUj zy bb {djmg m_UY\VRUN pD vuqJGED6PPLceL]`U]\XcaMaf9_d*egqr ||~~~}}{| z| {}|}{z{yzyyxww!ww#uv)tv$kn*jn,im/gl/fk2dj3ci3cg4hh$[XMJFDDBFE(RQ7]]<``@_`C_`F_aH_aJ_aJ_aJ^cL_fL_fJ`fJ`eKafKafLbgJceF_aGaaGcc>[X.KH'E@(EB)A?EVYR^bRadP_bQ`cN_bL]`M`cL_bK`bK`bI`bJacHacHacHaeG`dF_cH`fHaeF`fJeiE_e6OS,DJ,EI-CI.DIK^eL`eL^eL`eG`dE`dG`dG`dG`dG`dG`dG`dG`dG`dG`dG`dG`dG`dG`dG`dE`dC`dB_c@]a&CG(EI+FJ(CG*EIB[_I_dI_dK_dI\aM`eK^cI_dG`dE`dC`dC`dBadBadBadC`eE_eG_eI_eK^eL^eN^eL_dB[]'FE(GF(GF'CD)EF,EG;TVG`bG`bI_dI_dI_dI_dK_dG`d@adBadK_dR^dU]dR^dL_dE`dBad@_bFaeC^bEbf9Z]#LN!cb}~~~z ~ ~z`]TQRQRQRQRQRQSQSQSQSQSQSQRQRQRQRSRTQV PT PPQPcayx~{ ~ }}yq=[:&&''(()''''''''%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''&&&&&&&&''''''''&&&&&&&&''''''''''''''''''''''''''''''''''''''''&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((''''''''''''''''''''''''''''''''''''''''''''''''((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((''''''''((((((((''''''''))))))))))))))))))))))))(((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))***************************************************************(%%(+,,+*'*++ï8:H%zxq} qo{  {k^bLJI_} jlog{f py~fhwsr cZHd p ijn}pp jocjxsqbmwpf~ ezzjg|pskvj`hlg_nlqswz ~ tyrh rbh{|leyyosktn]UI o luyj sn iibl xlo w a]koxfssx}ez r r v  ~ s xby  {  ~ ov|vr{{    qvtg~~ i     znm(*.(')$.;BA@:k*\$c19z #jgfpowv^bvu fb ent g i~tXW]nmeoho wr y~z ~ ~  k_w wnfYvtbrdfa[HT_d\_ diu yu u _ Xn lZYEj;n}rsEG"FFBZZE__JbbQa`N]_J]eEbk9ch#`byz{}|~}~~}~}~}{}wyssornomqlo"il(ij(gk)fh*di,cf0bh2ae8bi 6 2 - , ) $|t o&zq wzqjkru z   |  zqy  zr vs}~vh_bfe`L|g z z afd]UU]_ZOi/u~hoLX";?La_Cc^>c_B`eC^hE\kI\iL^eE`d7dh0gl4kp6mr5np3ln/hj-fh/fi*_bJMDFFJ"OR5_d:cf<`f>ae>`f>ae@`f@`e@`fB`eC_fC`eC_fE_eE_fG_eG^fG`dIcc@[X0JJ-EE)AA.FFDYZH]^MabMabO`cN_bM^aM^aN_bO`cL_dK_dK_dK_dK`bI`bI`bIaaKeeE__IdaB_\.LG%C>)GB*EB9NOLabMbdF[]LacOdfJ_aH_aI`bI`bI_dI_dI_dI_dI_dI_dF_cD]_HaeFbcC^bIef@]a'EF(EI&BC'BF/KL^iE]iK^fP^dP_bF^dB_fC`gDahBbgAaf@`e?_dDbg?]b-JN(CG-FJ9OTI_dJ`eK^eI_eK^eI_eK^eI_eI_eI_eI_eG_eG_eG_eG_eG_eG_eG`dLddF^^3KK,DD*BB-EE=UUE]]J_aH_aK`bI`bK`bI`bK`bK_dK_dK_dK_dK_dK_dK`bI`bIaaJbbG__HbbA\Y.IF(C?,GD*EB4NNG`bJceC\^G`bIbdF_aHacI_dG`dI_dI_dI_dI_dK^eK_dK_dK`bI`bH_aG`bKdf?[\+GH)EF)EF(DE*FG7PRD]_KbdK`bM`eM`eM`eM`eL_dL_dK_dK_dI_dI_dG`dHaeHaeIbfFaeHaeJacKbdE\^5NP+DF(DE(FG(FG'EF,JK6TUC_`FbcD`aF_aJcgE_eE_eD^dD^dF^dG_eG_eI_eJ`fObiM`gI\cL^ePbiJ\c?RY)EF'FE'EF'FE)EF)EF+DF+DF0FKAVXOchPchI\aGZ_L\bQ_eQ\`O^aH_aBad;ac:`b>\aDZ`JT^U^hRaj9V_LR UW mm~|}~| }}~suVWRSRQRQRQRQRQRQRQRQRQRQRQRQRQRQRQTSPOQPSRROOKWTe` }y{~ uAb:$#$'%#! !'*+*('''''''&&&&&&&&''''''''''''''''&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((((((((((&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((((((((((''''''''''''''''''''''''((((((((''''''''))))))))(((((((())))))))(((((((((((((((())))))))(((((((((((((((())))))))(((((((((((((((((((((((((((((((((((((((((((((((())))))))(((((((())))))))(((((((((((((((((((((((((((((((((((((((())))))))))))))))(((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))****************))))))))********()))**+2m x}qrw yd h z iw [YWfj\go[x erz^I^ronekXf { yrf qoWh`~wZhp wvjhty{ }zztptrup}   }ga~gu} j pjruyu ~ ~ y |q^gw ubp sc~{   s  }o ~j{~mroxmro | zv uvnes v~|t|~|   ~ pxj x   z%%%%%%%%&&&&&&&&$$&&&(****+++)))&&'(,,+)2-*,0/0/<:632468565z0q)l%l%g%W`#^ W[UJJUUOBz 9o3h/d(_#^ I^!e_"m(v.~'w+y-x-u1u6x8w1s0z(=fr!| CP4GOU]dI^fB_h@_hB_fI`bIaaGaaEabC`eC`eA_d@^c>^c?_d@ad@adAbe@_b/LP(CG*FG8QSHacG`bI_dG`dI_dG`dI_dG`dG`dG`dG`dG`dG`dE`dE`dE`dE`dE`dEcdDbc-KL%CD'EF&DE3QRA_`C^bA^bD_cC`dFaeDaeE`dF^dK^eL^eL^eL^eK^eK_dK_dK`bF]_IaaJbb>VV+EE)DA-GG+EE4KMF\aLbgH^cH^cI_dH^cKafK^eI_eK^eK^eK^eK^eL]fL^eN^dRbhL_dI\aNbgMaf=SX0FK,BG0FK.DI*@E4HMEY^ObgL_dK_dK_dL`eL`eMafL`eJ^cI]bI]bK_dL`eMafMafL`eL`eJ`eHacFbc?3OOD`aKdfG`bC\^G^`I`bJ]`J_`EaaCbc@ddCeeIdhMchL\cRelCaf!PTPPgc~y~~~{y hjVWRSRQRQRQRQRQRQRQRQRQRQRQRQRQRQRQSRQPPORQSPROSPWRtp}x~}v0eaK:+#)*$""""$)*'&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((((((((((&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''((((((((((((((((''''''''''''''''''''''''((((((((''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))''''''''((((((((((((((((''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))(((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))(())***/f,xwsx r WX_V]LEC`eXaeJdkS]`ZSh e]hOYa^wlieXgi `espykn }x}xiimi{uywvylb`kr lumcv ss f  } t{pvm~uri z qp | u  lwnq|`yx_Ze _   ~it y}xv z~r zx}}u{zg  v]d vkvid{tg{   u         vj{o   |  %%%%%%%%%%%%%%%###$&'(**,,*)&%$!(('((''&)))()..-../-.-.-410--,,+*0-',*'+&,.-/3567z,3}/w*y,x*}0v*w+y*v)x*{-z,t*k+RBbu U])GLS_eK]hE]iB_hC`eKb^Kb]Bba@adEbfF`fE_eB_dB_dBadCbeDcfBad@_b.KO&AE'CD5NPG`bG`bG`dG`dG`dG`dI_dG`dI_dG`dI_dG`dG`dG`dG`dG`dG`dE`dA_`Bab*IJ"AB)HI%DE0MQB_cDaeC`dB_cC`dDaeDaeC`eD^dI^fK^fK^eK^eK^eI_eI_dI_dF\aIbdG`b7QQ(DD(DD+GG*CE.GK>W[KafJcgI_dH^cH^dKagK^eK^eK^eK^eK^fL]fL]fL^eK]dRejL_dH\aPdiH^c6LQ-FJ*CG.GK-FJ)BF.DI:PUH\aLbgF_cC^bC^bF_cHaeJ`eI_dH^cI_dJ`eMafL`eK_dJ^cJ^cI`bGcd>\]0OP%DE#BC(GH(GH$BC(FG&BC,EG;TVK`bLacK^aJ]`L_bL_bL_bL_bL_bK^aK^aK^aJ]`L_bK^aI\_L_bL_b?RU*BB)FC&GC&GC&GC&GC&GC'FE'FE%DC*IH3RQ=\[DbcGefGcdF_aOdeMbcF``A]]@\]A]^F\aH^cMci?\a*UXWWgd xrz}~~~{y ~\^TURSRQRQRQRQRQRQRQRQRQRQRQRQRQRQRQPOQPQPQPTQVSURSOc`up~~} xi<^dP6(+.'$#"")*'&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''&&&&&&&&''''''''&&&&&&&&''''''''''''''''''''''''''''''''%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))**)))((,89 xsewkloruob\s{ n w y\rv ]hd`PY prucsoalqq]SZZ^Zi y wizd`z}ol l n { ~s{uuuiQYh`g ~ ker } yY   o mukssjTa y ofkrol_Xalw ec { dbeu pfdc kRpn um }  quopyiY[jz v  jl$|{  w }}  ybq~t     } nt_ov}dy  %%%%%%%%%%%%%%%#"#&'()('&%$#$""#%%&''&)($#&&$(),,-++)(&''*+--(*(%')*..0/,**-,,..&'(""$###$&''.z>3`y| mqFDF^\K^eI]hC^hC`dNb]Lc[CabBadG`dI_dI_dG`dG`dG`dE`dEabEabA]^.JK'@B(AC4KMG__KccI`bI`bI`bI`bK`bI`bK`bI`bK`bK`bK`bK`bK`bK`bK`bI`bB^_A_`)FJ$AE.IM(CG.IM?Z^JcgIbfG_eF^dH^dI_eI_eJ`fI^fI^fI^fG^fG_eG_eG_eE`dC^bHde@^_/MN&DE&DE'EF'EF(CG4NTE]cIciH`fF^dG_eG_eI^fI^fI^fI^fI^fK^fK^fK^eD\bIdhFaeB_cFcg:Y\)HK&EH$EH$EH'FI(GJ%DG(GJ6SWEdgAcc@bb?aaA`aBabCabCabCabFbcFbcHacG`bI`bI`bI`bHacBab2TS%GF#ED$FE#ED#ED&FE(GF(DD+EE1KKAVWK`aNbcI^_H``GaaEaaEaaEaaEaaBa`Ba`A`_Ba`CcbEed>`_3UT(JI%ED)FC+FC+FC+FC)FC)FC)FC)FC,HH'FE'FE0ON<[ZCbaEdcHbbN_bQ]aO^aM^aM^aM`cMafIbf:W\)OSRSdbxt|{{~~~~}~| wxVVRSRSRQRQRQRQRQRQRQRQRQRQRQRQRQRQRQPNSQSRQPROURUSSPTRie|y~z ~tq=esD0//,(#!&)&%%%%%%%&&&&&&&&%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((((((((((((((((((((((((((&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((''''''''((((((((((((((((((((((((((((((((((((((((''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))***)))(+0v2 zz vnl uk w ~f  q} zoQO| jg fw  ~ yh _k cui u yp{|qe[fu |w fyvxtp}x`gsbiv^`sy   Y td jk   { ~ znf\_losoXV ub[ b}v\MrkVjfvy\}  ~ s rmjolw hi    p sb{wt{yp|}p~z~g|zs   dhn    ~  $$$$$$$$$$$$$$$"  """$%##""! !!"#"""#$"%#%%)('&%%$%%%(('%$###$$$%&&&$###"#$&'%â-)!#'$!!! !#$%+8H_xww~~ OF3[PIaaI_e@_h@`eLa_N`_I_dG_eH^cK_dL`eJ`eJ`eHaeG`bD`aFbc>Z[,HI'CD)BD/HJB\\JddG`bI`bI`bI`bI`bI`bI`bI`bK`bK`bK`bK`bL_bK`bL_bK`bF_a?[\*FG(DE/HL'@B,EI6OSJ`eJ`eJ`eK_dI\cI]bL^eM`gI_eG_eG^fG_eE_eE_eE_eC`dC`dDcd8WX*IJ&EF$FF$CD&EF%BF,GK;U[F`fE_eD^dH`fE]cG_eG^fI^fI^fI^fI^fI^fI_eB]aDaeEbfCbe<]`0QT"EH CF!GIDF#FI&IL"EHAD+LO<]`AccBddDcdDcdBabB`aCabDbcFbcEabF_aG`bHacKbdKbdHac;ZY,LK#CB'GF)IH$DC#CB)HG(GF*FF)CC*BB5JKCXYL`aMabG__F``G`bFbbFbcEaaCabBa`Dcd@baAcc?db5YY$KICC$FE)EE+EE-EE+EE+EE)EE)EE)EE(FG&DE%DE(GH-LM0RR:YZB`aF\aK^cMafLbgIbfC`d;^b2]` VW `akjtq}w|}x~~~~} yyhjTTRRRSRQRQRQRQRQRQRQRQRQRQRQRQRQRQRQRPTRSRQPPMRORQSPNM_\rp|}~|} tWQ;2./,%!&)&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&%%%%%%%%&&&&&&&&%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&&&&&&&&&&&&&&&&''''''''''''''''&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))(((())*+5>,x  xzvsuppkd]if wm  ru x xik   d` _m k h u kt kwnj v t`LZ p]eeTlv pkx cdriy |msltv  q { mfkntyzt~ mxx }u~mkzk { ~  vmmvj y oivU }{ |fwx{k yv   ZXzx[jtqsxwrto {h ~      } ~  _gslf~}    {  $$$$$$$$$$$$$$$"#!""#"$$''&&$""!%&&%#""#%#$## $&%$$$%%$$$&'(('%$')%"%"(''''&$$$'! "  #7Z\+txw dV#WFCeZCb_7af9`iI^fP\fR]eP]eL`eJacJacIbdIbdFbcFbcDbcBa`7VU&FE'GF'GF&FE8XWEdcEabG`bG`bG`bG`bG`bG`bG`bI`bI`bI`bI`bK`bI`bK`bI`bGaa;UU)CC,FF/FH)AA.EG0GIEZ\I^`LacNadK^cJ]`M]cM`eI_dG`dE_eE`dE`dE`dC`dCabB`a?^_0OP#ED&HG"GE BA&HH&EF#AB0MQ?\`@]aC`dHcgC^bE`dE_eG_eG_eG_eG_eG_eG_eE`dB`aEcdBab2TT&HH"FF!EE#GG!EE"FF$HH"FF DD&HH0OP>Z[D]_IbdJceHacH_aI`bJacI`bH_aG^`I`bKbdLacG\^CXZ5LN.EG)BD+DF-FH+DF*CE,EG-FH-DF,CE-BD/DF5HKARUIZ]M\_N]`O]cO`cO_eM`cL`eK`bJ`eD]_?X\7ST.KO&EF%BF&DE)EF)EF+DF)EF)EF'EF&EF&EF$EH#DG"EH!GI FH GI'MO-TV5[_5[_3\_.[^'Z]WYVVTSmizw~ |z||~y~~~~~~~| ~nlWWTUQRRSRQRQRQRQRQRQRQRQRQRQRQRQRQRQSQVSTQRPRQSPROPORPROVTcbwt | x6^hH3,0." "%'%$$$$$$$%%%%%%%%$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&%%%%%%%%&&&&&&&&%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''&&&&&&&&''''''''''''''''&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((''''''''((((((((((((((((((((((((((((((((((((((((''''''''((((((((''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))((((((((''(()))*#-_'hvp xyvqqxnNVQbq]srukr sptob~t k fl wv\`j_kn}ln[Wt } vctrWbhSafv wwuq}|ci zo hycxjvx|{yqiulPgnq yvqkopzwv]W\`\r a] ush|cs ut yox\zr Ts{Yhr{zzco rif~  s mn  ^~|{  y  jkzq{ke v |  ~ |      $$$$$$$$$$$$$$$$  !#######$""!!"$$" ##" #$""% "$$$#""! !##!%#&'!"#"!"$%$!"#!&% #"!""6mU=iu |xmTE^kK[lP[iR]eP^dL_bI`bH_aH_aH_aF_aG`bEabA]]2QP$CB)IH(HG#CB3SRBa`G`bG`bI`bG`bI`bI`bI`bI`bK`bK`bK`bK`bK`bK`bK`bI`bE__3PM$@@*GD-GG'B?.HH+EE?,HI2-($#$&&&%%%%%%%%&&&&&&&&&&&&&&&&%%%%%%%%&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&%%%%%%%%&&&&&&&&&&&&&&&&%%%%%%%%&&&&&&&&%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''&&&&&&&&((((((((((((((((((((((((''''''''''''''''((((((((((((((((((((((((((((((((((((((((((((((((&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((((((((((((((((((((((((((((((((((''''''''''''''''''''''''''''''''''''''''''''''''&&&&&&&&((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((+*;n!U^`sapy s s l] |mlznqv v  oXlR\{tmdj {|m_assy~g]ZJOCUc`aUKdqv}   }u~_eph  wpv|slskg|upX ~ut~u w g}}u} y u mz qeywc zka wiurm[jn}  } qy qpQRSQq`w"hyuuxp{zv}x{ jw r g{s t z{{ s$$$$$$$$$$$$$$$$%%&&&&&&%%%$$$$$%%%%%$$$%$%$$$$$$$%$%$%$%$%$%$%%$$$$$$$#$$$"$"$$%%%%%%$$$$%%%%%&$-7jD-\ s uKR4Z_O`iUXfSThS^lFhg-JG;VSC^[Fa^Fa^Fa^Ia_QcdQ`bQ`bRacSbdOabI[ZBWU9OM0FD)A?,DB-HE+FC(EB-HE+EE,DD+CC*DD/GG5OO?YYF_aHacIbdKbdKbdJacE^`E\^D[]G\^AVW6MO/GG)BD'CC&DE%ED(GH(HG'FG&FE%DE$DC$BC$BC$>D)@H,FM3MT8T[=Za?_e>bh<`f8`e2\a*W["OSIMGKFJEIEIEIGJGJIK JL KLPQ RRTTWWZZ]]__``cfdjhmkpnspuqvrv!x|x|x|y|z}z}z}{~~}}|}} |~ |~ | }} ~ ~~~~~}~|~||yvkiZZQSRU SW RURQRQRQRQRQRQRQRQRQRQRQRQRQRQRQSQSQSQSQRQSPSPSPSPQPUSRRVTig{x~~zv)dpH8*$&&&&'''%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&%%%%%%%%&&&&&&&&&&&&&&&&%%%%%%%%&&&&&&&&%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((((((((((((((((((((((((((&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&&&&&&&&''''''''''''''''''''''''''''''''''''''''&&&&&&&&((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((()-3+I3mi qpwm_yqhtq | mhd_r k y Y\ |r^Jbh^jd o{ y~nlwchtz } k_ xn]e{|pnuxcn|~shw `[ehwsqfl uiail_skruXvxdaprin ~uk ilhp}t { ~r  ks{ mp }r |zils }zjm{WTS=SiTe{qXy  }  o    }              x$$$$$$$$$$$$$$$$%%'''''''%%%%%%%%''''%%%%$%$$$$$$$%$%$%$%$%$%$%%%%%%%%%$%%%$%$%%&&&&&&&&&&&&&&&&$&%2LLg}tZh6Q[X_hbdoNZ`5\T:h\DfeA`c@]aDaeHeiEbf8WX.MN)KK&HH$HH'KK%KK HG HF%LJ6XX>]`DaeEdgDaeA`cCbeEdgHgjEdgCbeEdgCdg?`c6WZ0OP*GD+FB+FC+FC,GD,GD+FC*EB)CC,FF4LL^c>_b=]b>_b?_d>ad=`d3Y[(MQ"EH&FE'FC&ED&ED&ED%ED$DC$DC'FG$CD#BC&EF-LM5TU;Z[=\]Abe?`c=^a;\_7YY.RR"HH@@GFFEGFJIKIHFIGKIDEGHIJIIGGFFGIIKHIJKNOQRSTRSOROQVWXVXX[Y^]b_cbeakimimkplqotp"us wt |}|{~z}z}y|y{y{y{{||}~~~~  zy|z}{}    }|yvtrjh^\VVZ[[]TWQS TVSRSRSRSRRQRQRQRQRQRQRQRQRQRQRQRQQSRSRQSQTPSPSPSPTQPMSQTQQOb` {x ||{|ynD^zJ*'*##'(&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((+#22CI~lguey | vafyppynim TMu} bp QKl w aJTm x oJ9IWVZYh { k xzo^ p p _[mol|| vlh^px t \g }z uvyyzcvxz }{t t|  y npnd\{xwx~{q wz|}h|yf|x  yifw  xzrir~zonupyoVwsr ~~Vv  lq ewz~   """"""""""""""""&&&&$$$#$##"######$#$$$$$$$$$$$$########################$$$$%%%%%%%%''''''''%%%%'!7sK6bt~t|ytdc W\1Z]hC)"!"$%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&(&%%%(,25*lXpvTitvq ~o~soh`^YmtUhoUnnbujLa v kt  qlj^| sq z skrzyjzo}i_ }uq s}  wtwqiPafgdmf~ x  omx mmb ~ vrv i |mtuxit nhmcbw abpqe^}xX`x gZxrWf{ r} z   {q{ v  vhv  v q{   i           !!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#######%()))(&#!!!'/w9eHcVYdIo5x" ~|wzxywxvuuttssrrrpqoqopnomommlmlnoonmmnkmjlikijhmomolplnkoknkoknimjminlolqnqnsorhmimhnjn kq mq ms nr io in ho in gn hm gnimllmlmlmlllllllllppoonomnmnlmklkljkklklklkllmlmlmlmlmlmlmlmlmlmlmknknknnpvx  } y{uwrtmnlmkljkjkklmnmnlmlmlmlmlmlmlmlmkmkmkmkmkmkmkmkmkmkmkmkmkmkmkmkmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmkmkmkmkmkmkmkmkmjljlikgjfidgcfbebeadab_`^_]^\]\]Y[XZWXVWUVTUSTQS PT PSPRQRRPSQSPSPPNXXPOTTTTVTrq~|vu z|~|?g?%!!%%! ########################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''&&&&&&&&&&&&&&&&''''''''''''''''%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%''%$$%*.n)+yisz  qregR^jWr {paij_^hvtYtpa v d[`hU\QZnTI;;Y^[rmar |  ruov}uteek {aqkfotfv vv | ^ouvrmt{uzhihTba_sdb{xzxu^n]ru[ tv {sv|{[ wl {yxrdsiiywu{ygzk  v{ zz{go~`   }  !!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""%()+*(('''%(&#! "$*.5]DD{J.tOpTp_odohnkmnmnmnln kpim hiigjemfqgsimcnengnjlmknkplp kn ll ll ll llllllml po sr srrpqosq ustrtqtqtqtqtqtqtqtqspspspspspspspspqrqrqrqrqrqrqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrprprtv }~   qsoqknilhkilknloprnplnkmlnnpmojllnknknknknknknlmlklklklklklklklklklklklklklklklkljljljljljljljljmkmkmkljljljljljlmkljkijhgfeddddccccbaa`a`__^^^^ZZXXVVWWWXUXSVPVTZNSNR\_ps{ zy{}zjLS=(%(&%#"""""""""""""""""""""""""""""""""""""""########################$$$$$$$$$$$$$$$$$$$$$$$$########$$$$$$$$########$$$$$$$$################$$$$$$$$$$$$$$$$$$$$$$$$########################$$$$$$$$%%%%%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&########$$$$$$$$$$$$$$$$########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%$$$$$$$$$$$$$$$$%%%%%%%%$$$$$$$$$$$$$$$$%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%&&&&&&&&$$$$$$$$%%%%%%%%%%%%%%%%&&&&&&&&))'&##"#!//&q@bz x z sgp{o w x Yn | gW } ~ x kltt y  ~`z x{tcyau`qy~ z}| } vPd_`tTgt`mz}tecr  xuxx ormRMq\\n sn]d{h^xkq s tX     y_^wxy  y wiwywhs} kop gL`^Tp|rqw  k nq_ ~ ~{  ymp  m || ~ { {""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""###############################$'(*(('$!!$''&$#! "'*.5{=gCUK?zM1wS"qVmZ j_jdjh ljlininioiogofoendtlrkmiijhkglfnfnil jjjjjjjjjjjjkj qp ts ut trsqtrustrururururururururururururururururssssssssssssssssssssssssssssssssrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrqsrtwy ~ ~ ~ }~ ~ z|uwprknilililknknknknknlomploknknknknknknknknkmlklklklklklklkkjkjkjkjkjkjkjljmknknknknknknknknknkmkmkmkljljljoooomnlmklkijiihhhggffecbb`__^^]``]]ZZWYVXUZUZUZMQWZgi tu }~{z|r,^kD0%!%('$!!!!!!!""""""""""""""""""""""""""""""""################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$########################$$$$$$$$%%%%%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%########################################################$$$$$$$$$$$$$$$$################$$$$$$$$########$$$$$$$$%%%%%%%%$$$$$$$$$$$$$$$$%%%%%%%%$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&%%%%%%%%&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%&&&&&&&&$$$$$$$$%%%%%%%%%%%%%%%%&&&&&&&'')''$###"(0@4| ~v mg_qior|tzwx rfx zk_vuqkcifYc} t`~ | g z w kt\jtk]kuwq| {gsnex\ntxv\Tez  { mbtbckXLg TWt }z~k  xv| vW nIuz g^qn ~|v w {w }xs|gs  mjm||u }{~^y z xm|qfszvhmy{u}      y  togts"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#')'&%""" "#%&&$$#!!#&'()),.27w=fBU~EDwK8rO2oS!nYl`neohpkpmnnmolnmojmiljmmooq qpponmnmnmomomomomomrpwtxuvsurvsvstqvsvsvsvsvsvsvsvsvsvsvsvsvsvsvsvsttttttttttttttttuuvuuuvuuuvuvuuussssssssssssssssssssssssssssssssrtuv{|   } y{tvoqlnilkoko lpkojnimimjnkokokokokokokolonnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnllllllllllllllllmmmmmmmmmmmmmmmmjmilililhkijgigifhfhegeecfccbbabZ\ \^ ^` ]b \aZ`Y_Y^X\gj yy }}~v!fSQ5'%! $()$"""""""################################################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$########################$$$$$$$$$$$$$$$$$$$$$$$$########################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%&&&&&&&&%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&%%%%%%%%&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%&&&&&&&&%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&(&&%#"#%22j"ugpnkhir m {uomY[} sc_xz glqj v kwx q t m q r ot |ggvgTh spns{q p|| k^jrrnmn`Yu}v } h r _ajortw| g zvm| | j! [rov{kaqjo{{{vbtjnf}g rj~yv ]   i    n  n| x              !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"""""""""""""""""""""""""""""""#%%%#""#" "#%&&')'&%%#""$$" (/7>{CmEc~FL{J)xQwWsY q\ mckilolsgrhsiriqjniiidgbjikikikikikikilirovsxuwtvswtwturwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtuuuuuuuuuuuuvuvuwvwvwvwvwvwvwvvvuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuutuyz~     }~  ~y{tvprlp jnimkokojnimjnimjmjmjmjmjmjmjmjmlljmlljmlljmlljmlljmlljmlljmklknlmknlmknlmknlmknlmlomnlomnlolompmpmpmpmpmplpmogkhjgifhdgcfbecc]a^b]aZ`X]W\Y]\_ wyyz~|~~{{{ypdCVvC* '% "'($"""""""########################################################""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""################################################################$$$$$$$$$$$$$$$$################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&(((&%#$&#')3<N_jXcgn hb}|{vntv V^tmcixo||XMdrUAMQQX`|aRg~yn`quoo | zsmyss{ mqrn} y u v x{ ggoxsy|u_m| ~ vo"u {s| t | { | lt{~{} pps | |w bywgxw c  qr           ~        y  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$&+++))(&%&%#""" $*04658w:i?ZCI|J5uR#o]jfhnfsfxhziw jpjklhnillmnmnmnmnmnmnmnoptt wwvvvvwwwwvvwwwwwwwwwwwwwwwwwwwwwwwwxwxwxwxwxwxwxwxwxwxwxwxwwvwvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvw||  ~}~}~}~  }~ z|psjnhkknmpmpknknmpnpnpnpnpnpnpmpko joip joip joip jo ho in ho in ho in ho inhnimhnimhnimhnimgmhlgmhlgmimhninglglhmhmhmhmhnim lr mq kohlfjdhbfbdehcf`c^caejnwz }||}|xuj[}K%zTxaugoikimmkmkmkmkmkmkmkmuwyzz{xywxyzyzyzxzxzxzxzxzxzyzyzyzyzyzyzyzyzyzyzzyzyzyzyyyyyyyyyyy yy yy yy yy yy yy yyxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyx|| ~~ ~ z|vxsuqsqssttvxy{| }~  ~~~~~~ ~~}}yyutxw~}{z|z|z|z|z|z|z}z~~~~~~~~  }{ yy#qCebQ7'!-1'$'#!!!!!!!""""""""""""""""""""""""""""""""!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""!!!!!!!!""""""""!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""################################################################################################$$$$$$$$""""""""################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%$$$$$$$$%%%%%%%%%%%%%%%%$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$%%%%%%%%$$$$$$$#!!&(*+(&( $!#-2uug]jv hm  nz tf  dft t VVv } ne  pzvnvywp}odm y t Y r xts t  ~rcWXuwjgq \Swcpas w x  q~  zxz|{p }q|nlr} sxtt # rs vuo o   y}  uuy  Sw   kg  } z x   }y  n{`q yzw !$%((*('%$#!!! !!""""""$%%$#$""#" &0s@eXUqE~.~v}y vw~|}}yy|{~}~}zzyxyzy|w}y|z{y{z{y{z{z{z{{|{|{|{|{|{|{|{|zyzyzyzyzyzyyyyyzzzzzzzz zz zz zz zzyyzyyyzyyyzyyyzyyyzyyyzyyyzyyyzy}} }}  }~xzsunpjlgilnlnlnmomomoopoptuvwyz|}  %$$"""   ~s#m5hAbPYjOA,  +.'$'$!!!!!!!""""""""""""""""""""""""""""""""!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""################################################################################################$$$$$$$$""""""""################""""""""########################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%$$$$$$$$%%%%%%%%%%%%%%%%$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&%%%%%%%%$$$$$$$$########%%%%%%%%$$$$$$$$##&'**('%%!#3'-n7  v fk`a yvv |vnq opmz tlrubSdfxfrx|~ ~n | dHL^i]Jmsqjrqt{q _Zyei|bQ  ahm]]_hT]hmgrq ksx ~{ hf |s {{niw{ x}zcz ~xs}u~y{~ww k   vf emqzqu~y      ~ ~  j~  !!!!!!!! !!!!!!!! !!!!!!!! !!!!!!!!!!##$$$$###!!!!  !!!!!!  !!!!(.3y7tC|Utq^G;1% " yv{}|{ v u y{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|z{z{z{z{{|{||}   }|ssmmllmmnnnnllllmmmmmmmmmmmmmmmmmmmmmmmmmmlntvtwwzz{zz}&+++((()'**)(&%###!#""#!#)+)))'%%%%#! !#%&(&&(')'**+)%%',9;447B_Yu?///-&! !&'$#$# !###############################!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""!!!!!!!!""""""""""""""""""""""""!!!!!!!!""""""""""""""""""""""""########""""""""################""""""""########################################################################################$$$$$$$$########$$$$$$$$################""""""""########$$$$$$$$$$$$$$$$################$$$$$$$$$$$$$$$$########$$$$$$$$$$$$$$$$################$$$$$$$$########$$$$$$$$$$$$$$$$%%%%%%%%$$$$$$$$########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&'''&&$$$&&'(.I p {TO`^XVXgnekgiferuun^ t r ^GP@c udpjfco ~ utkwUvpzz|ysl}}~~ zZ  z w` } { tlkpn   to  srtz}xruknqy|odlw  {az  u ~ w w v}}  zyS  {r~q z y  zz    ~     !    "" "&((*.=hQSZLYEe?}?B=* ~tzz ~}ww z|}|}|}|}|}|}|}|}|}|}|}|}|}|}|}|}|}|}|}|}|}|}|}|}|}|}|}|}|}|}|}|}|}|}|}|}|}|}|}{|{|{|{|{|{||}}} zyqqmmllmmmmmmllllllmmmmmmmmmmmmmmlmlmlmlmmnmnlnjnkonplkihokyu~xx| !%),-02589~:}=z>x>t=r;sCaX>_jv u |yzz |~~~~~~~~~~~~~~~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~|}|}|}|}}~}~ zyutoommmmnnmmmmmmmmmmmmmmmmmmmmmmmmlmlmlmlmlmlmnqknknprpplkjgmiqkqirjsitjujvkwf{b,|]1}]6[=YGWPSYNaIiDp>x;~8533233300///0...//11112456878888884.-551+&&.254-'  """""""""""""""""""""""""""""""""""""""""""""""!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""################""""""""""""""""########""""""""""""""""""""""""########################################################""""""""########################################################################$$$$$$$$################$$$$$$$$########$$$$$$$$$$$$$$$$$$$$$$$$################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&-j$iolS wo} uit{ uwry~{ qus xR| ut zqi   qy tr~ Wd nV osludW| uUnzer xbm{]s   rq   s lvgb^ceXYbizv{x^dzwry {~   vyxlSp~~|nYrzxyjj|y{|  x w{| z  |      {vpkvy    ""  !#(+,# $$+>]P0iv |t ||| z |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  utsroonnoooooonnnnnnnnnnmmmmmmmmmmmmlmlmlmlmlmlmmpilhklmoooopmqnnininingngnenenbmZnW nV&pT-rQ5tL>uFGx@R{=\~8e5n2x10//2222/.,*&$!! !!#$%%!!$"!#&$  """"""""""""""""""""""""""""""""""""""""""""""" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""!!!!!!!!""""""""""""""""!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""################################################""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""################################################$$$$$$$$$$$$$$$$########################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&>My s^\_bee]lv sunrsquox vgnkUXDj trm} nc[q  r{  y r |jlwhu zj u}lz sY|| Nd]\]flU\ iU n ~    {{wtm {~ }{ x`y}hk xw s|{ ws qtuiNp~x|gVjltovpxhdu||xq    }t      p    ~ ""  !!"%$!#),,3>pR4q~ || } ~  strsqrqrqsqsqsproqoqoqnpnpnpnpmomomolnlnlnlnknjmmnjlhjjkjkjhkimkljmiminjnjoioiplmnmnlnmmljmgme mcobp`q_ r\$r[)sY*sY.tV6wW>_   |~y{z|z|{}{}{}|~|~|~|~}~|~}~|~|~|~|~}|~|~|~{}{}z|z|{z|yzyzxywxvwwvwtutustrsprqrpqnpmnlnlnmllkmkljljljljmjmjnkojojmmirguguguhthtiriririqjqjojojojokn lj mh mh mhmhljmjmjliolligg pp}}zz knUZRWLRGOGROV]ZgS@UnE1! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""########""""""""########################################################################""""""""""""""""""""""""""""""""""""""""########################################( $(.;C}{b }yk|  yvjkfferm]q   lnfxqXkx~ww qp zo xeswe\bygnnlu } y {~ tozu aegslq ~sz } lf l   imnj c  { { xpjUL |qq oo vx   ycqw    s ~u w   m|           ###y6MX   |~y{{}{}{}|~|~~~~~~~}}}|~|~}~|}}|{||{zzyyyyyywxwxvwuvtuststqtovnxmwmultlrlrkojnkmkmklklljljljknknknknknknknlmlmlmlmmkmkmkmkmkkmkmkmkmlmknlnkomqlrkqow u} r{bkSXPKSNTVQ] L`H_G[JPi\K~XI/ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""################""""""""################################################################################!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""################""""""""""""""""""""""""""""""""""""""""""""""""########""""""""########""""""""%$#!((z2=oXx|ttgx  }  |} slmwueg ss espryov w uukvy dgs}ruqtmlkenxnsry dc{ne }lcd  zvqvqgf |rv~ w{lt w ~ x}ygz      w  y}t wv        !&$! +_L"|   |~y{{}{}{}|~~~~~}~{}||{{{{z{yzyzxywxwxwwvxtzsyryqxpwpuntorlplpmoknknknlmlmmkmkmkmkmkmkmkmkmkmkmkmkmkmkmklmknknknknlnkokolokqgmnv z t|_gS[WZ`Y]VVWOW IYI\OcSbTX+o^iS:# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""!!!!!!!!"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!!!!!!!!!!!!!!!!"""""""""""""""""""""""""""""""""""""""""""""""""""""""" !%&):l'3y m mlf_jdmk| sg^^\L;]lhj}mk{pgo|}fow wu ehp~| aenyw}q{~xm`gsftmsVQneehuzncck s_akYfu  | mj{ }{sq}|r zj\_     r w   l    v      xt "#&%  v?.s    |~y{{}{}|}}~~~~}}|{|{|{|z{{zzyzyzy{u{uytxswruqsprrqqproqoqmqlplplomknjnjnjmkmklmlmlmlmknknknknjokokokolnlnlnmmmmmmkkno wuxwkjZYYWb`YTYUXXWXWTVTUYV\PVbZEzSsC,!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""!!!!!!!!"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""!!!!!!!!""""""""!!!!!!!!""""""""!!!!!!!!""""""""""""""""""""""""!!!!!!!!!!!!!!!!"""""""""""""""""""""""""""""""""""""""""""""""""""""""")$!"0+/b#ptnhj}uvnqriWQ\ZD^pYS[Rhsm xns  `^t`lo m _[lbs yfw  w{ qs{x{y   t n s  {cbr]l wx q_hpn{uutspagvnnrkz y ro}~|p`r q         u  }  "%%"5Kg         |~y{z|{}{}}~}~}}}}|~|~||||||}{v~t}s{syqxrvqvrtstsqsqsosnrmsmqmmmkmkmkmkmklmlmknknknknknknjojojoknlnlnmmmmmmnknl|y|zje[W]Wa[^X]\\]]^]Z^S]RYVYZSY\W*qV`O5!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""!!!!!!!!"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""!!!!!!!!""""""""!!!!!!!!""""""""!!!!!!!!""""""""""""""""!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""!!!!!!!!""""""""!!!!!!!!%" %!&09V z|vy { x{y fZn xcuin} y {slyliw }\Y uclimlfegvem  bp v} {y su"! x ~    sYIHclh{ mi tat | t~~lp  wry}vfrwkt{ u ~nz  pz l`ns        ~      z     ~ "%% -tQIp     ~ ~ ~ ~ ~}}z|{}||}}}}~~~~~~~~~|~~}~}}|}}{~y}x|z{y{yyxyxxxwwuvtustrsqtprprppppoonnmmllllklklkllmlmlmlmkmeg nrnqhjlmqpnmii uvuu mm^]YX_[a]\X]]]^^^^\_Y^Y]\\]\]ZVgXKZ9!%  !!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!   !!!!!!!! !!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!! !!!!!!!! !!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""########################################################!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""!!!!!!!!""""""""!!!!!!!!""""""""!!!!!!!!""""""""""""""""################""!!!!!"%$/Qy~ | Xks{| mTx az f{ v~~hxoN^Z}herp }  sqhj^^ ~  fz~~bnut~z d[yno# | {~ obg{sr  {^z   m xz{  h~ |oxj|{shsm^Pg z~ spyv     {ygXhcYIxn}         "%&%Ĉ+Bc_/y    ~xzy{z|{}|~}~}~~~~~}~}}|||{{{{yyyyxxwwuvtutustrtqsqsprppoonnnnmmlmmkmkmkmkmklkjllnknkmnolmmlpp{}ppabXZXXYY]Z_\]]]^]`_^_[`\^^]_\\[Wd\>_z<$&  !!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!    !!!!!!!! !!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""########################################################!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""!!!!!!!!""""""""!!!!!!!!""""""""!!!!!!!!""""""""""""""""""""""""""""""""!!! !!(2=   s[y w   dh^pyrxsgy }jt`u w r{ y   k\lg xg jryyrpzpY]z \Rwvqs| os | z   sa}zqjvxxtmjXywp~ z}u~ _y  s{ zwrpy  |w  ~w}nl|{i~   q| yv{tz }}s}~y{|w} #&%"&6qKMc.|   ~}}|{{|{|{{{|}}|}  ~~~~||||{{zzyyxxwwvwtvtvsurtqsprqqppnnnnmmmmmkmkmkmk oqhlilnponjimm xxxwbbTUVVYYVVXU_\Z[Z\\_]]`Z_Z^_]_]]\Y b\;|\v<$%  !!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!  !!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""########!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"""""""""""""""""""""""""!!! !!!+$!s0&q nonX ovaep}}~a $hs { t } }l| }lwjz~qv{oto| }u kd ztkinor ynem} wWa }ZC^^Xinsukaj{bao|fmxyyxtrnmp\rsf x~Wx u   ~} | p ~z   snjy ~         }  wu!$$"!)6gEI\5##   }}}~~~~}~{z~y}y{|   ~~}}}}{{{{zzyyxyxywxvwuvsussssppoooooonlnlmklmorililnpllkkrrxyccSTMMUVZ[TUTQXVVWWXXYZZ\W]XZ\[_\^\Y^X4wXt<%%      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"""""""""""""""""""""""""""""""""""""""""""""""""""""""" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"""""""""""""""""""!!!!!&%'1g&iz u\do_\v ~oMlvPx s { w ~ {j{pVeozgYnsbc\hkn_r zZ[uk[SXbp[Z]^qjgW_or\\ziP^^^q} rbako\Ugqpjo }qvuvzrzuqoptnxh  z }Qs n   xv^i[a~u }{             "$"!"#*r;daKy0           }~|}{z|zz{~~| ~}|~{}{}z|y|yzxywxvwuvuvtsrrrrqqppppoooompjmnplnjjrr wu onRRNOMNRSUVSTSQRQSRSTUVWVYTZUXZW\Z\ZZZU/rUr>&&"   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""########""""""""########""""""""########""""""""###########################!! ',/3_"u yrua }iInu Lln\nu}yjt mw qaq t q xftlYveesaj^Yh t aelz ~  vm hnngu vs}}lY|sxxww zn  ~  [w   "}   {|  } }~rdx kg{~~u|qv        !! %9lSJn4$    ~ ~    yy{}{|~~ }}|~}}||{{zzyyyywvwvvuuttsrrqqqqmomoprmmjj wuvu]]NOPPOPLNLNOQQPPOPPRQRTTTVRWSVXUZVXXXUR)nSp?(&"     !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""########""""""""""""""""###"" #"'$ 06uu {[z tYwyWtqalmxtgdqolpx|db[l wQapXwr { q~}y~i qrw  xvz  { dz x ogN} mxv    ~v\mjr~upzqQ`nzyqxwq}}x~~ym|     tz }| {    !-sGTe+    ~  |xz~}|~{}||{{zzzzxywxuvtutstsstoprrppmnxw ooMLLLLMKMJIIKKMMOLONNNNNQQQSOTPQTRWRWUWQQ%jOoA*$"    !!!!!!!! !!!!!!!! !!!!!!!!    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""!!!!!!!!""""""""!!!!!!!!""""""""!!!!!!!!########""""""""""""""""###"" å/$'1'v'%|jmksmY u   { ` ljYuwnriu xpmtmnq{ }wgwVa {[oyjy sp|zn_eQXiPK<\jja] y } w}x|lcvzd v{ ~rv~vfgnhf ~||p~|dgt}los|w  u   s~z|         ~      &mAIe/      ~|y{}}}~~~~}||||{{yyxxwwvuutxxnorqssqoww ihBBGHEDEEHHILHKHKJMJKKKMNMNOLOLNQMSOTSUOO$hOqA*#"    !!!!!!!! !!!!!!!! !!!!!!!!    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""!!!!!!!!""""""""!!!!!!!!""""""""!!!!!!!!########""""""""""""""""%%##"" "+!&#.l5uxr`\Rjpx xvagkmvuozz y t {  p  tybhw `ox q  vn}zqptLkv [ x~su[n}c_wwrb]ko]Hfv {hr|xz{zq|vc} {}  } lr|  vm  }fuzmu   w         !! '~9gQJq4   "#  ||{||||}} zv}qux } ~~~||{{zzyyyysu||vusszywwHHJHFEEEEEEEEEEEDGDGFGGHHJJILIMJKOKQLOORPP_FqA()"         !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""%%##"""""""""##'80kj]oe_denwrgmz z s^eYbtn yr w     wx z r{}p}Zgl Okp]  }Wp nk]p  wvsjUJplytu~ ~~ z rk`| kz |  y ~~~q z  v     ~y  qwqyi  }r |    y  #" " %5rNUd>+$ ~~}| |{zzx*s7iD^KVLYA^-ir {  ~~}}||{|{yzzzyzssedHFIFFDFDEEEEDEDEDGDECEEDFHGFHFIGGKGKIMKMMK^Dq>&(!      !!!!!!!!   !!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""$""!!!!!!!!!!"%$A)x }mWdrcn ww|tr up yiu{bao  | {| } u oy ~znsmSUp|sa uu\~xeZq y  n r ~u i\y{|im_jt~}vugw}griquhh`a|    em}ppc x }f|wt ws| xusb~ ~zg}s | u qx} #" "####"!!-8qQ[`JoBzB;+  |yxwt)o4hF`_SuG:238iGMT.bnv| ~~~zy~~uuMMGFGEEDFCEDEDDEDECGDEBDCCCFFEGCFCDGCHFJFHHE"_Cr;$&   !!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!! !!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""!!!!!!!!!!!$&.s5!vw ph  rxxm tz  joxZS_sfgh\\dnfkric{}syz  |dw { e ~ ww^w{ |]LZlOSiTh i Uvvztcjbcaxuom tyywt || hXvx{fMeaQiYRx  z x}y     ~    !!"#$&&%%!!)y0k;eEgQ`[UdFo<442.)$   $).z2u6p;laC_E\OW^LpA7+""-x9\HDT._jx~} xvuuB@GEDCFCFCEDEDDEDECGCGCEDEDGEEFCFCDGDGEHCCEA(dFu8## !!!!!!!!!!!!!!!!!!!!!!!!  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !")wW iq pjv r  uw  yiZ]qlVZl Yhw xw }} wo ~~~    z_iun_Ps xx}iP^x`^ }{   v [x } r_ mw uentvj  zp#mt jn^|     z  ~j  } {    "##%$#"#!",6@vMkSlXk^iefhbj[mYqTqPqLpJoJmHmFrBz@B@???=8{8{7{6z3y3y2x5x;vAuCrHnLiTdZ_bXfOmHuC{>:63384+""*3u>YL6amq w~~|z`aCAHFEBFCFCEDEDEEEEDGCGDFEFEHEEFCFCDECGDHBAF@2kLx7#    !!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !&'(32g `\]TQgthhw  xPTrp_blqT;G tx ~ w {~ vh|q`bay]j  { _r|xmc t[ uyeuxqgvu]xv#}e iov  }y z  jw     }{ %# x vxmv~o|jt ~|yw {   s} !! !"""|"z&|&~(,259};x=o:k:g:f:d9d7d7`:`E^J^J\J[JZJZJZJbS`S_R]R]RZQZQ^PaIcEgDi@n>t9z510+($ #!#*5fGKS[I?V&amv~ zxEEHGDCECFAFAFCEDEEEECHDGCGDEDGEEFCECCECG EGCA MFI{[6  !!!!!!!! !!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!     ,~C po u u fQSm ~m z ~  l adq adsxo `gxr}| nrr} ~ wo~ {nKatsnkn ~mv ~| m }~ xdo {lgdj}zfVS\ZJLiprmtx]vptp gx             z }zz   `pxv} v!""! "   "##"#*3k?RJ8W&bo y~vuDDFEA@HEFCFCFCEDEEEEDGDGEDDEDHFHGDGBFDEEEECA PFQ]2  !!!!!!!! !!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!    +*P2nd m u{ u[UqvAX {ur|{d V[ m SFOjOh | qo`gplt r mLeXv nI]x xt nnw~ {fy  rv{rfjn|{ y y s kq  f} w  pmxu thl{{v| n}v|{~t |~~{yw z  upw  {|    "(/p9XD@W'cpz``IJDDHHDCFDFDEDEDDEDEDEEDGAFDCKCKEDG@I=H>JDB<[PRV&"     !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!  #0h'/kputkZ t mzXX o wyzruhNZa[HOcU_iXeq`NypM j p wg  ~}~a ps  qxrcs yqbsh\nsx xx {{rsrydu~ x s |lhukKm uLXmYtl} ll   uap}|yw~   ~rys  mq}u ~ !(0qH=B>L@;oQiD%    !!!!!!!! !!!!!!!! !!!!!!!!!!(0Zl y y efsx~kgnlrwnux} nh z q{ ttz g ~  fQco{]u x| l}}{}}jl  mJPxufx lk xpjxz }~p       r  y |pu d g  wx  ~  u   w t   ~~}%}0}~S)`n~ ~~ vvHICGDGCDDDFDFDEDEDDEDEDEDEDDDDDEDHBLALBGDDEA$bJmC)&  "#"""$44sz qbp }ss  rz%{z} s {ikPkxwz  { wz fw | wtysu|  vos } wn} { f o rXgmk riR[y Nw lLmq~ vw&$eyzkfatt`eqoml {v  wwf kt   r    y  vw|pzu|    ~  ! +n:VHCH"_Qo|D*  ##! +3N^ u~} x| ~!~w ub h ib zo yng[OWjeh{{q  x`h gOXbbYdtm`w |z x ~ fr|rp^q|~~ysnm^t w   l yif {myo| k   k      yQg  }         ~~~~~~~~}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~!~!~~"-n~>T|L<|Y#zf |u|{}||{{z{}|}DFFJAEFGABFDFDEDEDDEDEEEEEFDGG@EGH OHA6JBFxZ~7! !!! !"&5}%;sq~fmll xl}pi us  }zjp |h yw   |s {gLcT\hmYn~nUXwgoandYql`}_s}z ~ x ~  }v{r~n{p   y {~m x~   etwyoz   }            }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~""(|5kz@RyL8z]%zd|h~lpuw{}}|}CEGK@DFGCDFDFDEDEDDEDEEEEEHFEEBEEFH? J:#_GbS) $! #$~&={ svlc_s| bUz| d[gdm~  u~  l}vyy tnoq i {h tl { u s {of  }  { ty   }  nw {zynw{  m  n~nep{~}xo}| ~     ||||||||||||||||||||||||||||||||}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~}~  }${+z6q{?S}H2S`lw|yw vwz ~}~~HJDI@DGHEFEDEDEDEDDEDEEEEEIGDBFFCBA: [FTzPu~; % "!+r#>vs nhUhz t_Yjxbbb~ z~xoWf]]xthwypy{lmxtq htzpMi  wi ~ x ~sn| wwwuoZRbTGhqj[p|[pyl ytblzspywtutm|t s"      p  | yxyw  | z    {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{||||||||||||||||}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{#{#~~~}| |'~~0`~==L$~[{hytw}v v x z| }y ww{~VXAFBFGHEFEDEDEDEDDEDEEEEEGFDCHFFBJD8lTtK|%~~"~"  !)k'0ub oLQ lgmoe md pd v k~vjZYd at ~}  b rq xUfqpgPoviy`bnl{b`ly wt{t wsWryvc ^ior|~xe}}u~ { v{w}viey~|wrlw    wlwv v  zk} }    }w{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{||||||||||||||||}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}|{ z z z {|}~~}}}}~~~~!{*y6wx@^vLDvV)za|i|n}s}v|w|x|z~|}|}~fh@EEIFGCDEDEDEDEDDEDEEEEECDHGGCMFb_Jw\~7~|#|$}! # &1Mp{Ze v dw y ojjwm]Sx } j f \ d p |sz    w V |sqr  z \{ttr | w zqim~ps  mv!i }{}hhmisw|   ~  k]fsrw}   } z{    m {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{||||||||||||||||}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}|y"x#w#w#x"z|~~}}}}}~~~|y&w-w5vx=WzH:|R}[ ~c}k}r{vzy}|yy}quBFGKEFABEEEEEEDEDEEDFCFCA@LID9SCFzhe}Ur ~|!|!}!#+u,8 whlyt  qswz zi |l^AVXXSts~m{xayubxidjUvwe ~ {|wmws_aqrdzs{f vx`Z^koqzq |  }nt  w      qz  ~       yvz     {{{{{{{{{zzzzzzzzzzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||~~~~~~~~~~~~~~~~}}||||||}~~~}}}}~~~~~~~~~~~~}|{"y)y2xx<]xFDyR'y\{e{l{s|}uy}y}WZADBFBFCHDHEIGJIHJDG>E;KFC8S=LuPsQv2u~~~~~~~~~~~!(7ZY ]^fqW]h}     \ntgZ{{ }  |  \ x lS s b<Dl{qV rl~p~{vqqwsqv v bkef   fsxknpxh[p~nd|uv iwzo|[q h~|z    vr}u yt         {{{{{{{{zzzzzzzzzzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~|{y!x*v5rw@SwK9yU"z\zdvnss yy~mnLM@BKN?BBEEHCF@@@?EBLDF:XDAUB{u2s'q{~~}{zyz|}}||||||||||||||||}}}}}}}}||||||||||||||||}}}}}}}}}}}}}}}}~~~~~~~~}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~z$"$~.h#tjxey zdg[tipuf]oofJq~     u{ {{uw_q  bexv u mr|~cgj`Ws |hrwmxd n^[~vznwx v g{  } | mj{{gcso {jx }|    {        ^cyyyyyyyyzzzzzzzzzzzzzzzzyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{zz{{{{{z{{zzz{|{u"voz&}-t(u,{y2qy2my1tz-{+|&}#~~{z}~|{yyz{}}||||||||||||||||}}}}}}}}||||||||||||||||}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~}}}}}}}}~~~~~~~~~~~~~~~~}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~$~(#*5Hz m x ~~m{y~wbTmseAiv rvr~ t  y{cv wvsuo s tjqamz t d%"p }w }bw} m{zxl|lvVs y   q s|e}s]j |vwnxzq|{jtren~  {  {      eqyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{{{{{{{{{zzzzzzzzzzzzzzzz{{{{{{{{zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz|||{zyx x v!v!v!w!w!y y z|{zy w!v#v!v xyz{|||{zy{}~~~|zyxxy{|}|{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{||||||||}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!!&2Tidaip~ { z zg{ $$s Ubt]mzfXZIIhjTWg` |kv jnzabZ_dgnW`j mIn!qwsz `fw w}l||  jxv~  {  z     zpyqq|owx{ tstx}  fdyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{{{{{{{{{zzzzzzzzzzzzzzzz{{{{{{{{zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz||{{zyxw v v v xyyz|~~}|zyxxyy{| }}|{zz{||||{zyxyz{|||{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{||||||||}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~}}}}}}}}~~~~~~~~~~~~~~~~}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(z"z-abxp^yso|w }l { uUajRi~p t r dgckUPVUkTjt`qzv`m ~ twghxt [k hg?Hhpr} r|t wws]pstznntjsw|{ x    {{dkncoy x~}           yvxzyxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{zzzyyyyyyzz{||~}|{zzzzz{zzzzyxyyyzzzyxxyz{|{zzzzzzzzzzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~}}}}}}}}~~~~~~~~~~~~~~~~}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~",{=^zclvse~b[FVim[|q  r p ej{gpsj  }s  w p ~  x ezya^ y v v{k p|pp|{sy x  } t yq   y }u               xxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyzzzzyzz{{|}}~~~~|||}}~}|{{zzzzzyzyyyyyyyyyyz{{{{zzzzzzzzzzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{||||||||||||||||}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%& }30x&" l |udlnlOpxhr ww{v`o`b o i w  }tuyear|^W^b r \fzl~^vu x } v{~fe }njxq mWSu   w           x|     xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzyzzz{{}}~{s$q)u"y}}{yxxyz{zzzyxxxxyzz{{{{zzzzzzzzzzzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&|")|E+oOt ad w |  z {^xvU n t] v kx  s{ujYwy  | w~qnz} jpuWlqo~yls |  $$  xt  zq w  nexsVrf~yy w~ z~        wwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzz{{|}}}}}|ys&q)t#xz}~~|zyxxxyz||zyxxwxyz{||{{zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# x$*l'Oala^ ht { z [to[y}h v o   qv  nRYdgn|k~ vp  y zXs ft|soohp`_tn n ~~{ ~x l l ~      ||    {        zwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyzzzzzzzzyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyz{|{zyyxxxxwvvuuvzzyxxwwwxyyyyxwy||zxwvvwyz{{{zyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{}}}}}}}}||||||||}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}||||||||}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%}-p:$_ R vPQ{f[jalnc~z] }idcw}ttca wlph v zry}zj]Wm  |ez y |w|egpj|ve}zwz{u w   s  x|\a       zu~    y}     zw ~ wwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyzzzzzzzzyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyz{|zzyxxwwvvut!t!s"v|~|ywvuuwxyyyxxyz|zxxwvwyz{{zzyxyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{}}}}}}}}||||||||}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}||||||||}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~}}}}}}}}~~~~~~~~~~~~~~~~}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~$1g3(bmhdw vu wp&zlu    ~u~u]t{v w  qj| |p| ~yf  t~ ~ jate[qau ^srhv w`^uv  ntt y| zr ul   } v ~ | |  wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyxxxxxxxxxxxxxxxxyyyyyyyyxxxxxxxxyyyyyyyyyyyyyyyyz{zzzyyyyyyxxxxy{{zzyyyyyzzzzzyzyzyyxxxxyz{{zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{zzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{||||||||{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{||||||||||||||||||||||||||||||||||||||||||||||||~~~~~~~~}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"+y87 jq f ~ zcI^Y\q hhOk     yjyh`k ~ %   z  ~}|ar m~x gs l^rXPgxreep{ra} fz { xmxu yw qolpvvsiqlx  ~~y   u t wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyxxxxxxxxxxxxxxxxyyyyyyyyxxxxxxxxyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{zzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{||||||||||||||||||||||||||||||||||||||||||||||||}}}}}}}}}}}}}}}}||||||||||||||||}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~ }:$r|Zytuo pr DaeZcVR`dV_it    tk wan~jxxhv l w }  | bg| }  d ~goivu g} ly| x x{}pi |zpo }    wx ~|t     | q  wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyxxxxxxxxxxxxxxxxyyyyyyyyxxxxxxxxyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{||||||||||||||||||||||||||||||||||||||||||||||||}}}}}}}}}}}}}}}}||||||||||||||||}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~z &v,6(    t&#v xzn ~fdl tvpo ~ {guhroyrbo ~ nuj[vx yu | ~ q`]cotquu zn  xc jqs v   w [^  {~ zv  yz| vtnjwpurm    }~wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyxxxxxxxxxxxxxxxxyyyyyyyyxxxxxxxxyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{zzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{}}}}}}}}||||||||||||||||||||||||}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{#x!t+"qg ~yq_ex o x   ml oi\Vjpdqx oe }  vfswx~ l|vfonu stsyomi\lprhaura l n~pqx | ~{wq I[  ~ {r^{mp   u~~     vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{zzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{||||||||||||||||||||||||||||||||}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~y {*(\yJXhmbUTH0NhRchz  rt wulm cyrns{ v| |mp|~ t   ynmhx~ | fz|On~ j    ~ k iv fuixpifo Nh v{    |$|} "    z      vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{||||||||{{{{{{{{{{{{{{{{||||||||||||||||||||||||||||||||||||||||||||||||||||||||}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~zy$'g(x "r w $"[whogvr |  x{n su xuw|u }r p   yvap{   { ci{nI[hmna zu_ \zoy  z nm  ^uhbxz  t   z      vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyzzzzzzzzzzzzzzzzyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{zzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~y|yy'm'$y #f}  xt } cfow }yymfy x{ sx  |x iz    gai}vh { ]o r ON x x q y ~| r ~VB y nuwj{ |}|s pw  l~{x   ojvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyzzzzzzzzzzzzzzzzyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzz{{{{{{{{zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{zzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~w z$zm'%  lctxZnupoy{y }l  | r    sw{ Yg ~tzi]lv{xgy LZiGAy rr  |vow  iQxz u |      ks{yp}   yxm wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwvvvvvvvvuuuuuuuuvvvvvvvvuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvuuuuuuuuuuuuuuuuvvvvvvvvuuuuuuuuwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{zzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{{{{{{{{{zzzzzzzz{{{{{{{{zzzzzzzzzzzzzzzz{{{{{{{{zzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{zzzzzzzz{{{{{{{{{{{{{{{{zzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}| { { | } ~&u('f&(v za| xuzv|x|Xyeelbrvh^ro]rtzw ohTl{liqs_L w }zo ~ t~W orinr ckx{y   !!t  m  y   ox   z}     !   w{  vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvuuuuuuuuwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{zzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{{{{{{{{{zzzzzzzz{{{{{{{{zzzzzzzzzzzzzzzz{{{{{{{{zzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{zzzzzzzz{{{{{{{{{{{{{{{{zzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~}}}}}}}}}}}}}}}}~~}|{z!z!z}!v+}.'mp p y t wP_rsu{~ yyz]kfZo``rw lbqv k xqhU }nMf }  t_} ~ zn ru qV| ~p u WZ~ j     ry z   i{v\v|n{   {~z||      ~vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvuuuuuuuuwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyzzzzzzzzyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~}}}}}}}}}}}}}}}~~}||x!yz t# MhTQ |rmz n suz {|wevjp  ppt p y zoW  ~Zl y{uVaspunzo`_ ~p~}gjy s`x|oy m} }qzZjxtz bw xq zworzz  vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvuuuuuuuuwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyzzzzzzzzyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{||||||||||||||||}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~||!@1u l t sc`y{{ xn|lffktwhlls~ j hr zsxic z }qr s  n  y{vvv j}su  p { {  {x   k oy}   u cmzkrs      vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxxxxxxxxxxxxxxxzzzzzzzzyyyyyyyyzzzzzzzzzzzzzzzzyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{||||||||||||||||||||||||||||||||||||||||||||||||}~}}|{{{|}}u~83f\dg_^t cosqhtrtu |xu| puxyr~yxnNS ~ qZuxy rnsd]eP^x w o uw r px ||kw wiq_x wddz    x       uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuttttttttuuuuuuuuttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuttttttttuuuuuuuuuuuuuuuuvvvvvvvvuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxyyyyyyyyxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxxxxxxxxxxxxxxxzzzzzzzzyyyyyyyyzzzzzzzzzzzzzzzzyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{|{{zz{{yj ~ xw&*6Dn)pyg`jRX i j[ sv{   rusl {v{pab ofgEQgSnkhs[rrnadRZrs w" z hqv  znxvgvvfiRbtogetzxt`zypw  }   tsz~uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuttttttttuuuuuuuuttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuttttttttuuuuuuuuuuuuuuuuvvvvvvvvuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxyyyyyyyyxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzxxxxxxxxxxxxxxxxyyyyyyyyxxxxxxxxyyyyyyyyyyyyyyyyxxxxxxxxyyyyyyyyxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyxxxxxxxxxxxxxxxxzzzzzzzzyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{z{z{{{{{$trp$,`9hzt`ty e ox|ly  zjkeXqo|  s trzpx\tt` yy{ wk\_i_az~ ~t  v~fmoeZk{lnqpv     wv|   r   }t~uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuttttttttuuuuuuuuttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuttttttttuuuuuuuuuuuuuuuuvvvvvvvvuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxyyyyyyyyxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzxxxxxxxxxxxxxxxxyyyyyyyyxxxxxxxxyyyyyyyyyyyyyyyyxxxxxxxxyyyyyyyyxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyxxxxxxxxxxxxxxxxzzzzzzzzyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{zzz{{{{{{vt~$r{5+| ~|npx fasi\`x v  z~w h ~ x srpwy~ } cn}   gqq~xnuy} |    v        shu     }~{}       ttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwvvvvvvvvwwwwwwwwwwwwwwwwvvvvvvvvvvvvvvvvwwwwwwwwvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{zzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{zzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{{{{{{{{{{{{{{|{{{||||{zzw Nx epxc]qdt]i xnkl ~  l un [ y u  mf}qwvx|o sr    xw {}y wk   x wzzwkq sUv }~r s}vqp|{rt|~  | y ttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{zzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{zzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{"v%c!J , yxix h`[\_`a tr u{zjvll\oxczqw |{j^tx{my  yt~ {\tszudv~ ~{gy{}   }unt  wiiu  } v{{syy  {}tn{{}  p||}z   ttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzxty#w-I#xu "j ltgili~mr kr j s  h r|yOha}{ eywm lwvmwtrvn| n}~ }gs~~            s}i uky       }}xy     ttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzy|}vx%n(Bn t z ~ uiciej u|t l]k q v  lzeys^rqkrXTpjpv}~nix xyv{v~ {          r q    t    w  ttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzy{uy~{|!*Zfkr ou^g[jx|uip~y~qokr  zy  yq}   zmhm {uxwx|nl }lo~}mamge|x{{ p~   x     ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuttttttttttttttttuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuvvvvvvvvuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyssv{{yx|}~8` }ntruarrp |o vm \[_w jtrpts u}sy   } }zyzn|  }ms}_vubYrryxr{yospi{ru{       ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuttttttttttttttttuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuvvvvvvvvuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxzzzzzzzzzzzzzzzzyyyyyyyyzzzzzzzzyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxv~w{yq}!~2%kdoi ~ |e{  | x x  l[mwrxtklivpefbw {o |rpsnck_|y__ r~sw {  t    x{~    w   ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuttttttttttttttttuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuvvvvvvvvuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxzzzzzzzzzzzzzzzzyyyyyyyyzzzzzzzzyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy|xtx{ts u1Kyiv\q v x oi~u | ^ |}sd] hx wrniv _bul{}{ymtyexx   ~e} dq  { xo vt z y     {w  w    ~~}|~ssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwvvvvvvvvvvvvvvvvuuuuuuuuvvvvvvvvwwwwwwwwwwwwwwwwuuuuuuuuvvvvvvvvuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxxxxxxxyyyyyyyyzzzzzzzzzzzzzzzz{{zyxxxyzz|![#{mdf;PVIAWffT]h~ zi{ }  ^ x~w|qz wzw {   x}| vhwp s~w ~m}} y      ssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxxxxxxxyyyyyyyyzzzzzzzzzzzzzzzzz{zyxyzzyww|!#^!>!| fw q{ ct ovy~{  xdbpzov |qtlpzqwxinjnzzp  pxrc[ nam|   n}  |v |xtis  | onpq } xu~   ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyzzzyyz{||zxww{&z,6kh  ouz{qa]Wqrs   rwvt}  {q jnyl_ xsy{  u z }wog{}}   ~  v{zy  }y~ ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvuuuuuuuuuuuuuuuuttttttttuuuuuuuuvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyzyyyz||||{ywvwzkK"mkd Xhv~vme  #! v g |ub xm   y~  | rj w{tmyywg{w ~ xo{z}yws    |rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvuuuuuuuuuuuuuuuuttttttttuuuuuuuuvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuwwwwwwwwvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwvvvvvvvvxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxwwxxxyyzzzzyxwuu )>7lnnaj  ~vp_}  ngy }n x] ~ ~w~ nui~{w~ iew mdz qh  v|{u  zwz  |l      }  |z ~}  |     rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuttttttttuuuuuuuuuuuuuuuuuuuuuuuuttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuwwwwwwwwvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxwwxyxxxxyxxxyyxvrv-w2=s"rOgt{x pjeMk^hqi_ksevm{rZuxyu~opms mezxzxrmb~~  }~  fmq |  l~~}|q   |qz q{x  | rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuttttttttuuuuuuuuuuuuuuuuuuuuuuuuttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuwwwwwwwwvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxwwxxxwvvwvuvwxxx#n {!(-Io UX |umcBbqy~  {kwpswuu  x  | uht|}ryznw}t|nx~|qxepzn~lw{~ | u  ~    ~ zwwrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsqrqrqrqrqrqrqrqrqrqrqrqrrsrsrsrsqrqrqrqrrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuttttttttuuuuuuuuuuuuuuuuuuuuuuuuttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuwwwwwwwwvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvuuuuuuuuwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxwwxxxwvuttvvvwwztwws!/]z'h  }\ |vz{{}}} m ~u |  o     q  w  | k  |   hnm ux q     uz  qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrssssssssrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttssssssssttttttttttttttttttttttttttttttttssssssssttttttttssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvuuuuuuuuvvvvvvvvuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuwwwwwwwwvvvvvvvvwwwwwwwwvvvvvvvvvvuvuvuvuvuvuvuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxwwwwwwvvwwwxxxxxxxwusv$s-0tp  wuQi}}hMesrxeswir{ypx xds~qmr n t jz  x }{  a[hmbp|   h  {v[  orw]qqilbb{w[ezuegXVlv||m s{     qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrssssssssrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttssssssssttttttttttttttttttttttttttttttttssssssssttttttttssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxwwwwwwwwxxxxxxxxvvvvrrx$7P g pmoXr |xxk     |w    }}   ppx{v}u{kq pWXgt\XcUp e  pg}tvpy~u  ~  }w vj} x x   }~qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrssssssssrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxwwwwwwwwxxxxxxxxxxxyvsrwm%@%X W{ | t      xtyz~ { | sk zko{ x  qo tvrnq mi~o  yv ~ P_l|~g }   |   {          ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrssssssssrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwzxyzyvrrwur,Y-u ma||t| |ot|zsqwvu|qplzqbRol_Yq~lstscZ{ks}ffzz~v iv kvr!myv  c{xw  |xsy   }        ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwvvvvvvvvwwwwwwwwzxwy{xut}%k{!wy|x54t X ibPZQc hy z }}  {ws  t  h |xyjyf`yhu nm{ yng]wm jc |  z    uqmzyoxa\yv_rwo~mkntepup  } |  \Zoppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqrrrrrrrrqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuttttttttttttttttttttttttuuuuuuuuuuuuuuuuvvvvvvvvuuuuuuuuvvvvvvvvuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuvvvvvvvvwwwwwwwwvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwvvvvvvvvwwwwwwwwxuuwxwvukrw r~ yx1O~7yfLZIKq blq]]ozosy wk\t} t }s  w{p { x'$ zp} wrz  }     |t } zz uxv q z  ablppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqrrrrrrrrqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuttttttttttttttttttttttttuuuuuuuuuuuuuuuuvvvvvvvvuuuuuuuuvvvvvvvvuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuvvvvvvvvwwwwwwwwvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwvvvvvvvvwwwwwwwvvtuwxwuwwvszn'zx'JyY icm  |hg| {{wemt xb jry wp]ywd  {   q }~}x { vy v {      | ~z     ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqrrrrrrrrqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuttttttttttttttttttttttttuuuuuuuuuuuuuuuuvvvvvvvvuuuuuuuuvvvvvvvvuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuvvvvvvvvwwwwwwwwvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvuuuwyxvuwuvsrxpzu{3]&3V^  } znu  |y u sWz fq }  W|iOlrus{|}x ~ $ nQZgs`lzs~w uVj}hro}|m j |     |  q  ooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqppppppppppppppppppppppppqqqqqqqqppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttssssssssttttttttttttttttttttttttttttttttssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttssssssssssssssssssssssssssssssssssssssssttttttttssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvuuuuuuuuuvsz~x6!d k  zw|xpi{rso~xw u~| vd| w{ p }zm } w rn{ ~ u  wo       ~   zlttnt zlY|   ooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqppppppppppppppppppppppppqqqqqqqqppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttssssssssttttttttttttttttttttttttttttttttssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttssssssssssssssssssssssssssssssssssssssssttttttttssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvwwvvvuuvvvvuuut{!uv ,cpDq?( rwtnr~x i}}f yyqt   opui ud[QpyTQ^Me      }|    z |rr} uv}   muzz Obnnnnnnnnnnnnnnnnppppppppppppppppooooooooooooooooppppppppppppppppooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqppppppppppppppppppppppppqqqqqqqqppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvushml!w2r$,j" kmpdcz totoq z ~  yrt  }}} y rilXa ~}  |    cxp  vo}x}yjwl      ssznnnnnnnnnnnnnnnnppppppppppppppppooooooooooooooooppppppppppppppppooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuttttttttuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvuxqv%jr/f}k&/n"x [Z\wv u  }~tx u   lpr{u    { x  {z~~  u ~ ^  yc    }|  } pr nnnnnnnnnnnnnnnnoooooooooooooooonnnnnnnnnnnnnnnnoooooooooooooooonnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnoooooooooooooooonnnnnnnnooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuttttttttuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuutttuvvvvvvvuvuuvx{|ts ns} &{60vfu  k uzwdnxz[sypt }z }yonz |     }wzj  }|pxsYu h      f}xii}xme} s  s f   nnnnnnnnmmmmmmmmoooooooooooooooonnnnnnnnnnnnnnnnoooooooooooooooonnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnoooooooooooooooonnnnnnnnooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuutttuuuuvvvvvvuuvsuswv!x  r lz+K hq}zyo u  uns{_df_`zr~~x  |} tbsz~xrx}]y  ~{nVguz k{{}f }      ~yw  nnnnnnnnmmmmmmmmoooooooooooooooonnnnnnnnnnnnnnnnoooooooooooooooonnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnoooooooooooooooonnnnnnnnooooooooooooooooooooooooppppppppppppppppooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssrrrrrrrrssssssssssssssssrrrrrrrrrrrrrrrrssssssssrrrrrrrrrrrrrrrrqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuutsssstuvvvuutu{wwwp|#s w }'smw#:g$,o ubzo~   y { } ~ x  un xpx zZLVUgury}w~   w|u r  p}| ~ {   x ~}}znnnnnnnnmmmmmmmmoooooooooooooooonnnnnnnnnnnnnnnnoooooooooooooooonnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnoooooooooooooooonnnnnnnnooooooooooooooooooooooooppppppppppppppppoooooooonnnnnnnnoooooooooooooooooooooooonnnnnnnnoooooooooooooooooooooooonnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnoooooooonnnnnnnnooooooooopopopopopopopooooooooooooooooooopopopopopopopooooooooooooooooooopopopopopopopopppppppppppppppppqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssrrrrrrrrssssssssssssssssssrsrsrsrsrsrsrsssssssssrrrrrrrrssrsrsrsqrqrqrqrrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuutututututututuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuutsrrsttuvvuutttnzskuw}msl{&o!rzy,3z %wlzlWn~} }vuq { }tgv ws ~     xh{h~        qwvsrw~q  x   mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooonnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqppppppppqqqqqqqqqqqqqqqqppppppppppppppppqqqqqqqqppppppppqqqqqqqqqqqqqqqqppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttssssssssssssssssttttttttssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssrsrsrsststststssssssssssssssssssssssssttttttttsssssssstttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttssssstttttttssttsssuutsssstuys f.3w *y{fZmfp rwwo   w  q  ur~otvvd]T\_knsoys~{ ~e}    {p|    mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqppppppppqqqqqqqqqqqqqqqqppppppppppppppppqqqqqqqqppppppppqqqqqqqqqqqqqqqqppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttssssssssssssssssttttttttssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssrrrrrrrrssssssssssssssssssssssssssssssssttttttttsssssssstttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttux}z)s3;|4~ p }kz }u{ q  tozZRq  s  ~}  j`]t {  }|zj  y     v~~| ||~_z}mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqppppppppqqqqqqqqqqqqqqqqppppppppppppppppqqqqqqqqppppppppqqqqqqqqqqqqqqqqppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssttttttttssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttoxpr }.4v#r mntoankiefsgfp w{   yv   |  z v y rkzoswvz ||nwmfmmNexlqwmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssttttttttsssssssstttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttstptvi oX""yjw|  |yoy oxwocj {zwmnvvjy v}   yr^xypor\ltf w~lu      nq | fu ~ q~r mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooppppppppppppppppooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssttttttttsssssssstttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttsnts|!os~ {"l"F# obk { qhdujx } |    w  yrpz rv xnmr wp y q  qu w   nq|}     p  zrctzllllllllmmmmmmmmllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooppppppppppppppppooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqppppppppppppppppqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssrrrrrrrrrrrrrrrrsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssrm} dk }!tnou s~V~8y hj m {pp oy {|  rlfv| o~  ~wp{ q   uu}  z  v  x~u     {    |n|tpollllllllmmmmmmmmllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooppppppppppppppppnnnnnnnnnnnnnnnnooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssrrrrrrrrqqqqqqqqssssssssssssssssssssssssrrrrrrrrssssssssrrrrrrrrssssssssrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssxq{~j l "wpsux(y$Q|6$ oprmf_ } }w  y          {j~y    }  {{ llllllllmmmmmmmmllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooppppppppppppppppnnnnnnnnnnnnnnnnooooooooooooooooooooooooppppppppppppppppppppppppppppppppooooooooooooooooppppppppooooooooooooooooppppppppppppppppooooooooppppppppooooooooooooooooppppppppooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssrrrrrrrrqqqqqqqqssssssssssssssssssssssssrrrrrrrrssssssssrrrrrrrrssssssssrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssstvqvo{|lrrpx"hm|!zxy.W~!  }   u} uyrfurdsx lpsky svzy      u ~b{  }    tu} z kkkkkkkkkkkkkkkkkkkkkkkkllllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnmmmmmmmmnnnnnnnnnnnnnnnnoooooooooooooooooooooooooooooooonnnnnnnnnnnnnnnnooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttssssssssttttttttttttttttstuuuutsrrqqqrsu~{#^:ur |g wr mwxljmzxwyip m{hXo !{  {neksuro|z ts {qw{ mdl      kkkkkkkkkkkkkkkkkkkkkkkkllllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnmmmmmmmmnnnnnnnnnnnnnnnnoooooooooooooooooooooooooooooooonnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppooooooooppppppppooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttsssssssstttttttttttttttsrstuutssssssrqpojt!v }"g$R!-em    y xz y is ggS@h {}|n} {  dh yt]vvx wv{ |   kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnmmmmmmmmnnnnnnnnnnnnnnnnoooooooooooooooonnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnoooooooooooooooonnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnoooooooonnnnnnnnoooooooonnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssrqqqrsttssrqqtqsu~#`,b/{ y wysw} uz   z| not_e]=Tokk} q ~  {vx    }~}{wov{x     kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmoooooooooooooooonnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnoooooooonnnnnnnnoooooooonnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssrrqqqrrsstttssnpormn} ||{ :U~"ODVbVZelnghz   w ' q   kxx|gb y      {   } {} qfqkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnmmmmmmmmmmmmmmmmllllllllllllllllmmmmmmmmmmmmmmmmoooooooooooooooonnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnoooooooonnnnnnnnmmmmmmmmmmmmmmmmnnnnnnnnooooooooooooooooooooooooppppppppppppppppppppppppooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssrrrsssssssrrrtttqnlvxtvjv!pr 7y2Dc-\$o xpreu} {px wumy ~zl Xn  o |wo qr^r|hh|{       z notZ>:kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnmmmmmmmmmmmmmmmmllllllllllllllllmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnmmmmmmmmnnnnnnnnmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnoooooooonnnnnnnnmmmmmmmmmmmmmmmmnnnnnnnnooooooooooooooooooooooooppppppppppppppppppppppppooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssqrrsstttsrrrssuuwsospowrjpmpv%+7q06~ ! " x } pp|{hHj |  |{v   ~o             { |kkkkkkkkkkkkkkkkkkkkkkkkjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnmmmmmmmmmmmmmmmmllllllllllllllllmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnmmmmmmmmnnnnnnnnmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnoooooooonnnnnnnnmmmmmmmmmmmmmmmmnnnnnnnnoooooooonnnnnnnnnnnnnnnnppppppppppppppppppppppppooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssrrrrrrrrrrrrrrrrqqrssstsrrrrstutlsv{smvrxvoqnmww{%{-U.pkk |{    eXv  qgc~~~s    }}u  { kkkkkkkkkkkkkkkkkkkkkkkkjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnmmmmmmmmmmmmmmmmllllllllllllllllmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnmmmmmmmmnnnnnnnnmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnoooooooonnnnnnnnmmmmmmmmmmmmmmmmnnnnnnnnoooooooonnnnnnnnnnnnnnnnppppppppppppppppoooooooooooooooooooooooooooooooonnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooopopopopopopopooooooooooooooooooopopopopopopopooooooooooooooooopppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssrrrrrrrrrrrrrrrqrqrrssssrrrsstttwtnqqu{pqtswrnuoqsw}w|.s7B)~ x|oc~~  lg z z } y} u p}  ugiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkiiiiiiiijjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllkkkkkkkkllllllllllllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmllllllllmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooonnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqppppppppqqqqqqqqqqqqqqqqppppppppppppppppqqqqqqqqppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrqpqssty~ur,W$lt}|   {  xos   \x yklr  |   ~zzww}iiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkiiiiiiiijjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllkkkkkkkkllllllllllllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmllllllllmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnmmmmmmmmnnnnnnnnnnnnnnnnmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqppppppppqqqqqqqqqqqqqqqqppppppppppppppppqqqqqqqqppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrqqqqprvysnt/g0B.{ exqix{~oky|v~qkxp}| n|  kbrxsxur{v{ }~   iiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkiiiiiiiijjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmllllllllmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnmmmmmmmmnnnnnnnnnnnnnnnnmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqppppppppqqqqqqqqqqqqqqqqppppppppppppppppqqqqqqqqppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrqonopsvksxw((o*S4n'lmznc }}zy w v    ~n}{}~   |    viiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkiiiiiiiijjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnmmmmmmmmnnnnnnnnnnnnnnnnmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrsrrpnmlholrqmuu~l ~#0v+f'=w e,+    }|n ~vtvhKozr|   ~} zg  }h }  iiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooppppppppooooooooooooooooooooooooppppppppooooooooppppppppppppppppppppppppppppppppooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrqqonsuppmlommrqyu}}"1t*Jv ,f$lkmuz~~`gswsu h      ~u[pz|}_zw  i" * :>Eo3v9hhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllkkkkkkkkllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmllllllllllllllllllllllllllllllllmmmmmmmmllllllllmmmmmmmmmmmmmmmmllllllllmmmmmmmmnnnnnnnnmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooppppppppooooooooooooooooooooooooppppppppooooooooppppppppppppppppppppppppppppppppooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqpppqrqphlptwwtnsngojnmuv|~yy)y*m#c%A}7}5}ci"u y p mz l ~ u~| |  {{ck }hvl]v &%{ (t dD}b%t,4+xhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkjjjjjjjjkkkkkkkkjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllkkkkkkkkllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmllllllllllllllllllllllllllllllllmmmmmmmmllllllllmmmmmmmmmmmmmmmmllllllllmmmmmmmmnnnnnnnnmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooppppppppooooooooooooooooooooooooppppppppooooooooppppppppppppppppppppppppppppppppooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqpooqqqourqklrrronjtquprtrmjpspvxxx-+89s-ZEty;y9w5u2r/q+o)m(k$j"i!hgeddccba````________________````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXXXXXXXXYYYYYYYYXXXXXXXXXXXXXXXXYYYYYYYYXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^_______________________________________________________________________________________________________________________________________________________________________________^^]]]]]]^_``` a c e e cbbbaa_]_\[Y[`'g0n9V_gjgdcdca_^][YWTPNLJG}C{@yw:u8s5r2q/n,l)k&j#g!eefedbb`_`___````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^___________________________________________________________________________^^^^_``accb\ Y \[ZZ[_"g,l4_grx{zwwzywtrmmjjiedca_[WTQOKI|F{Dy@x=u8s5s3q1m.m+k&i$g"eeeedaa`___^^````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^________________________________________________________________________````____`][[\^beXWW[#j5Onʲy~}yxtsqonmkgedb_\YTROLJ}G{DyBx=u;t7r4q1n/m+l)j%g"e edcbaa`___^^________________________________________________________________________________________________````````````````````````________````````````````````````````````````````````````WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYZZZZZZZZYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ\\\\\\\\[[[[[[[[\\\\\\\\\\\\\\\\[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^________________________________________________________________________```_____]^__[VW[ }X$m:YuƱij~~{zxywspmkgdc`^[XTROLJ}G{DzCy>u;t7s5q3o0n,l)i'g"e d dcba`__^^^^________________________________________________________________________________________________````````````````````````________````````````````````````````````````````````````WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXWWWWWWWWXXXXXXXXXXXXXXXXWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYZZZZZZZZYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[ZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[ZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\[[[[[[[[[[[[[[[[\\\\\\\\[[[[[[[[\\\\\\\\\\\\\\\\[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^_^^^^^]a\Z[[%a-m<{Mz~|{zzvrnmifcb_]ZVTQOLI}G{D{Ay>vwu;s9r5p2o1m.j)h%f$eca`_^\\[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]\\\\\\\\]]]]]]]]\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUTTTTTTTTUUUUUUUUTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXWWWWWWWWVVVVVVVVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[ZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\Z[_^YY]` ` X Z^&^2cĮɩȣĢȾͽξȻƼŻĺù¸~|zvtromihgc`^[XVSPN~J}G{Dy@w>vvv;r8q4o3m0k,i*g&e#cb__][ZYZZZZZZZZZZ[[[[[[[[[[[[[[[[ZZZZZZZZ\\\\\\\\\\\\\\\\[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVUUUUUUUUVVVVVVVVUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXWWWWWWWWXXXXXXXXWWWWWWWWXXXXXXXXXXXXXXXXWWWWWWWWXXXXXXXXWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYXXXXXXXXYYYYYYYYXXXXXXXXYYYYYYYYXXXXXXXXYYYYYYYZZ[ZZYYZZXYXYXYXX]Y X Z^\YWST[YPg6ŵаԯҬѪΧ̧̦̩ͦͧʩʫȪǧƥ穨ƿĽĺ¹ø·}zyuspnlifc`^[YWSPN~J}H|EzAw>uut;q7o3m0k.i+g)d$c!`_][ZYXXXXXXXXXXWWWWWWWWXXXXXXXXWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUTTTTTTTTUUUUUUUUTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXWWXWXXX X Z ZWUWVUXVd'γߢߨݴڲ׮֫ة٨اר֧թԨөЩЩϨΩ̨˧ʧʧƩƨŧħ¥žžú¹~zxuspnmkec`_[YUROM~J{GyDw@u?ur:p7m4l0j/h+f(d$a!_\[ZYXWVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQR R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRQQQQQQQQSSSSSSSSSSSSSSSSRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVUUUUUUUUUUUUUUUUUUUUUUUUTSTV W X Z Y XWNT![Ũڢߩݩݨۨۧڧڨاש֨թԨӪѩЩϨΧ̦˩ʨɪǩƩŨĩ©¨ľýú¹~zwurpnkifca_[XTRO~L|JzFwBu@u?qq;n6m5k2j1h-g+c%a!]\ZYXVVVUUTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVN N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N OOOOOOOON N N N N N N N OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOP P P P P P P P P P P P P P P P P P P P P P P P QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSRRRRRRRRRRRRRRRRSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTWR VKYuGʯߧߩߨިۧڧڨ٪ةקէթԨөҧЩ̧ͩͨ˨ɦǨŨĩ¨ľýĻú|xwurnkjigb_^]SQ}M{KzIxGvBt?s>ri;h8i7j8i8j6t?s?rԶߩݨܨۨ۩٨ةר֧ԧԧҩҨϧΧͥ˧ʨɩƨŨç§ƿžĻú¹iuKt^4{^2e7d4_0_0^,a/b0_-_-c1e1d0e1d1e2e2e2f3f2f2g2g2h0h0i1i1j2j2g0j3l5k4h1g0j3n6XTPORSRO Q Q Q Q QQQQR R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R SSSSSSSSR R R R R R R R SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSK K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M M M M M M M M M M M M M M M M M L L L L L L L L M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M N N N N N N N N M M M M M M M M N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N OOOOOOOOOOOOOOOOOOOOOOOON N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N OOOOOOOON N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N OOOOOOOON N N N N N N N OOOOOOOON N N N N N N N OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOP P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQOQS S RPOPS UUToKߩߩܨ۪ک٪ةר֨֨ӧҨѧЧ̧ͦʩʩƨŧ¦ƿĽú¹tvO|i>w^2a3c6a2^/^-b0b0b0b0b0c1d0d0d0c0c0d1d1d1e1e1g2g2g2g2h3h3i4i4j5j5j5j5j5j5i5j3h,] PMPRQP Q Q Q Q QQQRQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSRRRRRRRRRRRRRRRRK K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M M M M M M M M M M M M M M M M M L L L L L L L L M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M N N N N N N N N M M M M M M M M N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N OOOOOOOOOOOOOOOOOOOOOOOON N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N OOOOOOOON N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N OOOOOOOON N N N N N N N OOOOOOOON N N N N N N N OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOP P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQPQS S RPNPS \NRte>Ⱥߩߩܨ۪ک٪ةר֨֨ӧҩҧЧ̧ͦʧʧƨŧ¦ƿĽ¼ú|`{i@yb5{_0b1c3_0^.a0b0b0b0b0b0c1c/d0c0c0c0d1d1d1e1e1g2g2g2g2h3h3i4i4j5j5j5j5j5j5j5j3i/a&VONRQO Q Q Q R QQRRQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSRRRRRRRRRRRRRRRRK K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K LLLLLLLLK K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M M M M M M M M M M M M M M M M M L L L L L L L L M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M N N N N N N N N M M M M M M M M N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOP P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQPPPRSRQOPQ RWmCߩߩܩܪ۩ڨاר֨֨ӨөҨѧ̧ͦʧʨǨŧ¦Ľ¼úmlFw_5z]0`/d2b1^-_.c2b0a/a/a/b0c1c/d0c0c0c0d1d1d1e1e1g2g2g2g2h3h3h4h4i5i5i5i5j5j5j5j3k3h.^#TOQRO Q Q R R QQRRQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSRRRRRRRRRRRRRRRRK K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M N N N N N N N N M M M M M M M M N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOP P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P PPPPPPPPPPPPPPPPP P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P PPPPPPPPPPPPPPPOOOPQQ Q P O PI W&u]9ĵߩܩܪ۩ڨاשר֨ӨөҨѨΦ̨˧ʨǦŧ稞üú\v^4|_3_1c1e3c1_-^-c1a/a/a/a/b0a0c/c/c0c0c0d1d1d1e1e1g2g2g2g2h3h3h4h4i5i5i5i5i5j3j5j3i3l4e+WOQRO R Q R R QRRRQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSRRRRRRRRRRRRRRRRI I I I I I I I I I I I I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOP P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P PPPPPPPPPPPPPPPPP P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P PPPPPPPPPPPPPPPPOOOOQR Q P PMkD߫ߨިۨۨ٨٧ר֩ըԧҦѧΧ̧ͨʨǧƧĦ禞üú¹npJz]1b5a1a/b.b0a/a0b1a/a/a/a/`/a0c/c/c0c0c0d1d1d1e1e1g3g3g3f3h3h3h4h4i2i2i2i2i2j1i2i2h1k4h0\"SQQP R R R R QRQQRQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRQQQQQQQQQQQQQQQQI I I I I I I I I I I I I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M L L L L L L L L M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O P P P P P P P P PPPPPPPPPPPPPPPPP P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P PPPPPPPPPPPPPPPPPPNNQR S P OKoU7̶ߨީܨ۩ڨ٧קשըԨӦѧΦ̨̨ͨɧƧĦ禞ĽĻ¹|Y~a:`5`3_.^*_+a/b0b1a0a/a/a/a/`/a0b.c/c0c0c0d1d1d1e1e1g3g3g3f3h3g3h4h4h2h2i2i1i1j1j1j1f2h4h2b(XQPSR R R R RRRQRQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRQQQQQQQQQQQQQQQQI I I I I I I I I I I I I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M L L L L L L L L M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M N N N N N N N N M M M M M M M M M M M M M M M M M M M M M M M M N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N M M M M M M M M N N N N N N N N N N N N N N N N MMMMMMMMMMMMMMMMLLLLLLLLMMMMMMMMLLLLLLLLMMMMMMMMM M M M M M M M M M M M M M M M LLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O P P P P P P P P PPPPPPPPPPPPPPPPP P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P PPPPPPPPPPPPPPPPQ PMMQS TQ KG ۴ߩߩܨ۩ڨ٧קשթըӧҧЦϨ̨̩ʧȧĦç¦ĿĽĻ¹wmKyX1c7^/_._+_+`.c0~c1}b0a/`.`.`.`/a0b.c/c0c0c0d1c1c1e1e1g3g3g3f3h3g3h4h4h2h2i1i1i1j/j/j1h4g3h2h-]"QO SR S S R RRRQRQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRQQQQQQQQQQQQQQQQI I I I I I I I I I I I I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K K K K K K K K K J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M L L L L L L L L M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M N N N N N N N N M M M M M M M M M M M M M M M M M M M M M M M M N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N M M M M M M M M N N N N N N N N N N N N N N N N N N MN MN MN MN MN MN MN LM LM LM LM MN MN MN MNLMLMLMLMMNMNMNMNM M M M M M M M M M M M M M M M LMLMLMLMLMLMLMLMMNMNMNMNMNMNMNMNMNMNMNMNMNMNMNMMN N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O P P P P P P P P PPPPPPPPPPPPPPPPP P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P PPPPPPPPPPPPPPPP Q P LKOR US HQ3ظߩߩܨ۩ڨ٧קשթըӧҧЦϦ̨̩ʧȨŧħ¦Ŀþý¹mgBxU-b5^/a0b1b0a/`/~`/}_.a/`.`.`.`/`/b.c/c0c0c0d1c1c1e1e1g3g3g3f3h3g3h4h4h2h2h2i1i1j/i1i1j6g3i2k3b&RM SR R R R RRQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRQRQRQRQRQRQRQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRQQQQQQQQQQQQQQQQI I I I I I I I I I I I I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K KK KK KK KK KK KK KK K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M L L L L L L L L M M M M M M M M L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M L L L L L L L L M M M M M M M M L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N M N M N M N M N M N M N M N M N M N M N M N N O N O N O N O N O N O N O N O N O N O N O N O N O N O N O N O N O N O N O N O N O N O N O N O N O N O N O N O N O N O N O N O M N M N M N M N N O N O N O N O N O N O N O N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N M M M M M M M M M M M M M M M M OOOOOOOON N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N OOOOOOOON N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N OOOOOOOON N N N N N N N N N N N N N N P QP SGIRUTLwߩߩިݩڨ٧اת֩ԨӧҨϧΧ̨ͨɨɩƨŧæ§Ŀý{X}a8]1a1`/a/`0`0`0`2`2`0a/a/a/a/`/a0c/c/c0c0c0d1c1c1e1e1e1f2f1g2g2g3g3h4g3h2i3i3j4j2j3i2g3f2j3f.e*\ MRPOP P OPPPPOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPQQQQQQQQQQQQQQQQQQQPQPQPQPQPQPQPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQI I I I I I I I I I I I I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K J J J J J J J J K K K K K K K K K K K K K K K K KKKKKKKKKKKKKKKKK K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M L L L L L L L L M M M M M M M M L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M L L L L L L L L M M M M M M M M L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O N N N N N N N N O O O O O O O O O O O O O O O O N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N M M M M M M M M M M M M M M M M OOOOOOOON N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N OOOOOOOON N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N OOOOOOOON N N N N N N N N N N N N N N P SOOJHNUT vN$ߩߩިݩڨ٧اת֩ԨӧҨϧΧͧͩʨɩƨŧæ§Ŀ¾ysO}`4_/b1`/a/`0`2`2_2_2`0a/a/a/a/`/a0c/c/c0c0c0d1c1c1e1e1e1f2f1g2g2h3g3h4g3h4i3i3j4i3j3i2h4f2j3f.f.^"NQOOOOOOPPOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQQQQQQQQQQQQQQPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQI I I I I I I I I I I I I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K J J J J J J J J K K K K K K K K K K K K K K K K KKKKKKKKKKKKKKKKK K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M L L L L L L L L M M M M M M M M L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M L L L L L L L L M M M M M M M M L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N M M M M M M M M N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N M M M M M M M M M M M M M M M M N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N P SPI MJL UO gCߩߩިݩڨ٨٧ת֩ԩԧҨϧΧͧͩʨɩƨŧæ¥Ŀ¾oiE|\1`0b1a-a/`0a0`2_2`0`0a/a/a/a/`/a0c/c/c0c0c0d1c1c1e1e1e1f2f1g2g2h3g3h4g3h4i3i3j4i3j3i2h4f2j3g/h0b&POOOOOOOPPOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQQQQQQQQQQQQQQPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQI I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I J J J J J J J J I I I I I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K J J J J J J J J K K K K K K K K K K K K K K K K KKKKKKKKKKKKKKKKK K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N M M M M M M M M N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N M M M M M M M M M M M M M M M M N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N P ST G PLN R uJߩީީکڨ٧ר֪թԨөЧΧͧͧʨɩƨŨĦ¥¾¼e{a<}\/b2a0a-a-a/a0`2`0`0`0a/a/a/a/`/a0c/c/c0c0c0d1c1c1e1e1e1f2f1g2g2h3g3h4g3h4i3i3j4i3j3i2i5f2i2g/j2f*ROOOOOOOPPOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP P P P P P P P P P P P P P P P PPPPPPPPPPPPPPPPP P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I J J J J J J J J I I I I I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N O PWH OL QLtS&ߪߩިۧڨ٨ب֨թԨөҨѨΧͧʩʪɨǨħæ§ÿ¼ax^9}\/c3`,a-a-a/a/`0`0`0`/a/a/a/a/`/a0c/c/c0c0c0d1c1c1e1e1e1f2f1g2g2h3g3h4g3h4i3i3j4i3j3i2h4g3j3f.k3h,TOOOOOOOPPOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP P P P P P P P P P P P P P P P PPPPPPPPPPPPPPPPP P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P H H H H H H H H H H H H H H H H I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I J J J J J J J J I I I I I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N O MU I MKOJxYݬߩިۧڨ٨٩רթԨөҨѨΨΨ˧ʨɩȨħæ§ÿ¼~]y_7]/c2^+a-a-a/a/`0`0a/`/a/a/a/a/`/a0c/c/c0c0c0d1c1c1e1e1e1f2f1g2g2h3g3h4g3h4i3i3j4i3j3i2g3g3j3e-i1h,UPNNN N N N O O N N N N N N N N N N N N N N N N N N N N N N N N OOOOOOOOPPPPPPPPPPPPPPPPOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP P P P P P P P P P P P P P P P PPPPPPPPPPPPPPPPP P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P H H H H H H H H H H H H H H H H I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I J J J J J J J J I I I I I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N M M M M M M M M N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N M M M M M M M M N N N N N N N N N N N N N N N O PQ K OKN{N(ߨިۧکڨ٩ר֨զӧҨѨΨΨ̧˨ɧȧĦæ§ÿ¼{Z{^7]/c2_*a,b,a-b-a/a/a/a/a/a/a/a/`/a0c/c/c0c0c0d1c1c1e1e1e1f2f1g2g2h3g3h4g3h4i3i3j4i3j3i2f2g3j3d,h0g+VRNNN N N N O O N N N N N N N N N N N N N N N N N N N N N N N N OOOOOOOOPPPPPPPPPPPPPPPPOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP P P P P P P P P P P P P P P P PPPPPPPPPPPPPPPPP P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P H H H H H H H H H H H H H H H H I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I J J J J J J J J I I I I I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K J J J J J J J J K K K K K K K K J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K J J J J J J J J K K K K K K K K J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N M M M M M M M M N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N M M M M M M M M N N N N N N N N N N N N N N N O SO M RM MrV8تߨިۧکڨ٩שרէԧҦѧΨΨ̧˨ɧȧĦ樨ÿý~yX|^5]/b/`+a,b,a-b-a/a/a/a/a/a/a/a/`/a0c/c/c0c0c0d1c1c1e1e1e1f2f1g2g2h3g3h4g3h4i3i3j4i3j3i2f2g3k4d,f.g+VSNNN N N N O O N N N N N N N N N N N N N N N N N N N N N N N N OOOOOOOOPPPPPPPPPPPPPPPPOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP P P P P P P P P P P P P P P P PPPPPPPPPPPPPPPPP P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H H H H H H H H G G G G G G G G G G G G G G G G H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M M M M M M M M M L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M L L L L L L L L M M M M M M M M L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M L L L L L L L L M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M N N N N N N N N N N N N N N N N N N N N N N N N M N RTDKަߩܨۧککר֦֨ԧҦѧШШ̧˨ɧȧƦŦħÿ¾¼tS~`7^0Z'b-a,b,a-b-a/a/a/a/a/a/`.`.`/a0b.c/b/b/b/c0c1c1e1e1f2f2f1g2g2h3g3h4h4h4i3j4j4i3i2i2e1g3j3e-h0h,VQNNN N N N O O N N N N N N N N N N N N N N N N N N N N N N N N OOOOOOOON N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOG G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H H H H H H H H G G G G G G G G G G G G G G G G H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M M M M M M M M M L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M L L L L L L L L M M M M M M M M L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M L L L L L L L L M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M N N N N N N N N N N N N N N N N N N N N N N N N PL O N JR&ߩܨۧڧڧשר֧էҦѧЧЦ̧˨ɧȧƦŦĦ¦¾¼wV}`9`2[*a,`+a+`,a,`.`.`.`.a/`.`.`.`/`/b.c/b/b/b/c0c1c1e1e1e1f2f1g2g2h3g3h4g3h4i3i3i3i3i2h1f2f2i2d,h0h,UONNN N N N O O N N N N N N N N N N N N N N N N N N N N N N N N OOOOOOOON N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOG G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H H H H H H H H G G G G G G G G H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K LLLLLLLLLLLLLLLLK K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L M M M M M M M M L L L L L L L L M M M M M M M M L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M L L L L L L L L M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M N N N N N N N N N N N N N N N N N N N N N N N N QJ O K OhFٷߨܧۧڧڧקר֧էӦҧЧЦ̧˨ʧɨǦťĦ¦¾yXz`8a3^-^+`,`,`.`._/_/`._.`.`.`.`.`/`/b.b.a.b/b/c0b0c1d0e1e1e1f1f1g2h3g3g3g3h4i3i3i3i3i2h1g3e1h1d,i1h,TNNNN N N N O O N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H H H H H H H H G G G G G G G G H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I J J J J J J J J I I I I I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M N N N N N N N N N N N N N N N N N N N N N N N N ML P OKyߨܧۨۧڧקר֧ըԧӨѧЦ̧̦˧ɨǧƦŦ¦¾|\w]8`3`0_+`,`,`.`._/_/_/_.`.`.`.`._.`/b.b.a.a.b/b/b0c1d0d0e1e1f1f1g2g2g3g3g3h4h2i3i3h2i2h1i5f2g0d,i1g+SNNNN N N N O O N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H H H H H H H H G G G G G G G G H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I J J J J J J J J I I I I I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M K OLRgCĴݨܨۨۨ٧ب֧ըԧӨѨѧϦΧ˦ʦǥƦŦ¦¾`v\7^1a1_.`,`,`.`/_1_/_/_/`.`.`.`._.`/a-b.a.a.b/b/b0b0d0d0e1e1e0f1g2g2g3g3g3g3h2i3i3h2h1h1j6f2h1f.j2f*RNNNN N N N O O N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M M M M M M M M M M M M M M M M M I PHOeP1۵ݨܨۨۨ٨٩ר֨ԧӨѨѧϦΧ˦ʦǥƦŧæ¾jx`<|\1`0`/_+_-^._.^0]0^.^.`._-_-_-_._.a-b.a.a.a.b/b0b0d0d0d0e1e0f1f1g2f2g3f2g3h2h2h2h2h1g0i5f2i2f.i1c'PONNN N N N O O N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G F F F F F F F F G G G G G G G G G G G G G G G G F F F F F F F F F F F F F F F F G G G G G G G G F F F F F F F F G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M M M M M M M M M M M M M M M M M J PGNw\ݨܧۨۨ٨٧צ֦ԧӨѨѧϦΧ˦ʧɥǦŧæ¾u}gCz]1_/_.^-_-^.^0^0]0]0^._-_-_-_-_._.a-a-`-a.a.b/a/b0c/d0d0d0e0e0f1g2f2f2f2g3h2h2h2h2h1g0g3e1i2f.g/_#MONNN N N N O O N N N N N N N N N N N N N N N N N N N N N N N N M M M M M M M M N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N MMMMMMMMMMMMMMMMM M M M M M M M M M M M M M M M LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLG G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G F F F F F F F F G G G G G G G G G G G G G G G G F F F F F F F F F F F F F F F F G G G G G G G G F F F F F F F F G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L K K K K K K K K L L L L L L L L K K K K K K K K L L L L L L L L L L L L L L L L L L L L L L L L K K K K K K K K L L L L L L L L K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M M M M M M M M M M M M M M M M M MOIQߨܧۧۨ٨٧צ֧եӧҨѧϧϨ̦ʧɥǦŦæ¾~mJy]4]1_/^-_-^.^0^0^0]0]0^._-_-_-_._.a-`-`-a.a.b/a/b0c/c/d0d0e0e0f1g2f2f2f2g1h2h2h2i1h1g0e1d0i2f.f+\ K NNN N N N N O O N N N N N N N N N N N N N N N N N N N N N N N N M M M M M M M M N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N MN MN MN MN MN MN MN M M M M M M M M M M M M M M M M M M LM LM LM LM LM LM LMLMLMLMLMLMLMLMLMF F F F F F F F F F F F F F F F E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H H H H H H H H H H H H H H H H G G G G G G G G H H H H H H H H G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H H H H H H H H G G G G G G G G G G G G G G G G H H H H H H H H G G G G G G G G H H H H H H H H H H H H H H H H H H H H H H H H I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L LLLLLLLLK K K K K K K K L L L L L L L L L L L L L L L L ODOyEдߨާݦڨ٨اצ֦ԥӦѨѨΦ̧˦ʧȦǤť¨¦Ŀbu[6`7\/^.^-^-^.^.^0^0^0^.^-^-^-_._.`/`/a.a.a.b/a/b0b0b0d0d0e1e1e0f1e1e1f0f0f0g/g/h-g/h/j2g2d-g/g+RFQN N N M M MMMM N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N M N M N M N N O N O N O N O O O O O O O O O O O O O O O O O O O N O N O N O N O N O N O N O N O N O N O N O N O N O N O N O F F F F F F F F F F F F F F F F E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H H H H H H H H H H H H H H H H G G G G G G G G H H H H H H H H G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H H H H H H H H G G G G G G G G G G G G G G G G H H H H H H H H G G G G G G G G H H H H H H H H H H H H H H H H H H H H H H H H I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L LLLLLLLLK K K K K K K K L L L L L L L L L L L L L L L L M HOY6ߨާݧۨ٨اצ֧եӧҦѨΦ̧˦ʧȦǤť¦¦Ŀmwa>xY2^2^.^-^-^-^.^.^0^0^.^-^-^-_._.`/`/a.a.a.b/a/b0b0b0d0d0e1e1e0f1e1e1f0f0f0g/g/h-h/h/h0h0f/g,`$PHO N N N N MMLMM N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O F F F F F F F F F F F F F F F F E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H H H H H H H H I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L LLLLLLLLK K K K K K K K L L L L L L L L L L L L L L L L K ML~[ߨާݧۨ٨اצ֧զԧҦѨΧͧ˦ʧȦǥƥ¦¦ĿzpMsV/`5]0].^-^-^-^.^.^.^.^.^-^-^-_.`/`/`0`0a.b/a/a/b0b0d0d0d0e1d1d1e1e1f2g0g0g0g0h/g0g0f1f/i2e*WMM M N N N N MMLMM M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N F F F F F F F F F F F F F F F F E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H H H H H H H H I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L J N}Gާݧ۩ڨاצ֧զԧҧҨΧͧ˦ʨɧȥƥ¦¦Ŀew\7^3]0].^-^-^-^-^.^.^.^.^-^-^-_._.`/_/`0a.a.a/a/a/b0d0d0d0c0d1d1e1e1f2f2f2g0f2g0f2f2d0e.j2a'NL QL N N N M MMLMMM M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H H H H H H H H I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K K K K K K K K K J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L J J J J J J J J K K K K K K K K L L L L L L L L L L L L L L L L K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L I MrMնߨާ۩ک٨ئ֧զԧҧҩϧͧ˦ʨɧȥƦæ¦ĿzjFwY0]1^.^-^-^-^-^-^-^.]-]-]-^-_._.`/_/_/`0`0`.a/a/a/c/c/c0c0d1d1d1d1e2e2e2e1e2e1e2e1e1e/f/["JLRK N M M M MMLMMM M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K K K K K K K K K J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L J J J J J J J J K K K K K K K K L L L L L L L L L L L L L L L L K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L K H K|h9Եߨިܩک٨اר֦Ԩӧҩϧ̧ͨ˨ɧȥƦæ¦Ŀ~[y_7}]2^0^.^-^-^-^-^-]-]-]-]-^-^-_._._/_/_/`0`.a/a/a/c/c/c0c0c0d1d1d1e2e2e2e2e2e2e2d2e/d-_&TJMPK L L L L L L KL L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F G G G G G G G G F F F F F F F F G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G F F F F F F F F G G G G G G G G G G G G G G G G F F F F F F F F G G G G G G G G F F F F F F F F F F F F F F F F F F F F F F F F G G G G G G G G H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K K K K K K K K K J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K HIf߭ߨިܩک٨اר֧ըӧҩϨΨ̧˨ɧȦǦæ¦ĿtsMy]4]2^0^.^-^-^+^-\-]-]-]-\-]._._._/_/_/`0`0`0a/a/c/b/b/c0c0c0d1d1d3d3d3d3d3d3d3d2d/c*UJJML L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F G G G G G G G G F F F F F F F F G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G F F F F F F F F G G G G G G G G G G G G G G G G F F F F F F F F G G G G G G G G F F F F F F F F F F F F F F F F F F F F F F F F G G G G G G G G H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K K K K K K K K K J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K KGIߨިܨ۩٨اר֧ըӧҩϨΨ̧˨ɧȦǦæ¦Ŀcv\7{]4]2]0].^-]-]-\-]-]-]-\-]._._._/_/_/_/`0`0a/a/b0b/b/c0c0c0d1d1d3d3d3d3d3d3d3d1d.b(PE LMH K L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D E E E E E E E E F F F F F F F F E E E E E E E E F F F F F F F F F F F F F F F F F F F F F F F F E E E E E E E E F F F F F F F F E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F G G G G G G G G F F F F F F F F F F F F F F F F G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G F F F F F F F F G G G G G G G G G G G G G G G G F F F F F F F F G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G F F F F F F F F G G G G G G G G H H H H H H H H H H H H H H H H H H H H H H H H G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H I I I I I I I I I I I I I I I I H H H H H H H H H H H H H H H H I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I J J J J J J J J J J J J J J J J I I I I I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K KGvEʹߨܧک٨اר֧ըӧҨΨΩͧ˨ɧȦǧĦ¨ÿ¾~Y|c;rT+]2c6[,X(a0[,[.\,]-].^/^/^/^/^/_/_/_/`0`0`.a/a/b0b0c1c1b1b1g4d1a/a/d2e3d2c0\&SKLNLJ J L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D E E E E E E E E F F F F F F F F E E E E E E E E F F F F F F F F F F F F F F F F F F F F F F F F E E E E E E E E F F F F F F F F E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F G G G G G G G G F F F F F F F F F F F F F F F F G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G F F F F F F F F G G G G G G G G G G G G G G G G F F F F F F F F G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G F F F F F F F F G G G G G G G G H H H H H H H H H H H H H H H H H H H H H H H H G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H I I I I I I I I I I I I I I I I H H H H H H H H H H H H H H H H I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I J J J J J J J J J J J J J J J J I I I I I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J IHuJ#Ȯߨܧک٨اר֧ըӧҨΨΩͧ˨ɧȦǧĦ¨ÿ¾syTx]8yY0^4`3\-Z+[.[.\,\,[,[,].^/^/^/_/_/_/`0`0`0a/a/b0b0b0c1b1c0`-a/c1d2c1b/d2f1SMH J LKJ K L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D E E E E E E E E F F F F F F F F E E E E E E E E F F F F F F F F F F F F F F F F F F F F F F F F E E E E E E E E F F F F F F F F E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F G G G G G G G G F F F F F F F F F F F F F F F F G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G F F F F F F F F G G G G G G G G G G G G G G G G F F F F F F F F G G G G G G G G G G G G G G G G G G G G G G G G F F F F F F F F E E E E E E E E G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H H H H H H H H G G G G G G G G H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H I I I I I I I I I I I I I I I I H H H H H H H H H H H H H H H H I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I J J J J J J J J J J J J J J J J I I I I I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J JIyU1ެߨܧک٨اר֧ըӧҨΨΩͧ˨ɧȦǧĦ¨ÿ¾opMtY4vV-\2^3[.\/]0\/[.Y*Z+\-_0^/^/]/^0_/_/`0`0`1`1a/b0b0c1c0c0c0d0e1e2c0a+]*[%MJ H I J K J K K K L L L L L L K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K LLLLLLLLK K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L M M M M M M M M D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F G G G G G G G G F F F F F F F F F F F F F F F F G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G F F F F F F F F G G G G G G G G G G G G G G G G F F F F F F F F G G G G G G G G G G G G G G G G G G G G G G G G F F F F F F F F E E E E E E E E G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H H H H H H H H G G G G G G G G H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H I I I I I I I I I I I I I I I I H H H H H H H H H H H H H H H H I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I J J J J J J J J I I I I I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J IIeFߨܧک٨اר֧ըӧҨΨΩͧ˨ɧȦǧĦ¨ÿ¾jlIuX3yV.[4a5Z/\/^1]0[,[,]._0^/^/]/]/_/_/`0`0`1`1`1b0b0b0c0c0h4d0a.d.e0b+V MKLKLL K J K K K L L L L L L K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L C C C C C C C C D D D D D D D D C C C C C C C C C C C C C C C C D D D D D D D D D D D D D D D D E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F E E E E E E E E E E E E E E E E F F F F F F F F G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H H H H H H H H G G G G G G G G H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H I I I I I I I I I I I I I I I I H H H H H H H H H H H H H H H H I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I J J J J J J J J I I I I I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J II|`ߨܧک٨اר֧ըӧҨΨΩͧ˨ɧȦǧĦ¨ÿ¾kpN{^9{W3Y2X,Z-]0]0\/[.\-].].].]/]/^0^0_/_/_1`1`1`1b0b0b/c0c/b,b,c,a+["PIK MOOMMMMJ J J J K K K K J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L C C C C C C C C D D D D D D D D C C C C C C C C C C C C C C C C D D D D D D D D D D D D D D D D E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F E E E E E E E E E E E E E E E E F F F F F F F F E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F E E E E E E E E E E E E E E E E F F F F F F F F G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H H H H H H H H H H H H H H H H G G G G G G G G G G G G G G G G H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H I I I I I I I I I I I I I I I I H H H H H H H H I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I HHߨܧک٨اר֧ըӧҨΨΩͧ˨ɧȦǧĦ¨ÿ¾orP{[8tP*Z.Z-Z-[.[.[.[,Z+].].]/]/]/^0_/_/_1_1`1`1a/b0b/b.b,g/g0`'TLGIJ MONNOONJ J J J K K K K J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L C C C C C C C C D D D D D D D D C C C C C C C C C C C C C C C C D D D D D D D D D D D D D D D D E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F E E E E E E E E E E E E E E E E F F F F F F F F E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F G G G G G G G G F F F F F F F F G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H H H H H H H H H H H H H H H H G G G G G G G G G G G G G G G G H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H I I I I I I I I I I I I I I I I H H H H H H H H I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I HH͹ߨܧک٨اר֧ըӧҨΨΩͧ˨ɧȦǧĦ¨ÿ¾muTfB`6]0Z-Y,Z-\/Z.Y-].].\.]/]/]/^0^0_1_1_0`1a/b0b/b.d.c,^%VLH IMORQOOQPMJ J J J K K K K J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L C C C C C C C C D D D D D D D D C C C C C C C C C C C C C C C C D D D D D D D D D D D D D D D D E E E E E E E E DDDDDDDDE E E E E E E E DDDDDDDDDDDDDDDDDDDDDDDDE E E E E E E E DDDDDDDDE E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDE E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F E E E E E E E E E E E E E E E E F F F F F F F F E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F G G G G G G G G F F F F F F F F G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H H H H H H H H H H H H H H H H G G G G G G G G G G G G G G G G H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H I I I I I I I I I I I I I I I I H H H H H H H H I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I HyG͹ߩާک٨اר֧ըԧҧШΩͧ˨ʧȦǧƦ¨ÿ¾wigAa7Z0~X.Z0\1\1[0\0\0\0]/]/]/^0^0_1_1_1`1`1b0b/b.b,W JH LTUUUVTQOQOJ J J J J J K J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L K K K K K K K K C C C C C C C C C C C C C C C C D D D D D D D D C C C C C C C C D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E D D D D D D D D D D D D D D D D D D D D D D D D E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F E E E E E E E E E E E E E E E E F F F F F F F F E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H H H H H H H H G G G G G G G G G G G G G G G G H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H I I I I I I I I I I I I I I I GmE)ڳӧ¾ƺּߪݨۧڦ٦קըԨԩӧЦΥͧͦʦȧƨĨ¦¾~zp`nJ}[7vR.zS-X3^7[2Z1Z0\0]1^2^0^0^2]/]/_/a2e3f5f4\([%Z#Y Y YVUVTQPPOMLJ J J I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K K K K K K K K K J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C D D D D D D D D C C C C C C C C D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E D D D D D D D D D D D D D D D D D D D D D D D D E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F E E E E E E E E E E E E E E E E F F F F F F F F E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H H H H H H H H G G G G G G G G G G G G G G G G H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H I I I I I I I I I I I I I I I FyVB}cnd`eVgfRlfOleLlgNliTrueտݨݧڦ٦ץ֨ԨԩӧѦΥ̦ͧͦȧƨƨ¦¿|wslawViG\:U2\7Z4Y0Z/Z0\0\0]._3a5e7i;l=l=i8g5`._)\'\%["Y XVTRQPOOMLJ J J I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C D D D D D D D D C C C C C C C C D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E D D D D D D D D D D D D D D D D D D D D D D D D E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F E E E E E E E E E E E E E E E E F F F F F F F F E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H H H H H H H H H H H H H H H H I I I I I I I Gp]tsetgQl]Cu_ChFkEi?e;h>h@gDzbDteKlݨݧڦ٦ץ֨ԨԩӧѦΥ̦ͧͦȧƨƨ¦¿|srsqme~\wTpJmFj@h=h=j=k>k>l@nBpDqCqBm>g6c1d2c-^)\%["Y WVSRQPOOMLJ J I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K B B B B B B B B B B B B B B B B C C C C C C C C B B B B B B B B C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C D D D D D D D D C C C C C C C C D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H H H H H H H H H H H H H H H H I I I I I I I Fq䃔pqgwhNjFjEh@f9e5k9s?k7n;sDuInGjFvVpۺިݧڦ٦ץ֨ԨԩӧѦΥ̦ͧͦȧƨƨ¦¿||wrmlihg_[}V|R{Q{OzNyLxLuIrFoCl>i:f5c1d2a.]([$Y XVUSRQPOOMKJ J I I I I J J I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I J J J J J J J J J J J J J J J J I I I I I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K B B B B B B B B B B B B B B B B C C C C C C C C B B B B B B B B C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C DDDDDDDDDDDDDDDDE E E E E E E E E E E E E E E E D D D D D D D D D D D D D D D D C C C C C C C C D D D D D D D D E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H H H H H H H H H H H H H H H H I I I I I I I Fz݀ccWYPk;m=rBwFsEm@m?oGhMx´޲ߨިݧڦ٦ץ֨ԨԩӧѦΥ̦ͧͦȧƨƨ¦¿|tsrrrokg`^]ZW}RyNuKtIsGpDoCm?j;g8d3b0`-]([&Y#Y XWSQPONNLKI I I H H I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I J J J J J J J J B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B C C C C C C C C B B B B B B B B C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D C C C C C C C C D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G F F F F F F F F G G G G G G G G G G G G G G G G F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F G G G G G G G G G G G G G G G G H H H H H H H E䍡baM`Q7~hL{^?]c?gEcBbAbCbCbCdDfFgFiHjGhChCkDlElCoDhBtYɽ߬ިݧڦ٦ץ֨ԨԩӧѦΥ̦ͧͦȧƨƨ¦¿~wvtssojgca\}Y|UzTyQwPsJqGoCmAl>if>f@gAhBhBiCjCiCkBlBn@o?p@p>r>k?pPq_ޱߨݧڦ٧ئשթթӧѦΥ̦ͧͦȧƧŨ¦¿~zxvsqnjgcb_[|VzTxRvOtKrHpDnBl>iiFhQȭިݧڦ٧ئשթթӧѦΥ̦ͧͦȧƧŨ¦¿~zxvtqnlgeb_[{XySvQvOtKrHpDnBk@ig:h;h;ij?i?k?k@l?l@m?o?o=p=qq=q?lEiJhPަݨިݧڦ٧ئשթթӧѦΥ̦ͧͦȧƧŨ¦¿~zxvsqnjgba^~[|VxSvQuOsKrHoEmCk@h;f9d6a1`.]*[(Y$X"V TRPONNNLJ I H H H H H H G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H I I I I I I I I I I I I I I I I A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B C C C C C C C C C C C C C C C C B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C D D D D D D D D C C C C C C C C C C C C C C C C D D D D D D D D D D D D D D D D D D D D D D D D C C C C C C C C E E E E E E E E E E E E E E E E D D D D D D D D D D D D D D D D E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F wEѮtsf_FxaAe>`7d;lD|ai?i>j?k@j@kAkClDkFlHkHlHpIlApBmAmIɵڨ٨ۨݧڦ٧ئשթթӧѦΥ̦ͧͦȧƧŨ¦¿~zxuspljgb`]~Z{UwRvOtNsJpHnDlBj?h;e8c5`0_-[*Z'Y$W"USQPONMMKI I H H H H H H G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G F F F F F F F F G G G G G G G G F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H H H H H H H H H H H H H H H H @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A B B B B B B B B A A A A A A A A B B B B B B B B C C C C C C C C C C C C C C C C C C C C C C C C B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C D D D D D D D D C C C C C C C C C C C C C C C C D D D D D D D D D D D D D D D D C C C C C C C C C C C C C C C C E E E E E E E E E E E E E E E E D D D D D D D D C C C C C C C C E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E DDDDDDDDDDDDDDDDE E E E E E E E DDDDDDDDE E E E E E E E DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDE E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F E E E E E E E E F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F uEhcNnaAqe;pf7nc7xe?cF]AcAf?g>g?h>j>i>k>k?k?kAlBlDlDlGlGfBvOj=wGl@qK~ȼܨ٩ܨݧڦ٧ئשթթӧѦΥ̦ͧͦȧƧŨ¦¿~zxuspnjgb_\~Z{UwRvOtNsJpHnDlBj?h=e8c5`0_-[*Z'X#W"USQPOMMMJI I H H H H H H G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G F F F F F F F F G G G G G G G G F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H H H H H H H H H H H H H H H H ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B A A A A A A A A A A A A A A A A C C C C C C C C B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C D D D D D D D D C C C C C C C C C C C C C C C C D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D E E E E E E E E E E E E E E E E D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D F F F F F F F F E E E E E E E E E E E E E E E E D D D D D D D D D D D D D D D D E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F E E E E E E E E F F F F F F F F F F F F F F F uFެc]Fpb>og8ni8nh9ve>`D^FbAe?f>g?g@i?i?j?k@k@kAlBmClCmDmDoFnDmArFlCtRn˿ܧ۩ܩިۦ٧ئשըԩӧѦΥ̥ͦ˥Ǧŧŧ¿~ywuronifc`\}Z|VyTvQtNsJpHmElBj?h=e8c5`0_-[*Z'Y$W"T SQQNMMLIHF G G G G G G G F F F F F F F F F F F F F F F F G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H H H H H H H H ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B A A A A A A A A A A A A A A A A C C C C C C C C B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C D D D D D D D D C C C C C C C C C C C C C C C C D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D E E E E E E E E E E E E E E E E D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D F F F F F F F F E E E E E E E E E E E E E E E E D D D D D D D D D D D D D D D D E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F E E E E E E E E F F F F F F F F F F F F F F F uFԭ}e`Grb=qg7oh6lh8ud=^C]FbAe?f>g?g@hAi?j@jAjAkAlBlClCnCnCpEpCm@pEjCqOnǺߦݩܩܩިۦ٧ئשըԩӧѦΥ̥ͦ˥Ǧŧŧ¿}{wurpnife`]}Z{VyTvQtNrLpHmElBi@h=e8c5`2_-[*Z'X#W"T SQQNMMLIGF F G G G G G G F F F F F F F F F F F F F F F F G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H H H H H H H H ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A A A A A A A A @ @ @ @ @ @ @ @ A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B A A A A A A A A A A A A A A A A C C C C C C C C B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C D D D D D D D D C C C C C C C C C C C C C C C C D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D E E E E E E E E E E E E E E E E D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D F F F F F F F F E E E E E E E E E E E E E E E E D D D D D D D D D D D D D D D D E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F E E E E E E E E F F F F F F F F F F F F F F F uFɮwf`Itb=tf6qf4nf7vc=_C]CbAe?e?f@g@g@i?i?jAjAkAkAkBlCnCnCpBpAnAqFjCoMqƸߨݩܩܩިۦ٧ئשըԩӧѦΥ̥ͦ˥Ǧŧŧ¿}{wurpnife`]}Z{VyTvQtNrLpHmElBi@ge?f@f?g@i?i?jAjAj@kAlBlCmBoCp@o@oBqFlEnMxɻߨݩܩܩިۦ٧ئשըԩӧѦΥ̥ͦ˥Ǧŧŧ¿}{wurpnife`]|Y{VxSuPsMqKoGmEkAh?g > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A A A A A A A A @ @ @ @ @ @ @ @ A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B C C C C C C C C B B B B B B B B B B B B B B B B C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C DDDDDDDDDDDDDDDDC C C C C C C C C C C C C C C C C C C C C C C C D D D D D D D D C C C C C C C C D D D D D D D D D D D D D D D D D D D D D D D D E E E E E E E E E E E E E E E E D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E wEijb[Ht\>za7|d6|g:~e=a?^>c@d>e?e?f?g@hAhAi@jAj@kAlBmClCnBp@p>p@pEkDkJ̽ߩݩܩܩިۦ٧ئשըԩӧѦΥ̥ͦ˥Ǧŧŧ¿}{wurpnifd_]|YzUxSuPsMqKoGlDkAh?g > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B C C C C C C C C B B B B B B B B B B B B B B B B C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C DDDDDDDDDDDDDDDDC C C C C C C C C C C C C C C C C C C C C C C C D D D D D D D D C C C C C C C C D D D D D D D D D D D D D D D D D D D D D D D D E E E E E E E E E E E E E E E E D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E yE윳c\Ks]A|_:b7f:g=b>_=c?d>d>e?f?g@g@hAi@i@j@kAlBlBlCnBr?q=p@nCiDiJ¯ߨܧܨܩިۦ٧ئשըԩӧѦΥ̥ͦ˥Ǧŧŧ¿|{wurpnifd_~\|YzUxSuPsMqKoGlDjAh?g > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ????????????????????????????????????????????????????????@ @ @ @ @ @ @ @ ????????@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B C C C C C C C C B B B B B B B B B B B B B B B B C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C D D D D D D D D C C C C C C C C D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D }DbaSu_F~]<`8c:ed>e?f@f@g@g@i@i@iAiAkAlBlCmBr?o=nAlDjGkPϫߨܣܨܩިۦ٧ئשըԩӧѦΥ̥ͦ˥Ǧŧŧ¿|{wurpnifd_~\|YzUxSuPsMqKoGlDjAh?f;d7b4_1^,Z)Y&W"V!SRPOMKLKHFE E F F F F F F E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ????????????????????????????????????????????????????????@ @ @ @ @ @ @ @ ????????@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B C C C C C C C C B B B B B B B B B B B B B B B B C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C D D D D D D D D C C C C C C C C D D D D D D D D D D D D D D D D D D D D D D D D C C C C C C C C D D D D D D D D C C C C C C C C D D D D D D D D D D D D D D D D C C C C C C C C D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D C C C C C C C C D D D D D D D D C C C C C C C C C C C C C C C ~Cbf[pbL{]@]9`8c:d;~de?f@f@g@g@i@i@jAiAkAlBlCmBn?l;lAlFmMpX۩ߦܠܦܩިۦ٧ئשըԩӧѦΥ̥ͦ˥Ǧŧŧ¿|{wurpnifd_~\|YzUwRuPsMqKoGlDjAh?e;d7b4_1],Z)X&W"V!SRPOLKLJHFE E F F F F F F E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F ========================================================================> > > > > > > > > > > > > > > > > > > > > > > > ========> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ????????????????????????????????????????????????????????????????????????????????????????????????????????@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A B B B B B B B B A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D|d]LrZB_>fC`8za7iAd=d@d@eAf@f@g@g@gAgAi@h@iAjBkAk@rCk?jCeCdIsôۨޝݤܩިۦ٧ئשըԨҧѦΥ̥ͦ˦Ȧŧŧ¿}zvtqolhed_~\|YzUxSuPsMqKoGlDi@g>e;d7b4^0],[*X&W"T RSOPMLKJHGE E E E E E E E F F F F F F F F E E E E E E E E F F F F F F F F E E E E E E E E F F F F F F F F F F F F F F F F E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F ========================================================================> > > > > > > > > > > > > > > > > > > > > > > > ========> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ????????????????????????????????????????????????????????????????????????????????????????????????????????@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A B B B B B B B B A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C D D D D D D D D D D D D D D D D D D D D D D D D|þZ^Rl^H}`E}W7hD~e=|c;c?c?d@eAf@f@g@g@hAgAi@i@iAiAkAjAoEa7mIpRiRгݨޜݤީިۦ٧ئשըԨҧѦΥ̥ͦ˦ȦŦħ¿}zvtqolhed_~\|YzUwRuPsMqKoGlDi@g>e;d7b4]0],[*X&V"T RSOOMLKJGGE E E E E E E E F F F F F F F F E E E E E E E E F F F F F F F F E E E E E E E E F F F F F F F F F F F F F F F F E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F ========================================================================> > > > > > > > > > > > > > > > > > > > > > > > ========> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ????????????????????????????????????????????????????????????????????????????????????????????????????????@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A B B B B B B B B A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C D D D D D D D D D D D D D D D D D D D D D D D Dqgzqc_Ms\F~\?~[9~d?}de;d7b4]0],[*X&V"T RSOOMLKIGGE E E E E E E E F F F F F F F F E E E E E E E E F F F F F F F F E E E E E E E E F F F F F F F F F F F F F F F F E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F ================================================================================================================> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ????????????????????????????????????????????????????????????????????????????????????????????????????????@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C D D D D D D D D D D D D D D D D D D D D D D D DcIREpeQ}_FaCrX4gBc?c?d@d@e?f@fAfAhAhAh?i@h@iAiAjBfAsReI|eO;ߢݦިݧڦ٦ץ֨ԧӨҦХ̦̥ͤ˥ǦŦĦ¿|zvtqolhec^~\{XyTwRtOrLqKnFkCi@g>e;c6b4]0\+Z)X&U!SRROOMKKIGFE E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F ================================================================================================================> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B C C C C C C C C C C C C C C C C B B B B B B B B B B B B B B B B C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B BoQkyWTE~fP^D~b@z_:b>c?c?d@dAeBe@fAg@hAgAhBh@iAiAhCiHjM{cKpƻߩߩިݧڦ٦ץ֨ԧӧѦХ̦̥ͤ˥ǥĦĦ|zvtqolhec^}[{XyTwRtOrLoJnFjCh?f=d:c6a3\/\+Z)X&U!SRRNOMKJIGFE E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F ================================================================================================================> > > > > > > > ========================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A A A A A A A A @ @ @ @ @ @ @ @ A A A A A A A A @ @ @ @ @ @ @ @ A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B B B B B B B B B[;ݧgnajTBwU=gHy]:b>b>c?d@dAdAf@e@g@g@gAgAh@h@iAiCkKyX>v`״߯ުݨݧڥئץ֨ԧӧѦХ̥ͤˤʥǥĥæ|zvtqolhec^}[{XyTvQtOrLoJnFjCh?e=d:b6a3\/\+Z)W%U!SQQNNLKJIFFE E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E ================================================================================================================> > > > > > > > ========================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ????????????????? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A A A A A A A A @ @ @ @ @ @ @ @ A A A A A A A A @ @ @ @ @ @ @ @ A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B B B B B B B B BpG'ԣŹq_NaJuW:eDb?b>c?d@c@dAf@e@g@g@gAgAh@h@iAhDiIsY̵ߩߴެݧܦ٥ئפէӧӧѥϥ̥ͤˤʤƥĥæ~|zvtqolhec^}[zWyTvQtOrLoJnFiBh?e=d:b6a3\/\+Z)W%U!SQQNNLKJHFFE E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E ========================================================================<<<<<<<<<<<<<<<<<<<<<<<<========<<<<<<<<> > > > > > > > ========================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ? > ? > ? > ? > ? > ? > ? > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ????????????????> ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? ? @ ? @ ? @ ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A A A A A A A A @ @ @ @ @ @ @ @ A A A A A A A A @ @ @ @ @ @ @ @ A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B B B B B B B B Bj:˧໺h[KpbOs`EaBa?b?c@d>e?f?f?h>g@g@gBhChChFhJzePɷخެݧܦ٥ئצէӧӧѥΥ̥ͤˤʤƥťæ~|zvtqnlhfb^}[zWxUvQsNqLpJnFjBh?f=d:c6a3\/\+Z)W%T RQPNNLKJGFFE E D E E E E E DDDDDDDDE E E E E E E E DDDDDDDDE E E E E E E E DDDDDDDDDDDDDDDDE E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDE E E E E E E E E E E E E E E E >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>================================================================================================> > > > > > > > ========> > > > > > > > ================================================================================> > > > > > > > ================> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B ~Bñ훳_upOSG|^EaBa@]8`:h?i>e8h=h>gAfDdGeIdM}fVӺޫާڨ٧ب֧ըԦҧЦϥͦʨʧɥǤƤä¢}zvsqnlhfc_|\{YxWvSsQrMoImEkCh?f=d:b5`2\/[*X'V$T SQOOOLJJHFD D D C D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D ========================================================>>>>>>>>========>>>>>>>>>>>>>>>>>>>>>>>>================================================================================================> > > > > > > > ========> > > > > > > > ================================================================================> > > > > > > > ================> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B A~qhaNu]A~`CiHeBY4^7nDc > > > > > > > ========> > > > > > > > ================================================================================> > > > > > > > ================> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B A{\癸qrU^Ia]EzfMaI\A^C`HaJy^Ik`Lu{jɿީާڧئר֧էӦҧЧϧ˦ʨʧɥǥťæ|xuqomkfdb~`|\yYwVuTrPqLoImEjBh?f=d:b5`2\/[*X'V$T SPOONKJIHFD C C B B C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<========<<<<<<<<========================================================================================================================================================================================================================================================================================================================> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B]<ʕzvmhYscS|hWsdrݻިݧڧئר֧էӥѨЦΧ˦ʧɦȥǥħé|xuqomkfeb~`{[yYwVuTrPqLoImEjBh?f=d:b5`2\/Z)X'U#T RPOONKJIGE D C C B B C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<========================================================================================================================================================================================================> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A BqK)ݨݩڧئקզԧӥѨЦΦʥɧɦȦƦĩë|yurpmkgeb~`{[yYwVtSrPqLoImEjBh?f=c9b5`2[.Z)W&U#T RPNNNKIIGE D B B B B C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<========================================================================================================================================================================================================================================================================================================================================> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A A A A A A A A @ @ @ @ @ @ @ @ A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A ApB ͵ߧݪݨ٧ئקզԦҧѧϦΦʥɧɦȦƦĪ«|yurpmkgea}_{[xXwVtSqOpKnHlDjBg>e > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ????????????????????????????????????????????????????????@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A A A A A A A A @ @ @ @ @ @ @ @ A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A @t@ߧݪݨ٦ץ֧զԦҧѧϦΦʥɧɦȦƥê«{xtqomkfda}_{[xXvUtSqOoKnHlDiAg>e > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ????????????????????????????????????????????????????????@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A A A A A A A A @ @ @ @ @ @ @ @ A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A ? {@ߧݩܨ٦ץ֧ըԨҧѧϦΦʥɦȥǦƥè¨{wtpnljeca}_zZxXvUtSqOoKnHlDiAg>e > > > > > > > ================================================================================================> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ????????????????????????????????????????????????????????????????????????????????????????????????????????????????@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A 5L#eߧާݨۨ٩بשէөӨҧϨΩ˨ʨȦƥŦĦ¦{xtpnljeda}_zZxXvUsRqOoKmGkCh@f=d;b8_3^0Z-Y(U%T"SQNMMKIHHFE C A A A A B B B B A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C <<<<<<<<;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<;;;;;;;;<<<<<<<<;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<========<<<<<<<<================================================================================================================================================> > > > > > > > ================================================================================================> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ????????????????????????????????????????????????????????????????????????????????????????????????????????????????@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A @ ?:r\8׶ߧިݨۨ٩بרԧӨҨҩϨΩ˨ʨȦƥŦŤ¤{wtpnljeca}_zZxXvUsRqOoKmGkCg@f=c;b8_3]0Z-Y(U%T"RQNMMKIHHFD C A A A A B B B B A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C ; ; ; ; ; ; ; ; ::::::::::::::::::::::::; ; ; ; ; ; ; ; ::::::::; ; ; ; ; ; ; ; ::::::::::::::::::::::::::::::::; ; ; ; ; ; ; ; ;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<========<<<<<<<<================================================================================================================================================> > > > > > > > ================================================================================================> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ????????????????????????????????????????????????????????????????????????????????????????????????????????????????@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ? E4eBپߧިݨ۪٩بרԧӨҨҩϨΩ˧ɨȦƦťĤ¢~{wspnljec~`|^zZwWuTsRpNnJlGkCg@f=c;a7_3]0Z-Y(U%T"RQNMMKIHGFD B A A A A B B B B A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<========<<<<<<<<================================================================================================================================================================================================================================================================================================================> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ????????????????????????????????????????????????????????????????????????????????????????????????????????????????@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ? >>uCߧިݨ۩بק֨ԧӨҩҨΨΩ˧ɧǦƦťĢ~zwspnkiec~`{^yYvWuTsRpNnJkFjBg@e > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????> > > > > > > > > > > > > > > > ????????????????> > > > > > > > > > > > > > > > ????????????????@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ? 7AFsOߧާާܧکبק֨ԧӨҨѨΨΨʧɧǦƥĥģ~zwsonkiec~`{^yYvWuTrRpNnJkFjBf?e>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????> > > > > > > > > > > > > > > > ????????????????> > > > > > > > > > > > > > > > ????????????????@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ? > = A pM%ߧަݧܧکبק֧ӨҨѨѨΧͨʧɧǥťĥĥ~zvsomkidb~`{^yYvWtTqQpNnJkFjBf?e>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????> > > > > > > > > > > > > > > > ????????????????> > > > > > > > > > > > > > > > ????????????????????????????????? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? > > > > > > > > > > > > > > > > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? > A= @lAƿߧަݧܧکتש֩ӨҨѨѨΧͨʦȧǥťĦç§}zvromkidb}_z]yYuVsSqQoMmIkFjBf?e>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????> > > > > > > > > > > > > > > > ????????????????> > > > > > > > > > > > > > > > ????????????????????????????????> ? > ? > ? > ? > ? > ? > ? > > > > > > > > > > > > > > > > > > > ? > ? > ? > ? > ? > ? > ? > > < A Du?ߧަݧܩڪ٪רԧҨѧШШΧͨͦʧɥŤĤ§¿q|q]uhRraLn^Gr`IwdOveR|l[ziy}yvrpmkidb}_{[yYuVsSqQoMmIkFjBf?d=b:`6^2\0Y,W(T$R!POMKJJHGEE B A A A A A A B B B @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B 99999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :::::::::::::::::;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<========<<<<<<<<================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>================================================================================================================================> > > > > > > > ================================================================================================> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > = F >A fRߨީިݧܧګ۪ک֨ѧϥ˦ʧ̧̥ͧͧͦ˥ɢƥ¨ú¶²w_s_Fw_C|^A_B_A`B`BaCaCaDbEcFcFhKuWlz~~~xwrpmkhc~a|^{[yYvUrRpPoMnJjEhCe>c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>================================================================================================================================> > > > > > > > ================================================================================================> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > = B ;AxL4ٱިީިݧڧګݪکըѦ̥ʦɧ̨ϧϦϩЩͥǡ´ŴpjSfY?waEcD_>^=`=`=a>a>a@a@a?dBeCfCdCgEkKqPfr~~|}|wtpmkhe~`|^{[yXvUrRpPoMmIiFhCe>c > > > > > > > ================================================================================================> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > A>F n7Ĺިީިݦ٧ک۪٩ըѦ̧˦̥̥ϧѨШΧɨêÿĻŸ~kf]In`Iu`EsY;}^=_=_<`=`=a>a>a@a@_=b@eCfDdBb?`?_?iKx[nx{|zyvtomkge~`|^{[yXvUrRoOnLmIiFhCe>c > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > @ DDy6~ާݨݨݦ٥ئ٨٩թҨΨͦͥϢͦҦΤǨð´ĽtfTbS@n\EqZ@y^CdE~[:_=_<`=`=a>a>b@a@a?`?`?cAdBeCfEeDbBfHoR~cszysvroljgc~a|^zZxWvUrRoOmLmIiFhCe>b;a9^5[2Y.X+U&Q#O NLKJIHFDB@ A @ ? ? ? ? ? ? @ @ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A A A A A A A A 8888888899999999999999999999999999999999999999999999999999999999999999999999999999999999999999998888888888888888888888889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 ::::::::::::::::;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<========<<<<<<<<<<<<<<<<========================================================================================================================================================================================> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ;=D :=WB߫ާݨݧܦ٥ؤצשթҫѩϦϥТϤϤ˥IJĺǿjVDv[GrU@yZCdIvT7sP/jH_<_<`=`=`?`?b@a@dDaB_>_>`?cBeCeEfE`AaAlN}`ntusqoljgb}`{]zZxWuTsQpNmLmIhEgBe>b;`8^5[2Y.V*U&Q#NNKKJHGFDA@ @ ? > > > > > > ??> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A A A A A A A A 88888888999999999999999999999999999999999999999999999999999999999999999999999999999999999999999988888888888888888888888888888888888888888888888888888888888888889999999999999999::::::::::::::::999999999999999999999999999999999999999999999999::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<========<<<<<<<<<<<<<<<<==================================================================================================================================================================================================================================? 2Au<ïݧݨݧܦ٤פץըԪӬѫШЦФѡ̣ǭŹvo^K~_J{T>[C_E}X<`BgEZ8`<_<`=`=`?`?a@a@bB`Aa@a@bAcBcBcBhFdDcBfEmMwWhtrpnkigb}`{]z\xXuTrPoNmLkHiDgBd=b;`8^5[2Y.V*T&P"NMKKIHGEDA@ ? ? > > > > > > ??> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888877777777777777777777777788888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<========<<<<<<<<<<<<<<<<================================================================================================================================================================================================================================?> ;:= :gߥݨݨݧܧؤף֣ըԪӬҭӪҧѥРȧƳªuoaKiO7{U=_FY=yQ5Y;^>\:`<`<`<`=`=`?`?`A`A_?`AbCdCdCfBeAfBeAeDgEfDcCiHwXiqoljifb}`{]z\xXuTrPnMmIkHiDfBd=b;`8^5[2Y.V*T&P"NMKJIHGECA@ ? > > > > > > > ??> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ????????????????> > > > > > > > > > > > > > > > ????????????????????????????????????????????????????????????????????????@ @ @ @ @ @ @ @ 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888877777777777777777777777788888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<========<<<<<<<<<<<<<<<<================<<<<<<<<================================================================================================<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<========================================<> 6C4?qQ&ɪߨݧܧܧܧؤ֣֣ԨԪԮԭԬөѨϤůŵǺg_HdO4aG[?V9Y<_?^>^<`<`<`<`c?c@c?c>eAfBd@dBlJwVnoljhfb}`{^z\xXuTqQnMlIkHhDfBd=b;`8]4[2Y.V*S%P"NLKJIHGEBA@ ? > > > > > > > ??> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ????????????????> > > > > > > > > > > > > > > > ????????????????????????????????????????????????????????????????????????@ @ @ @ @ @ @ @ 77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777778888888877777777888888889999999999999999999999998888888899999999888888889999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::; :9999:; ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<;;;;;;;;;;;;;;;;<<<<<<<<;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<========================<<<<<<<<================<<<<<<<<========<<<<<<<<================================================================================================================================================================================================@ 5B7:9|Iߨݧܩܨۧؤ֣֠ѥѫկحԪѫϬˮŵ˿daLpaGx\>~Ze@fAfAfBgCgE_pmdhh|a|_z]xZvVtSpPmLkHjGgCeAd=a:_7]4Z1X-U)S%P"MLJJIGFCA@ > > =======>>========================> > > > > > > > > > > > > > > > > > > > > > > > ????????????????> > > > > > > > > > > > > > > > ????????????????????????????????????????????????????????????????????????????????77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777778888888877777777888888889999999999999999999999998888888899999999888888889999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::9999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<;;;;;;;;;;;;;;;;<<<<<<<<;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<===============================================================================================================>C 7<4??<sNߧܧܩܨۧئ֤֣ӦӪ֫֫ҪϭͰưŽuwch^FiT8yZ;~[:|[:z[:{]:{]:z^;{_<{`;}`;`<`<`=`=`?_?`@`@bAbAb@cAd@d@f@e@f>f>f>g?fAfAgBhCrRckghg~d}cy]xZuXtSpPmLkHjGgCeAc<`:_7]4Z1X-U)S%P"MLJJGFFCA@ > > =======>>========================> > > > > > > > > > > > > > > > > > > > > > > > ????????????????> > > > > > > > > > > > > > > > ????????????????????????????????????????????????????????????????????????????????7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777888888887777777788888888999999999999999999999999888888889999999988888888999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::9999::9999999999999999999999999999999999999999::::::::::::::::::::::::::::::::99999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ::::::::::::::::::::::::; ; ; ; ; ; ; ; ::::::::::::::::; ; ; ; ; ; ; ; ::::::::::::::::::::::::::::::::::::::::;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<===============================================================================================================>@<85 ?C8n@Ǵߧܧܩܨۧإեզԧԩ֧ԨЪͱʷĴ{^XAm\AnT6{Y;^=x\9w]9x^:x^:y_;z`<{_<}_<`=_=`>_>`?_?`@`@bAbAb@cAe@d@f@f@f>f>f>g?fAfAgBgCfEtTgjdce{ax\wZuXsRpPmLkHkFgCeAc<`:_7\3Z1X-U)R$O!MKJHGFECA? > ========>>========================> > > > > > > > > > > > > > > > > > > > > > > > ????????????????> > > > > > > > > > > > > > > > ????????????????????????????????????????????????????????????????????????????????7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777888888887777777788888888999999999999999999999999888888889999999988888888999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::99999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<===============================================================================================================><@ 99 <?@y8 ާܦۨۨۦק֨ԨԧԦեӦЫ̵ȼǿpiUiZ@q[?z^?{Y;|]_>`?_?`@`@bAbAb@cAe@d@f@e@f>f>f>g?fAfAgBgCdCkK~ajc}aew]x\w[uXsRoOnJkHjEfBd@b;_9^6\3X0W,T(R$O!LKIHFFECA? > ========>>================================================????????>>>>>>>>> > > > > > > > > > > > > > > > ????????????????????????????????????????????????????????????????????????????????7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777888888888888888877777777777777778888888888888888888888888888888888888888888888887777777777777777777777777777777788888888888888889999999999999999888888888888888899999999999999999999999999999999999999999999999999999999: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 99999999: : : : : : : : : : : : : : : : 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<=>@: =::E >|Y?ܺߨީܨۨۨۨש֩ӪԥԤբӥЭ̹ƹ{fU;v^BwYsU8u\:u\:x];x];z^<}^=^=]=_=^=_>_>`>`>a?a?bAbAb@cAd@d@e@e@f>e>e@fAeAfAfCfCfFgFuVec~bev\w^w[uXsRoOmIjGjEfBd@b;_9^6[2X0V,T(Q#N LJIGFFEB@ ? > =<======>>================================================????????>>>>>>>>> > > > > > > > > > > > > > > > ????????????????????????????????????????????????????????????????????????????????66666666777777777777777777777777777777777777777766666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777778888888888888888777777777777777788888888888888888888888888888888888888888888888877777777777777777777777777777777888888888888888899999999999999998888888888888888999999998899998899999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999988888888888888888888888888888888999999999999999999999999999999999999999999999999::::::::::::::::::::::::99999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<;;;;;;;;<<<<<<<<;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<=B>7 << :>9 v:Ķߨިۨۨۧڨש֩ҪԤաԟԥѬʷxjTkS7yZ;~\>pP3}`EoT9w[^=_>_>a>a>b?b?bAaAb@cAd@d@e@e@e>e>d@eAeAeAeCeEfEcClMz[dd}dy`w^vZtWrSoOmIjGjEeAc?`:^8\5[2W/U+S'Q#N KJHGEEEB@ ? = =<======>>================================================>>>>>>>>>>>>>>>>================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>66666666777777777777777777777777777777777777777766666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777778888888888888888777777777777777788888888888888888888888888888888888888888888888877777777777777777777777777777777777777777777777788888888888888887777777777777777888888888899998888888888888888888888888888888888888888889999999999999999999999999999999988888888999999999999999988888888888888888888888888888888999999999999999999999999999999999999999999999999::::::::::::::::::::::::99999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<;;;;;;;;<<<<<<<<;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<=A<: 9 <; 79 5lߘߨިۨۨۧڨרլԬԣԝҝӣЩŲ·~mY@vV9Y;[=vT7y^DqX>xZ=z[<}[=[=\>\?\?\=]>]>_>_>a>a>c=c=b@b@b@bAd@c@e@d@d@d@d@eAdBdBdEeEeDdDfHuVfdy`{bv]vZtWqRoOmIjGjEeAc?`:^8\5Z1W/U+S'P"MKIHFEEDB@ > = <<======>>================================================>>>>>>>>>>>>>>>>================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>66666666777777777777777777777777777777777777777766666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777778888888888888888777777777777777788888888888888888888888888888888888888888888888877777777777777777777777777777777777777777777777788888888888888887777777777777777888888887899998788888888888888888888888888888888888888889999999999999999999999999999999988888888999999999999999988888888888888888888888888888888999999999999999999999999999999999999999999999999::::::::::::::::::::::::99999999:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;;;;;;;;;;;;;;;;;;;:;:;:;:;:;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<;;;;;;;;<<<<<<<<;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<=;<? 9 9 < 8B9vD&ѣߨݨۨۨۧبרխժԢӜўЦ̮uanW=tU6`?xT6`CoT:t[AxZ=|Z<[=[=[>\?\?\=]>]>_>_>a>a>b?b?b@b@a@bAd@c@e@d@d@d@d@eAdBdBeCeCdAfEfGrTe}`uY|`w[uZtWqRnNlKkGjEeAd=`:^6\5Z1W,T*S'P"MKIHFEEDB@ > = <<======>>========================<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>========================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>777777777777777766666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777888888888888888877777777777777778888888888888888777777778888888888888888999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 ::::::::::::::::::9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :::::::::::::::::::9 :9 :9 :9 :9 :9 :9 :::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;<<<<<<<<;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<=>>;9 8 : <=:<}ާܩܨۧبקըԨԨӦѥҧ՟ʪµoXBtY>r[;t[9yZ;yYtY>z[<|[:|[:\;\;\<\<]=]=^=^=_>_>`?`?`>b@b>b>c?d@c@dAdAe@d@eAeAfBfBfBfBeBhDgDgFyYdx[{^x[vYrVpQoOlKjFhCe>c;`8^6[4Z1W,T*R&P"MJIGFDBA?= = = < < < < ======>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>========================================================================================> > > > > > > > ================777777777777777766666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777888888888888888877777777777777778888888888888888777777778888888888888888999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 ::::::::::::::::9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 ::::::::::::::::9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 ::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;<<<<<<<<;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<=>=:98 : =?;@ kJ)Ϲީީܩܨ٧ب֧ըԨԧԤѦЩҡǭŽķtX@vZvZ_>`?`?`>b@b>b>c?d@d@dAdAe@e@eAeAfBfBfBeBf@gAfDgCwWbyY{[wZuXsTpPnNlKjFhCe>c;`8^6\3Y1W,U)R&P"LJHGEDBA> = = < < < ; ; <<<<==>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>========================================================================================> > > > > > > > ================77777777777777776666666666666666666666666666666666666666666666666666666666666666666666666666666677777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888887777777777777777888888888888888877777777888888888888888899999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999998888888888888888999999999999999988888888888888888888888888888888::::::::::::::::9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 ::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;<<<<<<<<;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>=;9 8 9 =?:Bh. ީީܨ۪٩ب֧ըԨԩԨӧЦϠƯŴotX@wYvZ_>`?`?`>b@b>b>c?d@d@dAdAe@e@eAeAfBfBfBeBf@f@fDfBtT`yYzZwZuXrSpPnNlKjFhCe>c;`8]5\3X0W,U)R&O!LJHGEDBA> = = < ; < ; ; <<<<<<========================================================================================================================================> > > > > > > > ================77777777777777776666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666677777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888887777777777777777888888888888888877777777888888888888888899999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999998888888888888888999999999999999988888888888888888888888888888888::::::::::::::::9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 ::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<=<97 7 9 <>=<?{G0αީިۨ۩بקզԨԧӧҩԨѥ͡ůŭ~n]vW@wYvZ_>`?`?`>b@b>b>c?d@d@dAdAe@d@eAeAfBfBfBeBgAe?gEfBpP_{[yYvYtWrSoOlMkJiEgBd=b:_7]5[2X0V+T(Q%O!LIHFECA@> < < < ; ; ; ; <<<<<<================================================================================================================================================================55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555566666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666677777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888899999999888888888888888899999999999999999999999999999999999999999999999999999999999999998888888888888888999999999999999988888888888888888888888888888888::::::::::::::::9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 ::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<><97 7 9 <=A 5:7~ݮߩިݨۨ۩بשըԧӧӦѫիҥ͠İĬwgVvW@yYwY_>`?`?`>b@b>b>c?d@d@dAdAe@d@eAeAfBfBfBeBhBe?hFfBmM^~^yYvYtWqRoOlMkJhEgBc < < < ; ; ; ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<========<<<<<<<<<<<<<<<<========================555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666677777777666666666666666677777777666666667777777766666666666666667777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777888888888888888888888888999999998888888888888888999999999999999999999999999999999999999999999999999999999999999988888888888888889999999999999999888888888888888888888888888888889999999999999999888888888888888899999999999999999999999999999999::::::::::::::::99999999999999999999999999999999;;;;;;;;::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<>=8 6 8 : ; < < 975 S1Ƿߨݨݨۨ۩بשըԧөӦЪԪѧ͢ŰĪucRvV?xX;sZ:sZ8zX:|X:xW=xX;|Z<|[:|[:}\;\;]<\<]=]<^=^=_>_>`?`?`>b@b>b>c?d@d@dAdAd@d@eAeAfBfBfBeBhCe?iGfBjJ~]_yYuXsVqRnNkLjIgDfAc_>`?`?`>b@b>b>c?d@d@dAdAd@d@eAeAfBfBeBeBhCd>iGeAfF}\`wWuXsVpQnNkLjIgDfAc9 7 8 : 9 9 :; 8@?vI'ѼߨݨݨۧکبשըԧӨҪԩѧ̩ͨɱâiUDxV?zX;uY:uZ8|X:~X:zW=xX;|Z<|[:|[:}\;\;]<\<]=]<^=^=_>_>`?`?`>b@b>b>c?d@d@dAdAd@d@eAeAfBfBeBeBhCc=iGd@dD{Z`vVuXsVpQnNkLiHgDfAb;`8^6Z3Y0V.S)R&O$MJFFDCBA@= < < ;::::;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<========<<<<<<<<<<<<<<<<<<<<<<<<================555555554444444444444444555555554444444444444444555555555555555555555555555555556666666666666666555555556666666666666666666666666666666666666666666666666666666666666666666666665555555566666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777778888888877777777888888888888888899999999999999999999999999999999999999999999999999999999999999999999999999999999:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::<?>: 8 8 8 8 7 5 = 9C5Aߨީܩܪ۩ڪש֨ԧӨҨҨҫөΦʤŰ£fRAxV?|W;vY:vZ8|X:~X:zW=xX;|Z<|[:|[:}\;\;]<]=]=]<]<]<^=_>_>`?`>a?a=b>b>b?c@c@c@d@d@eAeAeBeBfCfChCc=hFc@cCzY_uUtWqUnPmMjKhGfCe@b;`8]5Z3Y0V.S)R&N#MJGFCBA?> = ; ::::::;;;;;;<<<<<<<<<<<<<<<<;;;;;;;;<<<<<<<<;;;;;;;;<<<<<<<<;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<================================555555554444444444444444555555554444444444444444555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777778888888877777777888888888888888899999999999999999999999999999999999999999999999999999999999999999999999999999999:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;==; 9 7 7 7 7 8 6D@B~3xP=ӹߨީܩܪ۩ڪש֨ԧӨҧѨЪҩΦʢïmYHxV?|W;vY:vZ8|X:~X:zW=xX;|Z<|[:|[:}\;\;]<\<]=]<]<]<^=_>_>`?`>a?a=b>b>b?b?c@c@d@d@d@eAeBeBfCfChCc=hFc@eE{Z~^uUtWqUnPmMjKhGfCe@b;`8\5Z3X0V.S)R&N#KJFECBA?> < ; ::::::;;;;;;<<<<<<<<<<<<<<<<;;;;;;;;<<<<<<<<;;;;;;;;<<<<<<<<;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<444444443333333344444444555555554444444444444444555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777778888888877777777888888888888888899999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:::::::::::::::::::::::::::::::::::::::::::::::;;<< ; 6 6 8 9 : 8D3E < g+ ߨާݩܨ۩کڪש֩ӨҧѧѦΨШͦʡ®t`OxV?zX;uY:uZ8|X:~X:zW=xX;{Y;|[:|[:}\;\;]<\<\<]<]<]<^=_>_>`?`>a?a=b>b>b?b?c@c@d@d@d@eAdAeBeBfCgBd>hFc@gG{Z|\uUsVpTmOlLiJhGeBc?`:_7\5Y2W/U-R(Q%M"KIFDCB@> = < ; ::::::;;;;;;; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ::::::::; ; ; ; ; ; ; ; ::::::::; ; ; ; ; ; ; ; ;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<333333333333333344444444444444444444444444444444444444444444444444444444444444445555555555555555444444445555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666667777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777778888888877777777888888888888888899999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::< < 7 69::>97>A<o?#´ߨާݨۨ۩ڨ٩֨թӨҧѦХϧϧ̥ˠíȿyeTvV?zX;uY:uZ8|X:~X:zW=xX;{Y;{Z9|[:|[:\;]<\<\<]<]<]<^=_>_>`?`>a?a=a=b>a>b?b?c@c?d@d@eAdAeBeBeBfAc>gEc@kK|[zZuUsVpTmOlLiJgFeBc?`:_7[4Y2W/U-R(Q%M"JIEDBA@> = < : ::::::;;;;;;::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<333333333333333344444444444444444444444444444444444444444444444444444444444444445555555555555555444444445555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666667777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777778888888888888888777777777777777788888888888888888888888888888888777777777777777777777777888888888888888888888888888888888888888888888888888888889999999999999999888888888888888899999999999999999999999999999999: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 9 8 9 <;879;;:5B7 1Br0eNٹݩߧާݦܨۧڨ٨٩֨ըҧѦЦЧѦΥʥˢŬkZvV?zX;sZ:sZ8zX:|X:xW=xX;{Y;{Z9{Z9|[:\;\;\<\<]<]<]<^=_>_>`?`>_>a=a=b>a>b?b?b?c?c?d@d@dAeBeBeBfAd?fDc@nN~]xXvVrUoSlNkKhIgFdAb>_9^6[4X1V.T,Q'P$L!JHECBA> = < ; : 9:::::;;;;;;::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<3333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555444444444444444444444444444444444444444444444444444444445555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777776666666666666666666666667777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888887777777777777777888888888888888888888888888888887777777777777777777777778888888888888888888888888888888888888888888888888888888899999999999999998888888888888888999999999999999999999999999999999999999999999999999999999999999999999999999999987 7 9:889;?<: 3 36 7@ p7ߧާݦܧڧڨ٧بէԨҧѦХϨҤΣʦ̢ŭyhvV?zX;sZ:sZ8zX:|X:xW=vX;yZ;{Z9{Z9|[:~[:\;[;\<]<]<]<^=_>_>`?`>_>`a>b?b?c?c?c?d@dAdAeBeBe@e@fDdArR^vVvVrUoSlNjKhIfEdAb>_9^6Z3X1V.T,Q'P$L!IHDCA?> < < ; : 99::::;;;;;;::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;333333333333333344444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444445555555544444444444444444444444444444444444444444444444444444444555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666677777777666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777778888888888888888777777777777777788888888888888888888888888888888777777777777777777777777777777777777777777777777777777777777777777777777777777778888888888888888777777777777777788888888888888888888888888888888999999999999999999999999999999999999999999999998 6 6 89:;;<?>:$/A7B:wF0ާݦܥۧڦ٧ابէԧѦХϥϧѤΤ˦̠î»}vV?xX;sZ:sZ8zX:|X:vX=vX;xY:{Z9{Z9|[:~[:\;[;[;]<]<]<^=_>_>`?`>_>`a>b?b?c?c?c?d@c@dAdAeBe@e@eCdAtT^tTvVqTnRkMiJgHeEc@a=^8]5Z3W0U-S+P&O#K IGDBA?= < ; : 999:; ::;;;;;;::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;333333333333333344444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444445555555544444444444444444444444444444444444444444444444444444444555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666677777777666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777778888888888888888777777777777777788888888888888888888888888888888777777777777777777777777777777777777777777777777777777777777777777777777777777778888888888888888777777777777777788888888888888888888888888888888999999999999999999999999999999999999999999999998 7 7 78:;:<=77635 8?7v3{fٷާݦܥۧڦ٧ابզӧѦХϦϥΦ̝ͦͦ­ÿźoWAuX=sZ:uZ8zX:|W;xW=vX=zX:zY8}Y;~[:~Z<[;[=[;]=]<]<^=_>^>_?`>_>`<`a>b?b?c?c?c?d@d@dAdBeBdAfCeCdCuU`tTuXqTnRkMiJhGfCc@a=^8]5Z3W0U-S+P&O#K IFDBA?= < ; : 999:; ::;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::::;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333344444444444444444444444444444444444444444444444455555555444444444444444455555555444444444444444444444444444444445555555544444444555555555555555544444444555555555555555555555555555555556666666666666666555555556666666666666666666666665555555566666666666666666666666655555555777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888777777777777777777777777888888888 8889999::8 6 5 7 :<;= h6ܨܩڨ٩بתթԩӨҧЧϤʦʥ̢ȥɬĮwiVmX=oV6uV5}Y;[AwS;yU=|W;}Y;XZ=[>[<\=\=]=^>^=^=_>_>`?`?b>b>c>c>d?d?c@c@cAcAbCdB`>dBcCkL}_}arVsVpTnRkMjJhGeBc?b;_7\5Y2W0U-R*O%N"JHECBA?= ; ::9999:::::::::::::::::::::::::9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 ::::::::::::::::::9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :9 :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333334444444444444444444444444444444444444444444444445555555544444444444444445555555544444444444444444444444444444444555555554444444455555555555555554444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555566666666666666666666666666666666666666667777777777777777777777777777777777777777777777777777777766666666666666666666666666666666666666666666666666666666666666666666666677777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777778888888877777777777777777777777788888888888888888888888:;8{5^RҸߨܧ۩ڨ٩بשԨӨҧѧЦΧɩ˥ˡȤȪǯqhY?mS5{\=zU9{V<}V@}V@|W=}X<XZ>Y>[>[>\=\=]=]=^=^=_?_?_>`?b>b>c>c>c>d?c@c@cCcCcCdDgDbBcDqR~bz^rWsXoSnOkMiHgFeAb>`:_7\5Y2W0U-R*O%M"JHECB@> = ; ::9999:::::::::::::::::::::::::9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 ::::::::::::::::9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::2222222222222222222222223333333322222222333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333344444444444444444444444444444444444444444444444455555555444444444444444455555555444444444444444444444444444444445555555544444444555555555555555544444444555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555666666666666666666666666666666666666666677777777777777777777777777777777777777777777777777777777666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888777777777777777777777777888888888888888888888889=4;i3{ާݨܧۨ٨٨רשԨӨҧѦϦΧɩ˥ˡǢǩưk^HgQ5{]@uS6wR8|V>zT<|W;zX:}Y;}Y;~Z<[=[=Z=[>[>\=\=^=]=^>^>_?_?_>`?a=b>b=c>c>c>c?c?b@cAbCcCiIa@gHzZ}avZsXrWoSnOjLiHgFeAb>`:_7\5Y2V/T,R*O%M"IGECA@> = ::99999999999999999999999999999988888888888888889999999999999999888888889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::22222222222222222222222233333333222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444333333333333333344444444444444444444444444444444444444444444444444444444444444444444444455555555555555554444444455555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777776666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666677777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777888888887777777777777777777777778888888888888888888888887; :~;o?'̻ߩݦܧۦڨ٧بק֩ԨӨҧѦϧͧɨɥɡǡƦǮ}t`jV=sX=vV9{V:yT:xS9zX:zX:zX:{Y;~Z<~Z<[=[=[>[>\<\=]<^=^=^>^>_?^?`?a=b>b=b=c>b>b>c?b@cAbCcCeDbAqQ~`y]uXuZpUoSnOjLhGgFd@b>`:]6[4X1V/T,Q)N$L!HGDBA?> < ::99999999999999999999999999999988888888888888889999999999999999888888889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::2222222222222222222222223333333322222222333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333344444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444433333333333333334444444444444444444444444444444444444444444444444444444444444444333333334444444455555555444444445555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666667777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777776 />7A|5\FߦߨިީݨܧۦڧااԧԨӧҧЦϥΧͧƩȧɢȠǣƩ±¹ugQgP6vX=]@xS7|X:xY:xY8xY8yZ9{Z9|[:~[:\;[;\<\<]=]=]>]>]>]?^>^?_>`=a>b=b=b>b>b>c?c?c?cAcC^=hH{\auXvYw\mRnRmNiKhGeEd@a=_9]6[4X1U.S+Q)N$L!GFDB@?= < ::98889999999999999999999999999988888888888888889999999999999999888888889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333322222222333333332222222233333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444433333333333333334444444444444444444444444444444444444444444444444444444444444444333333333333333344444444444444444444444444444444444444445555555544444444444444444444444455555555444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777776666666677777777777777777777777766666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777776 5 1?;= w5~nֵߨߧݧݨܧۦڥ٧ئקԦӧҦѦϥΥΦ̧ƨǦȣɠǢť«þmdR;nS9|\?wS5~Z]>]?]?]>^?`?`=a>b=a=b>b>b>c?c?b@cC`@sRa|]tWvYuZmPmQlMjJgFeEb@_<^8\5Z3W0U.S+O(M#K GFCA@>< ; :99888899999999999999999999999998888888888888888999999999999999988888888888888888888888888888888888888888888888899999999999999999999999999999999999999999999999999999999999999991111111111111111111111112222222211111111222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333322222222333333332222222222222222333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333334444444433333333333333333333333344444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777776666666677777777777777777777777766666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777<+@ 7:Av6Чߨߨߧݩݨܧۨ٧بררӨӨѧЦϥΦ̩ͨȧƤƤȡȡǤĪykXjT;tW^?_>`=`=a>a=a=b>b>a?b@b@bBmM|\~ax[wZwZrUoRmQlMiIgFdDb@_<^8\5Z3W0T-R*O(M#K GECA?>< ; 99888888888888888888888888888888777777777777777788888888888888887777777788888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999111111111111111111111111222222221111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222333333332222222233333333222222222222222233333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444443333333333333333333333334444444444444444444444444444444444444444444444445555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555666666666666666666666666666666666666666666666666666666666666666677777777666666667777777777777777777777776666666677777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777778 16>87 {E&øٰߨߧީݨܨܧۨ٧بררӨӨѧЦϥΦ̪ͨɨƤĢƢǡǤƪŨzo\GqX>vX;vU4wX9wX7zY8|Y8}Z9Z8[9Z9[:[:Z;[<\?\?\@\@]?]?]>^?_>`?`=a>a=a=b>b?b?c@bBcBz[cz]uXz]vYoRrUnOlMiIgFeBb@_<^8[6Z3W0S-R*O(L#K FEC@?=< : 99888888888888888888888888888888777777777777777788888888888888887777777788888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999111111110000000000000000111111110000000000000000111111111111111111111111111111112222222222222222111111111111111122222222333333331111111122222222111111112222222222222222333333333333333333333333333333333333333333333333333333333333333322222222333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333355555555444444444444444444444444444444444444444444444444444444445555555555555555555555554444444455555555444444445555555555555555444444445555555555555555555555554444444466666666555555556666666666666666666666666666666666666666666666665555555566666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777776666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777766 5 6 ;=;7WGüߧާަݨܧۧۦڧئקԧԨӨӨѧЧΦͥ˧˨ǨƦƥǣƢŢĥ«tmXBgO3{^?vV9{\=zX:vS2{U5^>^=V5[:\;[<[<[?[?Z@[?^@]?\<[<^=`?a>a>dAa>`=bBaA`@gHsS~a}az^x\vZtXqTpSmNjLgHeEcAa?^;]7Z5Y2U/R,Q)N'K"JEDB?>; ; : 77777777777777777777777777777777777777777777777788888888777777777777777777777777888888887777777788888888888888888888888877777777999999999999999999999999999999999999999999999999111111110000000000000000111111110000000000000000111111111111111111111111111111112222222222222222111111111111111122222222333333331111111122222222111111112222222222222222333333333333333333333333333333333333333333333333333333333333333322222222333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333355555555444444444444444444444444444444444444444444444444444444445555555555555555555555554444444455555555444444445555555555555555444444445555555555555555555555554444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666555555556666666655555555666666666666666666666666666666666666666666666666666666666666666666666666777777776666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777776 5 6 :<;8 5kaٴݢߧާަݨܧۧۦڧئקԦӨӧҨѦϧΦͥ˧˧ǨǦƤģţĢã¦taiUZ:Z:[<[<[?[?Z@[?]?^@aAaAa@`?`?`=\<_>bAcD`B`BlN{_}b|`z^x\vZtXqToRmNkKgHeEcA`>^;\9Y4X1T.R,P)M&J!HDCA?=; ; : 7777777777777777777777777777777777777777777777778888888877777777777777777777777788888888777777778888888888888888888888887777777799999999999999999999999999999999999999999999999911111111000000000000000011111111000000000000000011111111111111111111111111111111222222222222222211111111111111112222222222222222111111111111111111111111111111112222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333334444444433333333333333333333333333333333333333333333333333333333444444444444444444444444333333335555555544444444555555555555555544444444555555555555555555555555444444445555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555666666666666666655555555666666665555555566666666666666666666666666666666666666666666666666666666666666666666666677777777666666666666666677777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 7 7 7 8 9:80 -޷ߧަݦݨۧڨ٧ئץ֧ԦӨҧѧЦϧ̥ͦ˦ʧɦƦťääœyfgRZ=X8U6Z:Z:Z[?Z@[?[<^>`@aA^?]>^?`?_@]>^@aCcGhLuZg}d{bx_v]vZsWqToRlMjJgHdDb@`>\;[8Y4X1T.R,O(M&J!HDCA><: 9 9 7777777777777777777777777777777777777777777777778888888877777777777777777777777788888888777777778888888888888888888888887777777799999999999999999999999999999999999999999999999911111111000000000000000011111111000000000000000011111111111111111111111111111111222222222222222211111111111111112222222222222222111111111111111111111111111111112222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333334444444444444444444444444444444444444444444444444444444444444444444444445555555544444444555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555666666666666666655555555666666665555555566666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666 7 998 8 9868|3%ҳܬݪߧާަݧݧڧڨ٧ئץ֦ӦӧѧѧЦϦ̥ˤʦʤȦȦŧå¿êygfP>pU@uXCuV=vS9{T8Y<\=Z;Z:Y;ZZ>Z@[?]>]=]=]=]=^>_@aAgG^@Z>aFlTw^|ei{dzax_v]uYrWpSmQkMjJgFdDb@`>\;[8Y4W0T.Q+O(L%J!GCB@><: 9 87777777777777777777777777777777777777777777777778888888877777777777777777777777788888888777777778888888888888888888888887777777799999999999999999999999999999999999999999999999900000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111100000000000000001111111122222222000000001111111100000000111111112222222222222222111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111222222222222222222222222222222222222222222222222222222223333333333333333222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333334444444444444444444444444444444444444444444444444444444444444444444444445555555544444444555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555566666666555555555555555566666666666666666666666666666666666666666666666666666666666666666666666666666666666666665 7 9:87 7 8745D9Ȼ߲۬ߧަݧݧݧکڨ٧بէԨӨӧЧШϧΦ̥˦ʥɤɣȥĦâyit^LgMZ>Z@[?`A_>]=^>`@aA^@]?bC^B_GkTycjk}i{eybv_t\sXqVoSmQjLhIeEcCa?_=[:Z7X3V0S-Q+N'L%I GCB@=; 9 8777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777888888888888888888888888888888888888888888888888000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111000000000000000011111111222222220000000011111111000000001111111122222222222222221111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222221111111111111111111111111111111111111111111111111111111111111111111111112222222233333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333344444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444445555555544444444444444444444444444444444444444444444444444444444444444445555555555555555444444445555555544444444555555555555555555555555555555555555555555555555555555555555555555555555666666665555555555555555666666666666666666666666666666666666666666666666666666666666666666666666666666666666666656887667480 .gVܺߧަݧݦܩڨ٨٧بէԨӧҧЦϨϦͥˤʥɥʡɣȥħ¿|wcRlT@pU@vX?xV9zT6Z:Y:Z;Z;Z>Z>Z?Z>\=^=]=_?`@_?[=XdIqZ|flm~k{iyfwbv_t]rZqVnRlNjLhIeEcCa?^<[:Z7X3U/S-P*N'K$I FBA?=; 9 87666666666666666677777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777778888888888888888888888888888888888888888888888880000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111110000000000000000111111111111111100000000000000000000000000000000222222221111111100000000000000000000000000000000000000000000000000000000111111110000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111222222222222222211111111111111111111111111111111111111111111111111111111111111111111111122222222333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555444444444444444444444444444444444444444444444444444444444444444455555555555555554444444455555555444444445555555555555555555555555555555555555555555555555555555555555555555555556666666655555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777788779 437 z.ucǮߨߧަݦܦܩڨ٧ئקԦӨӧҧЦϧ̥ͦˤʥɤɡɠȤ翝µ|it\HqW?z\A^@Z:Z:[;Z;Z=[>Z?[>Z9\:]=]=\<^>bCeIlQu]inon}l|lyfwbt^r\rZpUnRlNiKgHeEbB`>^wY@zY?|Y?Z@Z@ZAZAZA[?_A`C]@[?`EoT{bppoonmn}jzdxau^s[qYpUnRlNiJhGdDc@`>^<[9Y6W2U/R,O(M&K"HFBA?<: 8 766666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111100000000111111111111111111111111111111111111111111111111111111111111111100000000111111111111111111111111222222221111111122222222222222222222222222222222222222222222222222222222333333333333333333333333222222223333333333333333222222222222222222222222333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333334444444444444444444444444444444444444444444444445555555544444444333333333333333344444444444444443333333344444444555555555555555555555555444444444444444455555555444444445555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666677777777777777776656666649 04:(=hԤܴުިۢڞۢݭޯݩ٧٨ק֨էԦѦѧѨϦͦͧ˧˧ɦȤƤƦäyin]{cQu\HrWCqT?sVAx[Fw\H}bNlXu`{hmsvtspnmk|h|exaw^t\rWqVoSlPjLhIgFcCb?_=^:Z7X5U0S-Q)N'L%I EDB?=: 8 87666666666666666666666666666666666777777776666666677777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111000000001111111111111111111111111111111111111111111111111111111111111111000000001111111111111111111111112222222211111111222222222222222222222222222222222222222222222222222222223333333333333333333333332222222233333333333333332222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333344444444444444444444444444444444444444444444444455555555444444443333333333333333444444444444444433333333444444445555555555555555555555554444444444444444555555554444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555666666666666666655555555/; 51; 51BzҸްܥڟٞ٢ۭޯݩۧ٨ק֨էԦѧѩѨЦ̧ͥ˦ʧɥǥĥĦä|~||uspnki|f{cy`x\tYrWrUnRmNkKhIfFdAa?`<^:Z7Y3U0S-P)N'L#I FCA@<: 9877666666666666666666666666666666667777777766666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777770000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111110000000011111111111111111111111111111111111111111111111111111111111111110000000011111111111111111111111111111111111111112222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444555555554444444433333333333333334444444444444444333333334444444455555555555555555555555544444444444444445555555544444444555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666555555553: 4-6<3*y8Р֨ܠם֟פبݪݩ٩بק֨էԧѧѩЧΨ̧ͧ˦ʦȥǥĤå¤~zwvuspnjh}f{cy`x\tYrWqTnRlMkKhIfFdA`>`<\9Z7X3U0S-P)M&K"I FCA?;: 977766666666666666666666666666666666777777776666666677777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777////////////////////////////////////////////////////////////////////////////////////////////////////////00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111110000000011111111111111111111111111111111111111111111111111111111111111110000000011111111111111111111111111111111111111112222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444443333333333333333444444444444444433333333333333334444444444444444333333333333333344444444444444444444444444444444444444444444444444444444444444444444444444444444555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666665555555557 445458 8 3 r5Ϯڭޠٟ֣ץצڨک٨רק֨էԧѧѨϧΧ̧̦ʦʦȥǤäå£}{yytsomjh|ezbx_w[sXqVpTnRkMjJgHeEc@`>^;\9Y6W2T/R,O(M&K"HEB@>;9 877666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666677777777777777777777777777777777////////////////////////////////////////////////////////////////////////////////////////////////////////00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444443333333333333333444444444444444433333333333333334444444444444444333333333333333344444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555444444443/7 =5/2595u8ṷ̆ߠܦݤڣإ֪֬֨רק֦էҦѧѦШϦ̦ͧ˨ʧɥǤƤå¦}{{tromi~g|ezbw^w[sXqVoSmQjLiIfGdDc@_=^;[8X5V1T/R,O(L%J!HEB?=:8 876655555555555555555555555555555555666666665555555566666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666677777777777777777777777777777777////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111112222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222233333333444444443333333344444444333333333333333344444444444444443333333333333333444444444444444433333333333333334444444444444444444444444444444444444444444444444444444444444444444444444444444433333333333333334444444444444444444444444444444444444444444444444444444444444444444444444444444433333333336 5255/7? 3 w7ŽĮ۩ާڨ֭ӬҪըק֦էҦѦЦЧΦͦ˥ʧɦȥǤť¥¦}{yvtsqnli~g{dyaw^vZrWpUoSmQjLhIfGdDa?_=]:[8X5V1S.Q+N'L%J!GDA==9 8 776655555555555555555555555555555555666666665555555566666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111222222222222222222222222222222222222222222222222111111111111111111111111222222221111111111111111222222222222222222222222111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222233333333222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333344444444444444443333333356 2-19 9 4:29?v<Dzҥޱ׮ѬϪԨק֦էҦѦЦЧΥ̦ʥɧɦȤĤå¦~|ywsqnlh}f{dyaw^uZrWpUnRlPjLhIfGdDa?_=]:Z7X5V1S.Q+N'K$I FDA<<9 7 655655555555555555555555555555555555666666665555555566666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666........................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111222222222222222222222222222222222222222222222222111111111111111111111111222222221111111111111111222222222222222222222222111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222233333333222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333344444444444444443333333314337 40470::1|Dó٬ڬҫѨԨק֦էҦѦЦϧΥ̦ʥɧɦȤĤå¦~|wtsqmlh}f{dyav]tYrWpUnRlPiKgHeFcCa?^<\9Z7W4U0S.P*N'K$I EC@<;8 7 655655555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555566666666666666666666666666666666........................................................................................////////////////////////////////........////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111110000000011111111111111111111111111111111000000001111111111111111111111110000000011111111111111111111111100000000111111112222222222222222111111111111111122222222222222221111111133333333333333333333333322222222333333332222222222222222333333332222222233333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333334444444444444444333333334444444419 5:={)Arʵظۦ֥ӨզէҧҨҧѧΤ˨ͦʧɦȦƥŤã¤~}{zvuqol~j}f{dxbw_t\sXqVoTmQkOhJfGcDbB`>];Z7X5V3T/Q-P*M&K$I EB@;:8 6544455555555444444445555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666........................................................................................////////////////////////////////........////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111110000000011111111111111111111111111111111000000001111111111111111111111110000000011111111111111111111111100000000111111112222222222222222111111111111111122222222222222221111111133333333333333333333333322222222333333332222222222222222333333332222222233333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333334444444444444444333333334444444407 02@ 8 - ="|i˰ܧߚלץۥ֥ԦѦѧѧѧΥ̧˦ʦȦȥťŤå¦~}{zvtqol~j}fzdxbv_t\sXqVoTmQjOhJfGcDbB`>];Z7W4U2T/Q-O*M&I#HEB@;:7 6444455555555444444445555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555................................--------------------------------------------------------........////////////////////////........////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111100000000111111111111111111111111111111110000000011111111111111111111111100000000111111111111111111111111000000001111111122222222222222221111111111111111222222222222222211111111222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222233333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333344444443/6 2,4 5,&1jRѼȮإݘڙڢ֧ҥХЦϦϧΦͧ˦ʦȦȦŦŤå¦~|{yvtqok}i|fzdwav_t\sXpUnSlPiNhJfGbCaA_=];Z7W4T2T/P,N)L%I#HDA?;9 7 6444455555555444444445555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555................................--------------------------------------------------------........////////////////////////........////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111100000000111111111111111111111111111111110000000011111111111111111111111100000000111111111111111111111111000000001111111122222222222222221111111111111111222222222222222211111111222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222233333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333332213 2 ,)1 94 ~5zc=ȪϠڢרӦѥХΥΧΦͧ˦ʦȥǦťĤä}|zyutpnk}i{eycwau^s[rWpUmSlPiNgIeFaCaA_=[:Y6W4S1S.P,M(L%H"FCA=:9 7 5444444444444444444444444444444444444444444444444444444444444444444445555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555................................--------------------------------------------------------........////////........////////........////////........////////................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////////////////000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111100000000000000001111111111111111111111112222222211111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111222222222222222222222222222222222222222222222222222222222222222233333333333333332222222222222222222222222222222222222222222222222222222222222222333333333333333333333333333333337-/5/+ / 3; 2|5 [7ۢЩ֩ԨӦѥΤͦͦͧ˥ɦƥŦťģ¤}{zxuson~j|h{eycu`t]s[rWnTlRkOhMgIeF`B`@^<[:Y6V3S1R.O+M(K$G!EC@=98 6 4444544444444444444444444444444444444444444444444444444444444444444445555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555................................--------------------------------------------------------........////////........////////........////////........////////................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////00000000////////////////00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111100000000000000001111111111111111111111112222222211111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222221111111111111111111111111111111111111111222222221111111111111111222222222222222233333333333333347420 + / 3 1.=: /P2ȴþԬѨӨӧҦϤ̥̦ͥʥɥťťĥģ¤|{yxtsom~j{hzdxbu`t]rZqVnTlRjOhMeHdE`B_@^;8 7 4 4444544444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444................................--------------------------------------------------------........////////........////////........////////........////////................................................................................................................................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////////////////00000000////////////////000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111000000000000000011111111111111111111111111111111000000000000000011111111000000001111111111111111000000001111111100000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111222222222222222211111111111111111111111111111111111111112222222211111111111111112222222222222222333333333333333466127 40213.04+ l2r]ýǴʯ̩ˣɥɥ˦ʧɦǧƧƦå¥|zywtrn~l}izgzdwbt_s\rZqVmSkQiNgLeHcF_A^?\;Y8W5T2R0Q-M)K&H"F CA><7 7 53343544444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,................----------------................................................----------------................////////////////........................................--------////////////////........................................................................................////////////////////////........////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111100000000111111111111111100000000111111111111111111111111111111111111111111111111111111111111111122222222222222221111111111111111222222222222222222222222333333333333333322222222333333332222222244333344432212 3 x3~RAĻɾǾɤɡŭΨƥŬȩģ~|{xvrpn~l}izgycwat_s\qYnWlRjPhMfKdGbE_A]>Z9X7V4T2Q/O+M)K&H"ECA><7 7 54332333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333334444444444444444444444443333333344444444333333334444444455555555,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,................----------------................................................----------------................................------------------------------------------------........................................................................................................////////////////////////........////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000////////000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111110000000011111111111111110000000011111111111111111111111111111111111111111111111111111111111111112222222222222222111111111111111122222222222222222222222233333333333333332222222233333333222222223333333333333332 |/o6!lǵʼƼͤʝ¦ɮͭȧê~|zxvrpn~l|hzgycwat_s\oYmVlRjPhMeKcFaD_A]>Z9X7V4S1Q/O+M)J%H"EC@>;8 7 54222233333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333334444444444444444444444443333333344444444333333334444444455555555,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------------------------------------------------------------------------------................................------------------------------------------------........................................................................................................////////////////////////........////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000////////000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111110000000011111111111111110000000011111111111111111111111111111111111111111111111111111111111111112222222222222222111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222*8t2ZB²ƣŠӝϞɠéŭë}zyxvrpm}k|hyfxbwas^r[oYmVkQiOgLdJcFaD^@\=Y8W6U3S1P.N*K(J%G!DB@=;7 6 54222233333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333334444444444444444444444443333333344444444333333334444444455555555,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------................------------------------------------------------........................................................................................................////////////////////////........////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111100000000111111111111111100000000111111111111111111111111111111111111111111111111111111111111111122222222222222221111111111111111222222222222222222222222222222222222222222222222222222222222222222222222222222228-2 |3zE0űؙƥͬ˫~}zxwuqol}k{gxexbv`r]qZoWlUjPgNgLdJbE`B]?[;97 6 53111233333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333334444444444444444333333333333333333333333333333334444444444444444++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------........................................................................................////////////////////////................////////................////////........................................................................................////////////////........////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////00000000////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222223=5.20 & 2O?æž}|ywuspl~j|hxexbu`s^r[pXlUkQhOfMdJbH`C^@\=Z;W6U4S1Q/N*L(J%G#EB@>;97 6 43111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333344444444333333332222222233333333333333334444444444444444++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------........................................................................................////////////////////////................////////................////////........................................................................................////////////////........////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////00000000////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111112222222211111111222222221111111111111111*0:4+25'.fPĶǻ»}zxwusnl}i{gycwat_t]qZoWlUkQgNeLdJaG`C^@[=:8 6 5 43111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222233333333333333332222222233333333333333333333333333333333++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,++++++++,,,,,,,,,,,,,,,,++++++++,,,,,,,,++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------................--------........////////////////////////////////////////////////////////........////////////////........................................................................////////................////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000./01456506 .*O=}{ywusqm~k}i{gxbv`u^s\pZoWkTiPgLeJbHaD_A]?Z;Y8W6T2Q/O+M)J'G#E!B@=<97 6 5 32000111111111111111112222222222222222222222222222222200000000111111111111111100000000000000001111111122222222111111113333333333333333222222223333333322222222333333332222222222222222++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,++++++++,,,,,,,,,,,,,,,,++++++++,,,,,,,,++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------................----------------........................................................................................................................................................////////................////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000134557.,+ 'w4iO}{ywtsqm}k|hyfxbu`u^s\oYnVkQhOgLdJcFaD^@\=Z;Y8W5T2Q-N*L(J'G#E!A@=:96 6 5 32000111111111111111112222222222222222222222222222222200000000111111111111111100000000000000001111111122222222111111113333333333333333222222223333333322222222333333332222222222222222++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++****************++++++++++++++++************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------------------------------------------................................................................................................................................--------........----------------................////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002333210/3 **3 3,1 ? xeͼ}zxusrnl|j|hzdwau`t]q[pXmVjQiNeKcIbE`C^@\=Y:X7V4S1P,N*L'K&F"D A?<:96 6 4 32000111111111111111112222222222222222222222222222222200000000111111111111111100000000000000001111111111111111111111112222222222222222222222222222222222222222222222222222222222222222++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++****************++++++++++++++++************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------................................................................................................................................--------........----------------................////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000124431/- , , 23 /054+w.J5~iέм~{yxtson~k}i{eycvat_r\pZoWmSiPhMdJbHbE_C]?[<:96 5 4 32000111111111111111112222222222222222222222222222222200000000111111111111111100000000000000001111111111111111111111112222222222222222222222222222222222222222222222222222222222222222************************************************************************))))))))++++++++++++++++************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------................................................................................................................................----------------------------------------........////////........................................................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////////////////111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123331/ - , , *,.,.5>/ , /F*x]éø|{yvtrom~j|hzdxbv_t]q[pZnVlRhOgLdJbHaD^B\>Z;X7V5T2R0O+L(J%I$D A?=;:8 6 5 4 32000100000000000000001111111111111111111111111111111100000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111************************************************************************))))))))++++++++++++++++************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------........----------------................................................................----------------------------------------........////////........................................................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000////////////////////////////////////////////////////////////////////////////////////////////////0/00//-,-'(07 60,6 ++2v/n8jS|zwusqnl}i{gycxbu^s\q[oYmUkQgNfKcIbE`C^@[<;97 6 5 4 32000100000000000000001111111111111111111111111111111100000000000000000000000000000000000000000000000000000000111111110000000000000000111111110000000011111111000000001111111111111111)))))))))))))))))))))))))))))))))*)*)*)*)*)*)*))))))))))))))))))********))))))))))))))))********))))))))))))))))********))))))))********))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************))))))))))))))))++++++++++++++++****************************************************************************************+++++++++++++++++++++++++++++++++++++++++++++++++++++++++,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,,,,,,,,,,,,,,,,,,,+,+,+,+,+,+,+,,,,,,,,,,,,,,,,,----------------------------------------........----------------................................................................----------------------------------------........////////........................................................................................................................................................................................................................................................0000000000000000///////////////////////////////////////////////////////////////////////////////////////////////.-, ,,-/1131/022 0 /52/---+*}*y6!]I|zwtrpm~k|hzfycwat]r[qYoWlTlQiMfKdFaD_B]?Z<:975 5 4 21000100000000000000001111111111111111111111111111111100000000000000000000000000000000000000000000000000000000111111110000000000000000111111110000000011111111000000001111111111111111))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))********))))))))))))))))********))))))))****************))))))))))))))))****************************************))))))))****************************************++++++++++++++++,,,,,,,,++++++++,,,,,,,,++++++++++++++++++++++++,,,,,,,,,,,,,,,,++++++++,,,,,,,,,,,,,,,,,,,,,,,,--,-,-,-,-,-,-,-,,,,,,,,++++++++--------------------------------------------------------------------------------,,,,,,,,,,,,,,,,------------------------........,,,,,,,,--------................................................----------------................----------------................................////////////////................////////////////................................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////////////////....../0000///./010...--1 )u({;\=bœ~~~~wvspl|izfxdxbv`t\qZqXoVmRkPhLfJcHbD_B^?Z<:9865 3 2 0///..////////////////////////////////////////////////////////000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000(((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))********++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------,,,,,,,,,,,,,,,,--------------------------------................................................................................................................................................................////////................////////////////........................................................////////................................0/..-+*)+14 0*. <H,lQ{cuztnounmmj|gzewcv`u_r]p[nYkWjVgSePdJbF_C]A[>YZ;V8U4Q1O.M,J'H%F#C A?=;99764 3 20./...////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))(((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))********))))))))********))))))))****************************************++++++++************************************************++++++++****************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------................----------------................................................................................................................////////................////////////////........................................................////////............................../.2/-+,,)(20./22/+*- /, ) ~.;H+mPoTtYy]|`}a}a|`uZsXqVpTmTkRiPgLdFcC_A^>\<:98864 3 20...-.////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))(((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))********))))))))********))))))))****************************************++++++++************************************************++++++++****************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------................----------------................................................................................................................////////................////////////////........................................................////////........................-.....//-.11/-,/-253/,,/*+++*+ - /z'}0=L,[=eGmNpQtVsTpQnPmOkMiJgIdDb@`>^<\:Z7W4U2R0Q,M)K%I$F!DB>;:98754 3 2/...-.........................................................////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))(((((((((((((((((((((((())))))))(((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))************************************************++++++++++++++++********++++++++++++++++++++++++********++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++********++++++++,,,,,,,,++++++++++++++++++++++++,,,,,,,,,,,,,,,,++++++++,,,,,,,,++++++++,,,,,,,,++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------------------------------------------------------------------------------------------................///////////////////////////////////////////////....///////0/00/.....////...--,,,, , , - , - - . :A!L+W7^>bBeDfEa@`>^<\:Z8Y4V2U1Q-P+N)L&I#F CA?>=:97 6 5 110/.--,........////////........................////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))(((((((((((((((((((((((())))))))(((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))************************************************++++++++++++++++********++++++++++++++++++++++++********++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++********++++++++,,,,,,,,++++++++++++++++++++++++,,,,,,,,,,,,,,,,++++++++,,,,,,,,++++++++,,,,,,,,++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------------------------------------------------------------------------------------------...............................................................-----...//////0/.,+,,--..//....--,++,++,,, - . / 0 257BBDE E!F"F"G"G"F!E EB@>>7654 4 3 210//..--,........................................////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))(((((((((((((((((((((((())))))))(((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************))))))))************************))))))))********************************************************++++++++++++++++****************************************++++++++************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------------------------------------------...............................-------...//0000/-, , + ,,,,--.//0//....--,,.-*'&'*-- / / / 0 / 0 1 0 / / 0 . .--./...---...----,................----------------........////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************))))))))************************))))))))********************************************************++++++++++++++++****************************************++++++++************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------...............................--------.-..//00/- , , , ,,,,---..///00//..--+,.--..0--,+*))(+++,,,*+,,,,,,----------................----------------........////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////''''''''&&&&&&&'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************))))))))))))))))))))))))))))))))****************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------..................................---,,,,--..//.-------....---,-011100//+,..,,**,----...-.././..........---.....................----------------................////////........////////........................................................................................................''''''''&&&&&&&'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((''''''''''''''''((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((())))))))(((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************))))))))))))))))))))))))))))))))****************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----------------------------------,++*****+,,---,,----.//.-,+*+-0//////221/..//--,-....++,-,,+*.//...----..............------------------------................////////........////////........................................................................................................''''''''&&&&&&&'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((''''''''''''''''((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((())))))))(((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))************************))))))))))))))))********))))))))********))))))))********))))))))))))))))))))))))))))))))))))))))********))))))))********************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------------------..--++*)))*++,,,+,,,.//.0/.-,+ * * +-,,,,-------.1300./.---00021100.---------------........------------------------................////////........////////........................................................................................................''''''''&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((''''''''''''''''((((((((((((((((((((((((''''''''((((((((((((((((((((((((''''''''((((((((((((((((''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((((((((((((((((((((((((((((((((((''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((())))))))(((((((()))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))*)*)*)*)*)*)*))))))))))************************))))))))))))))))********))))))))********))))))))********))))))))))))))))))))))))))))))))))))))))********))))))))********************************************************************************************************+++++++++++++++++++++++++++++++++++++++++++++++++++++++++,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------------------..--,+**))**+,,,,,,-../.0/.-,,+ +++,,,,,-+-../...0///0000--.///..-,--....--,,,,,,........------------------------................////////........////////........................................................................................................&&&&&&&&&&&&&&&&&'&'&'&'&'&'&'&&&&&&&&&&&&&&&&&&&'&'&'&'&'&'&'&'&&&&&&&&&&&&&&&&&'&'&'&'&'&'&'&''('('('('('('('('''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''('('('('('('('('('('('(&'&'&'&''('('('('('('('((((((((((((((((((('('('('('('('(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((''''''''''''''''(((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))********))))))))********))))))))))))))))************************************************))))))))********************************************************++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,++++++++++++++++,,,,,,,,,,,,,,,,++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------,,,,,,,,--,,-,--------,,,,,,,,,,,---------------------.-.---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------................................................----------------........................................////////................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''((((((((''''''''''''''''((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((''''''''''''''''(((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))********))))))))********))))))))))))))))************************************************))))))))********************************************************++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,++++++++++++++++,,,,,,,,,,,,,,,,++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------------------------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------................................................----------------................................................--------------------------------&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''((((((((''''''''''''''''((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((''''''''''''''''(((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))********))))))))********))))))))))))))))************************************************))))))))********************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------------------------------------------------------................................................--------------------------------%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''((((((((''''''''''''''''((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))********))))))))********))))))))))))))))************************************************))))))))********************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------........--------------------------------%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''&&&&&&&&&&&&&&&&((((((((''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------........--------------------------------%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&%%%%%%%%%%%%%%%%&&&&&&&&''''''''&&&&&&&&&&&&&&&&((((((((''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))(((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&%%%%%%%%%%%%%%%%&&&&&&&&''''''''&&&&&&&&&&&&&&&&((((((((''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))(((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))********************************++++++++++++++++************************++++++++************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&%%%%%%%%%%%%%%%%&&&&&&&&''''''''&&&&&&&&&&&&&&&&((((((((''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&&&&&&&&''''''''''''''''''''''''''''''''&&&&&&&&''''''''''''''''((((((((((((((((((((((((''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))(((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))********************************++++++++++++++++************************++++++++************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((((((((((((((((((((((((((''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))(((((((())))))))))))))))(((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))********************************************************++++++++++++++++++++++++************************++++++++++++++++++++++++++++++++++++++++++++++++********++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))(((((((())))))))))))))))(((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))********************************************************++++++++++++++++++++++++************************++++++++++++++++++++++++++++++++++++++++++++++++********++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,################################################################$$$$$$$$%%%%%%%%$$$$$$$$########$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))(((((((())))))))))))))))(((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))************************))))))))))))))))))))))))************************************************))))))))****************++++++++++++++++++++++++++++++++++++++++++++++++************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,++++++++################################################################$$$$$$$$%%%%%%%%$$$$$$$$########$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))************************))))))))))))))))))))))))************************************************))))))))****************++++++++++++++++++++++++++++++++++++++++++++++++************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,++++++++################################################################$$$$$$$$%%%%%%%%$$$$$$$$########$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''&&&&&&&&''''''''''''''''((((((((''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))************************************************))))))))****************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,++++++++################################################################$$$$$$$$$$$$$$$$################################%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%&&&&&&&&%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''&&&&&&&&''''''''''''''''((((((((''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))************************************************))))))))****************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++""""""""########################################################$$$$$$$$$$$$$$$$################################%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%&&&&&&&&%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''&&&&&&&&''''''''''''''''((((((((''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))********))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))********))))))))""""""""########################################################$$$$$$$$$$$$$$$$################################%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%&&&&&&&&%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''&&&&&&&&''''''''''''''''((((((((''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((''''''''''''''''((((((((''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((((((((((((((((((((((((((''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))********))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))********))))))))""""""""""""""""""""""""""""""""""""""""""""""""################################################################################################################$$$$$$$$########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$########################$$$$$$$$$$$$$$$$%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'&'&'&'&'&'&'&&&&&&&&&&&&&&&&&&&'&'&'&'&'&'&'&''''''''''''''''''''''''''''''''''('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('(&&&&&&&&'''''''''('('('('('('('(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((())))))))))))))))))))))))(((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))********))))))))********))))))))****************""""""""""""""""""""""""""""""""""""""""""""""""################################################################################################################$$$$$$$$########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$########################$$$$$$$$$$$$$$$$%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((())))))))))))))))))))))))(((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))********))))))))********))))))))****************""""""""""""""""""""""""""""""""""""""""""""""""################################################################################################################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%$$$$$$$$%%%%%%%%$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((())))))))))))))))))))))))(((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))********))))))))********))))))))****************""""""""""""""""""""""""""""""""""""""""""""""""################################################################################################################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%$$$$$$$$%%%%%%%%$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))********))))))))********))))))))****************""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""########""""""""################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%$$$$$$$$%%%%%%%%$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""########""""""""################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""########################""""""""########""""""""################################################################################""""""""########$$$$$$$$########$$$$$$$$########################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""########################""""""""########""""""""################################################################################""""""""########$$$$$$$$########$$$$$$$$########################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&&&&&&&&&&&&&&&&''''''''''''''''''''''''&&&&&&&&&&&&&&&&''''''''''''''''''''''''((((((((''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""!!!!!!!!""""""""!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""########""""""""################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$################$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((((((((((''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))(((((((((((((((((((((((((((((((((((((((())))))))))))))))!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""!!!!!!!!""""""""!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""########""""""""################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$################$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))(((((((((((((((((((((((((((((((((((((((())))))))))))))))!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""!!!!!!!!""""""""!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""########""""""""################################################################################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$################################################$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))(((((((((((((((((((((((((((((((((((((((())))))))))))))))!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""########""""""""################################################################################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$################################################$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""!!!!!!!!!!!!!!!!""""""""""""""""""""""""########################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$################################################$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((''''''''((((((((''''''''((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""!!!!!!!!!!!!!!!!!!!!!!!!""""""""!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!                                                                !!!!!!!!        !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""!!!!!!!!!!!!!!!!""""""""""""""""""""""""########################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$################################################################$$$$$$$$%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&''''''''''''''''&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((''''''''((((((((''''''''((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""!!!!!!!!!!!!!!!!!!!!!!!!""""""""!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!                                                                !!!!!!!!        !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""########$$$$$$$$$$$$$$$$$$$$$$$$################$$$$$$$$########$$$$$$$$$$$$$$$$################################""""""""""""""""########################%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&''''''''''''''''&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((''''''''((((((((''''''''((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!""""""""!!!!!!!! !!!!!!!!""""""""!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!                                                                !!!!!!!!        !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""########$$$$$$$$$$$$$$$$$$$$$$$$################$$$$$$$$########$$$$$$$$$$$$$$$$################################""""""""""""""""########################%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&''''''''''''''''&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((''''''''((((((((''''''''''''''''''''''''''''''''((((((((((((((((((((((((((((((((((((((((''''''''''''''''!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""################""""""""########################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$########$$$$$$$$%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'&'&'&'&'&'&'&'&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'''''''''''''''''('('('('('('('('''''''''''''''''('('('('('('('(&&&&&&&&'''''''''('('('(&'&'&'&'((((((((((((((((!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""################""""""""########################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$########$$$$$$$$%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""################""""""""################################################################################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""################""""""""################################################################################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""########################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""########################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""################""""""""########################################""""""""""""""""########################""""""""""""""""""""""""################$$$$$$$$################$$$$$$$$$$$$$$$$%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""################""""""""########################################""""""""""""""""########################""""""""""""""""""""""""################$$$$$$$$################$$$$$$$$$$$$$$$$%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""########""""""""########################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""########""""""""########################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""########""""""""########################################################################################$$$$$$$$$$$$$$$$################################################$$$$$$$$$$$$$$$$################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""########""""""""########################################################################################$$$$$$$$$$$$$$$$################################################$$$$$$$$$$$$$$$$################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""########$$$$$$$$########""""""""################################$$$$$$$$$$$$$$$$################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!                                                                                        !!!!!!!!        !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""########$$$$$$$$########""""""""################################$$$$$$$$$$$$$$$$################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!                                                                                        !!!!!!!!        !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""################""""""""""""""""""""""""""""""""""""""""########$$$$$$$$$$$$$$$$################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$################$$$$$$$$########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!                                                                                        !!!!!!!!        !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""################""""""""""""""""""""""""""""""""""""""""########$$$$$$$$$$$$$$$$################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$################$$$$$$$$########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""########################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$################!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""########################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$################!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""########################################################################################################################################################################!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""!!!!!!!!!!!!!!!!""""""""!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""########################################################################################################################################################################!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""!!!!!!!!!!!!!!!!""""""""!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""################################################################!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""################################################################!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""################!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"""""""" !!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""################!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""!!!!!!!!""""""""!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""!!!!!!!!""""""""!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! """"""""!!!!!!!!""""""""!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!atanks-6.6/misc/13.bmp0000644000175000017500000000336612636021030012645 0ustar apoapoBM6(  hhhKKKHHHLLLKKK???BBBӦpppgggYYYXXXNNNGGG???Ǧ{{{{{{jjjJJJEEEŮnnnRRRDDDƯqqqPPPLLL®oooLLLNNNԦnnnMMMPPPnnnYYYNNNͦvvvbbbOOO\\\HHHuuuqqqSSSHHHNNN___qqqdddZZZYYYȐkkkgggǮ~~~nnnǰpppҠЭatanks-6.6/misc/3.bmp0000644000175000017500000000063612636021030012561 0ustar apoapoBM6(h  ??????______̚̚̚ڵڵڵԄԄԄԄaaa0atanks-6.6/misc/1.bmp0000644000175000017500000003416612636021030012564 0ustar apoapoBMv86(@8  ܺТƌyyggWWGG221100//--,,++**((''&&$$##!!  !!##$$%%&&(())**++--..//1111334455668899::;;==>>??@@AABBDDEEFFGGIIJJKKLLMMNNPPQQRRSSTTUUVVWWXXXXYYZZZZ[[[[[[[[[[ZZZZYYXXXXWWVVUUTTSSRRQQPPNNMMLLKKJJIIGGFFEEDDBBAA@@??>>==;;::9988665544331111//..--++**))((&&%%$$##!!  !!##$$&&''((**++,,--//001122GGWWggyyƌТܺٲ͛†ssbbQQAA2211//..--,,**))((''%%$$##!! !!""##$$&&''(())**++--..//1122334466778899;;<<==>>??@@AACCDDEEFFHHIIJJLLMMNNOOPPQQSSTTUUVVWWXXYYYYZZ[[[[\\\\\\\\\\[[[[ZZYYYYXXWWVVUUTTSSQQPPOONNMMLLJJIIHHFFEEDDCCAA@@??>>==<<;;9988776644332211//..--++**))((''&&$$##""!! !!##$$%%''(())**,,--..//1122AAQQbbss†͛ٲٲ͛†ssbbQQAA2211//..--,,**))((''%%$$""!! !!""##$$&&''(())++,,--..001122335566778899;;<<==>>@@AABBCCEEEEGGHHIIKKLLMMNNPPQQRRSSTTUUWWXXYYZZ[[[[\\]]]]]]]]]]]]]]\\[[[[ZZYYXXWWUUTTSSRRQQPPNNMMLLKKIIHHGGEEEECCBBAA@@>>==<<;;998877665533221100..--,,++))((''&&$$##""!! !!""$$%%''(())**,,--..//1122AAQQbbss†͛ٲٲ͛†ssbbQQAA2211//..--,,**))((''%%$$""!!  !!""##$$&&''(())++,,--..0011223355667799::;;<<>>??@@AABBCCEEFFGGIIJJKKMMNNOOPPQQSSTTUUVVXXXXYY[[[[\\]]^^__________^^]]\\[[[[YYXXXXVVUUTTSSQQPPOONNMMKKJJIIGGFFEECCBBAA@@??>><<;;::9977665533221100..--,,++))((''&&$$##""!!  !!""$$%%''(())**,,--..//1122AAQQbbss†͛ٲٲ͛†ssbbQQAA2211//..--,,**))((''%%$$""!!  !!""##%%&&''))**++,,..//0011334455667799::;;<<>>??@@AABBDDEEFFHHIIJJLLMMNNOOPPRRSSTTUUWWXXYYZZ[[\\]]^^____``````____^^]]\\[[ZZYYXXWWUUTTSSRRPPOONNMMLLJJIIHHFFEEDDBBAA@@??>><<;;::9977665544331100//..,,++**))''&&%%##""!!  !!""$$%%''(())**,,--..//1122AAQQbbss†͛ٲٲ͛†ssbbQQAA2211//..--,,**))((''%%$$""!!  !!""##%%&&''))**++,,..//0011334455668899::;;==>>??@@AACCDDEEGGHHIIJJLLMMNNPPQQRRTTUUVVWWXXZZ[[\\]]^^__``aaaaaaaaaa``__^^]]\\[[ZZXXWWVVUUTTRRQQPPNNMMLLJJIIHHGGEEDDCCAA@@??>>==;;::9988665544331100//..,,++**))''&&%%##""!!  !!""$$%%''(())**,,--..//1122AAQQbbss†͛ٲٲ͛†ssbbQQAA2211//..--,,**))((''%%$$""!!  !!""##%%&&''))**++,,..//0011334455668899::;;==>>??@@AACCDDEEGGHHIIKKLLMMOOPPQQSSTTUUVVXXYYZZ[[]]^^__``aabbccccccbbaa``__^^]][[ZZYYXXVVUUTTSSQQPPOOMMLLKKIIHHGGEEDDCCAA@@??>>==;;::9988665544331100//..,,++**))''&&%%##""!!  !!""$$%%''(())**,,--..//1122AAQQbbss†͛ٲٲ͛†ssbbQQAA2211//..--,,**))((''%%$$""!!  !!""##%%&&''))**++,,..//0011334455668899::;;==>>??@@AACCDDEEGGHHIIKKLLMMOOPPQQSSTTUUWWXXYY[[\\]]____aabbccddddddccbbaa____]]\\[[YYXXWWUUTTSSQQPPOOMMLLKKIIHHGGEEDDCCAA@@??>>==;;::9988665544331100//..,,++**))''&&%%##""!!  !!""$$%%''(())**,,--..//1122AAQQbbss†͛ٲٲ͛†ssbbQQAA2211//..--,,**))((''%%$$""!!  !!""##%%&&''))**++,,..//0011334455668899::;;==>>??@@AACCDDEEGGHHIIKKLLMMOOPPQQSSTTUUWWXXYY[[\\]]__``aaccddeeeeeeddccaa``__]]\\[[YYXXWWUUTTSSQQPPOOMMLLKKIIHHGGEEDDCCAA@@??>>==;;::9988665544331100//..,,++**))''&&%%##""!!  !!""$$%%''(())**,,--..//1122AAQQbbss†͛ٲٲ͛†ssbbQQAA2211//..--,,**))((''%%$$""!!  !!""##%%&&''))**++,,..//0011334455668899::;;==>>??@@AACCDDEEGGHHIIKKLLMMOOPPQQSSTTUUWWXXYY[[\\]]__``aaccddeeffeeddccaa``__]]\\[[YYXXWWUUTTSSQQPPOOMMLLKKIIHHGGEEDDCCAA@@??>>==;;::9988665544331100//..,,++**))''&&%%##""!!  !!""$$%%''(())**,,--..//1122AAQQbbss†͛ٲٲ͛†ssbbQQAA2211//..--,,**))((''%%$$""!!  !!""##%%&&''))**++,,..//0011334455668899::;;==>>??@@AACCDDEEGGHHIIKKLLMMOOPPQQSSTTUUWWXXYY[[\\]]__``aaccddeeeeeeddccaa``__]]\\[[YYXXWWUUTTSSQQPPOOMMLLKKIIHHGGEEDDCCAA@@??>>==;;::9988665544331100//..,,++**))''&&%%##""!!  !!""$$%%''(())**,,--..//1122AAQQbbss†͛ٲٲ͛†ssbbQQAA2211//..--,,**))((''%%$$""!!  !!""##%%&&''))**++,,..//0011334455668899::;;==>>??@@AACCDDEEGGHHIIKKLLMMOOPPQQSSTTUUWWXXYY[[\\]]____aabbccddddddccbbaa____]]\\[[YYXXWWUUTTSSQQPPOOMMLLKKIIHHGGEEDDCCAA@@??>>==;;::9988665544331100//..,,++**))''&&%%##""!!  !!""$$%%''(())**,,--..//1122AAQQbbss†͛ٲٲ͛†ssbbQQAA2211//..--,,**))((''%%$$""!!  !!""##%%&&''))**++,,..//0011334455668899::;;==>>??@@AACCDDEEGGHHIIKKLLMMOOPPQQSSTTUUVVXXYYZZ[[]]^^__``aabbccccccbbaa``__^^]][[ZZYYXXVVUUTTSSQQPPOOMMLLKKIIHHGGEEDDCCAA@@??>>==;;::9988665544331100//..,,++**))''&&%%##""!!  !!""$$%%''(())**,,--..//1122AAQQbbss†͛ٲٲ͛†ssbbQQAA2211//..--,,**))((''%%$$""!!  !!""##%%&&''))**++,,..//0011334455668899::;;==>>??@@AACCDDEEGGHHIIJJLLMMNNPPQQRRTTUUVVWWXXZZ[[\\]]^^__``aaaaaaaaaa``__^^]]\\[[ZZXXWWVVUUTTRRQQPPNNMMLLJJIIHHGGEEDDCCAA@@??>>==;;::9988665544331100//..,,++**))''&&%%##""!!  !!""$$%%''(())**,,--..//1122AAQQbbss†͛ٲٲ͛†ssbbQQAA2211//..--,,**))((''%%$$""!!  !!""##%%&&''))**++,,..//0011334455667799::;;<<>>??@@AABBDDEEFFHHIIJJLLMMNNOOPPRRSSTTUUWWXXYYZZ[[\\]]^^____``````____^^]]\\[[ZZYYXXWWUUTTSSRRPPOONNMMLLJJIIHHFFEEDDBBAA@@??>><<;;::9977665544331100//..,,++**))''&&%%##""!!  !!""$$%%''(())**,,--..//1122AAQQbbss†͛ٲٲ͛†ssbbQQAA2211//..--,,**))((''%%$$""!!  !!""##$$&&''(())++,,--..0011223355667799::;;<<>>??@@AABBCCEEFFGGIIJJKKMMNNOOPPQQSSTTUUVVXXXXYY[[[[\\]]^^__________^^]]\\[[[[YYXXXXVVUUTTSSQQPPOONNMMKKJJIIGGFFEECCBBAA@@??>><<;;::9977665533221100..--,,++))((''&&$$##""!!  !!""$$%%''(())**,,--..//1122AAQQbbss†͛ٲٲ͛†ssbbQQAA2211//..--,,**))((''%%$$""!! !!""##$$&&''(())++,,--..001122335566778899;;<<==>>@@AABBCCEEEEGGHHIIKKLLMMNNPPQQRRSSTTUUWWXXYYZZ[[[[\\]]]]]]]]]]]]]]\\[[[[ZZYYXXWWUUTTSSRRQQPPNNMMLLKKIIHHGGEEEECCBBAA@@>>==<<;;998877665533221100..--,,++))((''&&$$##""!! !!""$$%%''(())**,,--..//1122AAQQbbss†͛ٲٲ͛†ssbbQQAA2211//..--,,**))((''%%$$##!! !!""##$$&&''(())**++--..//1122334466778899;;<<==>>??@@AACCDDEEFFHHIIJJLLMMNNOOPPQQSSTTUUVVWWXXYYYYZZ[[[[\\\\\\\\\\[[[[ZZYYYYXXWWVVUUTTSSQQPPOONNMMLLJJIIHHFFEEDDCCAA@@??>>==<<;;9988776644332211//..--++**))((''&&$$##""!! !!##$$%%''(())**,,--..//1122AAQQbbss†͛ٲatanks-6.6/misc/8.bmp0000644000175000017500000002160612636021030012566 0ustar apoapoBM#6(P#  ]]]ZZZWWWTTTQQQOOONNNMMMLLLLLLLLLKKKIIIEEEAAA<<<666000...111777<<>>======>>>>>>:::555000---,,,...000///***$$$ !!!$$$)))...333888;;;<<<:::777333111///...000444888;;;<<<===>>>>>>???@@@AAACCCCCCAAA>>>;;;666111,,,+++...444:::>>>??????@@@CCCGGGJJJKKKIIIGGGEEEDDDEEEEEEDDDBBB@@@>>>======>>>>>>:::555000---,,,...000///***$$$!!!"""&&&,,,222777===AAABBBAAA???===;;;::::::<<<@@@DDDGGGHHHHHHGGGEEEBBB>>>:::ppppppooonnnmmmkkkhhhdddbbbbbbdddeeeeeebbb^^^VVVMMMBBB<<<<<>>GGGOOOUUUWWWYYY\\\___aaacccbbb```^^^]]]\\\\\\ZZZVVVRRROOOMMMNNNPPPPPPLLLGGGAAA<<<:::;;;===;;;555...***+++000666===DDDJJJPPPSSSTTTSSSRRRRRRRRRRRRUUUYYY]]]______]]]ZZZUUUNNNFFF>>>~~~{{{{{{~~~}}}tttfffWWWKKKFFFJJJTTT```kkkqqqtttuuuwwwxxxzzzyyyxxxwwwvvvvvvuuuqqqllleee```\\\\\\^^^]]]YYYTTTNNNHHHFFFEEEEEEBBB<<<666222444888>>>DDDJJJPPPUUUXXXYYYYYYYYYYYYYYYZZZ\\\```dddfffhhhjjjkkkiiifffeeegggmmmsssvvvvvvssskkk___PPPEEEAAAFFFQQQ___jjjqqqtttuuuwwwxxxzzzyyyxxxwwwvvvvvvuuuqqqllleee```\\\\\\^^^]]]YYYTTTNNNHHHFFFEEEEEEBBB<<<666444666;;;BBBIIIPPPWWW^^^ccceeefffhhhjjjkkkmmmpppsssvvvwwwvvvrrrmmmdddXXXMMMCCC~~~jjjXXXNNNNNNXXXhhhxxx~~~vvvmmmfffddddddbbb]]]WWWQQQMMMJJJIIIHHHFFFBBB>>>>>>AAAFFFLLLQQQUUUYYY]]]```bbbdddgggjjjkkkkkklllpppssswwwzzz}}}~~~{{{xxxvvvzzzuuubbbRRRIIIJJJUUUfffwww~~~vvvmmmfffddddddbbb]]]WWWQQQMMMJJJIIIHHHFFFBBB??????CCCIIIPPPVVV\\\aaaggglllpppuuuyyy}}}zzznnn```RRRFFFyyycccTTTPPPXXXhhh{{{uuukkkfffdddaaaZZZSSSMMMJJJIIIIIIIIIHHHHHHIIILLLQQQWWW\\\___``````bbbdddgggkkkpppssssssqqqqqquuuzzzppp\\\NNNKKKTTTfffyyyuuukkkfffdddaaaZZZSSSMMMJJJIIIIIIIIIHHHHHHIIIMMMSSSZZZaaaeeehhhjjjmmmqqqvvv|||ttteeeVVVJJJmmm[[[SSSVVVdddvvvxxxttttttzzz}}}ppphhhddd```YYYQQQJJJGGGHHHJJJLLLNNNPPPSSSYYY___fffkkkllljjjgggeeefffhhhmmmrrrtttqqqmmmmmmqqqxxx{{{eeeUUUNNNSSSbbbuuuxxxttttttzzz}}}ppphhhddd```YYYQQQJJJGGGHHHJJJLLLNNNPPPTTTZZZbbbjjjppprrrrrrqqqqqqtttyyywwwfffWWWJJJyyyggg\\\ZZZaaannn{{{}}}rrrggg``````iiixxxyyypppkkkhhhaaaYYYQQQMMMMMMPPPTTTWWWZZZ\\\```ffflllqqqqqqmmmiiiffffffhhhmmmpppoookkkffffffkkksss|||qqqaaaWWWVVV___mmm{{{}}}rrrggg``````iiixxxyyypppkkkhhhaaaYYYQQQMMMMMMPPPTTTWWWZZZ]]]aaahhhooouuuwwwvvvssssssuuuyyyvvvfffUUUHHHwwwjjjbbbaaahhhqqqvvvrrrgggZZZSSSTTT^^^ooo}}}zzzwwwqqqiiiaaa\\\[[[^^^aaaddddddbbbaaabbbfffjjjjjjhhhdddcccccceeeggghhhfffccc___```fffoooyyyyyyrrrrrryyyqqqeee______fffpppuuurrrgggZZZSSSTTT^^^ooo}}}zzzwwwqqqiiiaaa\\\[[[^^^aaaddddddcccbbbdddjjjoooqqqpppoooppprrruuuzzz}}}~~~}}}}}}sssbbbQQQDDDuuuiiiaaaaaafffjjjiiiaaaVVVOOOPPP[[[lll~~~yyytttpppoooppprrrqqqmmmfff___[[[[[[]]]___^^^]]]]]]^^^^^^^^^^^^]]]\\\\\\```gggpppzzzyyymmmdddbbbhhhvvv}}}pppeee______eeejjjiiiaaaVVVOOOPPP[[[lll~~~yyytttpppoooppprrrqqqmmmggg```]]]___bbbeeeggghhhjjjmmmoooqqqtttvvvwwwzzzppp^^^MMM@@@|||{{{wwwiii^^^YYY\\\```bbb___YYYSSSSSS]]]mmm}}}|||tttiii^^^VVVTTTUUUVVVWWWXXXYYYYYYXXXWWWWWWXXXZZZ___eeemmmvvvsssfff\\\YYY^^^jjj{{{rrreee[[[XXX[[[```bbb___YYYSSSSSS]]]mmm}}}|||tttiii___XXXWWWZZZ]]]___bbbeeehhhiiijjjmmmqqqvvv|||~~~mmm[[[KKK>>>}}}zzz~~~}}}oooaaaVVVQQQRRRWWW[[[]]][[[XXXYYY```nnn|||{{{{{{~~~wwwjjj___WWWTTTUUUVVVWWWWWWXXXWWWUUUTTTUUUYYY^^^dddkkkttt}}}}}}pppddd\\\YYY\\\fffssswwwjjj]]]SSSOOOQQQWWW[[[]]][[[XXXYYY```nnn|||{{{{{{~~~wwwkkk```YYYXXXZZZ]]]```bbbeeefffggghhhkkkqqqyyy~~~mmm[[[LLL@@@~~~ssseeeYYYOOOKKKLLLPPPTTTXXXYYYZZZ\\\cccnnnyyyyyyooojjjllluuuvvvkkkaaa[[[[[[]]]______^^^\\\[[[YYYXXXZZZ___eeejjjooovvv~~~}}}qqqhhhbbb___aaagggpppxxx}}}|||vvvlllaaaUUUMMMJJJKKKOOOTTTXXXYYYZZZ\\\cccnnnyyyyyyooojjjllluuuwwwkkkbbb^^^^^^bbbfffgggiiiiiijjjjjjlllqqqwww~~~mmm\\\NNNCCC|||wwwnnndddZZZRRRMMMKKKLLLNNNRRRTTTWWW\\\ccclllrrruuuvvvxxx|||}}}uuuiii^^^YYY^^^iiizzztttkkkeeebbbcccfffiiiiiihhhfffcccbbbbbbeeeiiilllnnnooorrrwww{{{rrrkkkgggfffgggkkkpppsssuuutttsssrrrnnnhhh___VVVOOOKKKJJJKKKNNNRRRTTTWWW\\\ccclllrrruuuvvvxxx|||}}}uuuiii^^^YYY^^^iiizzztttlllfffdddggglllpppqqqrrrrrrrrrsssuuuzzz}}}mmm]]]PPPFFF~~~zzzxxxvvvsssmmmfff^^^WWWRRROOOOOOPPPQQQSSSYYY```fffhhhgggggghhhkkknnnmmmeeeZZZOOOLLLPPP^^^pppyyypppkkkhhhhhhjjjmmmoooqqqqqqpppooonnnpppqqqsssrrrooollljjjmmmtttzzz|||yyysssnnnkkkjjjkkkmmmqqqsssrrrpppnnnnnnnnnlllhhhbbb\\\VVVRRROOOOOOPPPQQQSSSYYY```fffhhhgggggghhhkkknnnmmmeeeZZZOOOLLLPPP^^^pppzzzqqqllliiijjjnnnssswwwzzz|||}}}}}}{{{mmm^^^QQQGGG{{{zzz{{{|||{{{wwwppphhh```ZZZWWWUUUSSSSSSUUU[[[______]]][[[]]]```cccbbb[[[PPPGGGCCCGGGSSSfffyyytttllliiiiiikkknnnppprrruuuwwwxxxyyy{{{|||}}}{{{vvvooohhhcccdddjjjrrrwwwxxxuuuqqqmmmjjjjjjmmmrrrvvvuuurrrooopppsssvvvvvvtttnnnggg___ZZZWWWUUUSSSSSSUUU[[[______]]][[[]]]```cccbbb[[[PPPGGGCCCGGGSSSfffyyytttllliiikkknnnrrrvvvyyy~~~zzzmmm___RRRFFFxxxooohhheeebbb]]]XXXWWWYYY\\\]]]\\\]]]___aaabbb___WWWNNNFFFBBBEEEOOO```sss{{{ooogggeeegggllloooqqqsssvvvzzz}}}yyypppgggaaaaaagggpppwwwzzzxxxsssmmmhhhgggkkkqqqwwwyyywwwtttuuuyyy~~~~~~wwwnnnhhheeebbb]]]XXXWWWYYY\\\]]]\\\]]]___aaabbb___WWWNNNFFFBBBEEEOOO```sss{{{ooogggfffiiinnnssswwwzzzzzzooo```QQQEEE{{{uuurrrpppjjjccc______bbbeeehhhkkknnnpppnnnggg]]]SSSLLLIIILLLTTTbbbrrr}}}xxxlllccc```ccchhhnnnqqqrrruuuyyy~~~|||sssjjjeeeeeejjjsss|||}}}wwwpppjjjhhhkkkrrrxxx{{{zzzyyyzzz~~~zzzuuurrrpppjjjccc______bbbeeehhhkkknnnpppnnnggg]]]SSSLLLIIILLLTTTbbbrrr}}}xxxmmmcccaaaeeekkkrrrwwwzzz~~~~~~rrrbbbRRREEE}}}||||||xxxrrrmmmmmmqqqvvv{{{uuuiii___YYYXXX[[[bbbmmmyyyyyymmmbbb^^^___eeekkkoooqqqssswww|||wwwppplllkkkpppyyy}}}vvvqqqpppsssxxx}}}}}}||||||xxxrrrmmmmmmqqqvvv{{{uuuiii___YYYXXX[[[bbbmmmyyyyyymmmccc^^^aaagggnnntttxxx{{{wwwfffUUUGGG||||||vvvlllgggiiiooovvv~~~}}}qqqfff``````dddiiimmmoooqqqtttyyy{{{vvvssssssuuu|||~~~|||}}}||||||vvvlllgggiiiooovvv~~~}}}qqqgggaaaaaaffflllrrruuuxxx}}}|||kkkYYYJJJvvvssswwwvvvlllfffdddeeehhhkkknnnoooqqquuu{{{~~~|||zzzxxxyyy}}}vvvssswwwvvvmmmgggeeeggglllpppsssvvvzzzooo\\\MMMatanks-6.6/button/0000755000175000017500000000000012636021030012272 5ustar apoapoatanks-6.6/button/10.bmp0000644000175000017500000005450612636021030013224 0ustar apoapoBMFY6(& YeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUgVUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUXUUYdddddddcccccccccbbbbbbbbbaaaaaaaaa``````````_________^^^^^^^^^^^^^^^^^^^^]]]]]]]]]]]]]]\\\\\\\\\[[[[[[[ZZZZZZZYYYYYYYXXXXXXXWWWWWWWVVVVVVVVVUUUU_UUgUUgdd[[##ccQPUUgcbª,,ìqqUUhîíLL<<ªĮUUhYXëîK9//ĮĮmmUUh//OO*bb1111yyTTUUiiѸkk55UUi @ OSOВffAA""UUiz H !"!SeSVV&& UUj=<22~@, ` ""QC// 00##UUj7;?;<><DDY  99##s"cc** / L{LKKUUjncic޲ԚҘrr&PP|W^WhqhRZROO''ҖHHTO[Oyy$$UUj 9 242җ]]EEDDUUee NmNEE F ')'ӑЇʊ.:.,9,YY  XXu*.*؉44UUkإPP ((8c8uu)) 2 x}xnn<<22<>/L/,~,  S bfbݱ\\h-1-Έ33t#&#ӌ77ՖBB?WfWiiUUm((OOT[T||22іDDϕHHAAE33UUn ++^^cc8D8JVJ~~??TT  YY(rrgghh,,UUnFFooΌ՞إؤԚˆbb55>>vvۨvv>>::ssݨyyAA 22kkݣтTTTT||ޜdd++UUn 77IIPPOOEE1188TT>>""77SS@@##33OODD****;;UUUUUUUUUUUUUUUUUUUUQQ55UUo&&GF##UUo98¨BBUUoyyíì@@TTªĮUUo~}«îª22==ŮĮaaUUp77¦tt ggppUUpUVVatanks-6.6/button/22.bmp0000644000175000017500000005450612636021030013227 0ustar apoapoBMFY6(& YeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUgVUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUXUUYdddddddcccccccccbbbbbbbbbaaaaaaaaa``````````_________^^^^^^^^^^^^^^^^^^^^]]]]]]]]]]]]]]\\\\\\\\\[[[[[[[ZZZZZZZYYYYYYYXXXXXXXWWWWWWWVVVVVVVVVUUUU_UUgUUgdd[[##ccQPUUgcbª,,ìqqUUhîíLL<<ªĮUUhYXëîĮĮmmUUh//OO11yyTTUUiUUiUUiUUjz55 11"" K (S## 00##g 2   C#~# SF..W/ e ""?!X!,,UUjA@e@FFrr@@m6u6)) * LuLKK"&55v)bb)){99$$d':']]$$UUj00  vv,,v ܭXXӺʣɡFTFRR++MOYOyy$$!ɪĝ~~8F8 DD''ؗEEƺٻңѡΟ=L= SS%%ړ>>UUj._.OeOVV d IKI֟JJ ՜ff]]^^ccrr)8)K`KWWj*.*Ή44^}}ffeeuuVzV  VV%%TT hh]]]]aarr#1#QpQPP$$ĐOOUUk**krkϐ;;0oopp +Z+AIA}}))ЖEE - otoii(( EE/I/9L9TT2yycc4h}hss  'W'BMBxx--  zz__ UUk2s2ʂ--PP[Pyy$$:]e]͉44UUҊ55 66xx55VXhXjjYHSH}}(( $ MUMى55A_r_ppUUk##)mpm{{yy#'#ssm,0,~~33z I ů||(('sseevv!!"ggZZ'z'  M''}RwR,l,ddWׅ00e>E>ԁ,,UUl 33JNJϏxx!ڴee/7/סSSGVcVuu wwssHKWKuu4488** PTPhhّ<<UUl#?#]]))$&$۫VV  >C>ss--e383̆11FOZO{{&&U8Մ//>S[Sو33w+/+ډ44aAJA**UUm0k0qq @@w 0 إNN:WdWii$$:o:0R0++ \  KNKccƈ== W ׃..ږDDِ;;UUm'' ܵccӘ5|5A::CCNNCIC҄88Y^YeeUU̓KKUUn 33,-,کTT)!LVLܮdd,,hh8811ddbb7C7FRF҅EE(@K@xx77 *qqee  \\ UUn YYБ۪ؤll3311jjע۪۪۪۪کإԚ˅\\--DD||۪۪۪۪۪۪۪۪۪ܪ֜dd++ ##JJrrҍٞܦܥ؛҈gg9922kkޣݝ׊ff6622kkւII88qq{{CC UUn$$AAUUPP4422OOUUUUUUUUTTPPEE00;;UUUUUUUUUUUUUUUUUUUUQQ55 88IIQQPPFF3333OOUUUUUUTTQQHH55 33OODD'' 66RR@@$$UUo&&GF##UUo98¨BBUUoyyíì@@TTªĮUUo~}«îª22==ŮĮaaUUp77¦tt ggppUUpUVVatanks-6.6/button/24.bmp0000644000175000017500000005450612636021030013231 0ustar apoapoBMFY6(& YeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUgVUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUXUUYdddddddcccccccccbbbbbbbbbaaaaaaaaa``````````_________^^^^^^^^^^^^^^^^^^^^]]]]]]]]]]]]]]\\\\\\\\\[[[[[[[ZZZZZZZYYYYYYYXXXXXXXWWWWWWWVVVVVVVVVUUUU_UUgUUgdd[[##ccQPUUgcbª,,ìqqUUhîíLL<<ªĮUUhYXëî\11""J..ĮĮmmUUh//OOQQII*aa((11yyTTUUi[k[uu 0ؖDDUUi  >#4#CdC>>{  Ѐ-- !̪ǝ~~8F8 DD''KKggȻعңѡթcc((UUj  ՜ff]]^^ccrr)8)K`KWW"" ՞hh]]]]aarr#/#QkQPP$$OOBB&N~N66 /t{tUUd}}ffeeuuV|V  VV..++MM3O3ZdZpp]]__  ʭۏ;;UUk0oopp +Z+AIA}},,/hyhss  'O'BKBxx--  zz__ FFVV)),, 0 ouoii(( EE/K/9N9TT 6699 2zzggUUkPP[Pyy$$:]e]͉44OHQH}}(( MTM͉55<_p_ppHH  /v~vߩTT֊55 66xx55'W'ZxZXXT]o]rrUUkm,0,~~33z I ů||((lRpR,`,VVK˅00[>E>ˁ,, GG~~++vv!!#ggZZ,,!||((txxIIܒ==UUl  >C>ss--  @E@||99 ‘MM"r" ČEEHO[O{{&&Yg}gmmUUmj262̇22""ǎAAh+/+͉44XAIA**FYF6O6EE 22aa//ր++%%\r\gg`HRH}}((UUm @@w 0 إQQΖDDuѐ;;a΁\\%8%AcA>> 9r90T0++ b  KNKcc &+&vv,,r#&#ڍ88UUmӘCCUUƓKK٠KK@@$JwJ77 00NNCICք88 G֖HHUUn)!LVLܮdd%%&qqee  \\ a ww%%DDQQ11 11ddbb7C7FRFօEE%%XXUUn11jjע۪۪۪۪کإԚ˅\\-- 22kkأʂII88qqڧ{{CC@@yyڣ{{BB RRҊחjj11 ##JJrr֍ݞߦߥܛֈgg99TTڍxx@@UUn22OOUUUUUUUUTTPPEE0033OODD'' 66RR@@$$''DDRR7799RRBB%%  88IIQQPPFF33 %%BBUUUUUUUUUUUU??""UUo&&GF##UUo98¨BBUUoyyíì@@TTªĮUUo~}«îª22==ŮĮaaUUp77¦tt ggppUUpUVVatanks-6.6/button/19.bmp0000644000175000017500000005450612636021030013235 0ustar apoapoBMFY6(& YxwV~~~~~~~}}}rVUijjlkllmmnnooppqqrrrssttttuuuuvvvvvvvvvvuuuutttsssrrqqpppoonnmmllkjjiihhggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeemgee\UUisppgg p mmnnooppqqqrrsstttuuuvvvvvvwwwwvvvvvvuuutttssrrrqqppoonnmmllkjjiihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeftt77e\UUiaa==mmnnooppqqrrsstttuuvvvvwwwwwwwwwwwwwvvvuuuttsssrrqqppoonnmmlkkjjiihhgffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2~2~}e\UUiTTmmnnoppqqrrsstttuuvvvwwwwxxxxxxxxxwwwwvvvuuuttssrrqqppoonnmllkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee@@yyf\UUjBBtmnnooppqqrrssttuuvvvwwwxxxxyyyyyyxxxxwwwvvvuuttssrrqqppoonmmllkkjjihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeei9z8e\UUjk#{#GFrmmnnooppqrrssttuuvvvwwxxxyyyyyyyyyyyyxxxwwwvvuuttssrrqqpponnmmllkkjiihhgffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef&u&kee\UUjjkklmmnnoopqqrrssttuuvvwwxxxyyyzzzzzzzzzyyyyxxwwvvuuttssrrqqpoonnmmlkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\UUjjkklmmnnoppqqrrsstuuvvwwxxxyyzzzz{{{{{{zzzzyyxxwwvvuuttssrrqppoonnmllkkjiihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUjjkk85//yppqq,'W'(( g  55xxyyzz 1z1""|wJ$   <$o${wwvvu0q0##uqqp:7..wllkjjiihggffcE #    3#[#t j eee5+Z+&{& k eee9+[+&{& k 54..oeeK5{5w5+Z+&{& k eee9+[+&{& k eee[UUjjkkRcc**ppqqI5H5VV##7@^@FFyyzztrr@@k444xwvv $ LkLKK|rqqT%bb))mlkkjjihhgg\5r5uheNSS)})geeQ?S?RRtNcc*~*ee$7C7jj11NSS)})geeQ?S?RRteee[UUjjkkkHHppqqf(*(::00 vv,,zyzzd ԭXX{$Ĭqq! FFxwvCOWOyy$$rrqoEEmllkjjiihgd~~8A8DtD'|'if & [[ueei7;7..fHHf[88h & [[ueei7;7..eee[UUjjkk s  YYtpqqw–FF.U.OaOVVzz{ U IJIΟJJLծ{{ffggxx0<0G`GFFww[*-*44srq x  TTomlkkjjihhAί}}ffeeuuVlV VV%{%n  >N>IIoe k  ?? l  ZZ j 8+,+׾iit l   >N>IIoe k  ??eee[UUijkkn(jyjjjzpqqvVV y **kqkƐ;; & nrnٴhh&&((QQ*8*ɚMMxwoÖEEsrrs(yyccumllkjjiih ! oroҵii(}(on x EE/?/9E9TTt&YxY88 k f,PPi&cpcllp›FFig&YxY88 k f,PPgee[UUijkklBJQJ{{&&pqqr7ppgg~~2f2--Ċ55}}|HHlldd44xw}UUvrrqCXbXjjtffklkjiih55feee l 6u6xx55@kxk bb(}(gCxx`` l ?@E@~~#[#  ww$z$ee?kxk bb(}(gCxx`` l ee[UUijjklW6D6 7 0011QZQww""v##&mom{{yy#&#ssww""~~}|} } yxxy"ssee|srrZ  :'q'vkh vv!x!eeeeergygZZ'Y'dodÝ-:- ' YYuW]g]qquSgjg˩TT l eeSdodÝ-:- ' YYuW]g]qquee[UUijjkki-0-33v { 3v3JNJۼďxxԴee  uutt~~}}|{{zzyxxw>V`Vuu srrm8f8** n  wwssweeeeeg8KRKuu4u4@F@bb@Q@HH&o&;?;--dŸ00eeed@F@bb@Q@HH&o&;?;--ee[UUiijkk s ÖDDvv#:#]]))$%$ԫVV:R[R{{&&~}}||{zzyyxwW37311srr w ЮʧT`TWW))8OVO{{&{&eeeeee?s>ZzZCC >> l dfd!"!qqveee l PP>s>ZzZCC >>ee[UUiijjkn$նϪϪϪЪTTxvz11*1*hhvLOL̝HH~!d!77~~}}||{zzyyxwm ĕAAssrs%ƜccUUYYii*6*RdRTT.c.77eeeeee8CFC??#MM#z#7W7 dd.NNi#x~xʶ"XwX33 k eeg#MM#z#7W7 dd.NNfe[UUhijjkk>Y]YϫrrUUUUUUUU+>+rree~vv+M+ee7r7qwqĎ99}  b{bSS ~}}|{C_ } yxw|QQusrq@ZdZssmow'I'CJCyy>>auaTT l eeeee  bgb99<\\n..#2#")"EXEzz__ l <KPKŠqq  SS,,iee<\\n..#2#")"EXEzz__ l e[UUhiijkkT+.+44opqqLU^Uvv!!uvx--  "JgJ++| 1o1 __//}||S ??xwzxxaazsrrW8<8//mml.SXS<<2j2aa//ieeeO+~+Pgtgllr l :: $ _j_ppuP$&$VVDsD[[#z#fePgtgllr l :: $ _j_ppue[UUhhijjkfDDoppqb04011uvv0_0qq||""7^7/I/,t,y m E TeThh**ooo4WaWiiykjom==f_ ; .. z 9]90F0+e+f \ > KLKԸccrbGMG||'|'er?r?>B>,,bKK&{&8V8&.&TTtebGMG||'|'er?r?>B>,,eZUUhhiijkrUUropps ÕBBuuvw''յcc{{ 22LyLMQMXX8BBY\Yֺeexl00NvNCGC88il!#!88ef"y"6U6<<lWWm00&5&>O>FFol!#!88ef"y"6U6<<eZUUghhijjm qqeewopp v  RRvuuv | 3p3,,,ѩTT|z{{ 33eea}a9C9CKCںDDmm&@G@׻xx77 n h o 11ddbzb7>7FNFպEEqehHHeei//"0"MMiqqffom;;SpS88nHHeei//"0"MMfZUUghhiijj22kkɣIIwoopq77ppͦuu<<vtuuv YYđҪΤll33yzzz{ %%LLrrÍ̝ХХ˜ff88DD||ѪѪѪѪѪЪЪЪЪЪǜdd]]kkˣϪΪΪͩ˦Ɲff66sihh l #{#JJrrĞɦȥ›gg99qeee22kkşnn66eeem??wwƢɧrr99f22kkǣJJoeqJJšqq88 k 22kkşnn66eeem??wwƢɧrr99fZUUgghhijjw33OODD'' t noop~55RR==!!uttuuz$$AAUUPP44yyyzzzz 88HHPPPPGG44|y;;UUUUUUUUUUUUUUUUUUUUQQ55//33OOUUUUUUTTQQHH55z o iihhgf m x 88IIQQPPFF33tieeeer33OO::`&:q:LLSSUU<<wfr33OODD'|' k eft66QQDD'|' k r33OO::weeeeq11MMUU<<wfZUUfgghiijjkklmmnnooppqrrssttuuvvwwwxxxyyyyyyyyyyyyxxxwwwvvuuttssrrqqpponnmmllkjjiihhgffeeeeeeeeeeeeeeeeTBqB*~*ieeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeZUUfnTTyy11iijjkllmmnnoopqqrrssttuuuvvwwwxxxxyyyyyyxxxxxwwwvvuutttssrqqppoonnmmlkkjjiihggffeeeeeeeeeeeeeeee¯wwZZ"y"eeeeeeeeeeeeeeeeeeeeeeeeeeeenOO/|/feZUUemmriijkkllmmnnoppqqrrsstttuuvvvwwwwxxxxxxxxxwwwwvvvuuuttssrrqqppoonnmllkkjjiihggffeeeeeeeeeeeeeeec7 ҵjjiiVvVGG k eeeeeeeeeeeeeeeeeeeeeeeeeenYXeZUUg<<hijjkkllmmnnoppqqrrrssttuuuvvvvwwwwwwwwwwwwvvvvuuuttssrrqqppoonnmmllkkjjihhggffeeeeeeeeeeeeeeee%{%ZZ~~bb..q,,TTbbDD k eeeeeeeeeeeeeeeeeeeeeeeeeeLLfZUUeqqmhiijjkkllmmnnooppqqrrsstttuuuvvvvvvwwwwvvvvvvuuutttssrrrqqppoonnmmllkkjiihhggffeeeeeeeeeeeeeeeen,,44$z$ieh(}(22-- k eeeeeeeeeeeeeeeeeeeeeeeeee,{,cbeZUUemQPcc#r#ghhiijjkkllmmnnooppqqrrrsstttuuuuuvvvvvvvvvuuuuutttsssrrqqppoonnmmllkkjjiihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[[ddleZUUeeeefgghhiijjkkllmmnnooppqqqrrsssttttuuuuuuuuuuuuuttttsssrrrqqpppoonnmmllkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefeeeZUU\UUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYVUUWUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUbUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUYatanks-6.6/button/18.bmp0000644000175000017500000005450612636021030013234 0ustar apoapoBMFY6(& YeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUgVUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUXUUYdddddddcccccccccbbbbbbbbbaaaaaaaaa``````````_________^^^^^^^^^^^^^^^^^^^^]]]]]]]]]]]]]]\\\\\\\\\[[[[[[[ZZZZZZZYYYYYYYXXXXXXXWWWWWWWVVVVVVVVVUUUU_UUgUUgdd[[##ccQPUUgcbª,,ìqqUUhîíLL<<ªĮUUhYXëîĮĮmmUUh//OO11yyTTUUiUUiUUiJ>//8'd'(( ~ 55 11""X)  C$$ 00##KB..l 4    D## U+}+&& ^+~+&& UF..y55R+v+&& U+u+&& UUjj cc**Y5M5VV##A@e@FFrr@@}944 * LtLKKk(bb))#'55y SS))?c?RRz!cc**77L7jj11u SS))w?_?RRUUjʔHH{(+(͊::00  vv,,v ܭXX$ʬqq""FFMOYOyy$$җEE!˪Ɲ~~8F8 DD'' * [[7>7؃..ГHH׍88 ) [[7=7̓..UUj  YYΖFF._.OeOVV d IKI֟JJWܮ{{ffggxx0>0GeGFFj*.*͉44  TTb}}ffeeuuV{V  VV%% >Z>II  ݔ?? ZZ X+-+ii   >X>II  Ք??UUj/j~jjjVV **krkϐ;; * nsnߴhh&&((QQ*;*ԚMMϖEE0yycc / ouoii(( EE/K/9M9TT4YY88 =ďPP4cycllܛFF2YY88 8PPUUkOJSJ{{&&?ppgg2s2ʂ--͊55HHlldd44UUPXgXjjՊ55 66xx55Ykk bb((axx`` Y@I@~~##  ww$$Ukk bb((Yxx`` UUkl6I6 ? :::: Q]Qww""##)mpm{{yy#'#ssww"" 'sseen  I''vv!!#ggZZ'~'dwd-C- , YY]o]qq{glgTT vdud۝-A- + YYx]m]qqUUk-0-̈33 33JNJϏxx!ڴee uuttGVcVuu 8}8** ! wwssKKXKuu44@I@یbb@^@HH&&;B;؂--͸Յ00@I@Ռbb@[@HH&&;A;͂--UUl  ΖDD#?#]]))$&$۫VV?R]R{{&&e383ˆ11  ޮ٧TfTWW))HO[O{{&&X>ZZCCݓ>>  dhd!#!qq  ֐PP>>ZZCCԓ>>UUl*۪۪۪۪ TT11*3*hhLPL՝HH!o!ʉ77 ѕAA+לccUUYYii*;*RlRTT..Љ77PCHCڏ??.ДMM##7p7 dd9ǏNN/xxٶ$XX33 -˔MM##7j7 dd6NNUUlKY_Y۫rrUUUUUUUU+C+rree+U+ee7~7qyqώ99  bbSS No QQKZhZss'Y'CMCyy>>aaTT * bjbڎ99S\\..#>#"/"EfEzz__ TKSKqq  SS,,P\\..#;#"-"EbEzz__ UUlh+/+͉44ZUaUvv!!--  #JnJɀ++ 1z1 __//b ??!xxaaj8=8̈́//:S[S҈<<22aa//Հ++ug~gll :: ' _s_ppw$'$ڏVVDD[[##qg|gll :: & _p_ppUUmΖDDv050ˆ110k0qq""7e7/N/,,  P TiThh**:WdWii== P Ѓ.. 9q90T0++ `  KNKccGQG||''??>F>ׁ,,חKK&&8k8&3&TTGQG||''??>E>́,,UUmUU ЕBB'' ܵcc 22LLMRMXX@BBY]Yee00NNCICք88!$!ڍ88""6k6ܑ<<WW00&@&>Z>FF!$!Ս88""6g6ӑ<<UUm&qqee  RR 33,-,کTT 33eeaa9E9CMCDDmm*@J@xx77 11ddbb7C7FRFՅEE)ӔHH//":"ʑMM*qqff;;SS88(ϔHH//"8"ÑMMUUn22kkأʂII77pp٦uu<< YYБ۪ؤll33 %%LLrr΍՝إإ՜͉ff88DD||۪۪۪۪۪۪۪۪۪۪՜dd]]kk٣ܪܪݪܩۦ؝ъff66 ##JJrrՍܞߦߥܛՈgg9922kkߟnn66??wwrr9922kkՂJJJJԃܚqq88 22kkܟnn66??wwڢܧrr99UUn33OODD'' 55RR==!!$$AAUUPP44 88HHPPPPGG44;;UUUUUUUUUUUUUUUUUUUUQQ55//33OOUUUUUUTTQQHH55  88IIQQPPFF3333OO::.3::LLSSUU<<33OODD'' 66QQDD'' 33OO::11MMUU<<UUnBB**UUo&&,ѯwwZZ""GF##UUo98Q  ՃjjiiVVGG ¨BBUUoyyíì@@%%ZZ~~bb..,,TTbbDD TTªĮUUo~}«îª22,,44$$((22-- ==ŮĮaaUUp77¦tt ggppUUpUVVatanks-6.6/button/26.bmp0000644000175000017500000005450612636021030013233 0ustar apoapoBMFY6(& YeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUgVUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUXUUYdddddddcccccccccbbbbbbbbbaaaaaaaaa``````````_________^^^^^^^^^^^^^^^^^^^^]]]]]]]]]]]]]]\\\\\\\\\[[[[[[[ZZZZZZZYYYYYYYXXXXXXXWWWWWWWVVVVVVVVVUUUU_UUgUUgdd[[##ccQPUUgcbª,,ìqqUUhîíLL<<ªĮUUhYXëîĮĮmmUUh//OOj#]#++11yyTTUUi *>*[[""UUiؑ<<UUi,ŐMMUUjG  * Y ""i( 7''E+q+&&   55L*o*'' i( 7''d+   7"l" J 'u'!! ` 00077S00"" 022@;&&R||HH  3))M 'u'!! ^   55UUjk 2m2)) W >~>++h?]?RR hh77l~>++a   *;;V ~>CNC >>,, U  m>22^^777=7ʃ..CZZ 272˅..^^228;8٥,7,ElE!&GMGG\GAdA>>Xzz__ -=-RR[)R)Η9I9dd=H=қݣss  ^^ &GMGˀ44UUjAW_WВccVV__oo;I;MMIOİ^^YYggǘii33 є??bh|hkk  ϔ55IOİ^^YYggǘii55ʂRRVVNNIVIיeePP9<9ppWW0K0L{L77''_q_pp '('FjFBBuu1M1̲ޙ__UUddqqؖzz¬ݞmm^^7U7[{[ؙeePP9<9aaUUkҗDD ))NNxxԚJJY^YԚEE ''NNeeDD""+OO}HQH||''2C}CY^YԚEE ''NNeeDD###OO.DRDCNCee(('' ֗DD99    >-ssff>{>NWNу2p2494::x`t`oo 4:4؄GGAAQQEEuu0Y0KKVVOOIIbub}}5E5RRrשWW.ssff>{>NWN̓..UUl##44:r: єEE'9A9lslϏVV:r: єCC22 565ڥTTL ЂEE  ?G?Ԁ++5 ܔCC"":v:ccWgWrr   ǩxx*=F= WZWޥRRO ͂--UUl%K%7E7ZZ(#44JJ\\@R@  3>3۫bb""BOdO  "&"ߵnn2 TZTܻpp,,..XX@R@  3>3۫bb""IIMmM'/'  (0(lzlݿ~~::00HH/;/   *2*__))??EjE)1)ّ<<ZQQ ..*I*  292ߚmm;W; DRD£ݚOOG^y^]f]zz33..HH/;/   *2*߮__UUm000 , 99 9llBB22ZZʄԚأ՞͋^^-- ((``әΌ~~{{әעБbbPP\\͊֟՝uu>> ,,ZZʄԚأ՞͋^^-- FFvvѓנ٤נҔttBB66ggҎٞܤڡՑcc11 FFwwؔݠޤޤߦݟff--|uubb 99$ ޙddQQցޙޛքSS%%--aaܚ֋||vvٕݡۛvv@@66ggԎڞܤڡԑcc11 UUmAA9T9 Ϗ<< 00FFOOKK77..JJ??22//EENN<< 77KKHH--00FFOOKK77%%>>MMQQMM??%% 99KKQQMM<>0Ֆ&Q&ggJTT_JOJۓttII!!UUla}aTT & bibώ99KZhZss'V'CMCyy%%QQMQ]Qxx<<aaTT ) bjb؎99T  ZhZKKmrree ; _c_rrWW>>!!UUm 22aa//pɀ++h8=8ʄ//8SZS̈33!xxaak,0,Ј<<22aa//}Ӏ++uJZJ؅00UcUvv!!EoxoXX ;((UUm 9l90P0++ V KMKcc==~ M ʃ--:WdWiiҖDD 9p90S0++ ^  KNKccii060ن11 VzV@@ ~ $bb88 UUm00NNCHCʄ88Y]YeepABBTT 00NNCICԄ88_f_MM  ەBB3n3ڔBB UUn 11ddbb7B7FQF˅EE&@J@xx77mm+rree 11ddbb7C7FRFӅEE,׆11ERR 11\\LdL%,%  %,%]k]ͱdd))UUn ##JJrr΍՞٦إԛ̈gg9922kkأ۪۪۪ک٦՝͊ff66 DD||۪۪۪۪۪۪۪۪۪ܪ֜dd]]kkڣ͂II ##JJrrԍڞަޥڛԈgg9911jjߢ׉PP**ccޚuu<< ..ZZՀݗܖUU)) UUn 88IIQQPPFF3333OOUUUUUUTTQQHH55 ;;UUUUUUUUUUUUUUUUUUUUQQ55//33OODD''  88IIQQPPFF3322OOUU@@$$//KK==!!++BBNNRRNNAA++UUo&&GF##UUo98¨BBUUoyyíì@@TTªĮUUo~}«îª22==ŮĮaaUUp77¦tt ggppUUpUVVatanks-6.6/button/9.bmp0000644000175000017500000005450612636021030013154 0ustar apoapoBMFY6(& YxwV~~~~~~~}}}rVUijjlkllmmnnooppqqrrrssttttuuuuvvvvvvvvvvuuuutttsssrrqqpppoonnmmllkjjiihhggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeemgee\UUisppgg p mmnnooppqqqrrsstttuuuvvvvvvwwwwvvvvvvuuutttssrrrqqppoonnmmllkjjiihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeftt77e\UUiaa==mmnnooppqqrrsstttuuvvvvwwwwwwwwwwwwwvvvuuuttsssrrqqppoonnmmlkkjjiihhgffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2~2~}e\UUiTTmmnnoppqqrrsstttuuvvvwwwwxxxxxxxxxwwwwvvvuuuttssrrqqppoonnmllkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee@@yyf\UUjBBtmnnooppqqrrssttuuvvvwwwxxxxyyyyyyxxxxwwwvvvuuttssrrqqppoonmmllkkjjihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeei9z8e\UUjk#{#GFrmmnnooppqrrssttuuvvvwwxxxyyyyyyyyyyyyxxxwwwvvuuttssrrqqpponnmmllkkjiihhgffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef&u&kee\UUjjkklmmnnoopqqrrssttuuvvwwxxxyyyzzzzzzzzzyyyyxxwwvvuuttssrrqqpoonnmmlkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\UUjjkklmmnnoppqqrrsstuuvvwwxxxyyzzzz{{{{{{zzzzyyxxwwvvuuttssrrqppoonnmllkkjiihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrrsttuuvvwwxxyyzzz{{{{||{{{{{zzyyxxwwvvuuttssrqqppoonmmllkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrssttuuvvwxxyuJ#   =$q$||?7//zyyxN33 <  44y7=$h$qheee53//oeeee0j0#z#ieeeeeL (   -!R!s l eeeeeeeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrssttuuvwwxxh544~]!cc**zzyy4B4ll33Yff66S"8"1|1qfeNcc*~*eeee LgLKKpeeee/9u9wheeeeeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrssttuvvwwxs#Ĭqq! FFzŗGG{zzdŽ99tŽͺrr99l̻j{j!CCuffHHeeee>OVOyy$z$eeeIT[T:B:QQweeeeeeeeeeeeeeeeeeeeeee[UUijkkllmnnoopqqrrsttuuvwwxHծ{{ffggxx0<0GaGFF WW~{z4:<:ۼgg |  ȝgg]]]]]]]]]]]]@@!!t Şhh``ii||>K>$.$NNs l  XXieeeR*-*44eee 2 KMK›oobbddss ' ffDD k eeeeeeeeeeeeeeeeeeeeee[UUijkkllmnnoopqqrrsttuuvwwx $ nrnشhh&&((QQ*9*̚MM,ssff{tƕ@@yx)rrppuutssrqnn(huhss!|! n s**QQ!*!\y\??m&l{liiqeeecEEeeetNNrrJJt l nw/iwihhreeeeeeeeeeeeeeeeeeeeee[UUijjkllmmnooppqrrsttuuvwwxŠ55}}}~HHlldd44IWbWuu {J&'&nnvvEWaWxx##rqpponnmmBHNH}}((hhgr8l8-2-nn x ?MTMyy$z$eeelUUheen..PPWW99reecBuu x eeeeeeeeeeeeeeeeeeeeee[UUijjkklmmnnoppqrrsstuuvvwxww""||}~ b>@>~~YYwv\6:6||11jiiihipnmX$&$88ihggv ==T(*(55eeeh sseeoeeeei k k bF ,  ˴kkseeeeeeeeeeeeeeeeeeeeee[UUiijkkllmnnoopqqrssttuvvww  uutt||}}~y5}5xq<<mjGGihhgj!UUgFFeeee9V^Vuu x eeeee_.›II l eeeeeeeeeeeeeeeeeeeeee[UUiijjkllmmnooppqrrsttuuvww8R[R{{&&{||}~~  ѽŦ¡CMC  NN!!}^^BBq t  WWmhhgf(cctVVieeeO36311eeee_;=;›YY"y"feeeeeeeeeeeeeeeeeeeeee[UUhijjkklmmnnoppqqrssttuvvw!`!77{{|}}}~~~~)Фnn]]]]aapp'2'McMLL%ֵϪϪϪϪΩxx@@qo&rrffshhgg  ggr#o~oggoeee` AAeeee:JMJѼ̬ttII!x!heeeeeeeeeeeeeeeeeeeeeee[UUhiijkkllmnnoopqqrrsttuuvv  bzbSS {{||}Da ~EW`W||))~ ,S,=D=ww%%AagaϨppUUUUUUUUUU@@##qm?V_Vvv!|!ihg`ȭccn<QXQxx#z#eeekQQgeee & _b_ĞrrWW>>!p!nfeeeeeeeeeeeeeeeeeeeeeeee[UUhhijjkklmmnnoppqqrssttuvv | 1l1__//}{{|T ??_48411{zzy7LPL55Y59500rqppoonmmV58511ihf+JKJʨSSiP,.,33eeeixxaameee/otoȤXXv k `  ,(h(theeeeeeeeeeeeeeeeeeeeeZUUhhiijkkllmnnooppqrrsstuuvv""7\7/H/,r,x l E TfTll++t  ??rrk D 11n>>jiiihhionh  ??^ L  ƻ55fbBB]^_`0W`Wiin__d#^#VkV@{@d N bb88 j eeeeeeeeeeeeeeeeeeeeeZUUghhijjkklmmnnoppqqrrsttuuv z 22LwLMQMvv++MPMڼii{  ::|sɧUUselAlA4LL>\>BB j eeeeeeeeeeeeeeeeeeeeeZUUghhiijjkllmmnooppqqrssttuuv | 33eea|a9B9CKCۺ>>}%8>8۾}}:: z w"ii::p#9A9xxϷÜ\\%{%gehrrggpp^^\\LZL%)%  %)%]e]±˪dd)})feeeeeeeeeeeeeeeeeeeeeZUUgghhijjkkllmnnooppqrrssttuuv { %%LLrr˝ϥϥʜff88zz11jj΢ҪҪҪҪҪЧ̠jj::uu22kḳЪЪϪϪϪϪϪΪ̧qq88m11jjȢ̩ͪͪʦĝrrHH!x!heee22kkǣTTTT||˪˪˪˪˪˪˪˪˪˪Üdd88..ZZǣɧǣUU)}) k eeeeeeeeeeeeeeeeeeeeeeZUUfgghiijjkklmmnnooppqrrssttuuvv } 88HHPPPPGG44}yyy22OOUUUUUUUUUURRKK88 { uut33OOUUUUUUUUUUUUUUUUUU<<~mx22OOUUUUTTQQHH88 y m eeeeer33OODD*~**~*;;UUUUUUUUUUUUUUUUUUUUQQ55thq+~+BBNNRRNNAA+~+qgeeeeeeeeeeeeeeeeeeeeeeeZUUfnTTyy11iijjkllmmnnoopqqrrssttuuuvvwwwxxxxyyyyyyxxxxxwwwvvuutttssrqqppoonnmmlkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeenOO/|/feZUUemmriijkkllmmnnoppqqrrsstttuuvvvwwwwxxxxxxxxxwwwwvvvuuuttssrrqqppoonnmllkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeenYXeZUUg<<hijjkkllmmnnoppqqrrrssttuuuvvvvwwwwwwwwwwwwvvvvuuuttssrrqqppoonnmmllkkjjihhggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeLLfZUUeqqmhiijjkkllmmnnooppqqrrsstttuuuvvvvvvwwwwvvvvvvuuutttssrrrqqppoonnmmllkkjiihhggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee,{,cbeZUUemQPcc#r#ghhiijjkkllmmnnooppqqrrrsstttuuuuuvvvvvvvvvuuuuutttsssrrqqppoonnmmllkkjjiihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[[ddleZUUeeeefgghhiijjkkllmmnnooppqqqrrsssttttuuuuuuuuuuuuuttttsssrrrqqpppoonnmmllkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefeeeZUU\UUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYVUUWUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUbUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUYatanks-6.6/button/16.bmp0000644000175000017500000005450612636021030013232 0ustar apoapoBMFY6(& YeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUgVUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUXUUYdddddddcccccccccbbbbbbbbbaaaaaaaaa``````````_________^^^^^^^^^^^^^^^^^^^^]]]]]]]]]]]]]]\\\\\\\\\[[[[[[[ZZZZZZZYYYYYYYXXXXXXXWWWWWWWVVVVVVVVVUUUU_UUgUUgdd[[##ccQPUUgcbª,,ìqqUUhîíLL<<ªĮUUhYXëî(33ĮĮmmUUh//OO 1 jj2211yyTTUUiSRRUUir{{aa UUibubppUUjJB..++q+&& a 0   ?#u# J-z-%%%`%))   55h 3   C## SDMDր]. c ""UUjj'bb))K?]?RR $55kDgDOOt  \\(( ) hh77"&55v " ۏ6699$$UUjϖEEm7=7ʃ.. Ȫ~~8D8 DD''AIA** f WrWRRMZZ !ʪŝ~~8F8 DD''SUSPTPMSMMSM+.+***RURNTNMSMMSMSUSNVN؇MMƺػУϡ̟=K= SS%%UUj  UUє??Zݯ}}ffeeuuVvV  VV%% ϐ;;Vvv++lh|hkk_}}ffeeuuVzV  VV%%ڐٍhhW[W܍܍(]]88ߞhh]]]]aarr#0#QoQPPUUk/ssee PP + otoߵii(( EE/G/9J9TT0œKKE8A8*+*RmRTT''HRH||'' . ouoii(( EE/I/9M9TT2׆DD88??')'ff8888'N'چ224h|hss  'U'BMBxx%%UUkOWdWuu )xx`` ͊55 66xx55P\\4KWK  ww::!$!ь77Ҋ55 66xx55W`s`pp ؖGGn_r_ppYHRH}}(( # MTMՉ44UUkl494˅00I]l]qqvv!! ggZZ'q'fxfll"\l\٩!QjQZZ)̔HHvv!!"ggZZ'{'>F>Հ++5WW>DOZO{{&&P>,oo$$/v/xxKUKzz<<͉77NCHC׏??-}}]] )-)ى44F{{^^ /ߟ؍ii99UUlK`o`qq!zz__%%a}aTT & bibώ99Mavaϫee #XkX $'$ЋOOaaTT ) bjb׎99Qcwcnn  ؕEEj`s`ooTY`YrrUUUURRJJ88 UUmh?F?Ɂ,,@_o_pp$$22aa//pɀ++jD>Ɂ,, 9l90P0++ V KMKcc"٧RR (XX''9o90R0++ ]  KNKccِ;;Uppffܑ<<ٖDDUUmБ<<00NNCHCʄ88;>;՞II 0~0llhh00NNCICӄ88̓KKvR`Rww""  ɐMMUUUUn&MM 11ddbb7B7FQF˅EE)TXTє??,NYNyy$$ 11ddbb7C7FRF҅EE)\\ -2-؈33B||^^ *qqeeUUn22kkأ۪۪۪۪۪۪۪۪۪٧rr99 ##JJrr΍՞٦إԛ̈gg9911jjע۪Ә``''::ss٤ܪяVV ##JJrrӍڞݦݥٛ҈gg9922kkޣ{{CC GGԀݙ``''++ddߝ}}DD 22kkՂIIUUn33OOUUUUUUUUUUUUUUUUUUUU<< 88IIQQPPFF3322OOUUKK..22OOUUJJ.. 88IIQQPPFF3333OO@@$$!!==OO33//KKAA%% 33OODD'' UUo&&GF##UUo98¨BBUUoyyíì@@TTªĮUUo~}«îª22==ŮĮaaUUp77¦tt ggppUUpUVVatanks-6.6/button/0.bmp0000644000175000017500000005450612636021030013143 0ustar apoapoBMFY6(& YeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUgVUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUXUUYdddddddcccccccccbbbbbbbbbaaaaaaaaa``````````_________^^^^^^^^^^^^^^^^^^^^]]]]]]]]]]]]]]\\\\\\\\\[[[[[[[ZZZZZZZYYYYYYYXXXXXXXWWWWWWWVVVVVVVVVUUUU_UUgUUgdd[[##ccQPUUgcbª,,ìqqUUhîíLL<<ªĮUUhYXëîĮĮmmUUh//OO11yyTTUUiUUiUUiUUjJ@..J*--5511""{  55UUjj'bb))j nn&K&@i@FFrr@@ gg77UUjЗEErvrt|tlyllyllyllyllylhxhDŽii  vv,, XX  [[ UUj  TT  ߱͆~~~~~~~~}}UU>>/b/OgOVV n IKIݟJJ;f|fllUUk/yycc/tt̄==)))))))))),,kskؐ;;^FPF}}((UUkOXfXjjOMXMyy$$2x2ӂ--"ڍ88UUkl  F''l(+(Ί55##*mpm{{yy#'#ssxuuOOUUl8w8** ϖFF 33JOJ֏xx"ߴee( ee''UUl  ܮקTeTWW)) VV#A#]]))$&$VV WWUUl*՜ccUUYYii*:*RjRTT*ppgg11*4*hhLPLܝHH7nzn)9)OOUUlKZhZss'V'CMCyy%%KP\Pww""+X+ee77qzq֎99ߠ.C.=Z=EEUUmh8=8ʄ//8SZS̈33h,0,͈33--  $JrJр++Hs|s]]FF N}N99 UUm==~ M ʃ..ϖDD0o0Ħqq++AA XX//UUmY]YeeTT''!ccXUZUZZ??  ZZ&&UUn&@J@xx77 &rree 33,-,ߩTT°֋66))4`4"VVUUn22kkأ۪۪۪ک٦՝͊ff6622kkأʂII YYՑߪݤll33((aaۙՉPP 55nnޛٌUUUUn33OOUUUUUUTTQQHH55 33OODD'' $$AAUUPP4477RR>>"",,HHQQ66UUo&&GF##UUo98¨BBUUoyyíì@@TTªĮUUo~}«îª22==ŮĮaaUUp77¦tt ggppUUpUVVatanks-6.6/button/7.bmp0000644000175000017500000005450612636021030013152 0ustar apoapoBMFY6(& YxwV~~~~~~~}}}rVUijjlkllmmnnooppqqrrrssttttuuuuvvvvvvvvvvuuuutttsssrrqqpppoonnmmllkjjiihhggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeemgee\UUisppgg p mmnnooppqqqrrsstttuuuvvvvvvwwwwvvvvvvuuutttssrrrqqppoonnmmllkjjiihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeftt77e\UUiaa==mmnnooppqqrrsstttuuvvvvwwwwwwwwwwwwwvvvuuuttsssrrqqppoonnmmlkkjjiihhgffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2~2~}e\UUiTTmmnnoppqqrrsstttuuvvvwwwwxxxxxxxxxwwwwvvvuuuttssrrqqppoonnmllkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee@@yyf\UUjBBtmnnooppqqrrssttuuvvvwwwxxxxyyyyyyxxxxwwwvvvuuttssrrqqppoonmmllkkjjihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeei9z8e\UUjk#{#GFrmmnnooppqrrssttuuvvvwwxxxyyyyyyyyyyyyxxxwwwvvuuttssrrqqpponnmmllkkjiihhgffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef&u&kee\UUjjkklmmnnoopqqrrssttuuvvwwxxxyyyzzzzzzzzzyyyyxxwwvvuuttssrrqqpoonnmmlkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\UUjjkklmmnnoppqqrrsstuuvvwwxxxyyzzzz{{{{{{zzzzyyxxwwvvuuttssrrqppoonnmllkkjiihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrrsttuuvvwwxxyyzzz{{{{||{{{{{zzyyxxwwvvuuttssrqqppoonmmllkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrssttuu=9..yzz{{{|||?%-z- 55uuttsr 1s1""rnR  55yjjihh5  44s52//peeeeC3v3 x geL (   -!R!s l eeeeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrssttuuX%bb))yzz{{|||}\ nn&C&@^@FF~uutsmrr@@ro i gg77kjiihOff66O cc*~*eeee4@4ll33g/9u9wheeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrssttuvsŗEEzz{{||}}}yrurt{tlwllwllwllwllwlhthii  vv,,wutt] ѭXXso s  [[ p jjihhĽ˺rr99gGGeeeT99KT[T:B:QQweeeeeeeeeeeeeeeeeeee[UUijkkllmnnoopqqrrsttuu |  TT|z{{||}}~  ױ~~~~~~~~}}UU>>/V/OaOVVuut P IJIɟJJpop.ftfllxjjii o  Ýgg]]]]]]]]]]]]@@!x!n WWiee-:<:ּggt 2 KMK›oobbddss ' ffDD k eeeeeeeeeeeeeeeeeee[UUijkkllmnnoopqqrrsttuux*yyccz{{|}}~~+tt==)))))))))),,kpk;;pooGFMF}}((kjiij'rrppviiiiiihfg'ssffoe`@@htNNrrJJt l nw/iwihhreeeeeeeeeeeeeeeeeee[UUijjkllmmnooppqrrsttuuvEXcXjj~rty}}}~~HMVMyy$$~}||{{z2g2--ppo\!88kjjih@W`Wxx#z#eeeeeeeee?W`Wuu x e>&'&nnwen..PPWW99reecBuu x eeeeeeeeeeeeeeeeeee[UUijjkklmmnnoppqrrsstuuv\  ?'}'b(+(Ċ55~}}|{{zz##&mom{{yy#&#ssppoVuuOOojjiiU696||1y1_____`hfeT>?>~~YYoeeei k k bF ,  ˴kkseeeeeeeeeeeeeeeeeee[UUiijkkllmnnoopqqrssttuvq8n8** wƖFF~}}||{zz ~ 3w3JNJۼxxҴeeyqpo ee''mjiif<<wee5r5vhee_.›II l eeeeeeeeeeeeeeeeeee[UUiijjkllmmnooppqrrsttuu | ԮΧTbTWW))VV}}||{zzy#:#]]))$%$ЫVVtqpXWW|kji o ^^BBi l  ͽCKC  NN!x!f_;=;›YY"y"feeeeeeeeeeeeeeeeeee[UUhijjkklmmnnoppqqrssttux%ʜccUUYYii*8*RfRTT'ppgg}}|{{zzy|11*1*hhrLOLɝHHqqp(nvn)3)OOxjij#ҵ˪˪˪˪˩xx@@ig$Ȥnn]]]]aapp'0'M`MLLo:JMJѼ̬ttII!x!heeeeeeeeeeeeeeeeeeee[UUhiijkkllmnnoopqqrrsttuuAZeZssy|'N'CKCyy%%DPZPww""}||{{zzyy+M+ee7o7qwq99rqaȠ.;.=O=EEsii=agaʨppUUUUUUUUUU@@#z#ie=W_W||)})ii l u,M,=C=ww$z$ & _b_ĞrrWW>>!p!nfeeeeeeeeeeeeeeeeeeeee[UUhhijjkklmmnnoppqqrssttuY8<8//yyz2SYS33],/,ˆ33||{{{zzyxz--  "JgJ++rq3sysˤ]]FFNjN99 p iR59500eeeeeeeeeR47411eeee2LPL55/otoȤXXv k `  ,(h(theeeeeeeeeeeeeeeeeeZUUhhiijkkllmnnooppqrrsstun==pi A ..sƖDD|{{{zzyyxx0_0qqri++yAA XX//md>>______ahfc  ??__[ : 11 \ VkV@{@d N bb88 j eeeeeeeeeeeeeeeeeeZUUghhijjkklmmnnoppqqrrstt{Y\YۺeeTT~{{zzyyyxxx''Եccyr>UXUѯZZvn}?l?  ZZ&&q  ::umMOMռiivt3U3BB j eeeeeeeeeeeeeeeeeeZUUghhiijjkllmmnooppqqrsstv"@H@ۻxx77 ~ }"rreezzzyyyxxww | 3o3,,,ϩTTtm 66nmn))4O4VV#|# ii::i"8=8׾}}:: k i11\\LZL%)%  %)%]e]±˪dd)})feeeeeeeeeeeeeeeeeeZUUgghhijjkkllmnnooppqrrsst22kkͣѪѪѪѩϦ˝ff66zz22kkϣIIzzyyyxxwwvv YYÑЪͤll33rq((aařPP{mml q 55nněUUy44kkǣ̪˪˪˪˪˪˪˪ɧqq88f11jjƢ˪˪˪˪˪ɧŠjj::pee l ..ZZǣɧǣUU)}) k eeeeeeeeeeeeeeeeeeeZUUfgghiijjkklmmnnooppqrrss33OOUUUUUUTTQQHH55 | yyy33OODD'' ~ yyyxxxwwwvvy$$AAUUPP44~rq77RR>>""qmmlls,,HHQQ66wv33OOUUUUUUUUUUUUUUUUUU<<wfr22OOUUUUUUUUUURRKK88w k eeeehq+~+BBNNRRNNAA+~+qgeeeeeeeeeeeeeeeeeeeeZUUfnTTyy11iijjkllmmnnoopqqrrssttuuuvvwwwxxxxyyyyyyxxxxxwwwvvuutttssrqqppoonnmmlkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeenOO/|/feZUUemmriijkkllmmnnoppqqrrsstttuuvvvwwwwxxxxxxxxxwwwwvvvuuuttssrrqqppoonnmllkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeenYXeZUUg<<hijjkkllmmnnoppqqrrrssttuuuvvvvwwwwwwwwwwwwvvvvuuuttssrrqqppoonnmmllkkjjihhggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeLLfZUUeqqmhiijjkkllmmnnooppqqrrsstttuuuvvvvvvwwwwvvvvvvuuutttssrrrqqppoonnmmllkkjiihhggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee,{,cbeZUUemQPcc#r#ghhiijjkkllmmnnooppqqrrrsstttuuuuuvvvvvvvvvuuuuutttsssrrqqppoonnmmllkkjjiihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[[ddleZUUeeeefgghhiijjkkllmmnnooppqqqrrsssttttuuuuuuuuuuuuuttttsssrrrqqpppoonnmmllkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefeeeZUU\UUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYVUUWUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUbUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUYatanks-6.6/button/6.bmp0000644000175000017500000005450612636021030013151 0ustar apoapoBMFY6(& YeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUgVUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUXUUYdddddddcccccccccbbbbbbbbbaaaaaaaaa``````````_________^^^^^^^^^^^^^^^^^^^^]]]]]]]]]]]]]]\\\\\\\\\[[[[[[[ZZZZZZZYYYYYYYXXXXXXXWWWWWWWVVVVVVVVVUUUU_UUgUUgdd[[##ccQPUUgcbª,,ìqqUUhîíLL<<ªĮUUhYXëîĮĮmmUUh//OO11yyTTUUiUUiUUiUUjJ@..J)--55 11""p  55P 44UC//q33  ?   <!s! UUjj'bb))j nn&I&@e@FFrr@@ gg77rff66z$cc**)4J4ll33L99UUjЗEErvrt|tlyllyllyllyllylhwhÄii  vv,,v ݭXX  [[ ȽֺΣΡΡΡΡϡ͜rr99ؗGGێ99}T`TЩǜ:H:QQUUj  TT  ݱˆ~~~~~~~~}}UU>>/_/OeOVV d IKIןJJ7fzfll  ܝgg]]]]]]]]]]]]@@!!WWI:=:gg N KOKޛoobbddss + ffDD UUk/yycc/ttʄ==)))))))))),,krkѐ;;XFOF}}((1rrpp4ssffߕ@@NNrrĔ׃JJ <iihhUUkOXfXjjOMXMyy$$2s2˂--u"ҍ88TWdWxx##XWgWuu h&(&nn..PPWW99juu UUkl  F''l(+(͊55##)mpm{{yy#'#ssnuuOOs6;6||11z>@>~~YY t D ۴kkUUl8w8** ΖFF 33JNJϏxx!۴ee% ee''<<$55KܛII UUl  ܮקTeTWW)) VV#?#]]))$&$۫VVvWW  ^^BB  ٽӦѡϟCRC  NN!!;?;ݛYY""UUl*՜ccUUYYii*:*RjRTT*ppgg11*3*hhLPL՝HH3nyn)8)OO,xx@@0nn]]]]aapp'7'MoMLL_JOJ߼ۓttII!!UUlKZhZss'V'CMCyy%%KP\Pww""+U+ee7~7qyqώ99ؠ.@.=W=EEOajaߨppUUUUUUUUUU@@##UWeW||)) ,e,=H=ww$$ ; _c_ߞrrWW>>!!UUmh8=8ʄ//8SZS̈33h,0,̈33--  #JnJɀ++Bs{sڤ]]FFNxN99 o5;5҅00v4:4؆11HLSLڊ55EoxoXX :((UUm==~ M ʃ..ΖDD0k0qq++AA XX//ĉ>>  ȉ?? ^ ن11 VzV@@ } $bb88 UUmY]YeeTT'' ܵccPUZUޯZZ??  ZZ&&  ::MQMii3n3ڔBB UUn&@J@xx77 &rree 33,-,کTTϋ66))4\4"VV##(ii::,8A8}}:: 11\\LdL%,%  %,%]j]ͱdd))UUn22kkأ۪۪۪ک٦՝͊ff6622kkأʂII YYБ۪ؤll33((aaԙΉPP 55nn؛ҌUU44kkܣߪqq8811jjڍjj:: ..ZZՀܗߣۖUU)) UUn33OOUUUUUUTTQQHH55 33OODD'' $$AAUUPP4477RR>>"",,HHQQ6633OOUUUUUUUUUUUUUUUUUU<<22OOUUUUUUUUUURRKK88 ++BBNNRRNNAA++UUo&&GF##UUo98¨BBUUoyyíì@@TTªĮUUo~}«îª22==ŮĮaaUUp77¦tt ggppUUpUVVatanks-6.6/button/15.bmp0000644000175000017500000005450612636021030013231 0ustar apoapoBMFY6(& YxwV~~~~~~~}}}rVUijjlkllmmnnooppqqrrrssttttuuuuvvvvvvvvvvuuuutttsssrrqqpppoonnmmllkjjiihhggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeemgee\UUisppgg p mmnnooppqqqrrsstttuuuvvvvvvwwwwvvvvvvuuutttssrrrqqppoonnmmllkjjiihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeftt77e\UUiaa==mmnnooppqqrrsstttuuvvvvwwwwwwwwwwwwwvvvuuuttsssrrqqppoonnmmlkkjjiihhgffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2~2~}e\UUiTTmmnnoppqqrrsstttuuvvvwwwwxxxxxxxxxwwwwvvvuuuttssrrqqppoonnmllkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee@@yyf\UUjBBtmnnooppqqrrssttuuvvvwwwxxxxyyyyyyxxxxwwwvvvuuttssrrqqppoonmmllkkjjihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeei9z8e\UUjk#{#GFrmmnnooppqrrssttuuvvvwwxxxyyyyyyyyyyyyxxxwwwvvuuttssrrqqpponnmmllkkjiihhgffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef&u&kee\UUjjkklmmnnoopqqrrssttuuvvwwxxxyyyzzzzzzzzzyyyyxxwwvvuuttssrrqqpoonnmmlkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\UUjjkklmmnnoppqqrrsstuuvvwwxxxyyzzzz{{{{{{zzzzyyxxwwvvuuttssrrqppoonnmllkkjiihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrrsttuuvvwwxxyyzzz{{{{||{{{{{zzyyxxwwvvuuttssrqqppoonmmllkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrssttuuvvwxxyyz>+e+&& |||E+f+&&  >6//wvvuutts;8..zonnmmlkY 55wggfeee 1m1"y"he0j0#z#ieee5 # H "r"nfeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrssttuuvwwxxyyzZ SS))}}a?X?RR[cc++wwvvuutsV%bb))oonmmllm4@[@FFogffe`rr@@ie LgLKKpeeeN 9l9$z$ieeeeeeeeeeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrssttuvvwwxxyzzv ' [[~~~7<7..v–HHxwwvvuttp—EEponnmmlm0|0 vv,,hgfeS ͭXXie>OVOyy$z$eeef̻=E= SS%{%feeeeeeeeeeeeeeeeeeeeeeeeeee[UUijkkllmnnoopqqrrsttuuvwwxxyzz   >R>II~  Ȕ??  XX|xwvvuut z  TTroonmmllv.Q.O^OVVqgff H IJIşJJeeR*-*44eee l  Ğhh]]]]aarr#+#QcQPPoeeeeeeeeeeeeeeeeeeeeeeeeeee[UUijkkllmnnoopqqrrsttuuvwwxxyzz}*YY88 2PP*nnhhxwwvvutv)yyccxoonnmlll**kpk;;eecEEeeeg&hshss x ii l v'C'BHBxx%{%eeeeeeeeeeeeeeeeeeeeeeeeeee[UUijjkllmmnooppqrrsttuuvwwxxyzz{Gk|k bb((Mxx`` GPYPxx##xxwvvuutDXcXjjviimommlks2a2--eelUUheee?HNH}}(}(eeeb  MRM44eeeeeeeeeeeeeeeeeeeeeeeeeee[UUijjkklmmnnoppqrrsstuuvvwxxyyz{_dqd͝-=- ) YYg]j]qq`-0-44xxwwvuut\  ;'r'xnk#~#$mom{{yy#&#ssweeh sseeoeeeSRgR,O,BB900eeeeeeeeeeeeeeeeeeeeeeeeeee[UUiijkkllmnnoopqqrssttuvvwwxyyzzu@G@Čbb@U@HH&&;@;--uŖDDyxwwvvuto8g8** p p 3o3JMJ׼xxϴeeneee9V^Vuu x eeedPRPּhhveeeeeeeeeeeeeeeeeeeeeeeeeee[UUiijjkllmmnooppqrrsttuuvwwxxyzz ƐPP>>ZZCCǓ>> TT{xwwvvut z Ѯ˧TaTWW))mz#7#]])})$%$̫VVheeeO36311eee l @D@ֽ||99 k eeeeeeeeeeeeeeeeeeeeeeeeeee[UUhijjkklmmnnoppqqrssttuvvwwxyyz|&MM##7_7 dd2NN&uuddxwwvvutv%ǜccUUYYii*6*RdRTTun1y1*0*hhhLOLÝHHeeee` AAeeeg#Ҷ˪˪ɧşii99peeeeeeeeeeeeeeeeeeeeeeeeeeee[UUhiijkkllmnnoopqqrrsttuuvvwxxyyzB\\..#6#"+"E\Ezz__ CYdYttxwwvvuut@ZeZsspqz'J'CJCyy%%jw+I+ee7i7qvq99eeeekQQgeee<Y]Y̫rrUUUURRJJ88w k eeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUhhijjkklmmnnoppqqrssttuvvwwxxyy\gwgll :: % _m_pp\6:6//xwwvvuttX8<8//poo.SXS33jl-}-  "JcJ+~+eeeeixxaameeeP+.+44eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeZUUhhiijkkllmnnooppqrrsstuuvvwwxxypGNG||''|?~?>C>,,r>>poonnovul==ia < ..jjs0Z0qqua]^_`0W`Wiin__ddDDeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeZUUghhijjkklmmnnoppqqrrsttuuvvwwxx!#!Í88{|""6\6Ƒ<<<<yY\Y׺eezjjj'~'еccmJ4BBUUheeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeZUUghhiijjkllmmnooppqqrssttuuvvwwxz"HHz{~//"3"MM~"bb@@ y !@G@ػxx77 p jji p 3h3,,,˩TTh c mm%qqeeoeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeZUUgghhijjkkllmnnooppqrrssttuuvvwwx22kk̟nn66zzz??ww΢ѧrr99z22kkΣҪѪѪѪѪѪѪЩvv>>v22kkˣϪϪϪΩ̦ǝff66vkjjii z YY̪Ȥll33e k DD||˪˪˪˪˪˪˪˪˪˪Üdd]]kkǣIIneeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeZUUfgghiijjkklmmnnooppqrrssttuuvvww33OO::yyyy11MMUU<<z33OOUUUUUUUUUUUUUUUU>>""v~33OOUUUUUUTTQQHH55} q lkjjiil$}$AAUUPP44refw;;UUUUUUUUUUUUUUUUUUUUQQ55//33OODD'|' k eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeZUUfnTTyy11iijjkllmmnnoopqqrrssttuuuvvwwwxxxxyyyyyyxxxxxwwwvvuutttssrqqppoonnmmlkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeenOO/|/feZUUemmriijkkllmmnnoppqqrrsstttuuvvvwwwwxxxxxxxxxwwwwvvvuuuttssrrqqppoonnmllkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeenYXeZUUg<<hijjkkllmmnnoppqqrrrssttuuuvvvvwwwwwwwwwwwwvvvvuuuttssrrqqppoonnmmllkkjjihhggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeLLfZUUeqqmhiijjkkllmmnnooppqqrrsstttuuuvvvvvvwwwwvvvvvvuuutttssrrrqqppoonnmmllkkjiihhggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee,{,cbeZUUemQPcc#r#ghhiijjkkllmmnnooppqqrrrsstttuuuuuvvvvvvvvvuuuuutttsssrrqqppoonnmmllkkjjiihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[[ddleZUUeeeefgghhiijjkkllmmnnooppqqqrrsssttttuuuuuuuuuuuuuttttsssrrrqqpppoonnmmllkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefeeeZUU\UUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYVUUWUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUbUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUYatanks-6.6/button/2.bmp0000644000175000017500000005450612636021030013145 0ustar apoapoBMFY6(& YeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUgVUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUXUUYdddddddcccccccccbbbbbbbbbaaaaaaaaa``````````_________^^^^^^^^^^^^^^^^^^^^]]]]]]]]]]]]]]\\\\\\\\\[[[[[[[ZZZZZZZYYYYYYYXXXXXXXWWWWWWWVVVVVVVVVUUUU_UUgUUgdd[[##ccQPUUgcbª,,ìqqUUhîíLL<<ªĮUUhYXëîĮĮmmUUh//OO11yyTTUUiUUiUUiUUjJ>//8'd'(( J  44O,22WF..UUjj cc**Y5M5VVjff66q ii11)bb))UUjʔHH{(+(͊55ǽԺʣʡʡʡʡʡʜrr99rvrt}tlzllzllzllzllzlhyhʀOOٗEEUUj  YYΖFF  םgg]]]]]]]]]]]]@@!! ҆~~~~~~~~}}UU77TTUUk/j~jjjVV /rrpp1ttф==))))))))))3yyccUUkOJSJ{{&&?ppggOWdWxx##SMXMyy$$VXhXjjUUkl6I6 ? :::: Q]Qww""l6;6||11r(+(ӊ55w  N''UUl-0-̈33<<ԖFF88** UUl  ΖDD ^^BB  VV  ߧÕTiTWW))UUl*۪۪۪۪ TT *ܪܪݪݪܩxx@@,ppgg-ޜccUUYYii*=*RoRTTUUlKY_Y۫rrUUUUUUUU+C+rreeKaiaۨppUUUUUUUUUU@@##NP]Pww""QZjZss'^'CNCyy%%UUmh+/+͉44ZUaUvv!!h5;5̅00m,0,҈33r8>8Մ//?S[Sو33UUmΖDDv050ˆ11>>ԖDDƈ== W ׃..UUmUU ЕBB  ::TTY^YeeUUn&qqee  RR &ii::'rree)@K@xx77 UUn22kkأʂII77pp٦uu<<22kkأ۪۪۪ܪܪܪܪݪܧqq8822kkܣςII22kkޣޝ؊ff66UUn33OODD'' 55RR==!!33OOUUUUUUUUUUUUUUUUUU<<33OODD'' 33OOUUUUUUTTQQHH55 UUo&&GF##UUo98¨BBUUoyyíì@@TTªĮUUo~}«îª22==ŮĮaaUUp77¦tt ggppUUpUVVatanks-6.6/button/11.bmp0000644000175000017500000005450612636021030013225 0ustar apoapoBMFY6(& YxwV~~~~~~~}}}rVUijjlkllmmnnooppqqrrrssttttuuuuvvvvvvvvvvuuuutttsssrrqqpppoonnmmllkjjiihhggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeemgee\UUisppgg p mmnnooppqqqrrsstttuuuvvvvvvwwwwvvvvvvuuutttssrrrqqppoonnmmllkjjiihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeftt77e\UUiaa==mmnnooppqqrrsstttuuvvvvwwwwwwwwwwwwwvvvuuuttsssrrqqppoonnmmlkkjjiihhgffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2~2~}e\UUiTTmmnnoppqqrrsstttuuvvvwwwwxxxxxxxxxwwwwvvvuuuttssrrqqppoonnmllkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee@@yyf\UUjBBtmnnooppqqrrssttuuvvvwwwxxxxyyyyyyxxxxwwwvvvuutto<1//zoonmmllkkjjihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeei9z8e\UUjk#{#GFrmmnnooppqrrssttuuvvvwwxxxyyyyyyyyyyyyxxxwwwvvuus"bb11ponnmmllkkjiihhgffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef&u&kee\UUjjkklmmnnoopqqrrssttuuvvwwxxxyyyzzzzzzzzzyyyyxxwwvvuTʸkk55qoonnmmlkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\UUjjkklmmnnoppqqrrsstuuvvwwxxxyyzzzz{{{{{{zzzzyyxxwwvv 5 OROÒffAA""qpoonnmllkkjiihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrrsttuuvvwwxxyyzzz{{{{||{{{{{zzyyxxwc < !!!SaSVV&& y sqppoonmmllkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrssttuuvvwxxyyzz{{{|||||||||{{zzzyv3622~rqppo[0 $ K "v"qihg53//oeeee0j0#z#ieeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrssttuuvwwxxyyzz{{|||}}}}}}|||{{zz.;>;<><DDrppC 9o9#}#lgOcc*~*eeee LgLKKpeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrssttuvvwwxxyzz{{||}}}~~~~}}}||{{\chcղȚǘrr$PPq\W\WhohRXROO''jhHHeeee>OVOyy$z$eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUijkkllmnnoopqqrrsttuuvwwxxyzz{{||}}~~~~~~~}}||{ 1 242Ǘ]]EEDDUUee NeNEEx 6 '('Ե.6.,5,YYw n  XXieeeR*-*44eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUijkkllmnnoopqqrrsttuuvwwxxyzz{{|}}~~~~}}|{ϥPPwv z ((8Z8uu)) ) x|xӲnn<<22<;GGFFnmmljHHoVVieeeO36311eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUhijjkklmmnnoppqqrssttuvvwwxyyzz{{|}}}~~~~~~~}}|!t! ;;xwwvvu;IMIIIVVqmml r  YY o #o~oggoeee` AAeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUhiijkkllmnnoopqqrrsttuuvvwxxyyzz{{||}}}~~~}}}||-ZnZXXwwvvu  pvp;;$ppggxmmln(jxjjjt<QXQxx#z#eeekQQgeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUhhijjkklmmnnoppqqrssttuvvwwxxyyzz{{|||}}}}}}||{}11__33{wvvW{{&&?QZQww""mmllBJQJ{{&~&R,.,33eeeixxaameeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeZUUhhiijkkllmnnooppqrrsstuuvvwwxxyyzz{{{||||||||{{{>u>/G/,o,t i E bebԱ\\|V-/-33mmllY#%#77dBB]^_`0W`Wiin__dgeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeZUUghhijjkklmmnnoppqqrrsttuuvvwwxxyyzzz{{{{||{{{{{z|((OOTZT||22tjDDmmllkHHpAlA433qeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeZUUghhiijjkllmmnooppqqrssttuuvvwwxxyyyzzz{{{{{{{zzzy } ++^^cc8B8JTJ׶~~??{qwTTpmll r  YYp rrgghh,,eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeZUUgghhijjkkllmnnooppqrrssttuuvvwwxxxyyyzzzzzzzzzzyyy{FFooʞΥͤȚbb55{rqt>>vvͨvv>>pmllm::ss˨yyAA m 22kkǣTTTT||˪˪˪˪˪˪˪˪˪˪Üdd+~+eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeZUUfgghiijjkklmmnnooppqrrssttuuvvwwwxxxyyyyyyyyyyyyxxxw | 77IIPPOOEE11vrrqq88TT>>""omllky77SS@@#|#lt33OODD*~**~*;;UUUUUUUUUUUUUUUUUUUUQQ55teeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeZUUfnTTyy11iijjkllmmnnoopqqrrssttuuuvvwwwxxxxyyyyyyxxxxxwwwvvuutttssrqqppoonnmmlkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeenOO/|/feZUUemmriijkkllmmnnoppqqrrsstttuuvvvwwwwxxxxxxxxxwwwwvvvuuuttssrrqqppoonnmllkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeenYXeZUUg<<hijjkkllmmnnoppqqrrrssttuuuvvvvwwwwwwwwwwwwvvvvuuuttssrrqqppoonnmmllkkjjihhggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeLLfZUUeqqmhiijjkkllmmnnooppqqrrsstttuuuvvvvvvwwwwvvvvvvuuutttssrrrqqppoonnmmllkkjiihhggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee,{,cbeZUUemQPcc#r#ghhiijjkkllmmnnooppqqrrrsstttuuuuuvvvvvvvvvuuuuutttsssrrqqppoonnmmllkkjjiihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[[ddleZUUeeeefgghhiijjkkllmmnnooppqqqrrsssttttuuuuuuuuuuuuuttttsssrrrqqpppoonnmmllkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefeeeZUU\UUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYVUUWUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUbUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUYatanks-6.6/button/14.bmp0000644000175000017500000005450612636021030013230 0ustar apoapoBMFY6(& YeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUgVUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUXUUYdddddddcccccccccbbbbbbbbbaaaaaaaaa``````````_________^^^^^^^^^^^^^^^^^^^^]]]]]]]]]]]]]]\\\\\\\\\[[[[[[[ZZZZZZZYYYYYYYXXXXXXXWWWWWWWVVVVVVVVVUUUU_UUgUUgdd[[##ccQPUUgcbª,,ìqqUUhîíLL<<ªĮUUhYXëîĮĮmmUUh//OO11yyTTUUiUUiUUiUUjJ+p+&& Q+q+&& J<//JA..5511"" 00##W/ e ""UUjj SS))p?]?RRj cc++j(bb))D@i@FFrr@@ / L{LKK{99$$UUj ( [[7=7ʃ..˖HHїEE00  vv,, XXUO[Oyy$$ƺٻңѡΟ=L= SS%%UUj   >V>II  є??  XX  TT.b.OgOVV n IKIݟJJv*.*ى44 hh]]]]aarr#1#QpQPPUUk/YY88 6PP/nnhh/yycc**kskؐ;;ٖEE4h}hss  'W'BMBxx%%UUkOk~k bb((Uxx`` OP[Pxx##OXfXjj2x2ӂ--UUYHSH}}(( $ MUMى44UUkldtd՝-?- * YYr]l]qql-1-͉44l  H''##*mpm{{yy#'#ss*ssee}RwR,l,ddWׅ00UUl@H@Όbb@Y@HH&&;A;ʂ--ϖDD8{8** 33JOJ֏xx"ߴeeNVeVuu PTPhhUUl  ϐPP>>ZZCCѓ>>  TT  ݮاTfTWW))#B#]]))$&$VVp393؆11  @F@||99 UUl*ƔMM##7f7 dd5NN*uudd*֜ccUUYYii*;*RlRTT11*4*hhLPLܝHH ܕAA/ۍii99UUlK\\..#9#"-"E`Ezz__ KYfYttKZhZss'X'CMCyy%%+Y+ee77qzq׎99QQTY`YrrUUUURRJJ88 UUmhgzgll :: & _o_pph6;6ʄ//h8=8˄//:SZSЈ33--  $JrJҀ++#xxaaw+/+ډ44UUmGPG||''??>D>Ɂ,,>>== O ΃..0o0Ħqq?WfWiiږDDUUm!$!΍88""6c6Б<<<<Y]Yee''!cctFBBUUUUn&ʔHH//"6"MM&bb@@ &@J@xx77 33,-,ߩTT mm-qqeeUUn22kk֟nn66??wwע٧rr9922kkأ۪۪۪۪۪۪۪کvv>>22kkأ۪۪۪۩ڦםϊff66 YY֑ߪݤll33 DD||ޜdd]]kkւIIUUn33OO::11MMUU<<33OOUUUUUUUUUUUUUUUU>>""33OOUUUUUUTTQQHH55 $$AAUUPP44;;UUUUUUUUUUUUUUUUUUUUQQ55//33OODD'' UUo&&GF##UUo98¨BBUUoyyíì@@TTªĮUUo~}«îª22==ŮĮaaUUp77¦tt ggppUUpUVVatanks-6.6/button/12.bmp0000644000175000017500000005450612636021030013226 0ustar apoapoBMFY6(& YeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUgVUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUXUUYdddddddcccccccccbbbbbbbbbaaaaaaaaa``````````_________^^^^^^^^^^^^^^^^^^^^]]]]]]]]]]]]]]\\\\\\\\\[[[[[[[ZZZZZZZYYYYYYYXXXXXXXWWWWWWWVVVVVVVVVUUUU_UUgUUgdd[[##ccQPUUgcbª,,ìqqUUhîíLL<<ªĮUUhYXëîĮĮmmUUh//OO11yyTTUUiUUiUUiUUjH33!! 44i( 7'''7//l 55-E..q0 3$o$ F,v,&& H+x+&& ---%% \*  8 k T " ''!! i   X+}+&&   55T*v*'' r+ 9''UUjiQQGGTii44W >~>++ 1  cc(k(DlDFF % ^^//_ 088h@a@QQj?`?RRvv>>  (_(,,] <}< TT?b?RR # hh77x<[>++ UUjXeXtt"RR^^$$ ! ƶkk+d+yy))  RhR[[تa}a"2"HH,,;A;̂--7=7σ..SyyܠKK  GVGͫǓaa?t?#(GMG7>7փ..JZZ 272҅..^^$$UUj  383˅00^g^mmQQIOİ^^YYggǘii&&4Ȱє@@U(.()*)aaNN W\W  {{'{'141ϐ]]__7Q7WWLL ӓ>>    ԓ>>||((MBIBݛiiVVVVddkkDUD eePP9<9nn ܔ??lhhkk  ֔55IOIч^^YYggɘii&&UUk0 ДAA R  ҺMXM\\Y^YԚEE ''NNeeDDT||hhF(/("uu$$\w\D}DKNKؤOO 22'.'tt/NN-SjSDDTZTYYޟMM--).)IVICOCee((''! ܗII/ÎOOHRH||''6CCY^YٚEE ''NNeeDDUUkQRRDOD޲&*&vv 99/z/[i[rr<,3,ڶjjFFӱGVGjj585є??ȍ7W7{{__ Oӊ55 бtt ̫RRVzz`` !$!؍88Yss[[ 99UUkouuccϏ(?(Ú    iiJJ8>8ʃ..2292أLmL'0'hhڮttf}f˔FF  SSSaSqqm!#!hh ȠddԗRyR2>2   ppdd({(YjYqq  ͒IIzUcU||    ii99UUlXeXttV ܹpp,^,+6+۪ؤN`N΢bbє??(7>7Җcc dd ۫ll,"'"BLBiiZZ  ɡgg66KMKM^Mff ! cc   ||VVtt׌Q`Qvv55҄33<gg__7=7֏!4!ߪܤNaNѢWWUUl  383˅!HTHڨSS$y$nn}}#%#rrLL!#!کWW4OO  =D=ѓMM'S'(1(إVV*r*vv  \\//L%&%ܬee,8,VVmm-B-??M]o]oo::pp{{BB0ssff>>NXN؃<<>**(,(֠KK  383ѓDD$ =E= '.˞OO / CC$$~~2233MMMMOOOO>>&&U ؂22,9B9ltl֏VV:w: Ք??UUlQFVF  ޺nn  %)%БccXX@R@  3>3۫cc  JPJϐ;;#G#9<9ԚEE '['ɓVsV'0' EQEک^^ ?ȵHZH  BVB~~gg;;NN FF"G"5D5YY\>%%44HH/3ޫbb""UUmoOYO٦QQ :˔QQ--ZZʄԚأ՞͋^^..<> ,,ZZфؚܣڞҋ^^-- UUm͉44[WW 00FFOOKK7744TTʄUULL//..JJNN22**GG??$$%%>>MMPPGG11..KK==2200FFGGBJB~~)) $$AAPP88CC9U9 ||ߜJJ 99KKQQMM<>ӏ::FFmmPhP'0'    * UgUȧkk//UUn::ssڨڨww??MMˆʄKK//WWQQ**'ƒKK33]]ڕޠߡܗXX++ UUn77SSSS77$$@@EE)) 22kk٠qq88**@@MMQQNNBB++UUn33OO;;UUo&&GF##UUo98¨BBUUoyyíì@@TTªĮUUo~}«îª22==ŮĮaaUUp77¦tt ggppUUpUVVatanks-6.6/button/5.bmp0000644000175000017500000005450612636021030013150 0ustar apoapoBMFY6(& YxwV~~~~~~~}}}rVUijjlkllmmnnooppqqrrrssttttuuuuvvvvvvvvvvuuuutttsssrrqqpppoonnmmllkjjiihhggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeemgee\UUisppgg p mmnnooppqqqrrsstttuuuvvvvvvwwwwvvvvvvuuutttssrrrqqppoonnmmllkjjiihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeftt77e\UUiaa==mmnnooppqqrrsstttuuvvvvwwwwwwwwwwwwwvvvuuuttsssrrqqppoonnmmlkkjjiihhgffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2~2~}e\UUiTTmmnnoppqqrrsstttuuvvvwwwwxxxxxxxxxwwwwvvvuuuttssrrqqppoonnmllkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee@@yyf\UUjBBtmnnooppqqrrssttuuvvvwwwxxxxyyyyyyxxxxwwwvvvuuttssrrqqppoonmmllkkjjihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeei9z8e\UUjk#{#GFrmmnnooppqrrssttuuvvvwwxxxyyyyyyyyyyyyxxxwwwvvuuttssrrqqpponnmmllkkjiihhgffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef&u&kee\UUjjkklmmnnoopqqrrssttuuvvwwxxxyyyzzzzzzzzzyyyyxxwwvvuuttssrrqqpoonnmmlkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\UUjjkklmmnnoppqqrrsstuuvvwwxxxyyzzzz{{{{{{zzzzyyxxwwvvuuttssrrqppoonnmllkkjiihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrrsttuuvvwwxxyyzzz{{{{||{{{{{zzyyxxwwvvuuttssrqqppoonmmllkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrssttuuvvwxxwQ )   9#i# |||?:..zyyxwwvvuutts0q0##sonn84//tjihfE $    3#[#t j eee5-b-%{%ieee%'Q'(}( l eeL (   -!R!s l eeeeeeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrssttuuvwwxl"55}\&bb))zzyyxwwvvuuts # LkLKKzoonRcc**ji^5r5uheNE]EOOreea5F5VVwe/9u9wheeeeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrssttuvvwwu ê~~8B8DD''xǗEE{zzyxxwwvvuttBOWOyy$$ponmHHjg~~8A8DtD'|'ifBGB*~*eeI(*(55IT[T:B:QQweeeeeeeeeeeeeeeeeeeeee[UUijkkllmnnoopqqrrsttuuvwwKկ}}ffeeuuVqV  VV%% TT}{zyyxxwvvuutY*-*44poo u  XXnCϯ}}ffeeuuVlV VV%{%n ::ee ) "ABAFF 2 KMK›oobbddss ' ffDD k eeeeeeeeeeeeeeeeeeeee[UUijkkllmnnoopqqrrsttuuvww % osoصii(( EE/C/9H9TT+yycc{zzyyxwwvvutn–EEpoop(l|liiv " oroӵii(~(pn x EE/?/9E9TTt'KKfbclc\b\VVwNNrrJJt l nw/iwihhreeeeeeeeeeeeeeeeeeeee[UUijjkllmmnooppqrrsttuuvww55||}} 66xx55IXdXjjstxzyxxwvvuuzUUsponBMUMyy$$55hfee l 6u6xx55@[[ j Jj}jppgg"y"..PPWW99reecBuu x eeeeeeeeeeeeeeeeeeeee[UUijjkklmmnnoppqrrsstuuvvwvv!!{||}~ggZZ'f'  >'z'ywvuuv"sseeypooY(*(55 vv!z!gffeergygZZ'Z'gtgkkr , ԹkkQYQww"y"ei k k bF ,  ˴kkseeeeeeeeeeeeeeeeeeeee[UUiijkkllmnnoopqqrssttuvvw  wwss{||}}?KTKuu448l8** | vvut=V`Vuu pookFF  wwssygffeeg8KRKuu4u4HOH||&z& ^g^şXX-/-33ee_.›II l eeeeeeeeeeeeeeeeeeeee[UUiijjkllmmnooppqrrsttuuvw<OXO{{&&{{||}~H>$&?&պggr5TTh:JMJѼ̬ttII!x!heeeeeeeeeeeeeeeeeeeeee[UUhiijkkllmnnoopqqrrsttuuvaxaTT z{{|| " bhbŎ99DZeZss{|'M'CKCyy%%vuuyQQrpoo>QYQxx<<auaTT n gfeee  bgb99=  ZbZŠKKhLrreeo & _b_ĞrrWW>>!p!nfeeeeeeeeeeeeeeeeeeeeeee[UUhhijjkklmmnnoppqqrssttuv z 2r2aa//}z{{_++]8<8//{zz1SXS33vutwxxaawpooU,/,<<2k2aa//kffeO+~+RJSJ00e]U]Uvv!x!/otoȤXXv k `  ,(h(theeeeeeeeeeeeeeeeeeeeZUUhhiijkkllmnnooppqrrsstuuv 9c90J0+q+w l J KMKڸccs==rj A --llll3WaWiivihlkDD | 9^90F0+f+g ] > KLKԸccrcԺiirel04011 \ VkV@{@d N bb88 j eeeeeeeeeeeeeeeeeeeeZUUghhijjkklmmnnoppqqrrsttuuy00N|NCGC88Y\Yںee_7BBTT q 00NvNCGC88im_c_ƢMMiei  BBt3U3BB j eeeeeeeeeeeeeeeeeeeeZUUghhiijjkllmmnooppqqrssttuu | 11ddb}b7@7FOFۺEE{}"@H@ڻxx77vmm&rrees q 11ddbzb7>7FNFպEEqeh"11eee2RR l 11\\LZL%)%  %)%]e]±˪dd)})feeeeeeeeeeeeeeeeeeeeZUUgghhijjkkllmnnooppqrrssttuu z ##JJrr˞Ϧϥʛgg99zzz22kkϣҪҪҪѩϦ˝ff66 { DD||ЪЪЪЪЪϪϪϪϪϪƜdd]]kkɣIIsj n #}#JJrrĞɦȥ›gg99qeee11jjƢ˪PPseee*~*ccšuu<<h l ..ZZǣɧǣUU)}) k eeeeeeeeeeeeeeeeeeeeeZUUfgghiijjkklmmnnooppqrrssttuuv | 88IIQQPPFF33}yyyy33OOUUUUUUTTQQHH55 z vv;;UUUUUUUUUUUUUUUUUUUUQQ55//33OODD'' p jii o z 88IIQQPPFF33tieeeer22OOUU@@$z$ieeeo//KK==!x!hehq+~+BBNNRRNNAA+~+qgeeeeeeeeeeeeeeeeeeeeeeZUUfnTTyy11iijjkllmmnnoopqqrrssttuuuvvwwwxxxxyyyyyyxxxxxwwwvvuutttssrqqppoonnmmlkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeenOO/|/feZUUemmriijkkllmmnnoppqqrrsstttuuvvvwwwwxxxxxxxxxwwwwvvvuuuttssrrqqppoonnmllkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeenYXeZUUg<<hijjkkllmmnnoppqqrrrssttuuuvvvvwwwwwwwwwwwwvvvvuuuttssrrqqppoonnmmllkkjjihhggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeLLfZUUeqqmhiijjkkllmmnnooppqqrrsstttuuuvvvvvvwwwwvvvvvvuuutttssrrrqqppoonnmmllkkjiihhggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee,{,cbeZUUemQPcc#r#ghhiijjkkllmmnnooppqqrrrsstttuuuuuvvvvvvvvvuuuuutttsssrrqqppoonnmmllkkjjiihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[[ddleZUUeeeefgghhiijjkkllmmnnooppqqqrrsssttttuuuuuuuuuuuuuttttsssrrrqqpppoonnmmllkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefeeeZUU\UUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYVUUWUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUbUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUYatanks-6.6/button/23.bmp0000644000175000017500000005450612636021030013230 0ustar apoapoBMFY6(& YxwV~~~~~~~}}}rVUijjlkllmmnnooppqqrrrssttttuuuuvvvvvvvvvvuuuutttsssrrqqpppoonnmmllkjjiihhggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeemgee\UUisppgg p mmnnooppqqqrrsstttuuuvvvvvvwwwwvvvvvvuuutttssrrrqqppoonnmmllkjjiihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeftt77e\UUiaa==mmnnooppqqrrsstttuuvvvvwwwwwwwwwwwwwvvvuuuttsssrrqqppoonnmmlkkjjiihhgffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2~2~}e\UUiTTmmnnoppqqrrsstttuuvvvwwwwxxxxxxxxxwwwwvvvuuuttssrrqqppoonnmllkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee@@yyf\UUjBBtmnnooppqqrrssttuuvvvwwwxxxxyyyyyyxxxxwwwvvvuuttssrrqqppoonmmllkkjjihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeei9z8e\UUjk#{#GFrmmnnooppqrrssttuuvvvwwxxxyyyyyyyyyyyyxxxwwwvvuuttssrrqqpponnmmllkkjiihhgffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef&u&kee\UUjjkklmmnnoopqqrrssttuuvvwwxxxyyyzzzzzzzzzyyyyxxwwvvuuttssrrqqpoonnmmlkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\UUjjkklmmnnoppqqrrsstuuvvwwxxxyyzzzz{{{{{{zzzzyyxxwwvvuuttssrrqppoonnmllkkjiihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrrsttuuvvwwxxyyzzz{{{{||{{{{{zzyyxxwwvvuuttssrqqppoonmmllkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrssttuuvvc 55z{{{|| 1z1"" A  #I#z#vutts0q0##sonnmmliH %   3#]#u j eee55..oeeeeeeeee5 # H "r"nfe(!B!,,neeeeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrssttuuvwy9@_@FF{{||urr@@_6h6)) z uts # LkLKKzoonmma5s5uheN$bb)})eeeeeeeeeN 9l9$z$iB'2']]$z$eeeeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrssttuvvwy00  vv,,|||}e խXX|ϺãFQFRR++wttBOWOyy$$ponnj~~8A8DtD'|'ifEEeeeeeeeeef̻=E= SS%{%^>>eeeeeeeeeeeeeeeeeeeeee[UUijkkllmnnoopqqrrsttuuvww.V.OaOVV||} V IJIΟJJ ̜ff]]^^ccrr)5)K\KWWutY*-*44poonDЯ}}ffeeuuVlV VV%{%n TTheeeeeeee l  Ğhh]]]]aarr#+#QcQPP$u$OOfeeeeeeeeeeeeeeeeeeeee[UUijkkllmnnoopqqrrsttuuvwwy**kqkǐ;;,oopp ~ +Q+AHA}}))utn–EEpoon # oroԵii((sr z EE/@/9E9TTt&yyccneeeeeeeeg&hshss x ii l v'C'BHBxx--  zz__ l eeeeeeeeeeeeeeeeeeeee[UUijjkllmmnooppqrrsttuuvwwx2g2--IPZPyy$${{zy4]c]44uuzUUspon55kjih o 6w6xx55@XaXjjn__dfeeeee?HNH}}(}(eeeb  MRM550_j_ppueeeeeeeeeeeeeeeeeeeee[UUijjkklmmnnoppqrrsstuuvvwxx##&mom{{yy#&#ssb,/,~~33srg > ||((uuv"sseeypoo vv!~!jjiihtgygZZ'Y'  9'm'qgeSRgR,O,BB900G>B>,,eeeeeeeeeeeeeeeeeeeee[UUiijkkllmnnoopqqrssttuvvwwx ~ 3w3JNJܼŏxx մeey/6/̡SSvut=V`Vuu poo  wwss|kjiihj8KRKuu4u48d8*~* k dPRPּhhv[<<eeeeeeeeeeeeeeeeeeeee[UUiijjkllmmnooppqrrsttuuvwwxx#:#]]))$%$ԫVV  >B>ss--xvutV37311ppo9OWO{{&&kjjihh@C>+~+eg'WWie^<@<,,eSRgR,O,BB900eeeeeeeeeeeeeeeeee[UUiijkkllmnnoopqqrssttp ƕAAyyzzZ;@;--  wwss~}}|~>KTKuu44FLF}} ssLsL ww.H.YYwwss{iihhgh8KRKuu4u4<<ee?m|mhhpel==edPRPּhhveeeeeeeeeeeeeeeeee[UUiijjkllmmnooppqrrstt { QQzyzzpǓ>>>OXO{{&&~~}}||G<@>'oo$$/f/xxKRKzzC>,, 9d90K0+r+x m J KMKٸccp!ϧRRtr $XX''9_90G0+g+i ] @ KLKԸccrb;;ee=ppffoej<<ebDDeeeeeeeeeeeeeeeeeeeeeeeeeeeZUUghhijjkklmmnnoppqqrrsző<<~00N}NCGC88{~;=;ʞIIsr v 0k0l}lhh|00NxNCGC88ilKKfeRRZRww"y"e j  MMflUUheeeeeeeeeeeeeeeeeeeeeeeeeeZUUghhiijjkllmmnooppqqrsu"MM{ 11ddbb7@7FOFںEEwy$TWTĔ??srq'NVNyy$$ r 11ddbzb7?7FNFպEEqeh\\ k ec-0-33ef0||^^ l hqqeeoeeeeeeeeeeeeeeeeeeeeeeeeeeZUUgghhijjkkllmnnooppqrrs22kḳѪѪѪѪѪѪҪҪҪЧrr99{z ~ ##JJrrÍ̞ЦХʛgg99wwv11jj̢ѪƘ``''rrqu::ssˤΪVV~l q ##JJrrŞʦɥÛgg99qeee22kkǣ{{CC k enGG``'|'ee+~+ddÝ}}DD l e22kkǣIIneeeeeeeeeeeeeeeeeeeeeeeeeeZUUfgghiijjkklmmnnooppqrr33OOUUUUUUUUUUUUUUUUUUUU<<zyyy  88IIQQPPFF33|wwwv22OOUUKK..|rrqq|22OOUUJJ..wllk q | 88IIQQPPFF33uieeeer33OO@@$z$ieh!x!==OO33reep//KKAA%{% j er33OODD'|' k eeeeeeeeeeeeeeeeeeeeeeeeeeZUUfnTTyy11iijjkllmmnnoopqqrrssttuuuvvwwwxxxxyyyyyyxxxxxwwwvvuutttssrqqppoonnmmlkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeenOO/|/feZUUemmriijkkllmmnnoppqqrrsstttuuvvvwwwwxxxxxxxxxwwwwvvvuuuttssrrqqppoonnmllkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeenYXeZUUg<<hijjkkllmmnnoppqqrrrssttuuuvvvvwwwwwwwwwwwwvvvvuuuttssrrqqppoonnmmllkkjjihhggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeLLfZUUeqqmhiijjkkllmmnnooppqqrrsstttuuuvvvvvvwwwwvvvvvvuuutttssrrrqqppoonnmmllkkjiihhggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee,{,cbeZUUemQPcc#r#ghhiijjkkllmmnnooppqqrrrsstttuuuuuvvvvvvvvvuuuuutttsssrrqqppoonnmmllkkjjiihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[[ddleZUUeeeefgghhiijjkkllmmnnooppqqqrrsssttttuuuuuuuuuuuuuttttsssrrrqqpppoonnmmllkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefeeeZUU\UUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYVUUWUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUbUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUYatanks-6.6/button/21.bmp0000644000175000017500000005450612636021030013226 0ustar apoapoBMFY6(& YxwV~~~~~~~}}}rVUijjlkllmmnnooppqqrrrssttttuuuuvvvvvvvvvvuuuutttsssrrqqpppoonnmmllkjjiihhggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeemgee\UUisppgg p mmnnooppqqqrrsstttuuuvvvvvvwwwwvvvvvvuuutttssrrrqqppoonnmmllkjjiihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeftt77e\UUiaa==mmnnooppqqrrsstttuuvvvvwwwwwwwwwwwwwvvvuuuttsssrrqqppoonnmmlkkjjiihhgffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2~2~}e\UUiTTmmnnoppqqrrsstttuuvvvwwwwxxxxxxxxxwwwwvvvuuuttssrrqqppoonnmllkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee@@yyf\UUjBBtmnnooppqqrrssttuuvvvwwwxxxxyyyyyyxxxxwwwvvvuuttssrrqqppoonmmllkkjjihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeei9z8e\UUjk#{#GFrmmnnooppqrrssttuuvvvwwxxxyyyyyyyyyyyyxxxwwwvvuuttssrrqqpponnmmllkkjiihhgffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef&u&kee\UUjjkklmmnnoopqqrrssttuuvvwwxxxyyyzzzzzzzzzyyyyxxwwvvuuttssrrqqpoonnmmlkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\UUjjkklmmnnoppqqrrsstuuvvwwxxxyyzzzz{{{{{{zzzzyyxxwwvvuuttssrrqppoonnmllkkjiihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrrsttuuvvwwxxyyzzz{{{{||{{{{{zzyyxxwwvvuuttssrqqppoonmmllkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrssttuuvvwxx>+d+&& |||E+f+&& ?6//yxwwvvuu<8..{qpponnmmlkkjhG $    3#[#t j eee54..oeeK5{5w5+Z+&{& k eee9+[+&{& k eeeeeeeeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrssttuuvwwxxZ SS))~|}a?X?RR\cc++yyxwwvvuW%bb))qppoonmmllk_5r5uheNcc*~*ee$7C7jj11NSS)})geeQ?S?RRteeeeeeeeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrssttuvvwwxxv ' [[}}~7<7..xÖHHzyxxwwvvr×EEqqpponnmmlh~~8A8DtD'|'ifHHf[88h & [[ueei7;7..eeeeeeeeeeeeeeeeeeeeeeeeee[UUijkkllmnnoopqqrrsttuuvwwxx    >R>II~  Ȕ??  XX~yyxxwvv |  TTtqppoonmmlCϯ}}ffeeuuVlV VV%{%n ZZ j 8+,+׾iit l   >N>IIoe k  ??eeeeeeeeeeeeeeeeeeeeeeeeee[UUijkkllmnnoopqqrrsttuuvwwxx{*YY88 2PP+nnhhzyyxwwvx)yycczqqpoonnml " oroӵii((rp y EE/?/9E9TTt&cpcllp›FFig&YxY88 k f,PPgeeeeeeeeeeeeeeeeeeeeeeeee[UUijjkllmmnooppqrrsttuuvwwxxyFk|k bb((Mxx`` HPYPxx##zyyxxwvvEXcXjjxjjnqonnmm55ihgg m 6u6xx55@@E@~~#[#  ww$z$ee?kxk bb(}(gCxx`` l eeeeeeeeeeeeeeeeeeeeeeeee[UUijjkklmmnnoppqrrsstuuvvwxxy^dqd̝-=- ) YYf]j]qqa-0-44zzyxxwwv\  ;'t'yom vv!|!ihggfsgygZZ'Y'gjg˩TT l eeSdodÝ-:- ' YYuW]g]qqueeeeeeeeeeeeeeeeeeeeeeeee[UUiijkkllmnnoopqqrssttuvvwwxys@F@Ìbb@U@HH&&;@;--wƖDDzzyyxwwvq8h8** r  wwsszihhgfh8KRKuu4u4Ÿ00eeed@F@bb@Q@HH&o&;?;--eeeeeeeeeeeeeeeeeeeeeeeee[UUiijjkllmmnooppqrrsttuuvwwxx  ŐPP>>ZZCCȓ>> TT|zyyxwwv | Ү˧TaTWW)):OWO{{&&ihhgff?s>ZzZCC >>eeeeeeeeeeeeeeeeeeeeeeeee[UUhijjkklmmnnoppqqrssttuvvwwx{&MM##7_7 dd2NN'uuddzyyxwwvx%ȜccUUYYii*6*RdRTT.f.77ihhggf8CFC??#x~xʶ"XwX33 k eeg#MM#z#7W7 dd.NNfeeeeeeeeeeeeeeeeeeeeeeee[UUhiijkkllmnnoopqqrrsttuuvvwxxB\\..#6#"+"E\Ezz__ DYdYttzyyxwwvvAZeZssrs{'J'CJCyy>>auaTT p ihggf  bgb99<KPKŠqq  SS,,iee<\\n..#2#")"EXEzz__ l eeeeeeeeeeeeeeeeeeeeeeee[UUhhijjkklmmnnoppqqrssttuvvwwxZgwgll :: % _m_pp\6:6//zyxxwwvvY8<8//rqp/SXS<<2l2aa//mhggO+~+P$&$VVDsD[[#z#fePgtgllr l :: $ _j_ppueeeeeeeeeeeeeeeeeeeeeeeeZUUhhiijkkllmnnooppqrrsstuuvvwwpGNG||''{?}?>C>,,s>>qqppoqxwn==jc = .. ~ 9_90G0+g+h ] @ KLKԸccrbKK&{&8V8&.&TTtebGMG||'|'er?r?>B>,,eeeeeeeeeeeeeeeeeeeeeeeeZUUghhijjkklmmnnoppqqrrsttuuvvw}!#!Í88z{""6[6Ƒ<<<<{Y\Y׺ee|p00NwNCGC88ilWWm00&5&>O>FFol!#!88ef"y"6U6<<eeeeeeeeeeeeeeeeeeeeeeeeZUUghhiijjkllmmnooppqqrssttuuvvy"HHyz}//"3"MM"bb@@ z "@G@ػxx77 r l r 11ddbzb7?7FNFպEEqehqqffom;;SpS88nHHeei//"0"MMfeeeeeeeeeeeeeeeeeeeeeeeZUUgghhijjkkllmnnooppqrrssttuuvv22kk̟nn66yyy??ww΢ѧrr99{22kkΣҪҪҪҪѪѪѪЩvv>>x22kḳЪЪϪϩͦȝff66wmll p #~#JJrrŞʦɥÛgg99qeee22kkǣJJoeqJJšqq88 k 22kkşnn66eeem??wwƢɧrr99feeeeeeeeeeeeeeeeeeeeeeeZUUfgghiijjkklmmnnooppqrrssttuuv33OO::xxyy11MMUU<<z33OOUUUUUUUUUUUUUUUU>>""w33OOUUUUUUTTQQHH55} s mmllkj q { 88IIQQPPFF33tieeeer33OODD'|' k eft66QQDD'|' k r33OO::weeeeq11MMUU<<wfeeeeeeeeeeeeeeeeeeeeeeeZUUfnTTyy11iijjkllmmnnoopqqrrssttuuuvvwwwxxxxyyyyyyxxxxxwwwvvuutttssrqqppoonnmmlkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeenOO/|/feZUUemmriijkkllmmnnoppqqrrsstttuuvvvwwwwxxxxxxxxxwwwwvvvuuuttssrrqqppoonnmllkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeenYXeZUUg<<hijjkkllmmnnoppqqrrrssttuuuvvvvwwwwwwwwwwwwvvvvuuuttssrrqqppoonnmmllkkjjihhggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeLLfZUUeqqmhiijjkkllmmnnooppqqrrsstttuuuvvvvvvwwwwvvvvvvuuutttssrrrqqppoonnmmllkkjiihhggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee,{,cbeZUUemQPcc#r#ghhiijjkkllmmnnooppqqrrrsstttuuuuuvvvvvvvvvuuuuutttsssrrqqppoonnmmllkkjjiihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[[ddleZUUeeeefgghhiijjkkllmmnnooppqqqrrsssttttuuuuuuuuuuuuuttttsssrrrqqpppoonnmmllkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefeeeZUU\UUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYVUUWUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUbUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUYatanks-6.6/button/25.bmp0000644000175000017500000005450612636021030013232 0ustar apoapoBMFY6(& YxwV~~~~~~~}}}rVUijjlkllmmnnooppqqrrrssttttuuuuvvvvvvvvvvuuuutttsssrrqqpppoonnmmllkjjiihhggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeemgee\UUisppgg p mmnnooppqqqrrsstttuuuvvvvvvwwwwvvvvvvuuutttssrrrqqppoonnmmllkjjiihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeftt77e\UUiaa==mmnnooppqqrrsstttuuvvvvwwwwwwwwwwwwwvvvuuuttsssrrqqppoonnmmlkkjjiihhgffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2~2~}e\UUiTTmmnnoppqqrrsstttuuvvvwwwwxxxxxxxxxwwwwvvvuuuttssrrqqppoonnmllkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee@@yyf\UUjBBtmnnooppqqrrssttuuvvvwwwxxxxyyyyyyxxxxwwwvvvuuttssrrqqppoonmmllkkjjihhggfeeeeeeeeeeeeeeeeeee91n1"y"heeeeee]8..oeeeeeeeeeeeeeeeeeeeeeeei9z8e\UUjk#{#GFrmmnnooppqrrssttuuvvvwwxxxyyyyyyyyyyyyxxxwwwvvuuttssrrqqpponnmmllkkjiihhgffeeeeeeeeeeeeeeeeeeQQoQIIoeeeeeef %aa(}(eeeeeeeeeeeeeeeeeeeeeeeef&u&kee\UUjjkklmmnnoopqqrrssttuuvvwwxxxyyyzzzzzzzzzyyyyxxwwvvuuttssrrqqpoonnmmlkkjjiihggffeeeeeeeeeeeeeeeeei[d[uu x eeeeeef$DDeeeeeeeeeeeeeeeeeeeeeeeeeeeee\UUjjkklmmnnoppqqrrsstuuvvwwxxxyyzzzz{{{{{{zzzzyyxxwwvvuuttssrrqppoonnmllkkjiihhggfeeeeeeeeeeeeeeeee k   $K##|z> & N "~"{sr,!F!,, 6 $11wkjjiN5~5vfeecE #    3#[#t j eeDW_Wuu x eeeeeeeeeeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrssttuuvwwxxyyz[6k6)) [ 9t9$$uH'4']]330+>+DDvjjiL_Ldd++fe[5r5uhW47400eeeeeeeeeeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrssttuvvwwxxyzzwкãáFRFRR++zºϻ£=G= SS%%f“OO>>#/#CZC>>sjT --fb~~8A8DtD'|'uKKgg»ʹécc(}(eeeeeeeeeeeeeeeeeeeeeeeeeeee[UUijkkllmnnoopqqrrsttuuvwwxxyzz  ̜ff]]^^ccrr)6)K]KWW"" ̞hh]]]]aarr#,#QeQPP$$OO{BB#NoN66 p "txt̪UUof@ί}}ffeeuuVlV VV..+~+MM3C3Z_Zȥpp]]__  ;;seeeeeeeeeeeeeeeeeeeeeeeeeeee[UUijkkllmnnoopqqrrsttuuvwwxxyzz|+oopp +S+AHA}},,*hvhss |{ } 'G'BIBxx--  zz__ v {FFVV)m),,gf oroҵii(}(on x EE/?/9E9TTt l 6y699 k k %zzggpfeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUijjkllmmnooppqrrsttuuvwwxxyzz{GPZPyy$$5]c]‰44GHOH}}((xxws  MRM553_k_pp~o}HH  )v{v̩TTpgf55feee l 6u6xx55fq'B'ZkZXXne;]h]rrveeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUijjkklmmnnoppqrrsstuuvvwxxyyz{`,/,~~33vuk A ||((`RkR,W,JJ@00L>C>,,oo  G}G~~++hgf vv!x!eeeeergygZZnf,r,||(}(eN<@<--eeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUiijkkllmnnoopqqrssttuvvwwxyyzzv/6/ϡSSuPRPڼhhc<<onp%%FqFsws̩TTphgf  wwssweeeeeg8KRKuu!x!eq/xxIIi^==eeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUiijjkllmmnooppqrrsttuuvwwxxyzz  >B>ss-- @D@ڽ||99 x vMMpnnp"Z" EEjhgf7OVO{{&{&eeeeee?>of y 9\90F0+e+f \ > KLKԸccreeeq &)&vv,u,O#%#88eeeeeeeeeeeeeeeeeeeeeeeeeeeeZUUghhijjkklmmnnoppqqrrsttuuvvwwxx~ɘCC|UU{wwvuuttsssKKnȠKKz@@ JgJ77 m j00NuNCGC88ieee j 5HHeeeeeeeeeeeeeeeeeeeeeeeeeeeeZUUghhiijjkllmmnooppqqrssttuuvvwwxz%!LTLծdd%%z|"qqeewvvuuttss x  \\ J ww%%jwDDQuQ11 k l 11ddbzb7>7FNFպEEqeeeee%[%XXieeeeeeeeeeeeeeeeeeeeeeeeeeeZUUgghhijjkkllmnnooppqrrssttuuvvwwx11jj΢ҪҪҪҪҩХʚ\\--  zy22kkΣIIvvvuutssrs88qqͧ{{CCy@@yyʣ{{BB q jkyRRjj11 k e j #z#JJrrĞɦȥ›gg99qeeeeeeuTT˪˪˪˪˪˪xx@@ieeeeeeeeeeeeeeeeeeeeeeeeeeeZUUfgghiijjkklmmnnooppqrrssttuuvvww22OOUUUUUUUUTTPPEE00|yyy33OODD'' | vvuuttssrr~66RR@@$$x''DDRR77zkjjjz99RRBB%|% k eee l x 88IIQQPPFF33tieeeeeee j %{%BBUUUUUUUUUUUU??"y"heeeeeeeeeeeeeeeeeeeeeeeeeeeZUUfnTTyy11iijjkllmmnnoopqqrrssttuuuvvwwwxxxxyyyyyyxxxxxwwwvvuutttssrqqppoonnmmlkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeenOO/|/feZUUemmriijkkllmmnnoppqqrrsstttuuvvvwwwwxxxxxxxxxwwwwvvvuuuttssrrqqppoonnmllkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeenYXeZUUg<<hijjkkllmmnnoppqqrrrssttuuuvvvvwwwwwwwwwwwwvvvvuuuttssrrqqppoonnmmllkkjjihhggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeLLfZUUeqqmhiijjkkllmmnnooppqqrrsstttuuuvvvvvvwwwwvvvvvvuuutttssrrrqqppoonnmmllkkjiihhggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee,{,cbeZUUemQPcc#r#ghhiijjkkllmmnnooppqqrrrsstttuuuuuvvvvvvvvvuuuuutttsssrrqqppoonnmmllkkjjiihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[[ddleZUUeeeefgghhiijjkkllmmnnooppqqqrrsssttttuuuuuuuuuuuuuttttsssrrrqqpppoonnmmllkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefeeeZUU\UUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYVUUWUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUbUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUYatanks-6.6/button/13.bmp0000644000175000017500000005450612636021030013227 0ustar apoapoBMFY6(& YxwV~~~~~~~}}}rVUijjlkllmmnnooppqqrrrssttttuuuuvvvvvvvvvvuuuutttsssrrqqpppoonnmmllkjjiihhggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeemgee\UUisppgg p mmnnooppqqqrrsstttuuuvvvvvvwwwwvvvvvvuuutttssrrrqqppoonnmmllkjjiihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeftt77e\UUiaa==mmnnooppqqrrsstttuuvvvvwwwwwwwwwwwwwvvvuuuttsssrrqqppoonnmmlkkjjiihhgffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2~2~}e\UUiTTmmnnoppqqrrsstttuuvvvwwwwxxxxxxxxxwwwwvvvuuuttssrrqqppoonnmllkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee@@yyf\UUjBBtmnnooppqqrrssttuuvvvwwwxxxxyyyyyyxxxxwwwvvvuuttssrrqqppoonmmllkkjjihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeei9z8e\UUjk#{#GFrmmnnooppqrrssttuuvvvwwxxxyyyyyyyyyyyyxxxwwwvvuuttssrrqqpponnmmllkkjiihhgffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef&u&kee\UUjjkklmmnnoopqqrrssttuuvvwwxxxyyyzzzzzzzzzyyyyxxwwvvuuttssrrqqpoonnmmlkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\UUjjkklmmnnoppqqrrsstuuvvwwxxxyyzzzz{{{{{{zzzzyyxxwwvvuuttssrrqppoonnmllkkjiihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrrsttuuvvwwxxyyzzz{{{{||{{{{{zzyyxxwwvvuuttssrqqppoonmmllkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUjjkk73x3!!qppe44uU!1'r'}zk!2//^ 55|{&>..ww\(  -$^$ w q7,b,&& s m5+`+&& o i-a-%|% j eeeeee_:   * L o nfc3   'Y'!x! B    @+[+&{& k c  55te6*Y*'|' k eJ -'f'theeee[UUjjkkQQtQGGwppBii44G >s>++ ~ *  cc(a(DfDFF| ^^//yN ,88~S@X@QQ{mP?U?RRx]vv>> k eeeeeP  (H(,{,<  >j>+~+ j eee[UUjjkklXbXttppRR^^$$  Ķܽkk+[+yy))|  RdR[[{Ϊawa"/"HH,x,;?;--nk7;7..:yyƠKK k eeee[GPGҵʨasa?^?!GJG7;7..e6ZZ j g252.z.^^$z$eee[UUijkk s  37300oc^e^mmQQIMI^^YYggii&&.İȔ@@M(-()))a~aNN W\W  {{'l'131Ð]]__7K7WwWLL“>>n t   >>||(~(ffeee2BFB›iiVVVVddkkDNDeePP9;9ҵnn??eLhuhkkr l  5h5IMI^^YYg~gii&{&eee[UUijkkn) AAo A  ̺MUM\\Y]YɚEE } ''NNeeDDK||hh?(.("uu$$\r\DsDKMKΤOO { { 2u2','tt*NNop%ScSDqDTXTϮYYoffeeeşMMqgfn-}-),)IPICJCee(z('|' II#OOg^HNH||'|'f)CkCY\YšEE k '|'NNeeDDveee[UUijjklCRRqDLDԲ&)&vv 99/m/[g[rr7,2,ֶjjFFͱGTGjj585Ŕ??vu~7P7{{__ t n?55hgfeeeñttweeeeh  RR>zz`` l l!#!88eAss[[ 99uee[UUijjkkYuuccg(:(    iiJJ8=8..-282ѣLiL'/'hhӮttfyfFFvux  SuSS^Sqq~nV!"!ؽhhvggffeeddneWRhR292   ppdd(X(YcYqqui  IIfUU^U||    ii99fe[UUiijkklXbXttG Թpp,S,+4+ѪΤN]NǢbbȔ??$7=7ʖcc dd ӫll)"&"BJBiiZZ | vsgg66ojKLKMXMffuhgffee  ccmeg    ||VVttĞǣQZQvv5s533f,gxg__m`7;7!-!˪ȤNZNWWfe[UUiijjk s  373HQHΨSS$f$n~n}}#%#rrLL!#!ҩWW/OO  =C=ȓMM'M'(0(ХVV*f*vv  \\//x>%&%Ѭee,5,VV}umm-:-??tgffee:]g]ooteh::ppƢȤȤȤ{{BB (ssff>e>NTN<<>**(+(ΠKK  373ÓDD =C= !)OsO * CCuhfee$e$~~22fet33MMMMOOOO>>&{&: 22!9>9lplVV:`:??fe[UUhiijkkCFRF  պnn v  %(%ÑccXX@N@  3<3ҫcc  JOJƐ;;#B#9<9˚EE 'Q'VmV'.' EOEϩ^^ 6õHVH  BPB~~gg;;NwNFFxheer"8"5>5YYreeee8 ,%^%w44HmH/6/   */*ή__u5O]O  "$"ҵnn, TXTѻpp,,..XX@L@ 3:3̫bb"y"ee[UUhhijjkYOWO̦QQ u r2QQ--ZZȚͣ˞^^..<>n k ,,ZZšǣĞ^^-- j eeZUUhhiijkk44ppLWW z 00FFOOKK77|44TTܽUULL//|..JJNN22z**GG??$$%%>>MMPPGG11vr{..KK==2200FFGGBGB~~)) o $~$AAPP88whfeeqCC9J9||ÜJJn k w99KKQQMM<>{{{||{{{{{zzyyyxxwwvuuttssrrqppoont::jiihhgffeeetFFmmP^P'-'    % U_U̬kk//ieeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeZUUghhiijl::ss̨ͨww??sop{MMKK}ttuuvvwwxx|//WWQQ**z{{{{{{{zzzyyyxxwwvvuuttssrqqppoonp!KKkiihhgffeeeeo33]]ŠȥơXX+~+ l eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeZUUgghhijjz77SSSS77}noos$$@@EE)) y sttuuvvwwxx ~ zzzzzzzzzzyyyxxwwvvvuutssrrqqpponnm22kkȠqq88kiihhgffeeeeehq*~*@@MMQQNNBB+~+qgeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeZUUfgghiijjkklmmnnooppqrrssttuuvvwwwxxxyyyyyyyyyyyyxxxwwwvvuuttssrrqqpponnmy33OO;;|kiihhgffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeZUUfnTTyy11iijjkllmmnnoopqqrrssttuuuvvwwwxxxxyyyyyyxxxxxwwwvvuutttssrqqppoonnmmlkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeenOO/|/feZUUemmriijkkllmmnnoppqqrrsstttuuvvvwwwwxxxxxxxxxwwwwvvvuuuttssrrqqppoonnmllkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeenYXeZUUg<<hijjkkllmmnnoppqqrrrssttuuuvvvvwwwwwwwwwwwwvvvvuuuttssrrqqppoonnmmllkkjjihhggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeLLfZUUeqqmhiijjkkllmmnnooppqqrrsstttuuuvvvvvvwwwwvvvvvvuuutttssrrrqqppoonnmmllkkjiihhggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee,{,cbeZUUemQPcc#r#ghhiijjkkllmmnnooppqqrrrsstttuuuuuvvvvvvvvvuuuuutttsssrrqqppoonnmmllkkjjiihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[[ddleZUUeeeefgghhiijjkkllmmnnooppqqqrrsssttttuuuuuuuuuuuuuttttsssrrrqqpppoonnmmllkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefeeeZUU\UUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYVUUWUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUbUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUYatanks-6.6/button/3.bmp0000644000175000017500000005450612636021030013146 0ustar apoapoBMFY6(& YxwV~~~~~~~}}}rVUijjlkllmmnnooppqqrrrssttttuuuuvvvvvvvvvvuuuutttsssrrqqpppoonnmmllkjjiihhggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeemgee\UUisppgg p mmnnooppqqqrrsstttuuuvvvvvvwwwwvvvvvvuuutttssrrrqqppoonnmmllkjjiihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeftt77e\UUiaa==mmnnooppqqrrsstttuuvvvvwwwwwwwwwwwwwvvvuuuttsssrrqqppoonnmmlkkjjiihhgffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2~2~}e\UUiTTmmnnoppqqrrsstttuuvvvwwwwxxxxxxxxxwwwwvvvuuuttssrrqqppoonnmllkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee@@yyf\UUjBBtmnnooppqqrrssttuuvvvwwwxxxxyyyyyyxxxxwwwvvvuuttssrrqqppoonmmllkkjjihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeei9z8e\UUjk#{#GFrmmnnooppqrrssttuuvvvwwxxxyyyyyyyyyyyyxxxwwwvvuuttssrrqqpponnmmllkkjiihhgffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef&u&kee\UUjjkklmmnnoopqqrrssttuuvvwwxxxyyyzzzzzzzzzyyyyxxwwvvuuttssrrqqpoonnmmlkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\UUjjkklmmnnoppqqrrsstuuvvwwxxxyyzzzz{{{{{{zzzzyyxxwwvvuuttssrrqppoonnmllkkjiihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrrsttuuvvwwxxyyzzz{{{{||{{{{{zzyyxxwwvvuuttssrqqppoonmmllkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrssttuuvvwxxyyzz{{{|||||||||{?8//xwwv.'W'(( y ;  44x7"22;5..oeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrssttuuvwwxxyyzz{{|||}}}}}}||\cc**yxwwK5I5VVVff66R ii1b1$bb)})eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrssttuvvwwxxyzz{{||}}}~~~~}}}wHHyxxwi(*(55pŽͺrr99krurtztlullullullullulhrhOOEEeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUijkkllmnnoopqqrrsttuuvwwxxyzz{{||}}~~~~~~~}  YY}yxx{–FF z  ȝgg]]]]]]]]]]]]@@!~!r б~~~~~~~~}}UU77 TTheeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUijkkllmnnoopqqrrsttuuvwwxxyzz{{|}}~~~~+j{jjjyyx{VV y )rrppssrrqpolm'tt==)~))~))}))}))})vp'yyccneeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUijjkllmmnooppqrrsttuuvwwxxyzz{{|}}~~~~HJRJ{{&&yyxx8ppgg}DWaWxx##ponnmmlkkAMTMyy$|$gfeeeee?XaXjjn__dfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUijjkklmmnnoppqrrsstuuvvwxxyyz{{||}~~~~`6F6 : 3322QZQww""\6:6||11ihhgfgnmkV(*(55gffeeeeS  9'm'qgeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUiijkkllmnnoopqqrssttuvvwwxyyzz{||}}~~v-0-33o<<}khFFgffeeeed8d8*~* k eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUiijjkllmmnooppqrrsttuuvwwxxyzz{{||}~~~~ ÖDD{^^BBo r VVkffeeee l ήǧT`TWW)})geeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUhijjkklmmnnoppqqrssttuvvwwxyyzz{{|}}}~~~~~~~'ضҪҪҪѪTT y %յϪϪΪΪͩxx@@om$ppggqgfeeeeg#ÜccUUYYii*5*RcRTToeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUhiijkkllmnnoopqqrrsttuuvvwxxyyzz{{||}}}~~~}}}CY^YӫrrUUUUUUUU+?+rree}@agaΨppUUUUUUUUUU@@##pk=PYPww"{"gfeeeee<ZcZsswegq'G'CJCyy%{%eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUhhijjkklmmnnoppqqrssttuvvwwxxyyzz{{|||}}}}}}|\+.+44yxxwNU^Uvv!!X59500poonmmllkT,/,33gffeeeeP8<8//eee,SXS33eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeZUUhhiijkkllmnnooppqrrsstuuvvwwxxyyzz{{{||||||||rŖDDyxxwf04011l>>ihhgffhnlfDDgffeeeeb==_Y 8 ..eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeZUUghhijjkklmmnnoppqqrrsttuuvvwwxxyyzzz{{{{||{{{UU|xxwy ĕBBy  ::zqTTjffeeeelY\YպeeueeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeZUUghhiijjkllmmnooppqqrssttuuvvwwxxyyyzzz{{{{{{{|"qqeexww {  RR x !ii::n rreeqffeeeeh@G@ջxx77 j eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeZUUgghhijjkkllmnnooppqrrssttuuvvwwxxxyyyzzzzzzzzz22kkΣIIwwvw77ppΦuu<<u22kkˣϪϪϪϪΪΪΪΪ̧qq88k22kkȣIIpffeeeee22kkǣ˪˪˪˩ɦÝff66oeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeZUUfgghiijjkklmmnnooppqrrssttuuvvwwwxxxyyyyyyyyyy33OODD'' | wwvv55RR==!!u~33OOUUUUUUUUUUUUUUUUUU<<|kv33OODD'' m ffeeeeer33OOUUUUUUTTQQHH55u j eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeZUUfnTTyy11iijjkllmmnnoopqqrrssttuuuvvwwwxxxxyyyyyyxxxxxwwwvvuutttssrqqppoonnmmlkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeenOO/|/feZUUemmriijkkllmmnnoppqqrrsstttuuvvvwwwwxxxxxxxxxwwwwvvvuuuttssrrqqppoonnmllkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeenYXeZUUg<<hijjkkllmmnnoppqqrrrssttuuuvvvvwwwwwwwwwwwwvvvvuuuttssrrqqppoonnmmllkkjjihhggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeLLfZUUeqqmhiijjkkllmmnnooppqqrrsstttuuuvvvvvvwwwwvvvvvvuuutttssrrrqqppoonnmmllkkjiihhggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee,{,cbeZUUemQPcc#r#ghhiijjkkllmmnnooppqqrrrsstttuuuuuvvvvvvvvvuuuuutttsssrrqqppoonnmmllkkjjiihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[[ddleZUUeeeefgghhiijjkkllmmnnooppqqqrrsssttttuuuuuuuuuuuuuttttsssrrrqqpppoonnmmllkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefeeeZUU\UUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYVUUWUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUbUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUYatanks-6.6/button/20.bmp0000644000175000017500000005450612636021030013225 0ustar apoapoBMFY6(& YeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUgVUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUXUUYdddddddcccccccccbbbbbbbbbaaaaaaaaa``````````_________^^^^^^^^^^^^^^^^^^^^]]]]]]]]]]]]]]\\\\\\\\\[[[[[[[ZZZZZZZYYYYYYYXXXXXXXWWWWWWWVVVVVVVVVUUUU_UUgUUgdd[[##ccQPUUgcbª,,ìqqUUhîíLL<<ªĮUUhYXëîĮĮmmUUh//OO11yyTTUUiUUiUUiUUjJ+p+&& Q+q+&& J<//J@..h 3   C## TF..}55W+~+&& ]+}+&& UUjj SS))p?]?RRj cc++j'bb))"&55w!cc**87M7jj11| SS))?b?RRUUj ( [[7=7ʃ..˖HHЗEE!ʪŝ~~8F8 DD''ГHHۍ88 * [[7>7փ..UUj   >V>II  є??  XX  TT_}}ffeeuuVzV  VV%%ZZ Z+-+ii  >Z>II  ܔ??UUk/YY88 6PP/nnhh/yycc . ouoii(( EE/I/9M9TT3cycllFF4YY88 <ÏPPUUkOk~k bb((Uxx`` OP[Pxx##OXfXjjҊ55 66xx55W@I@~~##  ww$$Zkk bb((`xx`` UUkldtd՝-?- * YYr]l]qql-1-͉44l  G''vv!!"ggZZ'{'glgTT }dwd-D- , YY]o]qqUUl@H@Όbb@Y@HH&&;A;ʂ--ϖDD8z8** wwssIKWKuu44͸؅00@J@܌bb@^@HH&&;B;ւ--UUl  ϐPP>>ZZCCѓ>>  TT  ݮקTfTWW))GO[O{{&&V>ZZCCۓ>>UUl*ƔMM##7f7 dd5NN*uudd*՜ccUUYYii*;*RkRTT.~.Ή77NCHC؏??-xxٶ$XX33 /єMM##7o7 dd9ƏNNUUlK\\..#9#"-"E`Ezz__ KYfYttKZhZss'W'CMCyy>>aaTT ) bjb׎99QKSKߠqq  SS,,T\\..#>#"/"EeEzz__ UUmhgzgll :: & _o_pph6;6ʄ//h8=8ʄ//9SZSψ<<22aa//{Ҁ++r$'$ُVVDD[[##wg~gll :: ' _r_ppUUmGPG||''??>D>Ɂ,,>>== N ̓.. 9o90R0++ ]  KNKccחKK&&8l8&3&TTGQG||''??>E>Ձ,,UUm!$!΍88""6c6Б<<<<Y]Yee00NNCICӄ88WW00&@&>[>FF!$!ڍ88""6k6ڑ<<UUn&ʔHH//"6"MM&bb@@ &@J@xx77 11ddbb7C7FRF҅EE)qqff;;SS88*ӔHH//":"ɑMMUUn22kk֟nn66??wwע٧rr9922kkأ۪۪۪۪۪۪۪کvv>>22kkأ۪۪۪کڦ֝Ίff66 ##JJrrӍڞݦݥٛӈgg9922kkߣԂJJJJփݚqq88 22kknn66??wwrr99UUn33OO::11MMUU<<33OOUUUUUUUUUUUUUUUU>>""33OOUUUUUUTTQQHH55  88IIQQPPFF3333OODD'' 66QQDD'' 33OO::11MMUU<<UUo&&GF##UUo98¨BBUUoyyíì@@TTªĮUUo~}«îª22==ŮĮaaUUp77¦tt ggppUUpUVVatanks-6.6/button/1.bmp0000644000175000017500000005450612636021030013144 0ustar apoapoBMFY6(& YxwV~~~~~~~}}}rVUijjlkllmmnnooppqqrrrssttttuuuuvvvvvvvvvvuuuutttsssrrqqpppoonnmmllkjjiihhggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeemgee\UUisppgg p mmnnooppqqqrrsstttuuuvvvvvvwwwwvvvvvvuuutttssrrrqqppoonnmmllkjjiihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeftt77e\UUiaa==mmnnooppqqrrsstttuuvvvvwwwwwwwwwwwwwvvvuuuttsssrrqqppoonnmmlkkjjiihhgffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2~2~}e\UUiTTmmnnoppqqrrsstttuuvvvwwwwxxxxxxxxxwwwwvvvuuuttssrrqqppoonnmllkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee@@yyf\UUjBBtmnnooppqqrrssttuuvvvwwwxxxxyyyyyyxxxxwwwvvvuuttssrrqqppoonmmllkkjjihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeei9z8e\UUjk#{#GFrmmnnooppqrrssttuuvvvwwxxxyyyyyyyyyyyyxxxwwwvvuuttssrrqqpponnmmllkkjiihhgffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef&u&kee\UUjjkklmmnnoopqqrrssttuuvvwwxxxyyyzzzzzzzzzyyyyxxwwvvuuttssrrqqpoonnmmlkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\UUjjkklmmnnoppqqrrsstuuvvwwxxxyyzzzz{{{{{{zzzzyyxxwwvvuuttssrrqppoonnmllkkjiihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrrsttuuvvwwxxyyzzz{{{{||{{{{{zzyyxxwwvvuuttssrqqppoonmmllkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrssttuuvvwxxyyzz{{{|||||||||{{>:..wwvvuutts;#-q- 55whggfee 1m1"y"heK  55teeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrssttuuvwwxxyyzz{{|||}}}}}}|||[&bb))xwwvvuutsV nn&@&@[@FFpggff`rr@@ie b gg77feeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrssttuvvwwxxyzz{{||}}}~~~~}}}|wƗEExxwwvvuttprurtztlvllvllullullulhshii vv,,iggfS ͭXXie k  [[ k eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUijkkllmnnoopqqrrsttuuvwwxxyzz{{||}}~~~~~~~}}  TT{xxwvvuut z  ӱ~~~~~~~~}}UU>>/R/O^OVVrggf H IJIşJJeef,fsfllreeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUijkkllmnnoopqqrrsttuuvwwxxyzz{{|}}~~~~}+yyccyxwwvvutv)tt==))))))))))|v,,kpk;;eeeDFLF}}(}(eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUijjkllmmnooppqrrsttuuvwwxxyzz{{|}}~~~~}GXdXjj}qqvxvvuutDMUMyy$$ponnmmls2a2--eeeW!88eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUijjkklmmnnoppqrrsstuuvvwxxyyz{{||}~~~~}`  >'y'wt\(*(55poonmmll#~#$mom{{yy#&#ssweeePuuOOieeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUiijkkllmnnoopqqrssttuvvwwxyyzz{||}}~~}v8k8** y oFFpoonnmll p 3o3JMJ׼xxϴeeneee ee'|'geeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUiijjkllmmnooppqrrsttuuvwwxxyzz{{||}~~~~} ԮΧTbTWW))|VVsponnmmlk{#7#]])})$%$̫VVheePWWwfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUhijjkklmmnnoppqqrssttuvvwwxyyzz{{|}}}~~~~~~~}&˜ccUUYYii*7*ReRTT%ppggzponnmmlko1y1*0*hhhLOLÝHHeee$nun)2)OOseeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUhiijkkllmnnoopqqrrsttuuvvwxxyyzz{{||}}}~~~}}}|CZeZssyz'M'CKCyy%%@PYPww""poonmmllkw+I+ee7i7qvq99eeXŠ.:.=M=EEoeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[UUhhijjkklmmnnoppqqrssttuvvwwxxyyzz{{|||}}}}}}||\8<8//xxw1SXS33X,/,33poonmmllkl-~-  "JcJ+~+ee/sxsȤ]]FFNiN99 l eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeZUUhhiijkkllmnnooppqrrsstuuvvwwxxyyzz{{{||||||||{r==ph @ ..l–DDpoonmmllkjs0Z0qque^+~+rA{A XX//ieeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeZUUghhijjkklmmnnoppqqrrsttuuvvwwxxyyzzz{{{{||{{{{Y\YٺeeyTTsoonmmllkjk'~'еccme8UXUίZZnfw?i?  ZZ&{&geeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeZUUghhiijjkllmmnooppqqrssttuuvvwwxxyyyzzz{{{{{{{z|"@H@ڻxx77 x u!rreeyoonmmllkjj p 3i3,,,˩TThb 66feh)})4N4VVwfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeZUUgghhijjkkllmnnooppqrrssttuuvvwwxxxyyyzzzzzzzzzz22kkΣҪҪѪѩϦʝff66}ss22kkˣIIxonnmmllkjji { YY̪Ȥll33ee(}(aaPPreee j 55nn›UUwfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeZUUfgghiijjkklmmnnooppqrrssttuuvvwwwxxxyyyyyyyyyyy33OOUUUUUUTTQQHH55 x tss~33OODD'' v onnmmllkjjim$}$AAUUPP44reet77RR>>"y"heeeen,,HHQQ66tfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeZUUfnTTyy11iijjkllmmnnoopqqrrssttuuuvvwwwxxxxyyyyyyxxxxxwwwvvuutttssrqqppoonnmmlkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeenOO/|/feZUUemmriijkkllmmnnoppqqrrsstttuuvvvwwwwxxxxxxxxxwwwwvvvuuuttssrrqqppoonnmllkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeenYXeZUUg<<hijjkkllmmnnoppqqrrrssttuuuvvvvwwwwwwwwwwwwvvvvuuuttssrrqqppoonnmmllkkjjihhggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeLLfZUUeqqmhiijjkkllmmnnooppqqrrsstttuuuvvvvvvwwwwvvvvvvuuutttssrrrqqppoonnmmllkkjiihhggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee,{,cbeZUUemQPcc#r#ghhiijjkkllmmnnooppqqrrrsstttuuuuuvvvvvvvvvuuuuutttsssrrqqppoonnmmllkkjjiihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee[[ddleZUUeeeefgghhiijjkkllmmnnooppqqqrrsssttttuuuuuuuuuuuuuttttsssrrrqqpppoonnmmllkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefeeeZUU\UUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYVUUWUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUbUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUYatanks-6.6/button/8.bmp0000644000175000017500000005450612636021030013153 0ustar apoapoBMFY6(& YeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUgVUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUXUUYdddddddcccccccccbbbbbbbbbaaaaaaaaa``````````_________^^^^^^^^^^^^^^^^^^^^]]]]]]]]]]]]]]\\\\\\\\\[[[[[[[ZZZZZZZYYYYYYYXXXXXXXWWWWWWWVVVVVVVVVUUUU_UUgUUgdd[[##ccQPUUgcbª,,ìqqUUhîíLL<<ªĮUUhYXëîĮĮmmUUh//OO11yyTTUUiUUiUUiUUjX)  C$$J=//_33 J  44N #Q$$SD// 00## @   =!t! UUj}944k#cc**#4F4ll33kff66p"F"11v"cc** 0 L|LKKL99UUj$ʬqq""FFΗGGyώ99ǽӺʣʡʡʡʡʡɜrr99źջˢjj# CCԖHHVO[Oyy$$}T`Tѩǜ:H:QQUUjWܮ{{ffggxx0>0GeGFF WW>:<:gg  ՝gg]]]]]]]]]]]]@@!!ڞhh``ii||>S>$4$NN XXx*.*ډ44 O KOKߛoobbddss , ffDD UUk * nsnߴhh&&((QQ*;*ԚMM0ssffҕ@@/rrpp1hzhss!! **QQ!0!\\??2lliiۖEENNrrŔ؃JJ <iihhUUk͊55HHlldd44PWdWuu X&'&nnOWcWxx##SHQH}}((88-6-nn VMYMyy$$UU..PPWW99kuu UUkww"" m>@>~~YYl6;6||11q$'$ԍ88 ͋==x(,(؊55+ssee v E ܴkkUUl uutt!55<<җGG*UU֖FFOVeVuu LޛII UUl?R]R{{&&  ԽʦɡǟCPC  NN!! ^^BB  WW4cc VVr393ن11;?;ޛYY""UUl!o!ʉ77,ؤnn]]]]aapp'4'MiMLL*ߵ۪ܪܪܪܩxx@@.rrff % gg-oogg ݕAA`JOJܓttII!!UUl  bbSS No MWcW||)) ,\,=F=ww%%KaiaڨppUUUUUUUUUU@@##OVdVvv!!حccQQ^Qxx##QQ ; _d_rrWW>>!!UUm 1z1 __//b ??j494ˆ11?LRL͊55h5;5˅00n5:5І11@JMJSSr,0,ֈ33$xxaaEoxoXX ;((UUm""7e7/N/,,  P TiTll++  ?? P ˆ11>>  ‰?? o , ͻԉ55זBB@WgWii##VzV@@  $bb88 UUm 22LLMRMvv++MQMii  ::ߧUUAAFLL>q>ڔBB UUn 33eeaa9E9CMC>>)8?8}}:: &ii::*9E9xxݷڜ\\%%)rrggpp^^\\LdL%,%  %,%]k]ͱdd))UUn %%LLrr΍՝إإ՜͉ff8811jjע۪۪۪۪۪٧֠΍jj::22kkأ۪۪۪۪۪۪ܪܪۧqq8811jjڢުުީݦڝԍrrHH!!22kkޣӂTTTT||ߜdd88..ZZՀݗܖUU)) UUn 88HHPPPPGG4422OOUUUUUUUUUURRKK88 33OOUUUUUUUUUUUUUUUUUU<<22OOUUUUTTQQHH88 33OODD****;;UUUUUUUUUUUUUUUUUUUUQQ55++BBNNRRNNAA++UUo&&GF##UUo98¨BBUUoyyíì@@TTªĮUUo~}«îª22==ŮĮaaUUp77¦tt ggppUUpUVVatanks-6.6/button/27.bmp0000644000175000017500000005450612636021030013234 0ustar apoapoBMFY6(& YxwV~~~~~~~}}}rVUijjlkllmmnnooppqqrrrssttttuuuuvvvvvvvvvvuuuutttsssrrqqpppoonnmmllkjjiihhggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeemgee\UUisppgg p mmnnooppqqqrrsstttuuuvvvvvvwwwwvvvvvvuuutttssrrrqqppoonnmmllkjjiihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeftt77e\UUiaa==mmnnooppqqrrsstttuuvvvvwwwwwwwwwwwwwvvvuuuttsssrrqqppoonnmmlkkjjiihhgffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2~2~}e\UUiTTmmnnoppqqrrsstttuuvvvwwwwxxxxxxxxxwwwwvvvuuuttssrrqqppoonnmllkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee@@yyf\UUjBBtmnnooppqqrrssttuuvvvwwwxxxxyyyyyyxxxxwwwvvvuuttssrrqqppoonmmllkkjjihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeei9z8e\UUjk#{#GFrmmnnooppqrrssttuuvvvwwxxxyyyyyyyyyyyyxxxwwwvvuuttssrrqqpponnmmllkkjiihhgffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeC#F#+~+meeeeeeeeeeeeeeef&u&kee\UUjjkklmmnnoopqqrrssttuuvvwwxxxyyyzzzzzzzzzyyyyxxwwvvuuttssrrqqpoonnmmlkkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee [ *7*[["y"eeeeeeeeeeeeeeeeeeee\UUjjkklmmnnoppqqrrsstuuvvwwxxxyyzzzz{{{{{{zzzzyyxxwwvvuuttssrrqppoonnmllkkjiihhggfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeel<<eeeeeeeeeeeeeeeeeeee[UUjjkklmmnnoppqqrrsttuuvvwwxxyyzzz{{{{||{{{{{zzyyxxwwvvuuttssrqqppoonmmllkjjiihggffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeh"MMfeeeeeeeeeeeeeeeeeee[UUjjkklb7 $ L "y"ztstT!1'r'|:+f+&& y  55|A*c*''  zX"1'q'xP#   ."X"| t k7   '\'!}! C  %00red 77teeee40l0"y"heee#22qT),&_&u=||HsH()e)uic3   'Y'!x! B    55t[UUjjkkP 2`2)) y F >s>++Y?X?RR|  hh77~^q>++P %;;B ,DDpe ee::feeeMRR!x!fee "  hh*i* 0O0>d>CJC>i>,, :  c>22^^777<7..}=ZZ {262..^^2y28;8ٻ̥,4,EaE!GKGϯGTGAWA>>nAzz__ l eeef-6-RRree@)@)̫9B9dd=C=ǣss ^^  !GJG44[UUijk1W\WccVV__oo;F;M{MIMI^^YYggii33Ȕ??}Whyhkk  Ɣ5t5INI^^YYggii55ڽRRVVNvNIRIęeePP9;9ӵppWW0A0LiL77'\'_i_ppueee l  '('F[FBBneUuu1@1__UUddqqzzĞmm^^7I7[o[eePP9;9ҵaau[UUijk×DDxp v ))NNxxǚJuJY]YȚEE | ''NNeeDD""'OOoHOH||''.CtCY]YʚEE ~ ''NNeeDD##OOrc&DNDCJCee(('' DDq9z9   <@<,,eeeg(Z|Z44 j eWaWjj0?0*W*k&{&==SSGG&ssw k -f-383BLBCJCee(z('|' DDe[UUijjpp}oopq##EEUU9s9 99'J'zz`` !#!ƍ88Kss[[ ::$A$!ЬxxRRc ==eeee@XdX ^^'|'o 373ơQjQ &I&-y-r<eenenRRh[UUijj ddvnoppt x x u    iiBoBYeYqq  IIdU`U||    ii@h@  yybbVVOhO292   ppddB<@<׾ʨ181NNfeeeU{{%0%%WW x ' ÝsseejjHRHBB0\0_j_nnte j  QgQ292   ppddn[UUiijeewnoopqqr x (ѪΤN\NǢbb33~2g}g__s7<7ŏ!/!ҪϤN\NƢffGHGعȢuu__??HHttǞɣQZQvv>ϰwwWW8Q8||^^ l eeefYbYXX9H9JJ%D%^^,y,HHuuN[NLeLTT00ee yyNNttĞǣQZQvv!x![UUiijAXbXrr}nooppqrs-p-#%#rrLL!#!ѩbb> (ssff>g>NTN2Z2474::hU`l`ooteee l  474GGAuAQlQElEuu0H0 KKVVOOIoIbmb}}5?5RRsIƩWW (ssff>e>NTN..[UUhij#m#44onoppejt:f:ƔEE$9@9lrlŏVV:i:ŔCC22 555˥TT< EE   ?D?+~+eeeg( CC"y":\:ccW`Wrr   xx"=C=WYWȥRR: --[UUhiiu%A%7A7ZZznoop 4x4JJ\\@N@ 3;3ҫbb"";O`O  "%"ٵnn/ TYT׻pp,,..XX@O@  3<3ҫbb""IIMfM'-'  (.(lvlտ~~::00HoH/7/   */*Ϯ__))??E\E).)<<eeee@QQ k ..*<* 262šmm;K;DLDšOO7^n^]c]zz33..HmH/6/   */*ή__u[UUhhil00, ) 9n9| s e-llBB22ZZȚͣʞ^^-- | ((``əÌ~~{{ʙϢƑbbPP\\ÊΟ͝uu>> ,,ZZɚΣ˞^^-- z vFFvvÓʠ̤ʠ”ttBB|w66ggǞʤȡcc11 n wFFwwŠȤȤɦʨşff--eeeeUuubbn l 99 ddQQƢǣ›SS%{%--aaš||vvơ›vv@@pn66ggĞȤơcc11 k ZUUhhiitAA9M9<< y 00FFOOKK77{x..JJ??22//EENN<< 77KKHH--{{|00FFOOKK77zvut|%%>>MMQQMM??%%won r ~99KKQQMM< Specify the screen width in pixels -t --tall Specify the screen height in pixels Adjust the screen size at your own risk (default is 800x600) -d --depth Colour depths, currently either 16 or 32 bit --datadir Path to the data directory -c Path to config and saved game directory --noconfig Do not load game settings. --nosound Disable sound --noname Do not show player name above tank --nonetwork Disable network connections. --nobackground Do not display the green menu background. Most of these options can be used together, with the exception of "-fs" for full screen mode. Simply running "./atanks" is the same as running Atomic Tanks with the following options: ./atanks --windowed --width 800 --tall 600 --datadir . depth 32 How do I go about creating a player for myself? ================================================ when you first run Atomic Tanks, the first thing you'll need to do is to create a player/tank for yourself. If you haven't created a human player, yet, the game will present you with the player creation screen automatically. Otherwise click on the "Players" button and click "Create New". Enter the name you want and pick the colour you'd like your tank to be. The teams "Jedi" and "Sith" mean that their members work (somewhat) together, while the neutral tanks are all on their own. The "Jedi" AI is a bit more social and defensive, while the "Sith" AI is a bit more individualistic and aggressive. That's all you'll need to do. Click the "Okay" button. Then click the "Back" button and, most importantly, click "Play"! Once you click play, you'll have a chance to select which tanks you'll be playing against. You can get anywhere from 2 to 10 tanks on the playing field at one time. Don't forget to select yourself! The next screen gives you a chance to buy weapons and defensive items. There is no perfect combination, so experiment a little. You can buy an item (assuming you have enough funds) by left-clicking on the item. To sell the item, right-click on the item. When you've completed your selection, click "Done". The final screen you'll see is where the action takes place! Use the left and right arrow buttons on your keyboard to aim your tank's gun. The up and down arrow keys adjust the speed (power) of the shot. The space bar fires the tanks gun. If you want to change which weapon you will be using, press the TAB button or the BACKSPACE button. The round is over when there is one tank left standing. Keyboard Controls ========================================= Atomic Tanks tries to be keyboard friendly and much of the tank's controls require the keyboard. Here is a quick overview of which keys do what: SPACEBAR -- Fires weapons and selects/toggles menu items. ENTER -- Is similar to pressing the OK button on a menu. UP/DOWN -- Adjusts tank power, cycles through menu items and scrolls on the buying screen. LEFT/RIGHT -- Aim the tank's gun. Also buys and sells on the buying screen or adjusts values in menus. ESC -- Cancel out of a menu. F1 -- Takes a screenshot. F10 -- Tells the computer to take over your tank for the remainder of the round. Also saves games when on the buying screen. V, v -- The "v" key controls the volume during matches. Pressing lower-case "v" decreases the volume and upper-case "V" increases the volume. ~ -- Show/hide the scoreboard during rounds. On german (and possibly other) keyboards the scoreboard is switched with the key '#'. How to play a game over a network? ========================================= Atomic Tanks has just introduced network play and it is still a bit rough. However, if you'd like to try playing this way, here are a new points to help you along. Playing over a network requires two or more people. One person must be the Host and the other person is the Client. If you are hosting the game, make sure you have networking enabled. To check this, go into the Options menu and select the Network option. Make sure "Networking" is set to "On". If it was "Off", then change it to "On" and then exit Atanks and re-start the game. Congratulations, you're now running a Host. You can continue to play as you normally would from this point. Clients will connect to your game and take over computer-controled tanks. To connect to you, the Clients will need your IP address. To get this, visit the website whatismyip.com. For clients, to connect to a host, you'll need to first get the IP address of your Host. Once you have that, go to the Option menu and select the Network option. Change the box marked "Server Address" to match the IP address of your Host. Then return to the main menu and click the button labelled Network Game. Atanks will then try to connect to the server and introduce you to the game. Things are still flaky on the Client side. Hopefully it will improve as time goes on. If the Client cannot connect to the Host, there are a few possible problems. Perhaps there is a firewall in the way? Maybe the Host is using a non-default port number. Perhaps the Client side just isn't working well enough yet. If you run into problems, please let us know about them on the forum. When you're playing a game (as the client) you'll notice the various tanks are in four different colours. The Jedi Team is marked in Green, the Sith are marked as Purple, Neutral tanks are Blue and the player's tank is indicated with Red. Hopefully this will prevent you from shooting your team mates. Known issues ========================================= There are some known issues which players should be aware of. We are trying to fix these, but in the mean time, it's best to know they exist and how to work around them. The issues are, in no particular order. 1. The default sound driver doesn't work on Ubuntu Linux and its related distributions. If sound isn't working for you, go into the Options menu, select Sound. Make sure Sound is turned on and that the Sound Driver is switched from AutoDetect to OSS. Then return to the main menu, Quit and then re-start the game. If this doesn't resolve the issue, then Quit the game and delete all of the files and folders in your computer's /tmp folder with the name "pulse". 2. The client side of the network games is buggy. We're working on that. Where do I report bugs or send requests? ========================================= Atomic Tanks is a great game, but it isn't perfect. We, the developers, are always trying to improve the experience our game brings to you. If you have a problem with installing or playing Atomic Tanks, please let us know. We have a bug tracker on xxx, where issues can be recorded, tracked, and discussed. Or mail the project lead at jessefrgsmith@yahoo.ca We encourage you to give your feedback. Please give as many details as possible so we can help you. atanks-6.6/src/0000755000175000017500000000000014105065766011567 5ustar apoapoatanks-6.6/src/floattext.h0000644000175000017500000000566413006377360013760 0ustar apoapo#ifndef FLOATTEXT_DEFINE #define FLOATTEXT_DEFINE /* * atanks - obliterate each other with oversize weapons * Copyright (C) 2003 Thomas Hudson * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "main.h" #include "environment.h" #include "virtobj.h" /// @enum eTextSway /// @brief Type of text swaying enum eTextSway { TS_NO_SWAY = 0, //!< Static text that is moving normally TS_VERTICAL = 15, //!< Vertical "bouncing" text like tank health. TS_HORIZONTAL = 22 //!< Horizontal swaying text, if turned on, used for damage and money. }; class FLOATTEXT: public VIRTUAL_OBJECT { public: /* ----------------------------------- * --- Constructors and destructor --- * ----------------------------------- */ explicit FLOATTEXT (const char* text_, int32_t xpos, int32_t ypos, double xv_, double yv_, int32_t color_, alignType alignment, eTextSway sway_type, int32_t max_age, bool is_fixed_); ~FLOATTEXT (); /* ---------------------- * --- Public methods --- * ---------------------- */ void applyPhysics (); void draw (); void newRound (); void set_color (int32_t color_); void set_pos (int32_t xpos, int32_t ypos); void set_sway_type(eTextSway sway_type); void set_text (const char* text_); eClasses getClass() { return CLASS_FLOATTEXT; } private: /* ----------------------- * --- Private methods --- * ----------------------- */ void check_pos (bool is_new); int32_t overlaps_by (const FLOATTEXT* other); void push_down (int32_t ydiff, bool is_new); void reset_sway (); void set_speed (double xv_, double yv_); /* ----------------------- * --- Private members --- * ----------------------- */ int32_t color = SILVER; //!< Foreground colour int32_t halfColor = GREY; //!< Shadow colour bool is_fixed = false; //!< Whether new texts can push this out of the way bool is_pushed = false; double pos_x = 0.; double pos_y = 0.; eTextSway sway = TS_NO_SWAY; char* text = nullptr; }; // This function returns a shade colour, which // is either brighter or darker depending on // the given colour and options. int32_t GetShadeColor(int32_t colour, bool do_lighten, int32_t bg_colour); #endif atanks-6.6/src/tank.h0000644000175000017500000001127713006377360012700 0ustar apoapo#ifndef TANK_DEFINE #define TANK_DEFINE /* * atanks - obliterate each other with oversize weapons * Copyright (C) 2003 Thomas Hudson * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "physobj.h" #include "floattext.h" #define DIR_RIGHT 1 #define DIR_LEFT -1 #define VIOLENT_CHANCE 6 class PLAYER; class EXPLOSION; class TANK: public PHYSICAL_OBJECT { public: /* ----------------------------------- * --- Constructors and destructor --- * ----------------------------------- */ explicit TANK (); ~TANK (); /* ---------------------- * --- Public methods --- * ---------------------- */ void activate(); void activateCurrentSelection (); void addDamage(PLAYER* damageFrom, double damage_); void applyDamage(); void applyPhysics(); void check_weapon(); void deactivate(); void draw (); void explode(bool allow_vengeance); int32_t getBottom(); double getDiameter(); void getGuntop(int32_t angle_, double &top_x, double &top_y); int32_t getMaxLife(); bool hasRepulsorActivated(); int32_t howBuried(int32_t* left, int32_t* right); bool isFlying(); bool isInBox(int32_t x1, int32_t y1, int32_t x2, int32_t y2); bool isInEllipse(double ex, double ey, double rx, double ry, double &in_rate_x, double &in_rate_y); bool moveTank(int32_t direction); void newRound (int32_t pos_x, int32_t pos_y); void reactivate_shield (); void repair(); bool repulse (double xpos, double ypos, double* xa, double* ya, ePhysType phys_type); void resetFlashDamage(); bool shootClearance (int32_t targetAngle, int32_t minimumClearance, bool &crashed); void simActivateCurrentSelection(); eClasses getClass() { return CLASS_TANK; } /* ---------------------- * --- Public members --- * ---------------------- */ int32_t a = 90; // [a]ngle int32_t cw = SML_MIS; // [c]urrent [w]eapon int32_t fire_another_shot = 0; FLOATTEXT healthText; int32_t l = 100; // [l]ive FLOATTEXT nameText; int32_t p = MAX_POWER / 2; // [p]ower int32_t sh = 0; // [sh]ield FLOATTEXT shieldText; int32_t sht = 0; // [sh]ield [t]ype private: /* ----------------------- * --- Private methods --- * ----------------------- */ void setBitmap(); void setTextPositions(bool renew_colour); bool tank_on_tank(); // is this tank on top of another? /* ----------------------- * --- Private members --- * ----------------------- */ PLAYER* creditTo = nullptr; double damage = 0.; CSpinLock damage_lock; int32_t delay_fall = env.landSlideDelay * 100; // time the tank will hover int32_t flashdamage = 0; bool isTeleported = false; // Set to true if a teleport occurs to award falling damage. int32_t maxLife = 100; // amount awarded at beginning of round bool newDamager = false; int32_t para = 0; int32_t repair_rate = 0; int32_t repulsion = 0; int32_t shld_col_inner = BLACK; int32_t shld_col_outer = BLACK; double shld_delta = 360.; // divided by FPS in ctor double shld_phase = 0.; // Neutral int32_t shld_rad_x = 0; // Determined by the used bitmap int32_t shld_rad_y = 0; // Determined by the used bitmap int32_t shld_thickness = 0; double tank_dia = 1.; // Tank diameter, determined by the used bitmap int32_t tank_off_x = 0; // Determined by the used bitmap int32_t tank_off_y = 0; // Determined by the used bitmap int32_t tank_sag = 0; // Determined by the used bitmap int32_t turr_off_x = 0; // Determined by the used bitmap int32_t turr_off_y = 0; // Determined by the used bitmap int32_t use_tankbitmap = -1; int32_t use_turretbitmap = -1; }; #define HAS_TANK 1 #endif atanks-6.6/src/optionitem.h0000644000175000017500000004625713006377360014140 0ustar apoapo#pragma once #ifndef ATANKS_SRC_OPTIONITEM_H_INCLUDED #define ATANKS_SRC_OPTIONITEM_H_INCLUDED /* * atanks - obliterate each other with oversize weapons * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "optionitembase.h" /** @file optionitem.h * @brief declaration of the option entry template **/ /** @class OptionItem * @brief abstract one option menu entry * * One option menu entry is what the user interacts with. Each option menu * entry can handle exactly one target value, or none if none is needed. * Target values can be manipulated directly or with the help of an action * function set via function pointer upon creation. * Either a target value or an action function must be set unless the entry * is a sub menu. * In the latter case activating the option displays the sub menu and hands * over control to its menu handler. * * The setup is fairly easy, just use the appropriate setData() method. The * template itself has only two other methods: activate() and display(). See * OptionItemBase for more public methods. * * When using the empty ctor, remember to call it with an explicit type. * To be usable with the new-operator this class has an empty ctor which * leaves all members with neutral default values. To become a usable instance * the method setData() must be called with the desired values. * * * One BIG fat warning, though: Do not use ET_TEXT with anything other * than a char* target, and only allow the usage of OptionItem::activate() * if it is not full, yet!\n * Background: Allowing other types would make the internals insanely * complicated, and all string options that can be manipulated with the option * menu are char* strings (or arrays) already. Do not change this. * * Why a template?\n * With a template the option menu becomes type agnostic. This allowed to * correct all global, environment and player data values with inappropriate * types to proper types without the need to adapt the option menu. * * Template parameters:\n * While tgt_T defines the target type, opt_T is used for the manipulating * values like minimum, maximum, increment/decrement value and action function * typing. This is done to allow a more intuitive usage.\n * As an example, if the target is a double, minimum, maximum and increment * values can be set to -1.0, 1.0 and 0.1 without the need for a postfix 'L'. **/ template class OptionItem : public OptionItemBase { public: /* ------------------------------------------- * --- Public constructors and destructors --- * ------------------------------------------- */ /** @brief default ctor, no special functions or variants. * * This simplest ctor defines an option that can only be ET_TEXT. * * @param[in,out] target_ Pointer to the value to handle. * @param[in] max_ Maximum length for ET_TEXT options. * @param[in] color_ Color of the text to display. * @param[in] type_ Type of the option. * @param[in] title_ The title of the option to display. * @param[in] titleIdx_ Index value of the submitted title. -1 means @a title_ is fixed. * @param[in] format_ Format string to use when displaying the ET_TEXT target. * @param[in] top_ Top position of the display area. * @param[in] left_ Left position of the display area. * @param[in] width_ Width of the display area. * @param[in] height_ Height of the display area. * @param[in] padding_ Padding of the title and buttons to the display area. **/ OptionItem(tgt_T* target_, opt_T max_, int32_t color_, eEntryType type_, const char* title_, int32_t titleIdx_, const char* format_, int32_t top_, int32_t left_, int32_t width_, int32_t height_, int32_t padding_) : OptionItemBase(type_, title_, titleIdx_, nullptr, color_, TC_NONE, format_, top_, left_, width_, height_, padding_, 0), maxVal(max_), target(target_) { // The value of max_ determines whether this // is read only or not. If it is set, it is writable. // The default is true, so only if it maxVal is 0, something has to be done. if (maxVal) read_only = false; } /** @brief ctor for ET_VALUE with optional display function. * * This ctor creates an ET_VALUE, a different type can not be set. * * @param[in,out] target_ Pointer to the value to handle. * @param[in] title_ The title of the option to display. * @param[in] titleIdx_ Index value of the submitted title. -1 means @a title_ is fixed. * @param[in] text_ Array of texts to display. * @param[in] color_ Color of the text to display. * @param[in] class_ The text class of @a text_. * @param[in] min_ Minimum value target can become. * @param[in] max_ Maximum value target can become. * @param[in] decinc_ Value target is changed on each action. * @param[in] format_ Format string to use when displaying the target. * @param[in] top_ Top position of the display area. * @param[in] left_ Left position of the display area. * @param[in] width_ Width of the display area. * @param[in] height_ Height of the display area. * @param[in] padding_ Padding of the title and buttons to the display area. * @param[in] display_ optional display function to use. **/ explicit OptionItem(tgt_T* target_, const char* title_, int32_t titleIdx_, const char** text_, int32_t color_, eTextClass class_, opt_T min_, opt_T max_, opt_T decinc_, const char* format_, int32_t top_, int32_t left_, int32_t width_, int32_t height_, int32_t padding_, bool (*display_)(tgt_T* target, int32_t x, int32_t y)) : OptionItemBase(ET_VALUE, title_, titleIdx_, text_, color_, class_, format_, top_, left_, width_, height_, padding_, 0), displayFunc(display_), decinc(decinc_), maxVal(max_), minVal(min_), target(target_) { // The target must be set, this variant does not allow // an action function: assert(target && "A target must be set with ET_VALUE"); // maxVal must be larger than minVal, otherwise they are swapped if (maxVal < minVal) { opt_T tmp = minVal; minVal = maxVal; maxVal = tmp; } // If this is a text rotator, entryNum must be set to *target: entryNum = static_cast(*target); // Either format, texts or display must be set assert( (format || texts || displayFunc || (TC_NONE == class_)) && "Either format, texts or display must be set with ET_VALUE"); } /** @brief free ctor with action function. * * Here the handling is done by an action function. A display * function can be optionally set, too. * * If this is an ET_ACTION type, a display function must be set. * For ET_BUTTON, an action function is mandatory. * * @param[in,out] target_ Pointer to the value to handle. * @param[in,out] action_ Pointer to the action function handling the target. * @param[in] type_ Type of the option. * @param[in] title_ The title of the option to display. * @param[in] titleIdx_ Index value of the submitted title. -1 means @a title_ is fixed. * @param[in] text_ Array of texts to display. Only needed with ET_VALUE. * @param[in] color_ Color of the text to display. * @param[in] class_ The text class of @a text. * @param[in] format_ Format string to use when displaying the target. * @param[in] top_ Top position of the display area. * @param[in] left_ Left position of the display area. * @param[in] width_ Width of the display area. * @param[in] height_ Height of the display area. * @param[in] padding_ Padding of the title and buttons to the display area. * @param[in] display_ optional display function to use. **/ OptionItem(tgt_T* target_, int32_t (*action_)(tgt_T* target, int32_t val), eEntryType type_, const char* title_, int32_t titleIdx_, const char** text_, int32_t color_, eTextClass class_, opt_T min_, opt_T max_, opt_T decinc_, const char* format_, int32_t top_, int32_t left_, int32_t width_, int32_t height_, int32_t padding_, bool (*display_)(tgt_T* target, int32_t x, int32_t y)) : OptionItemBase(type_, title_, titleIdx_, text_, color_, class_, format_, top_, left_, width_, height_, padding_, 0), actionFunc(action_), displayFunc(display_), decinc(decinc_), maxVal(max_), minVal(min_), target(target_) { // Either action or target must be set assert ( (actionFunc || target) && "Either action or target must be set"); // If this is an ET_ACTION, both action and display // functions must be set: assert ( ( (ET_ACTION != type) || (actionFunc && displayFunc) ) && "ET_ACTION needs both display and action function!" ); // An ET_MENU must have a display function set. To be more concrete, // it must be OptionMenu->displaySub(). (Although this isn't checked.) assert ( ( (ET_MENU != type) || displayFunc ) && "ET_MENU must have a display function (OptionMenu->displaySub()) set!"); // If this is ET_VALUE and no action function is set, the same // limitations as with the ET_VALUE ctor are present. if (ET_VALUE == type) { if (maxVal < minVal) { opt_T tmp = minVal; minVal = maxVal; maxVal = tmp; } // If this is a text rotator, entryNum must be set to *target: entryNum = static_cast(*target); // Either format, texts or display must be set assert( (format || texts || displayFunc || (TC_NONE == class_)) && "Either format, texts or display must be set with ET_VALUE"); } } /** @brief special ctor to define a button. * * Here the handling can be done by an action function, otherwise a key * code associated with the button is returned on activation. * * Buttons have no target, so set a dummy type when calling the ctor. * * @param[in] keyCode_ The key code to return when no action function is set. * @param[in,out] target_ Pointer to the value to handle. * @param[in,out] action_ Pointer to the action function handling the button click. * @param[in] title_ The title of the option to display. * @param[in] titleIdx_ Index value of the submitted title. -1 means @a title_ is fixed. * @param[in] button_ Pointer to the button to use, it must be pre-created. * @param[in] top_ Top position of the display area. * @param[in] left_ Left position of the display area. * @param[in] width_ Width of the display area. * @param[in] height_ Height of the display area. * @param[in] padding_ Padding of the title and buttons to the display area. **/ OptionItem(int32_t keyCode_, tgt_T* target_, int32_t (*action_)(tgt_T* target, int32_t val), const char* title_, int32_t titleIdx_, BUTTON* button_, int32_t top_, int32_t left_, int32_t width_, int32_t height_, int32_t padding_) : OptionItemBase(ET_BUTTON, title_, titleIdx_, nullptr, BLACK, TC_NONE, nullptr, top_, left_, width_, height_, padding_, 0), actionFunc(action_), target(target_) { // Either action or keyCode must be set assert ( (actionFunc || keyCode_) && "Either action_ or keyCode_ must be set"); if (keyCode_) this->keyCode = keyCode_; if (button_) { this->button = button_; this->button->getLocation(this->left, this->top, this->width, this->height); } } /// @brief default dtor only setting nullptr values. No further action needed. ~OptionItem() { actionFunc = nullptr; displayFunc = nullptr; target = nullptr; } /* ---------------------- * --- Public methods --- * ---------------------- */ /** @brief activate the option handling * * This activates whatever the option is configured for. * * If an action function is set, it is simply called. The parameter is * then ignored. If this is an ET_VALUE and no action function is set, * the configured increment/decrement value is applied according to @a val. * If this is an ET_TEXT option, the appropriate ways to get the target * value are used. * * @param[in] val Used for ET_VALUE: <0 = decrement, >0 = increment. * @param[in] ignored (see OptionItemColour) * @param[in] ignored (see OptionItemColour) * @param[in] k The latest key press to use on an ET_TEXT. * @return normally 0, but ET_BUTTON and ET_MENU can return key_codes * assigned with exit buttons. **/ int32_t activate(int32_t val, int32_t, int32_t, int32_t k) { int32_t result = 0; if (actionFunc) { result = actionFunc(target, val); // Here it is important that the action function does the right // thing with the target if this is an ET_VALUE and val<>0 if ((ET_VALUE == type) && val && texts) entryNum = static_cast(*target); } else { // Here a target must be set as there is no action function. if ((ET_BUTTON != type) && !target && !actionFunc) { cerr << "\n" << __FUNCTION__ << ": Illegal setup!" << endl; cerr << "A target value MUST be set with ET_"; cerr << ( ET_COLOR == type ? "COLOR" : ET_TEXT == type ? "TEXT" : ET_TOGGLE == type ? "TOGGLE" : ET_VALUE == type ? "VALUE" : "UNKNOWN") << endl; return false; } // Every type has its own base class activation function, // so a simple switch will do. switch(type) { case ET_BUTTON: // Can trigger end events result = this->keyCode; break; case ET_MENU: result = this->activateMenu(target); break; case ET_TEXT: if (!read_only) this->activateText(target, k); break; case ET_TOGGLE: this->activateToggle(target); break; case ET_VALUE: this->activateValue(val); break; case ET_COLOR: case ET_NONE: case ET_ACTION: default: cerr << "\n" << __FUNCTION__ << ": Illegal setup!" << endl; cerr << " No action function set when it is needed!" << endl; return false; } // End of switch(type) } // End of having no action function // Changes are displayed at once: // (unless this is ET_COLOR, it has been drawn already.) if (ET_COLOR != this->type) { this->clear_display(true); this->display(true); } return result; } /// @brief return true if the target has not reached its minimum, yet virtual bool canGoDown() { if ( (ET_VALUE == this->type) && this->format) // Check format, because texts[] based options are rotated. return (*target > static_cast(minVal) ? true : false); return true; } /// @brief return true if the target has not reached its maximum, yet virtual bool canGoUp() { if ( (ET_VALUE == this->type) && this->format) return (*target < static_cast(maxVal) ? true : false); return true; } /** @brief display the option content * * This method either calls the set display function or its own one.\n * ET_ACTION and ET_MENU must have set a display function. * * If @a show_full is set to true, the option title and possible * button(s) are displayed, too. This is useful to initially display a * menu or when switching languages. * * However, if the option is either ET_MENU or ET_ACTION, @a show_full * is ignored. * * @param[in] show_full If set to true, title and buttons are redrawn. **/ void display(bool show_full) { if (displayFunc) { clear_display(false); displayFunc(target, left, top); drawn = true; } else { // Every type has its own base class display function, // so a simple switch will do. switch(type) { case ET_BUTTON: this->displayButton(); break; case ET_MENU: this->displayMenu(target); break; case ET_TEXT: this->displayText(target); break; case ET_TOGGLE: this->displayToggle(target); break; case ET_VALUE: this->displayValue(target); break; case ET_NONE: case ET_ACTION: case ET_COLOR: default: cerr << "\n" << __FUNCTION__ << ": Illegal setup!" << endl; cerr << " No display function set when it is needed!" << endl; return; } // End of switch(type) } // end of having no display function // Show decorations if wanted: (ET_COLOR does that in displayColor()) if (show_full && (ET_COLOR != type)) this->displayDeco(); } /// @brief return true if this is an ET_BUTTON with a key code and no action function. bool isExitButton() { return ((ET_BUTTON == type) && (nullptr == actionFunc) && (-1 < keyCode)); } /// @brief Quickly change (or set) the action function void setAction(int32_t (*action_)(tgt_T* target, int32_t val)) { actionFunc = action_; } private: /* ---------------------------------------------- * --- Private methods and external functions --- * ---------------------------------------------- */ int32_t (*actionFunc )(tgt_T* target, int32_t val) = nullptr; bool (*displayFunc)(tgt_T* target, int32_t x, int32_t y) = nullptr; /// @brief templated ET_VALUE activation handling void activateValue(int32_t val) { // A few short-cuts that make reading the following a lot easier: tgt_T t_val = static_cast(val * decinc); tgt_T t_max = static_cast(maxVal); tgt_T t_min = static_cast(minVal); if (format) { // If a format is set, this is just a simple adding/substracting // of decinc with a check against min/max value afterwards // val == 0 is simply ignored. tgt_T oldTgt = *target; if (val > 0) { if (*target <= (t_max - t_val) ) *target += t_val; else *target = t_max; } else if (val < 0) { if (*target >= (t_min - t_val) ) *target += t_val; else *target = t_min; } // If a maximum or minimum is reached, clear the decoration if ( (oldTgt != *target) && ( (*target == t_min) || (*target == t_max) ) ) { clear_display(true); display(true); } } else if (texts) { // Otherwise entryNum is used and checked against texts[] if (val > 0) { if( texts[entryNum + 1] && (*target < t_max ) ) ++entryNum; else entryNum = 0; } else if (val < 0) { if( entryNum > 0 && (*target > static_cast(0) ) ) --entryNum; else entryNum = t_max; } *target = static_cast(entryNum); } } /* ----------------------- * --- Private members --- * ----------------------- */ opt_T decinc = (opt_T)1; //!< Increment / decrement for ET_VALUE opt_T maxVal = (opt_T)0; //!< Maximum value for ET_VALUE opt_T minVal = (opt_T)0; //!< Minimum value for ET_VALUE tgt_T* target = nullptr; //!< Target to handle }; #endif // ATANKS_SRC_OPTIONITEM_H_INCLUDED atanks-6.6/src/sound.cpp0000644000175000017500000001211112636021030013376 0ustar apoapo#include "sound.h" // max volume factor: means that the interval 0% -> 100% is split in 5 int32_t MAX_VOLUME_FACTOR = 5; // General helper that unifies the playing static void play_sound (eSounds sound, int32_t x, int32_t vol, int32_t freq); /** @brief play a weapon or item fire sample according to @a type, panned using @a x. * * This just plays what weapon[]/item[] globals hold for a sound. * * @param[in] type The weapon or item type. * @param[in] x The x-coordinate where the sound is played. * @param[in] vol The volume (0 - 255) * @param[in] freq Frequency, 1000 is normal, 500 is half, 2000 is double and so on. **/ void play_fire_sound(int32_t type, int32_t x, int32_t vol, int32_t freq) { int32_t sndNum = -1; if (type >= WEAPONS) { if (item[type - WEAPONS].sound > -1) sndNum = item[type - WEAPONS].sound; } else { if (weapon[type].sound > -1) sndNum = weapon[type].sound; } if ( (sndNum > -1) && (sndNum < SND_COUNT) ) play_sound(static_cast(sndNum), x, vol, freq); } /** @brief play a weapon or item explosion sample according to @a type, panned using @a x. * * This plays the sound listed in weapon[]/item[] globals unless special rules * apply. * * @param[in] type The weapon or item type. * @param[in] x The x-coordinate where the sound is played. * @param[in] vol The volume (0 - 255) * @param[in] freq Frequency, 1000 is normal, 500 is half, 2000 is double and so on. **/ void play_explosion_sound(int32_t type, int32_t x, int32_t vol, int32_t freq) { int32_t sndNum = -1; if (SHAPED_CHARGE == type) sndNum = SND_EXPL_SHAPED_CHARGE; else if (WIDE_BOY == type) sndNum = SND_EXPL_WIDE_BOY; else if (CUTTER == type) sndNum = SND_EXPL_CUTTER; else if ( (SML_NAPALM <= type) && (LRG_NAPALM >= type)) { sndNum = SND_EXPL_NAPALM; freq += 333 * (LRG_NAPALM - type); } else if (NAPALM_JELLY == type) { sndNum = SND_EXPL_NAPALM_BURN; freq += (rand() % 200) - 100; vol -= rand() % 64; } else if (PERCENT_BOMB == type) sndNum = SND_EXPL_PER_CENT_BOMB; else if (REDUCER == type) sndNum = SND_EXPL_REDUCER; else if ( ((DIRT_BALL <= type) && (SMALL_DIRT_SPREAD >= type)) || ((RIOT_CHARGE <= type) && (RIOT_BLAST >= type)) ) sndNum = SND_EXPL_DIRT_BALL_BOMB; else { // Default handling if (type >= WEAPONS) sndNum = item[type - WEAPONS].sound + SND_EXPL_MISS_SML; else sndNum = weapon[type].sound + SND_EXPL_MISS_SML; } if ( (sndNum > -1) && (sndNum < SND_COUNT) ) play_sound(static_cast(sndNum), x, vol, freq); } /** @brief plays the currently set background music modified by set volume factor **/ void play_music() { if (env.loadBackgroundMusic()) play_sound(SND_BG_MUSIC, 128, 255, 1000); } /** @brief play a natural sample according to @a type, panned using @a x. * * @param[in] type The natural type. * @param[in] x The x-coordinate where the sound is played. * @param[in] vol The volume (0 - 255) * @param[in] freq Frequency, 1000 is normal, 500 is half, 2000 is double and so on. **/ void play_natural_sound(int32_t type, int32_t x, int32_t vol, int32_t freq) { int32_t sndNum = -1; if (SML_METEOR == type) { sndNum = naturals[SML_METEOR - WEAPONS].sound; vol -= rand() % 128; freq += 100 + (rand() % 100); } else if (MED_METEOR == type) { sndNum = naturals[MED_METEOR - WEAPONS].sound; vol -= rand() % 64; freq += rand() % 100; } else if (LRG_METEOR == type) { sndNum = naturals[LRG_METEOR - WEAPONS].sound; vol -= rand() % 64; freq += rand() % 250; } else if (SML_LIGHTNING == type) { sndNum = naturals[SML_LIGHTNING - WEAPONS].sound; vol -= rand() % 128; freq += 100 + (rand() % 100); } else if (MED_LIGHTNING == type) { sndNum = naturals[MED_LIGHTNING - WEAPONS].sound; vol -= rand() % 64; freq += rand() % 100; } else if (LRG_LIGHTNING == type) { sndNum = naturals[LRG_LIGHTNING - WEAPONS].sound; vol -= rand() % 64; freq += rand() % 250; } else if (DIRT_FRAGMENT == type) { sndNum = SND_NATU_DIRT_FALL; vol -= rand() % 64; // freq is manipulated by the call } if ( (sndNum > -1) && (sndNum < SND_COUNT) && ( (SND_NATU_DIRT_FALL != sndNum) || (global.used_voices < (env.voices - 8))) ) play_sound(static_cast(sndNum), x, vol, freq); } /** @brief play an interface sample according to @a sound. * * @param[in] sound The sound to play. **/ void play_interface_sound(eSounds sound) { if (SND_INTE_BUTTON_CLICK == sound) play_sound(sound, env.halfWidth, 128, 1000); } // Global helpers implementation static void play_sound(eSounds sound, int32_t x, int32_t vol, int32_t freq) { if (global.used_voices < env.voices) { int32_t xVol = (vol * env.volume_factor) / MAX_VOLUME_FACTOR; if ( (sound < SND_BG_MUSIC) && env.sounds[sound] && (vol > 0) && (freq > 0) ) { play_sample(env.sounds[sound], xVol, x <= 0 ? 31 : x >= env.screenWidth ? 192 : 31 + (x * 191 / env.screenWidth), freq, false); } else if (SND_BG_MUSIC == sound) play_sample(env.background_music, xVol, x, freq, true); ++global.used_voices; } } atanks-6.6/src/optionitemplayer.cpp0000644000175000017500000001625012636021030015662 0ustar apoapo#include "optionitemplayer.h" #include "player.h" #include "floattext.h" /** @brief Default constructor. * * The target is the player instance to handle. And the @a action_ function * must do this if set. * * The target is a pointer pointer, so the class can be used for both * editing and creating a player. * * If @a title_ is nullptr, the player name and color are used. The set * title and BLACK otherwise. * * This class can be both, an ET_MENU (If an @a action_ function is set) * or an ET_TOGGLE otherwise. * * @param[in,out] player_ Pointer to the PLAYER instance to handle. * @param[in,out] action_ Pointer to the action function handling the button click. * @param[in] title_ The title of the option to display. * @param[in] titleIdx_ Index value of the submitted title. -1 means @a title_ is fixed. * @param[in] top_ Top position of the display area. * @param[in] left_ Left position of the display area. * @param[in] width_ Width of the display area. * @param[in] height_ Height of the display area. * @param[in] padding_ Padding of the title and buttons to the display area. **/ OptionItemPlayer::OptionItemPlayer( PLAYER** player_, int32_t (*action_)(PLAYER** player_, int32_t), const char* title_, int32_t titleIdx_, int32_t top_, int32_t left_, int32_t width_, int32_t height_, int32_t padding_) : OptionItemBase(ET_NONE, title_ ? title_ : (player_ && *player_) ? (*player_)->getName() : nullptr, titleIdx_, nullptr, title_ ? SILVER : (player_ && *player_) ? (*player_)->color : WHITE, // WHITE to indicate an error. TC_NONE, nullptr, top_, left_, width_, height_, padding_, 0) { // For ET_TOGGLE, only the player_ is needed assert (player_ && "ERROR: player_ must be set"); // For ET_MENU, action_ must be set, too, and for ET_TOGGLE *player_ must be set. assert ( (action_ || (player_ && *player_ ) ) && "ERROR: If no action_ function is set, *player_ must be valid"); actionFunc = action_; player = player_; if (actionFunc) { this->type = ET_MENU; // If this is a regular player, no menu indicator is needed. if (nullptr == title_) this->show_menu = false; } else if (player && *player) this->type = ET_TOGGLE; } /// @brief default dtor only setting nullptr values. No further action needed. OptionItemPlayer::~OptionItemPlayer() { actionFunc = nullptr; player = nullptr; } /* ---------------------- * --- Public methods --- * ---------------------- */ /** @brief activate the player sub menu * * This calls the provided action function. * * Note: The parameters are defined by OptionItemBase but unused * here. * * @return The return code of the action function. **/ int32_t OptionItemPlayer::activate(int32_t, int32_t, int32_t, int32_t) { int32_t result = -1; if (ET_MENU == this->type) result = actionFunc(player, 0); else if (ET_TOGGLE == this->type) this->activateToggle(&(*player)->selected); // Changes are displayed at once: if (ET_NONE != this->type) this->clear_display(true); return result; } /// @brief returns always true bool OptionItemPlayer::canGoDown() { return true; } /// @brief returns always true bool OptionItemPlayer::canGoUp() { return true; } /** @brief display the sub menu title * * @param[in] show_full If set to true, title and buttons are redrawn. **/ void OptionItemPlayer::display(bool show_full) { static const int32_t team_col_hi = 0xc0; static const int32_t team_col_mi = 0x40; static const int32_t team_col_lo = 0x18; static const char* team_Indicator[4] = { "S", "N", "J", "?" }; static const int32_t team_color_bg[4] = { makecol(team_col_mi, team_col_lo, team_col_lo), makecol(team_col_lo, team_col_mi, team_col_lo), makecol(team_col_lo, team_col_lo, team_col_mi), makecol(team_col_mi, team_col_mi, team_col_mi) }; static const int32_t team_color_fg[4] = { makecol(team_col_hi, team_col_mi, team_col_mi), makecol(team_col_mi, team_col_hi, team_col_mi), makecol(team_col_mi, team_col_mi, team_col_hi), makecol(team_col_hi, team_col_hi, team_col_hi) }; if (!drawn) { // Be sure to have the current name and color: color = player && *player ? (*player)->color : color; if ( player && *player && (!title || (strcmp((*player)->getName(), title))) ) setTitle((*player)->getName()); // Now display the player int32_t tWidth = -1 == titleIdx ? text_length(font, "W") + padding + 4 : 0; int32_t xOff = -1 == titleIdx ? 15 + padding + tWidth : 0; int32_t txtLeft = left + xOff; int32_t txtColor = color; int32_t xTop = top + 1; int32_t xHeight = height - 2; // If this is a toggle, it must be displayed first: if (ET_TOGGLE == this->type) { int32_t bgColor = BLACK; int32_t shColor = makecol(getr(color) / 3, getg(color) / 3, getb(color) / 3); // Swap colors if the player is selected if ((*player)->selected) { bgColor = color; txtColor = BLACK; } // Add a button like area for the name rect( global.canvas, txtLeft, top, left + width, top + height, txtColor); rect( global.canvas, txtLeft + 1, top + 1, left + width - 1, top + height - 1, txtColor); hline( global.canvas, txtLeft + 1, top + height - 1, left + width - 1, shColor); hline( global.canvas, txtLeft, top + height, left + width, shColor); vline( global.canvas, left + width - 1, top + 1, top + height - 1, shColor); vline( global.canvas, left + width, top, top + height, shColor); rectfill(global.canvas, txtLeft + 2, top + 2, left + width - 2, top + height - 2, bgColor); // Additional text offset for the border txtLeft += 3; xHeight -= 2; } // Then display the player name eTeamTypes pTeam = player && *player ? (*player)->team : TEAM_COUNT; if (title && title[0]) { // Is the text shadowed, then create one: if (env.shadowedText) textout_ex (global.canvas, font, title, txtLeft + 2, xTop + 2, GetShadeColor(txtColor, true, PINK), -1); textout_ex (global.canvas, font, title, txtLeft + 1, xTop + 1, txtColor, -1); } // Second the player type indicator: if (-1 == titleIdx ) { (*player)->drawIndicator(left, xTop, xHeight); // and third the team indicator: int32_t xLeft = left + 19; rectfill(global.canvas, xLeft + 1, xTop + 3, xLeft + 12, xTop + xHeight - 2, team_color_bg[pTeam]); rect(global.canvas, xLeft, xTop + 2, xLeft + 13, xTop + xHeight - 1, team_color_fg[pTeam]); xLeft += 7; textout_centre_ex(global.canvas, font, team_Indicator[pTeam], xLeft - (TEAM_SITH == pTeam ? 1 : 0), xTop + 1, team_color_fg[pTeam], -1); } // end of player indicator global.make_update (left, top, width, height); drawn = true; } // Show decorations if wanted: if (show_full) this->displayDeco(); } /// @brief return true, the action function must be able to return an exit code. bool OptionItemPlayer::isExitButton() { return true; } atanks-6.6/src/aicore.h0000644000175000017500000016337013006377360013207 0ustar apoapo#pragma once #ifndef ATANKS_SRC_AICORE_H_INCLUDED #define ATANKS_SRC_AICORE_H_INCLUDED /* * atanks - obliterate each other with oversize weapons * Copyright (C) 2003 Thomas Hudson * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ /** @file aicore.h * @brief Home of the AICore class * * This class substituted the old AI code in the PLAYER class. * * While the old AI worked pretty well in most situations, it did * lag the game on more intense calculations. * Further there were some situations (like peaks in the way and * such things) that the old AI could not handle. * It could have been fixed, but would have lagged the game even more. * * By outsourcing the AI to its own class and providing an * operator()(), the AI calculations could be put in a background * thread. This resulted in a much smoother gaming experience. * * Further the AI is now easier to debug, to maintain and to extend * than it was possible with the old AI code. **/ #include "player_types.h" #include "globaltypes.h" #include "floattext.h" #include // A few often needed randomization shortcuts #define RAND_AI_0P (rand() % ai_level) #define RAND_AI_0N (0 == (rand() % ai_level)) #define RAND_AI_1P (rand() % (ai_level + 1)) #define RAND_AI_1N (0 == (rand() % (ai_level + 1))) // Init and check for round scores #define NEUTRAL_ROUND_SCORE -1000000 #ifndef HAS_PLAYER class PLAYER; struct sOpponent; #endif // HAS_PLAYER class TANK; // These are restricted to aicore.cpp, as // they are of no use anywhere else. - sed struct sItemListEntry; struct sOppMemEntry; struct sWeapListEntry; /** @class AICore * @brief Core AI, written to be used as a background thread. * * The AI operator() is the main function that does all the work. * * If you need to edit something in that work flow, please try to * keep the documentation up-to-date. * * The following is the work flow in AICore::operator(). * * * Initialization in initialize(): * -------------------------------- * ai_level : (player->type) This is meant as a short cut being a widely usable int32_t. * ai_level_d : (ai_level) ai_level cast to double. * ai_over_mod : (from level) Multiplier [1.1;1.5] according to ai_level_d, used to evaluate overkills and similar. * ai_type_mod : (from level) Multiplier [1.0;3.0] according to ai_level_d, used on important decisions to * strengthen higher bot levels. * blast_* : (0) Damage values of the available normal missiles. * canMove : (true) As long as it is true, allows the AI to consider using fuel/rockets. * isMovedBy : (0) Set from the outside via hasMoved() to indicate the result of movement attempts. * isShocked : (false) Whether the bot is shocked by anothers massive damage they dealt. * revengee : (nullptr) sOpponent pointer set to a bot this one wants revenge against. * shocker : (nullptr) sOpponent pointer set to the bot that caused isShocked to become true. * needSuccess : (true) This is set to true and later set to false if a full targetting round resulted in a * primary target hit, or the full score is greater than zero. * needAim : (true) Causes aim() to be called. Set to false if the bot needs to free themselves. * isBlocked : (false) Set to true if an obstacle is detected or the bot is buried. * hill_detected : (false) Set to true if the progress in aiming suggest, that a hill is in the firing path. * needMoney : (check done) Set to true if getMoneyToSave() returns more money than the player has. * tank : (player->tank) Short cut. * angle : (tank->a) Written back current angle set on the tank. * power : (tank->p) Written back current power set on the tank. * weap_idx : (tank->cw) Written back currently chosen weapon. * x : (tank->x) Written back current x position of the tank. * y : (tank->y) Written back current y position of the tank. * currLife : (tank->l + sh) Both live and remaining shield strength. * buried : (check done) Number of true angles where the turret is directly covered by dirt. * buried_l : (check done) Same as buried, but left side only * buried_r : (check done) Same as buried, but right side only * maxLife : (check done) The current maxLife value of the tank for this game round. * * Information from last round: * last_opp : (from player) sOpponent pointer set to the opponent that was attacked last. * last_ang : (180 / angle) If a last_opp is set, store current tank angle, initialize with 180 otherwise. * last_pow : (1000 / power) If a last_opp is set, store current tank power, initialize with 1000 otherwise. * last_weap : (0 / weapon) If a last_opp is set, store current tank weapon, initialize with 0 (Small Missile) * otherwise. * If a last weapon/item is set, it is selected for the current first evaluation, too. * This is done so the first weapon/item selection will chose something different than * was tried in the last round. * * Information for the current targetting round: * curr_angle : (angle) The angle for the current aiming round. * curr_power : (power) The power for the current aiming round. * best_round_score: (NEUTRAL_ROUND_SCORE) Best score achieved for the current opponent. * * Best achieved values over the full targetting cycle: * best_setup_angle : (angle) * best_setup_damage : (0) * best_setup_item : (nullptr) * best_setup_mem : (nullptr) * best_setup_overshoot : (MAX_OVERSHOOT) * best_setup_power : (power) * best_setup_score : (NEUTRAL_ROUND_SCORE) * best_setup_weap : (nullptr) * * Eventually a check is made to decide whether the bot gets lucky. This temporarily raises its AI level. * * * Initialization in checkOppMem(): * -------------------------------- * Every opponent entry is evaluated, and a (possible) current shocker and/or revengee are determined. * The revengee is written back to the player if it is a new one. * The opponent memory list is then sorted by score in descending order. * * * Re-Check shocked state: * -------------------------------- * At this point it is checked again whether the bot is really in terror. Although difficult, * it is possible for a bot to overcome their shock here. This is done so the bots won't be * shocked almost constantly from round 2 on. * * * Initialization in operator(): * -------------------------------- * findTgtAttempts : Targetting attempts. Number of full cycles of finding an attack setup. * Counted using tgt_attempts in the operator() loop. * findOppAttempts : Opponent attempts. How many opponents are tried per targetting attempt. * Counted using opp_attempts in the operator() loop. * findWeapAttempts: Weapon attempts. How many weapons / items are tried per opponent attempt. * Counted using weap_attempts in the operator() loop. * findRngAttempts : Range find attempts. How many corrections to the aiming are done per weapon attempt. * Counted using rng_attempts in aim() loop. * focusRate : This is a modifier that lessens some corrections the lower the ai level is. * errorMultiplier : This is a modifier that lessens some errors the higher the ai level is. * maxBounce : The higher the AI level the more bounces/wraps from walls it can follow before * assuming the shot has crashed. * * The results should be [if shocked]: * findTgtAttempts : Useless: 2 [1], Deadly + 1: 7 [1] * findOppAttempts : Useless 3 [2], Deadly + 1: 8 [4] * findWeapAttempts: Useless: 2 [1], Deadly + 1: 12 [2] * findRngAttempts : Useless: 10 [2], Deadly + 1: 60 [7] * focusRate : Useless: 0.166, Deadly + 1: 1.0 * errorMultiplier : Useless: 1.2 [3], Deadly + 1: 0.02 [0.14] * maxBounce : Useless: 3, Deadly + 1: 20 * * As the full number of aimings can be up to Tgt*Opp*Weap*Rng attempts, the current targetting attempt * is finished once a new best attack plan is found. * * The full cycle of target selection, weapon/item selection, setting up the basic combat values and * targeting the selected weapon might need a few attempts. * The higher the AI level, the more attempts the bot gets. If the maximum number of attempts is * reached, all used methods are forced to come up with a minimum result. * * Local counters for the operator() loop: * --------------------------------------- * tgt_attempts : (0) The number of attempts to set up a succesful attack the AI already had. * opp_attempts : (0) The number of attempts to find a suitable opponent the AI already had. * weap_attempts : (0) The number of attempts to find a suitable weapons or item the AI already had. * done : (false) Control variable set by each section method on success (true) or failure (false). * * Cycle in operator(): * -------------------------------- * * The loop is working until the AI can no longer work, aiming is needed or the AI is not blocked, and * tgt_attempts is lower than findTgtAttempts. * * 1 Cycle target and item selection if both opp_attempts and weap_attempts are both zero. * Those are combined, because selecting a different target later might make the current item selection less * effective or even useless. Thus the item is chosen individually. * tgt_attempts : (+1) The new target and item selections marks the beginning of a new targetting attempt. * mem_curr : (nullptr) The currently selected opponent. * * 2 done = setupAttack(bool is_last, int32_t &opp_attempt, int32_t &weap_attempt) * * Param 1 : is_last : is set to true if tgt_attempts equals findTgtAttempts. * Param 2 : opp_attempt : Reference to opp_attempts to have the actual opponent selection counted. * Param 3 : weap_attempt: Reference to weap_attempts to have the actual weapon/item selection counted. * * Here, the basic setup is done by selecting an opponent and a suitable item * or weapon to use against them. * * 2.1 If either weap_attempt is 0 or mem_curr is nullptr, a new opponent selection round is started. * mem_curr can be nullptr if the previous try to find an opponent failed. * plStage : (PS_SELECT_TARGET) * opp_attempt : (+1) Raised by one when calling selectTarget() below. * * 2.1.1 selectDone = selectTarget(bool is_last) * Param 1 : is_last : This is set to true if the raised opp_attempt equals findOppAttempts and is_last * was already set to true in setupAttack() and needSuccess is true. * 2.1.1.1 If the bot is shocked, their shocker is preselected and true is returned. * 2.1.1.2 If the bot has a grudge against someone, the revengee is preselected and true is returned, but only * if either no opponent was selected yet, or the last opponent was someone else. * However, if is_last is true, the revengee is selected even if it is two times in a row this way. * 2.1.1.3 If nothing was preselected, the ordered list of opponents is simply walked down. However, if is_last * is true, the first entry is always selected, because they are primarily wanted anyway. * * 2.1.2 If an opponent is selected and it is not the same as the last time one was selected, then the * following initializations are done: * item_curr : (nullptr) The currently selected item or nullptr if weap_curr is used. * item_last : (nullptr) The item selected in the last item selection or nullptr if none was selected. * weap_curr : (nullptr) The currently selected weapon or nullptr if item_curr is used. * weap_last : (nullptr) The weapon selected in the last weapon selection or nullptr if none was * selected. item_* and weap_* are used for weap_attempts, which are done * findWeapAttempts times for each opp_attempts cycle. * best_round_score : (NEUTRAL_ROUND_SCORE) A new target is always a complete new targetting round. * * To make this clear: * - For each targeting attempt (tgt_attempts count to findTgtAttempts) up to findOppAttempts attempts are * granted to find a suitable opponent. * - For each opponent selection attempt (opp_attempts count to findOppAttempts) up to findWeapAttempts * attempts are granted to select a suitable item or weapon. * - For each weapon/item selection (weap_attempts count to findWeapAttempts) up to findRngAttempts attempts * are granted to the AI to actually aim the selected weapon/item on the selected opponent. * * 2.2 Otherwise, if both weap_attempt is greater than 0 and mem_curr is not nullptr, the current target is kept * and it is recorded that no new target was selected. * * 2.3 If the target selection was successful, the next item to use or weapon to fire can be selected. * plStage : (PS_SELECT_WEAPON) * weap_attempt : (+1) Raised by one when calling selectItem() below. * * 2.3.1 If the current target is new, the score lists for items and weapons are regenerated. * 2.3.2 At this point selectDone is set to false. * 2.3.3 While selectDone is false, and the AI can work, and weap_attempt is lower than findWeapAttempts, * selectDone gets the return value of selectItem(bool is_last). * Param 1 : is_last : This is set to true if the raised weap_attempt equals findWeapAttempts and is_last * was already set to true in setupAttack() and needSuccess is true. * * 2.3.3.1 store item_curr in item_last and weap_curr in weap_last. This is needed for the regular walking * down the ordered lists of weapons and items. * 2.3.3.2 If the bot is shocked, or if it already has a best setup where the primary target was hit, a random * weapon is chosen. This is done to give bots a wider range of opportunities to find an even better * setup with weapons they would normally not chose in their current situation. * And, on the other hand, a shocked bot does not really think but selects something random in panic. * Reducers, Dirt weapons and weapons they do not have in stock are skipped. * 2.3.3.3 Otherwise advance in the list of weapons. If no weapon was found (list exhausted), the first entry * is preselected. * 2.3.3.4 A shocked bot now ensures no item is selected, and if no weapon was available, the first one is * chosen. Here the method ends and returns true. * 2.3.3.5 Not shocked bots now rotate through their list of available items. If no items are left to try, * item_curr is set to nullptr to indicate that no item selection is possible. * 2.3.3.6 Unless the opponent has more than ten times the live points (including shields) than the bot, * kamikaze selections are undone. * 2.3.3.7 Unless the bot is buried or blocked, teleporter item and riot weapon selections are undone. * 2.3.3.8 If both a weapon and an item was found, unselect the one with the lower score. * 2.3.3.9 If neither weapon nor item was selected, but is_last is true, the small missile is selected. * * Eventually return true if either weapon or item is selected and false if both are nullptr. * * 2.3.4 If all weapon selection attempts were used, but there are opponent selections left, weap_attempt is * reset to zero so another opponent can be selected. * * 2.4 If all weapon selection attempts for all opponent selection attempts were used up, breakUp is set to true * to indicate that all that could be done was tried. * 2.5 If everything failed and this is the very last setup attempt, an emergency plan kicks in: * a) Try to teleport away. * b) If the bot has no teleporter in stock and the currently selected opponent is not buried, try to select * a swapper. * c) If no swapper was available or the currently selected opponent is buried, try the mass teleport. * d) If the bot has no mass teleport, select small missile. * 2.6 If an item or weapon is chosen that shall be used to self destruct, check again whether this is really * wanted. If so, set mem_curr to the own entry, otherwise the selection either failed, or, if this is the * very last attempt and there was no successful setup, yet, revert to small missile. * 2.7 If breakUp was set to true and this is not the last attempt, opp_attempt and weap_attempt are both reset * to zero to trigger a new full targetting cylcle. * * 3 done = calcAttack(int32_t attempt) - called if setupAttack() returned true. * * Param 1 : Value of tgt_attempts * * Here the basic attack values are calculated, trying to find an angle and a power value to begin with. These are * then checked and adapted according to the chosen item or weapon, the selected target, the situation of the bots * tank and whether the current level has a ceiling ("boxed mode") or not. * * bool is_last : (checked) Set to true if attempt equals findTgtAttempts and no successful setup was * found, yet. * plStage : (PS_CALCULATE) AI enters the calculation stage. * isBlocked : (false) Will be set to true if the aiming finds out that a hill blocks the path. * hasFlipped : (false) Set to true by calcStandard() if flipped towards a wall. * needAim : (false) Will be set to true if a weapon is chosen that needs aiming. * curr_overshoot : (MAX_OVERSHOOT) The overshoot for the current aiming round. * offset_x : (0) Some weapons need a horizontal offset to aim at, like the napalm weapons. * offset_y : (0) Some weapons need a vertical offset to aim at, like the driller. * * 3.1 If an item is chosen, the currently set angle and power are written into curr_angle and curr_power. There * is no need for further investigation and aiming, so the method then returns true. * 3.2 If the currently set opponent equals last_opp, and the currently set weapon is the same as what was used * against the last opponent, copy back the angle and power used in the last round and be done. * It is then tried to optimized the last attack. * This is only done if the same weapon is used, as other weapons might need different approaches. * 3.3 If a laser is chosen and the tank is not buried enough to be evaluated as buried or blocked, return the * result of calcLaser(is_last is_last). * * Param 1 : True if is_last in calcAttack() is true and needSuccess is true. * * Set the angle to point directly at the selected opponent and see whether the opponent can be hit or not. * * int32_t old_angle : (curr_angle) Backup the currently used angle to write it back if the aiming fails. * int32_t old_power : (curr_power) Backup the currently used power to write it back if the aiming fails. * double drift : (calculated) Variation of the angle to simulate that an exact aiming needs skill. * * 3.3.1 Set curr_power to the current tanks power, so no power change is necessary if this becomes the * attack that is performed. * 3.3.2 Set curr_angle to an angle pointing directly at the selected target and add the value of 'drift'. * 3.3.3 Follow the beam using a mind shot and calculate a hit score. * 3.3.4 Use tank->shootClearance() to see whether the shot is blocked or crashes. * If the shot does not reach the target, and is_last is true, the hit_score (might have hit someone else) * is reduced. If this is not the very last attempt, curr_angle and curr_power are written back, needAim is * set to true and false is returned. * * 3.4 If the tank is buried, return the result of calcUnbury(bool is_last). * * Param 1 : The value of is_last is simply transported. * * Make sure that whatever is chosen is appropriate and points into the right direction. * * 3.4.1 If either a riot bomb is chosen, or a non-shaped weapon is selected while a self destruct attempt is * planned (*), the number of enemies on each side is counted to chose where to fire at. * After setting curr_angle and curr_power to appropriate values, they get sanitized, and angle is set to * curr_angle, power is set to curr_power, needAim is set to false as no further aiming is needed, and * isBlocked is set to true as this is the situation. * After that true is returned. * 3.4.2 If a weapon is chosen and no self destruction is wanted, the shaped weapons are the only appropriate * weapons to free the trank without damaging itself. The current angle is set to 180°, the current power * is set to 10 plus some random variation according to the AI level. The current values then get * sanitized, and angle is set to curr_angle, power is set to curr_power, needAim is set to false as no * further aiming is needed, and isBlocked is set to true as this is the situation. * After that true is returned. * 3.4.3 If this all fails but is_last is set to true, useFreeingTool() is called for an emergency selection. * As a last resort, the small missile is selected if useFreeingTool() did not succeed. The current angle * is set to a value between 100° and 160° degrees to either the left or right side, according to which * side is heavier buried. The current power is set to a value between 500 and 1,000. The current values * then get sanitized, and angle is set to curr_angle, power is set to curr_power, needAim is set to false * as no further aiming is needed, and isBlocked is set to true as this is the situation. * After that true is returned. * 3.4.4 If everything failed, false is returned. * * 3.5 If the currently selected target is the bot itself, this is a self destruct attempt. Return the result of * calcKamikaze(bool is_last), then. * * Param 1 : The value of is_last is simply transported. * * As, at this point, a weapon is chosen, it must be checked whether it can be used and determined where to * fire it. * * 3.5.1 If a horizontal shaped weapon is selected, a free flat spot of the same height as where the tanks stands * on either the left or right side must be found. * If such a spot can be found, curr_angle and curr_power are set to values trying to hit it. * 3.5.2 If a napalm weapon is chosen, curr_angle is set to 135° to the left or right side, whichever side has * head wind. curr_power is set to 100 plus an amount calculated using the current wind strength. * 3.5.3 Otherwise fire the weapon upwards with more power the higher the spread value. * 3.5.4 If this worked out, sanitize the current angle and power, write them into to angle and power, and return * true. * 3.5.5 If this didn't work out but this is the last attempt, go through all valid self destruct items and * weapons until one is available or the small missile is selected. This is then just fired upwards and * true is returned. * 3.5.6 In all other cases false is returned. * * 3.6 Otherwise this is normal aiming, and calcStandard(bool is_last, bool allow_flip_shot) is used to generated * the initial values to begin with. * * Param 1 : The value of is_last is simply transported. * Param 2 : true, if the pre-incremented mem_curr->attempts is an even number, false otherwise. * If set to true, the bot is allowed to shoot in the opposite direction. On steel walls, this * parameter is ignored. * * This method does no aiming but sets needed offsets and generates an angle and a power value to begin with. * * hasFlipped : This is set to true, if the bot decides to flip through a wrap wall or towards a bounce/rubber * wall. aim() then can check whether to flip back because the wall isn't even reached. * 3.6.1 calculate the offsets for the x and y coordinate needed by the chosen weapon. This is done with the * method calcOffset(bool is_last). * * Param 1 : The value of is_last is simply transported. * * This method calculate x and y offsets for weapons that need it. These offsets are stored in the AICore * members offset_x and offset_y, as they are needed in multiple places. * * If the needed offset is off the screen, or makes no sense, the method returns false. But if is_last is * set to true, insane offsets are tried to be fixed. The idea is, that the bot tries nevertheless out of * pure desperation. * * 3.6.1.1 Napalm weapons need a horizontal offset where the wind blows the jellies over the opponent for * greatest effect. * 3.6.1.2 Shaped charges and their bigger versions need a horizontal offset that leads to a hit at either side * of the opponent where the land height is equal enough to where the opponent stands, that the blast * actually hits. * 3.6.1.3 The driller must be placed above a buried tank, or under it if it is clinging to a steep hill side. * * 3.6.2 Calculate the starting angle, but limit it to: * - 20° to 35° if the opponent is below the bot, * - 40° to 55° if the opponent is at about the same height and * - 60° to 75° if the opponent is above the bot. * The angle is then modified according to the focusRate of the bot. * 3.6.3 If a wrap wall is in place, check whether shooting through it results in a shorter shot, and flip the * angle if it is. * 3.6.4 If allow_flip_shot is true and the wall is something else than a steel wall, bots may flip the shot with * a chance of 50% for a useless bot and 80% for a deadly bot. * 3.6.5 Raise the angle until there is enough shooting clearance or the ceiling is hit. * 3.6.6 If the angle becomes too steep, revert to the half way between the beginning angle and the currently * raised one. If this means an obstacle is in the way, the bot might decide to remove it first. * 3.6.7 Calculate starting power as a raw estimation using the simple distance. * 3.6.8 If the shot is already known to be blocked, write back the current angle and power to the used angle * and power and set needAim to false. * * 3.7 In boxed mode, the situation regarding the ceiling must be checked, but only if calcStandard() succeeded, * the tank is not blocked and a weapon is chosen that needs aiming. * This is done by calling calcBoxed(bool is_last). * * Param 1 : The value of is_last is simply transported. * * 3.7.1 If is_last is false, the bot might "forget" to check for ceiling hits. The chance is between 33% for the * useless bot and 7% for the deadly+1 bot. * 3.7.2 As long as the shot is regarded to be crashed, but the tracing was finished (not too many bounces/wraps) * and either angle or power can be modified, traceShot() is used to see where the shot would end with the * current angle and power. * * 3.7.2.1 If the shot ends in a steel wall or ceiling, or if the shot hits the floor bottom through a wrap * ceiling but is not a digging weapon, the shot is regarded to be crashed. * 3.7.2.2 If the shot crashed, either the current angle, power or both are modified by one step. The angle is * changed to flatten the shot and the power is reduced. * 3.7.2.3 If the angle reaches 90°/270°, it can no longer be modified. * 3.7.2.4 If the power reaches MIN_POWER, it can no longer be modified. * * 3.7.3 If the shot has not crashed and the tracing was finished but the shot did not reach its target, the path * is considered to be blocked. If is_last is true and the map has a steel or wrap wall and there was no * positive setup score already, the path is tried to be cleared. * * 3.7.3.1 Decide whether to free the tank or to remove an obstacle. * 3.7.3.2 Use calcUnbury() if the tank is to be freed. * 3.7.3.3 Flatten the current angle if an obstacle is to be removed. * 3.7.3.4 Set needAim to false and isBlocked to true. * 3.7.3.5 Directly return true. * * 3.7.4 If no emergency freeing is possible, is_last is false, or its the wrong wall type or a positive setup * has already been found, directly return false. * 3.7.5 In all other cases return true if the last shot did not crash or if is_last is true, and false * otherwise. * * 3.8 Eventually return the value of 'result'. * * 4 done = aim(bool is_last, bool can_move) - called if calcAttack() returned true, needAim is true and isBlocked is false. * * Param 1 : True if tgt_attempts equals findTgtAttempts and needSuccess is still true. * Param 2 : True if opp_attempts is at least halve of findOppAttempts. * * Here the aiming is done for the selected weapon against the selected target. * * plStage : (PS_AIM) The AI enters the aiming stage. * hill_detected : (false) Some situations indicate that a hill is between the tank and its target. * best_score : (NEUTRAL_ROUND_SCORE) Used to record the best setup for the current aiming round. * best_angle : (angle) Used to record the angle that achieved the best aiming round score. * best_power : (power) Used to record the power that achieved the best aiming round score. * best_prime_hit : (false) Used to record whether the best aiming round settings hit the primary * target. * best_overshoot : (MAX_OVERSHOO) Used to record the overshoot the best setup had. * last_ang_mod : (0) Note down the used angle modifications, so the next aiming attempt knows * the last modification to the angle. * last_pow_mod : (0) Note down the used power modifications, so the next aiming attempt knows * the last modification to the power. * last_overshoot : (MAX_OVERSHOOT) Note down the achieved overshoot, so the next aiming attempt knows * whether the shot gets nearer to the target or not. * last_reverted : (false) Set to true if an aiming attempt reverts the previous modifications. * last_score : (0) Note down the achieved score, so the next aiming attempt knows whether * the new hit is really better or not. * last_was_better: (false) Set to true if the previous score was better than the current one. * reached_x : (x) Used as a short cut and memory of where the current attempt hits. * reached_y : (y) Used as a short cut and memory of where the current attempt hits. * * The aiming is done as long as the number of aiming attempts have not reached findRngAttempts. * * 4.1 Generate an angle modifier in the interval [1;7], with 2 being the maximum for the useless and 7 the * maximum for the deadly+1 AI, and a power modifier in the interval [10;340] with 220 being the maximum for * useless and 340 being the maximum for deadly bots. * * 4.2 Use void traceWeapon(int32_t &has_crashed, int32_t &has_finished) * to see where the used weapon using curr_angle and curr_power will end. * * Param 1: has_crashed is set to the number of projectiles that crashed into a steel wall or ceiling. * If the level has a wrap wall ceiling and the projectile can not dig and thus would explode on * the very bottom of the screen due to dirt being in the way, it is considered to have crashed, * too. * Param 2: has_finished is set to the number of projectiles that have been traced to the end. The bots can * only trace maxBounce wall and ceiling bounces or wraps. If the number of actual bounces exceeds * this limit, the projectile is considered unfinished and the tracing stops. * * Basically this method uses traceShot() for each spread projectile of the weapon. Non-spread weapons have a * spread value of 1, so this can be done for every weapon. * Weapons with submunition are then traced further using traceCluster(), which will, like traceWeapon() does * on weapons without submunition, use calcHitDamage() to generate the damage values on each tank. * * The nearest hit to the primary target is recorded in curr_overshoot, reached_x and reached_y. * * 4.3 Use int32_t calcHitScore(bool is_last) to generate a score out of all damage dealt. * * Param 1: is_last is set to true if is_last in aim() is true and needSuccess is true. * * This method cycles through the opponents memory, and sums up the damage done with curr_weap to a total * score according to a) how much damage over the opponents health (aka overkill) has been done and b) on * which team they are compared to us. * * If the primary target was not hit, the score is ensured to be negative, as collateral damage is * discouraged. However, this is only done if is_last is false, as collateral damage with a total positive * score is better than nothing on the very last attempt. * * 4.4 If a new best_score is achieved, and either the primary target was hit, or hasn't been hit before, the * best_* values are set to the current ones: * * best_angle = curr_angle * best_overshoot = curr_overshoot * best_power = curr_power * best_prime_hit = curr_prime_hit * best_score = hit_score * * 4.5 Otherwise, if it does not seem to be possible to find a valid setup within half of the attempts the AI has, * try to move the tank a little according to the following rules: * * - If the target is very near (under two bitmap widths) then move away. * Otherwise: * - If the angle is steep (75° and up), assume the shot must go over a hill and move away from the target. * - If the angle is flat (15° and down), move towards the target, the way seems clear at least. * Otherwise: * - If the overshoot is negative (too short), move towards the target. * - If the overshoot is positive (too far), move away from the target. * * 4.6 Basically there are four different situations that need different actions. * If the shot, or some of the spread or cluster shots, did not finish, it must be tried to change the used * angle and power so the next attempt does finish. * With steel walls or a wrapped ceiling ceiling with dirt on the ground the shot can have crashed. This can * be fixed by getting away from 45° and reducing power. * The hit might be nearer than the last one. In this case the last modifications seem to have moved the angle * and power into the right direction, which is a path to follow further. * And finally the hit might be farther away. The last modifications might have been too strong or in the * wrong direction. * * 4.6.1 Try to fix unfinished shots using void fixUnfinished(int32_t &ang_mod, int32_t &pow_mod). * * Param 1 : Reference to the angle modifier to adapt. * Param 2 : Reference to the power modifier to adapt. * * If the angle is too steep, lower it, if it is too flat, raise it. The angle is, however, limited * according to where the opponent is. If it is above the own tank, the angle is limited around 60°. If * it is at an equal height in the range of +/- 100 pixels, the angle is limited around 40°. If it is * below, the angle is limited around 20°. * * But if hill_detected is true, the angle modification is limited to 1° per aiming round. * * The power is reduced if it is greater than twice the x distance to the opponen, and raised if it is less * then the x distance. If it is between the two, power is not changed. * * last_reverted : true if last_ang_mod is signed differently than the resulting ang_mod. * last_was_better : false * * 4.6.2 Try to fix crashed shots using void fixCrashed(int32_t &ang_mod, int32_t &pow_mod). * * Param 1 : Reference to the angle modifier to adapt. * Param 2 : Reference to the power modifier to adapt. * * Here the angle modifier is limited to 1° per aiming round if hill_detected is false. this is done, * because if not trying to get over hill the crashes normally occur if the shot is just a bit too strong. * * If the angle is above 60° in boxed mode, it is reduced by a random amount between [1;7]° according * to ai_level. In non-boxed mode it is reduced by 1° if it is between 10° and 45°. Otherwise the angle is * left alone. * * If the power is greater than the simple x distance, it is reduced as well, even more if it is 50% and * more greater than the x distance. * * Now if the hit_score is positive, halve it for every shot that crashed. The hit_score has of course * been written into best_score already if it was better, but the modified version will be used for * last_score later. * * last_reverted : true if last_ang_mod is signed differently than the resulting ang_mod. * last_was_better : false * * 4.6.3 If the shot did finish and did not crash and hit nearer to the target than the last, a few adaptations * might be needed. * * If the resulting hit_score is worse than last_score, it must be ensured, that ang_mod has the same sign * as the previous one. The direction is correct, as the hit is nearer, but it hasn't been changed enough. * * To get even nearer, pow_mod is ensured to have the opposite sign of curr_overshoot. So if curr_overshoot * is negative, the shot is still too short and pw_mod must be positive and vice versa. * * last_reverted : true if last_ang_mod is signed differently than the resulting ang_mod. * last_was_better : true if hit_score is lower than last_score, false otherwise. * * 4.6.4 If the shot did finish and did not crash but hit farther away than the last, use * void fixOvershoot(int32_t& ang_mod, int32_t& pow_mod, int32_t hit_score). * * Param 1 : Reference to the angle modifier to adapt. * Param 2 : Reference to the power modifier to adapt. * Param 3 : The hit_score achieved with the shot. This is local to AICore::aim() and must be submitted. * * bool angle_was_optimized : true if the last modification brought the angle nearer to 45° on its side, * and false otherwise. * hill_detected : false if both the overshoot and the hit_score are positive. Otherwise the * current value is not changed. * * Here are some more possible (sub) situations to consider: * 1) The current score is at least better than the last. * This can happen if the shot does no longer hit team mates. * The important situation is, if the overshoot is very small and a new best score is achieved. * The bigger the weapon, the higher the probability that this might be the case. * * If the hit_score is lower than best_score, meaning no new best score was achieved, it is ensured * that both ang_mod and pow_mod have the same sign than the last modifications had. Without a new * best_score the higher one might only mean less collateral damage, and no adaptation is done. * * last_was_better : true * hill_detected : false * * 2) Both the current and the last overshoot were negative, the angle was optimized towards 45° and the * power was raised. * Having a worse overshoot then can happen if the gun was lowered and the shot crashes into the side of * a hill or mountain. * The angle must then be brought towards 180° more than the last angle modification brought it away * from it. * * last_was_better : false, no matter what, so this change won't get directly reverted again. * hill_detected : true; * * 3) The current score is worse than the last score. * a) The last score was better than the one before. * The modifications might have been too strong, try values between the two. * b) That was two worse tries in a row. * The direction was wrong, and the last modifications must be reverted and strengthened by the * current set modifications. * * last_was_better : false * * 4) No last score or the same. * Just adapt the mods according to whether the shot was too short or too long. * * last_was_better : false * * last_reverted : true if last_ang_mod is signed differently than the resulting ang_mod. * * 4.7 If the current angle is 180°, so pointing straight up, ang_mod is zero and no hit_score greater than zero * was achieved, a random ang_mod in the interval [2;6] towards the opponent is generated to fix this vertical * shot. Vertical trick shots using wind are only accepted if the resulting hit_score is positive. * * 4.8 If the power modification according to the current overshoot and ang_mod is too low, it is strengthened * using the difference of the overshoot and pow_mod divided by ang_mod and multiplied by the AI's focusRate. * * 4.9 Sanitize ang_mod and pow_mod, both applied must not lead to invalid values. Then apply both to curr_angle * and curr_power. * * 4.10 Save the current values in the last_* members: * * last_ang_mod = ang_mod * last_overshoot = curr_overshoot * last_pow_mod = pow_mod * last_score = hit_score * * After this, the loop ends and the work flow restarts at 4.1. * * 4.11 When all aiming attempts are used up, an emergency plan to free the tank or unblock its path might be * triggered if all of the following conditions are true: * * - is_last and needSuccess are both true, * - there was no best setup with a positive score, yet, * - the current best round score will not create a new best setup with a positive score, * - the overall best score is negative, * - the best achieved overshoot is negative, indicating that the target was not yet reached and * - either the overshoot is greater than the weapons radius without being a ceiling crash, or fixOvershoot() * detected a hill in the path. * * 4.12 Eventually, if a new best_round_score is achieved, remember the current settings: * * best_round_score = best_score; * curr_angle = best_angle; * curr_power = best_power; * * 4.13 Return true if either best_round_score is larger than zero, or both is_last and needSuccess are true. * * 5 If the aiming was successful, a few more checks are made. * * 5.1 If best_round_score is greater than zero, and either more weapons have been tried than the ai_level is or * all findOppAttempts have been used up, both the weap_attempts and opp_attempts are reset to zero so this * targeting attempt is declared to be over. * * 5.2 If the primary target was hit, its score is added to best_round_score. The opponents score is divided by * ten times the ai_level for this unless it is the revengee, in which case the opponent score is only divided * by the simple ai_level. This is done to enhance scores for attacks where the primary target was hit over * attempts, were only collateral damage was done, but counted positive due to last attempt behaviour. * Further this makes shots against revengees more likely, even if they are imperfect, the lower the AI level * is. * * 5.3 If a weapon with a single damage value over zero, so no dirt bomb or reducer, was chosen, its score divided * by ten times the ai_level is added, too. * * 5.4 If a new best setup score was achieved, or the primary target was first hit, or a success must be enforced, * the best setup data is remembered: * * best_setup_angle = curr_angle * best_setup_item = item_curr * best_setup_mem = mem_curr * best_setup_overshoot = best_overshoot * best_setup_power = curr_power * best_setup_prime = best_prime_hit * best_setup_weap = weap_curr * best_setup_score = best_round_score * * As this targeting round is then definitely over, opp_attempts and weap_attempts are reset to zero to * trigger a fresh new round. * * The main targeting loop ends here. * * 6 If a new revengee was set, or the old removed, save this in player->revenge. * * 7 Without a real setup with a positive score here, a last freeing attempt might be triggered. But only if the * AI did not detect that it was blocked already, or a freeing attempt would have been setup already. * * 8 Write back the best attack setup for the tank to use. * * 9 Shout a retaliation phrase out if the revengee is attacked and the predicted damage is at least 50% of the * opponents total health. * * 10 Otherwise, if a self destruct attempt is issued, shout out a good-bye-phrase. * * 11 If a different target than in the last round is attacked, add some "last-second-errors". **/ class AICore { public: /* ----------------------------------- * --- Constructors and destructor --- * ----------------------------------- */ explicit AICore(); ~AICore(); // No copying, no assignment AICore(const AICore&) = delete; AICore &operator=(const AICore&) = delete; /* ---------------------- * --- Public methods --- * ---------------------- */ PLAYER* active_player() const; void allowText (); bool can_work () const; void forbidText (); bool hasExited () const; void hasMoved (int32_t direction); bool start (PLAYER* player_); bool status (int32_t &aItem, int32_t &aAngle, int32_t &aPower, ePlayerStages &pl_stage); void stop (); void weapon_fired (); void operator() (); /* ---------------------- * --- Public members --- * ---------------------- */ private: typedef ePlayerStages plStage_t; typedef sItemListEntry itEntry_t; typedef sOppMemEntry opEntry_t; typedef sWeapListEntry weEntry_t; typedef std::mutex mutex_t; typedef std::condition_variable condv_t; typedef std::lock_guard lguard_t; typedef std::unique_lock luniq_t; /* ----------------------- * --- Private methods --- * ----------------------- */ bool aim (bool is_last, bool can_move); bool calcAttack (int32_t attempt); bool calcBoxed (bool is_last); void calcHitDamage (int32_t hit_x, int32_t hit_y, double weap_rad, double dmg, weaponType weapType); int32_t calcHitScore (bool is_last); bool calcKamikaze (bool is_last); bool calcLaser (bool is_last); bool calcOffset (bool is_last); bool calcStandard (bool is_last, bool allow_flip_shot); bool calcUnbury (bool is_last); void checkItemMem (); void checkOppMem (); void checkWeapMem (); void destroy (); void flattenCurrAng (); void fixCrashed (int32_t &ang_mod, int32_t &pow_mod); void fixOvershoot (int32_t &ang_mod, int32_t &pow_mod, int32_t hit_score); void fixUnfinished (int32_t &ang_mod, int32_t &pow_mod); const char* getLevelName (int32_t level) const; bool getMemory (); bool initialize (); bool moveTank (); void sanitizeCurr (); bool selectItem (bool is_last); bool selectTarget (bool is_last); bool setupAttack (bool is_last, int32_t &opp_attempt, int32_t &weap_attempt); void showFeedback (const char* const feedback, int32_t col, double yv, eTextSway text_sway, int32_t dur); void traceCluster (int32_t subType, int32_t subCount, int32_t sub_x, int32_t sub_y, double inh_xv, double inh_yv); bool traceShot (int32_t trace_angle, int32_t delay_idx, bool &finished, bool &top_wrapped, int32_t &reached_x_, int32_t &reached_y_, double &end_xv, double &end_yv); void traceWeapon (int32_t &has_crashed, int32_t &has_finished); void updateItemScore(itEntry_t* pItem); void updateOppScore (opEntry_t* pOpp); void updateWeapScore(weEntry_t* pWeap); bool useFreeingTool (bool free_tank, bool is_last); bool useItem (itemType item_type); bool useItem (int32_t item_index); bool useWeapon (weaponType weap_type); bool useWeapon (int32_t weap_index); /* ----------------------- * --- Private members --- * ----------------------- */ // Internal values mutex_t actionMutex; condv_t actionCondition; playerType bestType = USELESS_PLAYER; // What the AI considers humans to be. abool_t canMove; volatile bool canWork = true; int32_t curr_angle = 90; //!< The angle that is currently tested int32_t curr_overshoot = 0; //!< Current calculated distance of hit versus opponent int32_t curr_power = 0; //!< The power that is currently tested bool curr_prime_hit = false; //!< Whether the primary target was hit. double errorMultiplier = 0.; //!< Default error reduction according to AI level int32_t findOppAttempts = 0; //!< Number of attempts to select a suitable opponent int32_t findRngAttempts = 0; //!< Number of attempts to aim the current selection int32_t findTgtAttempts = 0; //!< Number of attempts to come up with an attack plan int32_t findWeapAttempts = 0; //!< Number of attempts to find a suitable item/weapon double focusRate = 0.; //!< How good a bot can focus on a specific task bool isBlocked = false; //!< Set to true if a shot can't get through volatile bool isFinished = false; //!< Set to true when operator() ends ai32_t isMovedBy; bool isShocked = false; volatile bool isStopped = false; volatile bool isWorking = false; int32_t maxBounce = 0; //!< How many wall bounces/wraps can be calculated bool needAim = false; //!< true if this is a standard shot bool needSuccess = true; //!< true unless a best score is achieved int32_t offset_x = 0; int32_t offset_y = 0; plStage_t plStage = PS_AI_IS_IDLE; sOpponent* revengee = nullptr; //!< If set, it is tried first as a target sOpponent* shocker = nullptr; //!< The current fear shock winner abool_t textAllowed; //!< Is new FLOATTEXT allowed? int32_t weap_idx = SML_MIS; // Values taken from the player and their tank int32_t ai_level = 0; //!< To not having to cast from player type. double ai_level_d = 0.; //!< To not having to cast from ai_level. double ai_over_mod = 0.; //!< modifier for overkills and similar double ai_type_mod = 0.; //!< modifier for important decisions int32_t angle = 90; //!< The currently determined best angle double blast_min = 0.; //!< Damage done by small missile double blast_med = 0.; //!< Damage done by medium or large missile double blast_big = 0.; //!< Damage done by small nuke or nuke double blast_max = 0.; //!< Damage done by death head int32_t buried = 0; //!< Full buried level int32_t buried_l = 0; //!< left side buried level int32_t buried_r = 0; //!< right side buried level double currLife = 0.; bool hasFlipped = false; //!< Used by calcStandard() and aim() to check for flipping errors. itEntry_t* item_curr = nullptr; //!< Currently selected entry itEntry_t* item_head = nullptr; //!< Last selected entry itEntry_t* item_last = nullptr; //!< Entry with highest score int32_t last_ang = 0; //!< Angle used in last round sOpponent* last_opp = nullptr; //!< The opponent attacked in the last round int32_t last_pow = 0; //!< Power used in last round int32_t last_weap = 0; //!< weapon used in the last round int32_t maxLife = 100; opEntry_t* mem_curr = nullptr; //!< Currently selected entry opEntry_t* mem_head = nullptr; //!< Last selected entry opEntry_t* mem_last = nullptr; //!< Entry with highest score bool needMoney = false; //!< Might alter some decisions PLAYER* player = nullptr; int32_t power = 0; //!< The currently determined best power TANK* tank = nullptr; double type_mod = 1.; weEntry_t* weap_curr = nullptr; //!< Currently selected entry weEntry_t* weap_head = nullptr; //!< Last selected entry weEntry_t* weap_last = nullptr; //!< Entry with highest score double x = 0.; double y = 0.; // Values to remember settings and situations over aiming rounds int32_t best_angle = 0; int32_t best_overshoot = MAX_OVERSHOOT; //!< Overshoot value of currently best angle and power int32_t best_power = 0; bool best_prime_hit = false; //!< Whether the bes aiming round values hit the primary target. int32_t best_score = NEUTRAL_ROUND_SCORE; bool hill_detected = false; int32_t last_ang_mod = 0; int32_t last_overshoot = MAX_OVERSHOOT; int32_t last_pow_mod = 0; bool last_reverted = false; int32_t last_score = 0; bool last_was_better = false; int32_t reached_x = x; int32_t reached_y = y; // Values used to memorize the best setup in a round int32_t best_round_score = NEUTRAL_ROUND_SCORE; int32_t best_setup_angle = 0; int32_t best_setup_damage = 0; itEntry_t* best_setup_item = nullptr; opEntry_t* best_setup_mem = nullptr; int32_t best_setup_overshoot = MAX_OVERSHOOT; int32_t best_setup_power = 0; bool best_setup_prime = false; int32_t best_setup_score = 0; weEntry_t* best_setup_weap = nullptr; }; #endif // ATANKS_SRC_AICORE_H_INCLUDED atanks-6.6/src/gameloop.h0000644000175000017500000000253512636021030013527 0ustar apoapo#ifndef GAMELOOP_HEADER_FILE__ #define GAMELOOP_HEADER_FILE__ #define MAX_TEXT_BOUNCE 40 #include "player.h" /// Helper Class to background level creation class LevelCreator { volatile bool in_progress[4]; volatile bool i_must_yield = true; volatile bool i_shall_die = false; CSpinLock fiLock; int32_t fiVal = 0; void add_fi(); public: explicit LevelCreator(); void operator()(); bool can_work() const; void die_now(); bool has_progress(); bool is_finished() const; void print_state() const; void work_alone(); void working_on(int32_t what); void yield(); }; /// @brief small struct to order the score board, used by the end-of-game-sorting, too struct sScore { int32_t color = BLACK; int32_t diff = 0; int32_t idx = -1; int32_t killed = 0; int32_t kills = 0; const char* name = nullptr; sScore* next = nullptr; sScore* prev = nullptr; int32_t score = 0; sScore &operator=(PLAYER &rhs) { color = rhs.color; idx = rhs.index; killed = rhs.killed; kills = rhs.kills; name = rhs.getName(); score = rhs.score; diff = kills - killed; return *this; } }; // The massive game loop, rewritten here for // all sorts of reasons. void game(); // sort players. The returned scores point to an array that must be deleted. sScore* sort_scores(); #endif atanks-6.6/src/teleport.cpp0000644000175000017500000001354212636021030014115 0ustar apoapo/* * atanks - obliterate each other with oversize weapons * Copyright (C) 2003 Thomas Hudson * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "environment.h" #include "globaldata.h" #include "teleport.h" #include "tank.h" #include "sound.h" #ifdef NETWORK # include "player.h" #endif TELEPORT::~TELEPORT () { requireUpdate(); update(); if (dim_cur.w > 0) global.make_bgupdate (dim_cur.x, dim_cur.y, dim_cur.w, dim_cur.h); if (dim_old.w > 0) global.make_bgupdate (dim_old.x, dim_old.y, dim_old.w, dim_old.h); if (remote) { remote->destroy = true; remote->remote = nullptr; } object = nullptr; remote = nullptr; // Take out of the chain: global.removeObject(this); } TELEPORT::TELEPORT (VIRTUAL_OBJECT *targetObj, int32_t destinationX, int32_t destinationY, int32_t objRadius, int32_t duration, int32_t type): VIRTUAL_OBJECT(), clock(duration), object(targetObj), radius(objRadius), startClock(duration) { if (object) { x = object->x; y = object->y; } // Ensure the destination is not occupied by another tank: bool need_check = (type != ITEM_SWAPPER); while (need_check) { TANK* lt = nullptr; need_check = false; global.getHeadOfClass(CLASS_TANK, <); while ( lt ) { if ( (std::abs(lt->x - destinationX) < objRadius) && (lt->y > destinationY) && ((lt->y - destinationY) < objRadius) ) { need_check = true; // Maybe move left if ( ( (destinationX > (objRadius * 2)) && (destinationX <= lt->x) ) || (destinationX >= (env.screenWidth - (objRadius * 2))) ) destinationX -= std::abs(lt->x - destinationX); // Or move right else if (destinationX < (env.screenWidth - (objRadius * 2))) destinationX += std::abs(lt->x - destinationX); // Maybe move up if ( ( (destinationY > (MENUHEIGHT + (objRadius * 2)) ) && (destinationY <= lt->y) ) || (destinationY >= (env.screenHeight - (objRadius * 2))) ) destinationY -= std::abs(lt->y - destinationY); // Or move down else if (destinationY < (env.screenHeight - (objRadius * 2))) destinationY += std::abs(lt->y - destinationY); } lt->getNext(<); } } // end of needing to check the destination try { remote = new TELEPORT (this, destinationX, destinationY); } catch(std::bad_alloc &e) { std::cerr << "Error creating TELEPORT: " << e.what() << std::endl; perror ( "teleport.cc: Failed allocating memory for remote in TELEPORT::TELEPORT"); } play_fire_sound(ITEM_TELEPORT + WEAPONS, x, 255, 1000); #ifdef NETWORK // this seems to be the teleport we usually use int playerindex = 0; bool found = false; TANK* the_tank = static_cast(targetObj); // match the player with the tank while ( (playerindex < env.numGamePlayers) && (! found) ) { if ( (env.players[playerindex]->tank) && (env.players[playerindex]->tank == the_tank) ) found = true; else ++playerindex; } if (found) { char buffer[64] = { 0x0 }; snprintf(buffer, 63, "TELEPORT %d %d %d", playerindex, destinationX, destinationY); env.sendToClients(buffer); } #endif // NETWORK // Add to the chain: global.addObject(this); } TELEPORT::TELEPORT (TELEPORT *remoteEnd, int32_t destX, int32_t destY) : VIRTUAL_OBJECT(), remote(remoteEnd) { this->x = destX; this->y = destY; if (remote) { clock = remoteEnd->startClock; radius = remoteEnd->radius; startClock = remoteEnd->startClock; } // Add to the chain: global.addObject(this); } void TELEPORT::applyPhysics () { if (object) { if (!clock) { object->x = remote->x; object->y = remote->y; remote->object = object; object = nullptr; remote->clock--; } } else clock = remote->clock; if (clock-- < -startClock / 2) destroy = true; } void TELEPORT::draw () { if (!remote) return; double pClock = clock; int32_t blobSize = 8; int32_t pRadius = radius; int32_t maxblobs = 1; // When the teleporting finishes, the blobs enlarge and disperse // using this then growing factor: if (pClock < 1.0) pClock = 1.0 + (1.0 - (pClock * 2.0)); int32_t transMod = 255 - (pClock / startClock * 255); if (transMod > 255) transMod = 255; else if (transMod < 0) transMod = 0; blobSize -= round(8 / (startClock / pClock)) + 1; pRadius -= round(radius / (startClock / pClock)) + 1; maxblobs += pRadius * 4; BITMAP* tempBitmap = create_bitmap (radius * 2, radius * 2); blit (global.canvas, tempBitmap, remote->x - radius, remote->y - radius, 0, 0, radius * 2, radius * 2); if (object && remote) remote->draw(); drawing_mode (DRAW_MODE_TRANS, NULL, 0, 0); set_trans_blender (0, 0, 0, transMod); for (int32_t i = round(maxblobs + pClock); i > pClock; --i) { int32_t xOff = perlin2DPoint (1.0, 200, 1278 + x + (i * 100), pClock, 0.25, 6) * pRadius; int32_t yOff = perlin2DPoint (1.0, 200, 9734 + y + (i * 100), pClock, 0.25, 6) * pRadius; int32_t t_col = getpixel(tempBitmap, pRadius + xOff, pRadius + yOff); circlefill (global.canvas, x + xOff, y + yOff, blobSize, t_col); } drawing_mode (DRAW_MODE_SOLID, NULL, 0, 0); setUpdateArea (x - pRadius - blobSize, y - pRadius - blobSize, (pRadius + blobSize) * 2, (pRadius + blobSize) * 2); requireUpdate (); destroy_bitmap (tempBitmap); } atanks-6.6/src/land.cpp0000644000175000017500000001560513006377360013213 0ustar apoapo#include "land.h" #include "files.h" #include "externs.h" #include "gameloop.h" /***************************************************************************** Static temp land bitmap for faster land creation *****************************************************************************/ static BITMAP* temp_land = nullptr; // Define how the land will look. void generate_land (LevelCreator* lcr, int32_t xoffset, int32_t heightx) { double* depthStrip[2] = { nullptr, nullptr }; double smoothness = 100.; int32_t octaves = 8; double lambda = .25; int32_t curland = global.curland; int32_t land_type = LAND_RANDOM == env.landType ? (rand () % LAND_PLAIN) + 1 : env.landType; int32_t land_height = heightx / 6 * 5; depthStrip[0] = (double *)calloc(env.screenHeight + 1, sizeof(double)); depthStrip[1] = (double *)calloc(env.screenHeight + 1, sizeof(double)); if (!depthStrip[0] || !depthStrip[1]) { cerr << "ERROR: Unable to allocate "; cerr << ( (env.screenHeight + 1) * 2 * sizeof(double)); cerr << " bytes in LandGenerator() !" << endl; return; } switch (land_type) { case LAND_MOUNTAINS: smoothness = 200; octaves = 8; lambda = 0.65; break; case LAND_CANYONS: smoothness = 50; octaves = 8; lambda = 0.25; break; case LAND_VALLEYS: smoothness = 200; octaves = 8; lambda = 0.25; break; case LAND_HILLS: smoothness = 600; octaves = 6; lambda = 0.40; break; case LAND_FOOTHILLS: smoothness = 1200; octaves = 3; lambda = 0.25; break; case LAND_PLAIN: smoothness = 4000; octaves = 2; lambda = 0.2; break; case LAND_NONE: default: break; } temp_land = create_bitmap(env.screenWidth, env.screenHeight); clear_to_color(temp_land, PINK); clear_to_color(global.terrain, PINK); for (int32_t x = 0; lcr->can_work() && (x < env.screenWidth); ++x) { int32_t surface = 1; // surface[x] will end up being the y coordinate of the // top land pixel. It is not the real height (distance from bottom to // even level) but this coordinate. // This is why the array is called surface (again) and not (no longer) // height. if (land_type != LAND_NONE) surface = (1. + perlin2DPoint(1.0, smoothness, xoffset + x, 0, lambda, octaves) ) / 2. * land_height; global.surface[x].store(surface); } // End of generating surface array // If this is a wrapped landcape, smooth out both sides towards their // opposite counterparts if (WALL_WRAP == env.current_wallType) { int32_t length = env.screenWidth / 20; // 5% left + right = 10% overall for (int32_t x = 0; lcr->can_work() && (x < length) ; ++x) { // The idea is to compare the strips from left to right with the // points being taken by a ratio greater the nearer to its wall. int32_t left = x; int32_t right = env.screenWidth - (x + 1); double ratio_n = ( static_cast(x) / static_cast(length) / 2.) + .5; // [n]ear: 50% at the wall, 100% at length. double ratio_f = 1. - ratio_n; // [f]ar : 50% at the wall, 0% at length. // Get the heights currently set double old_left_y = global.surface[left ].load(ATOMIC_READ); double old_right_y = global.surface[right].load(ATOMIC_READ); // Assemble new heights double new_left_y = (old_left_y * ratio_n) + (old_right_y * ratio_f); double new_right_y = (old_right_y * ratio_n) + (old_left_y * ratio_f); // Now the new surface values can be stored: global.surface[left ].store(ROUND(new_left_y)); global.surface[right].store(ROUND(new_right_y)); } } // Generate detailed depths for (int32_t x = 0; lcr->can_work() && (x < env.screenWidth); ++x) { int32_t depth = 0; int32_t surface = global.surface[x].load(); if (env.detailedLandscape && (LAND_NONE != land_type)) { memcpy (depthStrip[0], depthStrip[1], env.screenHeight * sizeof(double)); for (depth = 1; depth < env.screenHeight; depth++) { depthStrip[1][depth] = (1. + perlin2DPoint (1.0, smoothness, xoffset + x, depth, lambda, octaves) ) / 2. * land_height - (env.screenHeight - depth); if (depthStrip[1][depth] > surface ) depthStrip[1][depth] = surface; } depthStrip[1][0] = 0; depth = 1; } // Now generate the height colourization for (int32_t y = 1; lcr->can_work() && (y <= surface); ++y) { lcr->yield(); double offset = 0; int32_t color = BLACK; double shade = 0; if (env.detailedLandscape) { while ( (depth < env.screenHeight) && (depthStrip[1][depth] <= y) ) ++depth; double bot = (depthStrip[0][depth - 1] + depthStrip[1][depth - 1]) / 2; double minBot = std::min(depthStrip[0][depth - 1], depthStrip[1][depth - 1]); double maxTop = std::max(depthStrip[0][depth], depthStrip[1][depth]); double btdiff = maxTop - minBot; double i = (y - bot) / btdiff; double a1 = RAD2DEG(atan2(depthStrip[0][depth - 1] - depthStrip[1][depth - 1], 1.0)) + 180.; double a2 = RAD2DEG(atan2(depthStrip[0][depth] - depthStrip[1][depth], 1.0)) + 180.; double angle = interpolate (a1, a2, i); shade = env.slope[(int)angle][0]; } if (env.ditherGradients) offset += rand () % 10 - 5; if (env.detailedLandscape) offset += (env.screenHeight - depth) * 0.5; while ( (y + offset) < 0) offset /= 2; while ( (y + offset) > env.screenHeight) offset /= 2; color = gradientColorPoint (land_gradients[curland], surface, y + offset); if (env.detailedLandscape) { float h, s, v; int32_t r = getr (color); int32_t g = getg (color); int32_t b = getb (color); rgb_to_hsv(r, g, b, &h, &s, &v); shade += (double)(rand () % 1000 - 500) * (1.0/10000); if (shade < 0) v += v * shade * 0.5; else v += (1 - v) * shade * 0.5; hsv_to_rgb (h, s, v, &r, &g, &b); color = makecol (r, g, b); } if (lcr->can_work()) { global.lockLand(); solid_mode(); putpixel (temp_land, x, env.screenHeight - y, color); drawing_mode(global.current_drawing_mode, NULL, 0, 0); global.unlockLand(); } } // End of looping y coordinate } // end of looping x coordinate // Put temp land onto the real bitmap: global.lockLand(); solid_mode(); blit(temp_land, global.terrain, 0, 0, 0, 0, env.screenWidth, env.screenHeight); global.unlockLand(); // clean up if (temp_land) destroy_bitmap(temp_land); temp_land = nullptr; if (depthStrip[0]) free(depthStrip[0]); if (depthStrip[1]) free(depthStrip[1]); } atanks-6.6/src/optionitemplayer.h0000644000175000017500000000512212636021030015323 0ustar apoapo#pragma once #ifndef ATANKS_SRC_OPTIONITEMPLAYER_H_INCLUDED #define ATANKS_SRC_OPTIONITEMPLAYER_H_INCLUDED /* * atanks - obliterate each other with oversize weapons * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "optionitembase.h" /** @file optionitemplayer.h * @brief declaration of the option entry class specialized on handling * PLAYER instances **/ /** @class OptionItemPlayer * @brief abstract one option menu entry to handle a PLAYER instance * * This class is a special version of the OptionItem template that can only * handle PLAYER instances. * * The the only entry type supported is the ET_MENU. **/ class OptionItemPlayer : public OptionItemBase { public: /* ------------------------------------------- * --- Public constructors and destructors --- * ------------------------------------------- */ explicit OptionItemPlayer( PLAYER** player_, int32_t (*action_)(PLAYER** player_, int32_t), const char* title_, int32_t titleIdx_, int32_t top_, int32_t left_, int32_t width_, int32_t height_, int32_t padding_); virtual ~OptionItemPlayer(); /* ---------------------- * --- Public methods --- * ---------------------- */ virtual int32_t activate (int32_t, int32_t, int32_t, int32_t); virtual bool canGoDown (); virtual bool canGoUp (); virtual void display (bool show_full); virtual bool isExitButton(); void setLanguage (); private: /* ---------------------------------------------- * --- Private methods and external functions --- * ---------------------------------------------- */ int32_t (*actionFunc )(PLAYER** target, int32_t) = nullptr; /* ----------------------- * --- Private members --- * ----------------------- */ PLAYER** player = nullptr; //!< PLAYER instance to handle }; #endif // ATANKS_SRC_OPTIONITEMPLAYER_H_INCLUDED atanks-6.6/src/files.cpp0000644000175000017500000006112513006377360013375 0ustar apoapo#include "main.h" #include #include #include #include // basically all UNIX-like OSes should use stat #ifndef WIN32 # include #endif #include "player.h" #include "files.h" #include "text.h" // They are filled here, declaring them here prevents the linker // from 'optimizing' them away. WEAPON weapon[WEAPONS]; WEAPON naturals[NATURALS]; ITEM item[ITEMS]; /* Update: Instead of using constantly allocated/deallocated * char strings for file path generation, one string buffer * used everywhere that does not need *alloc/free is faster * and a lot more secure. * - Sven */ char path_buf[PATH_MAX + 1]; // Note: Any consumer of this buffer has to include files.h or // to define an extern for it. /** @brief Save the current game in progress * This function saves the game in progress. * All data is saved in a text file for flexibility. * @return true on success and false on failure. **/ bool Save_Game() { snprintf(path_buf, PATH_MAX, "%s/%s.sav", env.configDir, env.game_name); FILE* game_file = fopen(path_buf, "w"); if (!game_file) return false; // write file version information fprintf(game_file, "VERSION\n"); fprintf(game_file, "FILE_VERSION=%d\n", game_version); fprintf(game_file, "***\n"); // write global data fprintf(game_file, "GLOBAL\n"); fprintf(game_file, "CURRENTROUND=%d\n", global.currentround + 1); // Note: When the game is saved, the round already has been decreased. Thus, // to not loose rounds when saving a game, returning to main and load it // again, this has to be increased here. fprintf(game_file, "SCOREBOARD=%d\n", global.showScoreBoard ? 1 : 0); fprintf(game_file, "***\n"); // write environment data fprintf(game_file, "ENVIRONMENT\n"); fprintf(game_file, "CAMPAIGNMODE=%d\n", env.campaign_mode ? 1 : 0); fprintf(game_file, "CAMPAIGNROUNDS=%lf\n", env.campaign_rounds); fprintf(game_file, "NEXTCAMPROUND=%lf\n", env.nextCampaignRound); fprintf(game_file, "ROUNDS=%u\n", env.rounds); fprintf(game_file, "***\n"); // write player data fprintf(game_file, "PLAYERS\n"); for (int32_t i = 0; i < env.numGamePlayers; ++i) { PLAYER* my_player = env.players[i]; if (my_player->index > -1) { // Note: This line is needed to know which player to load fprintf(game_file, "PLAYERNUMBER=%d\n", my_player->index); my_player->save_game_data(game_file); } } fprintf(game_file, "***EOF***\n"); fclose(game_file); /* atanks always saved the current configuration in a file * alongside the save game, but this environment file was * never read. It makes no sense anyway, as it would change * the current settings without re-loading the main config * file. * However, I find this very good for testing reasons, and * if a game becomes boring, why not allow the player to * enable some weather effects before loading a game? * So it won't be added that the environment file is loaded, * but if an old one is laying around, we should delete our * own garbage: */ snprintf(path_buf, PATH_MAX, "%s/%s.txt", env.configDir, env.game_name); if (!access(path_buf, F_OK) && !access(path_buf, W_OK)) unlink(path_buf); return true; } /* This function attempts to load a saved game. The function returns TRUE on success and FALSE if an error occurs. -- Jesse */ bool Load_Game() { char line[ MAX_CONFIG_LINE + 1] = { 0 }; char field[MAX_CONFIG_LINE + 1] = { 0 }; char value[MAX_CONFIG_LINE + 1] = { 0 }; char* result = nullptr; int32_t player_count = 0; int32_t line_num = 0; int32_t player_idx = -1; bool done = false; int32_t file_version = 0; // Be sure that numbers are understood right: const char* cur_lc_numeric = setlocale(LC_NUMERIC, "C"); // Ensure backward compatibility: env.nextCampaignRound = -1.; env.campaign_rounds = -1.; // Open game file snprintf(path_buf, PATH_MAX, "%s/%s.sav", env.configDir, env.game_name); FILE* game_file = fopen(path_buf, "r"); if (!game_file) return false; // Now read until the file is finished loading eSaveGameStage stage = SGS_NONE; do { // read a line memset(line, 0, MAX_CONFIG_LINE); if ( ( result = fgets(line, MAX_CONFIG_LINE, game_file) ) ) { ++line_num; // if we hit end of the file, stop if (! strncmp(line, "***EOF***", 9) ) { done = true; continue; // This exits the loop as well } // strip newline character size_t line_length = strlen(line); while ( line[line_length - 1] == '\n') { line[line_length - 1] = '\0'; line_length--; } // check to see if we found a new stage if (!strcasecmp(line, "GLOBAL") ) stage = SGS_GLOBAL; else if (!strcasecmp(line, "ENVIRONMENT") ) stage = SGS_ENVIRONMENT; else if (!strcasecmp(line, "PLAYERS") ) { // Here the file version must be known, or it is not set. // Inform the user if an upgrade is needed if (game_version > file_version) fprintf(stdout, "Game \"%s\" needs to be upgraded" " from version %2.1f to version %2.1f\n", env.game_name, static_cast(file_version) / 10.0, static_cast(game_version) / 10.0); stage = SGS_PLAYERS; } else if (!strcasecmp(line, "VERSION") ) stage = SGS_VERSION; else { // Not a new stage, keep loading. // find equal sign size_t equal_position = 1; while ( ( equal_position < line_length ) && ( line[equal_position] != '=' ) ) equal_position++; // make sure the equal sign position is valid if (line[equal_position] != '=') continue; // Go to next line // separate field from value memset(field, '\0', MAX_CONFIG_LINE); memset(value, '\0', MAX_CONFIG_LINE); strncpy(field, line, equal_position); strncpy(value, &( line[equal_position + 1] ), MAX_CONFIG_LINE); switch (stage) { case SGS_ENVIRONMENT: if (!strcasecmp(field, "CAMPAIGNMODE") ) { int32_t cm = 0; sscanf(value, "%d", &cm); env.campaign_mode = !cm ? false : true; } else if (!strcasecmp(field, "CAMPAIGNROUNDS") ) sscanf(value, "%lf", &env.campaign_rounds); else if (!strcasecmp(field, "ROUNDS") ) sscanf(value, "%u", &env.rounds); else if (!strcasecmp(field, "NEXTCAMPROUND") ) sscanf(value, "%lf", &env.nextCampaignRound); else { cerr << path_buf << ":" << line_num << " : Ignored line\n"; cerr << "The line \"" << line << "\""; cerr << " is ignored, it does not belong to ENV" << endl; } break; case SGS_GLOBAL: if (!strcasecmp(field, "CURRENTROUND") ) sscanf(value, "%u", &global.currentround); // The following are kept for backwards compatibility: else if (!strcasecmp(field, "NEXTCAMPROUND") ) sscanf(value, "%lf", &env.nextCampaignRound); else if (!strcasecmp(field, "CAMPAIGNMODE") ) { int32_t cm = 0; sscanf(value, "%d", &cm); env.campaign_mode = !cm ? false : true; } else if (!strcasecmp(field, "ROUNDS") ) sscanf(value, "%u", &env.rounds); else if (!strcasecmp(field, "SCOREBOARD") ) { int32_t enabled = 0; sscanf(value, "%d", &enabled); global.showScoreBoard = (enabled != 0); } else { cerr << path_buf << ":" << line_num << " : Ignored line\n"; cerr << "The line \"" << line << "\""; cerr << " is ignored, it does not belong to GLOBAL" << endl; } break; case SGS_PLAYERS: if (!strcasecmp(field, "PLAYERNUMBER") ) { sscanf(value, "%d", &player_idx); if ( (player_idx > -1) && (player_idx < env.numPermanentPlayers) && (player_count < MAXPLAYERS) ) { env.addGamePlayer( env.allPlayers[player_idx] ); env.players[player_count++]->initialise(true); } else player_idx = -1; } // Now let the player load itself if (player_idx > -1) env.allPlayers[player_idx]->load_game_data(game_file, file_version); else { cerr << path_buf << ":" << line_num << " : Ignored line\n"; cerr << "The line \"" << line << "\""; cerr << " is ignored, as player idx is " << player_idx << endl; } break; case SGS_VERSION: if (!strcasecmp(field, "FILE_VERSION") ) sscanf(value, "%d", &file_version); else { cerr << path_buf << ":" << line_num << " : Ignored line\n"; cerr << "The line \"" << line << "\""; cerr << " is ignored, it does not belong to VERSION" << endl; } break; case SGS_NONE: default: cerr << path_buf << ":" << line_num << " : Wrong line\n"; cerr << "The line \"" << line << "\""; cerr << " does not belong to any stage!" << endl; break; } // end of switching stage } // End of loading line / player record } // end of having read a line } while (result && !done); // End of being not done fclose(game_file); // See if the campaign state values have to be recalculated // because an old save game was loaded. if (env.campaign_rounds < 0.) env.campaign_rounds = static_cast(env.rounds) / 5.; if (env.nextCampaignRound < 0.) { env.nextCampaignRound = static_cast(env.rounds) - env.campaign_rounds; while (global.currentround < env.nextCampaignRound) env.nextCampaignRound -= env.campaign_rounds; } // To ensure backwards compatibility, all players have to check // their opponents memory. Old save files do not provide any. for (int32_t i = 0; i < env.numGamePlayers; ++i) env.players[i]->checkOppMem(); // Revert locale settings if (cur_lc_numeric) setlocale(LC_NUMERIC, cur_lc_numeric); else setlocale(LC_NUMERIC, ""); return true; } /* Check to see if a saved game exists with the given name. */ bool Check_For_Saved_Game() { snprintf(path_buf, PATH_MAX, "%s/%s.sav", env.configDir, env.game_name); if (!access(path_buf, R_OK)) return true; return false; } /** @brief Copy atanks config to safe location. * * This function copies the atanks config file from the HOME_DIR folder to * HOME_DIR/.atanks * If the .atanks folder does not exist, this function will create it. * * @return true on success, false otherwise */ bool Copy_Config_File() { static char xHere[2] = "."; FILE* source_file = nullptr; FILE* dest_file = nullptr; char source_path[PATH_MAX + 1] = { 0 }; char dest_path[PATH_MAX + 1] = { 0 }; char buffer[PATH_MAX + 1] = { 0 }; // check to see if the config file has already been copied snprintf(dest_path, PATH_MAX, "%s/atanks-config.txt", env.configDir); if (!access(dest_path, R_OK | W_OK)) return true; char* my_home_folder = getenv(HOME_DIR); // figure out where home is if (! my_home_folder) my_home_folder = xHere; // file not copied yet, create the required directory snprintf(buffer, PATH_MAX, "%s/.atanks", my_home_folder); #ifdef ATANKS_IS_WINDOWS int32_t mkdir_status = mkdir(buffer); #else int32_t mkdir_status = mkdir(buffer, 0700); #endif // ATANKS_IS_WINDOWS if (mkdir_status == -1) { printf( "Error occured. Unable to create sub directory.\n"); return false; } // check to make sure we have a source file snprintf(source_path, PATH_MAX, "%s/.atanks-config.txt", my_home_folder); source_file = fopen(source_path, "r"); if (! source_file) return true; // we already have an open source file, create destination file dest_file = fopen(dest_path, "wb"); if (! dest_file) { printf( "Unable to create destination file.\n"); fclose(source_file); return false; } // we have open files, let's copy size_t file_status = fread(buffer, 1, PATH_MAX, source_file); while (file_status) { file_status = fwrite(buffer, 1, PATH_MAX, dest_file); file_status = fread(buffer, 1, PATH_MAX, source_file); } fclose(source_file); fclose(dest_file); return true; } /** @brief Make sure we have a music folder * @return true on success or false if an error occures. **/ bool Create_Music_Folder() { snprintf(path_buf, PATH_MAX, "%s/music", env.configDir); DIR* music_folder = opendir(path_buf); if (! music_folder) { #ifdef ATANKS_IS_WINDOWS if (mkdir(path_buf)) #else if (mkdir(path_buf, 0700)) #endif // ATANKS_IS_WINDOWS return false; } else // it already exists closedir(music_folder); return true; } /* Scroll text in a box */ void scrollTextList (TEXTBLOCK* lines) { int32_t spacing = 2; int32_t tOffset = (RAND_MAX / 4) + (rand() % (RAND_MAX / 4)); int32_t numItems = (rand() % 100) + 20; int32_t key = 0; bool done = false; bool moving = true; eBackgroundTypes bgType = env.dynamicMenuBg ? static_cast(rand() % BACKGROUND_COUNT) : BACKGROUND_BLANK; drawMenuBackground (bgType, tOffset, numItems); quickChange(true); int32_t clip_l = env.halfWidth - 299; int32_t clip_t = env.menuBeginY + 1; int32_t clip_b = env.menuEndY - 1; int32_t clip_r = env.halfWidth + 299; set_clip_rect(global.canvas, clip_l, clip_t, clip_r, clip_b); int32_t scrollOffset = clip_b - env.halfHeight - 14; flush_inputs (); SHOW_MOUSE(nullptr) do { if (global.isCloseBtnPressed()) done = true; if (++tOffset >= INT_MAX) tOffset = 0; if (moving) scrollOffset--; if (scrollOffset < -(env.halfHeight - 100 + lines->Lines() * 30) ) scrollOffset = env.halfHeight - 100; else if (scrollOffset > (clip_b - env.halfHeight - 14)) scrollOffset = clip_b - env.halfHeight - 14; drawMenuBackground (bgType, tOffset, numItems); lines->Render_Lines(scrollOffset, spacing, clip_t, clip_b); global.make_update(env.halfWidth - 300, env.menuBeginY, 601, env.screenHeight - 2 * env.menuBeginY); global.do_updates(); LINUX_REST; if ( keypressed() ) { key = (readkey()) >> 8; switch (key) { case KEY_ESC: done = true; break; case KEY_SPACE: moving = true; break; case KEY_UP: scrollOffset += 2; moving = false; break; case KEY_DOWN: scrollOffset -= 2; moving = false; break; } // end of switch } // end of key pressed if (mouse_b) done = true; } while (!done); SHOW_MOUSE(global.canvas) set_clip_rect (global.canvas, 0, 0, (env.screenWidth-1), (env.screenHeight-1)); flush_inputs (); } /* Flush key buffer and waits for button releases */ void flush_inputs() { do { std::this_thread::yield(); } while (mouse_b); clear_keybuf(); } // This file loads weapons, naturals and items // from a text file // Returns TRUE on success and FALSE on failure bool Load_Weapons_Text() { // Be sure that numbers are understood right: const char* cur_lc_numeric = setlocale(LC_NUMERIC, "C"); // get path name if (env.language == EL_ENGLISH) snprintf(path_buf, PATH_MAX, "%s/text/weapons.txt", env.dataDir); else if (env.language == EL_PORTUGUESE) snprintf(path_buf, PATH_MAX, "%s/text/weapons.pt_BR.txt", env.dataDir); else if (env.language == EL_FRENCH) snprintf(path_buf, PATH_MAX, "%s/text/weapons_fr.txt", env.dataDir); else if (env.language == EL_GERMAN) snprintf(path_buf, PATH_MAX, "%s/text/weapons_de.txt", env.dataDir); else if (env.language == EL_SLOVAK) snprintf(path_buf, PATH_MAX, "%s/text/weapons_sk.txt", env.dataDir); else if (env.language == EL_RUSSIAN) snprintf(path_buf, PATH_MAX, "%s/text/weapons_ru.txt", env.dataDir); else if (env.language == EL_SPANISH) snprintf(path_buf, PATH_MAX, "%s/text/weapons_ES.txt", env.dataDir); else if (env.language == EL_ITALIAN) snprintf(path_buf, PATH_MAX, "%s/text/weapons_it.txt", env.dataDir); // open file FILE* wfile = fopen(path_buf, "r"); if (! wfile) { printf( "Unable to open weapons file. (%s)\n", path_buf); return false; } // read line char line[512] = { 0 }; char* status = fgets(line, 512, wfile); eFileStage file_stage = FS_WEAPONS; // weapons, naturals, items eDataStage data_stage = DS_NAME; // name, description, data int32_t item_count = 0; int32_t weapon_count = 0; int32_t natural_count = 0; while (status) { // clear end of line if ( strchr(line, '\n') ) strchr(line, '\n')[0] = '\0'; if ( strchr(line, '\r') ) strchr(line, '\r')[0] = '\0'; // skip # and empty lines if ( (! (line[0] == '#') ) && ( strlen(line) > 2 ) ) { // check for header if (!strcasecmp(line, "*WEAPONS*") ) { file_stage = FS_WEAPONS; data_stage = DS_NAME; } else if (!strcasecmp(line, "*NATURALS*") ) { file_stage = FS_NATURALS; data_stage = DS_NAME; } else if (!strcasecmp(line, "*ITEMS*") ) { file_stage = FS_ITEMS; data_stage = DS_NAME; } // not a special line, let's read some data else { // ============= // == Weapons == // ============= if ( (FS_WEAPONS == file_stage) && (weapon_count < WEAPONS) ) { if (DS_NAME == data_stage) weapon[weapon_count].setName(line); else if (DS_DESC == data_stage) weapon[weapon_count].setDesc(line); else if (DS_DATA == data_stage) { sscanf(line, "%d %d %lf %lf %d %d %d %d %d %d %d %d %d %d %d %d %lf %d %lf %lf %lf %d %lf", &(weapon[weapon_count].cost), &(weapon[weapon_count].amt), &(weapon[weapon_count].mass), &(weapon[weapon_count].drag), &(weapon[weapon_count].radius), &(weapon[weapon_count].sound), &(weapon[weapon_count].etime), &(weapon[weapon_count].damage), &(weapon[weapon_count].picpoint), &(weapon[weapon_count].spread), &(weapon[weapon_count].delay), &(weapon[weapon_count].noimpact), &(weapon[weapon_count].techLevel), &(weapon[weapon_count].warhead), &(weapon[weapon_count].numSubmunitions), &(weapon[weapon_count].submunition), &(weapon[weapon_count].impartVelocity), &(weapon[weapon_count].divergence), &(weapon[weapon_count].spreadVariation), &(weapon[weapon_count].launchSpeed), &(weapon[weapon_count].speedVariation), &(weapon[weapon_count].countdown), &(weapon[weapon_count].countVariation) ); } // Advance data stage ++data_stage; if ( (DS_NAME == data_stage) // flipped || ( (DS_DATA == data_stage) && (EL_ENGLISH != env.language)) ) { data_stage = DS_NAME; weapon_count++; } } // end of weapon section // ============== // == Naturals == // ============== else if ( (FS_NATURALS == file_stage) && (natural_count < NATURALS) ) { if (DS_NAME == data_stage) naturals[natural_count].setName(line); else if (DS_DESC == data_stage) naturals[natural_count].setDesc(line); else if (DS_DATA == data_stage) { sscanf(line, "%d %d %lf %lf %d %d %d %d %d %d %d %d %d %d %d %d %lf %d %lf %lf %lf %d %lf", &(naturals[natural_count].cost), &(naturals[natural_count].amt), &(naturals[natural_count].mass), &(naturals[natural_count].drag), &(naturals[natural_count].radius), &(naturals[natural_count].sound), &(naturals[natural_count].etime), &(naturals[natural_count].damage), &(naturals[natural_count].picpoint), &(naturals[natural_count].spread), &(naturals[natural_count].delay), &(naturals[natural_count].noimpact), &(naturals[natural_count].techLevel), &(naturals[natural_count].warhead), &(naturals[natural_count].numSubmunitions), &(naturals[natural_count].submunition), &(naturals[natural_count].impartVelocity), &(naturals[natural_count].divergence), &(naturals[natural_count].spreadVariation), &(naturals[natural_count].launchSpeed), &(naturals[natural_count].speedVariation), &(naturals[natural_count].countdown), &(naturals[natural_count].countVariation) ); } // Advance data stage ++data_stage; if ( (DS_NAME == data_stage) // flipped || ( (DS_DATA == data_stage) && (EL_ENGLISH != env.language)) ) { data_stage = DS_NAME; natural_count++; } } // end of naturals // ============== // == Items == // ============== else if ( (FS_ITEMS == file_stage) && (item_count < ITEMS) ) { if (DS_NAME == data_stage) item[item_count].setName(line); else if (DS_DESC == data_stage) item[item_count].setDesc(line); else if (DS_DATA == data_stage) { sscanf(line, "%d %d %d %d %d %lf %lf %lf %lf %lf %lf", &(item[item_count].cost), &(item[item_count].amt), &(item[item_count].selectable), &(item[item_count].techLevel), &(item[item_count].sound), &(item[item_count].vals[0]), &(item[item_count].vals[1]), &(item[item_count].vals[2]), &(item[item_count].vals[3]), &(item[item_count].vals[4]), &(item[item_count].vals[5]) ); } // Advance data stage ++data_stage; if ( (DS_NAME == data_stage) // flipped || ( (DS_DATA == data_stage) && (EL_ENGLISH != env.language)) ) { data_stage = DS_NAME; item_count++; } } // end of items } // end of reading data from a valid line } // end of valid line // read in data status = fgets(line, 512, wfile); } // end while(status) // close file if (wfile) fclose(wfile); // Revert locale settings if (cur_lc_numeric) setlocale(LC_NUMERIC, cur_lc_numeric); else setlocale(LC_NUMERIC, ""); return true; } /* Filter out files that do not have .sav in the name. */ #ifndef MACOSX int Filter_File( const struct dirent *my_file ) #else int Filter_File( struct dirent *my_file ) #endif { if ( strstr(my_file->d_name, ".sav") ) return true; else return false; } /* This function finds a list of saved games on your profile. On error, NULL is returned. If all goes well, a list of file names are returned. After use, the return value *must* be freed. */ #if defined(ATANKS_IS_LINUX) dirent** Find_Saved_Games(uint32_t &num_files_found) { dirent** my_list = nullptr; int32_t status = 0; status = scandir(env.configDir, &my_list, Filter_File, alphasort); if (status < 0) { printf("Error trying to find saved games.\n"); return nullptr; } num_files_found = status; return my_list; } #endif //Linux /* This function hunts for saved games. If games are found, the function returns an array of filenames. If an error occures or no files are found, NULL is returned. */ #if defined(ATANKS_IS_WINDOWS) dirent** Find_Saved_Games(uint32_t &num_files_found) { dirent** my_list = (dirent**)calloc(256, sizeof(dirent*)); dirent* one_file = nullptr; uint32_t file_count = 0; DIR* game_dir = nullptr; if (!my_list) return nullptr; game_dir = opendir(env.configDir); if (!game_dir) { free(my_list); return nullptr; } while ( (one_file = readdir(game_dir)) && (file_count < 256) ) { // check to see if this is a save game file if ( strstr( one_file->d_name, ".sav" ) ) { my_list[file_count] = (dirent*)calloc(1, sizeof(dirent) ); if ( my_list[file_count] ) { memcpy(my_list[file_count], one_file, sizeof(dirent)); my_list[file_count]->d_name = strdup(one_file->d_name); file_count++; } } } closedir(game_dir); num_files_found = file_count; return my_list; } #endif // ATANKS_IS_WINDOWS /* * This function searches for bitmap files (.bmp) in the config folder. * The function returns an array of bitmap file names. If no files * are found, or an error occures, then NULL is returned. * */ char** Find_Bitmaps(int32_t* bitmaps_found) { char** my_list; struct dirent* one_file; int32_t file_count = 0; DIR* game_dir; my_list = (char**)calloc(256, sizeof(char*)); if (! my_list) return nullptr; game_dir = opendir(env.configDir); if (! game_dir) { free(my_list); return nullptr; } one_file = readdir(game_dir); while ( (one_file) && (file_count < 256) ) { // check to see if this is a save game file #ifdef ATANKS_IS_LINUX if ( strcasestr( one_file->d_name, ".bmp" ) ) { #else if ( (strstr(one_file->d_name, ".bmp")) || (strstr(one_file->d_name, ".BMP")) ) { #endif // ATANKS_IS_LINUX size_t nLen = strlen(env.configDir) + strlen(one_file->d_name) + 16; my_list[file_count] = (char*)calloc(nLen + 1, sizeof(char) ); if ( my_list[file_count] ) { snprintf(my_list[file_count], nLen, "%s/%s", env.configDir, one_file->d_name); file_count++; } } one_file = readdir(game_dir); } closedir(game_dir); *bitmaps_found = file_count; if (file_count < 1) { free(my_list); my_list = nullptr; } return my_list; } atanks-6.6/src/optioncontent.h0000644000175000017500000012206612636021030014631 0ustar apoapo#pragma once #ifndef ATANKS_SRC_OPTIONCONTENT_H_INCLUDED #define ATANKS_SRC_OPTIONCONTENT_H_INCLUDED /* * atanks - obliterate each other with oversize weapons * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "optiontypes.h" #include "globaltypes.h" /** @file optioncontent.h * * This file defines static string arrays with the text content of the * player, play and option menu and all sub menus. * * It is not necessary to include this file anywhere else but in menu.cpp. * **/ // Maximum number of entries including Title and 0x0 termination per menu const uint32_t maxEntriesPerMenu = 18; // Maximum text entries per text class including 0x0 termination const uint32_t maxEntriesPerClass = 11; /** @brief string array for the menu content * * The ordering, although it looks a bit overwhelming here, is quite simple. * The first index is the menu class, the second is the language. * * With this both translation and adding new content is fairly easy. Just * copy a block (after adding new enum entries at the proper places in * optiontypes.h) and edit to the new content. * * All text arrays end with a zero 0x0 entry. It is therefore not needed to * hard code any menu list sizes. * * As a rule of thumb, the title is the first line, every other texts are * listed with two entries per line. Unless a possible third entry is the * finalizing 0x0 entry, it does not need its own line. **/ const char* const MenuTitleText[MC_MENUCLASS_COUNT][EL_LANGUAGE_COUNT][maxEntriesPerMenu] = { { /* -------------------- * * --- AREYOUSURE --- * * -------------------- */ { /* === EL_ENGLISH === */ "Are you sure?", "Yes", "No", 0x0 }, { /* === EL_PORTUGUESE === */ /* ===== Needs to be translated ===== */ "Are you sure?", "Yes", "No", 0x0 }, { /* === EL_FRENCH === */ /* ===== Needs to be translated ===== */ "Are you sure?", "Yes", "No", 0x0 }, { /* === EL_GERMAN === */ "Sind Sie sicher?", "Ja", "Nein", 0x0 }, { /* === EL_SLOVAK === */ /* ===== Needs to be translated ===== */ "Are you sure?", "Yes", "No", 0x0 }, { /* === EL_RUSSIAN === */ /* ===== Needs to be translated ===== */ "Are you sure?", "Yes", "No", 0x0 }, { /* === EL_SPANISH === */ /* ===== Needs to be translated ===== */ "Are you sure?", "Yes", "No", 0x0 }, { /* === EL_ITALIAN === */ /* ===== Needs to be translated ===== */ "Are you sure?", "Yes", "No", 0x0 } }, { /* -------------------- * * --- FINANCE --- * * -------------------- */ { /* === EL_ENGLISH === */ "Money", "Starting Money", "Interest Rate", "Round Win Bonus", "Damage Bounty", "Self-Damage Penalty", "Team-Damage Penalty", "Tank Destruction Bonus", "Tank Self-Destruction Penalty", "Item Sell Multiplier", "Teams Share" , "Back", 0x0 }, { /* === EL_PORTUGUESE === */ "Dinheiro", "Dinheiro inicial", "Taxa de Juros", "Bônus por Vitória", "Bônus por Estrago", "Penalidade por Auto-Estrago", "Team-Damage Penalty", "Bônus por Tanque Destruído", "Penalidade por Auto-Destruição", "Multiplicador de Item Vendido", "Parte das equipes", "Back", 0x0 }, { /* === EL_FRENCH === */ "Finances", "Somme de départ", "Taux d'intérêt", "Gains par victoire", "Bonus dommages", "Pénalité auto-dommages", "Team-Damage Penalty", "Bonus destruction tank", "Pénalité autodestruction tank", "Coeff. vente item", "Part d'equipes", "Back", 0x0 }, { /* === EL_GERMAN === */ "Geld", "Startgeld", "Zinssatz", "Rundenbonus", "Schadensbonus", "Strafe für Selbstschaden", "Strafe für Teamschaden", "Zerstörungsbonus", "Selbstzerstörungsstrafe", "Verkaufsmultiplikator", "Mannschaftanteil", "Zurück", 0x0 }, { /* === EL_SLOVAK === */ "Peniaze", "Peniaze na začiatku", "Úroková miera", "Bonus pri skončení kola", "Odmena za poškodenie", "Pokuta za vlastné poškodenie", "Team-Damage Penalty", "Bonus za zničenie tanku", "Pokuta za vlastné zničenie tanku", "Násobiteľ pri predaji položiek", "Teamy zdieľajú peniaze", "Späť", 0x0 }, { /* === EL_RUSSIAN === */ "Экономика", "Начальные деньги", "Банковский процент", "Бонус за победу", "Бонус за попадание", "Штраф за попадание в себя", "Team-Damage Penalty", "Бонус за уничтожение", "Штраф за самоуничтожение", "Коэфф. продажи снаряжения", "Командные боеприпасы", "Назад", 0x0 }, { /* === EL_SPANISH === */ /* ===== Needs to be translated ===== */ "Money", "Starting Money", "Interest Rate", "Round Win Bonus", "Damage Bounty", "Self-Damage Penalty", "Team-Damage Penalty", "Tank Destruction Bonus", "Tank Self-Destruction Penalty", "Item Sell Multiplier", "Teams Share" , "Back", 0x0 }, { /* === EL_ITALIAN === */ /* ===== Needs to be translated ===== */ "Money", "Starting Money", "Interest Rate", "Round Win Bonus", "Damage Bounty", "Self-Damage Penalty", "Team-Damage Penalty", "Tank Destruction Bonus", "Tank Self-Destruction Penalty", "Item Sell Multiplier", "Teams Share", "Back", 0x0 } }, { /* -------------------- * * --- GRAPHICS --- * * -------------------- */ { /* === EL_ENGLISH === */ "Graphics", "Full Screen", "Dithering", "Detailed Land", "Detailed Sky", "Fading Text", "Shadowed Text", "Swaying Text", "Colour Theme", "Screen Width", "Screen Height", "Mouse Pointer", "Game Speed", "Custom Background", "Show AI Feedback", "Dynamic Menu Background", "Back", 0x0 }, { /* === EL_PORTUGUESE === */ "Gráficos", "Tela Cheia", "Pontilhamento", "Detalhes do Terreno", "Detalhes do Céu", "texto sombreado", "texto de desvanecimento", "Swaying Text", "tema da cor", "Largura da Tela", "Altura da Tela", "Ponteiro do Rato", "Velocidade do jogo", "Fundo personalizado", "Show AI Feedback", "Dynamic Menu Background", "Back", 0x0 }, { /* === EL_FRENCH === */ "Graphismes", "Full Screen", "Tramage", "Détails du terrain", "Ciel détaillé", "texte ombragé", "texte de effacement", "Swaying Text", "Thème de couleurs", "Largeur d'écran", "Hauteur d'écran", "Curseur de souris", "Vitesse du jeu", "Fond fait sur commande", "Show AI Feedback", "Dynamic Menu Background", "Back", 0x0 }, { /* === EL_GERMAN === */ "Grafik", "Vollbild", "Dithering", "Landdetails", "Himmeldetails", "Ausblendender Text", "Schattierter Text", "Schwingender Text", "Farbschema", "Bildschirmbreite", "Bildschirmhöhe", "Mauszeiger", "Spielgeschwindigket", "Eigener Hintergrund", "Zeige AI Feedback", "Dynamischer Menühintergrund", "Zurück", 0x0 }, { /* === EL_SLOVAK === */ "Grafika", "Na celú obrazovku", "Rozptyl", "Detaily krajiny", "Detaily oblohy", "Slabnúci text", "Text s tieňom", "Swaying Text", "Farebná téma", "Šírka obrazovky", "Výška obrazovky", "Ukazovateľ myši", "Rýchlosť hry", "Vlastné pozadie", "Show AI Feedback", "Dynamic Menu Background", "Späť", 0x0 }, { /* === EL_RUSSIAN === */ "Графика", "Full Screen", "Сглаживание", "Детализированный ландшафт", "Детализированное небо", "Исчезающий текст", "Оттененный текст", "Swaying Text", "Цветовая тема", "Ширина окна игры", "Высота окна игры", "Курсор в игре", "Скорость игры", "Собственный фон", "Show AI Feedback", "Dynamic Menu Background", "Назад", 0x0 }, { /* === EL_SPANISH === */ /* ===== Needs to be translated ===== */ "Graphics", "Full Screen", "Dithering", "Detailed Land", "Detailed Sky", "Fading Text", "Shadowed Text", "Swaying Text", "Colour Theme", "Screen Width", "Screen Height", "Mouse Pointer", "Game Speed", "Custom Background", "Show AI Feedback", "Dynamic Menu Background", "Back", 0x0 }, { /* === EL_ITALIAN === */ /* ===== Needs to be translated ===== */ "Graphics", "Full Screen", "Dithering", "Detailed Land", "Detailed Sky", "Fading Text", "Shadowed Text", "Swaying Text", "Colour Theme", "Screen Width", "Screen Height", "Mouse Pointer", "Game Speed", "Custom Background", "Show AI Feedback", "Dynamic Menu Background", "Back", 0x0 } }, { /* -------------------- * * --- MAIN --- * * -------------------- */ { /* === EL_ENGLISH === */ "Main Menu", "Reset All", "Physics", "Weather", "Graphics", "Money", "Network", "Sound", "Weapon Tech Level", "Item Tech Level", "Landscape", "Turn Order", "Skip AI-only play", "Show FPS", "Language", "Back", 0x0 }, { /* === EL_PORTUGUESE === */ "Menu Principal", "Reset All", "Física", "Condições Meteorológicas", "Gráficos", "Finanças", "Rede", "Som", "Arma Nível Tecnológico", "Artigo Nível Tecnológico", "Cenário", "Ordem de Jogadas", "Continuar o Jogo Só com Robôs", "Show FPS", "Língua", "Back", 0x0 }, { /* === EL_FRENCH === */ "Menu principal", "Reset All", "Physique", "Météo", "Graphismes", "Finances", "Réseau", "Sound", "Niveau technique armes", "Niveau technique équipement", "Paysage", "Ordre de passage", "Continuer le Jeu Robots seuls", "Show FPS", "Langue", "Back", 0x0 }, { /* === EL_GERMAN === */ "Hauptmenü", "Alles zurücksetzen", "Physik", "Wetter", "Grafik", "Geld", "Netzwerk", "Sounds", "Technologiestufe Waffen", "Technologiestufe Gegenstände", "Landschaft", "Reihenfolge", "Überspringe Nur-KI", "FPS anzeigen", "Sprache", "Zurück", 0x0 }, { /* === EL_SLOVAK === */ "Hlavné menu", "Reset All", "Fyzika", "Počasie", "Grafika", "Peniaze", "Sieť", "Zvuk", "Tech úroveň zbraní", "Tech úroveň vecí", "Krajina", "Poradie","Preskočiť hru samotného PC", "Show FPS", "Jazyk", "Späť", 0x0 }, { /* === EL_RUSSIAN === */ "Главное меню", "Reset All", "Физика", "Погода", "Графика", "Экономика", "Настройки сети", "Звук", "Уровень оружия", "Уровень снаряжения", "Тип ландшафта", "Порядок хода", "Пропускать игру компьютеров", "Show FPS", "Язык (Language)", "Назад", 0x0 }, { /* === EL_SPANISH === */ /* ===== Needs to be translated ===== */ "Main Menu", "Reset All", "Physics", "Weather", "Graphics", "Money", "Network", "Sound", "Weapon Tech Level", "Item Tech Level", "Landscape", "Turn Order", "Skip AI-only play", "Show FPS", "Language", "Back", 0x0 }, { /* === EL_ITALIAN === */ /* ===== Needs to be translated ===== */ "Main Menu", "Reset All", "Physics", "Weather", "Graphics", "Money", "Network", "Sound", "Weapon Tech Level", "Item Tech Level", "Landscape", "Turn Order", "Skip AI-only play", "Show FPS", "Language", "Back", 0x0 } }, { /* -------------------- * * --- NETWORK --- * * -------------------- */ { /* === EL_ENGLISH === */ "Network", "Check Updates", "Networking", "Listen Port", "Server Address", "Server Port", "Back", 0x0 }, { /* === EL_PORTUGUESE === */ "Network", "Procurar actualizações", "Activar Rede", "Número de Porta", "Server Address", "Server Port", "Back", 0x0 }, { /* === EL_FRENCH === */ /* ===== Needs to be translated ===== */ "Network", "Check Updates", "Networking", "Listen Port", "Server Address", "Server Port", "Back", 0x0 }, { /* === EL_GERMAN === */ "Netzwerk", "Auf Aktualisierungen prüfen", "Netzwerk", "offener Port", "Serveraddresse", "Server Port", "Zurück", 0x0 }, { /* === EL_SLOVAK === */ "Sieť", "Kontrola aktualizácii", "Sieťová hra", "Port pre načúvanie", "Server Address", "Server Port", "Späť", 0x0 }, { /* === EL_RUSSIAN === */ "Настройки сети", "Проверять обновления", "Networking", "Listen Port", "Server Address", "Server Port", "Назад", 0x0 }, { /* === EL_SPANISH === */ /* ===== Needs to be translated ===== */ "Network", "Check Updates", "Networking", "Listen Port", "Server Address", "Server Port", "Back", 0x0 }, { /* === EL_ITALIAN === */ /* ===== Needs to be translated ===== */ "Network", "Check Updates", "Networking", "Listen Port", "Server Address", "Server Port", "Back", 0x0 } }, { /* -------------------- * * --- PHYSICS --- * * -------------------- */ { /* === EL_ENGLISH === */ "Physics", "Gravity", "Viscosity", "Land Slide", "Land Slide Delay", "Wall Type", "Boxed Mode", "Boxed Ceiling Wrapping", "Violent Death", "Timed Shots", "Volley Delay", "Explosion Debris", "Back", 0x0 }, { /* === EL_PORTUGUESE === */ "Física", "Gravidade", "Viscosidade", "Deslizamento de Terra", "Corrediça da terra atrasa", "Tipo de Parede", "Modalidade encaixotada", "Boxed Ceiling Wrapping", "Morte violenta", "Tiro programado", "Volley Delay", "Explosion Debris", "Back", 0x0 }, { /* === EL_FRENCH === */ "Physique", "Gravité", "Viscosité", "Glissements de terrain", "Délai glissements de terrain", "Murs", "Enfermé dans boîte", "Boxed Ceiling Wrapping", "Mort violente", "Projectile synchronisé", "Volley Delay", "Explosion Debris", "Back", 0x0 }, { /* === EL_GERMAN === */ "Physik", "Gravitation", "Reibung", "Erdrutsch", "Erdrutsch Verzögerung", "Wand Art", "Höhlenmodus", "Höhlendeckenwarp", "Gewalttätiger Tod", "Zeitlimit", "Mehrfachschussverzögerung", "Explosionsschrott", "Zurück", 0x0 }, { /* === EL_SLOVAK === */ "Fyzika", "Gravitácia", "Viskozita", "Zosun zeme", "Zdržanie zosunu zeme", "Typ steny", "Režim krabíc", "Boxed Ceiling Wrapping", "Krutá smrť", "Časované strely", "Volley Delay", "Explosion Debris", "Späť", 0x0 }, { /* === EL_RUSSIAN === */ "Физика", "Гравитация", "Сила трения", "Падение земли", "Задержка падения земли", "Тип стен", "Потолок", "Boxed Ceiling Wrapping", "Мощные взрывы танков", "Задержка выстрела", "Volley Delay", "Explosion Debris", "Назад", 0x0 }, { /* === EL_SPANISH === */ /* ===== Needs to be translated ===== */ "Physics", "Gravity", "Viscosity", "Land Slide", "Land Slide Delay", "Wall Type", "Boxed Mode", "Boxed Ceiling Wrapping", "Violent Death", "Timed Shots", "Volley Delay", "Explosion Debris", "Back", 0x0 }, { /* === EL_ITALIAN === */ /* ===== Needs to be translated ===== */ "Physics", "Gravity", "Viscosity", "Land Slide", "Land Slide Delay", "Wall Type", "Boxed Mode", "Boxed Ceiling Wrapping", "Violent Death", "Timed Shots", "Volley Delay", "Explosion Debris", "Back", 0x0 } }, { /* -------------------- * * --- PLAY --- * * -------------------- */ { /* === EL_ENGLISH === */ "Select Players", "Rounds", "New Game Name", "or Load Game", "Load Game", "Campaign", "Okay", "Back", 0x0 }, { /* === EL_PORTUGUESE === */ /* ===== Needs to be translated ===== */ "Select Players", "Rounds", "New Game Name", "or Load Game", "Load Game", "Campaign", "Okay", "Back", 0x0 }, { /* === EL_FRENCH === */ /* ===== Needs to be translated ===== */ "Select Players", "Rounds", "New Game Name", "or Load Game", "Load Game", "Campaign", "Okay", "Back", 0x0 }, { /* === EL_GERMAN === */ "Spieler auswählen", "Rundenanzahl", "Neues Spiel", "oder Spiel laden", "Spiel laden", "Kampagne", "Starten", "Zurück", 0x0 }, { /* === EL_SLOVAK === */ "Výber hráčov", "Kolá", "Názov novej hry", "alebo načítať hru", "Načítať hru", "Kampaň", "OK", "Späť", 0x0 }, { /* === EL_RUSSIAN === */ "Выберите игроков", "Кол-во раундов", "Имя для игры", "или имя прошлой игры", "Загрузить игру", "Кампания", "OK", "Назад", 0x0 }, { /* === EL_SPANISH === */ /* ===== Needs to be translated ===== */ "Select Players", "Rounds", "New Game Name", "or Load Game", "Load Game", "Campaign", "Okay", "Back", 0x0 }, { /* === EL_ITALIAN === */ /* ===== Needs to be translated ===== */ "Select Players", "Rounds", "New Game Name", "or Load Game", "Load Game", "Campaign", "Okay", "Back", 0x0 } }, { /* -------------------- * * --- PLAYER --- * * -------------------- * * Note: The title says "New Player", but this class is used for the * player editing, too. There the title is substituted by the player * name. * Further the "New Player" screen itself does not display the * "Delete This Player" option. */ { /* === EL_ENGLISH === */ "New Player", "Name", "Colour", "Type", "Team", "Generate Pref", "Played", "Won", "Tank Type", "Delete This Player", "Okay", "Back", 0x0 }, { /* === EL_PORTUGUESE === */ /* ===== Needs to be translated ===== */ "New Player", "Name", "Colour", "Type", "Team", "Generate Pref", "Played", "Won", "Tank Type", "Delete This Player", "Okay", "Back", 0x0 }, { /* === EL_FRENCH === */ /* ===== Needs to be translated ===== */ "New Player", "Name", "Colour", "Type", "Team", "Generate Pref", "Played", "Won", "Tank Type", "Delete This Player", "Okay", "Back", 0x0 }, { /* === EL_GERMAN === */ "Neuer Spieler", "Name", "Farbe", "Typ", "Team", "Erzeuge Konfig", "Gespielt", "Gewonnen", "Panzertyp", "Diesen Spieler Löschen", "Anlegen", "Zurück", 0x0 }, { /* === EL_SLOVAK === */ /* ===== Needs to be translated ===== */ "New Player", "Name", "Colour", "Type", "Team", "Generate Pref", "Played", "Won", "Tank Type", "Delete This Player", "OK", "Späť", 0x0 }, { /* === EL_RUSSIAN === */ /* ===== Needs to be translated ===== */ "New Player", "Name", "Colour", "Type", "Team", "Generate Pref", "Played", "Won", "Tank Type", "Delete This Player", "OK", "Назад", 0x0 }, { /* === EL_SPANISH === */ /* ===== Needs to be translated ===== */ "New Player", "Name", "Colour", "Type", "Team", "Generate Pref", "Played", "Won", "Tank Type", "Delete This Player", "Okay", "Back", 0x0 }, { /* === EL_ITALIAN === */ /* ===== Needs to be translated ===== */ "New Player", "Name", "Colour", "Type", "Team", "Generate Pref", "Played", "Won", "Tank Type", "Delete This Player", "Okay", "Back", 0x0 } }, { /* -------------------- * * --- PLAYERS --- * * -------------------- */ { /* === EL_ENGLISH === */ "Players", "Create New", "Back", 0x0 }, { /* === EL_PORTUGUESE === */ /* ===== Needs to be translated ===== */ "Players", "Create New", "Back", 0x0 }, { /* === EL_FRENCH === */ /* ===== Needs to be translated ===== */ "Players", "Create New", "Back", 0x0 }, { /* === EL_GERMAN === */ "Spieler", "Neuer Spieler", "Zurück", 0x0 }, { /* === EL_SLOVAK === */ /* ===== Needs to be translated ===== */ "Players", "Create New", "Späť", 0x0 }, { /* === EL_RUSSIAN === */ /* ===== Needs to be translated ===== */ "Players", "Create New", "Назад", 0x0 }, { /* === EL_SPANISH === */ /* ===== Needs to be translated ===== */ "Players", "Create New", "Back", 0x0 }, { /* === EL_ITALIAN === */ /* ===== Needs to be translated ===== */ "Players", "Create New", "Back", 0x0 } }, { /* -------------------- * * --- RESET --- * * -------------------- */ { /* === EL_ENGLISH === */ "Reset Options?", "Reset", "Back", 0x0 }, { /* === EL_PORTUGUESE === */ /* ===== Needs to be translated ===== */ "Reset Options?", "Reset", "Back", 0x0 }, { /* === EL_FRENCH === */ /* ===== Needs to be translated ===== */ "Optionen zurücksetzen?", "Zurücksetzen", "Abbruch", 0x0 }, { /* === EL_GERMAN === */ "Reset Options?", "Reset", "Back", 0x0 }, { /* === EL_SLOVAK === */ /* ===== Needs to be translated ===== */ "Reset Options?", "Reset", "Back", 0x0 }, { /* === EL_RUSSIAN === */ /* ===== Needs to be translated ===== */ "Reset Options?", "Reset", "Back", 0x0 }, { /* === EL_SPANISH === */ /* ===== Needs to be translated ===== */ "Reset Options?", "Reset", "Back", 0x0 }, { /* === EL_ITALIAN === */ /* ===== Needs to be translated ===== */ "Reset Options?", "Reset", "Back", 0x0 } }, { /* -------------------- * * --- SOUND --- * * -------------------- */ { /* === EL_ENGLISH === */ "Sound", "All Sound", "Sound Driver", "Music", "Volume Factor", "Back", 0x0 }, { /* === EL_PORTUGUESE === */ "Som", "Efeitos de Som", "Sistema de Som", "Música", "Volume Factor", "Back", 0x0 }, { /* === EL_FRENCH === */ "Sound", "Effets Sonores", "Système de Son", "Musique", "Volume Factor", "Back", 0x0 }, { /* === EL_GERMAN === */ "Sounds", "Alle Sounds", "Sound Treiber", "Musik", "Lautstärkefaktor", "Zurück", 0x0 }, { /* === EL_SLOVAK === */ "Zvuk", "Všetky zvuky", "Ovládač zvuku", "Hudba", "Volume Factor", "Späť", 0x0 }, { /* === EL_RUSSIAN === */ /* ===== Needs to be translated ===== */ "Sound", "All Sound", "Sound Driver", "Music", "Volume Factor", "Назад", 0x0 }, { /* === EL_SPANISH === */ /* ===== Needs to be translated ===== */ "Sound", "All Sound", "Sound Driver", "Music", "Volume Factor", "Back", 0x0 }, { /* === EL_ITALIAN === */ /* ===== Needs to be translated ===== */ "Sound", "All Sound", "Sound Driver", "Music", "Volume Factor", "Back", 0x0 } }, { /* -------------------- * * --- WEATHER --- * * -------------------- */ { /* === EL_ENGLISH === */ "Weather", "Meteor Showers", "Lightning", "Falling Dirt", "Laser Satellite", "Fog", "Max Wind Strength", "Wind Variation", "Back", 0x0 }, { /* === EL_PORTUGUESE === */ "Condições Meteorológicas", "Chuvas de Meteoro", "Relâmpagos", "Sujeira de queda", "Satélite do Laser", "Neblina", "Velocidade Max do Vento", "Variação do Vento", "Back", 0x0 }, { /* === EL_FRENCH === */ "Météo", "Orages de météorites", "Éclairs", "Saleté en chute", "Satellites Laser", "Brouillard", "Force maxi du vent", "Variation du vent", "Back", 0x0 }, { /* === EL_GERMAN === */ "Wetter", "Meteoritenregen", "Gewitter", "Schmutzregen", "Lasersatellit", "Nebel", "Max Windstärke", "Windveränderung", "Zurück", 0x0 }, { /* === EL_SLOVAK === */ "Počasie", "Dážď meteorov", "Blesky", "Padajúca zem", "Laserový satelit", "Hmla", "Maximálna sila vetra", "Zmena vetra", "Späť", 0x0 }, { /* === EL_RUSSIAN === */ "Погода", "Метеоритный дождь", "Молнии", "Падающая грязь", "Удары со спутника", "Туман", "Макс. сила ветра", "Изменения силы ветра", "Назад", 0x0 }, { /* === EL_SPANISH === */ /* ===== Needs to be translated ===== */ "Weather", "Meteor Showers", "Lightning", "Falling Dirt", "Laser Satellite", "Fog", "Max Wind Strength", "Wind Variation", "Back", 0x0 }, { /* === EL_ITALIAN === */ /* ===== Needs to be translated ===== */ "Weather", "Meteor Showers", "Lightning", "Falling Dirt", "Laser Satellite", "Fog", "Max Wind Strength", "Wind Variation", "Back", 0x0 } } }; /** @brief string array for the option text class content * * The ordering, although it looks a bit overwhelming here, is quite simple. * The first index is the text class, the second is the language. * * With this both translation and adding new content is fairly easy. Just * copy a block (after adding new enum entries at the proper places in * optiontypes.h) and edit to the new content. * * All text arrays end with a zero 0x0 entry. It is therefore not needed to * hard code any option value sizes. **/ const char* const OptionClassText[TC_TEXTCLASS_COUNT][EL_LANGUAGE_COUNT][maxEntriesPerClass] = { { /* -------------------- * * --- TC_COLOUR --- * * -------------------- */ /* === EL_ENGLISH === */ { "Regular", "Crispy", 0x0 }, /* === EL_PORTUGUESE === */ /* ===== Needs to be translated ===== */ { "Regular", "Crispy", 0x0 }, /* === EL_FRENCH === */ { "Régulier", "Croustillant", 0x0 }, /* === EL_GERMAN === */ { "Normal", "Kontrastreich", 0x0 }, /* === EL_SLOVAK === */ { "Normálna", "Svieža", 0x0 }, /* === EL_RUSSIAN === */ { "Обычная", "Четкая", 0x0 }, /* === EL_SPANISH === */ /* ===== Needs to be translated ===== */ { "Regular", "Crispy", 0x0 }, /* === EL_ITALIAN === */ /* ===== Needs to be translated ===== */ { "Regular", "Crispy", 0x0 } }, { /* --------------------- * * --- TC_LANDSLIDE --- * * --------------------- */ /* === EL_ENGLISH === */ { "None", "Tank Only", "Instant", "Gravity", "Cartoon", 0x0 }, /* === EL_PORTUGUESE === */ { "Nenhum", "Tanque Somente", "Instantâneo", "Gravidade", "Cartoon", 0x0 }, /* === EL_FRENCH === */ { "Aucun", "Réservoir Seulement", "Instantané", "Gravité", "Dessin animé", 0x0 }, /* === EL_GERMAN === */ { "Keine", "Nur Panzer", "Sofort", "Schwerkraft", "Cartoon", 0x0 }, /* === EL_SLOVAK === */ { "Žiaden", "Iba tank", "Okamžitý", "Gravitácia", "Kresl.film", 0x0 }, /* === EL_RUSSIAN === */ { "Выкл.", "Только танки", "Сразу же", "По умолчанию", "Как в мультиках", 0x0 }, /* === EL_SPANISH === */ /* ===== Needs to be translated ===== */ { "None", "Tank Only", "Instant", "Gravity", "Cartoon", 0x0 }, /* === EL_ITALIAN === */ /* ===== Needs to be translated ===== */ { "None", "Tank Only", "Instant", "Gravity", "Cartoon", 0x0 } }, { /* -------------------- * * --- TC_LANDTYPE --- * * -------------------- */ /* === EL_ENGLISH === */ { "Random", "Canyons", "Mountains", "Valleys", "Hills", "Foothills", "Plains", "None", 0x0 }, /* === EL_PORTUGUESE === */ { "Aleatório", "Canyons", "Montanhas", "Vales", "Colinas", "Morros", "Planos", "Nenhum", 0x0 }, /* === EL_FRENCH === */ { "Aléatoire", "Canyons", "Montagnes", "Vallées", "Collines", "Contreforts", "Plaines", "Aucun", 0x0 }, /* === EL_GERMAN === */ { "Zufällig", "Canyons", "Berge", "Täler", "Hügel", "Flache Hügel", "Ebene", "Nichts", 0x0 }, /* === EL_SLOVAK === */ { "Náhodná", "Kaňony", "Hory", "Údolia", "Kopce", "Úpätia", "Nížiny", "Žiadna", 0x0 }, /* === EL_RUSSIAN === */ { "Случайный", "Каньоны", "Горы", "Возвышенность", "Холмы", "Предгорья", "Равнины", "Выкл.", 0x0 }, /* === EL_SPANISH === */ /* ===== Needs to be translated ===== */ { "Random", "Canyons", "Mountains", "Valleys", "Hills", "Foothills", "Plains", "None", 0x0 }, /* === EL_ITALIAN === */ /* ===== Needs to be translated ===== */ { "Random", "Canyons", "Mountains", "Valleys", "Hills", "Foothills", "Plains", "None", 0x0 } }, { /* -------------------- * * --- TC_LANGUAGE --- * * -------------------- */ /* === EL_ENGLISH === */ { "English", "Português", "Français", "Deutsch", "Slovak", "Russian", "Spanish", "Italian", 0x0 }, /* === EL_PORTUGUESE === */ { "English", "Português", "Français", "Deutsch", "Slovak", "Russian", "Spanish", "Italian", 0x0 }, /* === EL_FRENCH === */ { "English", "Português", "Français", "Deutsch", "Slovak", "Russian", "Spanish", "Italian", 0x0 }, /* === EL_GERMAN === */ { "English", "Português", "Français", "Deutsch", "Slovak", "Russian", "Spanish", "Italian", 0x0 }, /* === EL_SLOVAK === */ { "Anglicky", "Portugalsky", "Francúzsky", "Nemecky", "Slovensky", "Rusky", "Spanish", "Italian", 0x0 }, /* === EL_RUSSIAN === */ { "English", "Português", "Français", "Deutsch", "Slovak", "Русский", "Spanish", "Italian", 0x0 }, /* === EL_SPANISH === */ /* ===== Needs to be translated ===== */ { "English", "Português", "Français", "Deutsch", "Slovak", "Russian", "Spanish", "Italian", 0x0 }, /* === EL_ITALIAN === */ /* ===== Needs to be translated ===== */ { "English", "Português", "Français", "Deutsch", "Slovak", "Russian", "Spanish", "Italian", 0x0 } }, { /* --------------------- * * --- TC_LIGHTNING --- * * --------------------- */ /* === EL_ENGLISH === */ { "Off", "Weak", "Energetic", "Violent", 0x0 }, /* === EL_PORTUGUESE === */ { "Desligado", "Fraco", "Energético", "Violento", 0x0 }, /* === EL_FRENCH === */ { "Aucun", "Faible", "Energique", "Violent", 0x0 }, /* === EL_GERMAN === */ { "Aus", "Schwach", "Energetisch", "Brutal", 0x0 }, /* === EL_SLOVAK === */ { "Vypnuté", "Slabé", "Energetické", "Kruté", 0x0 }, /* === EL_RUSSIAN === */ { "Нет", "Слабые", "Сильные", "Мощные", 0x0 }, /* === EL_SPANISH === */ /* ===== Needs to be translated ===== */ { "Off", "Weak", "Energetic", "Violent", 0x0 }, /* === EL_ITALIAN === */ /* ===== Needs to be translated ===== */ { "Off", "Weak", "Energetic", "Violent", 0x0 } }, { /* -------------------- * * --- TC_METEOR --- * * -------------------- */ /* === EL_ENGLISH === */ { "Off", "Light", "Heavy", "Lethal", 0x0 }, /* === EL_PORTUGUESE === */ { "Desligado", "Fraco", "Forte", "Letal", 0x0 }, /* === EL_FRENCH === */ /* ===== Needs to be translated ===== */ { "Off", "Light", "Heavy", "Lethal", 0x0 }, /* === EL_GERMAN === */ { "Aus", "Leicht", "Schwer", "Tödlich", 0x0 }, /* === EL_SLOVAK === */ { "Vypnuté", "Ľahké", "Ťažké", "Smrteľné", 0x0 }, /* === EL_RUSSIAN === */ { "Нет", "Слабый", "Сильный", "Смертельный", 0x0 }, /* === EL_SPANISH === */ /* ===== Needs to be translated ===== */ { "Off", "Light", "Heavy", "Lethal", 0x0 }, /* === EL_ITALIAN === */ /* ===== Needs to be translated ===== */ { "Off", "Light", "Heavy", "Lethal", 0x0 } }, { /* -------------------- * * --- TC_MOUSE --- * * -------------------- */ /* === EL_ENGLISH === */ { "Custom", "Default", 0x0 }, /* === EL_PORTUGUESE === */ { "Personalizado", "Padrão", 0x0 }, /* === EL_FRENCH === */ { "Pesonnel", "Défaut", 0x0 }, /* === EL_GERMAN === */ { "Angepasst", "Standard", 0x0 }, /* === EL_SLOVAK === */ { "Vlastné", "Východzie", 0x0 }, /* === EL_RUSSIAN === */ { "Собственный", "По умолчанию", 0x0 }, /* === EL_SPANISH === */ /* ===== Needs to be translated ===== */ { "Custom", "Default", 0x0 }, /* === EL_ITALIAN === */ /* ===== Needs to be translated ===== */ { "Custom", "Default", 0x0 } }, { /* -------------------- * * --- TC_OFFON --- * * -------------------- */ /* === EL_ENGLISH === */ { "Off", "On", 0x0 }, /* === EL_PORTUGUESE === */ { "Desligado", "Ligado", 0x0 }, /* === EL_FRENCH === */ { "Non", "Oui", 0x0 }, /* === EL_GERMAN === */ { "Aus", "An", 0x0 }, /* === EL_SLOVAK === */ { "Vypnuté", "Zapnuté", 0x0 }, /* === EL_RUSSIAN === */ { "Выкл.", "Вкл.", 0x0 }, /* === EL_SPANISH === */ /* ===== Needs to be translated ===== */ { "Off", "On", 0x0 }, /* === EL_ITALIAN === */ /* ===== Needs to be translated ===== */ { "Off", "On", 0x0 } }, { /* ----------------------- * * --- TC_OFFONRANDOM --- * * ----------------------- */ /* === EL_ENGLISH === */ { "Off", "On", "Random", 0x0 }, /* === EL_PORTUGUESE === */ { "Desligado", "Ligado", "Aleatório", 0x0 }, /* === EL_FRENCH === */ { "Non", "Oui", "Hasard", 0x0 }, /* === EL_GERMAN === */ { "Aus", "An", "Zufällig", 0x0 }, /* === EL_SLOVAK === */ { "Vypnuté", "Zapnuté", "Náhodný", 0x0 }, /* === EL_RUSSIAN === */ { "Выкл.", "Вкл.", "Случайно", 0x0 }, /* === EL_SPANISH === */ /* ===== Needs to be translated ===== */ { "Off", "On", "Random", 0x0 }, /* === EL_ITALIAN === */ /* ===== Needs to be translated ===== */ { "Off", "On", "Random", 0x0 } }, { /* ----------------------- * * --- TC_PLAYERPREF --- * * ----------------------- */ /* === EL_ENGLISH === */ { "Per Game", "Only Once", 0x0 }, /* === EL_PORTUGUESE === */ /* ===== Needs to be translated ===== */ { "Per Game", "Only Once", 0x0 }, /* === EL_FRENCH === */ /* ===== Needs to be translated ===== */ { "Per Game", "Only Once", 0x0 }, /* === EL_GERMAN === */ { "Pro Spiel", "Nur einmal", 0x0 }, /* === EL_SLOVAK === */ { "Na hru", "Iba raz", 0x0 }, /* === EL_RUSSIAN === */ { "Каждую игру заново", "Только один раз", 0x0 }, /* === EL_SPANISH === */ { "Por Juego", "Solo una vez", 0x0 }, /* === EL_ITALIAN === */ { "Per Gioco", "Only Once", 0x0 }, } , { /* ----------------------- * * --- TC_PLAYERTEAM --- * * ----------------------- */ /* === EL_ENGLISH === */ { "Sith", "Neutral", "Jedi", 0x0 }, /* === EL_PORTUGUESE === */ /* ===== Needs to be translated ===== */ { "Sith", "Neutral", "Jedi", 0x0 }, /* === EL_FRENCH === */ /* ===== Needs to be translated ===== */ { "Sith", "Neutral", "Jedi", 0x0 }, /* === EL_GERMAN === */ { "Sith", "Neutral", "Jedi", 0x0 }, /* === EL_SLOVAK === */ { "Sith", "Neutrálny", "Jedi", 0x0 }, /* === EL_RUSSIAN === */ { "Ситх", "Нейтральный", "Джедай", 0x0 }, /* === EL_SPANISH === */ /* ===== Needs to be translated ===== */ { "Sith", "Neutral", "Jedi", 0x0 }, /* === EL_ITALIAN === */ { "Sith", "Neutrale", "Jedi", 0x0 }, } , { /* ----------------------- * * --- TC_PLAYERTYPE --- * * ----------------------- */ /* === EL_ENGLISH === */ { "Human", "Useless", "Guesser", "Range", "Targetter", "Deadly", 0x0 }, /* === EL_PORTUGUESE === */ /* ===== Needs to be translated ===== */ { "Human", "Useless", "Guesser", "Range", "Targetter", "Deadly", 0x0 }, /* === EL_FRENCH === */ /* ===== Needs to be translated ===== */ { "Human", "Useless", "Guesser", "Range", "Targetter", "Deadly", 0x0 }, /* === EL_GERMAN === */ { "Mensch", "Nutzlos", "Ratlos", "Schütze", "Scharfschütze", "Tödlich", 0x0 }, /* === EL_SLOVAK === */ { "Človek", "Nepoužiteľný", "Ten, čo háda", "Ten, čo hľadá správnu silu", "Ten, čo mieri", "Ten, čo prináša smrť", 0x0 }, /* === EL_RUSSIAN === */ { "Человек", "Ноль", "Слабый ИИ", "Средний ИИ", "Сильный ИИ", "Терминатор", 0x0 }, /* === EL_SPANISH === */ /* ===== Needs to be translated ===== */ { "Humano", "Inservible", "Guesser", "Rango", "Targetter", "Mortal", 0x0 }, /* === EL_ITALIAN === */ { "Umano", "Sottodotato", "Mediocre", "Medio", "Elevato", "Mortale", 0x0 }, }, { /* --------------------- * * --- TC_SATELLITE --- * * --------------------- */ /* === EL_ENGLISH === */ { "Off", "Weak", "Strong", "Super", 0x0 }, /* === EL_PORTUGUESE === */ { "Desligado", "Fraco", "Forte", "Super", 0x0 }, /* === EL_FRENCH === */ { "Aucun", "Faible", "Fort", "Super", 0x0 }, /* === EL_GERMAN === */ { "Aus", "Schwach", "Stark", "Super", 0x0 }, /* === EL_SLOVAK === */ { "Vypnutý", "Slabý", "Silný", "Super", 0x0 }, /* === EL_RUSSIAN === */ { "Нет", "Слабые", "Сильные", "Супер!!", 0x0 }, /* === EL_SPANISH === */ /* ===== Needs to be translated ===== */ { "Off", "Weak", "Strong", "Super", 0x0 }, /* === EL_ITALIAN === */ /* ===== Needs to be translated ===== */ { "Off", "Weak", "Strong", "Super", 0x0 } }, { /* -------------------- * * --- TC_SKIPTYPE --- * * -------------------- */ /* === EL_ENGLISH === */ { "Off", "Humans Dead", 0x0 }, /* === EL_PORTUGUESE === */ /* ===== Wrong translation ? ===== */ { "Desligado", "Ligado", 0x0 }, /* === EL_FRENCH === */ /* ===== Wrong translation ? ===== */ { "Non", "Oui", 0x0 }, /* === EL_GERMAN === */ { "Aus", "Menschen Tot", 0x0 }, /* === EL_SLOVAK === */ { "Vypnuté", "Smrť ľudí", 0x0 }, /* === EL_RUSSIAN === */ /* ===== Wrong translation ? ===== */ { "Выкл.", "Вкл.", 0x0 }, /* === EL_SPANISH === */ /* ===== Needs to be translated ===== */ { "Off", "Humans Dead", 0x0 }, /* === EL_ITALIAN === */ /* ===== Needs to be translated ===== */ { "Off", "Humans Dead", 0x0 } }, { /* ----------------------- * * --- TC_SOUNDDRIVER --- * * ----------------------- */ /* === EL_ENGLISH === */ { "Auto Detect", "OSS", "ESD", "ARTS", "ALSA", "JACK", 0x0 }, /* === EL_PORTUGUESE === */ /* ===== Needs to be translated ===== */ { "Auto Detect", "OSS", "ESD", "ARTS", "ALSA", "JACK", 0x0 }, /* === EL_FRENCH === */ /* ===== Needs to be translated ===== */ { "Auto Detect", "OSS", "ESD", "ARTS", "ALSA", "JACK", 0x0 }, /* === EL_GERMAN === */ { "Automatisch", "OSS", "ESD", "ARTS", "ALSA", "JACK", 0x0 }, /* === EL_SLOVAK === */ /* ===== Needs to be translated ===== */ { "Auto Detect", "OSS", "ESD", "ARTS", "ALSA", "JACK", 0x0 }, /* === EL_RUSSIAN === */ /* ===== Needs to be translated ===== */ { "Auto Detect", "OSS", "ESD", "ARTS", "ALSA", "JACK", 0x0 }, /* === EL_SPANISH === */ /* ===== Needs to be translated ===== */ { "Auto Detect", "OSS", "ESD", "ARTS", "ALSA", "JACK", 0x0 }, /* === EL_ITALIAN === */ /* ===== Needs to be translated ===== */ { "Auto Detect", "OSS", "ESD", "ARTS", "ALSA", "JACK", 0x0 } }, { /* -------------------- * * --- TC_TANKTYPE --- * * -------------------- */ /* === EL_ENGLISH === */ { "Normal", "Classic", "Big Grey", "T34", "Heavy", "Future", "UFO", "Spider", "Big Foot", "Mini", 0x0 }, /* === EL_PORTUGUESE === */ /* ===== Needs to be translated ===== */ { "Normal", "Classic", "Big Grey", "T34", "Heavy", "Future", "UFO", "Spider", "Big Foot", "Mini", 0x0 }, /* === EL_FRENCH === */ /* ===== Needs to be translated ===== */ { "Normal", "Classic", "Big Grey", "T34", "Heavy", "Future", "UFO", "Spider", "Big Foot", "Mini", 0x0 }, /* === EL_GERMAN === */ { "Normal", "Klassisch", "Der Große Graue", "T34", "Schwergewicht", "Futuristisch", "UFO", "Spinne", "Big Foot", "Mini", 0x0 }, /* === EL_SLOVAK === */ { "Bežný", "Klasický", "Veľký šedý", "T34", "Ťažký", "Futuristický", "UFO", "Spider", "Big Foot", "Mini", 0x0 }, /* === EL_RUSSIAN === */ { "Обычный", "В старом стиле", "Большой Серый Танк", "Т-34", "Heavy", "Future", "UFO", "Spider", "Big Foot", "Mini", 0x0 }, /* === EL_SPANISH === */ { "Normal", "Clasico", "Big Grey", "T34", "Pesado", "Futuro", "UFO", "Araña", "Big Foot", "Mini", 0x0 }, /* === EL_ITALIAN === */ { "Normale", "Classico", "Big Grey", "T34", "Pesante", "Futuro", "UFO", "Spider", "Big Foot", "Mini", 0x0 }, }, { /* -------------------- * * --- TC_TURNTYPE --- * * -------------------- */ /* === EL_ENGLISH === */ { "High+", "Low+", "Random", "Simul", 0x0 }, /* === EL_PORTUGUESE === */ { "Melhores+", "Piores+", "Aleatório", "Simular", 0x0 }, /* === EL_FRENCH === */ { "Haut", "Bas", "Aléatoire", "Similaire", 0x0 }, /* === EL_GERMAN === */ { "Hoch+", "Niedrig+", "Zufällig", "Simul", 0x0 }, /* === EL_SLOVAK === */ { "Vysoký+", "Nízky+", "Náhodný", "Simul", 0x0 }, /* === EL_RUSSIAN === */ { "Сильные +", "Слабые +", "Случайно", "Все сразу", 0x0 }, /* === EL_SPANISH === */ /* ===== Needs to be translated ===== */ { "High+", "Low+", "Random", "Simul", 0x0 }, /* === EL_ITALIAN === */ /* ===== Needs to be translated ===== */ { "High+", "Low+", "Random", "Simul", 0x0 } }, { /* -------------------- * * --- TC_WALLTYPE --- * * -------------------- */ /* === EL_ENGLISH === */ { "Rubber", "Steel", "Spring", "Wrap", "Random", 0x0 }, /* === EL_PORTUGUESE === */ { "Elástico", "Aço", "Mola", "Envoltório", "Aleatório", 0x0 }, /* === EL_FRENCH === */ { "Elastique", "Acier", "Mou", "Enveloppe", "Aléatoire", 0x0 }, /* === EL_GERMAN === */ { "Gummi", "Stahl", "Federnd", "Verbunden", "Zufällig", 0x0 }, /* === EL_SLOVAK === */ { "Guma", "Oceľ", "Pružina", "Prikrývka", "Náhodný", 0x0 }, /* === EL_RUSSIAN === */ { "Резиновые", "Непробиваемые", "Пружинящие", "Бесконечность", "Случайные", 0x0 }, /* === EL_SPANISH === */ /* ===== Needs to be translated ===== */ { "Rubber", "Steel", "Spring", "Wrap", "Random", 0x0 }, /* === EL_ITALIAN === */ /* ===== Needs to be translated ===== */ { "Rubber", "Steel", "Spring", "Wrap", "Random", 0x0 } } }; // End of MenuClassText #endif // ATANKS_SRC_OPTIONCONTENT_H_INCLUDED atanks-6.6/src/environment.h0000644000175000017500000002411412636021030014265 0ustar apoapo#ifndef ENVIRONMENT_DEFINE #define ENVIRONMENT_DEFINE /* * atanks - obliterate each other with oversize weapons * Copyright (C) 2003 Thomas Hudson * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "main.h" #include "network.h" #include "gfxData.h" #include "text.h" // As everything depends on environment.h, PLAYER, TANK and VIRTUAL_OBJECT // Must be forwarded here, and included before the ENVIRONMENT definition class VIRTUAL_OBJECT; class TANK; class PLAYER; #ifndef HAS_DIRENT # if defined(ATANKS_IS_MSVC) # include "extern/dirent.h" # else # include # endif // Linux # define HAS_DIRENT 1 #endif //HAS_DIRENT #ifndef MAX_GRAVITY_DELAY # define GRAVITY_DELAY 200 # define MAX_GRAVITY_DELAY 3 #endif #define SPRING_CHANGE 1.25 #define BOUNCE_CHANGE 0.90 #define GET_R(x) ((x & 0xff0000) >> 16) #define GET_G(x) ((x & 0x00ff00) >> 8) #define GET_B(x) ( x & 0x0000ff) // Something from externs.h can not be used via include // due to circular dependencies. extern int32_t GREY; extern int32_t GREEN; // Defined in sound.cpp: extern int32_t MAX_VOLUME_FACTOR; /** @class ENVIRONMENT * @brief Fixed values of the current environment the game takes place in. * * This class holds all values and the corresponding methods that define * the gaming environment. * * This means that all values in here must be set on game round start and * must not change until the game round ends. * * So basically this class consolidates everything set up with the options * menu and by the game round initialization. * * Everything that can change between the game round start and the game round * end has to be managed by GLOBALDATA. **/ class ENVIRONMENT { public: /* ----------------------------------- * --- Constructors and destructor --- * ----------------------------------- */ explicit ENVIRONMENT (); ~ENVIRONMENT (); /* ---------------------- * --- Public methods --- * ---------------------- */ void addGamePlayer (PLAYER* player_); PLAYER* createNewPlayer (const char* player_name); void creditWinners (int32_t winner); void decreaseVolume (); void deletePermPlayer (PLAYER* player_); void destroy (); // Must be called before allegro shutdown void find_config_dir (); bool find_data_dir (); void first_init (); // Used for the first init after creation void genItemsList (); int32_t getPlayerByName (const char* player_name); void increaseVolume (); int32_t ingamemenu (); void initialise (); // Does a regular initialization bool isItemAvailable (int32_t itemNum); bool loadBackgroundMusic(); bool loadBitmaps (); bool loadFonts (); bool loadGameFiles (); void load_from_file (FILE *file); bool loadSounds (); void load_text_files (); void newRound (); void removeGamePlayer (PLAYER* player_); void Reset_Options (); bool save_to_file (FILE *file); bool sendToClients (const char* message); // send a short message to all network clients void set_fps (int32_t new_FPS); void window_update (int32_t x, int32_t y, int32_t w, int32_t h); /* ---------------------- * --- Public members --- * ---------------------- */ PLAYER** allPlayers = nullptr; int32_t availableItems[THINGS]; SAMPLE* background_music = nullptr; char** bitmap_filenames = nullptr; int32_t boxedMode = BM_OFF; BITMAP** button = nullptr; bool campaign_mode = false; double campaign_rounds = 0.; // 20% of the total round number bool check_for_updates = true; int32_t colourDepth = 0; int32_t colourTheme = CT_CRISPY; // land and sky gradiant theme char configDir[PATH_MAX + 1]; int32_t current_wallType = 0; int32_t custom_background = 0; char dataDir[PATH_MAX + 1]; int32_t debris_level = 1; bool detailedLandscape = false; bool detailedSky = false; bool ditherGradients = true; bool divide_money = false; bool do_box_wrap = false; bool drawBackground = true; bool dynamicMenuBg = true; bool fadingText = false; int32_t falling_dirt_balls = 0; int32_t fog = 0; int32_t fontHeight = 0; // Fixed in ctor, no calls to text_height(font) needed. double FPS_mod = 0.; // Pre-calculated, used in many places. int32_t frames_per_second = 0; int32_t full_screen = FULL_SCREEN_FALSE; char game_name[GAMENAMELEN + 1]; sGfxData gfxData; double gravity = 0.15; int32_t halfHeight = DEFAULT_SCREEN_HEIGHT / 2; int32_t halfWidth = DEFAULT_SCREEN_WIDTH / 2; double interest = 1.25; int32_t itemtechLevel = 5; bool isBoxed = false; bool isGameLoaded = true; int32_t landSlideDelay = MAX_GRAVITY_DELAY; int32_t landSlideType = SLIDE_GRAVITY; int32_t landType = LAND_RANDOM; eLanguages language = EL_ENGLISH; int32_t lightning = 0; bool loadGame = false; FONT* main_font = nullptr; int32_t maxFireTime = 0; int32_t maxNumTanks = 0; double maxVelocity = 0.; int32_t max_screen_updates = 64; int32_t menuBeginY = 0; int32_t menuEndY = 0; int32_t meteors = 0; BITMAP** misc = nullptr; BITMAP** missile = nullptr; int32_t mouseclock = 0; bool nameAboveTank = true; bool network_enabled = false; int32_t network_port = DEFAULT_NETWORK_PORT; double nextCampaignRound = 0; // When AI players will be raised next int32_t numAvailable = 0; int32_t numGamePlayers = 0; int32_t numHumanPlayers = 0; int32_t numPermanentPlayers = 0; int32_t number_of_bitmaps = 0; bool osMouse = true; // whether we should use the OS or custom mouse bool play_music = true; PLAYER** players = nullptr; PLAYER* playerOrder[MAXPLAYERS]; uint32_t rounds = 5; int32_t satellite = 0; uint32_t saved_gameindex = 0; const char** saved_game_list = nullptr; uint32_t saved_game_list_size = 0; int32_t scoreHitUnit = 75; int32_t scoreRoundWinBonus = 10000; int32_t scoreSelfHit = 25; int32_t scoreTeamHit = 10; int32_t scoreUnitDestroyBonus = 5000; int32_t scoreUnitSelfDestroy = 2500; int32_t screenHeight = DEFAULT_SCREEN_HEIGHT; int32_t screenWidth = DEFAULT_SCREEN_WIDTH; double sellpercent = 0.80; char server_name[129]; char server_port[129]; bool shadowedText = true; bool showAIFeedback = true; bool showFPS = false; int32_t skipComputerPlay = SKIP_HUMANS_DEAD; BITMAP* sky = nullptr; double slope[360][2]; int32_t sound_driver = SD_AUTODETECT; bool sound_enabled = true; SAMPLE** sounds = nullptr; int32_t startmoney = 15000; BITMAP** stock = nullptr; bool swayingText = true; BITMAP** tank = nullptr; BITMAP** tankgun = nullptr; int32_t temp_screenHeight = 0; // 0 to detect command line arguments int32_t temp_screenWidth = 0; // versus loaded configuration. int32_t time_to_fall = 0; // amount of time dirt will hover BITMAP** title = nullptr; int32_t turntype = TURN_RANDOM; double viscosity = 0.5; int32_t violent_death = 0; int32_t voices = 0; int32_t volley_delay = 10; // Delay factor for volley shots, 5-50 int32_t volume_factor = MAX_VOLUME_FACTOR; int32_t wallColour = GREEN; int32_t wallType = WALL_RUBBER; int32_t weapontechLevel = 5; BOX window; int32_t windstrength = 8; int32_t windvariation = 1; // Text structures holding (translated) lines of in game text TEXTBLOCK* gloat = nullptr; TEXTBLOCK* ingame = nullptr; TEXTBLOCK* instructions = nullptr; TEXTBLOCK* panic = nullptr; TEXTBLOCK* kamikaze = nullptr; TEXTBLOCK* retaliation = nullptr; TEXTBLOCK* revenge = nullptr; TEXTBLOCK* suicide = nullptr; TEXTBLOCK* war_quotes = nullptr; private: /* ----------------------- * --- Private methods --- * ----------------------- */ /* ----------------------- * --- Private members --- * ----------------------- */ DIR* music_dir = nullptr; }; #define HAS_ENVIRONMENT 1 #endif atanks-6.6/src/optionitemcolour.cpp0000644000175000017500000001273612636021030015676 0ustar apoapo#include "optionitemcolour.h" /** @brief Default constructor. * * The target is the color instance to handle. * * @param[in,out] player_ Pointer to the PLAYER instance to handle. * @param[in,out] action_ Pointer to the action function handling the button click. * @param[in] title_ The title of the option to display. * @param[in] titleIdx_ Index value of the submitted title. -1 means @a title_ is fixed. * @param[in] top_ Top position of the display area. * @param[in] left_ Left position of the display area. * @param[in] width_ Width of the display area. * @param[in] height_ Height of the display area. * @param[in] padding_ Padding of the title and buttons to the display area. **/ OptionItemColour::OptionItemColour( int32_t* color_, const char* title_, int32_t titleIdx_, int32_t top_, int32_t left_, int32_t width_, int32_t height_, int32_t padding_, int32_t show_size_) : OptionItemBase(ET_COLOR, title_, titleIdx_, nullptr, color_ ? *color_: WHITE, // WHITE to indicate an error. TC_NONE, nullptr, top_, left_, width_, height_, padding_, show_size_) { // For ET_COLOR, only the color_ is needed assert (color_ && "ERROR: color_ must be set"); tgt_color = color_; // Create the rainbow box: tgt_bitmap = create_bitmap(width, height); assert((width <= tgt_bitmap->w) && "Width too small"); assert((height <= tgt_bitmap->h) && "Height too small"); solid_mode(); clear_to_color (tgt_bitmap, BLACK); int32_t r, g, b; for (int32_t x = 0.; x <= width; ++x) { for (int32_t y = 0.; y <= height; ++y) { double h = static_cast(x) / static_cast(width) * 360.; double p = static_cast(y) / static_cast(height); double v = 1.; double s = p * 2.; if (p > 0.5) { v = 1. - ((p - 0.5) * 2.); s = 1.; } assert ( (h >= 0.) && (h <= 360.) && "h out of range"); assert ( (s >= 0.) && (s <= 1.) && "s out of range"); assert ( (v >= 0.) && (v <= 1.) && "v out of range"); hsv_to_rgb(h, s, v, &r, &g, &b); putpixel(tgt_bitmap, x + 1, y + 1, makecol(r, g, b)); } } } /// @brief default dtor only setting nullptr values. No further action needed. OptionItemColour::~OptionItemColour() { destroy_bitmap(tgt_bitmap); tgt_bitmap = nullptr; tgt_color = nullptr; } /* ---------------------- * --- Public methods --- * ---------------------- */ /** @brief pick a new color from @a x / @a y and store it in @a target * * @param[in] x The x coordinate of the pixel to pick the colour from. * @param[in] y The y coordinate of the pixel to pick the colour from. */ int32_t OptionItemColour::activate(int32_t, int32_t x, int32_t y, int32_t) { int32_t pick_x = x - left; int32_t pick_y = y - top; if ( (pick_x >= 1) && (pick_y >= 1) && (pick_x <= (width - 1)) && (pick_y <= (height - 1)) ) { // Note down where to draw the cross act_x = pick_x; act_y = pick_y; // To show both, do a redraw clear_display(false); display(false); // Get fresh pixel *tgt_color = getpixel(tgt_bitmap, pick_x, pick_y); // Draw helper cross: displayCross(); // Redraw decoration: this->displayDeco(*tgt_color); } else { // No cross act_x = 0; act_y = 0; } return 0; } /// @brief returns always true bool OptionItemColour::canGoDown() { return true; } /// @brief returns always true bool OptionItemColour::canGoUp() { return true; } /** @brief Display a color chooser for @a target and the display box. * * The display area is where to draw the "rainbow box". The box in which * to draw the currently selected color is a "deco", but not drawn by * display_deco(), because it would not have access to the target. * * @param[in] show_full decorations are drawn if this is set to true */ void OptionItemColour::display(bool show_full) { if (!drawn) { // Here is the chooser, the display box is "deco" blit(tgt_bitmap, global.canvas, 0, 0, left, top, width, height); rect (global.canvas, left, top, left + width, top + height, BLACK); // Draw helper cross displayCross(); drawn = true; } if (show_full) this->displayDeco(*tgt_color); } /// @brief Draw the selector cross void OptionItemColour::displayCross() { if ( (act_x > 0) && (act_y > 0) ) { // To make the color picking easier, draw a cross // to show where the user clicked in int32_t right = left + width; int32_t bottom = top + height; int32_t x = left + act_x; int32_t y = top + act_y; int32_t xl = x - 5; int32_t xr = x + 5; int32_t yt = y - 5; int32_t yb = y + 5; // Do not overdraw: if (xl <= left ) xl = x > left ? left + 1 : 0; if (yt <= top ) yt = y > top ? top + 1 : 0; if (xr >= right ) xr = x < right ? right - 1 : 0; if (yb >= bottom) yb = y < bottom ? bottom - 1 : 0; // If a coordinate is zero, the line is not drawn. int32_t cross_col = makecol(255 - getr(*tgt_color), 255 - getg(*tgt_color), 255 - getb(*tgt_color) ); if (xl) hline (global.canvas, xl, y, x - 1, cross_col); if (xr) hline (global.canvas, x + 1, y, xr, cross_col); if (yt) vline (global.canvas, x, yt, y - 1, cross_col); if (yb) vline (global.canvas, x, y + 1, yb, cross_col); } } /// @brief return true, the action function must be able to return an exit code. bool OptionItemColour::isExitButton() { return true; } atanks-6.6/src/sky.h0000644000175000017500000000634013006377360012544 0ustar apoapo#ifndef SKY_HEADER_FILE__ #define SKY_HEADER_FILE__ #include "main.h" #define SKIES 8 // The first SKIES are regular, the second are crispy. // Sky gradients, first line is top of screen const gradient sky_gradient1[] = { {{255,255,255,0}, 0.0f}, {{100,100,100,0}, 0.1f}, {{ 80,100,100,0}, 0.5f}, {{0,0,0,0}, -1} }; const gradient sky_gradient2[] = { {{ 0, 0, 40,0}, 0.0f}, {{ 40, 40,100,0}, 0.5f}, {{ 80,80,100,0}, 0.75f}, {{0,0,0,0}, -1} }; const gradient sky_gradient3[] = { {{240, 0, 40,0}, 0.0f}, {{140, 40,100,0}, 0.15f}, {{ 80, 80,100,0}, 0.75f}, {{0,0,0,0}, -1} }; const gradient sky_gradient4[] = { {{ 40, 40, 40,0}, 0.0f}, {{100, 40,100,0}, 0.2f}, {{ 80, 80,100,0}, 0.75f}, {{0,0,0,0}, -1} }; const gradient sky_gradient5[] = { {{ 0, 90, 40,0}, 0.0f}, {{ 0,120,100,0}, 0.2f}, {{ 40,200,100,0}, 0.75f}, {{0,0,0,0}, -1} }; // Sunset const gradient sky_gradient6[] = { {{ 70,240,240,0}, 0.0f}, {{ 70,200,200,0}, 0.3f}, {{ 70,200,160,0}, 0.35f}, {{255,200, 70,0}, 0.6f}, {{255,255,128,0}, 1.0f}, {{0,0,0,0}, -1} }; // Burning sky const gradient sky_gradient7[] = { {{ 20, 20, 20,0}, 0.0f}, {{255,200, 0,0}, 0.08f}, {{255,255, 0,0}, 0.13f}, {{ 20, 20, 20,0}, 0.16f}, {{255,200, 0,0}, 0.5f}, {{255,255, 0,0}, 1.0f}, {{0,0,0,0}, -1} }; // Burning landscape, black skies const gradient sky_gradient8[] = { {{ 0, 0, 0,0}, 0.0f}, {{100, 0, 0,0}, 0.4f}, {{255,255,255,0}, 0.8f}, {{0,0,0,0}, -1} }; // Sky gradients, first line is top of screen // dark blue to darker blue const gradient sky_gradient9[] = { {{ 90, 90,255,0}, 0.0f}, {{ 60, 60,200,0}, 0.3f}, {{ 30, 30,150,0}, 1.0f}, {{0,0,0,0}, -1} }; // dark blue to blue-grey const gradient sky_gradient10[] = { {{110,110,255,0}, 0.0f}, {{150,150,255,0}, 0.3f}, {{200,200,255,0}, 1.0f}, {{0,0,0,0}, -1} }; // white to grey-blue to dark blue const gradient sky_gradient11[] = { {{255,255,255,0}, 0.0f}, {{200,200,255,0}, 0.3f}, {{ 80, 80,180,0}, 1.0f}, {{0,0,0,0}, -1} }; // simple purple: dark to light const gradient sky_gradient12[] = { {{133, 33,133,0}, 0.0f}, {{220,120,220,0}, 1.0f}, {{0,0,0,0}, -1} }; // night sky: black to dark purple const gradient sky_gradient13[] = { {{ 0, 0, 0,0}, 0.0f}, {{ 50, 0, 50,0}, 1.0f}, {{0,0,0,0}, -1} }; // Sunset const gradient sky_gradient14[] = { {{ 0, 0, 0,0}, 0.0f}, {{ 50, 0, 50,0}, 0.1f}, {{ 90, 20, 0,0}, 0.3f}, {{180, 50, 0,0}, 0.7f}, {{255,150,150,0}, 0.9f}, {{255,255,100,0}, 1.0f}, {{0,0,0,0}, -1} }; // Burning sky const gradient sky_gradient15[] = { {{185, 60, 60,0}, 0.0f}, {{240,110,110,0}, 0.5f}, {{255,110,110,0}, 1.0f}, {{0,0,0,0}, -1} }; // Burning landscape, black skies const gradient sky_gradient16[] = { {{ 0, 0, 0,0}, 0.0f}, {{170, 50, 50,0}, 0.5f}, {{220,110,110,0}, 1.0f}, {{0,0,0,0}, -1} }; const gradient * const sky_gradients[] = { sky_gradient1, sky_gradient2, sky_gradient3, sky_gradient4, sky_gradient5, sky_gradient6, sky_gradient7, sky_gradient8, sky_gradient9, sky_gradient10, sky_gradient11, sky_gradient12, sky_gradient13, sky_gradient14, sky_gradient15, sky_gradient16 }; #define GENSKY_DETAILED 1 #define GENSKY_DITHERGRAD 2 class LevelCreator; void generate_sky(LevelCreator* lcr, const gradient* grad, int32_t flags); #endif atanks-6.6/src/atanks.cpp0000644000175000017500000013264114066450540013555 0ustar apoapo#define ATANKS_SRC_ATANKS_CPP 1 /* * atanks - obliterate each other with oversize weapons * Copyright (C) 2002,2003 Thomas Hudson,Juraj Michalek * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "debug.h" #include "globals.h" #include "optionscreens.h" #include "player.h" #include "button.h" #include "files.h" #include "update.h" #include "tank.h" #include "beam.h" #include "missile.h" #include "gameloop.h" #include "clock.h" #ifdef NETWORK # include # include "client.h" #endif #define HELP_REQUESTED -100 #define SWITCH_HELP "-h" #define SWITCH_FULL_SCREEN "-fs" #define SWITCH_WINDOWED "--windowed" #define SWITCH_NOSOUND "--nosound" #define SWITCH_DATADIR "--datadir" #define SWITCH_CONFIGDIR "-c" #define SWITCH_NO_CONFIG "--noconfig" /***************************** *** static local variables *** *****************************/ static bool allow_network = true; static char fullPath[PATH_MAX + 1] = { 0 }; static eFullScreen full_screen = FULL_SCREEN_EITHER; static bool load_config_file = true; static int32_t screen_mode = GFX_AUTODETECT_WINDOWED; #ifdef NETWORK static int32_t client_socket = -1; #endif // NETWORK /************************* *** External variables *** *************************/ extern WEAPON weapon[WEAPONS]; // from files.cpp extern WEAPON naturals[NATURALS]; // from files.cpp extern ITEM item[ITEMS]; // from files.cpp /***************************** *** static local functions *** *****************************/ static void Change_Settings(bool old_sound, int32_t old_itech, int32_t old_wtech); static void close_button_handler(void); static void createConfig(); static void credits(); static const char* do_winner(); static void endgame_cleanup(); void init_mouse_cursor(); static void init_game_settings(); static void initialisePlayers(); static bool loadConfig(); static bool loadPlayers(FILE* file); static int32_t menu(); static void newgame(); static int32_t parse_args(int32_t argc, char** argv); static void play_demo(); static void play_local(); static void play_networked(); static void print_text_help(); static void print_text_initmsg(); static bool Save_Game_Settings(const char* path); static void show_options(); static void title(); /***************************** *** external functions *** *****************************/ void draw_simple_bg(bool drawImage); // from shop.cpp void quickChange (bool clearerror); // from shop.cpp /******************************* *** Function implementations *** *******************************/ /** @brief Take care of changed settings. * * This function detects changes to some environment settings and, if a * change has happened, makes the required changes to the game environment. **/ static void Change_Settings(bool old_sound, int32_t old_itech, int32_t old_wtech) { // first, check for a change in the sound settings if (old_sound != env.sound_enabled) { if (env.sound_enabled) { if (detect_digi_driver(DIGI_AUTODETECT)) { if (install_sound (DIGI_AUTODETECT, MIDI_NONE, NULL) < 0) fprintf (stderr, "install_sound: failed turning on sound\n"); } else fprintf (stderr, "detect_digi_driver found no sound device\n"); } else remove_sound(); } // End of sound checking // Check for tech level changes if ( (old_itech != env.itemtechLevel) || (old_wtech != env.weapontechLevel) ) env.genItemsList(); } /** @brief Close Button Handler * * This function catches the close command, usually given by the user pressing * the close window button. We'll try to clean-up. **/ static void close_button_handler(void) { global.pressCloseButton(); } /// @brief Show the credits file in a text box static void credits () { snprintf (path_buf, PATH_MAX, "%s/credits.txt", env.dataDir); TEXTBLOCK my_text(path_buf); scrollTextList (&my_text); } /// @brief create a fresh new config if loading was prohibited or failed static void createConfig() { env.numPermanentPlayers = 0; // Override full screen settings from command line if ( (full_screen == FULL_SCREEN_TRUE) || (full_screen == FULL_SCREEN_FALSE) ) env.full_screen = full_screen; // Determine basic screen settings env.temp_screenWidth = env.screenWidth; env.temp_screenHeight = env.screenHeight; env.halfWidth = env.screenWidth / 2; env.halfHeight = env.screenHeight / 2; env.menuBeginY = (env.screenHeight - 400) / 2; if (env.menuBeginY < 0) env.menuBeginY = 0; env.menuEndY = env.screenHeight - env.menuBeginY; // Perform game initialization init_game_settings (); env.load_text_files(); init_mouse_cursor(); // At least one human player must be created PLAYER *tempPlayer = nullptr; int32_t tempRes = PE_BACK; // ePlayerEdit, player_types.h char noHumanMsg[200] = { 0 }; while (!(tempRes & PE_CONFIRM_NEW)) { tempRes = new_player(&tempPlayer, 0); if (tempPlayer) { // Error case 1: The created player is an AI player if (HUMAN_PLAYER != tempPlayer->type) { snprintf(noHumanMsg, 199, "The player \"%s\" is no human player!", tempPlayer->getName()); errorMessage = noHumanMsg; errorX = env.halfWidth - text_length(font, errorMessage) / 2; errorY = env.menuBeginY + 15; tempPlayer = nullptr; // It is saved already tempRes = PE_BACK; } } else { // error case 2: No player was created at all strncpy(noHumanMsg, "Please create at least one human player!", 199); errorMessage = noHumanMsg; errorX = env.halfWidth - text_length(font, errorMessage) / 2; errorY = env.menuBeginY + 15; tempRes = PE_BACK; } } // End of force-creating a human player // Default AI player names const char* const defaultNames[] = { "Caesar", "Alex", "Hatshepsut", "Patton", "Napoleon", "Attila", "Catherine", "Hannibal", "Stalin", "Mao" }; for (int32_t i = 0; i < 10; ++i) { tempPlayer = env.createNewPlayer(defaultNames[i]); tempPlayer->type = static_cast(rand () % (LAST_PLAYER_TYPE - 1) + 1); tempPlayer->generatePreferences(); } } /// @brief Draw the endgame screen and return the winner name /// or nullptr if no winner was found. The returned text is static /// and must *NOT* be freed. static const char* do_winner() { static char return_string[257] = { 0 }; // Get the dimensions of the score board and the texts right: int32_t lh = env.fontHeight + 3; // The line height. int32_t pd = 10; // Padding. How much space to the board border. // Find out longest player name and score length do determine the // score board size and score entry positions char head_name[5] = "Name"; char head_value[6] = "Value"; char head_score[30] = { 0 }; snprintf(head_score, 29, " %6s %6s %6s %6s", "Kills", "Killed", "Diff", "Won"); int32_t namLen = text_length(font, head_name); int32_t valLen = text_length(font, head_value); int32_t scoLen = text_length(font, head_score); // While checking for the winner, determine the real lengths needed int32_t idx_jedi = -1; // Jedi Player with the highest score int32_t idx_neutral = -1; // Neutral player with the highest score int32_t idx_sith = -1; // SitH Player with the highest score int32_t idx_winner = -1; // Player with the highest score int32_t maxdiff = INT32_MIN; int32_t maxscore = -1; int32_t maxkills = -1; int32_t minkilled = INT32_MAX; bool multiwinner = false; PLAYER** players = env.players; // short cut int32_t pl_money[MAXPLAYERS] = { 0 }; for (int32_t z = 0; z < env.numGamePlayers; z++) { // Check the length of the name int32_t curLen = text_length(font, players[z]->getName()); if (curLen > namLen) namLen = curLen; // Sum up weapons worth for (int32_t j = 0; j < WEAPONS; ++j) { if (weapon[j].amt && players[z]->nm[j]) pl_money[z] += (weapon[j].cost / weapon[j].amt) * players[z]->nm[j]; } // Sum up items worth for (int32_t j = 0; j < ITEMS; ++j) { if (item[j].amt && players[z]->ni[j]) pl_money[z] += (item[j].cost / item[j].amt) * players[z]->ni[j]; } // Check value length char valTxt[32] = { 0 }; snprintf(valTxt, 16, " %14s", Add_Comma(pl_money[z])); curLen = text_length(font, valTxt); if (curLen > valLen) valLen = curLen; // Check the length of the score char scoTxt[30] = { 0 }; int32_t kill_diff = players[z]->kills - players[z]->killed; snprintf(scoTxt, 29, " %6d %6d %6d %6d", players[z]->kills, players[z]->killed, kill_diff, players[z]->score); curLen = text_length(font, scoTxt); if (curLen > scoLen) scoLen = curLen; // Determine whether a new winner or a draw situation is found if ( (players[z]->score == maxscore) && (players[z]->kills == maxkills) && (players[z]->killed == minkilled) ) { multiwinner = true; if (TEAM_NEUTRAL == players[z]->team) idx_neutral = z; } else if ( (players[z]->score > maxscore) || ( (players[z]->score == maxscore) && (kill_diff > maxdiff) ) || ( (players[z]->score == maxscore) && (kill_diff == maxdiff) && (players[z]->kills > maxkills) ) ) { // Note: killed doesn't need to be checked. the same // amount of kills with less killed score would mean // a better diff anyway. maxdiff = kill_diff; maxkills = players[z]->kills; maxscore = players[z]->score; minkilled = players[z]->killed; idx_winner = z; multiwinner = false; if (TEAM_NEUTRAL == players[z]->team) idx_neutral = z; } if (TEAM_JEDI == players[z]->team) idx_jedi = z; if (TEAM_SITH == players[z]->team) idx_sith = z; } // end of checking players // Now calculate the dimensions of our score board. int32_t w = namLen + valLen + scoLen + (2 * pd); int32_t h = ((env.numGamePlayers + 4) * lh) + (2 * pd); int32_t x = env.halfWidth - (w / 2); int32_t y = env.halfHeight - (h / 2); int32_t qy = y + h + pd; BOX qarea(x + pd, qy, w - (2 * pd), env.screenHeight - pd - qy); //stop mouse during drawing SHOW_MOUSE(nullptr) global.make_update (x, y - pd - env.misc[9]->h, w, h + pd + env.misc[9]->h); // Draw the winning bitmap, the background and the border draw_simple_bg(false); draw_sprite(global.canvas, env.misc[9], env.halfWidth - (env.misc[9]->w / 2), y - env.misc[9]->h - pd); rectfill(global.canvas, x, y, x + w, y + h, BLACK); rect (global.canvas, x, y, x + w, y + h, WHITE); rect (global.canvas, x + 1, y + 1, x + w - 1, y + h - 1, GREY); // Add the padding now, or it must be summed in everywhere! x += pd; y += pd; w -= 2 * pd; h -= 2 * pd; // Draw winner names and info about all players if (multiwinner) { // check for team win if ( TEAM_JEDI == players[idx_winner]->team ) { if ( ( (idx_sith >= 0) && (players[idx_sith]->score == players[idx_winner]->score) ) || ( (idx_neutral >= 0) && (players[idx_neutral]->score == players[idx_winner]->score) ) ) snprintf(return_string, 256, "%s", env.ingame->Get_Line(48)); else snprintf(return_string, 256, "%s", env.ingame->Get_Line(45)); } else if ( TEAM_SITH == players[idx_winner]->team ) { if ( ( (idx_jedi >= 0) && (players[idx_jedi]->score == players[idx_winner]->score) ) || ( (idx_neutral >= 0) && (players[idx_neutral]->score == players[idx_winner]->score) ) ) snprintf(return_string, 256, "%s", env.ingame->Get_Line(48)); else snprintf(return_string, 256, "%s", env.ingame->Get_Line(46)); } else snprintf(return_string, 256, "%s", env.ingame->Get_Line(48)); } else { if ( TEAM_JEDI == players[idx_winner]->team ) snprintf(return_string, 256, "%s", env.ingame->Get_Line(45)); else if (TEAM_SITH == players[idx_winner]->team) snprintf(return_string, 256, "%s", env.ingame->Get_Line(46)); else snprintf(return_string, 256, "%s: %s", env.ingame->Get_Line(47), players[idx_winner]->getName() ); } // Print the title lines textprintf_centre_ex(global.canvas, font, env.halfWidth, y, players[idx_winner]->color, -1, "%s", return_string); // to make the following easier, skip the two used lines // (The title and one blank) y += 2 * lh; // Second title line, the score board header int32_t valStart = x + namLen; int32_t scoStart = valStart + valLen; int32_t scoWidth = scoLen / 4; textout_ex (global.canvas, font, "Name", x, y, WHITE, -1); textprintf_right_ex (global.canvas, font, valStart + valLen, y, WHITE, -1, " %14s", "$ Value"); textprintf_right_ex (global.canvas, font, scoStart + (1 * scoWidth), y, GREEN, -1, " %6s", "Kills"); textprintf_right_ex (global.canvas, font, scoStart + (2 * scoWidth), y, RED, -1, " %6s", "Killed"); textprintf_right_ex (global.canvas, font, scoStart + (3 * scoWidth), y, WHITE, -1, " %6s", "Diff"); textprintf_right_ex (global.canvas, font, scoStart + (4 * scoWidth), y, WHITE, -1, " %6s", "Won"); // Now get the score list: sScore* score_array = sort_scores(); // And get the head entry: sScore* score = score_array; while (score->prev) score = score->prev; // Eventually the player scores can be displayed: // (again skip the previous line for easier reading/doing below) y += lh; int32_t z = 0; while (score) { textout_ex (global.canvas, font, score->name, x, y + (z * lh), score->color, -1); textprintf_right_ex (global.canvas, font, valStart + valLen, y + (z * lh), WHITE, -1, " %14s", Add_Comma(pl_money[score->idx])); textprintf_right_ex (global.canvas, font, scoStart + (1 * scoWidth), y + (z * lh), GREEN, -1, " %6d", score->kills); textprintf_right_ex (global.canvas, font, scoStart + (2 * scoWidth), y + (z * lh), RED, -1, " %6d", score->killed); textprintf_right_ex (global.canvas, font, scoStart + (3 * scoWidth), y + (z * lh), score->diff < 0 ? RED : GREEN, -1, " %6d", score->diff); textprintf_right_ex (global.canvas, font, scoStart + (4 * scoWidth), y + (z * lh), WHITE, -1, " %6d", score->score); ++z; score = score->next; } global.do_updates(); // Add a war quote: const char* quote = env.war_quotes->Get_Random_Line(); if (quote) draw_text_in_box(&qarea, quote, false); // Clean up delete [] score_array; return return_string; } static void endgame_cleanup() { while (env.numGamePlayers > 0) { if (env.players[0]->tank) { delete env.players[0]->tank; env.players[0]->tank = nullptr; } // make sure networked clients say good-bye and return // to old AI level if (env.players[0]->type >= NETWORK_CLIENT) env.players[0]->type = env.players[0]->previous_type; env.removeGamePlayer(env.players[0]); } global.clear_objects(); } #if defined(ATANKS_IS_MSVC) && defined(ATANKS_DEBUG) // this removes the keyboard and mouse handler on break events, // hopefully making both operational in Visual Studio again if // a crash was caught. It does not work on breakpoints though, // that doesn't trigger the Handler. BOOL WINAPI ctrlHandler(DWORD CtrlType) { if ( ( CTRL_BREAK_EVENT == CtrlType ) || ( CTRL_C_EVENT == CtrlType ) ) { remove_mouse(); remove_keyboard(); } return FALSE; } #endif // Microsoft Visual C++ and Debug void init_mouse_cursor() { if (env.osMouse ) show_os_cursor(MOUSE_CURSOR_ARROW); else { set_mouse_sprite (env.misc[0]); set_mouse_sprite_focus (0, 0); } } static void init_game_settings() { if (env.full_screen == FULL_SCREEN_TRUE) env.osMouse = false; int32_t status = allegro_init(); if (status) { fprintf(stderr, "Unable to start Allegro.\nStatus %d", status); exit(1); } // Be sure no vsync is used: const char* no_vsync = get_config_string("graphics", "disable_vsync", "no"); if ( strcasecmp("yes", no_vsync) ) set_config_string("graphics", "disable_vsync", "yes"); set_window_title( "Atomic Tanks V" VERSION); // Before we get started make sure, that if we are using full // screen mode, we have to ignore width and height settings. if (env.full_screen == FULL_SCREEN_TRUE) { status = get_desktop_resolution(&env.screenWidth, &env.screenHeight); if (status < 0) { env.screenWidth = 800; env.screenHeight = 600; } screen_mode = GFX_AUTODETECT_FULLSCREEN; } // check for X pressed on the window bar LOCK_FUNCTION(close_button_handler); set_close_button_callback(close_button_handler); // Ensure sane colour depth if (! env.colourDepth) env.colourDepth = desktop_color_depth(); if ( (env.colourDepth != 16) && (env.colourDepth != 32) ) env.colourDepth = 16; set_color_depth (env.colourDepth); // Now the screen mode can be set if (set_gfx_mode(screen_mode, env.screenWidth, env.screenHeight, 0, 0) < 0) { perror( "set_gfx_mode"); status = set_gfx_mode(screen_mode, 800, 600, 0, 0); if ( status < 0 ) exit(1); env.screenWidth = 800; env.screenHeight = 600; } enable_triple_buffer(); env.halfWidth = env.screenWidth / 2; env.halfHeight = env.screenHeight / 2; #ifdef ATANKS_IS_MSVC # if defined(ATANKS_DEBUG) SetConsoleCtrlHandler(ctrlHandler, TRUE); #endif // DEBUG if ( env.full_screen == FULL_SCREEN_TRUE ) set_display_switch_mode(SWITCH_BACKAMNESIA); else set_display_switch_mode(SWITCH_BACKGROUND); #endif // ATANKS_IS_WINDOWS if (install_keyboard () < 0) { perror ( "install_keyboard failed"); exit (1); } if (install_mouse () < 0) perror ( "install_mouse failed"); // check to see if we want sound if (env.sound_enabled) { int32_t sound_type = DIGI_AUTODETECT; # ifdef ATANKS_IS_LINUX switch ( env.sound_driver ) { case SD_OSS: sound_type = DIGI_OSS; break; case SD_ESD: sound_type = DIGI_ESD; break; case SD_ARTS: sound_type = DIGI_ARTS; break; case SD_ALSA: sound_type = DIGI_ALSA; break; case SD_JACK: sound_type = DIGI_JACK; break; default: sound_type = DIGI_AUTODETECT; break; } # ifdef UBUNTU if (DIGI_AUTODETECT == sound_type) sound_type = DIGI_OSS; # endif // UBUNTU # endif // ATANKS_IS_LINUX int32_t channels = detect_digi_driver(sound_type); if (!channels && (DIGI_AUTODETECT != sound_type)) { sound_type = DIGI_AUTODETECT; channels = detect_digi_driver(sound_type); } if (channels) { env.voices = channels > 64 ? 32 : channels > 32 ? 16 : channels > 16 ? 8 : channels; int32_t snd_installed = -1; while ( (env.voices > 1) && (0 > snd_installed)) { DEBUG_LOG("Sound Init", "Reserving %d / %d voices", env.voices, channels) reserve_voices(env.voices, 0); snd_installed = install_sound(sound_type, DIGI_NONE, nullptr); // Instead of failing directly, reduces voices first if (-1 == snd_installed) { DEBUG_LOG("Sound Init", "Too many voices, halving...", 0) env.voices /= 2; } } // Now display an error message if it was not possible to succeed if (0 > snd_installed) { fprintf (stderr, "install_sound: failed initialising sound\n"); fprintf (stderr, "Please try selecting a different Sound Driver" " from the Options menu.\n"); } else { int32_t set_voices = get_mixer_voices(); DEBUG_LOG("Sound Init", "Mixer has %d voices", set_voices) if (set_voices < env.voices) env.voices = set_voices; // Set the mixer quality: int32_t mixq = get_mixer_quality(); if (mixq < 2) { DEBUG_LOG("Sound Init", "Raising mixer quality from %d to 2", mixq) set_mixer_quality(2); } } } else fprintf (stderr, "detect_digi_driver detected no sound device\n"); } // End of sound initialization // Colour initialization, must be done here when allegro is initialized. BLACK = makecol (0x00, 0x00, 0x00); BLUE = makecol (0x00, 0x00, 0xff); DARK_GREEN = makecol (0x00, 0x50, 0x00); DARK_GREY = makecol (0x40, 0x40, 0x40); DARK_RED = makecol (0x80, 0x00, 0x00); GOLD = makecol (0xaf, 0xaf, 0x00); GREY = makecol (0x80, 0x80, 0x80); GREEN = makecol (0x00, 0xff, 0x00); LIGHT_GREEN = makecol (0x80, 0xff, 0x80); LIME_GREEN = makecol (0xc8, 0xff, 0xc8); ORANGE = makecol (0xfa, 0x96, 0x00); PINK = makecol (0xff, 0x00, 0xff); PURPLE = makecol (0xc8, 0x00, 0xc8); RED = makecol (0xff, 0x00, 0x00); SILVER = makecol (0xc0, 0xc0, 0xc0); TURQUOISE = makecol (0x96, 0xc8, 0xff); WHITE = makecol (0xff, 0xff, 0xff); YELLOW = makecol (0xff, 0xff, 0x00); // Start preparing environment env.first_init(); // *MUST* be done before GLOBALDATA or global.first_init(); // max_screen_updates is not correct! // Prepare remaining environment clear_to_color (global.canvas, BLACK); env.loadBitmaps(); title(); env.loadSounds(); init_mouse_cursor(); env.loadFonts(); env.window.x = 0; env.window.y = 0; env.window.w = 0; env.window.h = 0; for (int32_t z = 0; z < env.max_screen_updates; z++) { global.updates[z].x = 0; global.updates[z].y = 0; global.updates[z].w = 0; global.updates[z].h = 0; } } static void initialisePlayers() { for (int32_t z = 0; z < env.numGamePlayers; ++z) { env.players[z]->money = env.startmoney; env.players[z]->score = 0; if ( (HUMAN_PLAYER != env.players[z]->type) && (PERPLAY_PREF == env.players[z]->preftype)) env.players[z]->generatePreferences(); env.players[z]->initialise(false); env.players[z]->type_saved = env.players[z]->type; } } static bool loadConfig() { bool result = false; if (load_config_file) { snprintf(fullPath, PATH_MAX, "%s/atanks-config.txt", env.configDir); FILE* old_config_file = fopen(fullPath, "r"); if (old_config_file) { env.load_from_file(old_config_file); // over-ride full screen setting with command line if ( (full_screen == FULL_SCREEN_TRUE) || (full_screen == FULL_SCREEN_FALSE) ) env.full_screen = full_screen; // Initialize after loading init_game_settings(); // Load texts first ... env.load_text_files(); // ...then the players last result = loadPlayers(old_config_file); fclose(old_config_file); } } // End of loading old config file return result; } static bool loadPlayers(FILE* file) { int32_t max_pl = env.numPermanentPlayers; if (env.allPlayers) { for (int32_t i = 0; i < env.numPermanentPlayers; ++i) { if (env.allPlayers[i]) delete env.allPlayers[i]; env.allPlayers[i] = nullptr; } free(env.allPlayers); env.allPlayers = nullptr; } env.allPlayers = (PLAYER **)malloc(sizeof(PLAYER*) * max_pl); if (!env.allPlayers) { fprintf(stderr, "%s:%d : Failed to allocate memory for allPlayers\n", __FILE__, __LINE__); return false; } for (int32_t i = 0; i < max_pl; ++i) env.allPlayers[i] = nullptr; int32_t pl_count = 0; bool status = true; while (status) { PLAYER* player_new = nullptr; try { player_new = new PLAYER(); } catch (std::exception &e) { fprintf(stderr, "%s:%d : Failed to allocate memory for player (%s)\n", __FILE__, __LINE__, e.what()); status = false; } if (status) status = player_new->load_from_file(file); if (status) { player_new->index = pl_count; env.allPlayers[pl_count++] = player_new; if (pl_count == max_pl) { max_pl += 5; env.allPlayers = (PLAYER**)realloc(env.allPlayers, sizeof(PLAYER *) * max_pl); for (int32_t i = pl_count; i < max_pl; ++i) env.allPlayers[i] = nullptr; } } else if (player_new) delete player_new; } // end of while status env.numPermanentPlayers = pl_count; return true; } static int32_t menu() { int32_t result = SIG_OK; int32_t shift_menu = env.halfHeight < 240 ? 240 - env.halfHeight : 0; int32_t move_btn = env.button[0]->w / 2; int32_t bn = env.language == EL_RUSSIAN ? MENUBUTTONS * 2 : 0; BUTTON but_play(env.halfWidth - move_btn, env.halfHeight - 235 + shift_menu, env.button[bn], env.button[bn], env.button[bn + 1]); bn += 2; BUTTON but_help(env.halfWidth - move_btn, env.halfHeight - 185 + shift_menu, env.button[bn], env.button[bn], env.button[bn + 1]); bn += 2; BUTTON but_options(env.halfWidth - move_btn, env.halfHeight - 135 + shift_menu, env.button[bn], env.button[bn], env.button[bn + 1]); bn += 2; BUTTON but_players(env.halfWidth - move_btn, env.halfHeight - 85 + shift_menu, env.button[bn], env.button[bn], env.button[bn + 1]); bn += 2; BUTTON but_credits(env.halfWidth - move_btn, env.halfHeight - 35 + shift_menu, env.button[bn], env.button[bn], env.button[bn + 1]); bn += 2; BUTTON but_quit(env.halfWidth - move_btn, env.halfHeight + 65 + shift_menu, env.button[bn], env.button[bn], env.button[bn + 1]); bn += 2; BUTTON but_network(env.halfWidth - move_btn, env.halfHeight + 15 + shift_menu, env.button[bn], env.button[bn], env.button[bn + 1]); BUTTON *button[MENUBUTTONS] = { &but_play, &but_help, &but_options, &but_players, &but_credits, &but_network, &but_quit }; // Initialization of the menu global.stopwindow = true; fi = 1; lx = 0; ly = 0; k = 0; K = 0; bool done = false; int32_t seconds_idle = 0; int32_t btn_over = -1; int32_t currentindex = 0; int32_t oldindex = 0; int32_t maxindex = MENUBUTTONS; int32_t lastmouse_x = 0; int32_t lastmouse_y = 0; // Clear key buffer and erase mouse button presses while ( keypressed() ) readkey(); mouse_b = 0; // Enable first background drawing: bool need_draw = true; draw_simple_bg(true); global.make_fullUpdate(); while ( !done && (SIG_OK == result) ) { // Extra loop to divide the handling and the drawing while (!done && !need_draw) { // Count seconds for demo mode to start after its wait time if ( global.check_time_changed() ) { if (++seconds_idle > DEMO_WAIT_TIME) { done = true; global.set_command(GLOBAL_COMMAND_DEMO); } } // Detect mouse movement for custom cursors if (!env.osMouse && ( (lastmouse_x != mouse_x) || (lastmouse_y != mouse_y) ) ) { lastmouse_x = mouse_x; lastmouse_y = mouse_y; need_draw = true; } // See where the mouse is for (int32_t z = 0; z < MENUBUTTONS; z++) { if (button[z]->isMouseOver()) { if ( (btn_over > -1) && (btn_over != z) ) { button[z]->draw(); need_draw = true; } btn_over = z; break; } } // Handle mouse click if (mouse_b & 1) { for (int32_t z = 0; z < MENUBUTTONS; z++) { if (button[z]->isPressed ()) { need_draw = true; done = true; if (z == 0) global.set_command(GLOBAL_COMMAND_PLAY); else if (z == 1) global.set_command(GLOBAL_COMMAND_HELP); else if (z == 2) global.set_command(GLOBAL_COMMAND_OPTIONS); else if (z == 3) global.set_command(GLOBAL_COMMAND_PLAYERS); else if (z == 4) global.set_command(GLOBAL_COMMAND_CREDITS); else if (z == 5) global.set_command(GLOBAL_COMMAND_NETWORK); else if (z == 6) { global.set_command(GLOBAL_COMMAND_QUIT); result = SIG_QUIT_GAME; } } } } // End of mouse button pressed // check for key press if ( keypressed() ) { k = readkey(); K = k >> 8; fi = 2; } // Move selection down if ( ( K == KEY_DOWN ) || (K == KEY_S) ) { if (++currentindex >= maxindex) currentindex = 0; need_draw = true; } // Move selection up else if ( (K == KEY_UP) || (K == KEY_W) ) { if (--currentindex < 0) currentindex = maxindex - 1; need_draw = true; } // Activate selection else if ( (KEY_ENTER == K) || (KEY_ENTER_PAD == K) || (KEY_SPACE == K) ) { need_draw = true; done = true; if (currentindex == 0) global.set_command(GLOBAL_COMMAND_PLAY); else if (currentindex == 1) global.set_command(GLOBAL_COMMAND_HELP); else if (currentindex == 2) global.set_command(GLOBAL_COMMAND_OPTIONS); else if (currentindex == 3) global.set_command(GLOBAL_COMMAND_PLAYERS); else if (currentindex == 4) global.set_command(GLOBAL_COMMAND_CREDITS); else if (currentindex == 5) global.set_command(GLOBAL_COMMAND_NETWORK); else if (currentindex == 6) global.set_command(GLOBAL_COMMAND_QUIT); } // Quick keys to exit and handle close button of the window else if ( (KEY_Q == K) || (KEY_ESC == K)) { done = true; result = SIG_QUIT_GAME; } // Erase key presses K = 0; // Print out update info if any if ( (global.update_string) && (global.update_string[0]) ) { textout_centre_ex (global.canvas, font, global.update_string, env.halfWidth - 20, env.screenHeight - 50, WHITE, -1); global.make_update(50, 450, 300, 50); need_draw = true; } // Print out client messages if (global.client_message) { textout_centre_ex(global.canvas, font, global.client_message, env.halfWidth - 20, env.screenHeight - 25, WHITE, -1); global.make_update(50, 450, 300, 100); need_draw = true; } // Sleep a bit if nothing happened if (!done && !need_draw) LINUX_SLEEP } // End of while not needing to draw // flip to front if needed if (need_draw) { // Draw the buttons SHOW_MOUSE(nullptr) draw_simple_bg(true); for (int32_t z = 0; z < MENUBUTTONS; z++) { button[z]->draw(); // draw a rectangle around the selected button if ( (z == currentindex) || (z == oldindex) ) { int32_t left = env.halfWidth - move_btn - 6; int32_t top = env.halfHeight - 241 + (50 * currentindex) + shift_menu; int32_t right = env.halfWidth + move_btn + 5; int32_t bottom = env.halfHeight - 192 + (50 * currentindex) + shift_menu; global.make_update(left, top, right - left, bottom - top); if (z == currentindex) rect(global.canvas, left, top, right, bottom, YELLOW); } } // end of looping buttons // Show non-OS mouse SHOW_MOUSE(global.canvas) global.do_updates(); need_draw = false; oldindex = currentindex; } // End of if need_draw } // End of menu loop clear_keybuf (); return result; } static void newgame() { env.initialise (); global.initialise (); // if a game should be loaded, try it or deny loading of the game if ( (env.loadGame) && (!Load_Game()) ) env.loadGame = false; // Now check back whether to load a game if (!env.loadGame) initialisePlayers (); // There must not be any tanks! TANK* tank = nullptr; TANK* next_tank = nullptr; global.getHeadOfClass(CLASS_TANK, &tank); while (tank) { tank->getNext(&next_tank); tank->player = nullptr; delete tank; tank = next_tank; } // This is always true here, as a newly started game is handled like a loaded one: env.isGameLoaded = true; } /// @brief parse arguments and return EXIT_SUCCESS on success or EXIT_FAILURE /// if anything went wrong. If all is well but help was requested, return /// EXIT_HELP_SHOWN static int32_t parse_args(int32_t argc, char** argv) { for (int32_t c = 1; c < argc; ++c) { bool has_value = true; std::string arg(argv[c]); if ( (arg == SWITCH_HELP) || (arg == "--help") ) { print_text_help(); return HELP_REQUESTED; } else if (arg == SWITCH_FULL_SCREEN) { screen_mode = GFX_AUTODETECT_FULLSCREEN; full_screen = FULL_SCREEN_TRUE; } else if (arg == SWITCH_WINDOWED) { screen_mode = GFX_AUTODETECT_WINDOWED; full_screen = FULL_SCREEN_FALSE; } else if ( (arg == "-d") || (arg == "--depth") ) { if ( (c < (argc - 1)) && (argv[c + 1][0] != '-') ) { std::string next_arg(argv[++c]); int32_t val = strtol (next_arg.c_str(), nullptr, 10); if ( (16 == val) || (32 == val) ) env.colourDepth = val; else { cerr << "ERROR: Invalid graphics depth!\n" << " Only 16 or 32 bit are supported!" << endl; return EXIT_FAILURE; } } else has_value = false; } else if ( (arg == "-w") || (arg == "--width") ) { if ( (c < (argc - 1)) && (argv[c + 1][0] != '-') ) { std::string next_arg(argv[++c]); int32_t val = strtol (next_arg.c_str(), nullptr, 10); if ( 512 <= val ) { env.screenWidth = val; env.halfWidth = env.screenWidth / 2; env.temp_screenWidth = env.screenWidth; } else { cerr << "ERROR: Width too small (minimum 512)\n" << endl; return EXIT_FAILURE; } } else has_value = false; } else if ((arg == "-t") || (arg == "--tall") || (arg == "--height")) { if ( (c < (argc - 1)) && (argv[c + 1][0] != '-') ) { std::string next_arg(argv[++c]); int32_t val = strtol (next_arg.c_str(), nullptr, 10); if ( 320 <= val ) { env.screenHeight = val; env.halfHeight = env.screenHeight / 2; env.temp_screenHeight = env.screenHeight; } else { cerr << "ERROR: Height too small (minimum 320)\n" << endl; return EXIT_FAILURE; } } else has_value = false; } else if (arg == "--datadir") { if ( (c < (argc - 1)) && (argv[c + 1][0] != '-') ) { std::string next_arg(argv[++c]); if ( next_arg.length() <= PATH_MAX ) strncpy(env.dataDir, next_arg.c_str(), PATH_MAX); else { cerr << "ERROR: Datadir path too long:\n" << "\"" << next_arg << "\"\n\n" << "Maximum length:" << PATH_MAX << " characters" << endl; return EXIT_FAILURE; } } else has_value = false; } else if (arg == "-c") { if ( (c < (argc - 1)) && (argv[c + 1][0] != '-') ) { std::string next_arg(argv[++c]); if ( next_arg.length() <= PATH_MAX ) strncpy(env.configDir, next_arg.c_str(), PATH_MAX); else { cerr << "ERROR: Configuration path too long:\n" << "\"" << next_arg << "\"\n\n" << "Maximum length:" << PATH_MAX << " characters" << endl; return EXIT_FAILURE; } } else has_value = false; } else if (arg == "--noconfig") load_config_file = false; else if (arg == "--nosound") env.sound_enabled = false; else if (arg == "--noname") env.nameAboveTank = false; else if (arg == "--nonetwork") allow_network = false; else if (arg == "--nobackground") env.drawBackground = false; else if (arg == "--nothread") cout << "--nothread is deprecated and will be ignored." << endl; else if (arg == "--thread") cout << "--thread is deprecated and will be ignored." << endl; // If a required argument is missing, print out a message if (!has_value) { cerr << "ERROR: Missing argument for " << arg << endl; return EXIT_FAILURE; } } return EXIT_SUCCESS; } static void play_demo() { int32_t old_skip = env.skipComputerPlay; int32_t old_rounds = env.rounds; bool old_music = env.play_music; global.demo_mode = true; env.loadGame = false; env.play_music = false; env.rounds = (rand() % 101) + (rand() % 101) + 50; global.currentround = env.rounds - (rand() % env.rounds); // Be sure to have at least 10 rounds left if (global.currentround < 10) global.currentround = 10; // And at least 10 rounds must have been played, or it'll be a bit boring if (global.currentround > (env.rounds - 10)) global.currentround = env.rounds - 10; env.skipComputerPlay = SKIP_NONE; // set up a bunch of players (non-human, less than 10) int32_t playerCount = 0; env.numGamePlayers = 0; for (int32_t i = 0; i < env.numPermanentPlayers; ++i) { if ( (env.allPlayers[i]->type > HUMAN_PLAYER) && (i < MAXPLAYERS) ) { env.addGamePlayer(env.allPlayers[i]); playerCount++; } } newgame(); for (int32_t i = 0; i < env.numGamePlayers; ++i) { env.players[i]->newGame(); // give them money to spend: env.players[i]->money += static_cast(env.players[i]->type) * 25000 * (env.rounds - global.currentround); } while ( (global.currentround > 0) && (!global.isCloseBtnPressed()) ) { game(); if ( (global.get_command() == GLOBAL_COMMAND_QUIT) || (global.get_command() == GLOBAL_COMMAND_MENU) ) break; } endgame_cleanup(); global.demo_mode = false; env.skipComputerPlay = old_skip; env.play_music = old_music; env.rounds = old_rounds; } static void play_local() { if (selectPlayers() != MRC_Esc_Menu) { // make sure the game has a name if (!env.game_name[0]) strncpy(env.game_name, env.ingame->Get_Line(53), GAMENAMELEN); newgame (); if (!env.loadGame) { global.currentround = env.rounds; for (int32_t i = 0; i < env.numGamePlayers; ++i) env.players[i]->newGame(); } // play the game for the selected number of rounds while ( (global.currentround > 0) && (!global.isCloseBtnPressed()) ) { game (); // play a round if (env.background_music) { stop_sample(env.background_music); } if (global.isCloseBtnPressed()) global.set_command(GLOBAL_COMMAND_QUIT); // if user selected to quit or return to main menu during game play if ( (global.get_command() == GLOBAL_COMMAND_QUIT) || (global.get_command() == GLOBAL_COMMAND_MENU) ) { env.sendToClients("CLOSE"); break; } if (global.currentround != 0) // end of the round env.sendToClients("ROUNDEND"); } // only show winner if finished all rounds and not broken off the last // round by exiting or quitting if ( (global.currentround == 0) && (global.get_command() == GLOBAL_COMMAND_PLAY) ) { char buffer[512] = { 0 }; const char* winner = do_winner(); if (winner) snprintf(buffer, 255, "GAMEEND The game went to %s.", winner); else strncpy(buffer, "GAMEEND", 255); env.sendToClients(buffer); // Do fade and wait for user keypress quickChange(true); readkey (); for (int i = 0; i < env.numGamePlayers; i++) env.players[i]->type = env.players[i]->type_saved; } endgame_cleanup (); } // end of start new game } static void play_networked() { #ifdef NETWORK client_socket = Setup_Client_Socket(env.server_name, env.server_port); if (client_socket >= 0) { bool keep_playing = true; cout << "Ready to play networked" << endl; while (keep_playing) keep_playing = Game_Client(client_socket); Clean_Up_Client_Socket(client_socket); } else cerr << "ERROR: Unable to connect to server " << env.server_name << ", port " << env.server_port << endl; #else char noNetworkMsg[200] = { 0 }; snprintf(noNetworkMsg, 199, "This version of Atanks is not compiled to" " handle network games."); errorMessage = noNetworkMsg; errorX = env.halfWidth - text_length(font, errorMessage) / 2; errorY = env.menuBeginY + 15; cerr << "ERROR: " << noNetworkMsg << endl; #endif } static void print_text_help() { cout << "-h --help Show this help screen\n" << "-fs Full screen\n" << " --windowed Run in a window\n" << "-w --width Specify the screen width in pixels\n" << "-t --tall Specify the screen height in pixels\n" << " Adjust the screen size at your own risk\n" << " (default is 800x600)\n" << "-d --depth Colour depths, currently either 16 or 32 bit\n" << " --datadir Path to the data directory\n" << "-c Path to config and saved game directory\n" << " --noconfig Do not load game settings.\n" << " --nosound Disable sound\n" << " --noname Do not show player name above tank\n" << " --nonetwork Disable network connections.\n" << " --nobackground Do not display the green menu background." << endl; } static void print_text_initmsg() { cout << "Atomic Tanks Version " << VERSION << " (-h for help)\n" << "Authors: Tom Hudson (rewrite, additions, improvements)\n" << " Stevante Software (original design)\n" << " Kota543 Software (fixes and updates)\n" << " Jesse Smith (additions, fixes and updates)\n" << " Sven Eden (ai rewrite, additions, fixes and updates)\n\n" << endl; } /* This function calls the functions which save data to a text file. The function requires the global data, environment and the path to the config file name. The function returns TRUE on success and FALSE on failure. -- Jesse */ static bool Save_Game_Settings(const char* path) { FILE* file = fopen(path, "w"); if (!file) { perror ( "Error trying to open text file for writing.\n"); return false; } env.save_to_file (file); for (int32_t i = 0; i < env.numPermanentPlayers; ++i) env.allPlayers[i]->save_to_file(file); fclose (file); return true; } static void show_options() { // save old settings bool temp_sound = env.sound_enabled; int32_t temp_itech = env.itemtechLevel; int32_t temp_wtech = env.weapontechLevel; optionsMenu(); if (!Save_Game_Settings(fullPath)) cerr << "atanks.cpp:" << __LINE__ << " Failed to save game settings from " << __FUNCTION__ << endl; // check for changes to settings Change_Settings(temp_sound, temp_itech, temp_wtech); } static void title() { SHOW_MOUSE(nullptr) blit (env.title[0], screen, 0, 0, env.halfWidth - (env.title[0]->w / 2), env.halfHeight - (env.title[0]->h / 2), env.title[0]->w, env.title[0]->h); clear_keybuf (); } int32_t main (int32_t argc, char** argv) { print_text_initmsg(); // Parse arguments and exit early if needed int32_t result = parse_args(argc, argv); if (EXIT_FAILURE == result) return EXIT_FAILURE; if (HELP_REQUESTED == result) return EXIT_SUCCESS; // try to find data dir if (! env.find_data_dir() ) { cerr << "ERROR: Could not find data dir." << endl; return EXIT_FAILURE; } // Initialize random number generation srand (time(nullptr)); // Set the game version global #ifdef VERSION { double this_version = 0.; sscanf(VERSION, "%lf", &this_version); game_version = static_cast(this_version * 10); } #endif // VERSION // try to find config dir env.find_config_dir(); // load or create a configuration if (!loadConfig()) createConfig(); // Load game files if (!env.loadGameFiles()) return EXIT_FAILURE; // message already out // new networking area #ifdef NETWORK SEND_RECEIVE_TYPE* send_receive = nullptr; std::thread* network_thread = nullptr; // Create the update checker thread: update_data updateData("projects.sourceforge.net", "version.txt", "atanks.sourceforge.net"); std::thread updateThread(std::ref(updateData)); if (env.check_for_updates) global.update_string = updateData.update_string; // Initialize network if allowed and wanted if ( env.network_enabled && allow_network ) { send_receive = (SEND_RECEIVE_TYPE*)calloc(1, sizeof(SEND_RECEIVE_TYPE)); if (!send_receive) cerr << "ERROR: Could not create networking data." << endl; } // If a SEND_RECEIVE_TYPE instance was created, start the networking thread if (send_receive) { send_receive->listening_port = env.network_port; // quit option already cleared by calloc call network_thread = new std::thread(Send_And_Receive, send_receive); } #endif // NETWORK /* =============================== * === The real main main loop === * =============================== */ do { //show the main menu global.set_command(GLOBAL_COMMAND_MENU); int32_t signal = menu (); // Ensure a clean client message if (global.client_message) { free(const_cast(global.client_message)); global.client_message = nullptr; } // did the user signal to quit the game? if ( (signal == SIG_QUIT_GAME) || global.isCloseBtnPressed() ) global.set_command(GLOBAL_COMMAND_QUIT); // determine which menu item is selected switch (global.get_command()) { case GLOBAL_COMMAND_HELP: scrollTextList (env.instructions); break; case GLOBAL_COMMAND_OPTIONS: show_options(); break; case GLOBAL_COMMAND_PLAYERS: editPlayers(); break; case GLOBAL_COMMAND_CREDITS: credits(); break; case GLOBAL_COMMAND_QUIT: // Already handled by while condition below break; case GLOBAL_COMMAND_NETWORK: play_networked(); break; case GLOBAL_COMMAND_DEMO: play_demo(); break; default: //must have commanded to play game play_local(); break; } // end of menu switch } while ( (global.get_command() != GLOBAL_COMMAND_QUIT) ); // print out if there is an update if ( (global.update_string) && (global.update_string[0]) ) { cout << global.update_string << endl; global.update_string = nullptr; } // Clean up network stuff #ifdef NETWORK if (send_receive) { send_receive->shut_down = TRUE; LINUX_REST; network_thread->join(); delete network_thread; free(send_receive); } updateThread.join(); #endif // NETWORK if (! Save_Game_Settings(fullPath)) { // This is a very critical issue, but as we are ending here, we just report it cerr << "atanks.cpp: Failed to save game settings from atanks::main()!" << endl; result = EXIT_FAILURE; } env.destroy(); global.destroy(); allegro_exit(); cout << "See http://atanks.sourceforge.net for the latest news and downloads." << endl; return result; } END_OF_MAIN() atanks-6.6/src/tank.cpp0000644000175000017500000015121114066454020013220 0ustar apoapo/* * atanks - obliterate each other with oversize weapons * Copyright (C) 2003 Thomas Hudson * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "floattext.h" #include "explosion.h" #include "teleport.h" #include "missile.h" #include "player.h" #include "beam.h" #include "tank.h" #include "sound.h" #include // For some checks if _DEBUG is defined. #include // Needed for lock_guard TANK::TANK () : PHYSICAL_OBJECT(false), healthText(nullptr, -1, -1, 0., 0., WHITE, CENTRE, TS_NO_SWAY, -1, true), nameText( nullptr, -1, -1, 0., 0., WHITE, CENTRE, TS_NO_SWAY, -1, true), shieldText(nullptr, -1, -1, 0., 0., TURQUOISE, CENTRE, TS_NO_SWAY, -1, true) { // The shield phase delta depends on currently set FPS shld_delta /= static_cast(env.frames_per_second); setTextPositions(false); drag = 0.5; mass = 3000; a += rand () % 180; // Add to the chain: global.addObject(this); global.numTanks++; } /* The destructor only removes the tank and cleans up after it. Any tank destruction (with big badass explosions, vengeance and stuff) is done in TANK::explode(). */ TANK::~TANK () { if (player) { player->tank = nullptr; player = nullptr; } creditTo = nullptr; global.numTanks--; if (global.get_curr_tank() == this) global.set_curr_tank(nullptr); // Take out of the chain: global.removeObject(this); } /// @brief Set texts to vertical bounce and initialize text positions void TANK::activate() { shieldText.set_sway_type(TS_VERTICAL); healthText.set_sway_type(TS_VERTICAL); nameText.set_sway_type(TS_VERTICAL); setTextPositions(true); } /// @brief activate (aka "fire" or "shoot") whatever is selected right now. /// Use this whenever a weapon is fired without the player hitting the trigger. /// For the trigger slamming use simActivateCurrentSelection(). void TANK::activateCurrentSelection() { // avoid firing weapons on exit in Windows if ( (global.get_command() == GLOBAL_COMMAND_QUIT) || (global.get_command() == GLOBAL_COMMAND_MENU) ) return; // This must not be called outside fire stage. assert( (STAGE_FIRE == global.stage) && "ERROR: TANK::activateCurrentSelection() called outside STAGE_FIRE!"); if (STAGE_FIRE != global.stage) return; // remove status from top bar at next redraw // Removing this check as it is always true. -- Jesse // if (global.tank_status) global.tank_status[0] = 0; // reduce time to fall, but reset if already done if (--env.time_to_fall < 0) env.time_to_fall = (rand() % env.landSlideDelay) + 1; /** ============================== * === Case 1 : Fire a weapon === * ============================== **/ if (cw < WEAPONS) { player->changed_weapon = false; if (cw) player->nm[cw]--; // --- Ballistics --- //-------------------- if (cw < BALLISTICS) { play_fire_sound(cw, x, 255, 1000); // Loop over spread, that covers everything for (int32_t z = 0; z < weapon[cw].spread; ++z) { int32_t ca = a + ((SPREAD * z) - (SPREAD * (weapon[cw].spread - 1) / 2)); double dp = static_cast(p); // Just a shortcut against further casts // power must not be zero if this is a riot charge/blast. // If it were, the calculation of the triangle goes nuts and // sends the charge downwards, regardless of the set angle. /// @todo : Fix the calculation so this extra check becomes obsolete if ( (dp < 100.) && (RIOT_CHARGE <= cw) && (RIOT_BLAST >= cw) ) dp = 100.; double mxv = env.slope[ca][0] * dp * env.FPS_mod / 100.; double myv = env.slope[ca][1] * dp * env.FPS_mod / 100.; try { MISSILE* newmis = new MISSILE(player, x + (env.slope[ca][0] * turr_off_x), y + (env.slope[ca][1] * turr_off_x), mxv, myv, cw, MT_WEAPON, 1, 0); // set up / check volley if (weapon[cw].delay && (0 == fire_another_shot) ) fire_another_shot = weapon[cw].delay * env.volley_delay; // Adapt missile drag if the player has dimpled/slick projectiles if (player->ni[ITEM_DIMPLEP]) { player->ni[ITEM_DIMPLEP]--; newmis->drag *= item[ITEM_DIMPLEP].vals[0]; } else if (player->ni[ITEM_SLICKP]) { player->ni[ITEM_SLICKP]--; newmis->drag *= item[ITEM_SLICKP].vals[0]; } } catch (...) { perror ( "tank.cpp: Failed to allocate memory for new" " missile in TANK::activateCurrentSelection()"); } } } // End of ballistics // --- Beam weapons --- //---------------------- else { try { new BEAM (player, x + (env.slope[a][0] * turr_off_x), y + (env.slope[a][1] * turr_off_x), a, cw, BT_WEAPON); } catch (...) { perror ( "tank.cpp: Failed to allocate memory for new" " beam in TANK::activateCurrentSelection()"); } } } // End of weapons /** ================================= * === Case 2 : Activate an item === * ================================= **/ else { int32_t ci = cw - WEAPONS; // [c]urrent [i]tem // If this is not a vengeance item, take it out of the inventory. // Note: Vengeance items are reduced in explode() if triggered. if ( (ITEM_VENGEANCE > ci) || (ITEM_FATAL_FURY < ci) ) player->ni[ci]--; // --- Teleport --- //----------------- if (ITEM_TELEPORT == ci) { int32_t right = env.screenWidth - (tank_dia * 2); int32_t bottom = env.screenHeight - (tank_dia * 2) - MENUHEIGHT; int32_t new_x = (rand() % right ) + tank_dia; int32_t new_y = (rand() % bottom) + tank_dia + MENUHEIGHT; // Be sure the tank does not end up too high in the sky // or too deeply buried. int32_t surf_y = global.surface[new_x].load(ATOMIC_READ); if (new_y < (surf_y - 150) ) new_y = surf_y - 150; else if (new_y > (surf_y + 100) ) new_y = surf_y + 100; try { new TELEPORT (this, new_x, new_y, tank_dia, 120, ci); addDamage(player, 0.); // Fall is a self hit. isTeleported = true; } catch(...) { perror ( "tank.cpp: Failed to allocate memory for teleport" " in TANK::activateCurrentSelection()"); } } // --- Swapper --- //----------------- else if (ITEM_SWAPPER == ci) { TANK* other = nullptr; while (!other) { global.getHeadOfClass(CLASS_TANK, &other); // If there are only two tanks, just take the other if (2 == global.numTanks) { if (other == this) other->getNext(&other); } else { // Otherwise select one by random int32_t rtn = rand() % (global.numTanks - 1); while (rtn--) other->getNext(&other); // If the selection ended up with this tank, chose the next one if (other == this) other->getNext(&other); } assert(other && "ERROR: Swapper selected nullptr!"); assert( (other != this) && "ERROR: Swapper selected this as other!"); if (other == this) other = nullptr; } // End of selecting other this->addDamage( player, 0.); // Own falling damage this->isTeleported = true; other->addDamage(player, 0.); // Their falling damage other->isTeleported = true; try { // create a teleport object for this tank new TELEPORT (this, other->x, other->y, tank_dia, 120, ci); // create a teleport object for the other tank new TELEPORT (other, x, y, other->tank_dia, 120, ci); } catch (...) { perror ( "tank.cpp: Failed to allocate memory for swap teleports" " in TANK::activateCurrentSelection()"); } } // --- Mass Teleport --- //----------------------- else if (ITEM_MASS_TELEPORT == ci) { int32_t right = env.screenWidth - (tank_dia * 2); int32_t bottom = env.screenHeight - (tank_dia * 2) - MENUHEIGHT; TANK* lt = nullptr; global.getHeadOfClass(CLASS_TANK, <); while ( lt ) { int32_t new_x = (rand() % right ) + tank_dia; int32_t new_y = (rand() % bottom) + tank_dia + MENUHEIGHT; // Like with the normal teleport, ensure a sane y value. int32_t surf_y = global.surface[new_x].load(ATOMIC_READ); if (new_y < (surf_y - 150) ) new_y = surf_y - 150; else if (new_y > (surf_y + 100) ) new_y = surf_y + 100; try { new TELEPORT (lt, new_x, new_y, lt->tank_dia, 120, ci); lt->addDamage(player, 0.); // They fall, we earn. Cool. lt->isTeleported = true; } catch(...) { perror ( "tank.cpp: Failed to allocate memory for teleport" " in TANK::activateCurrentSelection()"); } lt->getNext(<); } } // --- Rocket ("I beliiiieve Ay Can Flaaaaaaaayy") --- //----------------------------------------------------- else if (ITEM_ROCKET == ci) { yv = -10; y -= 10; if (a < 180) xv += 0.3; else if (a > 180) xv -= 0.3; // If this leads to falling damage, make sure it is a self hit: addDamage(player, 0.); isTeleported = true; applyPhysics(); } // --- Fan (aka "The most useless item there is") --- //---------------------------------------------------- else if (ITEM_FAN == ci) { play_fire_sound(ITEM_FAN + WEAPONS, x, 255, 1000); if (a < 180) // move wind to the right global.wind += (p / 20); else // wind to the left global.wind -= (p / 20); // make sure wind is not too strong if (global.wind < (-env.windstrength / 2) ) global.wind = -env.windstrength / 2; else if (global.wind > (env.windstrength / 2) ) global.wind = env.windstrength / 2; global.lastwind = global.wind; } // --- Vengeance (BOOM BABY!) --- //-------------------------------- else if ( (ITEM_VENGEANCE <= ci) && (ITEM_FATAL_FURY >= ci) ) { // Just preparation. The tank explodes, and the vengeance goes // off automatically as selected. ;-) this->player->reclaimShield(); this->addDamage(nullptr, l + sh + repair_rate + 1); this->applyDamage(); } } // End of items player->time_left_to_fire = env.maxFireTime; } /// @brief adds damage, sets creditTo and handles pending damage void TANK::addDamage(PLAYER* damageFrom, double damage_) { // Clear pending damage if the 'deliverer' changes if (damageFrom != creditTo) { applyDamage(); damage = 0.; // Update creditTo first creditTo = damageFrom; newDamager = true; } assert( (damage_ >= 0.) && "ERROR: Negative damage?"); // Raise damage if (damage_ > 0.) damage += damage_; } void TANK::applyDamage () { // Only *one* call to applyDamage() at any time! std::lock_guard apply_damage_lock(damage_lock); // Before taking any action, damage must be at least 1 if (destroy || (damage < 1.)) { newDamager = false; return; } // See if the pending damage destroys the tank: int32_t full_damage = ROUND(damage); if (full_damage >= (sh + l) ) { destroy = true; damage = sh + l; // Don't overdo full_damage = damage; player->killed++; } // Damage is applied to the shield, and negative shield later // added to life. This saves some if/then/else constructs int32_t old_sh = sh; // For repulsor shield blast through sh -= full_damage; /* ----------------------------------------------------------- * --- If a damage dealer is set, they must be awarded --- * --- their reward or, in case of self/team hit, penalty. --- * ----------------------------------------------------------- */ if (creditTo) { int32_t award = full_damage; bool self_hit = creditTo == player; bool team_hit = !self_hit && (TEAM_NEUTRAL != creditTo->team) && (player->team == creditTo->team); // Award kill point if no suicide if (destroy && !self_hit) creditTo->kills++; // note damage in own and opponents memory player->noteDamageFrom(creditTo, full_damage, destroy); creditTo->noteDamageTo(player, full_damage, destroy); // The award must be adapted to the situation award *= self_hit ? env.scoreSelfHit : team_hit ? env.scoreTeamHit : env.scoreHitUnit; // The kill bonus is only applied if this is no team kill if (destroy && !team_hit) award += self_hit ? env.scoreUnitSelfDestroy : env.scoreUnitDestroyBonus; // Money can not go negative. if ((self_hit || team_hit) && (award > creditTo->money)) award = creditTo->money; // If there is an award now, get the money text out // and the register to ring. if (award > 0) { if (creditTo->tank && !global.skippingComputerPlay) { static char the_money[16] = { 0x0 }; snprintf(the_money, 15, "%s$%s", (team_hit || self_hit) ? "-" : "", Add_Comma( award ) ); // show how much the shooter gets try { new FLOATTEXT(the_money, creditTo->tank->x, creditTo->tank->y - 30, .0, -.5, team_hit ? PURPLE : self_hit ? RED : GREEN, CENTRE, env.swayingText ? TS_HORIZONTAL : TS_NO_SWAY, 200, false); if (global.stage < STAGE_SCOREBOARD) global.updateMenu = true; } catch (...) { perror ( "tank.cpp: Failed allocating memory for money text" " in applyDamage()."); } } creditTo->money += ( (team_hit || self_hit) ? -1 : 1) * award; } // End of applying damage award // If the tank is destroyed, and it was neither self nor team hit, // the damager might spawn a gloating message if ( destroy && !creditTo->gloating && !team_hit && !self_hit && creditTo->tank && !creditTo->tank->destroy && !global.skippingComputerPlay) { creditTo->gloating = true; try { new FLOATTEXT(creditTo->selectGloatPhrase(), creditTo->tank->x, creditTo->tank->y - 30, .0, -.4, creditTo->color, CENTRE, TS_NO_SWAY, 200, false); } catch (...) { perror ( "tank.cpp: Failed to allocate memory for" " gloating text in applyDamage()."); } } // End of spawning gloating text // Issue a suicide message if the player applied for a darwin award if (self_hit && destroy && !global.skippingComputerPlay) { try { new FLOATTEXT(player->selectSuicidePhrase(), x, y - 30, .0, -.4, player->color, CENTRE, TS_NO_SWAY, 300, false); } catch (...) { perror ( "tank.cpp: Failed allocate memory for suicide" " text in applyDamage()."); } } } // End of handling damager texts and awards // ----------------------------------- // --- Eventually apply the damage --- // ----------------------------------- int32_t old_life = l; if (destroy) { sh = 0; l = 0; repulsion = 0; } else { if ( (ITEM_LGT_REPULSOR_SHIELD <= sht) && (ITEM_HVY_REPULSOR_SHIELD >= sht) ) { // Repulsor shields do not take the full damage but // let half of it blasted through. int32_t sh_dmg = full_damage / 2; int32_t t_dmg = (full_damage / 2) + (full_damage % 2); if (sh_dmg >= old_sh) { t_dmg += sh_dmg - old_sh; sh_dmg = old_sh; } if (t_dmg > l) t_dmg = l; sh = old_sh - sh_dmg; l -= t_dmg; } // normal shield-is-empty-check: if (sh < 0.5) { l += sh; // For non-repulsor shields. sh = 0; repulsion = 0; } } // -------------------------------- // --- Display the damage value --- // -------------------------------- if (full_damage > 0) { static char buf[10] = { 0x0 }; flashdamage = 1; if (!global.skippingComputerPlay) { snprintf (buf, 9, "%d", full_damage); try { new FLOATTEXT(buf, x, y - 30, .0, -.3, RED, CENTRE, env.swayingText ? TS_HORIZONTAL : TS_NO_SWAY, 300, false); } catch (...) { perror ( "tank.cpp: Failed to allocate memory for damage" " text in applyDamage()."); } } // If shield remains, the shield text has to be regenerated if (sh > 0) { snprintf (buf, 9, "%d", sh); shieldText.set_text (buf); } else shieldText.set_text (nullptr); // If life points were taken, the life text is to be regenerated if (old_life != l) { snprintf (buf, 9, "%d", l); healthText.set_text (buf); } } // End of having damage damage = 0.; // all applied } // Thanks to the rockets, tanks can 'fly', and thanks to ... uhm ... // everything, tanks might fall down. void TANK::applyPhysics () { // Do nothing if this tank was destroyed if (destroy) return; double old_y = y; // Special handling when rocketing upwards first: if ( yv < 0. ) { // Although activating a rocket instantly pushes the tank // upwards, it stops there if the tank is buried if ( howBuried(nullptr, nullptr) ) { xv = 0; yv = 0; } /// @todo : Is this really a problem? // make sure the tank does not leave the screen when flying else if ( (y < tank_off_y) ) yv = 0; // Otherwise apply rocket x movement else x += xv * 4.; } // End of special rocketing handling // General movement is only applied while no damage flashes. // Note: This means that damage application halts all movement. if (flashdamage) ++flashdamage; // Frame counted else { bool on_tank = tank_on_tank(); int32_t bottom = env.screenHeight - tank_off_y; // shortcut int32_t pix_col = getpixel(global.terrain, x, y + tank_off_y - tank_sag); // Hitting a wall only bounces the tank. if ( ((x + xv) < 1) || ((x + xv) > (env.screenWidth - 1)) ) xv *= -1.; // Check whether a previous fall just ends: if ( (yv > 0.) && ( (y >= bottom) || (PINK != pix_col) || on_tank ) ) { addDamage(creditTo, yv * 10.); if (isTeleported) isTeleported = false; // 10 points of damage are 'free' when falling // Note: This negates any damage when parachuting as well. if (damage >= 10.) damage -= 10.; else damage = 0.; // Stop movement xv = 0.; yv = 0.; // fix y if the tank was fast enough to push through the floor if (y > bottom) y = bottom; // Reset falling delay and apply damage at once delay_fall = env.landSlideDelay * 100; applyDamage(); } // End of fall stop // Check whether the tank currently is falling else if ( (y < bottom) && (PINK == pix_col) && !on_tank && (env.landSlideType > SLIDE_NONE) ) { // If this is set to cartoon falling, decrease delay and exit. if ( (SLIDE_CARTOON == env.landSlideType) && (--delay_fall > 0) ) return; yv += env.gravity * env.FPS_mod; // Check for parachute opening if (para) { if (para < 3) ++para; // With a parachute, wind can blow the tank away xv += (global.wind - xv) / mass * (drag + 0.35) * env.viscosity; // Limit yv, we have a parachute! if (yv > 0.5 ) yv = 0.5; } else { // If we have parachutes, deploy one: if ((player->ni[ITEM_PARACHUTE]) && (yv >= 1.0)) { para = 1; player->ni[ITEM_PARACHUTE]--; } } x += xv; y += yv; } // End of fall start / continue // Nothing? Then make sure no parachute is shown else para = 0; // If there is no damage flashing, apply what is there if (!flashdamage) { applyDamage(); } requireUpdate(); } // End of regular movement setTextPositions(old_y != y); } /// @brief Test if the current weapon is available. Find another one, /// preferably stronger, if the current is empty. void TANK::check_weapon() { if ( (cw < 0) || (cw > WEAPONS) ) cw = 0; if (player && !player->nm[cw] ) { // Try upwards first: int32_t old_cw = cw++; for ( ; (cw < WEAPONS) && !player->nm[cw] ; ++cw) ; // If this wasn't successful, go downwards: if (WEAPONS == cw) { cw = old_cw - 1; for ( ; (cw > 0) && !player->nm[cw] ; --cw) ; } // This ends up with Small Missile if no other weapons are available. player->changed_weapon = true; } } /// @brief Deactivate vertical bounce and reset text positions void TANK::deactivate() { shieldText.set_sway_type(TS_NO_SWAY); healthText.set_sway_type(TS_NO_SWAY); nameText.set_sway_type(TS_NO_SWAY); setTextPositions(true); } void TANK::draw() { // check for foggy weather if ( ( env.fog ) && ( global.get_curr_tank() != this ) ) { addUpdateArea (x - tank_off_x - 3, y - 25, 35, 46); requireUpdate (); return; } // get bitmap for tank if ( (use_tankbitmap < 0) || (use_turretbitmap < 0) ) { setBitmap(); assert ((use_tankbitmap >= 0) && (use_turretbitmap >= 0) && "ERROR: Unable to set tank/turret bitmap!"); // No bitmap, no fun if ( (use_tankbitmap < 0) || (use_turretbitmap < 0) ) return; } // Put a coloured rectangle below the tank. rectfill (global.canvas, x - tank_off_x, y + tank_off_y, x + tank_off_x, y + tank_off_y + 2, this->player->color); // Draw shield first if any if (sh > 0) { // Make sure the values are set. (Client may not have set them) assert((BLACK != shld_col_outer) && shld_thickness && "ERROR: Did client() forget to set shield values?"); if (BLACK == shld_col_outer) shld_col_outer = makecol(item[sht].vals[SHIELD_RED], item[sht].vals[SHIELD_GREEN], item[sht].vals[SHIELD_BLUE]); if (!shld_thickness) shld_thickness = item[sht].vals[SHIELD_THICKNESS]; // Adapt shield phase: double str_mod = static_cast(sh) / item[sht].vals[SHIELD_ENERGY]; // The weaker the shield, the faster the phase shld_phase += shld_delta / str_mod; // Don't overdo while (shld_phase > 360.) shld_phase -= 360.; // Set basic values int32_t move_x = ROUNDu(x); int32_t move_y = ROUNDu(y) - turr_off_y + shld_rad_y; int32_t rad_x = shld_rad_x; int32_t rad_y = shld_rad_y; int32_t half_th = shld_thickness / 2; // Whether it is done over x or y depends on the type of shield if (sht < ITEM_LGT_REPULSOR_SHIELD) { rad_x += static_cast(env.slope[ROUNDu(shld_phase)][0] * 3.); rad_y += half_th; move_x -= half_th; } else { rad_x += half_th; rad_y += shld_phase * 6. / 360.; move_y -= half_th; } drawing_mode(DRAW_MODE_TRANS, nullptr, 0, 0); global.current_drawing_mode = DRAW_MODE_TRANS; set_trans_blender (0, 0, 0, 50); ellipsefill (global.canvas, move_x, move_y, rad_x, rad_y, shld_col_inner); set_trans_blender (0, 0, 0, ROUND(200. * str_mod) + 25); if (sht < ITEM_LGT_REPULSOR_SHIELD) { for (int32_t i = 0; i < shld_thickness; ++i) ellipse (global.canvas, move_x + i, move_y, rad_x, rad_y, shld_col_outer); } else { for (int32_t i = 0; i < shld_thickness; ++i) ellipse (global.canvas, move_x, move_y + i, rad_x, rad_y, shld_col_outer); } drawing_mode(DRAW_MODE_SOLID, nullptr, 0, 0); global.current_drawing_mode = DRAW_MODE_SOLID; setUpdateArea (move_x - shld_thickness - rad_x, move_y - shld_thickness - rad_y, (rad_x + shld_thickness) * 2, (rad_y + shld_thickness) * 2); } // End of drawing shield // Without a shield, the update area can be smaller else setUpdateArea (x - turr_off_x - 1, y - turr_off_x - 1, (turr_off_x * 2) + 2, tank_off_y + turr_off_x + 20); // Now draw the tank sprite draw_sprite (global.canvas, env.tank[use_tankbitmap], x - tank_off_x, y); rotate_sprite (global.canvas, env.tankgun[use_turretbitmap], x - turr_off_x, y - turr_off_y, itofix( (90 - a) * 256 / 360) ); // when using rockets, show flame if (yv < 0) /// @todo : This looks silly. We sure can do better, can't we? rectfill(global.canvas, x - tank_off_x, y + tank_off_y, x + tank_off_x, y + tank_off_y + 10, ORANGE); // Eventually draw the parachute if (para) { draw_sprite (global.canvas, env.tank[para], x - tank_off_x - 3, y - 25); addUpdateArea (x - tank_off_x - 3, y - 25, 35, 66); } setTextPositions(false); requireUpdate (); } /// @brief Create explosion and sound if a tank is destroyed. If available /// and/or set, stage a violent death. void TANK::explode (bool allow_vengeance) { if (!destroy) return; // Note: player->revenge and revenge texts are handled in applyDamage() try { new EXPLOSION (player, x, y, 0., env.screenHeight / 10., MED_MIS, false); } catch (...) { perror ( "tank.cpp: Failed to allocate memory for explosion" " in TANK::explode()"); } play_explosion_sound(MED_MIS, x, 255, 1000); // Violent death can only trigger if there is a player. // Note: There should be, always, so assert as well. Calling this method // after player was set to nullptr is a bug. assert (player && "ERROR: explode() called with nullptr player!"); if (nullptr == player) return; #ifdef NETWORK int32_t playerindex = 0; bool found = false; static char buffer[15] = { 0x0 }; // get the player index while ( (playerindex < env.numGamePlayers) && (!found) ) { if ( env.players[playerindex] && (env.players[playerindex]->tank == this) ) found = true; else playerindex++; } // we should have found a match and now we send it to all clients if (found) { snprintf(buffer, 14, "REMOVETANK %d", playerindex); env.sendToClients(buffer); } #endif // NETWORK // If vengeance is not allowed, break up here. if (!allow_vengeance) return; // If violent death is enabled to be automatically, // possibly sponsor one for the player unless they // already have something better. // But only if it is not the first 3 rounds. if (env.violent_death && ( (env.rounds - global.currentround) > 3) ) { int32_t ri = rand() % VIOLENT_CHANCE; // Limit ri to the value of violent_death. // This makes it less probable to trigger anything on lower settings. if ( (ri <= VD_HEAVY) && (ri > env.violent_death) ) ri = env.violent_death; // The entry is, that the player either has no fatal fury // or is about to get one sponsored. if (ri && (!player->ni[ITEM_FATAL_FURY] || (VD_HEAVY == ri)) ) { if (VD_HEAVY == ri) ++player->ni[ITEM_FATAL_FURY]; else if (!player->ni[ITEM_DYING_WRATH] || (VD_MEDIUM == ri)) { if (VD_MEDIUM == ri) ++player->ni[ITEM_DYING_WRATH]; else if (VD_LIGHT == ri) ++player->ni[ITEM_VENGEANCE]; } } // end of applying sponsorship to big boom } // End of violent death sponsorship // If the player has something to trigger in their last moment, // do so now: int32_t numLaunch = 0; int32_t min_power = 0; int32_t del_power = 0; if (player->ni[ITEM_FATAL_FURY] > 0) { numLaunch = item[ITEM_FATAL_FURY].vals[SELFD_NUMBER]; cw = item[ITEM_FATAL_FURY].vals[SELFD_TYPE]; player->nm[cw] += numLaunch; player->ni[ITEM_FATAL_FURY]--; min_power = MAX_POWER / 3; del_power = MAX_POWER / 3; } else if (player->ni[ITEM_DYING_WRATH] > 0) { numLaunch = item[ITEM_DYING_WRATH].vals[SELFD_NUMBER]; cw = item[ITEM_DYING_WRATH].vals[SELFD_TYPE]; player->nm[cw] += numLaunch; player->ni[ITEM_DYING_WRATH]--; min_power = MAX_POWER / 4; del_power = MAX_POWER / 3; } else if (player->ni[ITEM_VENGEANCE] > 0) { numLaunch = item[ITEM_VENGEANCE].vals[SELFD_NUMBER]; cw = item[ITEM_VENGEANCE].vals[SELFD_TYPE]; player->nm[cw] += numLaunch; player->ni[ITEM_VENGEANCE]--; min_power = MAX_POWER / 5; del_power = MAX_POWER / 3; } // If there is anything to launch, do it if (numLaunch) { // Expensive equipment like this should come with a certain quality. // The most important detail (right after actually going off and not // being a dud) is that the bucks won't be blasted the wrong way. TANK* tank = nullptr; int32_t med_x = 0; int32_t tanks = 0; global.getHeadOfClass(CLASS_TANK, &tank); while (tank) { if ( (tank != this) && !tank->destroy && ( (TEAM_NEUTRAL == player->team) || (player->team != tank->player->team) ) ) { ++tanks; med_x += tank->x; } tank->getNext(&tank); } // Get the medium x position of all tanks (or the middle of the // screen if this was the last tank... for the firework...) if (tanks) med_x /= tanks; else med_x = env.halfWidth; int32_t start_a = 45; int32_t mod_a = 90; if (med_x < (x - 50) ) { start_a = 30; mod_a = 55; } else if (med_x > (x + 50) ) { start_a = 95; mod_a = 55; } // Before the violent death is applied, halve the players // damage multiplier: assert(player && "ERROR: explode Tank without player?"); player->damageMultiplier = player->damageMultiplier > 1. ? 1. + ((player->damageMultiplier - 1.) / 2.) : .75; // Now go for it! int32_t cur_stage = global.stage; global.stage = STAGE_FIRE; for (int32_t i = numLaunch; i > 0; --i) { a = 180 - (start_a + (rand() % mod_a) - 90); p = min_power + (rand () % del_power); activateCurrentSelection (); } global.stage = cur_stage; } } /// @return The tanks bottom coordinate as used in collision detection. int32_t TANK::getBottom() { return y + tank_off_y - tank_sag; } /// @return The calculated tank diameter double TANK::getDiameter() { return tank_dia; } /// Sets @a top_x and @a top_y to the coordinates of the cannon tip void TANK::getGuntop(int32_t angle_, double &top_x, double &top_y) { top_x = x + (env.slope[angle_][0] * turr_off_x); top_y = y + (env.slope[angle_][1] * turr_off_y); // top_y must not be lower than tank y. (Lower means greater in value) if (top_y > y) top_y = y; } /// @return the current maxLife value int32_t TANK::getMaxLife() { return maxLife; } /// @brief return true if a repulsor shield is up and running bool TANK::hasRepulsorActivated() { return (repulsion != 0); } /// @brief return the number of pixels a tanks canon is buried /// If @a left and or @a right are given, they will receive the buried /// level on that side only. int32_t TANK::howBuried (int32_t* left, int32_t* right) { int32_t result = 0; int32_t old_x = 0; int32_t old_y = 0; int32_t cur_x = 0; int32_t cur_y = 0; double angles_seen = 0.; // Angles are from right (90) to left (270) counter clockwise for (int32_t ta = 90; ta < 270; ++ta) { cur_x = x + (env.slope[ta][0] * turr_off_x); cur_y = y + (env.slope[ta][1] * turr_off_y); if ( (cur_x != old_x) || (cur_y != old_y) ) { if (PINK != getpixel(global.terrain, cur_x, cur_y)) ++result; old_x = cur_x; old_y = cur_y; angles_seen += 1.; } if (180 == ta) { if (right) *right = result; if (left) *left = -result; } } // Add full result to right to negate left half and count only right half if (left) { *left += result; if (*left < 0) *left = 0; } // The result must be adapted according how many *real* angles, // meaning "missile starting points" are there. // If boxed mode is on, the level is doubled, as the ceiling makes it // very difficult to aim otherwise. double angle_mod = 180. / angles_seen; if (left) *left = ROUNDu(*left * angle_mod / 2.); if (right) *right = ROUNDu(*right * angle_mod / 2.); result *= angle_mod * (env.isBoxed ? 1.25 : 1.); return ROUNDu(result); } /// @return true if the tank is moving up or downwards (rocket / fall / glide) bool TANK::isFlying() { return (yv < 0.) || (yv > 0.); } /// @return true if the tank is within the box defined by the given coordinates. bool TANK::isInBox(int32_t x1, int32_t y1, int32_t x2, int32_t y2) { double gun_x, gun_y; getGuntop(a, gun_x, gun_y); return ( (std::min(x1, x2) < std::max(x + tank_off_x, gun_x) ) && (std::max(x1, x2) > std::min(x - tank_off_x, gun_x) ) && (std::min(y1, y2) < (y + tank_off_y) ) && (std::max(y1, y2) > std::min(y, gun_y) ) ); } /** @return true if the tank is within the given ellipse. * @param[in] ex Explosion x coordinate * @param[in] ey Explosion y coordinate * @param[in] rx Explosion x radius * @param[in] ry Explosion y radius * @param[out] in_rate_x The rate [0.;1.] of the tank x axis being in the ellipse. * @param[out] in_rate_y The rate [0.;1.] of the tank y axis being in the ellipse. **/ bool TANK::isInEllipse(double ex, double ey, double rx, double ry, double &in_rate_x, double &in_rate_y) { in_rate_x = 0.; in_rate_y = 0.; // The real gun tip height: double gun_y_off = env.slope[a][1] * turr_off_y; // But not below the tank: if (gun_y_off > 0.) gun_y_off = 0.; // For the tank the real centre position and the radii must be known. double ox = static_cast(tank_off_x); double oy = static_cast(tank_off_y - gun_y_off) / 2.; double tx = x; // For consistencies sake... double ty = y + (static_cast(tank_off_y + gun_y_off) / 2.); double simpDist = FABSDISTANCE2(ex, ey, tx, ty); // First handle a special case: The explosion takes place within the // tank defined ellipse. This is a full direct hit. if (simpDist <= (tank_dia / 2.)) { in_rate_x = 1.; in_rate_y = 1.; DEBUG_LOG_PHY("Full Direct Hit", "=== T %d/%d (%dx%d) versus E %d/%d (%dx%d) ===", ROUND(tx), ROUND(ty), ROUND(ox), ROUND(oy), ROUND(ex), ROUND(ey), ROUND(rx), ROUND(ry)) DEBUG_LOG_PHY("Full Direct Hit", "Distance %5.2lf <= Dia half %5.2lf", simpDist, tank_dia / 2.) return true; } /* The ideal solution would be to calculate the intersection of the two * ellipses which would enable us to tell the absolute correct value of how * much of the tank surface is covered by the explosion. * * Unfortunately this involves a 4th order equation to allow a numerical * solution. (I have found a very nice example written in JavaScript. It * uses several functions and has ~600 Lines. A bit much for a game, right?) * * The second best solution would be to determine the position on the rim of * each ellipse that is on a line between the two centres and then use their * distance. That is, if you blame this file and look up the commits, what I * tried first. * Unfortunately the exact location on the rim is almost as complex to * determine as the intersection. I did not see this in the beginning, * because I simply reused an algorithm of mine to check spheres in a 3D * space for collisions. But the hard truth is, that 3D spheres and 2D * ellipses are very different. * * So here is solution three. Still good enough for a game though. Just * check how much the x and y dimensions overlap and do a rough intersection * in two dimensions by reverse calculating the other axis. (This allows a * finer control of the damage for special shots like shaped charges, * though) */ // If shields are on, they must be taken into account if (sh > 0.) { ox = shld_rad_x; oy = shld_rad_y; } // Determine start and end positions of explosion/tank intersections. // The check is needed so hit/end are in the correct direction. double hit_x = ex > tx ? std::min(ex + rx, tx + ox) : std::max(ex - rx, tx - ox); double end_x = ex > tx ? std::max(ex - rx, tx - ox) : std::min(ex + rx, tx + ox); double hit_y = ey > ty ? std::min(ey + ry, ty + oy) : std::max(ey - ry, ty - oy); double end_y = ey > ty ? std::max(ey - ry, ty - oy) : std::min(ey + ry, ty + oy); /* Check: * ex = 100, tx = 150, rx = 40, ox = 20 * hit_x = 100 > 150 ? ... : max(100 - 40, 150 - 20) = max(60, 130) = 130 * end_x = 100 > 150 ? ... : min(100 + 40, 150 + 20) = min(140, 170) = 140 * ex/tx swapped: * hit_x = 150 > 100 ? min(150 + 40, 100 + 20) = min(190, 120) = 120 : ... * end_x = 150 > 100 ? max(150 - 40, 100 - 20) = max(110, 80) = 110 : ... * * This means start to end is always from explosion to tank. */ // Check whether the tank is in the explosion if both were boxes. if ( (SIGN(ex - tx) != SIGN(hit_x - end_x)) || (SIGN(ey - ty) != SIGN(hit_y - end_y)) ) return false; // Handle another special case: The tank is fully within the explosion: if ( (std::min(hit_x, end_x) <= (tx - ox)) && (std::min(hit_y, end_y) <= (ty - oy)) && (std::max(hit_x, end_x) >= (tx + ox)) && (std::max(hit_y, end_y) >= (ty + oy)) ) { in_rate_x = ((rx - std::abs(tx - ex) ) / rx) + 0.5; in_rate_y = ((ry - std::abs(ty - ey) ) / ry) + 0.5; if (in_rate_x > 1.0) in_rate_x = 1.0; if (in_rate_y > 1.0) in_rate_y = 1.0; // The full in_rate in "full washing over" must not be lower than 1/3 if (in_rate_x < 0.578) in_rate_x = 0.578; if (in_rate_y < 0.578) in_rate_y = 0.578; // Note: This value is taken, because 0.578 * 0.578 = 0.3341 (~1/3) DEBUG_LOG_PHY("Full Indirect Hit", "=== T %d/%d (%dx%d) versus E %d/%d (%dx%d) ===", ROUND(tx), ROUND(ty), ROUND(ox), ROUND(oy), ROUND(ex), ROUND(ey), ROUND(rx), ROUND(ry)) DEBUG_LOG_PHY("Full Indirect Hit", "Left %d <= %d", ROUNDu(std::min(hit_x, end_x)), ROUNDu(tx - ox)) DEBUG_LOG_PHY("Full Indirect Hit", "Top %d <= %d", ROUNDu(std::min(hit_y, end_y)), ROUNDu(ty - oy)) DEBUG_LOG_PHY("Full Indirect Hit", "Right %d >= %d", ROUNDu(std::max(hit_x, end_x)), ROUNDu(tx + ox)) DEBUG_LOG_PHY("Full Indirect Hit", "Bottom %d >= %d", ROUNDu(std::max(hit_y, end_y)), ROUNDu(ty + oy)) DEBUG_LOG_PHY("Full Indirect Hit", "in_rate_x : %5.2lf", in_rate_x) DEBUG_LOG_PHY("Full Indirect Hit", "in_rate_y : %5.2lf", in_rate_y) DEBUG_LOG_PHY("Full Indirect Hit", "Distance %5.2lf > Dia half %5.2lf", simpDist, tank_dia / 2.) return true; } // Get the middle of the x range and the explosions and tanks y rim there double mid_x = (hit_x + end_x) / 2.; double e_off_y = std::abs(ry * std::sin(std::acos((ex - mid_x) / rx))); double t_off_y = std::abs(oy * std::sin(std::acos((tx - mid_x) / ox))); double rng_y = std::min(ey + e_off_y, ty + t_off_y) - std::max(ey - e_off_y, ty - t_off_y); /* Note: * If the explosion is within the tank range: * ey+off < ty+off, ey-off > ty-off => rng = (ey+off) - (ey+off) => rng > 0 * If the explosion is above the tank but reaches in: * ey+off < ty+off, ey-off < ty-off => rng = (ey+off) - (ty-off) => rng > 0 * If the explosion is below the tank but reaches is: * ey+off > ty+off, ey-off > ty-off => rng = (ty+off) - (ey-off) => rng > 0 * If the tank is fully within the explosion: * ey+off > ty+off, ey-off < ty-off => rng = (ty+off) - (ty-off) => rng > 0 * If the explosion is fully above the tank: * ey+off < ty+off, ey-off < ty-off => rng = (ey+off) - (ty+off) => rng < 0 * If the explosion is fully below the tank: * ey+off > ty+off, ey-off > ty-off => rng = (ty+off) - (ey-off) => rng < 0 */ // Opt out if the explosions rim y does not fit the tanks rim y if ( rng_y < .01 ) { DEBUG_LOG_PHY("Opt Out Y", "=== T %d/%d (%dx%d) versus E %d/%d (%dx%d) ===", ROUND(tx), ROUND(ty), ROUND(ox), ROUND(oy), ROUND(ex), ROUND(ey), ROUND(rx), ROUND(ry)) DEBUG_LOG_PHY("Opt Out Y", "ey - ty (%d - %d = %d / %5.3lf)", ROUND(ey), ROUND(ty), ROUND(ey - ty), rng_y) DEBUG_LOG_PHY("Opt Out Y", "Exp_y (%d to %d = %d)", ROUND(ey - e_off_y), ROUND(ey + e_off_y), ROUND(2 * e_off_y)) DEBUG_LOG_PHY("Opt Out Y", "Tnk_y (%d to %d = %d)", ROUND(ty - t_off_y), ROUND(ty + t_off_y), ROUND(2 * t_off_y)) return false; } // Get the middle of the y range and the explosions x rim there double mid_y = (hit_y + end_y) / 2.; double e_off_x = std::abs(rx * std::cos(std::asin((ey - mid_y) / ry))); double t_off_x = std::abs(ox * std::cos(std::asin((ty - mid_y) / oy))); double rng_x = std::min(ex + e_off_x, tx + t_off_x) - std::max(ex - e_off_x, tx - t_off_x); // Opt out if the explosions rim x does not fit the tanks rim x if ( rng_x < .01 ) { DEBUG_LOG_PHY("Opt Out X", "=== T %d/%d (%dx%d) versus E %d/%d (%dx%d) ===", ROUND(tx), ROUND(ty), ROUND(ox), ROUND(oy), ROUND(ex), ROUND(ey), ROUND(rx), ROUND(ry)) DEBUG_LOG_PHY("Opt Out X", "ex - tx (%d - %d = %d / %5.3lf)", ROUND(ex), ROUND(tx), ROUND(ex - tx), rng_x) DEBUG_LOG_PHY("Opt Out X", "Exp_x (%d to %d = %d)", ROUND(ex - e_off_x), ROUND(ex + e_off_x), ROUND(2 * e_off_x)) DEBUG_LOG_PHY("Opt Out X", "Tnk_x (%d to %d = %d)", ROUND(tx - t_off_x), ROUND(tx + t_off_x), ROUND(2 * t_off_x)) return false; } // Being here means that both ranges lie within the tanks ellipse. in_rate_x = rng_x / ( ox * 2. ); in_rate_y = rng_y / ( oy * 2. ); assert ( (in_rate_x > 0.) && (in_rate_y > 0.) && "RANGE ERROR"); DEBUG_LOG_PHY("Overlapping", "=== T %d/%d (%dx%d) versus E %d/%d (%dx%d) ===", ROUND(tx), ROUND(ty), ROUND(ox), ROUND(oy), ROUND(ex), ROUND(ey), ROUND(rx), ROUND(ry)) DEBUG_LOG_PHY("Overlapping", "Hit: %4d/%4d ; End: %4d/%4d", ROUNDu(std::min(hit_x, end_x)), ROUNDu(std::min(hit_y, end_y)), ROUNDu(std::max(hit_x, end_x)), ROUNDu(std::max(hit_y, end_y)) ) DEBUG_LOG_PHY("Overlapping", "Exp: %4d/%4d ; Tnk %4d/%4d ; Rng %4d/%4d", ROUNDu(e_off_x), ROUNDu(e_off_y), ROUNDu(t_off_y), ROUNDu(t_off_y), ROUNDu(rng_x), ROUNDu(rng_y) ) DEBUG_LOG_PHY("Overlapping", "in_rate_x : %5.2lf", in_rate_x) DEBUG_LOG_PHY("Overlapping", "in_rate_y : %5.2lf", in_rate_y) // distances over 50% radius are taken to reduce the rates further double dist_x_mod = ((rx - std::abs(tx - ex) ) / rx) + 0.5; double dist_y_mod = ((ry - std::abs(ty - ey) ) / ry) + 0.5; // Limit to 0.578 to 1.0 (See full indirect hit why 0.578 is used) if (dist_x_mod > 1.0) dist_x_mod = 1.0; if (dist_x_mod < 0.578) dist_x_mod = 0.578; if (dist_y_mod > 1.0) dist_y_mod = 1.0; if (dist_y_mod < 0.578) dist_y_mod = 0.578; DEBUG_LOG_PHY("Overlapping", "dist_x_mod : %5.2lf", dist_x_mod) DEBUG_LOG_PHY("Overlapping", "dist_y_mod : %5.2lf", dist_y_mod) in_rate_x *= dist_x_mod; in_rate_y *= dist_y_mod; // Trim both rates to 1.0 if (in_rate_x > 1.0) in_rate_x = 1.0; if (in_rate_y > 1.0) in_rate_y = 1.0; DEBUG_LOG_PHY("Overlapping", "Final x : %5.2lf", in_rate_x) DEBUG_LOG_PHY("Overlapping", "Final y : %5.2lf", in_rate_y) return true; } /** @brief move the tank one unit * This function tries to move the tank either left or right one * unit. * * @param[in] direction The direction to move, DIR_RIGHT or DIR_LEFT. * * @return true if the tank was moved, false otherwise **/ bool TANK::moveTank(int32_t direction) { // return now if the tank is flying/falling or has no fuel if ( (player->ni[ITEM_FUEL] < 1 ) // No fuel ? || (yv < 0.) || (yv > 0.) ) // flying / falling ? return false; // Safety: assert DIR_LEFT/RIGHT assert ( ((DIR_LEFT == direction) || (DIR_RIGHT == direction)) && "ERROR: Call moveTank with either DIR_LEFT or DIR_RIGHT!"); if ( (DIR_LEFT != direction) && (DIR_RIGHT != direction)) return false; // Check whether the target pixel is beyond the border or occupied int32_t nextX = ROUND(x + direction); if ( (nextX < 1) || (nextX >= env.screenWidth) || (env.landType == LAND_NONE) ) return false; // select the next pixel on the left/right that is not terrain float nextY = global.surface[nextX].load(ATOMIC_READ) - 1; // If there is more terrain to climb, the pixel after the next must // be taken into account, too int32_t afterX = nextX + direction; float afterY = nextY; if ( (afterX > 0) && (afterX < env.screenWidth) ) afterY = global.surface[afterX].load(ATOMIC_READ) - 1; // If the tank is not climbing too much, let it move: if ( (nextY > (y - tank_sag)) && (afterY > (y - tank_off_y + tank_sag)) ) { // move tank x = nextX; player->ni[ITEM_FUEL]--; // climb and correct for the tank extension y = nextY - tank_off_y + tank_sag; // But secure y if (y > (env.screenHeight - tank_off_y)) y = env.screenHeight - tank_off_y; return true; } // No move: return false; } void TANK::newRound (int32_t pos_x, int32_t pos_y) { // A new round without set player is futile. assert(player && "ERROR: TANK::newRound called with nullptr player"); if (nullptr == player) return; static char buf[10] = { 0x0 }; // Reclaim shield if there is one left from end of last round player->reclaimShield(); // Reset all values cw = 0; damage = 0.; para = 0; creditTo = nullptr; p = MAX_POWER / 2; a = (rand () % 150) + 105; sh = 0; sht = ITEM_NO_SHIELD; repulsion = 0; delay_fall = env.landSlideDelay * 100; // Re-calculate max life double tmpL = (player->ni[ITEM_ARMOUR] * item[ITEM_ARMOUR].vals[0]) + (player->ni[ITEM_PLASTEEL] * item[ITEM_PLASTEEL].vals[0]); maxLife = 100 + (tmpL > 0. ? static_cast(std::pow(tmpL, .6)) : 0); l = maxLife; // (re)-init health text snprintf (buf, 9, "%d", l); healthText.set_text (buf); healthText.set_color(player->color); // Re-calculate repair rate int32_t num_kits = player->ni[ITEM_REPAIRKIT]; int32_t increase_amount = 5; repair_rate = 0; while (num_kits-- > 0) { repair_rate += increase_amount; if (increase_amount > 1) --increase_amount; } // (re-)init name text if (env.nameAboveTank) { nameText.set_text ( player->getName() ); nameText.set_color( player->color ); } fire_another_shot = 0; // Set used bitmaps, determine offsets and place tank x = pos_x; y = pos_y; use_tankbitmap = -1; use_turretbitmap = -1; setBitmap(); } void TANK::reactivate_shield () { // if no shield remains, try to reload if (sh > 0) return; static char buf[5] = { 0x0 }; sht = ITEM_NO_SHIELD; // Try to set the most heavy shield there is available: if (player->ni[ITEM_HVY_REPULSOR_SHIELD]) sht = ITEM_HVY_REPULSOR_SHIELD; else if (player->ni[ITEM_HVY_SHIELD]) sht = ITEM_HVY_SHIELD; else if (player->ni[ITEM_MED_REPULSOR_SHIELD]) sht = ITEM_MED_REPULSOR_SHIELD; else if (player->ni[ITEM_MED_SHIELD]) sht = ITEM_MED_SHIELD; else if (player->ni[ITEM_LGT_REPULSOR_SHIELD]) sht = ITEM_LGT_REPULSOR_SHIELD; else if (player->ni[ITEM_LGT_SHIELD]) sht = ITEM_LGT_SHIELD; if (ITEM_NO_SHIELD != sht) { player->ni[sht]--; sh = item[sht].vals[SHIELD_ENERGY]; repulsion = item[sht].vals[SHIELD_REPULSION]; shld_col_outer = makecol (item[sht].vals[SHIELD_RED], item[sht].vals[SHIELD_GREEN], item[sht].vals[SHIELD_BLUE]); shld_thickness = item[sht].vals[SHIELD_THICKNESS]; player->last_shield_used = sht; shld_phase = 0.; // Start neutral. snprintf (buf, 4, "%d", sh); shieldText.set_text (buf); setTextPositions(true); } } /// @brief do tank repairs void TANK::repair() { if ( (repair_rate > 0) && (l < maxLife) ) { int32_t old_life = l; // Apply repair l += repair_rate; if (l > maxLife) l = maxLife; // update text snprintf(buf, 9, "%d", l); healthText.set_text(buf); // add float text if (!global.skippingComputerPlay) { try { snprintf(buf, 9, "+%d", l - old_life); new FLOATTEXT(buf, x, y - 30, .0, -.8, GREEN, CENTRE, TS_NO_SWAY, 120, false); } catch (...) { perror("tank.cpp: Failed to allocate memory for healing" " text in repair()."); } } } } bool TANK::repulse (double xpos, double ypos, double* xa, double* ya, ePhysType phys_type) { // If there is no repulsion or the physics type is // not sensitive to repulsion, return at once. if ( !repulsion || (PT_FUNKY_FLOAT == phys_type) || (PT_NONE == phys_type) || (PT_ROLLING == phys_type) ) return false; double xdist = xpos - x; double ydist = ypos - (y - turr_off_y + shld_rad_y); // Apply a minimum distance so no extreme catapult shots happen if (std::abs(xdist) < 0.25) xdist = 0.25 * SIGNd(xdist); if (std::abs(ydist) < 0.25) ydist = 0.25 * SIGNd(ydist); // Unless this is a burying type that currently comes from below, // repulsion is done upwards, assuming the projectile comes from above. if ( ( (PT_DIGGING == phys_type) && (ydist < 0.) ) || ( (PT_DIGGING != phys_type) && (ydist > 0.) ) ) ydist *= -1.0; // Missiles normally come from above, diggers from below. double distance2 = (xdist * xdist) + (ydist * ydist); double distance = sqrt (distance2); if (distance < (5. * std::sqrt(static_cast(repulsion))) ) { double rep_mod = PT_DIGGING == phys_type ? 0.15 : PT_DIRTBOUNCE == phys_type ? 0.66 : PT_SMOKE == phys_type ? 0.75 : 1.; *xa = (repulsion * (xdist / distance) / distance2) * rep_mod * 0.75; *ya = (repulsion * (ydist / distance) / distance2) * rep_mod * 1.50; return true; } return false; } /// @brief Resets flash_damage and applies damage if flash_damage /// is greater than half the FPS (meaning ~0.5 seconds) or the tank is dead. void TANK::resetFlashDamage() { if ( (flashdamage > (env.frames_per_second / 2)) || destroy ) { flashdamage = 0; if (ROUND(damage) > 0) applyDamage(); requireUpdate(); } } void TANK::setBitmap() { if (!player) return; bool had_offsets = ((use_tankbitmap > -1) && (use_turretbitmap > -1)); if (TT_NORMAL == player->tankbitmap) { use_tankbitmap = 0; use_turretbitmap = 0; } else { use_tankbitmap = player->tankbitmap + TO_TANK; use_turretbitmap = player->tankbitmap + TO_TURRET; } // Set needed offsets tank_off_x = ROUNDu( env.tank[use_tankbitmap]->w / 2); tank_off_y = env.tank[use_tankbitmap]->h; tank_sag = ROUNDu(static_cast(tank_off_y) / 2.66); turr_off_x = ROUNDu( env.tankgun[use_turretbitmap]->w / 2); turr_off_y = ROUNDu(env.tankgun[use_turretbitmap]->h / 2) - 2; shld_rad_x = tank_off_x + (turr_off_x / 2) + 1; shld_rad_y = ((tank_off_y + turr_off_y) / 2) + 1; tank_dia = FABSDISTANCE2(2. * std::max(tank_off_x, turr_off_x), tank_off_y + (std::min(turr_off_x, turr_off_y) / 2.), 0., 0.); // If these are new offsets, the position of the tank is too low and must be fixed: if (!had_offsets) y -= (tank_off_y - tank_sag); // Be sure the placement is sane: assert( ((x - tank_off_x) > 2) && "Placement too far left"); assert( ((x + tank_off_x) < (env.screenWidth - 3)) && "Placement too far right"); // Without debug mode, this must be fixed: if ( (x - tank_off_x) < 3) x = tank_off_x + 3; if ( (x + tank_off_x) > (env.screenWidth - 4) ) x = env.screenWidth - 4 - tank_off_x; } void TANK::setTextPositions(bool renew_colour) { int32_t textpos = -12 - turr_off_x; if (sh > 0) { shieldText.set_pos (x, y + textpos); textpos -= 14; if (renew_colour) shieldText.set_color(TURQUOISE); } else shieldText.set_pos(-1, -1); healthText.set_pos (x, y + textpos); textpos -= 14; if (renew_colour) healthText.set_color(player ? player->color : WHITE); if (env.nameAboveTank) { nameText.set_pos (x, y + textpos); if (renew_colour) shieldText.set_color(player ? player->color : WHITE); } } bool TANK::shootClearance (int32_t targetAngle, int32_t minimumClearance, bool &crashed) { int32_t clearance = 2; double xmov = env.slope[targetAngle][0]; double ymov = env.slope[targetAngle][1]; double xpos = x + (xmov * (turr_off_x + clearance)); double ypos = y + (ymov * (turr_off_x + clearance)); bool done = false; crashed = false; while (!done) { xpos += xmov; ypos += ymov; if ( (ypos <= MENUHEIGHT) || (xpos < 2) || (xpos > (env.screenWidth - 2) ) ) { clearance = minimumClearance; // done it! There can't be dirt any more! done = true; } else { if (++clearance >= minimumClearance) done = true; else { if (PINK != getpixel(global.terrain, xpos, ypos)) done = true; } // End of having to check a pixel } // End of being within screen bounds } // End of checking the path // If a minimum clearance lower than the screen width is sought, // check whether this results in a wall/ceiling hit. if ( (minimumClearance < env.screenWidth) && ( ( env.isBoxed && (ypos <= MENUHEIGHT) && ( (WALL_STEEL == env.current_wallType) || (WALL_WRAP == env.current_wallType) ) ) || ( ( WALL_STEEL == env.current_wallType) && ( (xpos < 2 ) || (xpos > (env.screenWidth - 3)) ) ) ) ) { clearance = -1; crashed = true; } return (clearance >= minimumClearance); } /// @brief this is used whenever a weapon really is triggered. /// In simultaneous play this does not actually mean it is fired. /// To fire another shot without the trigger action, call /// activateCurrentSelection(). void TANK::simActivateCurrentSelection () { static char buf[6] = { 0x0 }; if (env.turntype != TURN_SIMUL) { activateCurrentSelection(); if (fire_another_shot) fire_another_shot--; } // allow naturals to happen again global.naturals_activated = 0; snprintf (buf, 5, "%d", l); healthText.set_text(buf); // avoid having key presses read in next turn clear_keybuf(); } /** @brief return true if this tank landed on another tank * * This function checks to see if there is a tank directly below this * one. This is to determine if we landed on someone. * * @return true if the tank landed on another one, false otherwise **/ bool TANK::tank_on_tank() { TANK* lt = nullptr; bool found_tank = false; global.getHeadOfClass(CLASS_TANK, <); while (lt && !found_tank) { if ( (lt != this) && (std::abs(lt->x - x) < tank_off_x) && (lt->y > y) && ((lt->y - y) < tank_off_y) ) found_tank = true; else lt->getNext(<); } return found_tank; } atanks-6.6/src/optionitemmenu.cpp0000644000175000017500000000564712636021030015342 0ustar apoapo#include "optionitemmenu.h" #include "menu.h" #include "clock.h" /** @brief Default constructor. * * The target is the Menu instance to handle. * * Activation is a simple call to the Menus operator(), its return value * is then returned without further ado. * * @param[in,out] menu_ Pointer to the Menu instance to handle. * @param[in] title_ The title of the option to display. * @param[in] titleIdx_ Index value of the submitted title. -1 means @a title_ is fixed. * @param[in] color Regular display color of the title. * @param[in] top_ Top position of the display area. * @param[in] left_ Left position of the display area. * @param[in] width_ Width of the display area. * @param[in] height_ Height of the display area. * @param[in] padding_ Padding of the title and buttons to the display area. **/ OptionItemMenu::OptionItemMenu( Menu* menu_, const char* title_, int32_t titleIdx_, int32_t color_, int32_t top_, int32_t left_, int32_t width_, int32_t height_, int32_t padding_) : OptionItemBase(ET_MENU, title_ ? title_ : menu_ ? menu_->getTitle() : nullptr, titleIdx_, nullptr, color_, TC_NONE, nullptr, top_, left_, width_, height_, padding_, 0), menu(menu_) { // Both action or player must be set assert ( menu_ && "A nullptr menu_ makes no sense..."); // As the title is displayed as text, textOnly must be set: this->textOnly = true; } /// @brief default dtor only setting nullptr values. No further action needed. OptionItemMenu::~OptionItemMenu() { menu = nullptr; } /* ---------------------- * --- Public methods --- * ---------------------- */ /** @brief activate the sub menu * * This calls operator() on the menu. * * Note: The parameters are defined by OptionItemBase but unused * here. * * @return The return code of the sub menu. **/ int32_t OptionItemMenu::activate(int32_t, int32_t, int32_t, int32_t) { // Remove parent menu timer WIN_CLOCK_REMOVE int32_t result = (*menu)(); // Changes are displayed at once: this->drawn = false; this->display(false); // Re-add parent menu timer WIN_CLOCK_INIT return result; } /// @brief returns always true bool OptionItemMenu::canGoDown() { return true; } /// @brief returns always true bool OptionItemMenu::canGoUp() { return true; } /** @brief display the sub menu title * * @param[in] show_full If set to true, title and buttons are redrawn. **/ void OptionItemMenu::display(bool show_full) { this->displayMenu(menu); // Show decorations if wanted: if (show_full) this->displayDeco(); } /// @brief return true, the menu must be able to return an exit code. bool OptionItemMenu::isExitButton() { return true; } /// @brief simply calls setLanguage(false) on the target menu void OptionItemMenu::setLanguage() { if (menu) menu->setLanguage(false); } atanks-6.6/src/main.h0000644000175000017500000003673113006377360012671 0ustar apoapo#ifndef MAIN_DEFINE #define MAIN_DEFINE /* * atanks - obliterate each other with oversize weapons * Copyright (C) 2003 Thomas Hudson * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef VERSION # error "VERSION information is missing. Fix Makefile." #endif #ifdef GENTOO # ifndef DATA_DIR # define DATA_DIR "/usr/share/games/atanks" # endif // DATA_DIR #endif // GENTOO #ifndef BUFFER_SIZE # define BUFFER_SIZE 256 #endif /// Important: debug.h not only detects which OS/compiler this is, /// it puts an important fix with allegro on windows in place. /// Therefore it *must* stay before the block including winalleg.h! #include "debug.h" // The windows port does some crazy stuff with int*_t types. #if defined(ATANKS_IS_WINDOWS) # include # ifndef ALLEGRO_HAVE_STDINT_H # define ALLEGRO_HAVE_STDINT_H 1 # endif // ALLEGRO_HAVE_STDINT_H # if !defined(ATANKS_SRC_ATANKS_CPP) # define ALLEGRO_NO_MAGIC_MAIN # endif // Not called from atanks.cpp #endif // Windows build system # include #if defined(ATANKS_IS_WINDOWS) # include #endif // windows // For visual studio some "workarounds" must be put in place #if defined(ATANKS_IS_MSVC) # define PATH_MAX MAX_PATH // Needed for M_PIl to show up # if !defined(_USE_MATH_DEFINES) # define _USE_MATH_DEFINES 1 # endif # include #else # include # include #endif // Windows versus Linux // Be sure M_PI and M_PIl are set: #if !defined(M_PI) # define M_PI 3.14159265358979323846f #endif #if !defined(M_PIl) # define M_PIl 3.14159265358979323846L #endif #include #include #include #include #include #include #include #include #include #include #include "globaltypes.h" #define DONE_IMAGE 11 #define FAST_UP_ARROW_IMAGE 12 #define UP_ARROW_IMAGE 13 #define DOWN_ARROW_IMAGE 14 #define FAST_DOWN_ARROW_IMAGE 15 #ifndef HAS_DIRENT # if defined(ATANKS_IS_MSVC) # include "extern/dirent.h" # else # include # endif // Linux # define HAS_DIRENT 1 #endif // HAS_DIRENT // Some more workarounds to compile using visual studio: #if defined(ATANKS_IS_MSVC) # define snprintf atanks_snprintf # define strncpy(d, s, c) strncpy_s(d, c+1, s, c) # define strncat(d, s, c) strncat_s(d, c+1, s, c) # define sscanf sscanf_s # define access _access # define F_OK 02 # define R_OK 04 # define W_OK 02 # define strcasecmp _stricmp # define strdup _strdup # define unlink _unlink # define mkdir _mkdir #endif // Note: See winclock.h why this is necessary /// REMOVE_VS12_WORKAROUND #if defined(ATANKS_IS_MSVC) && !defined(ATANKS_IS_AT_LEAST_MSVC13) #define USLEEP(microseconds_) Sleep(microseconds_ / 1000); #define MSLEEP(milliseconds_) Sleep(milliseconds_); #else #define USLEEP(microseconds_) std::this_thread::sleep_for(std::chrono::microseconds(microseconds_)); #define MSLEEP(milliseconds_) std::this_thread::sleep_for(std::chrono::milliseconds(milliseconds_)); #endif // VS12 workaround #define LINUX_SLEEP MSLEEP(10) #define LINUX_REST MSLEEP(40) using std::cerr; using std::cout; using std::endl; using std::string; // place to save config and save games #if defined(ATANKS_IS_WINDOWS) # define HOME_DIR "AppData" #elif defined(ATANKS_IS_LINUX) # define HOME_DIR "HOME" #endif // Windows versus Linux #ifndef DATA_DIR # define DATA_DIR "." #endif #define MAX_OVERSHOOT 10000 // The nex few are some math helpers that shorten things dramatically. #define SIGN(x_arg) ((x_arg) < 0 ? -1 : 1 ) #define SIGNd(x_arg) ((x_arg) < 0. ? -1. : 1.) #define ROUND(x_arg) static_cast( (x_arg) + (SIGNd(x_arg) * .5)) #define ROUNDu(x_arg) static_cast((x_arg) + .5) #define FABSDISTANCE2(x1,y1,x2,y2) \ std::sqrt(std::pow(static_cast(x2) - static_cast(x1), 2.) \ + std::pow(static_cast(y2) - static_cast(y1), 2.) ) #define FABSDISTANCE3(x1, y1, z1, x2, y2, z2) \ std::sqrt(std::pow(static_cast(x2) - static_cast(x1), 2.) \ + std::pow(static_cast(y2) - static_cast(y1), 2.) \ + std::pow(static_cast(z2) - static_cast(z1), 2.) ) #define ABSDISTANCE2(x1,y1,x2,y2) ROUNDu(FABSDISTANCE2(x1,y1,x2,y2)) #define ABSDISTANCE3(x1,y1,z1,x2,y2,z2) ROUNDu(FABSDISTANCE3(x1,y1,z1,x2,y2,z2)) #define DEG2RAD(degree_) (static_cast(degree_) * M_PIl / 180. ) #define RAD2DEG(radian_) (static_cast(radian_) * 180. / M_PIl) /** @brief show or hide the custom mouse cursor * * This macro can either hide the custom mouse cursor when @a where is set * to nullptr, or draw it on @a where, which then must be a pointer to a * BITMAP. * * This macro should be used to hide the custom mouse cursor before doing any * drawing and to place the mouse cursor on @a where once all other drawing is * done. * * If the OS mouse cursor is used, this macro does nothing. * * @param[in] where BITMAP pointer to draw the custom cursor on or nullptr to * hide the custom mouse cursor. **/ #define SHOW_MOUSE(where) { \ if (!env.osMouse) { \ if (where != nullptr) unscare_mouse(); \ else scare_mouse(); \ show_mouse(where); \ /* Make the neccessary updates */ \ if (where != nullptr) { \ global.make_update (mouse_x, mouse_y, env.misc[0]->w, env.misc[0]->h); \ global.make_update (lx, ly, env.misc[0]->w, env.misc[0]->h); \ lx = mouse_x; \ ly = mouse_y; \ } \ } \ } #define MAXPLAYERS 10 #define MAX_POWER 2000 #define MIN_POWER 100 #define MAX_ROUNDS 10000 #define MENUHEIGHT 40 #define BOXED_TOP 41 // This is the highest non-border pixel in boxed mode #define BALLISTICS 53 #define BEAMWEAPONS 3 #define WEAPONS (BALLISTICS + BEAMWEAPONS) #define ITEMS 24 #define THINGS (WEAPONS + ITEMS) #define NATURALS 6 #define DIRT_FRAGMENT -1 #define RADII 6 #define MAXRADIUS 200 #define BUTTONFRAMES 2 #define MENUBUTTONS 7 #define INGAMEBUTTONS 4 #define SPREAD 10 #define NAME_LEN 24 #define ADDRESS_LENGTH 16 #define WAIT_AT_END_OF_ROUND 1 // second (enough with the new live score board) #define MAX_ITEM_NAME_LEN 127 #define MAX_ITEM_DESC_LEN 511 #define MAX_ITEMS_IN_STOCK 999999 #define MAX_MONEY_IN_WALLET 1000000000 // to make the theft bomb base steal easier to change, here // is a useful define. Maybe, one day, we'll add it to the options? #define THEFT_AMOUNT 5000 // Use these instead of the (most strict) defaults, // But only where timing by memory fences do not matter. #define ATOMIC_READ std::memory_order_acquire #define ATOMIC_WRITE std::memory_order_release //turns enum turnTypes { TURN_HIGH = 0, TURN_LOW, TURN_RANDOM, TURN_SIMUL }; struct POINT_t { int32_t x = 0; int32_t y = 0; explicit POINT_t() { } POINT_t(int32_t x_, int32_t y_); POINT_t &operator=( const POINT_t &src ); }; struct BOX { int32_t x = 0; int32_t y = 0; int32_t w = 0; int32_t h = 0; explicit BOX () { } BOX (int32_t x_, int32_t y_, int32_t w_, int32_t h_); BOX &operator=(const BOX &src); BOX &operator=(const BOX &&src); void set(int32_t x_, int32_t y_, int32_t w_, int32_t h_); }; // Make the BOX usage easier: bool operator==(const BOX &lhs, const BOX &rhs); bool operator!=(const BOX &lhs, const BOX &rhs); struct gradient { RGB color; float point; }; class WEAPON { public: /* ----------------------------------- * --- Constructors and destructor --- * ----------------------------------- */ explicit WEAPON(); /* ----------------------------------- * --- Public methods --- * ----------------------------------- */ int32_t getDelayDiv() const; const char* getDesc() const; const char* getName() const; void setDesc(const char* desc_); void setName(const char* name_); /* ----------------------------------- * --- Public members --- * ----------------------------------- */ int32_t cost = 0; //!< $ :)) int32_t amt = 0; //!< number of weapons in one buying package double mass = 0.; double drag = 0.; int32_t radius = 0; //!< of the explosion int32_t sound = 0; int32_t etime = 0; int32_t damage = 0; //!< damage power int32_t picpoint = 0; //!< which picture do we show in flight? int32_t spread = 0; //!< number of weapons in the shot int32_t delay = 0; //!< volleys etc. int32_t noimpact = 0; int32_t techLevel = 0; int32_t warhead = 0; //!< Is it a warhead? int32_t numSubmunitions = 0; //!< Number of submunitions int32_t submunition = 0; //!< The next stage double impartVelocity = 0.; //!< Impart velocity 0.0-1.0 to subs int32_t divergence = 0; //!< Total angle for submunition spread double spreadVariation = 0.; //!< Uniform or random distribution //!< 0-1.0 (0=uniform, 1.0=random) //!< divergence at centre of range double launchSpeed = 0.; //!< Speed given to submunitions double speedVariation = 0.; //!< Uniform or random speed //!< 0-1.0 (0=uniform, 1.0=random) //!< launchSpeed at centre of range int32_t countdown = 0; //!< Set the countdown to this double countVariation = 0.; //!< Uniform or random countdown //!< 0-1.0 (0=uniform, 1.0=random) //!< countdown at centre of range private: /* ----------------------------------- * --- Private members --- * ----------------------------------- */ char desc[MAX_ITEM_DESC_LEN + 1]; char name[MAX_ITEM_NAME_LEN + 1]; }; #define MAX_ITEMVALS 10 class ITEM { public: /* ----------------------------------- * --- Constructors and destructor --- * ----------------------------------- */ explicit ITEM(); /* ----------------------------------- * --- Public methods --- * ----------------------------------- */ const char* getDesc() const; const char* getName() const; void setDesc(const char* desc_); void setName(const char* name_); /* ----------------------------------- * --- Public members --- * ----------------------------------- */ int32_t cost = 0; int32_t amt = 0; int32_t selectable = 0; int32_t techLevel = 0; int32_t sound = 0; double vals[MAX_ITEMVALS]; private: /* ----------------------------------- * --- Private members --- * ----------------------------------- */ char desc[MAX_ITEM_DESC_LEN + 1]; char name[MAX_ITEM_NAME_LEN + 1]; }; enum shieldVals { SHIELD_ENERGY, SHIELD_REPULSION, SHIELD_RED, SHIELD_GREEN, SHIELD_BLUE, SHIELD_THICKNESS }; enum selfDestructVals { SELFD_TYPE = 0, SELFD_NUMBER }; enum weaponType { SML_MIS = 0, MED_MIS = 1, LRG_MIS = 2, SML_NUKE = 3, NUKE = 4, DTH_HEAD = 5, SML_SPREAD = 6, MED_SPREAD = 7, LRG_SPREAD = 8, SUP_SPREAD = 9, DTH_SPREAD = 10, ARMAGEDDON = 11, CHAIN_MISSILE = 12, CHAIN_GUN = 13, JACK_HAMMER = 14, SHAPED_CHARGE = 15, WIDE_BOY = 16, CUTTER = 17, SML_ROLLER = 18, LRG_ROLLER = 19, DTH_ROLLER = 20, SMALL_MIRV = 21, ARMOUR_PIERCING = 22, CLUSTER = 23, SUP_CLUSTER = 24, FUNKY_BOMB = 25, FUNKY_DEATH = 26, FUNKY_BOMBLET = 27, FUNKY_DEATHLET = 28, BOMBLET = 29, SUP_BOMBLET = 30, BURROWER = 31, PENETRATOR = 32, SML_NAPALM = 33, MED_NAPALM = 34, LRG_NAPALM = 35, NAPALM_JELLY = 36, DRILLER = 37, TREMOR = 38, SHOCKWAVE = 39, TECTONIC = 40, RIOT_BOMB = 41, HVY_RIOT_BOMB = 42, RIOT_CHARGE = 43, RIOT_BLAST = 44, DIRT_BALL = 45, LRG_DIRT_BALL = 46, SUP_DIRT_BALL = 47, SMALL_DIRT_SPREAD = 48, CLUSTER_MIRV = 49, PERCENT_BOMB = 50, REDUCER = 51, THEFT_BOMB = 52, // Last ballistic (BALLISTICS == 53) SML_LAZER = 53, MED_LAZER = 54, LRG_LAZER = 55, // Last weapon (WEAPONS == 56) SML_METEOR = 56, MED_METEOR = 57, LRG_METEOR = 58, SML_LIGHTNING = 59, MED_LIGHTNING = 60, LRG_LIGHTNING = 61 // Last natural }; #define LAST_EXPLOSIVE DRILLER #define ITEM_NO_SHIELD -1 enum itemType { ITEM_TELEPORT = 0, // 56 (weap_idx - WEAPONS) ITEM_SWAPPER = 1, // 57 ITEM_MASS_TELEPORT = 2, // 58 ITEM_FAN = 3, // 59 ITEM_VENGEANCE = 4, // 60 ITEM_DYING_WRATH = 5, // 61 ITEM_FATAL_FURY = 6, // 62 ITEM_LGT_SHIELD = 7, ITEM_MED_SHIELD = 8, ITEM_HVY_SHIELD = 9, ITEM_LGT_REPULSOR_SHIELD = 10, ITEM_MED_REPULSOR_SHIELD = 11, ITEM_HVY_REPULSOR_SHIELD = 12, ITEM_ARMOUR = 13, ITEM_PLASTEEL = 14, ITEM_INTENSITY_AMP = 15, ITEM_VIOLENT_FORCE = 16, ITEM_SLICKP = 17, ITEM_DIMPLEP = 18, ITEM_PARACHUTE = 19, ITEM_REPAIRKIT = 20, ITEM_FUEL = 21, // 77 ITEM_ROCKET = 22, // 78 ITEM_SDI = 23 // 79 (Last item) }; #define SHIELD_COUNT 6 //signals #define SIG_QUIT_GAME -1 #define SIG_OK 0 #define GLOBAL_COMMAND_QUIT -1 #define GLOBAL_COMMAND_MENU 0 #define GLOBAL_COMMAND_OPTIONS 1 #define GLOBAL_COMMAND_PLAYERS 2 #define GLOBAL_COMMAND_CREDITS 3 #define GLOBAL_COMMAND_HELP 4 #define GLOBAL_COMMAND_PLAY 5 #define GLOBAL_COMMAND_DEMO 6 #define GLOBAL_COMMAND_NETWORK 7 /** @enum eClasses * @brief class definitions of everything from virtual objects up * * The ordering here determines the order of the drawing. **/ enum eClasses { CLASS_MISSILE = 0, CLASS_BEAM, CLASS_TANK, CLASS_TELEPORT, CLASS_DECOR_DIRT, CLASS_DECOR_SMOKE, CLASS_EXPLOSION, CLASS_FLOATTEXT, CLASS_COUNT }; #ifndef HAS_TANK class TANK; // forwarding if not known #endif // HAS_TANK /// === Global functions used in several compilation units ==== void drawMenuBackground(eBackgroundTypes backType, int32_t tOffset, int32_t numItems); double interpolate (double x1, double x2, double i); double Noise (int x); double Noise2D (int x, int y); double perlin1DPoint (double amplitude, double scale, double xo, double lambda, int octaves); double perlin2DPoint (double amplitude, double scale, double xo, double yo, double lambda, int octaves); void quickChange (bool clearerror); #include "externs.h" #endif atanks-6.6/src/optionitembase.cpp0000644000175000017500000004710613006377360015320 0ustar apoapo#include "button.h" #include "menu.h" #include "optionitembase.h" #include "floattext.h" static const char menu_hint_text[] = "-> "; static uint32_t menu_hint_text_len = 0; // Set by ctor when "font" is set static const char select_text[] = "* "; uint32_t select_text_len = 0; // Set by ctor when "font" is set // Note: Direct setting is not a good idea, font might be anything when // the static initialization is done. static int32_t CURSOR_FLIP_TIME = 25; // Delays cursor flipping /** @brief default and only constructor * @param[in] type_ Type of the option. * @param[in] title_ The title of the option to display. * @param[in] titleIdx_ Index value of the submitted title. -1 means @a title_ is fixed. * @param[in] text_ Array of texts to display. * @param[in] color_ The color to use for the text, mainly useful for OT_TOGGLE. * @param[in] class_ Index value of the submitted texts or TC_NONE if no texts are needed. * @param[in] format_ Format string to use when displaying the ET_TEXT target. * @param[in] top_ Top position of the display area. * @param[in] left_ Left position of the display area. * @param[in] width_ Width of the display area. * @param[in] height_ Height of the display area. * @param[in] padding_ Padding of the title and buttons to the display area. * @param[in] show_size_ Sets the size of the show color box. (ET_COLOR only) **/ OptionItemBase::OptionItemBase( eEntryType type_, const char* title_, int32_t titleIdx_, const char** text_, int32_t color_, eTextClass class_, const char* format_, int32_t top_, int32_t left_, int32_t width_, int32_t height_, int32_t padding_, int32_t show_size_) : color(color_), format(format_), height(height_), left(left_), padding(padding_), show_size(show_size_), textClass(class_), texts(text_), title(title_), titleIdx(titleIdx_), top(top_), type(type_), width(width_) { // Assert the title as the most basic value assert (title && "Title not set"); assert ((texts || (TC_NONE == textClass)) && "text_ and class_ do not fit!"); titleLen = text_length(font, title); // Set static globals if (0 == menu_hint_text_len) menu_hint_text_len = text_length(font, menu_hint_text); if (0 == select_text_len) select_text_len = text_length(font, select_text); } /// @brief simple default destructor OptionItemBase::~OptionItemBase() { this->remove(); if (this->button) delete this->button; } /* ===================================== * === Public method implementations === * ===================================== */ /** @brief clear the current display * * This method erases the current display. It should be called * before changing the displayed value or the display parameters * like coordinates or dimension. * * The methods that change those parameters or draw the display call * clear_display() automatically. Please remember to call it in external * display functions. * * Note: As ET_TOGGLE have their title being the text to display, setting * @a update_full will only change the state of the decorated state and not * clear any additional space. */ void OptionItemBase::clear_display(bool update_full) { if (drawn || (update_full && decorated)) { int32_t xLeft = left; int32_t xWidth = drawn ? width : 0; int32_t xTop = top; int32_t xHeight = height; // clear decoration? if (update_full) { // First: Title if displayed left of the display area if ((ET_TOGGLE != type) && (ET_BUTTON != type)) { xLeft -= titleLen + padding; xWidth += titleLen + padding; } // Second: Selection text if needed if (selected) { if ( (ET_BUTTON == type) && this->button ) { // The button box must be erased xLeft -= 3; xTop -= 3; xWidth += 6; xHeight += 6; } else { xLeft -= select_text_len + padding; xWidth += select_text_len + padding; } } // Third: The ET_VALUE wheel buttons if (ET_VALUE == type) xWidth += 2 * padding + 20; } rectfill (global.canvas, xLeft, xTop, xLeft + xWidth, xTop + xHeight, makecol (0,79,0)); global.make_update (xLeft, xTop, xWidth, xHeight); drawn = false; if (update_full) decorated = false; } } /// @brief Toggle cursor_on if this is a selected ET_TEXT void OptionItemBase::cursor_flip() { if ((ET_TEXT == type) && selected && !read_only) { if (--curs_clk < 1) { curs_clk = CURSOR_FLIP_TIME; cursor_on = !cursor_on; clear_display(false); } } } /// @brief get width and height at once /// Note: Special circumstances like padding, menu indication and /// ET_TOGGLE extra sizes are added. void OptionItemBase::getDimension (int32_t &tgt_width, int32_t &tgt_height) { tgt_width = width + padding; tgt_height = height + padding + 2; if (ET_COLOR == type) tgt_width += padding + show_size; if (ET_MENU == type) tgt_width += menu_hint_text_len; if (ET_TOGGLE == type) { tgt_width += 4; tgt_height += 2; } } /// @brief return currently set key code int32_t OptionItemBase::getKeyCode() { return keyCode; } /// @brief return the value of the next pointer OptionItemBase* OptionItemBase::getNext() { return next; } /// @brief return the value of the prev pointer OptionItemBase* OptionItemBase::getPrev() { return prev; } /// @brief return text class as index value uint32_t OptionItemBase::getTextClass() { return static_cast(textClass); } /// @brief return the index value of the displayed title uint32_t OptionItemBase::getTitleIdx() { return titleIdx; } /// @brief return the eEntryType of the entry eEntryType OptionItemBase::getType() { return type; } /** @brief Insert option after @a new_prev * * This is a standard insert into a doubly linked list. * * @param[in,out] new_prev (Optional) pointer to the option that becomes the new prev. */ void OptionItemBase::insert_after(OptionItemBase* new_prev) { if (prev || next) this->remove(); prev = new_prev; if (prev) { next = prev->next; prev->next = this; } if (next) next->prev = this; } /** @brief Insert option before @a new_next * * This is a standard insert into a doubly linked list. * * @param[in,out] new_next (Optional) pointer to the option that becomes the new next. */ void OptionItemBase::insert_before(OptionItemBase* new_next) { if (prev || next) this->remove(); next = new_next; if (next) { prev = next->prev; next->prev = this; } if (prev) prev->next = this; } /** @brief return true if @a x and @a y are in this options clickable area * * This method returns true if @a x and @a y are with the clickable area * of this option. This means the display area and optional wheel buttons * if this is an ET_VALUE type. * * If this option is an ET_BUTTON and has a key code assigned, or if this is * an ET_VALUE and the wheel buttons are hit, @a ret is set to the appropriate * value. * * @param[in] x X coordinate to test. * @param[in] y Y coordinate to test. * @param[out] ret Value to set to an assigned key code or -1/+1 for ET_VALUE inc/dec click. * @return true if this option is hit, false otherwise. **/ bool OptionItemBase::is_click_in(int32_t x, int32_t y, int32_t &ret) { int32_t xLeft = left + 1; int32_t xTop = top + 1; int32_t xRight = xLeft + width - 2; int32_t xBottom = xTop + height - 2; bool result = false; // reset ret ret = 0; // Note: No need to check anything if y is somewhere else if ( (y >= xTop ) && (y <= xBottom) ) { bool hasWheelresult = false; // Check direct display area: if ( (x >= xLeft) && (x <= xRight ) ) result = true; // If this is an ET_VALUE, check wheel buttons if (!result && (ET_VALUE == type)) { int32_t up_left = left + width + padding; int32_t up_right = up_left + 10; int32_t dn_left = up_right + padding; int32_t dn_right = dn_left + 10; // Left "DOWN" button if ( (x >= up_left) && (x <= up_right) ) { result = true; ret = -1; hasWheelresult = true; } // Right "UP" button else if ( ( x >= dn_left) && (x <= dn_right) ) { result = true; ret = 1; hasWheelresult = true; } } // End of checking ET_VALUE wheel buttons // Is there a return code to send? if (result && !hasWheelresult) // simply activate it ret = KEY_ENTER; // If a result is found, this must be updated: if (result && (ET_COLOR != type)) this->clear_display(false); } // End of y in range return result; } /// @brief returns true if this entry is selected bool OptionItemBase::is_selected() { return selected; } /** @brief move the display area * * This method clears the current display and then changes the position of the * display area of this option. * * @param[in] new_left The new left position of the display area. * @param[in] new_top The new top position of the display area. * @param[in] do_update if set to true, the current display is cleared. */ void OptionItemBase::move(int32_t new_left, int32_t new_top, bool do_update) { if ((new_left != left) || (new_top != top)) { if (do_update) clear_display(true); left = new_left; top = new_top; } } /// @brief return true if this option needs set texts bool OptionItemBase::needs_text() { return (textClass < TC_TEXTCLASS_COUNT); } /** @brief remove this option from the list. * * This is a standard remove from a doubly linked list. */ void OptionItemBase::remove() { if (next) next->prev = prev; if (prev) prev->next = next; prev = nullptr; next = nullptr; } /** @brief resize the display area * * This method clears the current display and then changes the dimensions of * the display area of this option. * * @param[in] new_width The new width of the display area. * @param[in] new_height The new height of the display area. */ void OptionItemBase::resize(int32_t new_width, int32_t new_height) { if ((new_width != width) || (new_height != height)) { clear_display(true); width = new_width; height = new_height; } } /// @brief selects this entry and triggers a redraw void OptionItemBase::select() { if (!selected) { selected = true; clear_display(true); } } /** @brief Change the padding around the display area * * This method clears the current display and then changes the padding around * the display area of this option. * * @param[in] new_padding The new padding value. */ void OptionItemBase::setPadding(int32_t new_padding) { if (new_padding != padding) { clear_display(true); padding = new_padding; } } /** @brief set a new title * * This method clears the current display and then changes the title. Use this * to switch languages. * * @param[in] new_title Pointer to the new title to display */ void OptionItemBase::setTitle(const char* new_title) { if (new_title != title) { clear_display(true); title = new_title; titleLen = text_length(font, title); if ((ET_BUTTON == type) && button) button->setText(title); } } /** @brief set a new text class * * The only reaal purpose is to be able to add text-less * options in templated add methods in the Menu class, * where the OptionClassText is not available. * * Call this then from the compilation unit. **/ void OptionItemBase::setTextClass (eTextClass new_class) { textClass = new_class; } /** @brief set new texts array * * This method clears the current display without decorations and changes the * used texts array. Use this to switch languages. */ void OptionItemBase::setTexts(const char** new_texts) { if (new_texts != texts) { clear_display(false); texts = new_texts; } } /// @brief unselects this entry and triggers a redraw void OptionItemBase::unselect() { if (selected) { clear_display(true); selected = false; cursor_on = false; curs_clk = CURSOR_FLIP_TIME; } } /* ======================================== * === Protected method implementations === * ======================================== */ /** @brief return the outcome of a menu activation * @param[in] target pointer to the menu * @return Result of Menu::operator() **/ int32_t OptionItemBase::activateMenu(Menu* target) { if (target) return target->operator()(); return 0; } /** @brief Add the result of key press @a k to @a target. * * Please make sure that @a has at least one byte free space excluding * null character termination! * * @param[out] target The char array (or string) to receive the result. * @param[in] k Allegro 4 raw key code, or the allegro 5 unichar field */ void OptionItemBase::activateText(char* target, int32_t k) { if (target && (k > 0) ) { int32_t oldTextLen = static_cast(strlen(target)); char chr = static_cast(k & 0xff); textLen = oldTextLen; if ( ((0x08 == chr) || (0x7f == chr)) && textLen ) target[--textLen] = 0x0; else if (isprint(chr)) target[textLen++] = chr; if (oldTextLen != textLen) clear_display(false); } } /** @brief Switch the state of @a target * * @param[in,out] target The target value to switch */ void OptionItemBase::activateToggle(bool* target) { if (target) { *target = !(*target); clear_display(false); } } /** @brief display the set button **/ void OptionItemBase::displayButton() { if (!drawn) { if (this->button) button->draw(); drawn = true; } } /** @brief Display the options decoration (title plus button(s)) * * Note: If this is ET_TOGGLE, the method will only change the decorated * state to true, as the title for this type is the displayed text. * * @param[in] show_color Used only for the ET_COLOR show box. */ void OptionItemBase::displayDeco(int32_t show_color) { if (!decorated) { int32_t xLeft = left; int32_t xWidth = 0; int32_t xTop = top; int32_t xHeight = height; int32_t text_top = top + (height / 2) - (env.fontHeight / 2); int32_t deco_top = text_top + 4; // First: Title text if (title && (ET_BUTTON != type) && (ET_MENU != type) && (ET_TOGGLE != type)) { int32_t tColor = (ET_COLOR == type) || textOnly ? BLACK : color; xLeft -= titleLen + padding; xWidth = titleLen + padding; // Add a nice shadow if wanted if (env.shadowedText) textout_ex (global.canvas, font, title, xLeft + 1, text_top + 1, GetShadeColor(tColor, true, PINK), -1); textout_ex (global.canvas, font, title, xLeft, text_top, tColor, -1); } // ET_MENU has an additional "-> " displayed next to it if ( (ET_MENU == type) && show_menu) { xLeft -= menu_hint_text_len + padding; xWidth += menu_hint_text_len + padding; textout_ex (global.canvas, font, menu_hint_text, xLeft, text_top, BLACK, -1); } // Second: Selection text if needed if (selected) { if ( (ET_BUTTON == type) && this->button ) { // Buttons get a box drawn around them xTop -= 3; xLeft -= 3; xWidth += 6 + width; // spans over xHeight += 6; rect (global.canvas, xLeft, xTop, xLeft + xWidth, xTop + xHeight, WHITE); } else { xLeft -= select_text_len + padding; xWidth += select_text_len + padding; textout_ex (global.canvas, font, select_text, xLeft, text_top, BLACK, -1); } } // If an actual width could be determined, add an update // for the text region: if (xWidth > 0) global.make_update (xLeft, xTop, xWidth, xHeight); // Third: The ET_VALUE wheel buttons / ET_COLOR display box if (ET_VALUE == type) { BITMAP* arrow = env.misc[6]; int32_t dn_left = left + width + padding; int32_t up_left = dn_left + padding + 10; if (this->canGoDown()) draw_sprite_v_flip (global.canvas, arrow, dn_left, deco_top); if (this->canGoUp()) draw_sprite (global.canvas, arrow, up_left, deco_top); global.make_update (up_left, top, 10, height); } else if (ET_COLOR == type) { int32_t x = left + width + padding; rect (global.canvas, x, deco_top, x + show_size, deco_top + show_size, BLACK); rectfill (global.canvas, x + 1, deco_top + 1, x + show_size - 1, deco_top + show_size - 1, show_color); global.make_update (x, deco_top, show_size, show_size); } decorated = true; } } /** @brief Display the @a target menu title as text. * * @param[in] target pointer to the menu to display */ void OptionItemBase::displayMenu(Menu* target) { if (title && (titleIdx > -1)) this->displayText(title); else if (target) this->displayText(target->getTitle()); else this->displayText("Oh no! No Menu Title!"); } /** @brief Display the @a target as text. * * @param[in] target (optional) pointer to the text to display */ void OptionItemBase::displayText(char* target) { this->displayText(static_cast(target)); } /** @brief Display the @a target as text. * * @param[in] target (optional) pointer to the text to display */ void OptionItemBase::displayText(const char* target) { if (!drawn) { if (!textOnly) { rect (global.canvas, left, top, left + width, top + height, BLACK); rectfill (global.canvas, left + 1, top + 1, left + width - 1, top + height - 1, WHITE); } // First display the text const char* txt_p = target; int32_t txt_len = txt_p ? text_length(font, txt_p) : 0; if (txt_p) { int32_t len_available = width - 6; int32_t text_top = top + (height / 2) - (env.fontHeight / 2); // If this is a read/write selected ET_TEXT, it has a cursor being // drawn, and thus less space to display the text: if ((ET_TEXT == type) && selected && !read_only) len_available -= text_length(font, "W"); // Scroll text until it fits. while (txt_p && txt_p[0] && (txt_len > len_available)) txt_len = text_length(font, ++txt_p); // Now print the result if (txt_p && txt_p[0]) { // With a shadow? But not in text field mode if (env.shadowedText && textOnly) textout_ex (global.canvas, font, txt_p, left + 4, text_top + 1, GetShadeColor(color, true, PINK), -1); textout_ex (global.canvas, font, txt_p, left + 3, text_top, textOnly ? color : BLACK, -1); } } // Then a cursor if turned on if (cursor_on) { int32_t offset = txt_len + left + 3; rectfill (global.canvas, offset, top + 3, offset + 6, top + height - 3, BLACK); } global.make_update (left, top, width, height); drawn = true; } } /** @brief Display the @a target as text. * * @param[in] target (optional) pointer to the text to display */ void OptionItemBase::displayText(uint32_t* target) { this->displayValue(target); } /** @brief Displays a toggle option in either black on white or vice versa * * Note: The title is actually the displayed text. * * @param[in] target (optional) pointer to the toggle option. * to be set by OptionItemPlayer only. */ void OptionItemBase::displayToggle(bool* target) { if (!drawn) { int32_t fg_color = color; int32_t bg_color = BLACK; int32_t sh_color = DARK_GREY; int32_t x_radius = (titleLen / 1.8) + padding + 5; int32_t y_radius = height / 2; int32_t xLeft = left + (width / 2); int32_t xTop = top + (height / 2); int32_t txtLeft = xLeft - (titleLen / 2) + 1; // Swap if activated if (target && *target) { fg_color = BLACK; bg_color = color; sh_color = GREY; } // To make this nicer looking, a shade color is generated for an outline: ellipsefill (global.canvas, xLeft, xTop, x_radius, y_radius, bg_color); ellipse (global.canvas, xLeft, xTop, x_radius, y_radius, sh_color); textout_ex(global.canvas, font, title ? title : "", txtLeft , top + 4, fg_color, -1); global.make_update (left, top, width, height); drawn = true; } } atanks-6.6/src/beam.h0000644000175000017500000000467112636021030012633 0ustar apoapo#ifndef BEAM_DEFINE #define BEAM_DEFINE /* atanks - obliterate each other with oversize weapons Copyright (C) 2003 Thomas Hudson This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "main.h" #include "physobj.h" /** @enum eBeamType * @brief Determines what kind of beam is generated **/ enum eBeamType { BT_WEAPON = 0, //!< Normal weapon, nothing special BT_SDI, //!< Not a weapon but an SDI laser BT_NATURAL, //!< Fired by natural disaster, like lightning. BT_MIND_SHOT //!< AI thinking. }; class BEAM: public PHYSICAL_OBJECT { public: /* ----------------------------------- * --- Constructors and destructor --- * ----------------------------------- */ explicit BEAM ( PLAYER* player_, double x_, double y_, int32_t fireAngle, int32_t weaponType, eBeamType beam_type); BEAM ( PLAYER* player_, double x_, double y_, double tx, double ty, int32_t weaponType, bool is_burnt_out); ~BEAM (); /* ---------------------- * --- Public methods --- * ---------------------- */ void applyPhysics(); void draw (); void getEndPoint (int32_t &x, int32_t &y); // For mind shots to fetch void moveStart (double x_, double y_); // For the satellite eClasses getClass() { return CLASS_BEAM; } private: /* ----------------------- * --- Private methods --- * ----------------------- */ void createBeamPath(); void makeLightningPath(); void traceBeamPath (); /* ----------------------- * --- Private members --- * ----------------------- */ eBeamType beamType = BT_WEAPON; int32_t color = WHITE; double damage = 0.; int32_t numPoints = 0; POINT_t* points = nullptr; int32_t radius = 0; int32_t seed = 0; int32_t tgtLeftX = 0; int32_t tgtRightX = 0; WEAPON* weap = nullptr; }; #endif atanks-6.6/src/gameloop.cpp0000644000175000017500000017131713006377360014103 0ustar apoapo#include #include #include #include #include "main.h" #include "files.h" #include "satellite.h" #include "update.h" #include "network.h" #include "land.h" #include "clock.h" #include "floattext.h" #include "tank.h" #include "explosion.h" #include "beam.h" #include "missile.h" #include "decor.h" #include "teleport.h" #include "sky.h" #include "sound.h" #include "gameloop.h" #include "player.h" #include "aicore.h" #include "shop.h" /// Forwarding for function arguments class ObjectUpdater; /// === Helper functions === static inline bool advance_tank (); static inline void change_wind_strength(); static inline void check_fps (ObjectUpdater* upd); static inline void check_overtime (AICore &aicore); static inline void check_skiptime (); static inline void clear_voices (); static inline void check_winner (); static inline double colorDistance (int32_t col1, int32_t col2); static inline void delete_destroyed (AICore &aicore); static inline void do_naturals (); static inline void draw_FPS_Counter (); static inline void draw_objects (AICore &aicore); static inline void draw_eor_scoreboard (); // The [e]nd-[o]f-[r]ound score board static inline void draw_mini_scoreboard(); // The ingame mini score board void draw_top_bar (); static inline bool explode_tanks (); static inline void fire_weapon (); static inline void graph_bar (int32_t x, int32_t y, int32_t col, int32_t actual, int32_t max); static inline void graph_bar_center (int32_t x, int32_t y, int32_t col, int32_t actual, int32_t max); static inline void init_new_round (); static inline bool manage_input (AICore &aicore); static inline void set_level_settings (LevelCreator* lcr); static inline void set_tank_settings (); static inline void update_display (); static inline void update_objects (ObjectUpdater* upd); /// === Static helper values === static int32_t AI_time_change = 0; static TANK* curr_tank = nullptr; static bool death_substitute= false; static bool fire = false; static int32_t FPS_counter = 0; static int32_t FPS_last = 0; static int32_t FPS_pos = 0; static int32_t game_us_needed = 0; volatile static abool_t has_action = ATOMIC_VAR_INIT(false); volatile static abool_t has_deco = ATOMIC_VAR_INIT(false); volatile static abool_t has_explosion = ATOMIC_VAR_INIT(false); static int32_t human_players = 0; static TANK* next_tank = nullptr; static bool order_wrapped = false; static int32_t score_name_pos = 0; static int32_t score_money_pos = 0; volatile static bool second_passed = false; volatile static bool show_frame = true; static int32_t skip_health = 0; static int32_t smkIdx = -1; static bool update_screen = true; static int32_t us_per_frame = 0; volatile static int32_t winner = WINNER_NO_WIN; // Note: Here mutexes must be used, condition_variable // can not use anything else. std::mutex updMutex; std::condition_variable updCondition; /// Helper Class to multi-thread object updating class ObjectUpdater { eClasses class_ = CLASS_COUNT; abool_t doExit; abool_t doStart; abool_t isDone; abool_t isExited; int32_t force_age = 0; // Only used for CLASS_DECOR_SMOKE to force more aging public: explicit ObjectUpdater() : doExit (ATOMIC_VAR_INIT(false)), doStart (ATOMIC_VAR_INIT(false)), isDone (ATOMIC_VAR_INIT(false)), isExited(ATOMIC_VAR_INIT(false)) { /* nothing to see here */ } /// @brief the main thread handler. void operator()() { vobj_t* next_obj = nullptr; vobj_t* obj = nullptr; TANK* tmp_tank = nullptr; // The thread is valid until someone tells it to exit while (!doExit.load()) { // Sleep until called std::unique_lock updLock(updMutex); updCondition.wait(updLock, [this]{ return (doStart.load(ATOMIC_READ) || doExit.load(ATOMIC_READ)); } ); // Early quit if this is a call to do so: if (doExit.load()) continue; // If this is the TANK class, yield once if // there is no known explosion, yet. if ((CLASS_TANK == class_) && (false == has_explosion.load()) ) // Note: No argument to load(), use the most strict default! std::this_thread::yield(); // Okay, do the updating for this class: global.getHeadOfClass(static_cast(class_), &obj); // If this is the floating text class, lock it, or AI // feedback might lead to data races. if (CLASS_FLOATTEXT == class_) global.lockClass(class_); while (obj) { // Explosions must be known at once: if ( (false == has_explosion.load(ATOMIC_READ)) && (CLASS_EXPLOSION == class_) ) { has_explosion.store(true); has_action.store(true); } // Make sure we know when stuff is happening! if ( (false == has_action.load(ATOMIC_READ)) && ( ( ( (CLASS_BEAM == class_) || (CLASS_MISSILE == class_) ) && static_cast(obj)->isWeapon() ) || (CLASS_TELEPORT == class_) ) ) has_action.store(true); obj->getNext(&next_obj); // Trigger Explosion progress if (CLASS_EXPLOSION == class_) static_cast(obj)->explode(); // Apply forced smoke ageing if ( (CLASS_DECOR_SMOKE == class_) && force_age) static_cast(obj)->force_aging(force_age); // Do tank special handling if (CLASS_TANK == class_) { tmp_tank = static_cast(obj); if (!tmp_tank->destroy) { // Activate next volley shot if applicable if (tmp_tank->fire_another_shot) { if (! (tmp_tank->fire_another_shot % env.volley_delay) ) { has_action.store(true); tmp_tank->activateCurrentSelection(); } tmp_tank->fire_another_shot--; } // Move and possibly apply pending damage tmp_tank->applyPhysics(); tmp_tank->resetFlashDamage(); if (tmp_tank->isFlying()) has_action.store(true); } // If the tank is still alive, adjust its chess-style clock if ( !tmp_tank->destroy && (env.maxFireTime > 0) && (tmp_tank == curr_tank) && (HUMAN_PLAYER == tmp_tank->player->type) && (STAGE_AIM == global.stage) && second_passed && tmp_tank->player->reduceClock() ) { tmp_tank->player->skip_me = true; tmp_tank = nullptr; fire = false; curr_tank = next_tank ? next_tank : global.get_next_tank(&order_wrapped); next_tank = nullptr; global.set_curr_tank(curr_tank); } tmp_tank = nullptr; } else // All others need to apply physics obj->applyPhysics(); obj = next_obj; } // End of looping objects of one class // If this is the floating text class, unlock it again. if (CLASS_FLOATTEXT == class_) global.unlockClass(class_); // All done isDone.store( true, ATOMIC_WRITE); doStart.store(false, ATOMIC_WRITE); } // End of while not exiting isExited.store(true, ATOMIC_WRITE); } void finish () { doExit.store(true); } bool hasDone () const { return isDone.load(ATOMIC_READ); } bool hasExited () const { return isExited.load(ATOMIC_READ); } void setClass (eClasses aClass_) { class_ = aClass_; } void setForceAge(int32_t ageing_) { force_age = ageing_; } void start () { isDone.store(false, ATOMIC_WRITE); doStart.store(true, ATOMIC_WRITE); } }; /// The main game loop. Everything happens here. void game () { volatile bool done = false; volatile int32_t round_end_count = 0; SATELLITE* satellite = nullptr; const int32_t EndOfRoundFrames = env.frames_per_second * WAIT_AT_END_OF_ROUND; AICore aicore; // Check whether the AI Core is in any state to do work: if (!aicore.can_work()) { perror("The AI core could not be initialized"); global.set_command(GLOBAL_COMMAND_QUIT); return; } // Initialize the new round init_new_round(); // Only prepare the game if the player did not close // the window in the buy screen if ( (global.get_command() == GLOBAL_COMMAND_QUIT) || (global.isCloseBtnPressed()) ) return; // Now that everybody has done their shopping, initialize the tanks set_tank_settings(); // Create the AI Core thread std::thread aithread(std::ref(aicore)); // Create one updater thread per object class: ObjectUpdater updater[CLASS_COUNT]; std::thread* threads[CLASS_COUNT]; // Set each updater to an individual class, but note the index // of the SMOKE. The smoke decoration index is used to force faster // ageing when rendering a frame takes too long. for (int32_t class_ = 0; class_ < CLASS_COUNT; ++class_) { if (CLASS_DECOR_SMOKE == class_) smkIdx = class_; updater[class_].setClass(static_cast(class_)); threads[class_] = new std::thread(std::ref(updater[class_])); } // create satellite if (env.satellite) satellite = new SATELLITE(); // get some mood music play_music(); // Final round preparation global.AI_clock = -1; global.skippingComputerPlay = false; curr_tank = global.order[0]; next_tank = nullptr; death_substitute = false; global.set_curr_tank(curr_tank); WIN_CLOCK_INIT game_us_reset(); /* ============================================================== * ==== init stuff complete. Get down to playing ==== * ============================================================== */ while ( !done && (global.get_command() != GLOBAL_COMMAND_QUIT) ) { // No action and no explosions, yet. has_action.store(false); has_explosion.store(false); // For the chess-style clock and the AI clock in skipping computer // play it is necessary to know when a second has passed. second_passed = global.check_time_changed(); // Check overtime and do frame display flipping if (global.skippingComputerPlay) { if (winner != WINNER_DRAW) check_overtime(aicore); // End skipping play if the game is over: if (global.stage >= STAGE_SCOREBOARD) { global.skippingComputerPlay = false; show_frame = true; } } // free used voices if possible. clear_voices(); // Check whether the system is good with the amount of work // for the last frame: check_fps(updater); // Update all objects update_objects(updater); // Move that flying saucer if (satellite) satellite->move(); // move land global.slideLand(); // Delete everything that was destroyed delete_destroyed(aicore); // Drop some naturals if applicable if ( (false == has_action.load(ATOMIC_READ)) && !global.skippingComputerPlay && (winner == WINNER_NO_WIN) ) { do_naturals(); if (satellite) satellite->shoot(); } // Now update / prepare the display for drawing update_display(); // draw top bar if (global.updateMenu) draw_top_bar(); // draw all this cool stuff draw_objects(aicore); if (satellite) satellite->draw(); // If requested, show the mini scoreboard if (global.showScoreBoard) draw_mini_scoreboard(); // If wanted, an FPS Counter is shown if (env.showFPS) draw_FPS_Counter(); // Show the end of round scoreboard if it is needed if ( !global.skippingComputerPlay && (STAGE_SCOREBOARD == global.stage) && (global.get_command() != GLOBAL_COMMAND_QUIT) ) draw_eor_scoreboard(); // Now update what has been drawn if (show_frame) { // Draw custom mouse cursor SHOW_MOUSE(global.canvas); global.do_updates(); } // Let bots do their thinking and perform synchronized input reaction if (curr_tank || (STAGE_SCOREBOARD > global.stage)) done = manage_input(aicore); // Fire selected stuff (if any) and check skipping time if (fire && (STAGE_AIM == global.stage)) { fire_weapon(); if (global.skippingComputerPlay && order_wrapped) check_skiptime(); } #ifdef NETWORK // check for input from network for (int32_t i = 0; i < env.numGamePlayers; ++i) { if (env.players[i]->type == NETWORK_CLIENT) { env.players[i]->getNetCmd(); env.players[i]->executeNetCmd(false, &aicore); } } #endif // NETWORK // Advance to next tank ? if (!advance_tank() && (STAGE_ENDGAME > global.stage) ) // In this case at least check for exploding tanks. explode_tanks(); // check for winner if ( (false == has_explosion.load(ATOMIC_READ)) && (global.stage < STAGE_ENDGAME) ) check_winner(); // manage the end of the round if (global.stage == STAGE_SCOREBOARD) { if ( !explode_tanks() && (false == has_explosion.load()) && (false == has_action.load()) && ( (++round_end_count >= EndOfRoundFrames) || (WINNER_DRAW == winner) ) ) { if (false == has_deco.load(ATOMIC_READ)) { done = true; global.stage = STAGE_ENDGAME; } } else if ( has_explosion.load() ) // recheck for winner check_winner(); else if ( has_action.load() ) round_end_count = 0; } // Possibly enter AI skipping mode if ( !human_players && env.skipComputerPlay && !global.skippingComputerPlay && (false == has_action.load()) && (global.numTanks > 1) && (STAGE_SCOREBOARD > global.stage) && (WINNER_NO_WIN == winner) ) { global.skippingComputerPlay = true; global.AI_clock = 0; } // Quit if the close button was pressed if (global.isCloseBtnPressed()) done = true; } /* ========================== * ==== end of game loop ==== * ========================== */ // Stop the AI thread aicore.stop(); // Stop the updater threads: for (int32_t class_ = 0; class_ < CLASS_COUNT; ++class_) updater[class_].finish(); updMutex.lock(); updCondition.notify_all(); // <-- That's hilariously simple, isn't it? updMutex.unlock(); // Wait and join all threads bool has_thread = true; bool has_aicore = true; while (has_thread) { has_thread = false; // AI Core: if (has_aicore) { if (aicore.hasExited()) { aithread.join(); has_aicore = false; } else has_thread = true; } // Object updaters: for (int32_t class_ = 0; class_ < CLASS_COUNT; ++class_) { if (threads[class_]) { if (updater[class_].hasExited()) { threads[class_]->join(); delete threads[class_]; threads[class_] = nullptr; } else has_thread = true; } } if (has_thread) std::this_thread::yield(); } // end of waiting for all threads to join // Show end of round score board and credit winner(s) if ((global.get_command() != GLOBAL_COMMAND_QUIT)) draw_eor_scoreboard(); // Ensure full window clipping rectangle set_clip_rect(global.canvas, 0, 0, env.window.w, env.window.h); // clean up if (satellite) delete satellite; // remove existing tanks etc for (int32_t i = 0; i < env.numGamePlayers; ++i) { if (env.players[i]->tank) { env.players[i]->reclaimShield(); delete env.players[i]->tank; } } WIN_CLOCK_REMOVE } /// ========================== /// === Helper functions === /// ========================== static inline bool advance_tank() { /* The whole finding of a next tank to have their shot is needed in * two situations during the fire stage: * a) When all action has ceased, because then the turn is over. * b) The current tanks has exploded, a substitute must be found. */ if ( ( (false == has_action.load(ATOMIC_READ)) && (STAGE_FIRE == global.stage) ) || ( (global.stage < STAGE_SCOREBOARD) && (!curr_tank || !curr_tank->player || curr_tank->destroy) ) ) { bool need_update = false; if ( (STAGE_FIRE == global.stage) && !explode_tanks() && (false == has_explosion.load(ATOMIC_READ)) && (false == has_action.load(ATOMIC_READ)) ) { // Note: has_action is checked last, so dead tanks can // explode even if others are still falling/flying // around. // Normal tank advancement after firing stage global.stage = STAGE_AIM; order_wrapped = false; change_wind_strength(); if ( !death_substitute ) { if ( next_tank && !next_tank->destroy && (next_tank != curr_tank)) curr_tank = next_tank; else curr_tank = global.get_next_tank(&order_wrapped); } death_substitute = false; next_tank = nullptr; need_update = true; // Activate shields and repair the tank. if (curr_tank) { curr_tank->reactivate_shield(); curr_tank->repair(); } } else if (!curr_tank || !curr_tank->player || curr_tank->destroy) { // We need a death substitute if (next_tank && !next_tank->destroy) curr_tank = next_tank; else curr_tank = global.get_next_tank(&order_wrapped); death_substitute = true; next_tank = nullptr; need_update = true; } if (need_update) { update_screen = true; fire = false; global.updateMenu = true; global.set_curr_tank(curr_tank); return true; } } // End of checking for tank advancement return false; } static inline void change_wind_strength () { if (!env.windvariation || !env.windstrength) return; else { global.wind = global.lastwind + static_cast(rand () % (env.windvariation * 100)) / 100 - static_cast(env.windvariation) / 2.; if (global.wind > (env.windstrength / 2)) global.wind = static_cast(env.windstrength) / 2.; else if (global.wind < (-env.windstrength / 2)) global.wind = static_cast(env.windstrength) / -2.; global.lastwind = global.wind; } // make sure game clients have up to date wind data # ifdef NETWORK char buffer[64]; sprintf(buffer, "WIND %f", global.wind); env.sendToClients(buffer); # endif // NETWORK } // See whether decorations must be reduced or time can be wasted // to achieve the set FPS. static inline void check_fps(ObjectUpdater* upd) { if ( !global.skippingComputerPlay ) { game_us_needed = game_us_get(); int32_t us_unused = us_per_frame - game_us_needed; if ( us_unused < 500 ) { // Stop adding decoration: if (!global.hasTooMuchDeco) global.hasTooMuchDeco = true; // If more us where needed than available, there is already // too much deco on the screen. // All smoke is forwarded in aging now, so they would get // deleted sooner. if (us_unused < 0) { int32_t agemod = (us_unused / -1000) + 1; // Don't age more than 5 frames: if (agemod > 5) agemod = 5; upd[smkIdx].setForceAge(agemod); } } else if ( global.hasTooMuchDeco && (us_unused > 1000) ) { // (Re-)enable deco global.hasTooMuchDeco = false; // Normal smoke ageing upd[smkIdx].setForceAge(0); } // Sleep what is unused if ( us_unused > 0 ) { USLEEP(us_unused) } // Add what has been used until now: game_us_needed += game_us_get(); } } // Check whether the AI time is up and force a draw if it is. // This method does not check whether it is needed and must not // be called if global.skippingComputerPlay is false! static inline void check_overtime(AICore &aicore) { // Check every second whether the AI clock // should be changed: if (second_passed) { global.AI_clock += SIGN(AI_time_change); AI_time_change = 0; global.updateMenu = true; } // Skip every other frame show_frame = !show_frame; // Kill all tanks if skipping time is over if ( (global.AI_clock >= MAX_AI_TIME) && (winner == WINNER_NO_WIN) ) { // Stop the ai first: aicore.stop(); while (!aicore.hasExited()) std::this_thread::yield(); // in over-time, kill all tanks TANK* tank = nullptr; global.getHeadOfClass(CLASS_TANK, &tank); while (tank) { // reclaim shield. This is fair, because technically // the bots survive the battle. The tank destruction // is only "for the effect". // And if they bought vengeance items, they'll loose // one now. Expensive enough. if (tank->player) tank->player->reclaimShield(); tank->addDamage(nullptr, tank->sh + tank->l + 1); tank->applyDamage(); tank->resetFlashDamage(); tank->getNext(&tank); } global.skippingComputerPlay = false; show_frame = true; global.stage = STAGE_SCOREBOARD; winner = WINNER_DRAW; // All action is false, or they won't explode has_action.store( false, ATOMIC_WRITE); has_explosion.store(false, ATOMIC_WRITE); // Now make them go bye bye explode_tanks(); } } static inline void check_skiptime() { // Check whether to reset the AI_clock int32_t cur_health = 0; int32_t bots_alive = 0; for (int32_t i = 0; i < env.numGamePlayers; ++i) { if ( (env.players[i]) && (env.players[i]->tank) ) { cur_health += env.players[i]->tank->l + env.players[i]->tank->sh; ++bots_alive; } } int32_t health_delta = skip_health - cur_health; if (!skip_health || (health_delta < (bots_alive * 5))) // No (real) damage done, raise AI_Clock ++AI_time_change; else if (health_delta > (bots_alive * 25)) // Lots of damage, halve the clock global.AI_clock /= 2; else if (global.AI_clock && (health_delta > (bots_alive * 10)) ) // Moderate damage, decrease the AI_clock --AI_time_change; // No else, it would be a little damage and that means // do not change the AI_clock at all. skip_health = cur_health; } static inline void clear_voices() { // Assume one voice per 2 ms to be usable again /// @todo : This must be substituted by a real direct /// control over the voices used. The auto-mixing /// of allegro 4 is just too inefficient. /// However, this way it is a lot better than without any control... if (game_us_needed >= 1000) global.used_voices -= game_us_needed / 500; else --global.used_voices; if (global.used_voices < 0) global.used_voices = 0; } static inline void check_winner() { bool all_jedi = true; bool all_sith = true; int32_t player_count = 0; int32_t last_alive = -1; for (int32_t i = 0; i < env.numGamePlayers; ++i) { TANK* tank = env.players[i]->tank; if ( tank && tank->l && !tank->destroy && tank->player ) { eTeamTypes team = tank->player->team; if (TEAM_SITH != team) all_sith = false; if (TEAM_JEDI != team) all_jedi = false; last_alive = i; player_count++; } } if (!player_count) winner = WINNER_DRAW; else if (all_jedi) winner = WINNER_JEDI; else if (all_sith) winner = WINNER_SITH; else if (1 == player_count) winner = last_alive; else winner = WINNER_NO_WIN; // End skipping play if a winner is known: if (WINNER_NO_WIN != winner) { if (global.stage < STAGE_SCOREBOARD) global.stage = STAGE_SCOREBOARD; global.skippingComputerPlay = false; show_frame = true; } } /***************************************************************************** * colorDistance * * Treat two color values as 3D vectors of the form . * Compute the scalar size of the difference between the two vectors. * *****************************************************************************/ double colorDistance (int32_t col1, int32_t col2) { int32_t r1 = getr (col1); int32_t g1 = getg (col1); int32_t b1 = getb (col1); int32_t r2 = getr (col2); int32_t g2 = getg (col2); int32_t b2 = getb (col2); // Treat the colour-cube as a space return FABSDISTANCE3(r1, g1, b1, r2, g2, b2); } static inline void delete_destroyed(AICore &aicore) { vobj_t* next_obj = nullptr; vobj_t* obj = nullptr; // do not create new FLOATTEXT instance while deletion is in progress aicore.forbidText(); // Now loop classes and delete destroyed objects for (int32_t class_ = 0; class_ < CLASS_COUNT; ++class_) { // Skip tank class, the tanks must be deleted in their special // function explode_tanks() as there is more to do. if (CLASS_TANK == class_) continue; eClasses e_class = static_cast(class_); global.getHeadOfClass(e_class, &obj); global.lockClass(e_class); while(obj) { obj->getNext(&next_obj); // Update object if it is destroyed if (obj->destroy) { obj->requireUpdate(); obj->update(); // For deleting the object, the class must be unlocked, // or we'll hit a deadlock with global.removeObject(). global.unlockClass(e_class); delete obj; global.lockClass(e_class); } obj = next_obj; } // End of looping objects of one class // Finished: global.unlockClass(e_class); } // End of looping classes // Eventually re-allow AICore to create FLOATTEXT instances again aicore.allowText(); } void do_naturals() { if (global.naturals_activated >= 5) return; if (env.lightning) { int32_t chance = (600 / env.lightning) + 100; if (!(rand () % chance)) { try { new BEAM (nullptr, 1 + (rand () % (env.screenWidth - 2)), MENUHEIGHT + (env.isBoxed ? 1 : 0), ((rand () % 160) + (360 - 80)) % 360, SML_LIGHTNING + (rand () % env.lightning), BT_NATURAL); global.naturals_activated++; return; } catch (...) { /* can't do anything here */ } } } // end of lightning // only create meteors and dirt balls if we are not in aim mode on simul turn type if ( (env.turntype == TURN_SIMUL) && (global.stage == STAGE_AIM) ) return; if (env.meteors) { int32_t chance = (600 / env.meteors) + 100; if (!(rand () % chance)) { int32_t ca = ((rand () % 160) + (360 - 80)) % 360; double mxv = env.slope[ca][0] * 5; double myv = env.slope[ca][1] * 5; try { new MISSILE(nullptr, 1 + (rand () % (env.screenWidth - 2)), MENUHEIGHT + (env.isBoxed ? 1 : 0), mxv, myv, SML_METEOR + (rand () % env.meteors), MT_NATURAL, 1, 0); global.naturals_activated++; return; } catch (...) { /* can't do anything here */ } } } if (env.falling_dirt_balls) { int32_t chance = (600 / env.falling_dirt_balls) + 100; if (! (rand() % chance) ) { int ca = ((rand() % 100) + (360 - 80) ) % 360; double mxv = env.slope[ca][0] * 5; double myv = env.slope[ca][1] * 5; try { new MISSILE(nullptr, 1 + (rand () % (env.screenWidth - 2)), MENUHEIGHT + (env.isBoxed ? 1 : 0), mxv, myv, DIRT_BALL + ( rand() % env.falling_dirt_balls), MT_NATURAL, 1, 0); global.naturals_activated++; } catch (...) { /* can't do anything here */ } } } } static inline void draw_FPS_Counter() { ++FPS_counter; if (second_passed) { FPS_last = FPS_counter; FPS_counter = 0; } int32_t fc = BLUE; int32_t bc = GREY; if (FPS_last < (env.frames_per_second - 5)) { fc = DARK_RED; bc = DARK_GREEN; } else if (FPS_last > (env.frames_per_second + 5)) { fc = TURQUOISE; bc = SILVER; } textprintf_ex (global.canvas, font, FPS_pos + 1, MENUHEIGHT + 11, bc, -1, "% 4d FPS", FPS_last); textprintf_ex (global.canvas, font, FPS_pos, MENUHEIGHT + 10, fc, -1, "% 4d FPS", FPS_last); global.make_update(FPS_pos - 1, MENUHEIGHT + 5, FPS_pos + 60, MENUHEIGHT + 20); } static inline void draw_objects(AICore &aicore) { vobj_t* obj = nullptr; has_deco.store(false, ATOMIC_WRITE); set_clip_rect (global.canvas, 0, MENUHEIGHT, (env.screenWidth-1), (env.screenHeight-1)); // do not create new FLOATTEXT instance while drawing is in progress aicore.forbidText(); for (int32_t class_ = 0; class_ < CLASS_COUNT; ++class_) { global.getHeadOfClass(static_cast(class_), &obj); while(obj) { if (show_frame) { obj->draw(); obj->update(); } if ( (false == has_deco.load(ATOMIC_READ)) && ( (CLASS_DECOR_DIRT == class_) || (CLASS_DECOR_SMOKE == class_) ) ) has_deco.store(true, ATOMIC_WRITE); obj->getNext(&obj); } // End of looping objects } // End of looping classes // Eventually re-allow AICore to create FLOATTEXT instances again aicore.allowText(); } /// @brief the ingame mini score board static inline void draw_mini_scoreboard() { int32_t line = MENUHEIGHT + 2; for (int i = 0; i < env.maxNumTanks; ++i) { PLAYER *player = env.playerOrder[i]; assert(player && "ERROR: player in playerOrder is nullptr!"); if (player) { int32_t color = player->color; const char* money = Add_Comma(player->money); const char* name = player->getName(); const char* team = player->getTeamName(); int32_t mid_y = line + (env.fontHeight / 2) + 1; // Strike through dead players (BLACK background *before* the name) if (!player->tank || player->tank->destroy) hline(global.canvas, 17, mid_y + 1, 276, BLACK); // Display team textprintf_ex (global.canvas, font, 16, line + 1, BLACK, -1, "(%-7s)", team); textprintf_ex (global.canvas, font, 15, line, color, -1, "(%-7s)", team); // Display player indicator player->drawIndicator(score_name_pos - env.fontHeight - 2, line + 1, env.fontHeight - 3); // Display name textprintf_ex (global.canvas, font, score_name_pos + 1, line + 1, BLACK, -1, "%s", name); textprintf_ex (global.canvas, font, score_name_pos, line, color, -1, "%s", name); // Display money textprintf_ex (global.canvas, font, score_money_pos + 1, line + 1, BLACK, -1, "$%s", money); textprintf_ex (global.canvas, font, score_money_pos, line, color, -1, "$%s", money); // Draw an arrow indicating the current player if (curr_tank == player->tank) { hline(global.canvas, 4, mid_y, 12, color); hline(global.canvas, 5, mid_y + 1, 13, BLACK); } // Strike through dead players (color) if (!player->tank || player->tank->destroy) hline(global.canvas, 16, mid_y, 275, color); line += env.fontHeight; } } global.make_update(0, MENUHEIGHT, 300, line); } /// @brief This method draws the top bar with all current information void draw_top_bar () { TANK* tank = global.get_curr_tank(); PLAYER* player = tank ? tank->player : nullptr; const char* name = player ? player->getName () : nullptr; const char* team_name = player ? player->getTeamName() : nullptr; int32_t color = player ? player->color : BLACK; int32_t time_to_fire = player ? player->time_left_to_fire : 0; int32_t y1 = 0; int32_t y2 = 13; int32_t y3 = 26; static int32_t change_colour = RED; // Copy empty top bar background global.updateMenu = false; // copy backdrop: set_clip_rect(global.canvas, 0, 0, env.screenWidth - 1, MENUHEIGHT - 1); blit (env.gfxData.topbar, global.canvas, 0, 0, 0, 0, env.screenWidth, MENUHEIGHT); // Fill in player info if possible : if (player) { // name is first, as always textout_ex (global.canvas, font, name, 2, y1 + 1, GetShadeColor(color, true, PINK), -1); textout_ex (global.canvas, font, name, 1, y1, color, -1); textprintf_ex(global.canvas, font, 1, y2, BLACK, -1, "%s", env.ingame->Get_Line(18)); // Display set angle. 0 is directly left, 180 points directly right graph_bar_center (50, y2 + 4, color, -(tank->a - 180) / 2, 180 / 2); textprintf_ex(global.canvas, font, 150, y2, BLACK, -1, "%d", GET_DISP_ANGLE(tank->a)); // Display set power graph_bar (50, y3 + 4, color, (tank->p) / (MAX_POWER/90), 90); textprintf_ex(global.canvas, font, 1, y3, BLACK, -1, "%s", env.ingame->Get_Line(19)); textprintf_ex(global.canvas, font, 150, y3, BLACK, -1, "%d", tank->p); // Display the team name textprintf_ex(global.canvas, font, 200, y3, BLACK, -1, "%s: %s", env.ingame->Get_Line(20), team_name); // Display weapon if chosen if (tank->cw < WEAPONS) { int32_t amt = tank->player->nm[tank->cw] / weapon[tank->cw].getDelayDiv(); int32_t col = BLACK; // Forcibly changed weapons (previous out of ammo) flash red/white // on each update. if (tank->player->changed_weapon) { col = change_colour; if (RED == change_colour) change_colour = WHITE; else change_colour = RED; } textprintf_ex(global.canvas, font, 180, y1, col, -1, "%s: %d", weapon[tank->cw].getName(), amt); } else textprintf_ex(global.canvas, font, 180, y1, BLACK, -1, "%s: %d", item[tank->cw - WEAPONS].getName(), tank->player->ni[tank->cw - WEAPONS]); // Show the weapon / item icon draw_sprite(global.canvas, env.stock[ (tank->cw > 0) ? tank->cw : 1], 700, 1); // Eventually print out money, fuel and power textprintf_ex(global.canvas, font, 386, y1, BLACK, -1, "$%s", Add_Comma(tank->player->money)); textprintf_ex(global.canvas, font, 386, y2, BLACK, -1, "%s: %d", env.ingame->Get_Line(21), tank->player->ni[ITEM_FUEL]); textprintf_ex(global.canvas, font, 386, y3, BLACK, -1, "%s: %.2f", "Power", tank->player->damageMultiplier); } // End of displaying player info // Display round information textprintf_ex(global.canvas, font, 500, y1, BLACK, -1, "%s %d/%d", env.ingame->Get_Line(12), env.rounds - global.currentround, env.rounds); // If a tank status is set, display it if (global.tank_status[0]) textprintf_ex(global.canvas, font, 350, y3, global.tank_status_colour, -1, "%s", global.tank_status); // Show the wind blowing (if configured) if (env.windstrength > 0) { textprintf_ex(global.canvas, font, 500, y2, BLACK, -1, "%s", env.ingame->Get_Line(22)); int32_t wcol1 = global.wind > 0 ? 1 : 0; int32_t wcol2 = global.wind < 0 ? 1 : 0; rect (global.canvas, 540, y2 + 4, 542 + (env.windstrength * 4), y2 + 12, BLACK); rectfill(global.canvas, 541 + (env.windstrength * 2), y2 + 5, 541 + (global.wind * 4) + (env.windstrength * 2), y2 + 11, makecol(200 * wcol1, 200 * wcol2, 0) ); } // Print AI Skip time or chess style clock if set if ( (global.AI_clock > -1) && (global.AI_clock <= MAX_AI_TIME) ) textprintf_ex(global.canvas, font, 500, y3, BLACK, -1, "AI Time: %d", MAX_AI_TIME - global.AI_clock); else if (env.maxFireTime) textprintf_ex(global.canvas, font, 500, y3, BLACK, -1, "Time: %d", time_to_fire); // Update and be done global.stopwindow = 1; global.make_update (0, 0, env.screenWidth, MENUHEIGHT); global.stopwindow = 0; } /// Let all tanks explode that are destroyed /// @return true if at least one tank goes bye bye static inline bool explode_tanks() { // return if something is exploding already if (has_explosion.load(ATOMIC_READ)) return true; // true, because an explosion is present. TANK* tank = nullptr; TANK* tmp = nullptr; bool res = false; bool tanks_left = false; // Check how many tanks are still alive and whether they are from // different teams bool all_jedi = true; bool all_sith = true; bool all_jedi_alive = true; bool all_sith_alive = true; bool do_explode = false; global.getHeadOfClass(CLASS_TANK, &tank); while (tank) { // Look for teams for any tanks including exploding ones if (tank->player && (TEAM_JEDI != tank->player->team) ) all_jedi = false; if (tank->player && (TEAM_SITH != tank->player->team) ) all_sith = false; // Look for alive tanks if ( (tank->l > 0) && !tank->destroy) { tanks_left = true; // Note down if alive tanks are from other teams if (tank->player && (TEAM_JEDI != tank->player->team) ) all_jedi_alive = false; if (tank->player && (TEAM_SITH != tank->player->team) ) all_sith_alive = false; } else do_explode = true; tank->getNext(&tank); } // Return if no tank is about to explode: if (!do_explode) return false; // If tanks are left that are only jedi or sith, vengeance is disallowed: bool allow_vengeance = (tanks_left && !all_jedi && !all_sith); // Now explode what has to go global.getHeadOfClass(CLASS_TANK, &tank); while (tank) { tank->getNext(&tmp); // If the tank is now destroyed, let it explode if (tank->destroy) { /* Second level of vengeance allowance: * If, for example, three tanks are left, one neutral, and two of * the same team. And the neutral and one team tank are about to * explode. Then the team tank must not trigger vengeance, because * their team already won. However, the neutral tank might surely * detonate in a firestorm and maybe force a draw. */ bool do_vengeance = allow_vengeance; if ( do_vengeance && ( (all_jedi_alive && (TEAM_JEDI == tank->player->team)) || (all_sith_alive && (TEAM_SITH == tank->player->team)) ) ) do_vengeance = false; tank->explode(do_vengeance); has_action.store( true, ATOMIC_WRITE); // For sure. has_explosion.store(true, ATOMIC_WRITE); // It'll go now. res = true; // count human player reduction if ( (tank->player) && ( (HUMAN_PLAYER == tank->player->type) || (NETWORK_CLIENT == tank->player->type) ) ) --human_players; // Now the tank has to be removed, but take care // of the current and next tank if they are this if (curr_tank == tank) curr_tank = nullptr; if (next_tank == tank) next_tank = nullptr; // Remove from order array global.removeTank(tank); delete tank; tank = nullptr; } // End of handling tank destruction tank = tmp; tmp = nullptr; } return res; } /// @brief Wrapper to automatically trigger firing in simultaneous mode, too. static inline void fire_weapon() { assert( (STAGE_AIM == global.stage) && " ERROR: fire_weapon() called, but not STAGE_AIM!"); global.stage = STAGE_FIRE; if (curr_tank && !curr_tank->destroy) { has_action.store(true); curr_tank->simActivateCurrentSelection(); } // Have everything launched in simultaneous mode if (TURN_SIMUL == env.turntype) { TANK* tank = nullptr; global.getHeadOfClass(CLASS_TANK, &tank); while (tank) { if (tank->player->skip_me) tank->player->skip_me = false; else { has_action.store(true); tank->activateCurrentSelection(); } tank->player->time_left_to_fire = env.maxFireTime; tank->getNext(&tank); } assert( (STAGE_FIRE == global.stage) && "ERROR: global.stage changed illegally!"); } fire = false; } // Draws indication bar static inline void graph_bar(int32_t x, int32_t y, int32_t col, int32_t actual, int32_t max_) { rect (global.canvas, x, y, x + max_ + 2, y + 8, BLACK); rectfill (global.canvas, x + 1, y + 1, x + 1 + actual, y + 7, col); } // Draws indication bar - centered static inline void graph_bar_center(int32_t x, int32_t y, int32_t col, int32_t actual, int32_t max_) { rect (global.canvas, x, y, x + max_ + 2, y + 8, BLACK); rectfill (global.canvas, x + 1 + max_ / 2, y + 1, x + 1 + actual + max_ / 2, y + 7, col); } // do new round preparations static inline void init_new_round() { // First env, srand(time(NULL)); env.newRound(); // then the players in case the campaign mode rise kicks in for (int32_t i = 0; i < env.numGamePlayers; ++i) env.players[i]->newRound(); // finally global, so campaign mode round is changed after the players. global.newRound(); // clear floating text FLOATTEXT* txt = nullptr; global.getHeadOfClass(CLASS_FLOATTEXT, &txt); while (txt) { txt->newRound(); txt->getNext(&txt); } // Initialize the static inline global values, so no old data from a previous // run is carried over. (Unless this is wanted, of course) AI_time_change = 0; curr_tank = nullptr; fire = false; human_players = 0; us_per_frame = 1000000 / env.frames_per_second; next_tank = nullptr; order_wrapped = false; second_passed = false; show_frame = true; skip_health = 0; update_screen = true; winner = WINNER_NO_WIN; game_us_reset(); // everyone gets to buy stuff. While the (human) // player(s) are at it, generate the next level // in the background. LevelCreator lvlCreator; std::thread gen_land_thread(std::ref(lvlCreator)); shop(&lvlCreator); gen_land_thread.join(); // End each players shopping and count the number of human players for (int32_t i = 0; i < env.numGamePlayers; ++i) { env.players[i]->exitShop(); if ( (env.players[i]->type == HUMAN_PLAYER) || (env.players[i]->type == NETWORK_CLIENT) ) human_players++; } // set wind if (env.windstrength) global.wind = (rand() % env.windstrength) - (env.windstrength / 2); else global.wind = 0; global.lastwind = global.wind; // finalize preparation fi = 1; global.stage = STAGE_AIM; global.updateMenu = true; env.window = BOX(0, 0, env.screenWidth - 1, env.screenHeight - 1); } /// @brief Wrapper to combine both human input and AI actions. static inline bool manage_input(AICore &aicore) { bool done = false; if ( curr_tank && curr_tank->player ) { global.updateMenu = false; PLAYER* player = curr_tank->player; bool can_fire = !( has_action.load(ATOMIC_READ) || has_explosion.load(ATOMIC_READ) ); int32_t result = player->controlTank(&aicore, can_fire); if (CONTROL_QUIT == result) done = true; else if (CONTROL_FIRE == result) { has_action.store(true); next_tank = global.get_next_tank(&order_wrapped); if (order_wrapped || (env.turntype != TURN_SIMUL) ) fire = true; } else if ( (CONTROL_SKIP == result) && !human_players && env.skipComputerPlay && !global.skippingComputerPlay && (STAGE_SCOREBOARD > global.stage) && (WINNER_NO_WIN == winner) ) { global.skippingComputerPlay = true; global.AI_clock = 0; } update_screen = false; if (result) global.updateMenu = true; } return done; } /** @brief Set up the next level to play * * This must work in parallel with the shop(), so any drawing must * lock the land, do the drawing and unlock it again. **/ static inline void set_level_settings(LevelCreator* lcr) { #if defined(ATANKS_IS_WINDOWS) // Here srand() is thread local according to MSDN. // This affects cygwin/mingw builds, too. // Thanks to billy Buerger for pointing this out! srand(time(nullptr)); #endif // Microsoft Windows Build // ------------------------- // === Choosing colours === //============================= lcr->working_on(1); // Choose first gradients for sky and land // First the land: if (lcr->can_work()) { global.curland = (rand () % LANDS) + (CT_CRISPY == env.colourTheme ? LANDS : 0); if (!env.gfxData.land_gradient_strips[global.curland]) { global.lockLand(); env.gfxData.land_gradient_strips[global.curland] = create_gradient_strip (land_gradients[global.curland], (env.screenHeight - MENUHEIGHT)); global.unlockLand(); } } // Then the sky if (lcr->can_work()) { global.cursky = (rand () % SKIES) + (CT_CRISPY == env.colourTheme ? SKIES : 0); if (!env.gfxData.sky_gradient_strips[global.cursky]) { global.lockLand(); env.gfxData.sky_gradient_strips[global.cursky] = create_gradient_strip (sky_gradients[global.cursky], (env.screenHeight - MENUHEIGHT)); global.unlockLand(); } } BITMAP* sky_gradient_strip = env.gfxData.sky_gradient_strips[global.cursky]; // ------------------------- // === Rendering Landscape === //============================= lcr->working_on(2); if (lcr->can_work()) generate_land (lcr, rand() % env.screenWidth, env.screenHeight); // ------------------------- // === Check Colours === //============================= if (lcr->can_work()) { int32_t peak_height = env.screenHeight; for (int32_t z = 0; lcr->can_work() && (z < env.screenWidth); ++z) { if (peak_height > global.surface[z].load()) peak_height = global.surface[z].load(ATOMIC_READ); } int32_t min_dist = 128; // start with this colour distance wanted int32_t max_tries = 16; // These many tries before lowering the distance int32_t cur_try = 1; int32_t bottom = env.screenHeight - MENUHEIGHT; int32_t max_y = std::min(env.screenHeight - peak_height, env.screenHeight - MENUHEIGHT); bool has_colours = false; while (!has_colours && lcr->can_work()) { has_colours = true; for (int32_t y = 2; lcr->can_work() && has_colours && (y < max_y); ++y) { if (colorDistance( getpixel(sky_gradient_strip, 0, bottom - y), getpixel(global.terrain, 0, env.screenHeight - y) ) < min_dist) has_colours = false; } if (!has_colours && lcr->can_work()) { // Create new strip: global.cursky = (rand () % SKIES) + (CT_CRISPY == env.colourTheme ? SKIES : 0); if (!env.gfxData.sky_gradient_strips[global.cursky]) { global.lockLand(); env.gfxData.sky_gradient_strips[global.cursky] = create_gradient_strip (sky_gradients[global.cursky], (env.screenHeight - MENUHEIGHT)); global.unlockLand(); } sky_gradient_strip = env.gfxData.sky_gradient_strips[global.cursky]; // Advance try and check: if (++cur_try > max_tries) { cur_try = 1; min_dist /= 2; // Break if min_dist is reduced to 1: if (min_dist < 2) has_colours = true; } // end of advancing tries } // end of handling wrong colours } // End of searching suitable sky colours } // end of thread not to be killed // ------------------------- // === Rendering Sky === //============================= lcr->working_on(3); if (lcr->can_work()) { if (env.sky && ( (env.sky->w != env.screenWidth) || (env.sky->h != (env.screenHeight - MENUHEIGHT) ) ) ) { destroy_bitmap(env.sky); env.sky = nullptr; } // see if we want a custom background if (env.custom_background && env.bitmap_filenames) { global.lockLand(); if (env.sky) destroy_bitmap(env.sky); env.sky = load_bitmap(env.bitmap_filenames[ rand() % env.number_of_bitmaps ], nullptr); global.unlockLand(); } // if we do not have a custom background (or do not want one) create a new background if (!env.custom_background || !env.sky) { global.lockLand(); if (!env.sky) env.sky = create_bitmap(env.screenWidth, env.screenHeight - MENUHEIGHT); global.unlockLand(); generate_sky (lcr, sky_gradients[global.cursky], (env.ditherGradients ? GENSKY_DITHERGRAD : 0 ) | (env.detailedSky ? GENSKY_DETAILED : 0 ) ); } } lcr->working_on(4); } /// @brief tank placement and player ordering static inline void set_tank_settings() { // ------------------------- // === Tank Placement === //============================= // Distribute tanks over the landscape abool_t taken[MAXPLAYERS] = { ATOMIC_VAR_INIT(false) }; int32_t middle = global.numTanks / 2; global.getHeadOfClass(CLASS_TANK, &curr_tank); while (curr_tank) { int32_t x = rand () % global.numTanks; while (taken[x]){ bool go_up = x < middle ? true : false; while (taken[x] && (x > 0) && (x < (global.numTanks - 1)) ) x += go_up ? 1 : -1; if (taken[x]) x = rand () % global.numTanks; } /* Note: this is a lot faster than the previous approach, because * the chance to fail if only one place is left is very high, while * the chance to go into the direction of the last free spot is 50%. */ if (!taken[x]) { taken[x] = true; int32_t tx = (x + 1) * (env.screenWidth / (global.numTanks + 1)); int32_t ty = env.screenHeight - global.surface[tx].load(); curr_tank->newRound (tx, ty); curr_tank->getNext(&curr_tank); } } // -------------------------- // === Determine Tank Order === //============================== for (int32_t z = 0; z < MAXPLAYERS; z++) { global.order[z] = nullptr; env.playerOrder[z] = nullptr; } env.maxNumTanks = global.numTanks; // Distribute tanks in the order array int32_t place = 0; global.getHeadOfClass(CLASS_TANK, &curr_tank); while (curr_tank) { global.order[place++] = curr_tank; curr_tank->getNext(&curr_tank); } // Mix up the order if it is wanted to be randomized if ( (env.turntype == TURN_RANDOM) || (env.turntype == TURN_SIMUL)) { for (int32_t index = 0; index < env.maxNumTanks; ++index) { for (int32_t round = 0; round < middle; ++round) { int32_t target = rand () % global.numTanks; if (target != index) { TANK* tmp_tank = global.order[index]; global.order[index] = global.order[target]; global.order[target] = tmp_tank; } } } } // Otherwise sort the order array else { bool sorted = false; while (!sorted) { sorted = true; for (int32_t index = 0; index < env.maxNumTanks - 1; ++index) { bool swap = false; if (env.turntype == TURN_HIGH) { if (global.order[index ]->player->score < global.order[index + 1]->player->score) swap = true; } else if (env.turntype == TURN_LOW) { if (global.order[index ]->player->score > global.order[index + 1]->player->score) swap = true; } if (swap) { TANK *tempTank = global.order[index]; global.order[index] = global.order[index + 1]; global.order[index + 1] = tempTank; sorted = false; } } } } // Create the ordered list of players // Since tanks get deleted as they are destroyed, we loose the information // about their order, but the player order list will be complete through the // entire round. int32_t max_name_len = 0; int32_t max_team_len = 0; for (int i = 0; i < env.maxNumTanks; ++i) { env.playerOrder[i] = global.order[i]->player; int32_t name_len = text_length(font, env.playerOrder[i]->getName()); int32_t team_len = text_length(font, env.playerOrder[i]->getTeamName()); if (name_len > max_name_len) max_name_len = name_len; if (team_len > max_team_len) max_team_len = team_len; // Reset tank flash damage and activate their first shields: if (env.playerOrder[i]->tank) { env.playerOrder[i]->tank->resetFlashDamage(); env.playerOrder[i]->tank->reactivate_shield(); } } // Set name and money position according to the maximum lengths score_name_pos = 16 + (2 * env.fontHeight) + max_team_len; score_money_pos = score_name_pos + (2 * env.fontHeight) + max_name_len; // FPS is shown on the right top corner: FPS_pos = env.screenWidth - text_length(font, "XXXX FPS "); } /// @brief the [e]nd [o]f [r]ound score board /// If the stage is STAGE_ENDGAME, credits and points are awarded and the /// function waits for user input before it returns static inline void draw_eor_scoreboard() { // Clear key buffer if (STAGE_ENDGAME == global.stage) { while ( keypressed() ) readkey(); } // check to see if we have a winner or we just got out early if ( (winner != WINNER_NO_WIN) && !global.demo_mode && !global.isCloseBtnPressed() ) { // Re-Check for winner - This might have changed due to // dying wrath devices that went off - should not happen. Really. if (STAGE_ENDGAME == global.stage) { check_winner(); // Eventually credit winner(s) env.creditWinners(winner); } // Now the scores can be displayed int32_t lh = 14; // The line height. If you need to change it, do it here. int32_t pd = 10; // Padding. How much space to the board border. // Find out longest player name and score length do determine the // score board size and score entry positions char head_name[5] = "Name"; char head_score[30] = { 0 }; snprintf(head_score, 29, " %6s %6s %6s %6s", "Kills", "Killed", "Diff", "Won"); int32_t namLen = text_length(font, head_name); int32_t scoLen = text_length(font, head_score); for (int32_t z = 0; z < env.numGamePlayers; z++) { int32_t curLen = text_length(font, env.players[z]->getName()); if (curLen > namLen) namLen = curLen; char scoTxt[30] = { 0 }; snprintf(scoTxt, 29, " %6d %6d %6d %6d", env.players[z]->kills, env.players[z]->killed, env.players[z]->killed - env.players[z]->kills, env.players[z]->score); curLen = text_length(font, scoTxt); if (curLen > scoLen) scoLen = curLen; } // Now calculate the dimensions of our score board. int32_t w = namLen + scoLen + (2 * pd); int32_t h = ((env.numGamePlayers + 4) * lh) + (2 * pd); int32_t x = env.halfWidth - (w / 2); int32_t y = env.halfHeight - (h / 2); // Draw the background and the border global.make_update (x, y, w, h); rectfill(global.canvas, x, y, x + w, y + h, BLACK); rect (global.canvas, x, y, x + w, y + h, WHITE); rect (global.canvas, x + 1, y + 1, x + w - 1, y + h - 1, GREY); // Show a hint to press a key if this is the endgame board if (STAGE_ENDGAME == global.stage) { global.make_update (x, y + h, w, env.fontHeight + 6); textout_centre_ex(global.canvas, font, "Press any key to exit", x + (w / 2) + 2, y + h + 6, BLACK, -1); textout_centre_ex(global.canvas, font, "Press any key to exit", x + (w / 2), y + h + 4, SILVER, -1); } // Add the padding now, or it must be summed in everywhere! x += pd; y += pd; w -= 2 * pd; h -= 2 * pd; // First title line, the winner if (winner == WINNER_JEDI) textout_centre_ex (global.canvas, font, "Jedi Win!", env.halfWidth, y, WHITE, -1); else if (winner == WINNER_SITH) textout_centre_ex (global.canvas, font, "Sith Win!", env.halfWidth, y, WHITE, -1); else if (winner == WINNER_DRAW) textout_centre_ex (global.canvas, font, "Draw", env.halfWidth, y, WHITE, -1); else textprintf_centre_ex (global.canvas, font, env.halfWidth, y, env.players[winner]->color, -1, "%s: %s", env.ingame->Get_Line(47), env.players[winner]->getName()); // Second title line: The score is to follow. (Is this needed?) textout_right_ex (global.canvas, font, env.ingame->Get_Line(50), env.halfWidth, y + (2 * lh), WHITE, -1); // to make the following easier, skip the three used lines // (two titles, one blank) y += 3 * lh; // Third title line, the score board header int32_t scoStart = x + namLen; int32_t scoWidth = scoLen / 4; textout_ex (global.canvas, font, "Name", x, y, WHITE, -1); textprintf_right_ex (global.canvas, font, scoStart + (1 * scoWidth), y, GREEN, -1, " %6s", "Kills"); textprintf_right_ex (global.canvas, font, scoStart + (2 * scoWidth), y, RED, -1, " %6s", "Killed"); textprintf_right_ex (global.canvas, font, scoStart + (3 * scoWidth), y, WHITE, -1, " %6s", "Diff"); textprintf_right_ex (global.canvas, font, scoStart + (4 * scoWidth), y, WHITE, -1, " %6s", "Won"); // Create the score order. // The scores are ordered by score->diff->kills->killed->name sScore* score_array = sort_scores(); // And get the head entry: sScore* score = score_array; while (score->prev) score = score->prev; // Eventually the player scores can be displayed: // (again skip the previous line for easier reading/doing below) y += lh; int32_t z = 0; while (score) { textout_ex (global.canvas, font, score->name, x, y + (z * lh), score->color, -1); textprintf_right_ex (global.canvas, font, scoStart + (1 * scoWidth), y + (z * lh), GREEN, -1, " %6d", score->kills); textprintf_right_ex (global.canvas, font, scoStart + (2 * scoWidth), y + (z * lh), RED, -1, " %6d", score->killed); textprintf_right_ex (global.canvas, font, scoStart + (3 * scoWidth), y + (z * lh), score->diff < 0 ? RED : GREEN, -1, " %6d", score->diff); textprintf_right_ex (global.canvas, font, scoStart + (4 * scoWidth), y + (z * lh), WHITE, -1, " %6d", score->score); ++z; score = score->next; } // If this is the end-board, display here and wait for user input: if (STAGE_ENDGAME == global.stage) { global.do_updates(); // Wait until a key is pressed while (!keypressed() && !mouse_b) LINUX_REST; // Clear key buffer while ( keypressed() ) readkey(); } // Clean up delete [] score_array; } // End of handling winner display } /** @brief sort players by scores. * * The return value is the pointer to the allocated array, users * must use its prev() pointer to find the head entry. * * @return a pointer to the scores array. This must be deleted. **/ sScore* sort_scores() { sScore* scores = new sScore[env.numGamePlayers]; sScore* score_head = scores; sScore* score_tail = scores; sScore* curr = nullptr; for (int32_t z = 0; z < env.numGamePlayers; z++) { curr = score_head; scores[z] = *(env.players[z]); scores[z].idx = z; // The game index is needed. // Walk to find a lower score: while (curr && (curr->score > scores[z].score)) curr = curr->next; // Walk to find a lower diff: while (curr && (curr->score == scores[z].score) && (curr->diff > scores[z].diff)) curr = curr->next; // Walk to find a lower kills value: while (curr && (curr->score == scores[z].score) && (curr->diff == scores[z].diff) && (curr->kills > scores[z].kills)) curr = curr->next; // Walk to find a higher killed value: while (curr && (curr->score == scores[z].score) && (curr->diff == scores[z].diff) && (curr->kills == scores[z].kills) && (curr->killed < scores[z].killed)) curr = curr->next; // Walk to find a higher name value: while (curr && (curr->score == scores[z].score) && (curr->diff == scores[z].diff) && (curr->kills == scores[z].kills) && (curr->killed == scores[z].killed) && (strcmp(curr->name, scores[z].name) < 0)) curr = curr->next; // If there is a curr, sort the new score before it. if (curr && (curr != &scores[z])) { scores[z].prev = curr->prev; scores[z].next = curr; if (scores[z].prev) scores[z].prev->next = &scores[z]; curr->prev = &scores[z]; if (score_head == curr) score_head = &scores[z]; } // Otherwise this is the new tail: else if (score_tail != &scores[z]) { scores[z].prev = score_tail; score_tail->next = &scores[z]; score_tail = &scores[z]; } } // End of sorting scores return scores; } static inline void update_display() { if (show_frame) { // do not show custom mouse cursor while drawing SHOW_MOUSE(nullptr) set_clip_rect(global.canvas, 0, 0, env.screenWidth - 1, env.screenHeight - 1); if (update_screen) { update_screen = false; global.make_fullUpdate(); global.updateMenu = true; } global.replace_canvas(); } } static inline void update_objects(ObjectUpdater* upd) { // Start all updater threads for (int32_t class_ = 0; class_ < CLASS_COUNT; ++class_) upd[class_].start(); // Wakeup all at once: updMutex.lock(); updCondition.notify_all(); updMutex.unlock(); // Wait for the threads to finish bool has_thread = true; while (has_thread) { has_thread = false; for (int32_t class_ = 0; class_ < CLASS_COUNT; ++class_) { if (!upd[class_].hasDone()) has_thread = true; } if (has_thread) std::this_thread::yield(); } // Reset SDI shot status on all tanks TANK* lt = nullptr; global.getHeadOfClass(CLASS_TANK, <); while (lt) { if (lt->player) lt->player->sdi_has_fired.store(false, ATOMIC_WRITE); lt->getNext(<); } } /// Level Creator Methods implementation LevelCreator::LevelCreator() { for (int32_t i = 0; i < 4; ++i) in_progress[i] = false; } /// The operator is just a wrapper. void LevelCreator::operator()() { fiVal = 1; set_level_settings(this); fiVal = 0; } void LevelCreator::add_fi() { fiLock.lock(); ++fiVal; fiLock.unlock(); } bool LevelCreator::can_work() const { return !i_shall_die; } void LevelCreator::die_now() { i_shall_die = true; } bool LevelCreator::has_progress() { fiLock.lock(); bool result = (fiVal > 0); fiVal = 0; fiLock.unlock(); return result; } bool LevelCreator::is_finished() const { return in_progress[3]; } void LevelCreator::print_state() const { if (in_progress[0]) { draw_sprite (global.canvas, env.misc[1], env.halfWidth - 120, env.halfHeight + 115); textout_centre_ex(global.canvas, font, env.ingame->Get_Line(42), env.halfWidth, env.halfHeight + 116, WHITE, -1); global.make_update(env.halfWidth - 120, env.halfHeight + 115, env.misc[1]->w, env.misc[1]->h); } if (in_progress[1]) { draw_sprite(global.canvas, env.misc[1], env.halfWidth - 120, env.halfHeight + 155); textout_centre_ex(global.canvas, font, env.ingame->Get_Line(44), env.halfWidth, env.halfHeight + 156, WHITE, -1); global.make_update(env.halfWidth - 120, env.halfHeight + 155, env.misc[1]->w, env.misc[1]->h); } if (in_progress[2]) { draw_sprite(global.canvas, env.misc[1], env.halfWidth - 120, env.halfHeight + 195); textout_centre_ex(global.canvas, font, env.ingame->Get_Line(43), env.halfWidth, env.halfHeight + 196, WHITE, -1); global.make_update(env.halfWidth - 120, env.halfHeight + 195, env.misc[1]->w, env.misc[1]->h); } } /// @brief Tell the LevelCreator that it does not need to yield any more void LevelCreator::work_alone() { i_must_yield = false; } void LevelCreator::working_on(int32_t what) { if ( (what > 0) && (what < 5) ) { add_fi(); in_progress[what - 1] = true; } } /// @brief yield if it is not working alone void LevelCreator::yield() { if (i_must_yield) std::this_thread::yield(); } atanks-6.6/src/physobj.h0000644000175000017500000000760713006377360013423 0ustar apoapo#ifndef PHYSOBJ_DEFINE #define PHYSOBJ_DEFINE /* * atanks - obliterate each other with oversize weapons * Copyright (C) 2003 Thomas Hudson * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "globaltypes.h" #include "virtobj.h" // Switch sides (real angle!) #define FLIP_ANGLE(angle_) (180 + (180 - (angle_))) // Get the direct angle without any checks #define GET_ANGLE(x,y) ([](double a, double b)->int32_t { \ double result = RAD2DEG(std::atan2(a, b)); \ /* atan2 returns an angle with 180° up, 90° right */ \ /* and -90° left. But we need it from 90° right to */ \ /* 270° left counter-clockwise. */ \ if (result < 0) result += 360.; \ return ROUND(result); \ }(static_cast(x), static_cast(y))) // Get the angle brought into the 90-270 degree range // To be usable more widely, this macro allows an additional // argument "m", which is the angle modifier (errors made // by the AI and such things) #define GET_SAFE_ANGLE(x,y,m) ([](double a, double b, double c)->int32_t { \ double result = RAD2DEG(std::atan2(a, b)) + c; \ if (result < 0.) result += 360.; \ if (result < 90.) result = 90.; \ else if (result > 270.) result = 270.; \ return ROUND(result); \ }(static_cast(x), static_cast(y), static_cast(m))) // Re-calculate angle_ into a value displayable on the top bar: #define GET_DISP_ANGLE(angle_) (180 - ((angle_) - 90)) class PHYSICAL_OBJECT: public VIRTUAL_OBJECT { public: /* ----------------------------------- * --- Constructors and destructor --- * ----------------------------------- */ explicit PHYSICAL_OBJECT(bool is_weapon); // No explicit dtor needed /* ---------------------- * --- Public methods --- * ---------------------- */ virtual void draw () _PURE; void getVelocity(double &xv_, double &yv_); bool isWeapon(); /* ---------------------- * --- Public members --- * ---------------------- */ bool allowDirtyWrap = true; //!< Whether ceiling wrap is allowed into dirt bottom double drag = 0.; bool hitSomething = false; int32_t weapType = 0; protected: /* ------------------------- * --- Protected methods --- * ------------------------- */ void applyPhysics (); bool checkPixelsBetweenPrevAndNow (); void initialise (); /* ------------------------- * --- Protected members --- * ------------------------- */ int32_t bounces = 0; //!< Bounces off walls, floor and ceiling bool isWeaponFire = true; bool lacerated = false; //!< Set to true if the velocity check fails. double mass = 0.; double maxVel = 0.; //!< maximum Velocity double mindDelay = 0.; //!< for mind shots to travel through dirt if delayed double mindPassed = 0.; //!< Counts the amount of dirt a delayed shot already passed through bool noimpact = false; int32_t spin = 0; }; /// global helper methods: bool checkPixelsBetweenTwoPoints(double* startX, double* startY, double endX, double endY, double can_delay, double* has_delayed); void getDirtBounceReact(int32_t x, int32_t y, double xv, double yv, double &rxv, double &ryv); #endif atanks-6.6/src/globaldata.cpp0000644000175000017500000011146113006377360014364 0ustar apoapo/* * atanks - obliterate each other with oversize weapons * Copyright (C) 2003 Thomas Hudson * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include #include #include "player.h" #include "globaldata.h" #include "files.h" #include "tank.h" #include "sound.h" #include "debris_pool.h" GLOBALDATA::GLOBALDATA() { // memset initialization, because Visual C++ 2013 can't do lists, yet. memset(order, 0, sizeof(TANK*) * MAXPLAYERS); memset(tank_status, 0, sizeof(char) * 128); memset(heads, 0, sizeof(vobj_t*) * CLASS_COUNT); memset(tails, 0, sizeof(vobj_t*) * CLASS_COUNT); } GLOBALDATA::~GLOBALDATA() { this->destroy(); } /// @brief goes through the columns from @a left to @a right and sets slide type according to @a do_lock void GLOBALDATA::addLandSlide(int32_t left, int32_t right, bool do_lock) { // Opt out soon if no landslide is to be done if ( (SLIDE_NONE == env.landSlideType) || (SLIDE_TANK_ONLY == env.landSlideType) ) return; int32_t minX = std::min(left, right); int32_t maxX = std::max(left, right); if (minX < 1) minX = 1; if (minX > (env.screenWidth - 1) ) minX = env.screenWidth - 1; if (maxX < 1) maxX = 1; if (maxX > (env.screenWidth - 1) ) maxX = env.screenWidth - 1; if (do_lock) memset(&done[minX], 3, sizeof(char) * (maxX - minX + 1) ); else memset(&done[minX], 2, sizeof(char) * (maxX - minX + 1) ); } void GLOBALDATA::addObject (vobj_t *object) { if (nullptr == object) return; eClasses class_ = object->getClass(); objLocks[class_].lock(); /// --- case 1: first of its kind --- if (nullptr == tails[class_]) { heads[class_] = object; tails[class_] = object; } /// --- case 2: normal addition --- else { tails[class_]->next = object; object->prev = tails[class_]; tails[class_] = object; } objLocks[class_].unlock(); } // Combine both make_update and make_bgupdate with safety checks for // the dimensions. This reduces code duplication. void GLOBALDATA::addUpdate(int32_t x, int32_t y, int32_t w, int32_t h, BOX* target, int32_t &target_count) { assert (target && "ERROR: addUpdate called with nullptr target!"); bool combined = false; assert ( (w > 0) && (h > 0) ); // No zero/negative updates, please! int32_t left = std::max(x - 1, 0); int32_t top = std::max(y - 1, 0); int32_t right = std::min(x + w + 1, env.screenWidth); int32_t bottom = std::min(y + h + 1, env.screenHeight); // If the update is outside the screen, it is not needed: if ( (bottom <= 0) /* most common case */ || (left >= env.screenWidth) || (right <= 0) || (top >= env.screenHeight) ) return; assert( (left < right ) ); assert( (top < bottom) ); if ( combineUpdates && target_count && (target_count < env.max_screen_updates)) { // Re-purpose BOX::w as x2 and BOX::h as y2: BOX prev(target[target_count - 1].x, target[target_count - 1].y, target[target_count - 1].x + target[target_count - 1].w, target[target_count - 1].y + target[target_count - 1].h); BOX next(left, top, right, bottom); if ( (next.w > (prev.x - 3)) && (prev.w > (next.x - 3)) && (next.h > (prev.y - 3)) && (prev.h > (next.y - 3)) ) { next.set(next.x < prev.x ? next.x : prev.x, next.y < prev.y ? next.y : prev.y, next.w > prev.w ? next.w : prev.w, next.h > prev.h ? next.h : prev.h); // recalculate x2/y2 back into w/h target[target_count - 1].set(next.x, next.y, next.w - next.x, next.h - next.y); // Make sure the target update is sane: assert( (target[target_count - 1].w > 0) && (target[target_count - 1].h > 0) ); combined = true; } } if (!combined) target[target_count++].set(left, top, right - left, bottom - top); if (!stopwindow && (target_count <= env.max_screen_updates)) env.window_update(left, top, right - left, bottom - top); } // return true if any living tank is in the given box. // left/right and top/bottom are determined automatically. bool GLOBALDATA::areTanksInBox(int32_t x1, int32_t y1, int32_t x2, int32_t y2) { TANK* lt = static_cast(heads[CLASS_TANK]); while (lt) { // Tank found, is it in the box? if ( (!lt->destroy) && lt->isInBox(x1, y1, x2, y2)) return true; lt->getNext(<); } return false; } // This function checks to see if one full second has passed since the // last time the function was called. // The function returns true if time has passed. The function // returns false if time hasn't passed or it was unable to tell // how much time has passed. bool GLOBALDATA::check_time_changed() { volatile static time_t last_second = 0; static time_t current_second = 0; time(¤t_second); if ( current_second == last_second ) return false; // time has changed last_second = current_second; return true; } /// @brief remove and delete *all* objects stored. void GLOBALDATA::clear_objects() { int32_t class_ = 0; while (class_ < CLASS_COUNT) { while (tails[class_]) delete tails[class_]; ++class_; } } // Call before calling allegro_exit()! void GLOBALDATA::destroy() { clear_objects(); if (debris_pool) { delete debris_pool; debris_pool = nullptr; } if (canvas) destroy_bitmap(canvas); canvas = nullptr; if (terrain) destroy_bitmap(terrain); terrain = nullptr; if (done) delete [] done; done = nullptr; if (fp) delete [] fp; fp = nullptr; if (surface) delete [] surface; surface = nullptr; if (dropTo) delete [] dropTo; dropTo = nullptr; if (velocity) delete [] velocity; velocity = nullptr; if (dropIncr) delete [] dropIncr; dropIncr = nullptr; if (updates) delete [] updates; updates = nullptr; if (lastUpdates) delete [] lastUpdates; lastUpdates = nullptr; } void GLOBALDATA::do_updates () { bool isBgUpdNeeded = lastUpdatesCount > 0; acquire_bitmap(screen); for (int32_t i = 0; i < updateCount; ++i) { blit( canvas, screen, updates[i].x, updates[i].y, updates[i].x, updates[i].y, updates[i].w, updates[i].h); if (isBgUpdNeeded) make_bgupdate( updates[i].x, updates[i].y, updates[i].w, updates[i].h); } release_bitmap(screen); if (!isBgUpdNeeded) { lastUpdatesCount = updateCount; memcpy (lastUpdates, updates, sizeof (BOX) * updateCount); } updateCount = 0; } // Do what has to be done after the game starts void GLOBALDATA::first_init() { // get memory for updates try { updates = new BOX[env.max_screen_updates]; } catch (std::bad_alloc &e) { cerr << "globaldata.cpp:" << __LINE__ << ":first_init() : " << "Failed to allocate memory for updates [" << e.what() << "]" << endl; exit(1); } // get memory for lastUpdates try { lastUpdates = new BOX[env.max_screen_updates]; } catch (std::bad_alloc &e) { cerr << "globaldata.cpp:" << __LINE__ << ":first_init() : " << "Failed to allocate memory for lastUpdates [" << e.what() << "]" << endl; exit(1); } canvas = create_bitmap (env.screenWidth, env.screenHeight); if (!canvas) { cout << "Failed to create canvas bitmap: " << allegro_error << endl; exit(1); } terrain = create_bitmap (env.screenWidth, env.screenHeight); if (!terrain) { cout << "Failed to create terrain bitmap: " << allegro_error << endl; exit(1); } // get memory for the debris pool try { debris_pool = new sDebrisPool(env.max_screen_updates); } catch (std::bad_alloc &e) { cerr << "globaldata.cpp:" << __LINE__ << ":first_init() : " << "Failed to allocate memory for debris_pool [" << e.what() << "]" << endl; exit(1); } try { done = new int8_t[env.screenWidth]{0}; fp = new int32_t[env.screenWidth]{0}; surface = new ai32_t[env.screenWidth]{ { 0 } }; dropTo = new int32_t[env.screenWidth]{0}; velocity = new double[env.screenWidth]{0}; dropIncr = new double[env.screenWidth]{0}; } catch (std::bad_alloc &e) { cerr << "globaldata.cpp:" << __LINE__ << ":first_init() : " << "Failed to allocate memory for base data arrays [" << e.what() << "]" << endl; exit(1); } initialise (); } /** @brief delegate freeing of a debris item to the debris pool. * * This delegating function, instead of making the debris pool public, * exists as a point where locking, if it becomes necessary, can be * added without having to rewrite a lot of code. **/ void GLOBALDATA::free_debris_item(item_t* item) { debris_pool->free_item(item); } int32_t GLOBALDATA::get_avg_bgcolor(int32_t x1, int32_t y1, int32_t x2, int32_t y2, double xv, double yv) { // Movement int32_t mvx = ROUND(10. * xv); // eliminate slow movement int32_t mvy = ROUND(10. * yv); // eliminate slow movement bool mv_left = mvx < 0; bool mv_right = mvx > 0; bool mv_up = mvy < 0; bool mv_down = mvy > 0; // Boundaries int32_t min_x = 1; int32_t max_x = env.screenWidth - 2; int32_t min_y = env.isBoxed ? MENUHEIGHT + 1 : MENUHEIGHT; int32_t max_y = env.screenHeight - 2; // Coordinates int32_t left = std::max(std::min(x1, x2), min_x); int32_t right = std::min(std::max(x1, x2), max_x); int32_t centre = (x1 + x2) / 2; int32_t top = std::max(std::min(y1, y2), min_y); int32_t bottom = std::min(std::max(y1, y2), max_y); int32_t middle = (y1 + y2) / 2; // Colors: int32_t col_tl, col_tc, col_tr; // top row int32_t col_ml, col_mc, col_mr; // middle row int32_t col_bl, col_bc, col_br; // bottom row int32_t r = 0, g = 0, b = 0; // Get Sky or Terrain colour, whatever fits: /*--------------------- --- Left side --- ---------------------*/ if ( PINK == (col_tl = getpixel(terrain, left, top)) ) col_tl = getpixel(env.sky, left, top); if ( PINK == (col_ml = getpixel(terrain, left, middle)) ) col_ml = getpixel(env.sky, left, middle); if ( PINK == (col_bl = getpixel(terrain, left, bottom)) ) col_bl = getpixel(env.sky, left, bottom); /*--------------------- --- The Center --- ---------------------*/ if ( PINK == (col_tc = getpixel(terrain, centre, top)) ) col_tc = getpixel(env.sky, centre, top); if ( PINK == (col_mc = getpixel(terrain, centre, middle)) ) col_mc = getpixel(env.sky, centre, middle); if ( PINK == (col_bc = getpixel(terrain, centre, bottom)) ) col_bc = getpixel(env.sky, centre, bottom); /*---------------------- --- Right side --- ----------------------*/ if ( PINK == (col_tr = getpixel(terrain, right, top)) ) col_tr = getpixel(env.sky, right, top); if ( PINK == (col_mr = getpixel(terrain, right, middle)) ) col_mr = getpixel(env.sky, right, middle); if ( PINK == (col_br = getpixel(terrain, right, bottom)) ) col_br = getpixel(env.sky, right, bottom); // Fetch the rgb parts, according to movement: /* --- X-Movement --- */ if (mv_left) { // Movement to the left, weight left side colour twice r += (GET_R(col_tl) + GET_R(col_ml) + GET_R(col_bl)) * 2; g += (GET_G(col_tl) + GET_G(col_ml) + GET_G(col_bl)) * 2; b += (GET_B(col_tl) + GET_B(col_ml) + GET_B(col_bl)) * 2; // The others are counted once r += GET_R(col_tc) + GET_R(col_mc) + GET_R(col_bc) + GET_R(col_tr) + GET_R(col_mr) + GET_R(col_br); g += GET_G(col_tc) + GET_G(col_mc) + GET_G(col_bc) + GET_G(col_tr) + GET_G(col_mr) + GET_G(col_br); b += GET_B(col_tc) + GET_B(col_mc) + GET_B(col_bc) + GET_B(col_tr) + GET_B(col_mr) + GET_B(col_br); } else if (mv_right) { // Movement to the right, weight right side colour twice r += (GET_R(col_tr) + GET_R(col_mr) + GET_R(col_br)) * 2; g += (GET_G(col_tr) + GET_G(col_mr) + GET_G(col_br)) * 2; b += (GET_B(col_tr) + GET_B(col_mr) + GET_B(col_br)) * 2; // The others are counted once r += GET_R(col_tc) + GET_R(col_mc) + GET_R(col_bc) + GET_R(col_tl) + GET_R(col_ml) + GET_R(col_bl); g += GET_G(col_tc) + GET_G(col_mc) + GET_G(col_bc) + GET_G(col_tl) + GET_G(col_ml) + GET_G(col_bl); b += GET_B(col_tc) + GET_B(col_mc) + GET_B(col_bc) + GET_B(col_tl) + GET_B(col_ml) + GET_B(col_bl); } else { // No x-movement, weight centre colour twice r += (GET_R(col_tc) + GET_R(col_mc) + GET_R(col_bc)) * 2; g += (GET_G(col_tc) + GET_G(col_mc) + GET_G(col_bc)) * 2; b += (GET_B(col_tc) + GET_B(col_mc) + GET_B(col_bc)) * 2; // The others are counted once r += GET_R(col_tl) + GET_R(col_ml) + GET_R(col_bl) + GET_R(col_tr) + GET_R(col_mr) + GET_R(col_br); g += GET_G(col_tl) + GET_G(col_ml) + GET_G(col_bl) + GET_G(col_tr) + GET_G(col_mr) + GET_G(col_br); b += GET_B(col_tl) + GET_B(col_ml) + GET_B(col_bl) + GET_B(col_tr) + GET_B(col_mr) + GET_B(col_br); } /* --- Y-Movement --- */ if (mv_up) { // Movement upwards, weight top side colour twice r += (GET_R(col_tl) + GET_R(col_tc) + GET_R(col_tr)) * 2; g += (GET_G(col_tl) + GET_G(col_tc) + GET_G(col_tr)) * 2; b += (GET_B(col_tl) + GET_B(col_tc) + GET_B(col_tr)) * 2; // The others are counted once r += GET_R(col_ml) + GET_R(col_mc) + GET_R(col_mr) + GET_R(col_bl) + GET_R(col_bc) + GET_R(col_br); g += GET_G(col_ml) + GET_G(col_mc) + GET_G(col_mr) + GET_G(col_bl) + GET_G(col_bc) + GET_G(col_br); b += GET_B(col_ml) + GET_B(col_mc) + GET_B(col_mr) + GET_B(col_bl) + GET_B(col_bc) + GET_B(col_br); } else if (mv_down) { // Movement downwards, weight bottom side colour twice r += (GET_R(col_bl) + GET_R(col_bc) + GET_R(col_br)) * 2; g += (GET_G(col_bl) + GET_G(col_bc) + GET_G(col_br)) * 2; b += (GET_B(col_bl) + GET_B(col_bc) + GET_B(col_br)) * 2; // The others are counted once r += GET_R(col_ml) + GET_R(col_mc) + GET_R(col_mr) + GET_R(col_tl) + GET_R(col_tc) + GET_R(col_tr); g += GET_G(col_ml) + GET_G(col_mc) + GET_G(col_mr) + GET_G(col_tl) + GET_G(col_tc) + GET_G(col_tr); b += GET_B(col_ml) + GET_B(col_mc) + GET_B(col_mr) + GET_B(col_tl) + GET_B(col_tc) + GET_B(col_tr); } else { // No y-movement, weight middle colour twice r += (GET_R(col_ml) + GET_R(col_mc) + GET_R(col_mr)) * 2; g += (GET_G(col_ml) + GET_G(col_mc) + GET_G(col_mr)) * 2; b += (GET_B(col_ml) + GET_B(col_mc) + GET_B(col_mr)) * 2; // The others are counted once r += GET_R(col_tl) + GET_R(col_tc) + GET_R(col_tr) + GET_R(col_bl) + GET_R(col_bc) + GET_R(col_br); g += GET_G(col_tl) + GET_G(col_tc) + GET_G(col_tr) + GET_G(col_bl) + GET_G(col_bc) + GET_G(col_br); b += GET_B(col_tl) + GET_B(col_tc) + GET_B(col_tr) + GET_B(col_bl) + GET_B(col_bc) + GET_B(col_br); } /* I know this looks weird, but what we now have is some kind of summed * matrix, which is always the same: * Let's assume that xv and yv are both 0.0, so no movement is happening. * The result is: (In counted times) * 2|3|2 ( = 7) * -+-+- * 3|4|3 ( = 10) * -+-+- * 2|3|2 ( = 7) * = 24 * And it is always 24, no matter which movement combination you try */ r /= 24; g /= 24; b /= 24; return makecol(r > 0xff ? 0xff : r, g > 0xff ? 0xff : g, b > 0xff ? 0xff : b); } // Locks global->command for reading, reads value, then unlocks the variable // and returns the value. int32_t GLOBALDATA::get_command() { cmdLock.lock(); int32_t c = command; cmdLock.unlock(); return c; } TANK* GLOBALDATA::get_curr_tank() { return currTank; } /** @brief delegate getting a debris item to the debris pool. * * This delegating function, instead of making the debris pool public, * exists as a point where locking, if it becomes necessary, can be * added without having to rewrite a lot of code. **/ sDebrisItem* GLOBALDATA::get_debris_item(int32_t radius) { return debris_pool->get_item(radius); } TANK* GLOBALDATA::get_next_tank(bool *wrapped_around) { bool found = false; int32_t index = tankindex + 1; int32_t oldindex = tankindex; int32_t wrapped = 0; while (!found && (wrapped < 2)) { if (index >= MAXPLAYERS) { index = 0; if (wrapped_around) *wrapped_around = true; wrapped++; } if ( order[index] && (index != oldindex) && !order[index]->destroy) found = true; else ++index; } tankindex = index; // If this tank is valid, the currently selected weapon must be checked // first and changed if depleted TANK* next_tank = order[index]; if (next_tank && next_tank->player) next_tank->check_weapon(); // Whatever happened, the status bar needs an update: if (oldindex != index) updateMenu = true; return next_tank; } /// @brief randomly return one active tank TANK* GLOBALDATA::get_random_tank() { int32_t idx = rand() % MAXPLAYERS; int32_t attempts = 2; while ( (!order[idx] || order[idx]->destroy) && (idx < MAXPLAYERS) && attempts ) { if (++idx >= MAXPLAYERS) { idx = 0; --attempts; } } return order[idx]; } void GLOBALDATA::initialise () { clear_objects(); numTanks = 0; clear_to_color (canvas, WHITE); clear_to_color (terrain, PINK); for (int32_t i = 0; i < env.screenWidth; ++i) { done[i] = 0; dropTo[i] = env.screenHeight - 1; fp[i] = 0; } } // return true if the dirt reaches into the given box. // left/right and top/bottom are determined automatically. bool GLOBALDATA::isDirtInBox(int32_t x1, int32_t y1, int32_t x2, int32_t y2) { int32_t top = std::max(std::min(y1, y2), env.isBoxed ? MENUHEIGHT + 1 : MENUHEIGHT); // Exit early if the box is below the playing area if (top >= env.screenHeight) return false; int32_t bottom = std::min(std::max(y1, y2), env.screenHeight - 2); // Exit early if the box is over the playing area if (bottom <= MENUHEIGHT) return false; int32_t left = std::max(std::min(x1, x2), 1); int32_t right = std::min(std::max(x1, x2), env.screenWidth - 2); // If the box is outside the playing area, this loop won't do anything for (int32_t x = left; x <= right; ++x) { if (surface[x].load(ATOMIC_READ) <= bottom) return true; } return false; } /// @return true if the close button was pressed bool GLOBALDATA::isCloseBtnPressed() { cbpLock.lock(); bool result = close_button_pressed; cbpLock.unlock(); return result; } /** @brief load global data from a file * This method is still present to provide backwards * compatibility with configurations that were saved * before the values were moved to ENVIRONMENT **/ void GLOBALDATA::load_from_file (FILE* file) { char line[ MAX_CONFIG_LINE + 1] = { 0 }; char field[MAX_CONFIG_LINE + 1] = { 0 }; char value[MAX_CONFIG_LINE + 1] = { 0 }; char* result = nullptr; setlocale(LC_NUMERIC, "C"); // read until we hit line "*GLOBAL*" or "***" or EOF do { result = fgets(line, MAX_CONFIG_LINE, file); if ( !result || !strncmp(line, "***", 3) ) // eof OR end of record return; } while ( strncmp(line, "*GLOBAL*", 8) ); bool done = false; while (result && !done) { // read a line memset(line, '\0', MAX_CONFIG_LINE); if ( ( result = fgets(line, MAX_CONFIG_LINE, file) ) ) { // if we hit end of the record, stop if (! strncmp(line, "***", 3) ) return; // strip newline character size_t line_length = strlen(line); while ( line[line_length - 1] == '\n') { line[line_length - 1] = '\0'; line_length--; } // find equal sign size_t equal_position = 1; while ( ( equal_position < line_length ) && ( line[equal_position] != '=' ) ) equal_position++; // make sure the equal sign position is valid if (line[equal_position] != '=') continue; // Go to next line // seperate field from value memset(field, '\0', MAX_CONFIG_LINE); memset(value, '\0', MAX_CONFIG_LINE); strncpy(field, line, equal_position); strncpy(value, &( line[equal_position + 1] ), MAX_CONFIG_LINE); // Values that were moved to ENVIRONMENT: // They are loaded, for compatibility, but the next // save will put them into the correct section anyway. // So these can eventually be removed. if (!strcasecmp(field, "acceleratedai")) { sscanf(value, "%d", &env.skipComputerPlay); if (env.skipComputerPlay > SKIP_HUMANS_DEAD) env.skipComputerPlay = SKIP_HUMANS_DEAD; } else if (!strcasecmp(field, "checkupdates")) { int32_t val = 0; sscanf(value, "%d", &val); env.check_for_updates = val > 0 ? true : false; } else if (!strcasecmp(field, "colourtheme") ) { sscanf(value, "%d", &env.colourTheme); if (env.colourTheme < CT_REGULAR) env.colourTheme = CT_REGULAR; if (env.colourTheme > CT_CRISPY) env.colourTheme = CT_CRISPY; } else if (!strcasecmp(field, "debrislevel") ) sscanf(value, "%d", &env.debris_level); else if (!strcasecmp(field, "detailedland")) { int32_t val = 0; sscanf(value, "%d", &val); env.detailedLandscape = val > 0 ? true : false; } else if (!strcasecmp(field, "detailedsky")) { int32_t val = 0; sscanf(value, "%d", &val); env.detailedSky = val > 0 ? true : false; } else if (!strcasecmp(field, "dither")) { int32_t val = 0; sscanf(value, "%d", &val); env.ditherGradients = val > 0 ? true : false; } else if (!strcasecmp(field, "dividemoney") ) { int32_t val = 0; sscanf(value, "%d", &val); env.divide_money = val > 0 ? true : false; } else if (!strcasecmp(field, "enablesound")) { int32_t val = 0; sscanf(value, "%d", &val); env.sound_enabled = val > 0 ? true : false; } else if (!strcasecmp(field, "frames") ) { int32_t new_fps = 0; sscanf(value, "%d", &new_fps); env.set_fps(new_fps); } else if (!strcasecmp(field, "fullscreen")) sscanf(value, "%d", &env.full_screen); else if (!strcasecmp(field, "interest")) sscanf(value, "%lf", &env.interest); else if (!strcasecmp(field, "language") ) { uint32_t stored_lang = 0; sscanf(value, "%u", &stored_lang); env.language = static_cast(stored_lang); } else if (!strcasecmp(field, "listenport")) sscanf(value, "%d", &env.network_port); else if (!strcasecmp(field, "maxfiretime") ) sscanf(value, "%d", &env.maxFireTime); else if (!strcasecmp(field, "networking")) { int32_t val = 0; sscanf(value, "%d", &val); env.network_enabled = val > 0 ? true : false; } else if (!strcasecmp(field, "numpermanentplayers")) sscanf(value, "%d", &env.numPermanentPlayers); else if (!strcasecmp(field, "OSMOUSE")) { int32_t val = 0; sscanf(value, "%d", &val); env.osMouse = val > 0 ? true : false; } else if (!strcasecmp(field, "playmusic")) { int32_t val = 0; sscanf(value, "%d", &val); env.play_music = val > 0 ? true : false; } else if (!strcasecmp(field, "rounds") ) sscanf(value, "%u", &env.rounds); else if (!strcasecmp(field, "screenwidth") && !env.temp_screenWidth) { sscanf(value, "%d", &env.screenWidth); env.halfWidth = env.screenWidth / 2; env.temp_screenWidth = env.screenWidth; } else if (!strcasecmp(field, "screenheight") && !env.temp_screenHeight) { sscanf(value, "%d", &env.screenHeight); env.halfHeight = env.screenHeight / 2; env.temp_screenHeight = env.screenHeight; } else if (!strcasecmp(field, "scorehitunit")) sscanf(value, "%d", &env.scoreHitUnit); else if (!strcasecmp(field, "scoreselfhit")) sscanf(value, "%d", &env.scoreSelfHit); else if (!strcasecmp(field, "scoreroundwinbonus")) sscanf(value, "%d", &env.scoreRoundWinBonus); else if (!strcasecmp(field, "scoreteamhit")) sscanf(value, "%d", &env.scoreTeamHit); else if (!strcasecmp(field, "scoreunitdestroybonus")) sscanf(value, "%d", &env.scoreUnitDestroyBonus); else if (!strcasecmp(field, "scoreunitselfdestroy")) sscanf(value, "%d", &env.scoreUnitSelfDestroy); else if (!strcasecmp(field, "sellpercent")) sscanf(value, "%lf", &env.sellpercent); else if (!strcasecmp(field, "sounddriver")) sscanf(value, "%d", &env.sound_driver); else if (!strcasecmp(field, "startmoney")) sscanf(value, "%d", &env.startmoney); else if (!strcasecmp(field, "turntype")) sscanf(value, "%d", &env.turntype); else if (!strcasecmp(field, "violentdeath") ) sscanf(value, "%d", &env.violent_death); } // end of read a line properly } // end of while not done } void GLOBALDATA::lockClass(eClasses class_) { objLocks[class_].lock(); } void GLOBALDATA::lockLand() { landLock.lock(); } void GLOBALDATA::make_bgupdate (int32_t x, int32_t y, int32_t w, int32_t h) { if (lastUpdatesCount >= env.max_screen_updates) { make_fullUpdate(); return; } assert( (w > 0) && (h > 0) ); if ( (w > 0) && (h > 0) ) addUpdate(x, y, w, h, lastUpdates, lastUpdatesCount); } void GLOBALDATA::make_fullUpdate() { // Replace Updates with a full screen update: combineUpdates = false; updateCount = 0; lastUpdatesCount = 0; // They are split into 2 x 2 updates: for (int32_t x = 0; x < 2; ++x) { make_update( env.halfWidth * x, 0, env.halfWidth, env.halfHeight); make_bgupdate(env.halfWidth * x, 0, env.halfWidth, env.halfHeight); make_update( env.halfWidth * x, env.halfHeight, env.halfWidth, env.halfHeight); make_bgupdate(env.halfWidth * x, env.halfHeight, env.halfWidth, env.halfHeight); } combineUpdates = true; } void GLOBALDATA::make_update (int32_t x, int32_t y, int32_t w, int32_t h) { if (updateCount >= env.max_screen_updates) { make_fullUpdate(); return; } // These asserts should catch screwed updates that make no sense assert( (h <= env.screenHeight) && (w <= env.screenWidth) ); assert( (w > 0) && (h > 0) ); if ( (h > 0) && (w > 0) ) addUpdate(x, y, w, h, updates, updateCount); } void GLOBALDATA::newRound() { if ( (currentround > 0) && (currentround-- < env.nextCampaignRound) ) env.nextCampaignRound -= env.campaign_rounds; tankindex = 0; naturals_activated = 0; combineUpdates = true; // clean all but texts and tanks int32_t class_ = 0; while (class_ < CLASS_COUNT) { if ( (CLASS_FLOATTEXT != class_) && (CLASS_TANK != class_) ) { while (tails[class_]) delete tails[class_]; } ++class_; } // Re-init land slide for (int32_t i = 0; i < env.screenWidth; ++i) { done[i] = 2; // Check at once dropTo[i] = env.screenHeight - 1; fp[i] = 0; } // Init order array for (int32_t i = 0; i < MAXPLAYERS; ++i) order[i] = nullptr; } /// @brief Tell global that the close button was pressed void GLOBALDATA::pressCloseButton() { cbpLock.lock(); close_button_pressed = true; cbpLock.unlock(); set_command(GLOBAL_COMMAND_QUIT); } void GLOBALDATA::removeObject (vobj_t *object) { if (nullptr == object) return; eClasses class_ = object->getClass(); /// --- 1: Is the list empty? --- if (nullptr == heads[class_]) return; objLocks[class_].lock(); /// --- 2: If the object is head, set it anew: if (object == heads[class_]) heads[class_] = object->next; /// --- 4: If the object is tail, set it anew: if (object == tails[class_]) tails[class_] = object->prev; /// --- 5: Take it out of the list: if (object->prev) object->prev->next = object->next; if (object->next) object->next->prev = object->prev; object->prev = nullptr; object->next = nullptr; objLocks[class_].unlock(); } void GLOBALDATA::removeTank(TANK* tank) { if (nullptr == tank) return; for (int32_t i = 0 ; i < MAXPLAYERS ; ++i) { if (tank == order[i]) order[i] = nullptr; } } void GLOBALDATA::replace_canvas () { for (int32_t i = 0; i < lastUpdatesCount; ++i) { if ((lastUpdates[i].y + lastUpdates[i].h) > MENUHEIGHT) { blit (env.sky, canvas, lastUpdates[i].x, lastUpdates[i].y - MENUHEIGHT, lastUpdates[i].x, lastUpdates[i].y, lastUpdates[i].w, lastUpdates[i].h); masked_blit (terrain, canvas, lastUpdates[i].x, lastUpdates[i].y, lastUpdates[i].x, lastUpdates[i].y, lastUpdates[i].w, lastUpdates[i].h); } // End of having an update below the top bar } int32_t l = 0; int32_t r = env.screenWidth - 1; int32_t t = MENUHEIGHT; int32_t b = env.screenHeight - 1; vline(canvas, l, t, b, env.wallColour); // Left edge vline(canvas, l + 1, t, b, env.wallColour); // Left edge vline(canvas, r, t, b, env.wallColour); // right edge vline(canvas, r - 1, t, b, env.wallColour); // right edge hline(canvas, l, b, r, env.wallColour); // bottom edge if (env.isBoxed) hline(canvas, l, t, r, env.wallColour); // top edge lastUpdatesCount = 0; } // Set a new command, lock guarded void GLOBALDATA::set_command(int32_t cmd) { cmdLock.lock(); command = cmd; cmdLock.unlock(); } void GLOBALDATA::set_curr_tank(TANK* tank_) { if (tank_ != currTank) { if (currTank) currTank->deactivate(); currTank = tank_; if (currTank) currTank->activate(); } } /** @brief go through the land and slide what is to be slid and is not locked * Slide land basic control is done using the 'done[]' array. * done[x] == 0 : Nothing to do. All values assumed to be correct. * done[x] == 1 : This column is currently in sliding. * done[x] == 2 : This column is about to be slid, but the base values aren't set. * done[x] == 3 : This column is about to be slid but locked. (Explosion not done) **/ void GLOBALDATA::slideLand() { // Opt out soon if no landslide is to be done if ( (SLIDE_NONE == env.landSlideType) || (SLIDE_TANK_ONLY == env.landSlideType) || ( (SLIDE_CARTOON == env.landSlideType) && (env.time_to_fall > 0) ) ) return; for (int32_t col = 1; col < (env.screenWidth - 1); ++col) { // Skip this column if it is done or locked if (!done[col] || (3 == done[col])) continue; // Set base settings if this hasn't happen, yet if (2 == done[col]) { surface[col].store(0, ATOMIC_WRITE); dropTo[col] = env.screenHeight - 1; done[col] = 1; // Calc the top and bottom of the column to slide // Find top-most non-PINK pixel int32_t row = MENUHEIGHT + (env.isBoxed ? 1 : 0); for ( ;(row < dropTo[col]) && (PINK == getpixel(terrain, col, row)); ++row) ; surface[col].store(row, ATOMIC_WRITE); // This is the top pixel with all gaps // Find bottom-most PINK pixel int32_t top_row = row; for (row = dropTo[col]; (row > top_row) && (PINK != getpixel(terrain, col, row)); --row) ; dropTo[col] = row; // Find bottom-most unsupported pixel for ( ;(row >= top_row) && (PINK == getpixel(terrain, col, row)); --row) ; // Check whether there is anything to do or not if ((row >= top_row) && (top_row < dropTo[col])) { fp[col] = row - top_row + 1; velocity[col] = 0; // Not yet done[col] = 1; // Can be processed } // Otherwise this column is done else { if ( !skippingComputerPlay && (velocity[col] > .5) && (fp[col] > 1) ) play_natural_sound(DIRT_FRAGMENT, col, 64, 1000 - (fp[col] * 800 / env.screenHeight)); done[col] = 0; // Nothing to do fp[col] = 0; } } // End of preparations // Do the slide if possible if (1 == done[col]) { // Only slide if no neighbours are locked bool can_slide = true; for (int32_t j = col - 1; can_slide && (j > 0) ; --j) { if (3 == done[j]) can_slide = false; else if (!done[j]) j = 0; // no further look needed. } for (int32_t j = col + 1; can_slide && (j < (env.screenWidth - 1)) ; ++j) { if (3 == done[j]) can_slide = false; else if (!done[j]) j = env.screenWidth; // no further look needed. } if (can_slide) { // Do instant first, because only GRAVITY remains // which is the case if cartoon wait time is over. if ( (SLIDE_INSTANT == env.landSlideType) || skippingComputerPlay) { int32_t surf = surface[col].load(ATOMIC_READ); make_bgupdate (col, surf, 1, dropTo[col] - surf + 1); make_update (col, surf, 1, dropTo[col] - surf + 1); blit (terrain, terrain, col, surf, col, dropTo[col] - fp[col] + 1, 1, fp[col]); vline(terrain, col, surf, dropTo[col] - fp[col], PINK); velocity[col] = fp[col]; // Or no sound would be played if done done[col] = 2; // Recheck } else { velocity[col] += env.gravity; dropIncr[col] += velocity[col]; int32_t dropAdd = ROUND(dropIncr[col]); int32_t max_top = MENUHEIGHT + (env.isBoxed ? 1 : 0); if (dropAdd > 0) { int32_t top_row = surface[col].load(ATOMIC_READ); assert( (top_row >= 0) && (top_row < terrain->h) && "ERROR: top_row out of range!"); // If the top pixel is not PINK, and the source is not // too high, increase dropAdd: int32_t over_top = top_row - dropAdd; while ( ( over_top <= max_top) && ( over_top > 0) && ( PINK != getpixel(terrain, col, over_top) ) ) { ++dropAdd; --over_top; } if (dropAdd > (dropTo[col] - (top_row + fp[col])) ) { dropAdd = static_cast(dropTo[col] - (top_row + fp[col]) + 1); dropIncr[col] = dropAdd; done[col] = 2; // Recheck over_top = top_row - dropAdd; } int32_t slide_height = fp[col] + dropAdd; assert( (over_top >= 0) && (over_top < terrain->h) && "ERROR: top_row - dropAdd out of range!"); assert( (slide_height > 0) && (slide_height <= terrain->h) && "ERROR: slide_height out of range!"); assert( ( (over_top + slide_height) <= terrain->h) && "ERROR: over_top + slide_height is out of range!"); assert( ( (top_row + slide_height) <= terrain->h) && "ERROR: over_top + slide_height is out of range!"); blit (terrain, terrain, col, over_top, col, top_row, 1, slide_height); make_bgupdate(col, over_top, 1, slide_height + dropAdd + 1); make_update (col, over_top, 1, slide_height + dropAdd + 1); // If the top row reaches to the ceiling, there might // not be a PINK pixel to blit. In that case, one has // to be painted "by hand", or the slide will produce // nice long columns. (Happens with dirt balls when // "fixed" under the menubar. if (over_top <= max_top) { putpixel(terrain, col, max_top, PINK); putpixel(terrain, col, max_top + 1, PINK); } surface[col].fetch_add(dropAdd); dropIncr[col] -= dropAdd; } } } } // End of actual slide } // End of looping columns } void GLOBALDATA::unlockClass(eClasses class_) { objLocks[class_].unlock(); } void GLOBALDATA::unlockLand() { landLock.unlock(); } /// @brief goes through the columns from @a left to @a right and unlocks what is locked. void GLOBALDATA::unlockLandSlide(int32_t left, int32_t right) { // Opt out soon if no landslide is to be done if ( (SLIDE_NONE == env.landSlideType) || (SLIDE_TANK_ONLY == env.landSlideType) ) return; int32_t minX = std::min(left, right); int32_t maxX = std::max(left, right); if (minX < 1) minX = 1; if (maxX > (env.screenWidth - 1) ) maxX = env.screenWidth - 1; for (int32_t col = minX; col <= maxX; ++col) { if ((done[col] > 2) || !done[col]) done[col] = 2; } } #ifndef USE_MUTEX_INSTEAD_OF_SPINLOCK /// === Spin Lock Implementations === /// @brief Default ctor CSpinLock::CSpinLock() : is_destroyed(ATOMIC_VAR_INIT(false)) { lock_flag.clear(); // Done this way, because VC++ can't do it normally. owner_id = std::thread::id(); } /// @brief destructor - mark as destroyed, lock and go CSpinLock::~CSpinLock() { std::thread::id this_id = std::this_thread::get_id(); bool need_lock = (owner_id != this_id); if (need_lock) lock(); is_destroyed.store(true); if (need_lock) unlock(); } /// @brief return true if this thread has an active lock bool CSpinLock::hasLock() { // This works, because unlock() sets the owner_id to -1. return (std::this_thread::get_id() == owner_id); } /** @brief Get a lock * Warning: No recursive locking possible! Only lock once! **/ void CSpinLock::lock() { std::thread::id this_id = std::this_thread::get_id(); assert( (owner_id != this_id) && "ERROR: Lock already owned!"); if (false == is_destroyed.load(ATOMIC_READ)) { while (lock_flag.test_and_set()) { std::this_thread::yield(); } owner_id = this_id; } } /// @brief unlock if this thread owns the lock. Otherwise do nothing. void CSpinLock::unlock() { std::thread::id this_id = std::this_thread::get_id(); assert( (owner_id == this_id) && "ERROR: Lock *NOT* owned!"); if (owner_id == this_id) { owner_id = std::thread::id(); lock_flag.clear(std::memory_order_release); } } #endif // USE_MUTEX_INSTEAD_OF_SPINLOCK atanks-6.6/src/client.h0000644000175000017500000000277312636021030013206 0ustar apoapo#ifndef CLIENT_HEADER_FILE__ #define CLIENT_HEADER_FILE__ #ifdef NETWORK #define CLIENT_VERSION 1 #define CLIENT_SCREEN 2 #define CLIENT_WIND 3 #define CLIENT_NUMPLAYERS 4 #define CLIENT_WHOAMI 5 #define CLIENT_WEAPONS 6 #define CLIENT_ITEMS 7 #define CLIENT_ROUNDS 8 #define CLIENT_NAME 9 #define CLIENT_WALL_TYPE 10 #define CLIENT_BOXED 11 #define CLIENT_TEAMS 12 #define CLIENT_SURFACE 13 #define CLIENT_TANK_POSITION 14 #define CLIENT_TANK_HEALTH 15 #define CLIENT_PLAYING 16 #define CLIENT_UP 1 #define CLIENT_DOWN 2 #define CLIENT_LEFT 3 #define CLIENT_RIGHT 4 #define CYCLE_BACK 10 #define CYCLE_FORWARD 20 #define CLIENT_ARGS 6 #endif #define CLIENT_ERROR_VERSION 1 #define CLIENT_ERROR_SCREENSIZE 2 #define CLIENT_ERROR_DISCONNECT 3 // This function takes some data from the server // and tries to figure out what to do with it. // The game stage is returned. int Parse_Client_Data(char *buffer); // Draws a background void Create_Sky(); // Sends fire command to the server // Message must be in format "FIRE item angle power" int Client_Fire(PLAYER *my_player, int my_socket); int Client_Power(PLAYER *my_player, int up_or_down); int Client_Angle(PLAYER *my_player, int left_or_right); int Client_Cycle_Weapon(PLAYER *my_player, int forward_or_back); // Take an error code and return a string with readable info. // The returning string should NOT be freed after use. // Note: This is nowhere used. ( REMOVEME ??? ) const char* Explain_Error(int32_t error_code); int Game_Client(int socket_number); #endif atanks-6.6/src/player_types.h0000644000175000017500000000742513006377360014463 0ustar apoapo#pragma once #ifndef ATANKS_SRC_PLAYER_TYPES_H_INCLUDED #define ATANKS_SRC_PLAYER_TYPES_H_INCLUDED /** @file player_types.h * @brief used enums plus operators for players and tanks **/ #include "main.h" enum ePlayerStages { PS_AI_IS_IDLE = 0, //!< AI has nothing to do and is free to get work PS_AI_INITIALIZE, //!< AI is initializing its data PS_SELECT_TARGET, //!< AI is selecting a target PS_SELECT_WEAPON, //!< AI is selecting a weapon or item PS_CALCULATE, //!< AI calculates its basic attack values PS_AIM, //!< AI aims the current selection to hit its target PS_MOVE_LEFT, //!< AI wants to move their tank to the left PS_MOVE_RIGHT, //!< AI wants to move their tank to the right PS_FIRE, //!< AI is ready to have the current weapon/item fired PS_CLEANUP, //!< AI is cleaning up PS_STAGE_COUNT }; ePlayerStages &operator+=(ePlayerStages &src, int32_t val); ePlayerStages &operator-=(ePlayerStages &src, int32_t val); ePlayerStages &operator++(ePlayerStages &src); // pre ePlayerStages operator++(ePlayerStages &src, int32_t); // post enum playerType { HUMAN_PLAYER = 0, USELESS_PLAYER, GUESSER_PLAYER, RANGEFINDER_PLAYER, TARGETTER_PLAYER, DEADLY_PLAYER, LAST_PLAYER_TYPE, PART_TIME_BOT, // normally a human, but acting as a deadly computer VERY_PART_TIME_BOT, // just fires one shot NETWORK_CLIENT, SDI_PREDICTOR // Used so missile mind shots from the SDI won't // trigger another SDI check, trigger another SDI // check, trigger another... }; playerType &operator+=(playerType &src, int32_t val); playerType &operator-=(playerType &src, int32_t val); playerType &operator++(playerType &src); // pre playerType operator++(playerType &src, int32_t); // post // player weapon preference type // ALWAYS_PREF - only choose weapon preferences once on player creation // PERPLAY_PREF - choose weapon preferences once per game enum playerPrefType { PERPLAY_PREF = 0, ALWAYS_PREF, PREF_COUNT }; playerPrefType &operator+=(playerPrefType &src, int32_t val); playerPrefType &operator-=(playerPrefType &src, int32_t val); playerPrefType &operator++(playerPrefType &src); // pre playerPrefType operator++(playerPrefType &src, int32_t); // post /** @enum ePlayerEdit * @brief return codes used by the sub menus when editing players **/ enum ePlayerEdit { PE_BACK = 1, //!< User opted out. No new player, no edit and no deletion. PE_CONFIRM_NEW = 0x010000, //!< Adding a new player was confirmed PE_CONFIRM_EDIT = 0x020000, //!< Changes to a player have been confirmed PE_CONFIRM_DEL = 0x040000 //!< Deleting a player was confirmed // Note: The values allow to use the last 16 bit for key code bit masks. }; /** @enum eTeamTypes * @brief determines the team a player belongs to **/ enum eTeamTypes { TEAM_SITH = 0, TEAM_NEUTRAL, TEAM_JEDI, TEAM_COUNT }; eTeamTypes &operator+=(eTeamTypes &src, int32_t val); eTeamTypes &operator-=(eTeamTypes &src, int32_t val); eTeamTypes &operator++(eTeamTypes &src); // pre eTeamTypes operator++(eTeamTypes &src, int32_t); // post /** @enum eTankOffsets * @brief Centrally store the bitmap offsets of the tank images **/ enum eTankOffsets { TO_TURRET = 0, TO_TANK = 7 }; /** @enum eTankTypes * @brief the tanks currently known, TT_TANK_COUNT is the number of tanks **/ enum eTankTypes { TT_NORMAL = 0, TT_CLASSIC, TT_BIGGREY, TT_T34, TT_HEAVY, TT_FUTURE, TT_UFO, TT_SPIDER, TT_BIGFOOT, TT_MINI, TT_TANK_COUNT }; eTankTypes &operator+=(eTankTypes &src, int32_t val); eTankTypes &operator-=(eTankTypes &src, int32_t val); eTankTypes &operator++(eTankTypes &src); // pre eTankTypes operator++(eTankTypes &src, int32_t); // post #endif // ATANKS_SRC_PLAYER_TYPES_H_INCLUDED atanks-6.6/src/perlin.cpp0000644000175000017500000001036014066454637013571 0ustar apoapo/* * atanks - obliterate each other with oversize weapons * Copyright (C) 2003 Thomas Hudson * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ perlin.cc Provides noise and interpolation functionality, as prototyped in main.h @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/ #include "main.h" /***************************************************************************** Noise, Noise2D A floating point pseudorandom number generator. Given a seed input value, returns a randomized double in the range [-1.0,+1.0] . Maintains no state. Noise2D requires and uses two integer parameters. *****************************************************************************/ double Noise (int x) { x = (x<<13) ^ x; return ( 1.0 - ((x * (x * x * 15731 + 789221) + 1376312589) & 0x7fffffff) / 1073741824.0); } double Noise2D (int x, int y) { int n; n = x + y * 57; n = (n << 13) ^ n; return ( 1.0 - ( (n * (n * n * 15731 + 789221) + 1376312589) & 0x7fffffff) / 1073741824.0); } /***************************************************************************** interpolate Performs a cosine interpolation between two points. Given two y values and a distance between them, return the interpolated y. x1 and x2 are the y values (sorry, it's the best I could explain it). i is the distance, expressed as a percentage of the wave length, ie 0<=i<1 . *****************************************************************************/ double interpolate (double x1, double x2, double i) { if (std::isnan(x1) || std::isnan(x2)) return 0.0; double ft = i * M_PI; double f = (1 - cos(ft)) * 0.5; double result = (x1 * (1 - f) + (x2 * f)); if (std::isnan(result)) return (x1 * (1-i) + (x2 * i)); /* fall back to linear interpolation */ return result; } /* * * For a really good explanation of perlin noise (and where most of this * perlin code was adapted from) see: * * http://freespace.virgin.net/hugo.elias/models/m_perlin.htm * * It must be good because I understood it <:-) * * - Tom Hudson * */ double perlin2DPoint (double amplitude, double scale, double xo, double yo, double lambda, int octaves) { double maxH = 0; double h = 0; for (int iteration = 1; iteration <= octaves; iteration++) { double zoom = scale / (iteration * iteration); double fractX = xo / zoom; double fractY = yo / zoom; double h1 = Noise2D ((int)fractX, (int)fractY); double h2 = Noise2D ((int)fractX + 1, (int)fractY); double h3 = Noise2D ((int)fractX, (int)fractY + 1); double h4 = Noise2D ((int)fractX + 1, (int)fractY + 1); double xi = fractX - (int)fractX; double yi = fractY - (int)fractY; double i1 = interpolate (h1, h2, xi); double i2 = interpolate (h3, h4, xi); double i3 = interpolate (i1, i2, yi); h += amplitude * i3; maxH += amplitude; amplitude *= lambda; } // Normalised return (h / maxH); } double perlin1DPoint (double amplitude, double scale, double xo, double lambda, int octaves) { double maxH = 0; double h = 0; for (int iteration = 1; iteration <= octaves; iteration++) { double zoom = scale / (iteration * iteration); double fractX = xo / zoom; double h1 = Noise ((int)fractX); double h2 = Noise ((int)fractX + 1); double i = fractX - (int)fractX; h += amplitude * interpolate (h1, h2, i); maxH += amplitude; amplitude *= lambda; } // Normalised return (h / maxH); } atanks-6.6/src/debris_pool.h0000644000175000017500000000415212636021030014222 0ustar apoapo#pragma once #ifndef ATANKS_SRC_DEBRIS_POOL_H_INCLUDED #define ATANKS_SRC_DEBRIS_POOL_H_INCLUDED /* * atanks - obliterate each other with oversize weapons * Copyright (C) 2003 Thomas Hudson * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "main.h" /** @struct sDebrisItem * @brief represent one entry in the debris pool **/ struct sDebrisItem { BITMAP* bmp = nullptr; int32_t idx = 0; //!< calculated index from diameter (aka radius/2-1) bool is_free = true; sDebrisItem* next = nullptr; sDebrisItem* prev = nullptr; explicit sDebrisItem(int32_t diameter_, sDebrisItem* next_); ~sDebrisItem(); }; /** @struct sDebrisPool * @brief A pool of bitmaps used to throw around dirt. * * Note: Currently the pool is limited to radius [1;5] the * debris can have. That is five series of bitmaps. **/ struct sDebrisPool { typedef sDebrisItem item_t; explicit sDebrisPool(int32_t limit_); ~sDebrisPool(); void free_item(item_t* item); item_t* get_item (int32_t radius); private: item_t* create_item(int32_t radius); int32_t avail[5]; //!< How many items are available for which radius. int32_t count_all = 0; //!< Sum of all created items. int32_t counts[5]; //!< How many items are used for which radius. int32_t limit = 0; //!< The limit of the pool, set on pool creation. item_t* heads[5]; item_t* tails[5]; }; #endif // ATANKS_SRC_DEBRIS_POOL_H_INCLUDED atanks-6.6/src/optionitembase.h0000644000175000017500000002047714066447701014773 0ustar apoapo#pragma once #ifndef ATANKS_SRC_OPTIONITEMBASE_H_INCLUDED #define ATANKS_SRC_OPTIONITEMBASE_H_INCLUDED /* * atanks - obliterate each other with oversize weapons * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "environment.h" #include "globaldata.h" #include "optiontypes.h" #include #include /** @file optionitembase.h * @brief declaration of the option item base class **/ extern uint32_t select_text_len; // needed for the item distribution // Forward BUTTON if it isn't known, yet: #ifndef BUTTON_HEADER_ // class BUTTON; #include "button.h" #endif // BUTTON_HEADER_ // Forward Menu if it isn't known, yet: #ifndef MENU_CLASS_DECLARES class Menu; #endif // MENU_CLASS_DECLARES /** @class OptionItemBase * @brief Common base class for all option items. * * This base class holds all common values of the option item represented and * is used to order option items as a doubly linked list. * * The class has several public methods to change the inner state, like moving * or resizing the display area, changing the title, switching the text content * array and so on. **/ class OptionItemBase { public: /* ------------------------------ * --- Public ctors and dtors --- * ------------------------------ */ explicit OptionItemBase( eEntryType type_, const char* title_, int32_t titleIdx_, const char** text_, int32_t color_, eTextClass class_, const char* format_, int32_t top_, int32_t left_, int32_t width_, int32_t height_, int32_t padding_, int32_t show_size_); virtual ~OptionItemBase(); /* ---------------------- * --- Public methods --- * ---------------------- */ void clear_display(bool update_full); void cursor_flip (); void getDimension (int32_t &tgt_width, int32_t &tgt_height); int32_t getKeyCode (); OptionItemBase* getNext (); OptionItemBase* getPrev (); uint32_t getTextClass (); uint32_t getTitleIdx (); eEntryType getType (); void insert_after (OptionItemBase* new_prev); void insert_before(OptionItemBase* new_next); bool is_click_in (int32_t x, int32_t y, int32_t &ret); bool is_selected (); void move (int32_t new_left, int32_t new_top, bool do_update); bool needs_text (); void remove (); void resize (int32_t new_width, int32_t new_height); void select (); void setPadding (int32_t new_padding); void setTitle (const char* new_title); void setTextClass (eTextClass new_class); void setTexts (const char** new_texts); void unselect (); // virtuals to be implemented by the deriving template virtual int32_t activate (int32_t val, int32_t x, int32_t y, int32_t k) =0; virtual bool canGoDown () =0; virtual bool canGoUp () =0; virtual void display (bool show_full) =0; virtual bool isExitButton() =0; protected: /* ------------------------- * --- Protected methods --- * ------------------------- */ int32_t activateMenu(Menu* target); void activateText(char* target, int32_t k); void activateToggle(bool* target); void displayButton(); void displayDeco(int32_t show_color = BLACK); void displayMenu(Menu* target); void displayText(char* target); void displayText(const char* target); void displayText(uint32_t* target); void displayToggle(bool* target); /// @brief As OT_VALUE might be anything, it is templated on method scale. template void displayValue(tgt_T* target) { if (format) { char txt_buf[256] = { 0x0 }; snprintf(txt_buf, 255, format, *target); textLen = static_cast(strlen(txt_buf)); this->displayText(txt_buf); } else if (texts && texts[entryNum]) { textLen = static_cast(strlen(texts[entryNum])); this->displayText(texts[entryNum]); } } // Note: The following templates only define a path for the dispatcher // when checking for which method to call. If a calling path, and thus any // option configuration, is invalid, they will print an error message and // terminate. These templates are only instantiated by the compiler for // syntax and call path checking, and thrown away being unused later. // This looks like a waste, but makes the dispatching a lot less complex // and more secure. #define EMERGENCY_OUT fprintf(stderr, \ "%s:%d [%s] : Illegal target type, template called!\n", \ __FILE__, __LINE__, __FUNCTION__); \ std::terminate(); template int32_t activateMenu(T*) { EMERGENCY_OUT } template void activateText(T*, int) { EMERGENCY_OUT } template void activateToggle(T*) { EMERGENCY_OUT } template void displayMenu(T*) { EMERGENCY_OUT } template void displayText(T*) { EMERGENCY_OUT } template void displayToggle(T*) { EMERGENCY_OUT } #undef EMERGENCY_OUT /* ------------------------- * --- Protected members --- * ------------------------- */ BUTTON* button = nullptr; //!< The button used by ET_BUTTON. int32_t color = BLACK; //!< The color to use for the text, mainly useful for OT_TOGGLE. bool cursor_on = false; //!< selected ET_TEXT elements feature a cursor. int32_t curs_clk = 0; //!< Only react on every CURSOR_FLIP_TIME call. bool decorated = false; //!< Set to true by displayDeco() and false by clear_display(true) bool drawn = false; //!< Set to true by display methods, and false by clear_display(). int32_t entryNum = 0; //!< Store the currently displayed text index with OT_VALUE options. const char* format = nullptr; //!< Format string to use with OT_VALUE int32_t height = 0; //!< Height of the display area. int32_t keyCode = 0; //!< Key Code returned when clicking an ET_BUTTON. int32_t left = 0; //!< Left x position of the display area. OptionItemBase* next = nullptr; //!< Next option entry in a doubly linked list. int32_t padding = 2; //!< Padding of the title and possible buttons to the display area. OptionItemBase* prev = nullptr; //!< Previous option entry in a doubly linked list. bool read_only = true; //!< Whether ET_TEXT reacts on clicks and keys or not. bool selected = false; //!< Whether this entry is selected or not. bool show_menu = true; //!< If set to true, the sub menu indicator is shown. int32_t show_size = 0; //!< Size of the color box ET_COLOR displays the current color in int32_t textLen = 0; //!< Store the current size of OT_TEXT content. eTextClass textClass = TC_NONE; //!< Noted for language switch. bool textOnly = false; //!< If set to true, displayText() draws no box. const char** texts = nullptr; //!< Text array to use for OT_VALUE const char* title = nullptr; //!< Title to display, mandatory int32_t titleIdx = 0; //!< Noted for language switch. -1 means the title is fixed. int32_t titleLen = 0; //!< Length of the title in pixels int32_t top = 0; //!< Top y position of the display area. eEntryType type = ET_NONE; //!< Type of the option, mandatory int32_t width = 0; //!< Width of the display area. }; #endif // ATANKS_SRC_OPTIONITEMBASE_H_INCLUDED atanks-6.6/src/player.h0000644000175000017500000002170313006377360013232 0ustar apoapo#ifndef PLAYER_HEADER_ #define PLAYER_HEADER_ /* * atanks - obliterate each other with oversize weapons * Copyright (C) 2003 Thomas Hudson * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "player_types.h" #include "globaltypes.h" #define MAX_WEAP_PROBABILITY 10000 #define BURIED_LEVEL 135 #define BURIED_LEVEL_HALF 68 #define NET_COMMAND_SIZE 64 // if we do not get a command after this amount of seconds, // turn control over to the computer for a moment #define NET_DELAY 1000 #define NET_DELAY_SHORT 500 class TANK; class PLAYER; class AICore; /// @brief minimal struct to allow AI players to keep track of friend and foe. struct sOpponent { int32_t damage_from = 0; //!< How much damage the opponent did to the player. int32_t damage_last = 0; //!< How much damage the opponent did in this turn. int32_t damage_to = 0; //!< How much damage the player did to the opponent. double fear = 0.; //!< How likely evasive manoeuvres are started. double fear_shock = 0.; //!< The highest shock value determines the shocker. int32_t index = -1; //!< Needed for saving/loading to work. int32_t killed_me = 0; //!< How many times this opponent has killed this player. int32_t killed_them = 0; //!< How many times this opponent was killed by this player. PLAYER* opponent = nullptr; //!< The PLAYER memorized here. int32_t revenge_dmg = 0; //!< Summed up damage to determine when it is time for revenge. }; /** @class PLAYER * @brief All data concerning human and A players **/ class PLAYER { public: /* ----------------------------------- * --- Constructors and destructor --- * ----------------------------------- */ explicit PLAYER (); ~PLAYER (); // no copying, no assignments PLAYER(const PLAYER&) =delete; PLAYER &operator=(const PLAYER&) =delete; /* ---------------------- * --- Public methods --- * ---------------------- */ void checkOppMem (); int32_t chooseItemToBuy (int32_t max_boost, int32_t &last_idx); eControl controlTank (AICore* aicore, bool allow_fire); void drawIndicator (int32_t x, int32_t y, int32_t h); #ifdef NETWORK eControl executeNetCmd (bool my_turn, AICore* aicore); #endif // NETWORK void exitShop (); void generatePreferences (); int32_t getBoostValue (); int32_t getItemPref (int32_t idx); int32_t getMoneyToSave (bool first_look); const char* getName () const; bool getNetCmd (); sOpponent* getOppMem (int32_t idx); const char* getTeamName () const; int32_t getWeapPref (int32_t idx); void initialise (bool loaded_game); bool load_from_file (FILE* file); void load_game_data (FILE* file, int32_t file_version); void newGame (); void newRound (); void noteDamageFrom (PLAYER* opponent, int32_t damage, bool destroyed); void noteDamageTo (PLAYER* opponent, int32_t damage, bool destroyed); void reclaimShield (); // restore unused shield bool reduceClock (); void save_game_data (FILE* file); void save_to_file (FILE* file); const char* selectGloatPhrase (); const char* selectPanicPhrase (PLAYER* shocker); const char* selectKamikazePhrase(); const char* selectRetaliationPhrase(); const char* selectRevengePhrase (); const char* selectSuicidePhrase (); void setLastOpponent (sOpponent* last_opp); void setName (const char* name_); void updatePreferences (int32_t max_boost, int32_t max_score); /* ---------------------- * --- Public members --- * ---------------------- */ int32_t color = BLACK; double damageMultiplier = 1.; double defensive = 0.; // [-1.0;1.0], offensive - defensive double errorMultiplier = 0.; bool changed_weapon = false; double focusRate = 0.; bool gloating = false; int32_t index = -1; // To note where in allPlayers this player is saved int32_t killed = 0; int32_t kills = 0; int32_t last_shield_used = 0; double painSensitivity = .5; // How sensitive to damage uint32_t played = 0; playerPrefType preftype = PERPLAY_PREF; playerType previous_type = HUMAN_PLAYER; int32_t money = 15000; int32_t ni[ITEMS]; int32_t nm[WEAPONS]; PLAYER* revenge = nullptr; int32_t score = 0; abool_t sdi_has_fired; // Only one shot per frame int32_t sdiShots = 0; bool selected = false; double selfPreservation = .5; // Lengths gone to to avoid self-harm bool skip_me = false; TANK* tank = nullptr; int32_t tankbitmap = TT_NORMAL; eTeamTypes team = TEAM_NEUTRAL; int32_t time_left_to_fire = 0; playerType type = HUMAN_PLAYER; playerType type_saved = HUMAN_PLAYER; double vengeanceThreshold = .5; // Damage required to warrant revenge int32_t vengeful = 50; // 0-100 chance of retaliation uint32_t won = 0; #ifdef NETWORK int32_t server_socket = 0; char net_command[NET_COMMAND_SIZE] = { 0 }; #endif // NETWORK private: typedef ePlayerStages plStage_t; typedef sOpponent opp_t; /* ----------------------- * --- Private methods --- * ----------------------- */ void boostPrefences (bool boostArmour, bool boostAmps, bool boostWeapons); bool buy_item (int32_t itemindex, int32_t max_boost); eControl computerControls (AICore *aicore, bool allow_fire); int32_t computerSelectPreBuyItem (int32_t max_boost); int32_t generateDesiredList (); int32_t getAmpValue (); int32_t getArmourValue (); eControl humanControls (AICore* aicore); /* ----------------------- * --- Private members --- * ----------------------- */ int32_t boostBought = -1; int32_t currPref[THINGS]; // current preferences, calculated for each round int32_t desired[THINGS]; // Shopping wish list int32_t saveMoneyFor[THINGS]; // List of items the AI wants to buy opp_t* last_opponent = nullptr; char name[NAME_LEN + 1]; bool needAmp = false; bool needArmour = false; bool needDamage = false; int32_t oppCount = 0; opp_t* opponents = nullptr; plStage_t plStage = PS_SELECT_WEAPON; int32_t shieldBought = -1; int32_t weapPref[THINGS]; // Static preferences, generated once }; // For headers including player.h to know that the class is there: #define HAS_PLAYER 1 // Note: Due to circular dependencies, some headers might need to forward // the player class. /** @struct PLAYER_mini * @brief Minimum dataset of editable values. * * This minimal struct is used for the player editing menu. * - When adding a new player it allows to cancel the addition without * atanks to first call new and then delete. Further it keeps the last * settings so adding many new players with the same settings but different * names becomes very easy. **/ struct PLAYER_mini { int32_t color = GREEN; int32_t index = -1; char name[NAME_LEN]; uint32_t played = 0; PLAYER* player = nullptr; playerPrefType preftype = ALWAYS_PREF; int32_t tankbitmap = TT_NORMAL; eTeamTypes team = TEAM_NEUTRAL; playerType type = HUMAN_PLAYER; uint32_t won = 0; // a ctor, needed by VisualC++ for the name. explicit PLAYER_mini(); // "Backup a player" void copy_from(PLAYER* source); // Write back the values void write_back(PLAYER* target = nullptr); }; #define HAS_PLAYER_MINI 1 // Helper functions to be used as action function with ET_BUTTON entries int32_t edit_player(PLAYER** target, int32_t); int32_t new_player (PLAYER** target, int32_t); #endif atanks-6.6/src/virtobj.h0000644000175000017500000001023312636021030013375 0ustar apoapo#ifndef VIRTOBJ_DEFINE #define VIRTOBJ_DEFINE /* * atanks - obliterate each other with oversize weapons * Copyright (C) 2003 Thomas Hudson * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef _PURE #define _PURE =0 #endif // _PURE #include "main.h" #include "text.h" /// @enum ePhysType /// @brief Determine which kind of physics should be used enum ePhysType { PT_NORMAL = 0, //!< No special processing, just a normal curve shot and impact. PT_FUNKY_FLOAT, //!< Funky bomb-lets ignore gravitation. PT_DIGGING, //!< Burrowers and the like dig through dirt in a reverse curve. PT_ROLLING, //!< Roll over the surface. PT_DIRTBOUNCE, //!< Dirt debris bounces off of dirt and all walls. PT_SMOKE, //!< Smoke reacts on nothing but repulsor shields. PT_NONE, //!< Special values for age caused detonation triggering. }; #ifndef HAS_PLAYER class PLAYER; #endif // HAS_PLAYER class VIRTUAL_OBJECT { public: /* ----------------------------------- * --- Constructors and destructor --- * ----------------------------------- */ explicit VIRTUAL_OBJECT(); virtual ~VIRTUAL_OBJECT(); /* ---------------------- * --- Public methods --- * ---------------------- */ /* --- non-inline methods --- */ void addUpdateArea (int32_t left, int32_t top, int32_t width, int32_t height); virtual void applyPhysics (); virtual void draw (); virtual void initialise (); void setUpdateArea (int32_t left, int32_t top, int32_t width, int32_t height); void update (); /* --- inline methods --- */ void requireUpdate () { needsUpdate.store(true, ATOMIC_WRITE); } /* --- pure virtual (abstract) methods --- */ virtual eClasses getClass () _PURE; /* ------------------------------ * --- templated list getters --- * ------------------------------ */ /// @brief If not nullptr, set @a prev_ to the predecessor of this. template void getPrev(obj_T** prev_) { obj_T* prev_obj = static_cast(prev); if (prev_) *prev_ = prev_obj; } /// @brief If not nullptr, set @a next_ to the successor of this. template void getNext(obj_T** next_) { obj_T* next_obj = static_cast(next); if (next_) *next_ = next_obj; } /* ---------------------- * --- Public members --- * ---------------------- */ bool destroy = false; VIRTUAL_OBJECT* next = nullptr; PLAYER* player = nullptr; VIRTUAL_OBJECT* prev = nullptr; double x = 0.; double y = 0.; protected: /* ------------------------- * --- Protected methods --- * ------------------------- */ BITMAP* getBitmap() const { return bitmap; } bool hasBitmap() const { return (bitmap != nullptr); } void setBitmap(BITMAP* bitmap_); /* ------------------------- * --- Protected members --- * ------------------------- */ int32_t age = 0; alignType align = LEFT; int32_t angle = 0; BOX dim_cur; BOX dim_old; int32_t height = 0; int32_t maxAge = -1; ePhysType physType = PT_NORMAL; // Special physics processing? int32_t width = 0; double xv = 0.; double yv = 0.; private: /* ----------------------- * --- Private members --- * ----------------------- */ BITMAP* bitmap = nullptr; abool_t needsUpdate; }; /// === Shorten the usage of virtual objects === typedef VIRTUAL_OBJECT vobj_t; #endif // VIRTOBJ_DEFINE atanks-6.6/src/virtobj.cpp0000644000175000017500000001203112636021030013726 0ustar apoapo/* * atanks - obliterate each other with oversize weapons * Copyright (C) 2003 Thomas Hudson * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include #include "virtobj.h" #include "environment.h" VIRTUAL_OBJECT::VIRTUAL_OBJECT() : needsUpdate(ATOMIC_VAR_INIT(false)) { /* nothing to do */ } VIRTUAL_OBJECT::~VIRTUAL_OBJECT () { bitmap = nullptr; } void VIRTUAL_OBJECT::addUpdateArea (int32_t left, int32_t top, int32_t width, int32_t height) { if (left < dim_cur.x) dim_cur.x = left; if (top < dim_cur.y) dim_cur.y = top; /* This is prone to the following error: If left is greater than dim_cur.x but the width is smaller than dim_cur.w, (left + width) can nevertheless end up right of (dim_cur.x + dim_cur.w). Setting dim_cur.w to 'width' in that case makes the update area smaller not larger. The same applies to the height. - Sven if ((left + width) > (dim_cur.x + dim_cur.w)) dim_cur.w = width; if ((top + height) > (dim_cur.y + dim_cur.h)) dim_cur.h = height; */ int32_t new_r = left + width; int32_t new_b = top + height; int32_t old_r = dim_cur.x + dim_cur.w; int32_t old_b = dim_cur.y + dim_cur.h; if (new_r > old_r) dim_cur.w = new_r - dim_cur.x + 1; if (new_b > old_b) dim_cur.h = new_b - dim_cur.y + 1; } void VIRTUAL_OBJECT::applyPhysics () { x += xv; y += yv; } void VIRTUAL_OBJECT::draw () { assert(bitmap && "ERROR: VIRTUAL_OBJECT::draw() called without bitmap!"); if (!destroy && bitmap) { rotate_sprite (global.canvas, bitmap, x - (width / 2), y - (height / 2), itofix (angle)); // The update area depends on the rotation state (aka angle) if (angle) { int32_t length = std::max(width, height) + (std::min(width, height) / 2); setUpdateArea(x - (length/2), y - (length/2), length, length); } else setUpdateArea(x - (width / 2) - 1, y - (height / 2) - 1, width + 2, height + 2); requireUpdate (); } } void VIRTUAL_OBJECT::initialise () { age = 0; maxAge = -1; x = 0; y = 0; xv = 0; yv = 0; destroy = false; dim_cur = dim_old = BOX(); } /// @brief Set a new bitmap and store width and height for easy drawing. void VIRTUAL_OBJECT::setBitmap(BITMAP* bitmap_) { if (bitmap_ != bitmap) { bitmap = bitmap_; if (bitmap) { height = bitmap->h; width = bitmap->w; } else { height = 0; width = 0; } } } void VIRTUAL_OBJECT::setUpdateArea (int32_t left, int32_t top, int32_t width, int32_t height) { dim_cur.x = left; dim_cur.y = top; dim_cur.w = width; dim_cur.h = height; } /** @brief update * * This method triggers an update of the canvas (aka drawing area) with the * dimensions and position of this object. */ void VIRTUAL_OBJECT::update() { if (!needsUpdate.load(ATOMIC_READ)) return; // Add update area for the current dimension if (dim_cur.w > 0) { int32_t left = LEFT == align ? dim_cur.x : RIGHT == align ? dim_cur.x - dim_cur.w : dim_cur.x - (dim_cur.w / 2); int32_t top = LEFT == align ? dim_cur.y : RIGHT == align ? dim_cur.y - dim_cur.h : dim_cur.y - (dim_cur.h / 2); int32_t right = std::min(env.screenWidth, left + dim_cur.w + 2); int32_t bottom = std::min(env.screenHeight, top + dim_cur.h + 2); if ( (right > left) && (bottom > top) ) global.make_update(left, top, right - left, bottom - top); } // End of updating current area // If the dimensions changed, the old area needs an update, too if ( (dim_old.w > 0) && (dim_old != dim_cur) ) { int32_t left = LEFT == align ? dim_old.x : RIGHT == align ? dim_old.x - dim_old.w : dim_old.x - (dim_old.w / 2); int32_t top = LEFT == align ? dim_old.y : RIGHT == align ? dim_old.y - dim_old.h : dim_old.y - (dim_old.h / 2); int32_t right = std::min(env.screenWidth, left + dim_old.w + 2); int32_t bottom = std::min(env.screenHeight, top + dim_old.h + 2); if ( (right > left) && (bottom > top) ) global.make_update(left, top, right - left, bottom - top); } // End of updating old area dim_old = dim_cur; needsUpdate.store(false, ATOMIC_WRITE); } atanks-6.6/src/player.cpp0000644000175000017500000026300113006377360013564 0ustar apoapo/* * atanks - obliterate each other with oversize weapons * Copyright (C) 2003 Thomas Hudson * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "environment.h" #include "globaldata.h" #include "player.h" #include "tank.h" #include "menu.h" #include "files.h" #include "floattext.h" #include "network.h" #include "missile.h" #include "aicore.h" #include /// Static helper values to help with keyboard controls: static bool ctrlUsedUp = false; static bool has_ctrl_pressed = false; static bool has_shift_pressed = false; /// @brief default ctor PLAYER::PLAYER() : sdi_has_fired(ATOMIC_VAR_INIT(false)) { // Do a memset initialization thanks to VC++ memset(ni, 0, sizeof(int32_t) * ITEMS); memset(nm, 0, sizeof(int32_t) * WEAPONS); memset(currPref, 0, sizeof(int32_t) * THINGS); memset(desired, 0, sizeof(int32_t) * THINGS); memset(saveMoneyFor, 0, sizeof(int32_t) * THINGS); memset(name, 0, sizeof(char) * NAME_LEN); memset(weapPref, 0, sizeof(int32_t) * THINGS); strncpy(name, "New Player", NAME_LEN); // 25% of time set to perplay weapon preferences preftype = (rand () % 4) ? ALWAYS_PREF : PERPLAY_PREF; /* Generate a set of preferences now. The reason is: * If the player is a PERPLAY_PREF type player, no preferences * are loaded from the atanks configuration file. But if the user * changes the type to ALWAYS_PREF and starts a new game, no new * preferences are generated. So then these are used, which is * safe enough. */ generatePreferences(); switch (rand() % 4) { case 0: // === red type === color = makecol(200 + (rand() % 56), rand() % 25, rand() % 25); break; case 1: // === green type === color = makecol( rand() % 25, 200 + (rand() % 56), rand() % 25); break; case 2: // === blue type === color = makecol( rand() % 25, rand() % 25, 200 + (rand() % 56) ); break; case 3: default: // === violet type === color = makecol( 200 + (rand() % 56), rand() % 25, 200 + (rand() % 56)); break; } } /// @brief default dtor PLAYER::~PLAYER () { if (tank) { delete(tank); tank = nullptr; } if (opponents) { delete [] opponents; opponents = nullptr; } } /// @brief update currPrefs array with considering needs and stock amounts void PLAYER::boostPrefences(bool boostArmour, bool boostAmps, bool boostWeapons) { int32_t ai_level = static_cast(type); for (int32_t i = 1; i < THINGS; ++i) { double pref = currPref[i]; // boost preferences if wanted: if (boostArmour && ( (WEAPONS + ITEM_ARMOUR ) <= i) && ( (WEAPONS + ITEM_PLASTEEL) >= i) ) pref *= 1. + ((1. + static_cast(RAND_AI_0P)) / 10.); if (boostAmps && ( (WEAPONS + ITEM_INTENSITY_AMP) <= i) && ( (WEAPONS + ITEM_VIOLENT_FORCE) >= i) ) pref *= 1. + ((1. + static_cast(RAND_AI_0P)) / 10.); if (boostWeapons && i && (i < WEAPONS)) pref *= 1. + ((1. + static_cast(RAND_AI_1P)) / 10.); // Lower weapon preferences if there are enough in stock already if (i && (i < WEAPONS)) { double cur_amount = nm[i] / weapon[i].getDelayDiv(); double one_amount = weapon[i].amt / weapon[i].getDelayDiv(); double max_amount = one_amount * ai_level; double div_amount = cur_amount - max_amount; // - cur_amount is the total amount of single shots. getDelayDiv() // is used, because it simply returns the number of shots fired by // delayed weapons, while it returns always 1 for the other weapons. // - one_amount - The number of nm[i] that is gotten by buying one // unit. // - max_amount - below this no reduction or sale is considered. // - div_amount - if positive, the bot has enough in stock. // - if larger than one_amount, selling the excess // amount is considered. if (div_amount >= 1.) { pref /= div_amount; DEBUG_LOG_FIN(name, "Lower %s pref (%d in stock) %d -> %d", weapon[i].getName(), ROUND(cur_amount), currPref[i], ROUND(pref)) if (env.sellpercent > 0.01) { // saleable are the units considered to be sold: int32_t saleable = (div_amount - RAND_AI_1P) / one_amount; if (saleable > 0) { money += ROUNDu(weapon[i].cost * env.sellpercent) * saleable; nm[i] -= weapon[i].amt * saleable; DEBUG_LOG_FIN(name, "Sold %d %s for $%s", saleable, weapon[i].getName(), Add_Comma(ROUNDu( weapon[i].cost * env.sellpercent) * saleable)) } } // end of selling allowed } // end of having enough in stock } // end of watching weapons // Lower item preferences if there are enough in stock already if (i >= WEAPONS) { int32_t j = i - WEAPONS; if ( (j < ITEM_ARMOUR) || (j > ITEM_VIOLENT_FORCE) ) { double cur_amount = ni[j]; double one_amount = item[j].amt; double max_amount = one_amount * ai_level; // Note: The values are the same as above. // Repair kit and SDI are limited differently if (ITEM_REPAIRKIT == j) max_amount *= painSensitivity + defensive + 2.; else if (ITEM_SDI == j) max_amount *= defensive + 2. + (ai_level / 2.); double div_amount = cur_amount - max_amount; if (div_amount >= 1.) { pref /= div_amount; DEBUG_LOG_FIN(name, "Lower %s pref (%d in stock) %d -> %d", item[j].getName(), ROUND(cur_amount), currPref[i], ROUND(pref)) if ( (env.sellpercent > 0.01) && (j < ITEM_VENGEANCE) ) { // Note: Armour and Amps are not considered here! int32_t saleable = (div_amount - RAND_AI_1P) / one_amount; if (saleable > 0) { money += ROUNDu(item[j].cost * env.sellpercent) * saleable; ni[j] -= item[j].amt * saleable; DEBUG_LOG_FIN(name, "Sold %d %s for $%s", saleable, item[j].getName(), Add_Comma(ROUNDu( item[j].cost * env.sellpercent) * saleable)) } } // end of selling allowed } // End of having enough in stock } // End of item type limitation } // End of being in items range // Write back preferences: currPref[i] = ROUND(pref); } } /** @brief Buy item with index @a itemindex * An item has been selected, this function merely buys it. It * first does checks to make sure the item can be bought. * The function returns true if we successfully bought the item or * false if we could not get it for some reason. **/ bool PLAYER::buy_item(int32_t itemindex, int32_t max_boost) { bool bought = true; if (itemindex < WEAPONS) { // The three things to test: // 1: Enough money? // 2: Space free in stock? // 3: Tech level not too high? if ( (money >= weapon[itemindex].cost) && (nm[itemindex] < MAX_ITEMS_IN_STOCK) && (weapon[itemindex].techLevel <= env.weapontechLevel) ) { money -= weapon[itemindex].cost; nm[itemindex] += weapon[itemindex].amt; // don't allow more than MAX_ITEMS_IN_STOCK if (nm[itemindex] > MAX_ITEMS_IN_STOCK) nm[itemindex] = MAX_ITEMS_IN_STOCK; } else bought = false; } // end of buying a weapon else { // Items need an additional check: // The purchase of boost items is limited by // both AI type and overall boost level. // The same applies to shields int32_t ai_level = static_cast(type); int32_t itemNum = itemindex - WEAPONS; bool isBoost = ( (itemNum >= ITEM_ARMOUR) && (itemNum <= ITEM_VIOLENT_FORCE) ); bool isShield = ( (itemNum >= ITEM_LGT_SHIELD) && (itemNum <= ITEM_HVY_REPULSOR_SHIELD) ); if ( (money > item[itemNum].cost) && (ni[itemNum] < MAX_ITEMS_IN_STOCK) && env.isItemAvailable(itemNum) && ( (HUMAN_PLAYER == type ) || !(isBoost || isShield) || ( isBoost && (ai_level > boostBought) && (getBoostValue() < max_boost) ) || ( isShield && (ai_level > shieldBought) ) ) ) { money -= item[itemNum].cost; ni[itemNum] += item[itemNum].amt; // Count it if it was a boost item if (isBoost) boostBought++; // Okay, take it! // Count it if it was a shield if (isShield) shieldBought++; // Okay, same procedure // don't allow more than MAX_ITEMS_IN_STOCK if (ni[itemNum] > MAX_ITEMS_IN_STOCK) ni[itemNum] = MAX_ITEMS_IN_STOCK; } else bought = false; } return bought; } /// @brief call this after loading a game to ensure backwards compatibility void PLAYER::checkOppMem() { if (!oppCount) newGame(); } /// @brief Have the AI choosing something to buy. int32_t PLAYER::chooseItemToBuy (int32_t max_boost, int32_t &last_idx) { // Do not do this if there is no money: if (money < 1000) return -1; // Possibly pre-select an item by checking the current situation: int32_t currItem = computerSelectPreBuyItem (max_boost); // Be done already if the pre-selection provided a "must have" if ( (currItem > 0) && buy_item(currItem, max_boost) ) return currItem; // Loop through the wish list and try to buy something. // The more of the item is in the inventory, the less likely // it is that the AI tries to buy the item. If the inventory // is empty, the chance is 50% for a useless bot and 88% for // a deadly bot. // There do not need to be any further modifications, the // preferences are already tweaked by defensiveness and // AI level. int32_t ai_level = static_cast(type); for ( ; last_idx < THINGS ; ++last_idx) { currItem = desired[last_idx]; // Skip small missile, restart instead if (!currItem) { last_idx = 0; // Note: Small missiles are sorted to the end of the list. continue; } // Skip unaffordable items if ( ( (currItem < WEAPONS) && (weapon[currItem].cost > money) ) || ( (currItem >= WEAPONS) && (item[currItem - WEAPONS].cost > money) ) ) continue; // Now take the chance int32_t amount = currItem < WEAPONS ? weapon[currItem].amt : item[currItem - WEAPONS].amt; int32_t maxAmt = amount * ai_level; double currAmt = currItem < WEAPONS ? nm[currItem] : ni[currItem - WEAPONS]; double newAmt = currAmt + amount; double amtMod = currAmt > 0. ? newAmt / currAmt : 2.; // Note: The more items there are already, the more amtMod // will go down near 1.0, from a maximum of 2.0. int32_t chance = ROUNDu(amtMod * (static_cast(ai_level) - .5)); /* Results: * Useless : 1 * (1 - 0.5) = 1 * (0.5) = 0.5 => 50% (rounded to 1) * Useless : 2 * (1 - 0.5) = 2 * (0.5) = 1 => 50% * Deadly : 1 * (5 - 0.5) = 1 * (4.5) = 4.5 => 80% (rounded to 5) * Deadly : 2 * (5 - 0.5) = 2 * (4.5) = 9 => 87.5% */ // Bots have far higher limits for repair units and SDIs: if ( (ITEM_SDI == (currItem - WEAPONS)) || (ITEM_REPAIRKIT == (currItem - WEAPONS)) ) maxAmt *= 10; /* The bot tries to buy the item if: * a) It does not have any and the chance is taken, or * b) It has equal or more than the weapons amount times its level and * a negative (low) chance against its ai_level is taken. */ if ( ( ( (currAmt < maxAmt) && (rand() % (chance + 1)) ) /* Scenario a) */ || ( (currAmt >= maxAmt) && RAND_AI_0N ) ) /* Scenario b) */ && buy_item(currItem, max_boost) ) { // Advance index to not buy the same item over and over again if (RAND_AI_1P) ++last_idx; return currItem; } } return -1; } eControl PLAYER::computerControls (AICore* aicore, bool allow_fire) { // Don't act at all when in scoreboard or endgame stage if (STAGE_SCOREBOARD <= global.stage) return CONTROL_NONE; int32_t ai_weap = tank ? tank->cw : SML_MIS; int32_t ai_angle = 0; int32_t ai_power = 0; ePlayerStages ai_stage = PS_STAGE_COUNT; bool is_working = aicore->status(ai_weap, ai_angle, ai_power, ai_stage); // If the AI is working with a different player or the AI is dead, return if ( !aicore->can_work() || (is_working && (this != aicore->active_player())) ) return CONTROL_NONE; // Do not try to start the AI if this players tank is // about to be destroyed or while it is moving. if (!tank || tank->destroy || tank->isFlying() || (tank->l < 1) ) return CONTROL_NONE; tank->requireUpdate (); /* Start the AI for this player if: * 1) The AI is idle and * 2) the game is in aiming stage and * 3) this player still has a tank that (checked above) * 4) is not about to get destroyed and (checked above) * 5) stands still on the ground. (checked above) */ if ( (PS_AI_IS_IDLE == ai_stage) && (STAGE_AIM == global.stage) ) { if (aicore->start(this)) return CONTROL_NONE; else { cerr << "FATAL: Can not start idle AI with this player!" << endl; global.set_command(GLOBAL_COMMAND_MENU); return CONTROL_QUIT; } } // Return at once if the AI is still initializing or cleaning up else if ( (PS_AI_INITIALIZE == ai_stage) || (PS_CLEANUP == ai_stage) ) return CONTROL_NONE; // If the AI is not working (yet), return if (!is_working) return CONTROL_NONE; // Now, being here, the ai is working on this very player. // Copy stage now, as it is this players stage as well plStage = ai_stage; // Sanitize AI values: // Note: None of these should ever kick in! assert( (ai_angle >= 90) && "ERROR: AI set too low angle!"); assert( (ai_angle <= 270) && "ERROR: AI set too high angle!"); assert( (ai_power >= 0) && "ERROR: AI set too low power!"); assert( (ai_power <= MAX_POWER) && "ERROR: AI set too high power!"); assert( (0 == (ai_power % 5) ) && "ERROR: AI set non mod 5 power!"); assert( ( (ai_weap < 0) /* unset ! */ || ( (ai_weap < WEAPONS) && nm[ai_weap ] > 0) || ( (ai_weap >= WEAPONS) && ni[ai_weap - WEAPONS] > 0) ) && "ERROR: AI set weapon that has a zero stock!" ); if (ai_angle < 90) ai_angle = 90; if (ai_angle > 270) ai_angle = 270; if (ai_power < 0) ai_power = 0; if (ai_power > MAX_POWER) ai_power = MAX_POWER; ai_power -= ai_power % 5; if ( ( (ai_weap < WEAPONS) && nm[ai_weap ] <= 0) || ( (ai_weap >= WEAPONS) && ni[ai_weap - WEAPONS] <= 0) ) ai_weap = tank->cw; // Only put anything on the screen if this is the firing stage if (PS_FIRE == plStage) { // If there is a difference between the AI selection and the // display, transport the values on the screen. if ( (ai_angle != tank->a) || (ai_power != tank->p) || (ai_weap != tank->cw) ) { global.updateMenu = true; if (global.skippingComputerPlay) { // When skipping, the values are simply copied: tank->a = ai_angle; tank->p = ai_power; tank->cw = ai_weap; } else { // Transfer angle: if (ai_angle > tank->a) ++tank->a; else if (ai_angle < tank->a) --tank->a; // Transfer power: if (ai_power > tank->p) tank->p += 5; else if (ai_power < tank->p) tank->p -= 5; // Transfer weapon information: if (ai_weap != tank->cw) { changed_weapon = false; int32_t cw_mod = tank->cw < ai_weap ? 1 : -1; tank->cw += cw_mod; // Skip unusable items and those that are // out of stock while ( ( !env.isItemAvailable(tank->cw) || ( (tank->cw < WEAPONS) && !nm[tank->cw] ) || ( (tank->cw >= WEAPONS) && !ni[tank->cw - WEAPONS] ) ) && (tank->cw != ai_weap) ) tank->cw += cw_mod; } } // End of regular transfer } // End of transferring difference // otherwise fire the current weapon if this is allowed else if (allow_fire) { aicore->weapon_fired(); global.updateMenu = 1; if (type == VERY_PART_TIME_BOT) type = NETWORK_CLIENT; gloating = false; plStage = PS_CLEANUP; return CONTROL_FIRE; } } // End of handling firing stage // If the AI wants to move their tank, do so: else if (PS_MOVE_LEFT == plStage) { if (tank->moveTank(DIR_LEFT)) { aicore->hasMoved(DIR_LEFT); return CONTROL_OTHER; } else aicore->hasMoved(0); // No movement possible } else if (PS_MOVE_RIGHT == plStage) { if (tank->moveTank(DIR_RIGHT)) { aicore->hasMoved(DIR_RIGHT); return CONTROL_OTHER; } else aicore->hasMoved(0); // No movement possible } return CONTROL_NONE; } int32_t PLAYER::computerSelectPreBuyItem (int32_t max_boost) { int32_t max_level = static_cast(DEADLY_PLAYER); int32_t ai_level = static_cast(type); double mood = 1. + defensive + ( (static_cast(rand()) / (static_cast(RAND_MAX) / 2.)) ); // mood is 0.0 <= x <= 4.0 /* Prior buying anything else, a 5 step system takes place: * 1.: Parachutes (if gravity is on) * 2.: Minimum weapon probability (aka 5 medium and 3 large missiles) * 3.: The most expensive item from the saveMoneyFor list * 4.: Armour/Amps * 5.: "Tools" to free themselves like Riot Blasts * 6.: Shields, if enough money is there * 7.: Fuel, everybody shall have at least 100 units. * 8.: if all is set, look for dimpled/slick projectiles! */ // Step 1: Check for parachutes (if the bot remembers to check) if ( ( (type >= RANGEFINDER_PLAYER) || RAND_AI_1P ) && (env.landSlideType > SLIDE_NONE) && (ni[ITEM_PARACHUTE] < 10) && (money > item[ITEM_PARACHUTE].cost) ) { DEBUG_LOG_FIN(name, "Pre-selecting Parachute", 0) return (WEAPONS + ITEM_PARACHUTE); } // Step 2: Minimum range of damaging weapons: // To be fair, this is always done and never forgotten. if ( (nm[LRG_MIS] < 3) && (money >= weapon[LRG_MIS].cost) ) { DEBUG_LOG_FIN(name, "Pre-selecting Large Missile", 0) return LRG_MIS; } if ( (nm[MED_MIS] < 5) && (money >= weapon[MED_MIS].cost) ) { DEBUG_LOG_FIN(name, "Pre-selecting Medium Missile", 0) return MED_MIS; } // Step 3: Check weapons/items currently saving money for: int32_t saved_cost = 0; int32_t saved_item = 0; for (int32_t i = 0; i < THINGS; ++i) { if ( (saveMoneyFor[i] > 0) && (saveMoneyFor[i] < money) && (saveMoneyFor[i] > saved_cost) ) { saved_cost = saveMoneyFor[i]; saved_item = i; } } // Got one? if (saved_item > 0) { DEBUG_LOG_FIN(name, "Finally got enough money for %s!", saved_item < WEAPONS ? weapon[saved_item].getName() : item[saved_item - WEAPONS].getName()) // Take it out from the wish list: saveMoneyFor[saved_item] = 0; return saved_item; } // Step 4: Check for Armour / Amps (if the bot remembers to check) if ( (boostBought < ai_level) && RAND_AI_1P ) { int32_t boost_value = getBoostValue(); int32_t boost_limit = max_boost - boost_value; int32_t armour_val = getArmourValue(); int32_t amp_val = getAmpValue(); if ( (boost_limit > (max_level - ai_level + 1)) && (!needDamage || RAND_AI_0P) ) { DEBUG_LOG_FIN(name, "Pre-Check: Max Boost %d, Armour %d, Amp %d, Limit %d", max_boost, armour_val, amp_val, boost_limit); // See which is preferred: boost_limit = max_boost - (2 * (DEADLY_PLAYER + 1)) + RAND_AI_0P; if ( boost_value < boost_limit) { if ( (amp_val - defensive) < (armour_val + defensive) ) { needAmp = true; needArmour = false; } else { needAmp = false; needArmour = true; } } // Prefer armour if the mood is defensive and armour isn't too // far ahead from the amps: if ( needArmour || ( (mood >= 2.0) && (armour_val <= amp_val) ) ) { // The player is in a defensive mood or armour has fallen behind // If we have 25% more money than the plasteel cost, buy it, // else the armour will do. If the armour is far behind, no // money is spared. if ( (money >= (item[ITEM_PLASTEEL].cost * 1.25) ) || ( ( (armour_val < (amp_val * 0.5)) || !armour_val) && (money > item[ITEM_PLASTEEL].cost) ) ) { DEBUG_LOG_FIN(name, "Pre-selecting Plasteel Plating", 0) return (WEAPONS + ITEM_PLASTEEL); } if ( (money >= (item[ITEM_ARMOUR].cost * 2.0)) && (ni[ITEM_ARMOUR] < ni[ITEM_PLASTEEL]) && (mood >= 3.5) ) { DEBUG_LOG_FIN(name, "Pre-selecting Armour", 0) return (WEAPONS + ITEM_ARMOUR); } } // End of armour check // Otherwise go for a shining new amp: if ( needAmp || ( (mood <= 2.0) && (amp_val <= armour_val) ) ) { // The player is in a offensive mood or amps have fallen behind // If we have 25% more money than the violent force cost, buy // it, else the normal amp will do. // If the amps have fallen behind too much, no money is spared. if ( (money >= (item[ITEM_VIOLENT_FORCE].cost * 1.5) ) || ( ( (amp_val < (armour_val * 0.5) ) || !amp_val) && (money > item[ITEM_VIOLENT_FORCE].cost) ) ) { DEBUG_LOG_FIN(name, "Pre-selecting Violent Force", 0) return (WEAPONS + ITEM_VIOLENT_FORCE); } if ( (money >= (item[ITEM_INTENSITY_AMP].cost * 1.75)) && (ni[ITEM_INTENSITY_AMP] < ni[ITEM_VIOLENT_FORCE]) && (mood < 1.0) ) { DEBUG_LOG_FIN(name, "Pre-selecting Intensity Amp", 0) return (WEAPONS + ITEM_INTENSITY_AMP); } } // End of amp check } // End of being allowed to by boost items } // end of step 3 // 5.: Freeing tools if (RAND_AI_0P) { if ( !nm[HVY_RIOT_BOMB] || !nm[RIOT_BOMB] || (mood < 2.) ) { // More offensive in this round, check for riot bombs if ( (nm[HVY_RIOT_BOMB] < 2) && (money >= weapon[HVY_RIOT_BOMB].cost) ) { DEBUG_LOG_FIN(name, "Pre-selecting Heavy Riot Bomb", 0) return HVY_RIOT_BOMB; } if ( (nm[RIOT_BOMB] < 5) && (money >= weapon[RIOT_BOMB].cost) ) { DEBUG_LOG_FIN(name, "Pre-selecting Riot Bomb", 0) return RIOT_BOMB; } } else { // In a defensive mood the charges are checked if ( (nm[RIOT_BLAST] < 2) && (money >= weapon[RIOT_BLAST].cost) ) { DEBUG_LOG_FIN(name, "Pre-selecting Riot Blast", 0) return RIOT_BLAST; } if ( (nm[RIOT_CHARGE] < 5) && (money >= weapon[RIOT_CHARGE].cost) ) { DEBUG_LOG_FIN(name, "Pre-selecting Riot Charge", 0) return RIOT_CHARGE; } } } // End of step 4 // 6.: Shields if ((shieldBought < ai_level) && RAND_AI_1P) { if (mood <= 1.5) { // offensive type, go through reflectors if ( ( ni[ITEM_LGT_REPULSOR_SHIELD] <= (item[ITEM_LGT_REPULSOR_SHIELD].amt * ai_level) ) && (money >= (item[ITEM_LGT_REPULSOR_SHIELD].cost * 2.0)) ) { DEBUG_LOG_FIN(name, "Pre-selecting Light Repulsor Shield", 0) return (WEAPONS + ITEM_LGT_REPULSOR_SHIELD); } if ( ( ni[ITEM_MED_REPULSOR_SHIELD] <= (item[ITEM_MED_REPULSOR_SHIELD].amt * ai_level) ) && (money >= (item[ITEM_MED_REPULSOR_SHIELD].cost * 1.75)) ) { DEBUG_LOG_FIN(name, "Pre-selecting Medium Repulsor Shield", 0) return (WEAPONS + ITEM_MED_REPULSOR_SHIELD); } if ( ( ni[ITEM_HVY_REPULSOR_SHIELD] <= (item[ITEM_HVY_REPULSOR_SHIELD].amt * ai_level) ) && (money >= (item[ITEM_HVY_REPULSOR_SHIELD].cost * 1.5)) ) { DEBUG_LOG_FIN(name, "Pre-selecting Heavy Repulsor Shield", 0) return (WEAPONS + ITEM_HVY_REPULSOR_SHIELD); } } // End of offensive mood if (mood >= 2.5) { // defensive type, go through hard shields if ( ( ni[ITEM_LGT_SHIELD] <= (item[ITEM_LGT_SHIELD].amt * ai_level) ) && (money >= (item[ITEM_LGT_SHIELD].cost * 2.0)) ) { DEBUG_LOG_FIN(name, "Pre-selecting Light Shield", 0) return (WEAPONS + ITEM_LGT_SHIELD); } if ( ( ni[ITEM_MED_SHIELD] <= (item[ITEM_MED_SHIELD].amt * ai_level) ) && (money >= (item[ITEM_MED_SHIELD].cost * 1.75)) ) { DEBUG_LOG_FIN(name, "Pre-selecting Medium Shield", 0) return (WEAPONS + ITEM_MED_SHIELD); } if ( ( ni[ITEM_HVY_SHIELD] <= (item[ITEM_HVY_SHIELD].amt * ai_level) ) && (money >= (item[ITEM_HVY_SHIELD].cost * 1.5)) ) { DEBUG_LOG_FIN(name, "Pre-selecting Heavy Shield", 0) return (WEAPONS + ITEM_HVY_SHIELD); } } // End of defensive mood } // End of step 5 // Step 7: Fuel if ( (ni[ITEM_FUEL] < 100) && (money >= item[ITEM_FUEL].cost) ) { DEBUG_LOG_FIN(name, "Pre-selecting Fuel", 0) return (WEAPONS + ITEM_FUEL); } // Step 8: Slick / Dimpled Projectiles if ( (ni[ITEM_SLICKP] + ni[ITEM_DIMPLEP]) < 100 ) { if ( (ni[ITEM_DIMPLEP] < 50) && (money >= item[ITEM_DIMPLEP].cost) ) { DEBUG_LOG_FIN(name, "Pre-selecting Dimpled Projectiles", 0) return (WEAPONS + ITEM_DIMPLEP); } if ( (ni[ITEM_SLICKP] < 50) && (money >= item[ITEM_SLICKP].cost) ) { DEBUG_LOG_FIN(name, "Pre-selecting Slick Projectiles", 0) return (WEAPONS + ITEM_SLICKP); } } return -1; } eControl PLAYER::controlTank (AICore* aicore, bool allow_fire) { // Handle User input, this is read for providing the ingame menu // even when no human player is active. Otherwise the player would // not be able to enter the ingame menu whenever an AI player is // active. k = 0; K = 0; if (key_shifts & KB_CTRL_FLAG) has_ctrl_pressed = true; else has_ctrl_pressed = false; if (key_shifts & KB_SHIFT_FLAG) has_shift_pressed = true; else has_shift_pressed = false; if (keypressed() ) { k = readkey (); K = k >> 8; // Enter ingame menu? if ( (KEY_ESC == K) || (KEY_P == K) ) { int32_t mm = env.ingamemenu (); global.make_update (0, 0, env.screenWidth, env.screenHeight); global.make_bgupdate (0, 0, env.screenWidth, env.screenHeight); switch (mm) { case 1: // Main Menu global.set_command(GLOBAL_COMMAND_MENU); return CONTROL_QUIT; case 2: // Quit the game global.set_command(GLOBAL_COMMAND_QUIT); return CONTROL_QUIT; case 3: // Skip AI if (STAGE_SCOREBOARD > global.stage) return CONTROL_SKIP; default: break; } } // check for number key being pressed if ( (K >= KEY_0) && (K <= KEY_9) ) { int32_t value = K - KEY_0; K = 0; // make sure the value is within range if ( (value < env.numGamePlayers) && env.players[value] ) { TANK *my_tank = env.players[value]->tank; if (my_tank) { snprintf(global.tank_status, 127, "%s: %d + %d -- Team: %s", env.players[value]->name, my_tank->l, my_tank->sh, env.players[value]->getTeamName() ); global.tank_status_colour = env.players[value]->color; global.updateMenu = 1; } else memset(global.tank_status, 0, sizeof(char) * 128); } } // end of check status keys // Check for scorboard toggle key if ( (K == KEY_TILDE) || (K == KEY_SLASH) ) { K = 0; global.showScoreBoard = !global.showScoreBoard; if (!global.showScoreBoard) { // erase it: global.make_update (0, MENUHEIGHT, 300, (env.maxNumTanks + 1) * env.fontHeight ); global.make_bgupdate(0, MENUHEIGHT, 300, (env.maxNumTanks + 1) * env.fontHeight ); } } // Handle volume control if (KEY_V == K) { K = 0; if (has_shift_pressed) env.increaseVolume(); else env.decreaseVolume(); } } // End of handling all time possible key presses. if (key[KEY_F1]) { int32_t nr = 0; do { snprintf(path_buf, PATH_MAX, "screenshot_%03d.bmp", ++nr); } while (!access(path_buf, F_OK)); if (nr < 1000) save_bmp(path_buf, global.canvas, nullptr); } if (has_ctrl_pressed && ctrlUsedUp) { if ( !(key[KEY_LEFT] || key[KEY_RIGHT] || key[KEY_UP] || key[KEY_DOWN] || key[KEY_PGUP] || key[KEY_PGDN] || key[KEY_A] || key[KEY_D] //additional control || key[KEY_W] || key[KEY_S] || key[KEY_R] || key[KEY_F]) ) ctrlUsedUp = false; } else ctrlUsedUp = false; // A) HUMAN if ( (HUMAN_PLAYER == type) || !tank) return humanControls (aicore); // B) Network Client #ifdef NETWORK else if (type == NETWORK_CLIENT) return executeNetCmd(true, aicore); #endif // NETWORK // C) AI Player else if (global.stage == STAGE_AIM) return computerControls(aicore, allow_fire); return CONTROL_NONE; } void PLAYER::drawIndicator(int32_t x, int32_t y, int32_t h) { if (HUMAN_PLAYER == type) { int32_t radius = ROUND(static_cast(h) / 2.) - 2; circlefill (global.canvas, x + radius + 2, y + radius + 2, radius, makecol (200, 100, 255)); circle (global.canvas, x + radius + 2, y + radius + 2, radius, BLACK); } else { rectfill (global.canvas, x, y + 2, x + 15, y + h - 1, BLACK); for (int32_t i = 0; i < type; ++i) rectfill(global.canvas, x + (3 * i) + 1, y + 3, x + (3 * i) + 2, y + h - 2, makecol (100, 255, 100)); } } #ifdef NETWORK // This function gets called during a round when a networked // player gets to act. The function checks to see if anything // is in the net_command variable. If there is, it handles // the request. If not, the function returns. // // We should have some time keeping in here before this goes live // to avoid hanging the game. eControl PLAYER::executeNetCmd(bool my_turn, AICore* aicore) { char buffer[NET_COMMAND_SIZE]; static int playerindex = -1; static int fire_delay = 0, net_delay = 0; int32_t towrite, written; if (my_turn) { fire_delay++; // if enough time has passed, we give up and turn control over to the AI if (fire_delay >= NET_DELAY) { type = VERY_PART_TIME_BOT; fire_delay = 0; return computerControls(aicore, true); } } if (! net_command[0]) { net_delay++; /* if (my_delay >= NET_DELAY) { my_delay = 0; setComputerValues(); type = VERY_PART_TIME_BOT; strcpy(buffer, "PING"); write(server_socket, buffer, strlen(buffer)); return computerControls(); } else*/ if (net_delay >= NET_DELAY_SHORT) // prompt the client to respond SAFE_WRITE(server_socket, "%s", "PING") return CONTROL_NONE; } // we did not get a command to process else net_delay = 0; // we got something, so reset timer if (! strncmp(net_command, "VERSION", 7) ) SAFE_WRITE(server_socket, "SERVERVERSION %s", VERSION) else if (! strncmp(net_command, "CLOSE", 5) ) { close(server_socket); type = DEADLY_PLAYER; } else if (! strncmp(net_command, "BOXED", 5) ) { char buffer[32]; SAFE_WRITE(server_socket, "BOXED %d", env.isBoxed ? 1 : 0); } else if (! strncmp(net_command, "GOSSIP", 6) ) { snprintf(global.tank_status, 127, "%s", & (net_command[7]) ); global.updateMenu = TRUE; } else if (! strncmp(net_command, "HEALTH", 6) ) { int tankindex; char buffer[64]; sscanf( &(net_command[7]), "%d", &tankindex ); if ( (tankindex >= 0) && (tankindex < env.numGamePlayers) ) { if (env.players[tankindex]->tank) SAFE_WRITE(server_socket, "HEALTH %d %d %d %d", tankindex, env.players[tankindex]->tank->l, env.players[tankindex]->tank->sh, env.players[tankindex]->tank->sht) } } else if (! strncmp(net_command, "ITEM", 4) ) { char buffer[32]; int itemindex; sscanf( &(net_command[5]), "%d", &itemindex); if ( (itemindex >= 0) && (itemindex < ITEMS) ) SAFE_WRITE(server_socket, "ITEM %d %d", itemindex, ni[itemindex]) } else if (! strncmp(net_command, "MOVE", 4) ) { if (! my_turn) return CONTROL_NONE; if (tank) { if (strstr(net_command, "LEFT") ) tank->moveTank(DIR_LEFT); else tank->moveTank(DIR_RIGHT); global.updateMenu = 1; } } else if (! strncmp(net_command, "FIRE", 4) ) { int angle = 180, power = 1000, item = 0; if (! my_turn) return CONTROL_NONE; sscanf( & (net_command[5]), "%d %d %d", &item, &angle, &power); fire_delay = 0; if (tank) { if (item >= THINGS) item = 0; tank->cw = item; if (item < WEAPONS) { if (nm[tank->cw] < 1) tank->cw = 0; } else // item { if ( ni[tank->cw - WEAPONS] < 1) tank->cw = 0; } tank->a = angle; if (tank->a > 270) tank->a = 270; else if (tank->a < 90) tank->a = 90; tank->p = power; if (tank->p > 2000) tank->p = 2000; else if (tank->p < 0) tank->p = 0; gloating = false; net_command[0] = '\0'; return CONTROL_FIRE; } } // find out which player this is else if (! strncmp(net_command, "WHOAMI", 6) ) { bool found = false; char buffer[128]; while ( (playerindex < env.numGamePlayers) && (! found) ) { if ( env.players[playerindex] == this ) { found = true; SAFE_WRITE(server_socket, "YOUARE %d", playerindex) } else playerindex++; } // check to see if something went very wrong if (! found) SAFE_WRITE(server_socket, "YOUARE %d", -1) } // return wind speed else if (! strncmp(net_command, "WIND", 4) ) { char buffer[64]; SAFE_WRITE(server_socket, "WIND %f", global.wind) } // find out how many players we have else if (! strncmp(net_command, "NUMPLAYERS", 10) ) { char buffer[32]; SAFE_WRITE(server_socket, "NUMPLAYERS %d", env.numGamePlayers) } else if (! strncmp(net_command, "PLAYERNAME", 10) ) { int my_number; char buffer[128]; sscanf( &(net_command[11]), "%d", &my_number); if ( (my_number >= 0) && (my_number < env.numGamePlayers) ) SAFE_WRITE(server_socket, "PLAYERNAME %d %s", my_number, env.players[my_number]->getName()) } // how many rounds are we playing else if (! strncmp(net_command, "ROUNDS", 6) ) { char buffer[64]; SAFE_WRITE(server_socket, "ROUNDS %d %d", env.rounds, global.currentround); } // send back the position of each tank else if (! strncmp(net_command, "TANKPOSITION", 12) ) { char buffer[64]; int count; sscanf( &(net_command[13]), "%d", &count); if ( (count >= 0) && (count < env.numGamePlayers) && (env.players[count]->tank) ) SAFE_WRITE(server_socket, "TANKPOSITION %d %d %d", count, (int) env.players[count]->tank->x, (int) env.players[count]->tank->y) } // send back the surface height of the dirt else if (! strncmp(net_command, "SURFACE", 7) ) { char buffer[32]; int x; sscanf( &(net_command[8]), "%d", &x); if ( (x >= 0) && (x < env.screenWidth) ) #if defined(ATANKS_IS_BSD) SAFE_WRITE(server_socket, "SURFACE %d %d", x, global.surface[x].load()) #else SAFE_WRITE(server_socket, "SURFACE %d %ld", x, global.surface[x].load()) #endif // BSD } else if (! strncmp(net_command, "SCREEN", 6) ) { char buffer[64]; SAFE_WRITE(server_socket, "SCREEN %d %d", env.screenWidth, env.screenHeight) } else if (! strncmp(net_command, "TEAMS", 5) ) { int count; char buffer[32]; sscanf( &(net_command[6]), "%d", &count); if ( (count < env.numGamePlayers) && (count >= 0) ) SAFE_WRITE(server_socket, "TEAM %d %d", count, (int) env.players[count]->team) } else if (! strncmp(net_command, "WALLTYPE", 8) ) { char buffer[32]; SAFE_WRITE(server_socket, "WALLTYPE %d", env.current_wallType) } else if (! strncmp(net_command, "WEAPON", 6) ) { char buffer[32]; int weapon_number; sscanf( &(net_command[7]), "%d", &weapon_number); if ( (weapon_number >= 0) && (weapon_number < WEAPONS) ) SAFE_WRITE(server_socket, "WEAPON %d %d", weapon_number, nm[weapon_number]) } net_command[0] = '\0'; return CONTROL_NONE; } #endif // NETWORK void PLAYER::exitShop() { double tmpDM = (ni[ITEM_INTENSITY_AMP] * item[ITEM_INTENSITY_AMP].vals[0]) + (ni[ITEM_VIOLENT_FORCE] * item[ITEM_VIOLENT_FORCE].vals[0]); damageMultiplier = 1.0; if (tmpDM > 0) damageMultiplier += std::pow(tmpDM, 0.6); // All players need small missiles: if (nm[SML_MIS] < 100) nm[SML_MIS] += 100 + (rand() % 100); // + [100;199] if (nm[SML_MIS] < 250) nm[SML_MIS] += 50 + (rand() % 50); // + [ 50; 99] } /// @brief fill the list of desired items and return the number of damaging weapons int32_t PLAYER::generateDesiredList() { int32_t result = 0; memset(desired, 0, sizeof(int32_t) * THINGS); for (int32_t i = 1; i < THINGS; ++i) { if (env.isItemAvailable(i)) { desired[i] = i; currPref[i] = weapPref[i]; // No negative prefs: if (currPref[i] < 0) currPref[i] = 0; // Count weapons: if ( (i < WEAPONS) && nm[i] ) ++result; } else desired[i] = 0; // Unavailable items will not be inserted and // the slot is filled with a 0 (small missile) // that will be sorted away. } return result; } void PLAYER::generatePreferences() { double baseProb = static_cast(MAX_WEAP_PROBABILITY) / 2.; int32_t currItem = 0; double worth = 0.; bool isWarhead = false; int32_t maxWeapPref = 0; int32_t maxItemPref = 0; double ai_rate = static_cast(type) / 2. + .5; /* -------------------------------------- * --- Generate basic characteristics --- * -------------------------------------- */ defensive = (static_cast(rand() % 10001) / 5000.) - 1.; // [-1;+1] vengeful = 1 + (rand () % 100); // [1;100] vengeanceThreshold = 0.05 + (static_cast(rand () % 901) / 1000.); // [0.05;0.95] selfPreservation = static_cast(rand () % 3001) / 1000; // [0;3] painSensitivity = static_cast(rand () % 3001) / 1000; // [0;3] // Now 'defensive' can be modified by team: if (team == TEAM_JEDI) { defensive += static_cast(rand() % 501) / 1000.; if (defensive > 1.25) defensive = 1.25; // + 1.25 is Super Defensive } else if (team == TEAM_SITH) { defensive -= static_cast(rand() % 501) / 1000.; if (defensive < -1.25) defensive = -1.25; // - 1.25 is Super Aggressive } /* -------------------------------------------- * --- Generate weapon and item preferences --- * -------------------------------------------- */ if (strcmp(name, "New Player")) { DEBUG_LOG_EMO(name, "Generating preferences (defensive %lf)", defensive) DEBUG_LOG_EMO(name, "---------------------------------------", 0) } weapPref[0] = 0; // small missiles are always zero! for (int32_t i = 1; i < THINGS; ++i) { worth = baseProb / -2.; isWarhead = false; if (i < WEAPONS) { // Talking about weapons currItem = i; if (weapon[i].warhead || ( (currItem >= SML_METEOR) && (currItem <= LRG_LIGHTNING))) isWarhead = true; // Warheads are ignored, this way naturals // are taken out automatically. else { int32_t warheads = weapon[currItem].spread; // === 1. Damage: === //-------------------- if (weapon[currItem].numSubmunitions > 0) { warheads = weapon[currItem].numSubmunitions; // Use the total damage for clusters worth = weapon[weapon[currItem].submunition].damage * warheads; if ( ( (currItem >= SML_NAPALM) && (currItem <= LRG_NAPALM)) || ( (currItem >= FUNKY_BOMB) && (currItem <= FUNKY_DEATH)) ) worth /= (defensive + 2. + ai_rate) / 2.; // These weapons are too unpredictable to be counted full. // But a true offensive useless bot divides only by 1.0 // (so not all all, they do not mind) and a true // defensive deadly bot divides by 2.5 // Napalm Jellies doe damage over time. So their worth // has to reflect that. if ( (currItem >= SML_NAPALM) && (currItem <= LRG_NAPALM)) worth *= static_cast(EXPLOSIONFRAMES) / 2. / static_cast(type); if (worth > baseProb) // Or Large Napalm will always be everybody favourite worth = baseProb; } else // Otherwise use spread value with damage. For non-spread // weapons this value is always 1. worth = weapon[currItem].damage * (warheads * 2) * weapon[currItem].getDelayDiv(); // Note: warheads are counted twice, because otherwise spread // weapons get a by far too low score! // 1 Damage is worth 0.5%o of the base probability. worth *= baseProb * 0.0005; // === 2. Defensiveness multiplier === //------------------------------------- // As said above, defensive players avoid spread/cluster // weapons that are too unpredictable. Thus they rate // non-spreads higher: if (warheads == 1) worth *= (defensive + 1.5) * ai_rate; // === 3. Dirt weapons === //------------------------- // Dirt balls and such weapons do no damage and have to be rated // by defensiveness value. Further more the higher the self // preservation value of a bot, the more likely they will try // to bury main damage dealers for one or two rounds of bought // silence. if ( (currItem >= DIRT_BALL) && (currItem <= SMALL_DIRT_SPREAD) ) worth = warheads * weapon[currItem].radius * ai_rate * (defensive + 2.) * selfPreservation; // === 4. Debuff weapons === //--------------------------- // These are the opposite of dirt weapons, they are for the // offensive type with high self preservation. // Note: Although the percent bomb is not a de-buff weapon, // it can hardly be rated any other way, as it has no set yield. if ( (currItem >= PERCENT_BOMB) && (currItem <= REDUCER) ) worth = 300. * ai_rate * -(defensive - 2.) * selfPreservation; // Note: The theft bomb is a debuff weapon with extra benefits. ;-) if (THEFT_BOMB == currItem) worth = (150. + vengeful) * ai_rate * ( (selfPreservation + 2.) / 2.) * (std::abs(defensive) + 1.0); // === 5. Shaped weapons are deadly but limited === //-------------------------------------------------- if ( ( (currItem >= SHAPED_CHARGE) && (currItem <= CUTTER) ) || ( DRILLER == currItem ) ) worth *= 1.0 - ( ((2. * ai_rate) + (defensive * 5.0)) / 20.0); // useless, full offensive: * 1.15 // deadly, full defensive : * 0.45 // === 6. Rollers and penetrators === //------------------------------------ // These are modified by type, as they *are* useful if ( ( (currItem >= SML_ROLLER) && (currItem <= DTH_ROLLER) ) || ( (currItem >= BURROWER) && (currItem <= PENETRATOR) ) ) worth *= 1.0 + (ai_rate / 5.) + (defensive / 2.); // === 7. Tectonics need to be raised! === //----------------------------------------- // These are nice to damage multiple buried enemies where // penetrators can only reach one. if ( (currItem >= TREMOR) && (currItem <= TECTONIC) ) worth *= 2.0 + (ai_rate / 5.) + (defensive / 3.); // finally dWorth must not be greater than the 3/4 of MAX_WEAPON_PROBABILITY if (worth > (MAX_WEAP_PROBABILITY * 0.75)) worth = MAX_WEAP_PROBABILITY * 0.75; } // End of "not a warhead" } else { // Talking about items currItem = i - WEAPONS; /* Theory: * The more offensive a bot is, the more likely they go for * damage amps and repulsor shields. * The more defensive they are, the more likely they go for * armour and hard shields. */ switch (currItem) { case ITEM_TELEPORT: worth = (defensive - 1.5) * (baseProb / -5.00) * selfPreservation; break; case ITEM_SWAPPER: worth = (defensive - 1.5) * (baseProb / -3.75) * selfPreservation; break; case ITEM_MASS_TELEPORT: worth = (defensive - 1.5) * (baseProb / -1.50) * selfPreservation; break; case ITEM_FAN: worth = 0.0; // useless things! break; case ITEM_VENGEANCE: case ITEM_DYING_WRATH: case ITEM_FATAL_FURY: worth = (defensive + 1.5) * static_cast(weapon[(int)item[currItem].vals[0]].damage) * item[currItem].vals[1]; break; case ITEM_ARMOUR: case ITEM_PLASTEEL: worth = baseProb * ( item[currItem].vals[0] / item[ITEM_PLASTEEL].vals[0]) * ( defensive + 1.25 ); break; case ITEM_LGT_SHIELD: case ITEM_MED_SHIELD: case ITEM_HVY_SHIELD: worth = baseProb * ( item[currItem].vals[0] / item[ITEM_HVY_SHIELD].vals[0]) * ( defensive + 1.25 ); break; case ITEM_INTENSITY_AMP: case ITEM_VIOLENT_FORCE: worth = baseProb * ( item[currItem].vals[0] / item[ITEM_VIOLENT_FORCE].vals[0]) * ( (-1. * defensive) + 1.25 ); break; case ITEM_LGT_REPULSOR_SHIELD: case ITEM_MED_REPULSOR_SHIELD: case ITEM_HVY_REPULSOR_SHIELD: worth = baseProb * ( item[currItem].vals[0] / item[ITEM_HVY_REPULSOR_SHIELD].vals[0]) * ( (-1. * defensive) + 1.25 ); break; case ITEM_REPAIRKIT: worth = (baseProb / 12. * ai_rate) * (defensive + 2.25 + (selfPreservation / 2.)); break; case ITEM_PARACHUTE: worth = (baseProb / 10. * ai_rate) * ( (defensive + 1.5) / 1.5); // Parachutes *are* popular! :) break; case ITEM_SLICKP: worth = baseProb / 25. * ai_rate; break; case ITEM_DIMPLEP: worth = baseProb / 15. * ai_rate; break; case ITEM_FUEL: worth = baseProb / 30. * ai_rate; isWarhead = true; // Yes, it's a lie. ;-) break; case ITEM_ROCKET: worth = -5000; // Bots don't use rockets isWarhead = true; // The cake is a lie! break; case ITEM_SDI: worth = (baseProb / 13. * ai_rate) * ( (defensive + 2.25 + selfPreservation) / 1.25); break; default: cerr << "Error: Unhandled item " << currItem; cerr << " in generatePreferences()!" << endl; worth = baseProb / ai_rate; } // worth must not be greater than the half of MAX_WEAPON_PROBABILITY if (worth > (MAX_WEAP_PROBABILITY / 2)) worth = MAX_WEAP_PROBABILITY / 2; } // Boost the tiny ones: if (worth < (MAX_WEAP_PROBABILITY / 25.0)) worth = MAX_WEAP_PROBABILITY / 25.0; // Which is very very little... if (worth < (MAX_WEAP_PROBABILITY / 8)) // allow to double (more or less) worth += static_cast(rand() % static_cast(std::abs(worth))); // But don't overdo either: if (worth > MAX_WEAP_PROBABILITY) worth = MAX_WEAP_PROBABILITY; if (isWarhead) weapPref[i] = 0; // It will not get any slot! else weapPref[i] = ROUND(worth); // Count statistical values if ((i < WEAPONS) && (weapPref[i] > maxWeapPref)) maxWeapPref = weapPref[i]; if ((i >= WEAPONS) && (weapPref[i] > maxItemPref)) maxItemPref = weapPref[i]; if (strcmp(name, "New Player")) { DEBUG_LOG_EMO(name, "%23s (%6s): %5d", i < WEAPONS ? weapon[i].getName() : item[i - WEAPONS].getName(), i < WEAPONS ? "weapon" : "item", weapPref[i]) } } // end of looping THINGS // If the maximum preferences are too low, they have to be augmented if (maxWeapPref < MAX_WEAP_PROBABILITY) { worth = static_cast(MAX_WEAP_PROBABILITY) / static_cast(maxWeapPref); for (int32_t i = 1; i < WEAPONS; ++i) { if (weapPref[i] > (MAX_WEAP_PROBABILITY / 100.0)) { weapPref[i] = ROUND(worth * weapPref[i]); if (strcmp(name, "New Player")) { DEBUG_LOG_EMO(name, "%23s (%6s) amplified to: %5d", weapon[i].getName(), "weapon", weapPref[i]) } } } } if (maxItemPref < (MAX_WEAP_PROBABILITY * 0.75) ) { worth = static_cast(MAX_WEAP_PROBABILITY) * 0.75 / static_cast(maxItemPref); for (int32_t i = WEAPONS; i < THINGS; ++i) { if (weapPref[i] > (MAX_WEAP_PROBABILITY / 100.0)) { weapPref[i] = ROUND(worth * weapPref[i]); if (strcmp(name, "New Player")) { DEBUG_LOG_EMO(name, "%23s (%6s) amplified to: %5d", item[i - WEAPONS].getName(), "item", weapPref[i]) } } } } if (strcmp(name, "New Player")) DEBUG_LOG_EMO(name, "=======================================", 0) } int PLAYER::getAmpValue() { double amp_val = ni[ITEM_INTENSITY_AMP] * item[ITEM_INTENSITY_AMP].vals[0]; double vio_val = ni[ITEM_VIOLENT_FORCE] * item[ITEM_VIOLENT_FORCE].vals[0]; return ROUNDu( (amp_val + vio_val) / static_cast(item[ITEM_VIOLENT_FORCE].vals[0])); } int PLAYER::getArmourValue() { double arm_val = ni[ITEM_ARMOUR] * item[ITEM_ARMOUR].vals[0]; double pla_val = ni[ITEM_PLASTEEL] * item[ITEM_PLASTEEL].vals[0]; return ROUNDu( (arm_val + pla_val) / static_cast(item[ITEM_PLASTEEL].vals[0]) ); } int PLAYER::getBoostValue() { return (getAmpValue() + getArmourValue()); } /// @brief return the item preference of item @a idx or -1 if @a idx is out of /// range /// Note: This uses the static weapPref instead of the adapted currPref, /// because it is used by AICore for point calculation. int32_t PLAYER::getItemPref(int32_t idx) { if ( (idx > -1) && (idx < ITEMS) ) return weapPref[WEAPONS + idx]; return -1; } int32_t PLAYER::getMoneyToSave(bool first_look) { // If this is the first look in a shopping round, // the list of items to save money for must be built: if (first_look) { int32_t avgPref = 0; int32_t prefCount = 0; int32_t prefLimit = 0; memset(saveMoneyFor, 0, sizeof(int32_t) * THINGS); // if the preferences are exceptionally low, a div by 0 // might occur, so it has to be made dynamic: for (int32_t i = 0; i < THINGS; ++i) { if (currPref[i] > prefLimit) { prefLimit += currPref[i]; prefCount++; } } prefLimit /= prefCount ? prefCount : 1; prefCount = 0; // Now it is guaranteed, that prefCount and avgPref // will result in values > 0. for (int32_t i = 0; i < THINGS; ++i) { if (currPref[i] > prefLimit) { prefCount++; avgPref += currPref[i]; } } // Complete the average preference of the most valuable weapons: avgPref /= prefCount ? prefCount : 1; // Now go through the list and add everything above the // average into the save money list, if the amount in stock // is too low: for (int32_t i = 0; i < THINGS; ++i) { int32_t j = i - WEAPONS; // short cut if ( (currPref[i] > avgPref) && ( ( (i < WEAPONS) && (nm[i] < weapon[i].amt) ) || ( (j == ITEM_VIOLENT_FORCE) && needAmp) || ( (j == ITEM_PLASTEEL) && needArmour) ) ) { saveMoneyFor[i] = i < WEAPONS ? weapon[i].cost : item[j].cost; DEBUG_LOG_FIN(name, " => Save money for %s!", i < WEAPONS ? weapon[i].getName() : item[j].getName()) } // End of having a big enough preference } // End of looping THINGS } // End of building safe-for-list // moneyToSafe can be easily generated (and regenerated) // by walking through the list of things currently saved // money for: double moneyToSave = 0.; double wanted = 0.; double max_cost = 0.; // The most expensive item is counted twice for (int32_t i = 0; i < THINGS; ++i) { int32_t j = i - WEAPONS; // short cut if (saveMoneyFor[i] > 0) { // Still needed? if ( ( (i < WEAPONS) && (nm[i] < weapon[i].amt) ) || ( (j == ITEM_VIOLENT_FORCE) && needAmp) || ( (j == ITEM_PLASTEEL) && needArmour) ) { moneyToSave += saveMoneyFor[i]; wanted += 1.; if (saveMoneyFor[i] > max_cost) max_cost = saveMoneyFor[i]; } else // nope... saveMoneyFor[i] = 0; } } // If anything is wanted, the most expensive item is counted twice. // This is done so the bots do not consider having enough money // too early, just like humans would. if (max_cost > 1.) { moneyToSave += max_cost; wanted += 1.; // The average money to save modified by the player type // is the result: moneyToSave = (moneyToSave / wanted) * (1. + (static_cast(LAST_PLAYER_TYPE - type) / 10.)); } /* Results for Armageddon only @ 100k credits: * (wanted is 1 in this test case) * Useless: 100,000 * (1 + ( (6 - 1) / 10)) = 100,000 * 1.5 = 150,000 * Deadly : 100,000 * (1 + ( (6 - 5) / 10)) = 100,000 * 1.1 = 110,000 */ // Whenever moneyToSave is less than the money owned, boostBought is reset if (first_look && (money > ROUND(moneyToSave)) ) { boostBought = 0; // Let's go! shieldBought = 0; } return ROUND(moneyToSave); } // return the player name const char* PLAYER::getName () const { return name; } // This function checks for incoming data from a client. // If data is coming in, we put the incoming data in the net_command // variable. If the socket connection is broken, then we will // close the socket and hand control over to the AI. bool PLAYER::getNetCmd() { #ifdef NETWORK if (Check_For_Incoming_Data(server_socket)) { // we have something coming down the pipe memset(net_command, '\0', NET_COMMAND_SIZE); // clear buffer size_t status = read(server_socket, net_command, NET_COMMAND_SIZE); if (! status) { // connection is broken close(server_socket); type = DEADLY_PLAYER; printf("%s lost network connection. Returning control to AI.\n", name); return false; } else { // we got data net_command[NET_COMMAND_SIZE - 1] = '\0'; Trim_Newline(net_command); } } #endif // NETWORK return true; } /** @brief Get one entry of the opponent memory or the last one attacked * @param[in] idx Index of the opponent memory to get, or -1 to get the last attacked. **/ sOpponent* PLAYER::getOppMem(int32_t idx) { // regular memory if ( (idx > -1) && (idx < oppCount) ) return &opponents[idx]; // or the last attacked else if (-1 == idx) return last_opponent; // or invalid. return nullptr; } // returns a static string to the player's team name const char* PLAYER::getTeamName() const { static char team_name[9] = { 0 }; switch (team) { case TEAM_JEDI: snprintf(team_name, 8, "%s", "Jedi"); break; case TEAM_NEUTRAL: snprintf(team_name, 8, "%s", "Neutral"); break; case TEAM_SITH: snprintf(team_name, 8, "%s", "Sith"); break; case TEAM_COUNT: default: snprintf(team_name, 8, "%s", "* N/A *"); break; } return team_name; } /// @brief return the weapon preference of weapon @a idx or -1 if @a idx is out /// of range. /// Note: This uses the static weapPref instead of the adapted currPref, /// because it is used by AICore for point calculation. int32_t PLAYER::getWeapPref(int32_t idx) { if ( (idx > -1) && (idx < WEAPONS) ) return weapPref[idx]; return -1; } eControl PLAYER::humanControls (AICore* aicore) { bool moved = false; eControl status = CONTROL_NONE; // Keyboard control in aim stage if ( (global.stage == STAGE_AIM) && tank) { if ( (key[KEY_LEFT] || key[KEY_A]) && !ctrlUsedUp && (tank->a < 270) ) { if (has_shift_pressed) tank->a = std::min(tank->a + 5, 270); else tank->a++; global.updateMenu = 1; if (has_ctrl_pressed) ctrlUsedUp = true; } if ( (key[KEY_RIGHT] || key[KEY_D]) && !ctrlUsedUp && (tank->a > 90) ) { if (has_shift_pressed) tank->a = std::max(tank->a - 5, 90); else tank->a--; global.updateMenu = 1; if (has_ctrl_pressed) ctrlUsedUp = true; } if ( (key[KEY_DOWN] || key[KEY_S]) && !ctrlUsedUp && (tank->p > 0) ) { if (has_shift_pressed) tank->p = std::max(tank->p - 25, 0); else tank->p -= 5; global.updateMenu = 1; if (has_ctrl_pressed) ctrlUsedUp = true; } if ( (key[KEY_UP] || key[KEY_W]) && !ctrlUsedUp && (tank->p < MAX_POWER) ) { if (has_shift_pressed) tank->p = std::min(tank->p + 25, MAX_POWER); else tank->p += 5; global.updateMenu = 1; if (has_ctrl_pressed) ctrlUsedUp = true; } if ( (key[KEY_PGUP] || key[KEY_R]) && !ctrlUsedUp && (tank->p < MAX_POWER) ) { tank->p += 100; if (tank->p > MAX_POWER) tank->p = MAX_POWER; global.updateMenu = 1; if (has_ctrl_pressed) ctrlUsedUp = true; } if ( (key[KEY_PGDN] || key[KEY_F]) && !ctrlUsedUp && (tank->p > 0) ) { tank->p -= 100; if (tank->p < 0) tank->p = 0; global.updateMenu = 1; if (has_ctrl_pressed) ctrlUsedUp = true; } } // See whether there is a new key press if (! k) { if ( keypressed() ) { k = readkey(); K = k >> 8; } } // If anything is newly there, make it happen if (K) { status = CONTROL_OTHER; if ( (global.stage == STAGE_AIM) && tank) { if (K == KEY_N) { tank->a = 180; global.updateMenu = 1; K = 0; } if ( (K == KEY_TAB) || (K == KEY_C) ) { global.updateMenu = 1; bool done = false; while (!done) { if (++tank->cw >= THINGS) tank->cw = 0; if ( ( (tank->cw < WEAPONS) && tank->player->nm[tank->cw]) || ( (tank->cw >= WEAPONS) && item[tank->cw - WEAPONS].selectable && tank->player->ni[tank->cw - WEAPONS] ) ) done = true; } changed_weapon = false; K = 0; } if ( (K == KEY_BACKSPACE) || (K == KEY_Z) ) { global.updateMenu = 1; bool done = false; while (!done) { if (--tank->cw < 0) tank->cw = THINGS - 1; if ( ( (tank->cw < WEAPONS) && tank->player->nm[tank->cw]) || ( (tank->cw >= WEAPONS) && item[tank->cw - WEAPONS].selectable && tank->player->ni[tank->cw - WEAPONS] ) ) done = true; } changed_weapon = false; K = 0; } // put the tank under computer control if (K == KEY_F10) { type = PART_TIME_BOT; K = 0; return (computerControls(aicore, false)); } // move the tank if ( (K == KEY_COMMA) || (K == KEY_H) ) moved = tank->moveTank(DIR_LEFT); if ( (K == KEY_STOP) || (K == KEY_J) ) moved = tank->moveTank(DIR_RIGHT); if (moved) { global.updateMenu = 1; K = 0; } // Fire Weapon if ( (K == KEY_SPACE) && ( ( (tank->cw < WEAPONS) && (tank->player->nm[tank->cw])) || ( (tank->cw >= WEAPONS) && (tank->player->ni[tank->cw - WEAPONS]) ) ) ) { gloating = false; status = CONTROL_FIRE; changed_weapon = false; K = 0; } } // end of being in aim satge and having a tank } // End of havig a key return status; } void PLAYER::initialise (bool loaded_game) { // Initialize basic values if this is not loaded if (!loaded_game) { memset(nm, 0, sizeof(int32_t) * WEAPONS); memset(ni, 0, sizeof(int32_t) * ITEMS); ni[ITEM_FUEL] = 100; // Supply some initial fuel kills = 0; killed = 0; score = 0; } last_opponent = nullptr; tank = nullptr; } /// @brief read player data from a dump file. bool PLAYER::load_from_file (FILE *file) { if (!file) return false; char line[MAX_CONFIG_LINE + 1] = { 0 }; char field[MAX_CONFIG_LINE + 1] = { 0 }; char value[MAX_CONFIG_LINE + 1] = { 0 }; char* result = nullptr; setlocale(LC_NUMERIC, "C"); // read until we hit line "*PLAYER*" or "***" or EOF do { result = fgets(line, MAX_CONFIG_LINE, file); if ( !result || !strncmp(line, "***", 3) ) // eof OR end of record return false; } while ( strncmp(line, "*PLAYER*", 8) ); bool done = false; while (result && !done) { // read a line memset(line, '\0', MAX_CONFIG_LINE); if ( ( result = fgets(line, MAX_CONFIG_LINE, file) ) ) { // if we hit end of the record, stop if (! strncmp(line, "***", 3) ) { done = true; continue; // This exits the loop as well } // strip newline character size_t line_length = strlen(line); while ( line[line_length - 1] == '\n') { line[line_length - 1] = '\0'; line_length--; } // find equal sign size_t equal_position = 1; while ( ( equal_position < line_length ) && ( line[equal_position] != '=' ) ) equal_position++; // make sure the equal sign position is valid if (line[equal_position] != '=') continue; // Go to next line // separate field from value memset(field, '\0', MAX_CONFIG_LINE); memset(value, '\0', MAX_CONFIG_LINE); strncpy(field, line, equal_position); strncpy(value, &( line[equal_position + 1] ), MAX_CONFIG_LINE); // check which field we have and process value if (!strcasecmp(field, "NAME") ) strncpy(name, value, NAME_LEN); else if (!strcasecmp(field, "COLOR") ) { sscanf(value, "%d", &color); } else if (!strcasecmp(field, "DEFENSIVE") ) sscanf(value, "%lf", &defensive); else if (!strcasecmp(field, "PAINSENSITIVITY") ) sscanf(value, "%lf", &painSensitivity); else if (!strcasecmp(field, "PLAYED") ) sscanf(value, "%u", &played); else if (!strcasecmp(field, "PREFTYPE") ) { int32_t val = 0; sscanf(value, "%d", &val); if ( (val >= 0) && (val <= ALWAYS_PREF)) preftype = static_cast(val); } else if (!strcasecmp(field, "SELFPRESERVATION") ) sscanf(value, "%lf", &selfPreservation); else if (!strcasecmp(field, "TANK_BITMAP") ) sscanf(value, "%d", &tankbitmap); else if (!strcasecmp(field, "TEAM") ) { int32_t val = 0; sscanf(value, "%d", &val); if ( (val >= 0) && (val <= TEAM_JEDI) ) team = static_cast(val); } else if (!strcasecmp(field, "TYPE") ) { int32_t val = 0; sscanf(value, "%d", &val); if ( (val >= HUMAN_PLAYER) && (val <= LAST_PLAYER_TYPE)) type = static_cast(val); // make sure previous human players are restored as humans if (type == PART_TIME_BOT) type = HUMAN_PLAYER; } else if (!strcasecmp(field, "TYPESAVED") ) { int32_t val = 0; sscanf(value, "%d", &val); if ( (val >= HUMAN_PLAYER) && (val <= LAST_PLAYER_TYPE)) { type_saved = static_cast(val); if (type_saved > HUMAN_PLAYER) type = type_saved; } } else if (!strcasecmp(field, "VENGEANCETHRESHOLD") ) { sscanf(value, "%lf", &vengeanceThreshold); // fix old configs if (vengeanceThreshold < 0.05) vengeanceThreshold = 0.05 + (static_cast(rand () % 901) / 1000.); // [0.05;0.95] if (vengeanceThreshold > 0.95) vengeanceThreshold = 0.95; } else if (!strcasecmp(field, "VENGEFUL") ) { sscanf(value, "%d", &vengeful); // fix old configs if (vengeful < 1) vengeful = 1 + (rand () % 100); // [1;100] if (vengeful > 100) vengeful = 100; } else if (!strcasecmp(field, "WON") ) sscanf(value, "%u", &won); else if (!strcasecmp(field, "WEAPONPREFERENCES") ) { int32_t wp_index = -1; int32_t wp_value = -1; sscanf(value, "%d %d", &wp_index, &wp_value); if ( (wp_index < THINGS) && (wp_index >= 0) ) weapPref[wp_index] = wp_value; } // end of valid data line } // end of if we read a line properly } // end of while not done return true; } /** @brief Load player data from @a file which has the @a file_version. * * Version additions that are not found in earlier versions: *
    *
  • Version 65 : THEFT_BOMB *
* * Version changes from earlier versions: *
    *
  • Version 65 : FUEL needs preferences *
* **/ void PLAYER::load_game_data(FILE* file, int32_t file_version) { if (!file) return; char line[MAX_CONFIG_LINE + 1] = { 0 }; char field[MAX_CONFIG_LINE + 1] = { 0 }; char value[MAX_CONFIG_LINE + 1] = { 0 }; char* result = nullptr; bool done = false; bool has_pref_loaded = false; setlocale(LC_NUMERIC, "C"); do { // read a line memset(line, '\0', MAX_CONFIG_LINE); if ( ( result = fgets(line, MAX_CONFIG_LINE, file) ) ) { // if we hit end of the record, stop if (! strncmp(line, "***", 3) ) { done = true; continue; // This exits the loop as well } // strip newline character size_t line_length = strlen(line); while ( line[line_length - 1] == '\n') { line[line_length - 1] = '\0'; line_length--; } // find equal sign size_t equal_position = 1; while ( ( equal_position < line_length ) && ( line[equal_position] != '=' ) ) equal_position++; // make sure the equal sign position is valid if (line[equal_position] != '=') continue; // Go to next line // separate field from value memset(field, '\0', MAX_CONFIG_LINE); memset(value, '\0', MAX_CONFIG_LINE); strncpy(field, line, equal_position); strncpy(value, &( line[equal_position + 1] ), MAX_CONFIG_LINE); // check which field we have and process value if (!strcasecmp(field, "DEFENSIVE") ) sscanf(value, "%lf", &defensive); else if (!strcasecmp(field, "PAINSENSITIVITY") ) sscanf(value, "%lf", &painSensitivity); else if (!strcasecmp(field, "KILLED") ) sscanf(value, "%d", &killed ); else if (!strcasecmp(field, "KILLS") ) sscanf(value, "%d", &kills ); else if (!strcasecmp(field, "MONEY") ) sscanf(value, "%d", &money ); else if (!strcasecmp(field, "SCORE") ) sscanf(value, "%d", &score ); else if (!strcasecmp(field, "SELFPRESERVATION") ) sscanf(value, "%lf", &selfPreservation); else if (!strcasecmp(field, "TYPE") ) { int32_t val = 0; sscanf(value, "%d", &val ); if ( (val >= HUMAN_PLAYER) && (val < LAST_PLAYER_TYPE) ) type = static_cast(val); } else if (!strcasecmp(field, "TYPESAVED") ) { int32_t val = 0; sscanf(value, "%d", &val ); if ( (val >= HUMAN_PLAYER) && (val < LAST_PLAYER_TYPE) ) type_saved = static_cast(val); } else if (!strcasecmp(field, "VENGEANCETHRESHOLD") ) { sscanf(value, "%lf", &vengeanceThreshold); // fix old configs if (vengeanceThreshold < 0.05) vengeanceThreshold = 0.05 + (static_cast(rand () % 901) / 1000.); // [0.05;0.95] if (vengeanceThreshold > 0.95) vengeanceThreshold = 0.95; } else if (!strcasecmp(field, "VENGEFUL") ) { sscanf(value, "%d", &vengeful); // fix old configs if (vengeful < 1) vengeful = 1 + (rand () % 100); // [1;100] if (vengeful > 100) vengeful = 100; } // Preferences - saved if "PERPLAY_PREF" - type player. else if (!strcasecmp(field, "WEAPONPREFERENCES")) { int32_t prf_idx = -1; int32_t prf_val = -1; sscanf(value, "%d %d", &prf_idx, &prf_val); if ( (prf_idx > -1) && (prf_idx < THINGS) ) { /* === Version Checks for new weapons / items === */ if ( (file_version < 65) && (prf_idx >= THEFT_BOMB) ) { if (THEFT_BOMB == prf_idx) { // Generate a value weapPref[THEFT_BOMB] = (150. + vengeful) * (static_cast(type) / 2. + .5) * ( (selfPreservation + 2.) / 2.) * (std::abs(defensive) + 1.0); DEBUG_LOG_EMO(name, "New preference for %s : %5d", weapon[THEFT_BOMB].getName(), weapPref[THEFT_BOMB]) } ++prf_idx; // Skip new index value } // End of version 65 THEFT_BOMB /* === Version Checks for changed weapons / items === */ if ( (file_version < 65) ) { if ( (ITEM_FUEL == (prf_idx - WEAPONS)) && (prf_val < 1) ) { // Generate a value prf_val = static_cast(MAX_WEAP_PROBABILITY) / 60. * ( static_cast(type) / 2. + .5); DEBUG_LOG_EMO(name, "Changed preference for %s : %5d", item[ITEM_FUEL].getName(), prf_val) } } // End of version 65 ITEM_FUEL /* === Store data === */ // (If someone edited the save game, the index might // be too larger now, so check again to be safe!) if (prf_idx < THINGS) weapPref[prf_idx] = prf_val; // separate very old from new save games has_pref_loaded = true; } } // Inventory of the weapons else if (!strcasecmp(field, "WEAPON")) { int32_t weap_idx = -1; int32_t weap_val = -1; sscanf(value, "%d %d", &weap_idx, &weap_val); if ( (weap_idx > -1) && (weap_idx < WEAPONS) ) { /* === Version Checks for new weapons === */ if ( (file_version < 65) && (weap_idx >= THEFT_BOMB) ) ++weap_idx; // Skip new index value /* === Store data === */ // (If someone edited the save game, the index might // be too larger now, so check again to be safe!) if (weap_idx < WEAPONS) nm[weap_idx] = weap_val; } } // Inventory of the items else if (!strcasecmp(field, "ITEM")) { int32_t item_idx = -1; int32_t item_val = -1; sscanf(value, "%d %d", &item_idx, &item_val); if ( (item_idx > -1) && (item_idx < ITEMS) ) { /* === Version Checks for new weapons === */ // Currently there are no new items. ni[item_idx] = item_val; } } // Opponents Memory else if (!strcasecmp(field, "OPPCOUNT") ) { int32_t safed_count = 0; sscanf(value, "%d", &safed_count ); // prepare the memory if (opponents) { delete [] opponents; opponents = nullptr; } if (safed_count) { try { oppCount = safed_count; opponents = new opp_t[oppCount]; } catch (std::exception &e) { cerr << "ERROR: Unable to allocate "; cerr << (sizeof(opp_t) * oppCount); cerr << " bytes for opponents array!" << endl; cerr << "ERROR: " << e.what() << endl; oppCount = 0; } } else oppCount = 0; } // end of oppcount handling else if (!strcasecmp(field, "OPPMEM_INDX") ) { int32_t opp_idx = -1; int32_t opp_val = -1; sscanf(value, "%d %d", &opp_idx, &opp_val); if ( (opp_idx > -1) && (opp_idx < oppCount) ) { opponents[opp_idx].index = opp_val; opponents[opp_idx].opponent = env.allPlayers[opp_val]; } } else if (!strcasecmp(field, "OPPMEM_DDEA") ) { int32_t opp_idx = -1; int32_t opp_val = -1; sscanf(value, "%d %d", &opp_idx, &opp_val); if ( (opp_idx > -1) && (opp_idx < oppCount) ) opponents[opp_idx].damage_from = opp_val; } else if (!strcasecmp(field, "OPPMEM_DDON") ) { int32_t opp_idx = -1; int32_t opp_val = -1; sscanf(value, "%d %d", &opp_idx, &opp_val); if ( (opp_idx > -1) && (opp_idx < oppCount) ) opponents[opp_idx].damage_to = opp_val; } else if (!strcasecmp(field, "OPPMEM_FEAR") ) { int32_t opp_idx = -1; double opp_val = 0.; sscanf(value, "%d %lf", &opp_idx, &opp_val); if ( (opp_idx > -1) && (opp_idx < oppCount) ) opponents[opp_idx].fear = opp_val; } else if (!strcasecmp(field, "OPPMEM_KIME") ) { int32_t opp_idx = -1; int32_t opp_val = -1; sscanf(value, "%d %d", &opp_idx, &opp_val); if ( (opp_idx > -1) && (opp_idx < oppCount) ) opponents[opp_idx].killed_me = opp_val; } else if (!strcasecmp(field, "OPPMEM_KITH") ) { int32_t opp_idx = -1; int32_t opp_val = -1; sscanf(value, "%d %d", &opp_idx, &opp_val); if ( (opp_idx > -1) && (opp_idx < oppCount) ) opponents[opp_idx].killed_them = opp_val; } } // End of having a line } while (result && !done); // End of reading player section // For backwards compatibility the preferences must be generated // if this is a PERPLAY type player but no preferences got saved. // This might be the case for very old save games. if (!has_pref_loaded && (PERPLAY_PREF == preftype) && (type != HUMAN_PLAYER) ) generatePreferences(); } /// @brief reserve memory for the opponents array and fill it void PLAYER::newGame() { if (env.numGamePlayers) { if (opponents) { delete [] opponents; opponents = nullptr; } try { oppCount = env.numGamePlayers; opponents = new opp_t[oppCount]; } catch (std::exception &e) { cerr << "ERROR: Unable to allocate " << (sizeof(opp_t) * oppCount); cerr << " bytes for opponents array!" << endl; cerr << "ERROR: " << e.what() << endl; oppCount = 0; } } if (oppCount) { for (int32_t i = 0; i < oppCount; ++i) { opponents[i].opponent = env.players[i]; opponents[i].index = env.players[i]->index; } } } // run this at the beginning of each turn void PLAYER::newRound() { // if the player is under computer control, give it back to the player if ( type == PART_TIME_BOT ) type = HUMAN_PLAYER; if (!tank) { try { tank = new TANK(); tank->player = this; } catch (std::exception &e) { cerr << "FATAL: Error allocating memory for TANK in player.cpp:"; cerr << __LINE__ << " : " << e.what() << endl; global.set_command(GLOBAL_COMMAND_QUIT); } } // tank->newRound() doesn't need to be called, because // the game loop will do that on tank placement. // if we are playing in a campaign, raise the AI level for every 20% played // rounds, so that useless players become deadly at 80% played rounds if (env.campaign_mode && (global.currentround < env.nextCampaignRound) && (type > HUMAN_PLAYER) && (type < DEADLY_PLAYER) ) ++type; // reset some basic values changed_weapon = false; time_left_to_fire = env.maxFireTime; skip_me = false; last_shield_used = 0; // Save damage from opponents if there was some not processed. // Although this would be done automatically once the AI takes // this player over the next time, lingering damage from the // last round can lead to panic actions and/or revenge actions // against players, who haven't fired, yet. // Noting the damage will raise the probability, but only once // the opponent had their first shot. for (int32_t i = 0; i < oppCount; ++i) { if (opponents[i].damage_last > 0) { opponents[i].damage_from += opponents[i].damage_last; opponents[i].damage_last = 0; } } } void PLAYER::noteDamageFrom(PLAYER* opponent, int32_t damage, bool destroyed) { if (opponent) { int32_t idx = oppCount; int32_t max_score = 0; for (int32_t i = 0; i < oppCount; ++i) { if (opponents[i].revenge_dmg > max_score) max_score = opponents[i].revenge_dmg; if (opponents[i].opponent == opponent) idx = i; } if ( idx < oppCount ) { opponents[idx].damage_last += damage; if (destroyed) opponents[idx].killed_me++; // If this one has the new top score and is not // the current revenge player, get a message out int32_t rev_dmg = opponents[idx].damage_last + opponents[idx].revenge_dmg; if ( (opponents[idx].opponent != this) && (opponents[idx].opponent != revenge) && (rev_dmg > (vengeanceThreshold * tank->getMaxLife())) && (rev_dmg > max_score) ) { revenge = opponents[idx].opponent; if (!global.skippingComputerPlay ) { try { new FLOATTEXT(selectRevengePhrase(), tank->x, tank->y - 30, .0, -.4, color, CENTRE, TS_NO_SWAY, 300, false); } catch (...) { perror ( "player.cpp: Failed to allocate memory for" " revenge text in noteDamageFrom()."); } } } } // end of having the opponent } // end of having any opponent } void PLAYER::noteDamageTo(PLAYER* opponent, int32_t damage, bool destroyed) { if (opponent) { int32_t idx = 0; while ((idx < oppCount) && (opponent != opponents[idx].opponent)) ++idx; if ( idx < oppCount ) { opponents[idx].damage_to += damage; if (destroyed) opponents[idx].killed_them++; } } } // if we have some shield strength at the end of the round, then // reclaim this shield back into our inventory void PLAYER::reclaimShield() { if (tank && last_shield_used && (tank->sh > 0)) ni[last_shield_used] += 1; last_shield_used = 0; } // This function takes one off the player's time to fire. // If the player runs out of time, the function returns true. // If the player has time left, or no time clock is being used, // then the function returns false. bool PLAYER::reduceClock() { if (! time_left_to_fire) // not using clock return false; if (0 == --time_left_to_fire) { time_left_to_fire = env.maxFireTime; return true; } return false; } /// @brief save game relevant data to @a file void PLAYER::save_game_data(FILE* file) { fprintf(file, "KILLED=%d\n", killed); fprintf(file, "KILLS=%d\n", kills); fprintf(file, "MONEY=%d\n", money); fprintf(file, "SCORE=%d\n", score); fprintf(file, "TYPE=%d\n", type); fprintf(file, "TYPESAVED=%d\n", type_saved); // Preferences, needed for "PERPLAY_PREF" - players if ( (PERPLAY_PREF == preftype) && (HUMAN_PLAYER != type) ) { // Note: "ALWAYS_PREF" - players do not need this here, but in // save_to_file(), as the preferences are generated only once. fprintf(file, "DEFENSIVE=%lf\n", defensive); fprintf(file, "PAINSENSITIVITY=%lf\n", painSensitivity); fprintf(file, "SELFPRESERVATION=%lf\n", selfPreservation); fprintf(file, "VENGEANCETHRESHOLD=%lf\n", vengeanceThreshold); fprintf(file, "VENGEFUL=%d\n", vengeful); for (int32_t i = 0; i < THINGS; ++i) fprintf (file, "WEAPONPREFERENCES=%d %d\n", i, weapPref[i]); } // Inventory of the weapons for (int32_t i = 0; i < WEAPONS; ++i) fprintf(file, "WEAPON=%d %d\n", i, nm[i]); // Inventory of the items for (int32_t i = 0; i < ITEMS; ++i) fprintf(file, "ITEM=%d %d\n", i, ni[i]); // Opponents memory fprintf(file, "OPPCOUNT=%d\n", oppCount); for (int32_t i = 0; i < oppCount; ++i) { int32_t idx = opponents[i].index; // Just a shortcut // Save damage from last turn if any is still there: if (opponents[i].damage_last > 0) { opponents[i].damage_from += opponents[i].damage_last; opponents[i].damage_last = 0; } fprintf(file, "OPPMEM_INDX=%d %d\n", i, idx); fprintf(file, "OPPMEM_DDEA=%d %d\n", i, opponents[i].damage_from); fprintf(file, "OPPMEM_DDON=%d %d\n", i, opponents[i].damage_to); fprintf(file, "OPPMEM_FEAR=%d %lf\n", i, opponents[i].fear); fprintf(file, "OPPMEM_KIME=%d %d\n", i, opponents[i].killed_me); fprintf(file, "OPPMEM_KITH=%d %d\n", i, opponents[i].killed_them); } fprintf(file, "***\n"); } /// @brief dump full player data to @a file void PLAYER::save_to_file (FILE *file) { if (! file) return; // start section with "*PLAYER*" fprintf (file, "*PLAYER*\n"); fprintf (file, "NAME=%s\n", name); // Set first for easier debugging fprintf (file, "COLOR=%d\n", color); fprintf (file, "DEFENSIVE=%lf\n", defensive); fprintf (file, "PAINSENSITIVITY=%lf\n", painSensitivity); fprintf (file, "PLAYED=%u\n", played); fprintf (file, "PREFTYPE=%d\n", preftype); fprintf (file, "SELFPRESERVATION=%lf\n", selfPreservation); fprintf (file, "TANK_BITMAP=%d\n", tankbitmap); fprintf (file, "TEAM=%d\n", team); fprintf (file, "TYPE=%d\n", type); fprintf (file, "TYPESAVED=%d\n", type_saved); fprintf (file, "VENGEANCETHRESHOLD=%lf\n", vengeanceThreshold); fprintf (file, "VENGEFUL=%d\n", vengeful); fprintf (file, "WON=%u\n", won); // Preferences, needed for "ALWAYS_PREF" - players if (ALWAYS_PREF == preftype) { // Note: "PERPLAY_PREF" - players do not need this here, but in // save_game_data(), as the preferences are different in each game. for (int32_t i = 0; i < THINGS; ++i) fprintf (file, "WEAPONPREFERENCES=%d %d\n", i, weapPref[i]); } fprintf (file, "***\n"); } const char* PLAYER::selectGloatPhrase () { return env.gloat->Get_Random_Line(); } /// @return a constructed panic phrase which must be freed! const char *PLAYER::selectPanicPhrase (PLAYER* shocker) { if (! shocker) return nullptr; const char* line = env.panic->Get_Random_Line(); size_t tLen = strlen(shocker->getName()) + strlen(line); char* pText = (char *)calloc(tLen + 1, sizeof (char)); if (!pText) return nullptr; snprintf(pText, tLen, line, shocker->getName()); return pText; } const char *PLAYER::selectKamikazePhrase () { return env.kamikaze->Get_Random_Line(); } /// @return a constructed retaliation phrase which must be freed! const char *PLAYER::selectRetaliationPhrase () { if (! revenge) return nullptr; const char* line = env.retaliation->Get_Random_Line(); const char* rname = revenge->getName(); size_t tLen = strlen(rname) + 4 + strlen(line); char* pText = (char *)calloc(tLen + 1, sizeof (char)); if (pText) atanks_snprintf(pText, tLen, "%s%s !!!", line, rname); return pText; } const char* PLAYER::selectRevengePhrase () { return env.revenge->Get_Random_Line(); } const char *PLAYER::selectSuicidePhrase () { return env.suicide->Get_Random_Line(); } /// @brief store @a last_opp to be remembered as the current/last target void PLAYER::setLastOpponent(sOpponent* last_opp) { last_opponent = last_opp; } void PLAYER::setName (const char* name_) { if (!name_ || strncmp(name, name_, NAME_LEN - 1)) { memset(name, 0, NAME_LEN); if (name_) strncpy (name, name_, NAME_LEN - 1); } } /// @brief fill in the list of desired items and update their preferences void PLAYER::updatePreferences(int32_t max_boost, int32_t max_score) { // 1.: Fill cart and preference array. // The preferences are copied, as they might get boosted this round int32_t weapons_in_stock = generateDesiredList(); int32_t ai_level = static_cast(type); // 2.: Amplify wish list by current boost and score situation needAmp = false; needArmour = false; needDamage = false; // Check whether boosting armour / amps is wanted: if (getBoostValue() < (max_boost / ai_level)) { // Yes. which ? if (defensive < 0.) { DEBUG_LOG_FIN(name, "updPref: Need to boost amps (%d / %d)", getBoostValue(), max_boost / ai_level) needAmp = true; // Try to come back with more damage output } else { DEBUG_LOG_FIN(name, "updPref: Need to boost armour (%d / %d)", getBoostValue(), max_boost / ai_level) needArmour = true; // Try to come back with more endurance } } // Fallen behind? Need more weapons? if ( (score <= (max_score / (ai_level + 1))) && (weapons_in_stock < (2 * ai_level)) ) { DEBUG_LOG_FIN(name, "updPref: Need to boost weapons (%d / %d)", score, max_score / (ai_level + 1)) needDamage = true; } // 3.: Boost preferences if wanted and lower weapon/item // preferences if there are enough in stock already. // Further note down items to sell. boostPrefences(needArmour, needAmp, needDamage); // 4.: Sort these items by preferences bool isSorted = false; while (!isSorted) { isSorted = true; for (int32_t i = 1; i < THINGS; ++i) { int32_t idx_l = desired[i - 1]; int32_t idx_r = desired[i]; if ( (currPref[idx_l] < currPref[idx_r]) // sort SML_MIS to the back, too || ( (0 == idx_l) && idx_r) ) { isSorted = false; desired[i] = idx_l; desired[i - 1] = idx_r; } } } #ifdef ATANKS_DEBUG_FINANCE // Get out the top twenty for (int32_t i = 0; i < THINGS; ++i) { DEBUG_LOG_FIN(name, "%2d. preference: %6d - %s", i + 1, currPref[desired[i]], desired[i] < WEAPONS ? weapon[desired[i]].getName() : item[desired[i] - WEAPONS].getName()) } #endif // ATANKS_DEBUG_FINANCE } /// @brief mini ctor to pacify Visual C++ PLAYER_mini::PLAYER_mini() { memset(name, 0, sizeof(char) * NAME_LEN); strncpy(name, "New Player", NAME_LEN); } /// @brief backup a players editable data void PLAYER_mini::copy_from(PLAYER* source) { if (source) { assert( (source->index > -1) && "INDEX ERROR on PLAYER!"); color = source->color; index = source->index; strncpy(name, source->getName(), NAME_LEN); played = source->played; player = source; preftype = source->preftype; tankbitmap = source->tankbitmap; team = source->team; type = source->type; won = source->won; } } /// @brief copy backed up values back to the source player void PLAYER_mini::write_back(PLAYER* target) { if (target) player = target; if (player) { player->color = color; player->setName(name); // played is read only. player->preftype = preftype; player->tankbitmap = tankbitmap; player->team = team; player->type = type; // won is read only. } } /// @brief action function to display the edit player screen int32_t edit_player(PLAYER** target, int32_t) { int32_t result = 0; assert(target && "ERROR: target must be set"); assert(*target && "ERROR: target must point to something valid!"); if (!target || !(*target)) return -1; int32_t menuMid = 300; int32_t itemLeft = menuMid - 75; int32_t itemHeight = env.fontHeight + 2; int32_t itemPadding = 2; int32_t itemFullHeight = itemHeight + itemPadding; int32_t itemY = itemFullHeight * 3; int32_t btnHeight = env.misc[7]->h + itemPadding; int32_t menuHeight = env.menuEndY - env.menuBeginY; // Raw height // Use "Mini-Player" struct to be able to cancel player editing PLAYER_mini player_bak; player_bak.copy_from(*target); // The "Are you sure" screen when deleting a player Menu areyousure(MC_AREYOUSURE, env.halfWidth - menuMid, env.menuBeginY); areyousure.addButton( 1, nullptr, PE_CONFIRM_DEL, env.misc[7], nullptr, env.misc[8], false, menuMid + 50, menuHeight- btnHeight - 6, 0, 0, itemPadding); areyousure.addButton( 2, nullptr, PE_BACK, env.misc[7], nullptr, env.misc[8], false, menuMid - env.misc[7]->w - 50, menuHeight- btnHeight - 6, 0, 0, itemPadding); // The menu, but with the player name as title Menu menu(MC_PLAYER, env.halfWidth - menuMid, env.menuBeginY); menu.setTitle(player_bak.name, false); // "Name" menu.addText(player_bak.name, 1, NAME_LEN, player_bak.color, "%s", itemLeft, itemY, 150, itemHeight, itemPadding); itemY += itemFullHeight; // "Colour" menu.addColor(&player_bak.color, 2, itemLeft, itemY, 150, 50, 25, itemPadding); itemY += 50 + itemPadding; // "Type" menu.addValue(&player_bak.type, 3, nullptr, BLACK, TC_PLAYERTYPE, static_cast(DEADLY_PLAYER), itemLeft, itemY, 150, itemHeight, itemPadding); itemY += itemFullHeight; // "Team" menu.addValue(&player_bak.team, 4, nullptr, BLACK, TC_PLAYERTEAM, static_cast(TEAM_JEDI), itemLeft, itemY, 150, itemHeight, itemPadding); itemY += itemFullHeight; // "Generate Pref" menu.addValue(&player_bak.preftype, 5, nullptr, BLACK, TC_PLAYERPREF, static_cast(ALWAYS_PREF), itemLeft, itemY, 150, itemHeight, itemPadding); itemY += itemFullHeight; // "Played" menu.addText(&player_bak.played, 6, BLACK, "% 8u", itemLeft, itemY, 150, itemHeight, itemPadding); itemY += itemFullHeight; // "Won" menu.addText(&player_bak.won, 7, BLACK, "% 8u", itemLeft, itemY, 150, itemHeight, itemPadding); itemY += itemFullHeight; // "Tank Type" menu.addValue(&player_bak.tankbitmap, 8, nullptr, BLACK, TC_TANKTYPE, static_cast(TT_MINI), itemLeft, itemY, 150, 35, itemPadding, display_tank_desc); itemY += 35 + itemPadding; // "Delete This Player" menu.addMenu(&areyousure, 9, RED, itemLeft, itemY, 150, itemFullHeight, itemPadding); // "Okay" and "Back" menu.addButton(10, nullptr, PE_CONFIRM_EDIT, env.misc[7], nullptr, env.misc[8], false, menuMid + 50, menuHeight- btnHeight - 6, 0, 0, itemPadding); menu.addButton(11, nullptr, PE_BACK, env.misc[7], nullptr, env.misc[8], false, menuMid - env.misc[7]->w - 50, menuHeight- btnHeight - 6, 0, 0, itemPadding); result = menu(); // If the editing is confirmed, the backup must be written back if (PE_CONFIRM_EDIT & result) player_bak.write_back(); // If the player shall be deleted, the player index must be added if (PE_CONFIRM_DEL & result) result |= player_bak.index; return result; } static PLAYER_mini player_new; //!< Used by new_player to keep previous settings /// @brief action function to display the edit player screen int32_t new_player(PLAYER** target, int32_t) { int32_t result = 0; assert(target && "ERROR: target must be set"); assert((nullptr == *target) && "ERROR: *target must nullptr!"); if (!target || *target) return -1; int32_t menuMid = 300; int32_t itemLeft = menuMid - 75; int32_t itemHeight = env.fontHeight + 2; int32_t itemPadding = 2; int32_t itemFullHeight = itemHeight + itemPadding; int32_t itemY = itemFullHeight * 3; int32_t btnHeight = env.misc[7]->h + itemPadding; int32_t menuHeight = env.menuEndY - env.menuBeginY; // Raw height // The menu, with title from the menu class Menu menu(MC_PLAYER, env.halfWidth - menuMid, env.menuBeginY); // "Name" menu.addText(player_new.name, 1, NAME_LEN, player_new.color, "%s", itemLeft, itemY, 150, itemHeight, itemPadding); itemY += itemFullHeight; // "Colour" menu.addColor(&player_new.color, 2, itemLeft, itemY, 150, 50, 25, itemPadding); itemY += 50 + itemPadding; // "Type" menu.addValue(&player_new.type, 3, nullptr, BLACK, TC_PLAYERTYPE, static_cast(DEADLY_PLAYER), itemLeft, itemY, 150, itemHeight, itemPadding); itemY += itemFullHeight; // "Team" menu.addValue(&player_new.team, 4, nullptr, BLACK, TC_PLAYERTEAM, static_cast(TEAM_JEDI), itemLeft, itemY, 150, itemHeight, itemPadding); itemY += itemFullHeight; // "Generate Pref" menu.addValue(&player_new.preftype, 5, nullptr, BLACK, TC_PLAYERPREF, static_cast(ALWAYS_PREF), itemLeft, itemY, 150, itemHeight, itemPadding); itemY += itemFullHeight; // "Played" and "Won" do not make sense here // "Tank Type" menu.addValue(&player_new.tankbitmap, 8, nullptr, BLACK, TC_TANKTYPE, static_cast(TT_MINI), itemLeft, itemY, 150, 35, itemPadding, display_tank_desc); itemY += 35 + itemPadding; // "Delete This Player" is surely not needed // "Okay" and "Back" menu.addButton(10, nullptr, PE_CONFIRM_NEW, env.misc[7], nullptr, env.misc[8], false, menuMid + 50, menuHeight- btnHeight - 6, 0, 0, itemPadding); menu.addButton(11, nullptr, PE_BACK, env.misc[7], nullptr, env.misc[8], false, menuMid - env.misc[7]->w - 50, menuHeight- btnHeight - 6, 0, 0, itemPadding); while (!result) { char existsMessage[200]; result = menu(); // If the player is to be created, two things must happen. // First, ensure that the name is unique // Second, create the real player if (PE_CONFIRM_NEW & result) { if (-1 == env.getPlayerByName(player_new.name)) { *target = env.createNewPlayer(player_new.name); if (*target) player_new.write_back(*target); } else { snprintf(existsMessage, 199, "The player \"%s\" already exists!", player_new.name); errorMessage = existsMessage; errorX = env.halfWidth - text_length(font, errorMessage) / 2; errorY = env.menuBeginY + itemFullHeight; result = 0; } } } // End of !result return result; } atanks-6.6/src/globaltypes.h0000644000175000017500000001541313006377360014264 0ustar apoapo#pragma once #ifndef ATANKS_SRC_GLOBALTYPES_H_INCLUDED #define ATANKS_SRC_GLOBALTYPES_H_INCLUDED /* * atanks - obliterate each other with oversize weapons * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #define DEFAULT_SCREEN_WIDTH 800 #define DEFAULT_SCREEN_HEIGHT 600 #define GAMENAMELEN 64 #define MAX_INTEREST_AMOUNT 100000 #define MAX_TEAM_AMOUNT 500000 #define DEMO_WAIT_TIME 60 #ifdef ATANKS_IS_WINDOWS # define MAX_AI_TIME 30 // DirectDraw is too slow, allow more time #else # define MAX_AI_TIME 10 // Standard with anything but windows #endif // ATANKS_IS_MSVC #define ALL_SOCKETS -1 // Start enforcing unified integer typing #include // Use atomic types for thread safety where locks are a bad idea #include typedef std::atomic_bool abool_t; typedef std::atomic_flag aflag_t; typedef std::atomic_int_fast32_t ai32_t; /** @file globaltypes.h * @brief Definitions of types relevant to global data. **/ /** @enum eBackgroundTypes * @brief types for drawing menu background **/ enum eBackgroundTypes { BACKGROUND_BLANK = 0, BACKGROUND_CIRCLE, BACKGROUND_LINE, BACKGROUND_SQUARE, BACKGROUND_COUNT, }; /** @enum eBoxModes * @brief Whether boxed mode is on, off or random. **/ enum eBoxModes { BM_OFF = 0, BM_ON, BM_RANDOM }; /** @enum eColourTheme * @brief determine which colour theme to use **/ enum eColourTheme { CT_REGULAR = 0, CT_CRISPY }; /** @enum eCOntrol * @brief control results for human and computer control **/ enum eControl { CONTROL_NONE = 0, CONTROL_FIRE = 101, // Explicitly fire a weapon/item CONTROL_OTHER = 102, // Something else but firing something CONTROL_SKIP = 201, // Turn on skipping computer play through in game menu CONTROL_QUIT = 202 // Any means to quit the game }; /** @enum eDataStage * @brief The data stage of the weapons text file loading **/ enum eDataStage { DS_NAME = 0, DS_DESC, DS_DATA }; eDataStage &operator++ (eDataStage &ds); // Enable pre-increment /** @enum eFileStage * @brief The file stage of the weapons text file loading **/ enum eFileStage { FS_WEAPONS = 0, FS_NATURALS, FS_ITEMS }; /** @enum eFullScreen * @brief Whether to use full screen or not. **/ enum eFullScreen { FULL_SCREEN_EITHER = 0, FULL_SCREEN_TRUE, FULL_SCREEN_FALSE }; /** @enum eLandscapeTypes * @brief determine the types the landscape can have **/ enum eLandscapeTypes { LAND_RANDOM = 0, LAND_CANYONS, LAND_MOUNTAINS, LAND_VALLEYS, LAND_HILLS, LAND_FOOTHILLS, LAND_PLAIN, LAND_NONE }; /** @enum eLandSlideTypes * @brief determine the kind of land sliding. **/ enum eLandSlideTypes { SLIDE_NONE = 0, // gravity does not exist SLIDE_TANK_ONLY, // dirt falls, tank does not SLIDE_INSTANT, // dirt falls without you seeing it SLIDE_GRAVITY, // normal SLIDE_CARTOON // gravity is delayed }; /** @enum eLanguages * @brief Declare the list of supported languages. * * The last item EL_LANGUAGE_COUNT can be used to retrieve the * number of supported languages. * * This enum is sorted in the order the languages should be listed. **/ enum eLanguages { EL_ENGLISH = 0, EL_PORTUGUESE, EL_FRENCH, EL_GERMAN, EL_SLOVAK, EL_RUSSIAN, EL_SPANISH, EL_ITALIAN, EL_LANGUAGE_COUNT }; // Helper operators to rotate languages: eLanguages &operator++(eLanguages &lang); eLanguages operator++ (eLanguages &lang, int); eLanguages &operator--(eLanguages &lang); eLanguages operator-- (eLanguages &lang, int); eLanguages &operator+=(eLanguages &lang, int32_t val); eLanguages &operator-=(eLanguages &lang, int32_t val); /** @enum eSatelliteLaser * @brief Size of satellite laser **/ enum eSatelliteLaser { SL_NONE = 0, SL_WEAK, SL_STRONG, SL_SUPER }; /** @enum eSaveGameStage * @brief Stages written in a saved game file **/ enum eSaveGameStage { SGS_NONE = 0, SGS_GLOBAL, SGS_ENVIRONMENT, SGS_PLAYERS, SGS_VERSION }; /** @enum eSkipPlayType * @brief How skipping computer play is managed **/ enum eSkipPlayType { SKIP_NONE = 0, SKIP_HUMANS_DEAD }; /** @enum eSoundDriver * @brief determine which sound driver to use **/ enum eSoundDriver { SD_AUTODETECT = 0, SD_OSS, SD_ESD, // Does anybody still use that? SD_ARTS, // Long long deprecated SD_ALSA, SD_JACK // What about PulseAudio? }; /** @enum eSounds * @brief enum that describes the sound array **/ enum eSounds { // === FIRE a weapon / an item === SND_FIRE_MISS_SML = 0, SND_FIRE_MISS_MED = 1, SND_FIRE_MISS_LRG = 2, SND_FIRE_NUKE = 3, SND_FIRE_DEATHEAD = 4, SND_FIRE_LASER = 5, SND_FIRE_TELEPORT = 6, SND_FIRE_WIND_FAN = 7, // === EXPLosion of a weapon / an item === SND_EXPL_MISS_SML = 10, SND_EXPL_MISS_MED = 11, SND_EXPL_MISS_LRG = 12, SND_EXPL_NUKE = 13, SND_EXPL_DEATHEAD = 14, SND_EXPL_DIRT_BALL_BOMB = 15, SND_EXPL_SHAPED_CHARGE = 16, SND_EXPL_WIDE_BOY = 17, SND_EXPL_CUTTER = 18, SND_EXPL_NAPALM = 19, SND_EXPL_NAPALM_BURN = 20, SND_EXPL_PER_CENT_BOMB = 21, SND_EXPL_REDUCER = 22, // === NATUral going off === SND_NATU_THUNDER_SMLMED = 30, SND_NATU_THUNDER_LRG = 31, SND_NATU_DIRT_FALL = 32, // === INTErface sounds === SND_INTE_BUTTON_CLICK = 40, // Play BackGround MUSIC SND_BG_MUSIC = 50, SND_COUNT }; /** @enum eStages * @brief General stages for the game flow. **/ enum eRoundStages { STAGE_AIM = 0, STAGE_FIRE, STAGE_SCOREBOARD, // The scoreboard is displayed STAGE_ENDGAME // All actions have ceased, the round has ended. }; /** @enum eViolentDeath * @brief Level of automatic violent death option. **/ enum eViolentDeath { VD_OFF = 0, VD_LIGHT, VD_MEDIUM, VD_HEAVY }; /** @enum eWallTypes * @brief All the types the walls can have. **/ enum eWallTypes { WALL_RUBBER = 0, WALL_STEEL, WALL_SPRING, WALL_WRAP, WALL_RANDOM }; /** @enum eWinner * @brief All possible winning sets **/ enum eWinner { WINNER_NO_WIN = 101, WINNER_DRAW = 102, WINNER_JEDI = 104, WINNER_SITH = 105 }; #endif // ATANKS_SRC_GLOBALTYPES_H_INCLUDED atanks-6.6/src/button.cpp0000644000175000017500000000713612636021030013574 0ustar apoapo/* This file contains funcions for the BUTTON class. These are being moved out of the atanks.cc file. -- Jesse Updated to be more variable and self managing -- Sven */ #include "button.h" #include "sound.h" /** @brief Create a graphical button with no optional title and default sound * * Note: if @a click_ is nullptr, global_->sounds[8] is used. */ BUTTON::BUTTON(int32_t left_, int32_t top_, BITMAP* bmp_, BITMAP* hover_, BITMAP* depressed_) : bmp (bmp_ ? bmp_ : hover_ ? hover_ : depressed_ ? depressed_ : nullptr), depressed(depressed_ ? depressed_ : hover_ ? hover_ : bmp_ ? bmp_ : nullptr), hover (hover_ ? hover_ : bmp_ ? bmp_ : depressed_ ? depressed_ : nullptr) { location.x = left_; location.y = top_; location.w = bmp ? bmp->w : 0; location.h = bmp ? bmp->h : 0; x1 = location.x; y1 = location.y; x2 = location.w + x1; y2 = location.h + y1; x3 = x1 + (location.w / 2); y3 = y1 + (location.h / 2); } /** @brief Create a graphical button * * Note: if @a click_ is nullptr, global_->sounds[8] is used. */ BUTTON::BUTTON(const char* text_, bool text_only_, int32_t left_, int32_t top_, BITMAP* bmp_, BITMAP* hover_, BITMAP* depressed_) : BUTTON(left_, top_, bmp_, hover_, depressed_) { text_only = text_only_; text = text_; text_width = text ? text_length(font, text) : 0; } /** @brief Create a button with manual drawing */ BUTTON::BUTTON(const char* text_, bool text_only_, int32_t left_, int32_t top_, int32_t width_, int32_t height_) : BUTTON(text_, text_only_, left_, top_, nullptr, nullptr, nullptr) { location.w = width_; location.h = height_; x2 = location.w + x1; y2 = location.h + y1; x3 = x1 + (location.w / 2); y3 = y1 + (location.h / 2); } void BUTTON::draw() { bool mouse_over = isMouseOver(); bool pressed = isPressed(); if (!text_only) { if (bmp) draw_sprite (global.canvas, mouse_over ? (pressed ? depressed : hover) : bmp, x1, y1); else { int32_t fg = mouse_over ? (pressed ? SILVER : GREY) : WHITE; int32_t lc = mouse_over ? (pressed ? GREY : WHITE) : SILVER; int32_t dc = mouse_over ? (pressed ? WHITE : SILVER) : GREY; rect (global.canvas, x1 , y1 , x2 , y2 , BLACK); rectfill (global.canvas, x1 + 1, y1 + 1, x2 - 1, y2 - 1, fg); line (global.canvas, x2 - 2, y2 - 2, x1 + 2, y2 - 2, dc); line (global.canvas, x2 - 3, y2 - 3, x1 + 3, y2 - 3, dc); line (global.canvas, x2 - 2, y2 - 2, x2 - 2, y1 + 2, dc); line (global.canvas, x2 - 3, y2 - 3, x2 - 3, y1 + 3, dc); line (global.canvas, x1 + 2, y1 + 2, x2 - 2, y1 + 2, lc); line (global.canvas, x1 + 3, y1 + 3, x2 - 3, y1 + 3, lc); line (global.canvas, x1 + 2, y1 + 2, x1 + 2, y2 - 2, lc); line (global.canvas, x1 + 3, y1 + 3, x1 + 3, y2 - 3, lc); rect (global.canvas, x1 + 4, y1 + 4, x2 - 4, y2 - 4, BLACK); } } if (text) textout_centre_ex (global.canvas, font, text, x3, y3 - (text_height(font) / 2), text_only ? BLACK : WHITE, -1); global.make_update (x1 - 5, y1 - 5, x2 + 5, y2 + 5); } void BUTTON::getLocation(int32_t &x,int32_t &y,int32_t &w,int32_t &h) { x = location.x; y = location.y; w = location.w; h = location.h; } bool BUTTON::isMouseOver () { if ( (mouse_x >= x1) && (mouse_y >= y1) && (mouse_x <= x2) && (mouse_y <= y2) ) return true; return false; } bool BUTTON::isPressed() { if ((mouse_b & 3) && isMouseOver ()) { play_interface_sound(SND_INTE_BUTTON_CLICK); return true; } return false; } void BUTTON::setText(const char* text_) { text = text_; } atanks-6.6/src/beam.cpp0000644000175000017500000003634412636021030013170 0ustar apoapo/* * atanks - obliterate each other with oversize weapons * Copyright (C) 2003 Thomas Hudson * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "environment.h" #include "globaldata.h" #include "physobj.h" #include "player.h" #include "decor.h" #include "tank.h" #include "beam.h" #include "explosion.h" #include "sound.h" #include // Static helper for the drawing methods static int32_t beamRadius = 1; static int32_t beamSeed = 0; // Helper methods for the drawing methods static void lazerPoint (BITMAP *dest, int32_t x1, int32_t y1, int32_t color); static void lightningPoint(BITMAP *dest, int32_t x1, int32_t y1, int32_t age); /// @brief BEAM constructor BEAM::BEAM (PLAYER* player_, double x_, double y_, int32_t fireAngle, int32_t weaponType, eBeamType beam_type) : PHYSICAL_OBJECT(BT_WEAPON == beam_type), beamType (beam_type), tgtRightX (env.screenWidth) { this->player = player_; this->weapType = weaponType; assert( ( ((weapType >= SML_LIGHTNING) && (weapType <= LRG_LIGHTNING)) ||((weapType >= SML_LAZER) && (weapType <= LRG_LAZER)) ) && "ERROR: BEAM ctor called with something else than Lightning or Laser!"); #ifdef NETWORK char buffer[256]; sprintf(buffer, "BEAM %d %d %d %d", (int) x_, (int) y_, fireAngle, weaponType); env.sendToClients(buffer); #endif // NETWORK x = x_; y = y_; angle = fireAngle % 360; xv = env.slope[angle][0]; yv = env.slope[angle][1]; if (weapType < WEAPONS) weap = &(weapon[weapType]); else weap = &(naturals[weapType - WEAPONS]); radius = weap->radius; /* All beams should have the same age, no matter what the FPS settings * are. * Based on the default of 60 frames per second, the following frame * lengths are wanted: * Small lightning : 5 frames ( 1/12 second) * Medium lightning: 10 frames ( 1/ 6 second) * Large lightning : 15 frames ( 3/12 second) * Lightning increase : 5 frames per size = 1/12 FPS * Small laser : 10 frames ( 1/6 second) * Medium lightning: 20 frames ( 1/3 second) * Large lightning : 30 frames ( 1/2 second) * Laser increase : 10 frames per size = 1/6 FPS */ int32_t age_per_size = env.frames_per_second / 12; // Doubled for laser int32_t base_age = 5; // Doubled for laser int32_t weap_size = 0; // aka "small" if ( (weapType >= SML_LIGHTNING) && (weapType <= LRG_LIGHTNING) ) { numPoints = 4 + (rand () % 9); // 4 - 12 weap_size = weapType - SML_LIGHTNING; } else if ( (weapType >= SML_LAZER) && (weapType <= LRG_LAZER) ) { base_age *= 2; age_per_size *= 2; numPoints = 2; weap_size = weapType - SML_LAZER; if (BT_SDI != beamType) // The SDI constructor produces its own color color = makecol(255 - ((weapType - SML_LAZER) * 64), 128, 64 + ((weapType - SML_LAZER) * 64)); if ( !global.skippingComputerPlay && ( (BT_WEAPON == beamType) || (BT_SDI == beamType) ) ) play_fire_sound(weapType, x, 128 + (radius * 10), 1500 - (radius * 50)); } maxAge = base_age + (age_per_size * weap_size); damage = static_cast(weap->damage) / static_cast(maxAge); // Set an offset seed seed = rand() % std::max(env.screenWidth, env.screenHeight); createBeamPath(); // Now that the points are clear, a lightning bolt can emit its thunder: if ( !global.skippingComputerPlay && (BT_NATURAL == beamType) ) play_natural_sound(weapType, (points[0].x + points[numPoints - 1].x) / 2, 175 + (radius * 10), 1000); // Add to the chain unless it is a mind shot: if (BT_MIND_SHOT != beamType) global.addObject(this); } /// @brief special constructor for SDI lasers BEAM::BEAM(PLAYER* player_, double x_, double y_, double tx, double ty, int32_t weaponType, bool is_burnt_out) : BEAM(player_, x_, y_, GET_ANGLE(std::abs(ty - y_), tx - x_) + 90, weaponType, BT_SDI) { if (player) ++player->sdiShots; // SDI lasers are redder than normal, even more if burnt_out color = makecol(is_burnt_out ? 255 : 240 - ((weapType - SML_LAZER) * 16), is_burnt_out ? 32 : 64, is_burnt_out ? (weapType - SML_LAZER) * 32 : 128); // Limit the laser to the missiles coordinates points[numPoints - 1].x = tx; points[numPoints - 1].y = ty; } /// @brief BEAM destructor BEAM::~BEAM () { requireUpdate(); update(); weap = nullptr; if (points) delete [] points; points = nullptr; if (BT_MIND_SHOT != beamType) { global.make_bgupdate (dim_cur.x, dim_cur.y, dim_cur.w, dim_cur.h); global.make_bgupdate (dim_old.x, dim_old.y, dim_old.w, dim_old.h); // Let the land slide where the beam burned through: global.addLandSlide(tgtLeftX, tgtRightX, false); // Apply damage to all hit tanks: TANK* lt = nullptr; global.getHeadOfClass(CLASS_TANK, <); while (lt) { lt->applyDamage(); lt->getNext(<); } // Take out of the chain: global.removeObject(this); // The player is allowed to fire one more SDI laser again: if ((BT_SDI == beamType) && player) --player->sdiShots; } } void BEAM::applyPhysics () { if (++age > maxAge) destroy = true; if (BT_SDI != beamType) { createBeamPath(); } if (BT_MIND_SHOT != beamType) { if ( !global.skippingComputerPlay && !(rand() % (env.frames_per_second / 5)) ) { try { new DECOR ( points[numPoints-1].x, points[numPoints-1].y, (rand () % 7) - 3, 1 - (rand () % 6), radius, DECOR_SMOKE, 0); } catch (std::exception) { perror ( "beam.cpp: Failed to allocate memory for decor in applyPhysics"); } } try { new EXPLOSION(player, points[numPoints-1].x, points[numPoints-1].y, points[numPoints-1].x - points[0].x, points[numPoints-1].y - points[0].y, weapType, damage, isWeaponFire); } catch (std::exception) { perror ( "beam.cpp: Failed to allocate memory for explosion in applyPhysics"); } } } void BEAM::draw() { // never draw mind shots! if (BT_MIND_SHOT == beamType) return; int32_t oldDrawingMode = global.current_drawing_mode; drawing_mode(DRAW_MODE_TRANS, NULL, 0, 0); global.current_drawing_mode = DRAW_MODE_TRANS; set_trans_blender (0, 0, 0, 50); beamRadius = radius; beamSeed = seed; for (int32_t i = 1; i < numPoints; ++i) { int32_t left = std::min(points[i - 1].x, points[i].x); int32_t top = std::min(points[i - 1].y, points[i].y); int32_t right = std::max(points[i - 1].x, points[i].x); int32_t bottom = std::max(points[i - 1].y, points[i].y); if ( (weapType >= SML_LIGHTNING) && (weapType <= LRG_LIGHTNING) ) do_line (global.canvas, points[i - 1].x, points[i - 1].y, points[i ].x, points[i ].y, age, lightningPoint); else if ( (weapType >= SML_LAZER) && (weapType <= LRG_LAZER) ) do_line (global.canvas, points[i - 1].x, points[i - 1].y, points[i ].x, points[i ].y, color, lazerPoint); addUpdateArea (left - radius, top - radius, right - left + (2 * radius), bottom - top + (2 * radius) ); } drawing_mode(oldDrawingMode, NULL, 0, 0); global.current_drawing_mode = oldDrawingMode; requireUpdate (); } // === Private method implementations === // ====================================== /// @brief Create the basic points array with path tracing void BEAM::createBeamPath() { if (nullptr == points) { try { points = new POINT_t[numPoints]; } catch (std::exception) { perror ( "beam.cpp: Failed to allocate memory for points in BEAM::createBeamPath()"); } } // First determine the direct target - where does the beam end? double tx = x, ty = y; hitSomething = false; // If this is not the first call, use the already known endpoints if ( ( points[0].x || points[0].y || points[numPoints - 1].x || points[numPoints - 1].y) && !global.isDirtInBox( points[0].x, points[0].y, points[numPoints - 1].x, points[numPoints - 1].y) ) { tx = points[numPoints - 1].x; ty = points[numPoints - 1].y; } else { // The first point is the starting point, the last will become the target points[0].x = x; points[0].y = y; } while ( !hitSomething && (tx > -radius) && (tx < (env.screenWidth + radius)) && (ty > -radius) && (ty < (env.screenHeight + radius)) ) { // Assume PINK for off screen pixels int32_t col = PINK; if ( (tx > 0) && (tx < (env.screenWidth - 1)) && (ty > MENUHEIGHT) && (ty < (env.screenHeight - 1)) ) col = getpixel (global.terrain, tx, ty); if (PINK == col) { tx += xv; ty += yv; } else hitSomething = true; } // End of tracing pixels // tx and ty now result in the first obstacle (or screen border) // on a direct path. points[numPoints - 1].x = tx; points[numPoints - 1].y = ty; // If this is a lightning strike, points between the first and last // have to be (re-)generated. makeLightningPath(); // Generate new lightning offsets checking for collisions: traceBeamPath(); // If this is a mind_shot, it is immediately destroyed if (BT_MIND_SHOT == beamType) destroy = true; } /// @brief get the end of a mind shot laser void BEAM::getEndPoint(int32_t& x, int32_t& y) { x = points[numPoints - 1].x; y = points[numPoints - 1].y; } /// @brief create the lightning steps between the beginning and the end void BEAM::makeLightningPath() { if ( (numPoints > 2) && (weapType >= SML_LIGHTNING) && (weapType <= LRG_LIGHTNING) ) { int32_t maxP = numPoints - 1; double stepping = FABSDISTANCE2(points[0].x, points[0].y, points[maxP].x, points[maxP].y) / maxP; for (int32_t i = 1; i < maxP; ++i) { points[i].x = x + (xv * (static_cast(i) * stepping)) + (perlin2DPoint (1.0, 10. * radius, points[i].x + seed, points[i].y, 0.3, 6) * radius * 10.); points[i].y = y + (yv * (static_cast(i) * stepping)) + (perlin2DPoint (1.0, 10. * radius, points[i].x, points[i].y + seed, 0.3, 6) * radius * 10.); } } // End of lightning preparation } /// @brief this method is used by the satellite to move the beam with itself. void BEAM::moveStart(double x_, double y_) { x = x_; y = y_; if (points) { points[0].x = x; points[0].y = y; } } /// @brief walk through the beam points and check whether anything is hit void BEAM::traceBeamPath() { int32_t minRange = radius + 2; bool canHit = false; hitSomething = false; for (int32_t i = 1; !hitSomething && (i < numPoints); ++i) { double startX = points[i-1].x; double startY = points[i-1].y; double endX = points[i].x; double endY = points[i].y; bool chkTanks = (BT_SDI == beamType) ? false : global.areTanksInBox(startX, startY, endX, endY); bool chkDirt = global.isDirtInBox (startX, startY, endX, endY); // Break this if there is nothing possibly in between if (!(chkTanks || chkDirt) ) continue; int32_t range = 0; double distX = endX - startX; double distY = endY - startY; double absX = std::abs(distX); double absY = std::abs(distY); double moveX = distX / (absX > absY ? absX : absY); double moveY = distY / (absY > absX ? absY : absX); int32_t toMove = ROUND(std::max(absX, absY)); // Now wander along the path: while ( !hitSomething && (range < toMove) && (startX > 0) && (startX < (env.screenWidth - 1)) && (startY > MENUHEIGHT) && (startY < (env.screenHeight - 1)) && ( !chkDirt || (PINK == getpixel (global.terrain, startX, startY))) ) { // Only check for tanks if the total range is large enough // and if there are tanks in the path if ((range >= minRange) && !canHit) canHit = true; if (canHit && chkTanks) { TANK* lt = nullptr; global.getHeadOfClass(CLASS_TANK, <); while (lt) { // Tank found, is it hit? if (!lt->destroy && lt->isInBox(startX - radius, startY - radius, startX + radius, startY + radius) ) { hitSomething = true; lt->requireUpdate(); // 'Lock' the beam end on the tank: if (startY < (lt->y + radius) ) startY = lt->y + radius; if (startY > (lt->y + (2 * radius)) ) startY = lt->y + (2 * radius); if (startX < (lt->x - (radius / 2))) startX = lt->x - (radius / 2); if (startX > (lt->x + (radius / 2))) startX = lt->x + (radius / 2); // Get the in_rates double in_rate_x, in_rate_y; if ( (BT_MIND_SHOT != beamType) && lt->isInEllipse(startX, startY, radius, radius, in_rate_x, in_rate_y) ) { double in_rate = in_rate_x * in_rate_y; if (in_rate < 0.9) // Beams do not 'splash'. in_rate = 0.9; lt->addDamage(player, static_cast(damage) * in_rate * (player ? player->damageMultiplier : 1.) ); } // That's it lt = nullptr; moveX = 0.; moveY = 0.; } // End of having a tank else lt->getNext(<); } // End of looping tanks } // Advance startX/Y startX += moveX; startY += moveY; ++range; } // End of regular check // If dirt was hit, hitSomething must be adapted if ((PINK != getpixel (global.terrain, startX, startY))) hitSomething = true; if (hitSomething && ( (ROUND(startX) != points[numPoints - 1].x) || (ROUND(startY) != points[numPoints - 1].y) ) ) { // Reset the points to the new circumstances: points[numPoints - 1].x = ROUND(startX); points[numPoints - 1].y = ROUND(startY); makeLightningPath(); // Note down x position for dirt slide on destruction: if ((startX - radius - 1) < tgtLeftX) tgtLeftX = startX - radius - 1; if ((startX + radius + 1) > tgtRightX) tgtRightX = startX + radius + 1; } // End of checking pixels } // End of looping points } // === static helper methods === // ============================= static void lazerPoint (BITMAP *dest, int32_t x1, int32_t y1, int32_t color) { circlefill (dest, x1, y1, beamRadius, color); } static void lightningPoint (BITMAP *dest, int32_t x1, int32_t y1, int32_t age) { double pRad = (perlin2DPoint (1.0, 2, x1 + age, y1 + beamSeed, 0.3, 6) + 1) / 2 * beamRadius + 1; double offX = (perlin2DPoint (1.0, 10 * pRad, x1 + age + beamSeed, y1 + age, 0.3, 6) + 1) * pRad / 2.; double offY = (perlin2DPoint (1.0, 10 * pRad, x1 + age, y1 + age + beamSeed, 0.3, 6) + 1) * pRad / 2.; circlefill (dest, x1 + offX, y1 + offY, pRad, WHITE); } atanks-6.6/src/network.cpp0000644000175000017500000002713412636021030013752 0ustar apoapo#include "network.h" #include "player.h" #include "globaldata.h" #include #include #include #ifdef NETWORK #include #include #include #if defined(ATANKS_IS_BSD) # include # include #endif // BSD #include #include #include #endif // init the object MESSAGE_QUEUE::MESSAGE_QUEUE() { first_message = last_message = NULL; } // do clean up on all messages MESSAGE_QUEUE::~MESSAGE_QUEUE() { Erase_All(); } // add a new message to the queue // Returns true on success and false is an error occures bool MESSAGE_QUEUE::Add(char *some_text, int to) { MESSAGE *new_message; if (! some_text) return false; new_message = (MESSAGE *) calloc(1, sizeof(MESSAGE)); if (! new_message) return false; new_message->text = (char *) calloc( strlen(some_text) + 1, sizeof(char) ); if (! new_message->text) { free(new_message); return false; } // fill the message structure strncpy(new_message->text, some_text, strlen(some_text)); new_message->to = to; // next is already cleared by calloc // empty line, create new line if (! first_message) { first_message = new_message; last_message = new_message; } else // we have a line, add it to the end { last_message->next = new_message; last_message = new_message; } return true; } // retreive a message and erase it from the queue // returns a message on success and NULL on failure MESSAGE *MESSAGE_QUEUE::Read() { MESSAGE *my_message; my_message = Peek(); // grab next message if (my_message) Erase(); // clear it from the queue return my_message; } // returns a message from the queue without removing it from the line // Returns a message on success or a NULL on failure MESSAGE *MESSAGE_QUEUE::Peek() { MESSAGE *my_message; // see if there is a message to get if ( (! first_message) || (! first_message->text) ) return NULL; // we want to make a copy of the message, not just pass back a pointer my_message = (MESSAGE *) calloc( 1, sizeof(MESSAGE) ); if (! my_message) return NULL; my_message->text = (char *) calloc( strlen(first_message->text) + 1, sizeof(char) ); if (! my_message->text) { free(my_message); return NULL; } // we have an empty message. Now fill it strncpy(my_message->text, first_message->text, strlen(first_message->text)); my_message->to = first_message->to; return my_message; } // Finds the next message destined "to" a given player // This function returns the first message it finds and // erases it. The message is returned on success or a // NULL is returned if no message is found. MESSAGE *MESSAGE_QUEUE::Read_To(int my_to) { MESSAGE *current, *previous = NULL, *my_message = NULL; bool found = false; // search for matching to field current = first_message; while ( (current) && (! found) ) { if ( current->to == my_to ) found = true; else { previous = current; current = (MESSAGE *) current->next; } } if (! found) return NULL; // found match, create a copy and erase the original my_message = (MESSAGE *) calloc( 1, sizeof(MESSAGE)); if (! my_message) return NULL; my_message->text = (char *) calloc( strlen(current->text) + 1, sizeof(char)); if (! my_message->text) { free(my_message); return NULL; } my_message->to = current->to; strncpy(my_message->text, current->text, strlen(current->text)); if (previous) previous->next = current->next; else first_message = (MESSAGE *) current->next; if (last_message == current) last_message = previous; free(current->text); free(current); return my_message; } // Erases the next message in the line without returning anything void MESSAGE_QUEUE::Erase() { MESSAGE *next_in_line; if (first_message) { next_in_line = (MESSAGE *) first_message->next; // clean up if (first_message->text) { free(first_message->text); first_message->text = NULL; } free(first_message); // see if we are at the end of the list if (last_message == first_message) last_message = next_in_line; first_message = next_in_line; } } // This function erases all messages in the queue. void MESSAGE_QUEUE::Erase_All() { MESSAGE *current, *coming_up; current = first_message; while (current) { coming_up = (MESSAGE *) current->next; if (current->text) free(current->text); free(current); current = coming_up; } first_message = last_message = NULL; } // // Past this point we have socket functions. // // #ifdef NETWORK // Create a socket for listening. Returns a listening socket // on success or -1 on failure. int Setup_Server_Socket(int port) { int listensocket; struct sockaddr_in myaddr; listensocket = socket(AF_INET, SOCK_STREAM, 0); myaddr.sin_port = htons(port); myaddr.sin_addr.s_addr = INADDR_ANY; if (bind(listensocket, (struct sockaddr *) &myaddr, sizeof(myaddr)) < 0) { printf("Bind failed: %s\n", strerror(errno)); return -1; } if (listen(listensocket, 5)) { printf("Listen failed: %s\n", strerror(errno)); return -1; } return listensocket; } // Connect to a remote server. Returns -1 on failure or // a socket (int) on success. int Setup_Client_Socket(char *server_name, char *port) { int socket_num, port_number; struct sockaddr_in server_address; struct hostent *server; sscanf(port, "%d", &port_number); socket_num = socket(AF_INET, SOCK_STREAM, 0); if (socket_num < 0) return -1; server = gethostbyname(server_name); if (! server) return -1; bzero((char *) &server_address, sizeof(server_address)); server_address.sin_family = AF_INET; bcopy((char *) server->h_addr, (char *) &server_address.sin_addr.s_addr, server->h_length); server_address.sin_port = htons(port_number); // try to connect if ( connect(socket_num, (sockaddr *)&server_address, sizeof(server_address)) < 0) return -1; return socket_num; } // Accepts an incoming connection request. Returns the // new socket connection on success or -1 on failure. int Accept_Incoming_Connection(int my_socket) { int new_connection; socklen_t my_length; struct sockaddr new_address; my_length = sizeof(new_address); new_connection = accept(my_socket, (struct sockaddr *) &new_address, &my_length); return new_connection; } // Take whatever is in the message and send it // to a socket. // Returns a negative number on failure. Zero and // positive numbers indicate success. int Send_Message(MESSAGE *mess, int to_socket) { int status; char buffer[MAX_MESSAGE_LENGTH]; strncpy(buffer, mess->text, MAX_MESSAGE_LENGTH); buffer[MAX_MESSAGE_LENGTH - 1] = '\0'; status = write(to_socket, buffer, strlen(buffer) ); return status; } // Read data from a socket and put it in a message // Returns the message on success and NULL on failure. // Note: the "to" field of the message is not set. MESSAGE *Receive_Message(int from_socket) { MESSAGE *my_message; int bytes_read; char buffer[MAX_MESSAGE_LENGTH]; my_message = (MESSAGE *) calloc( 1, sizeof(MESSAGE) ); if (! my_message) return NULL; memset(buffer, '\0', MAX_MESSAGE_LENGTH); bytes_read = read(from_socket, buffer, MAX_MESSAGE_LENGTH); if (bytes_read > 0) { buffer[MAX_MESSAGE_LENGTH - 1] = '\0'; my_message->text = (char *) calloc( strlen(buffer), sizeof(char) ); if (! my_message->text) { free(my_message); return NULL; } strcpy(my_message->text, buffer); return my_message; } else // error while reading { free(my_message); return NULL; } } void Clean_Up_Server_Socket(int my_socket) { close(my_socket); } void Clean_Up_Client_Socket(int my_socket) { close(my_socket); } // This function checks the socket to see if there is data ready to // be read. If there is data ready, then the function returns TRUE. If // an error occures, the function returns -1. If there is no data // and no error, the function returns FALSE. int Check_For_Incoming_Data(int socket_number) { fd_set rfds; struct timeval tv; int retval; FD_ZERO(&rfds); FD_SET(socket_number, &rfds); tv.tv_sec = 0; tv.tv_usec = 0; retval = select(socket_number + 1, &rfds, NULL, NULL, &tv); if (retval == -1) return -1; else if (retval) return TRUE; else return FALSE; return TRUE; } // This function checks the passed socket for errors. If the socket // is error-free, the function returns FALSE. If an exception // has occured, the function returns TRUE. int Check_For_Errors(int socket_number) { fd_set exds; struct timeval tv; int expval; FD_ZERO(&exds); FD_SET(socket_number, &exds); tv.tv_sec = 0; tv.tv_usec = 0; expval = select(socket_number + 1, NULL, NULL, &exds, &tv); if (expval == -1) return TRUE; else if (expval) return TRUE; else return FALSE; } // This function will probably be called as a separate thread at the // start of the game. It will set up a listening port, accept // incoming connections and manage them. That is, they will be // passed on to AI players. void *Send_And_Receive(void *all_the_data) { SEND_RECEIVE_TYPE *send_receive_data = (SEND_RECEIVE_TYPE *) all_the_data; int server_socket, new_socket; int status, counter; bool found; char buffer[7] = { 0 }; int32_t towrite, written; // set up listening socket server_socket = Setup_Server_Socket(send_receive_data->listening_port); if (server_socket == -1) { printf("Error creating listening socket.\n"); return nullptr; } while (! send_receive_data->shut_down) { // check for incoming connections status = Check_For_Incoming_Data(server_socket); if (status) { new_socket = Accept_Incoming_Connection(server_socket); printf("Accepted connection.\n"); // give connection to AI player found = false; counter = 0; while ( (! found) && (counter < env.numGamePlayers) ) { if ( ( env.players[counter]->type >= USELESS_PLAYER) && ( env.players[counter]->type <= DEADLY_PLAYER) ) { found = true; env.players[counter]->server_socket = new_socket; env.players[counter]->previous_type = env.players[counter]->type; env.players[counter]->type = NETWORK_CLIENT; printf("Assigned connection to %s\n", env.players[counter]->getName() ); } else counter++; } // in case we did not find a match if (! found) { printf("Unable to assign new connection to player.\n"); SAFE_WRITE(new_socket, "%s", "NOROOM") close(new_socket); } } // consider resting for a moment? LINUX_SLEEP } // clean up everything printf("Cleaning up networking\n"); Clean_Up_Server_Socket(server_socket); counter = 0; while (counter < env.numGamePlayers) { if (env.players[counter]->type == NETWORK_CLIENT) { SAFE_WRITE(env.players[counter]->server_socket, "%s", "CLOSE") close(env.players[counter]->server_socket); } counter++; } return nullptr; } #endif atanks-6.6/src/winclock.h0000644000175000017500000000430312636021030013530 0ustar apoapo#pragma once #ifndef ATANKS_SRC_WINCLOCK_H_INCLUDED #define ATANKS_SRC_WINCLOCK_H_INCLUDED /* Workaround for the buggy implementation of VS12. * * I do not know whether this is more embarrassing for me or Microsoft. * For me, because I didn't realize this before it was too late, I guess. * The steady_clock is not steady, and the high_resolution_clock is not * high resolution. * This will be fixed in VS13, but while writing this only a community * preview has been published. This preview is noted to be not production * ready and should not be installed on a system that can't be formatted. * * So until I have a full production ready VS13 (Visual Studio 2015), this * header works around the buggy implementation. * * For more information see: * https://connect.microsoft.com/VisualStudio/feedback/details/858357/ * and * https://connect.microsoft.com/VisualStudio/feedback/details/753115/ */ #if defined(ATANKS_IS_MSVC) #include "main.h" #ifdef USE_MUTEX_INSTEAD_OF_SPINLOCK # include # define CSpinLock std::mutex #endif // USE_MUTEX_INSTEAD_OF_SPINLOCK // timer variable and locker bool has_win_clock = false; CSpinLock win_clock_lock; volatile int32_t win_clock = 0; // additional functions: void win_clock_add() { ++win_clock; } END_OF_FUNCTION(win_clock_add) void win_clock_deinit() { if ( has_win_clock ) { remove_int(win_clock_add); has_win_clock = false; } win_clock = 0; } inline int32_t win_clock_get() { win_clock_lock.lock(); int32_t result = win_clock; win_clock = 0; win_clock_lock.unlock(); return result; } void win_clock_init() { win_clock = 0; if ( !has_win_clock ) { LOCK_VARIABLE(win_clock) LOCK_FUNCTION(win_clock_add) install_int_ex(win_clock_add, MSEC_TO_TIMER(1)); has_win_clock = true; } } // Re-implement the millisecond sensitive functions: int32_t game_us_get() { return win_clock_get() * 1000; } void game_us_reset() { win_clock_lock.lock(); win_clock = 0; win_clock_lock.unlock(); } int32_t menu_ms_get() { return win_clock_get(); } void menu_ms_reset() { win_clock_lock.lock(); win_clock = 0; win_clock_lock.unlock(); } #endif // defined(ATANKS_IS_MSVC) #endif // ATANKS_SRC_WINCLOCK_H_INCLUDED atanks-6.6/src/client.cpp0000644000175000017500000006463213006377360013557 0ustar apoapo#include "button.h" #include "files.h" #include "satellite.h" #include "update.h" #include "network.h" #include "client.h" #include "beam.h" #include "explosion.h" #include "missile.h" #include "teleport.h" #include "floattext.h" #include "player.h" #include "tank.h" #include "sky.h" // Note: Don't guard everything. Empty compilation units are invalid. #ifdef NETWORK // From gameloop.cpp: void draw_top_bar(); // Here we try to match the buffer with an action. We then attempt to // perform the action. Remember, this is a command from the server, so // it is either giving us some info or telling us to create something. int Parse_Client_Data(char *buffer) { char args[CLIENT_ARGS][BUFFER_SIZE]; char letter; int dest_string; int line_length = strlen(buffer); int sourceindex = 0, destindex = 0; // clear buffers for (dest_string = 0; dest_string < CLIENT_ARGS; dest_string++) memset(args[dest_string], '\0', BUFFER_SIZE); dest_string = 0; // copy buffer into cmd and argument variables while ( ( sourceindex < line_length ) && (dest_string < CLIENT_ARGS) ) { letter = buffer[sourceindex]; if ( letter == ' ' ) { letter = '\0'; args[dest_string][destindex] = letter; destindex = 0; dest_string++; } else { args[dest_string][destindex] = letter; destindex++; } sourceindex++; } // let us see what we have if (! strcmp(args[0], "SERVERVERSION") ) { if (! strcmp(args[1], VERSION) ) printf("Server version matchs us. OK.\n"); else printf("Server version is %s, we are %s. This is likely to cause problems.\n", args[1], VERSION); return TRUE; } else if (! strcmp(args[0], "CURRENTPOSITION") ) { if ( (global.client_player) && (global.client_player->tank) ) { sscanf(args[1], "%lf", &(global.client_player->tank->x)); sscanf(args[2], "%lf", &(global.client_player->tank->y)); } } else if (! strcmp(args[0], "BEAM") ) { double my_x, my_y; int my_angle, my_type; sscanf(args[1], "%lf", &my_x); sscanf(args[2], "%lf", &my_y); sscanf(args[3], "%d", &my_angle); sscanf(args[4], "%d", &my_type); new BEAM(nullptr, my_x, my_y, my_angle, my_type, BT_WEAPON); } else if (! strcmp(args[0], "BOXED")) { int got_box; sscanf(args[1], "%d", &got_box); if (got_box) env.isBoxed = true; else env.isBoxed = false; return TRUE; } else if (! strcmp(args[0], "EXPLOSION") ) { double my_x, my_y; int my_type; sscanf(args[1], "%lf", &my_x); sscanf(args[2], "%lf", &my_y); sscanf(args[3], "%d", &my_type); new EXPLOSION(nullptr, my_x, my_y, 0., 0., my_type, true); return FALSE; } else if (! strcmp(args[0], "ITEM")) { int itemindex, amount; sscanf(args[1], "%d", &itemindex); sscanf(args[2], "%d", &amount); if ( (itemindex >= 0) && (itemindex < ITEMS) && (amount >= 0) && (amount <= 99) ) { global.client_player->ni[itemindex] = amount; } if (itemindex == (ITEMS - 1) ) return TRUE; } else if (! strcmp(args[0], "HEALTH") ) { int tankindex; int health, shield, shield_type; char some_text[32]; sscanf(args[1], "%d", &tankindex); if (tankindex >= 0) { sscanf(args[2], "%d", &health ); sscanf(args[3], "%d", &shield ); sscanf(args[4], "%d", &shield_type); env.players[tankindex]->tank->l = health; env.players[tankindex]->tank->sh = shield; env.players[tankindex]->tank->sht = shield_type; // set the text over the tank sprintf(some_text, "%d", health); env.players[tankindex]->tank->healthText.set_text(some_text); env.players[tankindex]->tank->healthText.set_color(env.players[tankindex]->color); sprintf(some_text, "%d", shield); env.players[tankindex]->tank->shieldText.set_text(some_text); env.players[tankindex]->tank->healthText.set_color(env.players[tankindex]->color); } if (tankindex == (env.numGamePlayers - 1) ) return TRUE; else return FALSE; } else if (! strcmp(args[0], "WIND") ) { sscanf(args[1], "%lf", & (global.wind) ); return TRUE; } else if (! strcmp(args[0], "MISSILE") ) { int my_type; double my_x, my_y, delta_x, delta_y; MISSILE *missile; sscanf(args[1], "%lf", &my_x); sscanf(args[2], "%lf", &my_y); sscanf(args[3], "%lf", &delta_x); sscanf(args[4], "%lf", &delta_y); sscanf(args[5], "%d", &my_type); missile = new MISSILE(nullptr, my_x, my_y, delta_x, delta_y, my_type, MT_WEAPON, 1, 0); if (! missile) printf("Attempted to create missile failed in client code.\n"); return FALSE; } else if (! strcmp(args[0], "NUMPLAYERS") ) { int counter; sscanf(args[1], "%d", & (env.numGamePlayers) ); // create the players in question for (counter = 0; counter < env.numGamePlayers; counter++) { env.players[counter] = new PLAYER(); env.players[counter]->tank = new TANK(); env.players[counter]->tank->player = env.players[counter]; env.players[counter]->tank->nameText.set_text(nullptr); } return TRUE; } // ping is a special case where we do not do anything it is just // making sure we are still here because we are not talking else if (! strcmp(args[0], "PING")) { return FALSE; } else if (! strcmp(args[0], "PLAYERNAME") ) { int number; sscanf(args[1], "%d", &number); if ( (number < env.numGamePlayers) && (number >= 0) ) env.players[number]->setName(args[2]); if (number == (env.numGamePlayers - 1) ) return TRUE; } else if (! strcmp(args[0], "REMOVETANK") ) { int index; sscanf(args[1], "%d", &index); if ( (index >= 0) && (index < env.numGamePlayers) ) { // make sure this tank exists before we get rid of it if ( env.players[index]->tank ) { delete env.players[index]->tank; env.players[index]->tank = NULL; } } } else if (! strcmp(args[0], "ROUNDS") ) { sscanf(args[1], "%u", &env.rounds); sscanf(args[2], "%u", &global.currentround); return TRUE; } else if (! strcmp(args[0], "SURFACE") ) { int x, y; int index; int colour_change = 0; int green = 150; int my_height; sscanf(args[1], "%d", &x); sscanf(args[2], "%d", &y); global.surface[x].store(y); my_height = env.screenHeight - y; my_height = my_height / 50; // ratio of change // fill in terrain... for (index = y; index < env.screenHeight; index++) { putpixel(global.terrain, x, index, makecol(0, green, 0)); colour_change++; if (colour_change >= my_height) { colour_change = 0; green--; } } if (x >= (env.screenWidth - 1) ) return TRUE; } else if (! strcmp(args[0], "SCREEN") ) { int width, height; sscanf(args[1], "%d", &width); sscanf(args[2], "%d", &height); if ( (width == env.screenWidth) && (height == env.screenHeight) ) printf("Host's screen resolution matches ours.\n"); else { printf("Host's screen resolution is %d by %d.\n", width, height); printf("Ours is %d by %d. This is going to cause problems!\n", env.screenWidth, env.screenHeight); } return TRUE; } else if (! strcmp(args[0], "TANKPOSITION") ) { int player_number, x, y; PLAYER *my_player; sscanf(args[1], "%d", &player_number); my_player = env.players[player_number]; if ( (my_player) && (my_player->tank) ) { sscanf(args[2], "%d", &x); sscanf(args[3], "%d", &y); my_player->tank->x = x; my_player->tank->y = y; } if (player_number == (env.numGamePlayers - 1)) return TRUE; } else if (! strcmp(args[0], "TEAM") ) { int32_t player_number = 0; int32_t colour = BLACK; int the_team; sscanf(args[1], "%d", &player_number); sscanf(args[2], "%d", & the_team); if ( (the_team < env.numGamePlayers) && (the_team >= 0) ) { env.players[player_number]->team = static_cast(the_team); if (the_team == TEAM_JEDI) colour = makecol(0, 255, 0); else if (the_team == TEAM_SITH) colour = makecol(255, 0, 255); else if (the_team == TEAM_NEUTRAL) colour = makecol(0, 0, 255); if (env.players[player_number] == global.client_player) colour = makecol(255, 0, 0); env.players[player_number]->color = colour; } if (player_number == (env.numGamePlayers - 1) ) return TRUE; } else if (! strcmp(args[0], "TELEPORT") ) { int player_num; int new_x, new_y; sscanf(args[1], "%d", &player_num); sscanf(args[2], "%d", &new_x); sscanf(args[3], "%d", &new_y); if ( (player_num >= 0) && (player_num < env.numGamePlayers) && (env.players[player_num]->tank) ) { TANK* lt = env.players[player_num]->tank; new TELEPORT(lt, new_x, new_y, lt->getDiameter(), 120, ITEM_TELEPORT); } } else if (! strcmp(args[0], "WALLTYPE")) { sscanf(args[1], "%d", &(env.current_wallType)); switch (env.current_wallType) { case WALL_RUBBER: env.wallColour = makecol(0, 255, 0); // GREEN; break; case WALL_STEEL: env.wallColour = makecol(255, 0, 0); // RED; break; case WALL_SPRING: env.wallColour = makecol(0, 0, 255); //BLUE; break; case WALL_WRAP: env.wallColour = makecol(255, 255, 0); // YELLOW; break; } return TRUE; } else if (! strcmp(args[0], "WEAPON") ) { int weaponindex, amount; sscanf(args[1], "%d", &weaponindex); sscanf(args[2], "%d", &amount); if ( (weaponindex >= 0) && (weaponindex < WEAPONS) && (amount >= 0) && (amount <= 99) ) { global.client_player->nm[weaponindex] = amount; } if (weaponindex == (WEAPONS - 1)) return TRUE; } else if (! strcmp(args[0], "YOUARE") ) { int index; sscanf(args[1], "%d", &index ); if ( (index >= 0) && (index < env.numGamePlayers) ) { global.client_player = env.players[index]; global.set_curr_tank(global.client_player->tank); } return TRUE; } return FALSE; } void Create_Sky() { if (env.custom_background && env.bitmap_filenames) { if (env.sky) destroy_bitmap(env.sky); env.sky = load_bitmap( env.bitmap_filenames[ rand() % env.number_of_bitmaps ], nullptr); } if (!env.custom_background || !env.sky) { if (env.sky && ( (env.sky->w != env.screenWidth) || (env.sky->h != (env.screenHeight - MENUHEIGHT) ) ) ) { destroy_bitmap(env.sky); env.sky = nullptr; } if (!env.sky) env.sky = create_bitmap(env.screenWidth, env.screenHeight - MENUHEIGHT); generate_sky (nullptr, sky_gradients[global.cursky], (env.ditherGradients ? GENSKY_DITHERGRAD : 0 ) | (env.detailedSky ? GENSKY_DETAILED : 0 ) ); } } // end of create sky function // Send a shot command to the server int Client_Fire(PLAYER *my_player, int my_socket) { char buffer[256]; if (!my_player) return FALSE; if (! my_player->tank) return FALSE; int32_t towrite, written; SAFE_WRITE(my_socket, "FIRE %d %d %d", my_player->tank->cw, my_player->tank->a, my_player->tank->p) return TRUE; } // Adjust our power on the client side int Client_Power(PLAYER *my_player, int more_or_less) { if ( (my_player) && (my_player->tank) ) { if ( (more_or_less == CLIENT_UP) && (my_player->tank->p < 1996) ) my_player->tank->p += 5; else if ( (more_or_less == CLIENT_DOWN) && (my_player->tank->p > 5) ) my_player->tank->p -= 5; return TRUE; } return FALSE; } int Client_Angle(PLAYER *my_player, int left_or_right) { if (! my_player) return FALSE; if (! my_player->tank) return FALSE; if ( (left_or_right == CLIENT_LEFT) && (my_player->tank->a < 270) ) my_player->tank->a++; else if ( (left_or_right == CLIENT_RIGHT) && (my_player->tank->a > 90) ) my_player->tank->a--; return TRUE; } int Client_Cycle_Weapon(PLAYER *my_player, int forward_or_back) { bool found = false; if (! my_player->tank) return FALSE; while (! found) { if (forward_or_back == CYCLE_FORWARD) my_player->tank->cw++; else my_player->tank->cw--; if (my_player->tank->cw >= THINGS) my_player->tank->cw = 0; else if (my_player->tank->cw < 0) my_player->tank->cw = THINGS - 1; // check if we have found a weapon if (my_player->tank->cw < WEAPONS) { if (my_player->nm[my_player->tank->cw]) found = true; } else // an item { if ( (item[my_player->tank->cw - WEAPONS].selectable) && (my_player->ni[my_player->tank->cw - WEAPONS]) ) found = true; } } return TRUE; } // This function takes an error number and returns a string // which contains useful information about that error. // On success, a pointer to char is returned. // On failure, a NULL is returned. // The returned pointer does NOT need to be freed. const char* Explain_Error(int32_t error_code) { switch (error_code) { case CLIENT_ERROR_VERSION: return env.ingame->Get_Line(77); break; case CLIENT_ERROR_SCREENSIZE: return env.ingame->Get_Line(78); break; case CLIENT_ERROR_DISCONNECT: return env.ingame->Get_Line(79); break; } return nullptr; } // Client version of the game // Really, this loop should do some basic things. // 1. Find out what the landscape should look like from the server. // 2. Place tanks on the battle field // 3. Create missiles, beam weapons and such when the server asks us to // 4. Get input from the player and forward it to the server. // 5. Clean up at the end of the round. // // Function return TRUE if everything went well or FALSE // if an error occured. int Game_Client(int socket_number) { int surface_x = 1, tank_position = 1, team_number = 1, name_number = 1; int weapon_number = 1, item_number = 1, tank_health = 1; int end_of_round = FALSE, keep_playing = FALSE; int game_stage = CLIENT_VERSION; char buffer[BUFFER_SIZE]; int incoming; int my_key; int time_clock = 0; bool screen_update = false; int count; // generic counter int stuff_going_down = FALSE; // explosions, missiles etc on the screen VIRTUAL_OBJECT *my_object, *next_obj; int32_t class_ = 0; bool fired = false; int32_t towrite, written; clear_to_color (global.terrain, PINK); // get terrain ready clear_to_color(global.canvas, BLACK); // clean up old text global.getHeadOfClass(CLASS_FLOATTEXT, &my_object); while (my_object) { my_object->getNext(&next_obj); static_cast(my_object)->newRound(); delete my_object; } Create_Sky(); // so we have a background SAFE_WRITE(socket_number, "%s", "VERSION") while (! end_of_round) { // check for waiting input from the server incoming = Check_For_Incoming_Data(socket_number); if (incoming) { int bytes_read; memset(buffer, '\0', BUFFER_SIZE); bytes_read = read(socket_number, buffer, BUFFER_SIZE); if (bytes_read > 0) { // do something with this input if (! strncmp(buffer, "CLOSE", 5) ) { end_of_round = TRUE; keep_playing = FALSE; printf("Got close message.\n"); global.client_message = strdup(env.ingame->Get_Line(81)); } else if (! strncmp(buffer, "NOROOM", 6) ) { end_of_round = TRUE; keep_playing = FALSE; printf("The server is full or the game has not started. Please try again later.\n"); global.client_message = strdup(env.ingame->Get_Line(80)); } else if (! strncmp(buffer, "GAMEEND", 7) ) { end_of_round = TRUE; keep_playing = FALSE; printf("The game is over.\n"); if ( strlen(buffer) > 7) global.client_message = strdup(& (buffer[8])) ; else global.client_message = strdup(env.ingame->Get_Line(82)); } else if (! strncmp(buffer, "ROUNDEND", 8) ) { end_of_round = TRUE; keep_playing = TRUE; printf("Round is over.\n"); } else // not a special command, parse it { if ( Parse_Client_Data(buffer) ) { if (game_stage < CLIENT_PLAYING) game_stage++; // Request more information if (game_stage < CLIENT_PLAYING) { switch (game_stage) { case CLIENT_SCREEN: strcpy(buffer, "SCREEN"); break; case CLIENT_WIND: strcpy(buffer, "WIND"); break; case CLIENT_NUMPLAYERS: strcpy(buffer, "NUMPLAYERS"); break; case CLIENT_TANK_POSITION: strcpy(buffer, "TANKPOSITION 0"); break; case CLIENT_SURFACE: strcpy(buffer, "SURFACE 0"); break; case CLIENT_WHOAMI: strcpy(buffer, "WHOAMI"); break; case CLIENT_WEAPONS: strcpy(buffer, "WEAPON 0"); break; case CLIENT_ITEMS: strcpy(buffer, "ITEM 0"); break; case CLIENT_ROUNDS: strcpy(buffer, "ROUNDS"); break; case CLIENT_TEAMS: strcpy(buffer, "TEAMS 0"); global.updateMenu = TRUE; break; case CLIENT_WALL_TYPE: strcpy(buffer, "WALLTYPE"); break; case CLIENT_BOXED: strcpy(buffer, "BOXED"); break; case CLIENT_NAME: strcpy(buffer, "PLAYERNAME 0"); break; case CLIENT_TANK_HEALTH: strcpy(buffer, "HEALTH 0"); break; default: buffer[0] = '\0'; } towrite = strlen(buffer); written = write(socket_number, buffer, strlen(buffer)); if (written < towrite) fprintf(stderr, "%s:%d: Warning: Only %d/%d bytes sent to server\n", __FILE__, __LINE__, written, towrite); } // end of getting more info } // our game stage went up else // we got data, but our game stage did not go up { if (fired) { if ( (global.client_player) && (global.client_player->tank) ) { fired = false; if (global.client_player->tank->cw < WEAPONS) SAFE_WRITE(socket_number, "WEAPON %d", global.client_player->tank->cw) else SAFE_WRITE(socket_number, "ITEM %d", global.client_player->tank->cw - WEAPONS) } } else if (game_stage == CLIENT_SURFACE) { SAFE_WRITE(socket_number, "SURFACE %d", surface_x) surface_x++; } else if (game_stage == CLIENT_ITEMS) { SAFE_WRITE(socket_number, "ITEM %d", item_number) item_number++; } else if (game_stage == CLIENT_TANK_POSITION) { SAFE_WRITE(socket_number, "TANKPOSITION %d", tank_position) tank_position++; if (tank_position >= env.numGamePlayers) tank_position = 0; } else if (game_stage == CLIENT_TANK_HEALTH) { SAFE_WRITE(socket_number, "HEALTH %d", tank_health) tank_health++; if (tank_health >= env.numGamePlayers) tank_health = 0; } else if (game_stage == CLIENT_TEAMS) { SAFE_WRITE(socket_number, "TEAMS %d", team_number) team_number++; } else if (game_stage == CLIENT_NAME) { SAFE_WRITE(socket_number, "PLAYERNAME %d", name_number) name_number++; } else if (game_stage == CLIENT_WEAPONS) { SAFE_WRITE(socket_number, "WEAPON %d", weapon_number) weapon_number++; } else if (game_stage == CLIENT_PLAYING) { time_clock++; if (time_clock > 1) // check positions every few inputs { time_clock = 0; if (surface_x < env.screenWidth) { game_stage = CLIENT_SURFACE; SAFE_WRITE(socket_number, "SURFACE %d", surface_x) surface_x++; } else { game_stage = CLIENT_TANK_POSITION; tank_position = 1; SAFE_WRITE(socket_number, "TANKPOSITION %d", 0) } // game stage stuff } } // end of playing commands } } // end of we got something besides the close command } else // connection was broken { close(socket_number); printf("Server closed connection.\n"); end_of_round = TRUE; } } class_ = 0; while (class_ < CLASS_COUNT) { if (CLASS_TANK == class_) { ++class_; continue; } global.getHeadOfClass(static_cast(class_), &my_object); while(my_object) { my_object->getNext(&next_obj); if (CLASS_EXPLOSION == class_) static_cast(my_object)->explode(); my_object->applyPhysics(); if (my_object->destroy) { my_object->requireUpdate(); my_object->update(); delete my_object; if (CLASS_TELEPORT == class_) time_clock = 2; } if ( (CLASS_BEAM == class_) || (CLASS_MISSILE == class_) || (CLASS_EXPLOSION == class_) || (CLASS_TELEPORT == class_) ) stuff_going_down = TRUE; my_object = next_obj; } ++class_; } global.slideLand(); // update everything on the screen if (global.updateMenu) draw_top_bar (); if (screen_update) { screen_update = false; global.make_fullUpdate(); } global.replace_canvas (); screen_update = true; class_ = 0; while (class_ < CLASS_COUNT) { global.getHeadOfClass(static_cast(class_), &my_object); while(my_object) { my_object->draw(); if (CLASS_FLOATTEXT == class_) my_object->requireUpdate(); my_object->update(); my_object->getNext(&my_object); } ++class_; } global.do_updates(); // check for input from the user if ( keypressed() ) { my_key = readkey(); my_key = my_key >> 8; if (my_key == KEY_SPACE) { Client_Fire(global.client_player, socket_number); fired = true; } else if (my_key == KEY_ESC) { end_of_round = TRUE; close(socket_number); } else if (my_key == KEY_UP) { Client_Power(global.client_player, CLIENT_UP); } else if (my_key == KEY_DOWN) { Client_Power(global.client_player, CLIENT_DOWN); } else if (my_key == KEY_LEFT) { Client_Angle(global.client_player, CLIENT_LEFT); } else if (my_key == KEY_RIGHT) { Client_Angle(global.client_player, CLIENT_RIGHT); } else if ( (my_key == KEY_Z) || (my_key == KEY_BACKSPACE) ) { Client_Cycle_Weapon(global.client_player, CYCLE_BACK); } else if ( (my_key == KEY_C) || (my_key == KEY_TAB) ) { Client_Cycle_Weapon(global.client_player, CYCLE_FORWARD); global.updateMenu = TRUE; } screen_update = false; global.updateMenu = TRUE; } // pause for a moment // if (game_stage < CLIENT_PLAYING) if (stuff_going_down) { LINUX_SLEEP; stuff_going_down = FALSE; } } // we should clean up here for (count = 0; count < env.numGamePlayers; count++) { if (env.players[count]->tank) { delete env.players[count]->tank; env.players[count]->tank = NULL; } } return keep_playing; } #endif // NETWORK atanks-6.6/src/update.h0000644000175000017500000000071713006377360013222 0ustar apoapo#ifndef UPDATE_HEADER_FILE__ #define UPDATE_HEADER_FILE__ #define UPDATE_STR_LENGTH 256 // rewritten struct to be used with C++11 threads. struct update_data { char* server_name = nullptr; char* host_name = nullptr; char* remote_file = nullptr; char update_string[1024]; explicit update_data(const char* server_, const char* remote_, const char* host_); ~update_data(); void operator()(); }; #endif atanks-6.6/src/button.h0000644000175000017500000000265412636021030013241 0ustar apoapo#ifndef BUTTON_HEADER_ #define BUTTON_HEADER_ #include "main.h" class BUTTON { public: /* -------------------- * --- constructors --- * -------------------- */ // Minimum ctor without text explicit BUTTON (int32_t left_, int32_t top_, BITMAP* bmp_, BITMAP* hover_, BITMAP* depressed_); // ctor for using a bitmap. BUTTON (const char* text_, bool text_only_, int32_t left_, int32_t top_, BITMAP* bmp_, BITMAP* hover_, BITMAP* depressed_); // ctor for drawing a manual box. BUTTON (const char* text_, bool text_only_, int32_t left_, int32_t top_, int32_t width_, int32_t height_); /* ---------------------- * --- Public methods --- * ---------------------- */ void draw (); void getLocation(int32_t &x,int32_t &y,int32_t &w,int32_t &h); bool isMouseOver (); bool isPressed (); void setText(const char* text_); private: /* ----------------------- * --- Private members --- * ----------------------- */ BITMAP* bmp = nullptr; BITMAP* depressed = nullptr; BITMAP* hover = nullptr; BOX location; //!< is {0, 0, 0, 0} by default const char* text = nullptr; bool text_only = false; //!< If set to true, only the title is displayed. int32_t text_width = 0; //!< must not be recalculated over and over again... int32_t x1, y1, x2, y2, x3, y3; //!< Shortcuts, as those stay fixed. }; #endif atanks-6.6/src/satellite.h0000644000175000017500000000140712636021030013707 0ustar apoapo#ifndef SATELLITE_HEADER_FILE__ #define SATELLITE_HEADER_FILE__ #include "environment.h" #include "globaldata.h" #define SATELLITE_IMAGE 16 #define CHANCE_TO_SHOOT 100 #ifndef BEAM_DEFINE class BEAM; #endif // BEAM_DEFINE class SATELLITE { public: /* ----------------------------------- * --- Constructors and destructor --- * ----------------------------------- */ explicit SATELLITE(); /* ---------------------- * --- Public methods --- * ---------------------- */ void draw(); void move(); void shoot(); private: /* ----------------------- * --- Private members --- * ----------------------- */ BEAM* beam = nullptr; int32_t x = 0; int32_t y = MENUHEIGHT + 5; int32_t xv = -2; int32_t prev_x = 0; }; #endif atanks-6.6/src/explosion.h0000644000175000017500000000564212636021030013746 0ustar apoapo#ifndef EXPLOSION_DEFINE #define EXPLOSION_DEFINE /* * atanks - obliterate each other with oversize weapons * Copyright (C) 2003 Thomas Hudson * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "main.h" #include "physobj.h" class EXPLOSION: public PHYSICAL_OBJECT { public: /* ----------------------------------- * --- Constructors and destructor --- * ----------------------------------- */ // default ctor for all non-BEAM explosions explicit EXPLOSION (PLAYER* player_, double x_, double y_, double xv_, double yv_, int32_t type, bool is_weapon); // Special ctor for BEAM: EXPLOSION (PLAYER* player_, double x_, double y_, double xv_, double yv_, int32_t type, double damage_, bool is_weapon); ~EXPLOSION (); /* ---------------------- * --- Public methods --- * ---------------------- */ void applyPhysics(); void draw (); void explode (); eClasses getClass() { return CLASS_EXPLOSION; } private: /* ----------------------- * --- Private methods --- * ----------------------- */ void do_clear(); void do_throw(); void drawFracture (int32_t x, int32_t y, int32_t frac_angle, int32_t width, int32_t segmentLength, int32_t maxRecurse, int32_t recurseDepth); /* ----------------------- * --- Private members --- * ----------------------- */ bool apply_damage = true; int32_t curFrame = 1; float centre_x = EXPLO_CX; float centre_y = EXPLO_CY; int32_t damage = 0; int32_t etime = 0; int32_t exclock = 0; float explo_h = EXPLO_H; float explo_w = EXPLO_W; float flame_w = 0.f; float flame_h = 0.f; bool hasCleared = false; int32_t hasDebris = 0; bool hasSlid = false; bool hasThrown = false; double impact_xv = 0.; double impact_yv = 0.; int32_t maxDebris = 0; int32_t maxFrame = 0; bool peaked = false; int32_t radius = 10; float scale = 0.; }; // Global helpers: void draw_Napalm_Blob(VIRTUAL_OBJECT* blob, int32_t x, int32_t y, int32_t radius, int32_t frame); double get_hit_damage (TANK* tank, weaponType type, int32_t hit_x, int32_t hit_y); #endif atanks-6.6/src/gfxData.cpp0000644000175000017500000002042014066453302013640 0ustar apoapo#include "main.h" #include "gfxData.h" /** @brief explicit constructor, because Visual C++ needs one. **/ sGfxData::sGfxData() { memset(sky_gradient_strips, 0, sizeof(BITMAP*) * ALL_SKIES); memset(land_gradient_strips, 0, sizeof(BITMAP*) * ALL_LANDS); memset(stuff_bar, 0, sizeof(BITMAP*) * 2); memset(explosions, 0, sizeof(BITMAP*) * EXPLOSIONFRAMES); memset(flameFront, 0, sizeof(BITMAP*) * EXPLOSIONFRAMES); } /** @brief sGfxData destructor - clean everything up */ sGfxData::~sGfxData() { this->destroy(); } /// @brief should be called from ENVIRONMENT::destroy(); void sGfxData::destroy() { if (initDone) { if (topbar) destroy_bitmap(topbar); if (topbar_gradient_strip) destroy_bitmap(topbar_gradient_strip); if (stuff_bar[0]) destroy_bitmap(stuff_bar[0]); if (stuff_bar[1]) destroy_bitmap(stuff_bar[1]); if (stuff_icon_base) destroy_bitmap(stuff_icon_base); if (stuff_bar_gradient_strip) destroy_bitmap(stuff_bar_gradient_strip); if (explosion_gradient_strip) destroy_bitmap(explosion_gradient_strip); topbar = nullptr; topbar_gradient_strip = nullptr; stuff_bar[0] = nullptr; stuff_bar[1] = nullptr; stuff_icon_base = nullptr; stuff_bar_gradient_strip = nullptr; explosion_gradient_strip = nullptr; // The following pointer checks are being removed because // they are declared in the header and will always // evaluate to true. -- Jesse // if (sky_gradient_strips) { for (int32_t i = 0; i < ALL_SKIES; ++i) { if ( sky_gradient_strips[i] ) { destroy_bitmap(sky_gradient_strips[i]); sky_gradient_strips[i] = nullptr; } } // } // if (land_gradient_strips) { for (int32_t i = 0; i < ALL_LANDS; ++i) { if ( land_gradient_strips[i] ) { destroy_bitmap(land_gradient_strips[i]); land_gradient_strips[i] = nullptr; } } // } // if (explosions) { for (int32_t i = 0; i < EXPLOSIONFRAMES; ++i) { if ( explosions[i] ) { destroy_bitmap(explosions[i]); explosions[i] = nullptr; } } // } // if (flameFront) { for (int32_t i = 0; i < EXPLOSIONFRAMES; ++i) { if ( flameFront[i] ) { destroy_bitmap(flameFront[i]); flameFront[i] = nullptr; } } // } initDone = false; } } /// @brief create the gfx data to hold void sGfxData::first_init() { // Note: This method is mostly uncommented, because the original // function that did this was uncommented. if (initDone) return; int32_t colour_theme = static_cast(env.colourTheme); explosion_gradient_strip = create_gradient_strip(explosion_gradients[colour_theme], 200); double expSize = 25.; double flmSize = 10.; double expDisperse = 0.; double flmDisperse = 0.; for (int32_t i = 0; i < EXPLOSIONFRAMES; ++i) { explosions[i] = create_bitmap (214, 214); flameFront[i] = create_bitmap (600, 30); if (i < EXPLODEFRAMES - 4) { expSize += (107. - expSize) / 3.; flmSize += (300. - flmSize) / 3.; } else if (i < EXPLODEFRAMES) { expSize -= 1.; flmSize -= 1.; } else if (i == EXPLODEFRAMES) { expDisperse = 25.; flmDisperse = 10.; } else { expDisperse += (107. - expDisperse) / 2.; flmDisperse += (300. - flmDisperse) / 2.; } clear_to_color(explosions[i], PINK); clear_to_color(flameFront[i], PINK); for (int32_t y = std::floor(expSize); y > expDisperse; --y) { double value = pow (static_cast(y) / expSize, i / 4 + 1); int32_t exp_col = getpixel(explosion_gradient_strip, 0, static_cast(value * 200.)); circlefill (explosions[i], 107, 107, y, exp_col); } if (ROUND(expDisperse) > 0) { circlefill (explosions[i], 107, 107, ROUND(expDisperse), PINK); } for (int32_t y = std::floor(flmSize); y > flmDisperse; --y) { double value = pow (static_cast(y) / flmSize, i / 4 + 1); int32_t flame_col = getpixel (explosion_gradient_strip, 0, static_cast(value * 200.)); ellipsefill (flameFront[i], 300, 15, y, y / 20, flame_col); } if (ROUND(flmDisperse) > 0) { ellipsefill (flameFront[i], 300, 15, ROUND(flmDisperse), ROUND(flmSize / 16.), PINK); } } topbar = create_bitmap (env.screenWidth, MENUHEIGHT); topbar_gradient_strip = create_gradient_strip (topbar_gradient, 100); if (!env.ditherGradients) { for (int32_t i = 0; i < MENUHEIGHT; ++i) { float adjCount = (100. / MENUHEIGHT) * i; int32_t col = getpixel(topbar_gradient_strip, 0, adjCount); line (topbar, 0, i, env.screenWidth - 1, i, col); } } else { for (int32_t x = 0; x < env.screenWidth; ++x) { for (int32_t y = 0; y < MENUHEIGHT; ++y) { float adjY = (100.0 / MENUHEIGHT) * y; int offset = 0; if ((adjY > 1) && (adjY < 99)) offset = rand () % 4 - 2; int32_t col = getpixel(topbar_gradient_strip, 0, adjY + offset); putpixel (topbar, x, y, col); } } } stuff_bar[0] = create_bitmap (STUFF_BAR_WIDTH, STUFF_BAR_HEIGHT); stuff_bar[1] = create_bitmap (STUFF_BAR_WIDTH, STUFF_BAR_HEIGHT); stuff_icon_base = create_bitmap (STUFF_BAR_WIDTH/10, STUFF_BAR_HEIGHT); clear_to_color (stuff_bar[0], PINK); clear_to_color (stuff_bar[1], PINK); clear_to_color (stuff_icon_base, PINK); stuff_bar_gradient_strip = create_gradient_strip (stuff_bar_gradient, STUFF_BAR_WIDTH); double halfStuffBarHeight = (STUFF_BAR_HEIGHT / 2) - 2; for (double x = 0; x < STUFF_BAR_WIDTH; x += 1.) { for (double y = 0; y < STUFF_BAR_HEIGHT; y += 1.) { double sides_dist = 0.1; double circle_dist = FABSDISTANCE2(x, y, STUFF_BAR_WIDTH - 75, halfStuffBarHeight); if (circle_dist < 75.) circle_dist = 1. - (circle_dist / 75.0); else circle_dist = 0.; if (x < (STUFF_BAR_HEIGHT/2 - 2)) sides_dist -= 0.1 - (x / 150.); else if (x > STUFF_BAR_WIDTH - (STUFF_BAR_HEIGHT/2 - 2)) sides_dist -= (x - (STUFF_BAR_WIDTH - halfStuffBarHeight)) / 150.; if (y < STUFF_BAR_HEIGHT/2 - 2) sides_dist -= 0.1 - (y / 150.); else sides_dist -= (y - halfStuffBarHeight) / 150.; sides_dist -= circle_dist * circle_dist; if (sides_dist > (x / 1000.0)) sides_dist = x / 1000.0; if (sides_dist < 0) sides_dist = 0; if (circle_dist > 1) circle_dist = 1; int32_t offset = (sides_dist + circle_dist) * (STUFF_BAR_WIDTH - 1); if (offset >= STUFF_BAR_WIDTH) offset = STUFF_BAR_WIDTH - 1; int32_t col_a = getpixel(stuff_bar_gradient_strip, 0, offset); offset = (sides_dist + circle_dist + 0.06) * (STUFF_BAR_WIDTH - 1); if (offset >= STUFF_BAR_WIDTH) offset = STUFF_BAR_WIDTH - 1; int32_t col_b = getpixel(stuff_bar_gradient_strip, 0, offset); if (x < (STUFF_BAR_WIDTH / 10)) { putpixel (stuff_icon_base, x, y, col_a); } if (y < STUFF_BAR_HEIGHT - 5) { putpixel (stuff_bar[0], x, y, col_a); putpixel (stuff_bar[1], x, y, col_b); } } } initDone = true; } // === Helper Functions === // ======================== BITMAP *create_gradient_strip (const gradient *grad, int32_t len) { BITMAP *strip = create_bitmap (1, len); if (! strip) return nullptr; clear_to_color (strip, BLACK); for (int32_t currLine = 0; currLine < len; ++currLine) { int32_t color = gradientColorPoint(grad, len, currLine); putpixel (strip, 0, currLine, color); } return strip; } int32_t gradientColorPoint(const gradient* grad, double len, double line) { int32_t pointCount = 0; double point = line / len; int32_t color = BLACK; for ( ; (point >= grad[pointCount].point) && (grad[pointCount].point != -1); ++pointCount) ; pointCount--; if (pointCount == -1) color = makecol (grad[0].color.r, grad[0].color.g, grad[0].color.b); else if (grad[pointCount + 1].point == -1) color = makecol(grad[pointCount].color.r, grad[pointCount].color.g, grad[pointCount].color.b); else { double i = (point - grad[pointCount].point) / (grad[pointCount + 1].point - grad[pointCount].point); int32_t r = ROUND(interpolate (grad[pointCount].color.r, grad[pointCount + 1].color.r, i)); int32_t g = ROUND(interpolate (grad[pointCount].color.g, grad[pointCount + 1].color.g, i)); int32_t b = ROUND(interpolate (grad[pointCount].color.b, grad[pointCount + 1].color.b, i)); color = makecol (r, g, b); } return color; } atanks-6.6/src/shop.h0000644000175000017500000000036112636021030012670 0ustar apoapo#pragma once #ifndef ATANKS_SRC_SHOP_H_INCLUDED #define ATANKS_SRC_SHOP_H_INCLUDED class LevelCreator; // From gameloop.h // give people the chance to buy items bool shop(LevelCreator* lvl_creator); #endif // ATANKS_SRC_SHOP_H_INCLUDED atanks-6.6/src/globals.h0000644000175000017500000000330113006377360013353 0ustar apoapo#ifndef ATANKS_SRC_ATANKS_CPP # error "globals.h must not be included from anywhere but atanks.cpp!" #endif // ATANKS_SRC_ATANKS_CPP #include "globaldata.h" // === The two most important things in the game: ;) === GLOBALDATA global; ENVIRONMENT env; // === Defined colours used everywhere === int32_t BLACK, BLUE, DARK_GREEN, DARK_GREY, DARK_RED, GOLD, GREY, GREEN, LIGHT_GREEN, LIME_GREEN, ORANGE, PINK, PURPLE, RED, SILVER, TURQUOISE, WHITE, YELLOW; // === General values that are globally used === char buf[100]; // buffer for general use const char* errorMessage; int32_t errorX, errorY; int32_t k, K; // k = key pressed, K = Key Code from k int32_t fi, lx, ly; int32_t game_version; // Used for update check and save file upgrades // === Gradients === gradient topbar_gradient[4] = { {{200,200,200,0}, 0.0}, {{255,255,255,0}, 0.5}, {{128,128,128,0}, 1.0}, {{0,0,0,0}, -1} }; gradient stuff_bar_gradient[11] = { {{ 0,120, 0,0}, 0.0}, {{ 10,210, 50,0}, 0.1}, {{100,150,150,0}, 0.28}, {{100,170,170,0}, 0.31}, {{200,200,200,0}, 0.33}, {{120,150,120,0}, 0.35}, {{180,190,180,0}, 0.5}, {{210,210,210,0}, 0.55}, {{200,220,200,0}, 0.57}, {{255,255,255,0}, 1.0}, {{0,0,0,0}, -1} }; gradient circles_gradient[4] = { {{100, 75, 50,0}, 0.0}, {{ 0,100, 0,0}, 0.5}, {{255,255,255,0}, 1.0}, {{0,0,0,0}, -1} }; // Explosion gradient gradient explosion_gradient1[3] = { {{150, 75, 30,0}, 0.0}, {{255,255,255,0}, 1.0}, {{0,0,0,0}, -1} }; // Explosion gradient gradient explosion_gradient2[3] = { {{255,255,102,0}, 0.0}, // ff6 {{255,136, 0,0}, 1.0}, // f80 {{0,0,0,0}, -1} }; gradient* explosion_gradients[2] = { explosion_gradient1, explosion_gradient2 }; atanks-6.6/src/update.cpp0000644000175000017500000000477513006377360013565 0ustar apoapo#include "debug.h" #include #include #include #include #include #if defined(ATANKS_IS_MSVC) /// What is needed here? #else # include # include # include # include #endif // MSVC++ versus gcc/clang #include "update.h" #include "network.h" #include "externs.h" /// @brief update_data default ctor update_data::update_data(const char* server_, const char* remote_, const char* host_) : server_name (server_ ? strdup(server_) : strdup("")), host_name (host_ ? strdup(host_) : strdup("")), remote_file (remote_ ? strdup(remote_) : strdup("")) { memset(update_string, 0, sizeof(char) * 1024); } /// @brief update_data default dtor update_data::~update_data() { if (server_name) free (server_name); if (host_name) free (host_name); if (remote_file) free (remote_file); } void update_data::operator()() { #ifdef NETWORK if (env.check_for_updates) { // set up socket int socket_num, port_number = 80; struct sockaddr_in server_address; struct hostent* server; char buffer[1024]; char* found = nullptr; int got_bytes; int32_t towrite, written; socket_num = socket(AF_INET, SOCK_STREAM, 0); if (socket_num < 0) return; server = gethostbyname(server_name); if (! server) return; bzero((char*) &server_address, sizeof(server_address)); server_address.sin_family = AF_INET; bcopy((char*) server->h_addr, (char*) &server_address.sin_addr.s_addr, server->h_length); server_address.sin_port = htons(port_number); // try to connect if ( connect(socket_num, (sockaddr*)&server_address, sizeof(server_address)) < 0) return; // get HTTP data SAFE_WRITE(socket_num, "GET /%s HTTP/1.1\nHost: %s\n\n", remote_file, host_name) got_bytes = read(socket_num, buffer, 1024); // search for version number in return data if (got_bytes > 1) found = strstr(buffer, "Version: "); while ( (got_bytes > 1) && (! found) ) { got_bytes = read(socket_num, buffer, 1024); if (got_bytes > 1) found = strstr(buffer, "Version: "); } // compare version number if (found) { found += 9; found[5] = '\0'; double web_version = 0.; sscanf(found, "%lf", &web_version); int32_t ext_version = static_cast(web_version * 10); if (ext_version > game_version) snprintf(update_string, 1024, "A new version, %2.1lf, is ready for download.", web_version); } close(socket_num); } #endif // NETWORK } atanks-6.6/src/floattext.cpp0000644000175000017500000003317313006377360014307 0ustar apoapo#include "floattext.h" FLOATTEXT::FLOATTEXT (const char* text_, int32_t xpos, int32_t ypos, double xv_, double yv_, int32_t color_, alignType alignment, eTextSway sway_type, int32_t max_age, bool is_fixed_) : VIRTUAL_OBJECT(), color(color_), is_fixed(is_fixed_), is_pushed(!is_fixed), pos_x(xpos), pos_y(ypos) { int32_t sky_col = TURQUOISE; if ( (pos_x > -1) && (pos_y > MENUHEIGHT) && (pos_x < env.screenWidth) && (pos_y < env.screenWidth) ) { sky_col = getpixel(env.sky, pos_x, pos_y - MENUHEIGHT); } halfColor = GetShadeColor(color, true, sky_col); align = alignment; maxAge = max_age; if (text_) set_text(text_); // The font and thus its height is fixed: dim_cur.h = env.fontHeight + (env.fontHeight % 2); x = pos_x; y = pos_y; dim_cur.x = ROUND(pos_x); dim_cur.y = ROUND(pos_y); set_sway_type(sway_type); set_speed(xv_, yv_); // Add to the chain: global.addObject(this); } FLOATTEXT::~FLOATTEXT() { requireUpdate (); this->update(); // Only do the final update if the dimensions have been set if ( dim_cur.w > 0 ) { // Update current position int32_t left = LEFT == align ? dim_cur.x : RIGHT == align ? dim_cur.x - dim_cur.w : dim_cur.x - (dim_cur.w / 2); int32_t top = LEFT == align ? dim_cur.y : RIGHT == align ? dim_cur.y - dim_cur.h : dim_cur.y - (dim_cur.h / 2); int32_t right = std::min(env.screenWidth, left + dim_cur.w + 1); int32_t bottom = std::min(env.screenHeight, top + dim_cur.h + 1); global.make_bgupdate(left, top, right - left, bottom - top); // Update previous position left = LEFT == align ? dim_old.x : RIGHT == align ? dim_old.x - dim_old.w : dim_old.x - (dim_old.w / 2); top = LEFT == align ? dim_old.y : RIGHT == align ? dim_old.y - dim_old.h : dim_old.y - (dim_old.h / 2); right = std::min(env.screenWidth, left + dim_old.w + 1); bottom = std::min(env.screenHeight, top + dim_old.h + 1); if ( (right > left) && (bottom > top) ) global.make_bgupdate(left, top, right - left, bottom - top); } // Free allocated text if (text) { free(text); text = nullptr; } // Take out of the chain: global.removeObject(this); } void FLOATTEXT::applyPhysics() { // Opt out early if there is no text to be drawn. if ( (nullptr == text) || (dim_cur.w < 1) ) return; if (TS_HORIZONTAL == sway) { double x_dist = pos_x - x; double rel_xv = static_cast(sway - std::abs(x_dist)) / static_cast(sway) * SIGNd(x_dist); // [-1:+1] if (std::abs(rel_xv) < 0.15) // Only reverse to not stop it. xv *= -1.; else if (SIGN(xv) == SIGN(rel_xv)) xv = rel_xv; else xv = -1. * rel_xv; } else if (TS_VERTICAL == sway) { double y_dist = pos_y - y; double rel_yv = static_cast(sway - std::abs(y_dist)) / static_cast(sway) * SIGNd(y_dist); // [-1:+1] if (std::abs(rel_yv) < 0.33) // Only reverse to not stop it. yv *= -1.; else if (SIGN(yv) == SIGN(rel_yv)) yv = rel_yv; else yv = -1. * rel_yv; } pos_x += xv; pos_y += yv; dim_cur.x = ROUND(pos_x); dim_cur.y = ROUND(pos_y); requireUpdate(); if ( (maxAge != -1) && (++age > maxAge) ) destroy = true; } void FLOATTEXT::check_pos(bool is_new) { if (is_fixed) is_pushed = false; // Do nothing. else { FLOATTEXT* curr = nullptr; bool curr_is_older = true; // We start with head, which is the oldest. global.getHeadOfClass(CLASS_FLOATTEXT, &curr); is_pushed = false; while (curr) { if (this == curr) curr_is_older = false; // The following are newer texts else if (!curr->is_fixed) { // If the other text is older, this one is // pushed. if (curr_is_older || is_new) this->push_down(curr->overlaps_by(this), true); // otherwise the other is pushed. else curr->push_down(this->overlaps_by(curr), false); } // End of having another text curr->getNext(&curr); } } // End of not fixed text } /// Little Helper, move it somewhere else if it makes sense to be used elsewhere #define SAFE_MAKECOL(r_, g_, b_) makecol( \ r_ < 0 ? 0 : r_ > 255 ? 255 : r_, \ g_ < 0 ? 0 : g_ > 255 ? 255 : g_, \ b_ < 0 ? 0 : b_ > 255 ? 255 : b_) void FLOATTEXT::draw() { // Opt out early if there is no text to be drawn. if ( (nullptr == text) || !dim_cur.w) return; // If the width is not known, yet, determine it if (1 > dim_cur.w) { dim_cur.w = text_length(font, text) + 3; dim_cur.w += dim_cur.w % 2; if (!is_fixed) check_pos(true); } else if (is_pushed) // check, someone thought this to be in the way! check_pos(false); // Current position according to alignment: int32_t left = LEFT == align ? dim_cur.x : RIGHT == align ? dim_cur.x - dim_cur.w : dim_cur.x - (dim_cur.w / 2); int32_t top = LEFT == align ? dim_cur.y : RIGHT == align ? dim_cur.y - dim_cur.h : dim_cur.y - (dim_cur.h / 2); double shadeFade = 0.75; int32_t frontCol = color; int32_t shadeCol = halfColor; int32_t backCol = color; // If either shadowed or fading text is enabled, a background // average colour is needed. if ( (env.shadowedText || env.fadingText) && !global.skippingComputerPlay) { backCol = global.get_avg_bgcolor(left, top, left + dim_cur.w, top + dim_cur.h, xv, yv); // If fading text is activated, the front colour must be calculated as well if ( env.fadingText && (maxAge > 0) && (age >= (maxAge / 2)) ) { double calcMax = maxAge / 2; double calcAge = age - calcMax; double frontFade = 1.0 - (calcAge / calcMax); shadeFade -= 0.75 * (calcAge / calcMax); if (frontFade < 0.) frontFade = 0.; if (shadeFade < 0.) shadeFade = 0.; double backFade = 1.0 - frontFade; if (backFade < 0.) backFade = 0.; int32_t r = ROUND( (getr(frontCol) * frontFade) + (getr(backCol) * backFade) ); int32_t g = ROUND( (getg(frontCol) * frontFade) + (getg(backCol) * backFade) ); int32_t b = ROUND( (getb(frontCol) * frontFade) + (getb(backCol) * backFade) ); frontCol = SAFE_MAKECOL(r, g, b); } // end of calculating fading values // The now current values must be applied to the shadow colour if needed if (env.shadowedText) { double backFade = 1.0 - shadeFade; if (backFade < 0.) backFade = 0.; int32_t r = ROUND( (getr(shadeCol) * shadeFade) + (getr(backCol) * backFade) ); int32_t g = ROUND( (getg(shadeCol) * shadeFade) + (getg(backCol) * backFade) ); int32_t b = ROUND( (getb(shadeCol) * shadeFade) + (getb(backCol) * backFade) ); shadeCol = SAFE_MAKECOL(r, g, b); } // End of calculating shadow values } // End of fading / shadow preparations // Eventually print out the text: if (env.shadowedText && !global.skippingComputerPlay) textout_ex (global.canvas, font, text, left + 1, top + 1, shadeCol, -1); textout_ex (global.canvas, font, text, left, top, frontCol, -1); } void FLOATTEXT::newRound() { if (maxAge > 0) age = maxAge + 1; } /** @brief return the number of pixels this overlaps with @a other vertically. * @param[in] other The floating text to compare this with. * @return 0 if no overlapping found. <0 if @a other overlaps above, * >0 if @a other overlaps below the centre of this text. * * Note: If either is fixed, the method always returns 0. **/ int32_t FLOATTEXT::overlaps_by(const FLOATTEXT* other) { if (other && (other != this)) { // return at once if either is fixed. if (this->is_fixed || other->is_fixed) return 0; // Non of your business! // Otherwise only check vertical if ( ((other->dim_cur.x + other->dim_cur.w) > dim_cur.x) && ((dim_cur.x + dim_cur.w) > other->dim_cur.x) ) { int32_t this_y2 = dim_cur.y + dim_cur.h; int32_t other_y2 = other->dim_cur.y + other->dim_cur.h; if ( (other_y2 > dim_cur.y) && (this_y2 > other->dim_cur.y) ) { // If the other text is above this one, push it up by the // overlapping amount, which is the distance from // this y to their y + h. // Otherwise, the other text is to be pushed down by an amount // that is the distance from their y to this y + h if ( (other->dim_cur.y < dim_cur.y) // Should be enough, but if || (other_y2 < this_y2) ) // not, favour pushing up return dim_cur.y - other_y2; // in any case. else return this_y2 - other->dim_cur.y; } } // End of x overlapping } // End of having a different other return 0; } /// @brief push down this text by ydiff pixels void FLOATTEXT::push_down(int32_t ydiff, bool is_new) { if (ydiff && !is_fixed) { // new(er) texts can be pushed by up to 3, older texts // by only one pixel. int32_t push_by = is_new ? (ydiff > 3 ? 3 : ydiff < -3 ? -3 : ydiff) : (ydiff > 1 ? 1 : ydiff < -1 ? -1 : ydiff); pos_y = dim_cur.y = y = y + push_by; // Whenever a text is pushed up, raise its speed by 1% / 3%. // And when it is pushed down, lower its speed by 1% / 3%. // Otherwise speedy texts keep bumping into the same // over and over again. yv *= 1.00 + (-0.01 * push_by); is_pushed = true; } } // Reset movement to begin neutrally if the text is swaying void FLOATTEXT::reset_sway() { xv = 0.; yv = 0.; pos_x = x; pos_y = y; if (TS_HORIZONTAL == sway) { pos_x = x + ((1 + (rand() % (sway / 2))) * (rand() % 2 ? -1 : 1)); xv = SIGNd(pos_x - x); } else if (TS_VERTICAL == sway) { pos_y = y; yv = -1.; } dim_cur.x = pos_x; dim_cur.y = pos_y; } void FLOATTEXT::set_color(int32_t color_) { if (color != color_) color = color_; int32_t left = LEFT == align ? dim_cur.x + (dim_cur.w / 2) : dim_cur.x - (dim_cur.w / 2); int32_t top = LEFT == align ? dim_cur.y + (dim_cur.h / 2) : dim_cur.y - (dim_cur.h / 2); int32_t sky_col = TURQUOISE; if ( (left > -1) && (top > MENUHEIGHT) && (left < env.screenWidth) && (top < env.screenWidth) ) { sky_col = getpixel(env.sky, left, top - MENUHEIGHT); } halfColor = GetShadeColor(color, true, sky_col); } void FLOATTEXT::set_pos(int32_t xpos, int32_t ypos) { if ( (xpos != x) || (ypos !=y) ) { x = xpos; y = ypos; reset_sway(); } } void FLOATTEXT::set_speed(double xv_, double yv_) { reset_sway(); if (TS_HORIZONTAL != sway) xv = xv_; if (TS_VERTICAL != sway) { if (yv_ < 0.) { // avoid over-lapping text double mix_it_up = ((rand() % 6) - 3.) / 10.; // [-.3;+.2] yv = yv_ + mix_it_up; // avoid text that does not move up if (yv > -0.1) yv = -0.1; } else yv = yv_; } } void FLOATTEXT::set_sway_type(eTextSway sway_type) { if (sway_type != sway) { sway = sway_type; reset_sway(); } } void FLOATTEXT::set_text(const char* text_) { if (text && text_ && !strcmp(text, text_)) return; size_t new_len = text_ ? strlen(text_) : 0; size_t old_len = text ? strlen(text) : 0; // clean up old text if (text && old_len) memset(text, 0, old_len * sizeof(char)); // reallocate new text if (!text || (new_len > old_len)) { char* new_text = (char*)realloc(text, (new_len + 1) * sizeof(char)); if (new_text) { text = new_text; memset(text, 0, (new_len + 1) * sizeof(char)); } else { cerr << "Unable to allocate " << ( (new_len + 1) * sizeof(char)); cerr << " bytes for new text" << endl; return; } } // Copy new text if any. If not, _text is { 0x0 } already. if (new_len) { strncpy(text, text_, new_len); dim_cur.w = -1; // draw() must determine width } else // Width must be reset dim_cur.w = 0; } /// @param[in] do_lighten If true, the colour is made brighter if the shade colour /// would be too dark to make a difference. /// @param[in] bg_colour If not PINK, the background colour is taken into account /// and the result darkened or lightened more according to @a do_lighten int32_t GetShadeColor(int32_t colour, bool do_lighten, int32_t bg_colour) { int32_t r = getr(colour), g = getg(colour), b = getb(colour); float h, s, v; if (do_lighten) { // Be sure something can be done with near black colours if ((r < 0x20) && (g < 0x20) && (b < 0x20)) { r = 0x28; g = 0x28; b = 0x28; } } rgb_to_hsv(r, g, b, &h, &s, &v); if (do_lighten) { if (s < 0.10) s = 0.10; if (v < 0.25) v = 0.25; } int32_t rn, gn, bn; double s_mod = s > 0.5 ? (s > 0.9 ? 0.33 : 0.5) : (do_lighten ? 1.75 : .75); double v_mod = v > 0.5 ? (v > 0.9 ? 0.33 : 0.5) : (do_lighten ? 1.75 : .75); hsv_to_rgb(h, s * s_mod * (v > 0.75 ? 0.5 : 1.), v * v_mod * (s > 0.75 ? 0.5 : 1.), &rn, &gn, &bn); // check to see if this all fits with a possible background if (bg_colour != PINK) { int32_t rb = getr(bg_colour), gb = getg(bg_colour), bb = getb(bg_colour); int32_t rm = (rn + r) / 2, gm = (gn + g) / 2, bm = (bn + b) / 2; if (ABSDISTANCE3(rb, gb, bb, rm, gm, bm) < 0x20) { // The middle between the colour and its shade is too near // to the background. Here s_mod/v_mod can be reused: rn = std::round( static_cast(rn) * (rn > r ? std::max(s_mod, v_mod) : std::min(s_mod, v_mod))); gn = std::round( static_cast(gn) * (gn > g ? std::max(s_mod, v_mod) : std::min(s_mod, v_mod))); bn = std::round( static_cast(bn) * (bn > b ? std::max(s_mod, v_mod) : std::min(s_mod, v_mod))); // Do not overflow: if (rn > 255) rn = 255; if (gn > 255) gn = 255; if (bn > 255) bn = 255; } } return makecol(rn, gn, bn); } atanks-6.6/src/atanks.rc0000755000175000017500000000464113006377360013401 0ustar apoapo// Microsoft Visual C++ generated resource script. // #include "resource.h" ///////////////////////////////////////////////////////////////////////////// // Neutral (Default) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEUD) LANGUAGE LANG_NEUTRAL, SUBLANG_DEFAULT #pragma code_page(1252) ///////////////////////////////////////////////////////////////////////////// // // Icon // // Icon with lowest ID value placed first to ensure application icon // remains consistent on all systems. A ICON "../atanks.ico" ALLEGRO_ICON ICON "../atanks.ico" #endif // Neutral (Default) resources ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// // English (United States) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US #pragma code_page(1252) ///////////////////////////////////////////////////////////////////////////// // // Version // 1 VERSIONINFO FILEVERSION 6,4,99,0 PRODUCTVERSION 6,4,99,0 FILEFLAGSMASK 0x0L #ifdef _DEBUG FILEFLAGS 0x1L #else FILEFLAGS 0x0L #endif FILEOS 0x40004L FILETYPE 0x1L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904e4" BEGIN VALUE "FileDescription", "Atomic Tanks" VALUE "FileVersion", "6.4.99.0" VALUE "LegalCopyright", "See credits.txt and COPYING.txt" VALUE "OriginalFilename", "atanks.exe" VALUE "ProductName", "Atomic Tanks" VALUE "ProductVersion", "6.4.99.0" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x409, 1252 END END #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // TEXTINCLUDE // 1 TEXTINCLUDE BEGIN "resource.h\0" END 2 TEXTINCLUDE BEGIN "\0" END 3 TEXTINCLUDE BEGIN "\r\n" "\0" END #endif // APSTUDIO_INVOKED #endif // English (United States) resources ///////////////////////////////////////////////////////////////////////////// #ifndef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 3 resource. // ///////////////////////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED atanks-6.6/src/clock.h0000644000175000017500000000105712636021030013015 0ustar apoapo#pragma once #ifndef ATANKS_SRC_CLOCK_H_INCLUDED #define ATANKS_SRC_CLOCK_H_INCLUDED #include "debug.h" #include int32_t game_us_get(); void game_us_reset(); int32_t menu_ms_get(); void menu_ms_reset(); /// REMOVE_VS12_WORKAROUND #if defined(ATANKS_IS_MSVC) && !defined(ATANKS_IS_AT_LEAST_MSVC13) void win_clock_deinit(); void win_clock_init(); #define WIN_CLOCK_INIT win_clock_init(); #define WIN_CLOCK_REMOVE win_clock_deinit(); #else #define WIN_CLOCK_INIT {} #define WIN_CLOCK_REMOVE {} #endif #endif // ATANKS_SRC_CLOCK_H_INCLUDED atanks-6.6/src/clock.cpp0000644000175000017500000000352312636021030013350 0ustar apoapo#include "clock.h" #include /// === Used clocks and time granularity === using atanks_clock_t = std::chrono::steady_clock; #if defined(ATANKS_IS_MSVC) && !defined(ATANKS_IS_AT_LEAST_MSVC13) // Note: this is a bug in vc12, that is fixed in vc13. // See: https://connect.microsoft.com/VisualStudio/feedback/details/858357/steady-clock-now-returning-the-wrong-type # include "winclock.h" using time_point_t = std::chrono::time_point; #else using time_point_t = std::chrono::time_point; #endif // MSVC++ 2013 bug using clock_ms_t = std::chrono::milliseconds; using clock_us_t = std::chrono::microseconds; /// === Helper macros to not have ridiculously long lines === #define CLOCK_NOW atanks_clock_t::now() #define MS_CAST(x) static_cast(std::chrono::duration_cast(x).count()) #define US_CAST(x) static_cast(std::chrono::duration_cast(x).count()) /// === Internal values only used here === static time_point_t game_us_end = CLOCK_NOW; static time_point_t game_us_start = CLOCK_NOW; static time_point_t menu_ms_end = CLOCK_NOW; static time_point_t menu_ms_start = CLOCK_NOW; /// === Function implementations === /// REMOVE_VS12_WORKAROUND #if !defined(ATANKS_IS_MSVC) || defined(ATANKS_IS_AT_LEAST_MSVC13) int32_t game_us_get() { game_us_end = CLOCK_NOW; int32_t used_us = US_CAST(game_us_end - game_us_start); game_us_start = game_us_end; return used_us > 0 ? used_us : 0; } void game_us_reset() { game_us_end = CLOCK_NOW; game_us_start = game_us_end; } int32_t menu_ms_get() { menu_ms_end = CLOCK_NOW; int32_t used_us = MS_CAST(menu_ms_end - menu_ms_start); menu_ms_start = menu_ms_end; return used_us > 0 ? used_us : 0; } void menu_ms_reset() { menu_ms_end = CLOCK_NOW; menu_ms_start = menu_ms_end; } #endif // !ATANKS_IS_MSVC atanks-6.6/src/aicore.cpp0000644000175000017500000060642214105056644013542 0ustar apoapo#include "aicore.h" #include "player.h" #include "tank.h" #include "missile.h" #include "beam.h" #include "explosion.h" #include /// @brief Maximum AI Level is the highest level being lucky, thus +1. const int32_t maxAiLevel = DEADLY_PLAYER + 1; /** @struct sItemListEntry * @brief doubly linked list element to organize the AIs item preferences. **/ struct sItemListEntry { int32_t amount = 0; //!< Number of items in stock. bool escape = false; //!< Set to true if "getting away" points are awarded. bool kamikaze = false; //!< Set to true if self destruct points are awarded. sItemListEntry* next = nullptr; int32_t preference = 0; //!< Shortcut to the players preferences. sItemListEntry* prev = nullptr; int32_t score = 0; //!< How likely the AI uses this item. bool selectable = false; //!< Some are not selectable, like parachutes. int32_t type = 0; //!< The (enum) itemType of the item explicit sItemListEntry(sItemListEntry* prev_); ~sItemListEntry(); const char* getName() { return item[type].getName(); } }; /** @struct sOppMemEntry * @brief doubly linked list element to organize the AIs opponent memory. **/ struct sOppMemEntry { bool alive = true; //!< False if the tank is destroyed. int32_t attempts = 0; //!< How often tried to hit this round. int32_t buried_l = 0; //!< Buried level to the left. int32_t buried_r = 0; //!< Buried level to the right. double diffLife = 0.; //!< Difference to bots life value: (this - opp). double distance = 0.; //!< Shortcut to the absolute distance between both tanks. int32_t dmgDone = 0; //!< damage done in simulation to calculate hit score. sOpponent* entry = nullptr; //!< The AIs sOpponent memory (see players.h). bool hasRepulse = false; //!< Whether or not the opponent has a repulsor shield up. sOppMemEntry* next = nullptr; bool is_buried = 0; //!< Whether buried_l+buried_r is greater than BURIED_LEVEL. bool onSameTeam = false; //!< True if on the same team as the player. double opLife = 0.; //!< Full opponents life, which is tank->sh + tank->l. double opX = 0; //!< X-coordinate of the opponents tank. double opY = 0; //!< Y-coordinate of the opponents tank. sOppMemEntry* prev = nullptr; bool revengeDone = false; //!< Wether the score has already taken revenge into account. int32_t score = 0; //!< How likely the AI attacks this opponent. double team_mod = 1.; //!< Multiplier for the score according to which teams both belong to. explicit sOppMemEntry(sOppMemEntry* prev_); ~sOppMemEntry(); const char* getName() { return entry->opponent->getName(); } }; /** @struct sWeapListEntry * @brief doubly linked list element to organize the AIs weapon preferences **/ struct sWeapListEntry { int32_t amount = 0; //!< Number of weapons in stock. bool blastOut = false; //!< Set to true if blasting out points are awarded. int32_t delay = 0; //!< Used to track delayed weapons. double dmgCluster = 0.; //!< Cluster full damage. double dmgSingle = 0.; //!< Single shot damage. double dmgSpread = 0.; //!< Spread full damage. bool kamikaze = false; //!< Set to true if self destruct points are awarded. sWeapListEntry* next = nullptr; int32_t preference = 0; //!< Shortcut to the players preferences. sWeapListEntry* prev = nullptr; int32_t radius = 0; //!< Blast radius of the weapon. int32_t score = 0; //!< How likely the AI uses this weapon. int32_t spread = 1; //!< Checked weapon spread value. (See AICore::getMemory()) int32_t subMunCount= 0; //!< Number of sub munition "bomblets" int32_t subMunType = -1; //!< Clusters and such have sub munition. int32_t type = 0; //!< The (enum) weaponType of the weapon. explicit sWeapListEntry(sWeapListEntry* prev_); ~sWeapListEntry(); const char* getName() { return weapon[type].getName(); } }; /// @brief Template swapper, the types just need prev/next pointers template void swap_entries(T* lhs, T* rhs) { if (lhs && rhs && (lhs != rhs)) { // backup neighbourhood (and use as short cuts ;-) ) T* l_next = lhs->next; T* l_prev = lhs->prev; T* r_next = rhs->next; T* r_prev = rhs->prev; // Insert rhs into lhs location if (l_next && (l_next != rhs)) l_next->prev = rhs; if (l_prev && (l_prev != rhs)) l_prev->next = rhs; // Insert lhs into rhs location if (r_next && (r_next != lhs)) r_next->prev = lhs; if (r_prev && (r_prev != lhs)) r_prev->next = lhs; // Move rhs to lhs location rhs->next = l_next == rhs ? lhs : l_next; rhs->prev = l_prev == rhs ? lhs : l_prev; // Move lhs to (former) rhs location lhs->next = r_next == lhs ? rhs : r_next; lhs->prev = r_prev == lhs ? rhs : r_prev; } } /// @brief Template sorter, the types need prev, next and score. /// Sorting is done by score in descending order. If *head is sorted /// down the list, it is set to the new first element. template void sort_entries(T** head) { if (!head || !(*head) ) return; bool sorted = false; while (!sorted) { // Yield on each iteration to not hog the CPUs if (!global.skippingComputerPlay) std::this_thread::yield(); sorted = true; T* curr = *head; T* next = curr->next; while (next) { if (next->score > curr->score) { sorted = false; swap_entries(curr, next); if (*head == curr) *head = next; } else curr = next; next = curr->next; } // End of having next } // end of not sorted #if defined(ATANKS_DEBUG_AIMING) || defined(ATANKS_DEBUG_EMOTIONS) DEBUG_LOG_AI("Memory Sorting", "Sorting results:", 0) T* curr = *head; int32_t nr = 1; while (curr) { if (curr->score > -10000) { DEBUG_LOG_AI("Memory Sorting", "% 3d: Score %5d (%s)", nr++, curr->score, curr->getName()) curr = curr->next; } else curr = nullptr; } #endif // ATANKS_DEBUG_AIMING || ATANKS_DEBUG_EMOTIONS } /// @brief AICore default constructor AICore::AICore() : canMove(ATOMIC_VAR_INIT(true)), isMovedBy(ATOMIC_VAR_INIT(0)), textAllowed(ATOMIC_VAR_INIT(true)) { // As the opponent counts, and both weapons and items // list sizes are fixed, memory is reserved here. /// 1) Items for (int32_t i = 0; canWork && (i < ITEMS); ++i) { try { item_curr = new itEntry_t(item_last); if (!item_head) item_head = item_curr; item_last = item_curr; } catch (std::exception &e) { cerr << "Unable to reserve " << sizeof(itEntry_t); cerr << " bytes for AI item chain: " << e.what() << endl; destroy(); canWork = false; } } /// 2) Opponents for (int32_t i = 0; canWork && (i < env.numGamePlayers); ++i) { // Look for highest AI type if ( (env.players[i]->type <= DEADLY_PLAYER) && (env.players[i]->type > bestType) ) bestType = env.players[i]->type; // Create memory chain try { mem_curr = new opEntry_t(mem_last); if (!mem_head) mem_head = mem_curr; mem_last = mem_curr; } catch (std::exception &e) { cerr << "Unable to reserve " << sizeof(opEntry_t); cerr << " bytes for AI memory chain: " << e.what() << endl; destroy(); canWork = false; } } /// 3) Weapons for (int32_t i = 0; canWork && (i < WEAPONS); ++i) { try { weap_curr = new weEntry_t(weap_last); if (!weap_head) weap_head = weap_curr; weap_last = weap_curr; } catch (std::exception &e) { cerr << "Unable to reserve " << sizeof(weEntry_t); cerr << " bytes for AI weapon chain: " << e.what() << endl; destroy(); canWork = false; } } // Stop if no work can be done isStopped = !canWork; DEBUG_LOG_AI("AICore", "Instance created", 0) } /// @brief AICore destructor AICore::~AICore() { if (isWorking) { if (!isStopped) this->stop(); while (isWorking) std::this_thread::yield(); } // Clean up memory chains: this->destroy(); DEBUG_LOG_AI("AICore", "Instance destroyed", 0) } /// @brief return the currently active player or nullptr if not working PLAYER* AICore::active_player() const { if (isWorking) return player; return nullptr; } /** @brief aim the current selection * @param[in] is_last if set to true, the best result is accepted, no matter * what the outcome might be. * @param[in] can_move if set to true, the AI might try to move the tank into * a better position. * @return true if the aiming resulted in a usable hit. **/ bool AICore::aim(bool is_last, bool can_move) { plStage = PS_AIM; DEBUG_LOG_AIM(player->getName(), "Starting to aim %s at %s", weapon[weap_idx].getName(), mem_curr->entry->opponent->getName()) int32_t attempt = 0; // reset current values as there can be no guarantee that the // last selected combination works for the current weapon/opponent // selection. sanitizeCurr(); hill_detected = false; // Note: curr_overshoot is reset to MAX_OVERSHOOT in calcAttack() but // might have an actual traced value from calcBoxed(), so do not reset // it here again. // Reset aiming round memory best_score = NEUTRAL_ROUND_SCORE; best_angle = angle; best_power = power; best_prime_hit = false; best_overshoot = MAX_OVERSHOOT; last_ang_mod = 0; last_overshoot = MAX_OVERSHOOT; last_pow_mod = 0; last_reverted = false; last_score = 0; last_was_better = false; reached_x = x; reached_y = y; // loop until finished, forced off or ending unsuccessfully while (!isStopped && (++attempt <= findRngAttempts) ) { // Yield on each iteration to not hog the CPUs if (!global.skippingComputerPlay) std::this_thread::yield(); int32_t hit_score = 0; int32_t has_crashed = 0; int32_t has_finished = 0; // Modifications for this round: int32_t ang_mod = 1 + RAND_AI_1P; // [ 1; 7] int32_t pow_mod = (10 + RAND_AI_1P) // [10; 17] * curr_power / 100; // [10;340] DEBUG_LOG_AIM(player->getName(), "[%d/%d] Angle % 3d, Power % 4d", attempt, findRngAttempts, GET_DISP_ANGLE(curr_angle), curr_power) // Lower ang_mod and pow_mod if the last overshoot isn't that high int32_t abs_last_overshoot = std::abs(last_overshoot); int32_t max_ang_mod = abs_last_overshoot / (ai_level * 20) + 1; int32_t max_pow_mod = abs_last_overshoot / (ai_level * 5) + 5; // max_pow_mod must be a power of five max_pow_mod += max_pow_mod % 5; if (ang_mod > max_ang_mod) { DEBUG_LOG_AIM(player->getName(), " => ang_mod too high (%d / %d) ; reducing...", ang_mod, max_ang_mod) ang_mod = max_ang_mod; } // pow_mod must be a power of five pow_mod += pow_mod % 5; if (pow_mod > max_pow_mod) { DEBUG_LOG_AIM(player->getName(), " => pow_mod too high (%d / %d) ; reducing...", pow_mod, max_pow_mod) pow_mod = max_pow_mod; } // See where we are going: traceWeapon(has_crashed, has_finished); hit_score = calcHitScore(is_last && needSuccess); // See whether this shot actually got nearer to the opponent. // (Note: Otherwise a better score just means less collateral damage!) bool is_nearer = std::abs(last_overshoot) >= std::abs(curr_overshoot); DEBUG_LOG_AIM(player->getName(), "[%d/%d] => Score %d, Overshoot %d (%s [last: %d])", attempt, findRngAttempts, hit_score, curr_overshoot, is_nearer ? "Nearer" : "Farther", last_overshoot) // Note down a new best score: bool new_best_score = (hit_score > best_score); if ( ( new_best_score && curr_prime_hit) || (!best_prime_hit && (new_best_score || curr_prime_hit) ) ) { // Note: Better score with prime hit, prime hit for the first time, // or better score with prime never hit. DEBUG_LOG_AIM(player->getName(), "[%d/%d] => New best score %d [%d best]", attempt, findRngAttempts, hit_score, best_score) sanitizeCurr(); best_angle = curr_angle; best_overshoot = curr_overshoot; best_power = curr_power; best_prime_hit = curr_prime_hit; best_score = hit_score; // The last modifications seem to have brought something ang_mod = (last_ang_mod + (SIGN(last_ang_mod) * ang_mod)) / 2; pow_mod = (last_pow_mod + pow_mod) / 2 * SIGN(best_overshoot); } // Otherwise a movement might be in order else if ( canMove // No failed or finished moving done, yet && can_move // Half of the oppAttempts are off && (attempt >= (findRngAttempts / 2)) // Half the aiming, too && (buried < BURIED_LEVEL) // Not buried && (!best_prime_hit || (best_score <= 0)) // nothing achieved here && needSuccess // nothing achieved otherwise so far && moveTank() /* movement done */ ) { // Reclaim this attempt --attempt; // And continue, we need to retrace the weapon continue; } // The outcome has to be checked: if (canWork && !isStopped) { /* The following situations can occur: * * A) The shot (or part of them) have not been finished. * In this case power must be reduced and the angle * has to be moved in a more neutral position if it * is too steep or flat. * B) With steel or wrap wall the shot might crash into * a wrap ceiling or the wall and ceiling made of steel. * Generally this can only be fixed by lowering power and * getting away from 45° angles. * C) The hit is nearer than the last one. * This is good. If it even has a positive hit_score, * it can be noted down as a new best hit. * D) The hit is farther away. If the score is better, * the direction of modification seems correct. * Otherwise it might be better to revert those changes. */ // --- Situation A) The shot was not finished. --- //------------------------------------------------- if ( !has_finished // Pure situation A must be taken care of || ( (has_finished < weap_curr->spread) && ( (has_finished - RAND_AI_0P) < 0) ) ) { DEBUG_LOG_AIM(player->getName(), "[%d/%d] %d / %d finished, trying to correct", attempt, findRngAttempts, has_finished, weap_curr->spread) fixUnfinished(ang_mod, pow_mod); last_reverted = (SIGN(last_ang_mod) != SIGN(ang_mod)); last_was_better = false; } // End of having lost the shot prediction // --- Situation B) The shot(s) crashed --- //------------------------------------------------ else if ( (has_crashed == weap_curr->spread) || ( (has_crashed > 0) && ((has_crashed + RAND_AI_0P) >= weap_curr->spread)) ) { DEBUG_LOG_AIM(player->getName(), "[%d/%d] %d / %d crashed, trying to correct", attempt, findRngAttempts, has_crashed, weap_curr->spread) fixCrashed(ang_mod, pow_mod); // If there is a positive hit_score, halve it for every // shot that crashed: if (hit_score > 0) { for (int32_t i = 0; i < has_crashed; ++i) { if (RAND_AI_0P) hit_score /= 2; } } last_reverted = (SIGN(last_ang_mod) != SIGN(ang_mod)); last_was_better = false; } // --- Situation C) The shot is nearer to the target. --- //-------------------------------------------------------- else if (is_nearer) { // Note: if this is a new best score, some adaptation has // already been made above. if (hit_score < last_score) { DEBUG_LOG_AIM(player->getName(), "[%d/%d] => Nearer but not a better score %d [%d best]", attempt, findRngAttempts, hit_score, best_score) // Just modify the new angle mod to mimic the last // with new values ang_mod = std::abs(ang_mod) * SIGN(last_ang_mod); last_was_better = true; } else last_was_better = false; last_reverted = (SIGN(last_ang_mod) != SIGN(ang_mod)); // pow_mod must have the opposite sign of the overshoot: pow_mod = std::abs(pow_mod) * SIGN(curr_overshoot) * -1; DEBUG_LOG_AIM(player->getName(), "[%d/%d] New angle mod %d, new power mod %d", attempt, findRngAttempts, ang_mod, pow_mod) } // End of having a nearer hit // --- Situation D) The shot hit farther away than the best. --- //--------------------------------------------------------------- else { DEBUG_LOG_AIM(player->getName(), "[%d/%d] Farther impact (%d curr, %d best)" " [score %d]", attempt, findRngAttempts, curr_overshoot, best_overshoot, hit_score) fixOvershoot(ang_mod, pow_mod, hit_score); last_reverted = SIGN(ang_mod) != SIGN(last_ang_mod); DEBUG_LOG_AIM(player->getName(), "[%d/%d] New angle mod %d, new power mod %d", attempt, findRngAttempts, ang_mod, pow_mod) } // End of situation C // Try to fix 180° shots if no positive score was achieved: if ( (180 == curr_angle) && !ang_mod && (hit_score < 1) ) { ang_mod = SIGN(mem_curr->opX - x) * (RAND_AI_1P + 1) * -1.; DEBUG_LOG_AIM(player->getName(), "Vertical shot detected, new angle mod %d", ang_mod) } // Otherwise check if we actually reach a non-steel wall if the // shot was flipped. else if ( hasFlipped && (std::abs(curr_overshoot) > std::abs(mem_curr->opX - x)) && (SIGN(reached_x - x) != SIGN(mem_curr->opX - x))) { DEBUG_LOG_AIM(player->getName(), "Flip shot failed, flipping back from %d° to %d°", GET_DISP_ANGLE(curr_angle), GET_DISP_ANGLE(FLIP_ANGLE(curr_angle))) curr_angle = FLIP_ANGLE(curr_angle); hasFlipped = false; } // Power modification can be modified by a difference between // the overshoot and the actual modification according to // AI settings: // ---------------------------------------------------------- double power_diff = (std::abs(curr_overshoot) - std::abs(pow_mod)) / (std::abs(ang_mod) ? std::abs(ang_mod) : 1); if ( (curr_overshoot < MAX_OVERSHOOT) && (power_diff > std::abs(pow_mod)) && (hit_score < 1) ) { DEBUG_LOG_AIM(player->getName(), "Too low power mod difference %d" " (overshoot %d, pow_mod %d)", ROUND(power_diff), curr_overshoot, ROUND(pow_mod)) pow_mod += power_diff * focusRate / 2. * SIGNd(pow_mod); if (std::abs(pow_mod) > max_pow_mod) pow_mod = max_pow_mod * SIGN(pow_mod); DEBUG_LOG_AIM(player->getName(), std::abs(pow_mod) == max_pow_mod ? "pow_mod %d at maximum!" : "Hopefully fixed power mod: %d", pow_mod) } // Make sure both modifications applied end in a sane results: // ----------------------------------------------------------- // Test angle to the right if ( (curr_angle + ang_mod) < 90) { if (curr_angle > 90) // Just sanitize ang_mod = 90 - curr_angle; else // Pull up to try again from a very different view ang_mod = ROUNDu(60. * focusRate) // + [10;60] - (RAND_AI_0P * 5); // - [ 5;25] } // End of sanitizing angle right // Test angle to the left else if ( (curr_angle + ang_mod) > 270) { if (curr_angle < 270) // Just sanitize ang_mod = 270 - curr_angle; else // Pull up to try again from a very different view ang_mod = (-60. * focusRate) // - [10;60] + (RAND_AI_0P * 5); // + [ 0;25] } // End of sanitizing angle left // Test bottom power range if ( (curr_power + pow_mod) < MIN_POWER) { if (curr_power > MIN_POWER) // Just sanitize pow_mod = MIN_POWER - curr_power; else // Give more power to go somewhere else pow_mod = (900. * focusRate) // + [150;900] - (RAND_AI_0P * 50); // - [ 0;250] } // Test upper power range if ( (curr_power + pow_mod) > MAX_POWER) { if (curr_power < MAX_POWER) // Just sanitize pow_mod = MAX_POWER - curr_power; else // Give more power to go somewhere else pow_mod = (-900. * focusRate) // - [150;900] + (RAND_AI_0P * 50); // + [ 0;250] } // Apply mods: curr_angle += ang_mod; curr_power += pow_mod; // Save current score, mods and overshot: last_ang_mod = ang_mod; last_overshoot = curr_overshoot; last_pow_mod = pow_mod; last_score = hit_score; } // End of canWork and not isStopped } // end of aiming loop DEBUG_LOG_AIM(player->getName(), "Final score with angle %d, power %d : %d => %s%s", GET_DISP_ANGLE(best_angle), best_power, best_score, (best_score > 0) || (is_last && needSuccess) ? "Success!" : "Failure!", is_last && needSuccess ? " (is_last forced!)" : "") // If this was the last try and it did not reach the target having // a negative best score, assume that the path is blocked. // However, if a best setup is already known, revert to that. if ( (weap_idx < WEAPONS) && is_last && needSuccess && (best_setup_score < 0) && (best_round_score < 0) && (best_score < 0) && (best_overshoot < 0) // too short && ( ( (reached_y > BOXED_TOP) // Not a ceiling crash, && (-best_overshoot > weap_curr->radius) ) // but can't hit || hill_detected ) /* if a hill was detected, it must be removed */ ) { bool free_tank = std::abs(reached_x - x) < weapon[RIOT_BLAST].radius; if (useFreeingTool(free_tank, is_last)) { needAim = false; isBlocked = true; hill_detected = true; if (free_tank) calcUnbury(is_last); else { // Write back best values curr_angle = best_angle; curr_power = best_power; // If this is a shot that got too short and a riot bomb // is chosen, flatten the angle to hit the mountain in between flattenCurrAng(); // Now set the results: sanitizeCurr(); angle = curr_angle; power = curr_power; DEBUG_LOG_AIM(player->getName(), "Obstacle detected, trying to clear path using %s", weap_idx < WEAPONS ? weapon[weap_idx].getName() : item[weap_idx - WEAPONS].getName()) } return true; } } // Write back best values if this is a success: if (best_score > best_round_score) { best_round_score = best_score; curr_angle = best_angle; curr_power = best_power; sanitizeCurr(); } return ( (best_round_score > 0) || (is_last && needSuccess) ); } /// @brief Allow AICore to create FLOATTEXT instances void AICore::allowText() { textAllowed.store(true, ATOMIC_WRITE); } /** @brief calculate basic attack values or set up the last ones * @param[in] attempt If this equals findTgtAttempts, this method is forced to * not check too harshly, so it always returns true. * @return true if the method came up with something sane. **/ bool AICore::calcAttack(int32_t attempt) { bool is_last = ((attempt == findTgtAttempts) && needSuccess); plStage = PS_CALCULATE; hasFlipped = false; isBlocked = false; needAim = false; curr_overshoot = MAX_OVERSHOOT; offset_x = 0; offset_y = 0; // If an item is chosen over a weapon, nothing is to be done if (item_curr && !weap_curr) { // If an item is selected, write back the currently used // angle and power, nothing is to be changed now. curr_angle = angle; curr_power = power; return true; } assert(weap_curr && "ERROR: weap_curr is nullptr in calcAttack() with no item chosen!"); // If the currently chosen opponent is the one attacked // in the last round, simply copy back the old attack // values and be done if ( last_opp && (last_opp->opponent != player) // don't repeat self destruct attempts && (last_opp == mem_curr->entry) && (last_weap == weap_idx) ) { curr_angle = last_ang; curr_power = last_pow; if (weap_idx < WEAPONS) needAim = true; return true; } /* If the current target is different or there was no last target, * a basic set of values must be generated. * * Outline: * -------- * There are five possible scenarios: * a) The tank is not buried (enough) and a laser is chosen: * -> a direct angle will do, make sure power is sane. * b) The tank is buried and an appropriate tool is chosen: * -> fire tool at the most filled side or, if the difference is less * than the AI level, in the direction of the chosen opponent. * c) Kamikaze * -> indicated by setting mem_curr to the own entry * -> if shaped weapon is chosen, fire 45° and power 150 to the side * where the terrain height is nearest to this tanks bottom. * -> if napalm is chosen, fire against the wind with power 100 - 300 * -> otherwise fire 180° and power 200 + spread modification. * d) Fire in non-boxed mode * -> normal calculation * e) Fire in boxed mode * -> extended power-control after normal calculation * -> if the target can't be reached while staying below the ceiling, * check for an obstacle that can be removed and do so if found. */ DEBUG_LOG_AIM(player->getName(), "[%d / %d] Starting to aim at %s", attempt, findTgtAttempts, mem_curr->entry->opponent->getName()) DEBUG_LOG_AIM(player->getName(), "Aim from %d/%d to %d/%d [distance %d/%d]", ROUND(x), ROUND(y), ROUND(mem_curr->opX), ROUND(mem_curr->opY), ROUND(mem_curr->opX - x), ROUND(mem_curr->opY - y)) /* Case a) The tank is not buried (enough) and a laser is chosen * =================================================================== */ if ( (buried < BURIED_LEVEL) && (SML_LAZER <= weap_idx) && (LRG_LAZER >= weap_idx) ) return calcLaser(is_last); /* Case b) The tank is buried and an appropriate tool is chosen * =================================================================== * (This means that it must be checked whether this is an appropriate * tool or not. Here the method might fail if it isn't suitable.) */ if (buried >= BURIED_LEVEL) return calcUnbury(is_last); /* Case c) Kamikaze * =================================================================== */ if (mem_curr->entry->opponent == player) return calcKamikaze(is_last); /* Case d) Fire in non-boxed mode * =================================================================== * This is always done, the boxed mode variant below simply checks the * values and tries to adapt. * The flipping is only allowed if the same opponent is tried again. */ bool result = calcStandard(is_last, (0 == (++mem_curr->attempts % 2))); /* Case e) Fire in boxed mode * =================================================================== * -> extended power-control after normal calculation * -> if the target can't be reached while staying below the ceiling, * check for an obstacle that can be removed and do so if found. */ if (result && env.isBoxed && !isBlocked && needAim && (weap_idx < WEAPONS)) result = calcBoxed(is_last); return result; } /** @brief Case e) Fire in boxed mode * * Note: calcAttack() has to make sure this method is only called if it is * appropriate. No further checks are made within this method. * * @param[in] is_last If this is set to true, the method is forced to succeed. * @return true if sane values could be found. **/ bool AICore::calcBoxed(bool is_last) { // Return at once if the bot "forgets" that there is a ceiling: if (!is_last && RAND_AI_1N) // With this even the useless bot has only a ~33% chance to forget... return true; bool crashed = true; // Assume the shot crashed in the ceiling bool finished = false; int32_t local_x = x; int32_t local_y = y; double end_xv = 0.; double end_yv = 0.; bool can_mod_a = true; bool can_mod_p = true; bool top_wrap = false; // Whether the shot wrapped through a wrap ceiling bool can_dig = (weap_idx >= BURROWER) && (weap_idx <= PENETRATOR); // Cycle until the ceiling isn't hit any more. while ( canWork && !isStopped && crashed && (can_mod_a || can_mod_p) && traceShot(curr_angle, 0, finished, top_wrap, local_x, local_y, end_xv, end_yv) && finished ) { // Yield on each iteration to not hog the CPUs if (!global.skippingComputerPlay) std::this_thread::yield(); crashed = false; if ( (local_y <= BOXED_TOP) // crashed on top // wrapped to bottom with dirt above is a ceiling crash, too. || ( top_wrap && !can_dig // (Unless a penetrator trick shot is tried) && (local_y > global.surface[local_x].load()) ) // Steel wall have additional wall crashes || ( (WALL_STEEL == env.current_wallType) && ( (local_x <= 2) || (local_x >= (env.screenWidth - 3) ) ) ) ) { crashed = true; // Either reduce angle (-1), or power (1), or both (0) int32_t mod_mode = RAND_AI_1P ? (rand() % 2 ? -1 : 1) : 0; // Apply mods but do not reduce into nothingness if ( (mod_mode < 1) && can_mod_a) { if ( (curr_angle > 90) && (curr_angle < 270) ) curr_angle += curr_angle < 180 ? -1 : 1; else can_mod_a = false; } if ( (mod_mode > -1) && can_mod_p) { if (curr_power > MIN_POWER) curr_power -= 5; else can_mod_p = false; } DEBUG_LOG_AIM(player->getName(), "Ceiling crash! Reducing %s [%d°/%d]", 1 == mod_mode ? "power " : 0 == mod_mode ? "angle and power" : "angle ", GET_DISP_ANGLE(curr_angle), curr_power) } } // End of crashed loop // If the last (not crashed) shot is finished but doesn't get to // the target, it is blocked. But this is only considered if // a) This is the last attempt and // b) This map has a wrap or steel ceiling and // c) There was no positive setup score already if ( finished && !crashed && (best_setup_score <= 0) // But do not bail out on first try! && (best_setup_score > NEUTRAL_ROUND_SCORE) && (weap_idx < WEAPONS) && (curr_overshoot < 0) // too short && is_last && ( (WALL_STEEL == env.current_wallType) || (WALL_WRAP == env.current_wallType) ) && (-curr_overshoot > weap_curr->radius) // Can't hit && (-curr_overshoot > (mem_curr->distance / 3 * 2)) ) { // Note: With big weapons an near opponents, the radius might // be larger than two thirds the distance, hence two checks. bool free_tank = FABSDISTANCE2(x, y, local_x, local_y) < weapon[RIOT_CHARGE].radius; if (useFreeingTool(free_tank, is_last)) { needAim = false; isBlocked = true; if (free_tank) calcUnbury(is_last); else { // If a riot bomb is chosen, flatten the angle: flattenCurrAng(); sanitizeCurr(); angle = curr_angle; power = curr_power; DEBUG_LOG_AIM(player->getName(), "Obstacle detected, trying to clear path using %s", weap_idx < WEAPONS ? weapon[weap_idx].getName() : item[weap_idx - WEAPONS].getName()) } return true; } // This did not work. (useFreeingTool always // succeeds if is_last is true) return false; } return (is_last || !crashed); } /** @brief calculate a hit score off the dmgDone values in the opponent memory * * This method cycles through the opponents memory, and sums up * the damage done with curr_weap to a total score according * to a) how much damage over the opponents health (aka overkill) * has been done and b) on which team they are compared to us. * * If the primary target was not hit, the score is ensured to be * negative, as collateral damage is discouraged. However, this is * only done if @a is_last is false, as collateral damage with a * total positive score is better than nothing on the very last attempt. * * @param[in] is_last if set to true then any score is accepted. * @return The accumulated score. **/ int32_t AICore::calcHitScore(bool is_last) { int32_t hit_score = 0; opEntry_t* opp = mem_head; bool can_overkill = true; eTeamTypes target_team = mem_curr ? mem_curr->entry->opponent->team : TEAM_NEUTRAL; bool tgt_team_hit = false; weaponType weapType = static_cast(weap_curr->type); // Dirt weapons and the reducer can not overkill if ( ( (DIRT_BALL <= weapType) && (SUP_DIRT_BALL >= weapType) ) || ( REDUCER == weapType) ) can_overkill = false; while (opp) { // Yield on each iteration to not hog the CPUs if (!global.skippingComputerPlay) std::this_thread::yield(); if (opp->dmgDone > 0) { int32_t overkill = 0; bool is_killed = false; bool shock_hit = (isShocked && (opp->entry == shocker)); double self_mod = opp->entry->opponent == player ? (player->selfPreservation + 1.) * ai_level : 1.; // Note: team_mod is negative if same team, so self_mod must // be positive, or self hits generate huge scores! // 1: Determine whether the opponent was killed. if (can_overkill && (opp->dmgDone >= opp->opLife) ) { overkill = opp->dmgDone - opp->opLife; opp->dmgDone = opp->opLife; is_killed = true; } DEBUG_LOG_AIM(player->getName(), "Total damage against %10s: %d (%s, %d overkill)", opp->entry->opponent->getName(), opp->dmgDone, is_killed ? "KILLED" : "not killed", overkill) // 2: Add the simple damage to the score: hit_score += static_cast(opp->dmgDone) * opp->team_mod * self_mod * (shock_hit ? ai_over_mod : 1.); // 3: Raise the score a bit if it is collateral damage on // non-neutral team members of our target, but not our team. if ( (TEAM_NEUTRAL != target_team) && (player->team != target_team) && (opp->entry->opponent->team == target_team) ) { hit_score *= 1. + ((player->defensive + 2.5) / 10.); tgt_team_hit = true; } // 4: If the opponent is killed, add a bonus to the score depending // on team hit, self hit and whether the bot needs money or not. if (is_killed) { double kill_bonus = opp->dmgDone; if (needMoney) kill_bonus *= ai_type_mod; // Add some more for killing the shocker: if (shock_hit) kill_bonus += kill_bonus / ai_over_mod; hit_score += kill_bonus * opp->team_mod * self_mod; } // 5: Check for overkill and dock points for it. if (overkill > 0) { double over_score = overkill; // It is bad if the bot needs money, as it wastes expensive ammo if (needMoney) over_score *= ai_type_mod + .5; // On the other hand, if the bot hit the shocker, the overkill // isn't considered that bad, though. if (shock_hit) over_score /= 3. - ai_over_mod; // Generate a generally negative score: over_score = std::abs(over_score) * -1.; // The more aggressive, the less the reduction will be, // but only if it is neithe rus nor our team that got hit if (!opp->onSameTeam) over_score /= (player->defensive - 2.) * -1.; // Add a fraction of the overkill score hit_score += over_score / (10. - ai_level_d); } // End of overkill score } // end of having damage done opp = opp->next; } // End of looping opponents // If the primary target was not hit and this is not the last // attempt, make hit_score to be negative, unless the enemy // team is decimated. In the latter case the score is simply // reduced according to whether the bot needs money or not. if (!curr_prime_hit && !is_last && (hit_score > 0.)) { if (tgt_team_hit) hit_score /= (ai_type_mod + ai_level_d) / (player->defensive + (needMoney ? 2.5 : 4.0)); else hit_score = -1 * std::abs(hit_score); } return hit_score; } /** @brief calculate a score according to where the shot hit and * collateral damage done to friend and foe. * * Damage is recorded in the opponent memory dmgDone value. * * @param[in] hit_x x coordinate where the current selection hit. * @param[in] hit_y y coordinate where the current selection hit. * @param[in] weap_rad Calculated radius of the weapon. * @param[in] dmg Calculated damage of the weapon. * @param[in] weapType Type of the weapon. * @return The resulting score **/ void AICore::calcHitDamage(int32_t hit_x, int32_t hit_y, double weap_rad, double dmg, weaponType weapType) { if ( (nullptr == weap_curr) // no weapon no score || (0 == weap_rad) ) // no radius, no hit return; // If this has no damage it is either a dirt ball, a reducer // or a riot weapon. // As dirt balls and reducers must be evaluated, they get a fake // damage of their radius so a score can be generated. if (0 == dmg) { if ( ( (DIRT_BALL <= weapType) && (SUP_DIRT_BALL >= weapType) ) || ( REDUCER == weapType) ) dmg = weap_rad; else return; } // Napalm blobs have a much higher full damage output // than listed, as they do damage over time: if (NAPALM_JELLY == weapType) dmg *= static_cast(EXPLOSIONFRAMES * weapon[NAPALM_JELLY].etime) / ai_over_mod; // Now the score can be calculated opEntry_t* opp = mem_head; DEBUG_LOG_AIM(player->getName(), "Checking impact at %d x %d", hit_x, hit_y) while (opp) { // Yield on each iteration to not hog the CPUs if (!global.skippingComputerPlay) std::this_thread::yield(); TANK* oppTank = opp->entry->opponent->tank; if (oppTank) { // Now calculate the score if in range double part_dmg = 0.; // For dirt balls, only whether the tank is in x-range counts // as dirt falls down if ( (DIRT_BALL <= weapType) && (SUP_DIRT_BALL >= weapType) && (oppTank->x > (hit_x - weap_rad)) && (oppTank->x < (hit_x + weap_rad)) ) part_dmg = dmg; else // All others need a normal check part_dmg = get_hit_damage(oppTank, weapType, hit_x, hit_y); if (part_dmg > 0.) { // REDUCER must be set, it is only checked as valid, yet: if (REDUCER == weapType) part_dmg = opp->entry->opponent->damageMultiplier * 25.; // Set hit damage according to primary or collateral damage if (opp == mem_curr) { curr_prime_hit = true; opp->dmgDone += ROUND(part_dmg); DEBUG_LOG_AIM(player->getName(), "%10s in blast range : primary damage : %4d, total %d", opp->entry->opponent->getName(), ROUND(part_dmg), opp->dmgDone) } else { opp->dmgDone += ROUND(part_dmg); DEBUG_LOG_AIM(player->getName(), "%10s in blast range : collateral damage: %4d, total %d", opp->entry->opponent->getName(), ROUND(part_dmg), opp->dmgDone) } } // end of having damage delivered } // end of having a tank to consider opp = opp->next; } } /** @brief Case c) Kamikaze * * Note: calcAttack() has to make sure this method is only called if it is * appropriate. No further checks are made within this method. * * @param[in] is_last If this is set to true, the method is forced to succeed. * @return true if sane values could be found. **/ bool AICore::calcKamikaze(bool is_last) { DEBUG_LOG_AIM(player->getName(), "I have decided to go bye bye!", 0) // Is the selection sane? if (weap_curr->kamikaze) { bool is_good = true; // Only weapons need any angle/power adaptation if (weap_curr) { if ( (SHAPED_CHARGE <= weap_idx) && (CUTTER >= weap_idx) ) { // For this it is necessary to look at the terrain. // This does not make sense if there isn't a flat area // at either side of the tank with an even height. int32_t bottom = tank->getBottom(); int32_t max_rad = weapon[weap_idx].radius / 20; // With a power of 150, the weapon can be hurled ~45 pixels. // So check that place plus some pixels around according // to ai_level. int32_t to_go = 1 + ai_level + (RAND_AI_1P); int32_t dist = 45 - (to_go / 2); int32_t diff_l = 0; int32_t diff_r = 0; int32_t xl = x - dist; int32_t xr = x + dist; for (int32_t i = 0; i < to_go; ++i) { --xl; ++xr; // If any x is in/ beyond a non-wrap wall, screw it: // a - check left side if ( xl < 1 ) { if (WALL_WRAP == env.current_wallType) xl = env.screenWidth - 1 - (1 - std::abs(xl)); else diff_l += env.screenHeight; } else diff_l += std::abs(global.surface[xl].load() - bottom); // b - check right side if ( xr > (env.screenWidth - 2) ) { if (WALL_WRAP == env.current_wallType) xr = 1 + (env.screenWidth - 1 - xr); else diff_r += env.screenHeight; } else diff_r += std::abs(global.surface[xr].load() - bottom); } // End of looping distance to_go // The average distance is taken. This ignores sudden peaks // and gaps that might stop/swallow the projectile, but // that should be okay. diff_l /= to_go; diff_r /= to_go; int32_t a_mod = rand() % (10 - ai_level) * (rand() % 2 ? -1 : 1); int32_t p_mod = rand() % (20 - (2 * ai_level)) * (rand() % 2 ? -1 : 1); if ( (diff_l < diff_r) && (diff_l < max_rad) ) curr_angle = 225 + a_mod; else if (diff_r < max_rad) curr_angle = 135 + a_mod; else is_good = false; // May need emergency plan below // Set power and write back values if (is_good) curr_power = 150 + p_mod; DEBUG_LOG_AIM(player->getName(), "Firing %s at %d° with power %d%s", weapon[weap_idx].getName(), GET_DISP_ANGLE(curr_angle), curr_power, is_good ? "!" : " will not work! Need a plan!") } else if ( (SML_NAPALM <= weap_idx) && (LRG_NAPALM >= weap_idx) ) { // Adapt according to the wind: int32_t wind = ROUND(global.wind); int32_t wind_mod = 10 + (std::abs(wind) * (1 + RAND_AI_0P)); if (wind > 0) curr_angle = 225; else if (wind < 0) curr_angle = 135; else curr_angle = 180; curr_power = 100 + wind_mod; DEBUG_LOG_AIM(player->getName(), "Firing %s at %d° with power %d (wind %d, wind_mod %d)", weapon[weap_idx].getName(), GET_DISP_ANGLE(curr_angle), curr_power, wind, wind_mod) } else { int32_t spread_mod = 50 + (10 * (1 + RAND_AI_0P)); int32_t spread = weapon[weap_idx].spread; // shortcut curr_angle = 180; curr_power = 200 + ( (spread * spread_mod) / (2 - (spread % 2))); DEBUG_LOG_AIM(player->getName(), "Firing %s at %d° with power %d", weapon[weap_idx].getName(), GET_DISP_ANGLE(curr_angle), curr_power) } } if (is_good) { sanitizeCurr(); angle = curr_angle; power = curr_power; return true; } } // end of sane item/weapon selection // No, this selection does not make sense. // However, if this is a last try, it must work somehow. if ( is_last && ( useItem(ITEM_FATAL_FURY) || useItem(ITEM_DYING_WRATH) || useItem(ITEM_VENGEANCE) || useWeapon(DTH_HEAD) || useWeapon(NUKE) || useWeapon(SML_NUKE) || useWeapon(LRG_MIS) || useWeapon(MED_MIS) || useWeapon(SML_MIS) ) ) { // Note: The trick is, that the first working selection // results in the if-statement to end, and SML_MIS always // works. curr_angle = 180; curr_power = 250; angle = curr_angle; power = curr_power; DEBUG_LOG_AIM(player->getName(), "Emergency plan: Firing %s at %d° with power %d", weapon[weap_idx].getName(), GET_DISP_ANGLE(curr_angle), curr_power) return true; } // This can not work, and does not need to be forced. return false; } /** @brief Case a) The tank is not buried (enough) and a laser is chosen. * * Note: calcAttack() has to make sure this method is only called if it is * appropriate. No further checks are made within this method. * * @return True if the opponent can be hit, false if the shot is blocked or * pumped into a wall or the ceiling. **/ bool AICore::calcLaser(bool is_last) { int32_t old_angle = curr_angle; int32_t old_power = curr_power; double drift = static_cast(maxAiLevel + 2 - RAND_AI_0P) * errorMultiplier * (rand() % 2 ? -1. : 1.); curr_power = tank->p; curr_angle = GET_SAFE_ANGLE(mem_curr->opX - x, mem_curr->opY - y, drift); // Power doesn't matter, but the values must be sane nonetheless: sanitizeCurr(); // Lets see where the laser ends: double start_x = 0; double start_y = 0; player->tank->getGuntop(curr_angle, start_x, start_y); BEAM mind_beam(player, start_x, start_y, curr_angle, weap_curr->type, BT_MIND_SHOT); int32_t end_x = 0; int32_t end_y = 0; mind_beam.getEndPoint(end_x, end_y); // Generate a score for this curr_prime_hit = false; // Note: calcHitDamage() sets curr_prime_hit to true if we hit our target. // reset virtual damage on opponents. opEntry_t* opp = mem_head; while (opp) { opp->dmgDone = 0; opp = opp->next; } calcHitDamage(end_x, end_y, weapon[weap_curr->type].radius, weap_curr->dmgSingle, static_cast(weap_curr->type)); int32_t hit_score = calcHitScore(is_last && needSuccess); // If the target is behind a dirt wall, break up this attempt bool crashed = false; if ( !tank->shootClearance(curr_angle, mem_curr->distance, crashed) || crashed) { // ...unless this is a forced success ... if (is_last) { // at least reduce the score. // hit_score = hit_score; } else { curr_angle = old_angle; curr_power = old_power; needAim = true; // for the next try or the closure DEBUG_LOG_AI(player->getName(), "Cancelling laser shot: %s", crashed ? "Wrong angle" : "Not enough clearance") return false; } } // If a positive score was achieved, we are set if ( (hit_score > 0) || is_last) { // Write back values sanitizeCurr(); angle = curr_angle; power = curr_power; if ( (hit_score > best_round_score) || is_last) best_round_score = std::abs(hit_score); DEBUG_LOG_AIM(player->getName(), "Firing %s at %d° with power %d", weapon[weap_curr->type].getName(), GET_DISP_ANGLE(curr_angle), curr_power) return true; } curr_angle = old_angle; curr_power = old_power; needAim = true; // for the next try or the closure DEBUG_LOG_AI(player->getName(), "Cancelling laser shot: %d score too low", hit_score) return false; } /** @brief calculate x and y offsets for weapons that need it. * * These offsets are stored in offset_x and offset_y, as they are needed * in multiple places. * * If the needed offset is off the screen, or makes no sense, the method * returns false. But if @a is_last is set to true, insane offsets are tried * to be fixed. The idea is, that the bot tries nevertheless out of pure * desperation. * * @param[in] is_last If set to true, the method never fails * @return true if sane offsets were found. **/ bool AICore::calcOffset(bool is_last) { bool result = true; offset_x = 0; offset_y = 0; /* Weapon type 1: Napalm bombs * There are two situations to consider, the normal shot using wind * and the under-run trick. The latter is evil and will almost always * destroy any tank even with a small napalm bomb. Just place the * bomb with tail wind under a tank. No shield can protect the tank * and most jellies will burn into the hull. So this option must be * limited. * Otherwise the wind is what has to be taken into account plus the * surroundings. If the wind side is above the opponent, more distance * is needed than when the area is below the target tank. */ if ( (weap_idx >= SML_NAPALM) && (weap_idx <= LRG_NAPALM) ) { offset_x = global.wind * (ai_level + RAND_AI_1P) * (-1. - focusRate); // The farther away the opponent is, the more power is needed to // bring the package to the target. More impact power means a higher // initial velocity of the blobs, so the offset must be tweaked a bit. offset_x *= 1. + ( mem_curr->distance / static_cast(env.screenWidth) * focusRate); int32_t pos_x = ROUND(mem_curr->opX) + offset_x; // If the resulting x position is not on the screen, // the calculation already failed. if (pos_x < 2) { if (is_last) { // But this must be taken... pos_x = 2; offset_x = pos_x - ROUND(mem_curr->opX); } else result = false; } else if (pos_x > (env.screenWidth - 2)) { if (is_last) { // The same... pos_x = env.screenWidth - 2; offset_x = ROUND(mem_curr->opX) - pos_x; } else result = false; } // If the result is true, the area around pos_x must be checked // to determine the y offset and whether to adapt offset_x // any further or not. if (result) { bool found = false; int32_t pos_y = global.surface[pos_x].load(); if (pos_y < (mem_curr->opY - std::abs(offset_x) + ai_level)) { // This means more distance is needed. So we search for // the next valid x position that goes down again or that // doubles the x distance, whatever comes earlier. int32_t mov_x = SIGN(global.wind) * -1; int32_t max_x = pos_x + offset_x; if (max_x < 2) max_x = 2; if (max_x > (env.screenWidth - 2)) max_x = (env.screenWidth - 2); for ( ; !found && (pos_x != max_x); pos_x += mov_x) { if (global.surface[pos_x].load() > pos_y) { pos_x -= mov_x; // One step back found = true; } } } else if (pos_y > (mem_curr->opY + std::abs(offset_x) - ai_level)) { // Here check the area towards the enemy. But going nearer // than half the distance means an under-run, which is only // allowed after an additional check. int32_t mov_x = SIGN(global.wind); int32_t max_x = pos_x - (offset_x / (RAND_AI_0P ? 1 : 2)); // Note: Yes, the RAND_AI_0P is the mentioned additional check. ;) int32_t max_y = mem_curr->entry->opponent->tank->getBottom(); for ( ; !found && (pos_x != max_x); pos_x += mov_x) { if (global.surface[pos_x].load() <= (max_y - ai_level)) found = true; } } // adapt offset_x and offset_y now: offset_x = pos_x - mem_curr->opX; offset_y = global.surface[pos_x].load() - mem_curr->opY; } } // End of handling napalm /* Weapon type 2: Shaped charges. * These are easy. The shaped charge have an y radius of 1/20 of the * x radius. Within this y radius of the centre no damage is done, so * the area from this radius + 1 to + (ai_level * 2) is checked on * either sides whether there is an y position that allows to actually * catch the enemy in the blast. If not, this try is a failure. * However, there is another trick shot here: Place a big shaped charge * like the cutter at the right height behind a hill and blast the * opponents tank through it. */ else if ( (weap_idx >= SHAPED_CHARGE) && (weap_idx <= CUTTER) ) { int32_t rad_y = weapon[weap_idx].radius / 20; int32_t dist_x = rad_y + RAND_AI_1P; int32_t max_dist = RAND_AI_0P ? (dist_x * 2) + RAND_AI_1P // normal shot : weapon[weap_idx].radius * 2 / 3; // trick shot int32_t seek_y = (mem_curr->opY + mem_curr->entry->opponent->tank->getBottom()) / 2; int32_t left_x = mem_curr->opX - dist_x; int32_t right_x = mem_curr->opX + dist_x; int32_t left_y = left_x > 2 ? std::abs(global.surface[left_x].load()) : 0; int32_t right_y = right_x < (env.screenWidth - 2) ? std::abs(global.surface[right_x].load()) : 0; bool go_left = (mem_curr->opX > x); // Which side to prefer bool found_l = false; bool found_r = false; for ( ; !found_l && !found_r && (dist_x < max_dist); ++dist_x) { left_x = mem_curr->opX - dist_x; right_x = mem_curr->opX + dist_x; left_y = left_x > 2 ? std::abs(global.surface[left_x].load()) : 0; right_y = right_x < (env.screenWidth - 2) ? std::abs(global.surface[right_x].load()) : 0; if (std::abs(left_y - seek_y) <= rad_y) found_l = true; if (std::abs(right_y - seek_y) <= rad_y) found_r = true; } // If both are valid, use what is preferred if (found_l && found_r) { if (go_left) found_r = false; else found_l = false; } // if none is found but this is the last_try, take the simple // distance to the preferred side if (!found_l && !found_r) { if (is_last) { if ( (go_left && ((mem_curr->opX - rad_y - 1) > 1)) || ((mem_curr->opX + rad_y + 1) > (env.screenWidth - 2)) ) { found_l = true; left_x = mem_curr->opX - rad_y - 1; left_y = global.surface[left_x].load(); } else { found_r = true; right_x = mem_curr->opX + rad_y + 1; right_y = global.surface[right_x].load(); } } else result = false; } // If something is found, set the real offsets if (found_l) { offset_x = left_x - mem_curr->opX; offset_y = left_y - mem_curr->opY; } else if (found_r) { offset_x = right_x - mem_curr->opX; offset_y = right_y - mem_curr->opY; } } // End of handling shaped charges /* Weapon type 3: Driller * The driller must be placed above an enemy tank. This means it is * only useful if the tank is buried, or the tank shall be sunk into * the surface. However, there might be the possibility of an under * shot if the tank is placed on a mountain side. */ else if (DRILLER == weap_idx) { int32_t rad_x = weapon[weap_idx].radius / 20; int32_t pos_x = ROUND(mem_curr->opX); int32_t pos_y = global.surface[pos_x].load(); int32_t max_dist = rad_x * 2 / 3; int32_t min_y = mem_curr->opY - rad_x; int32_t max_y = mem_curr->entry->opponent->tank->getBottom() + rad_x; bool found_l = false; bool found_r = false; // If the direct coordinates are already in order, do not search // further. Otherwise try to shift left and right. if ( (pos_y > min_y) && (pos_y < max_y) ) { for (int32_t off_x = 1 ; !found_l && !found_r && (off_x < max_dist) ; ++off_x) { int32_t left_x = pos_x - off_x; int32_t right_x = pos_x + off_x; int32_t left_y = left_x > 1 ? global.surface[left_x].load() : mem_curr->opY; int32_t right_y = right_x < (env.screenWidth - 1) ? global.surface[right_x].load() : mem_curr->opY; if ( (left_y < min_y) || (left_y > max_y) ) { found_l = true; pos_x = left_x; pos_y = left_y; } else if ( (right_y < min_y) || (right_y > max_y) ) { found_r = true; pos_x = right_x; pos_y = right_y; } } // If this did not succeed, but it is the last_shot or // the AI chooses to bury its opponent, use the opponents // coordinates. if (!found_l && !found_r) { if (is_last || (RAND_AI_0N)) { pos_x = mem_curr->opX; pos_y = mem_curr->opY; } else result = false; } } // end of searching a position to use // Set offsets if all is well if (result) { offset_x = pos_x - mem_curr->opX; offset_y = pos_y - mem_curr->opY; } } // End of handling drillers return result; } /** @brief Case d) Fire in non-boxed mode * * Note: calcAttack() has to make sure this method is only called if it is * appropriate. No further checks are made within this method. * * @param[in] is_last If this is set to true, the method is forced to succeed. * @param[in] allow_flip_shot If set to true, the bot is allowed to shoot in * the opposite direction. On steel walls, this parameter is ignored. * @return true if sane values could be found. **/ bool AICore::calcStandard(bool is_last, bool allow_flip_shot) { bool result = calcOffset(is_last); needAim = true; // --- 1) Get a basic raw angle firing directly --- // ------------------------------------------------ bool wrapped = false; double opX = mem_curr->opX + offset_x; double opY = mem_curr->opY + offset_y; // just some shortcuts double dist_x = opX - x; double dist_y = opY - y; int32_t scrWidth = env.screenWidth; // Do not start horizontally, this might happen quite often. // If the opponent is above, limit the angle to somewhere between // 60° and 75°. If it is below, limit angle between 20° and 35° and // limit the angle between 40° and 55° if ~equal. int32_t new_angle = GET_SAFE_ANGLE(dist_x, dist_y, 0); int32_t ang_limit = (focusRate * static_cast(rand() % 16)); if (dist_y < -100) /* above */ ang_limit += 60; else if (dist_y > 100) /* below */ ang_limit += 20; else /* equal */ ang_limit += 40; // Apply limit: if (new_angle < ( 90 + ang_limit)) new_angle = 90 + ang_limit; if (new_angle > (270 - ang_limit)) new_angle = 270 - ang_limit; // --- 2) Modify the beginning angle according to focusRate --- // --- Keeping this more variable gives a larger range of --- // --- starting points to go forth from. --- // ------------------------------------------------------------ double angle_mod = (rand() % 13) * focusRate // useless: 0-2, deadly+1: 0-12 * ((rand() % 2) ? -1. : 1.); while ( ( std::abs(angle_mod) > 0. ) && ( ( (new_angle > 180) && ( ( (new_angle + angle_mod) < 190) || ( (new_angle + angle_mod) > 260) ) ) || ( (new_angle < 180) && ( ( (new_angle + angle_mod) > 170) || ( (new_angle + angle_mod) < 100) ) ) ) ) { angle_mod /= 2.; } new_angle += angle_mod; // --- 3) If this is a wrap wall, check whether shooting --- // --- through the wall is actually shorter. --- // --- A note on allow_flip_shot: If shooting wrapped is --- // --- shorter, the AI will chose it more often the --- // --- higher the AI level. (80% for a deadly bot) --- // --- The flipping is then a possibility to shoot non- --- // --- wrapped again. --- // --------------------------------------------------------- if ( (WALL_WRAP == env.current_wallType) && RAND_AI_0P ) { int32_t wrapDist = opX > x ? x + scrWidth - 3 - opX : (scrWidth - x - 3 + opX) * -1; if (std::abs(wrapDist) < std::abs(dist_x)) { wrapped = true; hasFlipped = true; dist_x = wrapDist; new_angle = FLIP_ANGLE(new_angle); DEBUG_LOG_AIM(player->getName(), "Flipping through wrap wall at %d°", GET_DISP_ANGLE(new_angle)) } } // --- 4) Switch sides if possible and allowed --- // ----------------------------------------------- if ( (WALL_STEEL != env.current_wallType) && allow_flip_shot && (rand() % ( (ai_level + 3) / 2)) ) { new_angle = FLIP_ANGLE(new_angle); // The result of this flip is different for each wall type if (WALL_RUBBER == env.current_wallType) { dist_x += opX > x ? (x - 1.) + ( (x - 1.) / BOUNCE_CHANGE) : (scrWidth - opX - 2.) + ((scrWidth - opX - 2.) / BOUNCE_CHANGE); } else if (WALL_SPRING == env.current_wallType) { dist_x += opX > x ? (x - 1.) + ( (x - 1.) / SPRING_CHANGE) : (scrWidth - opX - 2.) + ((scrWidth - opX - 2.) / SPRING_CHANGE); } else if (WALL_WRAP == env.current_wallType) { if (wrapped) // Shoot directly again dist_x = opX - x; else dist_x = opX > x ? x + scrWidth - 3 - opX : (scrWidth - x - 3 + opX) * -1; } DEBUG_LOG_AIM(player->getName(), "Flipping %s wall at %d°", wrapped ? "back from" : "towards", GET_DISP_ANGLE(new_angle)) // wrap / unwrap wrapped = !wrapped; hasFlipped = wrapped; } // --- 5) Adjust angle giving shooting clearance --- // --- Here the clearance is either needed to reach --- // --- the next wall or half the distance to the --- // --- selected opponent. --- // ---------------------------------------------------- int32_t clearance = std::abs(dist_x / 2); int32_t old_angle = new_angle; int32_t max_drift = (ai_level + 1) / 2; // [1;3] bool crashed = false; if (wrapped) // wrapped shots need clearance to the wall away from the opponent: clearance = opX > x ? x - 2 : env.screenWidth - x - 2; while ( (new_angle < (180 - max_drift)) && !tank->shootClearance(new_angle, clearance, crashed) && !crashed ) ++new_angle; while ( (new_angle > (180 + max_drift)) && !tank->shootClearance(new_angle, clearance, crashed) && !crashed) --new_angle; // --- 6) Revert to half the distance between both angles --- // --- if no full clearance is possible. --- // --- An attempt to remove possible obstacles might be --- // --- triggered here. --- // ---------------------------------------------------------- if ( ( new_angle >= (180 - max_drift) ) && ( new_angle <= (180 + max_drift) ) ) { new_angle = (new_angle + old_angle) / 2; // If this is the last chance, try to clear the obstacle. // Alternatively a bot with high pain sensitivity might chose // to remove the obstacle earlier. The idea here is, that the // bot does not want to "piss off" its opponent before the // obstacle is removed. // However, if there is already a setup with a positive // score, revert to that. if ( (best_setup_score <= 0) && (is_last || ( (rand() % (ai_level * 20)) < (player->painSensitivity * ai_level * 5) ) ) ) { /* Range is from Useless and pain resistant (0.1) to * (Deadly + 1) and very pain sensitive: [max rand value] * Useless : 0.1 * 1 * 5 = 0.5 [ 20] * Deadly + 1 : 3.0 * 6 * 5 = 90.0 [120] */ isBlocked = true; result = useFreeingTool(false, is_last); curr_angle = new_angle; // Try not to bomb the ceiling: if ( (curr_angle >= 150) && (curr_angle <= 210)) { flattenCurrAng(); // Write back curr_ang, or it gets overwritten below. new_angle = curr_angle; } DEBUG_LOG_AIM(player->getName(), "Obstacle detected, trying to clear path using %s", weap_idx < WEAPONS ? weapon[weap_idx].getName() : item[weap_idx - WEAPONS].getName()) } else // This did not work out result = false; } // End of being blocked // --- 7) Find necessary power --- // --- This is just an estimation on possible --- // --- "air time" of the projectile --- // ---------------------------------------------- if (result) { // As there is nothing that can fail now, the new // angle is the one to go with: curr_angle = new_angle; double slope_x = env.slope[curr_angle][0]; double slope_y = env.slope[curr_angle][1]; double rawTime = slope_x != 0. ? dist_x / slope_x : dist_x / 0.00000001; // 180° should be impossible though. // lower target, less power. // If the target is above, the projectile hits earlier than // on lower targets, where the projectile has to fall down there. double airTime = std::abs(rawTime) + ( dist_y * slope_y * env.gravity * env.FPS_mod * 2.0); // Less airTime doesn't necessarily mean less power // Horizontal firing means more power needed even though // air time is minimised. curr_power = ROUNDu(std::sqrt( airTime * env.gravity * env.FPS_mod) * static_cast(env.frames_per_second)); // Power modification according to the bots focus rate // This helps having slightly different starting powers to // begin aiming with. curr_power += focusRate * static_cast(rand() % 51) * (rand() % 2 ? -1. : 1.); // With a focus rate of [0.166;1] this results in a modification // between [-8.3;8.3] and [-50;50]. // Be sure power is in the valid range: if (curr_power > MAX_POWER) curr_power = MAX_POWER; if (curr_power < MIN_POWER) curr_power = MIN_POWER; // Power is only available in a stepping of five curr_power -= curr_power % 5; DEBUG_LOG_AIM(player->getName(), "Firing %s at %d° with power %d", weapon[weap_idx].getName(), GET_DISP_ANGLE(curr_angle), curr_power) } // End of having a result // Write back values and stop aiming if this is a blocked path freeing attempt if (result && isBlocked) { sanitizeCurr(); angle = curr_angle; power = curr_power; needAim = false; } return result; } /** @brief Case b) The tank is buried and an appropriate tool is chosen * * Note: This means that it must be checked whether this is an appropriate * tool or not. Here the method might fail if it isn't suitable. * * @param[in] is_last If this is set to true, the method is forced to succeed. * @return true if sane values could be found. **/ bool AICore::calcUnbury(bool is_last) { DEBUG_LOG_AIM(player->getName(), "I am buried! (%d >= %d)", buried, BURIED_LEVEL) // Suitable tool? if ( ( (RIOT_BOMB <= weap_curr->type) // Clear freeing tool && (RIOT_BLAST >= weap_curr->type) ) // that clears dirt || ( ( (SHAPED_CHARGE > weap_curr->type) // shaped charges can not || (CUTTER < weap_curr->type) ) // be used, and neither can && (DRILLER != weap_curr->type) // the driller, to self && weap_curr->kamikaze) ) { // destruct while buried // To not blast away an obstacle towards a wall with no // enemies behind it, count how many enemies are on each // side, first: opEntry_t* op = mem_head; int32_t op_left = 0; int32_t op_right = 0; while (op) { if ( op->alive && !op->onSameTeam ) { if (op->opX < tank->x) op_left++; else op_right++; } op = op->next; } // Determine starting values according to which side // is buried stronger, and where the opponents are: bool go_left = true; // It is better to go right instead of left if: // a) more enemies are on the right // b) the count is equal but the right side is more buried or // c) the current favourite target is on the right and the left // is not that much more buried. (depends on AI level) if ( (op_right > op_left) // a) || ( (op_right == op_left) && (buried_r > buried_l) ) // b) || ( (mem_curr->opX > x) && (std::abs(buried_r - buried_l) < ai_level) ) ) { // c) go_left = false; } // find a good starting angle where the obstacle begins: int32_t dist = ai_level * (player->defensive + 3.) * 2; bool crashed = false; curr_angle = 180; if (go_left) { while ( (curr_angle < 250) && ( tank->shootClearance(curr_angle, dist, crashed) || !crashed) ) ++curr_angle; } else { while ( (curr_angle > 110) && ( tank->shootClearance(curr_angle, dist, crashed) || !crashed) ) --curr_angle; } // Add a variant to the angle: curr_angle += ( (rand() % 21) - 10) / ai_level; // If riot charges are used, 45° is the lower border. if ( (RIOT_BOMB <= weap_curr->type) && (RIOT_BLAST >= weap_curr->type) ) { if (curr_angle < 135) curr_angle = 135; if (curr_angle > 225) curr_angle = 225; } // Be sure current values are sane: sanitizeCurr(); angle = curr_angle; power = curr_power; needAim = false; // Already done here! isBlocked = true; DEBUG_LOG_AIM(player->getName(), "Freeing myself using %s at %d° with power %d", weapon[weap_idx].getName(), GET_DISP_ANGLE(angle), power) return true; } // End of having selected an appropriate tool. // The only non-self-destruct way to use a weapon for freeing // one self is the shaped charge: if ( ( (SHAPED_CHARGE <= weap_curr->type) && (CUTTER >= weap_curr->type) ) || ( DRILLER == weap_curr->type ) ) { curr_angle = 180; curr_power = 10 + RAND_AI_0P; sanitizeCurr(); angle = curr_angle; power = curr_power; needAim = false; // Already done here! isBlocked = true; DEBUG_LOG_AIM(player->getName(), "Freeing myself using %s at %d° with power %d", weapon[weap_idx].getName(), GET_DISP_ANGLE(angle), power) return true; } // emergency values if this is our last try: if (is_last) { if (!useFreeingTool(true, true)) useWeapon(SML_MIS); curr_angle = buried_l > buried_r ? 200 : 100 + (rand() % 61); curr_power = 500 + (rand() % 501); sanitizeCurr(); angle = curr_angle; power = curr_power; needAim = false; // Already done here! isBlocked = true; DEBUG_LOG_AIM(player->getName(), "(last!) Freeing myself using %s at %d° with power %d", weapon[weap_idx].getName(), GET_DISP_ANGLE(angle), power) return true; } // Otherwise this has failed DEBUG_LOG_AIM(player->getName(), "Nothing suitable selected (%s)", item_curr ? item[weap_idx - WEAPONS].getName() : weap_curr ? weapon[weap_idx].getName() : "NOTHING") return false; } /// @return false if the initialization of this instance failed bool AICore::can_work() const { return canWork; } /** @brief check the currently set item list and update its organization * * This checks every item compared to the currently selected * target and sets a score on usability. The list is then * sorted by score in descending order. **/ void AICore::checkItemMem() { item_curr = item_head; DEBUG_LOG_AIM(player->getName(), "Starting to check item memory", 0) while (item_curr) { // Yield on each iteration to not hog the CPUs if (!global.skippingComputerPlay) std::this_thread::yield(); // Update score updateItemScore(item_curr); // Advance item_curr = item_curr->next; } // Eventually sort the list sort_entries(&item_head); } /** @brief check the currently set memory and update its organization * * This looks into each entry whether there is new damage for * this turn, and updates the score. * After the score updates, the list is reordered, so the entry * with the highest score becomes mem_head, and the list ends with * the lowest scored entry. **/ void AICore::checkOppMem() { mem_curr = mem_head; DEBUG_LOG_AIM(player->getName(), "Starting to check opponent memory", 0) while (mem_curr) { // Yield on each iteration to not hog the CPUs if (!global.skippingComputerPlay) std::this_thread::yield(); // Update score updateOppScore(mem_curr); // Advance mem_curr = mem_curr->next; } // Do we have a new revengee? if (revengee && (player->revenge != revengee->opponent)) player->revenge = revengee->opponent; // Not a single one? if (nullptr == revengee) player->revenge = nullptr; // Eventually sort the list sort_entries(&mem_head); } /** @brief check the currently set weapon list and update its organization * * This checks every weapon compared to the currently selected * target and sets a score on usability. The list is then * sorted by score in descending order. **/ void AICore::checkWeapMem() { weap_curr = weap_head; DEBUG_LOG_AIM(player->getName(), "Starting to check weapon memory", 0) while (weap_curr) { // Yield on each iteration to not hog the CPUs if (!global.skippingComputerPlay) std::this_thread::yield(); // Update score updateWeapScore(weap_curr); // Advance weap_curr = weap_curr->next; } // Eventually sort the list sort_entries(&weap_head); } /// @brief destroy all memory chains void AICore::destroy() { while (item_head) { item_curr = item_head; item_head = item_curr->next; delete item_curr; } item_curr = nullptr; item_last = nullptr; while (mem_head) { mem_curr = mem_head; mem_head = mem_curr->next; delete mem_curr; } mem_curr = nullptr; mem_last = nullptr; while (weap_head) { weap_curr = weap_head; weap_head = weap_curr->next; delete weap_curr; } weap_curr = nullptr; weap_last = nullptr; } /// @brief Forbid AICore to create FLOATTEXT instances void AICore::forbidText() { textAllowed.store(false); } /// @brief Get a string describing the given AI @a level const char* AICore::getLevelName (int32_t level) const { switch (level) { case 0: return "HUMAN (!!!)"; break; case 1: return "Useless"; break; case 2: return "Guesser"; break; case 3: return "Range Finder"; break; case 4: return "Targetter"; break; case 5: return "Deadly"; break; case 6: return "Deadly + 1"; break; default: break; } return "OUT OF RANGE (!!!)"; } /** @brief get the set players memory and check it * * This method fetches all sOpponent entries from the handled player, * and fills the item and weapon chains with the stock count and weapon * preferences. * * The scores are not calculated, and the list is not sorted. * Therefore checkOppMem() must be called first when the thread * starts in operator(). * * @return true if the memory could be copied **/ bool AICore::getMemory() { assert(player && "ERROR: getMemory() reached with nullptr player?"); assert( tank && "ERROR: getMemory() reached with nullptr tank?"); assert(!tank->destroy && "ERROR: getMemory() reached with destroyed tank?"); /// === 1) Copy item information === int32_t idx = 0; int32_t pref = 0; item_curr = item_head; item_last = nullptr; assert(item_head && "ERROR: getMemory() called without item memory set up!"); if (!item_head) return false; do { // Yield on each iteration to not hog the CPUs if (!global.skippingComputerPlay) std::this_thread::yield(); if ( -1 < (pref = player->getItemPref(idx) ) ) { item_curr->amount = player->ni[idx]; item_curr->preference = pref; item_curr->selectable = item[idx].selectable ? true : false; item_curr->type = idx; // The kamikaze value is only pre-set to true for vengeance // items, all other must be determined if the bot really // chooses to self-destruct. if ( (item_curr->type >= ITEM_VENGEANCE) && (item_curr->type <= ITEM_FATAL_FURY) ) item_curr->kamikaze = true; else item_curr->kamikaze = false; // Advance current item_curr = item_curr->next; } } while ((++idx < ITEMS) && item_curr); /// === 2) Copy opponents information === idx = 0; int32_t jcnt = 0; // Jedi count int32_t scnt = 0; // Sith count; double dail = ai_level_d; // [d]ouble [ai]_[l]evel sOpponent* opp = nullptr; mem_curr = mem_head; mem_last = nullptr; assert(mem_head && "ERROR: getMemory() called without opponents memory set up!"); if (!mem_head) return false; do { // Yield on each iteration to not hog the CPUs if (!global.skippingComputerPlay) std::this_thread::yield(); mem_curr->alive = false; // must be confirmed if ( (opp = player->getOppMem(idx) ) ) { TANK* oppTank = nullptr; mem_curr->attempts = 0; mem_curr->entry = opp; mem_curr->revengeDone = false; if ( opp->opponent && opp->opponent->tank && !opp->opponent->tank->destroy) oppTank = opp->opponent->tank; // The other values depend on whether an active tank was found: if (oppTank) { mem_curr->is_buried = oppTank->howBuried(&mem_curr->buried_l, &mem_curr->buried_r) > BURIED_LEVEL ? true : false; mem_curr->hasRepulse = oppTank->hasRepulsorActivated(); mem_curr->opLife = oppTank->l + oppTank->sh; mem_curr->opX = oppTank->x; mem_curr->opY = oppTank->y; mem_curr->diffLife = currLife - mem_curr->opLife; mem_curr->distance = FABSDISTANCE2(x, y, mem_curr->opX, mem_curr->opY); if (oppTank->l > 0) mem_curr->alive = true; // Is this the last one? then set as default best choice: if (last_opp == opp) best_setup_mem = mem_curr; } else { // Reset some values if there is no tank mem_curr->opLife = 0.; mem_curr->diffLife = currLife; mem_curr->distance = env.screenWidth * env.screenHeight; } // Some calculations can be cut short if this is ourselves: if (opp->opponent == player) { mem_curr->onSameTeam = true; mem_curr->team_mod = ( ( (player->painSensitivity + 1.) // [1;4] * (player->selfPreservation + 1.) ) // [1;4] + 2.) // [ 3 ; 18] / -1.; // [-1.5; -9] } else { mem_curr->onSameTeam = ( (TEAM_NEUTRAL != player->team) && (opp->opponent->team == player->team) ); // team_mod is a multiplier reflecting the general behaviour // against the own and other teams. if ( TEAM_JEDI == player->team ) { // Jedi go strongly for Sith and protect their team if (mem_curr->onSameTeam) mem_curr->team_mod = (2. + dail) / -2.; // [-1.5; -4.] else if ( TEAM_SITH == opp->opponent->team ) { mem_curr->team_mod = 2. * ai_level; // [2;12] } else mem_curr->team_mod = ai_level; // [1; 6] } else if ( TEAM_SITH == player->team ) { // Sith go for everyone, slightly favouring Jedi and do // not care that much hitting their own team members. if (mem_curr->onSameTeam) mem_curr->team_mod = (2. + dail) / -3.; // [-1; -2.66] else if ( TEAM_JEDI == opp->opponent->team ) { mem_curr->team_mod = 1.25 * ai_level; // [1.25;7.5] } else mem_curr->team_mod = ai_level; // [1 ;6 ] } else { // Neutrals go slightly more for the teams, and less for // other neutrals. This is supposed to reflect the fact // that Jedi and Sith have friends with them helping them // out. Neutrals are all alone and considered less dangerous. if ( TEAM_NEUTRAL == opp->opponent->team ) mem_curr->team_mod = 1. + (dail / 2.); // => [1.5;4.] else { mem_curr->team_mod = .5 + dail; // => [1.5;6.5] if (TEAM_JEDI == opp->opponent->team) ++jcnt; else ++scnt; } } // End of team_mod determination } // End of opponent handling // Advance current mem_curr = mem_curr->next; } ++idx; } while (opp && mem_curr); // If this is a neutral player, it has counted jedi and sith. This is // done to raise the team_mod whenever any of these teams sport more // than one remaining tank. if ( (TEAM_NEUTRAL == player->team) && ( (jcnt > 1) || (scnt > 1) ) ) { double j_mod = dail / 10. * static_cast(jcnt - 1); double s_mod = dail / 10. * static_cast(scnt - 1); mem_curr = mem_head; while (mem_curr) { if ( (TEAM_JEDI == mem_curr->entry->opponent->team) && (jcnt > 1) ) mem_curr->team_mod += j_mod; else if ( (TEAM_SITH == mem_curr->entry->opponent->team) && (scnt > 1) ) mem_curr->team_mod += s_mod; mem_curr = mem_curr->next; } } /// === 3) Copy weapon information === double dmgMod = player->damageMultiplier; idx = 0; pref = 0; weap_curr = weap_head; weap_last = nullptr; assert(weap_head && "ERROR: getMemory() called without weapon memory set up!"); if (!weap_head) return false; // Reset blast values, they have to be found anew: blast_min = 0.; blast_med = 0.; blast_big = 0.; blast_max = 0.; do { // Yield on each iteration to not hog the CPUs if (!global.skippingComputerPlay) std::this_thread::yield(); if ( -1 < (pref = player->getWeapPref(idx) ) ) { int32_t subMun = weapon[idx].submunition; // short-cut double damage = weapon[idx].damage * dmgMod * weapon[idx].getDelayDiv(); // === Dirt weapons have a "damage" based on their radius === if ( (DIRT_BALL <= idx) && (SMALL_DIRT_SPREAD >= idx) ) damage = weapon[idx].radius * (1.5 + player->defensive); weap_curr->amount = player->nm[idx]; // Chain missiles and such have a delay of the same count they shoot // missiles. However, weapons without a delay get a value of 1 here, // so looping in traceWeapon() is much simpler. weap_curr->delay = weapon[idx].delay > 0 ? weapon[idx].delay : 1; // To be able to track weapons that trigger other sub munitions, // their configuration must be remembered, too: weap_curr->subMunCount= weapon[idx].numSubmunitions; weap_curr->subMunType = subMun; // Non-spread weapons have their spread value set to 1. To catch // future cases where this might be different, the value is // stored and sanitized here: weap_curr->spread = weapon[idx].spread > 0 ? weapon[idx].spread : 1; weap_curr->dmgCluster = weapon[idx].numSubmunitions > 0 ? dmgMod * static_cast(weapon[subMun].damage) * static_cast(weapon[idx].numSubmunitions) : 0.; weap_curr->dmgSingle = damage; weap_curr->dmgSpread = damage * static_cast(weap_curr->spread); weap_curr->preference = pref; weap_curr->radius = weapon[idx].radius; weap_curr->type = idx; // Save blast value for opponents score calculation double ds = weap_curr->dmgSingle; if (SML_MIS == idx) { if (blast_min < ds) blast_min = ds; if (blast_med < ds) blast_med = ds; if (blast_big < ds) blast_big = ds; if (blast_max < ds) blast_max = ds; } else if ( ( (MED_MIS == idx) || (LRG_MIS == idx) ) && (weap_curr->amount > 0) ) { if (blast_med < ds) blast_med = ds; if (blast_big < ds) blast_big = ds; if (blast_max < ds) blast_max = ds; } else if ( ( (SML_NUKE == idx) || (NUKE == idx) ) && (weap_curr->amount > 0) ) { if (blast_big < ds) blast_big = ds; if (blast_max < ds) blast_max = ds; } else if ( ( (DTH_HEAD == idx) ) && (weap_curr->amount > 0) && (blast_max < ds) ) blast_max = ds; // If this is the last weapon used, store as default best choice if (last_weap == idx) best_setup_weap = weap_curr; // Advance current weap_curr = weap_curr->next; } } while ((++idx < WEAPONS) && weap_curr); return true; } /// @brief flatten curr_ang if a riot bom is chosen to clear the path /// Note: No checks about being blocked, call it when appropriate. Only /// the weapon is checked against riot bombs. void AICore::flattenCurrAng() { if ( (RIOT_BOMB <= weap_curr->type) && (HVY_RIOT_BOMB >= weap_curr->type) ) { int32_t div = 1 + ( (RAND_AI_1P + 2) / 2); // [2;4] // Minimum : 1 + ( (0 + 2) / 2 ) = 1 + ( 2 / 2 ) = 1 + 1 = 2 // Useless: 1 + ( (1 + 2) / 2 ) = 1 + ( 3 / 2 ) = 1 + 1 = 2 // Deadly+1: 1 + ( (5 + 2) / 2 ) = 1 + ( 7 / 2 ) = 1 + 3 = 4 if (curr_angle > 180) curr_angle += (270 - curr_angle) / div; else curr_angle -= (curr_angle - 90) / div; } } /// @brief adapt @a ang_mod and @a pow_mod when a shot using them crashed. void AICore::fixCrashed (int32_t &ang_mod, int32_t &pow_mod) { // Unless a hill was detected, the angle mod must not be greater than 1 if (!hill_detected && (ang_mod > 1)) ang_mod = 1; // Use a unified angle or there has to be an if/else for the same code int32_t fix_ang = curr_angle > 180 ? FLIP_ANGLE(curr_angle) : curr_angle; // The following rules must be applied: // 1) If boxed mode is on, the angle must not be higher than 150° // or it has to be reduced more. // 2) Otherwise lower the angle further away from 45° (aka 135° here) if // it is already low. // If it isn't, it is raised anyway. // 3) If none of the above apply, assume the angle to be in order if it // is between 130 and 140, which is 45° +/- 5°. if (env.isBoxed && (fix_ang > 150)) { // 1) ang_mod *= -1 * RAND_AI_1P; // Do not overdo it: while (std::abs(ang_mod) > (ai_level + 2)) ang_mod /= 2; } else if ( (fix_ang > 100) && (fix_ang <= 135) ) // 2) ang_mod *= -1; else if ( (fix_ang > 130) && (fix_ang < 140) ) // 3) ang_mod = 0; // None needed // now flip ang_mod if the angle was flipped: ang_mod *= curr_angle > 180 ? -1 : 1; // The power must be reduced if it is greater than the x distance. int32_t pow_diff = curr_power - std::abs(mem_curr->opX - x); if (pow_diff > 0) { pow_mod = std::abs(pow_mod) * -1; // And strengthen the power reduction more if // the power is more than 50% over the distance if ( pow_diff >= (std::abs(mem_curr->opX - x) / 2) ) pow_mod *= 2 * RAND_AI_1P; } } /// @brief Try to adapt @a ang_mod and @a pow_mod according to the current /// overshoot and where the best hit landed. void AICore::fixOvershoot(int32_t& ang_mod, int32_t& pow_mod, int32_t hit_score) { // Here are some more possible (sub) situations to consider: // 1) The current score is at least better than the last. // This can happen if the shot does no longer hit team mates. // The important situation is, if the overshoot is very small // and a new best score is achieved. The bigger the weapon, the // higher the probability that this might be the case. // 2) Both the current and the last overshoot were negative, the // angle was optimized towards 45° and the power was raised. // Having a worse overshoot then can happen if the gun was // lowered and the shot crashes into the side of a hill or // mountain. // The angle must then be brought towards 180° more than the // last angle modification brought it away from it. // 3) The current score is worse than the last score. // a) The last score was better than the one before. // The modifications might have been too strong, try // values between the two. // b) That was two worse tries in a row. // The direction was wrong, and the last modifications // must be reverted and strengthened by the current set // mods. // 4) No last score or the same, just adapt the mods according to // whether the shot was too short or too long. bool angle_was_optimized = false; if ( ( (curr_angle > 180) && (curr_angle <= 235) && (last_ang_mod > 0) ) || ( (curr_angle < 180) && (curr_angle >= 135) && (last_ang_mod < 0) ) ) angle_was_optimized = true; // Optimized towards 45° on its side // reset hill detection if the current overshoot isn't short if ( (curr_overshoot > 0) || (hit_score > 0) ) hill_detected = false; if (last_score && (hit_score > 0) && (hit_score > last_score)) { // 1) Better score with worse overshoot. // Here a best score might happen. But this is only noteworthy // if the hit_score is positive. Otherwise it would simply // mean that less damage was done (team and others) and that is // hardly anything to note down. // Note: if this is a new best score, some adaptation has // already been made in aim(). if (hit_score < best_score) { // Only adapt the signedness of the mods and note that // the aiming is not there, yet: DEBUG_LOG_AIM(player->getName(), " => Better score %d [%d last]", hit_score, last_score) ang_mod = std::abs(ang_mod) * SIGN(last_ang_mod); pow_mod = std::abs(pow_mod) * SIGN(curr_overshoot) * -1; } // At least better than the last last_was_better = true; hill_detected = false; } else if ( (hit_score <= 0) && (last_overshoot < 0) && (curr_overshoot <= last_overshoot) // Keeps being too short && angle_was_optimized) { // 2) Assume a hill in the path pow_mod = (std::abs(pow_mod) + std::abs(last_pow_mod)) / 2; // raise it ang_mod = static_cast(std::abs(last_ang_mod) + std::abs(ang_mod)) * ai_over_mod * SIGNd(last_ang_mod) * -1.; // Note: This accumulates the last and the current angle modification, // strengthens depending on AI level and ensures it has the // opposite direction from the last modification. // Make sure the new ang_mod really gets the angle upwards: if ( SIGN(curr_angle - 180) == SIGN(ang_mod) ) ang_mod *= -1; // Make sure the new ang_mod doesn't make the angle to flip over: if ( (curr_angle > 180) && ((curr_angle + ang_mod) <= 180) ) ang_mod = 181 - curr_angle; if ( (curr_angle < 180) && ((curr_angle + ang_mod) >= 180) ) ang_mod = curr_angle - 181; DEBUG_LOG_AIM(player->getName(), "Assuming hill crash, reverting ang_mod to %d", ang_mod) last_was_better = false; // false, so this change won't get directly // reverted again. hill_detected = true; } else if (last_score && (last_score > hit_score) ) { // 3) Wrong direction! if (last_was_better) { DEBUG_LOG_AIM(player->getName(), " => Worse score %d [%d was better]", hit_score, last_score) // Try a mod in between the two if (std::abs(last_ang_mod) > 1) ang_mod = -1 * (last_ang_mod / 2); else ang_mod = -1 * SIGN(last_ang_mod); if (std::abs(last_pow_mod) > 9) pow_mod = -1 * (last_pow_mod / 2); else pow_mod = -5 * SIGN(last_pow_mod); } else { // b) Revert and go in the opposite direction: DEBUG_LOG_AIM(player->getName(), " => Worse score %d [%d was worse]", hit_score, last_score) // If the last was reverted already, strengthen the // move in the opposite direction if (last_reverted) { // First make positive and strengthen ang_mod = std::abs(ang_mod) * (RAND_AI_0P + 1); pow_mod = std::abs(pow_mod) * (RAND_AI_1P + 1); } // Then strengthen the last values by the current and revert: ang_mod = -1 * ( last_ang_mod + (SIGN(last_ang_mod) * ang_mod) ); pow_mod = -1 * ( last_pow_mod + (SIGN(last_pow_mod) * pow_mod) ); // Adapt by overshoot: (Yes, still necessary) if (SIGN(curr_overshoot) == SIGN(pow_mod)) pow_mod *= -1; } last_was_better = false; } else { // 4) Just do the set mod according to overshoot DEBUG_LOG_AIM(player->getName(), "=> Same score %d, overshoot %d", hit_score, curr_overshoot) // Put in some limits for the angle according to where the opponent is int32_t ang_limit = (focusRate * static_cast(rand() % 16)); int32_t dist_y = mem_curr->opY - y; if (dist_y < -100) /* above */ ang_limit += 60; else if (dist_y > 100) /* below */ ang_limit += 20; else /* equal */ ang_limit += 40; // If a hill was detected, do not modify angle more than 1 if (hill_detected && (ang_mod > 1)) ang_mod = 1; if ( ( (curr_angle <= 180) && (curr_angle > (90 + ang_limit)) ) || ( (curr_angle > (270 - ang_limit) ) ) ) ang_mod *= -1; // Adapt pow_mod by overshoot pow_mod = std::abs(pow_mod) * SIGN(curr_overshoot) * -1; last_was_better = false; } } /// @brief adapt @a ang_mod and @a pow_mod when a shot using them did not /// finish. void AICore::fixUnfinished (int32_t &ang_mod, int32_t &pow_mod) { // Put in some limits for the angle according to where the opponent is int32_t ang_limit = (focusRate * static_cast(rand() % 16)); int32_t dist_y = mem_curr->opY - y; if (dist_y < -100) /* above */ ang_limit += 60; else if (dist_y > 100) /* below */ ang_limit += 20; else /* equal */ ang_limit += 40; // If a hill was detected on the path, do not alter the angle // more than by 1 if (hill_detected && (ang_mod > 1)) ang_mod = 1; // If the angle is too steep to the right, or too flat // to the left, make ang_mod negative: // Note: If the shot is to the right, it is in the range // 90-180 and going down needs a negative mod. // If going to the left it needs a positive mod to go // down as it is in the range 180 - 270. if ( ( (curr_angle <= 180) && (curr_angle > (90 + ang_limit)) ) || ( (curr_angle > (270 - ang_limit) ) ) ) ang_mod *= -1; // The power must be reduced if it is greater than twice the // x distance, but raised if less than the simple x distance. // If the power is too low, shots can quickly end up with too // many bounces if the wall is rubber or spring. int32_t dist_x = std::abs(mem_curr->opX - x); if (curr_power > (2 * dist_x)) pow_mod *= -1; else if (curr_power > dist_x) pow_mod = 0; // Do not change } /// @return true once the operator() ends bool AICore::hasExited() const { return isFinished; } /** @brief Signal the AI that the tank was moved * * The direction signals the following: * * < 0 : Moved to the left * = 0 : Movement not possible * > 0 : Moved to the right. * * @param[in] direction indicate movement direction **/ void AICore::hasMoved(int32_t direction) { if (direction) { isMovedBy.store(direction, ATOMIC_WRITE); canMove.store(true, ATOMIC_WRITE); } else { isMovedBy.store(0, ATOMIC_WRITE); canMove.store(false, ATOMIC_WRITE); } } /// @brief initialize work with the current players data bool AICore::initialize() { DEBUG_LOG_AI(player->getName(), "Starting think work, setting up.", 0) #if defined(ATANKS_IS_WINDOWS) // Here srand() is thread local according to MSDN. // This affects cygwin/mingw builds, too. // Thanks to billy Buerger for pointing this out! srand(time(nullptr)); #endif // Microsoft Windows Build /// === Step 1 : Copy relevant data === ai_level = static_cast(player->type); ai_level_d = static_cast(ai_level); ai_over_mod = 1. + (ai_level_d / 10.); // [1.1;1.5] ai_type_mod = (1. + ai_level_d) / 2.; // [1.0;3.0] blast_min = 0.; blast_med = 0.; blast_big = 0.; blast_max = 0.; canMove.store(true, ATOMIC_WRITE); isMovedBy.store(0, ATOMIC_WRITE); isShocked = false; revengee = nullptr; shocker = nullptr; needSuccess = true; needAim = true; isBlocked = false; hill_detected = false; // Data from player: needMoney = ((player->getMoneyToSave(false) - player->money) > 0); last_opp = player->getOppMem(-1); // Data from tank: tank = player->tank; if (tank && !tank->destroy) { angle = tank->a; power = tank->p; weap_idx = tank->cw; buried = tank->howBuried(&buried_l, &buried_r); currLife = tank->l + tank->sh; maxLife = tank->getMaxLife(); x = tank->x; y = tank->y; last_ang = 180; last_pow = 1000; last_weap = 0; // Is there a last opponent? if (last_opp) { last_ang = angle; last_pow = power; last_weap = weap_idx; DEBUG_LOG_AI(player->getName(), "Last opponent was %s", last_opp->opponent->getName()) } // Select last weapon/item used if (weap_idx > WEAPONS) useItem(weap_idx); else useWeapon(weap_idx); } else return false; // reset calculation values curr_angle = angle; curr_power = power; // Reset setup values: best_round_score = NEUTRAL_ROUND_SCORE; best_setup_angle = angle; best_setup_damage = 0; best_setup_item = nullptr; best_setup_mem = nullptr; best_setup_overshoot = MAX_OVERSHOOT; best_setup_power = power; best_setup_score = NEUTRAL_ROUND_SCORE; best_setup_weap = nullptr; /// === Step 2: See whether this bot gets lucky === if ((rand() % 100) < ai_level) { // So the useless bot has a 1% and the deadly bot a 5% chance int32_t raise = 1 + ( (5 - ai_level) / 2); /* Useless: 1 + ((5 - 1) / 2) => 1 + (4 / 2) => 1 + 2 => 3 * Guesser: 1 + ((5 - 2) / 2) => 1 + (3 / 2) => 1 + 1 => 2 * Ranger : 1 + ((5 - 3) / 2) => 1 + (2 / 2) => 1 + 1 => 2 * Target : 1 + ((5 - 4) / 2) => 1 + (1 / 2) => 1 + 0 => 1 * Deadly : 1 + ((5 - 5) / 2) => 1 + (0 / 2) => 1 + 0 => 1 */ DEBUG_LOG_AI(player->getName(), "Lucky Turn: Raise from \"%s\" to \"%s\"", getLevelName(ai_level), getLevelName(ai_level + raise)) ai_level += raise; ai_level_d = static_cast(ai_level); ai_over_mod = 1. + (ai_level_d / 10.); // [1.1;1.5] ai_type_mod = (1. + ai_level_d) / 2.; // [1.0;3.0] showFeedback("*lucky*", GREEN, -.8, TS_NO_SWAY, 100); } /// === Step 3 : Set stage and allow the work to be done === if (tank && !tank->destroy && !isStopped && canWork && getMemory()) { // Note: Without the memory, no real work is possible. textAllowed.store(true); plStage = PS_SELECT_TARGET; isWorking = true; return true; } return false; } /// @brief Sanitize curr_angle and curr_power. void AICore::sanitizeCurr() { if (curr_angle < 90) curr_angle = 90; if (curr_angle > 270) curr_angle = 270; if (curr_power > MAX_POWER) curr_power = MAX_POWER; if (curr_power < MIN_POWER) curr_power = MIN_POWER; curr_power -= curr_power % 5; } /// @brief show ai feedback if allowed and not skipping computer play. /// Whenever a feedback message is shown, the AI sleeps for dur/10 + 1 ms. void AICore::showFeedback(const char* const feedback, int32_t col, double yv, eTextSway text_sway, int32_t dur) { if (env.showAIFeedback && !global.skippingComputerPlay) { // Wait for the AI to be allowed to create texts while (!textAllowed.load(ATOMIC_READ)) std::this_thread::yield(); int32_t y_pos = y - (50 + (rand() % 21)); new FLOATTEXT(feedback, x, y_pos, .0, yv, col, CENTRE, text_sway, dur, false); MSLEEP( (dur / 10) + 1 ) } } /** @brief Select the next item to use on the current target. * * This method tries to determine the best item / weapon selection * to be used on the currently selected target (mem_curr). * * Some of the thinking depend on random numbers, so calling this * method twice on the same target might lead to different selections. * * This is wanted, so many tries on higher ai levels with a small * number of difficult to reach targets might eventually lead to * a sane result. * * The selected item / weapon is saved in item_curr or weap_curr. The * method makes sure that it is not the same as item_last / weap_last. * Please note, however, that if there is only one selectable item, * if the bot is out of stock of everything but small missiles for example, * then item_curr / weap_curr might end up the same as the last selections. * * The method returns true if the selection it ends up with makes sense. * If @a is_last is set to true, the method itself returns true, too. * * @param[in] is_last If set to true, the method will return true in any case. * @return true if the selection makes sense, or if @a is_last is set to true. **/ bool AICore::selectItem(bool is_last) { // Back up current selections item_last = item_curr; weap_last = weap_curr; // Advance to the next weapon bool has_weap = true; // If a best setup with primary target hit has been achieved // already, or if the bot is shocked, select a random weapon. // Otherwise do an ordered advance down the chain. if (best_setup_prime || isShocked) { int32_t weap_num = rand() % WEAPONS; weap_curr = weap_head; // If weap_last was not set, set it to head, too. if (!weap_last) weap_last = weap_curr; // Now rotate until the weapon is found. while (weap_num) { weap_curr = weap_curr->next; // Skip not available weapons, non-damage entries, the last weapon // and weapons with a negative score. while ( weap_curr && ( (weap_curr->amount <= 0) || (weap_curr->dmgSingle < 2.) || (weap_curr->score <= 0) || (weap_curr == weap_last) // Reducer and dirt weapons are non-damage, too. // they have a fake damage set, so filter them here. || (REDUCER == weap_curr->type) || ( (DIRT_BALL <= weap_curr->type) && (SMALL_DIRT_SPREAD >= weap_curr->type) ) ) ) weap_curr = weap_curr->next; // Rotate if the end was hit if (!weap_curr) weap_curr = weap_head; --weap_num; } } else { while ( has_weap && ( !weap_curr || (weap_curr == weap_last) || (weap_curr->amount <= 0) || (weap_curr->dmgSingle < 2.) || (weap_curr->score <= 0) || ( mem_curr->hasRepulse && RAND_AI_1P && (SML_NAPALM <= weap_curr->type) && (LRG_NAPALM >= weap_curr->type) && RAND_AI_1P ) ) ) { weap_curr = weap_curr ? weap_curr->next : weap_head; // If no weapon was selected at the start, weap_last is // now nullptr, but must be weap_head once weap_curr is // beyond head. if (!weap_last && (weap_curr != weap_head)) weap_last = weap_head; // If this rotated once through everything, there is // only this one weapon left or a lot of tries are through: if (weap_last == weap_curr) has_weap = false; } } // end of ordered rotation // Use weap_head if there is no other weapon: if (!has_weap) { weap_curr = weap_head; weap_last = weap_curr; } // If the bot is shocked, the next weapon is selected, // someone in panic does not do much thinking any more if (isShocked) { item_curr = nullptr; if (nullptr == weap_curr) weap_curr = weap_head; weap_idx = weap_curr->type; DEBUG_LOG_EMO(player->getName(), "(SHOCKED) Quick selected %s", weapon[weap_idx].getName()) return true; } // Advance to the next item bool has_item = true; while ( has_item && ( !item_curr || (item_curr == item_last) || (item_curr->amount <= 0) || !item_curr->selectable || (item_curr->score <= 0) ) ) { item_curr = item_curr ? item_curr->next : item_head; // If no item was selected at the start, item_last is // now nullptr, but must be item_head once item_curr is // beyond head. if (!item_last && (item_curr != item_head)) item_last = item_head; // If this rotated once through everything, there is // only this one weapon left: if (item_last == item_curr) has_item = false; } // If no items are available, it has to be taken out of consideration: if (!has_item) { item_curr = nullptr; item_last = nullptr; } // Do not use items with a negative score, as those are items // that are unavailable. if (item_curr && ( (item_curr->score < 0) || (player->ni[item_curr->type] <= 0) ) ) item_curr = nullptr; // Note: sub-optimal weapons ( too low damage ) can be negative. // Do not use self destruct items/weapons unless the // bot wants to self destruct if (mem_curr->opLife <= (currLife * 10.)) { if (item_curr && (item_curr->kamikaze)) item_curr = nullptr; if (weap_curr && (weap_curr->kamikaze)) weap_curr = nullptr; } // Do not use teleporters unless buried or blocked if ( item_curr && (item_curr->type >= ITEM_TELEPORT) && (item_curr->type <= ITEM_MASS_TELEPORT) && !isBlocked && !item_curr->escape) item_curr = nullptr; // Do not use riot bombs if the path is not blocked if ( weap_curr && (weap_curr->type >= RIOT_BOMB) && (weap_curr->type <= HVY_RIOT_BOMB) && !isBlocked) weap_curr = nullptr; // If both are still set, take what has the higher score if (item_curr && weap_curr) { if (item_curr->score > weap_curr->score) { weap_curr = nullptr; weap_idx = item_curr->type + WEAPONS; } else { item_curr = nullptr; weap_idx = weap_curr->type; } } else if (item_curr) weap_idx = item_curr->type + WEAPONS; else if (weap_curr) weap_idx = weap_curr->type; else weap_idx = -1; if (!item_curr && !weap_curr && is_last) // If nothing is set but this is the last chance, // use the small missile as a fallback weapon useWeapon(SML_MIS); DEBUG_LOG_EMO(player->getName(), "Next selection: %s", weap_curr ? weapon[weap_idx].getName() : item_curr ? item[weap_idx - WEAPONS].getName() : "NOTHING (fail)") return (item_curr || weap_curr); } /** @brief Select the next target to try to hit or handle. * * This method selects and sets the current target. Basically it * just wanders down the memory chain as it is sorted by score already. * * The following additional rules (besides the ordering by score) apply: * - If the bot is shocked, the shocker is always selected. * - If a revenge is sought, that opponent is always selected if it * is not currently selected or was the last one. * - If @a is_last is set to true, the target with the highest score * or that is sought revenge against is selected and the method * returns true. * * Whenever the selection makes sense, the method returns true. * * @param[in] is_last If set to true, the method will return true in any case. * @return true if the selection makes sense, or if @a is_last is set to true. **/ bool AICore::selectTarget(bool is_last) { // Be quickly done if this bot is shocked if (isShocked) { // Is the shocker still there? if (shocker->opponent->tank && !shocker->opponent->tank->destroy) { mem_last = mem_curr; if (!mem_curr || (mem_curr->entry != shocker)) { mem_curr = mem_head; while (mem_curr && (mem_curr->entry != shocker)) mem_curr = mem_curr->next; } DEBUG_LOG_EMO(player->getName(), "(SHOCKED) Targetting %s", mem_curr ? mem_curr->entry->opponent->getName() : "NONE?") return (mem_curr->entry == shocker); } else { // Nope, gone with the wind. shocker = nullptr; isShocked = false; } } // Preselect the revengee if not done already and there is one: // Note: Of course the revengee is forced if this is the very last try! if ( revengee && ( is_last || ( (!mem_curr || (mem_curr->entry != revengee)) && (!mem_last || (mem_last->entry != revengee)) ) ) ) { // is the revengee still alive? if (revengee->opponent->tank && !revengee->opponent->tank->destroy) { mem_last = mem_curr; mem_curr = mem_head; while (mem_curr && (mem_curr->entry != revengee)) mem_curr = mem_curr->next; DEBUG_LOG_EMO(player->getName(), "(REVENGE) Targetting %s", mem_curr ? mem_curr->entry->opponent->getName() : "NONE?") return (mem_curr->entry == revengee); } else // No longer relevant... revengee = nullptr; } // If nothing was preselected, a simple walk down the chain // is in order. (revengees must be skipped, though) // However, if this is the last_try, the primary target is always selected. sOppMemEntry* mem_old = mem_curr; // backup if (is_last || (nullptr == mem_curr)) mem_curr = mem_head; // If the revengee is currently selected, the "walk" must continue // from the last opponent on, or the bot will have a flip between // the revengee and the first other opponent only. if (!is_last && revengee && mem_curr && (mem_curr->entry == revengee)) { if (mem_last) mem_curr = mem_last; else mem_curr = mem_head; } // Now walk down the list skipping the revengee if set if (!is_last) { while ( mem_curr && ( (mem_curr == mem_old) || (mem_curr == mem_last) || (revengee && (mem_curr->entry == revengee)) || (mem_curr->entry->opponent == player) || (nullptr == mem_curr->entry->opponent->tank) || mem_curr->entry->opponent->tank->destroy) ) mem_curr = mem_curr->next; mem_last = mem_old; } // If is_last is set, mem_curr must not be nullptr. Otherwise a // nullptr can happen if too few tanks are left. assert ( (!is_last || mem_curr) && "ERROR: Is last but nullptr curr!"); DEBUG_LOG_EMO(player->getName(), "( normal) Targetting %s", mem_curr ? mem_curr->entry->opponent->getName() : "nobody") return (nullptr != mem_curr); } /** @brief setup the basic attack values * * This method tries to find a sane target-weapon-combination. * The number of tries to do so is dictated by the AI level, * and if this is the very last targeting try, the method will * come up with the minimum possible combination. * * @param[in] is_last If set to true, something usable is forced to be set. * @return true if a viable combination was found, false otherwise. **/ bool AICore::setupAttack(bool is_last, int32_t &opp_attempt, int32_t &weap_attempt) { bool selectDone = false; bool breakUp = false; bool has_new_target = false; while (isWorking && !isStopped && !selectDone && !breakUp) { // Yield on each iteration to not hog the CPUs if (!global.skippingComputerPlay) std::this_thread::yield(); // 1) Select a target //==================== if (!weap_attempt || !mem_curr) { plStage = PS_SELECT_TARGET; DEBUG_LOG_AIM(player->getName(), "Selecting target, try %d / %d", opp_attempt + 1, findOppAttempts) selectDone = selectTarget( (++opp_attempt == findOppAttempts) && is_last && needSuccess); if (selectDone && (mem_curr != mem_last)) { best_round_score = NEUTRAL_ROUND_SCORE; // New target! item_curr = nullptr; item_last = nullptr; weap_curr = nullptr; weap_last = nullptr; has_new_target = true; } } else { has_new_target = false; selectDone = true; } // 2) Select an item / weapon //============================ if (selectDone) { plStage = PS_SELECT_WEAPON; /* --- Ensure dedicated lists and starting values --- */ if (has_new_target) { checkWeapMem(); checkItemMem(); weap_idx = -1; } /* --- Now do the selection --- */ selectDone = false; while ( isWorking && !isStopped && !selectDone && (weap_attempt < findWeapAttempts) ) { DEBUG_LOG_AIM(player->getName(), "Selecting item, try %d / %d", weap_attempt + 1, findWeapAttempts) // Yield on each iteration to not hog the CPUs if (!global.skippingComputerPlay) std::this_thread::yield(); selectDone = selectItem( (++weap_attempt == findWeapAttempts) && is_last && needSuccess); } // selectItem() must have set weap_idx properly: assert( ( !selectDone || ( item_curr && (weap_idx == WEAPONS + item_curr->type) ) || ( weap_curr && (weap_idx == weap_curr->type) ) ) && "ERROR: Selection done but weap_idx does not" && " contain the correct index!"); // If this was the last attempt to select a weapon, and another // opponent selection is in order, reset weap_attempt so a new // opponent can be selected if ( (weap_attempt == findWeapAttempts) && (opp_attempt < findOppAttempts) ) weap_attempt = 0; } // end of item selection // break up this round if no selection was done but the // opponent selection has ended if (!selectDone && (opp_attempt >= findOppAttempts) && (weap_attempt >= findWeapAttempts) ) breakUp = true; } // end of basic setup cycle // If the selection was not done properly (not possible) but this // is the absolutely final round and there has been no good setup, yet, // an emergency plan is used: if (isWorking && !isStopped && is_last && !selectDone && needSuccess) { // Try to "get out" first: selectDone = useItem(ITEM_TELEPORT); if (!selectDone && !mem_curr->is_buried) selectDone = useItem(ITEM_SWAPPER); if (!selectDone) selectDone = useItem(ITEM_MASS_TELEPORT); // If this still isn't going anywhere, revert to first target with // small missiles, that might be useless now, but there is always // a next round. if (!selectDone) { item_curr = nullptr; mem_curr = mem_head; selectDone = useWeapon(SML_MIS); DEBUG_LOG_EMO(player->getName(), "Last Try Selection: %s against %s", weapon[SML_MIS].getName(), mem_head->entry->opponent->getName()) assert(selectDone && "ERROR: Not even small missile can be selected?"); } else weap_curr = nullptr; // Emergency plan working. } // The last thing to consider is kamikaze. // While the appropriate items *are* self destruct devices, choosing // a weapon with kamikaze potential (and score) does not mean that the // bot *must* destroy themselves. So in that case an extra test is in order. if ( selectDone && ( (item_curr && item_curr->kamikaze) || (weap_curr && weap_curr->kamikaze) ) ) { bool self_destruct = true; // selfPreservation is a value in the interval [0;3] if (weap_curr && ( (rand() % 35) < (player->selfPreservation * 10.))) self_destruct = false; // Another "way out" is if a weapon shall be used but it does // not do enough damage: if (self_destruct && weap_curr && (weap_curr->dmgSingle < currLife)) self_destruct = false; // do not self destruct if a good best setup was already found if (!needSuccess && best_setup_prime && (best_setup_score > 0)) self_destruct = false; // If the bot still wants to self destruct, change mem_curr // to reflect this: if (self_destruct && (mem_curr->entry->opponent != player) ) { mem_last = mem_curr; mem_curr = mem_head; while (mem_curr->entry->opponent != player) mem_curr = mem_curr->next; // This must never fail: assert(mem_curr && "ERROR: Self not found in memory?"); DEBUG_LOG_EMO(player->getName(), "Chosen to self destruct using %s", weap_curr ? weapon[weap_idx].getName() : item_curr ? item[weap_idx - WEAPONS].getName() : "NOTHING (fail)") } else { // To chicken out, the small missile is chosen if this is // the last thing to consider if (is_last && needSuccess) useWeapon(SML_MIS); else selectDone = false; } } // If both attempts, selecting an opponent and a weapon, have reached // the maximum tries, they get reset, so the next full targeting cycle // is triggered: if ( !is_last && breakUp) { opp_attempt = 0; weap_attempt = 0; } return selectDone; } /** @brief start the work on one player * * This method starts working on a new player. All relevant * data is fetched from @a player_ that must not be nullptr. * * If a job is running, no new one is started. * If @a player_ is not an AI player, it is not handled. * * @param[in] player Pointer to the player to handle. * @return true if a job was started, false otherwise. */ bool AICore::start(PLAYER* player_) { if ( canWork && player_ && !isWorking && !isStopped && (player_->type > HUMAN_PLAYER) && (player_->type < NETWORK_CLIENT) && (PS_AI_IS_IDLE == plStage) ) { DEBUG_LOG_AI(player_->getName(), "==============================", 0) DEBUG_LOG_AI(player_->getName(), " AICore started for %s", player_->getName()) DEBUG_LOG_AI(player_->getName(), "------------------------------", 0) lguard_t guard(actionMutex); plStage = PS_AI_INITIALIZE; player = player_; isWorking = true; actionCondition.notify_one(); return true; } return false; } /** @brief Retrieve the current status of the AI * * The arguments will not be changed if the AI is not working * on any player. * * @param[out] aItem Receives the currently selected weapon/item * @param[out] aAngle Receives the currently set angle * @param[out] aPower Receives the currently set power * @param[out] pl_stage Receives the current stage of the AI. This is always sent. * @return true if the AI is still working, false if it has finished. */ bool AICore::status(int32_t &aItem, int32_t &aAngle, int32_t &aPower, ePlayerStages &pl_stage) { pl_stage = plStage; if (isWorking) { aItem = weap_idx; aAngle = angle; aPower = power; return true; } return false; } /// @brief Tell the thread to stop even if it is not finished. void AICore::stop() { lguard_t guard(actionMutex); isStopped = true; actionCondition.notify_one(); } /** @brief Trace the sub munition of a cluster type weapon * * Damage is recorded in the opponent memory dmgDone value. * * @param[in] subType The type of the sub munition. No checks done! * @param[in] subCount The number of sub munition parts. * @param[in] sub_x Trigger x coordinate. * @param[in] sub_y Trigger y coordinate. * @param[in] inh_xv Parent missile xv the moment it triggered. * @param[in] inh_yv Parent missile yv the moment it triggered. **/ void AICore::traceCluster(int32_t subType, int32_t subCount, int32_t sub_x, int32_t sub_y, double inh_xv, double inh_yv) { double divergence = weapon[weap_curr->type].divergence; double speedVar = weapon[weap_curr->type].speedVariation; double spreadVar = weapon[weap_curr->type].spreadVariation; WEAPON* sub_weap = &weapon[subType]; double divStep = static_cast(divergence) / static_cast(subCount - 1); int32_t startPoint = divStep < 0. ? 0 : 180; int32_t randStart = rand () % 1000000; ePhysType subPhys = PT_NORMAL; int32_t startY = sub_y - 20; int32_t cl_overshoot = MAX_OVERSHOOT; int32_t old_overshoot= curr_overshoot; // overshoot is only used for mirvs and funkies double radius = sub_weap->radius; double sub_dmg = sub_weap->damage * player->damageMultiplier; // If the weapon is fired into a ceiling, adapt starting y if (env.isBoxed && (startY <= BOXED_TOP) && ( (WALL_STEEL == env.current_wallType) || ( (WALL_WRAP == env.current_wallType) && (!env.isBoxed || !env.do_box_wrap) ) ) ) startY = MENUHEIGHT + 20; // Change physics of the sub munitions for the funky bomb if ( (weap_curr->type == FUNKY_BOMB) || (weap_curr->type == FUNKY_DEATH) ) subPhys = PT_FUNKY_FLOAT; // If this is a steel wall hit, the start point angle needs // to be adapted. And erased if this is a ceiling hit if (WALL_STEEL == env.current_wallType) { if ( (CLUSTER <= weap_curr->type) && (SUP_CLUSTER >= weap_curr->type) ) { if ( x < 2 ) startPoint -= divergence + 1 + (rand() % 10); else if ( x > (env.screenWidth - 3) ) startPoint += divergence + 1 + (rand() % 10); else if ( y <= BOXED_TOP) startPoint = 0; } else if ( (SML_NAPALM <= weap_curr->type) && (LRG_NAPALM >= weap_curr->type) ) { if ( x < 2 ) startPoint -= 10 + rand() % 21; else if ( x > (env.screenWidth - 3) ) startPoint += 10 + rand() % 21; else if ( y <= BOXED_TOP) startPoint = 0; } else if ( ( (SMALL_MIRV == weap_curr->type) || (CLUSTER_MIRV == weap_curr->type) ) && ( y <= BOXED_TOP) ) { startPoint = 0; inh_yv = std::abs(inh_yv); } } // The spread can be created! for (int32_t sc = 0; sc < subCount; ++sc) { double speed = weapon[weap_curr->type].launchSpeed; int32_t newMissCount = sub_weap->countdown; int32_t newMissAngle = ROUND( (divStep * static_cast(sc)) + static_cast(startPoint) - (static_cast(divergence) / 2.) ); // trace hard, but yield per sub mun if (!global.skippingComputerPlay) std::this_thread::yield(); // Manipulate angle if applicable if (speedVar > 0.) newMissAngle += ROUND( static_cast(divergence) * spreadVar * Noise(randStart + 1054 + sc) ); // Be sure the angle is valid while (newMissAngle < 0) newMissAngle += 360; newMissAngle %= 360; // Manipulate number of submunition projectiles if applicable if (sub_weap->countVariation > 0) { newMissCount += ROUND( static_cast(sub_weap->countdown) * sub_weap->countVariation * Noise(randStart + 78689 + sc) ); // This might go wrong, so be sure it doesn't if (newMissCount <= 0) newMissCount = 0; } // Manipulate launching speed if applicable if (speedVar > 0) speed += ROUND(speedVar * speed * Noise(randStart + 124786 + sc) ); // Launch new submunition missile MISSILE mind_shot(player, sub_x, startY, env.slope[newMissAngle][0] * speed * env.FPS_mod + inh_xv, env.slope[newMissAngle][1] * speed * env.FPS_mod + inh_yv, subType, MT_MIND_SHOT, ai_level, 0); mind_shot.update_submun(subPhys, newMissCount); // Keep flying/rolling/digging/whatever until the missile hits something // or the number of bounces is too high for this bot to keep track. while (!mind_shot.destroy && (maxBounce >= mind_shot.bounced())) { mind_shot.applyPhysics(); // Yield on each iteration to not hog the CPUs if (!global.skippingComputerPlay) std::this_thread::yield(); } // If the missile is destroyed, the number of bounces is in order. if (mind_shot.destroy) { // The distance from the target must take both the direction // of the last movement of the mind shot and the positions of // both tanks into account: int32_t tank_dir = SIGN(mem_curr->opX - x); int32_t hit_dir = SIGN(mem_curr->opX - mind_shot.x); int32_t shot_dir = mind_shot.direction(); curr_overshoot = ABSDISTANCE2(mem_curr->opX + offset_x, mem_curr->opY + offset_y, mind_shot.x, mind_shot.y); if (tank_dir == shot_dir) curr_overshoot *= (tank_dir == hit_dir ? -1 : 1); else curr_overshoot *= (tank_dir == hit_dir ? 1 : -1); // Note it down if this mind shot is better than the best if (std::abs(curr_overshoot) < std::abs(cl_overshoot)) cl_overshoot = curr_overshoot; // eventually add the score: calcHitDamage(mind_shot.x, mind_shot.y, radius, sub_dmg, static_cast(subType)); } } // End of looping submunitions // Write back best overshoot if this is a MIRV or funky weapon. // clusters and napalm weapons spread stuff out, there the hit // of the parent weapon is what counts. if ( (SMALL_MIRV == weap_curr->type) || (FUNKY_BOMB == weap_curr->type) || (FUNKY_DEATH == weap_curr->type) || (CLUSTER_MIRV == weap_curr->type) ) curr_overshoot = cl_overshoot; else curr_overshoot = old_overshoot; } /** @brief Fire a mind shot and see where it goes. * * If the mind shot got destroyed, curr_overshoot is set to the distance of * mem_curr->opponent to reached_x_/reached_y_. Positive values mean "too far", * negative values mean the shot went "too short". * * @param[in] trace_angle The angle to use, normally a spread variation of * curr_angle. * @param[in] delay_idx Index of this shot in a delayed shot. Used to simulate * "bombing through" terrain. * @param[out] finished true if the mind shot got destroyed before reaching * maxBounce wall bounces/wraps. * @param[out] top_wrapped Set to true if the the missile wrapped through a * wrap wall ceiling. * @param[out] reached_x_ The x-coordinate on destruction. If the mind shot was * cancelled before being destroyed, @a reached_x_ is not changed. * @param[out] reached_y_ The y-coordinate on destruction. If the mind shot was * cancelled before being destroyed, @a reached_y_ is not changed. * @param[out] end_xv The x velocity the moment the projectile ends. * @param[out] end_yv The y velocity the moment the projectile ends. * @return true if all went well, false if any new() operator failed. If this * method returns false, the AI can no longer work. **/ bool AICore::traceShot(int32_t trace_angle, int32_t delay_idx, bool &finished, bool &top_wrapped, int32_t &reached_x_, int32_t &reached_y_, double &end_xv, double &end_yv) { double top_x = x; double top_y = y; double vel_mod = static_cast(curr_power) * env.FPS_mod; double vel_x = env.slope[trace_angle][0] * vel_mod / 100.; int32_t aim_dir = SIGN(vel_x); double vel_y = env.slope[trace_angle][1] * vel_mod / 100.; bool can_top_wrap = ( env.isBoxed && (WALL_WRAP == env.current_wallType) && env.do_box_wrap ); double old_yv = 0; double old_y = 0; tank->getGuntop(trace_angle, top_x, top_y); MISSILE mind_shot(player, top_x, top_y, vel_x, vel_y, weap_idx, MT_MIND_SHOT, ai_level, delay_idx); // Adapt missile drag if the player has dimpled/slick projectiles if (player->ni[ITEM_DIMPLEP]) mind_shot.drag *= item[ITEM_DIMPLEP].vals[0]; else if (player->ni[ITEM_SLICKP]) mind_shot.drag *= item[ITEM_SLICKP].vals[0]; // Keep flying/rolling/digging/whatever until the missile hits something // or the number of bounces is too high for this bot to keep track. while (!mind_shot.destroy && (maxBounce >= mind_shot.bounced())) { if (can_top_wrap) { old_yv = vel_y; old_y = mind_shot.y; } mind_shot.applyPhysics(); if (can_top_wrap) { mind_shot.getVelocity(vel_x, vel_y); if ( ( (old_yv < 0.) && (vel_y < 0.) && (mind_shot.y > old_y) ) || ( (old_yv > 0.) && (vel_y > 0.) && (mind_shot.y < old_y) ) ) top_wrapped = true; } if (!global.skippingComputerPlay) std::this_thread::yield(); } // If the missile is destroyed, the number of bounces is in order. if (mind_shot.destroy) { mind_shot.getVelocity(end_xv, end_yv); finished = true; reached_x_ = mind_shot.x; reached_y_ = mind_shot.y; // The distance from the target must take both the direction // of the last movement of the mind shot and the positions of // both tanks into account: int32_t tank_dir = SIGN(mem_curr->opX - x); int32_t hit_dir = SIGN(mem_curr->opX - reached_x_); int32_t shot_dir = mind_shot.direction(); // If the shot was flipped, and is therefore shooting into the opposite // direction of the target, the distance between the impact and the wall // shooting at must be added if the shot went away from the target. // However, this only matters if no bounces have been recorded, yet. int32_t flip_offset = 0; if ( hasFlipped && (aim_dir == shot_dir) && (WALL_STEEL != env.current_wallType) && (0 == mind_shot.bounced())) { if (reached_x_ < x) flip_offset = 2 * reached_x_; else flip_offset = 2 * (env.screenWidth - reached_x_); } curr_overshoot = ABSDISTANCE2(mem_curr->opX + offset_x + flip_offset, mem_curr->opY + offset_y, reached_x_, reached_y_); if (tank_dir == shot_dir) curr_overshoot *= (tank_dir == hit_dir ? -1 : 1); else curr_overshoot *= (tank_dir == hit_dir ? 1 : -1); } else { finished = false; curr_overshoot = MAX_OVERSHOOT; } return true; } /** @brief trace all shots from weap_curr and fill in the arguments. * * Damage is recorded in the opponent memory dmgDone value. * * @return best overshoot. **/ void AICore::traceWeapon(int32_t &has_crashed, int32_t &has_finished) { assert(weap_curr && "ERROR: traceWeapon() with nullptr weap_curr?"); int32_t trace_overshoot= MAX_OVERSHOOT; int32_t curr_reached_x = reached_x; int32_t curr_reached_y = reached_y; double end_xv = 0.; double end_yv = 0.; has_crashed = 0; has_finished = 0; curr_prime_hit = false; // reset virtual damage on opponents. opEntry_t* opp = mem_head; while (opp) { opp->dmgDone = 0; opp = opp->next; } // Loop by spread, weapons that do not spread have a value of 1. for (int32_t i = 0 ; canWork && !isStopped && (i < weap_curr->spread) ; ++i) { int32_t tr_a = curr_angle + ( (SPREAD * i) - (SPREAD * (weap_curr->spread - 1) / 2) ); bool finished = false; bool top_wrap = false; reached_x = x; reached_y = y; // Loop again by delay, weapons that have no delay default to 1 here. for (int32_t j = 0 ; canWork && !isStopped && (j < weap_curr->delay) ; ++j) { if (traceShot(tr_a, j, finished, top_wrap, curr_reached_x, curr_reached_y, end_xv, end_yv) && finished) { ++has_finished; // Check whether the shot crashed if ( ( env.isBoxed && ( (curr_reached_y <= BOXED_TOP ) // crashed on top // wrapped to bottom with dirt above is a ceiling crash, too. || ( top_wrap && ( (weap_curr->type < BURROWER) || (weap_curr->type > PENETRATOR) ) && (curr_reached_y > global.surface[curr_reached_x].load()) ) ) ) // Steel wall have additional wall crashes || ( (WALL_STEEL == env.current_wallType) && (weap_curr->subMunCount < 1) // Clusters never crash && ( (curr_reached_x <= 2) || (curr_reached_x >= (env.screenWidth - 3) ) ) ) ) { ++has_crashed; } // end of omni-crash-check if (weap_curr->subMunCount > 0) { double inh_xv = weapon[weap_curr->type].impartVelocity * end_xv; double inh_yv = weapon[weap_curr->type].impartVelocity * end_yv; // Trace the cluster parts and add their score: traceCluster(weap_curr->subMunType, weap_curr->subMunCount, curr_reached_x, curr_reached_y, inh_xv, inh_yv); } else // Calculate the damage for the hit, crashes are handled later calcHitDamage(curr_reached_x, curr_reached_y, static_cast(weap_curr->radius), weap_curr->dmgSingle, static_cast(weap_curr->type)); // Note best overshoot if any if (std::abs(curr_overshoot) < std::abs(trace_overshoot)) { trace_overshoot = curr_overshoot; reached_x = curr_reached_x; reached_y = curr_reached_y; } } // End of if traceShot } // End of delay loop } // End of spread loop // Write back best data found: curr_overshoot = trace_overshoot; } /// @brief Set a new score to an items entry void AICore::updateItemScore(itEntry_t* pItem) { /* There aren't many items that are actually usable. * 1. Teleporters * These can be used to get out of a buried scenario. * Further they might be an alternative if the * targeted tank is far away. * 2. Fan * This item has no real use for the AI but one: * If the enemy is behind a mountain and the AI has tail wind, * then it might be helpful to change the wind direction. * However, this does only make sense if not that many other * bots have their shot until this one gets its next try. * 3. Self destruct devices * If this bots tanks is almost dead, and the preferred target * has a lot of health left, then trying to take them with us * using a big boom is somewhat compelling. * 4. Fuel and rockets. * Fuel can be used to get away from a steep wall, rockets can * be used to get out of a steep canyon. */ // === Get out quickly if the chosen item is out of stock === // ========================================================== if (0 == pItem->amount) { pItem->score = -50000; return; } // === Only evaluate items that are available === // ============================================== if (!env.isItemAvailable(pItem->type + WEAPONS)) { pItem->score = -100000; return; } DEBUG_LOG_AI(player->getName(), "Evaluating score for %s", item[pItem->type].getName()) // reset helper boolean pItem->escape = false; /* ------------------------------------------------------------- * --- 1) Set score for freeing capabilities while buried --- * ------------------------------------------------------------- */ double unbury_score = 0; if (buried > BURIED_LEVEL) { double bury_diff = buried - BURIED_LEVEL; double off_mod = (player->defensive - 1.5) / -2.; if (ITEM_TELEPORT == pItem->type) unbury_score = bury_diff * ai_level * off_mod // It is more valuable when the target is buried, // as it is not desirable to swap with them * (mem_curr->is_buried ? 3. : 1.); else if (ITEM_SWAPPER == pItem->type) unbury_score = bury_diff * ai_level * off_mod * 2. // If the target is buried, the swapper is no good. * (mem_curr->is_buried ? -50. : 2.); else if (ITEM_MASS_TELEPORT == pItem->type) unbury_score = bury_diff * ai_level * off_mod * 1.25; else if (ITEM_FAN == pItem->type) // at least the bot might think the usage is safe. unbury_score = bury_diff * static_cast(maxAiLevel + 1 - ai_level) * off_mod / 2.; else // Everything else is useless unbury_score = -5000.; // "escape" tool ? if ( (ITEM_TELEPORT <= pItem->type) && (ITEM_MASS_TELEPORT >= pItem->type) ) pItem->escape = true; } /* ------------------------------------------------------------- * --- 2) The wind direction change score for fans --- * ------------------------------------------------------------- */ double fan_score = 0.; if ( (ITEM_FAN == pItem->type) // The fan can only be considered useful if the bot has tail wind: && ( ( (mem_curr->opX > tank->x) && (global.wind > 0.) ) || ( (mem_curr->opX < tank->x) && (global.wind < 0.) ) ) ) { // First count how many other bots can have their turn until // this one will get its next chance: opEntry_t* check = mem_head; int32_t between = 0; while (check) { if ( (check->entry->opponent != player) && check->alive) ++between; check = check->next; } // Now look whether there is a mountain in between: int32_t check_x = ROUND(mem_curr->opX); int32_t checked = 0; int32_t direction = SIGN(global.wind) * -1; int32_t range_x = 10 * (ai_level + RAND_AI_0P); int32_t top_ledge = env.screenHeight; while ( (checked < range_x) && (check_x > 1) && (check_x < (env.screenWidth - 2)) ) { int32_t check_y = global.surface[check_x].load(ATOMIC_READ); if (check_y < top_ledge) top_ledge = check_y; check_x += direction; } // Now the score is a simple height difference modified by defensiveness // (The more defensive the player is, the more it is inclined to prepare // the next attack instead of pissing them of with a weak shot.) fan_score = static_cast(top_ledge - mem_curr->opY) * (player->defensive + ai_level_d); // However, the score is multiplied again with the count of opponents // that will have their try until this one gets its next shot. fan_score *= fan_score > 0. ? static_cast(ai_level - between) // normal multiplier : static_cast(between); // The more bots, the more useless. // However, if the bot already used the fan in the last round, // do not repeat, no matter what: if (last_weap == (ITEM_FAN + WEAPONS)) { DEBUG_LOG_EMO(player->getName(), "=> Reducing fan score %6.2lf to %62lf (no repeat)", fan_score, std::abs(fan_score * ai_level) * -1.); fan_score = std::abs(fan_score * ai_level) * -1.; } } // End of calculating a fan score /* ------------------------------------------------------------- * --- 3) Set score for self destruct probability --- * ------------------------------------------------------------- */ double selfde_score = 0.; if ( (mem_curr->opLife > (currLife * 10.)) || (isShocked && (mem_curr->opLife > (currLife * 5.))) ) { if ( (ITEM_VENGEANCE >= pItem->type) && (ITEM_FATAL_FURY <= pItem->type) ) { selfde_score = static_cast(pItem->type - ITEM_VENGEANCE + 1) * mem_curr->diffLife / (player->selfPreservation + .5); } } /* ------------------------------------------------------------- * --- 4) The "useless" score, for not usable items --- * ------------------------------------------------------------- */ double useless_score = 0.; if ( (ITEM_FATAL_FURY < pItem->type) && (ITEM_ROCKET != pItem->type) ) useless_score = -50000.; /// @todo : FUEL should be made available to the AI somehow. /* ------------------------------------------------------------- * --- 5) Sum up the score --- * --- This will be used for sorting the items list --- * ------------------------------------------------------------- */ double pref_score = pItem->preference / static_cast(ai_level * 10); double xScore = unbury_score + selfde_score + useless_score + fan_score; if (useless_score > -1.) { DEBUG_LOG_EMO(player->getName(), " preference : %6.2lf%s", pref_score, xScore > 1. ? "" : " (ignored)") DEBUG_LOG_EMO(player->getName(), " unbury_score : %6.2lf", unbury_score) DEBUG_LOG_EMO(player->getName(), " fan_score : %6.2lf", fan_score) DEBUG_LOG_EMO(player->getName(), " selfde_score : %6.2lf", selfde_score) DEBUG_LOG_EMO(player->getName(), " useless_score: %6.2lf", useless_score) } // Only add preferences if there is any use for the item: if (xScore > 1.) xScore += pref_score; pItem->score = ROUND(xScore); DEBUG_LOG_EMO(player->getName(), " Final Score : %8d", pItem->score) } /// @brief Set a new score to an opponents entry void AICore::updateOppScore(opEntry_t* pOpp) { sOpponent* entry = pOpp->entry; PLAYER* opponent = entry->opponent; TANK* oppTank = opponent->tank; DEBUG_LOG_AI(player->getName(), "Evaluating score for %s", opponent->getName()) /* Quickly handle dead tanks and the own entry */ if ( (player == opponent) || !oppTank || oppTank->destroy ) { entry->damage_from += entry->damage_last; entry->damage_last = 0; pOpp->score = (player == opponent) ? -2 : -1; DEBUG_LOG_AI(player->getName(), "%s%s", player == opponent ? "" : opponent->getName(), player == opponent ? "Not evaluating myself!" : " is dead and not selectable!") return; } /* ------------------------------------------------------------- * --- 1) Set up a fear value (if needed) --- * --- This is used to possibly trigger actions that may not --- * --- be wise but are imposed by a sudden surge of fear. --- * ------------------------------------------------------------- */ double fear_damage = 0.; double fear_shock = 0.; if (!pOpp->onSameTeam) { entry->fear_shock = 0.; // The higher the AI level, the more the taken over fear is // reduced. *But* the more defensive the player is, the less // it is reduced. (Even more on a lucky turn. ;-) // Ranges are from useless full defensive to deadly full offensive: // From: 2.5 + 1 - ( 1 + 1) => 3.5 - 2 => 1.5 (only one third reduced) // To : 2.5 + 5 - (-1 + 1) => 7.5 - 0 => 7.5 (~87% taken off) entry->fear /= 2.5 + ai_level_d - (player->defensive + 1.0); // Only add new fear if there was any damage if (entry->damage_last > 0) { fear_damage = player->painSensitivity * entry->damage_last; entry->fear += player->selfPreservation; } // first fear check: // If the AI can not stand the pain, the damage done is multiplied // with the fear value. This does not trigger any action, yet, but // the score will go up a lot. fear_shock = entry->fear - static_cast(RAND_AI_0P); if ( (fear_damage > 0.) && (fear_shock > 0.) ) { fear_damage *= entry->fear; DEBUG_LOG_EMO(player->getName(), "%s caused fear shock %lf with damage %u", opponent->getName(), fear_shock, ROUNDu(fear_damage)) // Is this the new shocker? if ( (nullptr == shocker) || (fear_shock > shocker->fear_shock) ) { DEBUG_LOG_EMO(player->getName(), "%s %s%s%s as new shocker", opponent->getName(), shocker ? "replaces" : "set", shocker ? " " : "", shocker ? shocker->opponent->getName() : "") shocker = entry; } } // End of having a fear shock entry->fear_shock = fear_shock; } // end of fear value handling /* ------------------------------------------------------------- * --- 2) Check damage for whether revenge is called for --- * ------------------------------------------------------------- */ double revenge_score = 0.; if ( (entry->damage_last > 0) && !pOpp->onSameTeam) { // First reduce the current damage accumulated. More for lower level bots. if (!pOpp->revengeDone) { DEBUG_LOG_EMO(player->getName(), "Current anger damage from %s: %d", opponent->getName(), entry->revenge_dmg) entry->revenge_dmg /= 4.5 - ai_type_mod; DEBUG_LOG_EMO(player->getName(), " --> Anger cooled down to : %d", entry->revenge_dmg) // Add current damage entry->revenge_dmg += entry->damage_last; DEBUG_LOG_EMO(player->getName(), " --> Anger raised again to : %d", entry->revenge_dmg) // Revenge damage handled: pOpp->revengeDone = true; } // Now see whether a new act of vengeance is initiated: if ( (entry->revenge_dmg > (player->vengeanceThreshold * maxLife)) && ( (rand() % 100) <= player->vengeful) ) { // Okay, the potential is there... revenge_score = static_cast(entry->damage_last * player->vengeful) / 100.; if ( (nullptr == revengee) || (entry->revenge_dmg > revengee->revenge_dmg) ) { // A new one! DEBUG_LOG_EMO(player->getName(), " --> [%d] %s %s%s for revenge!", entry->revenge_dmg, entry->opponent->getName(), revengee ? "replaces " : "is set ", revengee ? revengee->opponent->getName() : "") revengee = entry; } } } // end of revenge value handling /* ------------------------------------------------------------- * --- 3) Check opponents health compared to this tank --- * --- The more health they got, the more money can be made. --- * --- On the other hand, the bigger the difference, the --- * --- more impressive they are. --- * ------------------------------------------------------------- */ double life_score = 0.; if (pOpp->diffLife < 0.) { // The opponent has more health. This might impress the bot: if ( (rand() % static_cast(DEADLY_PLAYER)) < ai_level) { // No, there is nothing impressive with that... life_score = (player->defensive - 3.) / 2. * pOpp->diffLife; // Note: // Full Defensive : (-1 - 3) / 2 * -x => -4 / 2 * -x => -2 * -x = 2 * x // Full Offensive : ( 1 - 3) / 2 * -x => -2 / 2 * -x => -1 * -x = 1 * x // If the bot needs money, the opponents health might be added: if (needMoney && RAND_AI_0P) life_score += pOpp->opLife; } } else // Add points for their weakness, more if the bot is offensive life_score = (player->defensive + 3.) / 2. * pOpp->diffLife; // Note: // Full Defensive : (-1 + 3) / 2 * x => 2 / 2 * x = 1 * x // Full Offensive : ( 1 + 3) / 2 * x => 4 / 2 * x = 2 * x /* ------------------------------------------------------------- * --- 4) Add points for distance --- * --- The theory is, that weaker bots concentrate on nearer --- * --- enemies first, while stronger bots do not mind. --- * ------------------------------------------------------------- */ double dist_score = (static_cast(env.halfWidth) - pOpp->distance) / ai_level_d; /* ------------------------------------------------------------- * --- 5) Add points the easier the target is to be killed. --- * --- The easier, and cheaper, the better. But even much --- * --- better if this bot needs money. --- * ------------------------------------------------------------- */ double vict_score = 0.; double vict_mod = needMoney ? static_cast(8 - ai_level) : 1.; if (pOpp->opLife < blast_max) vict_score += vict_mod * (blast_max - pOpp->opLife) * 1. * ai_type_mod; if (pOpp->opLife < blast_big) vict_score += vict_mod * (blast_big - pOpp->opLife) * 2. * ai_type_mod; if (pOpp->opLife < blast_med) vict_score += vict_mod * (blast_med - pOpp->opLife) * 4. * ai_type_mod; if (pOpp->opLife < blast_min) vict_score += vict_mod * (blast_min - pOpp->opLife) * 8. * ai_type_mod; /* -------------------------------------------------------------- * --- 6) Add or dock points regarding AI level --- * --- More powerful opponents are targeted preferably, while --- * --- weaker ones are not considered to be such a threat. --- * --- Note: Human players are handled like the best AI --- * --- that is present in the game. --- * -------------------------------------------------------------- */ double level_score = 0.; if (!pOpp->onSameTeam) { if ( (HUMAN_PLAYER < opponent->type) && (LAST_PLAYER_TYPE > opponent->type) ) level_score = static_cast(opponent->type - player->type); else level_score = static_cast(bestType - player->type); // The higher the self preservation, the more urgent deadlier // bots are targeted to get them down early. if (level_score > 0.) level_score *= player->selfPreservation + 1.; // The more defensive the bot is, the more does it want to target // weaker opponents to not aggravate the stronger ones if (level_score < 0.) level_score *= player->defensive + 2.; // The more health this bots tank has, the more prominent is this score level_score = std::abs(level_score) * currLife; } /* ------------------------------------------------------------- * --- 7) Add points for score difference --- * --- Target the leading bots earlier, losing ones later. --- * ------------------------------------------------------------- */ double win_score = pOpp->onSameTeam ? 0. : (opponent->score - player->score) * (player->selfPreservation + 1.) * (player->defensive + 2.) * static_cast(ai_level + 1) * (static_cast(pOpp->opLife) / 10.) / (player->painSensitivity + 0.5); // Note: The win_score is only used if positive. // 1 - Self preservation: Get rid of the winner as a threat soon. // 2 - Defensiveness : Even more if of the defensive type. // 3 - The smarter the more they do care. // 4 - Multiply with 10% of the opponents tank life // 5 - Pain Sensitivity: Can they stand the answer? ( If this value // is lower than 0.5, they care so less, that the score is raised. Up // to a doubling is possible - If they really feel no pain.) // Maximum score: // deadly + 1 (lucky turn), maximum defensiveness and self preservation, painless: // (4 * 3 * 7) / 0.5 = 84 / 0.5 = 168 points per opponent health point and // round win difference. /* ------------------------------------------------------------- * --- 8) Sum up the score --- * --- This will be used for sorting the opponents list --- * ------------------------------------------------------------- */ double damage_score = entry->damage_from - entry->damage_to; double kill_score = (entry->killed_me - entry->killed_them) * maxLife; double last_score = entry->damage_last * type_mod; DEBUG_LOG_EMO(player->getName(), " team_mod : %6.2lf", pOpp->team_mod) DEBUG_LOG_EMO(player->getName(), " type_mod : %6.2lf", type_mod) DEBUG_LOG_EMO(player->getName(), " damage_score : %6.2lf", damage_score) DEBUG_LOG_EMO(player->getName(), " kill_score : %6.2lf", kill_score) DEBUG_LOG_EMO(player->getName(), " last_score : %6.2lf", last_score) DEBUG_LOG_EMO(player->getName(), " fear_damage : %6.2lf", fear_damage) DEBUG_LOG_EMO(player->getName(), " revenge_score: %6.2lf", revenge_score) DEBUG_LOG_EMO(player->getName(), " life_score : %6.2lf", life_score) DEBUG_LOG_EMO(player->getName(), " dist_score : %6.2lf", dist_score) DEBUG_LOG_EMO(player->getName(), " vict_score : %6.2lf", vict_score) DEBUG_LOG_EMO(player->getName(), " level_score : %6.2lf", level_score) DEBUG_LOG_EMO(player->getName(), " win_score : %6.2lf", win_score) double xScore = ( damage_score > 0. ? pOpp->team_mod * damage_score : 0. ) + ( kill_score > 0. ? pOpp->team_mod * kill_score : 0. ) + ( last_score > 0. ? pOpp->team_mod * last_score : 0. ) + ( fear_damage > 0. ? pOpp->team_mod * fear_damage : 0. ) + ( fear_shock > 0. ? fear_shock * fear_damage : 0. ) + ( revenge_score > 0. ? pOpp->team_mod * revenge_score : 0. ) + ( life_score > 0. ? pOpp->team_mod * life_score : 0. ) + ( vict_score > 0. ? pOpp->team_mod * vict_score : 0. ) + ( win_score > 0. ? win_score : 0. ) + dist_score + level_score; pOpp->score = ROUND(xScore); DEBUG_LOG_EMO(player->getName(), " Final Score : %8d", pOpp->score) // --- clean up damage_last --- if (entry->damage_last) { entry->damage_from += entry->damage_last; entry->damage_last = 0; } } /// @brief Set a new score to a weapons entry void AICore::updateWeapScore(weEntry_t* pWeap) { // As this is used a few dozen times, a shortcut to pWeap->type is nice: weaponType wType = pWeap ? static_cast(pWeap->type) : SML_MIS; // === Get out quickly if the chosen item is out of stock === // ========================================================== if (0 == pWeap->amount) { pWeap->score = -50000; return; } // === Only evaluate items that are available === // ============================================== if (!env.isItemAvailable(wType)) { pWeap->score = -100000; return; } DEBUG_LOG_AI(player->getName(), "Evaluating score for %s", weapon[wType].getName()) // reset boolean helpers pWeap->blastOut = false; pWeap->kamikaze = false; // === If no opponent is chosen (however this may happen) then === // === the pure preferences count. === // =============================================================== if (nullptr == mem_curr) { pWeap->score = pWeap->preference; DEBUG_LOG_AI(player->getName(), " -> Use preference %d", pWeap->preference) return; } // === If this is a laser, it will only be evaluated if the tank is === // === not below this players tanks as it can not be reached then. === // ==================================================================== if ( (SML_LAZER <= wType) && (LRG_LAZER >= wType) && (mem_curr->opY > y) ) { pWeap->score = -45000; DEBUG_LOG_AI(player->getName(), " -> Target y %d is not reachable from %d", ROUND(mem_curr->opY), ROUND(y)) return; } // === If this is the percent bomb, reducer or theft bomb, its === // === damage must be adapted, as it depends on the selected === // === target and/or current capabilities. === // ================================================================ if (PERCENT_BOMB == wType) { pWeap->dmgCluster = 0.; pWeap->dmgSingle = mem_curr->opLife / 2; pWeap->dmgSpread = pWeap->dmgSingle; } // === The same applies to the reducer === if (REDUCER == wType) { pWeap->dmgCluster = 0.; pWeap->dmgSingle = (mem_curr->opLife / 2.) * (mem_curr->entry->opponent->damageMultiplier / 2.) * (player->painSensitivity + ai_over_mod) / (-1. * (player->defensive - 1.25 - ai_over_mod)); pWeap->dmgSpread = pWeap->dmgSingle; } // === And the theft bomb === int32_t theft_size = static_cast(player->damageMultiplier * THEFT_AMOUNT); if (THEFT_BOMB == wType) { double steal_amount = std::min(mem_curr->entry->opponent->money, theft_size); pWeap->dmgCluster = 0.; pWeap->dmgSingle = ROUND(steal_amount / ai_level_d); pWeap->dmgSpread = pWeap->dmgSingle; } /* ------------------------------------------------------------- * --- 1) Set score for reaching the target health --- * ------------------------------------------------------------- */ double weap_dmg = 0.; // Filled here, used for splash score, too double dmg_diff = 0.; double point_score = mem_curr->opLife; // If the bot is shocked, spread and cluster weapons get a bonus: double shock_bonus = isShocked ? static_cast(maxAiLevel - ai_level) + ai_over_mod : 1.; if (pWeap->dmgCluster > 1.) { weap_dmg = pWeap->dmgCluster; dmg_diff = (weap_dmg / ai_over_mod) - point_score; if (dmg_diff > 0.) dmg_diff *= shock_bonus; } else if (pWeap->dmgSpread > (pWeap->dmgSingle + 0.25) ) { weap_dmg = pWeap->dmgSpread; dmg_diff = (weap_dmg / (ai_over_mod / 2.)) - point_score; if (dmg_diff > 0.) dmg_diff *= shock_bonus; } else if (pWeap->dmgSingle > 1.) { weap_dmg = pWeap->dmgSingle; dmg_diff = weap_dmg / ai_over_mod - (THEFT_BOMB == wType ? mem_curr->entry->opponent->money : point_score); } else dmg_diff = -point_score; if (dmg_diff < 0.) // Too less damage point_score += dmg_diff; else if (dmg_diff > 0.) // Otherwise chop off a modified difference point_score -= dmg_diff / ( -(player->defensive - 2.5) // 3.5 full offensive, 2.5 full defensive * ai_over_mod ); // the higher the level, the more the reduction. // If this is a REDUCER, THEFT_BOMB or dirt weapon, and the fake damage is // higher than the target health, modify the score. The AI wants // to finish off the almost dead and not debuff them if ( (REDUCER == wType) || (THEFT_BOMB == wType) || ( (DIRT_BALL <= wType) && (SMALL_DIRT_SPREAD >= wType) ) ) { if (mem_curr->opLife <= blast_min) point_score = 0; else if (mem_curr->opLife <= blast_med) point_score /= static_cast(ai_level + 3); else if (mem_curr->opLife <= blast_big) point_score /= static_cast(ai_level + 1) / ai_over_mod; else if (dmg_diff > 0.) point_score /= ai_over_mod; } // If this is the theft bomb, but we do not need money urgently, // reduce the score if ( (THEFT_BOMB == wType) && !needMoney) point_score /= ai_level_d + ai_over_mod; /* ------------------------------------------------------------- * --- 2) check buried state, shaped charges and the driller --- * --- might still be usable. --- * ------------------------------------------------------------- */ double unbury_score = 0.; if (buried > BURIED_LEVEL) { // Shaped charges refer to the y coordinate if ( (SHAPED_CHARGE <= wType) && (CUTTER >= wType) && (std::abs(mem_curr->opY - y) < (weapon[wType].radius / 20)) && (mem_curr->distance < weapon[wType].radius) ) // This one is usable. unbury_score = pWeap->dmgSingle * ai_over_mod; // The driller is only usable in a vertical way: else if ( (DRILLER == wType) && (std::abs(mem_curr->opX - x) < (weapon[wType].radius / 20)) && (mem_curr->distance < weapon[wType].radius) ) unbury_score = pWeap->dmgSingle * ai_over_mod; // Riot bombs and charges are the ultimate tools, of course else if ( ( (RIOT_CHARGE <= wType) && (RIOT_BLAST >= wType) ) ||( (RIOT_BOMB <= wType) && (HVY_RIOT_BOMB >= wType) ) ) unbury_score = ai_type_mod * static_cast(weapon[wType].radius) * static_cast(buried - BURIED_LEVEL + ai_level); // Everything else is (mostly) useless else { if (pWeap->dmgCluster > 1.) unbury_score -= ai_type_mod * pWeap->dmgCluster * pWeap->dmgSingle; else { unbury_score -= ai_type_mod * (pWeap->dmgSpread + pWeap->dmgSingle); // However, if the target is in range and a self hit would not // kill our own tank... if ( (mem_curr->distance < weapon[wType].radius) && (currLife > pWeap->dmgSingle) && (currLife > pWeap->dmgSpread) ) unbury_score += ai_over_mod * pWeap->dmgSingle / player->selfPreservation; } } // End of "useless" weapons if (unbury_score > 1.) pWeap->blastOut = true; } // End of unbury score. // If not buried, riot weapons are useless: else if ( ( (RIOT_CHARGE <= wType) && (RIOT_BLAST >= wType) ) ||( (RIOT_BOMB <= wType) && (HVY_RIOT_BOMB >= wType) ) ) unbury_score = -50000.; /* ------------------------------------------------------------- * --- 3) Panic score - If this bot has panicked, the more --- * --- damage the better. --- * ------------------------------------------------------------- */ double panic_score = 0.; if (isShocked && (mem_curr->entry == shocker) && (buried <= BURIED_LEVEL) ) { panic_score = pWeap->dmgCluster > 1. ? pWeap->dmgCluster : pWeap->dmgSpread; // If this is a debuffing weapon like reducer or percent bomb, // it is valued even higher. if (REDUCER == wType) panic_score += mem_curr->entry->opponent->damageMultiplier * mem_curr->opLife * player->selfPreservation; else if (PERCENT_BOMB == wType) panic_score += pWeap->dmgSingle / player->selfPreservation; else if ((DIRT_BALL <= wType) && (SMALL_DIRT_SPREAD >= wType)) panic_score += weapon[wType].radius * weapon[wType].spread * (1.5 + player->defensive); else if (THEFT_BOMB == wType) panic_score += pWeap->dmgSingle * player->selfPreservation; } /* ---------------------------------------------------------------------- * --- 4) Score for reaching buried opponents. --- * --- If an opponent is buried, burrowers and tremors are useful. --- * ---------------------------------------------------------------------- */ double dig_score = 0.; if ( mem_curr->is_buried || ( (mem_curr->opX > x) && (mem_curr->buried_l >= BURIED_LEVEL_HALF) ) || ( (mem_curr->opX < x) && (mem_curr->buried_r >= BURIED_LEVEL_HALF) ) ) { // Chain weapons can push through dirt, but are bad when the own tank // is buried. if ( (CHAIN_GUN <= wType) && (JACK_HAMMER >= wType) ) dig_score = pWeap->dmgSingle * static_cast(weapon[wType].getDelayDiv()) / (1.75 + player->defensive) * (buried > BURIED_LEVEL ? -1. : 1.); // Burrowers can actually directly reach the target else if ( (BURROWER <= wType) && (PENETRATOR >= wType) ) dig_score = pWeap->dmgSingle * ai_type_mod; // tremors are somewhat weak, but the do not only (possibly) reach // the target but remove dirt as well. else if ( (TREMOR <= wType) && (TECTONIC >= wType) ) dig_score = (pWeap->dmgSingle + weapon[wType].radius) * ai_over_mod * (2.1 + player->defensive); // Riot bombs are useful to undig an opponent as well. else if ( (RIOT_BOMB <= wType) && (HVY_RIOT_BOMB >= wType) ) dig_score = weapon[wType].radius // Note: pain sensitivity is used, as not doing any // damage won't trigger a vengeance reaction. * (1. + player->defensive + player->painSensitivity); // remember that this is chosen for blasting out an opponent: if (dig_score > 1.) pWeap->blastOut = true; } /* -------------------------------------------------------------- * --- 5) Splash damage --- * --- Check all tanks whether they are in "splash range" and --- * --- add or dock points according to the team_mod value of --- * --- the hit tanks. This score can be negative and is meant --- * --- to help bots to decide against oversized weapons if --- * --- good working alternatives are present. --- * -------------------------------------------------------------- */ double splash_score = 0.; double money_made = 0.; // build here, used below double money_cost = 0.; // build here, used below if (buried <= BURIED_LEVEL) { opEntry_t* op = mem_head; // Always assume a full direct hit: double xhit = mem_curr->opX; double yhit = mem_curr->opY; // The minimum in_rate depends on the defensive level. EXPLOSION takes // different values for the shaped weapons and tectonics. Further the // full rate limit is 10% damage. The bot does not calculate minimum // axis rates, and the full rate limit might become lower or higher than // this 10%. This is wanted as bots "only estimate". double rate_limit = (player->defensive + .75) / 10.; // result: Over-offensive Sith: (-1.25 + 0.75) / 10. => 0.5 / 10. => 5% // Over-defensive Jedi: ( 1.25 + 0.75) / 10. => 2.0 / 10. => 20% while (op) { // Do not evaluate the target, as it will get the hit anyway if (op == mem_curr) { op =op->next; continue; } // Yield on each iteration to not hog the CPUs if (!global.skippingComputerPlay) std::this_thread::yield(); PLAYER* pl = op->entry->opponent; TANK* lt = pl ? pl->tank : nullptr; // short cut if (!lt || lt->destroy || (op->opLife < 1.)) { // irrelevant op = op->next; continue; } double weap_rad = weap_curr->radius; double xrad = DRILLER == wType ? weap_rad / 20. : weap_rad; double yrad = ( (SHAPED_CHARGE <= wType) && (CUTTER >= wType) ) ? weap_rad / 20. : weap_rad; double in_rate_x = 0.; double in_rate_y = 0.; if (lt->isInEllipse(xhit, yhit, xrad, yrad, in_rate_x, in_rate_y)) { double in_rate = in_rate_x * in_rate_y; if (in_rate < rate_limit) in_rate = rate_limit; double score = std::min(weap_dmg * in_rate, op->opLife) * op->team_mod; // Do not overdo positive scores if (score >= 0) // Note: That is [1.1;4.8] score /= ai_over_mod * static_cast((ai_level + 1) / 2); splash_score += score; DEBUG_LOG_EMO(player->getName(), "%s in splash range, %s %d points", pl == player ? "I am" : pl->getName(), score > 0 ? "add " : "dock", std::abs(ROUND(score))) // Note down money made or cost: if (THEFT_BOMB == wType) { double theft_done = std::min(in_rate * theft_size, static_cast(op->entry->opponent->money)); if (op->team_mod > 0.) money_made += theft_done; else if (lt != tank) // No effect on self! money_cost += theft_done / (10. - ai_level_d); } else { if (op->team_mod > 0.) money_made += ( std::min(weap_dmg * in_rate, op->opLife) * static_cast(env.scoreHitUnit) ) + ( (weap_dmg * in_rate) >= op->opLife ? static_cast(env.scoreUnitDestroyBonus) : 0.); else if (lt == tank) money_cost += ( std::min(weap_dmg * in_rate, currLife) * static_cast(env.scoreSelfHit) ) + ( (weap_dmg * in_rate) >= currLife ? static_cast(env.scoreUnitSelfDestroy) : 0.); else money_cost += ( std::min(weap_dmg * in_rate, op->opLife) * static_cast(env.scoreTeamHit) ) + ( (weap_dmg * in_rate) >= op->opLife ? static_cast(env.scoreUnitSelfDestroy) : 0.); } // End of regular weapon check } // End of opponent in explosion op = op->next; } // End of looping opponents memory } // end of calculating splash damage score /* ------------------------------------------------------------- * --- 6) Kamikaze potential --- * --- If the bot decides to self destruct, it is important --- * --- to check what this weapon would do. --- * ------------------------------------------------------------- */ double selfde_score = 0.; if ( (mem_curr->opLife > (currLife * 10.)) || (isShocked && (mem_curr->opLife > (currLife * 5.))) ) { // Only some weapons are considered for a big boom bye bye if ( ( (SML_NUKE <= pWeap->type) && (DTH_HEAD >= pWeap->type) ) || ( (WIDE_BOY == pWeap->type) || (CUTTER == pWeap->type) ) || ( (MED_NAPALM == pWeap->type) || (LRG_NAPALM == pWeap->type) ) ) { double kRad = pWeap->radius; double kDmg = pWeap->dmgSingle; // for a kamikaze, the shaped weapons have to be shot somewhat to // the side, so extend the radius if this tank is not buried, or // reduce it to zero if it is. if ((WIDE_BOY == pWeap->type) || (CUTTER == pWeap->type)) { if (buried >= (BURIED_LEVEL / ai_level)) kRad = 0.; else kRad += 50. * ai_over_mod; } // The same counts for the napalm, although it does not really have // a radius. This must be estimated according to the current wind. else if ((MED_NAPALM == pWeap->type) || (LRG_NAPALM == pWeap->type)) { if (buried >= (BURIED_LEVEL / ai_level)) kRad = 0.; else { kRad = std::abs(global.wind / (env.windstrength / 4.)) + 1.; /* This produces the following multiplier: (with max wind = 8) * wind = 0 : (0 / (8 / 4)) + 1 = (0 / 2) + 1 = = 1 * wind = 1 : (1 / (8 / 4)) + 1 = (1 / 2) + 1 = = 1.5 * wind = 4 : (4 / (8 / 4)) + 1 = (4 / 2) + 1 = = 3 * wind = 6 : (6 / (8 / 4)) + 1 = (6 / 2) + 1 = = 4 * wind = 8 : (8 / (8 / 4)) + 1 = (8 / 2) + 1 = = 5 */ kRad *= weapon[pWeap->type].launchSpeed / ai_level; // Napalm is a cluster, but not everything will hit kDmg = pWeap->dmgCluster / ai_level_d; } } // Check against collateral damage unless shocked and the shocker is // in range bool tgt_in_range = false; if ( isShocked && (mem_curr->entry == shocker) // can this be false? && (mem_curr->distance < kRad) ) { // No check, just do it selfde_score = (pWeap->dmgCluster + pWeap->dmgSingle) * ai_over_mod; tgt_in_range = true; } else { // Nope, be reasonable selfde_score = kDmg; sOppMemEntry* check = mem_head; while (check) { // Yield on each iteration to not hog the CPUs if (!global.skippingComputerPlay) std::this_thread::yield(); if ( (check->opLife > 0.) && (check->distance < kRad) ) { if (check->onSameTeam) selfde_score -= kDmg * ai_type_mod * ( 1.25 + player->defensive); else selfde_score += kDmg * ai_over_mod * check->team_mod; // Award extra points if this is the current target if (mem_curr == check) { selfde_score += check->opLife * check->team_mod; tgt_in_range = true; } } check = check->next; } } // End of checking done damage // Now, if the score is positive, this is a kamikaze choice: if ( (selfde_score > 0.) && tgt_in_range) pWeap->kamikaze = true; } else if (THEFT_BOMB == pWeap->type) // In such a situation a (non-aggravating!) theft might // be considered useful the more defensive and self preservative // a bot is. selfde_score = pWeap->dmgSingle * ai_type_mod * (2. + player->defensive + player->selfPreservation); else // Unsuitable selfde_score -= pWeap->dmgSpread * ai_type_mod; } /* ------------------------------------------------------------- * --- 7) Economic evaluation --- * --- If the maximum damage bounty the weapon can generate --- * --- is lower than the weapon score, points are docked. --- * --- Generating more money than the weapon is worth adds --- * --- some bonus points. --- * ------------------------------------------------------------- */ double eco_score = 0.; double money_mod = needMoney ? ai_type_mod : (static_cast(RAND_AI_1P + 1) * 10.); double money_diff = money_made - money_cost; if (!isShocked) { // Note: Shocked bots do not care about money! if ( money_diff >= weapon[pWeap->type].cost) eco_score += (money_made / money_mod) - (money_cost / money_mod); else eco_score -= money_diff / money_mod; } /* ------------------------------------------------------------- * --- 8) Sum up the score --- * --- This will be used for sorting the weapons list --- * ------------------------------------------------------------- */ double pref_score = pWeap->preference / ai_level_d / (std::abs(dmg_diff) > 1. ? std::abs(dmg_diff) : 1.); // the further away, the less likely. DEBUG_LOG_EMO(player->getName(), " preference : %6.2lf", pref_score) DEBUG_LOG_EMO(player->getName(), " point_score : %6.2lf [diff %6.2lf]", point_score, dmg_diff) DEBUG_LOG_EMO(player->getName(), " unbury_score : %6.2lf", unbury_score) DEBUG_LOG_EMO(player->getName(), " panic_score : %6.2lf", panic_score) DEBUG_LOG_EMO(player->getName(), " splash_score : %6.2lf", splash_score) DEBUG_LOG_EMO(player->getName(), " selfde_score : %6.2lf", selfde_score) DEBUG_LOG_EMO(player->getName(), " dig_score : %6.2lf", dig_score) DEBUG_LOG_EMO(player->getName(), " eco_score : %6.2lf (M %6.2lf / C -%6.2lf / D %6.2lf)", eco_score, money_made, money_cost, money_diff) double xScore = pref_score + point_score + unbury_score + panic_score + splash_score + selfde_score + dig_score + eco_score; pWeap->score = ROUND(xScore); DEBUG_LOG_EMO(player->getName(), " Final Score : %8d", pWeap->score) } /** @brief Select a tool to free the tank or clear a path * @param[in] free_tank If set to true, a tool to free the tank is chosen, * a tool to clear the path otherwise. * @param[in] is_last If set to true, an emergency selection is done to force * this method to succeed. * @return true if the selection succeeded, false otherwise. **/ bool AICore::useFreeingTool(bool free_tank, bool is_last) { // If the current weapon is already used to blast out // an opponent, no other tool is needed. if (!free_tank && weap_curr && weap_curr->blastOut) return true; if ( ( free_tank && ( useWeapon(RIOT_BLAST) || useWeapon(RIOT_CHARGE) ) ) || useWeapon(HVY_RIOT_BOMB) || useWeapon(RIOT_BOMB) || (!free_tank && ( useWeapon(CHAIN_GUN) || useWeapon(DRILLER) || useWeapon(CHAIN_MISSILE) ) ) || (free_tank && ( useItem(ITEM_TELEPORT) // Note: No mass teleport here! || ( !mem_curr->is_buried && useItem(ITEM_SWAPPER) ) ) ) ) { DEBUG_LOG_AIM(player->getName(), "Selected %s to %s", weap_idx < WEAPONS ? weapon[weap_idx].getName() : item[weap_idx - WEAPONS].getName(), free_tank ? "free my tank" : "clear firing path") return true; } // If the "normal" selection is not possible (out of stock) // but this is the last try, the bot has to revert to standard // missiles. Expensive, but should work. else if ( is_last && ( ( !free_tank && ( useWeapon(SML_NUKE) || useWeapon(LRG_MIS) || useWeapon(MED_MIS) ) ) || useItem(ITEM_TELEPORT) || ( useItem(ITEM_SWAPPER) && !mem_curr->is_buried ) || useItem(ITEM_MASS_TELEPORT) // As a last resort this is okay. || useWeapon(SML_MIS) ) ) { DEBUG_LOG_AIM(player->getName(), "(LAST) Selected %s to %s", weap_idx < WEAPONS ? weapon[weap_idx].getName() : item[weap_idx - WEAPONS].getName(), free_tank ? "free my tank" : "clear firing path") return true; } return is_last; } /// @brief explicitly select @a item_type, returns true if available and chosen. bool AICore::useItem (itemType item_type) { if (env.isItemAvailable(item_type) && (player->ni[item_type] > 0)) { item_curr = item_head; while (item_curr && (item_curr->type != item_type)) item_curr = item_curr->next; if (item_curr && (item_curr->type == item_type)) { weap_idx = WEAPONS + item_type; weap_curr = nullptr; return true; } else if (weap_curr) item_curr = nullptr; } return false; } /// @brief convenience function to use the full index as an integer to choose /// an item. Full index means the value is beyond the WEAPONS constant. bool AICore::useItem(int32_t item_index) { if ( (item_index >= WEAPONS) && (item_index < THINGS) ) return useItem(static_cast(item_index - WEAPONS)); return false; } /// @brief explicitly select @a weapon_type, returns true if available and chosen. bool AICore::useWeapon (weaponType weap_type) { if (env.isItemAvailable(weap_type) && (player->nm[weap_type] > 0)) { weap_curr = weap_head; while (weap_curr && (weap_curr->type != weap_type)) weap_curr = weap_curr->next; if (weap_curr && (weap_curr->type == weap_type)) { weap_idx = weap_type; item_curr = nullptr; return true; } else if (item_curr) weap_curr = nullptr; } return false; } /// @brief convenience function to use the numeric index as an integer to choose /// a weapon. bool AICore::useWeapon(int32_t weap_index) { if (weap_index < WEAPONS) return useWeapon(static_cast(weap_index)); return false; } /// @brief Call this once the AI weapon is fired to signal the end of the /// players turn void AICore::weapon_fired() { if (isWorking && !isStopped && (PS_FIRE == plStage)) { DEBUG_LOG_AI(player->getName(), "------------------------------", 0) DEBUG_LOG_AI(player->getName(), " Weapon fired for %s", player->getName()) lguard_t guard(actionMutex); plStage = PS_CLEANUP; actionCondition.notify_one(); } } /** @brief Attempt to move the tank * * @return true if the tank was moved **/ bool AICore::moveTank() { /* Moving the AI tank is easy. Just set the command and wait for the * main thread to react. * However, where shall the tank move and what distance? * * - If the target is very near (under two bitmap widths) then move * away. * Otherwise: * - If the angle is steep (75° and up), assume the shot must go * over a hill and move away from the target. * - If the angle is flat (15° and down), move towards the target, * the way seems clear at least. * Otherwise: * - If the overshoot is negative (too short), move towards the target. * - If the overshoot is positive (too far), move away from the target. */ double min_dist = tank->getDiameter() + mem_curr->entry->opponent->tank->getDiameter(); int32_t want_dist = 0; // Eventually move in this direction ... int32_t want_dir = 0; // ... by this amount if (mem_curr->distance < min_dist) { // The first case: we are too near and want to move away want_dir = mem_curr->opX > x ? DIR_LEFT : DIR_RIGHT; want_dist = want_dir * (min_dist - mem_curr->distance + RAND_AI_1P); } else if ( (curr_angle <= 195) && (curr_angle >= 165) ) { // The second case, the angle is steep want_dir = mem_curr->opX > x ? DIR_LEFT : DIR_RIGHT; want_dist = want_dir * ( 20 - std::abs(180 - curr_angle) + RAND_AI_1P); } else if ( (curr_angle <= 105) || (curr_angle >= 255) ) { // The third case, the angle is very flat want_dir = mem_curr->opX > x ? DIR_RIGHT : DIR_LEFT; want_dist = want_dir * ( std::abs(curr_angle - 180) - 70 + RAND_AI_1P); } else { // Last two cases use the overshoot as a distance to use want_dist = best_overshoot != MAX_OVERSHOOT ? best_overshoot : curr_overshoot; want_dir = SIGN(want_dist); // "tune" the distance want_dist += RAND_AI_1P * want_dir; } // Now that direction and distance are set up, go for it. bool tank_was_moved = false; DEBUG_LOG_AIM(player->getName(), "Starting to move %s for %d", DIR_LEFT == want_dir ? "left" : "right", want_dist) while (!isStopped && canMove.load(ATOMIC_READ) && want_dist) { isMovedBy.store(0, ATOMIC_WRITE); plStage = DIR_LEFT == want_dir ? PS_MOVE_LEFT : PS_MOVE_RIGHT; // Wait for the move to happen while ( !isStopped && canMove.load(ATOMIC_READ) && (0 == isMovedBy.load(ATOMIC_READ))) std::this_thread::yield(); // Do not do double moves! plStage = PS_AIM; if (!tank_was_moved && isMovedBy.load(ATOMIC_READ)) tank_was_moved = true; want_dist -= isMovedBy.load(ATOMIC_READ); } // That's it, really! // No matter how much movement was done, this tank // won't move again in this turn. canMove.store(false, ATOMIC_WRITE); // However, if the tank was moved, all distances are different now: if (tank_was_moved) { // Update current position x = tank->x; y = tank->y; // Update all distances opEntry_t* op = mem_head; while (op) { if ( op->entry->opponent->tank && !op->entry->opponent->tank->destroy ) op->distance = FABSDISTANCE2(x, y, op->opX, op->opY); op = op->next; } } DEBUG_LOG_AIM(player->getName(), "Moving finished %s (%d distance left)", want_dist ? "incompletely" : "successfully", want_dist) return tank_was_moved; } /// @brief Core threading operator void AICore::operator()() { while (canWork && !isStopped) { // Go to sleep until the thread is woken up luniq_t actionLock(actionMutex); actionCondition.wait(actionLock, [this]{ return (isWorking || isStopped); } ); // If the thread is to be stopped, exit the loop if (isStopped) // Cleaner than "break", but only on a philosophical level... ;-) continue; if (!initialize()) { plStage = PS_AI_IS_IDLE; isWorking = false; continue; } // -------------------------------------------------------------------- // --- First update the foe list, only then a target can be picked- --- // -------------------------------------------------------------------- checkOppMem(); // ----------------------------------------------------------------- // --- See whether the bot falls for a fear shock. --- // --- If they are mortally afraid of a shocker, no other target --- // --- will be picked. It is fixed on that one then. --- // ----------------------------------------------------------------- if (shocker) { DEBUG_LOG_EMO(player->getName(), "Terrified by %s (fear shock: %lf)", shocker->opponent->getName(), shocker->fear_shock) double reshock = shocker->fear - (static_cast(RAND_AI_0P + 2) / 2.); if (reshock >= shocker->fear_shock) { isShocked = true; // Generate a nice message telling the world that we are in awe: if (!isStopped && !global.skippingComputerPlay) { const char* text = player->selectPanicPhrase(shocker->opponent); try { if (text) { // Wait for the AI to be allowed to create texts while (!textAllowed.load(ATOMIC_READ)) std::this_thread::yield(); // Now create the instance new FLOATTEXT(text,x, y - 30, .0, -.4, player->color, CENTRE, TS_NO_SWAY, 150, false); } } catch (...) { perror ( "aicore.cpp: Failed to allocate memory for" " panic text in operator()."); } if (text) free(const_cast(text)); } DEBUG_LOG_EMO(player->getName(), "Shock confirmed with %lf over %lf", reshock, shocker->fear_shock) } else { isShocked = false; DEBUG_LOG_EMO(player->getName(), "Overcame shock with %lf under %lf", reshock, shocker->fear_shock) } } // --------------------------------------------------- // --- Set basic behaviour values --- // --- Done here and not in initialize so the full --- // --- shock check is already done. --- // --------------------------------------------------- findOppAttempts = ai_level; findRngAttempts = ai_level; findTgtAttempts = ai_level; findWeapAttempts= ai_level; focusRate = ai_level; errorMultiplier = static_cast(maxAiLevel + 1 - ai_level) / static_cast(findRngAttempts); maxBounce = ai_level; /* The results should be [if shocked]: * findOppAttempts : Useless 3 [2], Deadly + 1: 8 [4] * findRngAttempts : Useless: 10 [2], Deadly + 1: 60 [7] * findTgtAttempts : Useless: 2 [1], Deadly + 1: 7 [1] * findWeapAttempts: Useless: 2 [1], Deadly + 1: 12 [2] * focusRate : Useless: 0.166, Deadly + 1: 1.0 * errorMultiplier : Useless: 1.2 [3], Deadly + 1: 0.02 [0.14] * maxBounce : Useless: 3, Deadly + 1: 20 */ DEBUG_LOG_AI(player->getName(), "AI Level : %d (%s)", ai_level, getLevelName(ai_level)) DEBUG_LOG_AI(player->getName(), "type_mod : %4.3lf", type_mod) DEBUG_LOG_AI(player->getName(), "errorMultiplier: %4.3lf", errorMultiplier) DEBUG_LOG_AI(player->getName(), "findOppAttempts: %d", findOppAttempts) DEBUG_LOG_AI(player->getName(), "findRngAttempts: %d", findRngAttempts) DEBUG_LOG_AI(player->getName(), "findTgtAttempts: %d", findTgtAttempts) DEBUG_LOG_AI(player->getName(), "focusRate : %4.3lf", focusRate) DEBUG_LOG_AI(player->getName(), "maxBounce : %d", maxBounce) DEBUG_LOG_AI(player->getName(), "needMoney : %s", needMoney ? "Yes" : "No") // ------------------------------------------------------------------ // --- The full cycle of target selection, weapon/item selection, --- // --- setting up the basic combat values and targeting the --- // --- selected weapon might need a few attempts. The higher the --- // --- AI level, the more attempts the bot gets. If the maximum --- // --- number of attempts is reached, all used methods are forced --- // --- to come up with a minimum result. --- // ------------------------------------------------------------------ int32_t tgt_attempts = 0; int32_t opp_attempts = 0; int32_t weap_attempts = 0; bool done = false; while (canWork && isWorking && !isStopped && (needAim || !isBlocked) // End if a free is needed && (tgt_attempts < findTgtAttempts) ) { // Yield on each iteration to not hog the CPUs if (!global.skippingComputerPlay) std::this_thread::yield(); // ---------------------------------------------------------- // --- 1) Cycle target and item selection. --- // --- Those are combined, because selecting a different --- // --- target later might make the current item selection --- // --- less effective or even useless. Thus the item is --- // --- chosen individually. --- // ---------------------------------------------------------- if (!opp_attempts && !weap_attempts) { ++tgt_attempts; mem_curr = nullptr; DEBUG_LOG_AIM(player->getName(), "Starting setup %d / %d", tgt_attempts, findTgtAttempts) } done = setupAttack(tgt_attempts == findTgtAttempts, opp_attempts, weap_attempts); // ---------------------------------------------------------- // --- 2) Calculate basic attack values. --- // --- If the target and item selection is different than --- // --- in the last round, new basic values must be --- // --- calculated. If the selections are what this player --- // --- had in the last round, this won't be needed. Just --- // --- continue were we left off last round. --- // ---------------------------------------------------------- if (done) done = calcAttack(tgt_attempts); // ---------------------------------------------------------- // --- 3) Aim the current selection --- // ---------------------------------------------------------- if (done && needAim && !isBlocked) done = aim((tgt_attempts == findTgtAttempts) && needSuccess, // is last? opp_attempts >= (findOppAttempts / 2) ); // allowed to move? else if (!needAim || isBlocked) { DEBUG_LOG_AIM(player->getName(), "No aiming done: %s, %s", needAim ? "Aiming needed" : "Aiming NOT needed", isBlocked ? "shot is blocked" : "Shot is NOT blocked") } // ------------------------------------------------------ // --- 4) If this round was successful, check whether --- // --- A new best setup is found --- // ------------------------------------------------------ if (done) { // Reset opponent and weapon attempts if a positive score // was achieved and the AI has tried enough items or the // opponent selection is finished. if (best_round_score > 0) { if ( (weap_attempts > ai_level) || (opp_attempts == findOppAttempts) ) { opp_attempts = 0; weap_attempts = 0; } // Tweak the score if the primary target was hit: if (best_prime_hit) { // add the weapon and opponent score, so attacks, even // if they are not perfect, get emphasized if the preferred // setup is chosen: if ( mem_curr && revengee && (player != mem_curr->entry->opponent) ) best_round_score += mem_curr->score / (revengee == mem_curr->entry ? ai_level : ai_level * 10); if (weap_curr && (weap_curr->dmgSingle > 0) ) best_round_score += weap_curr->score / (ai_level * 10); } } // End of having a best_round_score greater than zero // Note down best setup score and settings if better or // forced to succeed due to last attempt condition bool new_best_setup_score = (best_round_score > best_setup_score); if ( ( ( new_best_setup_score && best_prime_hit) || ( !best_setup_prime && (new_best_setup_score || best_prime_hit) ) ) || ( (NEUTRAL_ROUND_SCORE == best_setup_score) && (tgt_attempts == findTgtAttempts) && needSuccess) ) { best_setup_angle = curr_angle; best_setup_damage = mem_curr->dmgDone; best_setup_item = item_curr; best_setup_mem = mem_curr; best_setup_overshoot = best_overshoot; best_setup_power = curr_power; best_setup_prime = best_prime_hit; best_setup_weap = weap_curr; DEBUG_LOG_AIM(player->getName(), "New best setup with angle %d, power %d using %s : (%d > %d)", GET_DISP_ANGLE(curr_angle), curr_power, weap_idx < WEAPONS ? weapon[weap_idx].getName() : item[weap_idx - WEAPONS].getName(), best_round_score, best_setup_score) best_setup_score = best_round_score; // This targeting round is definitely over opp_attempts = 0; weap_attempts = 0; if ( needSuccess && best_setup_prime && (best_setup_score > 0) ) // There is no need to force anything any more: needSuccess = false; // Give feedback according to what has happened if ( (best_round_score > 0) && best_prime_hit ) showFeedback("!!!", GREEN, -.5, TS_NO_SWAY, 150); else showFeedback("!", GREEN, -.6, TS_HORIZONTAL, 120); } else if (needSuccess) showFeedback("?", RED, -.7, TS_HORIZONTAL, 90); } // End of setup score handling } // End of full preparation cycle // --------------------------------------------------------- // --- If the revengee has been changed due to the score --- // --- considerations, write back the new victim: --- // --------------------------------------------------------- if (revengee && (revengee->opponent != player->revenge)) { if (revengee->opponent != player) player->revenge = revengee->opponent; else revengee = nullptr; } else if (!revengee) player->revenge = nullptr; // -------------------------------------------- // --- If no real setup could be found, see --- // --- whether a freeing attempt is needed. --- // -------------------------------------------- if (!isStopped && !isShocked && !isBlocked // If these fail, aim() already has set up && needAim // a freeing attempt. Do not do it twice! && best_setup_weap && ( (best_setup_score < 0) || ( (0 == best_setup_score ) && RAND_AI_0P) ) ) { DEBUG_LOG_AIM(player->getName(), "Best setup score %d too low!", best_setup_score) // First, copy best noted data (if any) if (NEUTRAL_ROUND_SCORE != best_setup_score) { curr_angle = best_setup_angle; curr_power = best_setup_power; } // Now see whether to unbury or clear the path: if ( ( buried_l >= (BURIED_LEVEL_HALF / 2) ) || ( buried_r >= (BURIED_LEVEL_HALF / 2) ) ) { useFreeingTool(true, true); calcUnbury(true); } else { curr_angle = best_setup_angle; curr_power = best_setup_power; if (RAND_AI_0P || hill_detected || !best_setup_weap || (best_setup_weap->spread > 1) || (best_setup_weap->subMunCount > 0) || (REDUCER == best_setup_weap->type) || (PERCENT_BOMB == best_setup_weap->type) ) { useFreeingTool(false, true); // If this is a riot bomb, flatten the angle, // but only if the best overshoot (we took the // angle and power from its setup) was too long. // No use in firing a riot bomb behind the opponent if (best_setup_overshoot > 0) flattenCurrAng(); } else { // In this case use the current weapon, but go a bit down // with the angle: int32_t ang_mod = 5 + RAND_AI_1P; if (curr_angle < 180) { curr_angle -= ang_mod; if (curr_angle < 95) curr_angle = 95; } else { curr_angle += ang_mod; if (curr_angle > 265) curr_angle = 265; } if ( (REDUCER != best_setup_weap->type) && (PERCENT_BOMB != best_setup_weap->type) && ( (RIOT_BOMB > best_setup_weap->type) || (RIOT_BLAST < best_setup_weap->type) ) ) useWeapon(best_setup_weap->type); else useWeapon(SML_MIS); } // end of using best setup weapon. } sanitizeCurr(); angle = curr_angle; power = curr_power; needAim = false; best_setup_weap = nullptr; isBlocked = true; showFeedback("???", PURPLE, -.6, TS_NO_SWAY, 100); } // ---------------------------------------- // --- Write back the best attack setup --- // ---------------------------------------- if (!isStopped && needAim && !isBlocked ) { curr_angle = best_setup_angle; curr_power = best_setup_power; item_curr = best_setup_weap ? nullptr : best_setup_item; mem_curr = best_setup_mem; weap_curr = item_curr ? nullptr : best_setup_weap; weap_idx = weap_curr ? weap_curr->type : item_curr ? item_curr->type + WEAPONS : 0; sanitizeCurr(); angle = curr_angle; power = curr_power; DEBUG_LOG_AIM(player->getName(), "Using best setup with angle %d, power %d using %s (Score %d)", GET_DISP_ANGLE(angle), power, weap_idx < WEAPONS ? weapon[weap_idx].getName() : item[weap_idx - WEAPONS].getName(), best_setup_score) } else if (!isStopped) { // Note: Without aiming or when blocked, the setup memory // was not used in some cases. curr_angle = angle; curr_power = power; sanitizeCurr(); angle = curr_angle; power = curr_power; } // --------------------------------------------------------- // --- For the bot to yell out a retaliation phrase, the --- // --- following conditions must be true: --- // --- 1) A weapon is chosen --- // --- 2) The primary target must be hit --- // --- 3 a) The target is the revengee and --- // --- 3 b) the damage is at least 10% per AI level or --- // --- 4 a) the target is not the revengee and --- // --- 4 b) the damage is at least 20% per AI level --- // --------------------------------------------------------- int32_t min_rev_dmg = best_setup_mem ? best_setup_mem->opLife * (ai_level - RAND_AI_0P) / 10 : 0; int32_t min_oth_dmg = best_setup_mem ? best_setup_mem->opLife * (ai_level - RAND_AI_0P) / 5 : 0; if ( !isStopped && !global.skippingComputerPlay // allowed to issue texts && weap_curr && needAim && !needSuccess // (1) targeting was successful && best_setup_prime // (2) primary target gets damage && ( ( revengee && (revengee == best_setup_mem->entry) // (3 a) revengee targeted && (best_setup_damage >= min_rev_dmg) ) // (3 b) enough damage done || ( (!revengee || (revengee != best_setup_mem->entry)) // (4 a) not the revengee && (best_setup_damage >= min_oth_dmg) ) ) ) { // (4 b) enough damage done const char* text = player->selectRetaliationPhrase(); try { if (text) { // Wait for the AI to be allowed to create texts while (!textAllowed.load(ATOMIC_READ)) std::this_thread::yield(); // Now create the instance new FLOATTEXT(text,x, y - 30, .0, -.4, player->color, CENTRE, TS_NO_SWAY, 150, false); } } catch (...) { perror ( "aicore.cpp: Failed to allocate memory for" " retaliation text in operator()."); } if (text) free(const_cast(text)); } // ------------------------------------------------- // --- Tell the world this tank is going bye bye --- // ------------------------------------------------- if ( !isStopped && (mem_curr->entry->opponent == player) && !global.skippingComputerPlay) { try { // Wait for the AI to be allowed to create texts while (!textAllowed.load(ATOMIC_READ)) std::this_thread::yield(); // Now create it new FLOATTEXT (player->selectKamikazePhrase(), x, y - 30, .0, -.4, player->color, CENTRE, TS_NO_SWAY, 300, false); } catch (...) { perror ( "aicore.cpp: Failed allocating memory for" " kamikazeText in operator()."); } } // --------------------------------------- // --- Apply some "last second" errors --- // --------------------------------------- if (!isStopped && needAim && !isBlocked // Assume that bots can 'fix' errors from the last round: && ( (nullptr == mem_curr) || (mem_curr->entry != last_opp) ) && RAND_AI_1N) { int32_t ang_mod = maxAiLevel - ai_level + 2; // [ 2; 7] int32_t pow_mod = (ang_mod * 5) + 1; // [11;36] double ang_err = rand() % ang_mod; // [ 1; 6] double pow_err = rand() % pow_mod; // [10;35] // Angles always go 'up', but never over the top if (angle > (180. + ang_err)) curr_angle = angle - ang_err; else if (angle < (180. - ang_err)) curr_angle = angle + ang_err; // Power error is always a raise curr_power = power + pow_err; sanitizeCurr(); DEBUG_LOG_AIM(player->getName(), "Last second errors: Angle %d° -> %d°), Power: %d -> %d)", GET_DISP_ANGLE(angle), GET_DISP_ANGLE(curr_angle), power, curr_power) showFeedback("*fumble*", RED, -.8, TS_NO_SWAY, 100); angle = curr_angle; power = curr_power; } assert( (angle == curr_angle) && "ERROR: Finished but angle not set!"); assert( (power == (curr_power - (curr_power % 5))) && "ERROR: Finished but power not set!"); assert( ( (weap_idx >= WEAPONS) || (0 == weapon[weap_idx].warhead) ) && "ERROR: Not usable warhead chosen!"); assert( (weap_idx >= 0) && (weap_idx < THINGS) && env.isItemAvailable(weap_idx) && "ERROR: Unavailable or invalid weap_idx!"); assert( ( (weap_idx >= WEAPONS) || (player->nm[weap_idx] > 0) ) && "ERROR: Weapon chosen that is out of stock!"); assert( ( (weap_idx < WEAPONS) || (player->ni[weap_idx - WEAPONS] > 0) ) && "ERROR: Item chosen that is out of stock!"); assert( ( (weap_idx < WEAPONS) || ((weap_idx - WEAPONS) < ITEM_LGT_SHIELD) || ((weap_idx - WEAPONS) == ITEM_FUEL) || ((weap_idx - WEAPONS) == ITEM_ROCKET) ) && "ERROR: The chosen item is not usable!"); // --------------------------------------- // --- Wait for the weapon to be fired --- // --------------------------------------- if (!isStopped) { plStage = PS_FIRE; // It can be fired now DEBUG_LOG_AI(player->getName(), "Finished thinking, waiting to fire %s against %s", weap_curr ? weapon[weap_idx].getName() : item[weap_idx - WEAPONS].getName(), mem_curr ? mem_curr->entry->opponent->getName() : "Nobody") actionCondition.wait(actionLock, [this]{ return (!canWork || !isWorking || isStopped || (PS_CLEANUP == plStage) ); } ); } // -------------------------------------- // --- Remember the current selection --- // --- (But only if it was hit) --- // -------------------------------------- if (!isStopped && best_setup_prime && (best_setup_mem == mem_curr) ) player->setLastOpponent(mem_curr ? mem_curr->entry : nullptr); else player->setLastOpponent(nullptr); DEBUG_LOG_AI(player->getName(), "Cleaning up...", 0) // -------------------- // --- Clean up --- // -------------------- angle = 180; power = MAX_POWER / 2; curr_angle = 180; curr_power = MAX_POWER / 2; curr_overshoot = MAX_OVERSHOOT; weap_idx = SML_MIS; blast_big = 0.; blast_max = 0.; blast_med = 0.; blast_min = 0.; textAllowed.store(false, ATOMIC_WRITE); // Note: There is no need to clean up the memory chain. // It is only created once, all players have the same // size, and the getMemory() method reuses an existing // one. player = nullptr; tank = nullptr; // Eventually signal that the work has finished. plStage = PS_AI_IS_IDLE; isWorking = false; } // End of not being stopped isFinished = true; } /// ========================================= /// === Helper list entry implementations === /// ========================================= /// @brief explicit constructor adding the instance to the list sItemListEntry::sItemListEntry(sItemListEntry* prev_) : prev(prev_) { if (prev) { next = prev->next; prev->next = this; if (next) next->prev = this; } } /// @brief The destructor removes the element from the list sItemListEntry::~sItemListEntry() { if (prev) { prev->next = next; prev = nullptr; } if (next) { next->prev = prev; next = nullptr; } } /// @brief explicit constructor adding the instance to the list sOppMemEntry::sOppMemEntry(sOppMemEntry* prev_) : prev(prev_) { if (prev) { next = prev->next; prev->next = this; if (next) next->prev = this; } } /// @brief The destructor removes the element from the list sOppMemEntry::~sOppMemEntry() { if (prev) { prev->next = next; prev = nullptr; } if (next) { next->prev = prev; next = nullptr; } entry = nullptr; } /// @brief explicit constructor adding the instance to the list sWeapListEntry::sWeapListEntry(sWeapListEntry* prev_) : prev(prev_) { if (prev) { next = prev->next; prev->next = this; if (next) next->prev = this; } } /// @brief The destructor removes the element from the list sWeapListEntry::~sWeapListEntry() { if (prev) { prev->next = next; prev = nullptr; } if (next) { next->prev = prev; next = nullptr; } } atanks-6.6/src/gfxData.h0000644000175000017500000000417012636021030013277 0ustar apoapo#pragma once #ifndef ATANKS_SRC_GFXDATA_H_INCLUDED #define ATANKS_SRC_GFXDATA_H_INCLUDED /* * atanks - obliterate each other with oversize weapons * Copyright (C) 2003 Thomas Hudson * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #define ALL_SKIES 16 #define ALL_LANDS 16 #define STUFF_BAR_WIDTH 400 #define STUFF_BAR_HEIGHT 35 #define EXPLODEFRAMES 18 #define DISPERSEFRAMES 10 #define EXPLOSIONFRAMES (EXPLODEFRAMES + DISPERSEFRAMES) #define EXPLO_CX 107.f #define EXPLO_CY 107.f #define EXPLO_H 214.f #define EXPLO_W 214.f #define FLAME_CX 300.f #define FLAME_CY 15.f #define FLAME_H 30.f #define FLAME_W 600.f /// @brief Consolidate global gfx data in a struct to have RAII in effect. struct sGfxData { explicit sGfxData(); ~sGfxData(); void destroy(); void first_init(); BITMAP* sky_gradient_strips[ALL_SKIES]; BITMAP* land_gradient_strips[ALL_LANDS]; BITMAP* stuff_bar_gradient_strip = nullptr; BITMAP* topbar_gradient_strip = nullptr; BITMAP* explosion_gradient_strip = nullptr; BITMAP* stuff_bar[2]; BITMAP* stuff_icon_base = nullptr; BITMAP* topbar = nullptr; BITMAP* explosions[EXPLOSIONFRAMES]; BITMAP* flameFront[EXPLOSIONFRAMES]; private: bool initDone = false; }; // === Helper Functions === // ======================== BITMAP* create_gradient_strip (const gradient* grad, int32_t len); int32_t gradientColorPoint (const gradient* grad, double len, double line); #endif // ATANKS_SRC_GFXDATA_H_INCLUDED atanks-6.6/src/optiontypes.cpp0000644000175000017500000001033612636021030014652 0ustar apoapo#include "optiontypes.h" /** @brief get the name of an entry type name * * This function returns a string, as it is most secure and * only really needed for error and/or debugging messages * where speed and efficiency are as unimportant as they * can get. * * @param[in] etype The enum entry to get the name of. * @return A string with the name or "UNIMPLEMENTED" if a new entry hasn't been * added here, yet. */ std::string getEntryTypeName(eEntryType etype) { switch (etype) { case ET_NONE: return std::string("ET_NONE"); break; case ET_ACTION: return std::string("ET_ACTION"); break; case ET_BUTTON: return std::string("ET_BUTTON"); break; case ET_COLOR: return std::string("ET_COLOR"); break; case ET_MENU: return std::string("ET_MENU"); break; case ET_OPTION: return std::string("ET_OPTION"); break; case ET_TEXT: return std::string("ET_NONE"); break; case ET_TOGGLE: return std::string("ET_TOGGLE"); break; case ET_VALUE: return std::string("ET_VALUE"); break; default: break; } return std::string("UNIMPLEMENTED"); } /** @brief get the name of menu class name * * This function returns a string, as it is most secure and * only really needed for error and/or debugging messages * where speed and efficiency are as unimportant as they * can get. * * @param[in] mclass The enum entry to get the name of. * @return A string with the name or "UNIMPLEMENTED" if a new entry hasn't been * added here, yet. */ std::string getMenuClassName(eMenuClass mclass) { switch(mclass) { case MC_FINANCE: return std::string("MC_FINANCE"); break; case MC_GRAPHICS: return std::string("MC_GRAPHICS"); break; case MC_MAIN: return std::string("MC_MAIN"); break; case MC_NETWORK: return std::string("MC_NETWORK"); break; case MC_PHYSICS: return std::string("MC_PHYSICS"); break; case MC_PLAY: return std::string("MC_PLAY"); break; case MC_PLAYERS: return std::string("MC_PLAYERS"); break; case MC_SOUND: return std::string("MC_SOUND"); break; case MC_WEATHER: return std::string("MC_WEATHER"); break; case MC_MENUCLASS_COUNT: return std::string("MC_MENUCLASS_COUNT"); break; default: break; } return std::string("UNIMPLEMENTED"); } /** @brief get the name of a text class name * * This function returns a string, as it is most secure and * only really needed for error and/or debugging messages * where speed and efficiency are as unimportant as they * can get. * * @param[in] tclass The enum entry to get the name of. * @return A string with the name or "UNIMPLEMENTED" if a new entry hasn't been * added here, yet. */ std::string getTextClassName(eTextClass tclass) { switch (tclass) { case TC_COLOUR: return std::string("TC_COLOUR"); break; case TC_LANDSLIDE: return std::string("TC_LANDSLIDE"); break; case TC_LANDTYPE: return std::string("TC_LANDTYPE"); break; case TC_LANGUAGE: return std::string("TC_LANGUAGE"); break; case TC_LIGHTNING: return std::string("TC_LIGHTNING"); break; case TC_METEOR: return std::string("TC_METEOR"); break; case TC_MOUSE: return std::string("TC_MOUSE"); break; case TC_OFFON: return std::string("TC_OFFON"); break; case TC_OFFONRANDOM: return std::string("TC_OFFONRANDOM"); break; case TC_PLAYERPREF: return std::string("TC_PLAYERPREF"); break; case TC_PLAYERTEAM: return std::string("TC_PLAYERTEAM"); break; case TC_PLAYERTYPE: return std::string("TC_PLAYERTYPE"); break; case TC_SATELLITE: return std::string("TC_SATELLITE"); break; case TC_SKIPTYPE: return std::string("TC_SKIPTYPE"); break; case TC_SOUNDDRIVER: return std::string("TC_SOUNDDRIVER"); break; case TC_TANKTYPE: return std::string("TC_TANKTYPE"); break; case TC_TURNTYPE: return std::string("TC_TURNTYPE"); break; case TC_WALLTYPE: return std::string("TC_WALLTYPE"); break; case TC_TEXTCLASS_COUNT: return std::string("TC_TEXTCLASS_COUNT"); break; case TC_FREETEXT: return std::string("TC_FREETEXT"); break; case TC_NONE: return std::string("TC_NONE"); break; default: break; } return std::string("UNIMPLEMENTED"); } atanks-6.6/src/globaltypes.cpp0000644000175000017500000000224212636021030014577 0ustar apoapo#include "globaltypes.h" /** @file globaltypes.cpp * @brief define helper operators for enum rotation **/ /// @brief pre-increment for eDataStages eDataStage &operator++ (eDataStage &ds) { if (DS_DATA == ds) ds = DS_NAME; else if (DS_DESC == ds) ds = DS_DATA; else ds = DS_DESC; return ds; } eLanguages &operator+=(eLanguages &lang, int32_t val) { int32_t cur = static_cast(lang) + val; if (cur > 0) cur %= EL_LANGUAGE_COUNT; if (cur < 0) cur = EL_LANGUAGE_COUNT - ((-1 * cur) % EL_LANGUAGE_COUNT); lang = static_cast(cur); return lang; } eLanguages &operator-=(eLanguages &lang, int32_t val) { return lang += -1 * val; } /// @brief pre-increment for the language eLanguages &operator++(eLanguages &lang) { return lang += 1; } /// @brief post-increment for the language type eLanguages operator++(eLanguages &lang, int) { eLanguages tmp = lang; lang += 1; return tmp; } /// @brief pre-decrement for the language eLanguages &operator--(eLanguages &lang) { return lang += -1; } /// @brief post-decrement for the language type eLanguages operator--(eLanguages &lang, int) { eLanguages tmp = lang; lang += -1; return tmp; } atanks-6.6/src/resource.h0000755000175000017500000021402112636021030013551 0ustar apoapo//{{NO_DEPENDENCIES}} // Von Microsoft Visual C++ generierte Includedatei. // Verwendet durch atanks.rc // #define SW_HIDE 0 #define HIDE_WINDOW 0 #define WM_NULL 0x0000 #define WA_INACTIVE 0 #define HTNOWHERE 0 #define SMTO_NORMAL 0x0000 #define ICON_SMALL 0 #define SIZE_RESTORED 0 #define BN_CLICKED 0 #define BST_UNCHECKED 0x0000 #define HDS_HORZ 0x0000 #define TBSTYLE_BUTTON 0x0000 #define TBS_HORZ 0x0000 #define TBS_BOTTOM 0x0000 #define TBS_RIGHT 0x0000 #define LVS_ICON 0x0000 #define LVS_ALIGNTOP 0x0000 #define TCS_TABS 0x0000 #define TCS_SINGLELINE 0x0000 #define TCS_RIGHTJUSTIFY 0x0000 #define DTS_SHORTDATEFORMAT 0x0000 #define PGS_VERT 0x00000000 #define LANG_NEUTRAL 0x00 #define SUBLANG_NEUTRAL 0x00 #define SORT_DEFAULT 0x0 #define SORT_JAPANESE_XJIS 0x0 #define SORT_CHINESE_BIG5 0x0 #define SORT_CHINESE_PRCP 0x0 #define SORT_KOREAN_KSC 0x0 #define SORT_HUNGARIAN_DEFAULT 0x0 #define SORT_GEORGIAN_TRADITIONAL 0x0 #define _USE_DECLSPECS_FOR_SAL 0 #define _USE_ATTRIBUTES_FOR_SAL 0 #define __drv_typeConst 0 #define WINAPI_PARTITION_APP 1 #define CREATEPROCESS_MANIFEST_RESOURCE_ID 1 #define MINIMUM_RESERVED_MANIFEST_RESOURCE_ID 1 #define SW_SHOWNORMAL 1 #define SW_NORMAL 1 #define SHOW_OPENWINDOW 1 #define SW_PARENTCLOSING 1 #define VK_LBUTTON 0x01 #define WM_CREATE 0x0001 #define WA_ACTIVE 1 #define PWR_OK 1 #define PWR_SUSPENDREQUEST 1 #define NFR_ANSI 1 #define UIS_SET 1 #define UISF_HIDEFOCUS 0x1 #define XBUTTON1 0x0001 #define WMSZ_LEFT 1 #define HTCLIENT 1 #define SMTO_BLOCK 0x0001 #define MA_ACTIVATE 1 #define ICON_BIG 1 #define SIZE_MINIMIZED 1 #define MK_LBUTTON 0x0001 #define TME_HOVER 0x00000001 #define CS_VREDRAW 0x0001 #define CF_TEXT 1 #define SCF_ISSECURE 0x00000001 #define IDOK 1 #define BN_PAINT 1 #define BST_CHECKED 0x0001 #define TBSTYLE_SEP 0x0001 #define TTS_ALWAYSTIP 0x01 #define TBS_AUTOTICKS 0x0001 #define UDS_WRAP 0x0001 #define PBS_SMOOTH 0x01 #define LWS_TRANSPARENT 0x0001 #define LVS_REPORT 0x0001 #define TVS_HASBUTTONS 0x0001 #define TVS_EX_NOSINGLECOLLAPSE 0x0001 #define TCS_SCROLLOPPOSITE 0x0001 #define ACS_CENTER 0x0001 #define MCS_DAYSTATE 0x0001 #define DTS_UPDOWN 0x0001 #define PGS_HORZ 0x00000001 #define NFS_EDIT 0x0001 #define BCSIF_GLYPH 0x0001 #define BCSS_NOSPLIT 0x0001 #define LANG_ARABIC 0x01 #define SUBLANG_DEFAULT 0x01 #define SUBLANG_AFRIKAANS_SOUTH_AFRICA 0x01 #define SUBLANG_ALBANIAN_ALBANIA 0x01 #define SUBLANG_ALSATIAN_FRANCE 0x01 #define SUBLANG_AMHARIC_ETHIOPIA 0x01 #define SUBLANG_ARABIC_SAUDI_ARABIA 0x01 #define SUBLANG_ARMENIAN_ARMENIA 0x01 #define SUBLANG_ASSAMESE_INDIA 0x01 #define SUBLANG_AZERI_LATIN 0x01 #define SUBLANG_AZERBAIJANI_AZERBAIJAN_LATIN 0x01 #define SUBLANG_BANGLA_INDIA 0x01 #define SUBLANG_BASHKIR_RUSSIA 0x01 #define SUBLANG_BASQUE_BASQUE 0x01 #define SUBLANG_BELARUSIAN_BELARUS 0x01 #define SUBLANG_BENGALI_INDIA 0x01 #define SUBLANG_BRETON_FRANCE 0x01 #define SUBLANG_BULGARIAN_BULGARIA 0x01 #define SUBLANG_CATALAN_CATALAN 0x01 #define SUBLANG_CENTRAL_KURDISH_IRAQ 0x01 #define SUBLANG_CHEROKEE_CHEROKEE 0x01 #define SUBLANG_CHINESE_TRADITIONAL 0x01 #define SUBLANG_CORSICAN_FRANCE 0x01 #define SUBLANG_CZECH_CZECH_REPUBLIC 0x01 #define SUBLANG_CROATIAN_CROATIA 0x01 #define SUBLANG_DANISH_DENMARK 0x01 #define SUBLANG_DARI_AFGHANISTAN 0x01 #define SUBLANG_DIVEHI_MALDIVES 0x01 #define SUBLANG_DUTCH 0x01 #define SUBLANG_ENGLISH_US 0x01 #define SUBLANG_ESTONIAN_ESTONIA 0x01 #define SUBLANG_FAEROESE_FAROE_ISLANDS 0x01 #define SUBLANG_FILIPINO_PHILIPPINES 0x01 #define SUBLANG_FINNISH_FINLAND 0x01 #define SUBLANG_FRENCH 0x01 #define SUBLANG_FRISIAN_NETHERLANDS 0x01 #define SUBLANG_GALICIAN_GALICIAN 0x01 #define SUBLANG_GEORGIAN_GEORGIA 0x01 #define SUBLANG_GERMAN 0x01 #define SUBLANG_GREEK_GREECE 0x01 #define SUBLANG_GREENLANDIC_GREENLAND 0x01 #define SUBLANG_GUJARATI_INDIA 0x01 #define SUBLANG_HAUSA_NIGERIA_LATIN 0x01 #define SUBLANG_HAWAIIAN_US 0x01 #define SUBLANG_HEBREW_ISRAEL 0x01 #define SUBLANG_HINDI_INDIA 0x01 #define SUBLANG_HUNGARIAN_HUNGARY 0x01 #define SUBLANG_ICELANDIC_ICELAND 0x01 #define SUBLANG_IGBO_NIGERIA 0x01 #define SUBLANG_INDONESIAN_INDONESIA 0x01 #define SUBLANG_INUKTITUT_CANADA 0x01 #define SUBLANG_ITALIAN 0x01 #define SUBLANG_JAPANESE_JAPAN 0x01 #define SUBLANG_KANNADA_INDIA 0x01 #define SUBLANG_KAZAK_KAZAKHSTAN 0x01 #define SUBLANG_KHMER_CAMBODIA 0x01 #define SUBLANG_KICHE_GUATEMALA 0x01 #define SUBLANG_KINYARWANDA_RWANDA 0x01 #define SUBLANG_KONKANI_INDIA 0x01 #define SUBLANG_KOREAN 0x01 #define SUBLANG_KYRGYZ_KYRGYZSTAN 0x01 #define SUBLANG_LAO_LAO 0x01 #define SUBLANG_LATVIAN_LATVIA 0x01 #define SUBLANG_LITHUANIAN 0x01 #define SUBLANG_LUXEMBOURGISH_LUXEMBOURG 0x01 #define SUBLANG_MACEDONIAN_MACEDONIA 0x01 #define SUBLANG_MALAY_MALAYSIA 0x01 #define SUBLANG_MALAYALAM_INDIA 0x01 #define SUBLANG_MALTESE_MALTA 0x01 #define SUBLANG_MAORI_NEW_ZEALAND 0x01 #define SUBLANG_MAPUDUNGUN_CHILE 0x01 #define SUBLANG_MARATHI_INDIA 0x01 #define SUBLANG_MOHAWK_MOHAWK 0x01 #define SUBLANG_MONGOLIAN_CYRILLIC_MONGOLIA 0x01 #define SUBLANG_NEPALI_NEPAL 0x01 #define SUBLANG_NORWEGIAN_BOKMAL 0x01 #define SUBLANG_OCCITAN_FRANCE 0x01 #define SUBLANG_ODIA_INDIA 0x01 #define SUBLANG_ORIYA_INDIA 0x01 #define SUBLANG_PASHTO_AFGHANISTAN 0x01 #define SUBLANG_PERSIAN_IRAN 0x01 #define SUBLANG_POLISH_POLAND 0x01 #define SUBLANG_PORTUGUESE_BRAZILIAN 0x01 #define SUBLANG_PUNJABI_INDIA 0x01 #define SUBLANG_QUECHUA_BOLIVIA 0x01 #define SUBLANG_ROMANIAN_ROMANIA 0x01 #define SUBLANG_ROMANSH_SWITZERLAND 0x01 #define SUBLANG_RUSSIAN_RUSSIA 0x01 #define SUBLANG_SAKHA_RUSSIA 0x01 #define SUBLANG_SAMI_NORTHERN_NORWAY 0x01 #define SUBLANG_SANSKRIT_INDIA 0x01 #define SUBLANG_SCOTTISH_GAELIC 0x01 #define SUBLANG_SERBIAN_CROATIA 0x01 #define SUBLANG_SINDHI_INDIA 0x01 #define SUBLANG_SINHALESE_SRI_LANKA 0x01 #define SUBLANG_SOTHO_NORTHERN_SOUTH_AFRICA 0x01 #define SUBLANG_SLOVAK_SLOVAKIA 0x01 #define SUBLANG_SLOVENIAN_SLOVENIA 0x01 #define SUBLANG_SPANISH 0x01 #define SUBLANG_SWAHILI_KENYA 0x01 #define SUBLANG_SWEDISH 0x01 #define SUBLANG_SYRIAC_SYRIA 0x01 #define SUBLANG_TAJIK_TAJIKISTAN 0x01 #define SUBLANG_TAMIL_INDIA 0x01 #define SUBLANG_TATAR_RUSSIA 0x01 #define SUBLANG_TELUGU_INDIA 0x01 #define SUBLANG_THAI_THAILAND 0x01 #define SUBLANG_TIBETAN_PRC 0x01 #define SUBLANG_TIGRINYA_ETHIOPIA 0x01 #define SUBLANG_TSWANA_SOUTH_AFRICA 0x01 #define SUBLANG_TURKISH_TURKEY 0x01 #define SUBLANG_TURKMEN_TURKMENISTAN 0x01 #define SUBLANG_UIGHUR_PRC 0x01 #define SUBLANG_UKRAINIAN_UKRAINE 0x01 #define SUBLANG_UPPER_SORBIAN_GERMANY 0x01 #define SUBLANG_URDU_PAKISTAN 0x01 #define SUBLANG_UZBEK_LATIN 0x01 #define SUBLANG_VIETNAMESE_VIETNAM 0x01 #define SUBLANG_WELSH_UNITED_KINGDOM 0x01 #define SUBLANG_WOLOF_SENEGAL 0x01 #define SUBLANG_XHOSA_SOUTH_AFRICA 0x01 #define SUBLANG_YAKUT_RUSSIA 0x01 #define SUBLANG_YI_PRC 0x01 #define SUBLANG_YORUBA_NIGERIA 0x01 #define SUBLANG_ZULU_SOUTH_AFRICA 0x01 #define SORT_INVARIANT_MATH 0x1 #define SORT_JAPANESE_UNICODE 0x1 #define SORT_CHINESE_UNICODE 0x1 #define SORT_KOREAN_UNICODE 0x1 #define SORT_GERMAN_PHONE_BOOK 0x1 #define SORT_HUNGARIAN_TECHNICAL 0x1 #define SORT_GEORGIAN_MODERN 0x1 #define __drv_typeCond 1 #define VS_VERSION_INFO 1 #define VFFF_ISSHAREDFILE 0x0001 #define VFF_CURNEDEST 0x0001 #define VIFF_FORCEINSTALL 0x0001 #define WINAPI_FAMILY_PC_APP 2 #define ISOLATIONAWARE_MANIFEST_RESOURCE_ID 2 #define SW_SHOWMINIMIZED 2 #define SHOW_ICONWINDOW 2 #define SW_OTHERZOOM 2 #define VK_RBUTTON 0x02 #define WM_DESTROY 0x0002 #define WA_CLICKACTIVE 2 #define PWR_SUSPENDRESUME 2 #define NFR_UNICODE 2 #define UIS_CLEAR 2 #define UISF_HIDEACCEL 0x2 #define XBUTTON2 0x0002 #define WMSZ_RIGHT 2 #define HTCAPTION 2 #define SMTO_ABORTIFHUNG 0x0002 #define MA_ACTIVATEANDEAT 2 #define ICON_SMALL2 2 #define SIZE_MAXIMIZED 2 #define MK_RBUTTON 0x0002 #define TME_LEAVE 0x00000002 #define CS_HREDRAW 0x0002 #define CF_BITMAP 2 #define IDCANCEL 2 #define BN_HILITE 2 #define BST_INDETERMINATE 0x0002 #define HDS_BUTTONS 0x0002 #define TBSTYLE_CHECK 0x0002 #define TTS_NOPREFIX 0x02 #define TBS_VERT 0x0002 #define UDS_SETBUDDYINT 0x0002 #define LWS_IGNORERETURN 0x0002 #define LVS_SMALLICON 0x0002 #define TVS_HASLINES 0x0002 #define TVS_EX_MULTISELECT 0x0002 #define TCS_BOTTOM 0x0002 #define TCS_RIGHT 0x0002 #define ACS_TRANSPARENT 0x0002 #define MCS_MULTISELECT 0x0002 #define DTS_SHOWNONE 0x0002 #define PGS_AUTOSCROLL 0x00000002 #define NFS_STATIC 0x0002 #define BCSIF_IMAGE 0x0002 #define BCSS_STRETCH 0x0002 #define LANG_BULGARIAN 0x02 #define SUBLANG_SYS_DEFAULT 0x02 #define SUBLANG_ARABIC_IRAQ 0x02 #define SUBLANG_AZERI_CYRILLIC 0x02 #define SUBLANG_AZERBAIJANI_AZERBAIJAN_CYRILLIC 0x02 #define SUBLANG_BANGLA_BANGLADESH 0x02 #define SUBLANG_BENGALI_BANGLADESH 0x02 #define SUBLANG_CHINESE_SIMPLIFIED 0x02 #define SUBLANG_DUTCH_BELGIAN 0x02 #define SUBLANG_ENGLISH_UK 0x02 #define SUBLANG_FRENCH_BELGIAN 0x02 #define SUBLANG_FULAH_SENEGAL 0x02 #define SUBLANG_GERMAN_SWISS 0x02 #define SUBLANG_INUKTITUT_CANADA_LATIN 0x02 #define SUBLANG_IRISH_IRELAND 0x02 #define SUBLANG_ITALIAN_SWISS 0x02 #define SUBLANG_KASHMIRI_SASIA 0x02 #define SUBLANG_KASHMIRI_INDIA 0x02 #define SUBLANG_LOWER_SORBIAN_GERMANY 0x02 #define SUBLANG_MALAY_BRUNEI_DARUSSALAM 0x02 #define SUBLANG_MONGOLIAN_PRC 0x02 #define SUBLANG_NEPALI_INDIA 0x02 #define SUBLANG_NORWEGIAN_NYNORSK 0x02 #define SUBLANG_PORTUGUESE 0x02 #define SUBLANG_PULAR_SENEGAL 0x02 #define SUBLANG_PUNJABI_PAKISTAN 0x02 #define SUBLANG_QUECHUA_ECUADOR 0x02 #define SUBLANG_SAMI_NORTHERN_SWEDEN 0x02 #define SUBLANG_SERBIAN_LATIN 0x02 #define SUBLANG_SINDHI_PAKISTAN 0x02 #define SUBLANG_SINDHI_AFGHANISTAN 0x02 #define SUBLANG_SPANISH_MEXICAN 0x02 #define SUBLANG_SWEDISH_FINLAND 0x02 #define SUBLANG_TAMAZIGHT_ALGERIA_LATIN 0x02 #define SUBLANG_TAMIL_SRI_LANKA 0x02 #define SUBLANG_TIGRIGNA_ERITREA 0x02 #define SUBLANG_TIGRINYA_ERITREA 0x02 #define SUBLANG_TSWANA_BOTSWANA 0x02 #define SUBLANG_URDU_INDIA 0x02 #define SUBLANG_UZBEK_CYRILLIC 0x02 #define SUBLANG_VALENCIAN_VALENCIA 0x02 #define SORT_CHINESE_PRC 0x2 #define __drv_typeBitset 2 #define VFF_FILEINUSE 0x0002 #define VIFF_DONTDELETEOLD 0x0002 #define WINAPI_FAMILY_PHONE_APP 3 #define ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID 3 #define SW_SHOWMAXIMIZED 3 #define SW_MAXIMIZE 3 #define SHOW_FULLSCREEN 3 #define SW_PARENTOPENING 3 #define VK_CANCEL 0x03 #define WM_MOVE 0x0003 #define PWR_CRITICALRESUME 3 #define NF_QUERY 3 #define UIS_INITIALIZE 3 #define WMSZ_TOP 3 #define HTSYSMENU 3 #define MA_NOACTIVATE 3 #define SIZE_MAXSHOW 3 #define CF_METAFILEPICT 3 #define IDABORT 3 #define BN_UNHILITE 3 #define LVS_LIST 0x0003 #define LVS_TYPEMASK 0x0003 #define LANG_CATALAN 0x03 #define LANG_VALENCIAN 0x03 #define SUBLANG_CUSTOM_DEFAULT 0x03 #define SUBLANG_ARABIC_EGYPT 0x03 #define SUBLANG_CHINESE_HONGKONG 0x03 #define SUBLANG_ENGLISH_AUS 0x03 #define SUBLANG_FRENCH_CANADIAN 0x03 #define SUBLANG_GERMAN_AUSTRIAN 0x03 #define SUBLANG_QUECHUA_PERU 0x03 #define SUBLANG_SAMI_NORTHERN_FINLAND 0x03 #define SUBLANG_SERBIAN_CYRILLIC 0x03 #define SUBLANG_SPANISH_MODERN 0x03 #define SORT_CHINESE_BOPOMOFO 0x3 #define __drv_typeExpr 3 #define SW_SHOWNOACTIVATE 4 #define SHOW_OPENNOACTIVATE 4 #define SW_OTHERUNZOOM 4 #define VK_MBUTTON 0x04 #define NF_REQUERY 4 #define UISF_ACTIVE 0x4 #define WMSZ_TOPLEFT 4 #define HTGROWBOX 4 #define MA_NOACTIVATEANDEAT 4 #define SIZE_MAXHIDE 4 #define MK_SHIFT 0x0004 #define CF_SYLK 4 #define IDRETRY 4 #define BN_DISABLE 4 #define BST_PUSHED 0x0004 #define HDS_HOTTRACK 0x0004 #define TBSTYLE_GROUP 0x0004 #define TBS_TOP 0x0004 #define TBS_LEFT 0x0004 #define UDS_ALIGNRIGHT 0x0004 #define PBS_VERTICAL 0x04 #define LWS_NOPREFIX 0x0004 #define LVS_SINGLESEL 0x0004 #define TVS_LINESATROOT 0x0004 #define TVS_EX_DOUBLEBUFFER 0x0004 #define TCS_MULTISELECT 0x0004 #define ACS_AUTOPLAY 0x0004 #define MCS_WEEKNUMBERS 0x0004 #define DTS_LONGDATEFORMAT 0x0004 #define PGS_DRAGNDROP 0x00000004 #define NFS_LISTCOMBO 0x0004 #define BCSIF_STYLE 0x0004 #define BCSS_ALIGNLEFT 0x0004 #define LANG_CHINESE 0x04 #define LANG_CHINESE_SIMPLIFIED 0x04 #define SUBLANG_CUSTOM_UNSPECIFIED 0x04 #define SUBLANG_ARABIC_LIBYA 0x04 #define SUBLANG_CHINESE_SINGAPORE 0x04 #define SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN 0x04 #define SUBLANG_ENGLISH_CAN 0x04 #define SUBLANG_FRENCH_SWISS 0x04 #define SUBLANG_GERMAN_LUXEMBOURG 0x04 #define SUBLANG_SAMI_LULE_NORWAY 0x04 #define SUBLANG_SPANISH_GUATEMALA 0x04 #define SUBLANG_TAMAZIGHT_MOROCCO_TIFINAGH 0x04 #define SORT_JAPANESE_RADICALSTROKE 0x4 #define SORT_CHINESE_RADICALSTROKE 0x4 #define VFF_BUFFTOOSMALL 0x0004 #define SW_SHOW 5 #define VK_XBUTTON1 0x05 #define WM_SIZE 0x0005 #define WMSZ_TOPRIGHT 5 #define HTMENU 5 #define CF_DIF 5 #define IDIGNORE 5 #define BN_DOUBLECLICKED 5 #define LANG_CZECH 0x05 #define SUBLANG_UI_CUSTOM_DEFAULT 0x05 #define SUBLANG_ARABIC_ALGERIA 0x05 #define SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN 0x05 #define SUBLANG_CHINESE_MACAU 0x05 #define SUBLANG_ENGLISH_NZ 0x05 #define SUBLANG_FRENCH_LUXEMBOURG 0x05 #define SUBLANG_GERMAN_LIECHTENSTEIN 0x05 #define SUBLANG_SAMI_LULE_SWEDEN 0x05 #define SUBLANG_SPANISH_COSTA_RICA 0x05 #define SW_MINIMIZE 6 #define VK_XBUTTON2 0x06 #define WM_ACTIVATE 0x0006 #define WMSZ_BOTTOM 6 #define HTHSCROLL 6 #define CF_TIFF 6 #define IDYES 6 #define BN_SETFOCUS 6 #define LANG_DANISH 0x06 #define SUBLANG_ARABIC_MOROCCO 0x06 #define SUBLANG_ENGLISH_EIRE 0x06 #define SUBLANG_FRENCH_MONACO 0x06 #define SUBLANG_SAMI_SOUTHERN_NORWAY 0x06 #define SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_LATIN 0x06 #define SUBLANG_SPANISH_PANAMA 0x06 #define SW_SHOWMINNOACTIVE 7 #define WM_SETFOCUS 0x0007 #define WMSZ_BOTTOMLEFT 7 #define HTVSCROLL 7 #define CF_OEMTEXT 7 #define IDNO 7 #define BN_KILLFOCUS 7 #define LANG_GERMAN 0x07 #define SUBLANG_ARABIC_TUNISIA 0x07 #define SUBLANG_ENGLISH_SOUTH_AFRICA 0x07 #define SUBLANG_SAMI_SOUTHERN_SWEDEN 0x07 #define SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_CYRILLIC 0x07 #define SUBLANG_SPANISH_DOMINICAN_REPUBLIC 0x07 #define SW_SHOWNA 8 #define VK_BACK 0x08 #define WM_KILLFOCUS 0x0008 #define WMSZ_BOTTOMRIGHT 8 #define HTMINBUTTON 8 #define SMTO_NOTIMEOUTIFNOTHUNG 0x0008 #define MK_CONTROL 0x0008 #define CS_DBLCLKS 0x0008 #define CF_DIB 8 #define IDCLOSE 8 #define BST_FOCUS 0x0008 #define HDS_HIDDEN 0x0008 #define TBSTYLE_DROPDOWN 0x0008 #define TBS_BOTH 0x0008 #define UDS_ALIGNLEFT 0x0008 #define PBS_MARQUEE 0x08 #define LWS_USEVISUALSTYLE 0x0008 #define LVS_SHOWSELALWAYS 0x0008 #define TVS_EDITLABELS 0x0008 #define TVS_EX_NOINDENTSTATE 0x0008 #define TCS_FLATBUTTONS 0x0008 #define ACS_TIMER 0x0008 #define MCS_NOTODAYCIRCLE 0x0008 #define NFS_BUTTON 0x0008 #define BCSIF_SIZE 0x0008 #define BCSS_IMAGE 0x0008 #define LANG_GREEK 0x08 #define SUBLANG_ARABIC_OMAN 0x08 #define SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC 0x08 #define SUBLANG_ENGLISH_JAMAICA 0x08 #define SUBLANG_SAMI_SKOLT_FINLAND 0x08 #define SUBLANG_SPANISH_VENEZUELA 0x08 #define SW_RESTORE 9 #define VK_TAB 0x09 #define HTMAXBUTTON 9 #define CF_PALETTE 9 #define IDHELP 9 #define DTS_TIMEFORMAT 0x0009 #define LANG_ENGLISH 0x09 #define SUBLANG_ARABIC_YEMEN 0x09 #define SUBLANG_ENGLISH_CARIBBEAN 0x09 #define SUBLANG_SAMI_INARI_FINLAND 0x09 #define SUBLANG_SERBIAN_SERBIA_LATIN 0x09 #define SUBLANG_SPANISH_COLOMBIA 0x09 #define SW_SHOWDEFAULT 10 #define WM_ENABLE 0x000A #define HTLEFT 10 #define CF_PENDATA 10 #define IDTRYAGAIN 10 #define HELP_CONTEXTMENU 0x000a #define LANG_SPANISH 0x0a #define SUBLANG_ARABIC_SYRIA 0x0a #define SUBLANG_ENGLISH_BELIZE 0x0a #define SUBLANG_SERBIAN_SERBIA_CYRILLIC 0x0a #define SUBLANG_SPANISH_PERU 0x0a #define SW_FORCEMINIMIZE 11 #define SW_MAX 11 #define WM_SETREDRAW 0x000B #define HTRIGHT 11 #define CF_RIFF 11 #define IDCONTINUE 11 #define HELP_FINDER 0x000b #define LANG_FINNISH 0x0b #define SUBLANG_ARABIC_JORDAN 0x0b #define SUBLANG_ENGLISH_TRINIDAD 0x0b #define SUBLANG_SERBIAN_MONTENEGRO_LATIN 0x0b #define SUBLANG_SPANISH_ARGENTINA 0x0b #define VK_CLEAR 0x0C #define WM_SETTEXT 0x000C #define HTTOP 12 #define CF_WAVE 12 #define HELP_WM_HELP 0x000c #define DTS_SHORTDATECENTURYFORMAT 0x000C #define LANG_FRENCH 0x0c #define SUBLANG_ARABIC_LEBANON 0x0c #define SUBLANG_ENGLISH_ZIMBABWE 0x0c #define SUBLANG_SERBIAN_MONTENEGRO_CYRILLIC 0x0c #define SUBLANG_SPANISH_ECUADOR 0x0c #define VK_RETURN 0x0D #define WM_GETTEXT 0x000D #define HTTOPLEFT 13 #define CF_UNICODETEXT 13 #define HELP_SETPOPUP_POS 0x000d #define LANG_HEBREW 0x0d #define SUBLANG_ARABIC_KUWAIT 0x0d #define SUBLANG_ENGLISH_PHILIPPINES 0x0d #define SUBLANG_SPANISH_CHILE 0x0d #define WM_GETTEXTLENGTH 0x000E #define HTTOPRIGHT 14 #define CF_ENHMETAFILE 14 #define LANG_HUNGARIAN 0x0e #define SUBLANG_ARABIC_UAE 0x0e #define SUBLANG_SPANISH_URUGUAY 0x0e #define WM_PAINT 0x000F #define HTBOTTOM 15 #define CF_HDROP 15 #define LANG_ICELANDIC 0x0f #define SUBLANG_ARABIC_BAHRAIN 0x0f #define SUBLANG_SPANISH_PARAGUAY 0x0f #define MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID 16 #define VK_SHIFT 0x10 #define WM_CLOSE 0x0010 #define HTBOTTOMLEFT 16 #define WVR_ALIGNTOP 0x0010 #define MK_MBUTTON 0x0010 #define TME_NONCLIENT 0x00000010 #define CF_LOCALE 16 #define HELP_TCARD_DATA 0x0010 #define TBSTYLE_AUTOSIZE 0x0010 #define TTS_NOANIMATE 0x10 #define TBS_NOTICKS 0x0010 #define UDS_AUTOBUDDY 0x0010 #define PBS_SMOOTHREVERSE 0x10 #define LWS_USECUSTOMTEXT 0x0010 #define LVS_SORTASCENDING 0x0010 #define TVS_DISABLEDRAGDROP 0x0010 #define TVS_EX_RICHTOOLTIP 0x0010 #define TCS_FORCEICONLEFT 0x0010 #define MCS_NOTODAY 0x0010 #define DTS_APPCANPARSE 0x0010 #define NFS_ALL 0x0010 #define LANG_ITALIAN 0x10 #define SUBLANG_ARABIC_QATAR 0x10 #define SUBLANG_ENGLISH_INDIA 0x10 #define SUBLANG_SPANISH_BOLIVIA 0x10 #define VK_CONTROL 0x11 #define WM_QUERYENDSESSION 0x0011 #define HTBOTTOMRIGHT 17 #define CF_DIBV5 17 #define HELP_TCARD_OTHER_CALLER 0x0011 #define LANG_JAPANESE 0x11 #define SUBLANG_ENGLISH_MALAYSIA 0x11 #define SUBLANG_SPANISH_EL_SALVADOR 0x11 #define VK_MENU 0x12 #define WM_QUIT 0x0012 #define HTBORDER 18 #define CF_MAX 18 #define LANG_KOREAN 0x12 #define SUBLANG_ENGLISH_SINGAPORE 0x12 #define SUBLANG_SPANISH_HONDURAS 0x12 #define VK_PAUSE 0x13 #define WM_QUERYOPEN 0x0013 #define HTOBJECT 19 #define LANG_DUTCH 0x13 #define SUBLANG_SPANISH_NICARAGUA 0x13 #define VK_CAPITAL 0x14 #define WM_ERASEBKGND 0x0014 #define HTCLOSE 20 #define LANG_NORWEGIAN 0x14 #define SUBLANG_SPANISH_PUERTO_RICO 0x14 #define _SAL_VERSION 20 #define VK_KANA 0x15 #define VK_HANGEUL 0x15 #define VK_HANGUL 0x15 #define WM_SYSCOLORCHANGE 0x0015 #define HTHELP 21 #define LANG_POLISH 0x15 #define SUBLANG_SPANISH_US 0x15 #define WM_ENDSESSION 0x0016 #define LANG_PORTUGUESE 0x16 #define VK_JUNJA 0x17 #define LANG_ROMANSH 0x17 #define RT_MANIFEST 24 #define VK_FINAL 0x18 #define WM_SHOWWINDOW 0x0018 #define LANG_ROMANIAN 0x18 #define VK_HANJA 0x19 #define VK_KANJI 0x19 #define LANG_RUSSIAN 0x19 #define WM_WININICHANGE 0x001A #define LANG_BOSNIAN 0x1a #define LANG_CROATIAN 0x1a #define LANG_SERBIAN 0x1a #define VK_ESCAPE 0x1B #define WM_DEVMODECHANGE 0x001B #define LANG_SLOVAK 0x1b #define VK_CONVERT 0x1C #define WM_ACTIVATEAPP 0x001C #define LANG_ALBANIAN 0x1c #define VK_NONCONVERT 0x1D #define WM_FONTCHANGE 0x001D #define LANG_SWEDISH 0x1d #define VK_ACCEPT 0x1E #define WM_TIMECHANGE 0x001E #define LANG_THAI 0x1e #define VK_MODECHANGE 0x1F #define WM_CANCELMODE 0x001F #define LANG_TURKISH 0x1f #define VK_SPACE 0x20 #define WM_SETCURSOR 0x0020 #define SMTO_ERRORONEXIT 0x0020 #define WVR_ALIGNLEFT 0x0020 #define MK_XBUTTON1 0x0020 #define CS_OWNDC 0x0020 #define TBSTYLE_NOPREFIX 0x0020 #define TTS_NOFADE 0x20 #define TBS_ENABLESELRANGE 0x0020 #define UDS_ARROWKEYS 0x0020 #define LWS_RIGHT 0x0020 #define LVS_SORTDESCENDING 0x0020 #define TVS_SHOWSELALWAYS 0x0020 #define TVS_EX_AUTOHSCROLL 0x0020 #define TCS_FORCELABELLEFT 0x0020 #define DTS_RIGHTALIGN 0x0020 #define NFS_USEFONTASSOC 0x0020 #define LANG_URDU 0x20 #define VK_PRIOR 0x21 #define WM_MOUSEACTIVATE 0x0021 #define LANG_INDONESIAN 0x21 #define VK_NEXT 0x22 #define WM_CHILDACTIVATE 0x0022 #define LANG_UKRAINIAN 0x22 #define VK_END 0x23 #define WM_QUEUESYNC 0x0023 #define LANG_BELARUSIAN 0x23 #define VK_HOME 0x24 #define WM_GETMINMAXINFO 0x0024 #define LANG_SLOVENIAN 0x24 #define VK_LEFT 0x25 #define LANG_ESTONIAN 0x25 #define VK_UP 0x26 #define WM_PAINTICON 0x0026 #define LANG_LATVIAN 0x26 #define VK_RIGHT 0x27 #define WM_ICONERASEBKGND 0x0027 #define LANG_LITHUANIAN 0x27 #define VK_DOWN 0x28 #define WM_NEXTDLGCTL 0x0028 #define LANG_TAJIK 0x28 #define VK_SELECT 0x29 #define LANG_FARSI 0x29 #define LANG_PERSIAN 0x29 #define VK_PRINT 0x2A #define WM_SPOOLERSTATUS 0x002A #define LANG_VIETNAMESE 0x2a #define VK_EXECUTE 0x2B #define WM_DRAWITEM 0x002B #define LANG_ARMENIAN 0x2b #define VK_SNAPSHOT 0x2C #define WM_MEASUREITEM 0x002C #define LANG_AZERI 0x2c #define LANG_AZERBAIJANI 0x2c #define VK_INSERT 0x2D #define WM_DELETEITEM 0x002D #define LANG_BASQUE 0x2d #define VK_DELETE 0x2E #define WM_VKEYTOITEM 0x002E #define LANG_LOWER_SORBIAN 0x2e #define LANG_UPPER_SORBIAN 0x2e #define VK_HELP 0x2F #define WM_CHARTOITEM 0x002F #define LANG_MACEDONIAN 0x2f #define WM_SETFONT 0x0030 #define WM_GETFONT 0x0031 #define WM_SETHOTKEY 0x0032 #define LANG_TSWANA 0x32 #define WM_GETHOTKEY 0x0033 #define LANG_XHOSA 0x34 #define LANG_ZULU 0x35 #define LANG_AFRIKAANS 0x36 #define WM_QUERYDRAGICON 0x0037 #define LANG_GEORGIAN 0x37 #define LANG_FAEROESE 0x38 #define WM_COMPAREITEM 0x0039 #define LANG_HINDI 0x39 #define LANG_MALTESE 0x3a #define LANG_SAMI 0x3b #define LANG_IRISH 0x3c #define WM_GETOBJECT 0x003D #define LANG_MALAY 0x3e #define LANG_KAZAK 0x3f #define WVR_ALIGNBOTTOM 0x0040 #define MK_XBUTTON2 0x0040 #define CS_CLASSDC 0x0040 #define HDS_DRAGDROP 0x0040 #define BTNS_SHOWTEXT 0x0040 #define TTS_BALLOON 0x40 #define TBS_FIXEDLENGTH 0x0040 #define UDS_HORZ 0x0040 #define LVS_SHAREIMAGELISTS 0x0040 #define TVS_RTLREADING 0x0040 #define TVS_EX_FADEINOUTEXPANDOS 0x0040 #define TCS_HOTTRACK 0x0040 #define MCS_NOTRAILINGDATES 0x0040 #define LANG_KYRGYZ 0x40 #define WM_COMPACTING 0x0041 #define LANG_SWAHILI 0x41 #define LANG_TURKMEN 0x42 #define LANG_UZBEK 0x43 #define WM_COMMNOTIFY 0x0044 #define LANG_TATAR 0x44 #define LANG_BANGLA 0x45 #define LANG_BENGALI 0x45 #define WM_WINDOWPOSCHANGING 0x0046 #define LANG_PUNJABI 0x46 #define WM_WINDOWPOSCHANGED 0x0047 #define LANG_GUJARATI 0x47 #define WM_POWER 0x0048 #define LANG_ODIA 0x48 #define LANG_ORIYA 0x48 #define LANG_TAMIL 0x49 #define WM_COPYDATA 0x004A #define LANG_TELUGU 0x4a #define WM_CANCELJOURNAL 0x004B #define LANG_KANNADA 0x4b #define LANG_MALAYALAM 0x4c #define LANG_ASSAMESE 0x4d #define WM_NOTIFY 0x004E #define LANG_MARATHI 0x4e #define LANG_SANSKRIT 0x4f #define WM_INPUTLANGCHANGEREQUEST 0x0050 #define LANG_MONGOLIAN 0x50 #define WM_INPUTLANGCHANGE 0x0051 #define LANG_TIBETAN 0x51 #define WM_TCARD 0x0052 #define LANG_WELSH 0x52 #define WM_HELP 0x0053 #define LANG_KHMER 0x53 #define WM_USERCHANGED 0x0054 #define LANG_LAO 0x54 #define WM_NOTIFYFORMAT 0x0055 #define LANG_GALICIAN 0x56 #define LANG_KONKANI 0x57 #define LANG_MANIPURI 0x58 #define LANG_SINDHI 0x59 #define LANG_SYRIAC 0x5a #define VK_LWIN 0x5B #define LANG_SINHALESE 0x5b #define VK_RWIN 0x5C #define LANG_CHEROKEE 0x5c #define VK_APPS 0x5D #define LANG_INUKTITUT 0x5d #define LANG_AMHARIC 0x5e #define VK_SLEEP 0x5F #define LANG_TAMAZIGHT 0x5f #define VK_NUMPAD0 0x60 #define LANG_KASHMIRI 0x60 #define VK_NUMPAD1 0x61 #define LANG_NEPALI 0x61 #define VK_NUMPAD2 0x62 #define LANG_FRISIAN 0x62 #define VK_NUMPAD3 0x63 #define LANG_PASHTO 0x63 #define WINAPI_FAMILY_DESKTOP_APP 100 #define VK_NUMPAD4 0x64 #define LANG_FILIPINO 0x64 #define VS_USER_DEFINED 100 #define VK_NUMPAD5 0x65 #define LANG_DIVEHI 0x65 #define VK_NUMPAD6 0x66 #define VK_NUMPAD7 0x67 #define LANG_FULAH 0x67 #define LANG_PULAR 0x67 #define VK_NUMPAD8 0x68 #define LANG_HAUSA 0x68 #define VK_NUMPAD9 0x69 #define VK_MULTIPLY 0x6A #define LANG_YORUBA 0x6a #define VK_ADD 0x6B #define LANG_QUECHUA 0x6b #define VK_SEPARATOR 0x6C #define LANG_SOTHO 0x6c #define VK_SUBTRACT 0x6D #define LANG_BASHKIR 0x6d #define VK_DECIMAL 0x6E #define LANG_LUXEMBOURGISH 0x6e #define VK_DIVIDE 0x6F #define LANG_GREENLANDIC 0x6f #define VK_F1 0x70 #define LANG_IGBO 0x70 #define VK_F2 0x71 #define VK_F3 0x72 #define VK_F4 0x73 #define LANG_TIGRIGNA 0x73 #define LANG_TIGRINYA 0x73 #define VK_F5 0x74 #define VK_F6 0x75 #define LANG_HAWAIIAN 0x75 #define VK_F7 0x76 #define VK_F8 0x77 #define VK_F9 0x78 #define WHEEL_DELTA 120 #define LANG_YI 0x78 #define VK_F10 0x79 #define VK_F11 0x7A #define LANG_MAPUDUNGUN 0x7a #define VK_F12 0x7B #define WM_CONTEXTMENU 0x007B #define VK_F13 0x7C #define WM_STYLECHANGING 0x007C #define LANG_MOHAWK 0x7c #define VK_F14 0x7D #define WM_STYLECHANGED 0x007D #define VK_F15 0x7E #define WM_DISPLAYCHANGE 0x007E #define LANG_BRETON 0x7e #define VK_F16 0x7F #define WM_GETICON 0x007F #define LANG_INVARIANT 0x7f #define VK_F17 0x80 #define WM_SETICON 0x0080 #define WVR_ALIGNRIGHT 0x0080 #define CS_PARENTDC 0x0080 #define CF_OWNERDISPLAY 0x0080 #define HDS_FULLDRAG 0x0080 #define BTNS_WHOLEDROPDOWN 0x0080 #define TTS_CLOSE 0x80 #define TBS_NOTHUMB 0x0080 #define UDS_NOTHOUSANDS 0x0080 #define LVS_NOLABELWRAP 0x0080 #define TVS_NOTOOLTIPS 0x0080 #define TVS_EX_PARTIALCHECKBOXES 0x0080 #define TCS_VERTICAL 0x0080 #define MCS_SHORTDAYSOFWEEK 0x0080 #define LANG_UIGHUR 0x80 #define VK_F18 0x81 #define WM_NCCREATE 0x0081 #define CF_DSPTEXT 0x0081 #define LANG_MAORI 0x81 #define VK_F19 0x82 #define WM_NCDESTROY 0x0082 #define CF_DSPBITMAP 0x0082 #define LANG_OCCITAN 0x82 #define VK_F20 0x83 #define WM_NCCALCSIZE 0x0083 #define CF_DSPMETAFILEPICT 0x0083 #define LANG_CORSICAN 0x83 #define VK_F21 0x84 #define WM_NCHITTEST 0x0084 #define LANG_ALSATIAN 0x84 #define VK_F22 0x85 #define WM_NCPAINT 0x0085 #define LANG_SAKHA 0x85 #define LANG_YAKUT 0x85 #define VK_F23 0x86 #define WM_NCACTIVATE 0x0086 #define LANG_KICHE 0x86 #define VK_F24 0x87 #define WM_GETDLGCODE 0x0087 #define LANG_KINYARWANDA 0x87 #define WM_SYNCPAINT 0x0088 #define LANG_WOLOF 0x88 #define LANG_DARI 0x8c #define CF_DSPENHMETAFILE 0x008E #define VK_NUMLOCK 0x90 #define VK_SCROLL 0x91 #define LANG_SCOTTISH_GAELIC 0x91 #define VK_OEM_NEC_EQUAL 0x92 #define VK_OEM_FJ_JISHO 0x92 #define LANG_CENTRAL_KURDISH 0x92 #define VK_OEM_FJ_MASSHOU 0x93 #define VK_OEM_FJ_TOUROKU 0x94 #define VK_OEM_FJ_LOYA 0x95 #define VK_OEM_FJ_ROYA 0x96 #define VK_LSHIFT 0xA0 #define WM_NCMOUSEMOVE 0x00A0 #define VK_RSHIFT 0xA1 #define WM_NCLBUTTONDOWN 0x00A1 #define VK_LCONTROL 0xA2 #define WM_NCLBUTTONUP 0x00A2 #define VK_RCONTROL 0xA3 #define WM_NCLBUTTONDBLCLK 0x00A3 #define VK_LMENU 0xA4 #define WM_NCRBUTTONDOWN 0x00A4 #define VK_RMENU 0xA5 #define WM_NCRBUTTONUP 0x00A5 #define VK_BROWSER_BACK 0xA6 #define WM_NCRBUTTONDBLCLK 0x00A6 #define VK_BROWSER_FORWARD 0xA7 #define WM_NCMBUTTONDOWN 0x00A7 #define VK_BROWSER_REFRESH 0xA8 #define WM_NCMBUTTONUP 0x00A8 #define VK_BROWSER_STOP 0xA9 #define WM_NCMBUTTONDBLCLK 0x00A9 #define VK_BROWSER_SEARCH 0xAA #define VK_BROWSER_FAVORITES 0xAB #define WM_NCXBUTTONDOWN 0x00AB #define VK_BROWSER_HOME 0xAC #define WM_NCXBUTTONUP 0x00AC #define VK_VOLUME_MUTE 0xAD #define WM_NCXBUTTONDBLCLK 0x00AD #define VK_VOLUME_DOWN 0xAE #define VK_VOLUME_UP 0xAF #define VK_MEDIA_NEXT_TRACK 0xB0 #define EM_GETSEL 0x00B0 #define VK_MEDIA_PREV_TRACK 0xB1 #define EM_SETSEL 0x00B1 #define VK_MEDIA_STOP 0xB2 #define EM_GETRECT 0x00B2 #define VK_MEDIA_PLAY_PAUSE 0xB3 #define EM_SETRECT 0x00B3 #define VK_LAUNCH_MAIL 0xB4 #define EM_SETRECTNP 0x00B4 #define VK_LAUNCH_MEDIA_SELECT 0xB5 #define EM_SCROLL 0x00B5 #define VK_LAUNCH_APP1 0xB6 #define EM_LINESCROLL 0x00B6 #define VK_LAUNCH_APP2 0xB7 #define EM_SCROLLCARET 0x00B7 #define EM_GETMODIFY 0x00B8 #define EM_SETMODIFY 0x00B9 #define VK_OEM_1 0xBA #define EM_GETLINECOUNT 0x00BA #define VK_OEM_PLUS 0xBB #define EM_LINEINDEX 0x00BB #define VK_OEM_COMMA 0xBC #define EM_SETHANDLE 0x00BC #define VK_OEM_MINUS 0xBD #define EM_GETHANDLE 0x00BD #define VK_OEM_PERIOD 0xBE #define EM_GETTHUMB 0x00BE #define VK_OEM_2 0xBF #define VK_OEM_3 0xC0 #define EM_LINELENGTH 0x00C1 #define EM_REPLACESEL 0x00C2 #define EM_GETLINE 0x00C4 #define EM_LIMITTEXT 0x00C5 #define EM_CANUNDO 0x00C6 #define EM_UNDO 0x00C7 #define EM_FMTLINES 0x00C8 #define EM_LINEFROMCHAR 0x00C9 #define EM_SETTABSTOPS 0x00CB #define EM_SETPASSWORDCHAR 0x00CC #define EM_EMPTYUNDOBUFFER 0x00CD #define EM_GETFIRSTVISIBLELINE 0x00CE #define EM_SETREADONLY 0x00CF #define EM_SETWORDBREAKPROC 0x00D0 #define EM_GETWORDBREAKPROC 0x00D1 #define EM_GETPASSWORDCHAR 0x00D2 #define EM_SETMARGINS 0x00D3 #define EM_GETMARGINS 0x00D4 #define EM_GETLIMITTEXT 0x00D5 #define EM_POSFROMCHAR 0x00D6 #define EM_CHARFROMPOS 0x00D7 #define EM_SETIMESTATUS 0x00D8 #define EM_GETIMESTATUS 0x00D9 #define VK_OEM_4 0xDB #define VK_OEM_5 0xDC #define VK_OEM_6 0xDD #define VK_OEM_7 0xDE #define VK_OEM_8 0xDF #define VK_OEM_AX 0xE1 #define VK_OEM_102 0xE2 #define VK_ICO_HELP 0xE3 #define VK_ICO_00 0xE4 #define VK_PROCESSKEY 0xE5 #define VK_ICO_CLEAR 0xE6 #define VK_PACKET 0xE7 #define VK_OEM_RESET 0xE9 #define VK_OEM_JUMP 0xEA #define VK_OEM_PA1 0xEB #define VK_OEM_PA2 0xEC #define VK_OEM_PA3 0xED #define VK_OEM_WSCTRL 0xEE #define VK_OEM_CUSEL 0xEF #define VK_OEM_ATTN 0xF0 #define BM_GETCHECK 0x00F0 #define VK_OEM_FINISH 0xF1 #define BM_SETCHECK 0x00F1 #define VK_OEM_COPY 0xF2 #define BM_GETSTATE 0x00F2 #define VK_OEM_AUTO 0xF3 #define BM_SETSTATE 0x00F3 #define VK_OEM_ENLW 0xF4 #define BM_SETSTYLE 0x00F4 #define VK_OEM_BACKTAB 0xF5 #define BM_CLICK 0x00F5 #define VK_ATTN 0xF6 #define BM_GETIMAGE 0x00F6 #define VK_CRSEL 0xF7 #define BM_SETIMAGE 0x00F7 #define VK_EXSEL 0xF8 #define BM_SETDONTCLICK 0x00F8 #define VK_EREOF 0xF9 #define VK_PLAY 0xFA #define VK_ZOOM 0xFB #define VK_NONAME 0xFC #define VK_PA1 0xFD #define VK_OEM_CLEAR 0xFE #define WM_INPUT_DEVICE_CHANGE 0x00FE #define SUBVERSION_MASK 0x000000FF #define WM_INPUT 0x00FF #define WM_KEYFIRST 0x0100 #define WM_KEYDOWN 0x0100 #define WVR_HREDRAW 0x0100 #define HDS_FILTERBAR 0x0100 #define TBSTYLE_TOOLTIPS 0x0100 #define RBS_TOOLTIPS 0x00000100 #define TTS_USEVISUALSTYLE 0x100 #define SBARS_SIZEGRIP 0x0100 #define TBS_TOOLTIPS 0x0100 #define UDS_HOTTRACK 0x0100 #define LVS_AUTOARRANGE 0x0100 #define TVS_CHECKBOXES 0x0100 #define TVS_EX_EXCLUSIONCHECKBOXES 0x0100 #define TCS_BUTTONS 0x0100 #define MCS_NOSELCHANGEONNAV 0x0100 #define WM_KEYUP 0x0101 #define WM_CHAR 0x0102 #define WM_DEADCHAR 0x0103 #define WM_SYSKEYDOWN 0x0104 #define WM_SYSKEYUP 0x0105 #define WM_SYSCHAR 0x0106 #define WM_SYSDEADCHAR 0x0107 #define WM_UNICHAR 0x0109 #define WM_KEYLAST 0x0109 #define WM_IME_STARTCOMPOSITION 0x010D #define WM_IME_ENDCOMPOSITION 0x010E #define WM_IME_COMPOSITION 0x010F #define WM_IME_KEYLAST 0x010F #define WM_INITDIALOG 0x0110 #define WM_COMMAND 0x0111 #define WM_SYSCOMMAND 0x0112 #define WM_TIMER 0x0113 #define WM_HSCROLL 0x0114 #define WM_VSCROLL 0x0115 #define WM_INITMENU 0x0116 #define WM_INITMENUPOPUP 0x0117 #define WM_GESTURE 0x0119 #define WM_GESTURENOTIFY 0x011A #define WM_MENUSELECT 0x011F #define WM_MENUCHAR 0x0120 #define WM_ENTERIDLE 0x0121 #define WM_MENURBUTTONUP 0x0122 #define WM_MENUDRAG 0x0123 #define WM_MENUGETOBJECT 0x0124 #define WM_UNINITMENUPOPUP 0x0125 #define WM_MENUCOMMAND 0x0126 #define WM_CHANGEUISTATE 0x0127 #define WM_UPDATEUISTATE 0x0128 #define WM_QUERYUISTATE 0x0129 #define WM_CTLCOLORMSGBOX 0x0132 #define WM_CTLCOLOREDIT 0x0133 #define WM_CTLCOLORLISTBOX 0x0134 #define WM_CTLCOLORBTN 0x0135 #define WM_CTLCOLORDLG 0x0136 #define WM_CTLCOLORSCROLLBAR 0x0137 #define WM_CTLCOLORSTATIC 0x0138 #define MN_GETHMENU 0x01E1 #define _WIN32_IE_IE20 0x0200 #define WM_MOUSEFIRST 0x0200 #define WM_MOUSEMOVE 0x0200 #define WVR_VREDRAW 0x0200 #define CS_NOCLOSE 0x0200 #define CF_PRIVATEFIRST 0x0200 #define HDS_FLAT 0x0200 #define TBSTYLE_WRAPABLE 0x0200 #define RBS_VARHEIGHT 0x00000200 #define TBS_REVERSED 0x0200 #define LVS_EDITLABELS 0x0200 #define TVS_TRACKSELECT 0x0200 #define TVS_EX_DIMMEDCHECKBOXES 0x0200 #define TCS_MULTILINE 0x0200 #define WM_LBUTTONDOWN 0x0201 #define WM_LBUTTONUP 0x0202 #define WM_LBUTTONDBLCLK 0x0203 #define WM_RBUTTONDOWN 0x0204 #define WM_RBUTTONUP 0x0205 #define WM_RBUTTONDBLCLK 0x0206 #define WM_MBUTTONDOWN 0x0207 #define WM_MBUTTONUP 0x0208 #define WM_MBUTTONDBLCLK 0x0209 #define WM_MOUSEWHEEL 0x020A #define WM_XBUTTONDOWN 0x020B #define WM_XBUTTONUP 0x020C #define WM_XBUTTONDBLCLK 0x020D #define WM_MOUSEHWHEEL 0x020E #define WM_MOUSELAST 0x020E #define WM_PARENTNOTIFY 0x0210 #define WM_ENTERMENULOOP 0x0211 #define WM_EXITMENULOOP 0x0212 #define WM_NEXTMENU 0x0213 #define WM_SIZING 0x0214 #define WM_CAPTURECHANGED 0x0215 #define WM_MOVING 0x0216 #define WM_POWERBROADCAST 0x0218 #define WM_DEVICECHANGE 0x0219 #define WM_MDICREATE 0x0220 #define WM_MDIDESTROY 0x0221 #define WM_MDIACTIVATE 0x0222 #define WM_MDIRESTORE 0x0223 #define WM_MDINEXT 0x0224 #define WM_MDIMAXIMIZE 0x0225 #define WM_MDITILE 0x0226 #define WM_MDICASCADE 0x0227 #define WM_MDIICONARRANGE 0x0228 #define WM_MDIGETACTIVE 0x0229 #define WM_MDISETMENU 0x0230 #define WM_ENTERSIZEMOVE 0x0231 #define WM_EXITSIZEMOVE 0x0232 #define WM_DROPFILES 0x0233 #define WM_MDIREFRESHMENU 0x0234 #define WM_POINTERDEVICECHANGE 0x238 #define WM_POINTERDEVICEINRANGE 0x239 #define WM_POINTERDEVICEOUTOFRANGE 0x23A #define WM_TOUCH 0x0240 #define WM_NCPOINTERUPDATE 0x0241 #define WM_NCPOINTERDOWN 0x0242 #define WM_NCPOINTERUP 0x0243 #define WM_POINTERUPDATE 0x0245 #define WM_POINTERDOWN 0x0246 #define WM_POINTERUP 0x0247 #define WM_POINTERENTER 0x0249 #define WM_POINTERLEAVE 0x024A #define WM_POINTERACTIVATE 0x024B #define WM_POINTERCAPTURECHANGED 0x024C #define WM_TOUCHHITTESTING 0x024D #define WM_POINTERWHEEL 0x024E #define WM_POINTERHWHEEL 0x024F #define DM_POINTERHITTEST 0x0250 #define WM_IME_SETCONTEXT 0x0281 #define WM_IME_NOTIFY 0x0282 #define WM_IME_CONTROL 0x0283 #define WM_IME_COMPOSITIONFULL 0x0284 #define WM_IME_SELECT 0x0285 #define WM_IME_CHAR 0x0286 #define WM_IME_REQUEST 0x0288 #define WM_IME_KEYDOWN 0x0290 #define WM_IME_KEYUP 0x0291 #define WM_NCMOUSEHOVER 0x02A0 #define WM_MOUSEHOVER 0x02A1 #define WM_NCMOUSELEAVE 0x02A2 #define WM_MOUSELEAVE 0x02A3 #define WM_WTSSESSION_CHANGE 0x02B1 #define WM_TABLET_FIRST 0x02c0 #define WM_TABLET_LAST 0x02df #define WM_DPICHANGED 0x02E0 #define CF_PRIVATELAST 0x02FF #define _WIN32_IE_IE30 0x0300 #define WM_CUT 0x0300 #define CF_GDIOBJFIRST 0x0300 #define WM_COPY 0x0301 #define _WIN32_IE_IE302 0x0302 #define WM_PASTE 0x0302 #define WM_CLEAR 0x0303 #define WM_UNDO 0x0304 #define WM_RENDERFORMAT 0x0305 #define WM_RENDERALLFORMATS 0x0306 #define WM_DESTROYCLIPBOARD 0x0307 #define WM_DRAWCLIPBOARD 0x0308 #define WM_PAINTCLIPBOARD 0x0309 #define WM_VSCROLLCLIPBOARD 0x030A #define WM_SIZECLIPBOARD 0x030B #define WM_ASKCBFORMATNAME 0x030C #define WM_CHANGECBCHAIN 0x030D #define WM_HSCROLLCLIPBOARD 0x030E #define WM_QUERYNEWPALETTE 0x030F #define WM_PALETTEISCHANGING 0x0310 #define WM_PALETTECHANGED 0x0311 #define WM_HOTKEY 0x0312 #define WM_PRINT 0x0317 #define WM_PRINTCLIENT 0x0318 #define WM_APPCOMMAND 0x0319 #define WM_THEMECHANGED 0x031A #define WM_CLIPBOARDUPDATE 0x031D #define WM_DWMCOMPOSITIONCHANGED 0x031E #define WM_DWMNCRENDERINGCHANGED 0x031F #define WM_DWMCOLORIZATIONCOLORCHANGED 0x0320 #define WM_DWMWINDOWMAXIMIZEDCHANGE 0x0321 #define WM_DWMSENDICONICTHUMBNAIL 0x0323 #define WM_DWMSENDICONICLIVEPREVIEWBITMAP 0x0326 #define WM_GETTITLEBARINFOEX 0x033F #define WM_HANDHELDFIRST 0x0358 #define WM_HANDHELDLAST 0x035F #define WM_AFXFIRST 0x0360 #define WM_AFXLAST 0x037F #define WM_PENWINFIRST 0x0380 #define WM_PENWINLAST 0x038F #define WM_DDE_FIRST 0x03E0 #define CF_GDIOBJLAST 0x03FF #define _WIN32_WINNT_NT4 0x0400 #define _WIN32_IE_IE40 0x0400 #define WM_USER 0x0400 #define WVR_VALIDRECTS 0x0400 #define HDS_CHECKBOXES 0x0400 #define TBSTYLE_ALTDRAG 0x0400 #define RBS_BANDBORDERS 0x00000400 #define TBS_DOWNISLEFT 0x0400 #define LVS_OWNERDRAWFIXED 0x0400 #define TVS_SINGLEEXPAND 0x0400 #define TVS_EX_DRAWIMAGEASYNC 0x0400 #define TCS_FIXEDWIDTH 0x0400 #define ctlFirst 0x0400 #define psh1 0x0400 #define _WIN32_IE_IE401 0x0401 #define psh2 0x0401 #define psh3 0x0402 #define psh4 0x0403 #define psh5 0x0404 #define psh6 0x0405 #define psh7 0x0406 #define psh8 0x0407 #define psh9 0x0408 #define psh10 0x0409 #define psh11 0x040a #define psh12 0x040b #define psh13 0x040c #define psh14 0x040d #define psh15 0x040e #define psh16 0x040f #define _WIN32_WINDOWS 0x0410 #define chx1 0x0410 #define chx2 0x0411 #define chx3 0x0412 #define chx4 0x0413 #define chx5 0x0414 #define chx6 0x0415 #define chx7 0x0416 #define chx8 0x0417 #define chx9 0x0418 #define chx10 0x0419 #define chx11 0x041a #define chx12 0x041b #define chx13 0x041c #define chx14 0x041d #define chx15 0x041e #define chx16 0x041f #define rad1 0x0420 #define rad2 0x0421 #define rad3 0x0422 #define rad4 0x0423 #define rad5 0x0424 #define rad6 0x0425 #define rad7 0x0426 #define rad8 0x0427 #define rad9 0x0428 #define rad10 0x0429 #define rad11 0x042a #define rad12 0x042b #define rad13 0x042c #define rad14 0x042d #define rad15 0x042e #define rad16 0x042f #define grp1 0x0430 #define grp2 0x0431 #define grp3 0x0432 #define grp4 0x0433 #define frm1 0x0434 #define frm2 0x0435 #define frm3 0x0436 #define frm4 0x0437 #define rct1 0x0438 #define rct2 0x0439 #define rct3 0x043a #define rct4 0x043b #define ico1 0x043c #define ico2 0x043d #define ico3 0x043e #define ico4 0x043f #define stc1 0x0440 #define stc2 0x0441 #define stc3 0x0442 #define stc4 0x0443 #define stc5 0x0444 #define stc6 0x0445 #define stc7 0x0446 #define stc8 0x0447 #define stc9 0x0448 #define stc10 0x0449 #define stc11 0x044a #define stc12 0x044b #define stc13 0x044c #define stc14 0x044d #define stc15 0x044e #define stc16 0x044f #define stc17 0x0450 #define stc18 0x0451 #define stc19 0x0452 #define stc20 0x0453 #define stc21 0x0454 #define stc22 0x0455 #define stc23 0x0456 #define stc24 0x0457 #define stc25 0x0458 #define stc26 0x0459 #define stc27 0x045a #define stc28 0x045b #define stc29 0x045c #define stc30 0x045d #define stc31 0x045e #define stc32 0x045f #define lst1 0x0460 #define lst2 0x0461 #define lst3 0x0462 #define lst4 0x0463 #define lst5 0x0464 #define lst6 0x0465 #define lst7 0x0466 #define lst8 0x0467 #define lst9 0x0468 #define lst10 0x0469 #define lst11 0x046a #define lst12 0x046b #define lst13 0x046c #define lst14 0x046d #define lst15 0x046e #define lst16 0x046f #define cmb1 0x0470 #define cmb2 0x0471 #define cmb3 0x0472 #define cmb4 0x0473 #define cmb5 0x0474 #define cmb6 0x0475 #define cmb7 0x0476 #define cmb8 0x0477 #define cmb9 0x0478 #define cmb10 0x0479 #define cmb11 0x047a #define cmb12 0x047b #define cmb13 0x047c #define cmb14 0x047d #define cmb15 0x047e #define cmb16 0x047f #define edt1 0x0480 #define edt2 0x0481 #define edt3 0x0482 #define edt4 0x0483 #define edt5 0x0484 #define edt6 0x0485 #define edt7 0x0486 #define edt8 0x0487 #define edt9 0x0488 #define edt10 0x0489 #define edt11 0x048a #define edt12 0x048b #define edt13 0x048c #define edt14 0x048d #define edt15 0x048e #define edt16 0x048f #define scr1 0x0490 #define scr2 0x0491 #define scr3 0x0492 #define scr4 0x0493 #define scr5 0x0494 #define scr6 0x0495 #define scr7 0x0496 #define scr8 0x0497 #define ctl1 0x04A0 #define ctlLast 0x04ff #define _WIN32_WINNT_WIN2K 0x0500 #define _WIN32_IE_IE50 0x0500 #define _WIN32_WINNT_WINXP 0x0501 #define _WIN32_IE_IE501 0x0501 #define _WIN32_WINNT_WS03 0x0502 #define _WIN32_IE_IE55 0x0550 #define _WIN32_WINNT_WIN6 0x0600 #define _WIN32_WINNT_VISTA 0x0600 #define _WIN32_WINNT_WS08 0x0600 #define _WIN32_WINNT_LONGHORN 0x0600 #define _WIN32_IE_IE60 0x0600 #define FILEOPENORD 1536 #define _WIN32_WINNT_WIN7 0x0601 #define _WIN32_IE_IE60SP1 0x0601 #define MULTIFILEOPENORD 1537 #define _WIN32_WINNT_WIN8 0x0602 #define _WIN32_IE_WS03 0x0602 #define PRINTDLGORD 1538 #define _WIN32_WINNT_WINBLUE 0x0603 #define _WIN32_IE_IE60SP2 0x0603 #define _WIN32_WINNT 0x0603 #define PRNSETUPDLGORD 1539 #define FINDDLGORD 1540 #define REPLACEDLGORD 1541 #define FONTDLGORD 1542 #define FORMATDLGORD31 1543 #define FORMATDLGORD30 1544 #define RUNDLGORD 1545 #define PAGESETUPDLGORD 1546 #define NEWFILEOPENORD 1547 #define PRINTDLGEXORD 1549 #define PAGESETUPDLGORDMOTIF 1550 #define COLORMGMTDLGORD 1551 #define NEWFILEOPENV2ORD 1552 #define NEWFILEOPENV3ORD 1553 #define NEWFORMATDLGWITHLINK 1591 #define IDC_MANAGE_LINK 1592 #define _WIN32_IE_IE70 0x0700 #define _WIN32_IE_IE80 0x0800 #define CS_SAVEBITS 0x0800 #define HDS_NOSIZING 0x0800 #define TBSTYLE_FLAT 0x0800 #define RBS_FIXEDORDER 0x00000800 #define SBARS_TOOLTIPS 0x0800 #define SBT_TOOLTIPS 0x0800 #define TBS_NOTIFYBEFOREMOVE 0x0800 #define LVS_ALIGNLEFT 0x0800 #define TVS_INFOTIP 0x0800 #define TCS_RAGGEDRIGHT 0x0800 #define _WIN32_IE_IE90 0x0900 #define _WIN32_IE_IE100 0x0A00 #define _WIN32_IE 0x0A00 #define LVS_ALIGNMASK 0x0c00 #define CS_BYTEALIGNCLIENT 0x1000 #define HDS_OVERFLOW 0x1000 #define TBSTYLE_LIST 0x1000 #define RBS_REGISTERDROP 0x00001000 #define TBS_TRANSPARENTBKGND 0x1000 #define LVS_OWNERDATA 0x1000 #define TVS_FULLROWSELECT 0x1000 #define TCS_FOCUSONBUTTONDOWN 0x1000 #define CS_BYTEALIGNWINDOW 0x2000 #define TBSTYLE_CUSTOMERASE 0x2000 #define RBS_AUTOSIZE 0x00002000 #define LVS_NOSCROLL 0x2000 #define TVS_NOSCROLL 0x2000 #define TCS_OWNERDRAWFIXED 0x2000 #define CS_GLOBALCLASS 0x4000 #define TBSTYLE_REGISTERDROP 0x4000 #define RBS_VERTICALGRIPPER 0x00004000 #define LVS_NOCOLUMNHEADER 0x4000 #define TVS_NONEVENHEIGHT 0x4000 #define TCS_TOOLTIPS 0x4000 #define IDH_NO_HELP 28440 #define IDH_MISSING_CONTEXT 28441 #define IDH_GENERIC_HELP_BUTTON 28442 #define IDH_OK 28443 #define IDH_CANCEL 28444 #define IDH_HELP 28445 #define LANG_BOSNIAN_NEUTRAL 0x781a #define LANG_CHINESE_TRADITIONAL 0x7c04 #define LANG_SERBIAN_NEUTRAL 0x7c1a #define IDTIMEOUT 32000 #define OCR_NORMAL 32512 #define OIC_SAMPLE 32512 #define IDI_APPLICATION 32512 #define OCR_IBEAM 32513 #define OIC_HAND 32513 #define IDI_HAND 32513 #define OCR_WAIT 32514 #define OIC_QUES 32514 #define IDI_QUESTION 32514 #define OCR_CROSS 32515 #define OIC_BANG 32515 #define IDI_EXCLAMATION 32515 #define OCR_UP 32516 #define OIC_NOTE 32516 #define IDI_ASTERISK 32516 #define OIC_WINLOGO 32517 #define IDI_WINLOGO 32517 #define OIC_SHIELD 32518 #define IDI_SHIELD 32518 #define OCR_SIZE 32640 #define OCR_ICON 32641 #define OCR_SIZENWSE 32642 #define OCR_SIZENESW 32643 #define OCR_SIZEWE 32644 #define OCR_SIZENS 32645 #define OCR_SIZEALL 32646 #define OCR_ICOCUR 32647 #define OCR_NO 32648 #define OCR_HAND 32649 #define OCR_APPSTARTING 32650 #define OBM_LFARROWI 32734 #define OBM_RGARROWI 32735 #define OBM_DNARROWI 32736 #define OBM_UPARROWI 32737 #define OBM_COMBO 32738 #define OBM_MNARROW 32739 #define OBM_LFARROWD 32740 #define OBM_RGARROWD 32741 #define OBM_DNARROWD 32742 #define OBM_UPARROWD 32743 #define OBM_RESTORED 32744 #define OBM_ZOOMD 32745 #define OBM_REDUCED 32746 #define OBM_RESTORE 32747 #define OBM_ZOOM 32748 #define OBM_REDUCE 32749 #define OBM_LFARROW 32750 #define OBM_RGARROW 32751 #define OBM_DNARROW 32752 #define OBM_UPARROW 32753 #define OBM_CLOSE 32754 #define OBM_OLD_RESTORE 32755 #define OBM_OLD_ZOOM 32756 #define OBM_OLD_REDUCE 32757 #define OBM_BTNCORNERS 32758 #define OBM_CHECKBOXES 32759 #define OBM_CHECK 32760 #define OBM_BTSIZE 32761 #define OBM_OLD_LFARROW 32762 #define OBM_OLD_RGARROW 32763 #define OBM_OLD_DNARROW 32764 #define OBM_OLD_UPARROW 32765 #define OBM_SIZE 32766 #define OBM_OLD_CLOSE 32767 #define WM_APP 0x8000 #define HELP_TCARD 0x8000 #define TBSTYLE_TRANSPARENT 0x8000 #define RBS_DBLCLKTOGGLE 0x00008000 #define LVS_NOSORTHEADER 0x8000 #define TVS_NOHSCROLL 0x8000 #define TCS_FOCUSNEVER 0x8000 #define SC_SIZE 0xF000 #define SC_SEPARATOR 0xF00F #define SC_MOVE 0xF010 #define SC_MINIMIZE 0xF020 #define SC_MAXIMIZE 0xF030 #define SC_NEXTWINDOW 0xF040 #define SC_PREVWINDOW 0xF050 #define SC_CLOSE 0xF060 #define SC_VSCROLL 0xF070 #define SC_HSCROLL 0xF080 #define SC_MOUSEMENU 0xF090 #define SC_KEYMENU 0xF100 #define SC_ARRANGE 0xF110 #define SC_RESTORE 0xF120 #define SC_TASKLIST 0xF130 #define SC_SCREENSAVE 0xF140 #define SC_HOTKEY 0xF150 #define SC_DEFAULT 0xF160 #define SC_MONITORPOWER 0xF170 #define SC_CONTEXTHELP 0xF180 #define LVS_TYPESTYLEMASK 0xfc00 #define SPVERSION_MASK 0x0000FF00 #define HTERROR -2 #define PWR_FAIL -1 #define UNICODE_NOCHAR 0xFFFF #define HTTRANSPARENT -1 // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 101 #define _APS_NEXT_COMMAND_VALUE 40001 #define _APS_NEXT_CONTROL_VALUE 1000 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif atanks-6.6/src/optionitemmenu.h0000644000175000017500000000446612636021030015005 0ustar apoapo#pragma once #ifndef ATANKS_SRC_OPTIONITEMMENU_H_INCLUDED #define ATANKS_SRC_OPTIONITEMMENU_H_INCLUDED /* * atanks - obliterate each other with oversize weapons * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "optionitembase.h" /** @file optionitemmenu.h * @brief declaration of the option entry class specialized on handling * Menu instances **/ /** @class OptionItemMenu * @brief abstract one option menu entry to handle a Menu instance * * This class is a special version of the OptionItem template that can only * handle Menu instances. * * The the only entry type supported is the ET_MENU. **/ class OptionItemMenu : public OptionItemBase { public: /* ------------------------------------------- * --- Public constructors and destructors --- * ------------------------------------------- */ explicit OptionItemMenu(Menu* menu_, const char* title_, int32_t titleIdx_, int32_t color_, int32_t top_, int32_t left_, int32_t width_, int32_t height_, int32_t padding_); virtual ~OptionItemMenu(); /* ---------------------- * --- Public methods --- * ---------------------- */ virtual int32_t activate (int32_t, int32_t, int32_t, int32_t); virtual bool canGoDown (); virtual bool canGoUp (); virtual void display (bool show_full); virtual bool isExitButton(); void setLanguage (); private: /* ----------------------- * --- Private members --- * ----------------------- */ Menu* menu = nullptr; //!< Menu instance to handle }; #endif // ATANKS_SRC_OPTIONITEMMENU_H_INCLUDED atanks-6.6/src/explosion.cpp0000644000175000017500000010154714066454637014330 0ustar apoapo/* * atanks - obliterate each other with oversize weapons * Copyright (C) 2003 Thomas Hudson * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "main.h" #include #include "environment.h" #include "globaldata.h" #include "explosion.h" #include "missile.h" #include "decor.h" #include "tank.h" #include "player.h" /// @brief constructor for all detonations that are not caused by BEAMs EXPLOSION::EXPLOSION (PLAYER* player_, double x_, double y_, double xv_, double yv_, int32_t type, bool is_weapon) : PHYSICAL_OBJECT(is_weapon), impact_xv(xv_), impact_yv(yv_) { xv = xv_; yv = yv_; if ( (TREMOR <= type) && (TECTONIC >= type) ) angle = GET_ANGLE(xv, yv); else angle = GET_SAFE_ANGLE(xv, yv, 0); player = player_; drag = 0.95; mass = 3; x = x_; y = y_; maxVel = env.maxVelocity * (1.20 + (mass / (.01 * MAX_POWER))); WEAPON* weap = nullptr; weapType = type; if (weapType < WEAPONS) weap = &weapon[weapType]; else weap = &naturals[weapType - WEAPONS]; radius = weap->radius; etime = weap->etime; damage = weap->damage; if ( ( (SHAPED_CHARGE <= weapType) && (CUTTER >= weapType) ) || ( DRILLER == weapType) ) { // Uses FlameFront explo_w = FLAME_W; explo_h = FLAME_H; centre_x = FLAME_CX; centre_y = FLAME_CY; flame_w = static_cast(radius) * 2.f; flame_h = static_cast(radius) / 10.f; } else { // explo_* and centre_* are already set flame_w = static_cast(radius) * 2.f; flame_h = static_cast(radius) * 2.f; } scale = static_cast(radius) / centre_x; // make sure dirt appears on the screen, not above the playing area, // and all other explosions at least reach into the area: int32_t minHeightMiss = MENUHEIGHT + (env.isBoxed ? 1 : 0); int32_t minHeightDirt = minHeightMiss + radius; if ( (weapType >= DIRT_BALL) && (weapType <= SMALL_DIRT_SPREAD) ) { if (y < minHeightDirt) y = minHeightDirt; } else if ( (y < minHeightMiss) && ( !env.isBoxed || !env.do_box_wrap || (WALL_WRAP != env.current_wallType) ) ) y = minHeightMiss; // For all others // Some weapons have no damage to apply: // Note: Napalm Jellies deal damage over time and not at once. if ( (NAPALM_JELLY == weapType) || ( (weapType >= RIOT_BOMB) && (weapType <= CLUSTER_MIRV) ) ) { // Riot weapons must set who caused falling damage, but the // others do not trigger any if ( (NAPALM_JELLY == weapType) || (weapType >= DIRT_BALL) ) apply_damage = false; // Neither of these would throw debris or clear terrain // (Note: Riot weapons need a special trigger to clear terrain once.) hasThrown = true; hasCleared = true; } else if (env.debris_level > 0) { maxDebris = (radius * 2) / (8 - (2 * env.debris_level)); maxFrame = 2 + (2 * env.debris_level); // Tremor, Shockwave and Tectonic Shift must not throw debris around if ( (TREMOR <= weapType) && (TECTONIC >= weapType)) maxDebris = 0; else if (maxDebris < 5) maxDebris = 5; } // Lasers and beams do only issue a tiny explosion to add the // dirt throw effect and some boom bang. if ( ( (weapType >= SML_LAZER) && (weapType <= LRG_LAZER) ) || ( (weapType >= SML_LIGHTNING) && (weapType <= LRG_LIGHTNING) ) ) { apply_damage = false; etime = 0; if (radius < 2) radius = 2; maxDebris /= radius; if (maxDebris < 3) maxDebris = 3; else if (maxDebris > 6) maxDebris = 6; } // Napalm Jellies need a bit more variation: if (NAPALM_JELLY == weapType) curFrame = ( (rand() % (2 * env.frames_per_second)) - env.frames_per_second) / etime; // Unless this is a napalm jelly, that does not clear away any dirt, // lock our field of devastation so no sliding into the explosion occurs else global.addLandSlide(x - radius - 1, x + radius + 1, true); // Add to the chain: global.addObject(this); } /// This one is just for the beam and lightning dirt mills. EXPLOSION::EXPLOSION (PLAYER* player_, double x_, double y_, double xv_, double yv_, int32_t type, double damage_, bool is_weapon) : // delegate base settings EXPLOSION(player_, x_, y_, xv_, yv_, type, is_weapon) { damage = damage_; } /// @brief default dtor EXPLOSION::~EXPLOSION () { // If this is a tremor, the land slide has to be released if ( (TREMOR <= weapType) && (TECTONIC >= weapType)) global.unlockLandSlide(dim_cur.x, dim_cur.x + dim_cur.w); // Take out of the chain: global.removeObject(this); } /// @brief Physics for the Napalm Jelly, the only explosion that can 'move' void EXPLOSION::applyPhysics () { if (NAPALM_JELLY == weapType) { if ( !global.skippingComputerPlay && !(rand() % (env.frames_per_second / 2)) ) { try { new DECOR (x, y, 0, -2. * env.gravity * env.FPS_mod, radius / 2, DECOR_SMOKE, 0); } catch (std::exception) { /* No reason to fuss, its just smoke. */ } } // Instead of the radius, the current blob size is used // for hit and damage calculation. Thus a tank that is only // grazed by the full blob receives a lot less damage. double blobSize = radius - ( static_cast(curFrame) / static_cast(EXPLOSIONFRAMES) * radius) + 1.; if ( blobSize < 1.) blobSize = 1.; // Stop all movement if dirt is hit: bool can_move = (y < env.screenHeight); if (can_move && (y < (env.screenHeight - 1))) { if (PINK != getpixel (global.terrain, x, y + 1)) can_move = false; } if (can_move) { // If the dirt below is falling away, napalm can fall, too: PHYSICAL_OBJECT::applyPhysics(); // And falling napalm can be repulsed TANK* lt = nullptr; double xaccel = 0; double yaccel = 0; global.getHeadOfClass(CLASS_TANK, <); while (lt) { if (!lt->destroy) { if (lt->repulse (x + xv, y + yv, &xaccel, &yaccel, physType)) { xv += xaccel; yv += yaccel; } } lt->getNext(<); } } else { xv = 0.; yv = 0.; } // End of normal physics // Enable next round checking, because dirt can fall // away so the jelly might follow. hitSomething = false; // Napalm keeps burning, check all tanks double in_rate_x = 0.; double in_rate_y = 0.; TANK* lt = nullptr; double damage_mod = blobSize / static_cast(radius); global.getHeadOfClass(CLASS_TANK, <); while (lt) { if ( !lt->destroy && lt->isInEllipse(x, y, blobSize, blobSize, in_rate_x, in_rate_y) ) { double full_rate = in_rate_x * in_rate_y; // If the tank is hit enough for the Napalm to "attach", // stop all movement: if ( (full_rate > 0.9) && (y >= lt->y) ) { xv = 0.; yv = 0.; hitSomething = true; // Note: When the blob shrinks, it can "fall off". } // Napalm is *HOT*. Never do less than 50% damage if (full_rate < 0.5) full_rate = 0.5; // Apply damage, but do it per frame lt->addDamage(player, ( static_cast(damage) * damage_mod * full_rate * (player ? player->damageMultiplier : 1.) ) / static_cast(env.frames_per_second) ); } lt->getNext(<); } // End of looping tanks } // End of NAPALM_JELLY special physics } /// @brief draw the explosions according to weapon type and shape void EXPLOSION::draw() { if ( (curFrame > 1) && (curFrame <= (EXPLOSIONFRAMES + 1)) && (NAPALM_JELLY != weapType) ) { /* This group includes: * - all regular explosives, * - all items and naturals, * - tremor, shockwave and tectonic shift. */ int32_t flameIdx = curFrame - 2; int32_t rad = (radius * curFrame) / EXPLODEFRAMES; switch (weapType) { case SHAPED_CHARGE: case WIDE_BOY: case CUTTER: rotate_scaled_sprite (global.canvas, env.gfxData.flameFront[flameIdx], x - radius, y - (radius / 20), itofix (0), ftofix (static_cast(radius) / 300.) ); setUpdateArea (x - radius - 1, y - (radius / 20) - 1, (radius + 1) * 2, ((radius / 20) + 1) * 2); break; case DRILLER: rotate_scaled_sprite(global.canvas, env.gfxData.flameFront[flameIdx], x - radius, y - (radius / 20), itofix(192), ftofix(static_cast(radius) / 300.) ); setUpdateArea(x - (radius / 20) - 1, y - radius - 1, ((radius / 20) + 1) * 2, (radius + 1) * 2); break; case TREMOR: case SHOCKWAVE: case TECTONIC: if (curFrame <= (EXPLODEFRAMES + 1) ) { double tst_width = static_cast(curFrame) / static_cast(EXPLODEFRAMES) * static_cast(radius) / 3.; drawFracture (x, y, angle, static_cast(.75 + tst_width), radius * 1.75, (weapType - TREMOR + 1) * 3, 0); global.addLandSlide(dim_cur.x, dim_cur.x + dim_cur.w, true); } break; case RIOT_BOMB: case HVY_RIOT_BOMB: if (curFrame <= EXPLODEFRAMES) { int32_t colour = player ? player->color : BLUE; circlefill (global.terrain, x, y, rad, PINK); circle (global.canvas, x, y, rad, colour); setUpdateArea(x - radius - 1, y - radius - 1, (radius + 1) * 2, (radius + 1) * 2); } else if (!peaked) { // Do it here or the slide has an ugly delay. peaked = true; do_clear(); } break; case RIOT_CHARGE: case RIOT_BLAST: if (curFrame <= EXPLODEFRAMES) { double sx = x - env.slope[angle][0] * 15; double sy = y - env.slope[angle][1] * 15; int32_t x1 = sx + env.slope[(angle + 45) % 360][0] * rad; int32_t y1 = sy + env.slope[(angle + 45) % 360][1] * rad; int32_t x2 = sx + env.slope[(angle + 315) % 360][0] * rad; int32_t y2 = sy + env.slope[(angle + 315) % 360][1] * rad; triangle (global.canvas, sx, sy, x1, y1, x2, y2, player ? player->color : BLUE); triangle (global.terrain, sx, sy, x1, y1, x2, y2, PINK); setUpdateArea (sx - rad - 1, sy - rad - 1, (rad + 1) * 2, (rad + 1) * 2); global.addLandSlide(sx - rad - 1, sx + rad + 1, true); } else if (!peaked) { // Do it here or the slide has an ugly delay. peaked = true; do_clear(); } break; case SML_LAZER: case MED_LAZER: case LRG_LAZER: case SML_LIGHTNING: case MED_LIGHTNING: case LRG_LIGHTNING: setUpdateArea(x - radius - 1, y - radius - 1, (radius + 1) * 2, (radius + 1) * 2); break; case PERCENT_BOMB: default: if ( (weapType <= LAST_EXPLOSIVE) || (weapType >= WEAPONS) || (weapType == PERCENT_BOMB) ) { rotate_scaled_sprite(global.canvas, env.gfxData.explosions[flameIdx], x - radius, y - radius, itofix (0), ftofix (static_cast(radius) / 107.) ); setUpdateArea(x - radius - 1, y - radius - 1, (radius + 1) * 2, (radius + 1) * 2); } else if (curFrame <= EXPLODEFRAMES) { if ( !peaked && (weapType >= DIRT_BALL) && (weapType <= SMALL_DIRT_SPREAD) ) { BITMAP* tmp = create_bitmap(rad * 2, rad * 2); // for mixing int32_t colour = player ? player->color : GREEN; clear_to_color(tmp, PINK); if (global.skippingComputerPlay) circlefill(tmp, rad, rad, rad - 1, colour); else { float fR = static_cast(getr(colour)); float fG = static_cast(getg(colour)); float fB = static_cast(getb(colour)); float fRad = static_cast(rad); for (float r = fRad - 1.f; r > .998f; r -= 1.f) circlefill(tmp, rad, rad, static_cast(r), makecol( static_cast(fR * (r / fRad) ), static_cast(fG * (r / fRad) ), static_cast(fB * (r / fRad) ) )); } // copy terrain over explosion masked_blit(global.terrain, tmp, x - rad, y - rad, 0, 0, rad * 2, rad * 2); // blit back exploded terrain masked_blit(tmp, global.terrain, 0, 0, x - rad, y - rad, rad * 2, rad * 2); destroy_bitmap(tmp); setUpdateArea (x - rad - 1, y - rad - 1, (rad + 1) * 2, (rad + 1) * 2); } else if (REDUCER == weapType) { int32_t col_front = player ? player->color : SILVER; int32_t col_back = GetShadeColor(PURPLE, false, col_front); int32_t col_mid = makecol ( (getr(col_front) + getr(col_back)) / 2, (getg(col_front) + getg(col_back)) / 2, (getb(col_front) + getb(col_back)) / 2); circlefill (global.canvas, x, y, rad, col_front); for (int32_t i = 1 + (curFrame % 2); i < rad; i += 2) circle(global.canvas, x, y, i, i < (rad / 2) ? col_mid : col_back); setUpdateArea(x - rad - 1, y - rad - 1, (rad + 1) * 2, (rad + 1) * 2); } else if (THEFT_BOMB == weapType) { int32_t col_front = GOLD; int32_t col_back = GetShadeColor(BLACK, false, col_front); circlefill(global.canvas, x, y, rad, col_front); circle (global.canvas, x, y, rad / 2, col_back); setUpdateArea(x - rad - 1, y - rad - 1, (rad + 1) * 2, (rad + 1) * 2); } else { // This is something else. But what? fprintf(stderr, "EXPLOSION::draw() Unknown weapon type %d\n", weapType); circlefill (global.canvas, x, y, rad, RED); setUpdateArea (x - rad - 1, y - rad - 1, (rad + 1) * 2, (rad + 1) * 2); } } else if (!peaked && (curFrame > EXPLODEFRAMES) && (DIRT_BALL <= weapType) && (SUP_DIRT_BALL >= weapType) ) { // Do it here or the slide has an ugly delay. peaked = true; do_clear(); } break; } } else if (NAPALM_JELLY == weapType) { // The Jelly does not use flameFront and is drawn individually. int32_t blobSize = curFrame > 0 ? static_cast(radius - ( static_cast(curFrame) / static_cast(EXPLOSIONFRAMES) * radius)) + 1 : radius; if ( (blobSize > 0) && (curFrame <= (EXPLOSIONFRAMES + 1)) ) { if (blobSize < 2) // avoid circle size crash blobSize = 2; draw_Napalm_Blob(this, x, y, blobSize, curFrame); } } /// === Allow clearing once peaked on high enough frame === ///--------------------------------------------------------- if (!peaked && (curFrame > EXPLODEFRAMES) && (NAPALM_JELLY != weapType)) { peaked = true; do_clear(); } /// === Throw if the frame is in range and it has not thrown, yet === ///------------------------------------------------------------------- if ( !hasThrown && (curFrame > 1) && (curFrame <= EXPLOSIONFRAMES) && ( (weapType <= TECTONIC) || (weapType > REDUCER) ) && (NAPALM_JELLY != weapType) ) { do_throw(); // The tremor types do not need clearing! if ( (TREMOR > weapType) || (TECTONIC < weapType) ) do_clear(); } } /// @brief Draw recursive fractures void EXPLOSION::drawFracture(int32_t x, int32_t y, int32_t frac_angle, int32_t width, int32_t segmentLength, int32_t maxRecurse, int32_t recurseDepth) { double xLen = env.slope[frac_angle][1] * width; double yLen = env.slope[frac_angle][0] * width; int32_t x1 = x + xLen; int32_t y1 = y + yLen; int32_t x2 = x - xLen; int32_t y2 = y - yLen; int32_t x3 = x + (env.slope[frac_angle][0] * segmentLength); int32_t y3 = y + (env.slope[frac_angle][1] * segmentLength); triangle (global.terrain, x1, y1, x2, y2, x3, y3, PINK); if (!recurseDepth) { dim_cur.x = x1; dim_cur.y = y1; dim_cur.w = x1; dim_cur.h = y1; } else { dim_cur.x = std::min({x1, x2, x3, dim_cur.x}); dim_cur.y = std::min({y1, y2, y3, dim_cur.y}); dim_cur.w = std::max({x1, x2, x3, dim_cur.w}); dim_cur.h = std::max({y1, y2, y3, dim_cur.h}); } if (recurseDepth < maxRecurse) { for (int32_t branchCount = 0; branchCount < 3; ++branchCount) { if ( branchCount || (Noise(x + y + branchCount) < 0)) { int32_t reduction = 2; int32_t newAngle = frac_angle; switch(branchCount) { case 1: newAngle += 90 + (Noise (x + y + 25 + branchCount) * 22.5); reduction = ROUNDu(Noise(x + y + 1 + branchCount) * 4) + 3; break; case 2: newAngle += 270 + (Noise (x + y + 32 + branchCount) * 22.5); reduction = ROUNDu(Noise (x + y + 2 + branchCount) * 4) + 3; break; case 0: default: newAngle += Noise(x + y + 4) * 30; break; } while (newAngle < 0) newAngle += 360; newAngle %= 360; if (reduction < 2) reduction = 2; drawFracture (x3, y3, newAngle, width / reduction, segmentLength / reduction, maxRecurse, recurseDepth + 1); } } } // Calculate width and height, previously right and bottom if (!recurseDepth) { dim_cur.w -= dim_cur.x; dim_cur.h -= dim_cur.y; } } void EXPLOSION::explode () { /// === Time and frame advancement === ///------------------------------------ if (curFrame <= (EXPLOSIONFRAMES + 1) ) { if (++exclock > etime) { exclock = 0; ++curFrame; requireUpdate(); } } // End of time and frame advancement // Check whether the explosion ends: if (curFrame > (EXPLOSIONFRAMES + 1)) destroy = true; /// === Apply Damage if not done, yet === ///--------------------------------------- if (apply_damage) { // In this case the affected tanks must be checked first TANK* lt = nullptr; weaponType wType = static_cast(weapType); // But do not check dirt balls, they deal no damage if ( (DIRT_BALL > weapType) || (SUP_DIRT_BALL < weapType) ) { global.getHeadOfClass(CLASS_TANK, <); while (lt) { double dmg = get_hit_damage(lt, wType, x, y); if (dmg > 0.) { if (PERCENT_BOMB == weapType) lt->addDamage(player, dmg); // already set, no multiplier else if (REDUCER == weapType) // Note: dmg was set to a fake damage of 1.0 lt->player->damageMultiplier *= 0.667; // already checked else if ( (RIOT_BOMB <= weapType) && (RIOT_BLAST >= weapType) ) lt->addDamage(player, 0.); // So falling damage gets credited. else if ( (THEFT_BOMB == weapType) && (lt->player != player) ) { // Note: dmg was set to a fake damage of 1.0 int32_t max_amount = ROUND(player->damageMultiplier * THEFT_AMOUNT); int32_t amount = lt->player->money <= max_amount ? lt->player->money : max_amount; // you have? // We indicate the theft by a red string on top of the tank static char the_money[17] = { 0x0 }; snprintf(the_money, 16, "-$%s", Add_Comma(amount) ); if (!global.skippingComputerPlay) { // show how much the shooter gets try { new FLOATTEXT(the_money, lt->x, lt->y - 30, .0, -.5, RED, CENTRE, env.swayingText ? TS_HORIZONTAL : TS_NO_SWAY, 200, false); if (global.stage < STAGE_SCOREBOARD) global.updateMenu = true; } catch (...) { perror("tank.cpp: Failed allocating memory for" "money text in explode()."); } } lt->player->money -= amount; // the actual theft. player->money += amount; // money goes to the shooter. } else if (THEFT_BOMB != weapType) lt->addDamage(player, dmg * (player ? player->damageMultiplier : 1.) ); } // End of having damage to deal lt->getNext(<); } // End of looping tanks } // end of having no dirt ball apply_damage = false; } // End of handling damage } // ====================================== // === Private method implementations === // ====================================== /// @brief Clear the background (Display must be locked!) void EXPLOSION::do_clear() { if (hasCleared && hasSlid) return; // Use a calculated radius for pre-mature clearing int32_t rad = (radius * curFrame) / EXPLODEFRAMES; // If the radius is below 3, the early clearing would jeopardize // debris throwing, so opt out if the radius is much larger if ( (rad < 3) && (radius > 5) ) return; // Do not clear/slide more than the real radius if (rad > radius) rad = radius; // Raise rad so no flood of "(rad + 1)" calculations is needed. int32_t area_rad = rad + 1; if (!hasCleared) { // Now clear according to weapon type if ( (weapType >= SHAPED_CHARGE) && (weapType <= CUTTER) ) { int32_t yrad = (rad - 1) / 20; ellipsefill (global.terrain, x, y, rad, yrad, PINK); global.addLandSlide(x - area_rad, x + area_rad, true); addUpdateArea (x - area_rad, y - (yrad + 1), area_rad * 2, (yrad + 1) * 2); } else if (weapType == DRILLER) { int32_t xrad = rad / 20; ellipsefill (global.terrain, x, y, xrad, rad, PINK); global.addLandSlide(x - xrad - 1, x + xrad + 1, true); addUpdateArea (x - (xrad + 1), y - area_rad, (xrad + 1) * 2, area_rad * 2); } else if (( (weapType <= LAST_EXPLOSIVE) || (weapType >= WEAPONS) || (weapType == PERCENT_BOMB) || ( (weapType >= SML_LAZER) && (weapType <= LRG_LAZER) ) || ( (weapType >= SML_LIGHTNING) && (weapType <= LRG_LIGHTNING) ) ) && (NAPALM_JELLY != weapType) ) { circlefill (global.terrain, x, y, rad, PINK); global.addLandSlide(x - area_rad, x + area_rad, true); addUpdateArea (x - area_rad, y - area_rad, area_rad * 2, area_rad * 2); } } // End of clearing // If rad did not reach radius (yet), this isn't done if ( (rad >= radius) || peaked) { if (!hasSlid) { // Allow the land slide to happen: int32_t area_rad = 1 + ((weapType == DRILLER) ? rad / 20 : rad); global.unlockLandSlide(x - area_rad, x + area_rad); hasSlid = true; } if (!hasCleared) hasCleared = true; } } /// @brief Throw some debris void EXPLOSION::do_throw() { // Do never throw when skipping AI play, and // opt out if debris generation is forbidden if (!hasThrown && ( global.skippingComputerPlay || (hasDebris >= maxDebris) || (curFrame > maxFrame ) ) ) hasThrown = true; // Early out if this is already done or no further deco is allowed if (hasThrown || global.hasTooMuchDeco) return; // The delay used for smoke and debris. int32_t delay_dirt = (etime * (maxFrame - curFrame)) - exclock; int32_t delay_smoke = (etime * (EXPLODEFRAMES - curFrame)) - exclock; // Note: DECOR checks against delay>0, thus a negative delay // is no problem here. // The radius is not always the radius, so use shortcuts: int32_t rad = (radius * maxFrame) / EXPLODEFRAMES; int32_t xrad = DRILLER == weapType ? rad / 20 : rad; int32_t yrad = ( (SHAPED_CHARGE <= weapType) && (CUTTER >= weapType) ) ? rad / 20 : rad; // A minimum radius of 1 is needed for the debris seek to make sense: if (rad < 1) return; // Use limited rounds for debris creation to ensure no // endless loops are created if there is no terrain to throw. int32_t deb_round = 0; int32_t max_rounds = 3 * env.debris_level; // Initial velocity is modified by damage: double damage_mod = 1. + (static_cast(damage) / static_cast(weapon[DTH_HEAD].damage) / 2. ); // If this is a meteor, the damage mod is tweaked or the debris more // looks like a collapsing rock than anything thrown. bool isMeteor = ((SML_METEOR <= weapType) && (LRG_METEOR >= weapType)); BITMAP* meteor = nullptr; if (isMeteor) { meteor = env.missile[naturals[weapType - WEAPONS].picpoint]; damage_mod *= 2. * static_cast(weapType - SML_METEOR + 1); } // Now move through the x-axis and create debris and smoke. double xpos = 0; double ypos = 0; double bottom = env.screenHeight; double alpha = 0.; double minX = x - xrad; double maxY = 0.; int32_t round = 1; int32_t deb_rad, diameter, seek_area = hasDebris % 3; double max_x_vel, max_y_vel, mod_x_vel, mod_y_vel; do { deb_rad = 1 + (rad > 1 ? (rand() % std::min(5, rad)) : 0); diameter = 2 * deb_rad; max_x_vel = 16. - (static_cast(deb_rad) * 2.0); max_y_vel = -17. + (static_cast(deb_rad) * 1.5); // The mods are lower than the max, as the velocity values // can be modified up by damage and position. mod_x_vel = max_x_vel * 0.66; mod_y_vel = max_y_vel * -0.50; // Make positive // If this isn't weapon fire, reduce the maximum velocities if (!isWeaponFire) { max_x_vel *= 0.75; max_y_vel *= 0.66; } // Were the routine looks for dirt is determined by the // current amount of debris found: xpos = ( seek_area ? 1 == seek_area ? minX // left : x // right : x - (xrad / 2) // centre ) + (rand() % xrad); /* Circle Coordinates: * X = cos(alpha) * radius (xrad) * Y = sin(alpha) * radius (yrad) * alpha is the angle between x and y. * cos(alpha) is x / xrad * sin(alpha) is y / yrad * So if we have alpha, we can produce Y. */ alpha = std::acos((xpos - x) / xrad); // Note: This results in radians, but that is okay, // as sin() needs radians anyway. ypos = y - ROUND(std::sin(alpha) * yrad); maxY = std::min(y + (y - ypos), bottom - deb_rad); // find first earth pixel: if ( (ypos < y) && (maxY > ypos) && checkPixelsBetweenTwoPoints(&xpos, &ypos, xpos, maxY, 0.0, nullptr)) { // Try to get a free debris pool item sDebrisItem* deb_item = global.get_debris_item(deb_rad); if (nullptr == deb_item) { // pool is full and at its limit. hasDebris = maxDebris; break; } // Try to get another free item if this is a meteor sDebrisItem* met_item = isMeteor ? global.get_debris_item(deb_rad) : nullptr; // Note: It is not a problem if a meteor got no met_item. // Move down a bit... ypos += 1 + (rand() % deb_rad); // ... but do not end up below maxY if (ypos > maxY) ypos = maxY; // Extract the pixels around xpos/ypos int32_t left = xpos - deb_rad; int32_t top = ypos - deb_rad; // Blit in terrain blit(global.terrain, deb_item->bmp, left, top, 0, 0, diameter + 1, diameter + 1); // Blit in meteor if needed if (isMeteor && meteor && met_item) blit(meteor, met_item->bmp, left % ( meteor->w - diameter), top % (meteor->h - diameter), 0, 0, diameter + 1, diameter + 1); // Now the distance from the lowest centre point can be used // to determine the initial velocity of the debris. double dyp = y + radius + diameter; double dxv = ((xpos - x ) / xrad ) * mod_x_vel * damage_mod; double dyv = ((ypos - dyp) / radius) * mod_y_vel * damage_mod; assert((dyv < 0.) && "Check it: Dirt shall be thrown down?"); // Modify x and y velocity a bit randomly for more variance dxv *= 1. + (static_cast((rand() % 9) - 4) / 10.); dyv *= 1. + (static_cast((rand() % 7) - 3) / 10.); // Apply impact velocity dxv -= impact_xv / ( (std::abs(dxv) * .75) + 1.5); dyv -= impact_yv / ( (std::abs(dyv) * .75) + 1.5); // Maximum x and y velocity depends on the radius of the debris: if (std::abs(dxv) > max_x_vel) dxv = SIGNd(dxv) * max_x_vel; if (dyv < max_y_vel) dyv = max_y_vel; // Move the decoration out to the rim of the final explosion: double rimx = x + ROUND(std::cos(alpha) * xrad); double rimy = y - ROUND(std::sin(alpha) * yrad); try { new DECOR(rimx, rimy, dxv, dyv, deb_rad, DECOR_DIRT, delay_dirt, deb_item, met_item); // Clear the source to not take these pixels again. circlefill (global.terrain, xpos, ypos, deb_rad, PINK); addUpdateArea(xpos - deb_rad, ypos - deb_rad, diameter, diameter); addUpdateArea(rimx - deb_rad, rimy - deb_rad, diameter, diameter); } catch (...) { // As the decor was not created, the item can be released again global.free_debris_item(deb_item); if (met_item) global.free_debris_item(met_item); } // Every throw needs a smoke... ;) try { new DECOR(xpos, ypos, dxv, dyv, deb_rad * 3, DECOR_SMOKE, delay_smoke); } catch (...) { /* nothing.. really... it doesn't matter */ } // Advance hasDebris and get new seeking area seek_area = ++hasDebris % 3; } // End of having hit a pixel // Count tries to advance rounds (if needed) if (++deb_round >= maxDebris) { deb_round = 0; ++round; } } while ( (round < max_rounds) && (hasDebris < maxDebris) ); // If the calculated radius did not reach radius (yet), and hasDebris // has not reached maxDebris, yet, the throwing is not finished, yet. if ( (rad >= radius) || (hasDebris >= maxDebris)) hasThrown = true; } // ======================= // === Global helpers: === // ======================= /// @brief draw one blob of Napalm (display be locked!) void draw_Napalm_Blob(VIRTUAL_OBJECT* blob, int32_t x, int32_t y, int32_t radius, int32_t frame) { if (nullptr == blob) return; int32_t phase = std::abs(frame) % 4; int32_t lo_mod = phase % 2; int32_t hi_mod = (phase + 1) % 2; circlefill (global.canvas, x, y, radius, RED); for (int32_t i = 1; i < radius; i += 3) { int32_t r = 255 - (20 * phase); int32_t g = 25 * phase; int32_t b = 10 * phase; circle(global.canvas, x, y, i + lo_mod, makecol(r, g, 10 + b)); circle(global.canvas, x, y, i + hi_mod, makecol(r, 25 + g, b)); } blob->setUpdateArea (x - radius - 1, y - radius - 1, (radius + 1) * 2, (radius + 1) * 2); blob->requireUpdate (); } /** @brief return the damage of a weapon against a tank * @param[in] tank Pointer to the tank to check * @param[in] type The weapon used * @param[in] hit_x X coordinate of the impact * @param[in] hit_y Y coordinate of the impact * @return The part damage of the weapon without player modification **/ double get_hit_damage(TANK* tank, weaponType type, int32_t hit_x, int32_t hit_y) { if ( (nullptr == tank) || (tank->destroy) ) return 0.; double weap_rad = type < WEAPONS ? weapon[type].radius : naturals[type - WEAPONS].radius; double xrad = weap_rad; double yrad = weap_rad; // Adapt x-/y-radius for the driller and the shaped weapons if (DRILLER == type) xrad /= 20; if ( (SHAPED_CHARGE <= type) && (CUTTER >= type) ) yrad /= 20; double in_rate_x = 0.; double in_rate_y = 0.; double dmg = 0.; if (tank->isInEllipse(hit_x, hit_y, xrad, yrad, in_rate_x, in_rate_y) ) { if (PERCENT_BOMB == type) dmg = ((tank->l + tank->sh) / 2) + 1; else if ( (REDUCER == type) && (tank->player->damageMultiplier > 0.1) ) dmg = 1.; // So result > 0 can be checked else if (THEFT_BOMB == type) dmg = 1.; // So result > 0 can be checked else if ( (RIOT_BOMB <= type) && (RIOT_BLAST >= type) ) dmg = 1.; // So result > 0 can be checked else if (THEFT_BOMB == type) dmg = 1.; // So result > 0 can be checked else if ( (RIOT_BOMB <= type) && (RIOT_BLAST >= type) ) dmg = 1.; // So result > 0 can be checked // Shaped charges and drillers have a minimum distance under which they // deal no damage: else if ( ( (SHAPED_CHARGE > type) || (CUTTER < type) ) // ( Not shaped || (std::abs(tank->x - hit_x) > yrad) ) { // or x distance okay ) /* Note: The radii are reversed as the opposite radius is the * minimum distance needed for the main blast radius. */ dmg = type < WEAPONS ? weapon[type].damage : naturals[type - WEAPONS].damage; // Some weapons have minimum rates on axis ratings if (DRILLER == type) { // The driller has its force focused vertically: if (in_rate_y < 0.95) in_rate_y = 0.95; } else if ( (SHAPED_CHARGE <= type) && (CUTTER >= type) ) { // The shaped ones have their force on the horizontal axis if (in_rate_x < 0.95) in_rate_x = 0.95; } else if ( (TREMOR <= type) && (TECTONIC >= type) ) { if (in_rate_x < 0.25) in_rate_x = 0.25; if (in_rate_y < 0.25) in_rate_y = 0.25; } // The full in_rate must not be lower than 10% on any weapon. // However, the driller has a minimum x distance to cover. if ( (DRILLER != type) // (not driller || (std::abs(tank->y - hit_y) > xrad) ) { // or y distance okay ) double in_rate = in_rate_x * in_rate_y; if (in_rate < 0.1) in_rate = 0.1; dmg *= in_rate; } // If this is a driller and the distance is too low, // a minimum damage of 1. is done so the cause of // potential falling damage is at least noted. else if (DRILLER == type) dmg = 1.; } // End of having damage to deal } // End of tank in ellipse return dmg; } atanks-6.6/src/missile.cpp0000644000175000017500000011207313006377360013737 0ustar apoapo/* * atanks - obliterate each other with oversize weapons * Copyright (C) 2003 Thomas Hudson * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "explosion.h" #include "missile.h" #include "decor.h" #include "tank.h" #include "player.h" #include "beam.h" #include "sound.h" #include "aicore.h" /* Note: If you wonder why the MISSILE ctor needs the AI_LEVEL, it is used * for two things: * 1. Whether repulsion is considered for mind shots depends on the * ai_level of the bot tracking the missile, and * 2. the SDI check must make sure to not re-test its own mind shots. */ MISSILE::MISSILE (PLAYER* player_, double xpos, double ypos, double xvel, double yvel, int32_t weapon_type, eMissileType missile_type, int32_t ai_level_, int32_t delay_idx_) : PHYSICAL_OBJECT(MT_WEAPON == missile_type), ai_level(ai_level_), missileType(missile_type) { this->player = player_; #ifdef NETWORK char buffer[256]; sprintf(buffer, "MISSILE %d %d %lf %lf %d", ROUND(xpos), ROUND(ypos), xvel, yvel, weapon_type); env.sendToClients(buffer); #endif // Set position and movement x = xpos; y = ypos; xv = xvel; yv = yvel; // Get and set weapon/item data weapType = weapon_type; if (weapType < WEAPONS) weap = &weapon[weapType]; else weap = &naturals[weapType - WEAPONS]; setBitmap(env.missile[weap->picpoint]); drag = weap->drag; mass = weap->mass; noimpact = weap->noimpact; // The maxVel value results in a small missile being able to be accelerated // by 25% over MAX_POWER, while a large Napalm Bomb can go up to 220%. maxVel = env.maxVelocity * (1.20 + (mass / (.01 * MAX_POWER))); DEBUG_LOG_PHY("PHYSICAL_OBJECT", "env.maxVel: %5.2lf, mass: %5.2lf, obj.maxVel: %5.2lf", env.maxVelocity, mass, maxVel) // Meteors and dirt balls are "volatile" and can not be accelerated // over MAX_POWER. (Pre-caution against "forever" going naturals) if ( ( (SML_METEOR <= weapType) && (LRG_METEOR >= weapType) ) || ( (DIRT_BALL <= weapType) && (SUP_DIRT_BALL >= weapType) ) ) maxVel = std::min(maxVel, static_cast(MAX_POWER)); if ( (SML_METEOR <= weapType) && (LRG_METEOR >= weapType) ) { angle = rand () % 360; spin = (rand () % 20) - 10; maxAge = MAX_METEOR_AGE; } else if (weapType == NAPALM_JELLY) { // Napalm grows, others do not: isGrowing = true; growRadius = 1; maxAge = MAX_JELLY_AGE; allowDirtyWrap = false; } else { growRadius = weap->radius; if (FUNKY_BOMBLET == weapType) maxAge = (MAX_MISSILE_AGE / 7) + (rand() % (MAX_MISSILE_AGE / 4)); // With MMA 15 seconds, this is 2 + [0;3] = [2;5] seconds else if (FUNKY_DEATHLET == weapType) maxAge = (MAX_MISSILE_AGE / 5) + (rand() % (MAX_MISSILE_AGE / 3)); // With MMA 15 seconds, this is 3 + [0;4] = [3;7] seconds else maxAge = MAX_MISSILE_AGE; } // Finalize maxAge to be for frames, not seconds: maxAge *= env.frames_per_second; // Set funky colour of the funky bomblets/deathlets and add some maxAge // variation so they do not detonate in groups. if ( (weapType == FUNKY_BOMBLET) || (weapType == FUNKY_DEATHLET) ) { int32_t temp_number = rand() % 5; switch (temp_number) { case 0: funky_colour = makecol(200, 0, 0); break; case 1: funky_colour = makecol( 0, 200, 0); break; case 2: funky_colour = makecol( 0, 0, 200); break; case 3: funky_colour = makecol(200, 200, 0); break; case 4: funky_colour = makecol(200, 0, 200); break; } // Variation +/- 1 Second in frames: maxAge += (rand() % (2 * env.frames_per_second)) - env.frames_per_second; } // Some weapons must not wrap through dirt ceilings if the bottom // pixel they would warp into is occupied: if ( ( (SML_ROLLER <= weapType) && (SMALL_MIRV >= weapType) ) || ( (CLUSTER <= weapType) && (SUP_CLUSTER >= weapType) ) || ( (SML_NAPALM <= weapType) && (LRG_NAPALM >= weapType) ) || (CLUSTER_MIRV == weapType) ) allowDirtyWrap = false; // If this is a mind shot with a delay characteristic, like // the chain missile, set a delay range by its index. // This causes PHYSICAL_OBJECT::applyPhysics() to not detonate // the missile unless the set distance was travelled through // dirt. This simulates the clearing of the path by previous // missiles, so the AI can track those weapons better. if (MT_MIND_SHOT == missile_type) this->mindDelay = weap->radius * delay_idx_; // Otherwise add it to the chain: // Do not put mind shots in there or the object updaters // will not only try to apply physics, but use delete on // them when they get destroyed. else global.addObject(this); } MISSILE::~MISSILE () { // Take out of the chain: if (MT_MIND_SHOT != missileType) global.removeObject(this); } void MISSILE::applyPhysics () { int32_t above_ground = -1; // Increase age and get rid of the missile if it // is caught in some endless loop. if ( (++age > maxAge) || (y < -65535) ) { hitSomething = true; if (MT_MIND_SHOT != missileType) trigger(); else destroy = true; return; } else hitSomething = false; // Napalm grows first: if (isGrowing) { if (age < maxAge) { growRadius = ROUND(static_cast(weap->radius) * (static_cast(age) / static_cast(maxAge))); if (growRadius < 2) growRadius = 2; } else isGrowing = false; // Finished growing! } // Riot charges / blasts go off immediately: if ( (RIOT_CHARGE <= weapType) && (RIOT_BLAST >= weapType) ) { trigger(); return; } // Normal and digging physic types need an angle // and can be repulsed if ( (PT_NORMAL == physType) || (PT_DIGGING == physType)) { if ( (SML_METEOR <= weapType) && (LRG_METEOR >= weapType) ) angle = (angle + spin) % 360; else angle = ROUND(RAD2DEG(atan(yv / xv)) * 256./360.) - 64 + ( xv < 0 ? 128 : 0); if ( (MT_MIND_SHOT != missileType) || (RAND_AI_0P && RAND_AI_0P) ) Repulse_Missile(); } // === 1) Handle standard physics projectiles === if (PT_NORMAL == physType) { // Standard physics can be applied PHYSICAL_OBJECT::applyPhysics (); // If a mind shot napalm jelly hit something, it is counted as // destroyed immediately. if (hitSomething && (MT_MIND_SHOT == missileType) && (NAPALM_JELLY == weapType) ) destroy = true; // mirvs trigger above ground if ( !hitSomething && ( (weapType == SMALL_MIRV) || (weapType == CLUSTER_MIRV) ) && (yv > 0) ) { above_ground = Height_Above_Ground(); if ( (above_ground > 0) && (above_ground < TRIGGER_HEIGHT) ) hitSomething = true; } // Missiles that get too slow on a rubber floor, trigger when stopped. if ( !hitSomething && (WALL_RUBBER == env.current_wallType) && (ROUND(y) >= (env.screenHeight - 2)) && ( (std::abs(xv) + std::abs(yv)) < 0.8) ) hitSomething = true; // Unless something is hit, smoke might be produced: if ( !hitSomething && !global.skippingComputerPlay && (MT_MIND_SHOT != missileType) && !(rand() % (env.frames_per_second / 10)) ) { try { new DECOR (x, y, xv / env.frames_per_second, xv / env.frames_per_second, weap->radius / 20, DECOR_SMOKE, 0); } catch (std::exception) { perror ( "missile.cpp: Failed allocating memory for decor in applyPhysics"); } } } // --- End of normal physic types --- // === 2) Handle rolling projectiles === else if (PT_ROLLING == physType) { // check whether anything is hit int32_t round_x = ROUND(x); int32_t round_y = ROUND(y); if ( (x < 2) || (x > (env.screenWidth - 3) ) || (y > (env.screenHeight - 3) ) || (PINK != getpixel(global.terrain, round_x, round_y)) ) hitSomething = true; else { // To honour the size of the rollers, they have the following // rules about the path they roll: // - The small roller can climb four and fall six pixels. // - The large roller can climb six and fall nine pixels. // - The death roller can climb nine and fall twelve pixels. int32_t maxClimb = SML_ROLLER == weapType ? 4 : LRG_ROLLER == weapType ? 6 : DTH_ROLLER == weapType ? 9 : 1; int32_t maxFall = SML_ROLLER == weapType ? 6 : LRG_ROLLER == weapType ? 9 : DTH_ROLLER == weapType ? 12 : 1; // get next surface pixel float surfY = global.surface[ROUND(x+xv)].load(ATOMIC_READ) - 1; // Check whether the terrain is going down if (surfY > y) { // Do not fall more than 'maxFall' pixels if terrain gives way. if ( surfY <= (y + maxFall) ) y = surfY - 1; else y += maxFall; // Do not fall through the floor: if (y > (env.screenHeight - maxClimb)) y = env.screenHeight - maxClimb; } // Check whether the terrain is going up else if (surfY < y) { // If terrain is going up, it can be climbed, // or the rollers path ends here if ( surfY >= (y - maxClimb) ) y = surfY - 1; else // too steep! hitSomething = true; } // Normal transversal movement: x += xv > 0 ? 1 : xv < 0 ? -1 : 0; // Adapt angle according to movement if (xv > 0.0) angle = (angle + 3) % 256; if (xv < 0.0) angle = (angle + 253) % 256; // Fix y if the projectile threats to go through the floor if (!hitSomething && (y > (env.screenHeight - 5)) ) y = env.screenHeight - 5; } // End of rolling projectile movement } // --- End of rolling physic types --- // === 3) Handle funky projectiles === else if (PT_FUNKY_FLOAT == physType) { // Funky Floats have a 0.75% chance to randomly change their direction if (0 == (rand() % 150)) { int32_t floatee_action = rand() % 4; // Three possibilities: // A) 25% chance to reverse x movement // B) 25% chance to reverse y movement // C) 50% chance to pick a random target to home into. // If A is chosen and there is no x movement, or B is chosen and // there is no y movement, option C is pulled. if ( (1 == floatee_action) && (std::abs(xv) > 0.5)) xv *= -1.; else if ( (3 == floatee_action) && (std::abs(yv) > 0.5)) yv *= -1.; else { TANK* floatee_tgt = global.get_random_tank(); if (floatee_tgt) { WEAPON* launchWeap = FUNKY_BOMBLET == weapType ? &weapon[FUNKY_BOMB] : FUNKY_DEATHLET == weapType ? &weapon[FUNKY_DEATH] : nullptr; double speed = ( launchWeap->launchSpeed + ROUND( (launchWeap ? launchWeap->speedVariation : 0.0) * (launchWeap ? launchWeap->launchSpeed : 0.0) * Noise(rand() % 1000000) ) ) * env.FPS_mod; double fdiff = ABSDISTANCE2(floatee_tgt->x, floatee_tgt->y, x, y); xv = (floatee_tgt->x - x) / fdiff * speed; yv = (floatee_tgt->y - y) / fdiff * speed; } } } // Funky floats simply bounce on borders. if ( ((x + xv) < 1) || ((x + xv) > (env.screenWidth - 1) ) ) xv = -xv; else x += xv; // The same applies to the screen bottom, // but here according to floor type if ((y + yv) >= env.screenHeight) { if (WALL_RUBBER == env.current_wallType) { yv *= -BOUNCE_CHANGE; xv *= 0.95; } else if (WALL_SPRING == env.current_wallType) { yv *= -SPRING_CHANGE; xv *= 1.05; } else if ( (WALL_WRAP == env.current_wallType) && env.isBoxed && env.do_box_wrap ) { y = MENUHEIGHT + 1; } else { y = env.screenHeight; yv = 0; hitSomething = true; age = maxAge; } } // On the screen top the direction is just reversed, even if // there is a ceiling in boxed mode. However, if it is a wrap // ceiling, and the ceiling wrap is enabled, got to the bottom. else if ( (y + yv) <= MENUHEIGHT) { if ( (WALL_WRAP == env.current_wallType) && env.isBoxed && env.do_box_wrap ) { y = env.screenHeight - 2; } else { yv *= -0.95; xv *= 0.95; } } // eventually apply yv y += yv; } // --- End of funky float physic types --- // === 4) Handle other projectiles === else { // Check X: if ( ((x + xv) < 1) || ((x + xv) > (env.screenWidth - 1)) ) { if (WALL_RUBBER == env.current_wallType) xv *= -0.5; else if (WALL_SPRING == env.current_wallType) xv *= -SPRING_CHANGE; else if (WALL_WRAP == env.current_wallType) x = xv > 0. ? 1 : env.screenWidth - 1; else { x = xv < 0. ? 1 : env.screenWidth - 1; xv = 0; hitSomething = true; } } // Check Y : if ( ((y + yv) >= env.screenHeight) || ((y + yv) < MENUHEIGHT) ) { yv *= -0.5; xv *= 0.95; } // Apply gravitation, digging types are reversed and scorch the ground: if (PT_DIGGING == physType) yv -= env.gravity * 0.05 * env.FPS_mod; else yv += env.gravity * 0.05 * env.FPS_mod; // Apply velocity y += yv; x += xv; } // End of checking 'others' // Final check against the terrain if (!hitSomething && (y > MENUHEIGHT) && (y < (env.screenHeight - 1)) ) { int32_t round_x = ROUND(x); int32_t round_y = ROUND(y); int32_t hitpix = getpixel(global.terrain, round_x, round_y); if ( ( (PT_DIGGING == physType) && (PINK == hitpix) ) || ( (PT_DIGGING != physType) && (PINK != hitpix) ) ) hitSomething = true; } // No "ceiling drops" are triggered in boxed mode if (!hitSomething && (y <= MENUHEIGHT) && env.isBoxed) { yv = 0; hitSomething = true; } // Be sure any trigger/detonation is on screen ... if (hitSomething && (y <= MENUHEIGHT)) y = MENUHEIGHT + 1; triggerTest(); } /// @return The number of bounces done since the missile was fired int32_t MISSILE::bounced() const { return bounces; } /// @return -1 if the missile flies to the left, 1 if it flies to the right /// or does not have any vertical movement int32_t MISSILE::direction() const { return SIGN(xv); } void MISSILE::draw () { if (destroy) return; // Do not draw mind shots if (MT_MIND_SHOT == missileType) return; // draw arrow impostor if it is above the screen if (y < MENUHEIGHT) { // Back up original values BITMAP* bbitmap = getBitmap(); double by = y; int32_t bangle = angle; // Set arrow values setBitmap(env.misc[3]); y = MENUHEIGHT + (height / 2); angle = 0; VIRTUAL_OBJECT::draw(); // restore original values: setBitmap(bbitmap); y = by; angle = bangle; return; } // draw missile on the screen // Napalm jellies need a special drawing due to their growing nature. if (weapType == NAPALM_JELLY) { if (isGrowing) draw_Napalm_Blob(this, x, y, growRadius, age / weap->etime); else draw_Napalm_Blob(this, x, y, weap->radius, age / weap->etime); } // end of napalm // try drawing a funky bomblet else if ( (FUNKY_BOMBLET == weapType) || (FUNKY_DEATHLET == weapType) ) { circlefill(global.canvas, x, y, 4, funky_colour ); circle (global.canvas, x, y, 5, BLACK ); setUpdateArea( x - 10, y - 10, 20, 20); requireUpdate(); } // draw anything else else { // Digging weapons scorch the earth they travel through if (PT_DIGGING == physType) { int32_t scorches = 3 + (3 * ABSDISTANCE2(x, y, x + xv, y + yv)); for (int32_t i = 0; i < scorches; ++i) { int32_t sx = x + ((rand() % 5) - 2); // [-2;2] int32_t sy = y + ((rand() % 5) - 2); // [-2;2] if ( (sx > 1) && (sx < env.screenWidth) && (sy > MENUHEIGHT) && (sy < env.screenHeight) ) { int32_t pc = getpixel(global.terrain, sx, sy); if (PINK != pc) { putpixel(global.terrain, sx, sy, makecol( ROUNDu(static_cast(getr(pc)) * .900), ROUNDu(static_cast(getg(pc)) * .825), ROUNDu(static_cast(getb(pc)) * .866))); } } // end of having valid coordinates } // end of looping scorches } // end of scorching VIRTUAL_OBJECT::draw(); } } /// === Private methods === ///========================= /// @brief little helper struct to fire SDI lasers in a fairer way struct sSDI { int32_t am = 0; double dist = 0.; // Distance used for sorting double lvl = 0.; // AI level, human players are counted as deadly. sSDI* next = nullptr; double range = 100.; // The more SDI, the further the shot TANK* tank = nullptr; double x = 0.; double y = 0.; }; // Check to see if any tanks have SDI defense. If they // do, then see if this missile should be shot down. // Returns the shooting tank if a shot is to be fired // or NULL if no tank will shoot. /* Update: * ------- * Check_SDI() can do it all on its own and is now called from * triggerTest() if (and *only* if) the missile isn't going off * anyway. * This allows SDI to be spared on missiles that are exploding anyway. * Further it makes the game loop much simpler. * - Sven * * Update: * ------- * If an SDI is really considered to fire, a MIND SHOT is now used to * determine where the missile will explode, or whether it'll miss. * Tests showed, that it will result in a lower average number of * iterations than the old per-pixel check. And as a nice side effect, * the result is many times more accurate. ;-) * - Sven */ void MISSILE::Check_SDI() { static sSDI sdi[MAXPLAYERS]; // The Predictor don't checks itself: if (SDI_PREDICTOR == ai_level) return; // can't shoot jelly, dirt balls, digging projectiles // and anything with submunition. if ( (PT_DIGGING == physType) || (weapType == NAPALM_JELLY) || (weap->submunition > 0) ) return; // Funky Floats are "invisible" with a chance of 50% if ( (PT_FUNKY_FLOAT == physType) && (rand() % 2) ) return; // Reset SDI list: for (int32_t i = 0; i < MAXPLAYERS; ++i) sdi[i].next = nullptr; // Create SDI list TANK* lt = nullptr; bool shotDown = false; sSDI* pSDI = nullptr; int32_t idx = 0; global.getHeadOfClass(CLASS_TANK, <); while (lt) { /* A tank is not considered for SDI shots if: * 1 The tank is destroyed (obviously) * 2 The tank is this missiles owners tank * 3 The tank is flying * 4 The tank already has an SDI beam firing * 5 The SDI has no shots left for this sequence * 6 The SDI beam would shoot downwards. */ if ( !lt->destroy // 1 && (lt->player != player) // 2 && !lt->isFlying() // 3 && !lt->player->sdi_has_fired.load(ATOMIC_READ) // 4 && (lt->player->ni[ITEM_SDI] > lt->player->sdiShots) // 5 && ( (lt->y - 10.) >= y) ) { // 6 double startX = lt->x; double startY = lt->y - 10.; sdi[idx].am = lt->player->ni[ITEM_SDI] - lt->player->sdiShots; sdi[idx].lvl = static_cast( ( ( lt->player->type == HUMAN_PLAYER ) || ( lt->player->type > DEADLY_PLAYER) ) ? DEADLY_PLAYER : lt->player->type); sdi[idx].tank = lt; sdi[idx].range = static_cast(SDI_DISTANCE) + ( static_cast(sdi[idx].am - 1) * 2.5); sdi[idx].dist = FABSDISTANCE2(x, y, startX, startY); sdi[idx].x = startX; sdi[idx].y = startY; /* Add the SDI to the list if: * 1: The missile is within maximum range * 2: but further away than the minimum distance and * 3: no dirt is between the gun top and the missile. */ if ( (sdi[idx].dist <= sdi[idx].range) // 1 && (sdi[idx].dist > lt->player->ni[ITEM_SDI]) // 2 && !checkPixelsBetweenTwoPoints(&startX, &startY, x, y, 0.0, nullptr) /* 3 */ ) { // This can be added! if (pSDI) { // Must be sorted in sSDI* curr = pSDI; while (curr->next && (curr->next->dist < sdi[idx].dist) ) curr = curr->next; // Now curr->next is either nullptr or is farther away. sdi[idx].next = curr->next; curr->next = &sdi[idx]; } else // It is the new head pSDI = &sdi[idx]; ++idx; } // end of in range } // End of having SDI lt->getNext(<); } // End of looping tanks // Move through the sorted list of SDI stations and see whether anybody // can shoot this one down. while (!shotDown && pSDI) { // 20% base chance with +1% per SDI over one. if ( (rand() % 100) < (19 + pSDI->am) ) { // Try to predict the coordinates where the missile will go down: MISSILE mind_shot(player, x, y, xv, yv, weapType, MT_MIND_SHOT, SDI_PREDICTOR, 0); // Adapt missile drag if the player has dimpled/slick projectiles if (player->ni[ITEM_DIMPLEP]) mind_shot.drag *= item[ITEM_DIMPLEP].vals[0]; else if (player->ni[ITEM_SLICKP]) mind_shot.drag *= item[ITEM_SLICKP].vals[0]; // Keep flying/rolling/digging/whatever until the missile hits something // or the tank is out of explosion range double x_dist = pSDI->x - mind_shot.x; double y_dist = pSDI->y - mind_shot.y; double x_vel = 0.; double y_vel = 0.; uint32_t max_range = pSDI->lvl * std::max(ROUND(pSDI->range), weap->radius); mind_shot.getVelocity(x_vel, y_vel); // Apply physics until the missile is either destroyed, or // it is moving away from the tank and the tank is outside // the blast radius. while (!mind_shot.destroy && ( (SIGN(x_dist) == SIGN(x_vel)) || (SIGN(y_dist) == SIGN(y_vel)) || ( ABSDISTANCE2(pSDI->x, pSDI->y, mind_shot.x, mind_shot.y) < max_range) ) ) { mind_shot.applyPhysics(); x_dist = pSDI->x - mind_shot.x; y_dist = pSDI->y - mind_shot.y; mind_shot.getVelocity(x_vel, y_vel); } // If the missile is destroyed, check whether the explosion would // a) hit this tank, // b) be nearer than the missile is now and // c) will not kill the tank if shot down. // If so, shoot it down! bool will_hit = false; if (mind_shot.destroy) { int32_t x_rad = DRILLER == weapType ? weap->radius / 20 : weap->radius; int32_t y_rad = ( (SHAPED_CHARGE <= weapType) && (CUTTER >= weapType) ) ? weap->radius / 20 : weap->radius; if ( (std::abs(x_dist) <= x_rad) // tank in x range && (std::abs(y_dist) <= y_rad) // tank in y range && ( ( std::abs(x - pSDI->x) > x_rad) // misses x radius now || ( std::abs(y - pSDI->y) > y_rad) // misses y radius now // Is now farther away than when it goes off: || ( ABSDISTANCE2(x, y, pSDI->tank->x, pSDI->tank->y) >= ABSDISTANCE2(mind_shot.x, mind_shot.y, pSDI->tank->x, pSDI->tank->y) ) ) ) { // The point looks promising, but is it worth it? double dmg = get_hit_damage(pSDI->tank, static_cast(weapType), x, y); if (dmg < (pSDI->tank->sh + pSDI->tank->l)) will_hit = true; } } if (will_hit) { shotDown = true; // The actual shooting is only done if this is no mind shot if (MT_MIND_SHOT != missileType) { lt = pSDI->tank; // The player has a 1% chance per SDI (with 50% max) // that one of the lasers burns out. // The chance can become this high to prevent players with // few missiles to shoot down to buy hundreds of SDI units. int32_t chance = pSDI->am > 50 ? 50 : pSDI->am; bool burnt = (rand() % 100) < chance ? true : false; try { new BEAM(lt->player, pSDI->x, pSDI->y, x, y, pSDI->am > 50 ? LRG_LAZER : pSDI->am > 25 ? MED_LAZER : SML_LAZER, burnt); trigger(); if ( burnt ) pSDI->tank->player->ni[ITEM_SDI]--; pSDI->tank->player->sdi_has_fired.store(true, ATOMIC_WRITE); } catch (...) { // Just not shot down. ;) shotDown = false; } } else // But the bot needs to know that its shot ends here destroy = true; } // end of not missing } pSDI = pSDI->next; } // End of going through SDI list } // This function returns the distance above ground of // the missile. int32_t MISSILE::Height_Above_Ground() { int32_t rx = ROUND(x); if ( (rx < 1) || (rx >= env.screenWidth) ) return -1; double sx = xv / yv; double px = x + sx; double py = y + 1.; int32_t height = 1; while ( (py < env.screenHeight) && (px > .9) && (px < (env.screenWidth - .9) ) && ( (py < BOXED_TOP ) || (PINK == getpixel(global.terrain, px, py) ) ) ) { px += sx; py += 1.; ++height; // If this is a wrapping wall, px must be wrapped of course if (WALL_WRAP == env.current_wallType) { if (px < 1.) px = env.screenWidth - 1. - (1. - std::abs(px)); if (px > (env.screenWidth - 1.) ) px = 1 + (env.screenWidth - 1. - px); } } return height; } // Modify xv/yv according to repulse shields in the vicinity of the missile void MISSILE::Repulse_Missile() { TANK* lt = nullptr; double xaccel = 0; double yaccel = 0; global.getHeadOfClass(CLASS_TANK, <); while (lt) { if ( !lt->destroy && (lt->player != player) ) { if (lt->repulse (x + xv, y + yv, &xaccel, &yaccel, physType)) { xv += xaccel; yv += yaccel; } } lt->getNext(<); } } void MISSILE::trigger () { // Create explosion try { new EXPLOSION (player, x, y, xv, yv, weapType, isWeaponFire); } catch (...) { perror ( "missile.cpp: Failed allocating memory for explosion in MISSILE::trigger"); } // If the explosion is near a wrapping wall, a second "fake" // explosion must be generated to display the wrapping effect if ( (WALL_WRAP == env.current_wallType) && (weapType < WEAPONS) ) { int32_t left = 0; int32_t top = 0; int32_t x_rad = weapon[weapType].radius; int32_t y_rad = weapon[weapType].radius; // Driller is smaller if (DRILLER == weapType) x_rad /= 20; // shaped charges are flatter if ( (SHAPED_CHARGE <= weapType) && (CUTTER >= weapType) ) y_rad /= 20; // Set wrapped x position if (x < x_rad) left = env.screenWidth + x; else if (x > (env.screenWidth - x_rad)) left = x - env.screenWidth; // (possibly) set wrapped y position if (env.isBoxed && env.do_box_wrap) { if (y < (y_rad + MENUHEIGHT) ) top = env.screenHeight + y; else if (y > (env.screenHeight - y_rad)) top = y - env.screenHeight + MENUHEIGHT; } // If an x/y-position is found, generate second explosion: if ( left || top ) { int32_t new_x = left ? left : x; int32_t new_y = top ? top : y; try { new EXPLOSION (player, new_x, new_y, xv, yv, weapType, isWeaponFire); } catch (...) { perror ( "missile.cpp: Failed allocating memory for secondary explosion in MISSILE::trigger"); } } } destroy = true; if (weapType < SML_METEOR) play_explosion_sound(weapType, x, 255, 1000); else play_natural_sound(weapType, x, 255, 1000); } void MISSILE::triggerTest () { bool quell = noimpact ? true : false; // No tests are needed, if a too high velocity has // just lacerated the projectile. if ( lacerated ) { if ( (MT_MIND_SHOT == missileType) || quell) // Only end of performance is needed to know. destroy = true; else trigger(); return; } TANK* lt = nullptr; double old_delta_x = xv; // Has it hit a tank? global.getHeadOfClass(CLASS_TANK, <); while (lt) { if ( !lt->destroy && lt->isInBox(x, y, x, y) ) { hitSomething = true; if (MT_MIND_SHOT != missileType) lt->requireUpdate (); // Be sure the detonation does not take place // on the gun top. if (y < lt->y) y = lt->y; // I think we can live with this 'shift'. } lt->getNext(<); } // Unless quelled, check what is to be done bool do_check = (!quell && (y > MENUHEIGHT)); // Only really check if something is hit, the y coordinate is through the // floor or a non-PINK pixel is in the way: if (do_check && !hitSomething && (y < env.screenHeight)) { // neither hit nor floor crunch, check the pixel: int32_t round_x = ROUND(x); int32_t round_y = ROUND(y); if ( (round_x >= 0) && (round_x < env.screenWidth) ) { do_check = (PINK != getpixel(global.terrain, round_x, round_y)); } } // End of pixel check // Only continue if all checks passed: if (do_check) { // A roller changes from flying to rolling if ( (weapType >= SML_ROLLER) && (weapType <= DTH_ROLLER) && (PT_NORMAL == physType) ) { if (age > 1) { quell = true; // No detonation, just switch to rolling physType = PT_ROLLING; age = 0; // Set rolling start position and initial movement y -= 5; xv = 0; yv = 0; // Possibly fix x if (x <= 1) { x = 1; xv = 1; } else if (x >= (env.screenWidth - 2)) { x = env.screenWidth - 2; xv = -1; } // Possibly fix y int32_t round_x = ROUND(x); int32_t surf_y = global.surface[round_x].load(ATOMIC_READ); if ( (y >= surf_y) // y is surface or below && (y <= (surf_y + 2) ) ) // but not buried more than 2 px y = surf_y - 1; // Set movement if not done already: if ( (xv > -0.9) && (xv < 0.9) ) { bool can_go_left = (round_x > 3); bool can_go_right = (round_x < (env.screenWidth - 4)); if (can_go_left || can_go_right) { if (can_go_left) can_go_left = (PINK == getpixel(global.terrain, round_x - 1, y)); if (can_go_right) can_go_right = (PINK == getpixel(global.terrain, round_x + 1, y)); } // End of checking direction pixels if (can_go_left && can_go_right) // Prefer old movement direction xv = SIGN(old_delta_x); else if (can_go_left) xv = -1; else if (can_go_right) xv = 1; else // nothing worked, both paths are blocked. xv = rand() % 2 ? -1 : 1; } // If the roller is hammered into a wall, detonate it if ( ( (WALL_STEEL == env.current_wallType) && ( (x <= 2) || (x >= (env.screenWidth - 3) ) ) ) || (env.isBoxed && (y <= MENUHEIGHT) && ( ( (WALL_WRAP == env.current_wallType) && ( !env.do_box_wrap || ( global.surface[ROUND(x)].load(ATOMIC_READ) < env.screenHeight) ) ) || (WALL_STEEL == env.current_wallType) ) ) ) { quell = false; hitSomething = true; } } // End of switching roller physics } // End of roller handling // A burrower or penetrator changes from flying to digging else if ( (weapType == BURROWER) || (weapType == PENETRATOR) ) { if (PT_DIGGING == physType) // If it hit, it must not be quelled. quell = !hitSomething; else if (PT_NORMAL == physType) { // This is the switch physType = PT_DIGGING; quell = true; xv *= 0.1; yv *= 0.1; age = 0; } } // End of burrower handling // If a weapon has submunition, it goes off now else if (weap->submunition >= 0) { quell = true; // This one is done if ( (weap->numSubmunitions > 0) && (MT_MIND_SHOT != missileType) ) { WEAPON* submunition = &weapon[weap->submunition]; double divergenceStep = static_cast(weap->divergence) / static_cast(weap->numSubmunitions - 1); int32_t startPoint = divergenceStep < 0. ? 0 : 180; int32_t randStart = rand () % 1000000; ePhysType submunitionPhys = PT_NORMAL; double inheritedXV = weap->impartVelocity * xv; double inheritedYV = weap->impartVelocity * yv; int32_t startY = y - 20; bool ceiling_crash = false; // See whether the weapon was fired into a ceiling: // This applies for both steel ceilings and wrap ceilings, // but the latter only if no ceiling wrap is activated or // if the next pixel at the bottom is dirt. if (env.isBoxed && (startY <= MENUHEIGHT) // Base condition && ( ( (WALL_WRAP == env.current_wallType) && (!env.do_box_wrap // <- No wrap makes it steel // \/ dirt makes the ceiling unwrapable || ( global.surface[ROUND(x)].load(ATOMIC_READ) < env.screenHeight) ) ) || ( WALL_STEEL == env.current_wallType) ) ) { // This always blasts ceiling_crash = true; // If the weapon is fired into a ceiling, adapt starting y startY = MENUHEIGHT + 20; } // if napalm is going off, play its burn out sound if ( (weapType >= SML_NAPALM) && (weapType <= LRG_NAPALM)) play_explosion_sound(weapType, x, 128 + (weap->radius / 2), 1000); // Change physics of the submunitions for the funky bombs if ( (weapType == FUNKY_BOMB) || (weapType == FUNKY_DEATH) ) submunitionPhys = PT_FUNKY_FLOAT; // If this is a steel wall hit, the start point angle needs // to be adapted. if ( (WALL_STEEL == env.current_wallType) && !ceiling_crash) { if ( (CLUSTER <= weapType) && (SUP_CLUSTER >= weapType) ) { if ( x < 2 ) startPoint -= weap->divergence + 1 + (rand() % 10); else if ( x > (env.screenWidth - 3) ) startPoint += weap->divergence + 1 + (rand() % 10); } else if ( (SML_NAPALM <= weapType) && (LRG_NAPALM >= weapType) ) { if ( x < 2 ) startPoint -= 10 + rand() % 21; else if ( x > (env.screenWidth - 3) ) startPoint += 10 + rand() % 21; } } // If this is a ceiling crash, the start point angle needs // to be erased. if (ceiling_crash) { startPoint = 0; if ( (SMALL_MIRV == weapType) || (CLUSTER_MIRV == weapType) ) inheritedYV = std::abs(inheritedYV); } // The spread can be created! for (int32_t sc = 0; sc < weap->numSubmunitions; ++sc) { MISSILE *newmis = nullptr; double launchSpeed = weap->launchSpeed; int32_t newMissCount = submunition->countdown; int32_t newMissAngle = ROUND( (divergenceStep * static_cast(sc)) + static_cast(startPoint) - (static_cast(weap->divergence) / 2.) ); // Manipulate angle if applicable if (weap->spreadVariation > 0.) newMissAngle += ROUND( static_cast(weap->divergence) * weap->spreadVariation * Noise(randStart + 1054 + sc) ); // Be sure the angle is valid while (newMissAngle < 0) newMissAngle += 360; newMissAngle %= 360; // Manipulate number of submunition projectiles if applicable if (submunition->countVariation > 0) { newMissCount += ROUND( static_cast(submunition->countdown) * submunition->countVariation * Noise(randStart + 78689 + sc) ); // This might go wrong, so be sure it doesn't if (newMissCount <= 0) newMissCount = 0; } // Manipulate launching speed if applicable if (weap->speedVariation > 0) launchSpeed += ROUND( weap->speedVariation * weap->launchSpeed * Noise(randStart + 124786 + sc) ); // Launch new submunition missile // Note on funky floats: They do *not* home in on random // tanks when started, it is just a possibility in // applyPhysics() *only* try { newmis = new MISSILE (player, x, startY, env.slope[newMissAngle][0] * launchSpeed * env.FPS_mod + inheritedXV, env.slope[newMissAngle][1] * launchSpeed * env.FPS_mod + inheritedYV, weap->submunition, missileType, ai_level, 0); newmis->physType = submunitionPhys; newmis->countdown = newMissCount; newmis->setUpdateArea(newmis->x - 20, newmis->y - 20, 40, 40); } catch (...) { perror ( "missile.cpp: Failed to allocate memory for" "newmis in MISSILE::triggerTest (CLUSTER)"); } } // End of looping submunitions } // End of having submunition count destroy = true; } // End of having a submunition type defined } // If a countdown was set and this is old enough, this missile is no // longer quelled, regardless of what this means for this weapon type if ( (countdown >= 0) && (age >= countdown) ) quell = false; // Riot charges always go of in an instant. if ( (weapType >= RIOT_CHARGE) && (weapType <= RIOT_BLAST) ) { quell = false; destroy = true; } // Eventually trigger missiles that hit something or are lacerated if (hitSomething && !quell) { if (MT_MIND_SHOT == missileType) destroy = true; else trigger(); } else if ( (yv > 0.) && ( (weapType < RIOT_BOMB) || (weapType > SMALL_DIRT_SPREAD) ) && (weapType < BALLISTICS) ) // Otherwise it is time to check whether any tank SDI shoots it down Check_SDI(); } /// @brief special method to update private members iof sub munition missiles. /// This method is only interesting for AICore tracing clusters. void MISSILE::update_submun(ePhysType p_type, int32_t cnt_down) { physType = p_type; countdown = cnt_down; } atanks-6.6/src/debug.h0000644000175000017500000001177513016422602013023 0ustar apoapo#pragma once #ifndef ATANKS_SRC_DEBUG_H_INCLUDED #define ATANKS_SRC_DEBUG_H_INCLUDED #include /******************************************************** * Determine whether we build for BSD, Linux or Windows * *******************************************************/ #if defined(_WIN32) || defined(__WIN32__) # define ATANKS_IS_WINDOWS # if defined(_MSC_VER) # define ATANKS_IS_MSVC // See whether the chrono bug is fixed: # if (_MSC_VER >= 1900) # define ATANKS_IS_AT_LEAST_MSVC13 # endif // VS 2015 # endif // _MSVC_VER #endif // Win 32 #if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__bsdi__) || defined(__DragonFly__) # define ATANKS_IS_BSD #endif // BSD #if defined(__linux__) || defined(__linux) || defined(linux) || defined(ATANKS_IS_BSD) # define ATANKS_IS_LINUX #endif // Linux #if !defined(ATANKS_IS_WINDOWS) && !defined(ATANKS_IS_LINUX) && !defined(ATANKS_IS_BSD) # error "Only Windows, Linux and BSD are supported at the moment" #endif // Windows versus Linux /********************************************************** * Define some macros to work around compiler differences * *********************************************************/ #if defined(ATANKS_IS_MSVC) # define atanks_snprintf(target, char_count, fmt, ...) \ _snprintf_s(target, char_count + 1, char_count, fmt, __VA_ARGS__) # define atanks_tzset() _tzset() # define atanks_localtime(tm_p, time_p) localtime_s(tm_p, time_p) #else # define atanks_snprintf(target, char_count, fmt, ...) \ snprintf(target, char_count, fmt, __VA_ARGS__) # define atanks_tzset() tzset() # define atanks_localtime(tm_p, time_p) localtime_r(time_p, tm_p) # define vsprintf_s(tgt, size, fmt, listvar) vsprintf(tgt, fmt, listvar) #endif // MSVC++ versus GCC/Clang // Windows special definitions #if defined(ATANKS_IS_WINDOWS) # ifndef WIN32_LEAN_AND_MEAN # define WIN32_LEAN_AND_MEAN # endif # ifndef WIN32_EXTRA_LEAN # define WIN32_EXTRA_LEAN # endif # ifndef VC_EXTRALEAN # define VC_EXTRALEAN # endif # define NOMINMAX #endif // IS_WINDOWS /// ============================================================== /// === The following is only used if ATANKS_DEBUG is defined. === /// === Otherwise the macro DEBUG_LOG() does nothing. === /// ============================================================== #if defined(ATANKS_DEBUG) // ATANKS_GET_FILE - This macro simply sets target to the current filename without a path #ifdef ATANKS_IS_MSVC # define ATANKS_GET_FILE(target) { \ char _atanks_fname_info[64]; \ char _atanks_extension[8]; \ _splitpath_s(__FILE__, NULL, 0, NULL, 0, _atanks_fname_info, 63, _atanks_extension, 7); \ atanks_snprintf(target, 255, "%s%s", _atanks_fname_info, \ _atanks_extension); \ } #else # define ATANKS_GET_FILE(target) { \ atanks_snprintf(target, 255, "%s", basename(__FILE__)); \ } #endif // ATANKS_GET_POS - This macro gathers positional information #ifdef ATANKS_IS_MSVC # define ATANKS_GET_POS(target) { \ ATANKS_GET_FILE(target) \ atanks_snprintf(target, 255, "%-10s:%4d %-24s", target, __LINE__, __FUNCTION__); \ } #else # define ATANKS_GET_POS(target) { \ atanks_snprintf(target, 255, "%-10s:%4d %-24s", basename(__FILE__), __LINE__, __FUNCTION__); \ } #endif // DEBUG_LOG - This macro is a wrapper for debug_log #define DEBUG_LOG(Title, Msg, ...) { \ char _atanks_trace_info[256]; \ ATANKS_GET_POS(_atanks_trace_info) \ debug_log(_atanks_trace_info, Title, Msg, __VA_ARGS__); \ } // declaration if debug_log void debug_log(const char* moduleName, const char* title, const char* message, ...); #else #define DEBUG_LOG(...) {} #endif // defined(ATANKS_DEBUG) // Enable / Disable specific debug message flavours // Those do nothing, even if enabled, if ATANKS_DEBUG is not defined #ifdef ATANKS_DEBUG_AIMING # define DEBUG_LOG_AIM(Title, Msg, ...) DEBUG_LOG(Title, Msg, __VA_ARGS__) #else # define DEBUG_LOG_AIM(...) {} #endif // ATANKS_DEBUG_AIMING #ifdef ATANKS_DEBUG_EMOTIONS # define DEBUG_LOG_EMO(Title, Msg, ...) DEBUG_LOG(Title, Msg, __VA_ARGS__) #else # define DEBUG_LOG_EMO(...) {} #endif // ATANKS_DEBUG_EMOTIONS // The next is a helper so those messages can show up whenever // either aiming or emotions shall be logged. #if defined(ATANKS_DEBUG_AIMING) || defined(ATANKS_DEBUG_EMOTIONS) # define DEBUG_LOG_AI(Title, Msg, ...) DEBUG_LOG(Title, Msg, __VA_ARGS__) #else # define DEBUG_LOG_AI(...) {} #endif // ATANKS_DEBUG_AIMING || ATANKS_DEBUG_EMOTIONS #ifdef ATANKS_DEBUG_FINANCE # define DEBUG_LOG_FIN(Title, Msg, ...) DEBUG_LOG(Title, Msg, __VA_ARGS__) #else # define DEBUG_LOG_FIN(...) {} #endif // ATANKS_DEBUG_FINANCE #ifdef ATANKS_DEBUG_OBJECTS # define DEBUG_LOG_OBJ(Title, Msg, ...) DEBUG_LOG(Title, Msg, __VA_ARGS__) #else # define DEBUG_LOG_OBJ(...) {} #endif // ATANKS_DEBUG_OBJECTS #ifdef ATANKS_DEBUG_PHYSICS # define DEBUG_LOG_PHY(Title, Msg, ...) DEBUG_LOG(Title, Msg, __VA_ARGS__) #else # define DEBUG_LOG_PHY(...) {} #endif // ATANKS_DEBUG_OBJECTS #endif // ATANKS_SRC_DEBUG_H_INCLUDED atanks-6.6/src/text.cpp0000644000175000017500000001612113006377360013253 0ustar apoapo#include #include #include #include #include #include #include "text.h" #include "main.h" // Basic constructor to kick things off TEXTBLOCK::TEXTBLOCK() { /* nothing to do here */ } // A constructor that also loads text from a file TEXTBLOCK::TEXTBLOCK(const char* filename) { if (filename && !Load_File(filename)) { cerr << "Something went wrong loading text from file:"; cerr << filename << " !" << endl; } } // clean everything TEXTBLOCK::~TEXTBLOCK() { destroy(); } /// @brief unified method to delete the present text void TEXTBLOCK::destroy() { if (complete_text) { for (int32_t i = 0; i < total_lines; ++i) { if ( complete_text[i] ) free(complete_text[i]); } free(complete_text); complete_text = nullptr; } } // This function display all lines of text. Optionally, it // will also print line numbers before each line. // The number of lines printed is returned. int32_t TEXTBLOCK::Display_All(bool show_line_numbers) { int32_t i = 0; for ( ; i < total_lines; ++i) { if (show_line_numbers) printf("%d. ", i); printf("%s\n", complete_text[i]); } return i; } /// @brief Draw @a text in the box @a region with border and blue background /// if @a with_box is true. /// This method releases the display and can therefore be used in parallel. void draw_text_in_box (BOX* region, const char* text, bool with_box) { if (with_box) { global.lockLand(); rectfill (global.canvas, region->x, region->y, region->w, region->h, makecol (0,0,128)); rect (global.canvas, region->x, region->y, region->w, region->h, makecol (128,128,255)); global.unlockLand(); } char buffer[1024] = { 0 }; uint32_t lastSpace = 0; uint32_t lineBegin = 0; uint32_t lineCount = 0; int32_t lineWidth = region->w - 27; uint32_t textLength = static_cast(strlen(text)); while (lineBegin < textLength) { uint32_t charCount = 0; uint32_t buffCount = 0; int32_t buffWidth = 0; memset(buffer, 0, sizeof(char) * 1024); // Fill buffer until a line break is found or the maximum width // is exceeded. For the latter case remember the last space found. do { buffer[buffCount] = text[lineBegin + charCount]; if (buffer[buffCount] == ' ') lastSpace = 0; else ++lastSpace; if (buffer[buffCount] != '\n') buffCount++; charCount++; buffWidth = text_length(font, buffer); } while ( text[lineBegin + charCount] && (buffWidth < lineWidth) && (buffer[buffCount] != '\n') ); // If the line width got exceeded, revert to last space seen if (lastSpace && (buffWidth >= lineWidth) ) { charCount -= lastSpace; buffer[buffCount - lastSpace - 1] = 0; } else buffer[buffCount] = 0; // Print out the result: if (buffer[0]) { textout_ex (global.canvas, font, buffer, region->x + 5, region->y + (lineCount * env.fontHeight) + 5, WHITE, -1); } lineBegin += charCount; lineCount++; } global.make_update (region->x, region->y, region->w, region->h); fi = 1; } // Returns the current line const char* TEXTBLOCK::Get_Current_Line() const { return complete_text[current_line]; } /// @brief Return a specific line or nullptr if @a index is out of bounds const char* TEXTBLOCK::Get_Line(int32_t index) const { if ( (index > 0) && (index < total_lines)) return complete_text[index]; return nullptr; } // Find a random line and return it const char* TEXTBLOCK::Get_Random_Line() const { return complete_text[rand() % total_lines]; } // This function does most of the work. It loads an entire text // file into memory. Returns true on success or false if // something goes wrong. bool TEXTBLOCK::Load_File(const char* filename) { char line[MAX_LINE_LENGTH] = { 0 }; int32_t lines_loaded = 0; int32_t we_have_space = 10; // open the file FILE* fIn = fopen(filename, "r"); if (!fIn) return false; // give us some space destroy(); complete_text = (char**)calloc(we_have_space, sizeof(char*)); if (!complete_text) { fclose(fIn); return false; } // time to load some text! while ( fgets(line, MAX_LINE_LENGTH, fIn) && (lines_loaded < MAX_LINES_IN_FILE) && complete_text) { // Reserve more space if full if (lines_loaded == we_have_space) { we_have_space += 10; char** new_text = (char**)realloc(complete_text, we_have_space * sizeof(char*)); if (new_text) complete_text = new_text; else { destroy(); fclose(fIn); return false; } } // Store the line: Trim_Newline(line); complete_text[lines_loaded] = (char*)calloc(strlen(line) + 1, sizeof(char)); if (complete_text[lines_loaded]) strncpy(complete_text[lines_loaded++], line, strlen(line)); } // End of loading text from a file fclose(fIn); total_lines = lines_loaded; current_line = 0; return true; } int32_t TEXTBLOCK::Lines() const { return total_lines; } // Move the line counter ahead, if possible // Returns false if we hit the end of lines, or // true if everything is OK bool TEXTBLOCK::Next_Line() { if (++current_line >= total_lines) { current_line = total_lines - 1; return false; } return true; } // Go to the previous line. The function returns // true is everything is OK. If we were already // at the beginning, then false is returned. bool TEXTBLOCK::Previous_Line() { if (--current_line < 0) { current_line = 0; return false; } return true; } // This method renders a part of the text to global.canvas void TEXTBLOCK::Render_Lines(int32_t scrollOffset, int32_t spacing, int32_t top, int32_t bottom) { int32_t txtheight = env.fontHeight * spacing ; int32_t xPos = env.halfWidth; int32_t yPos = env.halfHeight + scrollOffset; for ( int32_t i = 0 ; (i < total_lines) && (yPos < env.screenHeight) ; ++i) { if ( (yPos > (top - txtheight)) && (yPos < (bottom + txtheight)) ) { textout_centre_ex (global.canvas, font, complete_text[i], xPos + 2, yPos + 2, BLACK, -1); textout_centre_ex (global.canvas, font, complete_text[i], xPos, yPos, WHITE, -1); } yPos += txtheight; } } // This is a free floating function const char* Add_Comma(int32_t number) { static char return_value[128] = { 0 }; memset(return_value, 0, 128); // MAX_MONEY_IN_WALLET is: 1,000,000,000 = 13 characters char buffer[15] = { 0 }; snprintf(buffer, 14, "%d", number); int32_t index = static_cast(strlen(buffer)); // start from the end int32_t returnindex = index + (index / 3) - 1; int32_t th_count = 0; if (0 == (index % 3) ) returnindex--; while ( (index-- > 0) && (returnindex >= 0) ) { return_value[returnindex--] = buffer[index]; th_count++; if ( (th_count == 3) && (returnindex > 0) ) { th_count = 0; return_value[returnindex--] = ','; } } assert((index < 1) && "ERROR: index is not smaller than 1!"); assert((returnindex < 1) && "ERROR: returnindex is not smaller than 1!"); return return_value; } void Trim_Newline(char *line) { int32_t index = 0; while ( line[index] ) { if ( (line[index] == '\n') || (line[index] == '\r') ) line[index] = '\0'; else ++index; } } atanks-6.6/src/missile.h0000644000175000017500000000541313006377360013403 0ustar apoapo#ifndef MISSILE_DEFINE #define MISSILE_DEFINE /* * atanks - obliterate each other with oversize weapons * Copyright (C) 2003 Thomas Hudson * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "main.h" #include "physobj.h" // The ages are *seconds* and transformed to frames in the ctor. #define MAX_JELLY_AGE 1 #define MAX_MISSILE_AGE 15 #define MAX_METEOR_AGE 5 #define SDI_DISTANCE 100 #define TRIGGER_HEIGHT 300 /** @enum eMissileType * @brief Determines what kind of weapon is shot **/ enum eMissileType { MT_WEAPON = 0, //!< Normal weapon, nothing special MT_ITEM, //!< Not a weapon but an item MT_NATURAL, //!< Fired by natural disaster, like meteors and dirt balls. MT_MIND_SHOT //!< AI thinking. }; class MISSILE: public PHYSICAL_OBJECT { public: /* ----------------------------------- * --- Constructors and destructor --- * ----------------------------------- */ explicit MISSILE (PLAYER* player_, double xpos, double ypos, double xvel, double yvel, int32_t weapon_type, eMissileType missile_type, int32_t ai_level_, int32_t delay_idx_); ~MISSILE (); /* ---------------------- * --- Public methods --- * ---------------------- */ void applyPhysics(); int32_t bounced () const; int32_t direction () const; void draw (); eClasses getClass() { return CLASS_MISSILE; } void update_submun(ePhysType p_type, int32_t cnt_down); private: /* ----------------------- * --- Private methods --- * ----------------------- */ void Check_SDI(); // see if missile should be shot down int32_t Height_Above_Ground(); void Repulse_Missile(); void trigger (); void triggerTest (); /* ----------------------- * --- Private members --- * ----------------------- */ int32_t ai_level = 0; // Level of the AI shooting a mind shot int32_t countdown = -1; int32_t funky_colour = BLACK; int32_t growRadius = 0; bool isGrowing = false; eMissileType missileType = MT_WEAPON; WEAPON* weap = nullptr; }; #endif atanks-6.6/src/decor.cpp0000644000175000017500000002634312636021030013356 0ustar apoapo#include "decor.h" #include "sound.h" #include "tank.h" #include /// @brief Default constructor DECOR::DECOR(double x_, double y_, double xv_, double yv_, int32_t maxRadius, int32_t type_, int32_t delay_) : PHYSICAL_OBJECT(false), curWind(global.wind), delay(delay_), maxGravAccel(-4. * env.gravity * env.FPS_mod), maxWind(env.windstrength), maxWindAccel(global.wind * env.FPS_mod), radius(maxRadius), type(type_) { x = x_; y = y_; xv = xv_; yv = yv_; if (DECOR_DIRT == type) { // The core data is taken from the meteors. weapType = SML_METEOR + (maxRadius / 2); // results in (0, 1, 1, 2, 2) for radius [1;5] mass = naturals[weapType - WEAPONS].mass; drag = naturals[weapType - WEAPONS].drag / 5.; // Special physics for dirt debris: physType = PT_DIRTBOUNCE; // Only keep dirt alive while it is really moving, // if it becomes too slow, only keep it for 2 seconds maxAge = 2 * env.frames_per_second; // The diameter is just used so it does not have to // be calculated each time updateDirt() is called. diameter = radius * 2; // Calculate how many pixels are needed per call to updateDirt() grabPerCall = ((diameter + 1) * (diameter + 1)) / (delay > 1 ? delay : 1); } else if (DECOR_SMOKE == type) { int32_t tempCol = 128 + (rand () % 64); if (maxRadius <= 3) radius = 3; else radius = 3 + (rand () % (maxRadius - 2)); color = makecol (tempCol, tempCol, tempCol); mass = 1.0 + (static_cast(rand () % 5) / 10.); drag = 0.9 + (static_cast(rand () % 90) / 100.); // maximum age depends on the maximum radius and the real radius, // plus 0 to 2 extra seconds. maxAge = ( (maxRadius - (maxRadius - radius)) / 3) + (rand() % 3); maxAge *= env.frames_per_second; // Special physics for smoke, only for repulsion physType = PT_SMOKE; // Smoke does not need the dirt grabber ready = true; } else destroy = true; maxVel = env.maxVelocity * (1.20 + (mass / (.01 * MAX_POWER))); // Add to the chain: global.addObject(this); } /// @brief Constructor with bitmap DECOR::DECOR(double x_, double y_, double xv_, double yv_, int32_t maxRadius, int32_t type_, int32_t delay_, sDebrisItem* deb_item, sDebrisItem* met_item) : DECOR(x_, y_, xv_, yv_, maxRadius, type_, delay_) { // Everything done in delegated ctor, only img to set dirt = deb_item; setBitmap(dirt ? dirt->bmp : nullptr); // Note: It is safe to distribute dirt->bmp, because bitmap normally holds // global graphics and must not be destroyed. meteor = met_item; if ( (nullptr == dirt) || !hasBitmap() ) // Can't work without... destroy = true; } /// @brief default destructor DECOR::~DECOR() { if (DECOR_DIRT == type) { // Draw dirt on terrain and add land slide rotate_sprite (global.terrain, dirt->bmp, x - radius, y - radius, itofix (angle)); global.addLandSlide(x - radius - 1, x + radius + 1, false); } if (dirt) { global.free_debris_item(dirt); dirt = nullptr; } if (meteor) { global.free_debris_item(meteor); meteor = nullptr; } // Update the last drawing area int32_t calcRadius = radius; if (DECOR_DIRT == type) ++calcRadius; else if (DECOR_SMOKE == type) // The older, the larger... calcRadius = static_cast(radius * (4.0 * age / maxAge)); setUpdateArea ( x - calcRadius - 1, y - calcRadius - 1, (calcRadius * 2) + 2, (calcRadius * 2) + 2); requireUpdate (); this->update(); // Take out of the chain: global.removeObject(this); } /// @brief let smoke drift and disperse with the wind void DECOR::applyPhysics () { if (destroy) return; if (delay > 0) { --delay; return; } // for detecting bounces double old_yv = yv; if (DECOR_DIRT == type) { // Check whether movement ended double movement = FABSDISTANCE2(xv, yv, 0, 0); bool on_floor = isOnFloor(); // Needed again below. if ( on_floor && ( (hitSomething && (movement < 0.8)) || (movement < 0.2) ) ) { // It ended! // fix y: int32_t dirt_bottom = y + dirt->bmp->h; if ( ( (y - radius) > MENUHEIGHT) && ( dirt_bottom < env.screenHeight) && (PINK != getpixel(global.terrain, x, dirt_bottom)) ) --y; xv = 0.; yv = 0.; destroy = true; requireUpdate(); } else { hitSomething = false; // Enable checking. // Now apply physics repulseDecor(); PHYSICAL_OBJECT::applyPhysics(); // Be sure x/y values are sane (Can drift into walls // on rare wind conditions.) if (x < 2) x = 2; if (x > (env.screenWidth - 2)) x = env.screenWidth - 2; if (y > (env.screenHeight - 2)) y = env.screenHeight - 2; // Maybe play a sound on bounce if ( !global.skippingComputerPlay && (old_yv > .5) && (yv < -0.1) ) play_natural_sound(DIRT_FRAGMENT, x, radius * 32, 1200 - (radius * 50)); } // raise age if movement is below 0.5 if ( ( on_floor || (FABSDISTANCE2(xv, yv, 0, 0) < .5) ) && (++age > maxAge) ) destroy = true; } else if (DECOR_SMOKE == type) { // Apply wind first int32_t ageMod = ROUND(std::abs(curWind / (maxWind / 2.0))) + 1; /* This produces: (with max wind = 8) * wind = 0 : round(0 / (8 / 2)) + 1 = round(0 / 4) + 1 = 0 + 1 = 1 <-- normal aging * wind = 1 : round(1 / (8 / 2)) + 1 = round(1 / 4) + 1 = 0 + 1 = 1 <-- normal aging * wind = 4 : round(4 / (8 / 2)) + 1 = round(4 / 4) + 1 = 1 + 1 = 2 <-- raised aging * wind = 6 : round(6 / (8 / 2)) + 1 = round(6 / 4) + 1 = 2 + 1 = 3 <-- fast aging * wind = 8 : round(8 / (8 / 2)) + 1 = round(8 / 4) + 1 = 2 + 1 = 3 <-- fast aging */ age += ageMod; // Set further values // Try to reach half distance to the maximum values per second double xaccel = ((xv + maxWindAccel) / 2) / static_cast(env.frames_per_second); double yaccel = ((yv + maxGravAccel) / 2) / static_cast(env.frames_per_second / 10.); // Apply current acceleration xv += xaccel; yv += yaccel; // Add repulsion: repulseDecor(); // Be sure that neither xv outruns wind nor yv is // higher than reverse gravity if (std::abs(xv) > std::abs(curWind)) xv = curWind; if (yv < maxGravAccel) yv = maxGravAccel; // Don't push through the floor if ( (y + yv) >= env.screenHeight) { yv *= -0.5; xv *= 0.95; } // The faster the smoke is blown by the wind, the less it rises: if ( (yv < -1.) && (std::abs(xv) > 1.) ) yv = (yv + (yv / std::abs(xv))) / 2.; // and if the smoke is going down, halve yv else if (yv > 0.) yv /= 2.; // Now the velocity can be applied. x += xv; y += yv; // Destroy the smoke if it goes off-screen or is diffused int32_t calcRadius = static_cast(radius * (4.0 * age / maxAge)); if ( (x < (1 - calcRadius)) || (x >= (env.screenWidth + calcRadius)) || (y < (MENUHEIGHT - calcRadius)) || (age > maxAge) ) destroy = true; } } /// @brief draw decor according to current settings and type. void DECOR::draw() { if (!ready && !destroy) { updateDirt(); if (ready) { // finished! See whether there are enough pixels if (gotPixels <= radius) // nope. destroy = true; } } if (destroy || (delay > 0)) return; int32_t calcRadius = radius; if (DECOR_DIRT == type) { // Rotate according to xv and yv angle += yv + ((SIGNd(xv) * 5.) - xv); // Be sure the angle is in order: if (angle < 0) angle += 360; if (angle > 360) angle -= 360; // And draw it: if (y > MENUHEIGHT) { VIRTUAL_OBJECT::draw(); ++calcRadius; } } else if (DECOR_SMOKE == type) { // The older, the larger... calcRadius = static_cast(radius * (4.0 * age / maxAge)); drawing_mode (DRAW_MODE_TRANS, NULL, 0, 0); set_trans_blender (0, 0, 0, 255 - (255 * age / maxAge)); circlefill (global.canvas, x, y, calcRadius, color); } drawing_mode (global.current_drawing_mode, NULL, 0, 0); setUpdateArea ( x - calcRadius - 1, y - calcRadius - 1, (calcRadius * 2) + 2, (calcRadius * 2) + 2); requireUpdate (); } /// In case of too much decor for the machine, allow forced ageing void DECOR::force_aging(int32_t frames) { age += frames; if (age > maxAge) destroy = true; } /// return true if a dirt debris item "lies" on the floor, or is squeezed in a /// dirt slide. bool DECOR::isOnFloor() { int32_t scr_r = env.screenWidth - 2; // shortcut; int32_t scr_b = env.screenHeight - 2; // ditto; // If the debris is above the screen or directly on the floor, // return at once: if (y <= MENUHEIGHT) return false; if (y >= (scr_b - radius)) return true; // Use safe values: int32_t round_x = ROUND(x); int32_t round_y = ROUND(y); // sanitize x value: if (round_x < 1) round_x = 1; else if (round_x > scr_r) round_x = scr_r; // rounded boundaries, clipped to the screen: int32_t left = std::max(1, round_x - radius); int32_t top = std::max(MENUHEIGHT, round_y - radius); int32_t right = std::min(scr_r, round_x + radius); int32_t bottom = std::min(scr_b, round_y + radius); // Go from left to right and check whether the surface is above the bottom. int32_t surf_hits = 0; bool on_floor = false; for (int32_t i = left; !on_floor && (i <= right); ++i) { if (global.surface[i].load(ATOMIC_READ) <= bottom) { // Actually this could mean that the debris is within // a hole in a mountain that hasn't been slid down, yet. bool in_dirt = false; for (int32_t j = bottom; !in_dirt && (j >= top) ; --j) { if (PINK != getpixel(global.terrain, i, j)) in_dirt = true; } if (in_dirt && (++surf_hits >= radius) ) on_floor = true; } } return on_floor; } /// DIRT and Smoke (somewhat) can be repulsed, too void DECOR::repulseDecor() { TANK* lt = nullptr; double xaccel = 0; double yaccel = 0; global.getHeadOfClass(CLASS_TANK, <); while (lt) { if (!lt->destroy) { if (lt->repulse (x + xv, y + yv, &xaccel, &yaccel, physType)) { xv += xaccel; yv += yaccel; } } lt->getNext(<); } } /// Small scale dirt grabber void DECOR::updateDirt() { int32_t togo = grabPerCall + 1; double deb_rad = static_cast(radius); while (togo) { double deb_dist = FABSDISTANCE2(static_cast(grab_x), static_cast(grab_y), deb_rad, deb_rad); if (deb_dist <= deb_rad) { int32_t tcol = getpixel(dirt->bmp, grab_x, grab_y); // If this is a meteor and the terrain had no pixel // there, take one out of the rock instead. if ( (PINK == tcol) && meteor) tcol = getpixel(meteor->bmp, grab_x, grab_y); // If this is valid, scorch the colour and put it back. if (PINK != tcol) { double deb_mod = deb_dist / deb_rad; int32_t new_r = getr(tcol) / (1.25 + deb_mod); int32_t new_g = getg(tcol) / (1.66 + deb_mod); int32_t new_b = getb(tcol) / (1.33 + deb_mod); putpixel(dirt->bmp, grab_x, grab_y, makecol(new_r, new_g, new_b)); ++gotPixels; } } // End of position in range else // If the position is not in range, erase the surplus pixel putpixel(dirt->bmp, grab_x, grab_y, PINK); // This point is done --togo; // Advance coordinates if (++grab_x > diameter) { grab_x = 0; if (++grab_y > diameter) { // end of work togo = 0; ready = true; if (meteor) { global.free_debris_item(meteor); meteor = nullptr; } } } } // End of having pixels to grab } atanks-6.6/src/main.cpp0000644000175000017500000000604112636021030013177 0ustar apoapo#include "main.h" bool operator==(const BOX &lhs, const BOX &rhs) { return (&lhs == &rhs) || ( (lhs.x == rhs.x) && (lhs.y == rhs.y) && (lhs.w == rhs.w) && (lhs.h == rhs.h) ); } bool operator!=(const BOX &lhs, const BOX &rhs) { return !(lhs == rhs); } BOX::BOX(int32_t x_, int32_t y_, int32_t w_, int32_t h_) : x(x_), y(y_), w(w_), h(h_) { /* nothing to do here */ } /// @brief normal assignment operator BOX &BOX::operator= (const BOX &src) { if (&src != this) { x = src.x; y = src.y; w = src.w; h = src.h; } return *this; } /// @brief rvalue reference assignment operator BOX &BOX::operator= (const BOX &&src) { x = src.x; y = src.y; w = src.w; h = src.h; return *this; } void BOX::set(int32_t x_, int32_t y_, int32_t w_, int32_t h_) { x = x_; y = y_; w = w_; h = h_; } POINT_t::POINT_t(int32_t x_, int32_t y_) : x(x_), y(y_) { /* nothing to do here */ } POINT_t &POINT_t::operator=( const POINT_t& src ) { if (&src != this) { x = src.x; y = src.y; } return *this; } // Safe ctor for WEAPON class WEAPON::WEAPON() { memset(desc, 0, sizeof(char) * MAX_ITEM_DESC_LEN + 1); memset(name, 0, sizeof(char) * MAX_ITEM_NAME_LEN + 1); } /// @brief Get the delay or 1 if delay is zero. int32_t WEAPON::getDelayDiv() const { return delay > 0 ? delay : 1; } /// @brief Get the current weapon description const char* WEAPON::getDesc() const { return desc; } /// @brief Get the current weapon name const char* WEAPON::getName() const { return name; } /// @brief Safely set a new weapon description void WEAPON::setDesc(const char* desc_) { if (strlen(desc_) > MAX_ITEM_DESC_LEN) fprintf(stderr, "Weapon description for \"%s\" truncated! (%d/%lu characters)\n", name, MAX_ITEM_DESC_LEN, strlen(desc_)); strncpy(desc, desc_, MAX_ITEM_DESC_LEN); } /// @brief Safely set a new weapon name void WEAPON::setName(const char* name_) { if (strlen(name_) > MAX_ITEM_NAME_LEN) fprintf(stderr, "Weapon name for \"%s\" truncated! (%d/%lu characters)\n", name_, MAX_ITEM_NAME_LEN, strlen(name_)); strncpy(name, name_, MAX_ITEM_NAME_LEN); } // Safe ctor for WEAPON class ITEM::ITEM() { memset(vals, 0, sizeof(double) * MAX_ITEMVALS); memset(desc, 0, sizeof(char) * MAX_ITEM_DESC_LEN + 1); memset(name, 0, sizeof(char) * MAX_ITEM_NAME_LEN + 1); } /// @brief Get the current item description const char* ITEM::getDesc() const { return desc; } /// @brief Get the current item name const char* ITEM::getName() const { return name; } /// @brief Safely set a new item description void ITEM::setDesc(const char* desc_) { if (strlen(desc_) > MAX_ITEM_DESC_LEN) fprintf(stderr, "Item description for \"%s\" truncated! (%d/%lu characters)\n", name, MAX_ITEM_DESC_LEN, strlen(desc_)); strncpy(desc, desc_, MAX_ITEM_DESC_LEN); } /// @brief Safely set a new item name void ITEM::setName(const char* name_) { if (strlen(name_) > MAX_ITEM_NAME_LEN) fprintf(stderr, "Item name for \"%s\" truncated! (%d/%lu characters)\n", name_, MAX_ITEM_NAME_LEN, strlen(name_)); strncpy(name, name_, MAX_ITEM_NAME_LEN); } atanks-6.6/src/shop.cpp0000644000175000017500000007610112636021030013230 0ustar apoapo#include "shop.h" #include "player.h" #include "files.h" #include "gameloop.h" // For the LevelCreator declaration. #include "text.h" // for draw_text_in_box() #define SHOP_BAR_HEIGHT 29 /// ==== helper functions ==== static int32_t calcPotentialDmg (int32_t weapNum); static void divide_team_money(); static void do_ai_shopping (PLAYER* pl, int32_t maxBoost, int32_t maxScore); static void draw_shop (PLAYER* pl); static void draw_weapon_list (PLAYER* pl, int32_t* trolley, int32_t scroll_old, int32_t scroll_new, int32_t over_old, int32_t over_new); /// ==== Helper values ==== static int32_t btps = 0; /// ==== External functions used ==== void draw_simple_bg(bool drawImage); bool shop(LevelCreator* lvl_creator) { bool performed_save_game = false; char buf[50] = { 0 }; char description[1024] = { 0x20, 0x0 }; const int32_t scrollArrowPos = env.screenWidth - STUFF_BAR_WIDTH - 30; draw_shop (nullptr); // Determine btps: btps = ROUNDu((env.screenHeight - SHOP_BAR_HEIGHT) / STUFF_BAR_HEIGHT); // Init global for drawing the shop: global.do_updates(); global.stopwindow = true; // before we do anything else, put a cap on money for (int32_t z = 0; z < env.numGamePlayers; ++z) { if (env.players[z]->money > 1000000000) env.players[z]->money = 1000000000; if (env.players[z]->money < 0) env.players[z]->money = 0; } if (env.isGameLoaded) // after the first shopping loop the game isn't fresh any more env.isGameLoaded = false; else // Money dividing within the non-neutral teams only happens if no game // was loaded. Game saving is done after that rounds money dividing. divide_team_money(); // Determine maximum boost value and score int32_t maxBoost = 0; int32_t maxScore = 0; for (int32_t z = 0; z < env.numGamePlayers;++z) { int32_t boostValue = env.players[z]->getBoostValue(); if (boostValue > maxBoost) maxBoost = boostValue; if (env.players[z]->score > maxScore) maxScore = env.players[z]->score; } // If this is demo mode, raise the max boost level, as there // are no human players to define a maximum value if (global.demo_mode) maxBoost += env.rounds - global.currentround; // Loop all players to let them do their shopping for (int32_t pl = 0; pl < env.numGamePlayers; pl++) { // computer players have their own function for their shopping if ( HUMAN_PLAYER != env.players[pl]->type ) { do_ai_shopping(env.players[pl], maxBoost, maxScore); continue; // next one. } // Be sure no input from previous human players or from pressing // the "Play" button on the player selection screen carry over: flush_inputs(); int32_t money = env.players[pl]->money; int32_t trolley[THINGS] = { 0 }; bool done = false; bool need_draw = false; int32_t scroll = 1; int32_t scroll_old = -1; int32_t pressed = -1; int32_t prev_wheel = mouse_z; int32_t curr_wheel = 0; int32_t lastMouse_b = 0; int32_t lastMouse_x = 0; int32_t lastMouse_y = 0; int32_t lb = 0; int32_t itemindex = 1; int32_t hoverOver = -1; int32_t hoverOver_old = -1; int32_t cost, amt, inInv; // short cuts BOX area(20, 60, 300, 400); env.mouseclock = 0; draw_shop (env.players[pl]); while (!done) { while (!done && !need_draw) { if (global.isCloseBtnPressed()) { done = true; continue; } if ( (lastMouse_x != mouse_x) || (lastMouse_y != mouse_y) ) { lastMouse_x = mouse_x; lastMouse_y = mouse_y; if (!env.osMouse) need_draw = true; } int32_t newlyOver = -1; // Check mouse button if (!lb && (mouse_b & 1)) { // Check close shop button: if ( (mouse_x >= (env.halfWidth - 100)) && (mouse_x < (env.halfWidth + 100)) && (mouse_y >= (env.screenHeight - 50)) && (mouse_y < (env.screenHeight - 25)) ) done = true; env.mouseclock = 0; } lb = (mouse_b & 1) ? 1 : 0; /* ======================== * === Keyboard control === * ======================== */ if ( keypressed() ) { k = readkey(); K = k >> 8; } else k = K = 0; // Move up the list if ( (K == KEY_UP) || (K == KEY_W) ) { if (itemindex > 1) itemindex--; if (itemindex < scroll) scroll = itemindex; need_draw = true; } else if ( (K == KEY_PGUP) || (K == KEY_R) ) { itemindex -= btps; if (itemindex < 1) itemindex = 1; if (itemindex < scroll) scroll = itemindex; need_draw = true; } // Move down the list else if ( (K == KEY_DOWN) || (K == KEY_S) ) { if (itemindex < (env.numAvailable - 1)) itemindex++; if ( (itemindex - scroll) >= btps ) scroll = itemindex - (btps - 1); need_draw = true; } else if ( ( (K == KEY_PGDN) || (K == KEY_F) ) && (scroll <= (env.numAvailable - btps) ) ) { itemindex += btps; if (itemindex > env.numAvailable - 1) itemindex = env.numAvailable - 1; if ( (itemindex - scroll) >= btps) scroll = itemindex - (btps - 1); need_draw = true; } // make sure the selected item is on the visible screen if (itemindex < scroll) itemindex = scroll; else if ( itemindex >= (scroll + btps) ) itemindex = scroll + btps - 1; // buy or sell an item if ( (K == KEY_RIGHT) || (K == KEY_D) ) { pressed = env.availableItems[itemindex]; if (pressed >= WEAPONS) { cost = item[pressed - WEAPONS].cost; amt = item[pressed - WEAPONS].amt; inInv = env.players[pl]->ni[pressed - WEAPONS]; } else { cost = weapon[pressed].cost; amt = weapon[pressed].amt; inInv = env.players[pl]->nm[pressed]; } if (key[KEY_LCONTROL] || key[KEY_RCONTROL]) { cost *= 10; amt *= 10; } if ( (money >= cost) && ( (inInv + trolley[pressed]) < (MAX_ITEMS_IN_STOCK - amt)) ) { if (trolley[pressed] <= -amt) { if (env.sellpercent > 0.01) { money -= ROUNDu(cost * env.sellpercent); trolley[pressed] += amt; need_draw = true; } } else { money -= cost; trolley[pressed] += amt; need_draw = true; if (inInv + trolley[pressed] > MAX_ITEMS_IN_STOCK) trolley[pressed] = MAX_ITEMS_IN_STOCK; } } pressed = -1; } // end of buying else if ( (K == KEY_LEFT) || (K == KEY_A) ) { pressed = env.availableItems[itemindex]; if (pressed >= WEAPONS) { cost = item[pressed - WEAPONS].cost; amt = item[pressed - WEAPONS].amt; inInv = env.players[pl]->ni[pressed - WEAPONS]; } else { cost = weapon[pressed].cost; amt = weapon[pressed].amt; inInv = env.players[pl]->nm[pressed]; } if (key[KEY_LCONTROL] || key[KEY_RCONTROL]) { cost *= 10; amt *= 10; } if (inInv + trolley[pressed] >= amt) { if (trolley[pressed] >= amt) { money += cost; trolley[pressed] -= amt; need_draw = true; } else { if (env.sellpercent > 0.01) { money += ROUNDu(cost * env.sellpercent); trolley[pressed] -= amt; need_draw = true; } } } pressed = -1; } // end of selling // check for adding or removing rounds else if ( (K == KEY_PLUS_PAD) || (K == KEY_EQUALS) ) { if ( (env.rounds < MAX_ROUNDS) && (! env.mouseclock) ) { env.rounds++; global.currentround++; need_draw = true; } } else if ( (K == KEY_MINUS_PAD) || (K == KEY_MINUS) ) { if ( (env.rounds > 1) && (global.currentround > 1) && (! env.mouseclock) ) { env.rounds--; global.currentround--; need_draw = true; } } // check for saving the game else if ( K == KEY_F10 ) { if (!performed_save_game && Save_Game() ) performed_save_game = true; if (performed_save_game) snprintf(description, 64, "%s \"%s\".", env.ingame->Get_Line(17), env.game_name); else strncpy(description, env.ingame->Get_Line(41), 1023); draw_text_in_box (&area, description, true); need_draw = true; } // Keyboard exit shop: if (K == KEY_ENTER) done = true; /* ======================== * === Mouse control === * ======================== */ // check mouse wheel curr_wheel = mouse_z; if (curr_wheel < prev_wheel) { if (++scroll >= (env.numAvailable - btps) ) scroll = env.numAvailable - btps; if (scroll > itemindex) itemindex = scroll; need_draw = true; } else if (curr_wheel > prev_wheel) { if (--scroll < 1) scroll = 1; if (itemindex >= (scroll + btps) ) itemindex = scroll + btps - 1; need_draw = true; } prev_wheel = curr_wheel; // Ensure the description shows what is selected newlyOver = env.availableItems[itemindex]; // check mouse over items if ( (mouse_x >= (env.screenWidth - STUFF_BAR_WIDTH)) && (mouse_x < env.screenWidth) ) { bool isOver = false; int32_t zzz = scroll; for (int32_t z = 1; (z <= btps) && !isOver; ++z) { if ( (mouse_y >= ( z * STUFF_BAR_HEIGHT)) && (mouse_y < ( (z * STUFF_BAR_HEIGHT) + 30) ) ) isOver = true; else ++zzz; } if (isOver && (hoverOver != env.availableItems[zzz])) { newlyOver = env.availableItems[zzz]; itemindex = zzz; need_draw = true; } } // End of mouse_x in stuff bar // Switch description if necessary if (hoverOver != newlyOver) { if (newlyOver > -1) { if (newlyOver < WEAPONS) { WEAPON *weap = &weapon[newlyOver]; snprintf (description, 1023, "Radius: %d\nYield: %d\n\n%s", weap->radius, calcPotentialDmg (newlyOver) * weap->spread, weap->getDesc()); } else { int32_t itemNum = newlyOver - WEAPONS; ITEM *it = &item[itemNum]; if ( (itemNum >= ITEM_VENGEANCE) && (itemNum <= ITEM_FATAL_FURY) ) { double potDmg = calcPotentialDmg(it->vals[0]) * it->vals[1]; snprintf (description, 1023, "Potential Damage: %d\n\n%s", ROUND(potDmg), it->getDesc()); } else snprintf (description, 1023, "%s", it->getDesc()); } } else description[0] = 0; hoverOver = newlyOver; need_draw = true; draw_text_in_box (&area, description, true); } // end of hovering on a different item // Check mouse buttons against scrolling, buying and selling. if ( (mouse_b & 1) && !env.mouseclock) { if ( (mouse_x >= scrollArrowPos) && (mouse_x < (scrollArrowPos + 24)) ) { // Fast up if ( (mouse_y >= (env.halfHeight - 50)) && (mouse_y < (env.halfHeight - 25)) && (scroll > 1) ) { scroll -= btps / 2; if (scroll < 1) scroll = 1; need_draw = true; } // Up one item if ( (mouse_y >= (env.halfHeight - 24)) && (mouse_y < env.halfHeight) && (scroll > 1) ) { --scroll; need_draw = true; } // Down one item if ( (mouse_y >= (env.halfHeight + 1)) && (mouse_y < (env.halfHeight + 25)) && (scroll < (env.numAvailable - btps)) ) { ++scroll; need_draw = true; } // Fast down if ( (mouse_y >= (env.halfHeight + 25)) && (mouse_y < (env.halfHeight + 50)) && (scroll < (env.numAvailable)) ) { scroll += btps / 2; if (scroll >= env.numAvailable - btps) scroll = env.numAvailable - btps; need_draw = true; } } if (itemindex < scroll) itemindex = scroll; else if ( itemindex > (scroll + btps) ) itemindex = scroll + btps - 1; } // Check mouse buttons for clicks if ( ( (mouse_b & 1) || (mouse_b & 2) ) && (mouse_x >= (env.screenWidth - STUFF_BAR_WIDTH)) && (mouse_x < env.screenWidth) ) pressed = env.availableItems[itemindex]; // Only do the buying / selling when the mouse button is // released. This way users can pull the mouse off the item if ( (pressed > -1) && !((mouse_b & 1) || (mouse_b & 2)) ) { if (pressed < WEAPONS) { cost = weapon[pressed].cost; amt = weapon[pressed].amt; inInv = env.players[pl]->nm[pressed]; } else { cost = item[pressed - WEAPONS].cost; amt = item[pressed - WEAPONS].amt; inInv = env.players[pl]->ni[pressed - WEAPONS]; } if (key[KEY_LCONTROL] || key[KEY_RCONTROL]) { cost *= 10; amt *= 10; } // RMB sells items and takes precedence over LMB if (lastMouse_b & 2) { if ( (inInv + trolley[pressed]) >= amt) { if (trolley[pressed] >= amt) { money += cost; trolley[pressed] -= amt; need_draw = true; } else if (env.sellpercent > 0.01) { money += ROUNDu(cost * env.sellpercent); trolley[pressed] -= amt; need_draw = true; } } } else if ( (money >= cost) && ( (inInv + trolley[pressed]) < (MAX_ITEMS_IN_STOCK - amt)) ) { if (trolley[pressed] <= -amt) { if (env.sellpercent > 0.01) { money -= ROUNDu(cost * env.sellpercent); trolley[pressed] += amt; need_draw = true; } } else { money -= cost; trolley[pressed] += amt; need_draw = true; if ( (inInv + trolley[pressed]) > MAX_ITEMS_IN_STOCK) trolley[pressed] = MAX_ITEMS_IN_STOCK; } } pressed = -1; } // End of mouse buttons released with item selected env.mouseclock++; if (env.mouseclock > 5) env.mouseclock = 0; lastMouse_b = mouse_b; // Sleep a bit if nothing happened if (!done && !need_draw) LINUX_SLEEP } // End of input handling loop // Update display if anything happened: if (need_draw) { need_draw = false; // No hardware mouse while drawing SHOW_MOUSE(nullptr) global.make_update(env.halfWidth - 200, 0, env.gfxData.stuff_bar[0]->w, env.gfxData.stuff_bar[0]->h); draw_sprite (global.canvas, env.gfxData.stuff_bar[0], env.halfWidth - 200, 0); textprintf_ex (global.canvas, font, env.halfWidth - 190, 0, BLACK, -1, "%s %d: %s", env.ingame->Get_Line(10), pl + 1, env.players[pl]->getName ()); textprintf_ex (global.canvas, font, env.halfWidth - 190, 14, BLACK, -1, "%s: $%s", env.ingame->Get_Line(11), Add_Comma(money)); snprintf (buf, 49, "%s: %d/%d", env.ingame->Get_Line(12), env.rounds - global.currentround, env.rounds); textout_ex (global.canvas, font, buf, env.halfWidth + 170 - text_length(font, buf), 0, BLACK, -1); snprintf (buf, 49, "%s: %d", env.ingame->Get_Line(13), env.players[pl]->score); textout_ex (global.canvas, font, buf, env.halfWidth + 155 - text_length(font, buf), 14, BLACK, -1); draw_weapon_list(env.players[pl], trolley, scroll_old, scroll, hoverOver_old, hoverOver); // Update non-OS mouse movements SHOW_MOUSE(global.canvas) global.do_updates (); hoverOver_old = hoverOver; scroll_old = scroll; } // End of drawing } // End of player shopping loop // Now write back bought/sold items and remaining money for (int tItem = 0; tItem < WEAPONS; tItem++) env.players[pl]->nm[tItem] += trolley[tItem]; for (int tItem = WEAPONS; tItem < THINGS; tItem++) env.players[pl]->ni[tItem - WEAPONS] += trolley[tItem]; env.players[pl]->money = money; } // End of player handling // Eventually give all players interest on their remaining money if (!global.isCloseBtnPressed()) { for (int32_t z = 0; z < env.numGamePlayers; z++) { int32_t money = env.players[z]->money; int32_t interest = 0; double intPerc = .0; int32_t intLevel = 0; int32_t intSum = 0; // The summed up interest DEBUG_LOG_FIN(env.players[z]->getName(), "======================================================", 0) DEBUG_LOG_FIN(env.players[z]->getName(), "%2d.: %s enters the bank to get interest:", (z+1), env.players[z]->getName()) DEBUG_LOG_FIN(env.players[z]->getName(), " Starting Account: %10d", env.players[z]->money) DEBUG_LOG_FIN(env.players[z]->getName(), "------------------------------------------------------", 0) while (money && (intLevel++ < 5)) { // Enter next level intPerc = (env.interest - 1.0) / intLevel; interest = static_cast(money) * intPerc; // The limit is only applicable on the first four levels, // in the fifth level interest is fully applied! if ((interest > MAX_INTEREST_AMOUNT) && (intLevel < 5)) interest = MAX_INTEREST_AMOUNT; // Now sum the interest up and substract the counted money! intSum += interest; money -= static_cast(interest) / intPerc; DEBUG_LOG_FIN(env.players[z]->getName(), " Level %1d: %8d credits are rated,", intLevel, static_cast(interest / intPerc)) DEBUG_LOG_FIN(env.players[z]->getName(), " Interest: %8d credits. (%5.2f%%)", interest, intPerc * 100.) // To get rid of (possible) rounding errors, add a security check: if ( (money < (4 * intLevel)) || (interest < 1) ) money = 0; // With less there won't be any more interest anyway! DEBUG_LOG_FIN(env.players[z]->getName(), " Unrated : %8d credits left.", money) } // Now give them their money: DEBUG_LOG_FIN(env.players[z]->getName(), " Sum: %8d credits.", intSum) DEBUG_LOG_FIN(env.players[z]->getName(), "------------------------------------------------------", 0) env.players[z]->money += intSum; DEBUG_LOG_FIN(env.players[z]->getName(), " Final Account : %10d", env.players[z]->money) } // End of looping players } // End of close button not pressed // If the close button was pressed, the creator thread must end // ASAP so we can get out of here. if (global.isCloseBtnPressed()) lvl_creator->die_now(); // The LevelCreator, if not finished, can work alone, now: if (!lvl_creator->is_finished()) lvl_creator->work_alone(); // Wait until the level creator is done while (!lvl_creator->is_finished()) { MSLEEP(20) if ( lvl_creator->has_progress() ) { // Hide custom mouse pointer SHOW_MOUSE(nullptr) lvl_creator->print_state(); // Draw custom mouse cursor SHOW_MOUSE(global.canvas) global.do_updates(); } } return !global.isCloseBtnPressed(); } /* * Calculate the potential damage for a given weapon. * Recursively add the damage of sub-munitions. */ static int32_t calcPotentialDmg (int32_t weapNum) { WEAPON *weap = &weapon[weapNum]; int32_t total = 0; if ( (weap->submunition >= 0) && (weap->numSubmunitions > 0) ) total += calcPotentialDmg (weap->submunition) * weap->numSubmunitions; else total += weap->damage; return total; } // If configured to do so, this method divides team money to help out team mates static void divide_team_money() { if (!env.divide_money) return; int32_t jediMoney = 0; int32_t jediCount = 0; int32_t sithMoney = 0; int32_t sithCount = 0; int32_t teamFee = 0; for (int32_t z = 0; z < env.numGamePlayers; ++z) { // Sum up team money: if (env.players[z]->team == TEAM_JEDI) { teamFee = static_cast(env.players[z]->money) / 4.; if (teamFee > MAX_TEAM_AMOUNT) teamFee = MAX_TEAM_AMOUNT; jediMoney += teamFee; jediCount++; } else if (env.players[z]->team == TEAM_SITH) { teamFee = static_cast(env.players[z]->money) / 4; if (teamFee > MAX_TEAM_AMOUNT) teamFee = MAX_TEAM_AMOUNT; sithMoney += teamFee; sithCount++; } // Note: The team Fee is not docked, yet, as it is not clear // whether there is more than one team member. } DEBUG_LOG_FIN("Overview", "Jedi Count: %d - Sith Count: %d", jediCount, sithCount) // Now apply the team money (if any): if (jediCount > 1) { DEBUG_LOG_FIN("Overview", "The Jedi summed up a pool of %13d credits!", jediMoney) jediMoney = static_cast(jediMoney) * .90 / jediCount; DEBUG_LOG_FIN("Overview", "Every Jedi will receive %10d credits out of the pool!", jediMoney) for (int32_t z = 0; z < env.numGamePlayers; ++z) { if (TEAM_JEDI == env.players[z]->team) { teamFee = static_cast(env.players[z]->money) / 4; if (teamFee > MAX_TEAM_AMOUNT) teamFee = MAX_TEAM_AMOUNT; env.players[z]->money -= teamFee; env.players[z]->money += jediMoney; } } } if (sithCount > 1) { DEBUG_LOG_FIN("Overview", "The Sith summed up a pool of %13d credits!", sithMoney) sithMoney = static_cast(sithMoney) * .90 / sithCount; DEBUG_LOG_FIN("Overview", "Every Sith will receive %10d credits out of the pool!", sithMoney) for (int32_t z = 0; z < env.numGamePlayers; ++z) { if (TEAM_SITH == env.players[z]->team) { teamFee = static_cast(env.players[z]->money) / 4; if (teamFee > MAX_TEAM_AMOUNT) teamFee = MAX_TEAM_AMOUNT; env.players[z]->money -= teamFee; env.players[z]->money += sithMoney; } } } } /// @brief dedicated function for AI shopping. void do_ai_shopping(PLAYER* player, int32_t maxBoost, int32_t maxScore) { // Print player info and inventory #ifdef ATANKS_DEBUG_FINANCE DEBUG_LOG_FIN(player->getName(), "Starting to buy: (Defensiveness: %4.2lf)", player->defensive) DEBUG_LOG_FIN(player->getName(), " --- Inventory --- ", 0) DEBUG_LOG_FIN(player->getName(), "-------------------", 0) for (int32_t i = 1; i < WEAPONS; ++i) { if (player->nm[i]) DEBUG_LOG_FIN(player->getName(), "% 4d x %s", player->nm[i] / weapon[i].getDelayDiv(), weapon[i].getName()) } DEBUG_LOG_FIN(player->getName(), " - - - - - - - - - ", 0) for (int32_t i = 1; i < ITEMS; ++i) { if (player->ni[i]) DEBUG_LOG_FIN(player->getName(), "% 4d x %s", player->ni[i], item[i].getName()) } DEBUG_LOG_FIN(player->getName(), "-------------------", 0) int32_t oldMoneyToSave = -1; // So the same message isn't repeated over and over again. #endif // ATANKS_DEBUG_FINANCE player->updatePreferences(maxBoost, maxScore); // money saving will be made possible when: // 1. It's not the first three rounds // 2. It's not the last 5 rounds // and, dynamically: // 3. We have at least 10 parachutes or no gravity // 4. We have at least 2 damage dealing (not small missile) weapon // per AI level. // Check for a minimum of damage dealing weapons and parachutes, // then buy until 'moneyToSave' is reached. int32_t pressed = -1; int32_t ai_level = static_cast(player->type); int32_t buy_count = 0; int32_t last_buy_idx = 0; // Used to "remember" where the AI was in its cart. do { int32_t moneyToSave = 0; // How much money will the player save? // The AI does not save up money in the first three or last five rounds if ( (global.currentround > 5) && ((env.rounds - global.currentround) > 3) ) { moneyToSave = player->getMoneyToSave(!buy_count); #ifdef ATANKS_DEBUG_FINANCE if (oldMoneyToSave != moneyToSave) { DEBUG_LOG_FIN(player->getName(), "Maximum Money to save: %d (I have %d)", moneyToSave, player->money) oldMoneyToSave = moneyToSave; } } else DEBUG_LOG_FIN(player->getName(), "No money to save this round!", 0); #else } #endif // ATANKS_DEBUG_FINANCE int32_t numPara = player->ni[ITEM_PARACHUTE]; int32_t numDmgWeaps = 0; for (int32_t i = 1; i < WEAPONS; ++i) { // start from 1, as 0 is the small missile if (weapon[i].damage > 0) numDmgWeaps += player->nm[i] / weapon[i].getDelayDiv(); } // Try to chose something to buy if enough money is there or either // the number of parachutes or damage dealing weapons is too low. if ( (player->money > moneyToSave) || ( (numPara < ai_level) && (env.landSlideType > SLIDE_NONE) ) || (numDmgWeaps < (ai_level * 2)) ) pressed = player->chooseItemToBuy(maxBoost, last_buy_idx); else pressed = -1; // Forced to end. DEBUG_LOG_FIN(player->getName(), "I have %s%s%s%d credits left%s", pressed > -1 ? "bought: " : "finished, with ", pressed > -1 ? pressed < WEAPONS ? weapon[pressed].getName() : item[pressed - WEAPONS].getName() : "", pressed < 0 ? " " : " (", player->money, pressed < 0 ? "" : ")") buy_count++; } while ( (pressed != -1) && (buy_count < 1000) ); DEBUG_LOG_FIN(player->getName(), "============================================", 0) } static void draw_shop(PLAYER *pl) { global.make_update (0, 0, env.screenWidth, env.screenHeight); global.lockLand(); SHOW_MOUSE(nullptr) draw_simple_bg(false); if (pl) { draw_sprite (global.canvas, env.misc[DONE_IMAGE], env.halfWidth - 100, env.screenHeight - 50); draw_sprite (global.canvas, env.misc[FAST_UP_ARROW_IMAGE], env.screenWidth - STUFF_BAR_WIDTH - 30, env.halfHeight - 50); draw_sprite (global.canvas, env.misc[UP_ARROW_IMAGE], env.screenWidth - STUFF_BAR_WIDTH - 30, env.halfHeight - 25); draw_sprite (global.canvas, env.misc[DOWN_ARROW_IMAGE], env.screenWidth - STUFF_BAR_WIDTH - 30, env.halfHeight); draw_sprite (global.canvas, env.misc[FAST_DOWN_ARROW_IMAGE], env.screenWidth - STUFF_BAR_WIDTH - 30, env.halfHeight + 25); } drawing_mode (DRAW_MODE_TRANS, NULL, 0, 0); global.current_drawing_mode = DRAW_MODE_TRANS; if (pl) { double left = env.halfWidth - 200; // short cut int32_t right = env.screenWidth - 1; // another short cut. for (int32_t z = 0; z < env.halfWidth - 200; z++) { set_trans_blender (0, 0, 0, ROUNDu(static_cast(z) / left * 240) + 15); vline (global.canvas, z, 0, SHOP_BAR_HEIGHT, pl->color); vline (global.canvas, right - z, 0, SHOP_BAR_HEIGHT, pl->color); } // End of drawing player colour blending } // End of having a player solid_mode (); global.current_drawing_mode = DRAW_MODE_SOLID; if (pl) { textout_ex(global.canvas, font, env.ingame->Get_Line(14), 20, 420, WHITE, -1); textout_ex(global.canvas, font, env.ingame->Get_Line(15), 20, 450, WHITE, -1); textout_ex(global.canvas, font, env.ingame->Get_Line(16), 20, 465, WHITE, -1); } global.unlockLand(); fi = 1; } void draw_simple_bg(bool drawImage) { if (!env.drawBackground) rectfill(global.canvas, 0, 0, env.screenWidth - 1, env.screenHeight - 1, BLACK); else if ( drawImage && env.misc[17] ) stretch_blit(env.misc[17], global.canvas, 0, 0, env.misc[17]->w, env.misc[17]->h, 0, 0, env.screenWidth, env.screenHeight); else rectfill(global.canvas, 0, 0, env.screenWidth - 1, env.screenHeight - 1, DARK_GREEN); } static void draw_weapon_list(PLAYER* pl, int32_t* trolley, int32_t scroll_old, int32_t scroll_new, int32_t over_old, int32_t over_new) { // Some pre-calculations and settings. int32_t startX = env.screenWidth - STUFF_BAR_WIDTH; int32_t halfBar = STUFF_BAR_HEIGHT / 2; static int32_t qtyTxtLen = 0; BITMAP* imgReleased = env.gfxData.stuff_bar[0]; BITMAP* imgPressed = env.gfxData.stuff_bar[1]; int32_t col_add = YELLOW; // Bought items int32_t col_sub = makecol(176, 0, 0); // Sold items static char buf_cost[50] = { 0 }; static char buf_amt[50] = { 0 }; bool full_redraw = (scroll_new != scroll_old); memset(buf_cost, 0, sizeof(char) * 50); memset(buf_amt, 0, sizeof(char) * 50); if (0 == qtyTxtLen) { qtyTxtLen = text_length(font, "Qty. in inventory: ddd"); } // Erase top gap: if (full_redraw) { global.lockLand(); rectfill(global.canvas, startX, STUFF_BAR_HEIGHT - 5, startX + env.gfxData.stuff_icon_base->w, STUFF_BAR_HEIGHT, makecol(8, 110, 24)); global.unlockLand(); global.make_update(startX, STUFF_BAR_HEIGHT - 5, env.gfxData.stuff_icon_base->w, 5); } // go through all items and draw them on the screen with // the amount of items in the trolley for (int32_t slot = 1; slot <= btps; ++slot) { int32_t itemIdx = slot + scroll_new - 1; int32_t itemNum = env.availableItems[itemIdx]; int32_t startY = slot * STUFF_BAR_HEIGHT; const char* name = nullptr; int32_t amt = 0; int32_t d_div = 1; // Only actually draw the slot, if it has changed: if ( !full_redraw && (over_old != itemNum) && (over_new != itemNum) ) continue; // Get text values: if (itemNum < WEAPONS) { d_div = weapon[itemNum].getDelayDiv(); name = weapon[itemNum].getName(); amt = pl->nm[itemNum] / d_div; snprintf (buf_cost, 49, "$%s", Add_Comma( weapon[itemNum].cost ) ); snprintf (buf_amt, 49, "for %d", weapon[itemNum].amt / d_div); } else { name = item[itemNum - WEAPONS].getName(); amt = pl->ni[itemNum - WEAPONS]; snprintf (buf_cost, 49, "$%s", Add_Comma( item[itemNum - WEAPONS].cost ) ); snprintf (buf_amt, 49, "for %d", item[itemNum - WEAPONS].amt); } global.lockLand(); // Draw the background sprites draw_sprite(global.canvas, (over_new == itemNum) ? imgPressed : imgReleased, startX, startY); draw_sprite(global.canvas, env.gfxData.stuff_icon_base, startX, startY); draw_sprite(global.canvas, env.stock[itemNum], startX, startY - 5); global.make_update(startX, startY, STUFF_BAR_WIDTH, STUFF_BAR_HEIGHT + 5); // Draw the text: textout_ex (global.canvas, font, name, startX + 45, startY - 1, BLACK, -1); textprintf_ex(global.canvas, font, startX + 45, startY + halfBar - 4, BLACK, -1, "%s: %d", env.ingame->Get_Line(40), amt); if (trolley[itemNum]) textprintf_ex(global.canvas, font, startX + 45 + qtyTxtLen, startY + halfBar - 4, trolley[itemNum] > 0 ? col_add : col_sub, -1, "%+d", trolley[itemNum] / d_div); textout_ex (global.canvas, font, buf_cost, env.screenWidth - 45 - text_length(font, buf_cost), startY - 1, BLACK, -1); textout_ex (global.canvas, font, buf_amt, env.screenWidth - 45 - text_length(font, buf_amt), startY + halfBar - 4, BLACK, -1); global.unlockLand(); // Break up if done: // (This should not be triggered ever, as scroll is controlled by shop() // to never be more than env.numAvailable-btps.) if ( (itemIdx >= (env.numAvailable - 1)) && (slot < btps) ) slot = btps + 1; } fi = 1; } /** @brief Executes a fast and simple transition from global.canvas to the screen. **/ void quickChange(bool clearerror) { if (errorMessage) { textout_ex (global.canvas, font, errorMessage, errorX, errorY, makecol (255, 0, 0), -1); if (clearerror) errorMessage = nullptr; } blit (global.canvas, screen, 0, 0, 0, 0, env.screenWidth, env.screenHeight); } atanks-6.6/src/debug.cpp0000644000175000017500000000264712636021030013351 0ustar apoapo#include "debug.h" #include #include #include #include #if defined(ATANKS_DEBUG) #if defined(ATANKS_IS_WINDOWS) || defined(ATANKS_DEBUG_LOGTOFILE) # include #endif // Log Mutex std::mutex log_lock; /// @brief use with DEBUG_LOG to get debug dependent positional information for free! void debug_log(const char* moduleName, const char* title, const char* message, ...) { char timebuf[21]; time_t t; struct tm tm_; char xMsg[512]; // Create timestamp atanks_tzset(); t = time(NULL); atanks_localtime(&tm_, &t); atanks_snprintf(timebuf, 20, "%04d.%02d.%02d %02d:%02d:%02d", tm_.tm_year + 1900, tm_.tm_mon + 1, tm_.tm_mday, tm_.tm_hour, tm_.tm_min, tm_.tm_sec); timebuf[20] = 0x0; // Create message va_list vl; va_start(vl, message); vsprintf_s(xMsg, 512, message, vl); va_end(vl); log_lock.lock(); #if defined(ATANKS_IS_WINDOWS) || defined(ATANKS_DEBUG_LOGTOFILE) // Unfortunately, for everything to work right, // a WinApp must be created. So write the log msg // to atanks.log instead. FILE* out = fopen("atanks.log", "a"); if (out) { fprintf(out, "%s : %s : \"%s\" - %s\n", timebuf, moduleName, title, xMsg); fclose(out); } #endif // MSVC or explicit logging to atanks.log #if !defined(ATANKS_IS_WINDOWS) fprintf(stdout, "%s : %s : \"%s\" - %s\n", timebuf, moduleName, title, xMsg); #endif // !Windows log_lock.unlock(); } #endif atanks-6.6/src/debris_pool.cpp0000644000175000017500000001257412636021030014564 0ustar apoapo#include "debris_pool.h" #include "main.h" #include /// @brief sDebrisItem default constructor sDebrisItem::sDebrisItem(int32_t diameter_, sDebrisItem* next_) : idx( (diameter_ / 2) - 1), next(next_) { if (diameter_ && (idx >= 0) && (idx < 5)) { bmp = create_bitmap(diameter_ + 1, diameter_ + 1); } if (bmp && next) { prev = next->prev; next->prev = this; if (prev) prev->next = this; } if (bmp) { clear_to_color(bmp, PINK); } else // unusable... delete this; } /// @brief take this out of the list and free bmp data sDebrisItem::~sDebrisItem() { if (bmp) destroy_bitmap(bmp); bmp = nullptr; if (prev) prev->next = next; if (next) next->prev = prev; prev = nullptr; next = nullptr; } /// @brief create an empty pool with a set limit sDebrisPool::sDebrisPool(int32_t limit_) : limit(limit_ * 5) // The limit is per debris size { DEBUG_LOG_OBJ("Debris Pool", "Pool created with limit %d", limit); // memset initialization, Visual C++ 2013 can not do array initialization memset(avail, 0, sizeof(int32_t) * 5); memset(counts, 0, sizeof(int32_t) * 5); memset(heads, 0, sizeof(item_t*) * 5); memset(tails, 0, sizeof(item_t*) * 5); // Pre-create a third of the possible pool elements now, // so an evenly distributed base is given at any time. int32_t max_items = limit / 3 / 5; for (int32_t r = 1; r < 6; ++r) { for (int32_t i = 0; i < max_items; ++i) create_item(r); } } /// @brief destroy all pool items sDebrisPool::~sDebrisPool() { for (int32_t r = 0; r < 5; ++r) { while (heads[r]) { item_t* curr = heads[r]; heads[r] = curr->next; delete curr; --counts[r]; --count_all; } if (counts[r]) { cerr << "ERROR: debris pool count for radius " << (r + 1); cerr << " should be zero but is " << counts[r] << " !" << endl; } } if (count_all) { cerr << "ERROR: total debris pool count should be zero but is "; cerr << count_all << " !" << endl; } } /// @brief centralized creation, so it can be used by both the ctor and get_item() sDebrisItem* sDebrisPool::create_item(int32_t radius) { item_t* res = nullptr; if (count_all < limit) { int32_t idx = radius - 1; res = new sDebrisItem(radius * 2, heads[idx]); if (res) { // Insert item as new head heads[idx] = res; if (nullptr == tails[idx]) tails[idx] = res; // Count the item ++count_all; ++counts[idx]; ++avail[idx]; DEBUG_LOG_OBJ("Debris", "New maximum number: %d", count_all) } } return res; } /** @brief mark one item as unused. * Do not do this yourself, although it is a struct. * The pool needs to keep track of how many items are available. **/ void sDebrisPool::free_item(item_t* item) { if (item && !item->is_free) { // Reset item to PINK if (item->bmp) clear_to_color(item->bmp, PINK); // Mark item as being free item->is_free = true; ++avail[item->idx]; } } /** @brief get the next free item with the specified radius. * * If no item is available, a new one will be created unless the * current limit is reached. **/ sDebrisItem* sDebrisPool::get_item (int32_t radius) { assert( (radius > 0) && (radius < 6) && "ERROR: Only radius in the range [1;5] supported!"); if ( (radius < 1) || (radius > 5) ) return nullptr; int32_t idx = radius - 1; // See whether an item is available: if (avail[idx]) { item_t* curr = heads[idx]; while (curr && !curr->is_free) curr = curr->next; assert(curr && "ERROR: avail[idx] is not 0, but no item available!"); if (curr) { --avail[idx]; curr->is_free = false; return curr; } else { cerr << "No item for radius " << radius << " found, but "; cerr << avail[idx] << " should be available!" << endl; avail[idx] = 0; } } /* --- If this failed, or no items are available, create a new item --- */ // Check whether the limit is hit already if (count_all >= limit) { /* If the limit is hit, this is the strategy: * a) look which index has the most items * b) Take the first free item and delete it * -> Voilà, another item is available! * <- no item free? Doesn't matter, we are busy now! * ( Note : If the list with the most items has none free, * then it is safe to assume that none has. ) */ DEBUG_LOG_OBJ("Debris Limit", "The limit of %d was reached", limit) int32_t hasMaxIdx = 0; for (int32_t i = 0; i < 5; ++i) { if ( (i != idx) && avail[i] && ( (counts[i] > counts[hasMaxIdx]) || !avail[hasMaxIdx]) ) hasMaxIdx = i; } if (avail[hasMaxIdx]) { item_t* curr = heads[hasMaxIdx]; while (curr && !curr->is_free) curr = curr->next; // If a free item is found, delete it! if (curr) { // fix head/tail if affected if (heads[hasMaxIdx] == curr) heads[hasMaxIdx] = curr->next; if (tails[hasMaxIdx] == curr) tails[hasMaxIdx] = curr->prev; delete curr; --avail[hasMaxIdx]; --counts[hasMaxIdx]; --count_all; } else { cerr << "No item for radius " << (hasMaxIdx + 1) << " found, but "; cerr << avail[hasMaxIdx] << " should be available!" << endl; avail[hasMaxIdx] = 0; } } } // End of limit reached resolving strategy // If the limit is not reached (or relieved) at this point, // a new item can be created item_t* new_item = create_item(radius); if (new_item) { // Note: create_item() has already raised counts[idx], // count_all and avail[idx]. --avail[idx]; new_item->is_free = false; } return new_item; } atanks-6.6/src/menu.h0000644000175000017500000004012012636021030012660 0ustar apoapo#pragma once #ifndef ATANKS_SRC_MENU_H_INCLUDED #define ATANKS_SRC_MENU_H_INCLUDED /* * atanks - obliterate each other with oversize weapons * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "optionitem.h" #include "optionitemmenu.h" #include "optionitemplayer.h" #include "button.h" #include // for bad_alloc exception /** @file menu.h * @brief Declare Menu class for self managing menus **/ /** @enum eMenuReturnCodes * @brief Standard return codes for the main loop **/ enum eMenuReturnCodes { MRC_None = 0, MRC_Play_Game, MRC_Load_Game, MRC_Esc_Menu }; /** @class Menu * @brief A class to build menus out of option items. * * @todo : Write more **/ class Menu { public: /* ------------------------------------------- * --- Public constructors and destructors --- * ------------------------------------------- */ explicit Menu(eMenuClass class_, int32_t menuX, int32_t menuY); ~Menu(); /* ---------------------- * --- Public methods --- * ---------------------- */ // Add a button without action function. int32_t addButton(int32_t title_idx, const char* title_, int32_t key_code, BITMAP* bmp, BITMAP* hover, BITMAP* released, bool text_only, int32_t left, int32_t top, int32_t width, int32_t height, int32_t padding); // Add a color option int32_t addColor(int32_t* target, int32_t title_idx, int32_t left, int32_t top, int32_t width, int32_t height, int32_t show_size, int32_t padding); // Add a sub menu option with Menu target int32_t addMenu(Menu* menu, int32_t title_idx, int32_t color, int32_t left, int32_t top, int32_t width, int32_t height, int32_t padding); // Add a sub menu option with PLAYER target (set title_idx to -1 to use player name) int32_t addMenu(PLAYER** player, int32_t (*action_)(PLAYER** player_, int32_t), int32_t title_idx, int32_t left, int32_t top, int32_t width, int32_t height, int32_t padding); // Special minimum variant for editable text options int32_t addText(char* target, int32_t title_idx, uint32_t max_len, int32_t color, const char* format, int32_t left, int32_t top, int32_t width, int32_t height, int32_t padding); /** @brief This adds a text option with readonly text * * Please note: The position @a left / @a top are relative to * the menu position. * * Please also note that a title is displayed to the left of the display * area. * * @param[in] target Pointer to the target to display. * @param[in] title_idx Index of the title if it is listed in MenuTitleText. * @param[in] color Regular display color of the title/target. * @param[in] format The format to represent the target, used by snprintf(). * @param[in] left Relative left position of the display area to the menu. * @param[in] top Relative top position of the display area to the menu. * @param[in] width Width of the display area. The real width might be larger. * @param[in] height Height of the display area. * @param[in] padding Distance between title and display. **/ template int32_t addText(tgt_T* target, int32_t title_idx, int32_t color, const char* format, int32_t left, int32_t top, int32_t width, int32_t height, int32_t padding) { OptionItemBase* curr = nullptr; bool title_valid = is_title_idx_valid(title_idx); assert (title_valid && "ERROR: The given title index is invalid"); if (target && title_valid) { try { curr = new OptionItem( target, 0, color, ET_TEXT, "", title_idx, format, menu_y + top, menu_x + left, width, height, padding); } catch (std::bad_alloc &e) { cerr << __FUNCTION__ << " : failed to allocate new TEXT OptionItem\n"; cerr << " [" << e.what() << "]" << endl; } } return this->insert_option(curr, title_idx, nullptr); } // Special minimum variant for toggle types feeding a bool with variable title int32_t addToggle(bool* target, int32_t title_idx, int32_t color, int32_t left, int32_t top, int32_t width, int32_t height, int32_t padding); // Special minimum variant for toggle types feeding a bool with fixed title int32_t addToggle(bool* target, const char* title_, int32_t color, int32_t left, int32_t top, int32_t width, int32_t height, int32_t padding); // Special minimum variant for toggle types handling PLAYER::selected int32_t addToggle(PLAYER** player, int32_t left, int32_t top, int32_t width, int32_t height, int32_t padding); /** @brief Simple ET_VALUE option with direct value representation * * Please note: The position @a left / @a top are relative to * the menu position. * * Please also note that a title is displayed to the left of the display * area and wheel buttons to the right. * * @param[in] target Pointer to the target to handle. * @param[in] title_idx Index of the title if it is listed in MenuTitleText. * @param[in] color Regular display color of the title/target. * @param[in] minimum Minimum value for ET_VALUE targets. * @param[in] maximum Maximum value for ET_VALUE targets. * @param[in] increment Value to increment/decrement the target on activation. * @param[in] format printf format that can pretty print @a target. * @param[in] left Relative left position of the display area to the menu. * @param[in] top Relative top position of the display area to the menu. * @param[in] width Width of the display area. The real width might be larger. * @param[in] height Height of the display area. * @param[in] padding Distance between title, display and wheel buttons. **/ template int32_t addValue(tgt_T* target, int32_t title_idx, int32_t color, opt_T minimum, opt_T maximum, opt_T increment, const char* format, int32_t left, int32_t top, int32_t width, int32_t height, int32_t padding) { OptionItemBase* curr = nullptr; if (target) { try { curr = new OptionItem( target, "", title_idx, nullptr, color, TC_NONE, minimum, maximum, increment, format, menu_y + top, menu_x + left, width, height, padding, nullptr); } catch (std::bad_alloc &e) { cerr << __FUNCTION__ << " : failed to allocate new OptionItem\n"; cerr << " [" << e.what() << "]" << endl; } } return this->insert_option(curr, title_idx, nullptr); } /** @brief Simple option with text array representation * * Please note: The position @a left / @a top are relative to * the menu position. * * Please also note that a title is displayed to the left of the display * area. * * @param[in] target Pointer to the target to handle. * @param[in] title_idx Index of the title if it is listed in MenuTitleText. * @param[in] texts Free text array. * @param[in] color Regular display color of the title/target. * @param[in] text_class The text class, set to TC_FREETEXT to use @a texts. * @param[in] maximum Maximum value for ET_VALUE targets. * @param[in] left Relative left position of the display area to the menu. * @param[in] top Relative top position of the display area to the menu. * @param[in] width Width of the display area. The real width might be larger. * @param[in] height Height of the display area. * @param[in] padding Distance between title and display. **/ template int32_t addValue(tgt_T* target, int32_t title_idx, const char** texts, int32_t color, eTextClass text_class, opt_T maximum, int32_t left, int32_t top, int32_t width, int32_t height, int32_t padding) { OptionItemBase* curr = nullptr; if (target) { try { curr = new OptionItem( target, "", title_idx, nullptr, color, TC_NONE, 0, maximum, 1, nullptr, menu_y + top, menu_x + left, width, height, padding, nullptr); this->setTexts(curr, texts, text_class); } catch (std::bad_alloc &e) { cerr << __FUNCTION__ << " : failed to allocate new OptionItem\n"; cerr << " [" << e.what() << "]" << endl; } } return this->insert_option(curr, title_idx, nullptr); } /** @brief Value option with text array representation and display function * * Please note: The position @a left / @a top are relative to * the menu position. * * Please also note that a title is displayed to the left of the display * area. * * @param[in] target Pointer to the target to handle. * @param[in] title_idx Index of the title if it is listed in MenuTitleText. * @param[in] texts Free text array. * @param[in] color Regular display color of the title/target. * @param[in] text_class The text class, set to TC_FREETEXT to use @a texts. * @param[in] maximum Maximum value for ET_VALUE targets. * @param[in] left Relative left position of the display area to the menu. * @param[in] top Relative top position of the display area to the menu. * @param[in] width Width of the display area. The real width might be larger. * @param[in] height Height of the display area. * @param[in] padding Distance between title and display. * @param[in] display_ optional display function to use. **/ template int32_t addValue(tgt_T* target, int32_t title_idx, const char** texts, int32_t color, eTextClass text_class, opt_T maximum, int32_t left, int32_t top, int32_t width, int32_t height, int32_t padding, bool (*display_)(tgt_T* target, int32_t x, int32_t y) ) { OptionItemBase* curr = nullptr; if (target) { try { curr = new OptionItem( target, "", title_idx, nullptr, color, TC_NONE, 0, maximum, 1, nullptr, menu_y + top, menu_x + left, width, height, padding, display_); this->setTexts(curr, texts, text_class); } catch (std::bad_alloc &e) { cerr << __FUNCTION__ << " : failed to allocate new OptionItem\n"; cerr << " [" << e.what() << "]" << endl; } } return this->insert_option(curr, title_idx, nullptr); } /** @brief Value option with text array representation and action function * * Please note: The position @a left / @a top are relative to * the menu position. * * Please also note that a title is displayed to the left of the display * area. * * @param[in] target Pointer to the target to handle. * @param[in,out] action_ Pointer to the action function handling the wheel button click. * @param[in] title_idx Index of the title if it is listed in MenuTitleText. * @param[in] texts Free text array. * @param[in] color Regular display color of the title/target. * @param[in] text_class The text class, set to TC_FREETEXT to use @a texts. * @param[in] maximum Maximum value for ET_VALUE targets. * @param[in] left Relative left position of the display area to the menu. * @param[in] top Relative top position of the display area to the menu. * @param[in] width Width of the display area. The real width might be larger. * @param[in] height Height of the display area. * @param[in] padding Distance between title and display. **/ template int32_t addValue(tgt_T* target, int32_t (*action_)(tgt_T* target, int32_t val), int32_t title_idx, const char** texts, int32_t color, eTextClass text_class, opt_T maximum, int32_t left, int32_t top, int32_t width, int32_t height, int32_t padding) { OptionItemBase* curr = nullptr; if (target) { try { curr = new OptionItem( target, action_, ET_VALUE, "", title_idx, nullptr, color, TC_NONE, 0, maximum, 1, nullptr, menu_y + top, menu_x + left, width, height, padding, nullptr); this->setTexts(curr, texts, text_class); } catch (std::bad_alloc &e) { cerr << __FUNCTION__ << " : failed to allocate new OptionItem\n"; cerr << " [" << e.what() << "]" << endl; } } return this->insert_option(curr, title_idx, nullptr); } void clearAll (bool full_clear); int32_t count (); int32_t delete_entry(int32_t index); void displayAll (bool full_display); void distribute (int32_t first_idx, int32_t last_idx, int32_t list_width, int32_t list_height, int32_t y_off, bool do_update); OptionItemBase* getSelected (); const char* getTitle () const; void move_entry (int32_t from_idx, int32_t to_idx); void redraw (int32_t index, bool update_full); void redrawAll (bool full_redraw); void setLanguage (bool autorefresh); void setTitle (const char* new_title, bool autorefresh); /* ------------------------ * --- Public operators --- * ------------------------ */ // operator() to use a menu instance like a function int32_t operator()(); // Get a stored option by index OptionItemBase* operator[](int32_t index); private: /* ----------------------- * --- Private methods --- * ----------------------- */ int32_t insert_option (OptionItemBase* new_opt); int32_t insert_option (OptionItemBase* new_opt, int32_t title_idx, const char* title_); bool is_title_idx_valid(int32_t title_idx); int32_t selectClicked (int32_t x, int32_t y); void selectNext (); void selectPrev (); void setTexts (OptionItemBase* item, const char** texts, eTextClass text_class); void unselect (); /* ----------------------- * --- Private members --- * ----------------------- */ int32_t bgItems = 0; int32_t bgOffset = 0; eBackgroundTypes bgType = BACKGROUND_BLANK; int32_t entry_cnt = 0; //!< Number of entries currently in the list. int32_t entry_sel = -1; //!< Currently selected entry or -1 if none is selected. eMenuClass menu_class = MC_MAIN; //!< The class of the menu, decides upon what to display. eLanguages menu_lang = EL_ENGLISH; //!< The language to display int32_t menu_x = 0; //!< X-Pos where the menu background starts int32_t menu_y = 0; //!< Y-Pos where the menu background starts OptionItemBase* root = nullptr; //!< The first menu item OptionItemBase* tail = nullptr; //!< The last menu item const char* title = nullptr; //!< Name/Title of the menu uint32_t title_len = 0; //!< Length of the menu title with the current font. bool title_set = false; //!< Set to true if this has been changed to be an individual title int32_t title_x = 0; }; #define MENU_CLASS_DECLARES 1 // --- Helper functions for action/display usage that need optioncontent.h --- /// @brief display function to display the chosen tank at a specific location bool display_tank_desc(int32_t* tanknum, int32_t x, int32_t y); #endif // ATANKS_SRC_MENU_H_INCLUDED atanks-6.6/src/environment.cpp0000644000175000017500000013021513006377360014634 0ustar apoapo/* * atanks - obliterate each other with oversize weapons * Copyright (C) 2003 Thomas Hudson * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "main.h" #include "environment.h" #include "globaldata.h" #include "missile.h" #include "tank.h" #include "files.h" #include "sound.h" #include "player.h" #include ENVIRONMENT::ENVIRONMENT () { // Unfortunately Visual C++ can not initialize arrays using an initialization list // although it is part of C++11. Gcc and clang do it fine btw... memset(availableItems, 0, sizeof(int32_t) * THINGS); memset(configDir, 0, sizeof(char) * (PATH_MAX + 1)); memset(dataDir, 0, sizeof(char) * (PATH_MAX + 1)); memset(game_name, 0, sizeof(char) * GAMENAMELEN); memset(playerOrder, 0, sizeof(PLAYER*) * MAXPLAYERS); memset(server_name, 0, sizeof(char) * 129); memset(server_port, 0, sizeof(char) * 129); memset(slope, 0, sizeof(double) * 720); set_fps(60); // rock solid default. fontHeight = 10; // Initial value strncpy(server_name, "127.0.0.1", 127); strncpy(server_port, "25645", 127); // Reserve space for the players array: // Note: The allPlayers array is dynamically (re-)allocated while loading // stored players from the configuration. if ( (players = (PLAYER **) calloc( MAXPLAYERS, sizeof(PLAYER *) ) ) == nullptr) perror ( "environment.cpp: Failed allocating memory for players"); // sin/cos short-cuts, With only 1° granularity the arrays are always // faster than live calculations. for (int32_t i = 0; i < 360; i++) { slope[i][0] = std::sin(DEG2RAD(i)); slope[i][1] = std::cos(DEG2RAD(i)); } } /** @brief default dtor * Cleanly remove created objects **/ ENVIRONMENT::~ENVIRONMENT() { this->destroy(); } /// @brief add a player to the players[] array that will take part in the next game void ENVIRONMENT::addGamePlayer(PLAYER* player_) { if (player_ && (numGamePlayers < MAXPLAYERS) ) { // Ensure the player isn't already there: for (int32_t i = 0; i < numGamePlayers; ++i) { if (player_ == players[i]) return; } players[numGamePlayers++] = player_; if (HUMAN_PLAYER == player_->type) numHumanPlayers++; } } /// @brief create a new player or return nullptr if an error occurred PLAYER* ENVIRONMENT::createNewPlayer (const char* player_name) { PLAYER** reallocatedPlayers = nullptr; PLAYER* player = nullptr; assert (player_name && "ERROR: player_name is nullptr!"); if (nullptr == player_name) return nullptr; if (getPlayerByName(player_name) > -1) return nullptr; reallocatedPlayers = (PLAYER**)realloc (allPlayers, sizeof (PLAYER*) * (numPermanentPlayers + 1)); if (reallocatedPlayers) allPlayers = reallocatedPlayers; else perror ("environment.cpp: Failed allocating memory for reallocatedPlayers in ENVIRONMENT::createNewPlayer"); player = new PLAYER (); if (!player) perror ("environment.cpp: Failed allocating memory for player in ENVIRONMENT::createNewPlayer"); player->index = numPermanentPlayers; player->setName(player_name); allPlayers[numPermanentPlayers++] = player; return player; } /// @brief This function gives credits, score and money to the winner(s). void ENVIRONMENT::creditWinners(int32_t winner) { if (winner == WINNER_DRAW) // no winner return; int32_t team_members = 0; if (winner == WINNER_JEDI) { for (int32_t i = 0; i < numGamePlayers; ++i) { if (TEAM_JEDI == players[i]->team) { players[i]->score++; players[i]->won++; team_members++; } } } else if (winner == WINNER_SITH) { for (int32_t i = 0; i < numGamePlayers; ++i) { if (TEAM_SITH == players[i]->team) { players[i]->score++; players[i]->won++; team_members++; } } } else if (winner < WINNER_NO_WIN) { players[winner]->score++; players[winner]->won++; players[winner]->money += scoreRoundWinBonus; } // team gets their money too if (team_members) { int32_t team_bonus = scoreRoundWinBonus / team_members; for (int32_t i = 0; i < numGamePlayers; ++i) { if ( ((winner == WINNER_JEDI) && (players[i]->team == TEAM_JEDI) ) || ((winner == WINNER_SITH) && (players[i]->team == TEAM_SITH) ) ) players[i]->money += team_bonus; } } } void ENVIRONMENT::decreaseVolume() { if (volume_factor > 0) --volume_factor; } /// @brief Remove one of the players, then gone for good. void ENVIRONMENT::deletePermPlayer (PLAYER* player_) { int32_t toCount = 0; for (int32_t fromCount = 0; fromCount < numPermanentPlayers; fromCount++) { if (allPlayers[fromCount] != player_) { if (allPlayers[toCount] != allPlayers[fromCount]) { allPlayers[toCount] = allPlayers[fromCount]; allPlayers[toCount]->index = toCount; } toCount++; } } numPermanentPlayers--; delete player_; } /** @brief Free all allocated memory. * * Important: This MUST be called *before* allegro shuts down! **/ void ENVIRONMENT::destroy() { if (sky) { destroy_bitmap(sky); sky = nullptr; } if (bitmap_filenames) { for (int32_t count = 0; count < number_of_bitmaps; ++count) { if (bitmap_filenames[count]) free(bitmap_filenames[count]); } free(bitmap_filenames); bitmap_filenames = nullptr; } if (saved_game_list_size && saved_game_list) { for (uint32_t i = 0; i < saved_game_list_size; ++i) { if (saved_game_list[i]) free (const_cast(saved_game_list[i])); saved_game_list[i] = nullptr; } free (saved_game_list); saved_game_list = nullptr; saved_game_list_size = 0; } if (music_dir) { closedir(music_dir); music_dir = nullptr; } if (background_music) { destroy_sample(background_music); background_music = nullptr; } if (sounds) { int32_t index = 0; while (sounds[index]) destroy_sample(sounds[index++]); free(sounds); sounds = nullptr; } if (title) { int32_t index = 0; while (title[index]) destroy_bitmap(title[index++]); free(title); title = nullptr; } if (button) { int32_t index = 0; while (button[index]) destroy_bitmap(button[index++]); free(button); button = nullptr; } if (misc) { int32_t index = 0; while (misc[index]) destroy_bitmap(misc[index++]); free(misc); misc = nullptr; } if (missile) { int32_t index = 0; while (missile[index]) destroy_bitmap(missile[index++]); free(missile); missile = nullptr; } if (stock) { int32_t index = 0; while (stock[index]) destroy_bitmap(stock[index++]); free(stock); stock = nullptr; } if (tank) { int32_t index = 0; while (tank[index]) destroy_bitmap(tank[index++]); free(tank); tank = nullptr; } if (tankgun) { int32_t index = 0; while (tankgun[index]) destroy_bitmap(tankgun[index++]); free(tankgun); tankgun = nullptr; } if (gloat) { delete gloat; gloat = nullptr; } if (ingame) { delete ingame; ingame = nullptr; } if (instructions) { delete instructions; instructions = nullptr; } if (panic) { delete panic; panic = nullptr; } if (kamikaze) { delete kamikaze; kamikaze = nullptr; } if (retaliation) { delete retaliation; retaliation = nullptr; } if (revenge) { delete revenge; revenge = nullptr; } if (suicide) { delete suicide; suicide = nullptr; } if (war_quotes) { delete war_quotes; war_quotes = nullptr; } if (allPlayers) { for (int32_t i = 0; i < numPermanentPlayers; ++i) { if (allPlayers[i]) delete allPlayers[i]; allPlayers[i] = nullptr; } free(allPlayers); allPlayers = nullptr; } if (players) { for (int32_t i = 0; i < MAXPLAYERS; ++i) players[i] = nullptr; free(players); players = nullptr; } if (main_font) { destroy_font(main_font); main_font = nullptr; } gfxData.destroy(); } /// @brief Sets configDir to the path to the config directory used by atanks void ENVIRONMENT::find_config_dir() { // If no config dir was given on the command line, try to find a valid one if (!configDir[0]) { // figure out file name char* homedir = getenv(HOME_DIR); snprintf(configDir, PATH_MAX, "%s/.atanks", homedir ? homedir : "."); // copy the file over, if we did not yet if (!Copy_Config_File()) { // If it did not work, look whether the directory already exists: DIR * pDestDir = opendir(env.configDir); if (!pDestDir) cerr << "ERROR: An error has occurred trying to set up" << " Atomic Tanks folders." << endl; else { closedir(pDestDir); pDestDir = nullptr; } } } // end of no config file on the command line } /// @brief Sets dataDir to the path 'unicode.dat' can be found in. bool ENVIRONMENT::find_data_dir() { // If the datadir set by command line options, try that first if (dataDir[0]) { snprintf(path_buf, PATH_MAX, "%s/%s", DATA_DIR, "unicode.dat"); if (!access(path_buf, R_OK)) return true; else { cerr << "ERROR: The given datadir \"" << dataDir << "\"" << " is invalid!" << endl; memset(dataDir, 0, sizeof(char) * (PATH_MAX + 1)); } } // Try the set directory from the build snprintf(path_buf, PATH_MAX, "%s/%s", DATA_DIR, "unicode.dat"); if (!access(path_buf, R_OK)) strncpy(dataDir, DATA_DIR, PATH_MAX); else { // This was not successful, try the current directory if not tried, yet. if (strncmp(DATA_DIR, ".", 1) && strncmp(DATA_DIR, "./", 2)) { strncpy(path_buf, "./unicode.dat", PATH_MAX); // Try again and reset if unsuccessful if (!access(path_buf, R_OK)) strncpy(dataDir, ".", PATH_MAX); } } // If dataDir is set, now, this was a success. if (strlen(dataDir)) return true; return false; } /// @brief Must be called before GLOBALDATA::first_init() is called! void ENVIRONMENT::first_init() { // Determine maximum number of updates before doing // a full update: max_screen_updates = ROUND(std::sqrt(ROUND(screenWidth / 8) * ROUND(screenHeight / 8))); /* This is: * 800 x 600 => sqrt(100 * 75) => sqrt( 7500) = 87 * 1280 x 1024 => sqrt(160 * 28) => sqrt(20480) = 143 * 1600 x 900 => sqrt(200 * 113) => sqrt(22600) = 150 * 1920 x 1080 => sqrt(240 * 135) => sqrt(32400) = 180 */ // Get memory ... if (!sky) sky = create_bitmap (screenWidth, screenHeight - MENUHEIGHT); if (!sky) { cout << "Failed to create sky bitmap: " << allegro_error << endl; exit(1); } initialise (); menuBeginY = (screenHeight - 400) / 2; if (menuBeginY < 0) menuBeginY = 0; menuEndY = screenHeight - menuBeginY; gfxData.first_init(); } /// @brief Fill availableItems array with everything buyable with current settings. void ENVIRONMENT::genItemsList () { int32_t slot = 0; for (int32_t i = 0; i < THINGS; ++i) { if (isItemAvailable(i)) availableItems[slot++] = i; } numAvailable = slot; } /// @brief return the index of the player with @a player_name or -1 if not found int32_t ENVIRONMENT::getPlayerByName(const char* player_name) { int32_t result = -1; assert (player_name && "ERROR: player_name is nullptr!"); if (nullptr == player_name) return result; for (int32_t i = 0; (-1 == result) && (i < numPermanentPlayers); ++i) { if (!strcmp(player_name, allPlayers[i]->getName())) result = i; } return result; } void ENVIRONMENT::increaseVolume() { if (volume_factor < MAX_VOLUME_FACTOR) ++volume_factor; } int32_t ENVIRONMENT::ingamemenu () { int32_t pressed = -1; bool need_draw = true; int32_t button[INGAMEBUTTONS]; bool updatew[INGAMEBUTTONS]; const char* buttext[INGAMEBUTTONS] = { ingame->Get_Line(69), ingame->Get_Line(70), ingame->Get_Line(71), ingame->Get_Line(72), }; // Set/calculate button size and positions int32_t b_width = 150; int32_t b_height = 20; int32_t b_space = 5; int32_t b_half_w = b_width / 2; int32_t b_left = halfWidth - b_half_w; int32_t b_right = halfWidth + b_half_w - 1; int32_t d_width = 200; int32_t d_height = ((INGAMEBUTTONS + 2) * b_height) + ((INGAMEBUTTONS + 1) * b_space); int32_t d_half_w = d_width / 2; int32_t d_half_h = d_height / 2; int32_t d_left = halfWidth - d_half_w; int32_t d_right = halfWidth + d_half_w - 1; int32_t d_top = halfHeight - d_half_h; int32_t d_bottom = halfHeight + d_half_h - 1; // store last mouse coordinates for movement detection int32_t lastMouse_x = 0; int32_t lastMouse_y = 0; // Calculate button y values and set all button status to 0 int32_t y = -d_half_h + b_height + b_space; for (int32_t i = 0; i < INGAMEBUTTONS; ++i) { updatew[i] = false; button[i] = y; y += b_height + b_space; } SHOW_MOUSE(nullptr); k = 0; K = 0; global.make_update (d_left, d_top, d_width, d_height); rectfill (global.canvas, d_left, d_top, d_right, d_bottom, GREY); rect (global.canvas, d_left, d_top, d_right, d_bottom, BLACK); while (-1 == pressed) { LINUX_REST; if (keypressed ()) { k = readkey (); K = k >> 8; } // look for keyboard exit if ( ( K == KEY_ESC) || ( K == KEY_P) ) { pressed = -2; continue; } // Check mouse movement if ( !env.osMouse && ( (lastMouse_x != mouse_x) || (lastMouse_y != mouse_y) ) ) { lastMouse_x = mouse_x; lastMouse_y = mouse_y; need_draw = true; } if (mouse_b & 1) { bool is_hit = false; for (int32_t i = 0; !is_hit && (i < INGAMEBUTTONS); ++i) { if ( (mouse_x >= b_left) && (mouse_x < b_right) && (mouse_y >= (button[i] + halfHeight)) && (mouse_y < (button[i] + b_height + halfHeight)) ) { is_hit = true; if (pressed > -1) updatew[pressed] = true; pressed = i; updatew[i] = true; } } if (!is_hit) { if (pressed > -1) updatew[pressed] = true; pressed = -1; } } // Update buttons for (int32_t i = 0; i < INGAMEBUTTONS; ++i) { if (updatew[i]) { updatew[i] = false; global.make_update (b_left, halfHeight + button[i], b_width, b_height); } } // Draw buttons if (need_draw) { SHOW_MOUSE(nullptr) for (int32_t i = 0; i < INGAMEBUTTONS; ++i) { draw_sprite (global.canvas, misc[(pressed == i) ? 8 : 7], b_left, halfHeight + button[i]); textout_centre_ex (global.canvas, font, buttext[i], halfWidth, halfHeight + button[i] + 1, WHITE, -1); } // Update non-OS mouse movements SHOW_MOUSE(global.canvas) global.do_updates (); need_draw = false; } } // end of menu loop return pressed; } void ENVIRONMENT::initialise () { campaign_rounds = static_cast(rounds) / 5.; if (campaign_rounds < 1.) campaign_rounds = 1.; nextCampaignRound = static_cast(rounds) - campaign_rounds; } /// @return true if the items tech level is not too high and if it is not a warhead. bool ENVIRONMENT::isItemAvailable (int32_t itemNum) { if (itemNum < WEAPONS) { if ( (weapon[itemNum].warhead) || (weapon[itemNum].techLevel > weapontechLevel) ) return false; } else if (item[itemNum - WEAPONS].techLevel > itemtechLevel) return false; return true; } /* This function loads environment settings from a text file. The function returns TRUE on success and FALSE if any erors are encountered. -- Jesse */ /// @todo : This should be changed to streams. It's C++ and we have formatted /// text files, so formatted input/output should be far more efficient in /// maintenance. void ENVIRONMENT::load_from_file (FILE *file) { char line[MAX_CONFIG_LINE + 1] = { 0 }; char field[MAX_CONFIG_LINE + 1] = { 0 }; char value[MAX_CONFIG_LINE + 1] = { 0 }; char* result = nullptr; bool done = false; bool sound_bookmark = sound_enabled; // To disable by command line // read until we hit line "*ENV*" or "***" or EOF do { result = fgets(line, MAX_CONFIG_LINE, file); if (!result || !strncmp(line, "***", 3) ) // eof or end of record return; else if (!strncmp(line, "*GLOBAL*", 8)) { // Old style config/save file rewind(file); global.load_from_file(file); } } while ( strncmp(line, "*ENV*", 5) ); // read until we hit new record while ( (result) && (!done) ) { // read a line memset(line, 0, MAX_CONFIG_LINE); result = fgets(line, MAX_CONFIG_LINE, file); // if we hit end of the record, stop if (! strncmp(line, "***", 3) ) done = true; if (result && !done) { // strip newline character int32_t line_length = strlen(line); while ( line[line_length - 1] == '\n') { line[line_length - 1] = '\0'; line_length--; } // find equal sign int32_t equal_position = 1; while ( ( equal_position < line_length ) && ( line[equal_position] != '=' ) ) equal_position++; // make sure the equal sign position is valid if (line[equal_position] != '=') continue; // Go to next line // seperate field from value memset(field, '\0', MAX_CONFIG_LINE); memset(value, '\0', MAX_CONFIG_LINE); strncpy(field, line, equal_position); strncpy(value, & (line[equal_position + 1]), 127); // check for fields and values if (!strcasecmp(field, "acceleratedai")) { sscanf(value, "%d", &skipComputerPlay); if (skipComputerPlay > SKIP_HUMANS_DEAD) skipComputerPlay = SKIP_HUMANS_DEAD; } else if (!strcasecmp(field, "checkupdates")) { int32_t val = 0; sscanf(value, "%d", &val); check_for_updates = val > 0 ? true : false; } else if (!strcasecmp(field, "colourtheme") ) { sscanf(value, "%d", &colourTheme); if (colourTheme < CT_REGULAR) colourTheme = CT_REGULAR; if (colourTheme > CT_CRISPY) colourTheme = CT_CRISPY; } else if (!strcasecmp(field, "debrislevel") ) sscanf(value, "%d", &debris_level); else if (!strcasecmp(field, "detailedland")) { int32_t val = 0; sscanf(value, "%d", &val); detailedLandscape = val > 0 ? true : false; } else if (!strcasecmp(field, "detailedsky")) { int32_t val = 0; sscanf(value, "%d", &val); detailedSky = val > 0 ? true : false; } else if (!strcasecmp(field, "dither")) { int32_t val = 0; sscanf(value, "%d", &val); ditherGradients = val > 0 ? true : false; } else if (!strcasecmp(field, "dividemoney") ) { int32_t val = 0; sscanf(value, "%d", &val); divide_money = val > 0 ? true : false; } else if (!strcasecmp(field, "doboxwrap") ) { int32_t val = 0; sscanf(value, "%d", &val); do_box_wrap = val > 0 ? true : false; } else if (!strcasecmp(field, "dynamicmenubg") ) { int32_t val = 0; sscanf(value, "%d", &val); dynamicMenuBg = val > 0 ? true : false; } else if (!strcasecmp(field, "frames") ) { int32_t new_fps = 0; sscanf(value, "%d", &new_fps); set_fps(new_fps); } else if (!strcasecmp(field, "fullscreen")) sscanf(value, "%d", &full_screen); else if (!strcasecmp(field, "interest")) sscanf(value, "%lf", &interest); else if (!strcasecmp(field, "language") ) { uint32_t stored_lang = 0; sscanf(value, "%u", &stored_lang); language = static_cast(stored_lang); } else if (!strcasecmp(field, "maxfiretime") ) sscanf(value, "%d", &maxFireTime); else if (!strcasecmp(field, "networking")) { int32_t val = 0; sscanf(value, "%d", &val); network_enabled = val > 0 ? true : false; } else if (!strcasecmp(field, "networkport")) sscanf(value, "%d", &network_port); else if (!strcasecmp(field, "numpermanentplayers")) sscanf(value, "%d", &numPermanentPlayers); else if (!strcasecmp(field, "osmouse")) { int32_t val = 0; sscanf(value, "%d", &val); osMouse = val > 0 ? true : false; } else if (!strcasecmp(field, "playmusic")) { int32_t val = 0; sscanf(value, "%d", &val); play_music = val > 0 ? true : false; } else if (!strcasecmp(field, "rounds") ) sscanf(value, "%u", &rounds); else if (!strcasecmp(field, "scoreboard")) { int32_t val = 0; sscanf(value, "%d", &val); global.showScoreBoard = val > 0 ? true : false; } else if (!strcasecmp(field, "scorehitunit")) sscanf(value, "%d", &scoreHitUnit); else if (!strcasecmp(field, "scoreroundwinbonus")) sscanf(value, "%d", &scoreRoundWinBonus); else if (!strcasecmp(field, "scoreselfhit")) sscanf(value, "%d", &scoreSelfHit); else if (!strcasecmp(field, "scoreteamhit")) sscanf(value, "%d", &scoreTeamHit); else if (!strcasecmp(field, "scoreunitdestroybonus")) sscanf(value, "%d", &scoreUnitDestroyBonus); else if (!strcasecmp(field, "scoreunitselfdestroy")) sscanf(value, "%d", &scoreUnitSelfDestroy); else if (!strcasecmp(field, "sellpercent")) sscanf(value, "%lf", &sellpercent); #ifdef NETWORK else if ( !strcasecmp(field, "servername") ) sscanf(value, "%*[']%[^']%*[']", server_name); else if ( !strcasecmp(field, "serverport") ) sscanf(value, "%*[']%[^']%*[']", server_port); #endif // NETWORK else if ( !strcasecmp(field, "showaifeedback") ) { int32_t val = 0; sscanf(value, "%d", &val); showAIFeedback = val > 0 ? true : false; } else if ( !strcasecmp(field, "showfps") ) { int32_t val = 0; sscanf(value, "%d", &val); showFPS = val > 0 ? true : false; } else if (!strcasecmp(field, "soundenabled")) { int32_t val = 0; sscanf(value, "%d", &val); sound_enabled = val > 0 ? true : false; } else if (!strcasecmp(field, "sounddriver")) sscanf(value, "%d", &sound_driver); else if (!strcasecmp(field, "startmoney")) sscanf(value, "%d", &startmoney); else if (!strcasecmp(field, "turntype")) sscanf(value, "%d", &turntype); else if (!strcasecmp(field, "violentdeath") ) sscanf(value, "%d", &violent_death); else if (!strcasecmp(field, "windstrength") ) sscanf(value, "%d", &windstrength); else if (!strcasecmp(field, "windvariation") ) sscanf(value, "%d", &windvariation); else if (!strcasecmp(field, "viscosity") ) { sscanf(value, "%lf", &viscosity); if (viscosity < 0.25) viscosity = 0.5; } else if (!strcasecmp(field, "gravity") ) { sscanf(value, "%lf", &gravity); if (gravity < 0.025) gravity = 0.15; } else if (!strcasecmp(field, "techlevel")) { sscanf(value, "%d", &weapontechLevel); itemtechLevel = weapontechLevel; // for backward compatibility } else if (!strcasecmp(field, "weapontechlevel") ) sscanf(value, "%d", &weapontechLevel); else if (!strcasecmp(field, "itemtechlevel") ) sscanf(value, "%d", &itemtechLevel); else if (!strcasecmp(field, "meteors")) sscanf(value, "%d", &meteors); else if (!strcasecmp(field, "lightning") ) sscanf(value, "%d", &lightning); else if (!strcasecmp(field, "satellite") ) sscanf(value, "%d", &satellite); else if (!strcasecmp(field, "fog") ) sscanf(value, "%d", &fog); else if (!strcasecmp(field, "landtype")) sscanf(value, "%d", &landType); else if (!strcasecmp(field, "landslidetype")) sscanf(value, "%d", &landSlideType); else if (!strcasecmp(field, "walltype")) sscanf(value, "%d", &wallType); else if (!strcasecmp(field, "boxmode")) sscanf(value, "%d", &boxedMode); else if (!strcasecmp(field, "textfade")) { int32_t res = 0; sscanf(value, "%d", &res); fadingText = res ? true : false; } else if (!strcasecmp(field, "textshadow")) { int32_t res = 0; sscanf(value, "%d", &res); shadowedText = res ? true : false; } else if (!strcasecmp(field, "textsway")) { int32_t res = 0; sscanf(value, "%d", &res); swayingText = res ? true : false; } else if (!strcasecmp(field, "landslidedelay")) sscanf(value, "%d", &landSlideDelay); else if (!strcasecmp(field, "fallingdirtballs") ) { sscanf(value, "%d", &falling_dirt_balls); if (falling_dirt_balls < 0) falling_dirt_balls = 0; if (falling_dirt_balls > 3) falling_dirt_balls = 3; } else if (!strcasecmp(field, "custombackground") ) sscanf(value, "%d", &custom_background); else if (!strcasecmp(field, "volumefactor") ) sscanf(value, "%d", &volume_factor); else if (!strcasecmp(field, "volleydelay") ) sscanf(value, "%d", &volley_delay); else if (!strcasecmp(field, "screenwidth")) sscanf(value, "%d", &screenWidth); else if (!strcasecmp(field, "screenheight")) sscanf(value, "%d", &screenHeight); } // end of read a line properly } // end of while not done // If values were set on the command line, override // configuration values: if (temp_screenHeight) screenHeight = temp_screenHeight; else temp_screenHeight = screenHeight; if (temp_screenWidth) screenWidth = temp_screenWidth; else temp_screenWidth = screenWidth; // The resolution must not be below 800x600: if (screenHeight < 600) screenHeight = 600; if (screenWidth < 800) screenWidth = 800; // The screen resolution values must be copied back into // the temp variables, which are then used by the menu, // or changing the resolution will make the menu exit crash. // The resolution is set only once on game start, so // these changes go into temp and are stored back from them. temp_screenHeight = screenHeight; temp_screenWidth = screenWidth; if (! sound_bookmark) sound_enabled = false; halfWidth = screenWidth / 2; halfHeight = screenHeight / 2; menuBeginY = (screenHeight - 400) / 2; if (menuBeginY < 0) menuBeginY = 0; menuEndY = screenHeight - menuBeginY; return; } #define LOAD_TEXT_BLOCK(var, file) try { \ snprintf(path_buf, PATH_MAX, "%s/text/%s%s", dataDir, file, suffix); \ TEXTBLOCK* new_##var = new TEXTBLOCK(path_buf); \ if (var) \ delete var; \ var = new_##var; \ } catch (...) { } /** @brief load text files according to set language * This function loads all needed text files, based on * language, into memory. If a previous text was loaded, it is * removed from memory first. **/ void ENVIRONMENT::load_text_files() { char suffix[12] = { 0 }; switch (language) { case EL_FRENCH: strncpy(suffix, "_fr.txt", 11); snprintf(path_buf, PATH_MAX, "%s/text/war_quotes.txt", dataDir); break; case EL_GERMAN: strncpy(suffix, "_de.txt", 11); snprintf(path_buf, PATH_MAX, "%s/text/war_quotes.txt", dataDir); break; case EL_ITALIAN: strncpy(suffix, "_it.txt", 11); snprintf(path_buf, PATH_MAX, "%s/text/war_quotes_it.txt", dataDir); break; case EL_PORTUGUESE: strncpy(suffix, ".pt_BR.txt", 11); snprintf(path_buf, PATH_MAX, "%s/text/war_quotes.txt", dataDir); break; case EL_RUSSIAN: strncpy(suffix, "_ru.txt", 11); snprintf(path_buf, PATH_MAX, "%s/text/war_quotes_ru.txt", dataDir); break; case EL_SLOVAK: strncpy(suffix, "_sk.txt", 11); snprintf(path_buf, PATH_MAX, "%s/text/war_quotes.txt", dataDir); break; case EL_SPANISH: strncpy(suffix, "_ES.txt", 11); snprintf(path_buf, PATH_MAX, "%s/text/war_quotes_ES.txt", dataDir); break; case EL_ENGLISH: default: strncpy(suffix, ".txt", 11); // default to english snprintf(path_buf, PATH_MAX, "%s/text/war_quotes.txt", dataDir); break; } try { TEXTBLOCK* new_war_quotes = new TEXTBLOCK(path_buf); if (war_quotes) delete war_quotes; war_quotes = new_war_quotes; } catch (...) { /* can't do anything helpful here anyway */ } LOAD_TEXT_BLOCK(gloat, "gloat") LOAD_TEXT_BLOCK(ingame, "ingame") LOAD_TEXT_BLOCK(instructions, "instr") LOAD_TEXT_BLOCK(panic, "panic") LOAD_TEXT_BLOCK(kamikaze, "kamikaze") LOAD_TEXT_BLOCK(retaliation, "retaliation") LOAD_TEXT_BLOCK(revenge, "revenge") LOAD_TEXT_BLOCK(suicide, "suicide") } /** @brief load a background music file. * * This function loads a music file (if there is one available.) * If a current sample is set, it will be released. * * @return true if a sample is loaded, false otherwise. **/ bool ENVIRONMENT::loadBackgroundMusic() { static bool isSecondTry = false; // see if we should bother if (!play_music) return false; SAMPLE* newStream = nullptr; dirent* folder_entry = nullptr; // see if we have the music folder open if (! music_dir) { snprintf(path_buf, PATH_MAX, "%s/music", configDir); music_dir = opendir(path_buf); if (!music_dir) return false; } // at this point we should have an open music folder // the music folder is closed by global's deconstructor // search for files ending in .wav folder_entry = readdir(music_dir); while (folder_entry && !newStream) { // we have something, see if it is a wav file if ( strstr(folder_entry->d_name, ".wav") ) { snprintf(path_buf, PATH_MAX, "%s/music/%s", configDir, folder_entry->d_name); newStream = load_sample(path_buf); } if (!newStream) folder_entry = readdir(music_dir); } if (!folder_entry) { // hit end of folder closedir(music_dir); music_dir = nullptr; // If there is a current background music file loaded, then the // directory is just gone through completely. In that case a // recursive call re-opens the directory and starts anew. if (!isSecondTry && background_music) { isSecondTry = true; return loadBackgroundMusic(); } else { // Otherwise there is either an error or there are no // files in that directory if (background_music) { // Okay, this is odd. destroy_sample(background_music); background_music = nullptr; } play_music = false; return false; } } if (background_music) destroy_sample(background_music); background_music = newStream; isSecondTry = false; return true; } /* * This function loads all the bitmaps needed by the game. * Bitmaps are found in a series of sub-folders under the * data directory. The function returns true on success and * false if an error occurs. */ bool ENVIRONMENT::loadBitmaps() { int32_t file_group = 0; char sub_folder[9] = { 0 }; BITMAP* newbitmap = nullptr; BITMAP** bitmap_array = nullptr; while (file_group < 7) { // set the folder we're looking at switch (file_group) { case 0: strncpy(sub_folder, "title", 8); break; case 1: strncpy(sub_folder, "button", 8); break; case 2: strncpy(sub_folder, "misc", 8); break; case 3: strncpy(sub_folder, "missile", 8); break; case 4: strncpy(sub_folder, "stock", 8); break; case 5: strncpy(sub_folder, "tank", 8); break; case 6: strncpy(sub_folder, "tankgun", 8); break; } // set up empty array int32_t array_size = 10; bitmap_array = (BITMAP **) calloc(10, sizeof(BITMAP *) ); if (! bitmap_array) { printf("Ran out of memory, loading bitmaps.\n"); return false; } // search for files int32_t file_count = 0; snprintf(path_buf, PATH_MAX, "%s/%s/%d.bmp", dataDir, sub_folder, file_count); while ( !access(path_buf, F_OK | R_OK) && bitmap_array ) { newbitmap = load_bitmap(path_buf, nullptr); if (! newbitmap) printf("An error occured loading bitmap %s\n", path_buf); // Crop tank bitmaps for unification if (newbitmap && (5 == file_group)) { int32_t left = 0; int32_t right = newbitmap->w; int32_t top = 0; int32_t bottom = newbitmap->h; // Find real left edge bool hasPix = false; while (!hasPix && (left < right)) { for (int32_t y = top; !hasPix && (y < bottom); ++y) { if (PINK != getpixel(newbitmap, left, y)) hasPix = true; } if (!hasPix) ++left; } // Find real right edge hasPix = false; while (!hasPix && (right > left)) { for (int32_t y = top; !hasPix && (y < bottom); ++y) { if (PINK != getpixel(newbitmap, right, y)) hasPix = true; } if (!hasPix) --right; } // Find real top edge hasPix = false; while (!hasPix && (top < bottom)) { for (int32_t x = left; !hasPix && (x < right); ++x) { if (PINK != getpixel(newbitmap, x, top)) hasPix = true; } if (!hasPix) ++top; } // Find real bottom edge hasPix = false; while (!hasPix && (bottom > top)) { for (int32_t x = left; !hasPix && (x < right); ++x) { if (PINK != getpixel(newbitmap, x, bottom)) hasPix = true; } if (!hasPix) --bottom; } // Now create the real bitmap bitmap_array[file_count] = create_bitmap(right - left, bottom - top); blit(newbitmap, bitmap_array[file_count], left, top, 0, 0, right - left, bottom - top); destroy_bitmap(newbitmap); } // End of cropping tank bitmap // otherwise just copy the bitmap pointer else { bitmap_array[file_count] = newbitmap; } file_count++; // make sure array is large enough if ( file_count >= array_size) { array_size += 10; bitmap_array = (BITMAP **) realloc(bitmap_array, sizeof(BITMAP *) * (array_size + 1) ); if (! bitmap_array) { printf("Unable to increase array size while loading bitmaps.\n"); return false; } else memset(bitmap_array + file_count, 0, sizeof(BITMAP*) * (array_size - file_count)); } // get next file snprintf(path_buf, PATH_MAX, "%s/%s/%d.bmp", dataDir, sub_folder, file_count); } // save the new array switch (file_group) { case 0: title = bitmap_array; break; case 1: button = bitmap_array; break; case 2: misc = bitmap_array; break; case 3: missile = bitmap_array; break; case 4: stock = bitmap_array; break; case 5: tank = bitmap_array; break; case 6: tankgun = bitmap_array; break; } file_group++; } return true; } // This file loads in extra fonts the game requires. // Fonts should be stored in the datafolder. On // success the function returns true. When an // error occurs, it returns false. bool ENVIRONMENT::loadFonts() { snprintf(path_buf, PATH_MAX, "%s/unicode.dat", dataDir); main_font = load_font(path_buf, nullptr, nullptr); if (main_font) font = main_font; else printf("Unable to load font %s\n", path_buf); // Store font height if (main_font) fontHeight = text_height(main_font); return main_font ? true : false; } /// @brief collection of all game text file loadings. bool ENVIRONMENT::loadGameFiles() { // Before the (language specific) weapons texts can be loaded, // the english one must be pre-loaded to get the weapons data. // all other files only hold the texts. bool status = true; if (EL_ENGLISH != language) { eLanguages cur_lang = language; language = EL_ENGLISH; status = Load_Weapons_Text(); language = cur_lang; } if (status) status = Load_Weapons_Text(); if (!status) { cerr << "ERROR: An error occurred trying to read weapons file." << endl; return status; } // Note: If english is chosen, the first load is not done. // If english is not chosen, the first load pre-loads english // Thus the second load is always necessary. bitmap_filenames = Find_Bitmaps(&number_of_bitmaps); // If no bitmaps where found, a custom background is futile. if ( custom_background && !bitmap_filenames) custom_background = 0; Create_Music_Folder(); genItemsList (); return status; } /** @brief load all needed sounds * This function loads all sounds from the data folder and saves them * in an array. * @return true on success or false if an error happens. **/ bool ENVIRONMENT::loadSounds() { SAMPLE *temp_sample = nullptr; // allocate space for sound samples sounds = (SAMPLE **) calloc(SND_COUNT, sizeof(SAMPLE *) ); if (! sounds) { printf("Unable to create sound array.\n"); return false; } // read from directory for (int32_t i = 0; i < SND_COUNT; ++i) { snprintf(path_buf, PATH_MAX, "%s/sound/%02d.wav", dataDir, i); if (!access(path_buf, R_OK)) { temp_sample = load_sample(path_buf); if (temp_sample) sounds[i] = temp_sample; else fprintf(stderr, "An error occured loading sound file %s\n", path_buf); } // No else, because the sound enum has free slots. } return true; } void ENVIRONMENT::newRound () { // set wall type if (wallType == WALL_RANDOM) current_wallType = rand() % 4; else current_wallType = wallType; time_to_fall = (rand() & landSlideDelay) + 1; // Set boxed mode if (BM_RANDOM == boxedMode) { if (rand() % 2) isBoxed = true; else isBoxed = false; } else if (BM_ON == boxedMode) isBoxed = true; else isBoxed = false; // Set wall colour switch (current_wallType) { case WALL_RUBBER: wallColour = makecol(0, 255, 0); break; case WALL_STEEL: wallColour = makecol(255, 0, 0); break; case WALL_SPRING: wallColour = makecol(0, 0, 255); break; case WALL_WRAP: wallColour = makecol(255, 255, 0); break; } // Init player array for (int32_t i = 0; i < MAXPLAYERS; ++i) playerOrder[i] = nullptr; } void ENVIRONMENT::removeGamePlayer(PLAYER* player_) { int32_t fromCount = 0; int32_t toCount = -1; if (HUMAN_PLAYER == player_->type) numHumanPlayers--; while (fromCount < numGamePlayers) { if (player_ != players[fromCount]) { if ((toCount >= 0) && (fromCount > toCount)) { players[toCount] = players[fromCount]; players[fromCount] = nullptr; toCount++; } } else // Position found, now move the remaining players down! toCount = fromCount; fromCount++; } numGamePlayers--; } /* * This function puts all the of the environment settings back * to their default values. These are settings which get written * to the config file. * -- Jesse * */ void ENVIRONMENT::Reset_Options() { boxedMode = BM_OFF; check_for_updates = true; colourTheme = CT_CRISPY; custom_background = 0; debris_level = 1; detailedLandscape = false; detailedSky = false; ditherGradients = true; divide_money = false; fadingText = false; falling_dirt_balls = 0; fog = 0; set_fps(60); gravity = 0.15; interest = 1.25; itemtechLevel = 5; landSlideDelay = MAX_GRAVITY_DELAY; landSlideType = SLIDE_GRAVITY; landType = LAND_RANDOM; language = EL_ENGLISH; lightning = 0; maxFireTime = 0; meteors = 0; network_enabled = false; network_port = DEFAULT_NETWORK_PORT; osMouse = true; play_music = 1.0; satellite = 0; scoreHitUnit = 75; scoreRoundWinBonus = 10000; scoreSelfHit = 25; scoreTeamHit = 10; scoreUnitDestroyBonus = 5000; scoreUnitSelfDestroy = 0; sellpercent = 0.80; shadowedText = true; skipComputerPlay = SKIP_HUMANS_DEAD; sound_driver = SD_AUTODETECT; sound_enabled = true; startmoney = 15000; swayingText = true; temp_screenHeight = DEFAULT_SCREEN_HEIGHT; temp_screenWidth = DEFAULT_SCREEN_WIDTH; turntype = TURN_RANDOM; viscosity = 0.5; violent_death = 0; volley_delay = 10; volume_factor = MAX_VOLUME_FACTOR; wallType = WALL_RUBBER; weapontechLevel = 5; windstrength = 8; windvariation = 1; strncpy(server_name, "127.0.0.1", 127); strncpy(server_port, "25645", 127); } /** @brief Save environment settings to a text file * * This function saves the environment settings to a text file. Each line has * the format name=value.\n * * @return true on success and false on failure. */ bool ENVIRONMENT::save_to_file (FILE *file) { if (!file) return false; fprintf (file, "*ENV*\n"); fprintf (file, "ACCELERATEDAI=%d\n", skipComputerPlay); fprintf (file, "BOXMODE=%d\n", boxedMode); fprintf (file, "CHECKUPDATES=%d\n", check_for_updates ? 1 : 0); fprintf (file, "COLOURTHEME=%d\n", colourTheme); fprintf (file, "CUSTOMBACKGROUND=%d\n", custom_background); fprintf (file, "DEBRISLEVEL=%d\n", debris_level); fprintf (file, "DETAILEDLAND=%d\n", detailedLandscape ? 1 : 0); fprintf (file, "DETAILEDSKY=%d\n", detailedSky ? 1 : 0); fprintf (file, "DITHER=%d\n", ditherGradients ? 1 : 0); fprintf (file, "DIVIDEMONEY=%d\n", divide_money); fprintf (file, "DOBOXWRAP=%d\n", do_box_wrap); fprintf (file, "DYNAMICMENUBG=%d\n", dynamicMenuBg ? 1 : 0); fprintf (file, "FALLINGDIRTBALLS=%d\n", falling_dirt_balls); fprintf (file, "FOG=%d\n", fog); fprintf (file, "FRAMES=%d\n", frames_per_second); fprintf (file, "FULLSCREEN=%d\n", full_screen); fprintf (file, "GRAVITY=%f\n", gravity); fprintf (file, "INTEREST=%f\n", interest); fprintf (file, "ITEMTECHLEVEL=%d\n", itemtechLevel); fprintf (file, "LANDSLIDEDELAY=%d\n", landSlideDelay); fprintf (file, "LANDSLIDETYPE=%d\n", landSlideType); fprintf (file, "LANDTYPE=%d\n", landType); fprintf (file, "LANGUAGE=%u\n", static_cast(language)); fprintf (file, "LIGHTNING=%d\n", lightning); fprintf (file, "MAXFIRETIME=%d\n", maxFireTime); fprintf (file, "METEORS=%d\n", meteors); fprintf (file, "NETWORKING=%d\n", network_enabled ? 1 : 0); fprintf (file, "NETWORKPORT=%d\n", network_port); fprintf (file, "NUMPERMANENTPLAYERS=%d\n", numPermanentPlayers); fprintf (file, "OSMOUSE=%d\n", osMouse); fprintf (file, "PLAYMUSIC=%d\n", play_music ? 1 : 0); fprintf (file, "ROUNDS=%d\n", rounds); fprintf (file, "SATELLITE=%d\n", satellite); fprintf (file, "SCOREBOARD=%d\n", global.showScoreBoard ? 1 : 0); fprintf (file, "SCOREHITUNIT=%d\n", scoreHitUnit); fprintf (file, "SCOREROUNDWINBONUS=%d\n", scoreRoundWinBonus); fprintf (file, "SCORESELFHIT=%d\n", scoreSelfHit); fprintf (file, "SCORETEAMHIT=%d\n", scoreTeamHit); fprintf (file, "SCOREUNITDESTROYBONUS=%d\n", scoreUnitDestroyBonus); fprintf (file, "SCOREUNITSELFDESTROY=%d\n", scoreUnitSelfDestroy); fprintf (file, "SCREENHEIGHT=%d\n", temp_screenHeight); fprintf (file, "SCREENWIDTH=%d\n", temp_screenWidth); fprintf (file, "SELLPERCENT=%f\n", sellpercent); fprintf (file, "SERVERNAME='%s'\n", server_name); fprintf (file, "SERVERPORT='%s'\n", server_port); fprintf (file, "SHOWAIFEEDBACK=%d\n", showAIFeedback ? 1 : 0); fprintf (file, "SHOWFPS=%d\n", showFPS ? 1 : 0); fprintf (file, "SOUNDDRIVER=%d\n", sound_driver); fprintf (file, "SOUNDENABLED=%d\n", sound_enabled ? 1 : 0); fprintf (file, "STARTMONEY=%d\n", startmoney); fprintf (file, "TEXTFADE=%d\n", fadingText ? 1 : 0); fprintf (file, "TEXTSHADOW=%d\n", shadowedText ? 1 : 0); fprintf (file, "TEXTSWAY=%d\n", swayingText ? 1 : 0); fprintf (file, "TURNTYPE=%d\n", turntype); fprintf (file, "VISCOSITY=%f\n", viscosity); fprintf (file, "VIOLENTDEATH=%d\n", violent_death); fprintf (file, "VOLLEYDELAY=%d\n", volley_delay); fprintf (file, "VOLUMEFACTOR=%d\n", volume_factor); fprintf (file, "WALLTYPE=%d\n", wallType); fprintf (file, "WEAPONTECHLEVEL=%d\n", weapontechLevel); fprintf (file, "WINDSTRENGTH=%d\n", windstrength); fprintf (file, "WINDVARIATION=%d\n", windvariation); fprintf (file, "***\n"); return true; } /// @brief This function sends a message to all connected game clients. /// @return true on success or false if the message could not be sent bool ENVIRONMENT::sendToClients(const char* message) { if (! message) return false; #ifdef NETWORK int32_t written = 0; int32_t message_length = strlen(message); for (int32_t index = 0; index < numGamePlayers; index++) { if ( (players[index]) && (players[index]->type == NETWORK_CLIENT) ) { written = write(players[index]->server_socket, message, message_length); if (written < message_length) fprintf(stderr, "%s:%d: Warning: Only %d/%d bytes sent to player %d\n", __FILE__, __LINE__, written, message_length, index); } } // done all players #endif // NETWORK return true; } /// @brief set new frames per second if valid and calculate dependent values. void ENVIRONMENT::set_fps(int32_t new_FPS) { if (!new_FPS || ((new_FPS > 0) && (new_FPS != frames_per_second)) ) { if (new_FPS) frames_per_second = new_FPS; FPS_mod = 100. / static_cast(frames_per_second); maxVelocity = static_cast(MAX_POWER) * FPS_mod / 100.; } } void ENVIRONMENT::window_update(int32_t x, int32_t y, int32_t w, int32_t h) { if (x < window.x) window.x = x; if (y < window.y) window.y = y; if (x + w > window.w) window.w = (x + w) - 1; if (y + h > window.h) window.h = (y + h) - 1; if (window.x < 0) window.x = 0; if (window.y < MENUHEIGHT) window.y = MENUHEIGHT; if (window.w > (screenWidth-1)) window.w = (screenWidth-1); if (window.h > (screenHeight-1)) window.h = (screenHeight-1); } atanks-6.6/src/optionscreens.h0000644000175000017500000000237312636021030014617 0ustar apoapo#pragma once #ifndef ATANKS_SRC_OPTIONSCREENS_H_INCLUDED #define ATANKS_SRC_OPTIONSCREENS_H_INCLUDED /* * atanks - obliterate each other with oversize weapons * Copyright (C) 2003 Thomas Hudson * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ /** @file optionscreens.h * @brief Here the functions providing option screens and menus are declared **/ #include "menu.h" void drawMenuBackground (int32_t itemType, int32_t tOffset, int32_t numItems); void editPlayers (); void optionsMenu (); int32_t selectPlayers (); #endif // ATANKS_SRC_OPTIONSCREENS_H_INCLUDED atanks-6.6/src/satellite.cpp0000644000175000017500000000224212636021030014240 0ustar apoapo#include "environment.h" #include "satellite.h" #include "beam.h" SATELLITE::SATELLITE() : x(env.screenWidth / 2) { prev_x = x; } void SATELLITE::draw() { drawing_mode(DRAW_MODE_SOLID, NULL, 0, 0); draw_sprite(global.canvas, env.misc[SATELLITE_IMAGE], x, y); global.make_update(x - 20, y, 80, 60); global.make_update(prev_x, y, 80, 60); } void SATELLITE::move() { // Be sure an owned beam is valid if (beam && beam->destroy) beam = nullptr; // reverse movement if the satellite reaches the screen borders if (x < -5) xv += 1; else if (x > (env.screenWidth - 20) ) xv -= 1; prev_x = x; x += xv; // If the satellite is firing, move the beam if (beam) beam->moveStart(xv < 0 ? x + 10: x + 40, y + 20); } void SATELLITE::shoot() { if ( (SL_NONE != env.satellite) && (global.naturals_activated < 4) && (nullptr == beam) // 1% chance to fire && (!(rand() % 100)) ) { try { beam = new BEAM(nullptr, xv < 0 ? x + 10: x + 40, y + 20, rand() % 35 + (xv < 0 ? 320 : 5), SML_LAZER + (rand() % env.satellite), BT_NATURAL); global.naturals_activated++; } catch (...) { // No problem... fire another time. ;) } } } atanks-6.6/src/decor.h0000644000175000017500000000655012636021030013021 0ustar apoapo#ifndef DECOR_DEFINE #define DECOR_DEFINE /* * atanks - obliterate each other with oversize weapons * Copyright (C) 2003 Thomas Hudson * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "physobj.h" #include "debris_pool.h" enum decorTypes { DECOR_SMOKE = 0, DECOR_DIRT }; class DECOR: public PHYSICAL_OBJECT { public: /* ----------------------------------- * --- Constructors and destructor --- * ----------------------------------- */ // ctor without bitmap explicit DECOR (double x_, double y_, double xv_, double yv_, int32_t maxRadius, int32_t type_, int32_t delay_); // ctor with bitmap DECOR (double x_, double y_, double xv_, double yv_, int32_t maxRadius, int32_t type_, int32_t delay_, sDebrisItem* deb_item, sDebrisItem* met_item); ~DECOR(); /* ----------------------------------- * --- Public methods --- * ----------------------------------- */ void applyPhysics (); void draw (); void force_aging (int32_t frames); // Helper to work against FPS drops. eClasses getClass () { return (DECOR_SMOKE == type ? CLASS_DECOR_SMOKE : CLASS_DECOR_DIRT); } bool isSmoke () { return DECOR_SMOKE == type; } private: typedef sDebrisItem item_t; /* ----------------------------------- * --- Private methods --- * ----------------------------------- */ bool isOnFloor (); void repulseDecor(); void updateDirt (); /* ----------------------------------- * --- Private members --- * ----------------------------------- */ int32_t color = BLACK; double curWind = 0.; //!< shortcut to help physics calculations. int32_t delay = -1; //!< How long until debris must be on its way. int32_t diameter = 10; //!< Pre-calculated shortcut for debris items. item_t* dirt = nullptr; //!< The debris item to throw around if not smoke. int32_t gotPixels = 0; //!< Helper for phased debris creation. int32_t grab_x = 0; //!< Helper for phased debris creation. int32_t grab_y = 0; //!< Helper for phased debris creation. int32_t grabPerCall = 0; //!< Helper for phased debris creation. double maxGravAccel = 1.; //!< Pre-calculated physics helper. double maxWind = 8; //!< env.windstrength cast to double. double maxWindAccel = 1.; //!< Pre-calculated physics helper. item_t* meteor = nullptr; //!< Metor data if not enough dirt was found, but a meteor stroke. int32_t radius = 5; bool ready = false; //!< Whether a debris item is finished or not. int32_t type = DECOR_SMOKE; }; #endif atanks-6.6/src/optiontypes.h0000644000175000017500000000660112636021030014317 0ustar apoapo#pragma once #ifndef ATANKS_SRC_OPTIONTYPES_H_INCLUDED #define ATANKS_SRC_OPTIONTYPES_H_INCLUDED /* * atanks - obliterate each other with oversize weapons * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your menu) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ /** @file optiontypes.h * * This file defines enums used for the menus. **/ #include /** @enum eMenuClass * @brief List of menu classes. Every menu class is a menu in itself. * * MC_MENUCLASS_COUNT can be used to retrieve the number of menu classes. * * This enum is sorted in alphabetical order to make maintenance easier. **/ enum eMenuClass { MC_AREYOUSURE = 0, //!< The "Are you sure?" screen MC_FINANCE, //!< The finance ("Money") options sub menu MC_GRAPHICS, //!< The graphics options sub menu MC_MAIN, //!< Menu shown when using "Options" button MC_NETWORK, //!< The network options sub menu MC_PHYSICS, //!< The physics options sub menu MC_PLAY, //!< Menu shown when using "Play" button MC_PLAYER, //!< The player edit menu MC_PLAYERS, //!< Menu shown when hitting "Players" button MC_RESET, //!< The "Reset options?" screen MC_SOUND, //!< The sound options sub menu MC_WEATHER, //!< The weather options sub menu MC_MENUCLASS_COUNT }; /** @enum eTextClass * @brief Declare the menu option text classes. * * These are used so repeating texts do not need to be translated over and * over again. * TC_TEXTCLASS_COUNT can be used to retrieve the number of * fixed menu entry text classes in OptionClassText[][][]. * * This enum is sorted alphabetically to make maintenance easier. **/ enum eTextClass { TC_COLOUR = 0, TC_LANDSLIDE, TC_LANDTYPE, TC_LANGUAGE, TC_LIGHTNING, TC_METEOR, TC_MOUSE, TC_OFFON, TC_OFFONRANDOM, TC_PLAYERPREF, TC_PLAYERTEAM, TC_PLAYERTYPE, TC_SATELLITE, TC_SKIPTYPE, TC_SOUNDDRIVER, TC_TANKTYPE, TC_TURNTYPE, TC_WALLTYPE, TC_TEXTCLASS_COUNT, //!< First value after fixed text class list TC_FREETEXT, //!< Special value for dynamically composed text arrays TC_NONE //!< Special value for no text class at all }; /** @enum eEntryType * @brief Declare the different entry types option items can have **/ enum eEntryType { ET_NONE = 0, ET_ACTION, ET_BUTTON, ET_COLOR, ET_MENU, ET_OPTION, ET_TEXT, ET_TOGGLE, ET_VALUE }; /** @enum eResetOptions * @brief return codes for the "Are you sure" reset button question **/ enum eResetOptions { RO_BACK = 667, RO_RESET = 1337 }; // Some helper functions to get names for enum entries std::string getEntryTypeName(eEntryType etype); std::string getMenuClassName(eMenuClass mclass); std::string getTextClassName(eTextClass tclass); #endif // ATANKS_SRC_OPTIONTYPES_H_INCLUDED atanks-6.6/src/optionitemcolour.h0000644000175000017500000000516212636021030015336 0ustar apoapo#pragma once #ifndef ATANKS_SRC_OPTIONITEMCOLOUR_H_INCLUDED #define ATANKS_SRC_OPTIONITEMCOLOUR_H_INCLUDED /* * atanks - obliterate each other with oversize weapons * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "optionitembase.h" /** @file optionitemcolour.h * @brief declaration of the option entry class specialized on handling * int32_t instances representing colours. **/ /** @class OptionItemColour * @brief abstract one option menu entry to handle an int32_t instance * * This class is a special version of the OptionItem template that can only * handle int32_t instances representing colours. * * The the only entry type supported is the ET_COLOR. **/ class OptionItemColour : public OptionItemBase { public: /* ------------------------------------------- * --- Public constructors and destructors --- * ------------------------------------------- */ explicit OptionItemColour( int32_t* color_, const char* title_, int32_t titleIdx_, int32_t top_, int32_t left_, int32_t width_, int32_t height_, int32_t padding_, int32_t show_size_); virtual ~OptionItemColour(); /* ---------------------- * --- Public methods --- * ---------------------- */ virtual int32_t activate (int32_t, int32_t, int32_t, int32_t); virtual bool canGoDown (); virtual bool canGoUp (); virtual void display (bool show_full); virtual bool isExitButton(); void setLanguage (); private: /* ---------------------------------------------- * --- Private methods and external functions --- * ---------------------------------------------- */ void displayCross(); /* ----------------------- * --- Private members --- * ----------------------- */ int32_t act_x = 0; int32_t act_y = 0; BITMAP* tgt_bitmap = nullptr; //!< Pre-drawn Rainbow box int32_t* tgt_color = nullptr; //!< Colour instance to handle }; #endif // ATANKS_SRC_OPTIONITEMCOLOUR_H_INCLUDED atanks-6.6/src/player_types.cpp0000644000175000017500000000517312636021030015000 0ustar apoapo#include "player_types.h" playerType &operator+=(playerType &src, int32_t val) { int32_t cur = static_cast(src) + val; if (cur > 0) cur %= LAST_PLAYER_TYPE; if (cur < 0) cur = LAST_PLAYER_TYPE - ((-1 * cur) % LAST_PLAYER_TYPE); src = static_cast(cur); return src; } playerType &operator-=(playerType &src, int32_t val) { return src += -1 * val; } playerType &operator++(playerType &src) { return src += 1; } playerType operator++(playerType &src, int32_t) { playerType old_val = src; src += 1; return old_val; } playerPrefType &operator+=(playerPrefType &src, int32_t val) { int32_t cur = static_cast(src) + val; if (cur > 0) cur %= PREF_COUNT; if (cur < 0) cur = PREF_COUNT - ((-1 * cur) % PREF_COUNT); src = static_cast(cur); return src; } playerPrefType &operator-=(playerPrefType &src, int32_t val) { return src += -1 * val; } playerPrefType &operator++(playerPrefType &src) { return src += 1; } playerPrefType operator++(playerPrefType &src, int32_t) { playerPrefType old_val = src; src += 1; return old_val; } ePlayerStages &operator+=(ePlayerStages &src, int32_t val) { int32_t cur = static_cast(src) + val; if (cur > 0) cur %= PS_STAGE_COUNT; if (cur < 0) cur = PS_STAGE_COUNT - ((-1 * cur) % PS_STAGE_COUNT); src = static_cast(cur); return src; } ePlayerStages &operator-=(ePlayerStages &src, int32_t val) { return src += -1 * val; } ePlayerStages &operator++(ePlayerStages &src) { return src += 1; } ePlayerStages operator++(ePlayerStages &src, int32_t) { ePlayerStages old_val = src; src += 1; return old_val; } eTeamTypes &operator+=(eTeamTypes &src, int32_t val) { int32_t cur = static_cast(src) + val; if (cur > 0) cur %= TEAM_COUNT; if (cur < 0) cur = TEAM_COUNT - ((-1 * cur) % TEAM_COUNT); src = static_cast(cur); return src; } eTeamTypes &operator-=(eTeamTypes &src, int32_t val) { return src += -1 * val; } eTeamTypes &operator++(eTeamTypes &src) { return src += 1; } eTeamTypes operator++(eTeamTypes &src, int32_t) { eTeamTypes old_val = src; src += 1; return old_val; } eTankTypes &operator+=(eTankTypes &src, int32_t val) { int32_t cur = static_cast(src) + val; if (cur > 0) cur %= TT_TANK_COUNT; if (cur < 0) cur = TT_TANK_COUNT - ((-1 * cur) % TT_TANK_COUNT); src = static_cast(cur); return src; } eTankTypes &operator-=(eTankTypes &src, int32_t val) { return src += -1 * val; } eTankTypes &operator++(eTankTypes &src) { return src += 1; } eTankTypes operator++(eTankTypes &src, int32_t) { eTankTypes old_val = src; src += 1; return old_val; } atanks-6.6/src/files.h0000644000175000017500000000164512636021030013027 0ustar apoapo#ifndef FILE_HANDLING_HEADER_ #define FILE_HANDLING_HEADER_ #define MAX_CONFIG_LINE 128 #define MAX_INSULAND_LINE 256 #include "debug.h" #ifndef HAS_DIRENT # if defined(ATANKS_IS_MSVC) # include "extern/dirent.h" # else # include # endif // Linux # define HAS_DIRENT 1 #endif //HAS_DIRENT #include "globaldata.h" #include "environment.h" #include "text.h" /* Global path buffer */ extern char path_buf[PATH_MAX + 1]; bool Save_Game(); bool Load_Game(); bool Check_For_Saved_Game(); bool Copy_Config_File(); // Make sure there is a music folder in .atanks bool Create_Music_Folder(); void scrollTextList(TEXTBLOCK* lines); void flush_inputs(); bool Load_Weapons_Text(); #ifdef MACOSX int Filter_File( struct dirent *my_file ); #else int Filter_File( const struct dirent *my_file ); #endif dirent** Find_Saved_Games(uint32_t &num_files_found); char** Find_Bitmaps(int32_t* bitmaps_found); #endif atanks-6.6/src/land.h0000644000175000017500000000553613006377360012662 0ustar apoapo#ifndef LAND_HEADER_FILE__ #define LAND_HEADER_FILE__ #include "main.h" #define LANDS 8 // The first LANDS are regular, the second are crispy. const gradient land_gradient1[] = { {{ 20, 40, 20,0}, 0.0f}, {{ 80,100, 80,0}, 0.5f}, {{ 80,120,100,0}, 1.0f}, {{0,0,0,0}, -1} }; const gradient land_gradient2[] = { {{100,200,100,0}, 0.0f}, {{ 80,100, 80,0}, 0.5f}, {{ 80,120,100,0}, 1.0f}, {{0,0,0,0}, -1} }; const gradient land_gradient3[] = { {{200,100,100,0}, 0.0f}, {{100, 70, 80,0}, 0.5f}, {{120, 80,100,0}, 1.0f}, {{0,0,0,0}, -1} }; const gradient land_gradient4[] = { {{ 80, 50, 60,0}, 0.0f}, {{100, 70, 80,0}, 0.25f}, {{150,120, 80,0}, 0.75f}, {{200,180,150,0}, 1.0f}, {{0,0,0,0}, -1} }; const gradient land_gradient5[] = { {{ 20, 20, 20,0}, 0.0f}, {{100,100,100,0}, 0.7f}, {{250,250,250,0}, 0.75f}, {{250,250,250,0}, 1.0f}, {{0,0,0,0}, -1} }; const gradient land_gradient6[] = { {{200,180, 70,0}, 0.0f}, {{100, 90, 30,0}, 1.0f}, {{0,0,0,0}, -1} }; const gradient land_gradient7[] = { {{ 50,200,150,0}, 0.0f}, {{130,120,180,0}, 1.0f}, {{0,0,0,0}, -1} }; const gradient land_gradient8[] = { {{ 0, 0, 0,0}, 0.0f}, {{ 50, 40, 50,0}, 0.4f}, {{100, 0, 0,0}, 0.8f}, {{0,0,0,0}, -1} }; const gradient land_gradient9[] = { {{100,100,100,0}, 0.0f}, {{ 50, 50, 50,0}, 0.7f}, {{255,255,255,0}, 1.0f}, {{0,0,0,0}, -1} }; const gradient land_gradient10[] = { {{100, 50, 50,0}, 0.0f}, {{ 50, 0, 0,0}, 0.25f}, {{100, 10, 10,0}, 0.5f}, {{100, 0, 0,0}, 0.95f}, {{ 0, 0, 0,0}, 1.0f}, {{0,0,0,0}, -1} }; const gradient land_gradient11[] = { {{ 50,100, 50,0}, 0.0f}, {{ 0, 50, 0,0}, 0.7f}, {{ 0,100, 0,0}, 0.95f}, {{ 0, 0, 0,0}, 1.0f}, {{0,0,0,0}, -1} }; const gradient land_gradient12[] = { {{ 90, 90, 90,0}, 0.0f}, {{ 30, 30, 30,0}, 0.4f}, {{ 60, 60, 60,0}, 0.95f}, {{ 0, 0, 0,0}, 1.0f}, {{0,0,0,0}, -1} }; const gradient land_gradient13[] = { {{ 90, 90, 90,0}, 0.0f}, {{ 0, 60, 0,0}, 0.95f}, {{ 0, 0, 0,0}, 1.0f}, {{0,0,0,0}, -1} }; const gradient land_gradient14[] = { {{ 0,175, 0,0}, 0.0f}, {{ 0, 50, 0,0}, 0.95f}, {{ 0, 0, 0,0}, 1.0f}, {{0,0,0,0}, -1} }; const gradient land_gradient15[] = { {{100, 50, 50,0}, 0.0f}, {{ 50, 0, 0,0}, 0.95f}, {{ 0, 0, 0,0}, 1.0f}, {{0,0,0,0}, -1} }; const gradient land_gradient16[] = { {{200, 0, 0,0}, 0.0f}, {{200,200, 0,0}, 0.25f}, {{ 0,200, 0,0}, 0.5f}, {{ 0, 0,200,0}, 0.75f}, {{200, 0,200,0}, 1.0f}, {{0,0,0,0}, -1} }; const gradient * const land_gradients[] = { land_gradient1, land_gradient2, land_gradient3, land_gradient4, land_gradient5, land_gradient6, land_gradient7, land_gradient8, land_gradient9, land_gradient10, land_gradient11, land_gradient12, land_gradient13, land_gradient14, land_gradient15, land_gradient16 }; class LevelCreator; void generate_land(LevelCreator* lcr, int32_t yoffset, int32_t heightx); #endif atanks-6.6/src/globaldata.h0000644000175000017500000001627413006377360014037 0ustar apoapo#ifndef GLOBALDATA_DEFINE #define GLOBALDATA_DEFINE /* * atanks - obliterate each other with oversize weapons * Copyright (C) 2003 Thomas Hudson * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "main.h" #include #include #ifndef HAS_DIRENT # if defined(ATANKS_IS_MSVC) # include "extern/dirent.h" # else # include # endif // Linux # define HAS_DIRENT 1 #endif //HAS_DIRENT #ifdef USE_MUTEX_INSTEAD_OF_SPINLOCK # include # define CSpinLock std::mutex #endif // USE_MUTEX_INSTEAD_OF_SPINLOCK #include "text.h" #include "globaltypes.h" #include "environment.h" extern int32_t BLACK; /// Forwards that do not need to be known here struct sDebrisItem; struct sDebrisPool; class PLAYER; class TANK; class VIRTUAL_OBJECT; #ifndef USE_MUTEX_INSTEAD_OF_SPINLOCK /** @brief minimal spinlock class * It can do nothing but lock and unlock. No recursive locks. * But then it is a lot faster and leaner than mutexes and critical * sections ever can be. ;) **/ class CSpinLock { public: explicit CSpinLock(); ~CSpinLock(); CSpinLock(const CSpinLock&) = delete; CSpinLock &operator=(const CSpinLock&) = delete; bool hasLock(); void lock(); void unlock(); private: abool_t is_destroyed; aflag_t lock_flag; std::thread::id owner_id; }; #endif // USE_MUTEX_INSTEAD_OF_SPINLOCK /** @class GLOBALDATA * @brief Values used globally during a game round. * * This class holds all values and the corresponding functions for everything * that can change during a game round. * * Everything that is fixed during a game round is consolidated in ENVIRONMENT. **/ class GLOBALDATA { typedef VIRTUAL_OBJECT vobj_t; typedef sDebrisItem item_t; public: /* ----------------------------------- * --- Constructors and destructor --- * ----------------------------------- */ explicit GLOBALDATA (); ~GLOBALDATA(); /* ---------------------- * --- Public methods --- * ---------------------- */ void addLandSlide (int32_t left, int32_t right, bool do_lock); void addObject (vobj_t* object); bool areTanksInBox (int32_t x1, int32_t y1, int32_t x2, int32_t y2); bool check_time_changed(); // check to see if one second has passed void clear_objects (); void destroy (); void do_updates (); void first_init (); void free_debris_item (item_t* item); int32_t get_avg_bgcolor (int32_t x1, int32_t y1, int32_t x2, int32_t y2, double xv, double yv); int32_t get_command (); TANK* get_curr_tank (); item_t* get_debris_item (int32_t radius); TANK* get_next_tank (bool* wrapped_around); TANK* get_random_tank (); void initialise (); bool isCloseBtnPressed (); bool isDirtInBox (int32_t x1, int32_t y1, int32_t x2, int32_t y2); void load_from_file (FILE* file); void lockClass (eClasses class_); void lockLand (); void make_bgupdate (int32_t x, int32_t y, int32_t w, int32_t h); void make_fullUpdate (); void make_update (int32_t x, int32_t y, int32_t w, int32_t h); void newRound (); void pressCloseButton (); void removeObject (vobj_t* object); void removeTank (TANK* tank); void replace_canvas (); bool save_to_file (FILE* file); void set_curr_tank (TANK* tank_); void set_command (int32_t cmd); void slideLand (); void unlockClass (eClasses class_); void unlockLand (); void unlockLandSlide (int32_t left, int32_t right); template void getHeadOfClass (eClasses class_, Head_T** head_) { if (class_ < CLASS_COUNT) { objLocks[class_].lock(); *head_ = static_cast(heads[class_]); objLocks[class_].unlock(); } else *head_ = nullptr; } /* ---------------------- * --- Public members --- * ---------------------- */ int32_t AI_clock = -1; BITMAP* canvas = nullptr; const char* client_message = nullptr; // message sent from client to main menu PLAYER* client_player = nullptr; // the index we use to know which one is the player on the client side int32_t curland = 0; int32_t current_drawing_mode = DRAW_MODE_SOLID; uint32_t currentround = 0; int32_t cursky = 0; bool demo_mode = false; bool hasTooMuchDeco = false; // Set to true if the set FPS are too hard to reach. BOX* lastUpdates = nullptr; int32_t lastUpdatesCount = 0; double lastwind = 0.; int32_t naturals_activated = 0; int32_t numTanks = 0; TANK* order[MAXPLAYERS]; bool showScoreBoard = false; bool skippingComputerPlay = false; int32_t stage = STAGE_AIM; bool stopwindow = false; ai32_t* surface = nullptr; char tank_status[128]; int32_t tank_status_colour = BLACK; BITMAP* terrain = nullptr; bool updateMenu = true; BOX* updates = nullptr; char* update_string = nullptr; int32_t used_voices = 0; double wind = 0.; private: typedef sDebrisPool debpool_t; /* ----------------------- * --- Private methods --- * ----------------------- */ // Combine make_update and make_bgupdate with safety checks void addUpdate(int32_t x, int32_t y, int32_t w, int32_t h, BOX* target, int32_t &target_count); /* ----------------------- * --- Private members --- * ----------------------- */ bool close_button_pressed = false; CSpinLock cbpLock; //[c]lose_[b]utton_[p]ressed CSpinLock cmdLock; bool combineUpdates = true; int32_t command = 0; TANK* currTank = nullptr; debpool_t* debris_pool = nullptr; int8_t* done = nullptr; double* dropIncr = nullptr; int32_t* dropTo = nullptr; int32_t* fp = nullptr; vobj_t* heads[CLASS_COUNT]; CSpinLock landLock; CSpinLock objLocks[CLASS_COUNT]; vobj_t* tails[CLASS_COUNT]; int32_t tankindex = 0; int32_t updateCount = 0; double* velocity = nullptr; }; #define HAS_GLOBALDATA 1 #endif atanks-6.6/src/text.h0000644000175000017500000000465712636021030012717 0ustar apoapo#ifndef TEXT_HEADER_FILE__ #define TEXT_HEADER_FILE__ /* This file contains functions for reading text from files and * storing it in the game. The entire text file will be kept in memory. * Each text object will have the ability to return a line, * track its position in the text or return a random line. * This should allow for better multi-language handling, faster * access to tank speech and remove the need to rely on the lineseq * class. * -- Jesse */ #include #define MAX_LINE_LENGTH 512 #define MAX_LINES_IN_FILE 1024 struct BOX; /// @brief alignment of texts enum alignType { CENTRE = 0, LEFT, RIGHT }; class TEXTBLOCK { public: /* ----------------------------------- * --- Constructors and destructor --- * ----------------------------------- */ TEXTBLOCK (); TEXTBLOCK (const char* filename); ~TEXTBLOCK(); /* ---------------------- * --- Public methods --- * ---------------------- */ int32_t Display_All (bool show_line_numbers); // display all text const char* Get_Current_Line() const; // return current line const char* Get_Line (int32_t index) const; // return a specific line const char* Get_Random_Line () const; // give us a random line bool Load_File (const char *filename); // load lines from a file int32_t Lines () const; // Return number of total lines bool Next_Line (); // advance the current line bool Previous_Line (); // move the current line back void Render_Lines (int32_t scrollOffset, int32_t spacing, int32_t top, int32_t bottom); // Render to global.canvas private: /* ----------------------- * --- Private methods --- * ----------------------- */ void destroy(); /* ----------------------- * --- Private members --- * ----------------------- */ int32_t total_lines = 0; int32_t current_line = 0; char** complete_text = nullptr; }; // Functions we can use anywhere // This function returns a string with // comma characters between thousands positions // You *MUST* *NOT* free the returned string. const char* Add_Comma(int32_t number); void draw_text_in_box(BOX* region, const char* text, bool with_box); // hack the newline off a string void Trim_Newline(char *line); #endif atanks-6.6/src/sound.h0000644000175000017500000000246212636021030013053 0ustar apoapo#pragma once #ifndef ATANKS_SRC_SOUNDS_H_INCLUDED #define ATANKS_SRC_SOUNDS_H_INCLUDED /* * atanks - obliterate each other with oversize weapons * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "externs.h" /** @file sound.h * @brief declare centralized functions to play sounds. **/ void play_explosion_sound(int32_t type, int32_t x, int32_t vol, int32_t f_off); void play_fire_sound (int32_t type, int32_t x, int32_t vol, int32_t f_off); void play_music (); void play_natural_sound (int32_t type, int32_t x, int32_t vol, int32_t f_off); void play_interface_sound(eSounds sound); #endif // ATANKS_SRC_SOUNDS_H_INCLUDED atanks-6.6/src/extern/0000755000175000017500000000000012636021030013053 5ustar apoapoatanks-6.6/src/extern/dirent.h0000755000175000017500000000176612636021030014526 0ustar apoapo#ifndef DIRENT_INCLUDED #define DIRENT_INCLUDED /* Declaration of POSIX directory browsing functions and types for Win32. Author: Kevlin Henney (kevlin@acm.org, kevlin@curbralan.com) History: Created March 1997. Updated June 2003. Rights: See end of file. */ #ifdef __cplusplus extern "C" { #endif typedef struct DIR DIR; struct dirent { char *d_name; }; DIR *opendir(const char *); int closedir(DIR *); struct dirent *readdir(DIR *); void rewinddir(DIR *); /* Copyright Kevlin Henney, 1997, 2003. All rights reserved. Permission to use, copy, modify, and distribute this software and its documentation for any purpose is hereby granted without fee, provided that this copyright and permissions notice appear in all copies and derivatives. This software is supplied "as is" without express or implied warranty. But that said, if there are any problems please get in touch. */ #ifdef __cplusplus } #endif #endif atanks-6.6/src/extern/dirent.c0000755000175000017500000000626212636021030014515 0ustar apoapo/* Implementation of POSIX directory browsing functions and types for Win32. Author: Kevlin Henney (kevlin@acm.org, kevlin@curbralan.com) History: Created March 1997. Updated June 2003 and July 2012. Rights: See end of file. */ #include "dirent.h" #include #include /* _findfirst and _findnext set errno iff they return -1 */ #include #include #ifdef __cplusplus extern "C" { #endif typedef ptrdiff_t handle_type; /* C99's intptr_t not sufficiently portable */ struct DIR { handle_type handle; /* -1 for failed rewind */ struct _finddata_t info; struct dirent result; /* d_name null iff first time */ char *name; /* null-terminated char string */ }; DIR *opendir(const char *name) { DIR *dir = 0; if(name && name[0]) { size_t base_length = strlen(name); size_t full_length = base_length; const char *all = /* search pattern must end with suitable wildcard */ strchr("/\\", name[base_length - 1]) ? "*" : "/*"; full_length += strlen(all) + 1; if((dir = (DIR *) malloc(sizeof *dir)) != 0 && ( dir->name = (char *)malloc(full_length) ) != 0 ) { strcpy_s(dir->name, full_length, name); strcat_s(dir->name, full_length, all); if((dir->handle = (handle_type) _findfirst(dir->name, &dir->info)) != -1) { dir->result.d_name = 0; } else /* rollback */ { free(dir->name); free(dir); dir = 0; } } else /* rollback */ { free(dir); dir = 0; errno = ENOMEM; } } else { errno = EINVAL; } return dir; } int closedir(DIR *dir) { int result = -1; if(dir) { if(dir->handle != -1) { result = _findclose(dir->handle); } free(dir->name); free(dir); } if(result == -1) /* map all errors to EBADF */ { errno = EBADF; } return result; } struct dirent *readdir(DIR *dir) { struct dirent *result = 0; if(dir && dir->handle != -1) { if(!dir->result.d_name || _findnext(dir->handle, &dir->info) != -1) { result = &dir->result; result->d_name = dir->info.name; } } else { errno = EBADF; } return result; } void rewinddir(DIR *dir) { if(dir && dir->handle != -1) { _findclose(dir->handle); dir->handle = (handle_type) _findfirst(dir->name, &dir->info); dir->result.d_name = 0; } else { errno = EBADF; } } #ifdef __cplusplus } #endif /* Copyright Kevlin Henney, 1997, 2003, 2012. All rights reserved. Permission to use, copy, modify, and distribute this software and its documentation for any purpose is hereby granted without fee, provided that this copyright and permissions notice appear in all copies and derivatives. This software is supplied "as is" without express or implied warranty. But that said, if there are any problems please get in touch. */ atanks-6.6/src/physobj.cpp0000644000175000017500000004650714066454637013772 0ustar apoapo/* * atanks - obliterate each other with oversize weapons * Copyright (C) 2003 Thomas Hudson * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "physobj.h" #include "environment.h" #include "globaldata.h" PHYSICAL_OBJECT::PHYSICAL_OBJECT(bool is_weapon) : VIRTUAL_OBJECT(), isWeaponFire(is_weapon) { /* nothing to do here */ } void PHYSICAL_OBJECT::initialise() { VIRTUAL_OBJECT::initialise(); hitSomething = false; } /// @brief return true if this object was fired from a player weapon bool PHYSICAL_OBJECT::isWeapon() { return isWeaponFire; } /// @brief get the current velocity. Only important for AICore to track clusters. void PHYSICAL_OBJECT::getVelocity(double &xv_, double &yv_) { xv_ = xv; yv_ = yv; } /// @brief check whether the object hit something and return true if it has /// Note: The objects x and y position is updated to the impact coordinates /// if it hit anything. bool PHYSICAL_OBJECT::checkPixelsBetweenPrevAndNow() { double startX = x - xv; double startY = y - yv; if (checkPixelsBetweenTwoPoints(&startX, &startY, x, y, mindDelay, &mindPassed)) { x = startX; y = startY; return true; } return false; } /** @brief applyPhysics * * Moves the object according to momentum and wind, bounces off of * walls/ceiling/floor, and checks whether something is hit. * * @return true if something was hit, false otherwise. */ void PHYSICAL_OBJECT::applyPhysics() { // Apply wind to x-movement xv += (global.wind - xv) / mass * drag * env.viscosity; // Apply gravity to y movement yv += env.gravity * env.FPS_mod; // Barrier test: if ( (yv <= -1.0) && (y <= (env.screenHeight * -25.0))) yv *= -1.0; bool isMoving = (std::abs(xv) + std::abs(yv)) < 0.01 ? false : true; if (!isMoving) return; // early out /* There are 6 steps: * 1. Does the object hit a wall? * 2. Does it hit something else before reaching the wall? * 3. If nothing is hit, do the wall handling. * 4. If nothing is hit and if movement is left, determine movement delta * and continue with 1. * 5. Does the object hit something on its way to its final destination? * 6. If nothing is hit, check the object velocity and detonate if too fast. */ // Shortcuts: bool hasTop = env.isBoxed; int32_t left = 1; int32_t right = env.screenWidth - 2; int32_t top = MENUHEIGHT + (hasTop ? 1 : 0); int32_t bottom = env.screenHeight - 2; double xv_cur = xv; double yv_cur = yv; // Special handling for Napalm Jellies if this is wrap or steel // ceiling. They sort of 'glide off' of the ceiling instead of // getting glued to it. bool jelly = (NAPALM_JELLY == weapType) && ( (WALL_STEEL == env.current_wallType) || ( (WALL_WRAP == env.current_wallType) && (!env.isBoxed || !env.do_box_wrap) ) ) ? true : false; // Easiest way is a loop that traces the path step-wise while (isMoving && !hitSomething) { double currX = x; double currY = y; double nextX = x + xv_cur; double nextY = y + yv_cur; double deltaX = 0.; double deltaY = 0.; double hitX = 0.; // <0 = left, >0 = right double hitY = 0.; // <0 = top, >0 = bottom bool hitWall = false; bool hitFloor = false; bool hitLeft = false; // Helper to not needing to check deltaX against 0. bool hitTop = false; // Helper to not needing to check deltaY against 0. // === 1.: Does the object hit a wall ? === // ======================================== if (nextX < left ) { deltaX = left - x; hitX = deltaX / xv_cur; hitWall = true; hitLeft = true; } else if (nextX > right ) { deltaX = right - x; hitX = deltaX / xv_cur; hitWall = true; } if (nextY > bottom) { deltaY = bottom - y; hitY = deltaY / yv_cur; hitFloor = true; } else if (hasTop && (nextY < top) ) { deltaY = top - y; hitY = deltaY / yv_cur; hitFloor = true; hitTop = true; } // Note: hit[XY] is now the percentage of the full movement to the hit. if (hitWall || hitFloor) { // === 2. Does it hit something else before reaching the wall? === // Note: This is just preparation, check 5 can do this once prepared. // =============================================================== if (!hitFloor || (hitWall && (std::abs(hitX) <= std::abs(hitY))) ) { // The X-movement hits a wall earlier or at the same time (corner). nextX = hitLeft ? left : right; deltaY = yv_cur * hitX; nextY = y + deltaY; hitFloor = false; // not reached } else { // The Y-movement hits bottom/top earlier nextY = hitTop ? top : bottom; deltaX = xv_cur * hitY; nextX = x + deltaX; hitWall = false; // not reached if (jelly && hitTop) { nextY += 1.0; yv = static_cast( (rand() % 10) + 1 ) / 25.00; // 0.04 - 0.40 xv /= static_cast( (rand() % 4) + 2 ) / 1.66; // 1.20 - 3.01 } } xv_cur -= deltaX; yv_cur -= deltaY; } // === 5. Does the object hit something on its way to its final === // === destination? === // Note: This is done before the wall handling (step 3/4) as it also // terminates the movement towards a wall. Only if the path // really is clear wall handling makes sense. // ================================================================= if (checkPixelsBetweenTwoPoints(&currX, &currY, nextX, nextY, mindDelay, &mindPassed)) { xv_cur = currX - nextX; yv_cur = currY - nextY; nextX = currX; nextY = currY; if (PT_DIRTBOUNCE == physType) { double rxv, ryv; getDirtBounceReact(nextX, nextY, xv, yv, rxv, ryv); // Modify rxv/ryv, this is no full bounce: if (std::abs(rxv) > std::abs(ryv)) { rxv *= 0.66; if (ryv < 0.) ryv *= 0.5; } else { rxv *= 0.5; if (ryv < 0.) ryv *= 0.66; } // See how much of the current movement is left double vel_rest = FABSDISTANCE2(xv_cur, yv_cur, 0., 0.) / FABSDISTANCE2(xv, yv, 0., 0.); // Now apply what is left: xv_cur = rxv * vel_rest; yv_cur = ryv * vel_rest; xv = rxv; yv = ryv; } else { hitSomething = true; isMoving = false; } hitWall = false; hitFloor = false; } else if (hitWall || hitFloor) { // === 3. If nothing is hit, do the wall handling. === // =================================================== // Note: Dirt bounce must be done first, it is handled // differently but for x-wrapping if ( (PT_DIRTBOUNCE == physType) && ( (WALL_WRAP != env.current_wallType) || hitFloor) ) { if (hitWall) { xv_cur *= -0.5; xv *= -0.5; if (yv < 0.) { yv_cur *= 0.66; yv *= 0.66; } } else { // Yes, dirt does not wrap though ceilings. xv_cur *= 0.66; xv *= 0.66; yv_cur *= nextY >= bottom ? -0.5 : -1.0; yv *= nextY >= bottom ? -0.5 : -1.0; } } else { // count the bounce: ++bounces; switch(env.current_wallType) { case WALL_RUBBER: if (hitWall) { xv_cur = -xv_cur * BOUNCE_CHANGE; xv = -xv * BOUNCE_CHANGE; yv_cur *= BOUNCE_CHANGE; yv *= BOUNCE_CHANGE; } else { yv_cur = -yv_cur * BOUNCE_CHANGE; yv = -yv * BOUNCE_CHANGE; xv_cur *= BOUNCE_CHANGE; xv *= BOUNCE_CHANGE; } break; case WALL_SPRING: if (hitWall) { xv_cur = -xv_cur * SPRING_CHANGE; xv = -xv * SPRING_CHANGE; } else { yv_cur = -yv_cur * SPRING_CHANGE; yv = -yv * SPRING_CHANGE; } break; case WALL_WRAP: if (hitWall) { if (hitLeft) nextX = right; else nextX = left; } else if (env.isBoxed && env.do_box_wrap) { if (hitTop) { // Some weapons do not warp through the // ceiling if the bottom pixel is occupied // and trigger instead: int32_t bX = ROUNDu(nextX); bool floor_free = global.surface[bX].load(ATOMIC_READ) >= bottom; if (allowDirtyWrap || floor_free) nextY = bottom; else { yv *= -1.; hitSomething = true; } } else nextY = top; } else hitSomething = true; break; case WALL_STEEL: default: hitSomething = true; break; } // End of wall type switch } } // End of nothing hit, wall handling needed // === 6. If nothing is hit, check the object velocity and === // === detonate if too fast. (depending on the mass) === // =========================================================== if (!hitSomething) { double actVel = FABSDISTANCE2(xv_cur, yv_cur, 0, 0); // a²+b²=c² ... says Pythagoras :) if ( (actVel > maxVel) || std::isinf(xv_cur) || std::isinf(yv_cur) || std::isinf(xv) || std::isinf(yv) ) { // apply *some* velocity, as the thing is killed on its way // (unless the current veocity is infinite of course double velMod = 1.0 + ((double)(rand() % 40) / 10.0); // This produces something between 1.0 and 5.0 if (!std::isinf(xv_cur)) nextX = x + (xv_cur / velMod); if (!std::isinf(yv_cur)) nextY = y + (yv_cur / velMod); xv = 0.0; yv = 0.0; if (nextY < top) nextY = top; else if (nextY > bottom) nextY = bottom; if (nextX < left) { if (WALL_WRAP == env.current_wallType) nextX = right - (static_cast(std::abs(nextX)) % right); else nextX = left; } else if (nextX > right) { if (WALL_WRAP == env.current_wallType) nextX = static_cast(nextX) % right; else nextX = right; } hitSomething = true; lacerated = true; // oh dear... } // If the velocities were not only partly applied due to // some wall/floor hit, all movement has been used up now. if (!(hitWall || hitFloor)) isMoving = false; } // End of velocity check // === 4. If nothing is hit and if movement is left, check === // === remaining movement and prepare for 1. or exit === // =========================================================== if ( !hitSomething && isMoving && (hitWall || hitFloor) && ( (std::abs(xv) + std::abs(yv)) < 0.8) ) // If the movement has slowed down too much, take it as a hit hitSomething = true; else if (!hitSomething && isMoving && (hitWall || hitFloor) && ( (std::abs(xv_cur) + std::abs(yv_cur)) < 0.01) ) // Just stop, wall bouncing/wrapping didn't leave enough rest isMoving = false; // Finally set x/y x = nextX; y = nextY; } // End of tracing the movement path } /* --- global function --- */ bool checkPixelsBetweenTwoPoints(double* startX, double* startY, double endX, double endY, double can_delay, double* has_delayed) { // return at once if there can't be any dirt in the box. if (!global.isDirtInBox(*startX, *startY, endX, endY)) { *startX = endX; *startY = endY; return false; } bool result = false; double xDist = endX - *startX; double yDist = endY - *startY; double length = FABSDISTANCE2(xDist, yDist, 0, 0); // Shortcuts: bool hasDelay = has_delayed && (can_delay > *has_delayed); bool hasTop = env.isBoxed; double left = 1; double right = env.screenWidth - 2; double top = MENUHEIGHT + (hasTop ? 1 : 0); double bottom = env.screenHeight - 2; // Drop out early if a neighbouring pixel is checked and it is a hit if (length < 2.) { if ( (endX > left) && (endX < right) && (endY > top) && (endY < bottom) ) { *startX = endX; *startY = endY; if (PINK != getpixel(global.terrain, endX, endY) ) { result = true; // For mind shot delays the distance is only added // to the travelled distance, but the result remains // false if the distance is not used up. if (hasDelay) { *has_delayed += length; if (can_delay > *has_delayed) result = false; } } } // End of having a valid position return result; } // End of early drop out // Otherwise the path must be checked double xInc = xDist / length; double yInc = yDist / length; double iDist = ABSDISTANCE2(0.0, 0.0, xInc, yInc); // [i]ncrease[Dist]ance // sanity check if (length > (env.screenWidth + env.screenHeight)) length = env.screenWidth + env.screenHeight; // check all pixels along the line for land // As xInc/yInc are known now, left, right, top and bottom can // be corrected if the line would not leave the screen. left = std::min({*startX, left, *startX + (length * xInc)}); top = std::min({*startY, top, *startY + (length * yInc)}); right = std::max({*startX, right, *startX + (length * xInc)}); bottom = std::max({*startY, bottom, *startY + (length * yInc)}); // Note: Start with 1 and increase startX/Y first, as // the starting pixel can be assumed to be clean. for (int32_t pos = 1; !result && (pos < length); ++pos) { *startX += xInc; *startY += yInc; if ( (*startX > left) && (*startX < right) && (*startY > top) && (*startY < bottom) ) { if (PINK != getpixel (global.terrain, *startX, *startY) ) { result = true; // Note: startX/startY now point to the hit pixel // For mind shot delays we revert to false as long // as the allowed distance through dirt is used up. if (hasDelay) { *has_delayed += iDist; if (can_delay > *has_delayed) result = false; } } } // End of having a valid position } // End of walking positions // If nothing was hit, make sure startX/Y point to endX/Y if (!result) { *startX = endX; *startY = endY; } return result; } /** @brief Return the reaction velocity values of an object that hits dirt * * The function analyses the pixels around @a x and @a y to find * a plane the vector @a xv / @a yv has an angle to and returns * appropriate reaction velocity values in @a rxv and @a ryv. **/ void getDirtBounceReact(int32_t x, int32_t y, double xv, double yv, double &rxv, double &ryv) { int32_t from_x = xv < 0. ? 1 : -1; double vel = FABSDISTANCE2(xv, yv, 0., 0.); // First find the heights around x/y: int32_t y_map[5]; for (int i = 0 ; i < 5 ; ++i) { int32_t xpos = x + (i - 2); int32_t min_y = y - 2; int32_t max_y = y + 2; int32_t start_y = std::max(min_y, MENUHEIGHT); int32_t stop_y = std::min(max_y + 1, env.screenHeight); y_map[i] = -1; if ( (xpos > 0) && (xpos < env.screenWidth) && (min_y < env.screenHeight) && (max_y > MENUHEIGHT) && ( (stop_y - start_y) > 0) ) { y_map[i] = 5; for (int32_t j = 4; (j >= 0) && (5 == y_map[i]); --j) { int32_t ypos = y + (j - 2); if ( (ypos < start_y) || (ypos >= stop_y) || (PINK != getpixel(global.terrain, xpos, ypos)) ) y_map[i] = j; } } } // End of generating height map. /* atan2(x, y) will be used which results in the following angles: * Only right 1/ 0 : 90 (270) (The number in brackets is the normalized * Only left -1/ 0 : - 89 ( 91) angle used in atanks) * Only down 0/ 1 : 0 (180) * Only up 0/-1 : 180 (360) * Down right 1/ 1 : 45 (225) * Up right 1/-1 : 135 (315) * Down left -1/ 1 : - 44 (136) * Up left -1/-1 : -134 ( 46) * * The plane is calculated using the same x direction if present. * If the plane is a vertical wall, only the x-movement is reversed using * a plane angle of 0. * * HA = Hit Angle, PA = Plane Angle, RA = Reaction Angle * * 1: HA = PA - Movement angle * 2: RA = PA + (PA - HA) * 3: Values > 180 gets 360 substracted * 4: Value < -180 gets 360 added * * Examples: * 1: Shot from left to right and down (down right = 1/1 = 45°) * Plane is horizontal (only right = 1/0 = 90°) * HA = 90 - 45 = 45 * RA = 90 + (90 - 45) = 135 (Up right) * 2: Shot is the same, but the plane goes up right (1/-1 = 135°) * HA = 135 - 45 = 90 * RA = 135 + (135 - 45) = 225 => 225 - 360 = -135 (Up left) * 3: Shot from right to left and down (down left = -1/1 = -45) * Plane is horizontal (only left = -1/0 = -90°) * HA = -90 - -45 = -45 * RA = -90 + (-90 - -45) = -135 (Up left) * 4: Shot from the right bottom (up-left (-1/-1) = -135) * Plane is a vertical wall (only down = 0) * HA = 0 - -135 = 135 = RA * 5: Shot from right to left down (-1/1) = -40 * Plane up left (-1/-1) = -135 * HA = -135 - -40 = -95 * RA = -135 + (-135 - -95) = -175 */ // Find a plane with angle using the height map int32_t MA = GET_ANGLE(xv, yv); int32_t PA = 0, HA = 0, RA = 0; // Look for the special case of a vertical wall first: if ( (y_map[2] < 2) && (y_map[2 + from_x] > 3) ) if (MA) RA = 0 - MA; else // Just let it drip off RA = 5 * (y_map[3] ? 1 : -1); else { // Here a plane must be determined. double x1 = 2., y1 = y_map[2]; double x2 = 2., y2 = y_map[2]; double p1 = 1., p2 = 1.; // If y2 is 0, no further look is needed into movement direction if (y2 > 0.) { // Ah, it is. int32_t ly1 = y_map[2 + (-1 * from_x)]; int32_t ly2 = y_map[2 + (-2 * from_x)]; if (ly1 > -1) { x2 += 2. + (-1. * from_x); y2 += ly1; p2 += 1.; // Must ly2 be considered? if (ly2 > -1) { if ( ( (ly1 <= y_map[2]) && (ly2 <= ly1) ) || ( (ly1 >= y_map[2]) && (ly2 >= ly1) ) ) { x2 += 2. + (-2. * from_x); y2 += ly2; p2 += 1.; } } // End of having a non-wall ly2 // Set final x2/y2: x2 /= p2; y2 /= p2; } // End of having a non-wall ly1 } // end of having a non-vertical hit plane. // For the 'from'-direction the already set y2 can be used int32_t ly1 = y_map[2 + from_x]; int32_t ly2 = y_map[2 + (2 * from_x)]; if ( (ly1 > -1) && ( ( (ly1 >= y_map[2]) && (ly1 >= y2) ) || ( (ly1 <= y_map[2]) && (ly1 <= y2) ) ) ) { x1 += 2. + (1. * from_x); y1 += ly1; p1 += 1.; // Only continue if useful. if (ly2 > -1) { if ( ( (ly1 <= y_map[2]) && (ly2 <= ly1) ) || ( (ly1 >= y_map[2]) && (ly2 >= ly1) ) ) { x1 += 2. + (2. * from_x); y1 += ly2; p1 += 1.; } } // end of having a non-wall ly2 // Set final x1/y1: x1 /= p1; y1 /= p1; } // End of having a non-wall ly1 without contra-slope. // Set resulting angles: PA = GET_ANGLE(x2 - x1, y2 - y1); HA = PA - MA; RA = PA + (PA - HA); // Secure against vertical drop traps: if (!MA && !PA && !HA) // RA is now 0 but must be 180 RA = 180; if (RA > 180) RA -= 360; if (RA < -180) RA += 360; } // End of plane determination // The [R]eaction [A]angle now has to be translated into // atanks compatible velocity values: if (RA < 0) RA += 360; // atanks range rxv = env.slope[RA][0] * vel; ryv = env.slope[RA][1] * vel; } atanks-6.6/src/network.h0000644000175000017500000000454612636021030013421 0ustar apoapo#ifndef NETWORK_HEADER_FILE__ #define NETWORK_HEADER_FILE__ /* This file will contain two sets of headers and data. One for dealing with queued message and the other for handling server sockets. This queue will be in standard, platform-neutral C++. However, the sockets will use Linux/UNIX/BSD specific code, which will have to be updated to run on other operating systems. -- Jesse */ #ifndef TRUE #define TRUE 1 #endif #ifndef FALSE #define FALSE 0 #endif #define MAX_MESSAGE_LENGTH 256 struct MESSAGE { char *text; int to; // which client does the message go to? May not be used as most will go to everyone void *next; }; class MESSAGE_QUEUE { public: MESSAGE *first_message, *last_message; MESSAGE_QUEUE(); ~MESSAGE_QUEUE(); // add a message to the queue bool Add(char *some_text, int to); // pull the first message from the queue and erase it from the queue MESSAGE *Read(); // read the next message in the queue without erasing it MESSAGE *Peek(); MESSAGE *Read_To(int to); // erases the next message in the queue without reading it void Erase(); // erase all messages in the queue void Erase_All(); }; struct SEND_RECEIVE_TYPE { int listening_port; int shut_down; }; #define MAX_CLIENTS 10 #define DEFAULT_NETWORK_PORT 25645 #ifdef NETWORK /// Wrapper for safe socket writes with return value check. /// A char buffer named "buffer" must be available to put the message in. /// The two size_t values "towrite" and "written" must be at least declared. /// All three variables will be overwritten. #define SAFE_WRITE(sock_, fmt_, ...) { \ sprintf(buffer, fmt_, __VA_ARGS__); \ towrite = strlen(buffer); \ written = write(sock_, buffer, towrite); \ if (written < towrite) \ fprintf(stderr, "%s:%d: Warning: Only %d/%d bytes sent to server\n", \ __FILE__, __LINE__, written, towrite); \ } int Setup_Server_Socket(int port); int Setup_Client_Socket(char *server, char *port); int Accept_Incoming_Connection(int my_socket); int Send_Message(MESSAGE *mess, int to_socket); MESSAGE *Receive_Message(int from_socket); void Clean_Up_Server_Socket(int my_socket); void Clean_Up_Client_Socket(int my_socket); int Check_For_Incoming_Data(int socket_number); int Check_For_Errors(int socket_number); void *Send_And_Receive(void *data_we_need); #else #define SAFE_WRITE(sock_, fmt_, ...) { } #endif #endif atanks-6.6/src/externs.h0000644000175000017500000000430313006377360013423 0ustar apoapo#pragma once #ifndef ATANKS_SRC_EXTERNS_H_INCLUDED #define ATANKS_SRC_EXTERNS_H_INCLUDED /* * atanks - obliterate each other with oversize weapons * Copyright (C) 2003 Thomas Hudson * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "globaldata.h" #ifndef HAS_GLOBALDATA class GLOBALDATA; #endif // HAS_GLOBALDATA #include "environment.h" #ifndef HAS_ENVIRONMENT class ENVIRONMENT; #endif // HAS_ENVIRONMENT #define CLOCK_MAX 10 #ifndef ATANKS_SRC_ATANKS_CPP // === The two most important things in the game: ;) === extern GLOBALDATA global; extern ENVIRONMENT env; // === Defined colours used everywhere === extern int32_t BLACK, BLUE, DARK_GREEN, DARK_GREY, DARK_RED, GOLD, GREY, GREEN, LIGHT_GREEN, LIME_GREEN, ORANGE, PINK, PURPLE, RED, SILVER, TURQUOISE, WHITE, YELLOW; // === General values that are globally used === extern char buf[100]; extern const char* errorMessage; extern int32_t errorX, errorY; extern int32_t k, K; extern int32_t fi, lx, ly; extern int32_t game_version; extern WEAPON weapon[WEAPONS]; // from files.cpp extern WEAPON naturals[NATURALS]; // from files.cpp extern ITEM item[ITEMS]; // from files.cpp // === Gradients === extern gradient topbar_gradient[4]; extern gradient stuff_bar_gradient[11]; extern gradient circles_gradient[4]; extern gradient explosion_gradient1[3]; extern gradient explosion_gradient2[3]; extern gradient* explosion_gradients[2]; #endif // ATANKS_SRC_ATANKS_CPP #endif // ATANKS_SRC_EXTERNS_H_INCLUDED atanks-6.6/src/sky.cpp0000644000175000017500000003307113006377360013100 0ustar apoapo/* * atanks - obliterate each other with oversize weapons * Copyright (C) 2003 Thomas Hudson * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ sky.cc Code for generating sky backgrounds, including moons. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/ /* TODO + Improve documentation + Add clouds? */ #include "externs.h" #include "main.h" #include #include "environment.h" #include "sky.h" #include "files.h" #include "gfxData.h" #include "gameloop.h" /***************************************************************************** Static temp sky bitmap for faster sky creation *****************************************************************************/ static BITMAP* temp_sky = nullptr; /***************************************************************************** Static helper function prototypes *****************************************************************************/ static double central_rand (double u); static int32_t clamped_int (int32_t m, int32_t a, int32_t z); static double coverage (double distance, double radius); static void draw_moons (LevelCreator* lcr, int32_t width, int32_t height); /*============================================================================ struct moon A simple data structure to store the parameters of a moon for easy passing. ============================================================================*/ struct moon { BITMAP* bitmap; int32_t col1; int32_t col2; double lambda; int32_t octaves; int32_t radius; double smoothness; int32_t x; double xoffset; int32_t y; double yoffset; // Simple ctor: explicit moon(int32_t scrnw, int32_t scrnh) : col1 (makecol(rand() % 255, rand() % 255, rand() % 255)), col2 (makecol(rand() % 255, rand() % 255, rand() % 255)), lambda (((rand() % 60) + 30) / 100.), octaves ((rand() % 4) + 6), radius (static_cast(central_rand(scrnw / 8) + .5)), smoothness((rand() % 20) + 3), x (rand() % scrnw), xoffset (rand()), y (rand() % scrnh), yoffset (rand()) { bitmap = create_bitmap (radius * 2, radius * 2); } // Simple dtor to get rid of the temp bitmap ~moon() { if (bitmap) destroy_bitmap(bitmap); } }; /*############################################################################ ZBuffer Acts a a simple, 1bpp zbuffer. For each pixel location, the ZBuffer can remember if something is "popping up" at that location. ############################################################################*/ class ZBuffer { public: // No copies: ZBuffer() = delete; ZBuffer& operator=(const ZBuffer&) = delete; /************************************************************************* ctor Construct a ZBuffer object capable of storing "popup" values for a w by h grid. All cells in the ZBuffer start out lowered. *************************************************************************/ ZBuffer( int32_t w, int32_t h ) { int32_t width = w; while ( width ) { width >>= 1; ++shiftamt; } z.resize( (h << shiftamt) | w ); } /************************************************************************* test Returns true if the cell at location (x,y) is raised. Behaviour is undefined if x does not fall in the range [0,w) or if y does not fall in the range [0,h); w and h being the parameters to the ctor. *************************************************************************/ bool test( int32_t x, int32_t y ) const { try { return z.at((y << shiftamt) | x); } catch (...) { return false; } } /************************************************************************* set Causes a cell in the ZBuffer to become raised. Follows the same conditions on x and y as the test function does. *************************************************************************/ void set( int32_t x, int32_t y ) { try { z.at((y< z; int32_t shiftamt = 0; }; /***************************************************************************** Static function prototypes that need either moon or ZBuffer *****************************************************************************/ static void draw_amoon (LevelCreator* lcr, const moon &mn, int32_t x0, int32_t y0, int32_t x1, int32_t y1, bool darkside, ZBuffer &zbuffer); static void paint_moonpix(int32_t x, int32_t y, const moon &mn, double xval, double yval, double blend); /***************************************************************************** central_rand Return a random double in the range [0,u] where non-extreme values are preferred. Basic on a simple cubic function. *****************************************************************************/ static double central_rand(double u) { const double x = static_cast(rand()) / static_cast(RAND_MAX) - 0.5; // [-.5,+.5] return u * (0.5 - (x*x*x)*4.0) ; } /***************************************************************************** clamped_int Clamps an integer value, m, into a range specified by [a,z]. Returns the clamped value. *****************************************************************************/ static int32_t clamped_int(int32_t m, int32_t a, int32_t z) { return ( m < a ? a : ( m > z ? z : m ) ); } /***************************************************************************** coverage Compute the percent coverage of a pixel by a sphere given the pixel's distance from the centre and the sphere's radius. *****************************************************************************/ static double coverage(double distance, double radius) { if ( distance > radius ) return 1 - (distance - radius); return 1. ; } /***************************************************************************** draw_amoon Renders a single moon onto a bitmap. Assumes transparent drawing is enabled. Obeys the given bounding box, which may be smaller than the moon itself. Uses the darkside parameter to decide which side of the moon should be dark. Obeys and updates the z-buffer. The current implementation of this function is begging for some simplifications. And again, what about those [xy]offset variables? *****************************************************************************/ static void draw_amoon(LevelCreator* lcr, const moon& mn, int32_t x0, int32_t y0, int32_t x1, int32_t y1, bool darkside, ZBuffer& zbuffer) { int32_t startX = std::min(x0, x1); int32_t endX = std::max(x0, x1); int32_t startY = std::min(y0, y1); int32_t endY = std::max(y0, y1); clear_to_color(mn.bitmap, BLACK); blit(temp_sky, mn.bitmap, startX, startY, 0, 0, mn.radius * 2, mn.radius * 2); for (int32_t y = startY; (y < endY) && lcr->can_work(); ++y ) { bool hityet = false; for (int32_t x = startX; (x < endX) && lcr->can_work(); ++x ) { /* Occupied? */ if ( zbuffer.test(x,y) ) continue ; /* Find distance from this moon */ int32_t xdist = mn.x - x; int32_t ydist = mn.y - y; /* Compute some other nice circle values */ const double radius = mn.radius ; double xval = static_cast(xdist) / radius; double yval = static_cast(ydist) / radius; double distance2 = (xdist * xdist) + (ydist * ydist); double distance = std::sqrt(distance2); /* A bound check -> are we in the circle? */ if ( distance > (radius + 1) ) { if (hityet) // If we've already been inside at this y... break; // then skip ahead to the next y continue ; // Otherwise stay at this y, and skip to the next x } /* Edges use lighter blending */ const double edgeval = coverage(distance, radius); /* Now, should we paint this side of the moon? */ if (xval && ( (xval < 0) == darkside) ) { lcr->yield(); paint_moonpix(x - startX, y - startY, mn, fabs(xval), yval, edgeval); } /* Mark this pixel as occupied */ zbuffer.set(x,y); hityet = true ; } } // Put the moon on the sky bitmap: global.lockLand(); drawing_mode (DRAW_MODE_TRANS, NULL, 0, 0); blit (mn.bitmap, temp_sky, 0, 0, startX, startY, mn.radius * 2, mn.radius * 2); drawing_mode(global.current_drawing_mode, NULL, 0, 0); global.unlockLand(); } /***************************************************************************** paint_moonpix Paint a pixel onto the screen for a particular part of a moon. Parameters: * bmp, x, y The bitmap on which to paint. Paints onto the pixel at (x,y) * mn, xval, yval The moon to paint. The val's give the percentage along the moon. Percentages must fall within [0,1]. * blend Controls how much "paint" is used. Must be in the range [0,1]. Higher values cause stronger painting. Used for anti-aliasing. *****************************************************************************/ static void paint_moonpix(int32_t x, int32_t y, const moon &mn, double xval, double yval, double blend) { const double thetax = RAD2DEG(asin(xval)); const double thetay = RAD2DEG(acos(yval)); const double offset = (perlin2DPoint (1., mn.smoothness, mn.xoffset + mn.x + thetax, mn.yoffset + mn.y + thetay, mn.lambda, mn.octaves) + 1.) / 2.; const double percVal = (perlin2DPoint (1.0, mn.smoothness, mn.xoffset + mn.x * 1000 + thetax, mn.yoffset + mn.y * 1000 + thetay, mn.lambda, mn.octaves) + 1) / 2; set_add_blender (0, 0, 0, blend * xval * percVal * offset * 255); drawing_mode (DRAW_MODE_TRANS, NULL, 0, 0); putpixel (mn.bitmap, x, y, mn.col1); set_add_blender (0, 0, 0, blend * xval * (1. - percVal) * offset * 255); putpixel (mn.bitmap, x, y, mn.col2); drawing_mode (global.current_drawing_mode, NULL, 0, 0); } /***************************************************************************** draw_moons Renders a set of moons over a given bitmap. The bitmap to draw of and the appropriate dimensions must be given. *****************************************************************************/ static void draw_moons (LevelCreator* lcr, int32_t width, int32_t height) { const bool darkside = rand() > (RAND_MAX / 2 + 1); ZBuffer zbuffer( width, height ) ; for (int32_t numMoons = central_rand( 14.0 ); numMoons; --numMoons) { /* Make up a moon */ const moon mn(width, height); /* Where is it? */ int32_t x0 = clamped_int(mn.x - mn.radius, 0, width ); int32_t y0 = clamped_int(mn.y - mn.radius, 0, height); int32_t x1 = clamped_int(mn.x + mn.radius, 0, width ); int32_t y1 = clamped_int(mn.y + mn.radius, 0, height); /* Draw it */ draw_amoon(lcr, mn, x0, y0, x1, y1, darkside, zbuffer); } } /***************************************************************************** generate_sky Given some input parameters, renders a sky (with moons) onto a bitmap. *****************************************************************************/ void generate_sky(LevelCreator* lcr, const gradient* grad, int32_t flags ) { double messiness = (static_cast(rand () % 100) / 1000.0 + 0.05); const int xoffset = rand() % env.screenWidth; // For perlin, random starting x const int yoffset = rand() % env.screenHeight; // For perlin, random starting y temp_sky = create_bitmap( env.sky->w, env.sky->h ); clear_to_color(temp_sky, BLACK); clear_to_color(env.sky, BLACK); for (int32_t x = 0 ; (!lcr || lcr->can_work()) && (x < env.screenWidth) ; ++x) { for (int32_t y = 0 ; (!lcr || lcr->can_work()) && (y < (env.screenHeight - MENUHEIGHT)) ; ++y) { lcr->yield(); double offset = 0; if ( flags & GENSKY_DETAILED ) offset += perlin2DPoint(1., 200, xoffset + x, yoffset + y, .3, 6) * (static_cast(env.screenHeight - MENUHEIGHT) * messiness); if ( flags & GENSKY_DITHERGRAD ) offset += (rand () % 10) - 5; while ( ( (y + offset) < 0) || ( (y + offset + 1) > (env.screenHeight - MENUHEIGHT) ) ) offset /= 2; global.lockLand(); solid_mode(); putpixel (temp_sky, x, y, gradientColorPoint(grad, env.screenHeight - MENUHEIGHT, y + offset)); drawing_mode(global.current_drawing_mode, NULL, 0, 0); global.unlockLand(); } } draw_moons (lcr, env.screenWidth, env.screenHeight - MENUHEIGHT); // Put temp sky onto the real bitmap: global.lockLand(); solid_mode(); blit(temp_sky, env.sky, 0, 0, 0, 0, env.sky->w, env.sky->h); global.unlockLand(); // clean up if (temp_sky) destroy_bitmap(temp_sky); temp_sky = nullptr; } atanks-6.6/src/menu.cpp0000644000175000017500000010760112636021030013223 0ustar apoapo#include "optioncontent.h" #include "optionitemcolour.h" #include "main.h" #include "button.h" #include "menu.h" #include "player.h" #include "externs.h" #include "clock.h" #include #include void flush_inputs(); // From files.h void init_mouse_cursor(); // from atanks.cpp to change the mouse cursor static int32_t MOUSE_RELEASE_DELAY = 20; // Slows down constant mouse presses static int32_t MOUSE_DELAY_REDUCT = 5; // Every so many rounds the delay is reduced /* ------------------------------------------- * --- Public constructors and destructors --- * ------------------------------------------- */ Menu::Menu(eMenuClass class_, int32_t menuX, int32_t menuY) : menu_class(class_), menu_x(menuX), menu_y(menuY) { // Save here to detect language changes. menu_lang = env.language; assert ( (menu_class < MC_MENUCLASS_COUNT) && "ERROR: class_ must be smaller than MC_MENUCLASS_COUNT"); // Set title according to class and language: title = MenuTitleText[menu_class][menu_lang][0]; title_len = text_length(font, title); title_x = menu_x + text_length(font, "W") + 2; // Set background style bgType = env.dynamicMenuBg ? static_cast(rand() % BACKGROUND_COUNT) : BACKGROUND_BLANK; bgOffset = (RAND_MAX / 4) + (rand() % (RAND_MAX / 4)); bgItems = (rand() % 100) + 20; } Menu::~Menu() { // Remove all options while (entry_cnt > 0) { OptionItemBase* curr = tail; tail = curr->getPrev(); delete curr; // Removes it automatically --entry_cnt; } // Delete title if it was set manually if (title_set && title) free (const_cast(title)); } /* ---------------------- * --- Public methods --- * ---------------------- */ /** @brief add a button to the menu * * This button shows a bitmap with text on it and returns a key code when * clicked on. * * If no bitmaps are defined, a light button is drawn "by hand". * * Please note: The position @a left / @a top are relative to * the menu position. * * @param[in] title_idx index of the title text if it is listed in MenuTitleText. * @param[in] title_ Pointer to a fixed title to be used instead of an indexed one. * @param[in] key_code The key code to return if the button is clicked. * @param[in] bmp Bitmap to use for regular display. * @param[in] hover Bitmap to use when the mouse pointer hovers over the button. * @param[in] released Bitmap to use when the button was clicked on. * @param[in] text_only If set to true the button is only its title text. * @param[in] left Relative left position of the display area to the menu. * @param[in] top Relative top position of the display area to the menu. * @param[in] width Width of the display area. The real width might be larger. * @param[in] height Height of the display area. * @param[in] padding Distance between title, display and wheel buttons. * @return Number of options in the menu after adding the button. **/ int32_t Menu::addButton(int32_t title_idx, const char* title_, int key_code, BITMAP* bmp, BITMAP* hover, BITMAP* released, bool text_only, int left, int top, int width, int height, int padding) { OptionItemBase* curr = nullptr; BUTTON* btn = nullptr; bool title_valid = is_title_idx_valid(title_idx); // 1) Create the button try { if (bmp || hover || released) btn = new BUTTON(title_ ? title_ : title_valid ? MenuTitleText[menu_class][menu_lang][title_idx] : nullptr, text_only, menu_x + left, menu_y + top, bmp, hover, released); else btn = new BUTTON(title_ ? title_ : title_valid ? MenuTitleText[menu_class][menu_lang][title_idx] : nullptr, text_only, menu_x + left, menu_y + top, width, height); } catch (std::bad_alloc &e) { cerr << __FUNCTION__ << " : failed to allocate new BUTTON\n"; cerr << " [" << e.what() << "]" << endl; } // 2) Create the option try { curr = new OptionItem(key_code, nullptr, nullptr, title_ ? title_ : title_valid ? MenuTitleText[menu_class][menu_lang][title_idx] : "", title_idx, btn, left, top, width, height, padding); } catch (std::bad_alloc &e) { cerr << __FUNCTION__ << " : failed to allocate new ET_BUTTON option\n"; cerr << " [" << e.what() << "]" << endl; } // 3) Insert option: return this->insert_option(curr); } /** @brief This adds a color option to pick a color value * * Please note: The position @a left / @a top are relative to * the menu position. * * @param[in] target Pointer to the target to handle. * @param[in] title_idx Index of the title if it is listed in MenuTitleText. * @param[in] left Relative left position of the display area to the menu. * @param[in] top Relative top position of the display area to the menu. * @param[in] width Width of the display area. The real width might be larger. * @param[in] height Height of the display area. * @param[in] show_size Border length of the square displaying the currently picked color. * @param[in] padding Distance between title and display. **/ int32_t Menu::addColor(int32_t* target, int32_t title_idx, int32_t left, int32_t top, int32_t width, int32_t height, int32_t show_size, int32_t padding) { OptionItemBase* curr = nullptr; bool title_valid = is_title_idx_valid(title_idx); assert (title_valid && "ERROR: The given title index is invalid"); if (target && title_valid) { try { curr = new OptionItemColour( target, MenuTitleText[menu_class][menu_lang][title_idx], title_idx, menu_y + top, menu_x + left, width, height, padding, show_size); } catch (std::bad_alloc &e) { cerr << __FUNCTION__ << " : failed to allocate new ET_COLOR OptionItem\n"; cerr << " [" << e.what() << "]" << endl; } } return this->insert_option(curr); } /** @brief This adds a sub menu option with direct menu access * * Please note: The position @a left / @a top are relative to * the menu position. * * @param[in] menu Pointer to the menu to handle. * @param[in] title_idx Index of the title if it is listed in MenuTitleText. * @param[in] color Regular display color of the title. * @param[in] left Relative left position of the display area to the menu. * @param[in] top Relative top position of the display area to the menu. * @param[in] width Width of the display area. The real width might be larger. * @param[in] height Height of the display area. * @param[in] padding Distance between title and display. * @return Number of options in the menu after adding the button. **/ int32_t Menu::addMenu(Menu* menu, int32_t title_idx, int32_t color, int32_t left, int32_t top, int32_t width, int32_t height, int32_t padding) { OptionItemBase* curr = nullptr; bool title_valid = is_title_idx_valid(title_idx); assert (title_valid && "ERROR: The given title index is invalid"); if (menu && title_valid) { try { curr = new OptionItemMenu(menu, MenuTitleText[menu_class][menu_lang][title_idx], title_idx, color, menu_y + top, menu_x + left, width, height, padding); } catch (std::bad_alloc &e) { cerr << __FUNCTION__ << " : failed to allocate new ET_MENU OptionItem\n"; cerr << " [" << e.what() << "]" << endl; } } return this->insert_option(curr); } /** @brief This adds a sub menu option that handles a player (edit/create) * * Important: This _MUST_ have an action function that does the real work. This * method ads an OptionItemPlayer instance, which is only a bridge to the * action function. * * Please note: The position @a left / @a top are relative to * the menu position. * * @param[in,out] player_ Pointer to the PLAYER instance to handle. * @param[in,out] action_ Pointer to the action function handling the button click. * @param[in] title_idx Index of the title if it is listed in MenuTitleText. * @param[in] left Relative left position of the display area to the menu. * @param[in] top Relative top position of the display area to the menu. * @param[in] width Width of the display area. The real width might be larger. * @param[in] height Height of the display area. * @param[in] padding Distance between title and display. * @return Number of options in the menu after adding the button. **/ int32_t Menu::addMenu(PLAYER** player, int32_t (*action_)(PLAYER** player_, int32_t), int32_t title_idx, int32_t left, int32_t top, int32_t width, int32_t height, int32_t padding) { OptionItemBase* curr = nullptr; bool title_valid = is_title_idx_valid(title_idx); assert (action_ && "ERROR: No action function, no player menu."); if (player && action_) { try { curr = new OptionItemPlayer( player, action_, title_valid ? MenuTitleText[menu_class][menu_lang][title_idx] : nullptr, // The ctor uses the player name if nullptr. title_idx, menu_y + top, menu_x + left, width, height, padding); } catch (std::bad_alloc &e) { cerr << __FUNCTION__ << " : failed to allocate new ET_MENU OptionItem\n"; cerr << " [" << e.what() << "]" << endl; } } return this->insert_option(curr); } /** @brief This adds a text option with editable text * * Please note: The position @a left / @a top are relative to * the menu position. * * Please also note that a title is displayed to the left of the display * area. * * @param[in] target Pointer to the target to handle. * @param[in] title_idx Index of the title if it is listed in MenuTitleText. * @param[in] max_len Maximum number of characters to allow. * @param[in] color Regular display color of the title/target. * @param[in] format The format to represent the text, used by snprintf(). * @param[in] left Relative left position of the display area to the menu. * @param[in] top Relative top position of the display area to the menu. * @param[in] width Width of the display area. The real width might be larger. * @param[in] height Height of the display area. * @param[in] padding Distance between title and display. **/ int32_t Menu::addText(char* target, int32_t title_idx, uint32_t max_len, int32_t color, const char* format, int left, int top, int width, int height, int padding) { OptionItemBase* curr = nullptr; bool title_valid = is_title_idx_valid(title_idx); assert (title_valid && "ERROR: The given title index is invalid"); if (target && title_valid) { try { curr = new OptionItem( target, max_len, color, ET_TEXT, MenuTitleText[menu_class][menu_lang][title_idx], title_idx, format, menu_y + top, menu_x + left, width, height, padding); } catch (std::bad_alloc &e) { cerr << __FUNCTION__ << " : failed to allocate new TEXT OptionItem\n"; cerr << " [" << e.what() << "]" << endl; } } return this->insert_option(curr); } /** @brief This adds an TC_TOGGLE feeding a boolean using a variable title * * Please note: The position @a left / @a top are relative to * the menu position. * * @param[in] target Pointer to the target to handle. * @param[in] title_idx Index of the title if it is listed in MenuTitleText. * @param[in] color Regular display color of the title/target. * @param[in] left Relative left position of the display area to the menu. * @param[in] top Relative top position of the display area to the menu. * @param[in] width Width of the display area. The real width might be larger. * @param[in] height Height of the display area. * @param[in] padding Distance between title and display. **/ int32_t Menu::addToggle(bool* target, int32_t title_idx, int32_t color, int left, int top, int width, int height, int padding) { OptionItemBase* curr = nullptr; bool title_valid = is_title_idx_valid(title_idx); assert (title_valid && "ERROR: The given title index is invalid"); if (target && title_valid) { try { curr = new OptionItem( target, nullptr, ET_TOGGLE, MenuTitleText[menu_class][menu_lang][title_idx], title_idx, nullptr, color, TC_NONE, 0, 0, 0, nullptr, menu_y + top, menu_x + left, width, height, padding, nullptr); } catch (std::bad_alloc &e) { cerr << __FUNCTION__ << " : failed to allocate new TOGGLE OptionItem\n"; cerr << " [" << e.what() << "]" << endl; } } return this->insert_option(curr); } /** @brief This adds an TC_TOGGLE feeding a boolean using a fixed title * * Please note: The position @a left / @a top are relative to * the menu position. * * @param[in] target Pointer to the target to handle. * @param[in] title Fixed title to display. * @param[in] color Regular display color of the title/target. * @param[in] left Relative left position of the display area to the menu. * @param[in] top Relative top position of the display area to the menu. * @param[in] width Width of the display area. The real width might be larger. * @param[in] height Height of the display area. * @param[in] padding Distance between title and display. **/ int32_t Menu::addToggle(bool* target, const char* title_, int32_t color, int left, int top, int width, int height, int padding) { OptionItemBase* curr = nullptr; assert (title_ && "ERROR: title_ must be set but is nullptr"); if (target && title_) { try { curr = new OptionItem( target, nullptr, ET_TOGGLE, title_, -1, nullptr, color, TC_NONE, 0, 0, 0, nullptr, menu_y + top, menu_x + left, width, height, padding, nullptr); } catch (std::bad_alloc &e) { cerr << __FUNCTION__ << " : failed to allocate new TOGGLE OptionItem\n"; cerr << " [" << e.what() << "]" << endl; } } return this->insert_option(curr); } /** @brief This adds an TC_TOGGLE handling PLAYER::selected * * Please note: The position @a left / @a top are relative to * the menu position. * * @param[in] player Pointer pointer to the player to handle. * @param[in] left Relative left position of the display area to the menu. * @param[in] top Relative top position of the display area to the menu. * @param[in] width Width of the display area. The real width might be larger. * @param[in] height Height of the display area. * @param[in] padding Distance between title and display. **/ int32_t Menu::addToggle(PLAYER** player, int left, int top, int width, int height, int padding) { OptionItemBase* curr = nullptr; assert (player && *player && "ERROR: For a player toggle *player must be valid."); if (player && *player) { try { curr = new OptionItemPlayer(player, nullptr, nullptr, -1, menu_y + top, menu_x + left, width, height, padding); } catch (std::bad_alloc &e) { cerr << __FUNCTION__ << " : failed to allocate new ET_TOGGLE OptionItem\n"; cerr << " [" << e.what() << "]" << endl; } } return this->insert_option(curr); } /// @brief call clear_display(full_display) on all entries void Menu::clearAll(bool full_clear) { OptionItemBase* curr = root; while (curr) { curr->clear_display(full_clear); curr = curr->getNext(); } } /// @brief return number of menu elements int32_t Menu::count() { return entry_cnt; } /// @brief deletes entry with index @a index int32_t Menu::delete_entry(int32_t index) { if ( (index >= 0) && (index < entry_cnt) ) { OptionItemBase* curr = this->operator[](index); if (curr) { if (root == curr) root = curr->getNext(); if (tail == curr) tail = curr->getPrev(); delete curr; // This removes it from the list. --entry_cnt; } } return entry_cnt; } /// @brief call display(full_display) on all entries void Menu::displayAll(bool full_display) { OptionItemBase* curr = root; while (curr) { // If a text field (ET_TEXT) is selected, it must be forced // to redraw, so the cursor flipping can be in effect: if (curr->is_selected() && (ET_TEXT == curr->getType())) curr->cursor_flip(); curr->display(full_display); curr = curr->getNext(); } } /** @brief distribute a range of items over specified space * * This method distributes the items with the index @a first_idx to * @a last_idx over columns and rows according to the largest item * and available space. * * @param[in] first_idx The first index to distribute * @param[in] last_idx The last index to distribute * @param[in] list_width The total width to distribute over if needed * @param[in] list_height The total height to distribute over * @param[in] y_off Y-Offset where the list starts * @param[in] do_update whether to clear the old display or not. * **/ void Menu::distribute(int32_t first_idx, int32_t last_idx, int32_t list_width, int32_t list_height, int32_t y_off, bool do_update) { int32_t item_count = last_idx - first_idx + 1; int32_t item_height = 0; int32_t item_width = 0; // valid? assert( ( last_idx >= first_idx) && "ERROR: last_idx must not be smaller than first_idx!"); assert( ( last_idx < entry_cnt ) && "ERROR: last_idx is out of range"); if ( (last_idx < first_idx) || (last_idx >= entry_cnt) ) return; // 1: Determine minimum width and height: int32_t curr_w = 0, curr_h = 0; for (int32_t num = first_idx; num <= last_idx; ++num) { OptionItemBase* curr = this->operator[](num); if (curr) { curr->getDimension(curr_w, curr_h); if (curr_w > item_width) item_width = curr_w; if (curr_h > item_height) item_height = curr_h; } } // The width must be increased, as items might get selected: item_width += select_text_len; // Set base values int32_t rows = list_height / item_height; int32_t cols = (item_count / rows) + (item_count % rows ? 1 : 0); int32_t colOff = (list_width / 2) - (cols * (item_width / 2)); for (int32_t idx = first_idx; idx <= last_idx; ++idx) { OptionItemBase* curr = this->operator[](idx); if (curr) { int32_t num = idx - first_idx; int32_t cur_col = num / rows; int32_t x = colOff + (cur_col * item_width); int32_t y = item_height * (num % rows); curr->move(menu_x + x, menu_y + y_off + y, do_update); } } } /// @brief return pointer to the currently selected entry or nullptr if none is selected OptionItemBase* Menu::getSelected() { if ( (entry_sel > -1) && (entry_sel < entry_cnt)) return this->operator[](entry_sel); return nullptr; } /// @brief return a const pointer to the menu title const char* Menu::getTitle() const { return title; } /// @brief move an entry somewhere else void Menu::move_entry(int32_t from_idx, int32_t to_idx) { assert( (from_idx > -1) && (from_idx < entry_cnt) && "ERROR: from_idx is out of range!"); assert( (to_idx > -1) && (to_idx < entry_cnt) && "ERROR: to_idx is out of range!"); if (from_idx != to_idx) { OptionItemBase* toMove = operator[](from_idx); assert (toMove && "ERROR: Something is completely FUBAR here!"); if (to_idx > from_idx) // in this case the spot will move one down --to_idx; // Take it out: if (0 == from_idx) // It is root root = toMove->getNext(); if ((entry_cnt - 1) == from_idx) // Or tail tail = toMove->getPrev(); toMove->remove(); --entry_cnt; // And re-insert if (0 == to_idx) { toMove->insert_before(root); root = toMove; } else if (entry_cnt == to_idx) { toMove->insert_after(tail); tail = toMove; } else toMove->insert_before(this->operator[](to_idx)); ++entry_cnt; } // end of to_idx != from_idx } /// @brief do a redraw of one element void Menu::redraw(int32_t index, bool update_full) { if ( (index >= 0) && (index < entry_cnt) ) { OptionItemBase* curr = this->operator[](index); if (curr) { curr->clear_display(update_full); curr->display(update_full); } } } /// @brief do a full redraw of everything void Menu::redrawAll(bool full_redraw) { SHOW_MOUSE(nullptr) this->clearAll(full_redraw); // If this is a full redraw, the background and // menu title must be drawn as well. if (full_redraw) { if (++bgOffset == INT_MAX) bgOffset = 0; drawMenuBackground (bgType, bgOffset, bgItems); textout_ex (global.canvas, font, title, title_x + 2, menu_y + 12, BLACK, -1); textout_ex (global.canvas, font, title, title_x + 5, menu_y + 14, WHITE, -1); } this->displayAll(full_redraw); SHOW_MOUSE(global.canvas) if (full_redraw) quickChange(false); } void Menu::setLanguage(bool autorefresh) { if (env.language != menu_lang) { menu_lang = env.language; if (!title_set) title = MenuTitleText[menu_class][menu_lang][0]; OptionItemBase* curr = root; const char* const* titles = MenuTitleText[menu_class][menu_lang]; while (curr) { int32_t title_idx = curr->getTitleIdx(); // 1: Set new title (if not manually set) if (title_idx > -1) curr->setTitle(titles[title_idx]); // 2: Set new text array if based on a pre-set if (curr->needs_text()) { const char* const* texts = OptionClassText[curr->getTextClass()][menu_lang]; curr->setTexts(const_cast(texts)); } // 3: If this is a sub-menu, call an update dispatcher if (ET_MENU == curr->getType()) static_cast(curr)->setLanguage(); curr = curr->getNext(); } if (autorefresh) this->redrawAll(true); } } void Menu::setTitle(const char* new_title, bool autorefresh) { if (new_title) { // Delete old title if it was set already if (title_set && title) free(const_cast(title)); title = strdup(new_title); title_set = true; if (autorefresh) this->redrawAll(true); } } /* ------------------------ * --- Public operators --- * ------------------------ */ /** @brief Parentheses operator to use an instance like a function * * The operator hands over input control to the menu. It will return only * if an option is a button that returns a key code. So make sure to have * at least one button per menu that lets you get out ... or stay forever. ;) * * Note: As a safety measure the operator checks for the existence of * a returning button and asserts that existence. New menus should be checked * in debug mode at least once. * * @return The key code of a clicked exiting button. **/ int32_t Menu::operator()() { bool has_exit_button = false; OptionItemBase* curr = root; while (!has_exit_button && curr) { has_exit_button = curr->isExitButton(); curr = curr->getNext(); } assert(has_exit_button && "ERROR: A Menu without an exit button is unleavable!"); // Needed Loop values : int32_t key_code = -1; int32_t end_event = 0; int32_t allegro_key = 0; bool mlb_is_pressed = false; // Left mouse button is pressed, bool mlb_is_released = true; // and was released. bool mrb_is_pressed = false; // Right mouse button is pressed, bool mrb_is_released = true; // and was released. int32_t ms_per_frame = 1000 / env.frames_per_second; int32_t mlb_x = 0; int32_t mlb_y = 0; int32_t mouse_clock = MOUSE_RELEASE_DELAY; int32_t mouse_round = 0; int32_t mouse_reduct = 0; bool has_ctrl_down = false; eEntryType last_clicked = ET_NONE; flush_inputs(); WIN_CLOCK_INIT menu_ms_reset(); // Set background style bgType = env.dynamicMenuBg ? static_cast(rand() % BACKGROUND_COUNT) : BACKGROUND_BLANK; bgOffset = (RAND_MAX / 4) + (rand() % (RAND_MAX / 4)); bgItems = (rand() % 100) + 20; // Initial display: redrawAll(true); /* --------------------------------------- * --- Input handling and drawing loop --- * --------------------------------------- */ while (-1 == key_code) { int32_t ms_unused = ms_per_frame - menu_ms_get(); if (ms_unused > 0) MSLEEP(ms_unused) redrawAll(true); if (global.isCloseBtnPressed()) { key_code = KEY_ESC; // Exit loop end_event = key_code; // Exit menu continue; } /// -------------------------------------- /// --- A) Pre-handle key press events --- /// -------------------------------------- has_ctrl_down = (key[KEY_LCONTROL] || key[KEY_RCONTROL]); if ( keypressed() ) { allegro_key = readkey(); key_code = allegro_key >> 8; if (KEY_DOWN == key_code) { this->selectNext(); key_code = -1; } else if (KEY_UP == key_code) { this->selectPrev(); key_code = -1; } else if (KEY_ENTER_PAD == key_code) key_code = KEY_ENTER; } // End of having a pressed key /// -------------------------------------- /// --- B) Handle mouse button events --- /// -------------------------------------- mlb_x = mouse_x; mlb_y = mouse_y; // Set mouse button status anew mlb_is_pressed = mouse_b & 1 ? true : false; mrb_is_pressed = mouse_b & 2 ? true : false; // Fix release status on mouse button states: if (!mlb_is_pressed) mlb_is_released = true; if (!mrb_is_pressed) mrb_is_released = true; // reset mouse clock if both are released if (mlb_is_released && mrb_is_released) { mouse_clock = MOUSE_RELEASE_DELAY; mouse_round = 0; mouse_reduct = 0; } // Be sure only new left mouse button presses are recorded if (mlb_is_released && mlb_is_pressed) mlb_is_released = false; else if (mlb_is_pressed) { if ( (--mouse_clock > 0) || ( (ET_VALUE != last_clicked) && (ET_COLOR != last_clicked) ) ) mlb_is_pressed = false; } // The same applies to the right button if (mrb_is_released && mrb_is_pressed && !mlb_is_pressed) mrb_is_released = false; // Note: But the release is set to false anyway, so pressing // both buttons will not result in a right mouse button event // if held and the left button is released. else if (mrb_is_pressed) { if ( (--mouse_clock > 0) || ( (ET_VALUE != last_clicked) && (ET_COLOR != last_clicked) ) ) mrb_is_pressed = false; } // Handle the mouse delay: if (!mouse_clock) { if ( (ET_VALUE == last_clicked) || (ET_COLOR == last_clicked) ) { if (MOUSE_DELAY_REDUCT == ++mouse_round) { mouse_round = 0; if ( (ET_COLOR == last_clicked) || (++mouse_reduct >= MOUSE_RELEASE_DELAY) ) mouse_reduct = MOUSE_RELEASE_DELAY - 1; } } else mouse_reduct = 0; mouse_clock = MOUSE_RELEASE_DELAY - mouse_reduct; } // Determine whether a click hit something int32_t event = mlb_is_pressed || mrb_is_pressed ? selectClicked(mlb_x, mlb_y) : 0; /// -------------------------------- /// --- C) Handle current events --- /// -------------------------------- if ( event || (key_code > 0) ) { curr = getSelected(); if (curr) { eEntryType type = curr->getType(); bool old_mouse = env.osMouse; // To catch mouse changes // Note whether clicked on elements for the clock delay reduction if (event) last_clicked = type; else last_clicked = ET_NONE; // ET_VALUE needs handling for left/right keys: if (ET_VALUE == type) { if (KEY_RIGHT == key_code) event = 1; else if (KEY_LEFT == key_code) event = -1; // If the right mouse button or ctrl key was pressed, // multiply the event by 10 if (mrb_is_pressed || has_ctrl_down) event *= 10; } // Set key_code to activation result key_code = curr->activate(event, mlb_x, mlb_y, allegro_key); // If this was a sub menu, redraw the current menu: if (ET_MENU == type) redrawAll(true); // Some elements trigger end-events if ( (key_code > 0) // If this was a sub menu with KEY_ESC result, // it just means that the sub menu was closes: && ( (ET_MENU != type) || (KEY_ESC != key_code) ) ) { end_event = key_code; } else key_code = -1; allegro_key = 0; // If the mouse was changed, the change must be performed // at once. If we didn't do this here, switching back to // standard mouse makes it invisible until the menu exits. if (old_mouse != env.osMouse) init_mouse_cursor(); } // End of having a menu entry to handle } // End of having mouse button or key event // Update non-OS mouse movements SHOW_MOUSE(global.canvas) } // End of input/drawing loop WIN_CLOCK_REMOVE // As the menu does not clear error messages, a possible // message must be cleared now: if (errorMessage) errorMessage = nullptr; return end_event; } // End of Menu::operator()() /** @brief Get a stored option by index * * If @a index is out of range, nullptr is returned. * * @param[in] index The index of the wanted option, starting with 0. **/ OptionItemBase* Menu::operator[](int32_t index) { OptionItemBase* result = nullptr; if ((-1 < index) && (entry_cnt > index)) { int32_t cur_idx = 0; bool go_up = true; result = root; // Start front or end? if (index > (entry_cnt / 2)) { result = tail; cur_idx = entry_cnt - 1; go_up = false; } // Just wander, this should be safe. while (result && (cur_idx != index)) { if (go_up) { result = result->getNext(); ++cur_idx; } else { result = result->getPrev(); --cur_idx; } assert(result && "ERROR: Something is wrong with the list!"); } } // End of having a sane index return result; } /* ----------------------- * --- Private methods --- * ----------------------- */ /// @brief simple singly list insert int32_t Menu::insert_option(OptionItemBase* new_opt) { if (new_opt) { // Insert into list: if (tail) { new_opt->insert_after(tail); tail = new_opt; } else { root = new_opt; tail = new_opt; } ++entry_cnt; } return entry_cnt; } /// @brief simple singly list insert with title setting int32_t Menu::insert_option(OptionItemBase* new_opt, int32_t title_idx, const char* title_) { if (new_opt) { if (title_) new_opt->setTitle(title_); else if (is_title_idx_valid(title_idx)) new_opt->setTitle(MenuTitleText[menu_class][menu_lang][title_idx]); return insert_option(new_opt); } return entry_cnt; } /// @brief return true if @a title_idx is lower than the first 0x0 entry bool Menu::is_title_idx_valid(int32_t title_idx) { int32_t curr_idx = 0; const char* const* titles = MenuTitleText[menu_class][menu_lang]; while ( (curr_idx < title_idx) && titles[curr_idx] ) ++curr_idx; return ( (title_idx > -1) && (curr_idx == title_idx) && titles[curr_idx]); } /** @brief This method selects the entry under the mouse. * * If the mouse position, described by the @a x and @a y parameters, * is not over any entry, nothing happens and 0 is returned. * * If the activated entry is an ET_VALUE and one of the change buttons is hit, * the method returns -1 for down and +1 for up. * * If the activated entry is an ET_BUTTON with associated key code, the key * code is returned. * * In all other cases 0 is returned, as clicking must be activated manually. * * @param[in] x Mouse x coordinate. * @param[in] y Mouse y coordinate. * @return -1/+1 for ET_VALUE change buttons, associated key code for ET_BUTTON * and 0 in all other cases. **/ int32_t Menu::selectClicked(int32_t x, int32_t y) { OptionItemBase* curr = root; OptionItemBase* result = nullptr; int32_t retval = 0; int32_t curr_idx = -1; while (curr && !result) { ++curr_idx; if (curr->is_click_in(x, y, retval)) result = curr; else curr = curr->getNext(); } if (result && !result->is_selected()) { unselect(); entry_sel = curr_idx; result->select(); } return retval; } /** @brief unselect current selected entry (if any) and select the next. * If no entry is selected, the first one will be chosen. * If the last entry is selected, no entry will be chosen. **/ void Menu::selectNext() { OptionItemBase* curr = nullptr; if (entry_sel > -1) { curr = operator[](entry_sel); if (curr) curr->unselect(); } // If this was the last entry, none is to be selected if (++entry_sel >= entry_cnt) entry_sel = -1; else { if (curr) // The previous was unselected curr = curr->getNext(); else curr = operator[](entry_sel); // Be sure the container works properly! assert(curr && "ERROR: Something is wrong with the OptionEntry list!"); if (curr) curr->select(); } } /** @brief unselect current selected entry (if any) and select the previous. * If no entry is selected, the first one will be chosen. * If the last entry is selected, no entry will be chosen. **/ void Menu::selectPrev() { OptionItemBase* curr = nullptr; if (entry_sel > -1) { curr = operator[](entry_sel); if (curr) curr->unselect(); } // If this was the first entry, none is to be selected if (--entry_sel != -1) { // Rotate to the end if none was selected if (entry_sel < -1) entry_sel = entry_cnt - 1; if (curr) // The next was unselected curr = curr->getPrev(); else curr = operator[](entry_sel); // Be sure the container works properly! assert(curr && "ERROR: Something is wrong with the OptionEntry list!"); if (curr) curr->select(); } } /// @brief little helper to be able to add options from inside the header void Menu::setTexts(OptionItemBase* item, const char** texts, eTextClass text_class) { assert( item && (texts || (TC_FREETEXT != text_class)) && (TC_NONE != text_class) && "ERROR: This does not fit at all!"); if (item) { if ( (TC_FREETEXT == text_class) && texts) { item->setTextClass(text_class); item->setTexts(texts); } else if (TC_NONE != TC_FREETEXT) { item->setTextClass(text_class); item->setTexts(const_cast(OptionClassText[text_class][menu_lang])); } } } /** @brief unselect current selected entry (if any). * If no entry is selected, nothing happens. **/ void Menu::unselect() { OptionItemBase* curr = nullptr; if (entry_sel > -1) { curr = operator[](entry_sel); if (curr) curr->unselect(); entry_sel = -1; } } /// @brief display function for tank bitmaps plus tank type text bool display_tank_desc(int32_t* tanknum, int32_t x, int32_t y) { assert(tanknum && "ERROR: tanknum must be set"); assert(*tanknum > -1 && "ERROR: tanknum too low"); assert(*tanknum < TT_TANK_COUNT && "ERROR: tanknum too high"); if (!tanknum || (*tanknum < 0) || (*tanknum >= TT_TANK_COUNT)) return false; BITMAP* tank_bmp = env.tank[ *tanknum ? *tanknum + TO_TANK : *tanknum]; BITMAP* turr_bmp = env.tankgun[*tanknum ? *tanknum + TO_TURRET : *tanknum]; int32_t tank_off_x = ROUNDu(tank_bmp->w / 2); int32_t tank_off_y = tank_bmp->h; int32_t turr_off_x = ROUNDu(turr_bmp->w / 2); int32_t turr_off_y = ROUNDu(turr_bmp->h / 2) - 2; int32_t tank_x = x + tank_off_x + 1; int32_t tank_y = y + turr_off_y + 1; int32_t text_y = tank_y + (tank_off_y / 2) - (env.fontHeight / 2); int32_t text_x = tank_x + tank_off_x + 5; const char* tank_text = OptionClassText[TC_TANKTYPE][env.language][*tanknum]; draw_sprite (global.canvas, tank_bmp, tank_x - tank_off_x, tank_y); rotate_sprite (global.canvas, turr_bmp, tank_x - turr_off_x, tank_y - turr_off_y, itofix(224) ); textout_ex (global.canvas, font, tank_text, text_x, text_y, BLACK, -1); global.make_update(x, y, text_x + text_length(font, tank_text) - x, tank_y + turr_off_y + tank_off_y - y); return true; } atanks-6.6/src/optionscreens.cpp0000644000175000017500000011064013006377360015163 0ustar apoapo#include "optionscreens.h" #include "player.h" #include "files.h" #include "sound.h" // Helper functions to build the sub menus for the options screen static void build_Physics (Menu &mPhysics, int32_t menuMid, int32_t itemWidth, int32_t itemHeight, int32_t itemPadding, int32_t itemY); static void build_Weather (Menu &mWeather, int32_t menuMid, int32_t itemWidth, int32_t itemHeight, int32_t itemPadding, int32_t itemY); static void build_Graphics(Menu &mGraphics, int32_t menuMid, int32_t itemWidth, int32_t itemHeight, int32_t itemPadding, int32_t itemY); static void build_Money (Menu &mMoney, int32_t menuMid, int32_t itemWidth, int32_t itemHeight, int32_t itemPadding, int32_t itemY); static void build_Network (Menu &mNetwork, int32_t menuMid, int32_t itemWidth, int32_t itemHeight, int32_t itemPadding, int32_t itemY); static void build_Sound (Menu &mSound, int32_t menuMid, int32_t itemWidth, int32_t itemHeight, int32_t itemPadding, int32_t itemY); // Helper action function to do direct language changes #define LANG_SWITCH_TRIGGER 0x0BadCafe int32_t switch_language(eLanguages* lang, int32_t val); /** @brief draw the Menu Background * * Draws a 600x400 centred box, fills it with some random lines or circles. * Someday, we should make this more generic; have it take the box dimensions * as an input parameter. **/ void drawMenuBackground (eBackgroundTypes backType, int32_t tOffset, int32_t numItems) { rectfill (global.canvas, env.halfWidth - 300, env.menuBeginY, // 100, env.halfWidth + 300, env.menuEndY, // env.screenHeight - 100, makecol (0, 79, 0)); rect (global.canvas, env.halfWidth - 300, env.menuBeginY, // 100, env.halfWidth + 300, env.menuEndY, // env.screenHeight - 100, makecol (128, 255, 128)); if (BACKGROUND_BLANK == backType) return; drawing_mode (DRAW_MODE_TRANS, NULL, 0, 0); global.current_drawing_mode = DRAW_MODE_TRANS; set_trans_blender (0, 0, 0, 15); for (int32_t tCount = 0; tCount < numItems; tCount++) { int32_t radius = static_cast( (perlin1DPoint (1.0, 5, (tOffset * 0.0333) + tCount + 423346, 0.5, 8) + 1.1) * 20); // [0.1;2.1] int32_t xpos = env.halfWidth + static_cast(perlin1DPoint (1.0, 3, (tOffset * 0.0166) + tCount + 232662, 0.3, 3) * (299 - radius)); int32_t ypos = env.halfHeight + static_cast(perlin1DPoint (1.0, 2, (tOffset * 0.0175) + tCount + 42397, 0.3, 3) * (env.halfHeight - env.menuBeginY - radius - 1)); switch (backType) { case BACKGROUND_CIRCLE: circlefill (global.canvas, xpos, ypos, radius, LIME_GREEN); break; case BACKGROUND_LINE: rectfill (global.canvas, xpos - radius / 2, env.menuBeginY + 1, xpos + radius / 2, env.menuEndY - 1, LIME_GREEN); break; case BACKGROUND_SQUARE: rectfill (global.canvas, xpos - radius, ypos - radius, xpos + radius, ypos + radius, LIME_GREEN); break; case BACKGROUND_BLANK: default: break; } } solid_mode(); global.current_drawing_mode = DRAW_MODE_SOLID; } /// @brief Show a screen listing all players allowing to create new and edit existing ones. void editPlayers () { /// @todo : Currently the width is fixed on 600. This should be made /// more dynamic like the height. Although the height is fixed, too... /// However, there is much to do to get an adaptable and good looking menu... int32_t optionsRetVal = 0; int32_t menuMid = 300; int32_t itemHeight = env.fontHeight + 2; int32_t itemPadding = 2; int32_t itemY = (itemHeight + itemPadding) * 2; int32_t btnHeight = env.misc[7]->h + itemPadding; int32_t menuHeight = env.menuEndY - env.menuBeginY; // Raw height int32_t plListHeight = menuHeight - itemY // Top area reserved for the title - btnHeight - itemPadding - 2; // Bottom area reserved for buttons // "Select Players" Menu menu(MC_PLAYERS, env.halfWidth - menuMid, env.menuBeginY); // "Create New" PLAYER* player_new = nullptr; int32_t first_idx = menu.addMenu(&player_new, new_player, 1, menuMid - 53, itemY, 100, itemHeight, itemPadding); itemY += itemHeight + itemPadding; // Add one entry per player // One Menu per player: // Add one edit option per player int32_t last_idx = first_idx; int32_t max_width = 100; plListHeight -= itemY; // this is left. // First loop to determine maximum name width for (int32_t num = 0; num < env.numPermanentPlayers; num++) { int32_t xLen = text_length(font, env.allPlayers[num]->getName()); if (xLen > max_width) max_width = xLen; } // Now really add them for (int32_t num = 0; num < env.numPermanentPlayers; num++) last_idx = menu.addMenu(&env.allPlayers[num], edit_player, -1, 0, 0, max_width + 15, itemHeight, itemPadding); // last_idx is one too high now last_idx--; // Distribute the player list: menu.distribute(first_idx, last_idx, menuMid * 2, plListHeight, itemY, false); // Add "back" button menu.addButton( 2, nullptr, KEY_ESC, env.misc[7], nullptr, env.misc[8], false, menuMid - (env.misc[7]->w / 2), menuHeight - btnHeight - itemPadding - 2, 0, 0, 2); while ( (KEY_ESC != optionsRetVal) && !global.isCloseBtnPressed() ) { optionsRetVal = menu(); // Was an edit confirmed? if (PE_CONFIRM_EDIT & optionsRetVal) menu.redraw(optionsRetVal ^ PE_CONFIRM_EDIT, true); else if (PE_CONFIRM_DEL & optionsRetVal) { // delete the menu entry int32_t num = optionsRetVal ^ PE_CONFIRM_DEL; menu.delete_entry(num + first_idx); --last_idx; // The player has to be deleted, too: PLAYER* to_delete = env.allPlayers[num]; env.deletePermPlayer(to_delete); // redistribute the remaining: menu.distribute(first_idx, last_idx, menuMid * 2, plListHeight, itemY, true); optionsRetVal = 0; } else if (PE_CONFIRM_NEW & optionsRetVal) { if (player_new) { // Add a menu entry for the new player: menu.addMenu(&env.allPlayers[env.numPermanentPlayers - 1], edit_player, -1, 0, 0, max_width + 15, itemHeight, itemPadding); // Move the new menu entry up, the "back" button is in the way menu.move_entry(last_idx + 2, last_idx + 1); // And re-distribute menu.distribute(first_idx, ++last_idx, menuMid * 2, plListHeight, itemY, true); } optionsRetVal = 0; } } } /// @brief The main options menu void optionsMenu () { /// @todo : Currently the width is fixed on 600. This should be made /// more dynamic like the height. Although the height is fixed, too... /// However, there is much to do to get an adaptable and good looking menu... int32_t optionsRetCode = 0; int32_t menuMid = 300; int32_t itemWidth = 210; int32_t itemHeight = env.fontHeight + 2; int32_t itemPadding = 2; int32_t itemFullHeight = itemHeight + itemPadding; int32_t itemY = itemFullHeight * 3; int32_t btnHeight = env.misc[7]->h + itemPadding; int32_t menuHeight = env.menuEndY - env.menuBeginY; // Raw height int32_t menuLeft = env.halfWidth - menuMid; int32_t menuTop = env.menuBeginY; int32_t idx = 1; Menu mMain (MC_MAIN, menuLeft, menuTop); Menu mPhysics (MC_PHYSICS, menuLeft, menuTop); Menu mWeather (MC_WEATHER, menuLeft, menuTop); Menu mGraphics(MC_GRAPHICS, menuLeft, menuTop); Menu mMoney (MC_FINANCE, menuLeft, menuTop); Menu mNetwork (MC_NETWORK, menuLeft, menuTop); Menu mSound (MC_SOUND, menuLeft, menuTop); // As the sub menus must be attached to the main options menu, // they have to be build first, before the main menu can be built. build_Sound (mSound, menuMid, itemWidth, itemHeight, itemPadding, itemY); build_Network (mNetwork, menuMid, itemWidth, itemHeight, itemPadding, itemY); build_Money (mMoney, menuMid, itemWidth, itemHeight, itemPadding, itemY); build_Graphics(mGraphics, menuMid, itemWidth, itemHeight, itemPadding, itemY); build_Weather (mWeather, menuMid, itemWidth, itemHeight, itemPadding, itemY); build_Physics (mPhysics, menuMid, itemWidth, itemHeight, itemPadding, itemY); // Now the main options screen can be built: // "Reset All" Menu mReset(MC_RESET, menuLeft, menuTop); mReset.addButton( 1, nullptr, RO_RESET, env.misc[7], nullptr, env.misc[8], false, menuMid + 50, menuHeight- btnHeight - 6, 0, 0, itemPadding); mReset.addButton( 2, nullptr, RO_BACK, env.misc[7], nullptr, env.misc[8], false, menuMid - env.misc[7]->w - 50, menuHeight- btnHeight - 6, 0, 0, itemPadding); // "Reset options" mMain.addMenu ( &mReset, idx++, RED, menuMid - (env.misc[7]->w / 2), itemY, 150, itemFullHeight, itemPadding); itemY += btnHeight + itemPadding; // "Physics" mMain.addMenu(&mPhysics, idx++, WHITE, menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Weather" mMain.addMenu(&mWeather, idx++, WHITE, menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Graphics" mMain.addMenu(&mGraphics, idx++, WHITE, menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Money" mMain.addMenu(&mMoney, idx++, WHITE, menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Network" mMain.addMenu(&mNetwork, idx++, WHITE, menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Sound" mMain.addMenu(&mSound, idx++, WHITE, menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Weapon Tech Level" mMain.addValue(&env.weapontechLevel, idx++, WHITE, 0, 5, 1, "%d", menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Item Tech Level" mMain.addValue(&env.itemtechLevel, idx++, WHITE, 0, 5, 1, "%d", menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Landscape" mMain.addValue(&env.landType, idx++, nullptr, WHITE, TC_LANDTYPE, static_cast(LAND_NONE), menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Turn Order" mMain.addValue(&env.turntype, idx++, nullptr, WHITE, TC_TURNTYPE, static_cast(TURN_SIMUL), menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Skip AI-only play" mMain.addValue(&env.skipComputerPlay, idx++, nullptr, WHITE, TC_SKIPTYPE, static_cast(SKIP_HUMANS_DEAD), menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Show FPS" mMain.addValue(&env.showFPS, idx++, nullptr, WHITE, TC_OFFON, 1, menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Language" mMain.addValue(&env.language, switch_language, idx++, nullptr, WHITE, TC_LANGUAGE, static_cast(EL_ITALIAN), menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); // "Back" mMain.addButton(idx, nullptr, KEY_ESC, env.misc[7], nullptr, env.misc[8], false, menuMid - (env.misc[7]->w / 2), menuHeight - btnHeight - itemPadding - 2, 0, 0, 2); // Safe the current language, if a new one is selected, // the text files must be reloaded. eLanguages cur_lang = env.language; while (0 == optionsRetCode) { int32_t old_fps = env.frames_per_second; optionsRetCode = mMain(); if (RO_RESET == optionsRetCode) { env.Reset_Options(); optionsRetCode = 0; } else if (RO_BACK == optionsRetCode) optionsRetCode = 0; else if (LANG_SWITCH_TRIGGER == optionsRetCode) { mMain.setLanguage(true); optionsRetCode = 0; } // If no exit code is set, redraw the menu: if (0 == optionsRetCode) mMain.redrawAll(true); // Update pre-calculated values if FPS has been changed: if (old_fps != env.frames_per_second) env.set_fps(0); // 0 triggers re-calculation only } // End of menu loop // Did the language change? if (env.language != cur_lang) { env.load_text_files(); Load_Weapons_Text(); } } /// @brief Show a screen that shows the preparations to create a new game. int32_t selectPlayers () { /// @todo : Currently the width is fixed on 600. This should be made /// more dynamic like the height. Although the height is fixed, too... /// However, there is much to do to get an adaptable and good looking menu... int32_t optionsRetVal = 0; int32_t menuMid = 300; int32_t itemWidth = 120; int32_t itemHeight = env.fontHeight + 4; int32_t itemPadding = 2; int32_t itemFullHeight = itemHeight + itemPadding; int32_t itemY = itemFullHeight * 2; int32_t btnHeight = env.misc[7]->h + itemPadding; int32_t menuHeight = env.menuEndY - env.menuBeginY; // Raw height int32_t plListHeight = menuHeight - itemY // Top area reserved for the title - btnHeight - itemPadding - 2; // Bottom area reserved for buttons int32_t idx = 1; uint32_t number_saved_games = 0; dirent** saved_game_names; char** game_list = NULL; // Use new menu system: // "Select Players" Menu menu(MC_PLAY, env.halfWidth - menuMid, env.menuBeginY); // "Rounds" menu.addValue(&env.rounds, idx++, BLACK, 1, MAX_ROUNDS, 1, "%u", menuMid - (itemWidth / 2), itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight + 2; // "New Game Name" strncpy(env.game_name, "New Game", GAMENAMELEN); menu.addText(env.game_name, idx++, GAMENAMELEN, BLACK, "%s", menuMid - (itemWidth / 2), itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight + 2; // find saved games saved_game_names = Find_Saved_Games(number_saved_games); if ( ( saved_game_names ) && ( number_saved_games ) ) { // Extend the global list if it is too small if (env.saved_game_list_size <= number_saved_games) { // Note: The number of saved games in ENVRIONMENT must be // one entry larger, as the text array for the option menu // has to be terminated by a null pointer. game_list = (char**)realloc(env.saved_game_list, sizeof(char*) * (number_saved_games + 1)); if (game_list) { // The old names must be freed and the new initialized for (uint32_t i = 0; i <= number_saved_games ; ++i) { if ( ( i < env.saved_game_list_size ) && game_list[i] ) free(game_list[i]); game_list[i] = nullptr; } env.saved_game_list = const_cast(game_list); env.saved_game_list_size = number_saved_games + 1; } else { cerr << "ERROR extending saved game list from "; cerr << env.saved_game_list_size << " entries to "; cerr << number_saved_games << " entries." << endl; free (saved_game_names); return KEY_ESC; } } else game_list = const_cast(env.saved_game_list); // End of preparing space for the saved game list // Copy the found names (Without the extra entry of course) for (uint32_t i = 0; i < number_saved_games; ++i) { // If the name is already set, free it, it was strdup'd if ( game_list[i] ) free(game_list[i]); game_list[i] = strdup(saved_game_names[i]->d_name); // clear trailing extension if ( strchr(game_list[i], '.') ) strchr(game_list[i], '.')[0] = '\0'; } // set up menu for selecting saved games // "or Load Game" env.saved_gameindex = 0; menu.addValue(&env.saved_gameindex, idx++, env.saved_game_list, BLACK, TC_FREETEXT, number_saved_games - 1, menuMid - (itemWidth / 2), itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight + 4; // Next two options need more height // "Load Game" menu.addToggle(&env.loadGame, idx++, WHITE, menuMid - 125, itemY, 100, itemHeight + 5, itemPadding); // itemY stays, "Campaign" is on the same row. } // End of having saved games // If no saved games are there, idx must be advanced nevertheless or // the texts go mixed up: else idx += 2; // "Campaign" // Note: And save the result, it is the first player index int32_t first_idx = menu.addToggle(&env.campaign_mode, idx++, WHITE, menuMid + 25, itemY, 100, itemHeight + 5, itemPadding); itemY += itemFullHeight + 7; // ET_TOGGLE needs more height // Add one entry per player int32_t last_idx = first_idx; int32_t max_width = 100; plListHeight -= itemY; // this is left. // First loop to determine maximum name width for (int32_t num = 0; num < env.numPermanentPlayers; num++) { int32_t xLen = text_length(font, env.allPlayers[num]->getName()) + (2 * itemPadding); if (xLen > max_width) max_width = xLen; } // Now really add them for (int32_t num = 0; num < env.numPermanentPlayers; num++) last_idx = menu.addToggle(&env.allPlayers[num], 0, 0, max_width + 21, itemHeight, itemPadding); // last_idx is one too high now. last_idx--; // Distribute the player list: menu.distribute(first_idx, last_idx, menuMid * 2, plListHeight, itemY, false); // The "Okay" and "Back" buttons have their own texts to be translated menu.addButton( idx + 1, nullptr, KEY_ESC, env.misc[7], nullptr, env.misc[8], false, menuMid - env.misc[7]->w - 25, menuHeight - btnHeight - itemPadding - 2, 0, 0, 2); menu.addButton( idx, nullptr, KEY_ENTER, env.misc[7], nullptr, env.misc[8], false, menuMid + 25, menuHeight - btnHeight - itemPadding - 2, 0, 0, 2); // Let the menu take over user input until the game is either started, // or the user opts out to the main menu. // Idea for the future: // Start the menu as a thread and do some fancy stuff with the background // while we are waiting. do { optionsRetVal = menu(); if ( env.loadGame ) { if ( env.saved_game_list && ( env.saved_gameindex < env.saved_game_list_size ) && env.saved_game_list[env.saved_gameindex][0]) { strncpy(env.game_name, env.saved_game_list[env.saved_gameindex], GAMENAMELEN); } } if (optionsRetVal == KEY_ENTER) { if (env.loadGame) { // A set game shall be loaded if (Check_For_Saved_Game()) optionsRetVal = MRC_Load_Game; else { optionsRetVal = 0; errorMessage = env.ingame->Get_Line(39); errorX = env.halfWidth - text_length(font, errorMessage) / 2; errorY = env.menuBeginY + itemFullHeight; } } else { // Start a new game int32_t playerCount = 0; env.numGamePlayers = 0; // Add selected players to the game: for (int z = 0; z < env.numPermanentPlayers; z++) { if (env.allPlayers[z]->selected) { env.addGamePlayer(env.allPlayers[z]); playerCount++; } } // Check selected players if ((playerCount < 2) || (playerCount > MAXPLAYERS)) { if (playerCount < 2) errorMessage = env.ingame->Get_Line(8); else if (playerCount > MAXPLAYERS) errorMessage = env.ingame->Get_Line(9); errorX = env.halfWidth - text_length(font, errorMessage) / 2; errorY = env.menuBeginY + itemFullHeight; optionsRetVal = 0; } else optionsRetVal = MRC_Play_Game; } // End of loading versus starting anew } // End of KEY_ENTER result // zero means an error occured. // keep running the loop until ESC is pressed or a non-zero value appears } while ((KEY_ESC != optionsRetVal) && (MRC_Play_Game != optionsRetVal) && (MRC_Load_Game != optionsRetVal) && !global.isCloseBtnPressed() ); if ( (KEY_ESC == optionsRetVal) || global.isCloseBtnPressed() ) optionsRetVal = MRC_Esc_Menu; if (saved_game_names) { for (uint32_t i = 0; i < number_saved_games; ++i) { if ( saved_game_names[i] ) { #if defined(ATANKS_IS_WINDOWS) // Under windows d_name is strdup'd if ( saved_game_names[i]->d_name ) free(saved_game_names[i]->d_name); #endif // Windows free(saved_game_names[i]); } } free(saved_game_names); } return optionsRetVal; } // Helper functions to build the sub menus for the options screen static void build_Physics(Menu &mPhysics, int32_t menuMid, int32_t itemWidth, int32_t itemHeight, int32_t itemPadding, int32_t itemY) { int32_t itemFullHeight = itemHeight + itemPadding; int32_t btnHeight = env.misc[7]->h + itemPadding; int32_t menuHeight = env.menuEndY - env.menuBeginY; // Raw height int32_t idx = 1; assert( (0 == mPhysics.count()) && "ERROR: mPhysics already built?"); if (mPhysics.count()) return; // Don't build twice! // "Gravity" mPhysics.addValue(&env.gravity, idx++, WHITE, .025, .325, .025, "%5.3f", menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Viscosity", mPhysics.addValue(&env.viscosity, idx++, WHITE, .25, 2., .25, "%3.2f", menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Land Slide" mPhysics.addValue(&env.landSlideType, idx++, nullptr, WHITE, TC_LANDSLIDE, static_cast(SLIDE_CARTOON), menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Land Slide Delay", mPhysics.addValue(&env.landSlideDelay, idx++, WHITE, 1, 5, 1, "%d", menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Wall Type" mPhysics.addValue(&env.wallType, idx++, nullptr, WHITE, TC_WALLTYPE, static_cast(WALL_RANDOM), menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Boxed Mode", mPhysics.addValue(&env.boxedMode, idx++, nullptr, WHITE, TC_OFFONRANDOM, static_cast(BM_RANDOM), menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Boxed Ceiling Wrapping", mPhysics.addValue(&env.do_box_wrap, idx++, nullptr, WHITE, TC_OFFON, static_cast(BM_ON), menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Violent Death" mPhysics.addValue(&env.violent_death, idx++, nullptr, WHITE, TC_LIGHTNING, static_cast(VD_HEAVY), menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Timed Shots" mPhysics.addValue(&env.maxFireTime, idx++, WHITE, 0, 180, 5, "%d", menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Volley Delay" mPhysics.addValue(&env.volley_delay, idx++, WHITE, 5, 50, 1, "%d", menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Explosion Debris" mPhysics.addValue(&env.debris_level, idx++, nullptr, WHITE, TC_LIGHTNING, 3, menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); // "Back" Button mPhysics.addButton(idx, nullptr, KEY_ESC, env.misc[7], nullptr, env.misc[8], false, menuMid - (env.misc[7]->w / 2), menuHeight - btnHeight - itemPadding - 2, 0, 0, 2); } static void build_Weather(Menu &mWeather, int32_t menuMid, int32_t itemWidth, int32_t itemHeight, int32_t itemPadding, int32_t itemY) { int32_t itemFullHeight = itemHeight + itemPadding; int32_t btnHeight = env.misc[7]->h + itemPadding; int32_t menuHeight = env.menuEndY - env.menuBeginY; // Raw height int32_t idx = 1; assert( (0 == mWeather.count()) && "ERROR: mWeather already built?"); if (mWeather.count()) return; // Don't build twice! // "Meteor Showers" mWeather.addValue(&env.meteors, idx++, nullptr, WHITE, TC_METEOR, 3, menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Lightning" mWeather.addValue(&env.lightning, idx++, nullptr, WHITE, TC_LIGHTNING, 3, menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Falling Dirt" mWeather.addValue(&env.falling_dirt_balls, idx++, nullptr, WHITE, TC_METEOR, 3, menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Laser Satellite" mWeather.addValue(&env.satellite, idx++, nullptr, WHITE, TC_SATELLITE, static_cast(SL_SUPER), menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Fog" mWeather.addValue(&env.fog, idx++, nullptr, WHITE, TC_OFFON, 1, menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Max Wind Strength" mWeather.addValue(&env.windstrength, idx++, WHITE, 0, 100, 5, "%d", menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Wind Variation" mWeather.addValue(&env.windvariation, idx++, WHITE, 0, 100, 3, "%d", menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); // "Back" mWeather.addButton(idx, nullptr, KEY_ESC, env.misc[7], nullptr, env.misc[8], false, menuMid - (env.misc[7]->w / 2), menuHeight - btnHeight - itemPadding - 2, 0, 0, 2); } static void build_Graphics(Menu &mGraphics, int32_t menuMid, int32_t itemWidth, int32_t itemHeight, int32_t itemPadding, int32_t itemY) { int32_t itemFullHeight = itemHeight + itemPadding; int32_t btnHeight = env.misc[7]->h + itemPadding; int32_t menuHeight = env.menuEndY - env.menuBeginY; // Raw height int32_t idx = 1; assert( (0 == mGraphics.count()) && "ERROR: mGraphics already built?"); if (mGraphics.count()) return; // Don't build twice! // "Full Screen" mGraphics.addValue(&env.full_screen, idx++, nullptr, WHITE, TC_OFFON, 1, menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Dithering" mGraphics.addValue(&env.ditherGradients, idx++, nullptr, WHITE, TC_OFFON, 1, menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Detailed Land" mGraphics.addValue(&env.detailedLandscape, idx++, nullptr, WHITE, TC_OFFON, 1, menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Detailed Sky" mGraphics.addValue(&env.detailedSky, idx++, nullptr, WHITE, TC_OFFON, 1, menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Fading Text" mGraphics.addValue(&env.fadingText, idx++, nullptr, WHITE, TC_OFFON, 1, menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Shadowed Text" mGraphics.addValue(&env.shadowedText, idx++, nullptr, WHITE, TC_OFFON, 1, menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Swaying Text" mGraphics.addValue(&env.swayingText, idx++, nullptr, WHITE, TC_OFFON, 1, menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Colour Theme" mGraphics.addValue(&env.colourTheme, idx++, nullptr, WHITE, TC_COLOUR, static_cast(CT_CRISPY), menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Screen Width" mGraphics.addValue(&env.temp_screenWidth, idx++, WHITE, 800, 2000, 100, "%d", menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Screen Height" mGraphics.addValue(&env.temp_screenHeight, idx++, WHITE, 600, 1400, 100, "%d", menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Mouse Pointer" mGraphics.addValue(&env.osMouse, idx++, nullptr, WHITE, TC_MOUSE, 1, menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Game Speed" mGraphics.addValue(&env.frames_per_second, idx++, WHITE, 30, 1000, 5, "%d", menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Custom Background" mGraphics.addValue(&env.custom_background, idx++, nullptr, WHITE, TC_OFFON, 1, menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Show AI Feedback" mGraphics.addValue(&env.showAIFeedback, idx++, nullptr, WHITE, TC_OFFON, 1, menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Dynamic Menu Background" mGraphics.addValue(&env.dynamicMenuBg, idx++, nullptr, WHITE, TC_OFFON, 1, menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); // "Back" mGraphics.addButton(idx, nullptr, KEY_ESC, env.misc[7], nullptr, env.misc[8], false, menuMid - (env.misc[7]->w / 2), menuHeight - btnHeight - itemPadding - 2, 0, 0, 2); } static void build_Money(Menu &mMoney, int32_t menuMid, int32_t itemWidth, int32_t itemHeight, int32_t itemPadding, int32_t itemY) { int32_t itemFullHeight = itemHeight + itemPadding; int32_t btnHeight = env.misc[7]->h + itemPadding; int32_t menuHeight = env.menuEndY - env.menuBeginY; // Raw height int32_t idx = 1; assert( (0 == mMoney.count()) && "ERROR: mMoney already built?"); if (mMoney.count()) return; // Don't build twice! // "Starting Money" mMoney.addValue(&env.startmoney, idx++, WHITE, 0, 200000, 5000, "%d", menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Interest Rate" mMoney.addValue(&env.interest, idx++, WHITE, 1., 1.5, .05, "%3.2f", menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Round Win Bonus" mMoney.addValue(&env.scoreRoundWinBonus, idx++, WHITE, 0, 50000, 5000, "%d", menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Damage Bounty" mMoney.addValue(&env.scoreHitUnit, idx++, WHITE, 0, 500, 25, "%d", menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Self-Damage Penalty" mMoney.addValue(&env.scoreSelfHit, idx++, WHITE, 0, 5000, 25, "%d", menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Team-Damage Penalty" mMoney.addValue(&env.scoreTeamHit, idx++, WHITE, 0, 5000, 10, "%d", menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Tank Destruction Bonus" mMoney.addValue(&env.scoreUnitDestroyBonus, idx++, WHITE, 0, 20000, 2500, "%d", menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Tank Self-Destruction Penalty" mMoney.addValue(&env.scoreUnitSelfDestroy, idx++, WHITE, 0, 20000, 2500, "%d", menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Item Sell Multiplier" mMoney.addValue(&env.sellpercent, idx++, WHITE, 0., 1., .1, "%2.2f", menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Teams Share" mMoney.addValue(&env.divide_money, idx++, nullptr, WHITE, TC_OFFON, 1, menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); // "Back" mMoney.addButton(idx, nullptr, KEY_ESC, env.misc[7], nullptr, env.misc[8], false, menuMid - (env.misc[7]->w / 2), menuHeight - btnHeight - itemPadding - 2, 0, 0, 2); } static void build_Network(Menu &mNetwork, int32_t menuMid, int32_t itemWidth, int32_t itemHeight, int32_t itemPadding, int32_t itemY) { int32_t itemFullHeight = itemHeight + itemPadding; int32_t btnHeight = env.misc[7]->h + itemPadding; int32_t menuHeight = env.menuEndY - env.menuBeginY; // Raw height int32_t idx = 1; assert( (0 == mNetwork.count()) && "ERROR: mNetwork already built?"); if (mNetwork.count()) return; // Don't build twice! // "Check Updates" mNetwork.addValue(&env.check_for_updates, idx++, nullptr, WHITE, TC_OFFON, 1, menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Networking" mNetwork.addValue(&env.network_enabled, idx++, nullptr, WHITE, TC_OFFON, 1, menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Listen Port" mNetwork.addValue(&env.network_port, idx++, WHITE, 10645, 64645, 1000, "%d", menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Server Address" mNetwork.addText(env.server_name, idx++, 127, WHITE, "%s", menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Server Port" mNetwork.addText(env.server_port, idx++, 127, WHITE, "%s", menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); // "Back" mNetwork.addButton(idx, nullptr, KEY_ESC, env.misc[7], nullptr, env.misc[8], false, menuMid - (env.misc[7]->w / 2), menuHeight - btnHeight - itemPadding - 2, 0, 0, 2); } static void build_Sound(Menu &mSound, int32_t menuMid, int32_t itemWidth, int32_t itemHeight, int32_t itemPadding, int32_t itemY) { int32_t itemFullHeight = itemHeight + itemPadding; int32_t btnHeight = env.misc[7]->h + itemPadding; int32_t menuHeight = env.menuEndY - env.menuBeginY; // Raw height int32_t idx = 1; assert( (0 == mSound.count()) && "ERROR: mSound already built?"); if (mSound.count()) return; // Don't build twice! // "All Sound" mSound.addValue(&env.sound_enabled, idx++, nullptr, WHITE, TC_OFFON, 1, menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Sound Driver" mSound.addValue(&env.sound_driver, idx++, nullptr, WHITE, TC_SOUNDDRIVER, static_cast(SD_JACK), menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Music" mSound.addValue(&env.play_music, idx++, nullptr, WHITE, TC_OFFON, 1, menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); itemY += itemFullHeight; // "Volume Faktor" mSound.addValue(&env.volume_factor, idx++, WHITE, 0, MAX_VOLUME_FACTOR, 1, "%d", menuMid - 50, itemY, itemWidth, itemHeight, itemPadding); // "Back" mSound.addButton(idx, nullptr, KEY_ESC, env.misc[7], nullptr, env.misc[8], false, menuMid - (env.misc[7]->w / 2), menuHeight - btnHeight - itemPadding - 2, 0, 0, 2); } /// @brief Switch language helper function /// Note: The real use of this function is, that it generates a return /// code, so optionsMenu() can react on the language change. ;-) int32_t switch_language(eLanguages* lang, int32_t val) { eLanguages old_lang = *lang; if (val > 0) ++(*lang); else if (val < 0) --(*lang); if (*lang != old_lang) return LANG_SWITCH_TRIGGER; return 0; } atanks-6.6/src/teleport.h0000644000175000017500000000370012636021030013555 0ustar apoapo#ifndef TELEPORT_DEFINE #define TELEPORT_DEFINE /* * atanks - obliterate each other with oversize weapons * Copyright (C) 2003 Thomas Hudson * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "globaltypes.h" #include "virtobj.h" class TELEPORT: public VIRTUAL_OBJECT { public: /* ----------------------------------- * --- Constructors and destructor --- * ----------------------------------- */ // Source constructor TELEPORT (VIRTUAL_OBJECT *targetObj, int32_t destinationX, int32_t destinationY, int32_t objRadius, int32_t duration, int32_t type); virtual ~TELEPORT (); /* ---------------------- * --- Public methods --- * ---------------------- */ void applyPhysics (); void draw (); eClasses getClass() { return CLASS_TELEPORT; } private: /* ----------------------------------- * --- Constructors and destructor --- * ----------------------------------- */ // Target constructor TELEPORT (TELEPORT *remoteEnd, int32_t destX, int32_t destY); /* ----------------------- * --- Private members --- * ----------------------- */ int32_t clock = 0; VIRTUAL_OBJECT* object = nullptr; int32_t radius = 0; TELEPORT* remote = nullptr; int32_t startClock = 0; }; #endif atanks-6.6/COPYING0000644000175000017500000004304012636021030012013 0ustar apoapo GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. Free Software Foundation 51 Franklin Street, Fifth Floor Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License (version 2) as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. atanks-6.6/missile/0000755000175000017500000000000012636021030012424 5ustar apoapoatanks-6.6/missile/10.bmp0000644000175000017500000000060612636021030013346 0ustar apoapoBM6( P  e6vGhe6(eZzcXK@*TmsRkIa(?&+Kz2A 9Pc+O:) h/Ez=2p88A{(w?LQi12POF HHHHatanks-6.6/missile/22.bmp0000644000175000017500000000643212636021030013354 0ustar apoapoBM 6(!!   lrd_v[t\t\t`qrihwlnf\t[t[t[t[t[t^odv`yd~onj`zYoYr[t[t[t[tTlko\sYqYpYnYr_uhgd|]vUkQhQhSiVlUkTikqbwaxay^wZqYp\t]uYoVlSj\sd}hfe[sRiQhQhQhNblpqnec}az`y`y`y\tYp]t_xZrUlRiNaPdXobyigfZqQhQhQhL^\pm|jfaz[rXo[s_x[sYq_w_xXoSiMaFXwHYyI^Ob]s^xd{c~UkQhQhL`Yqtjjf_y_x^vXnRfUjXp_vhj^vRgL`GYxDVtDUtL`YkUkZqay_wUmRiQhXnki`z_x_x]uTjPdUk[s\uepoZoQfJ^}FXuDVtMbWmUkQgVkZr\q]s_w[njf_x_x_xYqUlUjUj]ufpx|hYqQfJ]}HYyJ^}TkYqL`K_OeRhYo[rmia{_x_x]vZqYpXnYpdtvx΀uf]xPeL`NbUj`wYlN`QgWmUi[klf_x_x_xZr^v^v\t_wn}xpvue}`xXpQgNbL`QhUkTiTkWlTjpuc}_x\uVlRgYp\u[n^umxic}he_zXoSiOdNcOdOfTiSiVl^m `z\uVmOdTi[t]v\t^xetqfYsXm[s]uWmNcK^OeVmZrXoUjVlVlvhayYpTjLaVk]u]v^xe}e~nhVmShTjVm[sXmEWuCTsDUsH\yLcRiYpXoWn_sav_wXoXnSi_vd`z]v^w`xd}b}QeK_ObShTmRiHZ{DUtDUtEWwK_NdRfNbSi\sdqUkVkUiThPb[tfe`z]v]v^v_wOeDWtEWvI^~L`ObJ]I\~J\~J]K_RiQhMcRhUl[mYoPdPeWnTiL_Uidfd]v]v]vb{WoH\zASoBTq@QpK^J]J]J]J]J]SiSiQhRfThTkvhSiMbQfUlVmQdOc^wge]v]v]v_yc~YmH[y>Nj;IdDVsEYxJ]J]J]K_SiSiRiPeSiXq^kTjMaSiUkUlVlRgWpjf]v]v]v]vc~b~VkJ\}DGIOW=@CFPUVc[B>@BEGSUUVai79;=?ACDFQTUUVqE579;<>@BDEOSTU\h}}.13579;<>@BCDIQTTTUl*o*t+y-/24689:<>?ABCDFPSTUW^|n2i'm)r*w,~/134679:<=?ABCCDNSTTWb`$c%g&k(p*v+|.0245789:<=?@AABCISTSY`Nl#$ua$e%h)**CQwz-.169?@ArGTUVzfI%+Zi^#c%3;y))p.x,}./;@338678e::f=>?@DFJODITWWgPf "a]"a#&'/3p*u+z,|101O`46679:>@ʝ:;<>MU?@aBDQTTYZTR!a?T0\"19k$$`2m(r*w+=F/01345M[66ȋH89;g==g~?@BoDDq`bhKhKgLe:""2:me%j'o)`J,,>G/12645DM679>>?ADե=>>m@APXּEsLLJfJg!"s$%{^#b$f&j'**,-v/|./07;234567JT::ӊW;<@>??Aݦ==HJLOJf$(XfKc9\~"^#`&+-((h7t+x,{-Rhs//Zsq235G78Wi89:BG99ԊX:N@@}[\100X==KZ`.]w&SsCX;$$LcMj(o)s*w,1447/013Vi8:455666jwDNowTUUKg<>xHW9N4G0<7tN?=Aƿkt_HBLWdq0Rk";P/?5F2@;iK@>BEIeatanks-6.6/missile/18.bmp0000644000175000017500000000357212636021030013363 0ustar apoapoBMz6(D  7CHJKL?BGIJJn7:=@DFHIJu/47:=@CFGIIJl+p*z-158:=@BDFGIKWc%g&n)w,0368:=@BCDGIJ_nU#|5#d%P(4+~.2D5X78;u=?@ڎBDH_JKI}("{+!ht$,'D+{-09367C9K;>_?I@BFRIK܅Jz*!al!)"+%p)w+6.=25|6>78:E=j>@QCTFG`EZ{!pB!}&"pa$j'<*3-/2=3A57^9D;=>G?ϝAՌAI@Zx!y%!u6"^#1%-(h+{-I/6035?7]9:F556F778V97OlQpVw ^#e&k(o)s+x,{.y-y,{-~.MjQoYz!a$h&m(q*t+v,s+s*z5Uu`#i'q*z-~./0~/6`$g&p*0100/`$g's+65222m~4i'z->;65Wo)0>B87i'd&?C88d%\y"?C9;RrI^?D;@^r*QpJb=D=D\\~"KhF`Nd?D=CGkatanks-6.6/missile/26.bmp0000644000175000017500000001136612636021030013362 0ustar apoapoBM6(((  ϬsشYX<Yl旗mΊr0/// hgE54"SR7qqQcbA~bVV=sӨrrK77%ؖo//((nlGΉ{UT8<<(dyx]uba@XW9}wvRED-__?KK2qqKΊhJI1:9&ywN_vʍJI2&&ZY>gs{\\=::&VT9~llNߖƫkjGWV8ppKvvWZZ=KK3ړfXW;poIqkbbBAA,SS8||ihgDba@~~TƄы_^>11 :9'[DC.xxNj̋jjFDC,EE,ssaBB@<;'lbݯwwNcbAZ}}TZZ;BB,=<(z``AggBȆwUT9==(0/ ]]?RQ6UT9TS7ؔ~RFF.21!~UeeO66%llFaa@_WV776$rqLY77%$$̬qedBącbAJI0g[TS7.-::'\\>cˇ޶xgfCYY;XX:A@+YY;qpKgfErăҪp\\n9f9eo:f8cy3Zg+LK6I8J 7?.=,Bt?p?p;i~5]o/Q['DK8K8@0:+9d8c8by3Zj,NV$?J 8F4:+8b7bv2Xe*KO!:H5F4:g{4Z]'EO!:N!9atanks-6.6/missile/4.bmp0000644000175000017500000000443612636021030013276 0ustar apoapoBM 6(&  WTQXo^HHHH>-˽D%xxGHF 8~:98qp@*)}yEGH@ /HHJmضHHG!ii??HHH{H"hhHvȢM:"ut1FxM:"ut1Fxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyynnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnqqqgggggggggggggggggggggggggggggggggggggggggg]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH=================================333333333uuu333333333333888((((((qqu(((((((((BBBhhhffp$$$ḸZZk@@@׻ظLLL䞞PPf՞磣ТQQT煅ggWWXQQQ||~ҫ΅{{kkkk;%kk~~RppYYYYA']][[>>>>y*SP#DD$$$$~.LN-- GJH\x1zw%(' w%(')1!atanks-6.6/missile/9.bmp0000644000175000017500000000376212636021030013304 0ustar apoapoBM6(!  tq,!A!4S0vGhe6(eZzcXK@*TmsRkIa(?&+Kz2A 9Pc+O:) h/Ez=2p88A{(w?LQi12POF HXKBZs25h.&h*h}%O975W#_wCJ;ufeVUii}^r66~2F~E~PI}fE1z:@vkL$5} o  ",,egFF batanks-6.6/missile/16.bmp0000644000175000017500000000412612636021030013355 0ustar apoapoBMV6((   쭬|||͓xxx뷷ծfff~~~ggg=P?SR9K5F.={)6l'3g'3g?T?T>Q9K5F.={)6l'3g'3g?T?T=P9K5F.={)7n'3g'3g?T?T=P9K5F.={)7n'3g'3g?T?T=P9K4E.={)6l'4h'3g?T?T=P9K4E.={)6l'4h'3g?T?T=P9K4E.={)6l'4h'3g?T?T>Q9K4E.Yu6}(ucDi"+7@-|@38 %"wB0B-4!WC 6>&%A*,<)K7-Gatanks-6.6/missile/30.bmp0000644000175000017500000000443612636021030013355 0ustar apoapoBM 6(&  nnnooosssRRR___cccUUU&&&RRRUUU&&&RRRUUU&&&RRRUUU D&&&RRRUUU &&&RRRUUU 888&&&RRRUUU888lll&&&RRRUUUlll&&&RRRUUUg&&&RRRUUU%&&&RRRUUU1&&&RRRUUU&&&RRR___cccUUURRR___ooossscccUUU[[[___ooosssccc[[[oooooosssooo*@@@&&&RRR___kkkdddcccUUU---666ZBBBFFFXXXgggwwwkkkPPP666!!! ZBBBFFFXXXgggwwwkkkPPP666!!! ~~~z!!!PPP]]]mmm~rrrbbbSSS(((0c~~~~LLLL$XPPP]]]mmmLrrrbbbSSS(((LLLLLPPP]]]mmmrrrbbbSSShfCV.G< S:6(6O00E N bowF;<:h@,I#@P$3L 1HPIE.wH?O)8lb.me/UoCY-Natanks-6.6/missile/7.bmp0000644000175000017500000000613212636021030013274 0ustar apoapoBMZ 6(%$   $$^ Xll VV`WWWXXXvvvJCBlll?.%ggg!kecc#CCC4[[[e^[ֹR 9XVV???-]]]lT}_SSgee/ ?nt ```tTx^T  @9cc#TlɃ\B??!}000Sӎ444H湹7WWg***㛛0tg***藗 t9WWWbbb000㟟xxxtttFFFttthhhݒ|||cccYYY888ڀxxxooo888充}}}vvv{{{666敕dddWWWyyy???吐||| KKKSSSqqq蛛FFFuuuRRR"""FFF娨ttt󨨨SSS###***ᤤ{{{III򣣣zzzgg bbb111 mmm???mmm|rrrHnIWWW000LLL&&&pZZZQMgfy]j8ggg222@@@{f<<<*Ux)TBjOAAA???Ԯqqq }lPPPQy&TUTCdLDDDЗNNNѫuuuAAAx~^^^)Pt*TTTDc_;:ͲP *TTTA+++7TTT=CCCϧ Z4TTV vRA $&0/&2L9KGPHPatanks-6.6/missile/28.bmp0000644000175000017500000001136612636021030013364 0ustar apoapoBM6(((  i) nlG yx]W=)A+ywNgzaFdC|6% <)||iD1DC.O5#l$RQ666%$$\\>gfE55$w2!!  @?*?pCvDw>n9f9eo:f8cy3Zg+LK6I8J 7?.=,Bt?p?p;i~5]o/Q['DK8K8@0:+9d8c8by3Zj,NV$?J 8F4:+8b7bv2Xe*KO!:H5F4:g{4Z]'EO!:N!9atanks-6.6/missile/6.bmp0000644000175000017500000000467212636021030013302 0ustar apoapoBM 6(   nss`caͱ?GG "%zIQPqut.66Yac{?FI (-_hif^p(53%""++4>=ً#,.tx{޼qtv-98 "!Ե+.0ȭOWS ^fe;@AJSLouvjpp(5-(64LES*03'32]ccDNL8FBglq~}!-,#.-;EE$#:DDóᜠ;>?1?>CLJ  7@<36:мx|z(%̲6=@ȴ(1, ū?EHԼvwwWYX286(% X__ǡ殲;?C,)0   +( $))䨯Ӝ!(+  7?=DGHHKKsutwsy^^eatanks-6.6/missile/15.bmp0000644000175000017500000000352612636021030013357 0ustar apoapoBMV6(&   ѷ޽{{{eee~~~ggg}gjjj}g}g}h}h[|g[{eXxeZvd[ve[ve^vd[xe[{latnnbbtt[[TTooWWMMQQxxjj]]QQNN||vvllddWWQQTT}}}}yyoohh``ZZ[[55557>8878555555556887;5555557>6555555555555555atanks-6.6/missile/2.bmp0000644000175000017500000000316612636021030013273 0ustar apoapoBMv6( (@  ❝xxx ssshhhiiihhhiiihhhiiiW]^``X0eghf/؝غ\0ehif/eغ\0ehif/e;\0ehif/e9b-\0fhif/e)siV-\0ehif/e)alYu6}(ucD>C/E}IFi"+743>}1@-|@:$~38 %"\L-.wB0].,RB-4!WC 6>h.1h.1&%A*,<)KD-9o)37-Gq^{atanks-6.6/missile/11.bmp0000644000175000017500000000215612636021030013351 0ustar apoapoBMn6( 8  ❝xxx sssvvviii||{{{||{{{~~|u^?1gisxxzzz~~}li81fiUpqxyyli81fiQopxyy~li8md1fikvwzzz}mk=rjHiAeo2fjzzzyzz}}y}mk=phHl?Zcx4ekemj:qhLA>YQmus}zli8eD>}F&Q ^  @!/!atanks-6.6/missile/14.bmp0000644000175000017500000000215612636021030013354 0ustar apoapoBMn6( 8  ѷ޽{{{eee~~~ggg!*%!*& )&!*& )% )% )%"+ )%"+ )% )'$ &1%/#-("mmbbpp[[TTvvWWMMQQ^^QQNNxxeeWWQQTTpphh``ZZ[[55588787`555567865557W555555atanks-6.6/missile/12.bmp0000644000175000017500000000424612636021030013354 0ustar apoapoBM6($p  ԩ̖vrrÝoro~\~[pppţqqqSpSuzuy{dwcv^vwwqqizigxfPf}fkkkjnid}cnkeLgivydfhikokf}ytvowNUHJx8n[nwvaff~msox}wvzmTc.@Q{/kYIrs^bbtuxf|wxznPh @fy+UWErq]abzz|gkyzzmVgؿL{v.WZHq`\`axxyxwz|{mW_ z:Zf7[^dut]aa}{rrs~|{nZ](~]YVYm.V_=]_qxy`ccusllkm}|n]\.f_?k*Xb%U[A^az{|gvh{|zrqnsynl|n_]2`[6m}R:Wu5VbOomIxu[b^5o[7f}ytפTVn^}]{yQYv]Ul~aee_yz=ewu|x9lt xxYh\w3~H83mm4Y  V4Y /W atanks-6.6/missile/5.bmp0000644000175000017500000000443612636021030013277 0ustar apoapoBM 6(&  mnp\`]_bdbce|||cbsRSQ76=-01,+)'%&666mk^\CDf4/g*+J),+((';;;hhifgxUT38('W((8+,+(()###hhi_aiHI|32j$%.*(*,++()'###ggfZY\?AL10H$'('(((**()(###~~~fgfYVYAA@./0&%'*'&*+'&&'!""uuucdeTUb@?N0/4&(&(&,()'&#)+)kkla`pXVD@./t%(A(',$)-$$P m]#ddd\\cPT@A10)(`*(*$&N#% !M\\\Y[ZSQ[A?^//P#&3%')%'1"#K>#ZZWYYXRSR?@?1/.&''((%)%'!!!b`b~VYVQQS@@?./2('K'%A$"'! ! ihuUWaNRR??>-.D*(w('h #. ;tsUXuNQW>@:0-B&(N##F#"-,@||]YUQ9h,.1&$)&& " !4*YYZMOeC>+-S'$A"&+"!1( 5!~}}MMN>>v..q,'W#$9$!@, 6 ?@@UUS<;_44*)k"%L I: 944;?>Q=,)F !*\]\UUT@AH0-X"";%%'ffeFFN00Z =./1nnnEDN0/[ !?+,.jjjBBL/.[!!A "XWX@AI//] "D!jjjMLN==J..f""L"666vvvMMMTRS>?P./o$#R#ZZZvvvTUSZZZbbbEFW-/v&&V448UUUUXW_a]_``ccgEET,-z$&W659!"!hijrsqVTWdacfdh]]]Y[]==N(( "a65<PQRNON\Y\_`aaabWWWNOS47K'%l-,6 ggkKKQSYV\ZVYkLMP@BF*.D"!t('#/RRLKPPTSWYQPHE76^#&Bx@lgx|{opbdWWGJ;=-0%`!  0 f##47HIjg:P.-,%j@IMnBnDlatanks-6.6/missile/23.bmp0000644000175000017500000000105612636021030013352 0ustar apoapoBM.6(   lyG\ull9Sshh7Kd|``3qq=Lgii8dd5ERnee6cc6DLbxYY0^^3EK[sUU.TT,DNWnSS,TT,rrV|NN(OO*vvA~~Ckk9GuKLUcQFatanks-6.6/missile/17.bmp0000644000175000017500000000250612636021030013356 0ustar apoapoBMF6(  ?BIKK9=AGIJJm(|.59=AFHJJKg&i's+169=ADFHKJ^#_#g&r*/479>@AEIKI]"Y|!b$o*{-167:>@AGKJ[}![|!]"k'v+~/4679=?CFDYz!Yz!Z}"b$n)y,/158:=<=<[|"Vw Yy![}!d&q*z-~/2556797IcIeNlXx!b$g&l(p*l'm(q*OlUte%p)z-/0}/~/Y{!b%l(300/]#c%n)=544g&z-O97l(^$S78i&Ww S9?h'LiZ|"O;EIz.RpPn\}"T:BHHatanks-6.6/missile/21.bmp0000644000175000017500000000347612636021030013360 0ustar apoapoBM>6(  WgReQeYf_gQgOeH\}K`PeQeRfdtRhI\|MbNcI\|K`QeQeQedlUk\t`y`yb{g_wWmVjUjRhJ_PdQeQeQe_v[sRhUlc}gmnc{_v_v]sXnSiJ]J]~K`K_~M`fr_v]tTjYpgnnnf_v_v_v^uYpRhI]|FXwEWuGYy[c_w_v^u[r_v_wgmnk`x_v_v_v^uUlSiQfMbK^J^}az_v_ve}ic{`xfmnh`x_v_v_v\rVjVlUjMbN]j^vUkYpgpnkfazgkle~_w_v^uYnRfQeOekb{^v\v[r_ugokjb{[s`{xzpd}_w^uZpTjZmfc{a{if~^u^t^tZrWo]v^u_vh}{nnnnnk`x`wjkg_v^t^tTkOcQeReSgfnfjmnhYoReVl\thgax^uSiCTsFVvG[zNc^tc|`x[r^ucxay]tXmVkPfXo`wd}c{Qf>OjEVtK`Xo]t\tXoK`K`Sg_w_vbye~VlTj_v_v_vQgGZzMbYq]t]t]t]tUkG\zH[zVj_v_ve~c}^w]thay]tRhK`I]~Yp]t]t]t]t]tPeFYxK^n_w_vgay^w^wild}^v^u]uihay]t]t]tXpGZyI]|nd}_ve}b}^w^wb{mmje~b{fxq]t]t]t]tI]}Pdnl_waye^w^w^wazimnnny}]t]t]t]tJ_~ghnnc|_vay^w^w^w^w^w`yb{c}gpy`x]t]tYrU`onj`x_v^v\u^w^w^w^w^w^w_wa|jh`yYr_jnmh_w_v_v]uYqZr[s[rXoTjTib{d~`yph}ynjbz_w_v_v_v\tTjRhRhTi`ydvgay_v_v_v[sRhShZomhc}ay`xVkYatanks-6.6/missile/25.bmp0000644000175000017500000001136612636021030013361 0ustar apoapoBM6(((  ~pdjiIƝmmLlKJ2ӗXU:86%l[Y^]>US8]]=XXgallIa_?qtڛ񷽼lkFGE000!ّǫtRP5**54"ѝtVU9A@,FE.UT7ʼn}|S~VigEYY<^\?]\=HG0un}zSvtLicwvOgfCSR6;:&bmlHXϣškutLWV998&.- ?>)mmͥf]\=10 11!76$ED-Ѝ½{dbA::'<;'SR5HF.CC-矟~`_@ML3NN4a^@ywOppLPO4*)+*񮩨z_WedBU`TVqoJ><(++695/0-,&^WQI3A4674,) uSHI9=52.&%gIC>A%&bFatanks-6.6/missile/13.bmp0000644000175000017500000000625612636021030013360 0ustar apoapoBM 6(&x   klezfjiYnZpqXkXhdhi^iO{OHZIOQOFjFgUg@p@;x>>t>iXg\XeDDHRHPTR`~CNB9z8LlHk<DDsMtacUWWGMHv|vv{qkrY` ObcAoCUrr7@@tPP[\^LQQE|ws{qktVd[hCGMH0pp9EEtVVbbe]WZGSxrwrmtTe%mhCHGGHpk8DDsSRiik[[_NPyuvrosSc;{cFGFB.pC;ECqUUbbcx^z{zrprT#:Me]{f(HRBGFKe_roGONWZXfff~|{|ssqW:<X[0Xw6bMAK#FKNghkuuQVV\c\qmyyfihi~{{}ttrYCCJ^!kTWUlH#9;CBF:hPsxxU]X\v]plnzz{~u~ugifd|vu|qorZGEA<TaE?@|54OC#EICjV{x|bscqpqnorgunb`ymtlvj`rZNK!?9Jj;bs~ƛ&z-"tOK2gUcerodhpQX]+k;kJ5Im6ן]=6I.O\esTodJbYC1pNLIi'%6oduDd_Srlq)-pUodv}$WK;od 6E6 odn@ѺujA -a 4"9  atanks-6.6/missile/3.bmp0000644000175000017500000000443612636021030013275 0ustar apoapoBM 6(&  nnnooosssRRR___ooossscccUUU&&&RRR___oooč݄ssscccUUU&&&RRRi~~,,H1cccUUU&&&RRR`IIEHGcccUUU D&&&RRR___j7EtcccUUU &&&RRR___ooossscccUUU 888&&&RRR___ooossscccUUU888lll&&&RRR___ooossscccUUUlll&&&RRR___ooossscccUUUg&&&RRR___ooossscccUUU%&&&RRR___ooossscccUUU1&&&RRR___ooossscccUUU&&&RRR___ooossscccUUURRR___ooossscccUUU[[[___ooosssccc[[[oooooosssooo*@@@&&&RRR___kkkdddcccUUU---666ZBBBFFFXXXgggwwwkkkPPP666!!! ZBBBFFFXXXgggwwwkkkPPP666!!! ~~~z!!!PPP]]]mmm~rrrbbbSSS(((0c~~~~LLLL$XPPP]]]mmmLrrrbbbSSS(((LLLLLPPP]]]mmmrrrbbbSSShfCV.G< S:6(6O00E N bowF;<:h@,I#@P$3L 1HPIE.wH?O)8lb.me/UoCY-Natanks-6.6/missile/20.bmp0000644000175000017500000000123612636021030013347 0ustar apoapoBM6(h  _s[q\tfa{kui{u[tZsZsc}_ykayayzxc[u\ugfg`ydvax`yl{yy~xoa{ZrUj`y_xWnSiUk_xfme]v]vPe_mkp`yc~\t\tUlPf^wm`z]v]vUlWmvh`yi]v]v\sQfb{zm]w\u]uZp`yl^w]v]vZrkll_wShd~csnnhqod~Yo`y\uimlkatuzeb{]uNbTj[s]ve~q}dOeOe\sXqNcNbRi`ylYoLaM`Tjd}_vUl]lwmYqPgMbZsYqRfhgniatanks-6.6/missile/1.bmp0000644000175000017500000000246612636021030013274 0ustar apoapoBM66(   ❝xxx ssshhhiiiW]^``X0eghf/؝غ\0ehif/eغ\0ehif/e;\0ehif/e9b-\0fhif/e)siV-\0ehif/e)al?V.P.,HĬ*aA>Yu6}(ucD>C/E}IFi"+743>}1@-|@:$~38 %"].,RB-4!WC 6>h.1h.1&%A*,<)KD-9-Gq^{atanks-6.6/missile/29.bmp0000644000175000017500000000443612636021030013365 0ustar apoapoBM 6(&  nnnooosssRRR___ooossscccUUU&&&RRR___ssscccUUU&&&RRR___sssUUU&&&RRR___oooUUU D&&&RRR___ooossscccUUU &&&RRR___ooossscccUUU 888&&&RRR___ssscccUUU888lll&&&RRR___ssscccUUUlll&&&RRR___oooUUUg&&&RRR___ooocccUUU%&&&RRR___ooossscccUUU1&&&RRR___ooossscccUUU&&&RRR___ooossscccUUURRR___ooossscccUUU[[[___ooosssccc[[[oooooosssooo*@@@&&&RRR___kkkdddcccUUU---666ZBBBFFFXXXgggwwwkkkPPP666!!! ZBBBFFFXXXgggwwwkkkPPP666!!! ~~~z!!!PPP]]]mmm~rrrbbbSSS(((0c~~~~LLLL$XPPP]]]mmmLrrrbbbSSS(((LLLLLPPP]]]mmmrrrbbbSSShfCV.G< S:6(6O00E N bowF;<:h@,I#@P$3L 1HPIE.wH?O)8lb.me/UoCY-Natanks-6.6/missile/8.bmp0000644000175000017500000000212612636021030013274 0ustar apoapoBMV6(   //______wwwwwwŊȍ܄zzzzzzppppppiiiiiibbb؁bbbddssssssddfZUUUUUUZf`Hk_TTTppTTT_k`HTPtW^^^kk^^^WtPTTOlM#xxxwwxxx#MlOTTPxh??tth??xPTTT)XUXU)TTTTȭzzȭTTPϺPatanks-6.6/missile/27.bmp0000644000175000017500000000215612636021030013360 0ustar apoapoBMn6( 8  WWWWmmbbpp[[TTvvWWMMQQ^^QQNNxxeeWWQQTTpphh``ZZ[[atanks-6.6/sound/0000755000175000017500000000000012636021030012107 5ustar apoapoatanks-6.6/sound/40.wav0000644000175000017500000000043012636021030013046 0ustar apoapoRIFFWAVEfmt >}datahH PhPP0( x@X0X 0   p p Xhp `@P hxX` H`PpPHH@(pxXXp(hxatanks-6.6/sound/21.wav0000644000175000017500000013041012636021030013047 0ustar apoapoRIFFWAVEfmt DXdataz" CE >CC~ 0M}+#Xa ax6'-m82ĕ́<<qV>+5.8;%@8NЮ)&ľ0B1 #$21#4 U`ȥ-#4823!=Ќ'hЖZy)3 6.1 r;jy $V6:C+ M!|A#(/Q54))T>y5c'-141G"` ]k&02n0-T&\eyP s#Z12(LԖU˯̸؈$-!+/ 10-#8%H 9]D#**./k0/( jCׅвḷ˟;* y(/0B*fecbϖ̒Ш(K)F"5),.00.'SHE ݎ%,LCi*001/&/80W/b)~ w uJ  d !(,E//r/.`--*#BV,ߨ؎ҫVӞioN"*r..--..,'  CۿӆNӦ`uh}")-..--6---*$ W4߭ՇӁrՁG;1o) "!M'+--x,^*S'"x,7tP7Nէn~8UְP7` V$*. 1N10X001m0'._*%5 K| d(4] ݨP: :R#y(W-%14333^333h31[/+W'\"x ڜםϦξI2ϛ\c|  l3>X#(+.b1(3(445K553 2/,~)&!":i HM `K׶Q #ѝqq0z1i_XD:wk vE-(/!"6$h%4&&&3'b'\''o&%$#p" `lo j V o'o }$<@Z fFGn9$ >d^da9Z::\F; n  e?` ;~H'RD  b ?X^tLOLKf6$Ng]}~y, yK^WhBqcQNrUb_EI de>YGu+In3UWWG QxB dYcfs7mi{vg79  Ji~7TU ( 3] M  2 (j>.R J B - + miN1EdsT.pKT|`#>4yv5 d 5z#xM3>;c V3V["X1r xBGCv9zNew_a'74%4^4g4s3/1-(p"]ByۻGsɼksyC|ɜ̊4dԳ ڑޫYc E&*-/_2455&5-5s5U54$44563,%$ "- m<4l_0ڣվуCʝ GKH˙+˦\t 3SzeAN0D=  '9,,t,-./0b013k5S5310000-y*'%5%;$"  Q;.ajy1\qԹiD,ɡʆ*Ћ/s*֧lܐݢGg`<H-b)G ] U\iZ "$')*)('A()+,(,j*')W)* ,),J+^*)\)'2$B 8{4_ # Z*w .R1q"N8Vm[ڶC3Cd$U y LD *gT U gTUr{t`l;)H5 k{ #A J Q l c U @ J km-;_a3Sg > YP}  & h  5 ) @  9 % iUZ ;n t s B R>6&6e#jn I!0x aV4++i\`wuS3U=K|%b((p.Kn<F<{q[x/;xp(byU]:yT-@  a }   E '9y%_ z M ER`Q|u0(0I>Jz P V *z X  YY?gr cY2h`N s Pc{_/'=PxF a  ,T kB0y  A T  W$ c s  P^48;rs 1h0!d'9b+odU[* 8e oW r { -*) vҗ-+@#ׇё}ʖM.i ˚ΥњԚ @2 #$,[244_4^44<5E5I55*636544'664.&1 W!HԨNR˓BɝqȪȶ~ə^̕θЯۨ:,!X  o "$(,1@6876.667767v6B667654a4L5!6,51-T*w(R%;w5DGvߙ;L=9FFy>TǕǹǗZ] m_аFXڸhj)#Oq b@6"'l,o/0c112K4+67$887/8{8S876I6530p-+k,.Q.,l(?%#"!xfig b) Gv}M1m+fս҈{дϣΠ=͎%cFpʼ9͆SͦlB^N@23Yk>t-  t "##$z%'3*+l,:,?,-.02|3+4-56d8M9877P5:4k4'5!5G3 0-+,--+('','%#""#Z!Z \?  B8[c@5kme,&߃ ډ?MHZҘTӔӂ6фd эЍҨ ֠֎{ؘf`Nrk^`h(.2`M_[mU{p&^Rr g |$o)} !F!1 U  w"^$#k"!]""".!| sK*1hq! o J qj+p4B{;4s F?]MS+mgMWR1wWIu!rnq WfWbIT.!E6\@9pNpa20Lv,||Jp"YMdYYs' LX 71fMQR{/qOu6}& N"C3 e[ K. j H:d9 9  T >-tM]Klj [5_Y_o~" `P/* r = 4j Lpp(  n J Qb0#a_/7^aZN q2I=sf /4=c5g3?/(Cal_S5p(,H:7\W@`wr:K1^Z;j 1{ ~ g  , ejUFtXCL<Ch@|Wma:=U5,Z &Á@)>gK1.:kv̆)83(3,`N, ~`ЫsI`׈׌[97J O? #*15o643k4H6l7665676d665A543Z0*" ?xz6 HˠPʌ7=mɁLȁ~ͣ'һOٞD9 ET#'+.01|35"777>7.7[7u7K776665h55.663I/L)# !!A  v.Sh|`<؆Չ^/iŇŔ)ŁźűŠŔMV͚ϩކUc`y*EF /wU3!v"F$3'+ /%2324q4+568 999:v;9<+u!$5&&p'(++-a//...q0395555O5966653^21C1o0/....-,+*R)'%q$##$#!Ss9h<K1W3 kW *Gh!G?/ M##9xfJ'r6NK6lZc]h[{Lv_20p޳,1l=OXg{8wS}T#/ zoDH*X1: D 1-< }  | )F((_8!## "(*e& "!"6#|!)# =`"$#==J W0Qkn9 z J i#[ zgBsIhTEWBDay`|0+BXD9%wv,Pv# `a_Tg?J&wmRq=o^H T"n<$g ?N3cLi#`rs`O ut( .uE%w;m_iDl@o fl(\ej+:~@kB >#,5n6.!- %; l 0;. z  y&R  QQ  /h   # 8 iVRlFEh(YV%oW([lKRk: = ,    ! . A w F ) <l ,  G&> d  B~)MN5tR`zl.wGp2   S  { $ }^ )   = n Qur5!R1X5'PX *~ ~Y8?};T^! O(\m*6 2:9"Bu-p*2~)479WԀ1$<tB6.k ߿Ʀ˄ 3h7 N-JΨ#+.011X*Q cd^4w.ѝ˟͈L7ɴnȰ\\=͢ϘL I5}*~@E v 2"%%7%/(.L5199/8%7o78998O88j99.9J87F89+97q5.4453^.&d!!\!J, \]H"5S݆3׻ӌuɯzơ<(B?'3NOL|FP˭=ىJU"@no =t>S;#u%&&6)J,.A/'/%0*3d7:$;#9657:] u_ ,6[L)g  FvJ /o*r X <- 2"w! , "@&("'$ ##~%C''&%q%%&&&%%'m*- .x+'H%o%&&$! !@ &)Y2Pz-  Y w)&~4oJ^X2^b'%[Owsޤ{$[޶_޻ݒޠގ܅ܰܖٕqp5UՔlЎьJ֬Xf&iwEj?~aO qJ  N \\VI}o =y0!gx1q/;'MUzt!]! !R= !,!B!.Y ue]d`2xM lU| Zr QB !GJb{iTjF E~(4V[=(0.vWSlmu6qL+[":C|]8~:\@qhWSurM'.XOPce(lGma~S'g* Dr)6u>8YA^w SsJ H = V q$og%92wwp7SS&SlWd0Oq gi]I*`My$= N(  ( X sM`\4 j!Tf@! _ y-Xf7MW#D,Kb-!WN+B*%QpA|1w}&S  X ) (= NH  5s  |K0}F^EL\?n^$a >I - pQR F875.z~-5 ù()7km4'8/")-ˌg5I4Ɓ^w08)u .&((*,B.0P10+.*';%#"q^ O Cm&og*wӳ2R}wǦ:5vgbS;ǚ5\͊Nژ܈\IK @$7 p W"\%(,/42357:;M<$<;{*y  h'+ A X!9#&$)H+++Y*+,2/0C1235c53w1@0O136886|5>434j67W74>1/022v0[-R,+.01-)r%$i&D((&$"%""j!6wUkbW >"@FD33w#YX Y҈EӄC1 ЁA:xή΢;ϔz;ͩΥF˯ʠI̸/͑λϳnV ԁԛև85ݬ;riati^*AHx 1 5 ] , lFSHZrF & !i#$%F%%&(n*`++*)((D)})f),)('&w&e'(Y)'%$%'r(%l"!#%h&{#" DLU$_#l5$&!Nlp, k S \ =;unRa" 8y3&D$%)*&LE" Kg&47cXJ zy3,<4K_zH$70$xm8=uP  \>&L;u1bK2NGj-1 >L<#*:/vpn ^ i8 R ,h6 ]n1 9]   l s  % vnL _ wn [ / < Y  [ * S ~ A] 1 [s s2 7e  >E[  H 3} " $Q U $ & e g    d 4C]BED/@j[T4Zi}BA!]E*X$L{3I6H2hG\ "  S j #Hr_`k cqdL)bOS[ \=7:g/]6eU0.$- 0 C0=`K f Q [ 2 C)AO 5 onYoc X -A D q 6    G S &w 1R $ Y > mL[ +g T->=6n3:YD:3=p2 pu8Z0/+7't(9O*3d\`t ^,2P$GGt+}0*7p>qL@3lږس؁>RZhߞ$aV23`@ *18Q!d%(*l++-. 0f0g00134:43210.$.A../.+&s" !3 $</   3w10h:*ۻܮiE0,ӋӖх ГJҹЗЙCHx7* ֽ֥UaU4) 19_%Fm;: "   "c;(O"%&%##I&),;+(&(+/10|-+h+6.12W1K.++-0a11/-4,+H,,+q)A&*$u$r&(''#}i%BfD??@2oU Uߛێqڸ3[ӗӵW dѩMFҥxS ԍVsՋX۵"Oޏ@?\8+1>r$2jkg?ukQ;D2X^ x OOM&[ z!b"####1$$%<%$$<&)+,+***D+&+)X('&&8&"%#"#=$%V$n" ~ !"v"   ~CZ ,{T[[HA sl @72 p # me J|[ gZc50qpzYUto\{3|3ܭH:'* ާsLێ1dXJV0'!`@_w ~x`k;K8<'/GYJNYW%V Ve J]F%S g|{ ;Od^_xS|(*r$&y9L  f  g [ W & G E|bc tXg[%<R7YNR{Q ~ ? & j$S= %9u j KR3%-z>NFO!VESfJ7FKJHo)6<u(r  v]2-f gt#)\GA wZs )IOt>Y922;m'K1-$>? .z e=:y{hn#kJ%9szP[5{9:Wg.&9*=!b,=u#A;2UԤ&>(>#% ޕ 188eׄBH %.&$iӧѣNч9I]52jp?C(TD C\52"!%*--+*x,|0w4641.j-r,*'1$![ <  a { T%F!WLQӱU)" ʡʅǷ[Nj̈lRf˸ˋ-Рԁئl*(x'&G%9# \,! " XHR$e  r{1[TX@Hl D$&߸-D?ݖۓ۹v۱؊sּMԈ;ѭв ѷѻՙթwֆtzو&ܠ<ݡ^߶I_2'W j:(."C;gpO.gC+t^&"+c 5 ' F iv8<lxQOL {y*#LgqeR%Y= <"WHQIC (9   M= '  s .\CkF .$WA*fhT%c#MuEh-7?;mo#,R{`]N~MgH0~Fz$.<5 gUn+iX"7 H6ݩ$̟T96 mQ?s)/V6 'v2%C9%#525G3 /*%m " yD@fj@<ߺm+C8=b  TpD" ,%),-,+W+,F/233[2\11C10O/--M/<0.)#Hn>q P }bh~-?R,֡ӱҹЮ&a?̯΅:ћЖϤρP% i| ݥ:IH,Pu6z{PoXd` |9g!!`!!"$'(m(&I$"O#$:&&=$! 7!"#<# V7dy\M@ OL\ wmf.Kb}W݀ێܔX`[ (2߈oD=vhx. sUR l  x%4:caL N !#y$#! /"}$%4%r$2$v$$S$#j##$y$y$0$##F$%%%%# o.~.f|* A MBy` hIn/v S{$gQ a~mQ7ߩ&NDTC)ڵ ݆ރIޗo SD')+?Zu[9 5Wk\Q+ k ; _ _ [ I %^o%&a$Y {.~[3AKxARe{?]Y9pNd  ,T5R&6 h : }&Wh )1w`{X=y24oaO'ta.: ||GCE67d=,k-G 2nZDXH1|76p__b%bt+ N\>5Z7'I%*1SC\.(Wqy^GyktRKM,!ed"le t ? < x \ M + Q  c '   d  / B ? ^ Ne5F1eGN nq5QkTeTxub ufXT1zl@kt&b%f.2' Aw~lteV4Xzy G9D L  o D Q Zc   : V >_p%Kk"=l=#S>([1~7<$e2cwsDj(^8Nf']lp+-{bxuE^)YnwQT~7;}*x:;l^YDf)="kS$1Ro2+шZ6 ,.OCՇ{4%T5)HF,H G!(e$S(% ;u-.(6R%  2!q%()(g'(|+ -*%  k OH_4`.ъnT`Q$#yۛfB-.< xz*$~(*M**)) 'f$"#$^%#%io-1fc]#oy[ډ/SژJ ݐۯڬ_ށ6jYv;dV Y*!! "<#%(+u-.n.C/0#2j20w.P,+g,J-,*'$##)$n#P!_BeLk V\3qZ}|@v g.E݆ܠo,bVޞޔߣqWG*/ M]P/ ~7 T m!TD,- "~"e!jC!"!) 3n@}a L H/d68Pk}%pHLZ{ߢޛu>`re`bN*T2TDx (.Jad g3j<[#vr!M""!2!q!!!W p P e 1 O  / _K %j U  D  S _ qXy$0c(M![c>Ppn9\u.F=8W@\y#aW&#tLNND#ii\k ib#^ ,0=Z4"^HB0JgH!Jl8y%luIkuH9w 2{PRjL.'UaK*O 3Y:uT5X{qyb4@9#E H   I i v R { 7 { ,Sg?w!&B/.sk~L(*3(l& frIDalCv]yb%} " P #< u K g V      E { g  lV sj,"opx|7 j\AG $,k @ ;Ӂ &zW#FqL6Z7 NRw^h` xlu( ",g)" lYD lգ=֕| ގؾս9oJHB!Y$$$j&()'$kCr k.>ۚۙ"Mc[+[% 9( "&g)*)'%%M%$lQ6L!T[Gٲڅ ہ>%WNn!w$'e)R+~,i,*^(%\$#[#! ijd\ߍk'ߺyXB{X @"&K*|+I*(*()-+*-(#4 ;%Eg pS A(II*sށ;F{݈_ {|ay_W0l lq<.v ) }kR  F5Cy'qj8 RfXߘ!rd(R s^Y_H}(tk dh!{Kh^!%(F_G2 {~o~ 6N?-~Cwe.i|*'UFYQTy B 2 p  q je t ` R 3 M KltzTt7Lq;U+Wqߊ do߇nRCry%C{3P!MuVmx7 A # q D:1 x@CGQ(s3ek N n( 1 b A B ~pf[3Xf39X["5Ix<:}Bq%"!߈%d#" : Yd\$ qP'&E&v%++($, F%`;  O 5z?L OۺݺM ^9:H  vg_VNq xt xW c~}jr[P"K $M%"gMFS.rGF+> :i~Fe J Oa@U{#Y=EH oPXvb 8L{U|d'U ^z2A  2qqP` DB @$r0 j $\F-J , eoW_x7~( Q[O bxPerw[ > ! cG<1x^!S!9D ` o$c@/#."<e x \W LkzQo8<}Vf[ { _ [a=hu  ZR|5IG,1Xc)-lW(5  & 2%\cm e  ;Fe4t/BG3744;sF2> @ G * 0 . |  : _ \ r k  9  L `/ZHQKYJ>Upm-XMn-z wq2]k+lp VgZx~dc;iHEatgrF ^JK-#RjhaeO@>p N<T5,y~na"]P#0eK4(\O8DfAxJ^HR-Ub(Y>>i(P2n~5pak6{l Dj4-~)]>."araHAOg1d}Q;`FeDQEKo  t6 U]!l_AlN\SA=6>+k0V/g;U8Rb\S+qguS~k5vZmXzCGooqQ _ ^{nj$ lc p6nm O bgTyjC"$0} X! ]c3QZq2T"  2 o y2 >lRM hz^}  A.Tq\_OQw 3 T o  s. Vm fM m "1FjLu UelE* % K5 k Et 3 A"18A 9Q  ad*`ZX9>  T  > `  .Kt[ [0BV?5})v)IfR[tAU!}x<[D*B}f7x>#>*WHIAsw;E7-yPwy}RrEdruF'>j- Fs O~hN)3 i  u$=:% a-~EO9 sV$v%o -3 {=W i.=uO Q  1e;]Jo*LdGG C Q 3 x1> :z x !  Yp6Su8U$ ?h|PE;'  y (U& cr  2G{ H L@C  *@j U \ a2  R'I U E6!M Y L GpB l *U/  {2u  I}s k uR V^i zX 7 w X:RE 4DlSHu K9'l6s h/@,I!a  o %FAy0[(Zt / K B O  A4>1 u  z mEtoAdROJ*\Ul"Fm"/?Z1    S:gylj[4KWSb j6 lL5_`TQ_Z%\% 3}Q?-Q(!nM1>&!M2Vvz=H\>z-Cn[Or.)N)4v ?.ZCt~0,yA r;6 JDm[Ozzl=AAU%:_{E?QM<_=isY Oao/NA{W}DS}!6EPs$`e?V BsRD}q0YOl:j<$hwtw:G~`&0l@qd%7_ UWt|@%uT'7knx+6zK. J&Ia ^<GQ-='m.bB0*kWA[ b|#MOlrs[2'JS1(:9N1NrNe^IrXt P l_>Kb QljJ `6iuq/2]40d2O%qE~9p G1V< rpJ &.sH ~ - %7Zq  U %x9IJyA [rF~Ps#q6!yc1_@-2JUf:$N]iH&&.,;:~afe3.r)? 2R RX{W{ }0U);\j@E]b{ Vjvlg|Sc%/$dX,*V4TmSFW~1};)Wjnz zOw?V.jE\NOC5-(\TZsThdli/lo+OO y\QC(FT~)&K3iAkCNqq(I=N 0gfs+[hpLBTd&/l;G{ (K]n   QFeeG'&#8d%nc*2h3-vEhf^^p&#(**\X 5 ;Srk!W.SYNn>RN%Q.onYOO7vL O#Gwl NB  =J0,#0 1ZuK}~a9,.AHlwtivmr'?r j5zh*! lLFRTvv2F+PoZ'HS2< W`1E  s:rw$X>=4fr.]+*Xf>]`*`h"uLC"XoN"syceKU u) uvj{voQ [N~[Z8`SSP}1YQEreWz4m7q +2fZ+L9sio^wGyH ZVA5ECwS,42Lh&}5 b!Ml}6m>L ;yrxZdzGg~RtT}_E8%Jh}  RrOuyjEN;^YmX0:oJyAbw{pB.i(^3>qgE"H= 8gy5=eC/;FWMK" LyK">xA}7GClb4"]-JLj (@RkX"5/?:'1]^IC&S  n B+THSacq+|@4^4:`x5bvUs\]la;u8Xr>AYfUj4 6Nx(9wGHylS&Q-K/n_ve na/%$]PBhKZX@OQT%\],sR^+  ZM^qbYevx; o\pEle;eF>MmS~j59qqG#Yy>'o|``)E"&A;9]kX?@C@'BF)nVGHZ#G5+UL!(" ;giY=2>Sd[:"Ao[(+NiU|J*2@W_ffz_G(GI1 -&,F9l}ujT>?[arB]^WX[_QF.4<awTXc>/#:Zw;&*S5Oc:6WS+,CB>%):TZVZjYdmT+6a[O\3y[e\"WtcKIetz}~nbaknh^d;^AS#3 :K URW ~cwba%L(Z.GG+Dk}: NuctTS`jzNcBg4sNXN@=|)ebMEQIZi/{z?`A`.ul5y09 s Qs("B,tD/niii]]#u;)Z' )_0_e5cN:/;{$8%0p<F$Vl"F ?rg]c<585ICPeKc?vU! 1BNpH $TC+[G !K_NB5Q'Mv@}Z1o}]IzU3jd/6J6Bj7N 0of$,fm>ydhijij!BZ="`A xmp | {J_|Xd ld(}k3A -$ .nQ +kvA (H9'TvpJ$Fg_X9 ,P^R3 /FB/))4,"%  ,NZUF0%FSN4.->5' +4, "." ,3(<NMMLTUO<,** A_YA)*FTW=.(4@;0-8>0  %134*,!'CIH1 1<86(*/@@@1#    &('#$,7<>8440.#""144)        $<RNZYSk/$<P97BL?a,99*&76*+*+ %+%.72/,7?C>7367820-255/&         '%   %)4*,!'$  #&,!  !                        LISTINFOINAMPer-cent bomb hitsIARTSven "Yamakuzure" EdenICMTAudacity 2.0.5ICRD2014ICOP1989-2014 PrydeWorXid3 ID3@  |r:'TPE1Sven "Yamakuzure" EdenTDRC2014TXXXCopyright1989-2014 PrydeWorXTIT2Per-cent bomb hitsCOMMAudacity 2.0.5atanks-6.6/sound/03.wav0000644000175000017500000024104212636021030013053 0ustar apoapoRIFFBWAVEfmt "VDdata@    " %"''#%+(*37*016A9AAC54,5;-$*+ "!      *,#3+=( 3F1%/# =#  !,-&&,1 '0OC &$,3<6 %.-/)#  %  *  0 +  %<*";=C.`{.?C=/>)M[? ERGNLA?<1-*#4M@JE++7#'  S9 !@72M0!5H:N 67+MI*&Hw?#,5L3K='JS=&%PU8F'  *;0+#*:+&%0>L8((DY9%'AEb]EJD5:pnJ (C$*LkS!J.%,7. !-   #!''  % #$ ,V+RIVx6%lP ,1   #O7  2 $E-J*":l=H/:}B)6AE!+h);CyX)F/ OeT;`& CX8<ABqM5`JDDJT&  -7M}<W@' `o<# $'M/$<I*aFGXF,CFOya*H`]]V_C3C*:0 "$#Q*"?Kf!0:29Z~U> *Ph%=G(#8*3 5 /= =IU.G=DQ  * "!;52#"<->%"&#EHMyZF< $VLOS  +' $%5"! &3<)>%D.$&5;)=8T/J'*;;-d~R2 F8&</cK'!/BzV"EKUB=ML-& '79% .\\6/-"3M  # E3B4R!*9-'&4 ,    % (/4$HD3" 7*+ *!)>F1')!,#!/++I]E;9E=>~F)HEK>eq@Fh_'"8nK8JdeQQN>S[ZXOiZ'<`6V9 ,N"$-<04,/1EB;% "N/!$2  'M!!<C12. -#  ek0+5D8 <KC;EF;/1'60^?G[0!A_@2?g_bT -(Ah6\*m^  %D643K]1S-<\S,26+*&*!,'  '2(!   !9D2)095AD?A;AQQPRS_W^V\_QG@4*)/@:G6 ,=MYYDC730%-42!*<8-/03GFFB17/<70%)$ 6)       )/191*(( $ *  #+3T}qcc^^daffzxhhZUgmVNTODDX_L45?G>:84*11'!.PTPN?@4.2-,D%  !   % '(*/ DC$@QU[\SA+" %CH-8JL0$$=M`qe[^^^hr]>:A)/+'.133@@97K\gc_frihumljjmja^W]h_Ubool]K::MIODSTMPIM\[X`jqw~whiqmgid`XGCDE7$#      !   (DQBHYQTZM>9:%    8@A9;?324:DUL?OEAH@;/8PJ7GTEPK?IHI]L;=FEDED8$$-! +&!%'-!#',&@;4*#(0  %GH$  "(+%AL6(-4QkTH?:5BF/  ))1<ITPTYTPKJGNUS=8KHCAXmrfd`goxyrrolkqXS_WPIGV_Z[XMDIQNC=HNR:6.   #) #1925?2488!+,/48% $ (2/"%'*.-6CHA>A?=<425<6,8:HOCA3+(9B74560%         )9DRO[habgjwtfgb^_YXYLHY^YO;-35+.&$  #E;.*+8GLNMVYTJMPUZSHFA2"   "#49CECTPNXI15LTQZH@F'*7DD-*/&&)3492FTLA* 9OI).M5.=RKLZbEIhQ, -(+BRUCQTag^j~|vlZU\fD6'7G@1/       /9,FJD_W[rc[ngY]h`Nei\0AM5'   &589?D:*?O^VRWHZbdbnyrlekm_~}cRXlkggn^PSXUIRaYZ_bZYS\Yfvmu{h[Yismbhwqmgl^T__LFFFKBC@(=/>@5.% )/;/   (        4<"%  (:!#  "FM$ &0# 4 *' )  *% 5 +"(   ;Z158&:,/A'!-& >) %,   &%,><==FLBGF79JG=@STA@CNTHMTWWWcmnrpZXci`hzkc^aiiktxtojw}ytkcirg`kgXMQWW[[d`aTT[WOIFIZVIOOA6357HIFIC32;;1$&52"#     "&     # #," !4HW``e^TU[eomcnrnea]UZ^]`dpslhmy|sy~tkcbkxxrjeegb]dpsdVL;28=GNF<1+.* $023/28761+))  %,'%  $*./.4;CDFEBAAENNS]cdaipssokjtwwvrmqibZW\VVZXTWUQNQTYZN?2)  &"#'# !%$#$#(7?@AGOUZ\XSWWSV`gimtsrpokilt{{}~}|vspmkpqtxyvtrsomle^ZXRMIIIEB;51+% #&$ %'&'+/6768>@>426=DKONKKKJEBDBCB>@8668:@@>6577;6..-*18?DGEDB7+*+,+-)$-4-   !"!"&&(18;?LURNTUW[`cjqsopppu}~{yzwuuvyvurlfhklmnhb]TORX\YVRKIE=31)*(%         "#'066<A=6)!14//.!    %(-.%"%0=HUagc^`[WURQUX[jidfpvwz~xme_\YX[cilbVSTYhl_URPQRQQPH?DRbea`YOEEPFA?=?6.*&*8@4!,1&   %.695750/-458@JUUOLHV^\`mv}~|yuqpgWTVZ\Zchhpsmb`[[^TLMI@73%  ,/$ "&  "4;9>@AB;/*&'7DLQLIE<95,-/$   '1@IRKCEA786;A;;8-$1EHX_]hpox{~~}ynkprppolmcZXX[NGLMGIRXTRD99201/,'(05/)/# !,3=FMQUTZ`dqskq{~yqhnlfhlhdcc^RCD=31(&$"3F[fb^_bimkkoqmrvtuy|yttzxxurrswxw|xmqqsvsknqstuxxy|spee`\[Z]b`]WPNHB:6/2321/%    '&*,##  !   *2843*,0./45=CDFKMT\eiflmmlotqnmooonkokkjgfmnvywxsnopqsklllfaZUOSRRXRMJJMJ:12'"     &4:9IUTZgqliabdRJHGWd^\Z][^P@>GIJS^WUYbdYad`jnhon\`filecqpddg^ZZ[XZaZ[[NG=84%  $ )-+*) # "      !#,' "  &%%# %/>VbQ?:65:BFNSb[\nqoryqm{olmu|~z|uf]Z[bba\__[=85;?D7/0#   .==EF<..1-=AAFCPQOYd_^mqu}z}|x|phsspuphkqlbp}qde`Wlvf[QLLB("&    %  !   ',,'$    $&(?J;,%    )1'-2)!-15=@5,5>=5/8D@+)*#""33:@9% #   !4?=0/29BEEHGIJKLKQRJIOXcb^]WZekjnmnosnqnopppqmlpoomsywqnwywzwrrmaTIE?9;:254-'( !.7;>EA>@@CHMLLMNMIJLJJKOTKHGFIIF>5.)!    ! #("!""'4?HS\_`aeiggljijlnuwxzz|}|vuomh_YOIHKHC?<878765341.)%## !.3342536:8.+(# (001//249@GMLTY_dhgkljkomjihfcchmptwyy|zwx~}{vtrqopmidb[XZYYWQPORRPPPRNIDBA@>=ABBCCA>==93/0,&  ! !&$  #!      )*&##%$" "!!     #&()%%&+,&',22056;?DCBHHGCCAFKNU[afffe_]aebdlsuxzz||||zusnlhjmty}}y{}~}zwuvwwzyvrsoica]XVROONNMKIHFGDB>70("  &,/3788766:>:98<<;<951--18<;;:;65.(" #)& "&+4:>?EHIFFFFGOTRTU[_^YRHA?EGINSSLG?<===@CB>60.+07533-' "#'5?BBDHBCGGFKJKKNLJORQTVYY[[YW[WPOLKIKMSVXZWRMF@;:77:50-258<9641(          '-3658CCC>?BDDDBHICADJKOMNLFGIJIHKMKKQOFGB@>742347:@9/&   "*0/.-+&!'5EINMF=72256=EFFDD=8515?GGD?@<2('#"!&$##$  !#&+...4543.-4::;:7342/..5>EEHJGIIILLKLOQTTQSOMPLLQRRSVSPKHB>;>9<<;63.+*)%     !##&+.+&(#""  &1>E>4& &''#!%"$''$! "&&+'%$$**%    "*9DIEFJNF?A?GJPSSTRSVY^ZYQLJEECD@@CBBFE?;<DB9971//)&       !'(%             ! %"  !     *07//0016=?@DCA=>41:9747?HJLLE:2./1>B:52( ")1,"    %'('%+*,149;?AEJMC>>=?CA@D>@@<>EFDC@=<?DC;5499.)'&+,)%%" "'(+46<?9810/).3626:9?@=79894)')'+/*,+00,/2)"# #,0*&#!#!&.'#))%)+%,4///-.,&&%%'$!#"   &''$")'!!&,24997<<DEGKLJKONOSUMHCFEHGMNMJHJPQQQSTTMMNC9336?ECB<2(&%"#  ""!  $)),,/0--.)'$(.58:>>=<;97::@CABA>9754348;===98643.-000/043/)*+**,)&     #$&',2878;<<=?@AA?BDFDECDDBBBBA=92.+,+./3/,)$    "&''+/-,)(" !   "       $,0/+-03356:=BBBEJONNONKFDB?@BDKPQRQQOKJIMNOQTQPOLC:2,)'(%$#  ')%$*./0,)',4=BFHGGFHHGHHGDB??>=;>?AACBA>80'!"',-+'"      )/04.%  "(%!      !""     #'-/0/*+25664310-,.48>@@>=<>@?>730/-***+))('((-1//-*#     !(,*""-8<>;844599:<;840,-3:@?@<5-*((+.444.*(($                       !! *399::;860& '.6983-+'(),19;86/)#+.)$    "$%     !#% #),//--/0-*('&)+4:;<;>=82-,,/4=BCA;3*'  $),.001/-*(" $&&$"    #$&&&&('%##$(+11670+')&"!!"  !$&%##"    %'&**(!!"%%!     ##### "!#%)++-,+.2553.)(%$&-0300--*+,.-+*#                    !!# "! !!#! #$)*-//,+$! $(.0564/+)-/263.-+*'%)04420+'! "&*0241*   "'*,,'$!""$%&&'$! !!!                                           $'(++,)(&(''*,01467788876768766688988967686533/.,+*+*+**(#                      $#!                              !#&%$"$%&$%$$""     !                       !$'$                                            !')())'%""#'()(&$!"""!"      !!! !"#(*+*'##"!          #%$% "$),./,-+)%! "#       $%'%"    "!## ! ! "!  ! #%(**)'#                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              LISTlINFOINAMFire small and regular NukeIARTUnknownICOPunknownISFTunknown (libsndfile-1.0.25)id3 ID3@{  'YLTXXXSoftwareunknownTPE1UnknownTXXXCopyrightunknownTIT2Fire small and regular Nukeatanks-6.6/sound/14.wav0000644000175000017500000173226612636021030013073 0ustar apoapoRIFFWAVEfmt DXdataN6<ST9"G rQ\M|6t%8ccH=xp`ykw/UtuW-*Qftve\UQRDOQdhy/sp=""F{"\vlHUgRa thR;n{eE zfLNtuxcM9Zk 8vOZrrM>Z4. '>f5E |  @  M L s||DX4c[ݟ݈ ݪډsl+ܾ<3Ze=% DO# zVC!"0$w$'$# $ $j#"M" "! 6qE"7 TA*Y}]<kx Fn'9"cj #n-(  + c  -r@g5yPK)@&T 8\D{z4mbuuj = Q5(TA @ [Xz#;\ rmoh(>Ս~"t#QxB; % \'R<1qS "#k%&d(*-M/E1x35]777777D644y32/-*($r @7; Ijr5fB= n5^_Q0kU)g7mƓE¹rݴN߳:ZWF&4sջj;$å 5לP]&' &-h2~57:Z=>q>>@@@@@#A@>0=;e9`5x0,:(#xpY^ a6HhivoC.vo}>6?\?^; A -ExI # @a~r,]Y0V-p ߧj޾!kdN! w( ~  (FM-" gg?{pPVa+6s  `(&o<߃zGO@E:糜2fDҀ;҄Xߢ U$sne?_ >sJ[bfF"#$%'x()*<,-///Z/H.,)+&J"1d}oH!b%p(*X,-.-,j+E+,n-/256537/P*$ !#%&# Yd})m0؏٫%Q>ɍ¦/۳(&t˩ǩ8ūQ"K8fVƳx٧3@ :%cm"&e(*u-.h.,s**($ v X1x[( qG |qSp Y_C*3Whk %)"--1.4 545s7765 5U41.K+)'W$Q   FQ2Z%a D. D qB'3SPP@Ayj vNY- okc zX?sixǪŜ <a:Q""&4*+)*Z))*j*+.3T8><`?[AAr=6@. &@[XP"'++(I"  j '&4*+*'#1(a!!< # z!d1 r+vsM n O 3$ q [~MoߌIˀŝi#CHѷ."[SBӲkILYʷ B{x ѱҠ/+ ,$X+28VB"FIMWPYQPP!OfMbJFC-A>;86543L33X44N55Y6c65Z543r211R10/0/-*;%<  8 1jPe=399Ҁ_֩qkƎq&Hj?Mp51.ΧBԺ?\w$Z),;+ >x> (39R:5.(/$! !"$9%#&!x#+&#}OگֻKP7DJXM!&#c#e$z'#,15:T?SA?o;O6 1P+%"~!#%(,00-)#N b[&YCF}݊ c8$[x#;\ U^8F>#L)/]36$:< ;985531//X/,(@#pP, 69hs& ˯¤4Ã9*$籹¨2,2SG&Vֆؓ_ɡԩkM i _A( bFC/pb/m31ߺݚݡwj(V 2~4)uNs: +5;A(FH-GpB',5Y@KSEWsXWRG8;(L+5َЩɇ<طhC @T%\] ]$S *c4(;)A>FH*HFEB=T6-%S{!,9@HTZ\J\XPPB3=&hJ=-t%-49;951}- )8$' bCoIak%&"4 >H om3 i k m h;fQ $<q P]W`P;ںҳ;ħ;E`v=[&ݰ>FlOЦީ>pֹoǫ@״$\3@Հzd$X pmxN *H+  *U'5BI\JE*$ !-?O\wf1mYoldZO%E>>hDLU\Bbdd>b]XTrQMI F*B<64*/#3Y$(+,\)k57ʦș3NVlƑȧ̱R޾R9z$$dz P}, :⦕)`|ț}\ƛJ\Y"/HR=gجٜ)<'1?%KdU^e*gfdlb!^XTRS(W\Vdlrwyz{zwrlgd`^"\[;\\]^_begjk}k"jgd_ZTPKqFMBF@?>Z>V?ZAByC DC@7-" 'cL:{J BjǼ\ږAvRɣڍ֍W Ũ3ǿ#)ٞ5㦱MYZ1_ȑ5ԬŕDO <Ņk[:שއ>wm8ht U V ^( I&&3#4!)kW%71=GIQUSOUI@6-W'$4&)D/85:)>1?=K:3*   22_'J06i:9~5-E%L$*_-..+($!!s L<9u E<ԾНPԇ`m )׼sɼŒbqj8ٞӨ,J-NYJ _SnM"0;CCIYJF?N7.%93oc'.w3r3.i& >.8Xy%,(q#L̇0ȵ  p)-10(\'ڕq4Ѽҏֺە)3 #(a*@(#KA !+#87DMS,URlK.C<:l>ECN1U5XSEE0/]>Z+a("s-30) 6rjs~68اhQetȥιπYc̨ۜ!(ڑ;ݫ5>ʛsԗї]Mנ fZԱ9k > F#t0b?MUW V3QHr>50/-1:?GU+_d6g gcw]UOM OxU^g"orHrnf]SJDDIQZx`cCdRb_^WiND #ȡ+@ ,I670#R۹->8NH]Uwڱ "5  _2Z]`wuGܵ`6Sֹх͡+ίV6 + \+m /4? LRQJ@5:-=)7,6EUbZlq rk]0J{6' ,!*9pJ.X3`oa<[RN>/h$"'*9)"@ PTݣܐܖx{ajX͸س3޽l "2<7M/'L*2BR[5\FWK;},#"Z'/:ELK$GA9-u!  zac3# ۡD ЯtÞ`Ptɝbd搠cljˊ `߮7Lpڟڶ۶3k 34+U;HPOFF8t(  $'#*)('6'\(,+5@DL V]bheea4YWNA)5(R8)5}BdMTWVDQD1ߨ*8E?w? ;3u* {G3vW5ҷɦԾߖo7DɨҮq#Wt N W1l# ӡûҿɮ}ڹʮذyI=*^ՍC/=EIFR=1I' 3p)7.G T^gnŀͰZff٪`J)1Se.j֤dӮY\n oDTyP*q9WiJk`LP0G,b.E1TVrOB4&s#-9?EN'TwUIT5RcOJKEg?T9y41H184:CMIV\\'_]VKZ=-~ % Z_:&z]Knۈ<ϽxǴӨkJSڱῲ,ɼ!jj Ve}4=3m'tx`ۤЫëXŞƞҪ~Չvˡq@+UԬ\;,`,_ -':BHJEb>72s/Y06CBNX{_dsgSf}a \XWEX6[`figc>]TG<669<=cjTje]3R Dk836>JmXchgcAZJ4RY  dd,@NWXRC,BXSm` R 6 fYF4P3":oT>=aåQަ [ ]%x"U (b)y%a..E%?A;ҮɌ{FtKd"f,/U+:" @b(hCh\l\rqj]2H-X0"GW`d-d_WOIZGG8JNRTUUWiX VQLE6! pu4!WկRC~ <WHfOq9׮;[&Փ,VV gPu (&ȅ˗93 6F|M)JD=,)3.,DTYT Gi3 9/a$3:G:E3f(@#28ALPMRD^87-l%"=&-6>BB<5T.Y(#5 U t UhY< !E`hu]o [G`/L؉4)s91oL% 3|W?1+_0ؖ̆) ʵPn0 ԼC_ħ8ruѾ˽֏Q"-55y/B$ # bG%S7GT^dvdb_V^]^a2gsloCp!oblgcb][\_dk_r v-upi^MP9&w#k/;iD*HGT@22 , :5nL;՗<ΨںUY` S؜DϙSPBՔߓJ֚۟#V?u{F-nlS 1AnKJAz6A,# #,5; ?;@ =6y.(%!"@ ! w!""!8[]~| j*.gsm8 fXO!&(*-614#8=CCHLOP:QPBOMMMHMMNOPP/P6PPPO OcNMJEUA=g:7H6~66411.(  .gbܗ֩SǖMפTxtDCXrF낞PၑH;x>Ÿ́Ngߑb؛ў/*B5ƫ#j#M ^!$'-+t.v026@:FB9?93A.( ! ,Uf!ڂ@͸ܼM"ԥc8ȑ;ዋцu˂ ~ց܁tUG_ꂣ :W ÈĖvЩ OUݰ7n߇4",0136E8;A0INQS1UU UTUWZ\M`wcee_e1dbaS_]\x\*\5[YNX`V@SKOKIGFXGH"IOF@B9/" &/ T6]XF´_.ɦ{ΦΨΪ`2߬md§Q{3 I!Ípx:}`0 -/>> LlUZXU4L^>y-(5n/DpVbhNlDnm=jd^YSLC:*411348>EdJWL*L|JGdDcBBD\GIxKJGVBs;D4.=*)|+/49= =:61+Y$ S "$$e '׼~zsU/zѢ.èF6]~_ݠM룁 ߢã/irոLoYo;߹Tz ")1J7:=BFILPeTWY[]^+_G__ ````6aCa` ` _5^b][ZXVWUROOMKHDAw?<3:8b63O/*&@"c  NE,:ݙgѓ7PىM1͑~nҜ͟Fkcb_XZƷTgSٳ[CxU o "'/37<"BHOBUY]a3f8i8lpsovMxfz|}j~~~~N~}}~?~~~~}|!{ywtRrp oligec0_[ YUQLIIE@r93%.'3 mS 2iԃvd=k_cy ɥazznmϞy9頟SzJs`4ٷbXό ѻͻ\'ſ19+q q=1R4Ζk2FܟpC{, Y X 'k/{7>CLFH%JKMPU%[_c^h'mp;rsst#vvwx z {{|t}J~~~~~~5~=}:|{zEyhwu_tr-qpotmjZhfc^ ZbVRNJFB|=60y*" l=9ψLL)ǝo+݉:2҆{'V*lt,3IXVdcŎ9zE}>5 B.!$5).36*;@E1GGHHYGLFE*FFGbHH I6HFDB,A:?B=<;:V9763 0*%)!_ 9?hdzطHwesЩcg_:-F,CA(򢻤qD !z8 ]ֈ~ tu S"k*G159>EKPU[H`cfjnmqPsuxyz_{||}`}}c~~~e~}}g|{X{{X||c|p{zvp4h_WuOGA?@NCF#JKJpF6A9."A)0Y/)Ô,ɮ쬗ɨ4- <2ȟşÞdf#lXJ步-rb x #+1*68;v>}@A8CWFJLHNOOOL5Ep<3T*6  9  G'/5n62*z:a:vjN*09_'5ϼ缧9)ž=iz  v!_&)2,.134Z68:k<=>?@??l@ABC"EFQGFEDA~=C94k.)&$"&"v"""!" *R 1$K&59(#~::h`ݧ٠}9ƺka[Ӭ# @SyG?y!ljќ R ˘ȽD:Ʒ͟bטu6Բ*)/U/ !jZ3%kZ ,9GURWoWURNI^HIL>PTZv_be)j[o?t*x-{`}W~}{vqakgeSegl qfuRxyxupjle`;]|\P^Iadff_dd^UKB872/w1455B3,W". 9A|iG;f!P6NпrƦdb&hh̯ K(C# C͢)ѡáC79g!ڮխǧƤ[V)Hk.\yiԠ(@2Rm˼@q 66ڧܶNSbUJY "*4'@HMvPRWRwPMPKJJ3LNR.VXZE[\[:[ZZZZZZ[-[ [ZZZZYtXVTRLNJGFDDD G}IBKLM`OaPQQRSTxUVVV*WBW*W%WGW,WV5VU.UfS QOMUKHEB@=g:7#5u1,(%!d(os7 D m{@ݿN_rmK<ڍ݋ΊŊA~ڒ}:@뤒Bޡ #Ef`Z %Дk . ĭv,yJ3W,;7QLF-m 4iZ n&*-N.c//-+('5&#} m9L|@) ;  |'h:tr{a -&)*+r/6?fI5RSY7] ]wYnSKBD@AIDS]hqwzyt nfC]SIA<::;>BdE3GGG G1EB@???@ BhCDGFF;EB2@=G8*2,($ c1vr ISn9dݮ`508vA fVp3A*;WjJM-.4Ƴw(>Zxé X@o &1_772) )<5=~CG`JKJJfIPIISKpM`PSSV6XNYYYXVT]SIRWQ~PbPPgQVQQRESzRPBOM I}@56,"6 :@n|}8+tnWL 9"ߢ϶Ū>Zұȫ ݥM,֝qP{\lUh+RžŁ̝AՃ2ݰX sK$+J.G,%& h +=MWd]^[cSE5:&|#,/4L8p973.Y)&&^'*^07=GBD>EDUC7@:3 -&z @Wf$}M " }D-3 Ql?wQȋŌhi _MxxݲmiAn'Wpe2d  p}!#'- 3a79;n< ;T730/-S*&H#u Q$bxTT^%ۼJz+âb+@~s/a6Ѯn~¸JXfzMWUJ $'*/V8BTJLIB8-u")4>EGF{C>95~2A2b34L6N8: ="@DtIKIB9,? RT#ɹݥ/8TfQՐ;ӔlүҝԦՃԘ ʸ\nÔĒx BcWp³>^ b14'Yi|Mjw# }=q&P,1038=@CC%GLR1V%Z^ cereegghikTopnk_f_ULKCBEKQVeVSM;$ i.uטZ_ ,&q)#&OhNDΘF7XT C/ 1h/L qQPR4q.g)0uٻ/eҧΟM1Mʬ#،z;n?N܋ 59G/"&),05:=>U?Q?={: 7=5u42X0..,~)P# /5"rvޭXZPƷy?v浒hUƟ`ҢDsv«Fјמ`bKw gc h&+/12!4%681&clh \ !@kCUŽJa x*tNμ‘7 9ϑΘ8۱C+Z0,N qz%.0W+ydW iv3uk3ԕo+:"9X4 TH"<$ '_+/37K>2EJUNRV[^Hac)f0OaY[SA*+Rrs"1_s??Q?>'=:70668v9:;E;6C-!8 N& ],~ ,^кE8bikSn]NX۩[ǫ?3ڥlѫȪʶ,oϞٜЩkӼÖjԩ{w 4#&'F&%=%%%6%J%%$"m  n. .%w-6CQ[_.`]"XvM @4.5/y5@vO\*egcgei_TFV:1-)E''A(!)((('#$yF$Fe5R҂Ž'F$#H 4 PZ 1 g  i9>7wA"*l2S8::f8"4,"ac N#@ o <]?i O9X 9  rmrYV*'R׮,Olv @ՏÈÄ(hÐdߖR*B  ܀M_D7>ʠSer|( i'4.@HMONMJ E<3+%1"`$%%$!)#).1n9n@_FKOUOL3G`B=:83/J.,K*&# 3eG"k ,y=> cf-sy [%(+.26):m>:DJNQTWZ`[;\]]^_`abc\dWdu<;v<1>BHNBTW)ZF[Z2XxT?Q|O'OOQTWYWvURMF=<6/'SLk,t+ܢMn.b)!Lz G a }?'4N^2ҹkU5SjŎϻ ȿΉ>xA*!&&#1`b4 o ecR&, "%`&P'H((O*.06?HOTXZ|Z}XsVTSRRSIUUUU!VV8WWY[j[XeTNEo7&z vF/)Y=pVppf g qѯ͡QĢJ .Hͫ|@ FѯYʬ̰9fõG:h r-j;ʰ2ʔ z d$~q-?MVVYOLF>842l4=772V*.2Csp)  E3 |$ ). 59$;7/X$1%ڷlP%e/1+]U'X޺"eܾZȵï+㻐f(Y[ۣ@a 5A,8?eA?93,|*-6A[LqTXwVK7& zR  Z!"","#A%'(W))X(&c#k5 I~c%aйzȇv=Nq3{_䧢%$a زD0ÿHyށE;s} L$Y'+3)=E:LtQUXOYYg[_eGl)sy}M}wmL`ZO;& W&/`8==):5.'!!j@#Q "%),-+V'"  95c빺0ǘ\W&\yBnH>鮾 ҈^B؛ɳsǸ 'Nrݽf7 l^ ^ T+f= w }vm mn{ hE #*-0$3p4^4528EKNOTPPQRSHT,Wl[_ch lnmqje` [S6LF2DcB?S=z;8:2y( |^]F+Qbu'  E B t `ĤžΛ1ٸوgˏ~NjݲⰥ!ԩ}6*gC%/9i L"{+f3n8t<;AEHJNxTYh]`Ydggg hiknr wwz{dzvppi`@XQPNNPPT,XZZ3XT~PIwA,:;581m,r'b#f F$>ʹ׺W%- }ܑe+s/+{rɌL?t v|&#.Y247:<=?CC GIKzNQRTVY[q\\[ZXSNOKEHgD?%a]`Y7P\F_<1( $#"\ U p E@3 ~`1AQǾҥs1VIłZʣ̷Ц՟!7ZR X'#G)+.2#8=BEEGHI2JvIqHGGGYG3GyGGHGGG~EBCA?)=k;;T<=2>b=6<93R*K!I A9r L6*1Bl+ۖǜMǨO!qȐ1]T ŋE ԟ`7]D̗ǧs\ҪۮIR p+ATaj5qasog^VO@LLP_V\agkIoorvy }~1}gzsil]PcFg@\?sCLKWbkqisdqlEdYKFaJMON N-OQThW\Z^)ac|dfi llmJo1peommlk:kihhhjf]ba^[ WQLIrE=W2%   &+2j`>IT^Nƾn]?F¶ }*tՕOuG߼ұ|~GÎνsM/VDB}/ȘC^1ȋ%k#}z&A %+A1957;AEEIfLPUYZ]aehk-n;q]rZqom^kfa]E\[,9&Ťv,ɍuk*WO?HCf'/A2.&  +]*5>GOTVUTHQ{MaJuJlNT[Xcdkqs:pi?` VvJ?Y99?HQWZ1ZVPI&?4x-)(V((**[*)W)'$ ^4BlzI|eѿʉSk(ueËJ\\/K+Ɔ݇n7h->!\ҹШiQ $//8=]CdIM@ON9N.NeMKKKMPORTVWU1QjKD:Z- Bna"-88AXJO_QiO/J1A4'Q_p#i.8>EBB5AR>f;T98|9S;===_:50>,)(q)+/J3I4320R,X&!RlrU ɶ0YY؏:ҘޟtKTռX˳Ϋ9QVYCw!#,&' +0M8?EFKOYOLYFD?70;,M+-25:C^MSHVBUxRME::/o&b Z +DYD޼ȍ&&&͝L@Ӭ̣-*? 1 &5. 5^:c?DILMORHUVUWTX~YYXX0Y>[ ]^#befc^7YQzC.2"A Op۸zɝf%_|ϔŔ3DQO1=X(B0WD߄ w&2KEJJt}o- +6?DED>L6+-&#%-z:K\chpvqyhwfpfZOnEd@A9HkQI[dl5p4nh`UD. % P $$i mkө(jɸF_Zڙ9@6qrweAӰ[ĬU籬1b[͓Үj۾z2 !$i&&% #.""!!"$'(^))E*l)&`"4'?6J9 !:?/ #&)))*+-0I5:r@EGHFB;2)"]cA9!$%'c(&"| V9z} 6ۇM!ҹKlY/(뎙v0 ӆKLOh љAAU v{h'8ELL[MhH>2T&t_g"E*077p>D'HGIIGEE5B0ACHNTZ`eg~g#feccb`]ZYVPGg=0m '5N pH>A8h6,@ǹʽ~b[?scXúI_NճF&W = " +u5m?FLrR6X[\]]^$`.`^]l]\Y5TxM}F>5+#Q M"w(j/8BAHgMrNLJE?79[41u/$+$H iۄ٥ج^Ѿ[#fʞšϰܟdIav8\OSt]q ##)DYҿ4(}ܘM+ q&(%br^F5] q,:FMPQ.QMHC?>=>nABEMHJKqMNLI(HGDAA=q:60) $ (; v,m˿Ӹ9M@J-! !.dNįus*۩cta.ܳגlz˺lAƊBš¹^﷾Sɫ7&ϠaO[0lPd%/E7u>?FLSPRROTUkU~SQPPP_QT_Z`{f?k o=qhqzolihh_hgyec\/P>-/$24>#GWJnE 9(<;̫E % P4g_jt4#% âȝҝ$Iވ{&`$$1$N-7>BBm@s;2&I5 g3&SZ/b֣Ѯ½tc&ܛpbڃ#eު1!% rn *|#)-6~>EL_U[\\[CYQ^F9,"9<(<5DR\"bRbR^`VaI69 o|_d)0=1M.WYT H|6! @| 53@ r)I$m8vQ?&{o`Mxf= ggkBhǩ?KØʒpkGLHlktxog2i7h4˲͛So?"h@ .%&9 / so93"x5GTZ\]] ][[]__`7c=fVilCqv!yyvqHl@f`^`Lehi.jgfY? F (13,:i?RȤχ Aơq%aJ/̉Ӓל^ܞ7\h3 ( !"\"R  SO%f.ޏԀʧN1#ָֽ~ƣpD՛L{0r N$6-.'T|!2zJXa # =ml2 G uٿӂοʇ1Ì开iU<Ҧ3y=o$0ӵѺehȔlp@r+w8u0)(#!'\":&)+'^ ӨÔݶZ.^n٢OG!(։fۆjՈވч3E]K ȐˑڔoΫWd7` ;0;>DFE$?2# !8Oazmvz[wl|]%J74 L+AYlcwU{{wHm ZxA_('.0-o&2r &(2:e=[;,72,% [}U{cjVdLXɻ^ޡ4Toh6ƧVcm%2{ $-,$/+"0Q7W/=GF*HC7%)zr tVdء!8̶03G̷twe gǁ Z 1bFx5FUY^7EhxPR4$(+n-w059Z>}DLmU[_cch lmljiSh'e"a][XDJN3*'*j3@P`nw{||{x!tpn64/*C*,%29AGGqCE:U-"P@ ! 5 &"\'E)'! eQf.öıخY#٧!ȠLܙڗߔĒRoeڌA݋TՊ*n5'7/xǬݴG?dWy "!_(v+=-/257=iELPTX\/]]N_a/¾_[Z@"DOHPL8OuQTWmYzZ[\\]]\RZYqV/PVG>6{, k;nۄޗ#NA>җѾ&fA ]Dqґ#bLǝB*nr¬3ңY>옢:fxAǔܕU˙ +Oݸ| zџ(@  #*07COuZbjqvw6@/:($# E  }V !f~$[ٚԗMȃ¼Ͱ_期I؎񌣋Mrn"˃քƆM!lC ÖX6C=.J7")2-;z@C G@KwNPRyVY[%]_(bcdfxiSl/n\opqqomkjiwfc)a]VL)A4W'< 4 Իtab4ķܷe;LsڴD"ǼCS@*ęʼn[Ȼowh:u w!)3n;AGMjS%WY]*adhrkeortMvw!yyy/zz{R||\}}}I}C|zyAx!wvZv0v_us7rokgdqc,cb4c2d_c$^TH9%k"Єc˺[ܕΑ ކk|Ć|3xEIFzє%ۘs PG};ɣΤCק֪fpf'8A o!}(- 3%:AQFJOcUY]`eiilphs%v|ww&xxxww+x]yyx[YWUT&R P;NLxKIG)FDyCBDC>CA>x93+,g#Lwo c#/ȤNΧէըG<*kP Y ATAhEWĝYB󬋳ąeйԏ.E- ")k8 biB r4b  N.;EKMLG>2&l2$t..7>AA|=83\/+*)*+:-z/2589D=AD}D@;4,"!&) ^kZEBe Zpe$ӵɲͩ hMڱ޹+ʏڃ`&Of" t+z!#k&x'''&Q$L!.Bw 3'q5}GqYpl. 0&.,m/145`4n0[+C& ^ E7P I ` = F {  mM^}9bu f  @u4R)o 1M4ѱI#JNg,wƛɚ=kVߩWп?u"Ԥ?w%+06[>GEyJ}OU\p`kcf@k ouqgsuVxy~zB{O||a|%{yxvsQpmki$fc-bJ`z]ZVR%MF9@i:4k-'#%K MSAoGr׳WB3ſ " =2ppP1yo!'2*,- .o--/%2417,:<===>>==P>q?@??3?>=o;L:k9!8655[3/+)(#Ef gMk-۪륦ڕ\d/GRУ3ml{I豄sߐ6x( x4  3 < W2?H yN;v'-l/,$GD= >_/J?KxSUS0M>;A8.6N5n5Q678987_643;46-: >A)DB<2&} la` _ [.֕է֋[սHȋR˧|ӳ>󲚮aqrs&"TcTrؽ@ _gZ_a _$*2m;A F#JNRSSSRRQNKHDGECA:@=S93.*h'$^###!KZۑ~ qka9)5Rӊ_U/Gߴ}]0R#Z'+0k58a;^?VDzHbK#NUQSTT(TSQSRR&T6VWXYYWRK[D<33*%3"!~"I%?),Q..-8*M" rچ؏הy"ö򳾮4Q964*n颐ÛeƜ>+ӭԱAȿͪ0=W (IcY 4 *#w-kU-# /0tq  <d,n"*' *,06^Z G+ST%J [r9#*/C49'AHLOESW[[^afl,qtuur^m f^4XSQySW]bg8jzkjlfb_]^XQUJ}A4![ t fO46L~kLBH^p߇}5sGͦdy&Qگ {aM͑΢fИ#j|s,Gд# uR8N;DĆЕ 4;(\T7'0V8?CDwCCPDEFJFPTXZD^4abbcca^*YSMGlBH?>@lC#GJKI\E@91)5"I Zp]wˮ6. h:0ȷ͇<ٟ"{OXOSK  gRzq6-X8|Eb 9ЦΔѤסޞvx̲Ipaɤ+ʎ=B&˩Zҙ ;nh`["1>>HRX[M\]f^^^a^___=_n^]m\[Y=Y_Y;Z[]_ac{ef.g]g)ggffff;gsgfe_db`}]ZHXUBSPNAMJ@GCw@;y6J2/.8,*X*($E&uNl;6ߐcóhPV+-M@wIP`'Tу5J&& fDJ(Ez1 ",7AH|NS\X[m]`odghmjl_n&oo@p)qqq/qpQpronmmmmmhnomib\U5Ja;, !0 BEXQo%zQY 4 3 wן5}˻JDZ;Ш1]ĪѦϤ1Qƒǽʿ̛wm߱ b[s N "m"! ? 9)n9 yaTی۲h u 4"$>T6f'u,u4 5.!U!7@M $  >(n!!t`dm]p D6l#&v*/s473:>CH8LRO SVXYZ[\Z_YYXWVuTYRQO6MIFVD1Ah<*72.'J X| ҼǜƵŵƀĨ >dS߹]  b | ){'1sw-9SH C-^mqΌX~F1.Ѝfőɚ⟣ܥ{B& >Xs}ak -¼˙K2߲^-Hf) N[2 v$$&'{*1O9:BLXcjknpNr7rpJoVopqrS `5W^my$(#,.01+1q0@002358N;A 5#9-h4g8;A5FIMT^@gkn)txzQx)r_i/_TpMJMU^hiszN~9~{>x$sm#gb`_*_p^z][WQ/J\B9j0'! ]#%%U%;%%%$##$U$K$$%'(*+-/// .+)_'$M" 2QEn <=9aYNދoƫç;ϔBh(TT􊬋*ʏK0כߣ)/0of$ߪ֤XM9 :*^~UW a1BhQY\\ZVO_G?y:8e:?FNTZ>_aa_\WPAG7(EILMGJ`B5&;A #E*--+3($c & ""#!jK whJ6ױө³Ы˩ΨyFڀx|\֡zܰV˲,֢#̅ˤ #z $z!#%%')X,0@7=BGJMsRUWZ^b1efOgfadH_WO^G@l<; ?DKhQU@W9UfO2G=2:'9 _xjuݦؑ ж5=Z@A-/6EM5BfҟYJ;+,OT !',038:>CHNTcY\^acc)c;bbba`__^\XVSJP,LH G1D=^4N)Ym #do{Ʃ~/g1~J$ϛ_ƷĒ[ɰ:̫g(2+oե:|ni @ ;:Ye!1%E),)/E26u9;=@CAEXE)E3E*D@Y<8w40,/(%m# 8jb? *@cXxpFY9ŃʷϟN`ӃӤkGv^6< _J"%& ()+.2N9.AHLPQQNIyD@>==>:@=5' P=b>P-B iyeRz(ބ rۘۑ{,Bv߄4 =XZQ   s &z*-/12210/j.-7./1w48>DMITMQUXzZ;\G^_"a:bc8eDff&gFggfeIeeeeddcb`S^[YWTrRPNKHFBx>9N6z3/+(&#+U hRߙc˻ŵ6 Щ%Eޟ߁Eق A,(큀ч@ŔbÑؒ4˟Xϧɪܮ7ːԍ:uJk'f_!m)18=C[JORTgWZj[/\~]?_`@aab_cca`u_^e\ZYYY YXXAW8U%ROSLHC =x71){`$ &\}6By%tewއ߉=;97`5;2i.*'A$   6Z qr < ;DPL1VCԫ* :,,Ս0iOꍉ,'ދ-{΋ՐB>j֑/@ vXjז tˬ>6#P-2=2+t wN (#-7?CC?7h.& )'!(t4PC/PY9_5dIgjg0eb`u_]\\]]q]\b[YWT4OIDa@OoC]F0HI KJHFE0E C?H=C;8V5420\/,(y$n v1Z3H4w U_t? T4 ߢٜԕ^Ò5ı ɟ͛( e=|QI7=X\ k!4" !A` }"=%%H9@ ֍f&^N  g*/`/*8 r$S/4v5~2+g" d s f #; V ac^DC(Ԇ"I* dd ;.P>5ok!h|] (%(+,,);'x%%&+3-7 300F0-)G&") i &zz@̹鲼"،^ FGӉƺH]s0̻38]Fk#j>ԵsbAͩIk4 .K l f * %-48::97422s2q48Z<@hDGJLMLLLLLcM#NNiO_ON@N:MK8JHG9FxDB=A>V;f730T-)'&%Z$K#" ] {2@R1rȍĨN6<Ƙd4ڕxf eв}B]3W])9ݫݘC e( (#,u3`:KBHL9PFU[a#eingsu}wzy{#}K}8}k}U}{y{wvt9rioZmk i=d^KY7SJ?5.'">!%*.q24553-&} qh^ r0#2Oom ţwί&3pӲ`ڮ$Y,Ԅ> ߨs?A`  #'%"RQ9  W G !kNΏM\@ANiҿYQq+P,ΤlĦ9 HW'ɠmoMį"ųT6]CH>,'%)8` | F`)5=A=5P,b%|!!%0=IQ(Wf[]D]\x]_a@dNgj$m nWnno ppr1uwyyxouo7gG[NXB&:67=lFOUY&ZVrP%I8B;5G1-C)"Q;BIzydbp.cɘm%ɕdtƘ=\%nlīV{ 1('lVoEb?t * 6 &k]X;܎5ڽ2@@НlbQgkQb$A kAm!=%(*-258:/>BzFEIKOFST#TROKbCN7*.:m $R.69P93(V7y'FjR0sY  d[#+1 4-1`)r(B,\ >WubPǽ&iMҜ6гM٣EXezd(1 5|41,%!( Iod =.߽5CZyxְ, +Z5.|-2`@><9h62u-\'!sOn C+lc/&p]qצՀ^u8I 1&f0f6c984c-&"o"!&.;!ISY)\\Q\rZ{XWfY:\^`]a~`\V&MiDm=87;*CKRW"YVLf=T+NH5 N܉weʅʐ_ʅǭ¯WfҠ[j2GÆmއъ!\v4;;$UsڹEh+"/3;>;مӭ`)4ųMdn`Z!Ϛd Vc 0 k T)/4:AGUKMkPRQOLI GDCEHMSWY^\bcK`wZ{QXD2 D;" &())5)(F(-(k'%+#w S=a!i!C 5'3ۭ߱ B5߳1m-! *$)2l91@FIHGEEQFJH6LqQVX Z4ZYUP%LHCGGH9M,R\UIVVVQG9+d}f1;߶CD;ӝd2fG>n7p(2AȠȠ^ɋu/҃:YӉJI}IDH4lAk<[W<+ 0 C'\1B:BH.KqLRM~NOPSUW_YZQ\6^_`begpiklopq&q#qupmid4`8[U9OKqJHuEAN>e8-D Bk<5 E+TUȖ~5϶+lɰժmէC'qVD9F9)$9'.Q25>:>@@@@s@\> ;863.)%"` .5egХ̽$Ȅ"7sƤ+˽НcA7z&&w m 'c6JFRFY;[[\[!ZYXYZ[(]^ac\eTfgi&iNgdb`}\qWScQNIDi?:1&^+ =wEԥ uKSƱy-͔v_˥2Oɻ̴ ǰ_ԙ[w5)8ȕʱKUiXo ]+?DNR(Ke:$Z ]aۈ& w !%*-t,(!/"b|UAHk?݂NO?* {W/ |p > e '4091B H^LjPSxUUMT ThSQoO~NNN NbMwML`IGCAr=3&W^ 3);Q [)V֤3G鴳ɯΧǠnڜ |XJRiDۗ'葾nԶ¿H̿ | wѾ0ffi-;A?8,C 5 5ߒ5%-61/**!_^ s ` %H/7=5?T@FBD7FiGI/KKJ IXHIJ/MQW\]];]#\XT`RiRRPLM?IB6'}f"ǽ`-LϹY?=:4d,"C." zJcQ2oƐi5%@ųR#0yY0,}xHe e}3RQ4JS[fdiZnpolk|moyqJt'xU{|{yxvCsvomkPjgXec`@\ VOpI4@g4H)5! a-w>ɔS(Y`畈\mi՜ סx@XS_)~V-)o= I >e!"E'+K/j21-'#e^M0 X1̡ẬOZ{`jy$jYꢎ͙ɖt隂fP:/|¾8P#mQ ȳɃfπrL!'b<3NY[bX PC16i+k&&+5C5R\bgloApopp1qaqYrsIuvx{|}~}^}\|{y0xwwwvutrnjg*ftc`]\U^H6$981E̪ߖT?/ܝ9٢}p𪌮;WۼɺEaz٫4aGè=«SWֶ &ãy*j0c)ԅ2݌ 6q)h19pAGJLRP*TWY ^xchnloosv wwPwFxByyzz{{y(w)uro-lkkrkUh>d]`YL:#) oa_f~꡶03aF=ӎߍO؎@o2"pDޗg +#(*.y269C91*+% O; w+(y͒c@o̲s|U+6 )׀ڴt WA j^#-49 >>9d.!  )8;LY_M] WLV=)X  1@KRTQH;/i%h 6u.ևڳiknZބ:ѷ:RtզVIǯɬm֬_T|x׾TGT}[M!9މx$)T9Vi^V } ; [+Jn"\%(-38<"940-'h `u>$ D:ӰӀ|JwmȹoP`%/cے5ӗ#h̚כݝ9ȣǩ0A.3ަ{1=(TTBM +M8AGK3NMKGpCG@=96542.*&"? yNnF')̧Ryɵωҽ%-օԳsEز)n%jz :}zG5\ ,%+<28>GN TWZ^acdfhFjakmDopqYrIs'ttrqNpngkPgc[a^[XVT1QLdHDE?80p+'!*i zmtOەșϾúwh粶s^Q̊|Э%p=4'ݓ׃E GU&O֤cahΜh,KѴLaM* gYƹXސ]Rgo&&. 2H200.,*)*c,v,(+ ):&!" FU$Zla"!Ry#0A;@?F7E)!;d?p :mgH!#k#%Y Q IN n^ܖ/ : m@ s@kIn`DQ* z _ 2 ` l !%(J)*V.38y=DJZPS/U7VrVU TRRSTU3WSYr[\\[YWTQOOQSVXZQZUNkE9*K  Siݎٴ ݗ߫YEQlL^ĺ"eoN_5ōs >C'򅒅bDBS~vզ *l{ zT7 9&Q-3D89:19]74$2 /+c)(%' &&Y(|,049?E{ITLOR-UVXk[^ `5bdfh?lpsyvxvyfwrjaW`LAL;;?GPlW[][WOD/7',c#0`> r;EO9B¼V3;T!<{񣭧,>B_՞:uȼZI\Y-ٖ']M#N'+1568@<8AEIkNTh[Z`dg}km>mkjigYf\ewe6fwfe?ed{c`]G[X UOJiFAx9b1*$j ^rRڇ}򾃸tPVҋ󊡉 @l/׍ŏґMߕ8hݲmċd8#`%@-!2.6:y>]>;876323'677c641+:%~xD F e $.+0;3 3.',+R@ t +$R9"g%(y,,15n9=UCIOQSUWWXUND9.$G;j#i,}5< ABA >7z1-F++.949;$8&/}"S]/) Q ,ʹ[گEǀв 4ιF奫7VXĐ[TrOФ;ը'hiBz ^~_+U K3p+%[Aqdf D9~;L !":#$%8&&&'|'&'d+<1h8AVN[fCns;wswslWd\FUQ;RV^foJwE|(~|xph⠀C4B5=>u>Ր䐘?|0jP ՞lj ~iŞԦ .1(NT} #ד܄a( @*.K//o015=GOPU*X@YXJVRONGNMM(MLKDJHGGG*GE DA>#:52g1136 GORMR?T+N݅5ғ2 o&"&.+՚t޸\3)Fܿ8ޛbKΠϼ &PӍҠPfϐ{Ғ]ڽ`U3&xA-T; =U_=[Oj╔+X[_[ӺPL 33mi&M47=cCPI`NPQTYU_beh`kkeiHfc/b`j]=[YVPGw=2&4 2&+-+%S"=g %+֔w Sbrf8aWp[E S'!"_"Z""v$&'(A((O&#S#8'.N8LC2P]hxor4ttsdqooqt0v=xzzcyvsqmi0f[dbA`\ZYUO^ID=f43) 5_~Ǚcm,ֵHH@ިXՓÞݧrۨv9(ǽy0;l;V֝͢+z< t{[U?xUڹυ5+߬=ק#YՒрdŒ˼ZǪ\gxn̹sO@ƹ)\SŝgpÊU8˅tI Օ؁ 9*l&,?1>5;qBH[NTqZ`dglDqsgu)wyq{9||T}}}k}||B|{r{*{{zzymx5wuws$q`o.nmAllkj,h*ea]{VO(JE@;8692 ,%c *O$:r*?e¦oWy1)9'Ssbڈ̇1F1Dԇ֍֒񓍓[ K#&Qf5X1Z?CìgUѫֺg  (_8<"%(+-W..V15;A*JS"\aeil"nLoqux{~}>zvsqKqrsQvCxxxwu>r5njgdbT`V_][~XV.TPJF@91Y) #- * Yٿ VWĩ>PA雙ޔQ+Ə6Ƌ݉L=ˆÉq”^-~&pݫ߳깼ƙڨ6J+k7p*5>AgB`CpEfGH9KNR1TSR?PMOICS>*:5U0 )! 7/b ~Ni bn%5 } 5ޜۣׅʪ+0@S_Ƒ!|u!P (7~_ K )l"'e*o.w3B8(<@qGOUZ_dh8jyjjkj ji@jkkkk lk:kYji=i4hfeca^ZWUQK GCS@!;g5}0'+!#P5q5Y݇gjVʨyşsR㥿 kDӪ׫];7rM Љր"|oJ& ; + !\I%;"/2~ңӭԊ֞;0Vբ՝ֵ׷խRAiR/* g#d,14c7o99853202.+)(&#A 3v w 7a&//5^:#=f=J:46.($ k'JxDa 9-)Misv 87ɂ؃ l"y%&''$H"!D$(-N39N?AzA?>=;9=8"7T4. 'lH5A15 9 SWScǁ!;mlpYm1!%Fb|^ ۝ڟٟع)׳7E,m؃R-3}+ɾBܾ4XwƇ WŇ@ōN̢~tlƛ#j . 2e 3 !+3:AgFHIJ!M!P9R@TW[_sbfj9orqrr!srGoElSjhgdHcba^aZSW?TPjKG980# x 8V { G |m3B"#^%x(-34;EOY8_``@]uWNDG=I99?uIT]c@gii$f8_V%NC7* Z` !'-+24h30,&,tR d?[E۳'p - #P(N~cܧ&E~Խv,ء~)mB_SBޢQ؍;SOV,oop%,3<98=@CD'C\@h>==>?BEFC>>8/%},  /^sҹ9ΔQ i\ȺP4ޱHB2 W=l7оҬ\ߩ840-*B(C'& &!$!jK>  ^,'_CC`&0:AC@;5/*n'&c(*m,,)$H qN !'282+a$ lX|!$'5)) (&%$###$$#"!Kw a]|AQ'_DѲσ(IU]X㦍ϒa)R2ɤpsȍ𞤮cןP)Urocw *  lCqf#$$I###]"#!}!@"o  ! U Pxtկڊ͹屷"|oXjõ۱/RVSQMlnZ֬6 1 "!2C$!K'/&9BJjSY\]^Y_^]] _`b/d&fggf3ecDb`__`,`_P^\YU#QMIF?DQB&A?=9v6y3W0-1,,l+)e'$ p F|N=(؛M8% º%e>%C鿢î:Ҵx;:s  w|v @E@)WW`XC/wU <wA ?] "i$%%$#!G R  q=V_ .x!u"B" (]gM = h TUJ3,Z̦G''CIޢm:/Тh)\&8bEeʥ:ҲKٻۋ$c3Bګۛ'@}2 vpxR{ [d-zMRXU(t0D-#wrkL, hi( 2 SNeSM"i3J_ K<=&<" | n f])2]9g>6BC C@&?>>?BEHJLOAQSkUXb\=_[aFcd_eedef>hjlo|retuvwwhwvvv9vut.sXqnTjgc_O[sX W+UQM,JD/<1w(s!*8W 6,B!Ђݫ2cڃ˾GeZMͼC鹆h+Ӿ٨R94j "`8}ѽ9CC * C/*Ӌ~·-Ę}[x۪ŰnnyQƗ^$ƗЙɛ K &tU;f6D_Fb\~ΡϲDԧדPj"f .&@+R,+), .18 DfR_iqx{|Oyurpxooqtw yyyyxtpgmdic\7WR#ME>-:5."Cw=90 P?= AԄ}L[e,(r  %@,..+'V jp  J v k dDB[Hj0)k_h|n m?"! '-378+7'64=2.+*(&E# J <I֮Uٸ+۽ǽn\߫$ɘǾȧ_iЂx>~ȅAe{;vՑ<lF!g'-1131.w,*('')+,,,* (Y$ !a i?u 6L$܂(؎`\] IKu upq=ve2vQ !%#n_N(\J YD { + U.T,6!#"p"!5~424F esM2 y[$y¦]'C-Jˮ̯+еeǺ;(WÿEĨ#>h׀JCK@ij, $,e2a5679:;=AnGLQUZ^`bBe\ghidkm-p(rttvHyz$|}}a}|zxSwuNtrqomjkgda^\z\E]6]c\[ZTJI(;- ? ߮\ Rlڋiˑ]Oɟ;Ҟa&΁˔lҼ]£Z\40ؙڨܻQu;l5^uM~o N ^y&awrl s 9M #z*%/244#31u1236:>A{C{CjB~@=>J<;;];<>AaDWFGFEDCC^A{?U>=KZIH7IIG4FXCT> 7F/j("BF ] H5&g/z;VEM#  w4&]Arٚ2-nB+ĩ+y[m ĎȌ:ބ灠] ؛ g.(EեlbشFݽ"C#Mχ)ާZn])!X(06;7@=FL!RV-Z^bemh loLrBtvxz{^{{A|0|{{{{7{1zywvtAsq pjmjf-d`]YvXWVqUSMQcKA6N+] ,K }  r%x*ҫ-/ʡj?ռҳg@涙kͶ*r׻I&<* ʠP |E*;nDD>3$}KGAi1 G1!@qHpIE>6+["~gp@w0 1+g& Щ΁ 2u b  Z_OfC7&_M Ygen )< #(.26;*?ZATA@LABCeDEGG,DB?: 7y42~3D688C4-"R@  ] A{| ;a{. G g P K-ŬBܧիɉlϟ8WkO,:CꭕLBU*ҙӍ+ӚԙlW׻DڙޮZZBݿRܲRC!Lz .h9$@DG*HEp>?>=<;9d86h42 2L1205/.->,*'=&K$!|dp=]1=6"ZDX*a Y  SdiSwdt.j8j  񲛳'紣` 8(eϨfA+=p,J*r!L&).38Y De>##&((+/|35r8;=;<72/-&! :?]^|? / @ [ j >%1h?J,POKDy;0'1"P "'0;"EKFPSPUTQN L6ID?\;73.$' 4 lts;r/# Q  o Z ?=.Akea"a)a/23o31X-'M#!@#R%'H*+g)|! /* ޶߇ &ޟ(ϋХ'fQ ,O'ezW %*( O_ kk!IT(y%J;5'ؕKMܽLܹ݉ޫߥQ?Z ;_"~+R6@HNSVWT3PJiE@<::k<>ARBBB@=a:8889;>??2?&><:79T88+88n99875_3C01->+`*)())8(V$&t%zЋ tnٳnU'֜$ྫྷ 4H7^H/ȜA4.BPNܠk˨-E ^?C%Ts(NM˩ʖ|%C'ؘbn+- ty!W'e.4k9=AFK;NR Wr[[^`cf%gff gqgghjCmoq[s%uvwusqobmhiea}^7ZvTNJFJA;6o2,y%w:J&NOIV~FܯV,tqMAvHn />BS-#'+.1w46556666D7+88 8G76654210 /-[+*(& %#"J!oqasM 4 J J{,5bRřQѪ UqhMԘ֗dKЛɛҔx;@ÇЇ2cj$tՏ}2tJ,/ӧ~^,`Vޣk6R3<,(4AcJM MKHC\?== @xD@KSY^8cgmkll6mxml]l=mor!uwzz}R~}E|zxbvstsssrwnpib\ZOE>$=@EK PPELC7F)!  Ru t  ? <C9;|E21 RM#(*'T ; TN _:uqjx  ~Mhdj~ ڶ~ն!;Ԋf,[ˌƱ.ƪ+迻<Φ E5 rHO[u?.Q߰gԴЋN"XM k# C pD!! s$G A @ 'Yl:$ .cF  sܾ}ƛ҉TpՉݾj|R nbd<ӖZՏձUԇ^٩ܴ.cGF$ !['.G6;R@ERK'OQnTX2]`dioMrrqepfnk:ihhjkjIgIbZ|OB72 5V:~8q2s)? sV?Xm$w1gaAF[]!I~.I'.{b: Q&t?l _#Fx[cRTВХЄp϶d""ׇqyqJ{^Uϡ˻??мN$_0-ٕۗXX؄֏}tsÂyƆ#ldTěUƿAǀ]z&/F%ϫJҡҞBWҝZԉԄ]S ԊҶ@VaMZ-C ڲx܍ޔx2F[dM=#)1-13V44Z7c;?ADGIIG*FDBA@?@AABYC'CB@{?=;9Y75"5X4W32321410/$.,+(*Q)('&&8't'a'')*J++Z-/1n357:L=?]BlE.HSJ9LNOPQQQRRQQQQQQ"R~RR8S4SSSSTTUVVW~XWU%SOJ E @6>?C8IOUZj]][AWQmLHXDAAA.BV@B=:60*8&9# Ka2+=?۰;"̎9.оXJg߯IY覕˦bsêީvɢghД:RӗxVHŏ:maZ$"ϛFҠC={ЭӰұjHϭVCErl6h \2QI 4   ? %)+*& y Pc SG4)%r*/,!@"#k&),.v02E4I4 31{0.+(n&$"`:Z o ME:vmFu 1  9f 4!#j#C#v$+(j-27;>?>f===x@FNW^Qcf iihgeVee6ffg hg"ged1ddeg@ikcn9paqqtq}pOoniljiiihggOgfdda_U]YTKPjLJG@:15V0*#} ~.߁ WkA<#VD>ь&t ,;Qއ{eSߘLL)>sik>X޾$|oq" f A75 "!N7R Th*7JԈc. %53+Zkʣ¤Φ*q᯷hUז17І,øնQp+3w)#-#;GGOUXY8WMQIBNKhI$HFC@><83A/n+&!*= Dsл><1e*x!=;t[ЊԊ)Bь͎ӏא9꓁Ӝ=HݦߨSRYBƻ9@u,YݼVHmTy=II1c]%(7+,0-+'# -f#hY:@mq2z U  f>c+.{g8}oԔ2"a-XSa|q%3 ASJd!M&*Q-f.;//.+(&g%#" j #v5~x 3'FlI uZ|K{G%,2_8F@IwRY^d1jrmo\psqq{po_n`n(nm6mmmljhf}d`\YW[SNKHKD>A9#52z.*'% #$ ::J % Mg1X͒.ɀ$ O?n/|MN.O 6  + : & n Z3OlAq܃Mv:7W+WȄqŽPôoJؾ׽MuQH\ԶׇͿOĕ:(;r策 @P[D7ľMm0Z2ڬsLw '"$E*/m38?JINQV[`deddcbI`\2ZW!TOIzEUB?==[?\@o?+o/6: # &{%#!% | x$)W/3]6q86:?;;<8>DBFIKLuJB5"& 9cyIucdڎ߱]pCJq[Cp|Š{^D!F2:hy?ћaJСѨFKɾqѠn3X>1 0:BPXZXTL@4)!m!&+03L554Y2N/,,))m&$$&+)+R.p1j4.6a654v3`1.V-,5-b-/.Q0234d31w/*_" `<;،|Բl܂ &)%a)4ՙgܷRI2 #-2T9A$eeT9`cHW3ot\~O+՗ֵ׶iFڳ݅}ݥG߬]S, Pp"&*u,.9269_;Z>ADFHJLNNOP[Q}QQQ[RRRRSaTTTpTTR>PMI(FB=:7 643F33a3w2W10/..1/}012#32B1~.9+(B%J#p""M#?$$%h%4$!%LKM9 > o b9Q$Pd}3+IE|Ӻ\invñĠŸ`g]%ٻ潝_н"[‚dz̪ΏРӈӽ\ҼJɾǩ ⽄|X^ųe)^ߪLU,$g"jѮ᳨кAI"ϠG4> bFx$0.6=DSL/S|WZ^chjnqtWvwy{|V}}<~j~ ~}f}<}#}} }}N}Z}|(|.{ywQurpnkihgecb+`\%XSCPFKKDb=72+#mK }ݕ׆ЍY.O {DD_t% cە𓮔{4ƵSÊȾλx̼Xʜ0چK ڻk-ߎAb') &$F*OG+8ei{ I wKp^ !"c##$%D'(l((H)m)('=''&Y& &&'''q&$&$"Wl } h IA ͮˏʟK B; ƚǴ*qnr7 ˲,ЯQ׳ ܃hgE~piRV6O.fe+RYFf\ S U +g t+#)0#6^9;>tBEFHKNkPPPPTO@L9HD'B?< ;5:s9X7 40,(!{0eO#GT ! mX2 $ K !#s%&(*b,x.}14X789?:98668887683,"3 C aa( E۶=^͒%*լMg3Λ 9YcqMÓ*G9HџAoIZb>z?!go ;_#+)<-048;=aAE J]MP#UaY!\]^_\`_S_0__g`'aaybpbai^ [WtTQ;PDQSUVTQJ@>0. G(Z # AlۧSZyh[ۻWڤcݴǽбV Iy| %,((^).*$*(&%?%#z jZT {XOAw 8!Vgcds?*Zk٠%ڀnp4&JVRiG0 }( -?NW]`cTcan``ab,cccTc5b_[WTORPP9PpQRsSqS8SRQKPNNM>M=MMMMMM,LKIEB>9'3.)$-h T@eerkzTódg`C2fBڤ[PU (պ}_þddԋFp7 "2G+HoIʍ;ˁ"dU%_cxd/Mm|߱Y'ZɞeƫŇu̲O!ǝɲ\˳ɳɅ˄ηӰ,{S ( ;?h"*2 9z>DaKP;TW[_bcfifl,norsPtmttuTuuuvwxyz||||{z`yFwsplNid.`Z\QYQUOuJ-FA;4W/u*p$D= 3Y#޺iϧúPyêް[0[Ѣ@բۨT1ީǘS] Q{t][ &FKA / g q  Q M w  LS #6'O(9('&8%#-#$@'),P.60J0- *&#!G!!9S!5Kqq}!Ȳʬ!l Ȭ_x)ݔx𩪬Ӱ񵵵շƺؾŦqޛn' PڛܙX$1:<7*.!7 }A" .<}H*ONF'7#"'*X*'#z 1&,39>??>y<78 3.C+4($J" y _ 4ee{/ݢk޽݂R6i)1rݛ}$3 @FJNP9R;7L3.+)&$A$$%%%%%%##"S"!!!""&##$$T%%&!''()<)N))));)(#))(''B'&.%$$#F#"e 7J  A^lrC 2m'C+#*7$ R%% ABMG6FmG|!m4/*hf{Iч=,P̽ȢŲ™rƹa²16_rMn9zJٮ$ܧG\h͓^'KυщʌݔwYƟګV|ų3a)И k *#pPq#(+]/11X0!/!//D149?DEINlR;5840,W'!~ x LPI ^K!Y"}!*o!%)+,5/1p468::95P1#-)(+I2!;EOOX_aaV`]%YSNSLLN@RVV]Z\\ZsWMSeNI,GGJpNQRjRAOIAV;7[5469?EtJLLJGGC@??ADGIJKJHmDQAu>:62./+e'"A |nߪֻ̒EMξ,x˭l7Rʘmݔty*핲^p62OҢݤ)m o÷qHĘ`ԯױwRaYe<|߃Lz(ަ#@4?l8, GͦiƁ+5 мx]Vټ54R1.,*v(%N#!!fDS s 2 .,=I-1&f"n 9 2 Y XKD!#&S*-/%27v<AEKRX\0`cfvhh7hgf eb`_][YX$X8WUoTSxRhPMKKHEA>BDFiHJ*LKIFqDA?=9?MB5EDGIIF[> 2p$nW8۳۫=-&zұƈľm)@Ɛ'©­–¢;×Â!"<< > ~km9 U"%(s+--...-../1%6;~@D;I2N#RfT6V4Y!]`%dFh_m"rhu|w"yRz?zxvtrvppmrjKhfd}b`_^g\X,UrPIbA93//+'''i('&a%# 9ZEW/;G]OSr` c t = y p LTe'Av ~T{* r9݋JʔLJoUBy̓OCiuEe5`ĪŬ-UL-cWE[qC݌ 8^V'T3˴G"̾9ăéťɰצ+Wh= ;MCj$1)-r3:AG`LGRWW4Z[]`bdTgjmpqsvwEwwxy;ziz{{|{yxvs:pljgdf`X]Y6SJBi;t4-V)8()C)(%3!F -Oi5A״Ӯ@ڎ9)  +!$"&),.W010E/>.-,!)a&$#  M mlhv1jBg>JAk@g6=9;Cdɠ~F%`Vhm/7*i ^/Ga# i!!)0+9@E7IJIF!A:}2+6'F%%U'*\/49"=?ADFdG HHIIHgFDCgBU@d><:6/{'# v_BVsBiQk\8&K-@<˾-,@>Uٍ!נ|ӥӡӨԔP֞״AݫPb {Y`C=D P P_ Y{.+U |~ۺګVb:չzS1؏yٛsLMBC,&^! ,%s$*/378>;84$1p.+'#a i\  5Hb'1ZiȢN꽈TZt4hjmrЏm-.-T%TóJR)N[YõrD&*Ҭ`0F>1IPF4$6:Mle f'/477$60( >%e1B=GPUUQIXB:3K-**+d,,,+)&$d#!M=Egs0~ r f NB$IB@"'m,o04}:u@4EHLJPDS:UdWbZp]_eacfghei?jkkkBk=kkEl!lkjjihfydb`u]ZXCV8R NJF@9?3-&gy qEIͺ:{aֲc6P$sCب򮥷q( B  [< o F  r;ыιЏׄ>,^{Ό*U͙Ћi vҞc$ββϿWh8ռ=َU۠*ބvX2/Nvw!(.*3q7< BFHJ:MNNbN7NNOP&RHTcVWWV+UROKGgE*CBA8@??A:A@?=:(8B77=7l52/*#\cn OոaÇ+>㾂Ŏ>Vd ȸr_?O% d ( R  Q  *`xC-i 7QsIisVؔnxX.| tjpK Oؿ5 K3f$H8ϼP Φzs $!8kTf$->6>=E5H,H$GFDA>}===>>l??B>;B9630-=+")&$"!k`MK { KhQ84iqr yz$f\("''+06=fBlFgJOiSVY\`cFflhjlm?nn$nnmlkjj_hDfLdbc`]:\r[ZYqWVrURxNsJFA;51n-'o!"Dx)$ṗI/bժd8)RjQߊLɄ܃uȅ׆ÇOڋ]mbm髖at@ʽսڋ޾~T     )fz u.,g`ߔ Aʤʴ.)ĝ?ӿ¥'ŢZǩWӻcqݶ%Hn43/#h c i^*$).27?8?%?>D>=95?3&10z2Y3i20.+'3#g q p`*x9X =!aݳeֿ!ćHϡplSp S0܈PWg t[^iWIoIXFGAĎ-opb@T hb$v-3>9R>BaCB A$?<;;gAqFdLQUY]`)b8cdfgh^jvl@ntoypqrsrrrrrDrrGr_rqponmifca\WSAP\K]D=8O3N+Q!dUV׿ϒv 7zȣb-[ʇ>=ϴ  y hn]k9ҩ3B謝_ϭЭ߫EɩGΨhuޫyE󱓳^(ȶж^#UW}O74] f$,y3=KXabfhCi g>a~Y2RL"J[KPXf_*e`illLkgc_c\Y>XXYd[\g\|\'[W'T{Q~OLHDEB3>5+"#o) m (qmĎlȗƚgiW'fcݴhZ5Pcy[e  }   T  g y A t {7X&Ern#NT*R(UwY=(J %-;E6IFO=P. 4 * i2BCPX[YUOLJkL.QW]acdd^XґΏN݌ <<'19Pۇ(Ғ}FӦ  ^Eh*81| }X ,6:o3omkkhe{b]WR[LEU>73/+'$<"u@_l lA- WT )T 5$%'(*L*'%"L e rr>h$/ fXxA"&)S+>,,*6*8+=.f26:>?;4) x ~[@S~8H1DgӏOƙؾ^iD Lj*' ж%Ȓ7ܱځ3. ʰu[zijU¶:!˻VGLjDϒpPY |cq"!z$'*8-y.02557;@EIMQ VEY][]aeh'k>nyqsuv,wBxxGyylzzzzjzf7^/"%$~ A }dѳdZsݍߌԔx+x {(ԃ}7삺Z}uӁ{Ņ܆ȇ䊡*1E'Z祥dί\Xp@­ɳμ2GڽH|ZQ  7!/%%*07>3DbHDMnRtVjY\}`ceg(j[lmznoq5rrs|tu vu@utsrGpn^ljhfRe da^[XLUPKG4C=8407+# %ueUӝ̠컵ƪ0R]MnéX.A;½w)Lx1źp¾D2 ηAމ~4 djv YrA N6b k($JwG=%"Z#}"L 5"?>}K!&T+06w; ?oBFJ,NPSVYZ\]_%a b-cdeeieGemeBeidmcbba`X_^']ZWGU0RMF@;4h,k$3!L /;*Ȅ۽ز9䢴>?>6W-5l͢ʸ!j&޿mJ l0N9tȃ͔Ӯڛ1uA3{`  9#'*/n368 =AD GHJNRUaXL[^__+_^][YW~USOJMLK`HtC=849.&h+X &:T݁uףA͜*W^ʻH߸ ҷ D?Z1қV؏ڰ)P!/,72^Xߙװ̰񴣲s\ިhMM«͊{VEz\xhѥ(׭"E Rd 8xkAcEa܎QVv3AJOqPLFoAC>-=}=7?BDEcE)DCA4@>Y>o> ><";n9i74I2f0V/n.A-&,i+*)'%9$" &{]$oP*(  2qN{!g#Y%&'-'=''&&$#P#"l!V xi2M uZ'HTݡzT͐$T5r򣳡q̜ӛ>FT0͜hDiVV]񩯫ks !T,nFlF% o(^!D$&5) +,.r14,68p;>?tA6CDEFnHJKLMfPRTVoY(\M^8`~bdfhDjlln\psqrr(srqponmkYiJh1gXeDcoa_\&ZWUR2OFLJF3B=:73|/,($#?k?jŇܻਇޙeېMLjb?7҃҃҃/yȁ<Հ\[$ܐ3s+󢷥S {κ[ X \V v\!'0It@d]Z E7 U%d*-//B110//00/-N,)%edh 7^;N k0>ik* _  KyYIK3FO"aQ߆w!ط3iѥ͢ȓţú@SӺbwA9 oLIQZ`E ").,-Q/g/z-R+!+A-o0Q49@|FLI3IGD?6r-%66w !Is1~?{m<z 0w D ;^Wzq  F uU]'-/-("$nNf>Qmwkm"$%&$&!R@ A&ًP-ɔxm!1ٓӄʦǛʔoq贮c: +ɮ$w,[q݈*uQ =4Mq( "#!KMG ͉8yTdo6eB n0 D"~""f##$&*.2&6q96<6=;86j310*,(\&$8"a &ye]Ӛґ>^ϱAf7?nHs8َLܘޭULON3_0zk j E)O5b?GNTX ZbZ[2\\/];^`a%baQa`_][QZ-YWU=TRPMKIFC@>=;86:40*T$ '& T߂N؂ӮϦ{л跠Ҩ/Gv<⪖pܻx] ZWTVTbPL!JFX?70*P#d EBg|Ͼ˿Aj]H9ʆՍ jԢjΑ܏fҐߓB zp;ۦbz޴$X~ͱEڗuv1d@ =.<<"'+.1W5m8&:;=@ BCFIMXOxQSKUUUWUcU&VyWBY[P^``^[gULRAv4)"r "&#" 4% D8ن#ͣo*5`wϰyQXu&_CŞ36d8ک6ٯ ʽ*=Q*xQ{ )19A HVK%MOSUWY\%_`ajcdef:ghmhVhgfedcRbKa`_h^\[SZNXUSRP0ONMLJDHEB=y71b,% uNdn8;ZܹLE!oRVe-Mh.JR]n^Ɂ\p֕JܫN*?Q(vMy Gx{"&+.15t9=@[CFJVMaOQT:WX1Z[s]d^^t_``aQauaayaa+`^]\[WZYXaWKUOSjQ~NDJEBH@=963s/F)#T-% *p\٨c0Z̭+˄+jaљޕX FҔ ' 6Dh$Ƃ˂ӂ΂q灑؁v - X͗=¡TKtVQod E-  oa#(Q-J3(; CH+M+QTV5WVVVoVUtUUdUTLTS"SRQAPNSMKGC}?;62 .+T*p(&&F'()"+f.o38=A{EI6MONNMMgKGC@>:6h31y.}*%@"1 )wV Du۠  .C< A%*,,B,+**<,/i369=QAC@EFHJJIzIHnFcBJ>0;*8R40n//.+&(U$+>7 VT:`q"oə±" Hǘ66ę}3.`|ǜ՝u^z3:ǵj5ƻYl ޓ_X9`G!*z4:62}/+'b$!'6$ r,D UJV}VʤJ$⬋( ߭Xʹ޷6f8̲ağΐL?i{(n ܓ.?{ f-c3 u R9 b!!#! s!$'+06:,>AQEHfIJnLNP SVvY\^%ace^gg]h$iiiiiiihJgQfuec`^][XUuSSPJgC<<6M.s$f  unQâp81.ErmiƫnKݿ@\rbqQPٶۼ]P2qߍ޲ZY^1=W naGh4 "n%()^+,g.~/30Z1369X<?ACOC%@;_72(+$9FC~.އϽ^ '2 /cIzk&ϧڢ Pۚ՚ɚ|3BŠ򥜧lʪGԱ7JƧ&͜Ѷ^ؚ36VR> g$s*0A7<@CHKlNP{RUWYZ\]=^^_`abd1ginklmRnnljh geob_^=\|YUaR}OK.GBB>4<9742Z0,)H% / d/"vu  L%;iۛM#ENi4%h-GQPI w,чԸح'|21 ?G#',<158:R=j@BCCCBE@;?6%19,?'";* %M  WF\{{E T3ueNSy\U"n% M s#5%%>%c$B$%t($,05f;?QBoCDDEDC,CBA?O<9N75211/,W)%!kLp mpRBTޣNL\e$$=ljߊLsِrz&k?bp]ˌۯMvK"#2,j38@=#BFGHBJ2LM=OQUXw[6^jadfghijjigedb^ZYYUCQKSD=850u,(% o)*gsצ́ºh|׫2ڭVA6\|Jv̫ϔ؇DQ@+ x %5).49=>BGL4PcSW[ _8acf8ijkmropqstuvw`wwwwqvutsfq.oYmTkhecb_ \X&VRKTD7>"9|3q-](#$=U alV7Nz"jȬ*fݠK_<~ؗiRkɈ%wǍė ĿԨ;N ҤN߭,kKG|.c,  \'0$8->CJRW`\>af?knoqrrlrrsvuv0ww]xwv3u-uJv\w+xyj{{xrlnf]SJNE%A;.5.'[a P?#ֱЬ]FGx-%孳k糟ƹ#Uܵ89@ӦM8̰?b̾Mlf?T{҉kzfK$rOb> * } Q@sm#;sU`f`޼܇RjܰݹޕfY/NE a\vrJIPNik.  o0+$(- 4}:?DJuQW ]bglpTr sWsrSp%msjhfdb ba`]`[fYJVQKpE @9V2q,-(#9 2lViP/ UbCaά0鱊ݵ(UˏUՍ&;m* <  t~6w" y v c^ 4!"?&)*'$X!tI]9r0'pDz1^3i͉׷"^u*L!Z#u#"S$9)/6?H0RX[]`b\c~baa`c^m[XWT?RONaLI% (0 @l% v%)C-*05358:=i;730,'#t6\  =j݊DIPOTJY0\f_cogjlo+s[u|vwy{,|{3{{zx'vspnmHmmnnlgb[,RZG>743b5%8*9S620L(9@&qGxO֦€rIֲz0-ze!14$whtS0Z?1Mv )?^ %*19?HCEHeJI GDEDCB?>;=:61-*_'\$"!7 aySie$#<_J=>mו 8_+znxbR&_D$QV+7C~L|PQRSSR[SULXZ[]0^B^g]\"\[[ZYYXUXVCUT&SQO6NM(KXGBc>r:5/*'}#f8e ' = 5s`Rqe{`FN9aX!!| j s"veSW]ғ#HQAx<<'4ŖHbf˽m/ڿ3+ďL͏Ъb2eѿӸց8q?34 #O*1/&38@vHNhT2[ bfikCn2pSpon@mkieb`_#][Z)ZWT6OIjB:2.-V/226:><;84 ->$) 5!Eygc'#726ߎA8G{)RIwto{ (!!&+.15$84:n;<$>l?P@ZABDEFGHI@IJH!G7FBECA~@?{><:-9795280-*S'r$#"6,Q# N{>yRفTμ:xbHCcN]m#A^b9FûQ焂"2zd:鞿1gNĹ'ÃȪ0]Z0 6!-78?EKKfN7O2P>SW|[_Hekp8su wx/yyywz{|}<~~G~~o~:~}}}|{zy(xvtXr3pnltjgfdBbU_\ZWTQOuMFJKG)ExB=83.(1!Jc {g~RТƃc'ܯ%2ˠ|=7E<●ifUGoƝ o1@бʺ/WGޏikZ @/ EYx!&+/2y73=5G"} ױV{ \92bs-: i -d  ? W`ae-{qU);ڐUؑםם gv\EJNRV"YZ\^`{bdGg jdl%nopqrrr:rqqpqpooonmlkk=ifdPbf^XSOJFCDF9GLE4B`<)0OWY•(ǵSSב3=:/Ƌ͌؍n @_0ٜH/!<+~ ɋӝ-ڻ^8} !%*h18:?DjJPV~Y\0`ce(gh klmn:pqrr;rqpnl2j^h geCd'c(b`\JX7TOJF:EEEDC@8* :1מd͠ŝSj&p#0Dk%&DH K4M)PRSSSiR#Q~N5J~EA@?3@BDFEAt=7/&_- Fq!(~zOB6lFm%?!o tb4!$Y') ,Y.0000//F/G//0c2|4V689< >}?@,BCE.FGGZHBIIJ7JJJ?JIIJIaHzFDC@?93/A*$RY EH1buڍʓJiL âĝX-syٝ5@ũݪ P]E$j%(4"oGJڅ;۔ڌٍٖ7 8.~*|u<K[ g   5HpynO^@wS߇!/w!\O[ i $)7.39)?BDEiGH I1IJ@K>L{MORU XZ^bdIgRjmpqsuwx?y+z`{H||u|||6|zxPwurGoligrd`]^[2WQAKE?5-E& W JJtwfշ*Pǀ}w_^sVi6Ƽֱܴwg!Xqiu6r%}93؄hΓ&Ɇ"ʣ{ СѤdPEЭ >Βb{l ^2{˚84O ˳ux%']JYժ1G1ܨu^M~FSu{U ǘdg8̧o֕߂u zg%*06<1CGRKoOSVVxX([^Ea#ce`geijkmtprtvxz|N|U|R|{zwyuPspmjFh,fXc`C][WRSKNJFA!;51M-!(1#L}|  4$#`Mc 7:= k  v?aJv>Ram G#+%&()**++,,s, ,++D*('&%4$#F#@"V @ bZW٣q˜Wү\ۧ}C8 L͌:yω gdZx6˟㣱ܯ!o)K2frۄPuNv#:-589{:;:8-7665_3/ ,+' g qopl~ f 6R [%Z-3O8@82(7]==}j+ܜ@.QzOf˥#ų ŇlȊ"3 HaH۴ )G~m +$VR #'+.u1479:;<= >==V>>>h>E>`>|><>u=t<;:9k8777.88:;i={>?AzCDETGWIKLMNPPQBRRRRRR~QPOaNMKL#KHcFzDB@@<96N481.+($% E  lCEHDѫ̩sBг˪3ŗ̕3늻iȄ?AaGNA G uƅE83 .&_6F&t8fӟNk76ư BܰcEհ2FWչؾeţj'֢ێXH#d}u S ,   M&  z ,-@(DAV{N?09KJ7yb k_Cɪ?ѱWԴ&j$ומ؂[ۘNGq߷ީv_ ևjgJ\p<͇Zd/-2 pә kZ`H H D# )8-16:=+?PBEHJOMXPRTBVNXZ [[\]}^^_`Saabb"cQcBc>cpccxcCc.ccbUba aD`_]V\2[YWVUSRiP^NjLJxIGEDADC1C8CCD5D4D D=CA?><976>6S5i43i319/,2+(%"R f/d7{  3 - K[2Hu^̐ߒcę!xlKܧ骃շ؋ W3 AX|T I$'G)>, 02358=>D IMSY^b;fjlnnpvrst'vdxGz{{d|C}}}}\}^}n}w}}}~~3}{ywt4qnlkiag ea\RF:.B# B!% )Q)9&I! zVsNܶӥL+мhiiO-;n#YOeiAdzҁBښx~}!OJ n|P "$'* -b/14D7W9: @AABCD#DCCCCXB`A@??=<;1:+86M4N2p/8,v) .M s 6E/[t%ݐO՚њ*jëߺAñȭʬXEحl xh`ӬG٧ڣ$'΢Lܝxڜ~>ª,m΃шQ0J S !!!""! gPTokUl{yb; (wV]t !*""#$%&I()+,-[/0/1k111C2x22Z394-566Q77775432141124[6R8:a=? A`BCESGHeJKLMMM"L/KIEHFEDQCAl@>;85q30`-[*|( '$2" P0 1L jF],Ҫ^Ƌػ׵$ح6[jH\ȋ_\i6kÉl4%buМO {H䰆Ӟ(cRy  cb%zZ , GwI? G!^"#,%%G&'7((C))**++t-/02T6o:=@DHL-NOQSUVXoZ"\k]^_)aaaayazaSa`<`__^u]>\U[;ZXWWeWUSRQ{M#HCN?9;5@/)#EsU.ܾґ(« |(U:A,\_I/uɱ7P7ؿۛۦ$3Դ6G h#`e J)p K %g "%(*,.123N5G79:A`@ABDEEEEEEEDEDPDCBA@??@>b=N@oVոԧTЉeƢ0ڤڜe<„mςe J$oE1h$ÁjSщv8!'+-a3;OBFGE@:Z2+%!H"'.Y52@-!)%! #$AvH/0uT ", a9 ty4}ZE@HnF$*)@+d*{'N$t! )!"!'! <08 K*>M0iK*E?xK` y s J ` 9Kmd$ m[۱/]GdO WWȬĶ󻕻f@5̾Vܿ2g€-p88ȑG}ޫ~p׬ө խs DA!%2+/o49=?x>>>>y>n>\>1> >>>=>>>M>=P==q<;:;;:99 8,6^307.+([%_#""T!$!&"#Z%&0()*L+i+X+*\*'*n*++-s./40s0/F.+(7&j#" >HRa ^ ygّ>ͳ[Ãα#ئ}КNҚ79Z|L&CF*~j08ʺmiSC1 @?-^)ԥ$Cһцevӏֳן!_L9<ڏUaƜŴ [$ "%8),...,9*'#E 4n͟p2ܲRr5ǀNĆy0˝ӟ թ%깵a ah@ #hg1$ݙdvFЯ9|;Zja1 g1DEbG(zIr} ` o Y WU6Wٺ2ϒxdq{vZ߻d_<Ƈʧhӻ=*{>kF P"'+ /37:;B=>@@ADFILQTUX[_]beg#ikm;o_p~qrqsttu_unu&uts:sq+prnOm!ljged"b>^.ZVQJB&<5.& 9,Pi).9ڄҘɋR%O-J֎pfd/}醸N&BQ٘NKvƯPd]q( fQE% -5;>AEILOSW%[\]__`;``aSba`]yZVgR,OaNOQSUVnTL`A4 (h(3 QX&?Ր8țìDVW(. i }vd8ڕZC/Hʝ//2DĥʃRگ #6*0_5g@ABDDDDEE F(FF7GyGFnEhDwCA>;97&5R2/-*!'#R +41 T2}TC4e'T^Fףnu}h, :gP`ɆRt̊<;՜ ͯcb_PɤϢ֐ܥO\as2  d~!)19BJOSXt]`cgkor2tvxyzM{ |^|T|S|||| |{y{{$zxsw{v(u spnkgb^ ZTRNqGA;4-& fb tjLґɵ)6ey0sǬ0_>,,X?`DȘɭϸJgi V M#&*.s1369;`<=?@???V@ @Y?>c?????`@?L=q:73-%y^=>҆͹ȋNϘթ/{<_Ԏɵ`P' Fp Sma.ѣsҭ{ɶVzZӗՔBas6EmZP/M?%g  V .J Z#?%&A(J*+,-$0w2[46D;@EHM1S2X[^beXh5jlQnpVq|rtufwYxxyyyxhwvyv#vu8uVutHspmSjHe_[XMUPMJrGWA92+#orgVڬ_͊]3xčBjMDׁFdžs4?5d0)0хخc!q)/4}9c?DUHK}P-VZ]_bddb`_^]j];^s_$_\YhT`MC7.'7#aP- p 6O˵ód'Ϸ6xu6쯍eƳ ޾KuxϺTG$\ ="~'-w26:?C!G)IDK'NQRTU=W5XXWWXW}WWWWdVTASbQ|NEK9I HFB0=81(eI!* @Ͳˢb<^š#CØњ՝|@ӣ=ACQcT`GhLi.~' ]WR'sE}W? f#(-4=DJPUZ] __`,`^[ZbZzY-XqWGW%V(1)M*H++*y)(q&$"L! s" | fx=k ڰЕƴcw޳'Eأ⡮;QR}\B#ΔC!6CM8kEМq|<ɫp Ӽi0ɣEL,BFLPSiW[2`+ce!ilwo@q0sxumwxsyz{_||e}5~~K8'&~}9|zy xu$suqpmj,h+f]c?_6[W>TNHnC>k7,0*$Fi L1G ϧaAؼO/ұRS~znRSǥ$̦z4>1*i=G&#IíɣAׇڷoft ceTL o R(01 ! %G lxURt38ܖۖ2ݘAsF܀d `ٕ%UX|{3`? =Ef^`8kKQ=` "#####/###[% '([*,.01357689;=>@QABC[DDEEFDF6FFEREDBA?)>bxyb_{עEȬ"%T)0 NV  }R %*'07=GB-FJyO SUY\_a#dfisklnpr>sstCuLuutt.tsrrZqfpnJ-FB3?93.'*# )Xh~]&Uplt)ʱ >4+H"W,ȣ׷Y;ìӷ;؝Rl`b.7*x EBXUDN 0 oo ߒމ~<٨ۤ pZYPd < 1!&F*S.4a:?VD/IFNVRTV{Y\_dbdghg|c ^X8QICPAB|FJNQQMF>5+"OpL Qlݞى՟.E^ru=RDYî+yݰ%\˴%A1%}ŗȪz\]B&MH }$0)-3~9>AFJNuQSVXYZ[]]^]]]q]R\Y[[T[K[ZZ{ZYUQLGA ϕ.ŧ-_LǟslJ£+}3ei{~!nNF5 PpR<E uO_ "%()E++-./0358H:=AEHJhMOQRdTVWXY>[\\\\\[Z}YXV{VyV+VCUTTnSLQ9d52@1/-f*'$x -]ÈN񭴩ȟ@Зq㏊ +OmX̔eǞmHVfDÃ}o&|'1+  "&+/`1259i<@4GN"UY^$cf ijlYnCo}ooPppgpRppqrsAt\t tzr6D-T(0kjwxsizBM)>3aE FA#G(=,.1 4179;>B F2HItKLSMMMOQSUX[ZsXhURULC:4/T+&#P"-  CJ^%̡^ֽٱ~šDͻ2u޻>q*7oH1qƽ^Bk;s?BxCW v .J .c&*G l@Ϯ$Ǵݾ.v b{)觽aj'ܾiэn o!+55>GMPURdTVXXY\_bIdegBi/jjklmmm'mplk6ig9eKc`^\[!ZmXFWVVUFSQOJ-D@=6.$L ERuc߳[ըVϿ̧cLͷ+6Xk+PƮQDӤۍUt?x T V/[+ "$o')*,-/r1i3508:f;<=>?ABDiFHK9MNOP\QQQQQPRPyOIN#MLL?KIGE4D BD?ؔ_Q ɇwxm8ˆYʅɅyڇXb$$ڐ>v#Km+*x`'BiF~+S @Zq$|(-m3 8;@F3LFPBTY]`ceh9klnpr~stuuSvvpwxsz{|O}}}|h{.zSyixHwuv vuIrmi8d!^V^OJEA=^;Y95R0*%] H x!FT۞״Gm6ҩѵ-r|ӯ;Rۋ`$G>MdRm 9N " \{k $ Qi49 j IJ'T')u~|Ȇ迻۹#5Ա'ܫXݨͯC*hǨ?ΆևؙrY:m .gTS #&)-h158/=WBFI(MP[TVjXGZI\]_`aafbbb#cVccbEb;ba`^z]V\vZWTPR9PMJUHEA<72-&&$  _ZUܒOɣV~񓣓DZCʇӇV D(tŌH{2uܷWcqˇmދ6)~4"] D&1<"F"OV[\[_Y?VRO'O[PRUY]`XbCccdccbCa`__^T_`abkbbYa]XSKOIC}@?>;6<1k)bbzTV޿]K*4· x/Mc2ӹ@ۼ⾡6GʦT׫܏7Z  r  O^ !""P"\""""&#G$}%& &%$# bS] [ @3nJW\-ŚȈͲϽѕ<>ٰ[MhUz[u}, : !|# #4&(\+7.o146X8v;v>@B,FIoLxNPRTU>WXZ[A]8_zaRcdlfh*iihjjnkkklklllglk.kjIiggedc$b9`^`][WTRN`KHFDA[<72*"! CO߲* ɯtaޒ1<̇݅IႯuE3GQ|ec-f|âӯ˹LŹ[׹HlqB . %*-28=@*BCEFGJOSJWZ\^__G^%^g^][-ZbXTMDH;3*":.@ %4d 74߼ Ӂ'Sϲг)?ӾԐր܇6>g,U=} 8-%,28?&F1JLOqSVY\`dhjPmoJqqTr.sstsJttttRsrOr0qotnm)mk1jhfc_\Y-VRPPPOM(LHE?93m'Bq X6|ݒ IþM5Z}{f\*ۃFāЎ^ >ދf!J:Tn<+-Ew\j# 2N#'6-39=BMHLNPWShUVVVWXYbZ[0^X`be%inlnqr5tttptKttssFsssrqZp1om ligBfZda_][)Y\V*TQ NIEA<6 1-("cY U:' 3|֩ɾ”9G[ם]C͏q(k+0肹]1-X҃[̄Å#vQo[_BG?LOռܽ>=rzn'6@ED:DiDDDDE+IpL/NOQ,SsS0SSTUT&TSRP\N[L K\JJ2JJJ]KK|KKwJILIHoHGGFDB?P<8g51-@+*)g*+-0 34(665L3\0?-)`&q#!!""I$&(*+,-Q...!/m//90S00 010)0/...1. -!,+)&"# (K[9sA &Y/`~} ԱyT[Klߘ&!j87^”~^(Vx͝4ңX $t6@þȭ2ac,1%g+&/14$8g;>/<=8CJ:S{ZW_la`d]^XRNIVFDyDCsA%=982,& |"}"y`. SFU< *QWTxra4@ZJkYypm'=Kl h"k%0(*-E14579;G=z>? AABAA>A@@@eAAOA@D>;3b05Hl ŝʹ:؝ډC+#C1#;BBIMNEMKJIFDDEF`HiJLNOOPO^NL\KI;HGG/HHHzHFC-@<9953w248<BXH OToXTZi[[d[=YU\Q$MHDp@x=r<>7>_<#:75R2// -,5+'*)h)C)(l(=('R&$z#!"]1} , [ + )+1 MQcɗl۵ _w Τ>÷LڼeT3'ƷQŤ9s6 nAC9GPJ4LMPOHQR S(SUS5SyR|:D73--)%"n!4 ;7wk!p؍ϥ|5ӭJ;`W[4ōE6A3Ap%+.03y7: =@WEIKLNOP Q RS~UVHVVW8W%VUUUSRNzIC:@.O!=MV3Q} ~/I=E"kޮmh)ȸHkyɁoǥ›&`̛jl>NU9 )ڏB"(-1|1F1357#9I4~/+($ ~DQ= [ qv!{W ZN!:$q'=*9,-V0D35 89;=?>==@<;`9777s75L42{0,(&7&&'O*a--*%ZйG(N9o8gĎƋ2u|eXKnԉ#4-*eVcVʞm`KL#4FoR: 7R3.8)f$k! QwWgp =DZ<T!#e$%9'(|(()***+,-./'1~23`56777U6420#/.s/D1~386[9;R<:740+%!a O!#d۰DȴlܰI(Ibg&%L͟cBAZֱʾ7RKޖ .7j+4;.BG\IJM{RW\"afldo|qzsFu,vAvvwxzz{`||{ywvsqo onGmZki|g7d/`P]r\[ Z9WbSKC=(FI Wg`tЍS{҉4aEG?ɜ;*֨L/m hl$+H45J-&>!  QQ[F@}ҮЙ͜ʣǾuA03ȵ6A.D9[T &.k6v=uBFKOQSVZ\_aZelhiNj,jigJeb```abjdue ecsbCak_D]\[ZTvLB4V$v\>%h۪HL0\ (ӖLtH믭hBʤԵؒngT@ > ,d"%(+.k257E;d>~@BCEFGHKIIII0HFECA.@+??$ABDRGsJVMNOkP=QQqQPPONM_LJIH'GEDcDnCpA?>=:e6-3F0*!hŹħ$-ſ[yºA33_"28$„ŭ2:dž7ۥOY:Rؿ_)ԼΕ+?m9󹝸ݴoe,Rә6nJ"aX$ DKTCp,c!T$ &(-12579:;:72 .)%!U|* !f  IM3'VS!Ni.;GQX%Y'VPI@70-I-A18B7MkU?[_a`_2\YW-V_VXP\_ac;dcg`Z*TMF>l72A/7*# Qfan<ȸἚL姈~{ǡȠA5t4[Ǧ"̫j0*Ʊɗp֋gھy* Ԧ '37A5/&- V l <"6(+-,+x)&$Y#"!"!Q 3~q^  hdgekf}-?dM1WNIf_@QR'.s{0TqZ%Qy;@w,S t]CGpQއܲdaև՘ԮRҏџϋϭ:UѨumԦ֌gMZX!zFF"{0 ) EI J&,156:?CEH MQTwV[Yw\^`cf\jm8quHx.zz4zyxwTwswxZz{{U{zXwYrkhe`\YW%X YAYXWVT)QN_KHC@+=9*50k-+(L$z!R6 m7-rIܡVql*D~;ߓ}k(U҄]G+l郬~S&*asڤ)ݲPIAZPߴweSC 3_" %,'),.14474;>BVGnLs˥áBEۓ`i+݋oލ鏕) E]򩊭7Զ GαпIR\$%+j: 59$} !!!!!!9 O|7ZpxXT 2 G a 2 . %_'A H owc _ 8#+'|*.38EPSiV}X\Z\_`Obceigkhhi{iKige>dc=a^8\ZXHVROfMICD>O:5]/(" B?ͩvηV&8T[ܤ䣾C͝]LЙ?@AB)BpBBBA@?Y>w<96[41.{+ )U'H%":! : *Mmټʤڰޣ{\#H,1ɤZ몪6ť;">:>Z=3<:::;>CHmNkSVWVTQCMIGEEFHLIIIHFDA?=;9-86^53O211<1A1"2a3N4 56789:;<=>5> >>>?K@@BBB@H>;72-+*@'# L[ 2 8w;%ZL޼:AėwNQ8eۖN꒺G$zLu}NU9%51%.Y*' &# /U޻YZ1PZLOed̒ϐ:ڍŐ,zŖfxūCJ] {Il)   %m,n1%6[:t<<>|BHOT[cnjnpqjrXq.o`mll%l%kRjigc_c\YsUOJsFAw;44-|(!"d  ;vq$dLқ}UEǔv Ӽ?!%۵jśʞ->:X8%-37';T>@?4??@@>:6r1)| 9S~  vn e ?P5<:IJ޺E?ЦG_B;ޜ֝$_iG< כYG0(ϬbxBs~w:+ omz!#(/5:n?CDF%FyDBtA@p@ACF]ILsNOPQ3QPUPO6ONdNjNNNNON NL\KIGEDDE;GHI:\6/%o=W'vSQδw,ɫ1-+T"fQlyؽ^N {_ @bXֶC ?yAt~T#"j'*-146 :?FLQVZ\][pZXTWUTOU{VWLXXX9XV USRKQONNKG C>9/3#,H&!t>E gZg:ՒҁAŒ’((̸Ƕݴ|*dMVCVԩ)ʨ;R ^cƃ nn`ClJ =!&(f,.&//075<+CHLzMJSDI?7.$ " aXM[Ůް8{ǿɹ׽%e&"騅p󱧲+Wղlž( Ѣ?  %'#<'*/>47;AGMtQUmZ^+`@beLiloswzC|||1|P{qyvt!tettuw}xxvcqkhe] UZNbKKNSgY][UJ:$ dl,K~`Cçexa-ܳuY}÷kKqZО^֨dۜqhNc } 3 \K-sAd"PuyhjfuDŽH3r~yHؿ cm 3ͤs,Տ8։kU%m 6!F(.11.+( &$&+2:CLSXY@ZZXWV WEXY[]_`abcdddddca"_B]:[X'T6QNKE^>82+$$L= h. :)*Ӈиtˠɐv uǽYԼؼ o󽺾G6/TC({o¬zɓχ^ &Y&Ri o cB!##W$%%|%_$u"q >UGy[}"kr sFUׅԞ&˝Vr,vB/d2ث:kGRƯ .=NXƯSHǨ͙0WڃG37NJ% ZON! &x*.16<BRF#KQ`VY\`dg-jloKrsuvx2z{{|K}}3|{yx wnu\tsrqnl?jf`c\XTP;MKK+IqFD(A;4G.m(U!(E;|\Jyڠk[2vm/멞 h\ ۈC>Ad]٬jA[3*æhˏX:r!n><ּؕkޏpsn:#{f7_( p"#$$&)<,9/4:?DJPVZ]ja#h !###K$#{!.*]JK[(Al(30,ÛX˽ͣ#܆dx|,z@ `` J!$)J-70A2`4m679>rF7OVs\a:fh igfeffXghjll6jFfa\(WQMLLMOQQNJZEL>4)B! - )&}ٳR 88Д鑖V܎3i^+f>7 SM OJL=Ǹ1&1685,. +`*t+*2-7A9v::e9 879\:;R=!?Z@@Z@?>*=;:988i8!876513/m,)&$",! D Gj, X"}!up1Q LPc.bN(޶wդ+|˙dǽċU7e ܽi0ݿ%,ӹƼv3J(I;} s q  ( C!  5v"k`+#().,3(8?I,R,Za:jFq utqlf_GYT)RR}V[` ehixjj4ih g_fkfffQfe%ecPb`_][ZXVqSP.OpMLJFvC@:54V.P)Y#1E ~I-բSϿ`u|k >L 脎8.UǗ0,-R'/ Ѩ(ـ\CtXEs(_)> W )"+&)6-|0E22 2'1h/,(%Q# pJ] I ,7 ~L2X}q܅sqeܨP3-ߊ?q'y 3^![(-28^>CGL(Q_0[TKB0<6F1{+&J"x# tTafݾ\HȾ˵(?IjJ&ꛋꝹɩ.eeڴԒ;~ d8ϋ~śr_Fۯ6;(ծ_l ߄s@F!C۴H' LC |a~{ֽw 1i# $-2K3=1,%Gx D ML qZ0y FBP $'`,2:4@{D-GHCIHECCEHbKMuPQ\OG<0$*P =` X6JHfdYx6'pԞ̥҅9V2hک}W[y{G j0#-Y~&0ڢ<r3Lhv_ 4A &,e1c4(7:,?CH|NTQY)\]Z__^]r[ZYX_WVU5TQN3MKJHFlFkDY@l;6t0K(b2 L(VՋjsfG;19FG՛h7FqBF{iԧ嫵vU¹ݾËզ ކ, S 5&-4=VEKJMQVZ]`eilor|u#wwxyzzzzlzy"y2xCwbv.uysvq~obmj&h+fdco`]ZVPIC?;:;==:q5,Q! Kݾ Շحa[<׏eˈe׊"X~%2Ђځс!ᇑ!wMc6Dؓ`3tСůK$2eПڌ',H1C '.5:<]=>@BEJPU4Yq\m_``_J_7__Aa[ekpuy|R~~u|#zw usGs'tuwNyzV{{yw(vtrSp;nlkig*fdb_i]~[XTOK3.( $I o  kwٸ֙>ϖEȼĺ'Ĺ@knڶ9Ob `le/(,Tތَ^v[ 1RT4K`i橡Ʈѳ5KtĔn}D'ۄ{ ݹ?9`> A V*h Qo6!u$B(+n.16P;1?BFJ4MZNFOdPP0QQSHUV XY[\^x`0dehlq)wP{}R~}|^{-yvDutEu#vvwwus(pmjged]dcMb`^i[W4SROKGC?=:7312/+`&t!Oa 1׏ ɱxPk^$@l٬ګG;>?fL"LԱ2?%x]')3ȴk/ǤPﱞ5CLȵֺ(peCUlI>\u#oWèĔTș ۺ,{o* !6-hd"+)/3678;= @[CHLPPR+VY,]_0b^ehjk mXnnmhljigecrba `]5\ZXUkRJOLG}B=V94}/N*&=$!WwH v u  d Q  neqCG0t,?; 9vbG*`i] s  #  i   ?~_A >97>;B[M;¢РFCvWkeLL8zS#%)**%+-+*a+..26:>CGDHrHHNPRUwXmXTcLBu7)Lx ' ewKyO#Zχ͓Bx`{Ǯ!#ˎʌ 3|0{<+~n<  &K0^ &h+D/25777 8s88899Y:9876m530.P-I+(D&%$;! N   8 s b x1 /K@ߍնá'^:_O`KEBV6ޡ֨\hȈp#Į$ @Ⱥ<ӽǿm4™¤"jƄ#̘n['=iB+K"#4BKcOOLD!9.&""%!+1 9@FKOS\VY[^]^^\ZUzPJEA?c@CKHMRtVWUQtL>E<2p+&"$fr V>]wEY"IR ڞb'Cԣ5mբcݔ /6% z O8{Xn- !t#$&')'**h+$,,,,y,y,z,7,++++W**)))i)B*?*>(!%!jv} ֊½"XL=N'Jޤנ]ϒC]e``dיi!7kv93/p(VG]3ڹӽŎ˕H,7'n MgE"%(,/e2^5x9=i@ACDEFEE FE*EDDjCBV@>Q>==r9f4.&Cr i E 2O;~mȵR aUpiF9i3kH }j.r!&+0 6I9:7;;9;8H521/.,,+(}#ht+9,oC  +>,_ۭ΀ѻӂG Ӑ ev&ǿԾcHòkmvʱˮ;΁қڕt!+4>GK2MMJNNMLwMEO2QRT}W~YYY$X5WUSQPPOMK?J2HJ_u`[zJ6,FRa=,W[  f! u#.J7=BdD'C@?@B=D{GMK0NpOO[PPPPaQRcSSxSCSRQPcPHP{PPP~P*PONMMKKMJI)II^IqIVIII[IIaHGFECA?8><9888B9:;)=E>>k??u??>=m<0;`:Y9|7+5|3L20-+:*(&:$""z=D& #VxY<.43Kۨԧǿ'գҝқꚈeBY09Bi*՚-ϩIחȔړҔٖƟСآåI*{$88Tױ܎#Lt" (\ "%'B+.024789:N<=6>?@BvDEGHIIrIILJJKMP?TUU"UeSNdE8+S|eK^ N/l B)* +fF< N p cY&v^& / y 0 R vB#)06,>C\FFFsEC?}<:9I9?99:>;:@:9$974@2/-*']%$" LT c. "n*.h/V,&d5 ]+'@A81'OZHW/%  [ L5yr*c{IܒPlГqVZ7պͷ㵝䲢ɮu嫳|ϥNX,: *ȟ=t`tϵ 3גӋ/."ik{ѿb͗Cy~꺆ǁnFBӺזڱ߁0e}j  t $!(,-,G+k*))*(-/13w689:,<=W>}>}>L>=%=<<==>:@ABZCDRD'DCtC,CBB{C5DDgEEDCA@%><;;'</6~/3,J*/'#Y0F uvޔvā5_]oxwxjȑnQC3Q֐Б(7jPћ2^fӦW!aNEcūQM`T!U 9tE#%(,^/12234/55689Z::9r8\6311{23578i6p0' {euh2^gղtՋ։E<׃i B5J ΰ tc*`ȭ9Ӆ=אPGFdIB vzt k#7"$%'o(t)*J+R-o/@1@3578m89g< ?eBGtOVz\X`c ghhhhijk*mnoon(ml lBlVmokpwp:o#m#jea][7ZYY/ZZXUjRONL,MNPPO/LF8>1H" 3 O6+J ;1Զд˗Bq/z>1u eL8 3"Ĥ22 lsee56bS,%)۝ڌ^ AHqmyt)6\.`OT<E'Eרծ^4l#Ⱥő łE@Bĩq;7Ⱥʩx̸zд4ֲنE2^+ {&.5r=ELQaT5X \^v`cfikmp[s&uvQx>z{||A}"}|u{HzbyxOxwvvfvuCtsqpno\nmlj=h7fc>`\ZWTPuMJE=5.(I kr on$5ʷ[z)2;TƝ8ʐĐ?呐ғ Zv7ś+4o>ϡ楍" ѕhݫS|F_ rN%,4mjh!gdua^E\Y,TOJFA:5E1c,&%!L j(׹rν4UɥK+yT:IƉۇQ ɂ5 cE 䉖}q 疫ȚnХĪgJg}rGh \ aC%,29AAHLPSVnXYU\_zbe hknp rst:uSuu2vvvvvTvutsrhqomkzjhfdba^[XURNHgD?9Y3-(#E6wsU1 D۱`IٰNkס֜RMPM㪫U*?lNe^hǹݿ+Ńʩp7B)lr T$p  ->!w<{'(!%%*-16 <@DHkLYOPPPNPcONNOQS&VYV[\I]]]h]2]\\\\\\'\[l[[Z[@[ZY3YX5UwPgK5GC >n97641.+$ S?[ޣ\B3Wpuڪ5t:EuԘ!Ήň߇a>-fƇ7ϊ拥g񑺓Õt𛵞cs/ŶhuyةT W !'.D6a<(@CHL6P\S=X^-ej puy{s{zzypwuttr hTjB }Ie Q 2 r R v J x.Wax&[ |i.x. }׃YȺŔ s୅ tΤnL ?򡵢$VoPʦz˭Ͳ|r@jʼn<̄ϑҴx,B6?  #'I+05,9<;@C+FAGBHIJ{K7MPT-X[_cfhjlnoprtsucv-wwXxxxxZx4xww>vutrpmkhecba_~][XSLAFZ@:C76898l5Z0&K$3kʼ>f[G񗠘蚌Nj@R"Dˆk%ʃ$u5y/vjқa>Lȯo չ )nq%g*.4[:?C(GKMqOPRSU-W(XXY.ZY>XVVUUHVRW[XpX94B-!*#'ۏϠA/IұoO,q%Ah?uK+_ޫ@1rEݞ#6 -*:$*L05Jۓ'ꎎŌFnYxåBPڑ^UFH &0(/221/ ,%)''')+,059

9?w>,{<lx[bcޑ sNa: 2 ϡژHM[i蒱uc9fǕ*ȟ%j4rK4rr.jahk\ZX!W (B6RAIZN:NNJD?:b889:U<1>?A@@ACEGIMKKK}JiI[HGGHK,MN*P QQQtQ*QQPP\PwONVMKJIHH(HhGF7EA{<6>2.)x&$7#zU|}}}&|{{{{V||}5|zyxvFtqomkg@eb`\YWTPLIuFA<84/):$Hb` 7=[0hE lBQ>[>ǿO̹uQʼ' ĵẓwoKwZ8rdv=Z^U.+7*mruxy& -jyE+@MumΨʣŨP+)گoHNOsѡG*ҡAܤ򦖨ު3,ƃ̈́iԠiYA_5 pj@Q.(I2>KU6[]P`zbAcecdgjAmp+su#wtwwx-xw1wvv"usqonljk:ji`ihggec`f]:ZV);7410)P"iT#OIظȨϡ.٪[$@rN LȒQC/$e)۱ܕL9Z- +=,|B2(L  Z \;[W t#%{(+/1h3)56F839{:{<>A*CbEGIJqKLLM/MM9MMuMLLKlKyJIGFECA%@D>;86Y4>1-+(+&n"q [jJBbp޽^Ʈ-uJK[=XfσƁ΁ρց$1!j0X_`GCOX8 L Ł!ׁݍ 0|c $)08R?DJYQVuZF^{chlo{rux^ylz{|Q}}5~~~~C~})}k|{zzz zxw3v$t#qm)khfdgcaz^YSL C6*"~,V|z ##=ܟ׋<ѻ#͙ʢƢ3ͭZ ?| "/Ǻu9ͼ꾉inT/8` KOUҦlԝbA ;H6  r9%*+A+s) '$""%(-2%553.& io y,+X7":e/CD7wqST[ z/q5%e)o?DDAIT:Z׍V}nѦлsˑfŋqqoM_Ml#Y'*l.258:>BFI)NRVY[]A_Z_^a]\ZhYX$YY[\^`bcd2eledc򼹿:fE6d~\ە֜ OF#bd&38G5A,!w][&4AM+W\?^^G^^y_`cfi#lnrtv'xy-{D|||X|{]{zyytxwv uusqnkVigeb`l_ ^+[WUQLE6?92 *!rris$׬ʳ,_?k:fAEMNo;z22˪خ$G̡HS" z!#H#  68  2 ,>-/x,A$ȎnN/TcD&ke!p+Nc\~}y+-q c%b#T'7+0h6:=>B*I!O~SV=Z,]][+XSNF>7/3/\,(%#{ EzJst\]  J" &)?-/02l58;>XA{DOGsI&KLVNJOOPPRQ1QPdPPpPON&NML.K!J\IH+FDChB>:62,$ +?ݴ#[Hp5'-N'8tAƔƓZ:ܡåT̲9跉Aԩ, Ac:x" )F.28>4D+HzK'ORTUWJZX\X]^^_`a)`"_p^5]ZWTROxKeGC}?9z3-*(8!f~ *2^ۘj=?ɥyȹָͷݵ2{եR{۳ J޶3Y/A b$0%%%%J&)G07l<@0E+HHG$GGHH JLOQaQQRQNJiGC> 930-q*<'%"n 4AUD]/>ﴷI a2墒,Sӎ$vN³S׾ۺpS,i*xV>1c|(6qCP%]If-kmop9o>?y@AUBAWAABCBB CB0A?q>x=;9775f30S.,(0$ 1s .c-bκU4PM MsOxSzYVaEigossvvxyyJyyxxyyzw{||W}} ~}}|{y]wfusplifci`\YWRLGAX:1'  g\!SaӞЊ̝iÅͺ߷8HE%̱hM´g~fǑIx̓6V6j531 0d-)D&v# !1Qnpt wB^ףD˿GP*/綧A?<Ȥh"࠱ң|Tnܡǥ'ZᱠuǾ J\Җ؄]6<_i Y"L%(-26r:?1EkIbLOSVXJZ\_oabFdSfghiMklmMnnoo>onlkkigejd\cCb`_._S^\ZoYWUQNLJcFB?z=:5r2g/+'#! !)IU,.҃Ќ8 ͝J ȗƥĖaA + Q%bӚңB R‚}-.Xռ|[ LE*eloQГґ9q,%y=c,<LD C _ Hp.71&d1=IItT^fjjJhc ^MXSP9Q3TPY_rejlKnnnmQkh1ge?c`^]\~\]U^^][YUbND;5-5&g~ $>A;l͂0ޤ[44ǚ4 Ɖ|atFH %Ů͟S)[$9 i *8@V|6cH!7j:KIB%b:b P $:')y+,.1^589>D6JORPVY#]8_`bHd&eFe^eefRgghiGj\igfe dbcdedTbt_YN?m/"a4#'y(&k,zsJ܄k{UH[z+G*ߢOP3>̣͌ӽz4JWJS \ 4: $ '(^((j)*9,&05:?CGII.H%FCA?>w?@1BCSCB@<7X2-C)I%p"!! k ! $i E+g/P)Hڱĭߩ󩶩ɨΥ3C65S/+ŧЩd˵}Hů9&y1]Ԟ/3K'94T7311m48;>v???7=+;976E43210/I/F/.d.8..l// 001E223569!;=?@nA@??j=;9765h54]4353k1~.+),&J" d1 :  ^ mB))H'ڷp Ғϔ͊}׼۴PL K"쪣>)pʨI%cѪ0F9 ?XVg *)lUHnMWcĂǝ4 J؜ߐA' v1 <!%'+049C>HDhILOwSV+XYZ\O^}_'a|ctefhkmZop s-uv2xyX{k||d}}#~~}}}}|A|{{zzxwpvsus=qnlwjge=ca]ZbXU9R4NSKIXE@ ;60'  xgI|rMLϘӌ̊ۈ< %>|'􂐃˃3s|э3I^USݧ˭Uoϛai(T $"4',3R9m=qAF(JLjNQ TV,WXZ\^^*`aab\b&b-bbJa_]W\eZ+WRkNIjC;<26+% H 2Rk;!;kD5> W5m I,^WFo9 g:Q&vay_NV /;12ڍ߃Pd\7Hj>WVJ1t 9/W z0 ?ckVz?E~PW :#%Ga sOL& .131,%%zsSl<$%$!%( r8hB  'O$}ܰtֈьŞ5W<Ū|IPI$XgH ,MI(_@FFtկe;CEѿ;QȊרI :y"l$'P+.g28AJNPU!Y[]\L[YXWVWXYl[\Q]]\>[HXT8QMyJ6GEDC5DEEFDB@!ŭ//Я֤+ۧPաWV0 = ]#*27x9;=@FLQ W\_`a&aHa aaab&ddddcaD`^]!\[ZYYXVT$SRPpNmL KIGE@Z??f>0;6U2'.*((A(),T0t357T8786D4;2/-M,+F+++++3+*w**Y)(&&%u#/!W6  y}711ۻ/yZWp鸮pb6®<,_1 i n˨:^I9Wh˰jʰLZvh~x5% $$*07=BGMSVY|]fa(d*fh{kmRoprtu}vwxyzTzzzz[zyCyx@xWwvvuMs<;81K+#&<#"d%O*0`6: <93+! S U f ~ 1rMy /mV`pް_ݧR@>/K\ߣܝ3t!)|19>XAw@=94/+C)&).+.2967F6B1N) :ufG!3.},֘=ڔTĔ)ꔘ"%!mLMįfyƟjֳ8֡אpRZ  df@c $')*+,k--./012s3;3(2#10r0025:?DI~N'RSSxRPNFKF.Bv>v;X85u21/-D+(& #x5` N)>,bn 3wm`,%1_s-GP 7 )f %(w+/.1579^pnmemtljh+gMeb__]F[XV U}SPWMIE]@81,($ 6v U Cz>,` ft۴_0TۣgP%OQoXۄ+Ax񁠁xc^ ɂc$̆gۏV3ڛܣǪǮȸ4}̮3C!t#(.6=CHROUY\`dFhjlorstu[w=xxxx)yyxxoxx?wvtsqom/ljhkfMdb^YMUQdLF3Ah=:73/,&r  #ߊ<ԑcʳŢJI*P蠏ߨحʲJ4 ݭz18E𪠪⫵@UvфTxHG%< x6vK"&(H% [yOOGWrq'f2LCn-r}9ouK|\ H"#%'*-J042355555s55w5z55%6654%3 2(0-b+)*(%%#D!z/ }]|#ZلռVżfǼ ,?Uԋ)LƅK ( ΃w:1n ߐLԞ/ADHLO"RTWZ#\]_3bcdesgzhiijkklmmnZn_nynnUnnn nmmmsml l7kBj:ihDhgMgf:feb_E]ZWTgRPvOMpLuKIIFoBZ?s<8410- +(&$-!'0 <2MQ,~Ynf//ҟǞGy񭷲mǙuj~߯iE ?R_N ɵPkf7; @ŵe|fL!¬ġȫv0"Ӷn&k߳ S af.'I 3 y >f`!%*[06?LIQW6\`6baE_ \pXTHRiR1UQY(^cgi&npqonkiugeueeeeMedc`bn`^][X WXUROLJG%D#@=f:73Z/+'"m9 @~MVL̓C>ٵAkˡi񘳖Ɠ!>[ʉQY#ׅ܅54}{:c$쐪oKT+Y_ְókr BϓԖd: G#1+17P=DKPTTX\4`~b/ehkmoZrtvw>yz"||5}}d~~o~^~g~L~~}}}"}%|zywGur(olieDb `]ZWS\PuK5E>?:T47-o&\!Y jJ%FFCءF;˾ʻU$'ȶbȬ̽"ϾFL۾XM8Qv>b#kW_ 8 8 h wKA=N\]?Ըӈ?G=^[x? o #$"7 8 { $F(+,5-k,:+I*(b&" '-2D"*&($*3(D"lWVV$N /Fe3K2|1 *7~TB0 h> X/ X cx_ Q 9 *8 "*$&'(*R,-."01233 44 55%4320.+)N'%#! [[@ s|}[ )x6kέ e5v@ʨE\E 9"ǥf٦Rq vK𳮵Ѹh VíM1y!\h4&&2> z!W9#!VI!#-&/(V).* +++++,R,,V-K..J/////k/^///<0012345}6678n99Q::;!??`@AAA|BCCDDEEFzFFFFFFFFzFF,GGHIJ1LqMNqO'PPQXQNQ"QPPPLP POONMLLBJ HCFEYC@s>O !&-2^7+HNPMD9-!BE1 VrڝϺ,.ƼA3 +뻰ĻtʼW?ĤdD!"9{,Vj}*  %"&j*_/369:e<<ADHKMOOKbGB>;:;4>*@@>:~5.q)')7-/S1/v(yWWNehڙ44Ӫ9ѣ8.𨃧ˤ]+ݘn٘,ÞɡAʦ+x2Ir߯ix @^!(,177_1,'!L#PI%y>v̀wǿcL^K&^Bl:-9ӝ{_Kh {A oZ"&!+.147:_=?BEG7IJKLMMNOPRSTULVV:WrWWXHYZ[2\]]^]\[x;b73/,(#R|lRz4krوӖi~k2T!]_٬;$ѝmDғL _aYz#Ӎ9BGJع˾]ˢn "ZAmW#)R.28?CHLbA[BnA?L?@BDFvIKMMN!PQQPlPPN&M]LMM[M=K3H(C9*" \J M 33qѝʗYĮQЪn㫽xj;s=]دWƴ LdxČzhه);r/ ;(k !i"#|%'*-16915ߩ֞ϺйӨׇߴ?^1kNIӖƿwϣޙ?ڒ5; O5 çXģ\0b¬Cë,q{.ͳѸ6t0qJp' v R:A "$'^)j*+,-1..8//011111/-+1*(''(T)))( '$!" H!"$&$ ܑݾz0Ai(q-2`O AT&Yޤܸܵ޷rx$~+G.'-L*B'#* 9j EF%;.5CYIRMKOO-OYLF@9,52/{.-,*& u{+:FLMH>2&,<$B0g@P]a`\VMB :67\:q;;8m3*t @-0|{Jfrb?i=!@(FͲƟ{U(^R VмϜeԒҫ*ˤ`ݷڷ8~d󳑮ŢӝO& ==ʬZ|W#x{Ż6ϮӰd,.Oa[ es!&)Q**_*,)w()+{.K2[8?cFKQW[_adhikmtpsuewxlz||#}^}}}}a|{3{zy#yxbxwvbutrnjfrc{_\[nXVURNfLHB:3i.))$ 3-) -9sKТ1Jѷf"]? ;iNȣhҪcʠ_d:zpa_̣͐͑"@.þ6ѷг,{ʫ|l7ݘ9=~CsH'  P!#%' ('')*,05J8850''@&8DL\ejkjd\TNNJJMQrU=Y\*^p_`!`___k_^[]<\<[Z YnX9XW0W{VU TkkkUkk_lKmmmmMmnljLihvhohdhhliohd_+YPGE7S,$ n !c -r] { 8z2+t'%d$_!:. =ڀπ2򺢵qE`떬ZgoۆGpe ԅy҆6KIؐyZV䢶H˩(ưʶ)щW0/&wY 9Ar W#&l)+.U246I8@:;<<>!A9CEGIqMP'SBUNWXXX84.& ZEE5Φ»,' ĨUu"X酪ߣ35ҳOBضEڷLջHTɊ+ݹ5g\ 2K!y&*d.g1"58;Q=> ACDEG{HSIzIBIH2H#GEDD{C^BA?c> <9532/C-/+)%!*>AZ* !bֺi9uIٱ}Yl٥Jp)[q=١ &ˣz$§b2.F9ʓ&֘< U  YE3!#&*=,-073568<BGKOSXZ\0_adlegQikmnApqJr8rqjqpDpRon?-AB0CB[A @>|<97<6'5432~21/+(=% D7] ~]zYDNC Sr`g g n V >  , N' R9X \C7|*.Kǥ;1ZпP(gj3ӗՕR?ӹ`˥VD`Ȧȸȁȟ#ǥP Pdǫȼʯ̃iւ Rq?u+2Z:Xn 1v$ ()*):)(3*-l28@I P.TVVU!TQPO2PQTIWBZ\:^_UaObbcjdeeflffgWgpglgvgQgfedc|b`^]D\VZGXV)URrOLJGXC.? <&9E5 1-b*7&L!#( 2@umyLsZ5n,yjY8u̖HޑߑΒ~š~̢`-xhܧ^ 0٭ڮ6!\H7OjʼnU#ͿϟfֹEGJK5 ag6*R >~Q t"#%#&&C'_)|,/j2%5653,1T1S3u7.?JVl`6fiUk&j{fbvacCg>m8tSz~}nzZuoqkaiilvpDtvowvtplhgfdcccc;aM_x]ZVR}ORLGB>_:4g- '!kR `@_6T`3[ͧB #NUXFِ3bG@]c=mĢ`ٶ6ٛֆe8%$`N, rriQqmsS,$ w 1P%&`co)`;RB~Z\8UY6/|_MdPGX&5 c&4ALT[^^n]([XETmPMKKMQ VZ]9bfqjmZoqstAuuu0vvqut_tsrqodnmjh!gec`5^\@ZVRODMIEA=950t-)$Q AO 8D.B7΍JϜ]DzU˥ͥ"ϞϰϏR{˪}ȅ/ȷq[ź%» CO4!ɲİ9K!QEr{šp;˝ZpkR8W"Jfh%wɯ\K츪 E֯ MC r$ &E,B2K8J<6>@kEK PU]egotuy }<x~}|0|}{U{{|}r}}%~-~}[}|L|T{y;xvtWr(pn0mSkNigfda:^n[X$S:MGAu:_2+&k #Zk%Gk5ڵܱyΩ᧘vhܣ}bDD"‡h|(2""GA !w #(/6H<@'E(HHGlFEDQCDAz?=z;q72.q+($q SD rfiސbi\R_V9a.܃5ۊqԄZ'/V r G'A!&$&),t./01212m2 3304W4k4u4-4`32)221I0.-+($H!'  s5Asd?SMрyƟ⿺3㷘ճ'&"ܭ_Jε_ SXô-Ѩԡغߕa:n  [ $)4.148<>@ CLF)IeKM~PR?TT*UUUpUUmVWXGYZZ[gZXW?UROLHE1Bn>; 976J4=32k261/..,+*n*)(Q('&"%#|" 4u_!t jZ%}N?H&ÿTeC&bʳ=+ ELˠ˚8#-lz˜٣Wc;jaٜJ`3"/9A*FAJL~L3JGE2DaCD8FHKM)OPPPLONMhMM+NOOPP PNmMKI~HGG*G[FDB ?:5}20015;0CINP(RIRPPMH|D@>;::P;<<<<;96Z41. ,)(1('5'l'(s(((()*)@)Q)S)h))#*&*)i)('%G#>!'(uA:$\ N7.t} "޿~׼յҿ{@t~Y=6M^۾'( ڭ:cu- DZjOrw?$Y匿2X'@5Į($D$h G")\/5[;@SDcFILOQT-X\[g]^`baaaaa2a%a a9ata a_R^\X[zYWWXOXwWVSEOG=N5.)&]&(*T)$-<8-:v6&@݇٘˷O͟u%AD G\IKhN PPVQQAR;RQ}Q\QCQPPlPTPOEONNN@LIGEZAb=::9888|6A1\)!8by($Aڳ;={򩷦7jTQ̢墺&ѤnòǾ}*U+΢(yƙ,N;_f1 <Z 4 Lg<@W ~a3T_!#Z0G=+>M y' e!%&),/49=A}FKORUX[3\\(^_`aabccccc.cbb3a]`_-_$^\[Z[Y`WUSQqOMQKIFC@>;74=1=.%*%":g[ {M<\g4C_HsT`ϜG!%Pu-3l)ܷδZͮ?l*/蟲3֛mΙ!zB̝𡙣>ۭͧ NX‚a:uۯU;)Tq"| uhN\#>'U*=,-N/Z001r2;45:8;?QCXFJNRUX#\^_ac4d7eeff5hjln[pqBrq"nWjfcl`*][YZYhX WUSPVMaJ/GB= :.72P,%^  %eѲAŇ}NF&$Yґb7䋜$fÍo!Zpo&MNTPUql.!> '[.738a>DIMQUY[@^`c*evfgijjkkllkkkkkjhjjPig*fdb_y[vW#SL;D;4x.&  'eaڿ-scMw;pdȟX=_I7S马 6ųr7μhGC &-4s<`C3HLRX\_chk mtmmSnennYps wkyz y5vpg%]RJF(FJPW)\]I]YR]IAt;8W66v8'961,% jݜ׉д>C[&oc˙#Иh5❞djwZcyF͑36b/{'/5:5@FK:OxRVZc\^d`,c5e!ffghhgf5fweGdbaJah` _]\[WSP3MG@95y0*"tgPϤijϣϤ#>㑓$D>m8،6X(1!j"Ŕ`Mr7܏}LU" F<4 ^&8+.145N78<9t<@iEJQXP^ bXehjjDjjk\l`mco)rt1vvXwhwv/ur,p ndljihxgfegca_\YYV TEPKPHDR@:532.*t&#^!$u H;Ol09&‡N>8"h.SԔ#95*KqؙDpvڡʡC=пdȫ.לY16 g#{*<28=BHNR]UX\_adh%ln!qs1vwxKxxeyyyMxwvftnpkg+d_\YX7WTzRZPKjB6"+ E G "B`m.+{\u?5P͉̐$:>ߐK<  $ */F6;?BEHmJJJxK LeLLMO~QRHRuRQeOJEA=:755r666I63.-(! *  hWS څɒwą @l&=܏9\\xA&hˁ^QTe󐯐ߓL青298E1.*ˑйpޑ.&r f.=%*c--Y-,,*)*,4/n39@F3KNRSSQNK{HD A ><<=J>?@BDDEFEHHFIIeJJeJJJJ K|KLLnMMNMLK>JHFDCA?@m><;8 5q1S.*&w"]U"\%n F pQo 6(iׇBlJ_/6ή5K\5aķkԱhP/ίp ʌ~J~ UE!%)]-159<@?AD[F9G!HIJ6KxKLLL&L&KjJIXHFDCB4@>'<3:7542 1/~-,+v(%r# A](<уSPiϤ1E- Ah[ɺ;n߼7*b-CV#'-5=[DIORTSR[RQPO PEQ]RRRRzRPLE>A7:.[$zo#+914(5W1X*!)  _dm]Aby,%.K3L18#_ w?u ~q )" ')*y(G&($!c_T+z ex v i XX8Cx||~'ϫr}ܩ z𦀧I#AǮs#cMԶK097Ŀ%^TZeА֪eܝZG޷* )\4`ub? b !!i#&*Y.#26U;>b@KAA@#?=Y==;=>B~GKPFU/[B`dhmr\uv~w;xWxZw{usrp:o nmXmlk2jhggBeb`<_m]ZWTROLTJHFC@4=8]2*$b!y"&)**(R%!fN~t!E$&&z&$" )jyp$ 3 l K y 98%:7ܔrKh+Ě unН'Bw{E%[ V-ljӊًÌAÐpԦWR2Ţ- yMl%Z0 35$+4(?><83,z&5 xR  G(cpP eXɈOήC}XrEǟAX2R )%P6/3\bܾw1Ŷʊ[`t&YK)=%p u oMANo\!#R%&')+K,K-./x000~0/.-f+*3)()))+,--,P+C)&1$"("!!!!!q <  #U(-N3e8;<94p.($ ##&W+0j5898K631/-S,+*(&#\" -1 rDn ^T<ܶ}q5#πVͬʤƢğۻy;&wu&!pڦMvޢ[$;TGB,rS䥋Ȩ5e´+B8"k͠51 N E ,);ELPqPKfFGCC HOZg>qqwz{({xu!tBtuwPz|Y~~}|{zyey[yyyx.wjus)qmtjSh\fkc_\=YXT NUHlC=60=+& U J@Y4X8%sϾӴެ2q*kЫg:"-F[sRgϫ-]ؽ;#5;  V$$l(?+~,,-,+***++**)M(&9%x$$#?# #"! 98#*7 V)eY'4j`U` (؏ -ԝmiҢ&ўς4͙m͇eίψnA+pӵ<$SطNcފ;0&<;peMx/;tGV_~w`[3iI(SK= |H)ar!$&A)],/1j36*: =?QB_EG{IJLN'OUP R TUVWY Z~ZZZZsZ ZYsYvYTYXW\WjV_T@QMJFAI=:::] *=  _ S_(9!h#%'w)+-/81251789;=?vAC-FHJ}L@NPJQQR/STUdVaWXYWUqSHQOMHL MKNNNM@KE=I5q.)%H"'1[> 5 9$!C-F8@B?8.a$B#If$.|7G=E?p>;7l0D)#b! !$T'(('"&g"} X$+[3@rU˂VhC̭Xw)7<78̞rpS*˝ȝ7%s KDŦŦ\٩ݯj}絲xxpwvvv vstrqlokfc_[WpSQjNJG6D@:h4.)S!8I G(e$1Ѓ+ƓK~{ߝ$R] ? uThڈds׋T%OwNL %$ήSv\g ֕dMbPW!c%( +.2589E=FACEGHIIIJfLMNOPP PMIFB=96h42.+(%!b _D zN记NʥFF ¢o0HX䣝Ssf ^ırԯ,rxI ґOV3d͚ƹΠE<1_XPP~z7 "$P'R*V-/1;5"9;=&?@AABCfFHKOSVY\_YbOdfRikmMo'qAst,vWwxyzu{|||||@|1||r{zzyxw2usqnk!ifc4`]f[6XSOLpI~DA?;371+&! } (֯νj~!+mØT0%Ju<̇o MBiDWZƼQG37 %k+w1-8=A\DGKMAOPGSeUV,WWvXXGXWWW!VTtS3RP-OMbMAMALJQGtDQ@1:j3-R)*$+ /A2e{7?}͠Á.dUZ~ɭ̰knB;IJڷBPǟ́%Ұ@׫;paOcUMָ٢#%"$] c  Z   O sy!  > ,9Xy $*0596>C3G(JLORTVX,[]]_ aDceg_hehShgeb_\`ZWU|SRQPONXM)K#IGxFSDA@=93 .(t" T nj )mDm̸ſ/ `74L<i{7L3]4 " 03+0Y Q"$ %%&'`(y)*,-./01<2234M556Y78899:{:::w::^9886431210148=FApEHXJIHMH IFKN5TZ@`c@db_YP7Fl=r87H8r;?TC[DB>9A3+%}"|!!#$&(%3"39* q` pVKrRˬe,&뭈 ͪQ=mGٗ|Hآ8zˡ'gѤp]ޱZ`\=_a?dgjmLpqsNulv%wxOyz{b| }}}} }|d||{`{{h{Rzsxvtpjlea^[X}V URNKHgE@1<9512,]'"E >B4D4ʀ÷ӳR]'> C2+c눸ˆ׈O|hČPȏn7Ŕhg͟|L_騿ѬC.ͷ;Ӏ47 }e #](O,.n148$<~>WADGIJKLMqMKMUMAMLK4KVJHGEyCAz? %#w1р̧yƄxu,a+cM^5yfTEsJC͡O˧񨧪gzǺVĒPpؖ.% # "I'-4;DOW\_bddkcbaa bab:c'd]dcb5a_^v]e\[ZSYaWQUVSDQNMKKYIFRC-@<8I532~22i1/+x%"w#')'*(T$P y&R  6$>+,15~9:950,)&3%h%k')++++V($!>p _~m C6!=}ޔn)/ٿ)0,ЬmǧϦ(꣟תӬs۱32zY{܌ބ(A[48 I [/O~|} k 5otܗڹmSSSQʎ!IB"NɚɪG^ʘO>,b:I|@ (;" u 0 1 #B&)~,.26k;A83c-'#" '7C4yKmT <_RPr3~H$pDs(zt7 B{V|i k m,\Tt"Q~j3gp K  HbPlVMUz챚z2d$#sCtz՚!̗PF%ϖQ”-&ޕE^f/ءڢ"A{ѰsoS ! X)0˚/Ӽvgh޺8RFGb :j JC!b$G(+<-.w1]58D2T]tRd&H}y],U'-R8h7jx8D_t!6 ^j1 l a C 0 lqh J~ ^!"##!z\b e(qc%mY;cQ{ 2HcbB5=_  ]JTjM!&+03;CsHLPThUVbWvY['^_s^]T[ZX0VRNKrG^A:Z5@0)"X} ta3uPTg|ȊúpӨpH#ȭ+m56&j/޳:y^$B'S |;K @!!"#U$%'':(p((-'%$#"9"!c!~!9!@ YB/Q {;.Lhy&r>`,ѐʻȾơ94Þ(qõ×ƪl!AQQha+>ReC, S   !(/3i7:= ? >;w9740-.%-A--./0E0\-(b#E,!  '%;`=n8 n(2&4:aPp%#6Q/ygg#bO:oh}K=L d*,BcAItڈnΙ+.ʂ;G>ɢȈȲ .)ΠJnˌɯ)Jž~ƗǫDɔthˑjϻҏעb-S Pu&"%).317::=aB_FIMPS(VX[^_gac@f"hik"mnopqrs tt@uuuuukutsLrptomlXj/ihg1gffzfed3dca^z]\Z|W]USQNLIDFB=:7(4U0-s+o(`$ D| &_;,3ۇ9÷ziŲE6Gb'A*#Ħ]u[ѦӦt 稄ة.oɬ]ѭX>uȬ>ЫϫdXӭSv_`IܴfûB8^˸҃Z]&[ !) T#%')** ,Z0e7?HR]]fGl%prsrPpnno8qskvxyly'xuYsqKo{nnpsvy{}}:~Q~}|{ymwu)trNp]nwkgcra_]V\#\[YWUOH?=.E!/ sfd:04v'sմRͥƼ5¾aDfaz~J[ï4ć 4Ǭ>ɹxʉ˧̐htqЦМЮѧeӯAԂg dԮ7է Ԉ/cӏ3J: "ߩܪԦӌ7ԪHp=%Ƕɼkޟ}v:N Ql\( (#%+(d))*I,/./R1#4z792;<>?><:8-5p0+'$$61 X iUc'qiv%nUs I!%1),.014#9<@bEiJ;N:PQSUWWYe\A_&aVbcccb_ ZT8NE@<3.,@+*+./M000/z,1(# SWאͰI[ aY}˽՝ܐtȯJ;ŒhV5 bb:b B"#$&()}*,+",,)-..03m6|77750(` q >T߬ܠ..ɪ;XVA𷡷صQԴڰ?ϮRhg5ս8ɈnֶIzMR"$$k M  %j.T6Ee&h:Y 1 B  JomOUpuڝӡ[y͑WG 2!kY5uߏLLަ}LFl, 00"&+/2"57:;D=>@BSDEGIKLLMNNNNFO:ONM|MLJ0HEC@f<74f0+$n0C oӰ>g󿸻񱎯~&d٢Ѡ9EzJh@QŨKmM`@Sҁٍ^T $-6?DGIfMPfRRlS5UWXXY7[[O[Zh[#\?\[5\\e\YVVRlNG}?71 -u'!x `q1LDb"Pf|X[굳0V_ѹgE/?X# s[dY_ yOh!"C#$'(*+.0p2|345543R3210//w/.-,+2*'m%#! C>) s[L*Y2_7k֒ÇB񷁵ٲCШ cL#AڥATޯ1ƶ<轵b7?#^}ٙ\4 ',.-Q(4# oT!%+1c5N7 876S6W8P<@:E-JKOS UVY]aIeqimxqrrDqoTnl{kklvmlkhe`X)QJD,?":E753g/*p&\  nN ,F<إglӼ/P'I (K߰ܝjioMfB N)(Y }, !"##<$%%<&%,%$f#.!S%Ge vvhAz~,6d@εnCiQY\A="qw4 m%tg(9۠M:6!m{(l1*ơ&z861|b  {%!+c2q9>CHNSW[`eh?lBpsvYwy{v|}Y}};~5~}}}}s}&}|P|{z%yww(vtripnMmYkhf eb_\ZcXTPMJ8F@5<84/+)% X? H;zi:ܦŁ鵲UQޥѣ۠؝ڛ,\0䒙C2jnŘVpT2 㧥tҰ{AĢ^/_Բפڃ݊u(5R{ E+%7+2/26V:P罄OP!U}!Z ݱ@0d{IRe QT3#%(T,B/104[7V:f<>?BsCCCBEBA?<;:R97-76!642m1/,)Y'%o"0wHX 1+#ޘղ*˖tMd[D$K,޻cb̾qš^r4):8.2KPALbX ˴ʦnΈCЭ^sϭ|F@Ts҉Y/ҁ`PSק֫G!-՜F` TVۚۄ)cT [ Z S ?,=7#',1579#<,?ABC|E&HMJKL.NOPQ TbV*XY[\^^N_```aqaaebbbOccqc2cbbObaRa``H`_^]'][yZ1YXqVgTR#QOHMJIHtFKDAR?=<;:::b;;<<<;:9730.',K)&`%D$"g  P = {L 5V!׃" 54Rňļ˜TqSDNn󨜥w10ĕ2DۇzQO}V{ڂ;̃҇߈?&8V墣ήR v̹^[7gAHVV* (~.5?4,'!b )IQoW>1iRQWiI M6$ J _ ^ I&{mg] ! R S\ N GkfZ4y#7 '7f"'%g3¥=޿滾jT߭U˰Jeσۭj.AD9  B;"'A,./J0C0//,e)(&#"">&,q46<#CIMPQO*NM'L KJIIHFB=8w3w-@($"!!!!#$k&'()D)('&${" 64| z K:VP_6chJ8.˜f6ߖSŗۛ?iȜޚyۗ՗ \RZoYxYZ]_Pa7bb`D^l[YW-XZ`cgntEy{|{_voWha\YiXY\V`cfVhhgecaO_]B]V]J]]]v\Z1XU%SPMKJIGfEB?!<<85432{221).f)$]*3 0 c# ڌ΀z"ٳi9'.PAӳԹ ƨQ<βЄ@nG/PgF)9s1[4v:Rtm:duda4%t&n9ip"ϲݱްE=˭ӯU*&AOy)RʿV ŶWHT! 8 ]aP T!'.36|89P;;;<2?nAC~F5JZMOPQQSTIVuX=[]^s___]\\d^za\eiWmoo7l e[QhH @:9E<@D#GFBt<5.(;$I!}  #X* TV{#Կ=ޡwIAG혿zߝʤ6g%بD *ڮ0srw,غIùŭ}Q"2*R!%h(<-3+:@FAOWg\_0cfiiibjjkjkkllllIlkxj3iahgLgfffXfdb`Y^HZqUNQNWJ2FB@= 8W1+$m*y I jZr$| qhU'qb&ՆtѭУЏ^rӪդgت *OեyԺԐciސ+oe28W $"e$&()))*)>)((''&q%_$R#!t<, $ 7 "K}6LaKXK(^̌i,BuĎz@ܲ d߫?kqƝXțS3z^çAZ1t6Vo0:/Y[;2 bk!7%),[048:;2< =W==?B EF0IXL!O"QSW]afnl-rvyz{||||{E{)z#x^uXr@okZhecIc{bEa,`D_^\[[k\A]8^4__\XS(MD8<5:2V11248X<==;6.h$+/x'd_v>?SUӴ*MR̘G˘i/ʍɲȺƵƽdnjWƚ)ƙE@Y^Q'ĪY`DøKʡ$"gb" b vAC^gr˦물]JͣkœǕ/n+ʣRɑMەcK84/A7@uAA:BBBBFCDKFGI;JZKKhKJI+I5HGvFeFtEB?\;70P)"b`1  {0v܉}ҾK=;X:74}1.,(|% # [HwY ^ EL Rل։ӂEK߱Ap]èjةӫ0r᳜!: uݢڭ?! "qDX- V5! &)**O+++o++Y-./?0V122'2110000 11L22333 3c2`1/..X,*))(G))i+x-/0526332v1/-+)j(()*,O048;>oBEH6JL PRTW)Z\^i`$bcefgri*klm0nnn$n{l^jhg@eCcba`_^-^ ]ZWUS*P|KGD@:g4/,& .I3|̳L>jŸѢGaaǸֽ7W{Ý0WM ]Gd錒ÑHzşV].SbKX#gt"r"z4$A]M=K. ^ n<ܖ}<欝Ūҳм}?Nmtipf t2I=ʏȽƓ]űVkg,йЦmа@ґԡցJFP09oM |4/!%(*. 4m8:;<+=(=>AGNTXZwYT{KA8{47`CVSpb n|v{|xo`e5\NVTW]cim po mmifccclegUiUj_jihqg>fyeef2hhniiLhdj_YS`L?D=0;I;T<=??A|@d=x95S0)t#QkoS sf8عs!ʶ7Ó;U{難/!!VQ颒 ٳ9;"UW{Ț]-ݭXӳ$yoƿ> 2a+i  ,q "##$c&'T(())( (^'&*&%%%%%c%%e$#"!Q! [ C  5o=<]dtA   _ | u ' YU uj@e3o: . R6!a#$'+V/m25 9;=a?A#EHJL?OQRRSoUVWXYZZ=ZYDXW~V_TgRQN JC;4+#3WZ_  3CIC ^7oEɅx}Ϥ!WѐDׄm|3g ;eZ ŒՑؐJƛXA T2;/pQ| n4!U"""we!-5p}  p_*m}=..:k}}@ \3!m-;nI&U]$baq]VPOHEHNDW+_ejmmj'fa:^^[XVUUS QONKnIFB?@=9c51Y-)M%S!nl yGX}s9ߍ2ٗTJ'.my p]܁Bo]Y%*@3 m VvU J8@$%'P2ۊU׋9(Gݒe+Ĕ[۪uP6$ZE_!(K-o1%6;;862/i-8+m(%#M"@ ;=l@''3xLr}8 I"#T$x$$$##"L""$N'Z*-|1l58c;<====R<;C<<:==>??$?>1=< :8T642i0C.P,);&# {C L{v\d`S`[_.ǓÁfyͭz?}қk𘥖ؑ0AS4<׆fVǃtFJuODPNj#6̔ߕt&3ΰĶʺj&|¯ěXVEٺGE?981 EV,0"T'+--.,*)*]-1 9{C1OX}_"dghfc^YTQQvTX]`dllsxP{|i}|z x3urp~o#oopqrqss7srp6o+nlEkibh*g9eb#a`^w]u\[ZUNPJSC;40/148<(>@<71*f"hZ dh]ڀv|6%6H|f j"*156q8u:J;;';T<==C0HJK%HB>;3-)'(?+.724065481.b+)G(j'&''''n'y''O' '' '&&B&%&%U%%.%%s&P'(h*/,-./c0]00//..)//0#22210/0,,(Y$!v"^75 6L?K?~ؗ7DU3ɿ$X]洕Uұɲ+*=ֳY^ܸT(X ZjHs*fMs D% &7*+)# Jc 'X18K;:|6g0)#;=hq"jy(ys;]  Crr{ߜ`ܡۇز՘eӤѠ6ͨa#cYEoųWq̥:]q\1I߮:q)_T*0r@#<,'`/7([_htcYcFiߪy5]0A;  )"3`9;:@82)0 * ' 5+#5Q<>B=8,3,k%m # &'&('%E"Uq:y$*Z.2696;;<_>? BEHK#N PQ}RzRlCHKNMYKdGC>GJH Ak9x3/j.06G= BDFGFB?>=R;8B7V51*$I vZ3l \_ p_'h ڀԧRϧX̄Ca$^Y~b4ۚ4\> 6H!$&)s,.02L579:;<<;:h:B:9u87764211/-,+)%K!k-pOͭUDoO~am‰:4‰y$1R4 Iշ幽ؽW*˱95۬a ,B:CkJ OPBNHB(>:::.=CK T[c|h{kl3ljVhec-c8c)de7h+jPk|kj1igda^ ][ZXFVTQUMH&EBN@>>><6%.s$%2ۖB i)j?ojWIwI.(#ԾH>ܸ4滻 B6ȿ3ȫ˱̎BFЪҙjCۣc]=' _;RPLvT}_:[ zT"%(,./0I36:>CHL NNNmNML Lw<:G85 311a/,)'$!9#^  F֖̎ÿԴyhA ˽D㣼Cm.}k'Vò|VӢg'{Y" Kǫʰ<4˹ܻξJt˺mY7# M#(6/}5:=BGKN+PRTUUVWXPY [E]N_zaddgVjDlInprsmtuvxy+zy{|.}}}}}J}| |{:{zyyxwbvtesqoljh|fc%af_&]YV{T8RNjJF~C>93~/!+% TB  b E:X{wڱͳ'% ˦U[uɪ3Ȍˊ %4;V(V>ʂXކ|-|DɑUCkI1w蠟Y39#vS-)2(FbnMo vUOKwck9iI!$')(+K-o/0124v679;D>1@AC)FHISK"MNPeQRBTlUCVVVVTSdPMKIK;LNR,X^dimnn m j f$bM_]\\]X_U`5`^_V^\ZVzT SQONMDLHB<6<0)%Q##$&)8, ,) &A!D wVW% @]6܆ ӛz/̾{{Jp?ŜΚi OT– zOJٗfxЏ*!Wsl3ʖmge񠔤krOiΘ5O B  z#W&s(?*n-15t9=bBFMI6K\MBO/PPgQRTVXZE]e_abc7d?c\a1_]ZuW1TQONKHFD B>j;86(41/-.I,)(&%1$"{"""8"!4"""K"5"p""#&#L####&$}$${%%b&'')((s)`**++,-1//!070$0/-+)'&$#.$x%'U(B)***m*9+-1x6;hAFJPL3KHD@< :889;<=v>>f>>m?@?!>9o ۩ؤ׶֌ԖѲ6 Z,ȥ͘e>`aa]a`p`3`!`W``]aaXa&` ^2[]XUSR SUW&Z[\][YTWT4RONLNMLKHDP>6/*(&(-p5=fEJM(LyH C<61.---,*&F"$daz!#$$2"q ",oH'k'Y@i.c ˿ɏvwyҧۧjGH؜nhꙆnĖM }ԓ:p XSEĚEn\֫m̰15=ڽZcM{  y :8z!%)U,.258!;4>BGGJMQSVY\^`bcde]gmhPijlRm)nn'oonmlkkjkklmmnnnmljrish\g+f6edca,_\kZ-WSPbOMDKHFTD+@4;62-m($&!sE5 > Hh9ӃT8@XpVߢ?k8H-7,f<963[.("  W o)*@٘˄fƥx+ΦSEȕ]AȝҸUMj!rpr] gZii ",5y=DHH%E @:?631237=CHtLNNNMLYK8JIIIII-JrJ(JIIdHFDOB=@=:`86531/$.c+'K$!iMFy I B fFHja8YƤľ.H|MҬSݧ3]8 DINQTVX \^`acceIfZghjjsklm/oooooloJopo+p%qNrksVttttts`rqqqrZr_rqSpo~m]khvfdaca`O_^+^s]7]J] ]y\ \[ZDYWIVTRCQ"PN MMKJHEB?o=:51.+(>$!w C 8:.Y0g[ Hje/4/uPJ#J2*][ә-^w֩ԯ s&8Ǔɞ̨F\ j۵ݟ, H-qX![a  [OqV|DyHmb Dy3XD!$ )-158;=?_@/BCEYHZLOPSTVXYZ[Q^`Ocfoilvno'onnmlllm mlk$kigLeJca_][Z'YV)TQ^OmKFBP?;7420K.x+W)c'i$ ~Y1 ~] o pde6H5$g:^$u6ۋ (K|!Lj¶Swi+oSd(+XISZP{ۙ&mޗ;kw?۝8g@ݣǪ8#Dξ~h&g{Bz˨!ρҠ@*%ׁWW  .3 K V $k(,/3W6Q77i88*8889:ez~||zws oi:eb`3abd?gikllhljhecbH`^]]\[ZY\XUjROMJlGDB@=:8517,H($ w#I V ? ,G ٴEb>†:Ϲ5gE!٩쨣mϧ>ꥮqR~?Ϩg榏eƲ9f ը;7 Oz 3 FTm_i H^Q#(-h1221L0c-n)%B#!$mg { RwH&- ?-y! .%5??n  x"c&a)*)&?$!G{1b g "3g~]#ܢU|uERD2 s>x J $T*@/26G:?BE4IM4PkRTMXN\X_)ab"eff9ecbra_c^,^^^t^^@_^\ZXUQLHERAa;T5p0Y+$WS x + 1  .RP?B.-гҋԶYة߷4$sV S 0  e q w ~' t R.IcO^Lު:Զ5=Aﱦ"Qf7-~t4铀0iq7薓Η:GoMtg򺡽(uqөٰ%[ C^Swk!R&*- 1X59<>@_BBAnAAjBCEIKM:N,NML*L(MOSIWYZYVHNB5*g#5!'-367$6>2,T'"s8h@MW Z 7XCza-,wd9pNCWF Y8]^CUwS]g'bW}P&:- t j%>% j !Z#$%[&&>''(`)e*+,-5.....].J.p....wF>c =Gۯ5Դ7­Լ󺙹ĵW󴕴@^ƶٴ;[beY׷ĸԹ4)Mmj"γLj%UfX  e Z L (3 'y#pb !"#B%&'[)*e+*(&"N$" '+M/h111/J,)^'%x%%&'W(+('%">9v!e&+03X554,2#/Z,r*)5*+>-.C0^1222:33?444i43322222v1E.K)#2&J.{4873,%Z !(,/Z0._,)%#7###"!| V$S = e DdF1RX<ۦGxRٓ,:k#aˈɼ7͝; Ȭߥ{?x=[$J۠=Ɲ=Ú>jK ae@61!-\D|Ǔ̿mOlft]Dm J }P"',3<-CHMTY/],`:dhloru.xyz(|]}}}}}}}r}.}||||{{H{zyxwus>qSo+mjhgDfc_\XaSLWGC A=:d84-Z#s Jo is!H\tջ<6mk89FۡW>.ӢsΤH_#qqM^jʾs+Ė;ΏеVaڤAߡqKy`Of" . -A\!X$'&,/ 3 7Y.0?,ugcݝ5 Y@Cvܤ :MȔh$>ZyݣNpWӾi-5#9ۘ|qmJgZ,&jp[ '9 az۳P`kD %q7H]~^̪MΆ >U"Wqw{$--C24676533457:T>@AuCKEFFFD C|A?g>P=<WS$;{ Fq WW$ I'1#|$M$#)#""!~"#$ &')f+F,,G--9-$,**T)-(&y%$#"!  V.v"e 2 n [ cnUz֖*ϋ lĽؼ ^L6WiNTe ƕŐǑj_2`7ַYERtBPwZ׋LHgG2?82L  D z T . w!i"b+6:@^IQXh\"] \Z`YXwW+XY[{\[Z|WrTQGP+QTX\M_ ao`I]jXSNIFEGIK LPKH3E@=*;O97 765 4F21/d.,-|,Z+($V H S: u,3:[ jSmzNZ3zM:$E;> 1 b =&^5uF,ٳիѬDfŸ&i3ɹưfJlY30{81ҝV-©"갦_ݧ@C0U}^ʒɬǯc++%*̻eΥ7̮ɂr zzz](X1 M  !%&^''*u/5)=RGRX\adhf6g;f/d'ccegkortcuubuutuPvwGyvzw{)|I|{Gzx8wJur p nYl0jg+eTca]YWVSNIREB?;{986.441v.+'#? ;Zvz=YUy9 Tܦٽ|ԁ^ӑFHs޶mw; ln sY3 YmUEyiEIa1 ẉ4ռکE9۷_ЅːpZAd 3B jˣI3ۥ]آ9ȤDïHYad}Γ؉ lXg}Q| mD"#1%&g'(),f/2I5i9=?jAjCGEXFLG:IKNPSWG[]$_`6bcEccddJeefghhh#hgf^ecba`_]\[kYV>TQ7N$JmFSC@c<964@2Y/-+(>%5"[h ( @8L \bx1r܈(ןtj͵ˁm|:^CŮFLs[ U*FA%Ĩݨ%kG7)Eʱf%Ĺǜq-03]@ۃ܎:E0%*Tyo @-C,="Q+3@:=<951o/0-5&>/HWQ,Y_cdc`]ZXXYl\__cef!fb>]UMGCpB'D@IPW\#`bc,dmc[bxa`Q``_^(^|]z\Z1YWVTRLQPZNGCF}IMQTVXQ[\]^`%bDdg+lqtwy*{{.{{zy'yxZxxxSyyz{{{{{[{{MzxNwuFt9rpdn-mkigfda+^7[W(RK>FAk={8442t/.+T&!E\ H -ְI !1IJ V.QAP(^e6yalԅ؆߇|‹Ӕuxu󫃱濅#%nrٲmO / -6O;C72a.*8& D diJg$ܙڃOgbXp/ahǵ:%a;ϢƠ#GJL-R@ͫf|ГՍܤw2)KU A)5DCO X/[^ZVMB8/*)\/1RsOH ?4G+".7z 9vRB]srz(je4)}dʳ̾iuqSSA9Ḥ9-𦏥f\#잊} 0xr3ʮBwv|\ƘG~ی&ޏ L]+ "J&!*t.\232/+"(B%%,6CN_Y#bgDigd^a]OZ@XWXNZc[[[Z)YWTmSRRSS1UVWdXGY-ZZZ[[ZY{XlWVTSRQ"QPPWPN\MKIEg@|;681N+{&K# [,Z,o.H+Y9#`Ԝu%:mcAJń݂Pmpj}ߎJ4)555W6 778D9;<$>?A\CE5GvJNRWVEZN^acccc?ba^a9bcehjklQlHkjigfeeied{cGba2_z\YXfVlTRdQYPJNKGC>830/.r.r.n-#)!7(F}veܰ۱|%c;沪+H)y׍C~􄇃M񁞂E݃ك[u׃_lj񨧧z_" L͘ݏtՍ7%cc ;#""&~,42==EJBNtQT(UTTU~VUSQQ#NIC=98E9v<:&86"5432k1/-9,Z-15:>3A?w8I+ yv4/k'nţzM>koPTۥ˥2ܤߤ]rrx@tiƴE̓ _ڱpNVA #H/7>"DGHD3@;51..%1}5;CINNO'OL]ISDc>842(1/r.t-,+(&%%Z$# #k" r S!>|  _E}={PprroGE=jY)X5 =I;>B"ڨցկK|})[݂ӢCȄ<޽Ui3ջz%CWݸIk3νX'O>P Eo0a; BO::%)0.4`:?CHSMQwSVY,]_aehkmoKr^tuuvwxx(yyzzzCzzzyyyyyxx#w5vtqwmtiepa]Y4X(WUZTSSPLx941/ +&"v3 x UTd|ӒҴ0#ο<ϵH)Pگ[i?aɨ'ɟ6֕*]ѓz院b/XL"DFOv\#Ly0G_1bdpB.h>־5 X|pJV` !*4D?wG+>n>???@B]EgGH&JKLKIGEB>R82,$ns _4' 3_ 8/K2U"*i;c_}/>ǐ3dG5WƄZ͵B owRy68\KAjt ~ d]$d+ < D(.t3`67?7Z5U3,2 23o5J9=ADENHJLMMbN OO_PP`QQQMQiPtO{NLM.LKeKJHFDA:=8D532l23^464Q1i,&FX >3xފ_ Lզtʚ')只$’NړVdǽnۻٻY 5IET %+[036:>@BCDVE^DBAAl@??@?$?=<:7g5321/Z-s*&Z"l|%#$t"D &bM8tDzټU̱J8 RЩa :86309-5*l%>T2 1)8['|;&?:ɝ9OO'EChJPuW\V_P_j]'ZUQOPTnZ`hhou+y {o|}}} }|y|?{yv(tqnkHjTjjkl$nnkg3c]YV}MEYA ?n>?BPE-EDB=6- ", K8k">*9iϴ:aŏ¢&1?YOԤfSଛرp_Dʻ!%r ͆`oGڋ Rb'|aZfb4**5OXcV@`Wֈ~8կ~Ϟa￸<=c0ǰϱ^㯲'jVwtKҿ:5pu) 3=bT &"":'q,27;?D1JM(PSDX[]x`cf h_igkm.owpr"uw8yzA|M}}|{ywusXrqr{s(tttrlcZ Q7F[;449]AHbOS&,%$"0MH] .@џμ͊ШV/Ҧ}_еVumEtrުg;K6.&O!!%*//2$321V. +(&$$V#"C"G!|rn ;U8#`tՃլзɵJк^4'®G٨xƤ|91֜ hnm՛}DZo°-|̐ύ.cwbn7 J$/7>4B@<'9V645:mCKRLY`]eh&iPjklmoruaxz*}~0~:~g}|{u{{{Q{N{zyxowusPr]qomki[gcY`][YlVTRJPLID\?x8$2,l'C! 2W F VܡϒQxⶵM=ԝ3Dّ<W9ቴ|Ofɉ]qw-#;0қMgޫȭdz³ U*ڴO  <X!&-5V$<(:8#61.-&)$  "abܻhDȷƠ8'՘eÎC8`#ݼlG1<ѣ^HۨsAB / r4[ 9$#(@,o/011E1F0.-%--k- ..///)/r.c-,*****+v,d, +D)'${* `Q %M#24 ƵB\CKjS£«-Gwk1Y0]azc 58  #&A+N17;@F&JqLMOYR]TU WXBZZEZYXWuVTRQFPNHMKZJfHFWEHDB@?=: 73/,j(#F%LW? ۾s]Pө+CآPZZMѦ-16!_oӹ jBu #&,L % /%l)+-/2A56888Z71520=.---.U02s457R:=f?ABDFHIHJKK0LLMNOPcQQQ&Q)PNMLKJIHHFECBSA=?e=o mxHu  /l/zeB^4H,ffh%^= R l `V܊#$\'Pۉ?߷tߓ\FJq O?ȍoUoġ"= őWvǘ ћԏYܱn6t8WHMqj B m %8 ="#%L'm()+5.V02349544 4o33358<:ϙ3e8KuŒeRNQZkɒ["ו%ՙ3=%QB̨9yzDŽիKSb. " r] l#w&F*-01/332247;>BKqT\avfAkznmo=oopSrsu9xz ||}}}v}@}-}8}7}}|||{{1zyxvSutrpl\jxhf cX`^\YqVSPL/HC?r;62/'-|)&#!&z 6jRܾՐδĶn¬$ɞēҒ (ْӓږӛ~ޠzMm5n"ɠҠZpYr"p"a(9,.}1\58;>,BEHI{KhMNOXOOPpPOoO?OOsNMoMM`LmKJIHFJм^qonmlj)hreNca``_v`a[ajaa_K^\ [YWUTSQOMKH[; 9hڂc2-Ȉ.'J-Zn~켼C.ώֱsA (aM!I',E05;@DH!MP(SaUWdZ[6]"_Eabcke|gqijblnop!qqppnlLjohfd@a)_]Q[W&TPMwH@B<72 -(7$ ] Kr~v "P&  yDKgxo_< v`uX"(,Y084{8; >@BFHJLN-PPP*QQQRRSTLUUUVUWtłׁE܂"-+:!q:x-:S~_%hb J< .!'q.6?5G`LPUuY[]`Ndfhk?np}rsuwwxFyzkzqz]zgzjz(zyxNxwvuLt2sqomk jgjeqcaL_?\YQW4TeOJEoA!<;6i1-*{%t!U &HlT M΂1dr3ߛ& Țj~JÚF8MҘٙ|ZҢ8V١r/_cϫ`k z Ǿca <׷ڞ6?1xs\ -I %(S+.g37/;~=q?@@k@JAGCF}IM)RUVUFTQOM?ORW\blhflln-o(onm.npruwy{|l}P}(}o}}H}{yFwsnhdaa`_F`ajcc^a _[WvQLHlE(B@>7:752/,S)$]SP #RFپˬsuVsΪ먮"9"Ffʖ]v[-Q0ښƛ!8袌ʧ ߳+t9^xXe" =z^{?!%O+2)9=?A@a?=`;:;?=?GCrF;HGgELA<6/)9&$%_&[(j**(%s D 01O1ҋ<,ճ޴7!(tRPQyWՁ۳h/5-6])C2 ue S"#%#()+.259 =BHNQTVaVQH`=1'Z #9%$"? '/5d996Y/R'wfY0 . ? O G̙ؕa[t\\[njЗoٗ؜-J ƮŜDZN" 8<%[@H {`#t O T  D Z B [ N  R k  j:*s~N;b:W3'ET! p2B8'/Xd-QZ#DTY   } hn<})F #! HvWKL#>ZNBsܦ>ТJ\9Ċͱhc3±.ŀƫoȔcȈɬɄʝ`мr؟C=b SZ9 mU+(##)007>NC#IOUY\ayfikmoppqq)s\tuwtyz{{{{"{zxxwjwTv82,&\ ]"q  iFtg0d VJLȘڒ54ʃ??%ꍘԊыЌ|j󝽠â|U6ͻn'nA  @%z+T27A~? " ,j>8:ٗ_[G}ͮ˖Kr̵ڪwm Ɯ9ʒȉȧ: Ӑ8d.GfqE  !E$',036?;?BCDE.D%AJ=b:z8p64210.%*a&")f< nl< ߈jnЎϧR*ά4hDHDԅՌ֨ >ۿܸB933m X$A*-014"8m;=<@YCkFHJEMOTQ!RRiSSSRS SUSS[SRQP)OKCGBY>T93|/@,8)%"8 [d r`7w"5!AŲKhtɞQwɞįᵕnЦإ覼hCZ3JΥjv4(3.|Nj\/cڏ܇Z#tAED "'m,./ 12k4:69?cEqI|LPS,WRZ_elrw{}z}2{cwrvm3ifefhkmooo6o{nm m)lkihg5ecPcncXcScc0c`\XSME#?:x85k31/+% 3N+a/9HҫlȁIJҺ㵤S;o+v󧠤EEI=(̎B,̈́0Ƀz$삾l\(KFÒxGѪm˟~ϗ*}I' XR '%0=KV\ ^^__!__bcf jm*rvYx/yvyyzdyuwtq nhVb[fVkRNJ#HGG1G0F`E2DA=:62z.*'%" wA 8*z)Տ#Ͽ̩ɥĭ|8i_T1PN:6$\s "w> \J :#%&()o+-0!3b57o:i)]*V+q-e1 6E:>DJAO[RUZ]H`Dbdg j}k4mRo?qrstRuu=uttssss_t$uus_qnIkXfa])ZV8SPbO|MaI1D?:53.t(#!  Bl)BzP˩+%mŶpF5^J5* Jg̅؄gBE1HJNmPQRTUWXZ]"_`abcctc`ccdef{hjkkSkjiqfa]-ZSVQLJGD_A><810*#D0 b,%]ٶ:ϬʲKNIpRζ7&g,y 3 ɻďW՜k^܈:-K/  !#%&(*-R02C58/:; ;);;l:+97U77654E4$318.U+(G%!0P 3>y B14 XعVLԦ԰~HYיԷҠГ[VȏtǐkhW$˰˞ m-&ر ز9ܢ>T$qQиϧת;VU#dR)~ v&!&A+>TcZhEo2 JE | Q6- Q#<%.'),/!2)58i;=?^BD FGJL#O(QSVUYZ[v\\\[ZYXWV+VVUUS*RPNCKH3FEC$B@j?]%cڄwhAVSJ/|_y gC5&8o.Fۂִ]=Ψaxʰ\1 Ȭ7j|޶6]rl KӖִمX 0$+28?H>PUXw[^s``cabd0efik noqstuTvEw3xxyPzz{zXyHwt>ro"nmWnoqsuvtrnjd]WDSlMEE7=.71*n!. vXG2? r  :"'NW =ZJ`%^k}ߗ޿YݯEb[ iPge.(wP 3 H  % ; h`)5(& $--5@yA@ ? =N:63R1/- *9'$! D> Gپ|0˼=.3_mZ:[͐;k<֓`ZfkE ǘԚ-Y>;pQѢ~e/ʥ EaAԯ]ٰ)<-ȼIh$+>ˢѵOڨ,o]btϏNУtҿ?Γ;lKfؒ]xw,&B U? %(z+.y2k57n:0>ADWGIKXLLWM;NN8P3SKW[]%a ehjjl>nMpqsotXv x.yyz{{{b{[{\{1{{G{{\{dzxHw>uroQmJlkj ige%b\VPJBo<8W75Q30.*%_ <~ g CFq{_z|D05tNYǫ2fq`;U8421:3=6:@KFLJcL=M9MTLKJKMOQTzWYZ[0\\\Q\\[[[+ZEYX"X*WUTSRP*OMLJGE:D@;61++# 69s]1JL^׹Xͮ$u±wL RD> L}ҞVk{ʠǡڣ( <~A>CyS^/Ɣ ԅ؀';=l1߇i-ߒ}߿6/k[[e> H[HB H ="3,38\;<9l4l-S&O= &-6n@IOU<[_mbcddcaA`o__``bpdnd>ќ-CF̥%I>Ļʾs񿔾kŪܨɧȧ.vµ}ohHăʲ ժؾۣݶ>q%L\HyN 0%2S"!h#;%x')3++D,-.$/1D5_:>CJ3S#Z<_Jdjquwy{{+{Pzyyymyyzx|wuws(plj+ifh\hi!lnpvrsittttuGuu vvutsrqppvo1nylkPiFf"bc^[:XSO1MJFA=93-&!l ,2T#ڏ=ňf?V5>ӓ<q ΍ኽ }脒~tr}j]Mʕۗܚ՞n󬻱õڹƋ`[HV)j T ""#$"& ''L(((' &l$ #&"!!#M$$$#"1 }Ykٽ:tvC(r nϼ̿LHD6ùŬB}Ǔ':>ϭ&mަX!Y$'.-269>BFILPSUXZw]0_f`bde{fgh*jjgkllllTlkkj0jWihh6gfdcQb`^\w[Y3WUqS>QMIEXB^>r:7q6J53 321_-(#t B#an[߀lXsԽZ*Ҕґ0a͌Ǿ%LҼIJ=fDZ<-Gc%#¬Óȶ̣Уզ٬HfV!={& N"S%X'(*N-V/024678>:;<=>?DAcBQC!DD7EErDCB0BAAAABCUDED"CF@=9A5;0+B)'&a% &'r)*m+#,x,<,+*)((8(P'E&%?%#/!\BAt S+aސХpŇ {QqXiwwJ.܉wa+:񌂍^jؓH Yأĥ;6ܬ$`c"LZZ֑Cjۨ݅;: Y (P "$&Z'), 026:@9D<;$:7h503?13/,*c)' &9$"! ']N\OUOq Jsi& 8!!!!E  !$(4,-/2k5q8:[<>#B(EGKORVfXZ]_`abcKdCd)dHdddKdd dcca`_^\,ZYWV TRQkO-LF9m5 2-($!!"[;%x z% F ݾ1=Նӑ ͡<ſgw,Tɜ+=ړ 쏃Ռr5P!XfԂ-us#˃}~Јe$̘jӟ򥈨1uCĉ͇hRH~$)c,[-}.02;4a5 78j9]:<*@C HL;R_VYZ\4^^^p_b`6aabcpdddkd1dcGc_bla`_^8\ZYXUSQOL IE>B>;8641&-a)$b`S )2جǚ*k2®5ǩa 3hC` ˧ԧ-ʫAbJ y8:Z.ˤ_нӸۖT$^W K+#G'*,.14p79=AEHKNnOOPP R6STWn[^HacegnggfffffIgg!hhggWgf.fededcWb!a_ ^C\[5Z=YXWPVTARtOMfJFB@>;q97a642.P,)% [ Cb;Myvf7!fp+E64'֕ԕ!{Ο5r*ħIٟm6 Zء<՟ϝ9v㤆*DP}jwz 꺠(񽯿..M\gw=3Lj|\N)jx-<   $ ;!$(a-1476;>j@AbCEHIKQNvPQR T)UUUkUUUUUUUzUTSpRTQPNMLLKJIGDA<97667`9:9y6b2,#,ak+ V[I| CY4:2qPOS Ԙ?ͮW+flr2LFؽ-Ӽ[_?b>:580+)*-0r5;}BGKNQRT[VjWXXZv[P\y]_`abcdQe)e{dcbba__q^r][rZYVTTQNO⪺h~ʺ1Y0Ą|,Πҋ֢3bTBfl_ }#K&(,26):>CGJLObQ9ST)W)Z\^`cXfghi'k+lm{np3s-uvyxyyy&yx}xAxFxxxxxxRwrvau9t\srrPruqpomkjhg-fdcb3a^\ZXXUpSSRpQPNtML2IEB@=n9h6~4p2%/+(&"A;  F>kDyI!%ؾ$tPԟ"&q#a#ǃ!9։F|ۏev2X_4}@ḇMyٴ^'b0>&@DWS }N  B m &%iQ8E N#&W(*/.71A346/8=9:@;r<<==Z?@ BDGLPSdXK]]a}dgjmnolpeqrorrstOuuv'wwwmwwvvutsOsHrzpnm}ljVhfeb_\ZX_UQwO;MJFBz?);50:-)#@(B4 + jL|c7ڿfD5ͱ6Hfc&94HE 6O9V@7">R+mOьRÌfѐ+Jð/n%)۱wx9p!,7AUHJbJII'H`GGIKNPjSUWXZZAZXUQ)MHEC*CEJ>QUW[^__$^d[WjSPMKIG:FADj@;{5/)`"-^c N#y*P03s3/(%!cM SA^  NJZgxA*,8Nyx^~3`^bκƎJ<T/Ӫ 1˰/W1òŦo̫$ҝtܙ,0T;$'rJ 'qw.!$T')]*Z)&R$!"X]  L  a mGH<R b`! 1"%(+B/+3`7:=? BCDD#EE+FFG[IJKyLLLLKVKcKrLMMONP-QGQOIBK;3+D$/$Abe "%%$",U;8q 9J5 ֆΥǀUkҮL;^ "ýdXUP@ Ӽ>Y?ۼμvοSEgL (2lѴO՛յ/ ZZBךWmQ4 D t;!q p"b!\'yV|"*2)6V6R3.W*%!aO!j#$o%$!t;5  / +c[j{ qm ,v= _ Xe,Ht\nߙۼ[1էhѠϫΘzV9ʦʺOG˛ˆZ"y.{sَݳf}ܩێT)  e 7(Vod+ 1e ?ZF3<4! #%G'()p*p+z,-I--./x0135C78P:;:9876^66]8H:'<=>R?>=<;U;;=?ZBzDEcFEzD7B?; 977678j;>gAPDfGOJ>L-MkMFMLZL?LLM}OuQ9STUUTQNKIEA%?=1<|96242?/%,)X(P&#!Z un (b$8'ͨV۫ѩҧæp@ꜽo[&sҐQ}͎[ ǍǍDߎ@v]@ƕŗ9jC֩5۰yn~aЛ ɭɟʯ%ӊnRء QAepJKA pWSz) %?!{'k.4@:?gDGkGFE CA%@@3B5D=GqKOESHVZ(^a%ehmNruwxPyQyxv0tsrrs*uvXwuTrmJhraZSOMM}M=O,QQQ[ADHKOQQqR!SSSSST4TSR?AABfDFHJKKJH6B8V-"s  D 'n,,g( 9G(ZђтH.yYÄᆭ|ѽYƻ#Р* .D Py  !&,}39,=eAFLkPYSWX[^facfi klsmnoTppq`rrrMrqhqWpnkmOl#k]iWgeld]b_!][YlVRO0MIC>Y:5g04,o)&1#LP3 ??]*Αɑ\W,ulêvĢ砛ǝkz2Bdxc[ؗlQs&M3}ԧnr AƆʓΌ;ܠ$8O$ -"',g16":(3i+" w=e֮ё(xůl q 9dUG|Rĥx䝸8瘥ϖ\ɕʔ֒ZN)T5ȑϓSgР͢x֪5򶪺K3Ⱦ\Єԡ!Z7#^v !&,2@8?HjPPU Y\7`abPepimquyg|}}x} }b|{3{u{{|{zz8ywQv2u1u'vvvuNtzpi`bXyQYK&FCYDhF-GFCo?80)$ t2L/ | \+P,KC߫[¢!֢$#Ey ݮJUOS7ݳعϻFW8]z[ϷB;O 9Bv1 :>RG_"$7' *;-/*125[8~:b<>AiD^F,H&JKLSMNOOP/PTPqP#PO/MKHEA;741.,, /S268< CWIMPPLG?70*p''+/48::i8 5T1s-*'d&V%#!Eip l|V9CZ dɄbǯ}ͻ&ﵥԡk͠{뤵Cޣ Z|͞%p !p4ʻĿQc׉ބz=() |" M JV  Vc $^2_ cs@vY!$%'H*?-/1)4^7U:<>>AD^FaHJNMOyQ9ST VoVVVVVEWXyZr\^`fcSefg1hhhhhRiijyk2llommmJlwkpjh7gedCcay`_|^e\IZXV^SyO$L?IEA-=M:72.7+'#z > *;L̕QLs8ᦙRܠɞ/ϗ?Y^wcUV$!UDD˗U , П#lG7ao16vç .ܬ,miȶ̸򺖽[8ʯ Ь^*c0ia +^&0;D4JNRYSR5R SUVWY\K^____L__`Cbdegghg9g~fneadcbia_r^^`.bekMrx{W}-}6{Jwqkfcaceril+oo8omsk h]da_]@[$YWUROeMxKwHECAD?g:450+#o ei81utbÿWɶμ$P-gg|ƁsBҔ reĥШ '?`unjn|ʼ$̽y**kːHDA°="v μz޻ƻ"Ͼo#v¦Qe3}}KPz6[ #(-C038Q޺(prqJ¥˜ŒqtPiZfAΦѳҙHԊ{֟؜ڬk<0 F#[&),w15M9<}A,FIKKNPRS0UV.XYYZ)\]]X^_|__v_A_^^}^%^]]^]]]c]\[ZWZYNXW@VUTSQPOM.LJFIFBDnB@=a:753/\-+)'/$!2`ZI  Sil;kw^D0ء,S"Æǿ3qܻ-л~DԼAszUtR&ЫEREz1՟?d&?ݢ̨*İ*+!nKAuѳn'q"J'G־)m<]ۓUWf %   L'"q(8-b1r6m?ORÐ Pηavm*4 Xn  dZ   !#z$%&H'i'5'&*&w%$##\$B%M&'),.z/0k1121111s22232Y20`. ,)'%3#"/!+Dz\/9)  Wi.wZ1t8*uкhN%vW?p ǩ V>,`ܑLǎ스r oʧ&L󧓨$٪DH+Zm$߷p9ngi5%)*)(_((j(r*-1135 8|99]99:<_=Y?AICDFGgHHJK MMMNOPzP{Q"ST=VWYZl[[[_\\&]]^_``o_^\ZX!UURGPNMjKJ KLNPSW[^M;460,z(`" j[:b 63 x wb>_}׊;Ӟҿ'KTݯlp߲ߔ7>d< PBu 4B:c ڔۮNoݴ܃=Κ5Ɉ1epw7~ĤºŒ7¿hAo_'Ӵ̩wd@9G誔ӱ#(A=LIopڀֶԢԒ8٧ۚ,{aXq~\&[ =)8\ "/&),u/269;=>@@ADHL.PTYx]_?acRfhjmqXuwxy{0|z||{{{&|%|6|\|*|{+y,wyusp^nljAhda]YSwM HC?;j9z87W6432.$+'$!0}UO  m7CZaBQD`~2`qԟъMGtǾśyzDݷ  |ѹl\JV ÀA_v񶒵i0sӰBl«D۪iۨh2`UgLi"o綽bؿ=OˬѬ֭ق'*gH 0  2$'-|3;9=BHMPqSViZT]_bKffikgmoqrsatuvww_xxxtx xw-w[v,usrqolmmki'hfdbPa^\PY`VbRMImFB/=72N-%=# !rÏbo ķ;p*ŶzƽÑŁNcз{hDc $K;n{}Jwl:ܻ3Rq;ԎEύoGAnӡ1ՐRK.ךר؟o 'IP #(d+$-j.0E35,86;>;B:DXE6FFFfF|FLG}HIKDLCMM{MMLLHLKKuK6KRJHG~FFECB\BA@1>e]PD<ݠ.q79XǺdT{^۶i~볦ӵƸdf귛/ĺOA7,&ɗѼՇw6=G"I!x@)sW- r! $&)+]-.0Y1223256789:j;;;;;~;c:8 7m5P30.,++w+M,C.024-6X77+87u7655)54S4(43G3210 /,+i)&# ZE { wnj9}PӷϹC|kc>yHm׎ՏbEߔwڛ*W 5߷Y1;́$Gpv:P ?#)K.159;;r;k;A;:9?:D;?<<=B>>=<:[975M42>21H1d0t/~.Z-+*(' 'l&.& &j%/$"!l ( Z#X9 e!"E$$#!LF"!w&z+0=5r8::;%<):864j1/-=+(%# Wj  ) 75c@mHݳٙmpԫՈjT;Ȳ~v|M :.W2AeyǑE |<ƛݜ[fȥ}m#g8gœǦ}SޝMd5  et[!%+U151:W?CkFG JL)OPRTVXXDYYZY"ZZ&[0[ZZYWVGTSRRQOYNLGbB<73-B)&%'# ca <*@`*r3OsךԯЅTVǞŵ)*⿘!B/?r AEk-Ku̲پ(ˊ͵ԅ،۽CF<U )"%(,I1]5L8:<\=ǍM 3Njv!ˊJNj/uϏϑ̓Ӟ{ˠ9VlL򤊥vOåUӶו1P]Aj u2f# (_**Y**Z+,0e6=DMI)NjRTwUUVWXY[^`accefLgh=i?jjklnoo,ppqqq\qq rr/sssssNssr`rCrKr:rq_pnljh^eecVba```-a`y` `__C^]R]\[ZYTXBVWTRPyN=LJ#IzFGC@c>;8 52a/*&"#&d ߓӥЃaμ˛yne-UޠOO;Xȉ̈뇹i,nJ݉4ΑsE;w3I]`ɘך󜙞V󤺦Pnӯ˱yQJvšrΞѥՇFiJxx cRY S|aOv_:!$'*+/38j;s>^B}FwI[KWMOVR2TVrXZ?\u]^`bbcQef|g:h iiWjjjjjjj.jj jzidh-g5fdbz`^\ZXV`U/SPLIFyB_>;974D280,& , >  CK½Lc)D ֧Ǥg;Md4̛G_|#g=LUP >؟ D'W Q  1 %h)+*+*|)J(''<) +A-/n2g4r55D66d66+66 88l9+:(;V;9741,%f- xO:$Fi;V i2|x -CtQlLכ^0~Ϫ0}+hˁg:δA1U0}R ޾!Gu )% @#3(+u.626:=0AXEHIKdM?V@f@@???Q@0ABODEKGHVJuKLL.MMNcOzPQ+STVfWXNYYYmY>YX!XpW0WWVUTS"ROLJHHEB@}?M=":7P4Z1-+)K(s%Q!&rcz#|n?rҸtkȧƈ ]ƛ4FV[ɛܗފ[!`{{Bz>  j 2Ec{k%,\4F:s>*BEGHILNQRSEVY%\]^`abb*cc~cba`_^y]a\[ZYW$VjT R(OLJHEB?#= 94/4,(q%" ;6' puNO<$]ݡ5ҵΚ$ɴƂ#"# ﶤķ>ep&c`e3EԬӬ&AV_|ȭ0epDp`۱вѴbrrhذۤ1;RroE &  ""%$(+058z:4/+(u%v!D5Gv JIAX?J0 J9 $'(*+ ,,,,+**+,-S.///.I.--+-*7)4(Q&#!H `+q u >W???A9EMI>MXQUYY_[\\\\[[:\ ]]^_aaaSa`R`_^]\N\{[wZVYZXWWUgTRQCPNML"KI0H0GFEDBUA?j>=W< <;[;i;p;:98A87M7/7776141k-(#W#'-443:>?g?=;_97667=9 :.:9975s320u/-,+)&$6#:!:ZQG (3K}#=hnʳ󲸮LșU4厠 c C*s΃ɃÃՃ"Ć,.NgDC&{_̴ɻ;3jԿbSul;! t7!#%Z'R)*+ -.01W35678:X;;W<==i>>>?Q@@CABtDEFG6IJIHEC"A=9 6l31. +(p&f#eo W):yetkBFV%G) PB::!v| g uM-  lH$$% %" 9o<T "=$%$"] u&Xr "%) -_/147 : <{>RACEGIKGMMKNNNONOOPPOJONMKHFJE/C|@0>v<:i6O2.5,R)&S%I$8"uF JD0:#T|ESHȞJ:/҄52s`5F񓔐4V舳`~r E̜Ǟ@@>~}T4ݍv+jU S c"&'F(s('%%%A'r)s,0r3V5 52{.V)N$7z!%4),C//.- -!-- /92}6:=w@BCC2A><:97777}765#30U.+])('N'Y''Z((i(''&$#4#"\"E"s"""_"8"""!T""a##|#"}!, 6W "o$%l'())*V**P++$,o, ---#-+,+*|)' &$|#~!hV3 Fz^q1B*m@)*}ùvPòx转3fDޣڡϙܘΖ=[蒤 '&^P)8ˈq7+ x  Y#&w*-Z0/37SUWmY\Z:ZYeY;Y YuYZ]\] _`bceVf_hjxlMnXpfrsttGtssrp3ondmlkRj]i^hf ecvb`^\~[Y|VSPNJSFB?<852/+'$!C/  T'ӅCE$ұS@͠ߛ"` ?Uhcݔ{ ;ЗR1c{?^HrA֦ũL8~p٬{f(`}Jv aPM!$%s)<-0=3 8H=~ADHLOTQRUWXXSYZ\-]]^_________`-`_ _][LZXW"VVgVVV,VUR\OPL.JHDGFIFDU@8#0&Qy ; 4$ oue3VeLM,'SԱ#ڹ^Ay YFQ + _ r x]U` \ g[ ;}AXq?!|"@##f$K%-&&&[&%$"M g&IK .Z8-޸ԆθWЌ;"xتʟҚ:x s̍H%1ϐ,đWKcڡѤ 21WΘ8plAc" ^ z &+d.0K4 8;]=@EEJM?QUYK\^X` c9efh2k;mnoprrrls>ttttttsqWp_on6n5m ljifbS_\[YdYYYgWjSNFm<1*&%%'**'* %d, ##s͋Ƈ{ӹ*Feװׯs9NΦNvǬ®{ԯIuA¯lƵ+ŕW+ᾯ¶Ĭwȹ^ q^*FԟգٱiUt!u b.k'5+BKRXZZZZ]_byglp*sUtt3ut8t&ttuvUwwww vtsrqo3nlEkheccua^[XVSOLKGC7?:b7J4/*2&/"G 6Z U~2}ە(}s1džK؃Ʉ>9Kz[ܔyԝ۠&ld2Ě<;aU>YPdP959h1o%K{}b626d$  Mzq #&(+y.025 8:f<[?0B0DEGIKMiOQOT\VX'YY`YXtXXWX;Zu\^`cGefgg1hTh{hhhhiihhvg gfedcca_]%\ZdWTRPM K]H^E6A<85b2-)E&!|I  \uG,1mr;OخmsoҎT%0RVG9č䐭͕ЗΙNЛԛΛƛ=dɟ3r|i 1ŪȚqtЭk؃߼c P"~ `I!#$%t(e,04k9>BDFIK(LMP.T.W^Y[]8____`J`"acgegiloqst#uu;vdvvwqwwwxKx?xwwvvuts%r7q$pCnki(heb_]{[~XVTROlLIF$A49y1*"j%nD ؙЎSfj2ڕƑpᇌ~ }}F2Ӆh^w#֑]R:% (s̀[ N#*3h=GOSV!Z\\0\[([mZXUsRNKbHESD,F:KQW]bgkkjhfBecba9a`^[XURN K-HExBQ>T:62+%G!n` 4,O)xތ*?MИќ:fхzk̬XǞƑ̿5Ӷ׎ܪ.n\"i  3.zSd4`t"5 a 8)6¤H{궖ط춸Ķ#.g6ٓcU ":52B0-*W(C&0#J"J 'ͣɸż@3Xn% ĮIUB˧Jئ<ť[t .!| ť -=몾#Ϣf`Qv)Q"ӡi 䥔0bj|ŮEc+& %ezG= lI !%(+x/2469<>@sCFIJLNPIRSUWXYZ[\\\w]]t^_``(a``_^])]\\2]]^5^^]\i[Z;ZYEY3Y4Y;XUR+O KE?9e51-)_'%#$"!k"#$&&|'3('H&Z$!(2$c9[jw/  -{f)%I[1^2؂&40˗ɶ`Óaڸ)UIJr;Tޞ靹ߚ:̙zBaATʖӖHǕhՕڙZ:ۢǦ#ެ\5ⵛ}Pǿ$Ƌ̪϶rLW#')  U?"x&F+/248'FM`OHϫu؀C"R8 J 7$(-0/3,6':=@]CGJL`NBPR\TTT8UjUiTdRPIOMPKhHFC@:4'0+&" 9&u6 HFQ=ܗW֚`]Ս"cc֖Eګ܉ݳ[ݷ%jjGہܪ}e8 kc $$&c),0>3?44231/./27=C GHIFK@7/|)&%(.49:+81'7 /  lKY2 ^g~\Ȯ=BC8'hѱ·4TM?AǶ}ƲƸyLˠ̝́,`SφcФQ ش\81 YySRB N AW]"%'O)U+-/y1-357]9:?@BCElGRI`KLnMEMLKVJIInJDKhLMML88i30o.+([&$ F CrVGE=ݧbnN}Z|+άɨY+\+}3ŐČoQ҆ndr5YȂG:Ȅ2A ]Ӆ^AÈ#k񎈐v "(ܰ:ŋBW!M:5Ԓzۺ e i oW! #j&"()G,.0257:A<>ACyE4GFIJKLL NN OOQRR{TVXZ[]`ab^df}g}hikmtoprMs-ttt uSuuuuuvuuAtsraqonmljhTgebk`^"]ZWCURPOIlD?<7L30-(<#UP tJF}hsؽp1~yE 3ܚјKߟ# EԨOb0'ήu"°Y鲬l6Ӹ[lE{E]}q֡ * +{r#&&&'()+1G:CLT[adDfjghiXjknqtu2wBxx)xw\wBw wvvvIvautrrpnCm5lk'if~dLb{_(\aY?WT"RP:ONVKNG&C=:6M," n7g$r(}dɿط7gz4\#lk3jXʛV%^v#ZŽ񐙓zapd=;.1 ʴ\@L3Hr0"(-00B-)&/"F"'d-2#7g;&?A CrDmFjH"J2LEORU X Z8\]y^]\[KZWHTQO6NLK'KHJGPD>@;60)%#q WO O  Ixu=@ڋX ,2F5rDܴdaA4l?Wׇہ#MW{K:'/& zZ!CT[1^ K@#Y"0c>auXa ?` m ` ( KF9@k:" $'B)1***))+.2O7.<AD{EC0@;c72>/--03E6"9::@9630?-7+*+-.0x1z0-i*L&!X.E ?L9E=iߴ=ܠEhͬyr.3^%ŭ)(KprɎkYۺߧ^4 =Q#w'),]/00/..-,++++*)('-%"K 3iD t G 'Th+7r$*Xוx d2ۍ SS b a  S u M2P~tJS_)RMΓ]DZĴ]vlPײ /𫱪,\=߮{յ ^A ĉ ͌Ӑ>?D)gr(! O!'+.132<0.,+*C+G,-,,*b)'%$%%&&%#!OPkMf ",$%0(*,/26?:k82-!(t!8Y&\D]ޏٟiʔ5`j@ڝۜ M?N&RqwƠšeBA.BJvƩ@Vӆ܅cQu^G` jI%},M40;?#BvCCB@=<::9(:7;Q<<<;3;9741/,+*'%w$"! H[lc 3~D(JPܣ)rMEj¿)d8-)̪ʴ4FCFɴܭuLמ|M)۔ܓ"ۍf5X679=A'FIL!PRTU;W#YZ \\]^ _$_9_R____^\ZWTQN&MLNxP\S0VX[Z\[YJWT{QMNHD`B?s<9(8k6d3/,F)$n R.! H޿fҼͺ9Tŕ1YßRkװ۰ٱ3^&˻jf^P#W#˱,B"ДZטUyDW.edFSݢےaMjK֝Ԧո \ іU?RǯHt٤c壽+z䦞Ĩϩ,QYza񷔻4y)_ՄI?2G^ R!G$,' )%+.269=bA4DFG%JKLKN QTdVX[^1a4cehak_mioqKtuvwxyyz@{{;|J|C|<||{z/zyx/x9wbvut sJqonmlj hfdtb`R_][YWUROLJvFJB?+=:{73@1R.)#&: / h|G יїGnH־x ")ok?ݥS֠IGn6gbK5Σ٢geL~еùv{A¾ăe'˒ή<+לگk9  x5v: "z%(+./24679;>?fACEgGgHYIKJJKFKKLM OmPQ!SVSRqQOMhJ4GDCA@??>{=~;97$5z2F0.+-j+)('%$y")!dY4<> =  v :g'{r`0{bpuL * k!>Dm9^OyF:l"H%e.mԷ,hǹŀê~eٲ¦W-B| ֪ӦaS0='W -Ǘڗ藭ԘC$?vW6'7|Ͼ #!E ?fL+ Ct"(,//q-O+))p)+0]4?8I<@C6EE?FGGGHJ(L`MNPQRS"UVWX*Z[\]g]]S^x^^)`(bd gilgopDqpomk-ifdca`_x____E``Qaaaaaa`I`_^ ^]]\ZY YWZVeUT}SQOYNdLId*eeeOff(gfyfeqedJca`_](\ZYEXVUqUDTROjMI4D=84/+'%C# m*ڍԇ˷xpİtu~-s۵iɽB~з*4+9{ !(/5663/t*/$gW%-F5:=f??6>AK@S=;:<8Z6 4\1.,*@(%#!]c3Z p SB0{xcwynuyϪfΈύfCѢ7Kӹ%FHّږ=i`0h҄Ѵ*м+}͌F lͲ·%Ϭ.Ѓ>҆/i ]ّݮ5!EcjZ. O3]."6 "&(++\.02g5~739B;?=>~@~CGZKNQR[S|RQOqO9PRYW\af2i"knkjgeAcqbbcyehgh=ihhfGe'c~a`_\^\[ZWuTQOLHuECG@3<84(2Z.)%"& ea?w# ri HD󿋼rN,,F/G3`ѝǚ'3-_͙Ùm#]@I#Gš!B5wˠC:>} -Æƅ#\32֍ڰz53#f e93!&*-%148:;=e@iB1DnFHJKLCMM%LKMNPSXXT^c*in@txz{{{z9ywvhv7vv.ww_xxvtq okhewd!d,dhdDefghWhhDhgfzfe|dDcZb;a_]\s[YPWxUSQNLUJHDA>'<8(4?0,C(#\ %5Y}A |ۧw$ӤRͅÜeŮpJxۡ`ЙޗבlӉpЅMEqۂ(n˃ԄF|Êy<ݝנ;O q:]Hһ*-ivL n t 2n$9!~$E')*4-/00.- ,)&#!C`"U! h  xY!gH74JR  X "a9"!N#E%\'"*@-0y285^8\;=?>BdDE9FlFFF GGqIKMBOoPPPNKGCDA@@;BDRHKNOO4OvNM>L{JILHaGDBAK=963 +U") $bejgOY'Bl\FdPaGͳɆ= øڿz>sRb:>ҷȹqϼO3'l;c+ǫ"Rǚ˰ͺϯџ1-q Bmq ٜT<֔ە!,[}ߟ\\w/~M-W  M!$'o*-14c79.=_@BCyEG0I1JK\LMzNOO+PDPPOpONWN=NzNNOP<:8642@/+(g&&$ !yM/ `9EMՏltȱ 7UN4יBE=/_<\bM9ऌϨb9CPkGݤ>u, /#%D'$(S)D**S,0p7?8GZPwYc`idfhh^fdbgbb?df3i-k@ll*mlFlglmoqs[vxLzy{d| }`}x}}}}}})}]||{zyLwuubtisrqp?nj[gck_ZWVUjSJQOYL'E:0h'm e u z ozD0y+lːノQT[pm#& N悕҆5DK֋捼]1ꝣAڽo{Ly9 M@1f ph s w$~(+,j+(%"LFN   }%{a Sj"' *($e&l5$')**b*)#)(()j*+P-/0 2w34556 6655h5[5M5'5 5 5544i4k4l4K4433c321O1i0I/2.j-,+E*8)0(&$N#6" DtC}  PObVsG0_T9THP:"+*+b>çbȽŗ  xʱ)߯7OVni޴]ֺt1%Z"Œĸfr]ϸу!ܚct'u IH\II0+;]YG=!s#l XJ%Q!$x'(*,./A1047;B?DuIMPSVYZ[ ^`vce*i$mp*stvw!wvvuuvvRvvwhvtrpkn>k$hendb9`:^\YTXNHAM; 5D10124663-&||a 8#JPx"DqDb\"r19+_`ރtܰ`٬ZڿI|H۾3{;{Cƹ X˰p$N'az/ɦ.t$&>mhB5ܗof* fE U8AwoIE9 " )  "I)/b _$&(*,,,X,P,+) &!rU  A - U~aq !%&$  p '\rCJ*DYp 5i yp"&M*,'/N0I/,+($ #'""$,(T*|)%Ut 0AtTwi#o $w o:2&Rzwh[Eh !6Gn "y$%''*-03369<>?OACEgFFWFPEA<4,]%a&5:VLgw+I >T ɄίpπkuؼKHKcrļijŚu$΁Ңlԃ`#1I'D6"6'46YAiP@ @TC h RW |Iu\"% (=)e(%9# W~!':.+5;C@RDQF[FEE GHJMWPURBSSSSSFTSUVIX6Y0Y2XVTQIO+MK9KJ^JJ^J&I\GEDB7@m>Z=;w964D2.v*'#_& B 6x\էѠvDž6+FlЧg s"ꠈ̡?W¥lܜϡA а\۞ȀÅŕk_T W'PB #(+.}2578:H;<< = >K?a@uABDFoHIKoKIEP@9:3-'$x$%{'@('G%h > hh.B6DDDDEFHLpOQ1SPTUTSRQRQPPOqONMJHFDA><;g8n52t0-*&~$!\   ?u9 |p{_ yYo3.7_+3JhJC EoE9c @o V b;:O3e>;o<r  V < m b Npm~+ Sih"%'((('>'&>%#"!5H ft/ HW ohF+A:eθKȱ >m֗ }؍SC"rÉ3}h Sx= E8"ݤDEf:Aȱ&3=C7T.'+.2~7<-BGJ2T4]ciodt@vu utttuUw`yz{{{5{ywut~rpnlk2iea[^ZTMF@80d)$-3 7e4UiґФΌ*>ȲǦ2hȓ\B~̈ΘГcצ3ۀ]$C<zo /7.o!$'-*,f/%111222J334l5V544X321111n10/.,*(@&$#i"!! !  6>r m nuxgX:"> "]F^5k78ީޅT%\޹NTEgjDNb|:ec޼llg͂(ߞ}!Zx u %|*w.0/<-+*(z&6%%$$#"" wvLtaI 1 />o"p1F5rpL @ nKz {pbJb8 N1]V#&,5@I PVF[^7_\^y]\h\[[U\]O^9^]a]u\Z~XVUSQOwNhLNI!FC*Bf?;#963.([$Tor A8!Mͣgؾ"*$㛙[*x4K,[އ`edㅾl8phI-e)QVͪWq6 r `#&(*e-/r12C46E7%8\9;^<3=#>?]ABeC{DERG)HH7IIIuHFDB?1AC9EEFFF7FtEDhCA?<3:7,64,4k45~8;|=?9BHDEFvGHI2JJ}JMJIgHgF6DrB@?>>?i@s@?6?2=82,S'|!V* "EmMA &2rԗB|~ d/9ڥ"ܢ٘^ɏxw^4˅SJ ^u{(ɥyʓKˈ^͗ЃҥԝْڷڂڠۛD܅H~>/V"TQ'kH]"j dB9O"F%)A.259>BuFyJOSU8WY[l\]]^c`abc^e:f5fedcb`-_\^#^]]w]R]9\Y-VR$MF@;8^53 21e1/-e+8(Q#=|p/]ޞ59^ϾѺ_ëJ=շxž-n+\/8 ~ > s V* g  7q |Qq9"[:{OxAOD9j!$U% [&?\*>+dOI,B Sm"')*+,,,++,'./135:788Z99|:i;<=>?@_AAA>BBBmCC|DD@E2ED"&*a3>>GeNSWYZYTX4WUTT#VuWXW[^acehkmNoqr3t uuvwwUxxyPzzf{{l||s|{t{zzxwv vtsqpnulmjhgdb`@_\tZkXaV^SOLMKGC>;7l1)#- V6r6xܯ֡aɤšŷđQ%nj}ye}§Ż %ҡX֎?׺Xݐ"~wte Bf. u g > cZHv~ (  KY"P'**S(?#[ 8 nFP8 -  v |& yvUiHWqx?!ӷ\¤ݻʸn PaKk0w›Yǚk;jؙvꡪ;[ע}WRcp¤֦Ϋl~ 'ZɭsrS߲l Y"% %"  "[$H&F(k*+,-2./0k124}679 <>@BEHHJKMfOPQRTV_XY[X]^_`abctdAeeee*eDd!ca`=_]\7\\\\>^`Bd{g}jzmuprwsrqomjged#dcbaJa^Z W%SM9D.;4/+%"!"! MNlS}  [ f6|A4$Bӿ̇XŽ[D笲*ʡTI] XKyD':¡ꢙf [Kc0Aƭn oFJQmIIkYFNU-S B }mS8=/{L $(-26l9 {m{ZN k!'++*+*U+&+|**+Y-^.L/m0111Q10`0N/.,",+>+*****i*%***)R)h))**T+,,;-l--D...;//o00*112f3 44}5 6#6543223d4o68J;=="=:6o2y.,)++-0S59<?@3@?&?e>==3>>>>F>=!=;:98f75430r.v,+$)A&r#! k_ED ߉ȋoy쫚^颽EOx=BړYp64Ċ eڂ1ԁρ(ǃ|„;aلJߘX\n4r“MZ=Ev  CH#.9BJ(S_Z^u`,bMdeGedeemff hikklmHn(nm%mlkjpiahg.gf`f)f"fe@e9d!ca `]Z\C[QZRYX2XWVaUTyRVPMLKIHzGFF'FEEEEEEsEDDCCBA0A|A0BB)CCCB?<9683/}-@,*)0'%#u F$ "3Y4n=ٻP˿%Ą`lX𲬰&0Ŧ>!0w4N,3šTٛ Ǜߛ͠¤ Ϯ˰X/תpe(^-N3ƾ?˪'e]Ӝէ٪ߎIO+!BD+= b5$M(#+-0008122(4V76AHBB;CC?BoB+EJZOT"[2b;hlm ooo nommnoqrstsrqpo}nxmllhl]kCjei;hfhca^>\ Y1VTQNL$JHDA=:72.O,)&#! dkfC=ކ7QӋͼʁ(4ì'%wӰFUTĩo"R4ɫҫܪɩ᦬2ǥW⠸'ϢУ/ɦnʮBYϴZ4#PboKKީ"$,OS 1Z"&)-16:y>2CHMTPS|WZ\^fade0ghj{l}mknopq*rrsttttt5t sqcpognljiBhebo_\Y+V,S_Q P[NLK/JGD@g>;96541.5,4)T%M!WO ]oP {iP'ՉԡVЦΉ@z;Ò߽*&ݵ@ REA 뤁FbҞ?Οßʟ˟ȟqc;r)8cɧ[Uܫ9Ѯ>f;j¤ŃQʳ˷͆kթ-ݩ>4ZH{B]Xu =r"J%Z( ,/T2x5X9=?B3EHKiM{ORgTUV XX YIYZ[[]L_)bdf#i@lnpq^stu{vBwvxxyAzz{|}}|||u{zyxUxw*wv_vut%sqol ienc`]Z-XVUTQ3P7O6MJFD?80*#E  %OuzMFfّ֋λ7-[̵hϰ1C|iXl|w%{w`𖤗k͜X[3̘×+6ӚM5q"+Dt^ (PƑ̠ρҚP.CGAC X z%) .0113-7G:w=AFJMORT3UkV^XqZ[]^J`a@bbcNddee=ff@ggMhhhh`hgfeb1`]V\ZUYDX&XXYpYZZN[{[[[h[[ZZ ZiYXWV/US6RPN4MLJH5F+DCBM?Q;741k.%+(&#( b1ۻՑ҉͝fƴ\ԪǦi'âŒ{IńqArzƄOB^,'-N{RZ?תݮʴ9IǻD]8נ߾ g g 57o! $&)-Y136j:=?AEWHJALM OOOO:PPPRUXV[=^bNfi.lnpr=szss6tFt+tBtttu#uuutZt_sPryqpPomlkjhfwdcb_\$[jYVSbQPO:LH'DAm=83Y0-(#.&*B Le`5 ~ےhЩ̤ƬFE^q.ݧ榧I/̙pRіՖ͖`4ܚÛ&vW~tƲ(ո&vоF[G˼P-OWSS d $(8,s..-9,M*M('k'(*,0.5x9{ADHMR VXY[[[Z5XVUROM8LJGECA^> :+62- ("B\I )|?]e܋ ުMMҌº𴉶cQ&;:M֯RLǛ>3xZ'+Ұ.66@ ?B|!&/)+,--T,*(&%j$#.$$%#! 5 }xpTs k N _ y  Q u a  =3\ [^p{݆Nf0m0i;gƐ1ŝĥÙz:2 lyWS˜ ĔM~ƨrɶtSARϵZBxة:(BE6 " , r m FN+[&i/7!!$F(.6>bFMSWYRZYnX?V%TRRQRT7V8XZ\^`abc^dddldPddle`f]ghiiChfc`\&YFVTBSRRSSCR)PM+JDL>8h4/+q'*%"Y]@MPoߛХ̸HŽg?8y G sAԨJ̭Ү-"U{Igc)׶/⹃Ż/;83'& ֧ب>݋x^VzRJ lu0)zg*h  3 $ 8) }$Lx\!{$&(**]*P)T(U'p&&&'(*,.-0V1o2O333445v6q79:<)> @BCEE_FFjFEED'EEEFbGGGEC~A ?<<9765w320.+(&# 5+D(" .C5|390E%dpx!'m-7Cs/ D<Yh!dp]@(`-[\j=/@g1Xrf;Y % 2l B < mF+=*Uw_B[HAy\ ,2vW`R )!!!!!V! + H7n".% F\ "<29zlg  kdap_4e;ۆ0@ϴ|˿5\ )3X먍qgΧa;M}œOÑLr9։ҒҝG?~yҜНiVOufgIW)¥]'e &s%]+!/!2l5]8:;<?@BDGgI2JJKK^KJKKLMNOPQDS[UVLXZ^`bLdfhKjik,moqsuxz{){1{C{{zzyyzzyyGyxwvquPtrpnTmk:igedca_.^[cXUMROJFC@?s@@?=;n96403"20/-,e+)' &%&&(Z+&.09221/-)&/"t<l !!'! # .`a4MTqlFW>ɳ ̭u(ڧ6ߣ^UޛK{ +֙b)ܪfñٴA"Ã9#=qnj)0H:I8"w LP%-59U?h=(:>7Y54%33345z6V77J889:;P<<0=K==<>t??h@i@]@~@@PAABCBCQCCB6@><`AEH%KLNN%MMNQ4UY^d%hsjUk6kWjhge=eefWf\fHfed(caa0`:^[YUPICO?1<989[;B:H.NRU0X[])_` cWfiilbo=svxnyyzy/yxxyz{|G|{/zsvql>h!d`^^H]6\Z4YmVROyM,KHDA=6r.& 1K aփS5Q.W۠\ʔ/D78w@Ŭt&IɍJlv2+OR-$ b41 6GwѧϛѩugכxyݨݫAߤGg'Q z u"e&->26:d=z>>>@A,CZEGMJKLK]K6JHG"G!GGbIEK$MNP=RScTTU6UBUTsT TS`SRQPONL1J]HFC<@>;8531L/,h)^'$% ZP@ Zw)w.LoW*׻| _\,ӊv`҄RhCwں^hc*sN>?b xOf )"$$',c15m8\BODGKOWRTU0T=Q;MIDH I M]T]Cfmqt/ur0nifeee"gijjLhd _YTPTMrMOIRtT!V3WWUSGRPOMLDLJIzGNFDByA~@P?=;97l4:1.,(I%" W EP&?K۲Ts{IAp,jȍ<@d̓L݂+(*􅶇%ydɗ0ښbɟazeӴ%cѴfnm |$*.15: ?AD2HKeMzNOQRRRRRsRQPrPO#O4N0MK,JGFECAAA3C&EZF"FFDl@p9;/#  * UuG mSu@~u> ux86xMImY` c  b%#"#$%' (()*+,-6-\-e--,q,T,>,++_+ +u*)('&%$#W#"*"! !w !{x6y%UFw/AQ ^ Jg)|svSZHx6 k o fHjQx   o["mT ڔo^]վ-Ǧ(m@ ~* $Y ? ,[&y"%(+-.|/&000125r8&;m>BDFGeH HFD B?;9O97:IsNQ1SS|SbQM ILE%B>;9875f3K1.\+&"O]- ; $p8w+D}P#4[iX # ) E's`[cfm#&()/*^*r**+n->/0e23?44321/-,*)'S%#" 5  T  4$g^,ɠŎ…GгSHũ ڜjGEђi$<ؘ -Ӡ+𯰶̽Ϯ>Ҁg۷|h8~vw8"BnmZ)@Nku._ܿۼ 8܂6#ٓ:ݬsm[Zg. i` S%*/5?>GNR^UW]YXWU VV3V5U9TROJC<61,q(%$9$#x#%(n-28 >B^EEA<72,/,K,t-M.,:)#f#-fkQ1ފޫM Oi7W.M R%g!#\&h),b/02~344|44555y55J6(6m543F3521E0r/ .(,E*(&$! !X 8 c - n C |8#ي>H"ȺW/V0aӇ1D4Ԑ2ԺP>ծ֫7N,)E@kv?!nB8 w u #H&2)g++X+*U*>)1'%#"F!K}%]w Q)ZkBo3 fڷּCvkΆI|E9Y`a C[U>Y d S )5JClZcC k(ށ(֤PЛFяѧџ| GQr}PϨһeW߿+aH YZl%+2:CHCJHxE?7O-"q  : 6 ]m&-Y@?^o1%D *E$*X&d<y=ffAmP:gC^!$&c&|$!hL ?D(zRZH}4&PJ3RYG %E*J-!aBBcJ6=? $j&(+/-36:?QDGHJxLNNqNMM0NNrOUPQDRpQNKFOAh:o3,.+(9''n(|))G'$ bM Cs3u`̈́pjr=׎Ќ⌱ّIٔD1EKWoS.٭40ƴP$md^ l H$ h8N `0? _ } m ;"GyA[N4 j m Z [P|lh?S#n.+߄rցӺ8ηɐ jHŁɲ`МH 5ST !(0:DLSY(^``<^Z^VPJFOCCrEI)OSWYZZXURNKII8K\MORUWXXVTaQLG%C?=k;;5=?@BGCsB6>]7/)'w-_ ԠDÏ<;(9T ^` o - e  .H r SA +y$&<$ c  O QG ) 8]\*rP݀aa֡jyV˶ƣĄfzwǓɚTf.ۑߎlry'9]J<Nt[Q; ?D>ol U!""!$! 48  h 0 z s'6{xhݤ5T*w#%)Х#ЃCϟ:95}oW^h@($k  xNe #'&)9-@0l2479:;x<>4+ ;G!q#נ՝ӡIϲ̊ʸƜĭ .ּ上Aɯ"p1/\{9p6e|AUmW-^r=aOǕ3h׆߈'9kM-H[ )b %*-.0468;?B{EGIJLLyM;OQ_SpUX]a|dgjlm nln ooopqrstuvRwww xxw$w{vu,uttsXssststtssssysrsssbsrirqpo!onmllkjiGhgferdcb"a^8\4ZW$U@SRiR#QhOMK!GZ@93/.'"6 +~A;;gߵؓui8ƀÚRḬxLۭ pɢcQ0y%4YF&F-Jd HB֣y?觽<4hiҰ(γ=f jqbXXձԴr@ȷ( عW%ʾſPT aǹDâ 4gѣ+u ?E-mm R J 44' !U$ '.*-b01a234i5568:;=@B@DEGxIJ0JJKL9MMZOPuQRRS SRRRRRSSSS SQP4OM#LJIIICIH_HGF[EDB BA:@?k?>>=N=<<;O;:9:t988888b8 99:;a;::875Z43A3[334(66j6543/+(%!}\t! 8.xg5i15y3qLQ)} 7IZx E8FK &A $w n  2 D  2 R _Bq+(@eHJ١΂˾zŪwG حRգҠ@5#] jy9Κ⟟؟]cHԐ2EҴCZWP7q%1A΍[]ersq# ]@Gpac] 5->] " > Bo]vD! $ '), 1@6:=AF=KCNPTEX[2^`dfhjPlnpqsuw[xxRyy$zGzzP{|X|L|{;{yw[urpnlkkjibhfda]SZIWwT RPgQQPNPKE<2' 4ogdMJ=mʔa5}hG cPƩVF6]ϯNض߹ 13[ph$G޻7X}(SLYώL_J%#4R942_w̞p|Ԕ֤֭׃`ZݹߊAwG\:$y$3 ` ,J I#%:&h')*D,-/1%334 555w5v555578;%=?BE%HJK[MN*OYO|OOO|OONNONNONMjKH~EA4=85r30-*W($BXqng ( Z0.ϭϰґ! pT{꼦ι KðlQݭLv{Į9E_{2R5[uKȶi}"ɔʉMϛI(ۜfߗG_m%]cg w-!i/6 Z!v"$&(*,-/[18293456"89;G@BlCD6FHIJ=LNOQrRHT@VWXZU[W\#]^<_C``abcaddeheeped+d^cba``____``#aaa1bbbbbcbabaza`_!_^E^][[ZWUmR(PMeJG^EB"?;k84W0+U(%"~ D&,ѿ֧de1-TcJ„DKf|܃҃rՂb51;!m߈D)QC^E^ױEټt\Jy|M5 |: a!85!"&$%|&&''(*[,/37;?BFaHiIJJK%LWLMuNOPgRFTJVWkXX?XgW7UQLhHD?;87642 1.*^&8"<lpF n $l5ocux?߶ܛlՠѝ QOʉyƎXMҿ]zl!輽ͼ Er۽ؽƽ%Ty"óŌr̂ ӌԜٺhw( MA!  T_!"$&(W*,Q/134555433y33 567#9[:;4>?@A(CODEEFFmGsGF'FfEDxC!B@)@d?8><;:d97655g43c3>332222 3G33334.4433333!21/-*')%" &{) !x"""#"~"!!!Y! I a}#$TDn Q ANAߕo |̄ʭ,ĿNiA#-UgkЈ:†̆=ψ}zΎ+mן| Di^,M:R[J\V''5=U>9!5&2/B.n/309<>E@4A?<9 8[6310O-]+)>(%'&z'"(('!%"Q#(f-/0/-*&?$!#"#n$'l+.=1!47:<> @/BCDFGHzI-JLKLWM NOpPQRZSSsTTJTSS~SASR[RRQPON.NiM/LJIHJFvC@>_<-:9987s641,%Mmo ^yENqNGY%!ߏ{;ٕڲW=۵8OϣIL։'X!!x?`Љ%wHݾHhOe|'.]z:c`~| ~ni   X ~M!02 (Xk[!p-| );J_#-z]UbX!Q_eه 1MJxT1L)=1',+A=~a%N]SհmϚ̩Y*2Pª^cԻHxƠǘgƍŐě{N?!t!Yɷͪ`ѕL֭ءܮY;0z yAkF l%N*,.L2#6R9m=D NV2]bg6kl+ki3hfee?gijlnpRqq2rrrrrrOqpo onnNo ppOqQqrpnXmki3gde7dbE`]W[YPVSRFSSoS]SRqOG=41+k"Q,< N :{t gz,+k$`?{_ Hg&֜H ν̑I˫̈Sjդp׼ؙڽ)%oz^96a7w 6C4E  ~j QUJw  NrwUuz:-?]ۋشԅiÿɼ:ϲ䰉}mORԒBSɈ4ى!u{a}67Sٔ)n.L(% r!$~(,/13S689:;=>?@tBJCCDDDDDDWDCyCB6BRAk@?>=<2$vKn_z B = uHXs-g4 "!!"C##+$:$#8#"" #5#$3&( +D-/2u5H7l9<&@CPGcKnOtR9TlUVWXYZ\F^_U``g`_!^2\Z~YXWVVcVTR/P5NKGDA@=;863/,v*i'#'y2*# rK3A]̭NJb$448<1t}ڇ;G΄B )vEĈʋԍ-c: G,Y|J±wFS48E0ls93#p&'(*-0s25[:>@BEEUzC8ILOSVY]\`rb"dfiXl*nNprKuvw)yzl{{{;|_|5|{z^zy ywv8vnusqepnlJjgQfdDbO`H_1^[XV\RnLD=6/' >  />PR/x鿷ZY/—553_><գkCͣrjp񦂧XNn߸ڻgwiY^$]6ٱۻBtbO#, 1$({+7/37<4AbGLRPRRRQNrLJJYK-MOfRTU@VUTR(PXMJ I:GE8DhCRB@><:8520-*(%"6o $oۅ1)V "G8P4۱Z; ҰMK=] UBqҿ:7ɻڅf}(>!V !&+-/1I36889:^=@BCEGHH=HGG{F;FFGHHWHFYD1A.=8E531$10F1b1~0.,T*'+%-#!E >Q v##!9,T"nMC1ߕ ZMcЩ̏Pɠɡɋɞ.3Ϙyұԕׇٚۼ]"a%8ye$ >!X%(+`-G./12{386:=vAE^JNOQCS{UWYZF\]6_2``abWccc d0d/dcczba`_a^]\ZXWEUqRNuKHESA[=:n8+5V1.+&! 'R g.`^](]\\\\[[<[ZYXWUSQ0PM,KHFDB?=;7b41@/},)R'%# 9F~v  ZkL I'!$'G*+G,+i*u))A)*i+-/(1121?1/- ,*(& %#!F6r$ [ dhE{,indCpJ˙꼩h %7؇…*dzliƆm|'M[珲IGn;sRֲ9, ά׵|:f U  '/{"&+F04y9>@AAAAe?=7;$::9!8 76Z65Q420.+()&# gYj5H ? 5 [ W  & @v  EOK!z#$$%s&')-22~7Y=YDK5QTWZ\^^_acegi.lmnEoobp%peonfnm9ljhZfc`%\2YVSbPGNCMKIGyFmDA[=:c8I51.), )$ 1q7[th kIy (BQJ;ԿWΣt chV_Û'^)P􋫊'߇A؆)N;ăb?GV-)Չ<ޑ~͟#T!ʹ~͋%"\%7^ #K)-/0011|1i2b4b67r9^; ==F>>h??r>}<:K850+'$=TE 7ofr`8K!ن׻>Хϛ}yІѬҙm ښ?AGNvfs q J ~% #z)/4:WA,HMPpR UVWX[]r`beh ktlemonZoo2ppq9rKrqKqpodnlkCkFjhge dKa/^[6YU5R%OMJFC @0= 93h/c+& u= 8m )x2ݪ11 έ&$Ɵ!2um5 eɶ-е赿Q۳سe3,޷x&L2ָƹܺGo}‡ĭǺ;nnOF:>! aQ¾ƫpOіԋ X Ak | >"4&*5/26:>*BDG)KNOQ TV6X3Y,ZY[E\\]|_\a.ce_gijMkjGj;iged ctb babgbQbpa$`^&]xZWS=QN@JFC@L`Zp W]sI5+#>G CљDǣI6ɻ³̭IQ~x1$/b}T@zf؛C9xFgɣΤ証Ъɫ`{YGƜȪ̒ΨE K!TVI3Uv U 5'*!w$&(+.1366 :>@`CdFILtNOQSTT,VWXYZf\]8^^_````````PaaXbb$ccbHba^a0a{a bbcIdddca<`x^\[X[[8\\-^f_l`-aa[bbNccYddd edca`!_\XZURPMJIGEC|@>u:4/*/% ${+kV8މSMPɗ7êeҳجqӤ}g[1yߚݘN<>/bɘ>l@oБU '7Εʕ-Ɣm]yHʠR]Ʊ/ f?ҥԐ7 v ! { M @ 8 Z jo:t "%:'9(''&&&'*/4w9=PBcE}FKF"F`} c%t #@(-27=\DIMP7U2Y[^AaNehkn,rQuww&yz{{Y{{B|{zByKxvIsjoRli%gc`_R]ZU-Q9L6Eueg `yM\PK,Q)/iw , R#%S"\)\I`p#A-[D~ <D8( n -&ҪI2.CƎeú%KfW>)><;f97v3.* &"u  !}#I$D$E#!*gu^!T&wknv !"#$%W'N)5+,.F0 2346I7^8$9L98764v2/.`--.0G48=BFJsLMMKIPGeEpC[A??>=6_Sہ.ԑTإ3Fŭ˟AޠhɵwW_L]ځրVQڕޘgld*N,, $O[ϧS`FVDȭ8ȤNif[xէRI1y,߿<<%;PאoӔ؊ތF|H SD&07d;E;6x/x),& %t%p'*-.5.O,)$'$"!!!/! 9Lsr ;B  s K m !"f"! M~"&.,"3';B?H{LOsQtQGPNMLKL_MOoPuQ=RRXR[QOkN?ML7L.LLNPRS1VXc[a]^_`aa&bbckefhhoiBigda_]ZXWBWVT'S#QMHtC?<96431-D*T'#rSu&X tkR&#sI5B54332c0.+U(9&$#P!,j} k*cUV%;CdܯۦmuviϮΨϘϑґӥ2ՠ5֑8إ8 G4@PY}A4j*jTb t 5 0f9>)!v#%'()A+ -x./13w56P8K:;@BDEMG IJKLjNOgQRTUV.WW\XXxY:62000/-1+)s% ^|/9N[lĘ-طaéӦѠ``ژsTNP%s׍fj͏`ԊUB$;d׈FʉCN'gOGZrJ]H'/>]$RW)ʩIջa>Gb: $,5?E0IKNQPTVoZ^beLhEkmneprsuw,yz/|||P|{{`{){{r{{|[{zxEwtpUm j=f`w[V\RKCk<6N2 .*)4+w-/b2K4(54o30,'#  - Pg,%:/kƯ;Ǥ[ .ߨkɇ=E1ɋɀĸëãEnjɟ˵cϥOԵ[S. ' {"&)O-/14<8;>ADGIJKL)MMLLLHLKJIIHF.EC9B?<9730.q,*(&;%#.!dq  *l!N=J zҹΚnC{R0.%ºybh!"lbfk@hjlzϭ|,>_ ,D@SrX 9 & 2 ,%%]8` X T ?)8v zHzB"Y6<@Pz?a?KA5 9'YJo!O# %'()*+,W.k/v012$3221$1/0"/S.--.I..B?{@ABCDQFGHHIIIIIlHG.GFF^FEE EUDCCBBBwA@W?n=k;98U88q:F<=>><82,&9!tazx ZH)&o%qXCJ,zD4ՙ~u4:ڟ'ߌ2w+qe=^ E 2~F d #  Z` !_"t#$)%%t&',)_*Y+C,$---z--,<,O+6*<)B(&(%#F" 0k9=Y!w KeamIE]@ CvB0BβHɮȐ5ǿ-yŹķüuD оܾ\8OlʽʱxӭYjvcG^?䨬]\8mݭױ&Aɷ[KsǿdӦت۔Mn/H35 r>!#h%(+t.1:4D7_9";\=?AOCEOICLVNPxSvVXY[]U_k`[a0bbhb)bbaaabd@efhjDlmnpqqArMsjt>uuVvwzwwwZvut4sFq~o*nmkihgeca:`B^T[=XUSAP9LHEB=:73.)%!fS 2=C(Ҍ[Ư,5KƤ<ƛ^6ĐUdىÈ6|"lLRR6aˆ@d\~=SңuwV@ڮQx " l+'Z"%+)0-j0V23589h;=?ABCDDDgDDDWEFHJLNPuRoSSSSNSRvRR~SMTyUVXZ;[O\%]]]e]\\E[gZ[YnXWWVVUUT.R:PNLJ/GDhB?]<974Y1.+)&{# a ml zLtF\'u/qӣ+ϼ2FyȻ5o|\y' ǫȄNʺʳʝʾD3T\> вгIB Ҁw4ݻx ^Ah`Iҽoσe$ʰǃ "k}kCŹt@s;ʪ˿8YoڡNW $*./.,,,V.1w6;?BDEvE/DBA@@;@@A|B/DFHJLNPQRNTU6WX!Z9\<^_U`1`c_ ^\YsWUTSSS!TTRDQ}OwMJGDB@>;:741/-*&# em 3 #pmJ&ݣՁ`LmҰZ+sB#zYΟ+ jG?Y_4@YBDyFHFKYMNeOOYONM\MMLwMNPRTU,XZ["]?_aceBghijiiiiiijjjihFgec`^L\Z&YWVUSLPLHB;m3-)%!J- QXWשӱx+̡ɎNZÍ6*1޹]/J Oj(RVɵƯdU_A*Wm$6ļ,6mι^@u򺽻V1l%\[:GćŧPȯП5idc  m"8&)H,.15l7V9;>%ABuD9FGH)IlIIIIIIIJ J'JqJJnJ JIxITHF|C@=9P51. ,(%#[!-p 1z=Ҟg_2ęNzҿeg[ +0 $)/59;=?OABD'HK1OQTVSX,YYzZR[[[[[l[ZYXEX%XWGWVVTQMIQEY@;7u52.+/(#d~ }05BՒqee;ʹRĪ Pܦ_-2;訳ߣwmi8MK{;vo7ĩGq<6:)743d/+'!+R  teU50 ;ClwRT1~\vzb&  |bTK / y/n $2N)o'L{c "$%3'&(U('J'&&$U#!{ 4 B D9p)*^\*$k3e=zُi[ѭyȅyÞ9yh۰֭ENǜpO),bB霄bsEՠ١٥V$7LjF5kҫ,>GjR H #c&8)6-I1h47:L>7A^CEIK[MNPRSTUWpYZ\^abdffgglg%fdb`q^[ZXW!U?SQPlNeKZHEB+?<975200.t-I,+*(&$"Q xKLs$ $ G ` > %3*0, ,*)'P%b#"$#"!  WU  8  F 8wJ ] gz  A )9+?: w[LU)j(f&J$Lժ%ǬSǬWͽr)tոú&:ұA>֛[󗂗ԓp$،#􅫅:p]0JҢbū] VлCFʱͣxiRF ##(,:269<@DG JLOQSVZ}^af koJstDuts)q!nLk)igggVghh/ihPhlgf8dOb`_]T\&[@Z Y.WKUS{R7QMPPQPPQQQQP~ONLHDAG?<840-)$: ;ET<S ؞֍o9@ҳ/iАΪvYy/ςҒգg$U݀mB* |_m "q~x!/%w)P-049$=<@BEbH*JKKM'NNNOFO9ONAMLHKvJ?IHGkFE C@?<965Q30.+)&R"UN*  L# 0а ~62lݭnޝ&ӊiC߆%+Ԅ.څa3m]ՕV,Rާ5_ϰhYIXҲT6^lK>H ` !x$3'),17$:5!0*$ 6 bSh[VOmgjBջ Lv("H!H犕Hn#A9{{,("i.1r ^ʫӟlWkc  "&6*a-e1l6;>rBFJMNEPQRSUVtXY[^lac|egjkUmoqrt u,vwyw}w`wtwwwbwwv'vtrpnYmkjjjjhf[da[JUOID5?;79740.,e' g GMi2^+1V;*Ʒàۼ|Pp D,]s ˠ4ע[٤Eua hCEF]#vǡQҢ11A(5ì6WƳش뷧/u~ˮ_Cִ֌ەY>m 7 9* ?"&*-.P01,3*58=BGK"PSV2XZ]_0beJhjlodqEstuGwx zz {j{e{ {zyy}y:yxxCxwsvtpsqolj%hec`][X@UGRhOKKGgC @<62r.*M&C!B 6N/ŀīNw̪?8t𣴢'ߢX8լF:v^çyuJ 8;=ÛǵCl#/M&{PRѻxωEF̆sy Oߓvf܇7KZ6hBѢ.o{ כ>LUtO>W5 7#&),.01 5t8;8@EJN6QST+UTMT0TTUUVW X%XW>WVUU}T$T TSSSRQQPPONMPLKIGDA ?w<)9520 -)K&# jW ,q9jPI ^a ߝE߼8޻ +ە'٭Xu܏ ݑޗ߳%*%trno9;kO[& <W,z>'-U`!"$$V%&&'S( ))*Y+N+**1*)(('&%$i#!| ? e9;}{/Hی \@" Ęe^,7.C y '3GŗpԚ=rޞXohө>0HXخ.ͤӢ߸1 ==dz  3T!##%&( *+},?./125978:;=]]W^^q__o`afaaaja a`b`_____R``Yaab7bDba6a`__]\[&[YX|WuVTRQO`NLIGgEB=>:73/,<*'#  Kz3+߆Pk|CєUΡˬذ|OMȒ^i.׃ H]N+G%~ʇXMYU~tI&Ǯ52՝d;LSJ !'0-F4:?DSJOSsUhX \0_ahd'hknprtu/vuutsqbol9jgdb?`o_*_ _I__`a`X``_]^[FY}WUSYRQP(PYON}MnKHIFCy@U=:864q1/,/($$"T @'h1s feT~$5w#9rЌͿ;ʢȌE=[Ë)@z  ˧Пn HW ԝN=;caō"J PŠ˴!.O6=1,( S aliOG ^#(J1F;NDLcS Z^Lambc/cFb`__``acdezfffffdecbsap`L_%^Y]\\5[mZY.Y'XWcVUUTRQjO`MJHFD~Bn@>=d;8630-+^)'%#-"d Ol Iku+5y\V4,Ro\w3*Mtd ȿؿ˼չ/ɂʪRi`ܴd묊৐餕ФrץW U+B3~׺ cPPǴ^Ē̿7ҿ>ڍlnZC (vf6l Pt}Cm7 ?gq^/EH! #/$%K'()f+r-,/z013578[9;o>z???w>=,=?DACDDDEDChB{@=:7[5-2q.*~' $C v/zH.)1$F[.S< a=_7 (T~DK# V!a"#####Z#O#{##!$$}%2&&'x''''''8'&&9&j%T$# #C" N 22 O  6>s:Mo7;4Ji0q#6<ԸretY9u潤:-łǔJD~˲̳*IѷyD2͙JΦ1qպحغאԇzϝ8ǷvӶ޳6կ[{]!겏p-2rӸ@k>'NB Hn0ٮښh>^vIZ ? =` ]! #$%'k),10N369c;0;:;9< >QA G>NTXZx[=ZVQQMWJILPV[_aba_q\1YVlUU7UUVVVUT[S1RPON>N{MLKKJIIIIIfIIHGFEDD/CBEBBApAPAAG@g=cDDe |㽳:$J.cר[OKԝExĚZٙ%M֕^*𗿗ėsN\ơNPUʭ2lKKwUms"!=y~#4X*+_dK < w  5u@% o"l%?(3*+.Z13?69=@ZCcF>JMOQTWZy\^a}dfrhj#mnoq`rostpt uuuuuv vu^ut{ts s4rVqponen%nmmmolkigedSb`__G_T^\[LYCUOJD?0:5I3u1$/],5*('$z# #-#4#V###"y! Z A S"Yy; [@avʗƼոNزѭrdoS\k-,w\x)TJƊG[̈F̆І^`wƇdihΕu2(f~Ҫ{q෢ֽzȽSY5|Vh u *y#& )+G/'24t8<@jC\FI@M8OPRWUsW YZ=]O_`{bdzfghIjkmmnop'qqrr>ssttjuurvvawww=wvutsaqp!oMnemlplkig%dBa]YU8SQPPZQRS$TkT%T-SQPONNLK%K`I%FYB>:42.i(#8*y$ { xl{LWFc6Yݸ Jɇ­񽈽๹kp /g!48ُw0-ߍC \}̑ؕ1{Pĝ'r βÃDGF \Ξӯ5W ] !$(k,:/27};(?BFbJLCMMqNNNNP#RPTjVXZ \\ZXTOLIB<8U6>5579::85/q( 'LQ f s  ?=bv][nz:HZ'z[?- ;Lnn WW ^ j % h-s* # $ - ,)CKDU7w`!:#f%'Y)*,A./01[2c3;44443}33k4568887630Z.--.'26;?hCFTFC?:5i0+s))G+,$.^/.)\"c &2:&ΊYho%BNֵjkPsBm騰^0ȪjȎF˞FK)uLZi}I )T%u*0C6XށׁWцR˧p mɓOǭoPʿ7ѽZ+vCŵ~ݼ06Ǩ+&3ӳիٸrއPP25 h ^ {#b%%V%$$T$$%,(*x-0=468x:?@BDEFYG$HHIKOT?Y#]2`aa_ZU$QjNQOXT\Adkq_vTxwrsnj,hffhkkwm7nmljgd8b`_B^m]\[ZWUSQNLJ_H3E=B?=q:J7430-+){'$'"S QcX-  OJ.5 gy p[#44eip̢ː_>ͼmеeҤdҿiHρѴHUګ7քІ-͆/˼˯ʉ5hQ{RYnWˬZ3|5V} (s՝GaMzʜI,ymlMϠ;ۢڥ񨒪ͬzpqÌƲ,ΊjAfܛ=KQ;;y rG4'!t#'-+26DKaS>[`)ddRc_ZV RON@P.RSTT/TRPDOMKIUHaFC@><";"9|7 63/+($!] d ^V ?shZ*3ٹ'v L7} ~7 c#',,037AClE GH JJ KKpLLLLLwL3LKKKKyKJIHFC@>;9865543n2X1/ .w,+8+**+,-`..////V/..K.-t-,~,++)p(}'u&$#I":! a@ 0 _w`q֦3ѥ;*s\ȸ2WjvL+8Qɧʧel. ߲qv&ƧT<بxtdd@7KD zIg{#')9-L15n8Q<-AE\I,LCO|RTVXZ\^C`JbCdefoggh'iijk`mnqpqrmsFsJrpoLm>kQih]gf&ecb5`M]YV>TQcM[JHAE=A<.951J-h)V&&#} ')K 32:jAFu=ZmMc ؓכְՀ BrЭ958"$)θΡε{PM]dWՎh?:rܼ7 ;#R~ߤ1sR< - vy4&;$,rPcKA* 8  gw< M86Za$][|Қͪ' ؼֺݴڲ1e=%R٣^Qˢ̪ȫZN򲇵_85b?VؤO#V ~O= ; 82Z #&t)a+-04R6}8w;>A DFIKM%O,QSfTUWXBZ{[ ]$_`bKcdffjghhsiij8kkGll%mmmmmmnmmll'lTk@j]ihgfTeSdRca_][YVS}QOM%LMKKJII7H4GEDjD DCGCCB@H>;851/-@+)&%#,!%#? ~ sqQ4A7ޜ)gK$A ߿i 3²̰}֫ʩԧj柤b ړQ͕ Tmo;qÆV ߌҎҒۓҟQ9ri,ܾ .!ߣߟ n$(]+++*W+[, .b1@6Z;?TDHLO6P\QR`SS~TUVW&YZ\]]^_`c``]aaa bXbbbb cYcccDdpdld9dcc4b\a`_ _j^]g]p\X[VZ%YWUSRbQKPOOOOOPONML\KJHGFEcD?CBT@.><;:s9(8+752.@*% G^ g v<D*ݻٙը͖_rǵT$Ȥ&i+ʗ)A̓^ufc@pct?ɟ9v,ҞڢΦ@Xµ?sǣƷŶţW˿ϒFYOXN`v<o (06<@A@@?[@AJDGJMOBQ^SUVX[\]a]o\ZXWWVVX[_cghiipge)b_] ]\C]^^_&_^\[YVTSS8RkQP~OLHC>9(5102`7=DJvOoRcSpQ8LDK<4.)(z)-15L9:96u2._)$!S F!">##$$" ]HZ l H Y pVj[鎼?azwВaxX}ʮ f̒ѻیީ)50 CaH"$%$u$"h({)m)gqg' !e""c#$H$`$$$%%x%&'(*%,.02X5u8u;=?IBDFHVJCL NOQRT1VWWXYZ~ZZ~[[[[[[[[ZYXYX~W.VTuS#QTNKIJGbDA@ >:62.)$)!X$LKUSѝ@z͌3̆eɴ>ćODaܾCճehD`ܰD¶Ѻ׼{ jʛSߓP-% QX ~ CWF#&7)o**('l''*070?EJMNLHC5?;b:;=AFJ\MOPPEPONM3MLLLKzK KJG3EB$@<95230-+(&# :/ 3l.S@:t;̸ȺAPB³fʯ}WAΨoB%j̦[5j ϯ5״vf뫦DN"͵%]ѭ>m]Zۂ߇"@72|b ~,:g ! #`$N%%:&&z''(*,-/1Y46`89:;;;;;;;Z]?@@ AAAARA@@@o@e@f@@q@?>=u;8H7G6q40*$C p  pR11( .5Y*ֺ1΂̌ʞNuƲVTn*ç*mŻ,<ܷNĽT?[DeGgٙ}Ms%v) o#OK !r!!!! 9FEx t yh+|pc#k̼=ʪBL1lĎs_Q*]'I#igRďP7$zLܬD/߇g2 9jvD"&()`**+*_**+O-/16;@gEIJ ORT@VXWWV)V%VVDXZ\[`cfShihkgd%b_^]7^_I`2a&a'`^\ZVSQPO'ONENMJ~HF_C@=:9B86543=2s0.:-*('%$$T" C Hl F  Fm9$@.uWVjF~کP Ԋ>v'u*pIٴb1Yh ͦ,M>-ni+p- IȁEx2͈kA&dbن\/GUߝN4pkCA^߆ߕu]ܮ۽ډHa؅׏]")ܹݵހL1GF[2)^%<0n ~eG('R!" $o%')^+4-/358:f=W?@BD=GI1L"PUY]Qa{e(i`kHlllkj%iDhgggggg'g!fdc(cSba`H` _\/ZVoSO%LJ*JL9OS/WZ^'`(a`_\EZWURQ5QPONM.JE@<975?44555543210/|.--O+(&$a"wBS% w &]~D~D(ԹϠ Ὗʲ15m:Ęݙ!R>[ ޥm=iñR.$sJ7f°{ŴůŠ|ů vѫԘԒҤϺ̌ʎ)ΘOuУ̝zŽÄàĺdʊd*IJQ ﹙U%SιR5.‡:k3(ЏҦ|JTd!G "2x3"$',15)::?DjIMRLW_\`ejo:st-vEwwNwvvw 92 -'B#D^L@|hFګHIMيk=ﶈ ce2,ʇ뇩g:znLuE|<=. Hٱ:G%&ΪhԨpYbndsEکRԫWɴD8MHŸiw З. l|@Qs NVB!#%p'9)*a+,R,!,++++6,7-.0x247:=p@CGIKMYOPQRESSTTUMUuUvUU|TSSRPOO>NGMKDJHG E B>'kˣȕW̃ɅǰN/rVŒF:vA!}MYެ'.]YF"˗Ͻ҃ԫl:܁dp<sLv4 # .!{$&c(?)H*+-/2m6g:t=?>ALBoB B,BBdDEFHKPN/PQRTT3U0VWXY8[\]`^^C__4``````_]\[T[ZYvYXSWTQROIMJ[IHGZFCZ@;66=0+ **7+-/p/*! ?a"΃Ķ@)=BP󦛢0!(Z|+ϙrL{ޙBɚћk DT}OȳA@VʗӶK ޛߤe'P V m%s-B5()H,/37-;|>ADFH/JK+LLMNMgMMNOPR'TVY{\^[adfGhikxlmngop|q6 j!"$&%(7))t**=+]+++,---t.*//////*..,Z*\(_%!txKeEv6 Cf_>!>ݓ&dsmƉIͼ.i.TQ֡ ɥ ^pӚT֞քPkۖkd< / x v 6O34}iݡܑuچzK9)ݬݹ/۩gؗ׵?E*)`vy[؟<ϊ7ψ[p>[3޷ރy [C`#  r  1'17:;!:62.,y,-03367M752o/,+c**j+=-|/1357^:N<==<:73$0,**w,n/2D68::975s2g0!/'.w- --,-*-%--.02$57S:B??L@@@@e@B@??=A<8;A:987Z76543(2/V-S+)V'%p#E" o>lmm n_>K(fTWb^gޅ$ڏ "AAҚ/K*$ѶюʩǾćϺTA–q_b͖ύ~ӱՅؽۯ$fUwe.0}QkI]xrz@wD$M !˗Q,ĢUt)̹9xϺCi üǞ͇J ҾВv׭2ڻr6zAok9X7h 1 Yc O#%')o,.036`9;=F@BDFvG8IJKLcNO4QRYTUVWxXPYYYZZ[['\8][^z_l`ta[bbgcc dtddefeeePedc5ba_^^](^^t_@``kaa|a@a`_^]\@[YXWVUSR@Q=OMBL0JFnC@ >:631D.*'%"r Y J\( 6 "Zܩ@t";Ψ/9cȝu/DWg(!ZljkqljE䊕^.VaLD?H JJVH@EAW>;99.96:;=A@BD5EDB?;7B3/--/1t58;=|>=:]61/-(#k{&5`\tXoCl<gQ?/ m=':& l\eK,JzIbݨm֑Wǥз 2ռҾ ©)$ˉrѣҡrqoA(NRob.Nn{%k9O2I M Ukp<@?Lccم19ܤ0ܿa١wر٧CL%QN$w),-,,*>)'')&.39hAHIOTVHXYZXVTiStR!RRT/WqY[]_aae`_^\+ZW%U\RlNID&?81*'%? b~6? b G ? \ ^Vfl v0wF&7R?0'7dxڷkCzޫܞ۩wGo6]%[qsݡ"~؀֒ ѴЎy;-{ɅpȠ+ƗŏƱǿʚ Pծ lVwUu "$F%$$y% ')/.4;wAEEKGOGDT?82.+*i+-.//[.Q,),'%###@#"T!`w9 > {f$ ~Bf %4 9-_?d_Kng+ *u qI>Ub8;Dr;$1B-S;- Q=$*J05;:A)EFGFCL@;62?/,+,O.03u7:y=>??f?=+;8g630*-H*{'#I[ 34G>ԿBBBVŇ4$a" @" b։3Uٟ*|yPkߏ߼/6k]߲SEB_6F~dwEjO{R!"!|<" %+16:=>=:b73M0,B*('&%$#-!a I }7%z*"k.әv,&n~ +uK? BJXaEeIW<[#Di0E$LߔnkIņϹlɦRDŽà5i7ÐX+ɻɧɵ\*kê /Y߄Rj "$6 ;!/!; I~$+F6sAJ2QUXZZZ@\^ae%imqssCssrpo mk2k'k:kukkUl.l|kjigeYca_][ZYXJUROEKD=w71I,('F#D &] *_)A.u˘0%Y̧0՟#Λ&'횾Oݙ'\wנ8<) <õy?̊͗2cݐ{B'!(d,,++,-0{5 ;?^BCDnDB @ROصIӌ3Ų鿁õ7džSΦ$tS0t wC"x #"%$$$$$%&()*u+,.f/0245F40a,&b _A 6+ Pusty5ղw(˛9[\fK ǯ&.BmOٕZՐ_W h·xTɶwJOzּps LUnͥ ړZMM#- z#'+0`6o;S@EK O[QRiSS/SeS.UiX\_c htkmmljh(fcba|`_ _^]\I[ZXWcTQNILHDA?=k;~9751,(F#TO N  + gr_O+!\وaݨG_?Q޳:UTVߧޓ{FސޱޔVrD۠=/֗(ӊtnuMȨ[s]ZVRDx;źGݼ˿gjy뺁BZHZwc w̳ ѦՕ ٯ#ݭxg}\}!/Y#z 0$)\+,_./0036#;>ADAGHIeKM/PRTWYZ[\^N`bejmpr'ttXt9sr'qp}ppqqqqpUomktiJgedb`\_][YKWaU?SP1?c\ h [i,9 X :ixJ FZsl$ٌg|Έm+s޹!*~ɣhO=ݛU뚄4C"b)”f֕ɕrP[ӕA :XRdcŃݣJs_-: B 7 .$/+05 8886\53=336:^?KCF~IJJJxI IHIOJ:L%NOQSTUUUyUTSRQP?PP{P_Q_R?SS-T]TTRUQPNCMJH:FMC?$:5@1, (}$)"- 6 i[(|0ԭΈ˱ TZڮ,Y~I t=((Uw/pCGB:Y(${uNe4}9w,>V  ul>Vc t^'c&k7 @ <B\cCFG\c\xCSH5ݱٞh՝ҘQϲ4з{_t'kB +L~bG~ebx}an Ig"!I$D')M+7-e/;123S56q7788:;<"==c>$><:&9s7[520)/,|)$l c '1]W-ibNҒŬFnǺ]Sȴ2KɈ̕ӣ٭VEw*Sg+  ?8 O "&)8-04}8;<\=m=<; 964)31f0/G/ /. /*//.-P-j,*E)'&.$!pp HvE$B]Z׮ס\\ElozVnQt < z } F P * hgwO.~{? Zf?| %&  t4 W n]U*:8UkisL91 }d Ci< fzJ N d )QPdt `m KkyjG N|9ƙ¤vN¬MEɣj򣹤ħ)1Ȭz°AeZYUΆѡRڡK+e>6#!!1! !"#!%8'h)*+e,-<-,Z,J,,,K--L.../...// 001X10/.,*('(~*N-b16,<@DEEDMBL?P<9889;=?ABTC$CkBA@@@ABDF;H~IJJIH F!DAj>h; 9630-m+($!.@ bVI! #*ڥoˁȜ!s+eۻ򽋾˾mtK·3٭BNX(Bm"A    ^0 x %  o u \ 6 n9JM/4 ;4^lux^kLlai?Xsw)q3 Q}| gp4c/"5ߚ7+;az_J^@Ud$ B ~j)!#&*%/286G:>kBaE1H%KMOQSVW3YZD\]^l_!``:a_a=aa`` `8_z^]\[ZYXVXUT|R4PMyKI-GC@=:6u2.+(%# r/J w/)6cˊŋ8won9#N3O?!Zl䌣vC9&r,DZfaD* ġCɦԠ؊rC8 c/l a 1$/*.2h6'9t::; =c@D8IMRVX3YWUQLGC6@>>J?4@LABCD D#DDDD2EFGGHIKWL?MMNN;O%ONMRMLKJHGFEZCAT@A>;897w4Z1Z.,*'%#A"E \+v ++@*cܫڴ؜.ԉTBѐv.Ӂ/׺Cڄ׷Ռuѻϭ|tϵ͇ʎŤú bǞy0@֭qւNӝut'!TI5>!K p s D ^2&7"%v)t-0356652,0-T+)((Q())*W,E./B1N222r1B/,*&h#J 9cI Y  m rArU#pFgbjnP9Mg߬$x:a+{E &kf< {"$9'(U*,-y/o0112G34322210/.x-+2*('%#d!.H{  ; "5Dx|jj+s~첲;Gf%=Z|軗Ҽ%a.]’ðĩfƮ}H@̚Jըwnݡ|Zލ])*oח׈&{U?"RN/h3Y6E H) HO!$(#,m/Q38x:e73/+(-%&!TTl-\ $سTaʼĪ@ ܬ٨O՞,gܕĔƓjאʍ Čč֎ݐNk>-HBdءK>ޫJAJKT?IiSU& ]u?{ M"7$&'(**L+:+ +**l**+,-/d012k2110.E,7)%"^M ! ifKz T[%?[mC~M #soZb,u4*B@h` < y @   gWezd^S7ZtA Y"k$&),k/13e55253J20/r//U1n35G7]8[862-(P"fw!%%&D'\&#-^Z)*Tz>IO ۃaڋִԼ6MJm?~NØdzɣ|yku v].l%@URuy M R  A  W 8X(Sq3&]kV:Q+.]Zg)?g:|0Cckbfg%c jfc/ tM~:QS'ns VRx  3rq;Z $"/$R&(u)*,h./1O46e9;[>@B:D}EFGHYJRLNPRFTUkVVW=WW&XXX?YQYXWzVlUT9T0TTUUUS#QuMoHB2>:75432^0=-)%#!&8_ D y[ k;t߬ -ߪ`&(mA)Hc؛׹5ԱvҚНiΒˤʟɷș8QĈS ƹŷhgг߳밓JT/ӫ{d+⪺x5*BR%V&# 2?hǶL"Yۼ Û>Ȋ{>θ֚ٻ4Uz90g3 0 .V Y$4(,168&YZaZZZZYWU?SPNML'NOVQQQ[OIJBm90("j6H!"##" _o q"$I')K+,H----w-, ,$+)g('S&%K%$%%%%$#" ,s<\29w `3| ֛rCж̓O1q ı:NTƤd̟à塆vk%S乨Z2g3+,Vϓ=? _ 2 !&)-/S233y321E/-<,**g*,,.1F5Q: @EJNQT)VVV{VUT6RjPOM_L%KhJIH>FUCP@='9461T.+#)&$#[ ?7vF  U"""!U p~g "R%H(&+-0T2`4577869c9W99:J:9798864z1r/-+H)'B&$" mlXN @ L[Gxъk@¥1u×^]̛jRaB'L1ZٞW(!OBmd֞i^ ܪag$rLóN5E\=yΏ҅'߳%Z+A aW #c&](u*-159>BFcIK8NPJRtSTVLXY<[&]^k`ab2dd'eed{dcba``^]*[YWAUR"OPLHD@=: 7`3l0-+'$%"r N  U 4Dok9d3*5J "@@h #8!y$I/wy $0')z,$/1P4867i9:;o<==N>>>>>>=<>5Y.g)&U%%<&(K*}*e)(&&'*#07=}CEB;K0p#@KV;% }o? V"dq  a/6'xM طن۶g1[ߒR/:i L A$, %wP~}"8'f֪ѻŢJοخXlv _;c<_# ْGٹHy>wkFG / X `Q %rNf o   ?sJQ"D#! ]jb MR, . MZ)|9)(}.7 l#&)k,.1457/:<(DmHcK#NP5STUWXYZ}[W\\\\|\=\[[-ZxYXWdVT#SQ-OiLIGD{AA>g;"83.E*% W Oc=.Iyr\Ԇ,}gG5ׯʩv2^(ېf܏1v{cC\k0Z5BZѰ$¯Ƞӭan %)_.46:?EvJO3SxUXW0YZK[[]]^_ab;eNgijl3mmrmlkjhe*c`Z^[LY\WVThSPR}Q:P N`KkHD8?82,& P.2 c ?(Ly"جա`TjLcƯ¬e˸Hx VMϼμҿ`}?GԖ٭T2&C> %*.02479;/>dACDD=EE3E=DCGDD B>:5.%v w{=t:^6#%8o-0 ZtB> `s&z߿[ۉЃ_EV_WԌ`ܥ8A BB 8Y)aU 8  7 E)+"&+.x2O69;< >Q?V@AAC~DEF#GG HGF&ECqB@>=<;:949 8b6431.*s&!=# 1 *Lbx3AڒԘѱi֋׉9bʭĆ97| rۗYRRϘ.~RߞgTrŬx\Ƣ"ߣC /#"'+*|-\1471;@?OCFILOQSSyTTT TS9SRQRQPOP`OMFLJHFFDA?D=:w8v642T0h.,*(&%%# !! U 8'DiJYS$hugr..MJ{(P`p j<7\ ""%B')$,.02B456`778_8u8K8 8?8U88:7c654^31/y.,*(D'I%"TV,_ ' gdteѦJĂܺ.ʵݯJN ;.kʏr$U*Ôzl예ۙt.0v$ZvmsX7Sj1nP|4$'*.1\47:f>OAtCE6H8JKMO RSUXZb[\v\ ]]] ^M^u^^\Z{XlV`T~R@QPP$PLNKHAB8-$n a i=ED(}{hiby@gNm'Q4s /u= ">%;(*9-/n2,5`7m9;>qACEGIeKdL6MMNNHN"NNMLK,KJ[IG~FEDB?<94.'!"# =]z ;NC 2j1| ¢f{[kBŪ0ħ鍊ڦ6 *fJlF~ݽfݿ\ͽQѼ-U$น"Թ_LmCʷ1%٭ݴC7RvbEM 8%!S%-(+*.0(2357T9:=g?ACtDEmG\HHHHVHFyC^?:50u+2't$"_""#$%%$# K F TQ-8M<ت+Mר7Mp?aD`o9, /NBaRZe #='*.369C=@CFGIKMmNOQbS=TBTSSpQOuLJJJ_JqJJtIFEM>5,Q# "Uj% :$1 ޾ڕ̗ʇ]Ɗ_"Ajر;Q5Qݰz_1d/áǃB٫yEy&}s! 7Y!#a%&')+=-./*1221z10/\.,+=*e(&%#u" N2I 7G sa΋9oʭ+FwPҦKPOj,ò+Ês¸%_ŴM7H΁B[Vٸ}_W+`9Tq (S "`%%(*-/24l67'99i::c;n; ;::K98p89<?BGLQHUX[^`ka[a`1`^[XU"S$PLIGPFIDA>;28T40.K. /047;>?O?'<60)"v;:1 zgx b U H8d@Bx_{Q>w8~%ߡ߲/ߌݳf٧јДFQϾθBɐƸ ϻg۱Gɫ7UMt̠8?-I  otӪɬ߮-赜8›l=ѷ%ٷޘ) B&.\7>BvDZDYCA??@fBiEHLOQR6SSS:T9UWTY[]_abba`[_a]ZW/URZPkMJIGC@?):`4c-w%6#* fEU3t]$l߷'?ۉjD VL d $]K q#&)+-\/01A1z0/$/-+$*G)'%"4 wa |ik4G7B aGw̥Jh;•Խ~rmҪyޯVŷӻĿGĔ^P@/|D"vb "+t1X4p42z0,'"42=? ? ٚט8"G͉yw/x̡̔+ȱǨFKKUc(=LNפxdCA 7Y1'#6'A,z28>-D~IFNQ=SOTZUUUlU4UgUUU/VVWWWWWCVTRQBOMJHGyFDB@>;7W41.+|(%#g% 'eoPnM%aܣӴ5ڏ ߳ݠڲkr#Yнb42AHpն7۵e lnoDJ}Q/Xs] ac^ef>ecap`P_~^0^^=__`4`8`_g^\[YWUSRPNK&IqFBD>::63 .($9 N a} O\Z='>ըЋʵȬ)ŷ˧o3TżŔ">u x.ɤu)ʽn623ϰҘձ6J& 2u!! PCy #8'Z*,,,,-,9+****k**)9)F(_'&%W$"'!xY @ (d* boyK: 2ЪʶN۾Xkz(PżjtZdRhW dҞ֞s`@]0-_by4p 1/,PZ55I0 H^p 6" % :sA&wI !*#$%&(M*,)/25"99<>A1DpFHIKMOPPQRTTUlVWOWSWWVVU UTTTUWXZ[]^$``}aaa2al`c_m^J][ZXmW V%T>RP8OMJHG0EC A?=v:6n3/*:% F 1Mu6lȬ=$<oWصV Q_ԡҟF.&BϑlFw&<k oQ춖»Waaȴ̊C҆-ָsܓݻ8H;w:t#FQ}N/a A u1*w0xh/!"7$&N)+-a0%35o789X;x=-?t@ABDDFGIKMmPS.UVWXXMXYW3VU1TSSRRQQ RkRRSSReRQPONMMMMNP`QR*TT#TRPM JBE@=!BD_EDCYBV@>===.?ACDEFeGVGFFFkFnF.GHtJ!LM}OQ)RR)SUSKS SR+RQpQP^PON!NLSKIHFEICAt@>&=;Q:z826 41/,w)&$T"s|cC H$7sC'K9ݸS˂49Ǿ̴&Άɔnj*İŇ%țɰ˖bɽJchyiZ=Orc1LȽ(dVk.ܤޠTMFJa'd5 ] 5O< +#H',2.7aæ{UnCўrKɗǖ Εݕ5͖r%řq}g`6 HΡ0Uf/ޯwMվ? Ӹ9=۪R*) k+*5 F$(E,?/h26U9 <>iBFIKNQ1TVX`ZF\]^`bd+fgqijkJllmlll;mm6nnnnYnlj8hzeb`#^\]])^^_[`9`g_N^][YXV'VTSRQPMMJGCT=6i0+%D+L : bph _mVeonMى֨Ѡi˶z{ȼRhm屉{yY9bǧ_ɨ>zrգBc'[Χ!R¨冀t\XĸֻI=\ۼݧ5 e TK`!#&),. 0.2478:.=?SAAA@?CVADCDsEEF)FFGXIKuNMQSUfWXYYY+Z&Z%ZZ[ ]W^_aceguhijfkkDlll;lkkjjsih~h:hvgecaY_8\YVUUTS]RQ7PKE^>`6,#4 MP>)oASs/t-bGPS h'N^ӌϰ4˫ʮ8dwѩԠ9դȖzsdǾDZǁ/Ǘd ĭĆe'ijÖH$'™fRfýŸ4!1Hк ضG$OBq !ھ,c(M !?6YFj #''+058t<]@CE(GHJJ%KKDL nT +[g2F'9 \ !##$@# #N"~h 'k6w)[KBl-f! t  Y_tpG*KWT447 C /z-8S~$ #1&'B((D&C"m8 7  31 +h*='reԘ~Ohw}SVp¼¢_o/f<—?eįsȪo)Ю&Հ?k@@qAAkA!AAA A@@W@?><::9765596%6}542/*$x 3Yh`AN@?>t*^O};#5tj˝ĻDǾU(ǰѪV{sC}V@\ltN8Rd9`[rz 6 +cYuLnq X"I%&))-0_477:;*<;=;]:998889:l;H?@BCDEFGHI)JJ KKLnLLLLLhLxKaJ2IvG>EB@1>b;8h641-*8($+! BmVv 6v(̨+Zј9ŔMcѝߣquJJl=ͧ8vbδAؾ-È̔N{ X ["!$8(n+-`063 6'89;>@eBCE#GGG-GFE!DA?]><9]62.2)$"}|s@T}>48 {_=u V~gU, ܄,ހ߇>)nmrPVEr%)++=++'-/~2p6:P>`?Z>{<4:+73B0b.7-+(%"0S Uf1Nh1dz'ap0>QkW0) !7 $(,014)79T<>@eBDF$I KMNP6PONqMKPJIIJ*KKLKI{E@:>5/[*&}$+"% wi܉؎ԹΙqhNό!Ѯ3бEq`\a̹Z̦l<Ͼ8}Z"謃ij^- C´8)/pʅo wT ڗE߉7.iiM P#/'u*,7.k.L.$.--9.B/013R4<5g554L4B4{4856b89;<<}<[;98j6[41'/,l* '/#MnP 8X$5/܀!A܌܎܇v%So&pn^}F w %}(l+.1468;J=U?tACbFOHIJGKKFKtJIIIIIIIHFC@=841r/,)&#T (  4΀ȘÆҵ7^Vٱ($ô-įɎCʳɦȺ ǚwT2ʝ ~Ϳ͑Ήϐ?ц5Ҽl-{-` 2r5Mv&;( 8#'+{05 :>B?EFeGGGJGFFEYEDCBCBSA1@'?k>=<;:9M8]6420^- *N'~$ 3 Vcz)t[յѲb_Fuvɿ󼶹ȲHoFȫIШa7ե˦Өa̪Bwo9ir59V8b_B 6] M"|(#/6z=BFJNObPP+QQ$RzR4SOTUUTSROKGC?;68}53]20.B-c+(w%'"%73 > n  Pn6=DP47rd"  %m#P'9*,/y2469;=b?@ACwCCCC$DDC)DD_D`CB@?(=O:7"6321.W,);%rw 2ܦ͍Ȋé;CkmG^hH;cEL]£8K9}<:9o9q9O987/6-4H1-*K(%^"^9 h:myk׋6RǫiF@£ 3Y%z-8ژrܐܪ܁* [,^#(D.268;=Y>=<;y:l8/643d3322s20p.u+d($n!S uXx@C@AzCDEEDEC{A>#<98|8:=@DHGLAO8Q.RcR5RrQOM_KIGDB?=:<6i1,'=!Uf b}\$Eʈ 2d1En۸Z^fEjY&xW6I\B k %C?1} { O"$Q%%%8%+$]": sxH " %1&%$!%t 3fd{Fj#ɁƊw=+L„"^(8kCͱT ̴AճXtzN\};TKE3N4[uLIv{$#)-218<@C2GoJLOQSU+WrXY ZYY$XWUTgSRLRCRfRR=SSSwSR RPOQNMKJJJJ!I=H?G(EuAr7%KڀڔT܉9Q`tj]&Op1 f@ - "@(K]}D-"W'+B/2`56765#5321I10/.Y-+4)=% 2n " w Q K v  Y P }8hwb! Bkx%D8MxE1@.8d_,L$6G4#*,Q΀ ʭV^M"7ݯ q5į>ȭ:뮁ذW/]AFdѿ¿D$E2=F{0gM3q P!R%(+.01358>83.)# Vp2Y-D74ַΉe&y&.GNn͹,dϺ{4[Ơˋя-y\T%ߧݼ,ݣY:/x ^ 4M Ub!e8$ BL?:)"9xT<ڍ؟Q ҧZ ߈8ߥ~RYE$%b-z&ewg_  V`qE#*17<_AhDE{FFiGGdH(I9JBKKLLKKiKJJHJI>I.HFiECA?C><:87U6:41/-*'$("6 X$y!-J=̂go#wcίSV~dݮ4hʯXuls71eي#|^C$i ;N<a3+y ?AhuE3=a:(0sX[8^ 1    nJMW7 ~"h$&''()))'&/&%i#! K,~ PRlU{Om?Ӱւڍ߂Kv3.Fd  R 2 ^grgKASk~oڏEוM.[Sֹ՚ՎՆձr֏זL%K7ބjO 7|"Q u"/(b,|04Y9;.72S/+'# | `)-A {EǶ&gȮ[өa Ţ`VݢZ0ֱ$1~h˚12+Puw}   $R)P.369;;>?)@?!@`@?>=<=W<:85J30-*'%Y# Wuj @~MF,]&bxLR -"$y')+-/{0F11%23344X44"543210/_.-h-,,4+_*(&s$" {W ) /6MU~fa&y{\ qu|pؾ il͋wZ֜7s܎޹r* &DGIJ0KfJHpFD\CBCCD]GILMNN6NL+J{FB%?;29v7 778p88e8T7y5`3J1/,*!)'+&.$R"H fn:NM ,v*׻c4ʕƎ9){ɥHɚb=DŽCI[Q̈p ̊ZʍU2ǘ8ŪR ĭZĨ\"JéīŔƚ&ˬ -6JٻMj1I XC; S ,\!%c*z.14?7P9:;U>AiE6IiMQUXiZ[b\_\[[[!\\%]]]]\[zZKYXV|UTSRQEP,OM*KHFCe@<96*3s/',4)%!>s uo)>o |*NSEΤ ̢CMǣzD\C@4zǵYFUS8<) ~"*"H1 ( _Iw\:V. S % } :XDbߒWچҸylVYu3BΖХ҅z/ܠE&Fa =  p$(7,8/257:<>AEGI LM)NOMKJIhI1J]LNcPOPNK[DZ:.$< %C)f*E)&!E*y \v SߡA[PT 5 J`ms F[ 36ac' D!";$&l(+?-./P00!0/-,+}*T)S('/'&S&!&%J%B$=##" ;!@  & k]0)&_yshSTkO@ܧ_RbEgwΪԫҬ:l?^O D·ν{ujޣ5-j]*n W +0@90o u |+]A _#"%% &6&f&/&%%%R&&'v'' (((''{''(e((V) ***M+++g++,J,{,-.301,3o5d8L;=e@JC2FHKpMOQaSTVWYYZ[\f]^t^^^^]\[ZYYXXLX-WVjTnQLHCr?;6Q4w2T0|-*'#suD g?FX&׺$Cn%*֢49ۜrsOϘ/ؙkdF韃N;,OE#*4L7+ z' ` uMJ { , J_mf*s12l$ '"&)+,./// 0013\467}9o:;Z;*;1:86n53E20/;/.---,+*B(&$"A 9|}JOl ~ F   6# k\M֛ԃHЏͫ&a SFr››C4h89rճϳyӴ#i:>ѻ2¹ŝ|qbՙנzuI+ 4\ 2z"'.L4L9=2@CDEFGHIKLmNOPRSSTTTTSSSSSS@TTUhVmW}XUYYZYQYXWVhUT!TSSvSSSdS,SRRIRQuQ"QPPO OZNkMLKJHGTF E CAW?=;8 63 1\-[)%"5r]XW ? M@TX+aT"EXaMY& 5cٽJlO_"/oW\ͦB ֚oFfΚ4gɦ̨$į5 r¸ 1R]!̸x·Ńȓԫي݃AHXw > "$b')*+`,-./%01J2V3(4.5R6M778399&:f::::s:Q:(:9999993:::;%;2;0;;::::::f::9 97 6h4205.+)'}%# ,H#, :2FHiNg4LM7(# " *Wu!#&(*,/J2469;=N?@BDE5GHJKLeMMMMMgM1MLLK0KfJ7IGFDqCCA>d< :7V30-+N(%#`!* *"MAܝÐ:sHz0:ڝ̝؝Ğ;0#aiѯq.ٺ1Sȿʣζ҂DD܈R`z[F IߝY1bNݔF OP?F3:";) "')(&$"!."`$9')+, -,@*'(y&}%:%t%%U&&T''\'1'~'0((~)*y,.0269I=`@:CFHLJOKLL5M\MMXN=O&PQSRSTkUUUCUzTSQPNLJ]I@HEGFE{D!DzCBAA?3>< ;<96421.,*)Q'%#!Mo' )TGGr 22cWC5ǩª$ر dاmV-!R3^s!ťƦ;X;s ƾLKKȴ]vP53NV s-A !v%)9-15]9c<$:753o0M-*((&#y!7|l lxM3 w#RUD.1SY +ʜ|~̞sіғ*Wׄ٣ p<#HF qD<2pN?ox 'ۼh̓|͚̈́!ώHO4fθϑBRT۲ -UYO; f 3 1xY#p"da4akca[F#1=0*Yrpr=JR3 !#&%&(+/1m4&79n?A-CFDDE-FFPFE!EDDLCB BA@A?=0<3:754;322234444392Q0e._,)'%#!}n) 9jo@nc>/}Jڷ׾dR_ŠYNʳ~3/-ޚߒ9 /JԩԨԤ-&(׭Jۓn.Z&)k6{)I E"{ ~"d$M'v+/48=ADFHlKMiP}SXW:[a^` cdfe+edc?c{baBa/aAa``^V][ YVPSPNK^IiGE*Ck@>:<:87{7W7654i31/.l+ )&$###""""!n B$y"R . <b|x6g=Y>$|x6dTߓ,y "ަئLՈ ӗQXM j)û;ռܺ,AV8&{ޫh0ݰԱ;8T4/*%hy? x$[Zό8A `qz' y+>ģl$..(4.?.3JrŹG2ek9ަ8<}hP V" )=.39>ACEjGGG HIeJtKLNaOONMLPJUH-GG)IUJJIGB9:." ~ia>޼ۑp؞גֺZNpwڇnܽܭIe?Zi" - >JC"',/48X=@CFIKL5NOPQSRSSTS$SRQpPNLQKIGEDB@>.;^8.5e1-*(&$i#!;6  jv!Nt!`qbݪމߥYޝ%\ݷ~lߵ<[:R'>:rMB<mL> vLl\u4f܏Xl},G;NVd:=;BʉY3͙vJӷվנQܻ<ߢmBy J  K "%(+.0v246L8:`>AE HKMHOOPAP(PONNN8NSM LJH?FBG?;k8Z4c05-*'$<"n Mk)g.$?)  Y.kq@g̪%jdb|@/ٮۮo#D&(ExӸ+"1]/!̃χѽ֢al@DSu X $I),.N1354$432[1.,M*'$# o ] 4 u'BEi"*P{b *KA ! #e$@&(v+-/1345a6c7[89~99V:::::;Q<'==>>E>a=C<;98`8x8!9:R;<=>?@(A5A@?>T=:y740,R($ J`62;y6{B(-~  )1n4@?~ܼZ\[W.TѓhҳҚE;Y27vn9N̾3ͭ!OϩϳIзZўҿ(׫u{fA ,x( !"$%u'[)*$,(-- .-D-,Y,+*|*<*)('&t%#!4#G<L w FJ@AY8@4{NeȾ=k!dY:ܣ&XF,eA;EIeLNPRTUV7XiZr\^_acccFbCa_]N[TYWkVTSQ PJMIEAa=S83.0-*'"xH + P 9/WW 4 #  j7#'*+*I(%#"7""q#$|%%%P%$# #|"I"B"{""#+%'K)+-/U12g3:32G2100////9//.=-r+)(&#!*<)@s @ j6oF4Hl+_B#k q  U=p|(yZūD ɊɔɊȼZOoP:whĸ’*Eq'ɼ69Kچ'.uY )[l:L)ڗA/5;0ѨѨ&o7N!4P 2 M@ %$(-1h59=r@B;EG*JK=MNTPQRSUkVlWXX2YVYXWVUTYSQPOMKI|GDfA%>d;840x,D("+ -Rv>љ*uɡMĞ-󾂾"T3Z乣s˽N$qΙ؉@ J/ _#&U)Q+M-"/0<2f469;y>ACwEIGIJKLLML\LxKJIHUGEDCjB@>=<:864j1,'"1 uOv/];Sބ1ӊƍ-An9Jڞ՞zDˠgS c3CWqD2Sr r %n{ !#y%&`''<(2(''''(()N+-./b000p0p/8.-,*(&$$# !7/|) an[5 V  QPy$ X n;(Ft>M{P o 2g  OV=}] Q 4z6jmM-m+ 2C' ^ F wjqs?= ??j'j^|̨ȐŰn´}AŔƴ$UĬƇl@}F`nԌՎ\ن ܢ2 +a]ޟ%ړ? 70+o7?$澧~9ѹb';~N-̷7~<Gªę&̗"ӌ֭ =( >5$x,03T79;%===>@BDEFFFD+CAE@><;:/:9<98;8777777777d777:8|8888J87b765435320/.-0,z++`,*-.1u47;:<?AIB?C^DEF}GHIJKLM[O#QRTVX,ZZZZZYX+WUTSR)QON8MJHFJE>C <85*2-'P!5 a4I.|{pq ק*ՖԟH>u΂PϖIѬ]Ԩ&yA׊כ׿[ؒ QL%؇"ו ,3[ӾFх|ΖX, μˣ]rUe9-&׺] . )N~^ڷ͸ƺrUhE 6a+GַۅAgpq pM!%(M+.w147:O>FA~C|EGrIJKUM(OP\RSU1WLX&YYZg[[-\\\\\K\[-[@ZYW=VTgSQONmMFL[KJJJQJ+JICIDH3GFDCA@?C>=;A:853q1.+])+'$! c i J %MI ۻنѦ̿VKż߹&E çW/mʣġW:V›qPJUGb2ؠ.ߥsh}ǯ峟dN,yдӧBP|fhy Q*T!' -1F6:>A'CjEcGHJ;LNQSRUW'Zi[[s\\\[ZYXWVUTTRQrP>OMK1JHEGDE CAM??=:86420.l-+*('l&%#"1!?,AO 3wL5U<i` + 1 y2rs'nRo|gJe^ E;*Twڢכ)B"9! KѲNIZϔBYqHӟ7}Eբ h/׸@ؿ$ٌ y =Ei;y VZx6l_f}gl{ '1"M߄ݣEޠLߵ4'ilst7^Wi  M n%*.3f7;=k?A8DFH*KMPRNTU(WXvXXYeYvYFYXXXhWV!VUPUTSRbQOaMKJ~HFkEDB>:6C2-)'&s%#!H{* VLԪΝȟ E} ƸӶN簃 Yc$Ůz "^o<䴲дUʶi&Ÿ ޼HGljɉ̮WصdN Y B%H5H'e=jwh R{6s3@uc$YC(X d!h"# %G&L'Y()+d,-./000000///=002S34679a;<=?@@A A@@@D@???U?>I>=)=<:t9&864210-+*r(A&#c!UR0OW g[pH{C@KG/GʜոoxٲڱX,c±!ү̰y9y_ƼG`j; {AvϤѬc٤ݤ`f3z =N]!#$%'D(t)*Y**+,-..//l/7/.-D-,+,\+g*^)U('%$m$a$s$$%w&&3&%%%z%%<'(****)(N(),05;{AFIRKKrKJIHGFkFE_DBAx?<975;3=0j-*&!J |` 7k J|V`cD,b6v߼oa٪ԥb`OOhgtKNqKrc4b2Y9]iam"1{ ^`~J=9gV8o[  j X"$%8'()1***2++***A*))('&6%#"!%&V  <[H?95sQKŲZ4rnnpԱs$+ȶt̷˷` ɹ7/ ɿ?QӺո۞ޒLTf} W~: ^ ~l3!$(,.X147:w=@)DF:IKYNPQRTVW&Y2Zh[\]x^ __J`````B`_^^7]\[R[[ [6[s[[ \\*]] ^|^^^^&^;] \ZYXFVTSARP3ONMzKI@HFDD_A>I< 94/ ,R(# e0 L8sr; n7 5.+4á˩#ze0‡/λE5촭}n%fnhe bȤ1CV̞Р֢P+ެ?$C/lƱ?95ʶ߸R!ysuװ4l@2 # foAh"%u(*.h1;469>>>?n@ABCEOF9G HHIHeGECiA,>:7[53!323^5M7#9:<<<^<; 96v4>2 0.,++*x**|*)@(I&}#<m) DACF''ZRjf9ۼcr։թUbl۝I}8aXFQ[+t\gB>%u+-r#Eq!j(NYYԹ5ʕˬ& ͻαRտ؀ݘ 1} Q,m!$(z,02E58 ;R=>~@xBDFiGHIoJnJJtIHvGFD>DC$CBEBA@>7<962W.* 'S#7n J VZHX! ߍ`ډ,֥hqrկֈ݋IToe=e4%q '-~|ZXkfb ! #$F&'z)]+D-./v000u0/.z-,+*)D)('&\%#"y`nH~ z G 1d=Q X\TtvݢήiʃsȧǨƇņģäi5|ٸոl ķ[߶|=@BCEG0IJ L2N|PXRSUWiYZ_[G\]x]]3^^H___C```!`k_A^\}[Y@XVUU/UTTTgTSRIRGQO'NLKIVHFEDCBAA?\><;p85N311.*,*`(}&0$!( . 4 ~b3;: ar;aۘا%MHw_%Si~J ;c}Sղݲ)ԴD$öX6Ӻ}gcCĝǞ}ʴ̽GrћҜl0`׏>\; ݕuݟ%r*CgikF<9D&&JI`YHGOi!(@6E*uSr*<n  ?`XFKe#r'R+]/2:56"8x9:;=?@BDFH5JxKMNP(RThVXcZ[R]o^_a_|______ `W`c` `_^]t\Z YWUUT"ScRZQOkMK]IFA=84/*(%Z##!|2dj W }e{#0x&á6ܾtVпpX%` 0YƐƩƩƧƩƎFſ/ƠS5.ʐ:a͹vUϻSӻԊ5UN־lZhؠ {Su)Rjקԩ9ϵΑ\ʝhkǗƹJéOc)NDžȒS2B$lz)0]2X b$+.7D?CtFDHIJK MIOQSXUV8XXXXYpZ>[\\]]]8]\\[A[["[[ZSZYgYXWV%VRUSvQO;LlHC<>W94/D+W(&%$""c! s  vx g6H;Pwtbrr Q J ! BSF^gJ|LոxDZ# 84I;C/ ó8:.?&*̌ڼݣpx"" Z[$)#.2 8;;/;:;>p@pBDJEEED(D6`d|nf /bb S Tc4GBv:K y]mic«sbֳӱvoر.n󲞳<ôh>_޼!=ãg-Ȑi4ΰzr>ֿki$X T5 Y u :0]/~ x!"y#D$$%A'()k+e-H/01234*56/7k89:];;;;E;::::;;::c:996:<>AD-HwKNOOONNMqKIHF*FvE EE"EDbDDCB@M>;840,)&u$t"v!! w^PTC&+F1%?$  :+"oI&dvYW\2)t҄ϡŮYFֻ  ! jhm/QOq9[8Mw E7# m%R&kD jbO  q U ] X T ,au@fUyLu 7 $ ro;8W0gN"Ԗ6x羢h$꺀ֹ(ĻҼp!ėǀc͛CԻN<HS#)t`x4k]= fV %+Y0F59<9>>>>>>?A>CD8FGHIZJKK\LLLLL5L>K JIHFEcCA@=:k8530-+~)&#)!`) I+cry*T !iT6A B - IYZ` "#$$$$#"a 5JY/ )yk[1 ]ݓwψ̐ɊAEX^~F" ;iyc:\&#>)Cz,!~"X##D#""'#`##$%x&&&p&%$"8!>h"H I T e+C#M:nc.w H PRSiD !B#$%&&'''P'^&%%}$u#u"!1! zN(s # [hCw!^/$vԅn̡ɘ7a/$Nʵ%"tG4 %TŤj|ܨdG||۷<}xw7ŀyʒ͚>*;t.=I& `o "'#)$%'\*~,.1N345678-8 877676542433p21223g3 45=677F9:<=j?ABCDMEEF+F2F"FFFE_EDDUCLB@A`@?H>v<:8(62/- +(C&`$"6 .6WߘӞŌŸþ׼vYoWhȥ}d~ժ;ح;kD3Ӻikj$ڬkl5*5/ F!M% (*-0246x9r;2=?(ABCDmEEE1EDeDCNCBBBBBBKBA@@?=;09w6$4\20Y/Y.--T+(}%!\ -h>nQ:iwy XAmQ~'lXb h  )hCm 3Sv/T}#\Lpkn Bq:&@}  )Pz!=]gyVK[. 8OvpOm}y\8Me1(511{ |V ORF}(N*yf T]Eڽ׿rxԢc&[͘/۸Fh⼣ػʺɸZjӸe6Uq x,ÄLJPN̦ͨZZٛ<MKIGEBN?!<962t/,w*&! e\}Tcy<^[рɑ$Ė<ݻaB1vb4Ody<9 i羧)aJľ Ş+Ǟ ΓоZסڃ݃v  G G ) Tc`$V-5v$6 - "   &D3u2^![D#ݎ^هΪƳ뿼kaΤҠԀ2ڳܽ} k*"/~ O!#/&(~)*O,m-../02~358~;=A@lB+D E+EDNDzCxBA A@z@3@??I?q>P=<:y97Y6 54210 0/. -0,2+)(a'K&%#n"`!f QJqC;b8SiBUoxD(3#] J!!/"f"r"4"!=! ) cD}_ -lL 5S &S< wH23ηpliuuiܦ:ेZzॉ䪞 Q:_h ɾV~bǠɣwC]i_/ |H C Y!#%')+6-.A022457:w=? BDFHJLNP!RS9UVWXXXHYYYZ ZZYyYXWVUUSRQPO"NL5K1IFtDB#A@?Z=t;8,4-.'!zd9 KB٬opͰʥ0̀ϹЃaΣ6[GKԧ$xخ1ܘ޴߉gP,uV%M7߲׮֝zPӀ6҉\fеЂԬXPp,}*7=] b p o| !W#%l(H+.37:W@gEIMOQQ|PPOOOPQ}RR1SxSSKSRRpRR#Q!P+OMLINHF!EBj@>|&! ?_ RQ }m\|^`dޅޟ 07>/01aek"(o#v_iC]ߐܺ٨zӫеtls˦LKAY5űJ''OĆėĿ_KĕavвOl V> uRt ` cGq T#%<([+.d135891:9^98m753210/.C._-+&)W&9#uCya8f1 r+,@$?9J] >hSjYXW`P a=%+t l { a / R~/ukxEXA)^ n vHcn{q@3Wݴۄ}?37ȅ.ĬFƆ8`'ӫԆ?H l5}Pb9 b [1":1 "$B')+.&21579;\=>W?$@@cAB8CpDE GHJLVM{NrO PGPbPqPkP[PP QRGSTVWXYYYYfYYXXXX'XyWVUSQZPOONMeLJGB=6$/&jz  r޼@A𾎼/w eƧ@ȦϨ֪U*s+5HßƼ2ѣԏnݣ9_I[gn U p+hUxrK >&D "GP_'Г-sҦ-lNMz>>W) {^!"$&Y()))*+,,Z-.9/#0g0-0/r/-[+{(%,# J _?NM݄pK֩/5o׃{ 0Z~ݭtmHL$F:S` b n fb50|? Z8dbrws3 = 1N{~(T j&**,(bzn4  <U"!! (.4:>?^CFGdIJKLOLLEMfMML[LLK7KKK KzJIH`GsE C@5?=;/:&98(630g.P+'J$t!;8 A  qe5?/W(8ebܐ<ս66Ϳhƭ9ǾJȹbc 5Bó9M-"5,ah;v2#BN0]"Z&({-1W&)/ҒW3"C̻bfɊa ˿$$R9Nڡܻ*B5\#E  K "T` ."$['n)*+,.p01358:a<?AC/EFHIJK5MlNgOiPQRSTmUaV`W5XXYZ1ZYXWVUSPRQ PNTMKJHFB @<8 4/>,)%" dj27z7}w  a8":dnb m_^rp9Bܗke0͑͟Wh=ͥ@ͽ/ˠ˥m ͠?#"" ̴@-ƳxŅň¯޿\߾ ݿ%3Ȣ _CԻ u+<9c62 /D,)&#Y!9 .&3Qu^Л9ZG\TTٸ2)e)_ҭRߐS4fxG 2P,<e!;#$%&((S))*+t++B+*]*)(('H&Q%$"v! }[o 8 (NjyLϮmV͉͖4m̅˸ɍɔw+Т4~N";c֍'G=n>O?@@sABB!CC[DDEEEEEEE F=FwFF9GG HaHH IlIIIIII&I'HFEDeCB.A|@?>=<3;96r42Z09.,+*)Z(@'%#[!9 R Y'Goy^ՎFn΄XUȶ;Q 񴭲 E9ʧϧܧݧاɧ?'8I7զߦ [!i٬CcKt8V1ÅĘiɝЌQ `q@BDPFEHJ>KKLLLuLKJJ;IGF_EJDB@>q 7 Q*HKR'L߱ڟV҈бλbxͺjϯvϾh͏˒ɼ; Fi3ݻȻjb̼ԽʿWdXŞX$͋!IJוH*d2 , X #',/25-9<=> @BDE!GH^JKMNN}OOnOONMMMMNNVO PPPPPPKPOO,NmMLKoJLIKH.GE|D[CBT@g>????,@s@@AdAAAAvA5A@r@?>>Z=+ ]<pרDթJIYtG;ֵֶf.o콆:ѡ_'KKBHVg G tq=`{\[`h\d(f{n,.[XcL; #%y'U)+U,`-.U0 23I578::>;;>.?>q>w=<^:8_76W6:6A667777888 9q9::;W< ==>7??h@AA$BrBBBBBxBFBB BAKA@U@?j><=C ceW rvٰ߳b8Ͽ͵̌ˣʞʖSֹׂ|;ݾރ]Th_Hp[O]@%a~c_=T  + oAmN`O]^ R _wGf\a "#$I&'y(Z)*+,]--./>0012]3348434v32h0.,f*'%#"W@  qh3t9~& Z:~W X!%_()**))))P*+,,,<,k+**('&s&Z%|#}!  Pcha6Vx* -ƯT  iV#.FYtɹzŹ򹙺<̿^/T{ٳsyQ&+ 0#0 !Q"$%&'()*)('&% #*!|} K Z^ 8&RJӴѸxʵǼW AyHrvyUXdafߚ==#H I2O:` N D!!!!!!! =x?`pA8 | W i ! I M Kqj( { Q&Ky7!#Z&_(d*,.012356x77@8898"999998764^2J0-*r'b$!'&% 9i!);+]Zr^lli JQG$o h x(Z O1O <^DB]{ܚۓCie()ғFѲT|ڵ[ G+e Oj XHX (/ !"'"4"Z""""h##[$$$%2%0%% %(%9%$$$" KCg hTmkGE;%Dܞ<^Ֆ6$ȬXoOUGN$輶ݼB X;2I›Eȗ̍pիډ܍ޏ/E%`F s@W %2*.398;0>@tCE;GuHIAKK4LdLLLL[K KJJ?J6JVJJIxGECA=:f86420-)#^- _9M[:.t/Ikc(n|%hv  E!E4All9"&ϛ̈́ˑv´U˼<ϻ^v0'I]dCS ӟnݼ|wP UQ2`Eyf  o$'*},6./01g2-33(4456u789;<>?lAB DE:GHJ2KLM.O)PQQRRSRRRJQhPYOaNxMkL2@0-*&I"l=t8T .}^tTʓ+kŚ/D!Tgư;^Q;psX_ʩ۩n̪8ګԬԮï2EK4ջ'‡Ǹ=$ѣ5Rq r Jj!%( ,/^2469<=?AhCD%EEEEEfE@E-EDD7DC@CBBAAAKBB:CvCB@=:61+&#zd =LWlEL@d(C' h*Tm-$ Q k3Qw0OH`%) JAlX4)^|t=\ՙњг͗tQNc3CvͰ]Жѯy4?-.z|\v Yz!%'$)*+,,,P,3,+* *)e)(c'%A$Z"hW*lr-L{B3O} !/U_fGcH/QQ<o _ v"^jJsAb]qIƏÜmž˽ٺ6Tǹf<ҼG}龢açDzAD{A6leM eNs!)%0),/ 247H:M<_>@BCGDGD"DCBA3AHAAW@&?=;!72d.+)X))++o(%#@- []* U"C;@!@ _MW3^= 0WCkL "$&'K)*z+,,|---.D.q.p.S.V.v.o.(.--?-N,*I)']%%"SI!  =7I=Y#(0ޅK۵ٝ[C џj9ʆ{x ʫ1δgSFe WvE s#%')*{+ + *((O'&&''()*++++*%*!)'& &O%$##@#";"!2!{ VW$SF avBb}{H`W$>v{c5tieWF9Xy)gqh \ X'hrj3_QUoVm}vOǀQ%.Kv׺ҹ˸dbY1lԶ;ѷa< SK󾔿üĄ!˰+c3#1&s "4)5/356 77778:m<=-?@A BAAAiA@@@x@X@5@ @?x??>:>=M==5@fAhBCPC>C"C!C-C-C*=;:9:8V76`530T.,$)%#   %h#TzFpo78:z<)vˆHº^,"92L''̯L ᮟcB?]Xsͱ0_vzMƷ,x7XyWñ.˟́}&t;بjI U<q'!%%_O9J${hxPy / S \ % O * "%4X1^ "$q&S()++|,M-..v/c0I12234(55{6Q7888p999:!:N:q:::::::::C:99M9887>766U54$43?321[1y0-/-,t+F* ) (N'a&%#n" HLC  _ `7Zy{-}ߺY![X˼_ƛXȵWKѬxVb?pۮbЯJְXrKO_նĸ̺sM(|ʉuϮҊ* D9Jp~V<~( WV!"#$M%A&K'((g)s*[+,,----|-D-,,,+K+*G*)M)()(z'&V&%m%$F$#\#"!7! :{tw|$w-!"#R%&(**+#+ +b*()'&%V$"! I>n0&SP BG2-)wh h=xEGcoZT T RJ9quh!L%e(*+++)X)))3))U*}*))Q('h&2%_$##x!SA? Z '/vcwC"VJn~) F+8v֖ԦсϠͪ`2 w]|ͷZ峺ų⳾p̲TK}1ηz}ËŝʫPoMT 9U  `w9i$66=QZ Fb)q +    = r ] . * ^ ` ("~p~=<@:876k665543*20//-,+T+*Z*)p)(C('E'&Q&%$"$"y!f](v  D ^$K x ` 4arAah "!!)"A"!:! 9yT  7 l *pl#09פW͖ʤȶcø]S@dfChүD=鱕5QӺII0ǟ*]$v:l9rsSK^ !c !"#b##g$$d%!&&'2(((((`(']'&&e%$$R#"!P! M{L{-<@\1/lT + EqZu6k9 [M a\ye !!'"T""! a hN[-DY cI@AQB2C)DDZEEFbGeGFRFE6D`Bk@> =K;98775>42 0,($  QGb8#WmK+ʶffɇ6ӦZa'Zݾ^B"I7K ! &u1(CS$(,0356o86:;c= ?@BCeDDfEEvENEVEEEIE ED~DCiBqAn@>u<9:I852.+'#Qiz hV> C'NoʱȘƾvȂؿFپ߾ {. ~ua3bϺ֌=۾!4kKA:Xw WLOAj!X$M';*- 0C3$6d8$:;%=$>> >7=#<:987V5s2T/+&!~ ^ Lw"89QۦyХ́ʸkO +`ƸAշF}ҵn/Opоp95.b ԥ{ 6TYO #&c' ((p)**+,-F.@.-c-,+Y*&)4(M'P&H%_$}#U"!2So y Y7 N+Q3kҊϡ~NBxŹ0(lĽHqɠAʹ"ҧLeߒR=J!4n ;"='l+.14 78:< ?@BoD)FGH$JKLMNOPQQR0RRQOQPgPO4ONMEMULKIHkGECPB@><:Q8C5R1f-)%K!4^  B GFIp|n=0oGK/ajZ+KTGJAוթԦDOKެTa`=;TzM ~KTxIF6Ev HR&J)޼vW Ի.԰crצئBGBTq:,c.A Q Eh} e!"##+$$%$+$#"! 3Gmf  Q  3^b}zI&zD.moo=w!*+.)>  !$'+.1*46*9:L<=>?@@;AAAdAA@@%@?>U>=<<#;C:*97}654Y310/.,*L(k&[$r"  j  'fh^  ~N"*FDI]Ŗ_yrٶJ)Brԯ[ ȮxQ ɰ.̵ӷF-'¯ďƙ XϠpعWs fy]#C-R 9 _nu[N_"$&r())o))))**+, ./1357:=?@BCDE^F"GGHIJKSLLQMM/NNNROOP2PPO+ONMMmLKKIHGUF9DBr@ ?=<;,:86492-/E+r'j$!d emgp"Q:8S+rIo6пf0O_x(YaP#mCZtŇǕR̛rϤ(--nypd*xe,d 1 R|v no#sv *  u ; z"OSs =(@5=qt^!m#( 2Cb4] 2j6AIzK L n@8| !"#$V&')+M-P/ 1246389R;=k>? AuBCDyEWFGGGGHHG\GFF-FEDKDCB@A?"><:M976F5j3s19/#,N($!<  q.FzɝS 3cv]Hc0Q𼮽O$=6$ŔƢS^ȸ\ɓCʺ<l4ԝ4ګ(޺F1vzM6R8#{1$* MckZ !".$%_'i()B+u-/247:<>@?>i=8<:r9864N310-i+`)>'$!_a@ l,fv&]CT˫ȓ0(9dͽtD ̼=mལk,#a©þTFʒ`ͭ.4cw 8S_!F&*T.147@:;=?ADCDFoHIJL!MM_NNTOOOOOOO;9742/M-*u'b$!oc/x `UoLnx_hZ<:)xNuCв^wDAM/9䶎ָ)u/ƨS5ڊ` 9c  #&),.0246 7$8R9=::;p>o>E>=A=< ܼCڌmڠڑ^ޭS 72AoiUVigBnUco{K1]hPA)].nsyDuZ: $}9l3if2 : ' !Q?@V :"*$%&\()*+|,P-...//0111F222223?3g3333]32l21\10000^11111k1101F1y11 21g0d.',)&#b!R;H^U[<]"K`t%)0M+jV5 Kbnث՞qM~GĽWڿ],æ;aʎI 'ԸCڒ~/a ,`7GX"D^& _ J Q \ l d 8 'CT ;(YOnf9{E $~)f-012333P435A647/8G9=:::y:Y::(98664331y/-A+(&$;"g`NlL g:WpoX6SW8}e9\zyH~ \ > ?./@e?c4:zZS L y/"&ƖKvx$H/^s(۲Bﺍÿní řŖƟ{SҖXڪGߑC@(8vrzoi  SP)* 3"o$"'),h-Z. /I/-/h/~0V2469F?@@@n@????9@@oA BRBLBBAA@0@??D>=;:97531.+&"CC s6=TD{$9xrڔׁ~6Zа0o͸#̬cJow]XΕkҙӁ_T(zؖU~JkZ@ 8f$).?3699O::::::;;<<=<;!:75d423Q2111/1Q0L/.H,*(, !QOW ZK1kvu 0ڊ^o1S\Жн,v)*yzc6$@ h _ &HX4r5"^#@$$%$$#9#"! g$cjy  N  e]` x݄(ڶ xմԐԎԧ>j֨j؛]ۖ۠ ޅ9*_iBKrJ6St ^ t$ }SgO~'x|d%L 3Q vV)15"[Srg o rT*q6$PqUߤ߿BQ%u$uވF $XoTP-(o ]]&$ (_ !V#%w'),#.0?3579;=7?C@.ABsBpB#BAA7Ay@?>-><];9G86421"/,o)G&c#3  BYp $PNE RT|6prS߈ܗdrwKY ;bTPkґvC̄Y͞UxPEe1 @=3 t8@Gk ks/dٙpQf>Ӡ9*^ϭϯϗϤИхBgӥ+>fEA{|c2= 5uMT#L'Q*,2/812n34'67895;K<<=?=k=c= =<5n.NZ!1 X  A"{%Km g+ote7MQqz7-y]-- ټ֋ԟgA=ʧ`yöV%kPŹSɸ0~jQU!>@[H}Ĵ;ǫʎ̋΃Њuڣ"4TD hV` q$F'(*,.K1479M>BFHJK LKZK2K7KK LLMMMMMVMLtL&LKKJJJI8HFD-CA?=;":a8 63:1.;,=)&"$!np, U ph / |=z߀pBݟ+?L>\$veT PD@l 4 z S69"lP)qx /`mJ5 >iJ_ykAZDi42uoaO,Y2 j8X.|+ P /%ugvqAo 2 f7.{w ='#Sz ݵXi]ͅˢ }n6qXƬ6ʓ͵v9[Ԕմցتْ`Jtݣ޲Yk=>= C:3| y&RG@a<ox]ni- k(xR S LH;;lXsp1!6#%')i+`--/0235G7t89;<<<,=Q=w=N=<;::F9876 5t3o1E/-=*&z">OCB@M]7 F  >    p 8 N .jw o9 o|7)Jq "oG Do]jR\ AyMxw5$.4^7+=:ߵci@BBBBCCCDCCICB%AC?U=;g:N9b8774766N5A42/1/.Q-+)('H&$#D#"!/! ' hX2^ =!""}#$q$$V$1$$#}#B#A#)#"r""! fv+RG ' McJ]pful|uq?:lJіνuɧƜĩmUֿ:QBk7Sǵ>6޺5˼O Tyhn4EPBۉ3>7WW &6ZwT3gj5 `TS#p`by,xO= > C P>'r+S V3!"#$%y%%%%6&&''((!)])))**))))('8'&%0%~$##! ? p!#GVo\BAd BsxW<i)X7\ 8 qRtj;mF"bd݂ۀkc|Yl8ɪHz0G>KvּR껟ϻDҼdYͿ!ieIŀsˤ{ Ύ(Eе/b٘ےݞzErm%|s  X ) C [ 6lV#-i+(4K E"s#$%&?''(((')k))*>++, .4/F01&34S6~789:;;/@BiD}FGIIJJJZJ+JIIIIjI IHG GJFEuEbEEFvFFFFF FTEDCBA@?=9<:<9w7\5M31/e-*'%%!U Glt{y܍+t28ej:ԕ<՚k֙%َؗwUA܁ܚܟ܊܋ܣK4ޕ5gVc.0m * F Dj!c]+ } p ` % U@cXDK%m8   ,TFKe;ݏ?y֊7ԡ!ԛ WAίlΎ ͂TʙRɩwKdɥ~7˛~ͯ"юgpE $vހ.fp 4,k"Ww Swi"e$,&')*',/-%.E/Z0.11234 5b55554321i0t/...a.-Z,@*&"F>to ' r $y&QEH>c5 9f#6;YYgyRS < L"-~Hj>g|in i    Ohj%5vqr^!~=(O@)3LP i.RPҐђviͰL̉^an̑\&y6a%ՄQ8޾߾L.KB}0` <CiCBh !u""#$%&'9)8*++,-9."/u01A345f78e9V:t;<=>?%AtBCDE9FFvFFtED8D{CBZB BAJA@@,@P?c>={<;9^87n5320h/-&,*)&U$!`R"`  < )^MNzx,ϱΠE J=D9#ӹ7879׿ g/ϑ[Oݹl;fM f "`$M&(*,=./12p344554444414332210.e-+).(S&O$"!O;.?B R r? Vv<qcN*קv,ЏTJ9pς΁̜ͪ@ʯʅnTMWʌ)ˍ9͊ΒE~Ԣքڱۋݗx,Q?{`C  .Swnw p#D&(+F-v/S12A45D7]899{:;];;;;;q;:987Q6W54555 542a/*%  ! OS[lnu+ ]^ [gnW^'42y; Y P ) _zjqN O 2 % jS> N>D1m&xvbSO߸%ԑG,:[~Эе{/ YП ѕrҍҷpӤI4ڛ]R7/UM WNy"F0 E - ;A[-!'gT{ pJ o \!!"o""""""Y##$%')+D,Z-H..N//0_1<2Z346F7M8B9.::e;;;˭Sc#:`șTɰ.ʛˢx;:ωҴtؑvQCe LX_> s beJ!?#)%&'W)*g,-.K012J33D4x4444444<5h5555&6h667(9~:;'=O>?R?>H>p=<;::~99U8S7<65320/.->-,,+*)\(&=%#"Q!.G?# a U&n+ w = !N!$^(e+-{0B357j9x;=?M@ABCXDDEF}FFHGG+HnHHHHHEHGWGGFFFFFGFRE D@B?<975310/.+{)&#Y !x:XI ~ qS,?ݍۍsףR_ӃfG0ЪdМJΚL&ͻͶͰͮRί(ϸ:ҨӑԲ"׊ ۞IS"my6mLD;Bm@(  * r  K B  C % =jd3B~4g|V`c]fx Q : ?|u"Tk#TszO9M"30 ( X Q q.28&w25d %sGgOJ4;:՜iӾѮY-f̘YSb{tPLn̯k)ϵзӘS_DeRMCjYv.-_ b Gf[ #b&)+./1e3/5689@;<=>?@g@@@XAANBBC6CCB'BAFAA@@@@?x>=;:8 887n7652-&q ?z_bKD8ODjz<VC,JBbUFMuE}ju7H}LzL  qqyTݿb<$Z־֜uTY֖@ב@szؚn=[`pY6BMr2ned^ot t p%pn\CR\_2-4B@7m 2  4^/_v_Ou !!"c"{"j"G" "!!<""l#$$%&'()+i,-. 0111111#1|0/{//y.--C,(+})'&$"!-N A .X&*ptܺfRӅҐѯЭϩ}pͮ*Ϋ![̵EǼƞ<àshÖXIJ;ŬP.<Ԧּq<߰7z"\;a>$I  -h%5. t"$&Q(*^,.J1369o!ߣߤaebC* XQ<(c;`*vL.RvA:-LL=7*}W8AU}:~C`hU= vDGy72%Z 4t;ޢzz?7-8ۈ)x"VpQ[GiCpqd "":!#& (r)k*@++',,,.,^,,,-7..'/i//[/.$.o-,A,+w+I++*{**m)(u'C&9%C$6#*"=! 6v}($"+a   f i = + f W?6e7Wl; n 5 }Aw[W_ KS0V9rx}͖;}s<ؙ9݃&.^bH\ #V]9*)/.P./..-k--,y,[,i,,--,....<.-,+*o)(':'&&&{&,&%h%$#"B"d!6 Kn19 2 U4*5MyC b5ogbilm&okp,-"`101L ۇڞ!ۉ~ݐޛ[w}jBOUG9)39sBY59n){4 : Wv%3 "=$%&<''A((((()!)((g(' '&%$" >'& $  P&2]o`  Zб2ȯNȹ,ǯ6ƻrŕƨ7OWH̴ͧϯ}ӀwݹOQ*Yb^#4< y p  5GRX0<Koxl fAo Q v <[Wn+t`+Ec?  zC!#$z&c(0*+,-./d00D11112!2C2Q2F2&2211$10 0W/P.#-,*])'%#!m/87 3t(lQ`c˼lxäAAٽFE ֺ5)& nnTģUȞɬnԤ2|3tD" d!$'*)%+,-.f013Z467o9:;U<<<<<;N;::::::e:#:9$9K8a7z6w5,4210{/-,[+)' &$" cECa |ej;o,Wid>٭֞PӃѯ*cgJ2ьхѹJң/gԔfP }ڂ_ ܅݂'M_ H^ We?Xld1VnBKH2Jz%MKk&0 {7 "W%}'()6*n*>*))(O(('']'&}&%%%`%V%o%%%A%$Q$#""{! 9 ^A+ } XAI+Eb$*c5"P{zL35;-G W\Dj܁`*mݩݢ|.ݿ܊O۱ܚݕއ2/sP*,FDBu `ay6p=7^\%VEp` "_I6r85*^|G!XmmnM!3 p R 8: !#%U'()t+A-.{0)245^785:;#?I??>>3>a=SRԼ*ԩ<ӕjfӥ;+J֖ ٍ ޱG8XA1v"7ZQy,# W_ m _ (hyX^(Y G } b _  d89dOw_j "%')L+T,*--J..$//01S27344%5}55555L554u4$4343333>3}2b1?0.- +D)'$&a$"!a T+ f }B>i /\z'nT>sWܙ؈`]؛؜g۲YtV_v5jpiG!mSoDa@; ],i[_jޯܺڔ؞,Kё4 fʤ'ɤP|`ǚȉʟ@Ηϓӆ#*٣mP tkr^ d" !%(+_./ 00(040200A1`2k3R4$55$65*5P4321m0/)/T.,*(%0"Q`A7 . 6|$\S3-=oBE   $ 8 S e %qzU  )  =  $ ^ D  v ) c@" c T=-  ~p^ Z,]|wyDRJ0;<=alx9m -@mPi^J7, i 83:"4 c"$%&(()j))S***7+++U+*S*)('&5&v%c$B#"" d*d 9 <DkHߓݷiӼmM͝{͔Eyδ&Uφ F{G=Ԟul^ٽٳtfW,4>=.=<";X50 e'o8H  ~X.>3=! )GvS,ޯ [ֱutDtӰXׯRڍ'LLjtrC>@1`h/ :y]I"0@n1#oEzpG.V~$P#q[qN B],  jzV[k,(!]"#c%&'(){***+ +***+q++++,,d+~*)(\'%r$F#!B `; ne)-VPOtߵ۱T&ڛ)>Q/xQ܉;6A"xB`F  <fx?'R> Y V  /[dj].4|Y+120p.V,q*)(4%"e\ "+j/E^T~[߆1 ԉtп KHiڞ"oy R G BVfhxC%'O0HQ61{g|%d W H#LޅF׶~0d%dù„GԿP!'EɿIk/4N>==Q= =<<<-;:87W64s3U241/O.-+B*l(&$" rc> @  ) j ?{hP-Jo*; q#ErOt\P^Hk+ a??(@D@@}?>>,=<:9$9;87543d20Q/.q,*/)'>&1$"pI h\ y-ҙХ#nk$DPpdL o k E /L@|xpO%gv hL: v5b6kt\o9 4 f"f$%f'(q))L* ++,|-H.//S/.-Z,O*'b%F#G!/A|G_ J %z!S.Xlq&2K(0Ø`93X̐8^7پ 8r9^1 9 f ;2 T!""F#####$ $##y"!L ~?w+[Os9   q5DGe W  @ F U@ C ~ !!!+"S"G"&"""#"?"\""i#K$&%&'J(y)*+^,---l......--P,c+@*3)`(o'&0$m" Qp, 4uyR][B?`tڄ`դ.TLo20KZN%čFQɕʴ7dW%'BC^ݱ߮^UB!   %  Ju2`1G?3;~K >s t G   J y !TMtDo##|;*\@`6o6D?&~ s X!#>&(+(-.C01E3x456)899b::4;&;;C;;<#<&<<;s:87543^3m3T3;2(0,-(C"k lY3sFG]IߦTېڋ٠_. '7hץN{"ڔݾR6b88M \ Ug `;_- ! Q c:oX/] }5UlF\KIۘ׶J5ƽj,xĦ(¡:<8VDWɼ3yε1ՃׄLI,ceP _:f7 !z!!!]!a!{!W! l sdbTpr } (qi1I:!!'{Yn 4 :q "$a&')*:+,-./0l11Y2222222}2I221p11y0/,/.-O-,o,,w+*i*)|('%-$"tR " -'[?{!=WL]rޒVthڅ٫m۹ۓۆ۬ۅ Rb+TW,  ^ I  ^  @Y"x\kߗTD&"W5jHZ2v(wɒ3̩T">nѕ L!ۈlfi  / "%'i*,/02u446y789:N;;<<3======<;_:87p6P5l4321_0/-+)('&{%$!  -dt~&.ޝI׵3ԝ?>Ѐ΀̬̙̄ ͌N>K^AEԆ~=ډ4߾n(s @wz G"<'*C.0u2@33%4B4!44:444445543>3210/.-l,*)x'%#"!o 9i i=T2ot|=IrY~`N^j]VsUE}t# 8   o  4 e C  K ^ ' ZDrW{I>wcQ@R~lv;JP۾ښ9ێU5D\ޢ߿ߟ1<0ފ߼vBr |/2A9nYsQ$V* uS ) * d +=5Qw $!'!!! M w]o9LLb :<lR/wjg6'Q&5L8`0 CI,S1.4}j( <bgk@1 /    d E@$ 9!ORt]50gr).ۼuo׶է`H"6̟m;)KǏĶa)!EÉYŤO& KM̜бю9&RKߎf=N7;QN6 C __&"$&(*N,,;---L-,,,s,8,+++?*?)E(b'&&y%%$#""E\# 9n : W # r l3.aB/ !2#$%1'( ) *++A,,X--.0.<.N.$.-J-,,+p+,++**)((&$ #X!]H#j%Q 8_y ,+?ڻTf~խEԮ^IҫnM!&EDM~<?X l Hai ,^Yrn f& SV|p8H WV:`}u''kR6&DQ[7'eXnNEW9mFl$8_SQ,|X%&c`*ZgA"{mxq/rpg{"oi x X!~"a###S#"!!!!!"#"! !Sw=b{mX\d{([p ZIp,T6"Ku9NG+7nhQ/"etD 6|]5 :sP6=yx qX$"w@Skt;O4l]{ zO71 (0SYG$Xk $]kzf` ] j\ +"#$}%%+&%7%$"! > < m!"#E%y&'|()*U+++,`,Q,+*))('%%N$J#!d Dfpm h (,3Jz )y-!niW*W}{`ue!c)51/////-/.4.-]--,,,,,,,M,++6*@)B(m'&%$#"!. ]55="B{ <#r69: :U%вϫπ eΝ1vOȁȯVə@ʪ ^e̔aaP ԔՋִژ{R JzMH_jV-uQ 1dX]v!$o&v(+*+-R/u01234~5M6 77 8r88@9999:::99>9988x8U8 87 7Q6G532g1C0/.?-,+*)('&$ #!\0Wg  S28+5 d(Ol}QdyܚۺڰSי^rӍCҍosҊҩ pqԤv8ׄ_> QoZ\2i5Rr. TH1i u0:Er+y`{@~n  }S Mj$~)j3fM}b**:y sdP Y!DQݖhմtK[{ͳ0̉IͳuN зж&Ӕ/"7>ߌ/P,%*rYA  ! < XN 2yUDXiJ =!! bZC'v5> i h #3f\_!#$%&''''c'&>&o%$$$$#q#X##"!,!r o" 43C\p4  d H:iFFPy6.pRMi/m} H A@lk2 c,+ " W ;G@SJ8P EJѯмϰΐ͑̽aZƯƚƄpZMC5!!EƂ*yɐZAA9]ӝԽ7W۬SelNr^iH*tEv H[`W 2_Wb @ p ]!!T""#y####$U$$$#%%%&\&&&&&&&&&&&&' '"'''&&r&7&%%-%$@$#"^"!h! a / _)v n7x[PU ^c/ 0 $ I #P>Cv}GGq]tc^k~bs\qB eޱ"ٟةEԁ&uӔNBл8iq[)ˤ;Aʗ˞[͒΄Ϣ2Ҵk՘۔4Ox k Z= !}#$%&'()*+,-./W00000g0//C.--c,++p*^)'&#!:# H/fBh70z2xtk?^y h: 9!F%}'()!***+,..U/A01~11u1,11000 1/110/U/.-[,+)(&%V#!A K v60 ߸ܽ25kWѪkCO~ѱx%Tԇ)֘zCL!HQIb'5^D5Dn  x g 9rEuR  ve;S%"B. ߖݫܤ'Oي=rز1`] FA 8o#e{v[;I . h B/r>UfXR7**  Y  !mrX( # @Tts Q8>:P&i  eM+!$%')+4,-Q/123[56|77 8*8&87F76i65&5s43p32,21810/z.J-+)_'$" 2l }^{1K>Z?\X\~Q_raW NH _Y+X޺ ݂ܞYۅ 8<=ԙ{bz22B״Gn60yP%Yi@TR35Ea<~Gy]YC7e2 Z R _ Q NV8g=^Zpf) !>#U$p%&*(]){*+,-a."/ 001X233744444444u4R44n3210/C.X-,T,+*"*(&*$! 4( P&ߝٝ\z- ˏʀȵȜȧȖ# fbΚvg@)A_o0k-;m/ig5w% D / V = t r ,  Y  F4q7.  gL[x:fZ1/{@(sd 3 l>'&@!=p~?AJG_SaE'z:!2kh| eN݂I (@{~1߉T0SUhw@ox8`_obh' ) qy tg5 ]!!k""e##5$$$%%%%$$$$$$G$###d"!! jSg"@JD}U::o p ? a90"lzPc&>e SdabtrS x,aHqڶhҞ ϣ͎̎˕ʨuȲǁLJǢǕV19bǼtȰ9^5;,Ljg؉ܰ޲C@s~ !*X>B!c#5%&s([*,}-./O000000000P1}1b10z0/.-L+)(F&:$Z" 5c9  { v $ B vn".JXK&9@l(Yޔ[ݶݱLar-x.YpVL(mu: ]~]28|3 !2""#$%&h''u(())(((F('a'&n&&%0%$$^$##S#"^"!a! 5N I =l#6]@RPcsXh45߸dPܔFp} Goҽ&ϸͭ9O>ˢ˄ˍ˪z.mͺ$vOzNiӖԋՒג~J~" (uoQ c#ve& "#$%&'D(()J**"+++,*,0,@,E,:, ,++%+*)W)(f(''?'&%$W#!B'%1* F G > &1p72c0$wX2n s c  U>?IognGi!(5 , LZ614pNSJ!Wޱ۪|"=ԋe$`$(jl&ϭGтӏ/،7Y[;^{XQ8 } *J M/!"$$%&f'',(l(i(c(e((((:)))C*******+T++4,,k-->...m.-G-,+ +>*q)(E(Z'&$"~ vM~ ?&= 4 =YzB+%$<$##"!" 7/yi . ? - $9O%3Z>'jߕݝۯף]LϺwb̥ejU>%@}ɧg/˧ˆ̶>ѽӶrܾWq.Zb +0)^!rd : $ { (c /sd7M\:JRFW12a<9n B q 'D*N !#n$%}&4' (()2**+B,,/--->.`.x....U..-a-,,+*9*`)( ({'w&T%K$*#!2 pa&;6 F2M߲U\iԮAґ"оτ{ϯZД-Ԭ֋q)K8oO ޻ݵo߫U!qs1\qD'AfbSve(vG}V{ = ?cArb*o !"$$%U&C'Y(l)t*o+q,9--n-,r,+ +1*))(+('&+& %#"V!;WGa0  < T Kq7ON ߾݁j٨:/}҂\ӮԀ=xK ZTZHel5?E]  {OTg)DLkT=HVKl3}   q~ LrN  4!!""# #"""W""!!!!!v!2! , U!v{ FG% I ?<Wh>D  ] u [  N 3PZP<J]|JEn6m+ =J+[E8Ԡ'Ә қHuП>aͻ͆]Qf͡CΛrnto$Ըէدّڕێ9ݿg7ߑMW[R^.thuHl5{$P & pc;W !A$:')8+,-`.....[//j0211[222k21X1u0/.--D,+K++********f+%,,-p./n/Q/.\-!,*)\(']' 'o&%~$"sOLb R R'VGW>?&Ix@4\j*l QtBZ*m_QY9TMXvr\\krZLW?ao||d+߿B܇H؜?~r̵̴̡̯̐̈X9:s̹̀#oϧuAҶ=]ض7ےlG50nAMG8! 7n$v N"$%&E()+",9-^.X/00l122253333(4p44435~55556 66666555 54A43-32Q21[10/p.,q*R(o&z$Z"k m6Ws 0 =K][Y&~Rܞ)٩PSUӯӺ-|Eյ$vְָּ֦֟ֆm^H72@If֠ ׂط؍Y ۷|7-ޫ?Bh-^)k_WP %jeem jixW72K /!j!!)""""$#[#z#}####i#Q#0##""!! @ YpC@L|> W m  =w{Nl Et+?ATY n 2q`p)sm|YFݍz#ҝѱ!ҋҿҏ3ҪѦ^6 0v'ѭӺԝՅhؘ ًڐ*ܛCގu5 Y dSKK4>-B`Y 8 H<B13}l,) f}G07Jt   7DS[m|6'8U)pSc' !3!+!#!! !!!#!"!! } o,Q&sJ i UQ+FtkXlEܗ"G_ӽѧ`Lj<2&=Vˀ˚˨˩ˠ˒ˊuyˎu ͤkGdёҙӅԢH۰W+xno(* INy4xuU*l)c:eJuP \(v?D-k !k":#$$%4&&H'''''w' 'l&%$u$#x#""{""! Z s7&' $Zwbiz^Z * | ><\ZI94-<|A%zj9ڵ(۵SC}ݓݔv|ݏ*ޜ&߿G6lL*d7|1[)8]eD Eq1N"`+QUF E d  C 0oG cZX=x$Nv?6J|b2""3?]g;uqfn/ } w w @ X  4 ?:r y$cQB/6LsDqhSrڣT؇F׼׍shrrׂױOؓhdr&܌rރߔ Dc/ $9'2 r k[o ="#5%_&'!)o*+,D./e0'1123R33333333333k3U3>3 322!2W1 0l.,t*'n%[#!y H}[.Q& ` 'X%RQ}~S$T/ $#+~.]KNsU"}.G!=D=40sP6y. ) cTxv726b 2Ryl&w=,8" u,F6\9^W{Z)ID- c r vvVax9}=8bzyy@3*2F޴C܋=ۏsل(Iصב#պ1}ַOyד f؞wڨJ(<5q/<6)wF0}q+}F 82g{A)  s :Pzy}/ !">##$a% &&'''5(r((()D)))7**++~,J-..6/+00t11121110>0/F/..=.--,++)( ()'& %7$p#p"G!- /oR@ L18 IM~\j57NL+Kb_Da|߄wWeۗYp ב?r&Ԙ3` ӻ҅`e҈ Pӛ)Nvԩ5Հj\v فٖQܻܥݳ޺ߑ[_%(EU&`,D , &z..mys[;>hlLBQhrk(eM9cD"w) #c {y*y@E !$""U##T$$$=%~%%%&O&&&^&&%!%$"!w $XUN\ u1$ h "FrSoan64`RC"8ܓ/׿jӻw7,;Cn#oмѭ*v*****^*)i)(M(''&v& &%$#" ^eIN  H`8+ W&?$mߧ]#׌jՏN҅aE r0G  Je' j ~? 3 f!N"##v$$$#" `B">} M Y,oW/ rORz}( k #*pY*HUV $ )O<Us}PR {81݄0z:&إAزVՍa^՟ ֓רTt.fݸނD'zP*\w"Ufzs3*N6t Z  z ; zRC[QrB" cwox[ !!"#%&&'((((() )((( (&v%#!/a^" P M Z.[t1_ ?kYfL--g\ F@t >v/Z8mAl%4XP t]-{(0 g1Ict~M'?FQ)G.deR\]Jh# f'd=t@%m@7A#hVok uQ!"#'%&&o'6())*g+5,,Z--.A.v...*/n///////k/A/!/.G.- --,*)i(V'"&$#"! r W U oZ}2zk73^PT{ݩ۔sfdڐE{$]C4-mS'q,U/ |s7B@LF!mh?{y\)N 8 ("#%G&.''(u)*w+B,,-4...../ // / /.H.--F,]+Y*)(L({'&'&:%#!Bgn  Wj bND8% /r1Jb/ܑR)!WܕPnzV6IݲbK߁ݠہסֹտd0P9QKOQ"=)y+9c {_qf\qK-I!w"u#A$#%%&@'&(;);*(++,h----,,z+*?*))')(Y('F'&%X%$#" "$!|.=pOJ <z.`8u޳ ݢKۍmJ <^ێq݂޿ޒ[ tez|$Gxmfl't'r C`o5gq4d *W  }  b 4 1 ^ c ~  1  ? Biz}0E*LCB2:iL;&u !   sS3q*!$#$%%%h%a%u%%&& '4''&-&%$V$##|#J#$#""!@!y {"7  1s ] 3)Aj._u{Fޖܖ۶٬rSW؆Bٝ%`ژڲ4ۊoݾ_ߵ~a]ajwTvK{uXtU I Bn!h$&g()'* *)))r('&&Z&[&&&r''(''R'&%l$Q#P"2!6 ^|g^f g + Z w I\KoN00O]d!F!\;3/y}ARIS`wz4ޣ<ܤKڎ~ړڧګIWܙݔ}; 5+g/Rx%?S ; q y h oy > : ! j # m U`?c%   f%GqeYg#$*e7Ibfm..-EO>NP:{T;6^w3 C SZQ' ! #$$Z%%&+''(((2)V)h))))M) )(k('!'x&&}%$i$#V#f"E! #9 OkyJLDr&zz _^E}=. U H!p!f!/! @  . + hrNewe#cB0`+fm * W b k <|ggF%q>W _W+ކ&v*c׫֗\NhՓ Lֈֻ[ל؄M٤ڞ{ ܚS*M@%]FR+I h~cyQf,#.bM2Jc   7 ~ GflW-);%]39=)O ] R 6(MP(bo/_10&rl@&(+ %z!4 A(^%3 ?n/t !"$$%^&&X'['7''&x&D&F&v&&&G&%)%$"G!E L (&` ^P,GnIFV\A- j|N= g}:x,jX`hi_Xaud:G`/:tD( E  _mTR{3h =0} T`@:8 & ] a2yF]9?0Rl::;bٸnס;՘vyrՈզ2ֆd>؇aܰ07d XF{#&\7+V")?Jj E3: h!""##$a% &''()C**++Y,,,-"- -,,,h,*,++++*C*)+)(('&!&R%$#F"! 4wp= 5 k 1`c$]=xd:LV=w>]ߨߋlS\ޙ.ݷaܰW|*ٙqQGAZـٰ0a~ڜZ۵ܰPk߾qYcMB\dg>j xeqj FCc r o Cgv6+'  %-k u1yY\F63wsS 7`K=m   Sp ] dt_8}nVsݙ݆݌ݝݦݴݴݸݙ݆kq݁ݢx Hߟ@%:o;?d\"xUKqwd/g2d! x 9 }XWm Xz?*9;;`( !+#S$-%%W&&&&'?'b'm's'c' '&%p%$y$$##5#"!K!v 9mJoU t#X#+4CY7JlHjyb 2DXN!93$^t m(n)6VZoj-L=7Z|5;Loif[Y){.E]8  W _o3pUC`_ vj'o6 %d'i6W+\`VsboGoB: V-]O<(Tp1_'yI eJNc ut^sO<;A+nD 1[R({ a  m R;aN\=s h W s H s1c!2p 8v  6  a 'r !RgTU,lK s 109]_M UH:ۿA#174; ٠}xٝ a*t۶}mްxTJI+?5PJLV 3Z_  R ^iiS+w@MGxFG_+l7Sja6m2*1,  % }  q2&DL\pm.xW`<+B,.yFZ8Sb2{3}o)O%D\u*^D\rp{sE'cb/WG;F     !Agi-dn|]7 !!!W"" ##q$/%&&'(^))J******m*/*))_))(F(''&?&%$($5#K"!  Jy gFH) p R l}!X"[L0+abc6"hM<Vt5\W-kݡ$dر׫VՉ^LMhի.uآ<ڸ,lܛ]*߰'(YHxk2d sz?fI !" $+%&&k''"(8(<(<(3((('''L'&a&%,%n$#""&"!! "0"M"R"9"!E!u  P{ot Y  % 4 zs.&"%&H_qx*EBx_}-ߎ&&ZMBj'/UD>naEv9 "jc/av8 /  } O { mM{PdZtE(QV]1HH  #   K#>e{^|f9;G_tq3^<*U;&Y(_7S^~R#+gP޼B܀^pܓܤܯܦܣ}V6R܇!ݙ5JߺB?%'7XR &{u>/:5') t! 5iq4 \ *kralaW RlP<kwY5R6 o x U %LY=VT1~ 0}|tncP9 !/:Nf.N8 P0?L>- + r  n ] ui}\MS~V 5 / E  " _ | _ K 7 @ kFXa"f Wީ݄܎۞ڼhש{\@ֺׁ֮֩yzڡwF(,k~s)QjBE5z =#9sk !:!M!s!! "Q""""""T""!!|!A!! f d)??XgML""660P Ms}i{ |Q-N$[S6ZyC7P\ ssefpuwZG)`e|0!4ZNp p Xa> `!n"H#&$$%7&&=''"(g(((((_(('''C' '&0&C%7$8#9"9!m :!l $R~ \+*70(m;KީYۮEy2 <ؓDٳN۶[?݈ߎj4UHE#n?>ums <d1 9 -  m f w d: LN|.A_RNDyq2ktvm9 C ` S 9 S(D Y 3 j2UJ)^ylN'X  8 y NY a_[1 _FAVn}T)e%9[XeMKSt.pQ?DeB``tFR  R # ( C M 9  D [ $ - c   K Jj:!\6K D>|)ugT t>sF"&Fj U2gL*|hm8vg\?`b>!Ldl_^YRW#_v@40h2: x a P W } ^+XDQ_ l J!!!>""" #<#p###$ $1$D$=$$##^#"L"! $ oMx B  ORr+g.;5@lL_yES]rK%G< X gJK6<? !!f"":###=$$$$$$$$9$#"c"!![ 1W-KOJ 0gD$j[DpLHfߪޞݣ[R۔ܹܕ݇s7"QA<w;L1|b)p)U |I Nl my4jrm&i=NJ)lq/x2=D)\ + /  ; ,mr "#4$H$#w###5###-$|$$$($#"K"!A! Y b~B(B \W#[1zeeSf"Eiy"UxMWMap!*l# . o | U J 5} yXBnOZ.Fiiq!ޗzk ۪Nٜi1؞؁cilؚS٤+\ګ=ۓܸ_ްߋK)JE5]AZ~ f K!oM &mAT ."H#$$x%$&&&'2'-'&&&%(%$#2#""Y! kA(7cn  g ` g 8`y[V|)~!y?DzImD2Em_G *r_iao;x3W^>`b3$ p q&[>"N3Qys@;_D y44_ V ]xw0!bTQ[Gp'e\ %~ THw } K X@gKH~v9@a,a@3] * ] s _ 3   %w_?n$J3 pg@SiWPx&+ $|c$EZ'WH5G6PCOqD$=TfhZWoUUUP)L?gtB_GRO#x-, v  UKPy~x b!""#u$$c%%&*&<&K&t&&&&&&&%#%E$S#B".!V ->{tp.  g5J])g'sj( Q v3w8ZasZa)-9] I7_pZt9;Eo$W .|GQviW :uZ>nCvw]]\ibef~.P!-hHT+FqzH= ,  C%WfOY/ke7  t&5LB)w:&sI :eC|3]t~zl]\UMF0{<WW>W y  T Q k i4n rT7#h4jT9eO//`{A X 7N,:WISOn@fppN Fcn5S$\GC # $"Gaq&yr@w{P(@x K u`?2y%H:+*.Pp'S*BOaj'iO3 m l Cr%nc!x=2n/Oa*]!JhB !;!_!!!!"("6"-""!j!,! 7 )j^'u| H_ /;>"VaUf Ff5@V `<"/K^ J8 $XxMP߀ߘSZ\/!TH [#bP,kB7*l4 X bOq}oTf`'/w1 `Q? E{HR`~/Zd5OAt H ) ~ Li#+3.csC;z=D-r @x ] o  _ (9&qG FxW, Rd](($/?*(^DV6߻?Y"iݴ<ޢp,Hawn#D'L{WJC v0!^ z ^e`o5k1yH/ (+Q 9R_L;X 9 j D Xg7=Pg JvrbuO]4[?oxU![:hN~-xUc y`M;s*zk i T\#,Jt g q X c Yr K_)2AbU 6Rmur+DK(!i3{6  # E S LN.pb sLgz8A66. ueQ)&]j p#[$rkMQ+}Db7c@ 0JsFRs- G"5N!Hp ] ޺އflޅ޴ގU0~;F- -9YoF koUm) r x 4] .//,)"*kzi`_%A[^<*ert p p t L  5O dCf1sW/(~X1nX[|K],ipJcjxQ6h{,i3bn7#p5Wj}]l?k4FM[i{zpO1c${C<|"g pS m C e : 1:M7}maEAluugTU#}1'6*!ip1 p Z'^/W ",:)~MB!" =fu zVUއ? 3aޞT߰X_I<Eo&~c1 _w^i]8 *<  ' v b F9V*u Y  s % F aI1cMq/i<F%ax&N##4-:`mnqh}>9'-H52 %&P wj6.7/ U S  9 2 0 s  9.gf/FGhjQ~gH>5GeL"2a'e!DyTU$yDEpAu5r$ S t  F y , f     p  [ H X  z R  5 m  } { \  jo`1{e1=8U#_1u+}G3,/,( R LogB]x#V;*?lE7Glr JHKMN9?:-D#l4U]YS1R, k       ( 0 B a  M  w r =TB}(Q/!009+`x#u^#.6Xn8 Z mON3s@SF-x' ho`?R3-b2%#;V[,pjf,(Eo2AV%Hb]VMJXu#KP/pfXzREzSX BZ6{r@M;m]J:I*liO}VW .6O| j9&ji0}44xU2 `!|ot u /  X ! ^  , V *bI:w Yk  ( H  R V(k#/5N8ao*7Jq jgK Kh5 cCEqA{O+%UwZ%xe Ai+SDj   qT)\J^ ;P>L~z| }lfV6'+ **JqZSFC3&C}3'/ 6r)nH .}Z}\$ KTAx= n< +1a  ( (   76g A{ ~| Y2r-Xr ]5*4) %84J2>>) tQ__F8>IhjnaMONze(k9s3 (JpKM^C@=)t-?~L`,}OmR-sXO{` [kTC & M  }-M e7 4!\2J(vD M l p^U|JCnBxsjwyFOKd& 1_G-<P3ni%Tmu1Y(d:Wp]t71O: n B G  {*]z28" ^wnNUrg5]lZIPd~mJz~ 4psV\>oxxir|MIm26(6=i/#^(OafEO< y < N ;uXI;l=V n6 5leZ~ d:P=Q  a:uR3QQCca0|0;U-2;J]W:m> Iw0u>"n=wX-7eULbuQRT'.3Y\MofwUbkR>x#!&(7HVz"j2Jj PrI  f z &hnrZKI/[Agh"8t.K|hc^dh|9m!a?.jP*L ahLIfmtdu\ Pt@O E ) M h  . M ` q S  d o "Q"CQL]g R +--?}; `I% .E BX >udhzuMG /I3AbP; W F   $IeW"n/7Wo4Tr~W%v"PhZ/?=  ^ != #~a^-,KU`&0S6], {?b7+-+G}v?Hd&z +o (h{;l~w.x%%WoIJY / s -ntT%ll7vd9DI-{S|RG< '    $Tz0( ybNX\QWeoM#GDx PK<z@9lwo> CI^GR}0a}tpps!Is%Q};t4]$Fg+x/e1} { w  4 M S E 2    y b A  S F _$X;O5t#eis_QKIH>C:<:AEIT`rptohCr I{ sHR_=QeaDYwvR"d:$Jp"ZK)e:Rq?5BOLB|G-  G : n L 4nviN? R < {  #  =gE-%+*(,3=?Ei%zO'   q / q ?l~?Dg _ 9  N YRT)i_Y X-f"CBEx|_:#0KZYD- bd$jiNIlk)@;Wo ~ =Q/ lT*Nq8$^ R + k&"p6a0@/F\R-Z U2n% / _ |     g  | QxXd4Mx\P~+lV9P]"v: &J$S}1YhdhV2.AW=a 9 d Z .  3 E W z  0 L \ o s o h k ~   2 F ^ v # S e|6{#t X4x:9o?/o4  u  0Dm=z2\I 8aaociAZ{9:{^.a7%wl*gK pfmx~pP|gG8"V@F[={:" E 6 *'w H7 V  > a _ N KzFL8zZ Nl[*EzmtyN} 0?93}~lZK:-$3[JyptV#zB!b y)l5 k L 3 Ozs)5DMqnFBy  z  = `  BMp&w`w^|?w(."Sp P N.#4GOe{|gE/ kfQHy`Avo`mB4n j IdCHm~_>~}n F4 p m q , EW^>>qK5)HX| GE(=%m pS4:X"uF@1!HQZUvUYzpf J#>Uo. u A ?4'0Y`bND0|GX='. . - ! y&KTqzZ1  9KGe i|$}P,/`M1Yy;fUo~7u2Zmr_/O)%Ba!Lz:l%IL&gT]<Fx|[ 7 ! W T*x5Q<.y^x/Zv%J ?1N K@R(Mc!(mdHS A7uO/z"vt5P$gedV H $ _ | m ; g n S$o)e?t@tNSroBp\LGR`}pOs :[x0s`.BS ;*CDZ=Z\T=)r5k&:k+r?6 y  m l0S;}O}~P:$:]z^t zK)bQ2Vob$`/oIdL~>m7z8ZrorZW6l'vB $KgQXiT.I>Ee<h4Q sJJDC !!/pH{]i![)0)j.Nr*X] m7 c$Jd]2 <}1^;N-"kz|CDn|K9:C>(  &  u 8,`9j#XSrI[!>Snu!~-i6mVFeo A 0 > Q!m&`:(vjF3$D| 8~pO kE5.*;Qz6qZ A{A'Y'Li5J%JR>@=teQMZ%F   C q  - 4 7 . (    ' 1 E Z q z v f R & } # O\}On AT hiDE qCOPOH&l*Xk)gL0%-@MhSPl`z:bPC}oPWs` S . 3/~R?>Kj#gO hTD M ,  | u .W--Ff~ <^NW o5|' xof 1^8I#jeh4flZmz]<-Qu2Tva(k8(-Dn5q MX@'/ 3 Z r  M   exi1PkmiiafRH+K I i Z d 6 g r M  + > N Oy LYa8|?c~m!}?Y ? )U 6[Kz<3wYm8fUm .R1hwg&ZiGRw*]F:Q`Pq@(%8GR_bh`c[TG6)~ E<m  * / 5 = O k | C 5Va%=az <~/[TFz{5^-S# 7td]RTbRa(V6Shi 0 aFkM(+OhypU2i7-@ ~o  z lxj\\])Ws1y8 k+%@Sm5'\?SmtC'" cIz>5[     l.Dbsm z` 1i~SNSI>K|:d4J:D~%~9x|;O0 E&R & G U V TD8NSVB!3jA ^v|U  _  4*eZ33 DJEj \KYJ6+3=C9"[3?qs:'6EUdnlx H3n!j+lB)s5f$r##M}.q G Z#3]H g+Dhs * U j x xUCE$h;u5p*o>8*<k M ?~y3:;qd`n4m?yI^.s7sq9yx. w \ D (j=f  Js  , s { R Q ~  X  lGsge^Q1w/n QzP"lnSC%c{ko  FzaE@Y4On Y0!!! !>e ,NvDB q#;Y;rG*j `  _ @ H)}00X7  vL~; >  !  j QuOW)By.|`LcFNGg;xcWG9/"!2LVovqkz[P ?=i&IUv+ETP[bv / P x p 3 ! .d>9{$\)^`wFY-} 7d{mI&FQI:;%=#G6R]* n  p J i i S 9    & G l y F  1  & F t ' f 7 e P jlBuAqd'.FL*j7P5F\&:R|S9|ZvKI[b`1Sq\jxi+@v A'n-jZgoU"`C Q u z y  e R d C F P tH/t&$a2[ ew, \"@:7.+ 'Eesw I|9_ 2 A  w Y i k Ibt_Q:,,%.5K\q{R    " g j . N;a[e&fi:JD za27jM/ V J0)>^!{//}+DX7oaXTZcgxO!@\]uf:+>Os)Y|> W t  xUs!= S    ( R ZB2Jb"P ] tZg ma7>a ,a%ot?R Es P 0 + G ^@X#l!N  R`*@ o  W 1e-h<}h#;,=Rto:_R6V<0L~0/!xcoyp*UYa_Z=];j_A9Y_3)s v^bI)  }  >L;`rQ, t- % N o  } 1 M+$F 8y F[Au!~C ~[J:4B^1b!g3;jkW ]z_<^%KO$lUU 1]N e 4 ~ p F  8 BR P  L y y [ 8   : =8ZKWI+k*t8%0Fl_1+9-Nop[WUiG1g.d+6>b%._#Ph + S r  3;sJ=C dkWGIOc}U L u  + f haJO9,LL?5,\.s\Xj-FK\\e`cU< F0x'Z>`/ 2[UN Q;u\WF&^K4HTy;I&lvPBo"pj`_SL/%GI$ 7l=P+ N cM Tw|mlegnu}`.vH$ 0 1 V ..Dvo.?>  k`pnANKiTILe"g _4`~;G)zROF=uQW lg|J x  1 * 4 < `  X  @ b } a E $ t / O  m  h  K3Ha<Xl1pB u2JMp&z*tBM=FOAAmb ~\.,IuP-VGoq.| t/4X79MK@=d}}j[= A U 7 o P O:1| DB[_Q=u<B.q#M^ b &  ] ?a/~;{/_F!<-B lx85M20hI{M.xvypT3]|{wvxvuvuwmaPGC8*3Cs_Trp&WkOxG{m3S\p b q 8 *;>9jc\o\g?*HkwoGkB1:30-%!kQ7|o,u9 'bg@>b_.P W I_0[2X Gu-ut] } 3     ' / = M P A  p  f  X 6FWKhoDFVi#_>>! ';M: w#HU 6Wh8riG$S}(Mjo^I@1+%$"" }'=Xx!CyA tAsf[SH90yU,sk[ULFB=97;ETh 4GZ_fu5hG|]62EMp-<g# | b ,0 Wh!m ?  N   C~ ,[o0h![]]Nr)MtZA2*;WjGt/AYx%hRDfX>W+r,Qz)%U{1e8Snuc0 ^/^ 6 p ; " H c s  = a      n R & a >  U  V *   ! / J g  j F  Ha#<Pm'8fJ+{ r@Sy}h?ju=y"=R>>CYkU0fJ;# rA3=h|eK?Lde!dR<@haR } i Y f C J?|0b{V,bk@Z4Mj K 4 Z  ]A\mPC{FNPpmF _&vW;yU4qN,'9J[gihejjkyBxkeRb*=%zQ;H# a&Q/dAma2  Du=nUm Jx0Y  & 3 , '   bA& SBc=h7z$f@.{4m6 m]QLSZ_f]YB( -iCq>(<NT`j~4Nbfmllqr{9T-i$Mz G e ~ ~ l ?  O}oY<'t;V'R+d(S&l6Sz%GQAC[Zq{C9Ynr 3y"wuv{m\G@Po#|-~[a:tN6dul\-   :+eXp[8$ }Bk/O$ + e ` ~ ](M= ^##E` KhDnKV- 'Ddx;wD_aI ~l>ZuO!vN5yAay/h8QhlkeS>& oT8,'*;Mam{tiI&kF+pU' _,2ZC'\%fN@zQ/t)h/x5F^&_5o]MFDDPbw-[VR|HWTpOo* %xS 7 X - t L +  \ { T 65\){PPQ!;<)\#H(! 6Mr#h?4}8 #1-,+}Bna lW,]=f4?5 t  1 R a   k / c 3 ?&B5ZA:7a2c!wC ^9d]q[E/& e #9Qbo}uRNo@  ~EaD5 iV;Nm8 u_E=)2D[y\\}O& nS5!rSLQv - C _ ^ h ` e R J = -  >M4?Bp{K;c: ~^M985:EZpF/r+s'3EVizeM,sL. l(^(c;Rm)oM7yG?r?}S"oDt_XI6! kVC7!|DEh Q$~oY7}E/k2` 6K`ijgg]YRMK=,LIlF%  *Pn7c'N[ HK,u#oT^`hK T M /  v 0u_'_yO(G X + k 8 D h  x ) -"Rt$5/ )*A74`A:u)\A ;b3_utV|{C3Qj7@F'+ g .  C s u J $ o =  A +f\Fz(&+ zyUT2eUaudM)HsR<.  /EaB{K_Zs+L1ywgp>];j   F 8 r r F{pHI g $ 1   1Q^3=TZZ\+L8[  S k hyZ+fkZD|%&104/+"b_l*{.!7;%b \,U/=zcVE>3&  4Rx&Fq=mn FT/TCZDx*x{9~ S 1 D Q e k z { x Y 1 M<zq]M7"+Kiuzuxv}}MGQ6Ay)!3268Y-RDfQ7&(:Vj%SCSWg=wAvF']! (1Ld #8\y0jBBz3* f & [  % D M _ Y R L = &  I  > Cv<G]8 f l_ MPWg<1U "Akk`8@ 1i)dRW s $ + P  L x l F $ x = P @ N J Y N_y?Y(`&^~<)?Tegmo~3\_ I\N .>FUk2 i!Fa.(. c R w*C\# 'awaQZd\<z^0eOE+\,Wf0d} TuMw?wkb\ZZanvzwJG|Q!"56#`F1^}+> ~  ; s  J  8 Q  J 5_/iOFd32noq]Vb6g4,Wz'TIgmU<p1v1[ f]^by5N@ [; oP.|wuz{,P{!^`Po9C{IlyT&/]h-|LmS3%.X$Ozu\7"@uU K3ZT.eZh&}VG}VTJ [ 6 p   ( 4 B S j ' P }  8 r #Djb. J ]  [ ^  n)&X`;~)x) ^\?l+>qXM_q (Jx/aRFi/P ~  k>]$tf0Wo +10652k2|4~31<3PO5[ -SzC.Zjwop^^ WDmA N  2 [  B \   # *   y E  V ? F3;Zll] s+:.Uv u5ut3zfUC=0/&" '/PS\Q6p)k51E&t f ;  r  4 2  ~ w i ] F 4   s B ~ O ~ Q ( vCs3F >cpiS|p]K- v\Aq vm,R"v\:"l8wpk zZ;IHsQ|EcwpR[gjR|F7o*<DOT_m1=FIPVau+Mbp/w*.,*C^/'c * N e r P B , #       " * 6 N f u ^ ? 8`~.rUQ;q,=k_#^>p 46~lO2 'Us'_aq)a, vPyS%L2{A'N^X.[ 1 c  N e c . )yW1MR h \h'n?\1u>iG!}My=tHfI/ mbD=*.(3?Slz~W%Pl>#&=Q]^_hv wrg 8WuBV;q2|v"v+)%tW69ThH A w  / R s    * + 0 * $      o U ) { E  c A 0 Ja { tEt[6 O U'_?d$Iy3u/4W*x4xC[:vkcfgtx 3Yz!Iu3JlV~89m;Z1mM _4mDv>^ 5Z*Px/fO 8 j , J e z   " ( , * . ) 0 * 4 - 1 . + ' !   y W B 1 ( . - = A K ? 1  f =  {@A=o5"l5yDwN f.}7q4x@$i_N@_~",21( 2Y?gQ 9d 2Zu 0 \  w [ 6  lN#d*p/zFd1 b!u;tnsx|qbUG?5aN-Wg&{5_`#:3kI?^z,cAg_LG;:4224DO]s5l,h%m$iO^/oX"`TL]'i%mNR=~*V E m  5 M d {  $ 6 H X ] e b c \ \ O S D H ; 5 &   { u Y I $  p K  zCl&ZS[2E==I&U@6q/e O_(X:! j)N;%'#*086<9L[s=lBT)iVuQMks4aD'ILX1p?] 8 ^ } / K x  C w  2 C P _ p ~ c 7 k 2 d 4 [  @MqZC rQ& sM* :#Sq^U@3'%/9Ok?q ]wU C(aV#vH 0\Vmt!a.[i=(  4\7jFX Z%m P%:Wg|~Z9sR/ 41|7Z-8\H `:.LfGv8gCl0bQrK^$_.=KVo}wcQA93('*+4.<EUYkzF^<g<a{]5H]s9V1VXm X wC MhM.&F_}rE_\c -Nm{C-|9 &c$58- i xN !7K`yVa5wrkew #)(+34BH^m$2;FNJF7HO# )2766-!xA d9 *FczH|J-wF&K`8m'7>JKNEJCTRckuzqefbgmvzlFW}@a9r'{Ge+ .Tr Bub^)oAp:vEg|NC<|gL/n=_@^:u(r?\p OU g Z: (3Il35i&<]Et(3?G[mx^=wcH&y@c=sD8QF^*@~RMP;}Ba D v { ] 6  u5Mh#\ h2_+o?jX4tomxGz+d :jjI|}x|{jU6x]8m9u5=]{wE,+lwiRAsAtW6lW;(>k8{I:&e,to n%RpP/[xH Y(yVk+v2SrmX6b't5DO r&L6HENcSkZ<#pVI5/ ",4FSk0]#MsKN EtX,y!ya XU!|B}:_ $ A ] y s g U F 5 #  yS.sX9~e?*Py(Js8l8^7bEt]WK6Rm+Zd7NQu0E|L.oh. l0K}0GSfv*;EU_k{}yjdRA, #7Qc2F[my|eS7Ek =n,\(PtD|PKL-mD |  6 > P F A 0       S  ~?!`"K ?AKIXAlw C.~)v/f5 %*-0235553/'!$9Kf9s5]{wz(Bf};y:Uu17I[psfaVWMA80 sV0z`G1Q|#u8]/[(w_?/16Mc_e4.x>c;4{g4uK4`| )Oe}yaG-o5x2wQw >4sx"Gj? oI"zaD* -EYs Cb+Kt@^$Dg)7Md?w6s+hU fHzN+[*d%AGdt|B dxA!;enYSMS]t&V4e'U W,s#\!t57>1(a8/a",?FTVdp Ad,`<a2ET[`Y[PRJQQ\Z_^YRD8(zU f<m$vML RzGg@ W&|[AuN$ kJ"w_D&pV1zkZIC6.({hXL@2-+>Sn4ZB= W.%k d d@/1fdyfEw M 8 b  ' 2 > E M L O I F : ,   z [ 5  kBuC I86>Av}A sM"X3}NxY5kB"%BQkv &BXu5Mh +OyO!j=$r"=_dB,XznY5v;YQVYS40 _A{<i5u`?4#-D\u%Nw!cQU zO{A<<FK*e 8u;^!:]v+NqkL/}K}V3" sK)b,OQ"NNg*`W\T b+Vg(`:yl`VUORRRV^bm~ #=`@b@*^H8sC=9<s, Cy @y - J a l o o a S ; # t]B*d3Sw:PSj3kR?;=HXu.UGl&aE%xcS:* xnbYP?9%! z]G#lD! &RCf,Ih &Da1Z}0OeqtfTL>82(( zhZD,e6 ~m^N>*0J\k'Pw*[\S.tS5YB6q"YQ       iAETc"[2~jRC6.+#f=uF\4rG^;w7nb; $_HnS;* .BTiv9_FT?c_ [> S_?t*] &(,.+.27DLYbmlhWG2`)t0f r9b(_)K l2jN7r?U(\3^7"-B[~NY%m0;}P&c& LC)k>]~)Ln    !  vX5XSi=q3t*QG r;[;! x_D1! c1zlhlgpk{+_+E\p-g MQbcnvvykbQF0 }T'i7`5h9 jWAGDOZ\h`eWTGA;-${n]OMDCEAGHRYfs'?Nk{3d4h T gCe%Gn(-$~T'kUA0.1AIVXZI5 /aC]d_I+ R{ A a=kS=1srnhhd[J0h5d8wHmaNG?7.!5Y-Wn /U !-:Qh"Y>k A| TOm,Z=s ?h  iF?m.;p>P |4n/Q W}LzX+ 3f&a6|C9t=i (IiW/M`+aNqK p]WLNFMOYbj{ :Sm$W#KyM=PFGeM+Jo/Ng &+)%w[:m< ^$f&Id o%n^L9*|Z4oF$fBbE `L/]A!yL1kEl@ {HvY:-)C\jt{3Fl1a3i&kZ=e!S=o6h CuIv2Nk=Z{/U "/:5:.-%&(,33<77"eA#{L#p:}:v(::6G[ r0e.X2 znh`a[cix0Qn .Ho1Ih{CilcUKG<8/' &6Nau'Nt,WCeoG!lC#:Ubmrt{ysT6 meQJ<<@N]n ,Fj 9m2^"C\yp]G1w`Q;& mL&\*w>zEd< T2!7Qh"Fh>m4X#Q|!Cn 3i9z [ 3JXtu]O<'^*YtP(Ke*a2b)o)w/O~ZD'*E_u 3[6jZO5]$("$1FXo3K]y +Po-Nx'Nk 'D`} (9K^mv`N5d2i$O+\0R#yP*(Fbt? L \,}tqecXUJJFHHEFA=6.1.7;LboJ~@rk7(V (Sr (391'"R'ErWG4,k[K?1' %;Ldv.CQfr%$#rT>,% S P).?Zk!s`RLA>73:9EJ^l9_J}k ^'[2OazqaQ?./Pq "5AVdy)Ms5Y}=Vq!4DO`fx{,>IXcirtslg\RE5+iH`+R n+zN$j_|G& k^CB4<3:-1$gP:# #TW#yKj/sA{?p,s5i4 vg[VII;;58;=IMX[chn}'&(&'-4>P]morjbM<""&42<'_7h3gE.aE# pSG-v]3iA fF-/8>EENVixBhc ";FXbr{ 0D\v6Rp(AXn 3Sh{7Kes~sgSA/}V7`(s9c(]&|KlIa>}oP:U.o]J=, |vgdYYQRONMIGA>:6769AAMS^fmy+QS \SPS{%Sz:axxmYN9' m@*}]<}T4sbVMHDJDMNU^du*NkO%O{ )9Zo8Yhwl[O@)~iK;"nY>&!Be,B\mxmdWT>?'( }zocVG8'yjXE-~gYD0#iS?/xgXND@20#  xumgZE2 /Cgu* whaQM@=12(*%#%")&//:AHW_s:Ps!Iu:p'^#b)p9T'd)Z{7Xzy9xXL;:%yp`T@0 vR>zeF-xX/rL* }U:pT6^8qP6{ud_PI:8'%$6Kar*Hm!HpFq3c1d1m _7@{ ;c6Th    mU8{O&jF% V dU2y^=,{m\O8. *7EQ`o})5@HMRVYWZVXYV[W^VZROH<5(leZOE<0(  (-CPh|&?Vl";\o5T{ /Qg  nVF-}pgXQA2lI2  */FDXPZLL:7& {iN?"}_@"xW4lK.x^N;/" )9FYcx;Yw"Jo,Ty4X}Pb:Z9]$<Pm %27@CGKJLKHLFLGJIIHEB?:3/%!tfS>1}q^UF5( fS:(eH1" fk.c9a9oU4zxmld]SGA.'  $/DVn"Co:e 6l>n*[F7z %7]x #,+$($)&+*(&! kJ+ |aF.!   qP,{\C*mcIC-# )542&hG( z`H4zv|u~{+H_}:\x$:So>d*U /\|9Wr1Icv zgF.f@}Q#b'?Zz5KdB$&5Oaw .BTew/:R[nu%*-% 3A^m.^2Q]krvupjcVF2}rkhf^ZOB2 ykh\[STUV[^ajnt}5?Th}9Oh{&:JYjo~~gJ)eH/gN2vW,tH^DkYF4) tkflo*Kb ,Zy+Rv/G`z)Qw3Xr)49CHNWXcjow} #.<@GILVf *BPUWVSMKJHD:0#oP*j8tDm?fCmG}^5oXE1!&A\6o?f>Xv".?JKQKRMTNUPTB=)jCvI'hC# :Pm0EVdpt||~zzvz{$Eb@x5X{ $ "/Fk &-7EK`h{uT< ~@}Bj@q=lVH3'%*:AS`r9Z6Sm  )<DW\mlvtvuqplihcd_^[XWTOKC>1( sfRD/lU=Z$_D! ~h\KC7.% +:Pcz/Tm,Y=gJzC{4i0X1>KSW^bfowgQ;*{nYG0rU7 ~W1eK7pbK@(q^N8)}aQ7&#2Zy-8GU[gp| %#++/.0/100-,# ~qbXLF:4/)(%$&&*.6DSi~#4>DJKNNKIC=4) 1PjCn&)2083720,'$%)*6;HQ`pz +>R_ow|uneWL>- {oh`X\LYOZYaeqt').+'(&&//-!{D ~uf]P;) zm`YNKDA92& wV:!nWA-  )AVm -Kj -Np,E`}/ARZivCj ,:FSbiusztthbXRA?)& Y0n<pM1vY>%ygI3}mWL;3)wkbWTKOISR]`pt#6K]p 8Mf,Y'I\s|somnouv4Lf{$/CMdu%6GUgm~}}qkaWRKE<6'% udQ:!yW,pL/dF,{`M1& *1;EOZaqx4Ki{ *Oj|iaULKBGADGEJJOW^lvwoe^SNA8*!p^Q7)}v|x}yl[J@.-$%+/8>ELOXXemx7D[gy-:FT[jr}.@Pir+;KXfq   n_F4hN6hP)kV?(w^H0~\?"yk`QJ;91/.08CLSUa\ignst}(5DVcx8Ur (G^{4J_s l^E.tYB#wlXN<6)!  #&+*/(,"# }eE/xg[I:){phbTM>5*$ &*9>OXeoz+Ni%Oq!@d:HjwwkZL;- |fYD6"r[G1" tmhein|&:Sg =Tx"Ij   tVC'|l]LE2+ 2<HYfv +DOemy|updXSEC:8.% ~kaP?- ysk]WKA8( fS7!kL7 '6L[x?[$Iy8Wq&BWr*0?IRagw~|tkd]TLD5/mYJ4& }vwvy~zumjeccehlpwzysn`XK>6$  |ibUJD74'$  !*(249BCMPX[cdop} 'C`qsZJ.u`L<) zqmb\RD:,!)?Us%2:JVart~~| "$%)+-.00458??LJ\[koy|vkiXWB>' nfSI90$#./CFU\ip}'9Oaw.C^w.ARarzn[H4"zwogc^XWOOF@9+' l[N>4!yiWJ7* ofVN@<2.&!  )-50|vpih`^WTNIC>:824//1*-(%$xxmnfa]ZWUVTZY_chmsv !3JW_oyypdWH8%waG+tXB'pYK1!viQ=- (=H[i|/Nc2@Rfu#9G^l{m^O8%lF- nY9%yslh]ZQJC@580353=KSahs|ypne_[ON@>/*spha]YZ]^ghus~~|pk^VJ;5 {k`M@/|{uqmjheibkckhllqpzx$CPo|"/8EJPRQOOKJKGMKOPPOPIHB=91.($ '06;CDKKRPVUXYWXUTPPKKKIONTV[^cgisq}}xvf]QD71#!  #(27EDSRY]_dfjorx{que`\RPLHEE=?86512002/424578>ACLLU[_fns{ !$)-01414.,(  vfYG<*njZRI>81*%  *,=@=<::6721-*#!yhT?-}y|xzyyyy}} /?Qdu2Ley~{wxtvtttstvt|x (.7;CDMKUS[]aaeZbPPD:2* xg]J?-!|neVR@>1,"   %0AP\nv %)26@AILRU\^chjotr|z~~xwropikeba[WTMODFA<=34+,# }~wtqllee__W\MVILFDA@;:7602*-$&    &#,.1:;DHNU[_djmsz}&-AIZ`nr~ %(65FFVXejxz}tukgdXYKK@>54,+%  {ynmb`VRJG<81+$! |woibXTFA4(  "#*+-.-,()!$%!-.5<;CBBG>F;A>;?9=::8785:5=9=B>JDLOP[Xddnq|}  ,3AGV\ls"%/,;6B@HDOFRIQMPQMQKPHNGMILNMRQQXS^Yeblktpwpwnskliee^]VRIG;6.$ xmaWK?5'}zkaVM@:,'|yondcZ[RRNKKHIGLIMPQUVY[^cgoy+:FVar}%.:GQ\jp 56LL`epyzxjfZSG@5-#ytb^LJ;8+"znb[NG@5/)   %,38ABIMOUUXY\Z^Z`Y`X`Ya[abbhikqqzz "'+43>;EEOM\Xikv      "!!##  whaOJ54spZSA3' &.7@HR\fox &*06<AEJMSUZ]aeilprvw~{}}~|~|{znna_TPG@81)! ttjh_^TRLEE<;42)*  '#,&1(3-4185=;@CDJJNRSX\_ghrs"#21@ALUXgiu~|tqfc\VQJHCA;<4:05224164988?8B=?D?ECDFDEDFCE@C@??:;652-.$*" ~~pmc]SNA=1+"--53/)&#    '038;@AFHIQOSVTWVTUSORHLCB=76/-*&'$   ~wymrhgd]YTLJA<914*.(('#'"'#''*+-/54?;JJW\eov #"-+44<;ABGINQV\`fjps{zwnl_[RHB8/) }zunmfeba]_\\_WcYd`ehloty{    $%!'$)',)/*2/33387;;??EDKKQSX[^ecmlovqyvxwxtwsrsorlrkomjoimhmfmfieda_[WSOJHA=:2/)! ~qrhc\XOMDC<9520/+-,*.,/3178_\Fv    5]`5  ;PkvFEzN?s8 n L L Z 7M #1\'f(u)P9-(&#K?"%AA   *eO< CMxqM> APNKq>K(vDrk<JU v fD%}l4 % HW   @Op9F ?L(w]) VyD Qf.##.|[Yf-&R)l+)q(R+ 'p ' 8w5{  |GRm" }: drht ]f g!P&0#"o& 6 N-' S F],pJsLl 2 RG$A e E; q iade#;<`,y@ Q\ # O>k :7 ^e|2VN , W  2  o Kg .|$L |H^DI^4+ QJ / 5|@*0 y ] I $ Lg _ E J [ l \OVC u ){(9  E Z u   n?/~`cp!F#r$'N,,X0D/A= - .[/Q.( + a ( l&|  ~  C z?E@ =kDxw7^t5]E B  P # fi`=|Sw u #m8g] #  S d .@7       m G    !   x  k ^ s   p5Q l mu]AN) m h J B 2 {vor: `YPA$!^_#%8$<x  b j6 Y -y 45$I %)",.F)'F% L:D.) .+)9 }  ? U J y   jn  > h  "B(b.3%b0 7g9824w2>0)1%t U <;vKa2*$ :a!E$,+3103o0-0'+()Na*]#]"-` %M ; i[ #l m .  m s v  ls?.8g  R      N? E8Xa#$6)0?5U:C >B@D\ * FHE / @T  = 1= 8 T7/F(v"&w_7 i v   |x^L{F] x 5Kd|!}S!an!1Y14"1 4P}  HI s=t%f "  1]`LKO 6 ޢ&; W  e 5  6 T! 4-8> OK(Uob`.>6#j/FFy*@](2x-',9jELLA`/!".Y61)}+S:.KPFI5d-;9[CskE<M>5WfR>) ?(.*c G&!Q6 b#1=n=s1!S*(jkK 6-$& !-%1>gT X[ܾ*_ 9ƳYz:|< gR! FknB E(6N4K*Z&.I=NE<#NUd"y{Ж c H%103b()r ?WP8++w-(a&1@5Be4$I ]qX؃f|%n>iäl"ntƉ-}nvbXSQ'IB;LB2 Ҧ޸)P׭u!|'Sb(Ƥ̺(ֶ7ǑE8ԹټU(m]ޔۀ[ { aWK2ٶ sz 0 gez 뷹ڤ7"C7&y ) 4*)[. ('*" @*' (63&(A.D#DK<8? 38',U  & R m8hٵ0{ E&^sܒT֟&:=!)Lʱ"KUy\ϝއ}rb6!܀臕hR ϒ wЮdEhڟ#tiqқ@SH?={2g'D+.#_5H_4 %~F}bmucMPAeBFH*FBDLSROrMP^W7]5^WtL`D"ELS|V\ToNGDGVKIC>B9=, ,"):PZVO;M120!  .C&I-:# >r]8#Z4{#vѓŞQ)%-=! >->>KHW$+&'8+w.-~)'.D<^HLLOCWT^`b.hs~yxN||vnh!eaYMGA&=5FT[0Y!Xbt?~nDzultJuspoSq~pkfRed_VSNWJJLZMJB4V! S/ CHN#&.?34B01-30(>""K 8mUלv})Z'9: pA U/Q9Ơ>$;bÿ 5]+Ph ׋ ;vP3!K)06,96 7g& ''b- %r&yc F%Н;6?֎ҺALuVaeڜ޳k25r hyG*T-}JزVѦzKbN{K)wkos͍؏WoGig]V PF =18&1 -l#ҖϿ)قW^%y{;!J\Xѷ!؁ eܖbT''٘*r6kB<ѼԹM:UmZ=] _YԍѨR۳FP6+ӦiX$̾D-ʩcH¿aAҰѭz.G{Z @jf y"}% x">*%u#{0CG5{#\28;|EVOG,vB#DZiP7+1^:;99R:9:9$@.IJD-@cA@78..A.8^B9A6+'A,_5:6F-(+2R2O+#Xa Ok >$v"V u  e] UpI]2/. 3j,x.,DݴZޠCn#&|1jټ [d[RAL"D+P& W`&$A_Lk$"%h%z xuXT]K ;2 V $LV6N9ݢc촄WxsYpک@I-bO4\(ΰg:=MXxٹbkͰטnuj*آ˹d洬'Qz;?'  %iHGmX]p:S(75XkgTz{U؊qޓfܖ#dο™3dʙɘ1iԔryЃ́wԐأn֛L^٢ߢ_QA۰|Ehι|=͜ܦ75o/E&;()|-N4vy>=C٧ػS7ҭҿY۰h2xG؋ׄx(i`^YR9K24I GGL LPET W\P a @'f "mPt{&y {;*} Wz#?*) vp&>16g5a/D'X#'$O\",>4!:@E3E@AK(W[YVY\"\UMPUdt7} |QtgY PQ]0mxq} ~yupu w_xwvwz~yyU|-{Zuqv;~;}S~}j~{xwpy-|~S~~b<~~s~zx'{ ~~&a~~>~~hS~~Qd~~:s~~*~}~%~zuurrqppAszk~ixttmw{mxklfhli`UTq\a_]pckomojgdbkccbabcff>gZk;nfhTCC=>?(?AHOQLE=9V?*JORSURNSURFx3#t !J$,*# P(8.I3j?ׂvYɓөjTΝөghƚfپs}ʷ΍cCs(XLLӎώYr?);#ֶIʸϤ@pтGҌSa7ȆJ_5iʷ*ӻ!<߸% qpޞ\"݀"$Ҁـ  #.9BM"RCUmUUVQ~K۫@:͘0׊(֐ҕ?8± K@Ղ TU %--&! &3BKQX^dpjqx}~~G~~+)~zt:n#knwM~~}[~yoqjfTj}s1zvwUmd{bec`ZT^PBJ@8T8==[5O) ;NNݬVduJًĨ8r.^JݸĻ4  O n AVqj-ޙ/+ݼNB+Ӳ Zwwe O4?=65003(4O49FU[VKDDLUYTKB=:85(1.,`*8%K!#6*L+!cx ~%oP8-)03s0)!'{")'Dazm m(&^%![*/..V57BNVX[]\W[U[fjcbESJNkZbaE[uX\ceeiytN|xmneed^dYZ_Q^[VNOLcJVFDGHUB 823T652.W($'-a-#Nfjv x2k-V֡ϫmK̠ҹ֒?EƝ6ϱ^,>Ԝן$>׉+%҇ދb(uۂ*؀)+@Ѐʀ: ŚAQIDQWձWWI׫MYX \`ؠ`fb׸b hĘlp7ý'yג֤kXGAD(F '9Xet|  8cN#)E8AIOHB7GgTZQ/@}34@7JC,@  'O$T$h&k1;@>;o=AFLOXel'l)jicTI Qk|k2bWiv~Y~}~dyv~zg*] Y ]? mu\Mۤ#K U #,-` 0n j%-T7)6H$+m   ( W$, z/<*E3" x waE #*1 = Gi J &QM I@q4 p$)=j  L$ 4@NL ; S {Pi?FV4-! M_ e?+J3 sk w09D/$&1/.3%Y!,,AC,9>SHI/"*N9?8/E+.356688:<>FCGE<2& =>8SLT4l" z#%)/L0f(" &$(Z*<9n( 7-L3"1./\.&#_2@B9<]4/,-Q28?MF:IA-\%/4k;BbA5$?,h#m"*0[0-+$8  *:]>3 (45/3,.P-!E3#7> 3  D!8'="5Ebt0901cW7t  z1 R. lT݇V~/x*oi)nލړs҂s߁6ytg ߣZQE˩{0ׯ"޼MU稈zޮ;"^΋9dM˨YlŇ̄ӍٶbDZ=/J!N@ۘխ]u F8rn*mr؅ͲˀxLa@ %N>:Vax8*d.= pe3oP*dUtwyrgd])(T P ] D E>>U50 ]+y " ?*$0'2+'-5733P6 21% 2EO"OIDC!HKpE5%"/DcR/QE7-@(,,9KWZe^UAk+!.GVOi=-455M0-5@/DwA??<3/d01G-%9!$,55*;<9J40/,-](%'/i8<8/r%:x$x),-Z/v.r&k"*'d 4-VQH 7 *$y    #( B *+z)#(#"3   J! 9 , 4)<&  F@ W f r vfN s  d%`Y Z Q HO H Xy O #%" Vd[ mLwrka!Lo 4+$ 9d,=Iյ T)RЫӨ߫UwݮV]ROPٶHY̺<9њU0K g }K0J"-5y7BNZcn݊xJ{^ނrim^УWսׯvPȡõG̮ʺA0¹*<IJ16Qǰ2@β1oͭf-=ճ(,֪)bٲ"־0ݻГ8Ȋɺ{֜ӏ[[ݭD$%S2=MXa!poBWFi.}  ^ y')Z'## " ?; .,^ 7F U :  \ ekw n  mBq EkcDW H04$)-o0&3g3,!d".4/# !#(03R09(3!~ Q$') )d'&&$rv"y"! lefC$09a3 `p +dj  s { z mz hozd X*SLN=J3 D Dg ETNtM]JSXZ\(`x߶dj\l np Fl@vhΛheмS[׸"ZīĮV¼5LJHGA҄B>Ȼ8,5Rͱ 0-]Զ2,۹y*E` .2.VIض ԣG7#'a0< {7 <A9@bIF$&+.0J3565/H(&-8N>?AGDMaMHDFDDDEBGQIGxB;=YX2RRWZ.YoVUV-W$VUW*ZZXjW%Ym\[T#IaCG-S!]`\dX"WY]_ _b]\^"dluz%zxz5&%xmc+YOJO0XHYPF9CEI|K;JF@'G^:?"ris j)0Y*o Xnt t0r8p Pjxaa#GUrQݤ׶Hޅ/;ݾ5.(̛=f]݃¦ т ɬ 8𾕺i5lD&zղ-`5(hBlMISۥs^̐͝k؁ߗAqCtҔssn̓eԡحX٬ޯIܽڎ2I!   ^91@C 'R  X^hea&קҠWVԬF*H,Kޅв>@ڮޝ^4܌r$l}ĢkMܻ/ S9 *2= A { b{#<(X; S! zeQ {."}&7RCci[D67[9.Q".$9H<4*/CG^a1P?:*@)DE^hZ:Mg(U.u266c/3%vn#$-0{(yG'.V2i6;=<[?GFG#;E%$8nI%L'& !%+&'*)6!Bl M>Cm d,O%4 DCNG;[ (c*d']$$9&o$T9x y{ ywWSp8f)Z V,F':Gޯ2.'8 0 e#"!M%-"7Ak N#]bћڒk{z-=i3\'Lme@7 6/ "r  7 . m m  G S  { Y |w)  @cg :6eS$#q-=;.EO`Zrcj+jHjjAh e!$`yR u  @*O> Y . [yr PA!~+30R-#;#7@3 $34!)#+:3GLORN5A1)-:7H>@B3FIHC,>:6f. %#-2< C|>4/046D3.+2*)))N**(%n##(03,ibAP!u%# 6!^%*,!'gv  !  + w{ x1J ީg5AksڢvJ۳--_ M.b";JNEʎejҒպr+|;zń͌wyʁ҈yzˌˁý{xߎϿn㯚da㹫^O;;ͽ!۽¨Ŭ]s,dmFLZwՍk̠mUT²@{h3'r )0(w{#u,$8F&#)c*.%72& <$/B$ I!M"H$% H::V8XBDr49M:]g\MW<-1.02!/$ d j(1%% %4#'$ L!^` i!Qq xu /GqF)2o#+)_8M*jE'=F86`-,"+#&J 0 E$N ' q ( 3 S?7#=)#C۾C mDDECt=ֱAp7W8͵8<5L9<@>ЬA:Ӓ8R30ϸ,j)ؤ!  ֠l "w*R<7 BڴP&cߟ3yW|hiۃ̡ɤUmٰkC5Pe)&K!X`+qݚ׀! +3> E" NK :T,HWe[/|U٧ڽYVɠձJݷEa=8B;.5"<"V\q DI QB+*q@9]ryfq]J DYLNY`bOebjouH~bo?`]c d7ZQVmh:zy5spnm5mnsy2~;2~~2~wrxv2~A}7~-~:~w!>~>{tnApzxF~~P~[~`~k~ng~0yxojp&voav[evh=pT!:\8vW~Oo:J7;FC2B8_196"HZ^4SHKQ/J&8/E;1O]eg:[: H<4AG\LK<'q!H1?63b &72B),2+$>:59uRFL3}m +,:FE\1 >%;&A4/)9M]W81 9>!OJy<3361;":8[`/)\5CPzd A'2J-t $בZ BlȒ`]EՕLK͐(MHʫey|=ъrc>]PlϪqrq4Y<o 瑓W[ȉă#HJ󄺓0\vcl?%Z N#U0Ign/Ѐ'̀' u؀dO*)ш@,9X͈t4y࠘W6-䤤 U*úObo؁{fNUJ? 5j$43\8+D$vA ZVW'8g7" 2o?KKZcO[lG<+G5[XcYOXo~sU;4=Rl78|dOSSj~ks}wgVSsaqz}f~C~}X~6L~vg[CZcox@~Q~>~h~;~ &6~~3|Jvpn/oon3p+v<}p~,~}(~~r"iYn|~wvuqs#tiVL_)slUL-[kq}~8zrkmGyzg[Z]kunraK(<:@hAw96^FK`k]hG+BP^H\ OEA\8*$(,~4*( D7~[0e6+q)qdkhle,jے:vġxƚhjTEA (֍ܚ2-̏]%Y'V+Ā+'ߔ"ہֈP ݚd)ӕʛfCbVoɏ…Hu$̓fܞ\k]ԧv^ j1/xuUҬ(i(H7\~B #;iy^@[  <  ,E PG׾J3<  @ , V7HJ?,i wCZ^%"rkط&i2? ܑ>ߺ}P-Krٹ;):8L2߲ll 7!)0:RA?G6U.1>MT Q1KKPRT d}WzE9Xivvr<{vaTTVbq}P~|e{xw|o__p9}l[QfN QZflvhAa`_abad(jWgWhFtDTigiX@0r* )&&-U9:DKOL;3BF=c.y&&#bt'78i( f'5u0 1 ;4 Vo5<J 4@D IJ  QV`1cg}jgehcr^UzK^ݾ=)t}iεKzק}4|ğHMǯ ]mkmʌxxbˈMsR|v5z مؠ}yΊ oaљļ`ФLgΕ=H)񺕷ao霧۔&'&&dݾa"+e t !4?B:=.7(18C%,1L35.)2NIdZU7@M*yI#<*W=R9'I+(9T>;>GRvakt{vq{O8B2^hU9.< XoyyKu%qh[bT[m{Z}qqZ{@s5@Vvhu}seO! I7PZK]#ZN=-"%!L&"\ O!y #EG} +3[eTֳ2ȸ7λ z!Tetf]_tע5wtfkM7˽Ȭ.ڬ 9Ǔūlaw󑟊 B 0ؙ{1*%_#m%*0l9G[po/M~/c+@iW{[SUku=ri{zaOCS@P]}sz}ykc k}~U-'@Elf~3sg&l`|W?:{;T]i$gWOnV et~Yy^?40AP'PEA@BCAGU[O\8 G &.HPJLB8(t'$H~afY5UK1$?2oh'".HQP9~,u1c6~."!)Y,5={ d( o"ڷ/ɵD7ZrwtS-7Ȏ 3րS{`C+/./ -$       (4= =$?8=R*tG€;mFh.眃 ʸ :f&"̽> "Pb^5ݢ_;c ajW(3.OJ(6\*0&aSkg[UTK[gnb'I<8AYjgjdgr}|vr*q5v}|~O|F~`jsW`w~uXNFUp T}~~@~~0~9}{y{Y~}vx~}~^yss'yQ~}@{:{3~pfMi0t(}-~h~-~twr"v.~|3~}8~@~A~~H~n~Q~G~X~+~V~~\~~ \~~#U~~>M~~f=~~0~K~!~}}`|~z}j`j}|}w%cLDL)\lz~*s`UU(VOFCHPY Z E"*-[h=`&+C&/AaWצ|ԝq ϝ֌Rsν5޼Dhӳ׾+;ƘAzGUZgDbwGuInÚBdgМX»LDŽEM5т'ԧܢkc%8?%*E Z .d:1$"m' qrn-r:95m=pOWJ+6e1\@S\SYcK8 /9=_}iDK4& /FB]EgaWmRvLr:r#_8 \@omdZ K6)C)4HIcwo/FLm1M`6~Pc>%(=MI?R<:9!'r`Z'4p̝zX߰ D׵;ʖ2{̝؃ɯ]ؐ-x+)Zy^\0 \t>R_g389I.IJ0Ҡؐ=g͊ P хX#j_.ѧP6= yJV Xğg C y|Gȇ"j/VݰֶdBɠ,ҵ?L1 Z-!%8Ғ 0!|V6^e@Sl(Z m^ZA76-n!-#e4kDIN ^q*{uvicYJXI=^zb99%U-Dw]Ss~oabp|r_N(|&OyxETB]|I[L_tqjpwafB+ 2Z<-I %? >eXdI;=MfrjJ\TZ]RE%DN]lzxz^vu}z~~~+2~~r'~M~"~vhV!M\Vkw lrTDB'C+?:903$Z> Pda A!{"~#c=PHW)N;ba6roaH+9 4RUR:'6O8F ] 0 8* #H'9&!( "2!'Б%+gb-Ž, ?.œ7VBTHQZΝ\ߎܠf nuev@֋yTypӧdߤX`̲B/+,W {2< [2w~ |̖b#Iv:ƀ3ҒˁӀ-џ}5\Ή֌>aI򠫠`2xˁWċbIΊ0Φj+ݘO2ϤNU߮gCȀQv'ٛ \KAr+# "d  8N]b]2R>"(>flrI* (W%q^_7[(E&npC" l&J&)F>cI2hi Fj 9# / [ tV'B^m,iiT9 *61AJbm7le]V6SVX_Y'_)o~~o`^TMED OZ[U&TZcYkFsz}[zfvuv wx{u~|}_vljesI~zv;y}}2ufZ"\.kz~,~-{2y[|=~~>I~~CY~~Wl~~n~~p~i~Y~4~B~|,}~~{xqvw{~{xSw8vxri\OQNU7cmmmeZQMcJ C6*A%_',1 6873.' *h B u  ^N()"mՀz 0s1p sϊ/~ۍpT[ƠF,ད?^ƶ&Řδ>*L"\ePb6Л߻f"՗mLWgęio_aځgȬZ+wÑq8fˀV<:D4-جϨ {B8,.@QDcUrebT摫OiO@,R;c_6lfqU/۪ vڮw7ZgƇi^֩׺3%,gGx& f*]*عE'<m f'%2I /Xg*(=7H`5!"=TOF.;+AMccYsTNs<1 R@iaVoyj^UT7R^B$X 3,X|h^cEs(r 9FP3SE1,2%;C!,!j P(v%U 2xR%q Z7CXwݽQP"F1 0t#P)-1" X :-{6O2-&!).cXܺT6 #($ Q(   0ܤ+|.rPP[Q3\ Wi\ ~]% kjw  z olh(#459F) 7! =@KA$9 M9c~j82/I KEEJT]KYB-4SPf8Xd '߁- +y#SC` *GHSrCZ)3,\;7! ? }3=(/z05Wye\L;-'%HD UP@s2-6O1m{pT;.E0<<0E=Wjx~)zqUfZ7NC>AhJMaA,J!2+DWWOF/4/:jLMVQA0$of_ vvK =r/ $"`!Dק&s0FљE8ןĞ>BdF9| o[4I?@F0Q#]oÀ N(Տ7ʦ>!ޡFTҎZNg#qÓLjwAxڄ֢y+,{:y{bv n h!)_ Z&:#oTR(9=3S&Q1 N!V&8/+"Z gZ!u+58513p5,Z6VV1E ,\(/$#Q+8F@9[15%AEY@%>>HV\]2YOPIKL@[nvjGWkNRXLWUY`Jfim>pEniff7fdcd$eddqfhhikkOie1bac'dc_YAVcX^9c\b^\]t_A`~^rXNFnH6RYVYOLONIE:54A20357. &635.'0 1 `6G7\;=r=uCBT;2.)/N3;GTE[\]-b>kv@-BKUG\`b\PH-a](46.i%!$F*|-+y((/9b>G4%M#14!, y)Dߗ/ƷHAańؒGz̞}pgUvN簻G»0A^H͹ MHɨX]?o8}˅gm. QL/s&QIx2Àـ{}O%ń<Peȓytň{{ρ{@̀Nx zےm_mQײ`EYٌ6J'Ծj= +ڀ .گ*=7̹gMOc0ӑ}{_2GQ'w  -WI甥eYՁκqܘ ^@ЭO&gCØB#@gD2O§}^rﷄĉʲn@МW`@_-ӻϾ Bш ɨ2)הĎۈ-7ʻxJ~^Um3({zzn=)/X0e1J1+#[ "# Q h$L([,/2G8$AJPIP#KD5@F>>@HCU]ZNBFWKZjAu{<~wm!c?\\bi@lGiaY:W^jrv;~p=YHK:^@q{~FxpowO~GyjK^Y\biehh[G;AyXq{|hHd-}*EjP|pXI3JS\_V#?#-=u?5$" "78a:*-G*2K3O1,  X$9 Z!+/12]:S2$,-0:6,3< !L .bul "#7}DGB$8,".%5F[H*5D (!++-&]m ^ # + C eQ %e ];D#!$'(D'&*3d:g=>p@w@(<8b=JWtafjswvqoeciqr]z}}Zyz{U}z}_BJsTqGz}{~|C~|i~~uShg_td}wmsmDtun0g-cQ_XiQJA7.':$*;LOF:63.&&! Z#&*.(^(04 6#:4k+t r MXr0D<݌ؤBZH'J PG@*2 !Yܪ j4aM>c AwJ~ݬjpdp<^ހԭ͇Z֏X+ͧ:[˼ß9c#ޖ4n!췋nŭʚ]ѸNi߸ >-2߭ء'wv ֍Ս'Ъ`wNV̕ĭA'/)n '!rx}#^ " & 9 1  ;C:? yMW Qn ~ X!(\)%]]#*u1V:/BA6T( "&M#=?),)k-*>%OK2(8;t5429>0@!=;831;/,).'Q&&)o/k6 94-+.t2224_9=@KBJ@9.)&?#=&+c.5*y!y0&z*&- 1'b%5C\Q@`mvs:UtVe$QC95 0y8* &&D )FQ+݁-/qչ4:˾54ʾ.Ѯ /ܬد ! - \)(G C8۬+iόцӆd݊C&о>ٷ.NߓJ«ו[Dš[lswۏm?͓ϝ_ѤUK̻>zE u ζ'/FܧdNΛk躟YV=*3IΣ= (]jbhۓ Б#T*-ρJ2рѺB- Z,Fմ $ܠ>@fΊ Ǐe^V ,ې×+v՜1ȏЅ1ω(0YӠ*Rڎ!am£1Ō<s妽ן,]̚7;_l?xԩ:U]+d/{7߻}[Kރܫep:6 * )MGh߇' xo  o S"Jt 'v  c4==~:K9;@B.>376`?IM NQX]$^]^e_F]YWXfXUOIGiMjW_dgQkmk^e4^@[^fjf^#YXXY[_ c_UM7I,D*=8^;=BBGGDO@;:?WGI@x2^'&1kCdQ2SJAi@DFEfC?:4c101Q6YA?P[^NZO@3;1&>LM$?36BIOD:3.**/9B9E5C@f@VBEIuKtI{ED{HM=OeNoNN6KKD>;c790),/6.:1;==$3"( .EMVce-_'YYv`.gifke/giih.gc\ V$V_my#}wDsty~x~~<~~}J~C~~0~~K!~~fB~Z~}~}u{zz|[~~z|qGf_a3i0qw{dzrigpz ~8:rɅu327*(! $( (!'0>IRW*aBah`_߀S{K;<Ȋ)ڙV,ݞٞ&)|9G ֵR֩\`Wab) ]էAVIL۷ԹEظ4;. H&  "(, )$G !('%S%%s#!#),)!$+137>A6!* "4EPRLK?4/3AR^^ V^NMaR VVQI?=89BIIECEGHG!GHLP'RQQTT3Xq[]f_5^WI;<0V++0I8*>=+7J0.2:OBIKkEV9/.3[61)$^$'*,b1x;GNbLB97f=AJXxbhd|`\n[dY~RJKdZo}a7~~t~\}{xq[kkt~UyuyM~|K|B}||G~&w>rXu|7~zz}2~~-}ywx'zyw4x{ }zvsztx%} !~F}ztxy8}}zmxw'vt&sq(ommnoop!o(mjkh(e`\?[)\]][-XFSNL0LsKHE/EGK]P0SPG<,8:<5-)!%1';?>7$,$&181#=JE  x   Tn^cIȢo!&aݰذ۴ 㳝+R嗅:4&l|y"2'(sX1웝΂݀IS No ̚4xʬ,VўyětlߒΐȞGP9:׭goa|#܍ 1CD#,9% &$3J% \u$n % +9) '148<>?@ @ADZGE=65;d@>4&(%-//0C24672'} ^HF#j%" R !.574233.$Q'*%299661'7)$2;:;6.>*,37?4k/,_+=("(: r 5 H)?.0!@ + %)q+*}&  dIFV4 A ,0oہ׆y Eܥמ3߇%'u/9:D DQ\ ^ > fe-SeW d ^XVMDI6+-]RaH a'07 "DKGhP HThY V 2Z~_a ^L\`^bKbm^VZQޱ PԶָ F >6 Fy+{T#O  sF n~') 7Y  /dޕT4Qjx0 (_ ,1 L9I#&,5T=?ABZA@@ BQHrUf]uPzrbVNV;aidVUF=):]:ARefszy~u{npxN~e~~Ps~|7zNyyz|}~~ @wmck'oZoga=gt~Syl\cYh~n{hZTrU[d7jxg^X]rkrz~[thcVQN`J FEtGPF5A=#B:NYZL%6"$ (X2?Eu>@>5d/?6ELSB1,6FEMP.R>PaH?>1FLLJ,LOOK,GGHF*A;7c3*.)'(,-&378,752)3% 93@@5C' &I- * PC_ (4h6c,rz6>zj  p^ cCrV|Eٮg6<+)B!J ܽ̾@ܴRU޹&<԰/Ȫ\9FďAE؀MsQXWpZO\5]!^ ``_&[>XeX8RLPF6@Š;E/+!u.)HY„݊~/𠯤Φڶ*8ѻ;`F:,P믥]࿛f®wroq2qnjɑt뫚 gN YҩHN:'b y! 6*k8d @@BھBܫf?~0" D9E   1@Tu_ {g i! hj u fA V]  N"@h2 X%F0"6 ;AFD:0/477f1(o !&+26501;IOIA?FORM-A1# *84IZoa[`PH EB=6&0.}3-<"EL{U<`gcWUJF?@"CRCBCDYD&@8A1Z/5?F\IKQ)YY^1`^_WWIx;9GI[d`W=TvVXX4UPH*=!1J(" "*<5?J SiWW|W WRE00uA1CSLNKE?Q>Y>8*[} ,f1/,(-k3dh5#.-&2`7;@lGSNQN]DI6*">"+4+6?-"!+,57r40+%)L$2;18& G &]-/173m1( z4h,1..'[`sR J[ B* a>>"$?b@J E|Ij K 1QH/Y9  ^3 f)0A=Eg9&f g , l q*.s.=,("sW{~ )0 ;<:x8f3(;q } gU1?,FNTXZ[\ ckouiX}D8Y8)>EO\5fcVKBL2Yg4oLmcV0NPPZbXaVYRPLQYQPQ8VR^fjfN\PE?E?JCGWI=IJMM4I3B<:)<@DB"9P0/5:C98=EGB8-# =$(6'"    ݍ ӵ.C+:tF̶̮Tqa rZقx@oc ] W^R%U8WF\d Oe֗nj yl }{pgctQ*ǷD0("  ~u ˊѼOپ̧"Y#Ȃ¬҇ ?P`F)͒к8ȌDTJaʳoԐG|ʴ,|Јَsĉƫq̓Ŋo8ΌЇw݉"}ڇ̈́xhیnܽ^M¥hL߭ٹc=Ʊ6+F|n ̈$Fۍ@2ʎb;pH՟RxS[桠Ս\dj5"lM͙ʪg϶h.ibǭaǟa_'Z܌ڥT TQwKTK;_#I$bF.&E2 5/'E#$+7>F#SXU;OJHC=9.-f:5Opahd3\6X]j/wF~~ z/p?bUGS*^\p~&CFhG/FCHAdA~CC{?e;>KYl]WM'IqKOOIzAr=@FIEz?:60p*&'6*e+*(c&[% (.d4N3!+!fFcb9 [""k#0'.6r;&:4.,!.0246W9;;:s87)752247.89!>DHIKF?/71700// 24]2,'%;##+p1/% "h#$:'&!"lx+/#6 w;A!*/B/,($K" R!/$%|$W!X]}` h!L! ?km hU#c.65m.`'%')V*+++K.A5=#A:>AFFNTREJ88I_LlJj]NGDhACE=ECDJ2S[`_*XMEKBAe@@,CDh?6E3:JTPC::kAGG#@5.x/+6=??0@BDC5?L81Z.5..-,.-^+#Y*( )+"'### u B (0#2) m! -8(7r)5i7E!7#)&(6 //$&)$Y#&c*"(q  =3 j%")! M."&6-n.x .2 <&&9o { R ֲE^  xew"e1D}YDo q~9z k /]d T"J$[A  SA.:<7G2027G>CCA@?ABCpFLySZ^acbu[R!M LMN>NMMQZdjh]PIKQUoUTSRQR|VY[akrod$\Z-]`rbac]XTQLJxQ`!mm4bTLLPV]eigka]A_#dhif!b^]_"cee=c'_[YX)XWWW/USTW3XVTS7TUUV:WVUjT`{- % n s ez ~)29>@@? <989 :840 ,N+.6AKS2Y \J^`b b\RWG=78@ KT[`^[SJH NWV[]_,beohjloqrru2{~~?~'~#~~~X| ukdg nqme _o[WRNAKHD@>BHL|KJ8NUt[\rWL>41452.-3=HQUVUT[RNG>624 7#:پ  ͸;6"S ' 1ե   }ﭾʀ%+/6ܷV=$پHl' TF[q]Vxe՗k̀ϑpsPȏpœэ%qyݓpgΜޝZvTPY˰4HB;q/)$QW Mn !4&%6  `% (*& g .1(\E!&+..1J6>J V{YN<:(!$'']',5::99#:u:96)/m$*  15 100K 20*k%%?% 4 %) +#*$ Q0CXU֛׌s}Ո+jԡVLٽ7>j&`< C$ )b -t*f++#kJ;-<*% HN !B'[++**k+)%!y ~as n8hhkQojݜޏu_z}ip`ߚ cQCq*& K-ө3#/Ɉҟ7]<Ń̼;\8<2 ,#ܠwӀ׸Ѕ ϓY 7Ԛs dh[ Epl40%"W%kw# *8T1u*',~;tJTNFy9k:?ImZn~d|pf^SWPNwTC_Nio]t0yI}~~]~wj]VX^bejpvyx{rjc%_]]W^*_:bhp0uwrjc8`p_aj>y|_e@2DDA<08653 2".:)%%%$! e U i    t  &Q$1+6>CںH ײזKd׫אS۫ZSڬ\Ҩ̬rW/Ѯ؋Uy۱aJظӷ@̾͜79*xՓXGˮO֐)c5 ʹ?ܱI<9PXY] [XjnQԶJkGµ50*E''))>&v#$(;+Y*(e)0++'m#1 ,!((.[0.)#$ !!o$"&&'*,,*$BQ  }]%'cm 1 79:  < ;!'C(D%20B! c D @\$8#1 +/  0M  1A2! k(. '%  s *,.5F: 6p3 < 1K +* #B  )  ^t'A0 #2O9q>NA߼@޷ڱEkԼL˃̸ΑKӺM;ѶJzϲJѴ KȴȰLCŷmL ̷ΒMָCHݦݹ0G߷C6!H#A6H@T;$I83p0T/ %""tG\ PK|   c  w "1$'k(3,W!%-).5>,D-C<6/3345e5030.$-2,n,,*3& 0}0 Y1L /.\6 1?48 \>  >tA MCH #s&B'B% B!C(-/G-?% F 6'2:513s0+$* #,47V65P6799833:CMsQQRSYahmqtvw urndl%je^X-Xk]a]`+[aWUS-PNN)P-POOO&NLLN%OMJjH#GGKQXt\^__a\WRNKKFLJPE@?AbCEqD@;8N77g7 6688 1! !@!G (  ! !% ''U$ +Zw 8s y X)GU'DJ$0% (n+L.0aʧ33 1.l&x $(ԵăOǝǖ !ٗ8>—Lg2ră"QɄ.`ۀzɉxoDހЀ=RDžQFte |Zx:eקDRf:˟)*?ݞѠ 4뢤c ī#Uþ x8چ-մ۫H̀Յmϐ ű! }a\Ί=;"G%q,5A L Z v!g^tXtޅg] jO)LҺpM-GLֶɡOTc:nta~~ŽykܾۘWE;L߿>,1 NU I1 | N#T-27:6'  n+,% $ a#" $c-43+,"!!(5++7??+BT@8/-#"c&M"#! (%,10'&5GX b_TF:0+L)+.2c30* w!'$q 7uQ '=3&9(&%:$$ Ai^ E'$/K44- KNF"+N,H# <4#($N# < $"/ }*+ )2D'=23*CV H lKD&/a5L3`(N #..J$V J D F  o>^!!"8&H+/@272/+&0!:P ' R" D!   V^!)&:  v#' Rr !.Z7;"<;:8,40,)&#!#),(%W*5'>@@C6GGUB'90,.,4D;'F H ,(*)F)*-?.D**"P= J U6x%/| a " : !'1X4*0G'`6 /9d"!E jG)4:FnQB\0df7c:[QIE3GNYFf*qvrd%RECJT]eZkmllDmlhaVH7@CQZZUQMwC3% t"(34F X^XOIHCIKKD3 " !'&!\!"$$""($U'((.% 2( (26P;707-/6=7AT?78/6.9JS4J05M 3"*0-2.#'>P$m , 9!./+) *':#./E$c  J4x=ԡ̚ˣM ĊӰ1( BQܠݛeijt` wi d8ݝۮ\\`edplmڀڍڧnҚ[ݛMK܇#2(Cl0mԭ ք֡܎)2 W1ɧS҉޳OɷB==a2P̷/֬(ܪ!Ψޤ[(erB坬™6}"+'$‘ٱf+-Ѽ4ɶ9:DQhXæaWf n w{~2ƈu}ËĈz|*ʄ|<΀ւ ـщwؠՍms˗ӣhʝ&`)ʧSǴѱ/K-=At1٘ӭ& + LLүٍ+'*d-^ V $)C#.%"j0"'6+/.15R:&?2B>;3%$Kt$#2>EC8(i"#h#,2 2.'!#**%!(#)3>.G^KLM5MH@0<5@JR)S5MGEJ5T\^Z1VGX`h1je^b[/ZLXTR&SX^`![NA <CSTdOi_NC CIyPUX ZUVZQZ,RD7Q0:./.3N8>DGNFA=>IEQ]_@T?/C.8;KSLO+D;;yA"FD<3-l*)A* ++)&"_ "%*/2\1/19AE?/  R&.32.*()(U$5D  ai џ(l 4ۨ޼BԹݾKWשe]x_ Na_W\T?RaܺE O8!&_ FZ6 ݐҷ&j2"ϱ>A#ʽǶGMUF5IەMѥbJH@m@?;cʧ6gѾA2'#۹]  P I  U   '     C T N  !"4!M# &'" " "%!F)#{y!AM 6I T P $14+  1&-000O/ -+++ ,.254.&  u&)) '$  Q8 !$&)*[#4 Z n" m W I  ~ P c,d   CD g ) ]G! zXS*  - m/{'&ӥ ruG0>qnb֮ a 4Ŵ3G$Ҙ!X<n > -64* A $T#O>$195")!O&!*2(##w&7`'R ( B & $on0Or = b+&N"$&+, z )) ' b4  }&++M& *22*! G")-32W,+$w.!"l.2$+&&&%+$2%(+&+-(%6%"%,%%&&j# ,!$&'(*.0/+&$$#j) @yt T  % A97D"8. :~ c'IۿT츗ִ֭譻̢`͸QCiՉ̮̜mήZS>J ")+=) (y*K&c Q" S1 -G$+,& #3@GFf<-  L)/155485%77h6C6:B3ILH">.c!VF )4Z=^DHMJZJoIF@]9T2-;+Z*+-0Z1Z,"V%02S*!N)--(+A(V')b.81K/)%%2$%%#'!- [! ~?w c  Y y?7D%#"%s%^i&#RegfcԾEhy":+5οAѥ0L$b. K'3dwؑJܧܜe 6   !'" #) d+yh0n48n=I??D<|F$ F4 D lB#9"@;!9.69724+36>.F?LMH(>K2*")* ,0:F/NP#QR-TV[`b^U MPIIJ IECFOX^)] U LF G KhPRMNB;4,H/8BL>UX8RDt5)"#,":LDE@+9K67;+=<974:PAH K7F=51@0/.+E'i"!J)13:#U!(5=Z:,]b CaFi ums[u k-zu~|w^'qNo9Ql!.cdb݊֜ecOWhQp;t{y҂͞΁џ}awp5fIפT^VhT OʒƷG?ġʈ;D36˱3 N06Х(ء+ۺ '+Ǩ&|Ẅ z<5hwn.˩ GH0 %ʞ&U,01y5xs7%9Al9, 9R ?;D9:%&!6$0-26M;-@VB>5(+# %%,7B"GB7'-!(r*1=:@BCDB=5.)%%P+4;;6/)(,2751M(^ %,3R:>4=8{56A9:84-%kb  "% %! > h     3Q } + n] #/ C /g;`ї?EFԹ&JV{H"NO/ P6 LK?IGgAFi@Щ݀:@5r0ΐ\'Ĩѡ Q Z[-h&Բ1d-:@I?W.Ʀ^ؚ/e͓n؏#puՒq~ӓŖr)ƛti]o̫ŤSĸCFȐ7Л&4m󩥪sܤø!֞,ʪ7PmAKճKANNV۲LݵӠG׺F\>'740ݓ\)&!*>V s/  %  % BE $T$&l#%`. /F96:r3)#;%+162D.)''G);+,b,N*(*$0O6::9V8764X2P0/u0]25:\A_GIHfE^A6;1b'd"%/=9`>=7&-\!cV"c&a((()`,..*^" _$ /Y1(m [& V$* &RI 'Q#$./I'$ YF A72( "<3"L L<8NO M d!=#W%El) ++ /* f('($ "p  l   = zy ^ !&4,.*#r}!,20( %'&g 5 u  c   &0'8.:7V4+2 23G75< BGK9IA8/3>3x68X8I6]43[4P54531Y02/-+\*)+Z1b:LA?4e'm!&+3,m'<?BFDI IFE;E FED2DEED'B>;y::D::<= =;:;;<$<<3>>;88<@CD$DCDF,H6HFE6DODDEAEEFGHGECBNB_@<~9R9.V;;>,?P9o-?L ,S3J1B,*,E*s!=`O: w 50*;,;3,֠ +S-z1A2}2y6z:W߄<|8g8چّ7M>3 ĥ/ɹl&ӱ̝%"ڴ-ɫu=OYfbXl៌Kxzs^~F2zwƍľqVf۝g\ܨO HL6E( :'U4KsW{R, "&)+**+,++Y,,U++.10-*(s%"4!  'x--%7    g J   }$ 'F#6 _ 7  x  H  { H;  6c ]  p{[,W#M#'%9[$l))*U'a#$""o'K" X9Uj &a(0{5V:7U۵<<ϥο>h>]ɿŕ>ƈƽƃ<2;;$9Xƾ2ȱ31ϼ-uҺh*l%mڷt"۰4 ޿ƅѿlச*!ୣ$m`" ۥ'Zթ+yҧ2ըШ8Ȧx:q@uDJW]OᮮT,Xc?DuKPPH<05* ((+ 1 8d?DGHEC9cȅ<>S>בݿ޲AcþBۺCX'AA>.>Ŀ?>]įL=ŹķI:˭Ǯ77đ9̿0,N0˰,0G-w/ )('۞ܛ%'$S }xTTu;   > !"% qN $2 A M. XO   J x! &')))*,.826;@G MRVUMA;?K V[R\YmTPcPR2SRSWYUNJ<1.r2;/FNBPI=30!5EEHHKKI"GEDCHEGFB>>;@@=6/+b+-/0/ -)'& %! #!L  W }+= K y9I , !} R , M g $  '  d R6{2 ?5 ; <  ^ T #{: VL jFASZmC\n_!k[{d Ud@ڑ !֞ߤ'$0Ϡ;ܿھCϸηӷN߮Vܢާ_՟ҏeӲҕjяoݏsvэw/̊$w،rrzƉrߒ(nBȓg͜Ό_ݠmX&Ҩ҆PRܲLlټCCm&9e7-u,ٛ,2'z&ח%٬B(!.Ӡ5Ѽԭ8G:P@DaFJ!K2 MKRR "%(N*?+,x/K37=71./5<>;:03B1CBvD@INQ^QNOMNPZQ)PNO`Q'SRoPiNMOVUp^fifv_WXPGy?;>EvOWZVxLB=;t:74+4o7N<>:o1& l#d-.8==_;=ANDWAW9/'S$Y%(*H)y% QD;)<20&385I2"*,\*0%,*2+~5,}*V-/-< " #,!}*cz*%'Z&  4.(=!Q3x2qE bw] oM&8b E ?Zi 7xtymeo]Y-Y[ש\)e l xo{bs܏ZfYج;MsD5>* "IS0ݻf+ FDž i ϖ | ƥ  ڬe Ѩ "φ'֢ѸԗZԨ!y)Εz0G5$=b&B˙׹/JϷøcM+ұhKYҰ1014;rC-H5HC<#6h21248BQOV'RF=:8<>@ @??@A&CFnHHFB=;<><965 420$-(&1((+),)'&0# 7"'+=*$JiKXQ*Y7 [`i!jj} i!_#%&l"+ jnpo1Er7imk"j U ( c!-][ TL=F<^1  +$%.lu ^4Yzڴ}E"+ o 1* N, ẁ"X«軇!Ĺ!>伬09[»~vX1y̙ۅ#2ZҤ¦nم'ʡm]( ] k߅h!R$f.i;9J+ > F | H%"P&x'$AW mYS _ \ a5 / _`Z]d \!k5W Y`$%R M !H"'.2C/&-; :$71! ,"&&'%!#H" ^c$w&$h"!b!"$%" $%%#p!?"|$$q"b!'-/.I,)&%%&%% &&%$^$"%V')*$*((8*#+*){*#,,+*$,]046 655G8":N:9:":x85G58G<>?@v?;}64l8@FF@;b9 72--5M@G,G@8545 8:976 9=ADGWF?$5-.6?B>979Xx `? DUI6G|!')H($ H> jE D u991e;)0&Y<й ִI$ V׾LĄUВ–ñ ]𿋻 `ijfEЛż 4 Ŧþϕ-qkԬ !$"Ӵ! :ձQ ԖڤٻAzn}[!ٰ)% D%T/&ǒ(%η%r ϧJa ٦nǂ٦- ηŇ 6٣؃ȾhU&JһO;Ѱ5l!# (u; -j {, . .0-q*'\%+  U y S b  )   v,8r%U$t "#""w#%-(+i..*&##m##X$%%$" !% *-02321`00J/.,+5-023q2/[+(;((&$$'*)&#"$'))('(7*,- +'$S#"!#( .0/-, )0)+b. //1451-,/11P/+'(* ./0f2442. )#!'& .46E4/%*')+*&*"e !["#$$# | ##x#( d'h#, 'v'%$ "B ߳b ˀ`:73:D2P%RG95$>MTN->-$#-$ `.(p.2/ .-/112212/.0327!::60-p"K0#-7x>,@-?>p?.>,:7^<(GQVV*TcPI@)847?!HLK2GC=BB1B@?CJQ]UW+YXRSJ@8 461?HiLJFDB>y6 *>@ ',..<-,e,) # qrZ?? ROg^ ) } V݁ qӓݥսΐ vB 3FWd?vʼnlܴvmZߜt( 7mL+ R qEX#ax ))+1M / 4K6=1 _/+ W.* I$  fK- /Wb 3u +  6  RW _ X ([) . ,XI-I +)i)*&% y"r :t=:J@{٬Q*{ڕ1p!Y&(+k,*|,&h%*GDIJE<#4-)*./W,'a%#&^())$'"M&!!*)!$#)+$)(~# v  W 'y  uC. D} P^{\ ^ ]E "+_##)%(Y(C(% sU@ɑݧӺ Ǜ`tɌܕ=֛ #?ɤ)-/^*"X)(^' Ƈ"r_b{1$ 3K @\NY|aeemNln l iO f  `V7N+ JBg :  .O#   r V  PUv =!!mJ!&++- *'${ A#--& @& /45E3-^%!%" #m''/1A3+8P>>V8.1y.-*2&$'*3*()+.54:>A1CB?P921+* -0///.-,!)(,*2K7;W@$CsA:2#-,-s/.)$3"#'.7>N?:q40/28 ?BA= 99;== <<>=h70. 3r;CIM1NMLJFB> <HLF+8+V&%#"% .7>mA"?7+9 '+#B).m3*785s.+'Z%)0.5q51,,'&,<6,=<5,+(!),4/,/../).,,?.'/W.,r,&-x-,,$056;=$8g/&! "g'/~8 >>90"&>%*+)*!.13~4!69=>9/,$!H)%./, ("%&'&# #,. X   C `  P \  v ? dg!b!! 8x]ߑܞ K 7ΌӲL>mDƥ!5³ģ q  bҰ 6Ǒf>ua߹KO ۳+ nȖ=.콟ϴ%ŭsr达|䱎䱣P[w ]I'ʾ˄7 `</گñ&ֵжx.ս̾t5Ŵ?oDlнϔDFGj̻JMؿIݣ?ҙF<  !e-3:0'  !(+[*'j$  #&)'*)('&(,.-+-*)+/~12a46641 0136 6F410/.-,+ *)*,7-,*'/$"L#%(*!,+))'7'&$###A iQM L"$$#"#%(?**)(''&&c&%;$$&'('%$%($**_*)''b) ++(& '((P' %q#! & "% (*+"- .1/.Y*!r!&(y))&  G"%%#?  o rJ Q "!"""% *,)#,'1763/#*") $)$/2.d&( ($o%#%r%":# 1A. | I*  6z g    e (Z   $'$i  p "4##I#. K Z& !>$'(&d$$$! %&&]''%""%,''()A+-/0/01345679; =@EI*JHEB@?>_@ A?<;=@B/DDiDFJMKG%FHKLdJFCEGIjGEDE4GJ{LLJGEGJKHF,FEB??@ACVFHYHGEHIHE7B?=>BFEA=86310/--/00.- -j,*( '')<,-,,b, *x&## %&&<( )(%$ &''_' ' '&& '((l)***)(&%%&\&&(-12.(#"-$%%&7()R*,A03G566 3-*,$1K44L4(4456062-*5**(]%7#'$&=(:'$#$>' )(&C$##%E(('&J((+, +E'h# ,HJDA<81JM)h!""N#&'%#!~!##""">#%%#! #$"? "# "k{!s%)+*Y&#$ %%%& '%"^  2"$,&%" [   !%&())b*+ -/12>1000=.,-..-+ )w&%' )'#7 U !!  !8" { a`9_=  !!!c! 1mM;]W oA@k (\){8O +)"x/J "&3)j&4< A !A!w"$&E&!oA /G!!H[ H GBj;9'1//1p&W  4q/c" lF_}QsNmlO{sKٰҚumϻ&̯Ǥ'z&9k'b"4"$M46Ĵ vŠÙM6 4𺅺Uѽ 񲋵:7ȫc[ƪn P fij0h /&Sr9j2鰇@魜B6XT𯊰 *Zȼ8ɔ;ͥѧԓٱ WބVKg2 WoQ$,G.G [3 : ? = B ""{"A" xCyTGjC#*./G1<465C1+'E&A&f'*0=7;='?8@n>7}.1'5$#e#(" #(.2+31/024e3/+*$$+39X;952J3 7X;:O;;:9Z9q99\:_;:6/f)j%##k&+00h,&#T#k$%')l+,*$e$c$=*+(Z$ TyIA\6"}" +#j/; x h 1 +  e   4 f ;^% m 3 omS{< 60     |   e!h & r  Q VC  E i7 :^ !$(*++)>'%d%&'())T*++*((*,r-.//,*h*+,,-,)(B'') +g+**,---.S02331001N2355445#7777#8>:<>%@ABB'A?=D=(" %  '  x  3`  f ~ biAvffA cz4 % s%b,.0 46&d9%3L5~-P*Q":yڽ`Dߐޱr6+$ 7y ;֝L nWR ^y #Y%+%&'7u%/&ѫ"]N $w$@ٺ $e+*ȕ-,.Rp4k͛6۔};9α?:վ9=ܻGB׿>D˿,D͢?ڛ 9Zʽ6/%bҸz߅Kݷ+Ra.!k->u T@ VN]8",,B,4.'%V'`# N^H M?% {;ATGZ k JRFv5cE  1  _ " 9   `    A    J R   Zoked} d @N N[}  K nD  > < _ z _   :7  F =   [ d pT"?  P 3V; <*>M@@j?%=7<==A)DYEEpG%JKID%?<=@"C~CBB#C$DDD%C+A??"?u=: 9$9B::y:::;d<<<<="=;:L;!!AA?<<>AB#@=;<#?@A/B BAAB#D FFwE#B><'=>i>=Y==<;:9$7421.*w'&&'+((=('}& %%')*)(M*,-,+)()G**N* );('' '''))'%$$##$&'(((''c())) )'4$ m a ( "##$J&&q$" "!  !!! !#%%%+%$#$X')(%"  ! y2nP&  6M > !, s ӦΎ Ϡ ȋʸDǯcUX0 * l ̢Ψ 3 uϼ r ƟҾG%u®W޸9qr){B~̔5 ̲5΁-[׈BH mf &),)3v:SGH2HL-gMPNKLnIoHx@4=}U2$+ "  q  [  "O ( 2   y   D !  '    6 + D {t  M # & (o -[-123;K:^9>; =l?>?=Dv=j:; 8;f4/@ )%486 ^(!, B  p`$<8I [,y)> vO n&`\ U QMc=$4x ETs5^Q|$ -  M 8Yg %  % :@L  a>#$:V9;;=>R>==;9X9;;=><9:f9;@4GKLI7D\?;.978:@G3KIEA/>C:65*8:;:):97g4&1//. ,)'i)-P13H30,+,.1.-. 0h10U.+)*-/..-.-+($#$'+- -,-/0^0154530.-,+ -/E12Z32/--.,)'&g&&')*+++%+*P)'&&#((&$##`#$'(% ##qt x   d  e    x x+$ /d3^8B:|1?a@ۺ? ?,=#8(3V*)!܂]O ;9׭ԅ؟&Њۥy1{Qc)@޿ = J  (ܩx0  ,:e#f<yyw#wn& Ps V k   G&+! #%$G0 &[*& ; 9%$9 k * # X ~d Vq t eH5 SDYB &'9/-W336+H6ݏ28:H2Aݩ1-(3$U!K|vR}% 'X ݡ">ޥ | ,"V%/D~8-:>k7:^:; <AP7n8n:;883 -./%'L! "3m!A_  m 1 |< 0Yt!!T" y"u%7y$&P+ *~ |.V-5 0 f4 6 t4 4\- 5 5B5 6Wm422200 4a 18/ O0N 2(3PW 505:{8  97Kh9F;F94, %=  f)]5BRW]) f1lTqwh z[ z Ir mYfz` Q-K _ =+  + * %))#"$ &#%&.&!-!0"T/".#"!')=%<$'& !$)*['##(/1*! !#(.O2 0'h#186w, A*48984*  r%&I$"t#&('{""$!&%w (m"H$,  t)  % 8 &&8@!P -" HX'!S t wcy H O  W   fNG ^Y .5Zk F!V-"ݼ}#)''&Fm* )T '3% $%V'+ H :ifH| 5R7J8 B ; =AD g#.~Z-tޓ48<+Z*& Y[u ]  !x/<O)]+hu~ { tj m d^ a8b]c; h -mqI>{ ~v^kZ-  O ?07 'Z Hyim  <  C'2( (' "O B  e d  - & ]- 5L ?^~ BUFJ> Lt|KR oJ++K#HIT!"oEQ Ay!=&'$ 7s6$%-o &$8 ? n "N{I  ` ( ( u + 0 C3<2: ;FL@:7S4 1 E+0$)2 1l } a   "F R ( . 3p8?GB<>ػBuwC݂@x<@٣9އ7-L."g u >*:   RH4 @ H$&))f)%') Ib_ "#%&@'&# JBiN  f7   2%!<   .  w& z    *}|$ .47&C'"= >Yc9 :9J2iO20G)L6;8ZG9 X:]/'H_.:D6V=B_cEBNUcPZUU+bQ R8/F]6BhA 7H-8-&=fذ6 r0ԥnHqtՁܬ 0 q؞Мt-֫@6i׸P"<)>&-U259ԓ<= "?88ܤK5F51+ߛ'K#qhI .dlc B  ! ( ~t }   > aR%k}A * t n[&-+  0t48q? Et D@ B % ? ';N2  0 ^ ' 8 T   70  T 75 , w   f os{   g ] ~& ).P27  =A(E H  5 L Q OrR I T 7U\Na 9"!c;cg~kkBs sTrCrqPu uvI(p  Qkch _K!Yv*QoH kA 9{c1K+!   | I ~ B %'%!e%%0 !&&$)4 1406%#A; ;@Bl@Y>9="K%$ "8)"4$!"0 ""!) W !$z"8 e} 2   }a7   X.9 C /H  D 3 4  .   R!#,W$j%a&*H#r"P^o2!!P!{#'s(+ 1#48ϒo>Cϻ(I|ܵwN,ӴSʍ̰ӗUWܭWS۬ܩݟPPݫۧQڳOSIwBξR<}3)ܲ$jHߨ_m$* @:&/*17EW>?SJIJNuSQUNLEIllDw Z B:m1z+c$3ydV X #}x 1z T|S!d"n(F+/]0Q2[.~X1/T:.?0',&$>BG}|i  Z G  e  : T    W`% m ' f. W 1Qf 9wq; ? <C><9I6`;-'j"m[ Do hs ( > +P1Wn5 : S@ C JE"#!LlJP T$P#3M O R"O# M MH BEZA  < m8 8 / [ e&N& L N pgZBU785 H5>,YKx6 ߀ FYW UޱQ 7b9C$$o&?.),Je+6,*%$du( P |OT#I,1:1p5on7A| 6 54 . C *  ) !   0  x Y  Q 4Lu  #(>0!$7# S9!K"!!A$x(*6)A&%%&=&H)/4;2(y6!$#R.+%*'$F#$2$##$M(+*##,-:+(''S))=% M  X/ e'     Pun7"  )\ .at5N =Ar?CWEIKGE=@݄w;0Q0ض* $~Z"@-CF گ.دٖ\؉ 1_~6+ S,[na?W " y%  D $q"e X Q%9*)i&$f%(*)# #%#,R!"#&u+/.'Y4+} Z xc %('!^o j $$ { '5& ',  11Q2"1 ,* j n  / g' +" 5Z 5 T > ?t D<z7"3 +Y%bTN u  )t q  -  +%+6Y/EM/ RTLWX' \ XeWTJIPjCoWAjAT@b0< ` &.6K6T0v*''N(Q(&#C )4:N+ !  0 1 t      @ k  = y".l U8`Z,  o % l # NT  H/D!:%.2z5O=X?7B7DGCD_&Bu;8:1v/@";Tk ?w&/6 e = C L 1II5LoI2GHt B  ;k 4A+    g 4  t   &j ' =. 0 B f56 . E47( 7 \3  . f ,/ - K )# 4 " c J Ws  2 57^F;n3!"'&.639 =C@69C$BBظڍHڼJ?DDCAu:>663,$57U ܻױ> g Z{H>7< nbu!&)X.2!8 8 9e 7 R Z 6 & m2. f(  "A 1 }9 `*|U1W"$":Y=Bs$B Q A`FC `C  ? 8 " : = 2 ^/!c97<;  >  Z c  g   A a   R  %x , cG o<1y Z"4((E.1#419_1]25k48 4n61304:/ +`.k'"&:$xt/Wz AAIJA9l   5R Z y1 U \N   wDfhK\v'!UG:1m n .,ek   !"!"$!&%#?"%! x"*$#!(D<*H(]"&)(*(&%(%"J- (5C$+OA3?v P     Vb fv[ /$&/%"G#(d-,v%"!#"~  +!S!"%5('"D6 c#:# ?DH!J$I"# JI@Cj> i8 .  "  @ 9 - &  T%*% 2  6 ; ;z<8|6!72 + 4!' =   0< k UX/e!j(s0ذ7M>tDtIO}P=UY TKIA5&Rz Ps\ , 6EQV^֠ۅelՎג?qksԐsoj,a0XRlC4'!!" DP]{z^'g- .4\ 9<,?B<=?;0>757x240F+\- **^%p~4қ AlA׭ePV:N ` a G uOhYt@V3  %' (  E5> 7TGQ Z C`Og  k4 p r5t' s .}nbga L eT O]E\8-" 9"%)(`#h&'%"$k+06221.r(%)1/8951.-.3-98/&p&.550-.368$:X:9 9&878;;)>|@A#C,EnGHfI0JRKKJ.IGF0F*EB>:%7/789::;<<83r. +W+-/0A/. +&$ '*(V$"%+.,'#!-F/ '+'6=qE  G CNA 0@I <@ 4  1 $)y!~ 0` =  m ; %  \ #-126?IZM\NRW:WZ\W\ WvZ.KUQtNKFByT@Z773d16R2.++%,)%)W%y` # ? Ay7Vqd &tH] 8 FsvTZV X ת?+ 8P e!.6 +A=F S]߮1Z]ٞhb_dkgRߖThߗiedb?X=REL}G>x;94=+*T-(# +$$(. -3~25l@JGILL SAXU U7VU>UT}UTQ NDJmtD> > b8 ;.:} 7 n;q; <? A'*+*D)((*G,--*,H*(& %L$$%'L+./Z-M*{)*_+L*((S)K)'%"JG!%$8F =G`? -< L96 L- .  .  * ( %V" 3 " D &g6 g  > J A    *    1 %%(+cz/+.6.+$(5"a%4 As$ `<b !#Z(0p/0fu.!4._)'"   h- wFi&1% + , [ . 0 3 - , G * G &Y$23Ae c `:= Npx!jh#U'}& +<-!0,c/p-. k+)$a"Z$@".&  qy~L  2   |# %C)%x$&;# 8jV=    ,jL2 !Bj>!m#3F%*'2,S02 2T 5:eE

KBA} CdwBMA'> @i;2T515,2z(K#7q Ywj> jV`%i0rGM{- S MFR_ /Z s߹H+4sVA `B # i ,02G7 EC G FH J H >J F AJ=1+<^")6 e : " "[t% 4,@ 0 x - 86 7 75z5 $0&%")!&\F o B {  9   l 0$#-#$ ' * %|,2{ \t4!u#N!!#3"LY (h  {  <(  DB k!*%7?cD &J Uf-] caN b2g d b cPZ Q1JDA1B*A~r~#@*8f:N= E B s F  A C A , ;7W4].e . J * %  #5 "K1  ]|   m g' j  5    ( # p ;K   k  ,  H 3?!qwIt  -t:>:X_fb\5,nQ߬' o !vVM) {$W^(!$ ~><: [K A +-D*Jc O7 # (hF$3 J> =9pXr_##& )-,V)?+0e1pf/~*,5*+':j$k!J !_!+#9 !0$8&L&-1/9V1-698S9 ;T7b55oa./#Y.!:f h 0= # J %8-1[f1b,u,/8-H( "?B4  R p ) @      Z  : ]      S S   /   S 3Yyg?b ?"9!q_k h(2pSP  dv! p  s)   d   WA : ;Lo EC  t  D f  I  )0 d<kV.?Q}  " H  3 Phz  5K  1  Q/` FL#%$ " !# $Y$%(*6)&A%$%''%%%',0v0).%-00!/v...$,,'!- $'A)7(s&%%>%"A !"E#E$ %$#E#" Gc ""H CF=k99-(.d*N  &P 5 ?4  mE)!^ Q/ 3 #$/%d%,--m>/,n=1R3F/ +*A ' ' eDjR 2yTOFHZQ,r+= 6f{C(Y1 06N=pgBHWGJ*I YL HApܐ?6k,k%*S Sݤz ݎ!ݍ!N -ة2N܄;&޶>ߟޡA׽ԪAԿAץѾV>q<ή̈́7X2Ԗٸ.ݳ׌"ڍWV^} '2F޻ P , Hb Kt q^zlߜ (u',-0~1m483%441N0A;-(k&M t    %g+G%0rE?MBMK LL wRAf P  Q 2 O K E  = 7P,- &B  5Ol  2{QZ| K7wZ3s    t m 8}n49e ,)  '/)9 A:HM*T+PY .],b3 bb Ld0a < T [u Y- TZRd I! B >4 .  G'     |   W    6    _  F A d }IN}9M\nI~. z3 % S  ? W$MJ(q+ ./Q,&Z,8,+ ( #! !D 7    a      h  9UI A t @ ,3 j\  : 9$3& , . > 3  < YB w AE I qGW A  C?\<782,&=! ;i  p /  N| }&5, j24j<d@,?;;t2U-(x"u?h5 m_;y&o-_6;6;I>3>p?@=_726 1q*#7  b:W , v  ^l01  <IJj+`.fb3%1.3\;5;l 6  6  z 3  -(%kB *0!IZ$,]/+0r24X1.M1, '#U   0  ^ -9  ~ _   `    5Fcd!$f*?s[ {QT TlZId w y]*.t1 a 5?`e gY}W!}(*R0v/z6e9w:5AZDn(E/JHoDH7HE@@=3A0-;'3?##}cf X /V+yR +]{ B)rh+;N ` p K]w8r#!$"<#CE# } %70"^?5\M3tD OC4adB   Fl   6   { s#{20l/NBU 9w$'2 [ i kiMh @1 (XJ X     ' N  1 S M@ 7NN   @ T % ' (01, / /0k44ib4Z 8 2 ]8b4 13aT07{'x& `gYG -  K aiJM"+Z42h>1I? [$: d3 '& L # "KD  B ^\kU% 5 e =L} RRA : t | &  c K  V  [  fBC m@G$T#"[g)C ` : 5  f  =FW jV ddhhDRA}r{*V= h 65    0  r#M4ASR@X d 6m   Ll L\PEP!9s$Y+%G ( , M, *  - T 5($4"QmVIq)'< ~x`mQ*T3  -T8Av ;l}޻U! $&!*+2 3ڑ57p=:&==x=;;<9,3U,}*  ?  *k  Z Facf Ss"$zm&  m ~' & c :  H    9  / t  L  E  G K  h ~     7#s~%Ry, - t 1 k3| 2 : 9 :==7v 3:0`r+9($Q)>G klN"| q aF.!V gXe x ABw?rl ez %{Z{Nrh!2/>$k .GcJ^; 9x>L< NH[b}IDm e #D!=lVhH+n _P Wt  UyX/   P   X  N` H& I;NU_am LvNs    "! "'-*/+z6=6] : 3N 9  j :K<;F68-5/,)g'f#In6C `#u i$ x(($ v ^&?$"K W!# BP s\ F64WEDT* y%It_oHx5|   x  jv& % . / a 3 3  7 / h /  .y-9y( Q #   |    w    | >TH) c  ;v E / ` %  k Bd   l L A6][Kn$cNt! X#[-= #!|  !" h!( m<"44"$&&#`')2m$H$0(#m0#V"f "*_ZS 'U>~ ^Glco l' "#4#r#])ݹލ+ݥ?*.(.-T+l%֪&Mݟ!۞1^CeKo@e] qr> ߁sOh r+BQP( gOmr1,I SZ d \ qB Q{&nS  H{2 mH Cw25 |? }? AJx aC .  YoUk+ z6 /   ^  ' b]   _  no#XY*x     n  i 76fCT>tJuD Fx3b  Qh#@5>2A;o  W  * gL~BT{;wA S 8  :B   K $\ ~% 8~   9 b8o * ( xO@   )v  \ -    x      4 :    K  >p{6PP,i:{ lJ4$ ^$S' -1. 2n04H00/k,(% IX ? $ p =#$P%"'(&u%B|!}%@i<۬o (ۂݝ' Sػ Z ӻc֋~nܥ  ߣ۵ڮݬx<3Y#ۖ >w#[ޡTTuV x6@xKTc'3-+)tX*|2#/-p-*,)& &yRr w ( o ^ wp 2zZ(vn.E /SM4j+$HC3 p3SCt#D " ( )/p2j0 "!3!!"n$3&N'&$/#b#$c%1$""H$/%$ ,"+;*%"U O `   `   }    S a 3 c GI  (g]@   =:q^ B  BG    ? # h % zx'm(8(xG"I!#q " K ` [ J ,   Q.   v r 8 4  ;  k8 :  T2  q $%"&+$>l"J|CY0T "#! X! #$%#%"'. &  ? `a,s  Y <  * J  R +mU| /!# $##G% ''&% &E''P'&?%$p$#  *"#!E H,q GNb#n"$M## 5"1J@x P Y12* qi <3 ry &y47 C BO 4iK %b)*8y-2ޣ0# I."4w&)l*TH/F.264=2]12,++'x$t 7  9 w  H@y  @ !*/|b;Sjg|^$5 Z Gx 3 k ~!"#$'* *&&"eQ +"r#9^!$ !k! $ !A#8#6     ` <W!7* o f 1 %  "  R7 ? <l" 6 ^ P 7nw,q Uk{ ; =   ") x  ] VhK)A{E/Gz nB ; byto:__8v=! :}6l 1  Y     p  "  <d o q S  9   H "5 ,5U0 `  {       g    == 4    x  yoG  L  ] a:   @    Z  9R/  J       K  g  8eKU Th// f O s c 2 Q$  +r4L & 2v(cNMUu B}P<vtA8 # G ^ T o}*u4f&6gf: V 5J>oT7X 6(Hl !yhh}\]SG"{fL0FcKx;t. &     C[@R  t $ FXlA <>*|( e ; md M) Y    2 N   ~ (*    u P  B  h   T Z  P  *  U R* j   Vv =*Z l *|] = RO= ,$j~  K M   s#pLK9 4 .n \h0 Xh  2 } Z 1HoD  neE *L-1]Ap 0 X L [# " _/!!oKTfI&F} }+  cEA  Q M X  _fGD>8 US T f   ) biB7[j<VYE;4 <sgh$ 1,uA*At ; @Ht^@}#!|39 " h _z 8un XXzZ( ( c >/v !-l' 6s'j[H5G" I )S14j,<qs !0 v  % Na ?& $Kfpe J) mVjC g[ ,`ya"g$'=W(Y&%(%'$#Bxb =bHf /  , 2;zf vJ.%'A*/v38zv;;|;_;;km8{20$.*-e)7$!`)M5,    Z0 :  A  De%   xe Jr   #  2 vba)UwNgJv LEJ w   < r] k 7CAe M- "+w Z> &,(#c"4:? "A0;N-N @cnLE}G@Gd!6E/s<[U  Uz2K@   ;M95k@;w   u     %   m  q    k   <  B & f  4  X B  K     $ w   !v ce#$>:%#r$r&u "  : QbY Gsd\  - Y6G OIH/ `  n#WU2 j- ]b> 'PZ D    V   = r  &u|_ x9=DAV6o9+.V9q<   C  _   &  2 s 3c   y ` D ((Cj?xtt$IMm~:RRSN=V, ZQwy1B7XgB:?]\< qv]Y B|TA;mWXH  ) 25Zi^2! ) "#X- !B#CS43 0td 6 / - m=  2 F 1WV Y3 6e!:RlJ?`m 8 I `nFJJ+ t{[E1 k EI 9Kb?,+lj{38*`Q4-ds $ K  Q   H_h ! | 7  F^ j  \   V  a   D  9  m  E d      ! &   _  l 3    K  .   z s  [ a E=g6&$wz`y+ _ N  +2  i  >   ! ;   Q U w X   z     > J  , M  rf# {' U'!]rk)UjZ` <  a> D l Bc 5   k   a  6   }  i  @      3 d 1 (   : # 8 %   + G , N 0 *0 , c-+)K $%b2 =` %l ! Gb!!"b k`867 v/ #[P'.F K  U '8  uM v} G, w  :Fu|E Qp 5g[PZ6S[MY Ih`=\C 3+kE n@]} n lZv Pt Rh  JWQ.`x8O3(' > 1 < dF~ c%Q ,dNpt&X/  r ?:G6~ jCja7 K >|QA1 q wc`f$mngR%CXE 8{ t>hVK+0y nEyVf=j!z?   O \  A; ,   t*  #STD | s   _'> P?-  X 0 3 d " w W  3 '  { b ' O  s d   x   4 _  Q T  ^     l    Y1g5a 8j3Gkk8Mp.|   }S J; 7  k "q `$x D7Tf> P 1 >& I K F b0p+n8 n / h+YTA  W 2N ;Bygds}AlBl;%z  zHHaZ o@LNgHQmmU:F5t2aLcyh!U:3Y3){nwK# >  m7kUSh   ? ]JdWG)13Ji$yge@iw ri7- z/EX\A, _3 1UsUbGpJ qT'@jWhO   S } v~}Uf < 3   O J\Kv  C ~ z .   _  / 0~ X AKF|I ^Q [R [VD*_k8^e @Q n9  @< N  U   T *r; 1_dBkeGo,]0s=n"dHu : rJJ   Q \   \  > Fk"},uXJ  ?  X  M  w @  v    8    +  5   <     \ g  0  (   f   lE {a AN IO/xE\FdB!lt3 iyw x@ l9 Z{-PpP?""0 "m /LqW (e An%JQ? - <d;~GH 3"",tw!5|8a Vyq f   P ;   C   r9 .dr  ) X Q?]_ 9 ~*4 gsX =Iz vZ V  l Lh tl|% l( +  Zck]?o/{9R%k@: p   }t  2 Z  FX  PW R \Ys s[u" 0Gg^ U W 7po.7&{ O ` U #W+9o0S"MR3a L  F]  b  ow m  ( | jV3* \  U  h ?? `Z &?f '  A93 9gt n y  b EF  a Dx N0 3J ] kWCwye5 E 1C hq |* j > @{uM 2^%*5%-#zD,: h I< " g Rd nTq)V|u > ^0 w<  H? Gj wq/6~AdKV[4Q kMg7 &Q87>C sgm+)kEeB  Z G :& xAqz:d/ " m~ =DshrJ d9] 1qS F5V^31  B=~FW{hl;G\C1 =q aG^WWZ A  q # 1 5 m e1(vX/- : \ 5 (: }nFVy"  > c -  O0th%j: l% n6 Yz\D&eL~ ~:t4 BM0:)y: u >m , $x 5 n Z  * -e@ ? j>s@1ir$Me 6 =4v .7DJ{^ *z '$y S j Lx v7p / r 4 A  6H=*M IK f;e2+55^~8eFi  k z*1`Om8    D` XK gAZvlmHYttV-/bI% -o"0%x.fhWJtX7w z / t 5hufKv;,?^ qBh-u7_XP9[Xu'>G  & 6XkV[' !#HNj'oC|+    b U  J }    i H    TRoaJ   z  O  9 '  ;  V \   ]   ;a m i&i$oDZX  (  P[/)D} > R J; ?8H#)G5bIhXtEj:r+lY.4*i%9f?7>8Su-ZeTsa0  +f  J  h  m  M X  O  &  l 4 7 |{ & [= # k :  ; r Rc{2;a^i-aI- ;qtm<Hs.=jk1l6;t; 0 L>]Z2 r b  e{bpEl 07 oH.~;FD/ <  A 1  ~ 0    L  w 1  L H J Jdb  VE1aWAw*  0R i 'CI|"5^XQ"g9)Q"7b RP Z F Q # C U A )GG  + %h 23z\tp ?    IeWa   Y! xAW o " #) 2 2eJH!^ [c^l<&sDG C) '(h\t'1k.">Q)]]%"wB1xo RO{tQP l=okh+l~7 m/zY I )tp<Z!3zW-hp3d  p2u U  m  . r   ! s  M P  ~   Qi"xt#"goM!:P i[Lx]=r+  /}@] w ; l< hO aQN  : r #{/l9jOPIQ !}ln= dNReVX(#8"_&o:Uf#g-wC% E)tA] 7  _ .z&SCV ] P v- x Dp@q {4 . [ gAp_9_5+  zs V L ,[ p0fz1a G {x q  [ 7   N  <  D  1 o   m  1{Q1   P 9  &   I U  5  PB   .*A+ C{39giZ.!k=U_> bY  c;kV+w:x2w1t5-,MfI!N .H0 1` wtl+ko_!Y43SVRklVG~=\:[n| GY3hb{)D.r!+;QJA . 7N r+'jp@z, v ]%gZ@AF w n B ( i1\OXk . yjX2 /@ O <J c B[ K w MN h F }l"JlDi6]Frsu CT y s l r  D  m3  3~eY ;bIg    ow CJaE FY 64l+ [ V        M    ^kHf?>hA      : '   z T    ,   / T     5  l ?  p *  s   6  ] a   a    @     A   8 j  M   oC@pMa v lB x^ Q\+kz Q zr$ >[t;#W j <_L^;Ahu y0?T|  m]X { ) y .!A\ia5T!g"=#/"#r"yAf? u2*sU K.{b@#L3&>^&c$|("U&"q"O1} {- 3!F~~w ?>" F  _9  -)0 k9 m UF m " +  3%yp} 2 a?0!z"8y<:m7T[I ~4gEfU  j A n $>]pnl c<]\vt`a#]8&P $EY ( .q W sj(3 htA ]XH yb@/ O ~% [|  ^A *       B\]D Yh Gi H O- + YG iF *[ eN|&  6  G    (    / ~x   L    JO "a'-/6y'<s$/,E L[NpY12}glV ZmE H aB J b4 X N o GJC[L! { Bj  K7A"m /Q dY[VW.c @ 1g 'pmU5NpYiR^z$ k-mF5gK5h +^nRNn5%8 f)i}Ab^C1 v /`<_H  # 4  ?7i> ^l "WP YS /.JgT*;h 5[o 2t & ]T` g0x X ?oA {& `    [ p8<k' ]-  FfC}ubs G= i  ( th = w !!-  *j xBUfc\!Ze  J ;w q C     mIh@o6 'f3$}@seD8zm,>n 8 a hQ^0l8K}m-U   ZgRW]Lk  'r5   6e@G$ Pvh^A{ 2fZ  1N `*+RZN k  5[ e.  1u M@ 3 { vA p  JZ      w-  } & 61t" # `_Pl7r Bp+V\G` Dv l 1zTRY h '{$(? | t nz$-=x ;  c6  ' )-Cd  !   'z:i:%$flUn8t=cT({Wp,1" &$:[\Eo"Z_$ci .}   E:%x3 5 X/ a  ${ u("    ,cZd-_f@}JfHq" 9e UMg   "n>9m$|2`p1{   6Uk}@Zc'- oA DlcZT hS9MfB (\ d-   ~$  ~ s/RhCq$'&)d\Kp($}dNopIgz-#    " y Ei (rQG D_RWRbEn*| |* ,w"(q 7dfw0y6'eTDo   !|+v&c   8g   vHP 5 !~6t3b 2w  z)gWH{'lWh!   `D/  m?m- 2w  lBBa0%'1yJD"!   #mKE ,AVY Ax  gA7 o= GPo%  0 +3 IF%%* jOB$' qEo  v6_Y\ ?i)})n?9 CV~ 9]e#M_V #h Q^   1s=fI)". v  qF dIiB u%  5w z$>X2z$%Og q} %  Q `I  }`@ 2z.n6 7b_7      m>m |3 i       }*  } " &z   &cKd    & DJ m  2{ ) 23q3fJY^ # 5)9Z_?!s$# | JW YImy& w2  { ,$  !k QD , ~1##=|:x  w 8;YL& $kW7    *qL\ab\Go" y<     t<;i%    *kB ]_Ya7 |w?`X ~+! Y<}%z$,{fNf'|   l E^b   $ yE+uu'    u8z%11%}  *9e 4.z"   t 9| { >r  LB+  %  |5  oMk # {% ' $ ~=lu%     =Tj%}  z%    CH             rHXWC?b-0} ,3mC iK$d [= 0nPRU7 ).vi<|+ !   !  1t c+w y'   "iDq,    *.w.y%w!s& ePXSVW"w    - $  }q/ h92p 9Zc- (0v  ~' t+ ! +|V7 h: & 0y  w7>Y];/ |        ) %  "y}   ~    %`WJh+  ( {   %    ~"  cWNl3  !z   z- Hfx&  iNU ZF v "     #zoNOg1 !~  " gTOh1   jRfu,+w     pGl cWKf. tCr >      ,|   ` ZK m(        ' FG(#     &   $       "    )z eJj   *y       *y s10lv(% "    t CX]   &'   $ aPe) * L<)z<m   !  '   !,np,      )|  v3  cOi   !  #  $|   ?Q m {?NC j     '|  !    "      5[[5) NB  AJ% *    eYZ   ) %*'#   " '(  "};w +"|1    /}  's        u/,s   7b[: #     ' +_b&    $    7p (     #   !    jPXVPe  ! $    w6 % j-   (        $x       ! $   !      %7M7L /~CXa3     v42r   !  !   <T j#  '{ {# !#  #  #   !~     >U j"  "     }"   &{       &{   ~"   ,oLZa           #    }   ) mHn   mQC $ )nB m; {!     }" LISTDINFOINAMLarge missile explosionIARTunknownICOPunknownid3 fID3@\  z TPE1unknownTXXXCopyrightunknownTIT2Large missile explosionatanks-6.6/sound/06.wav0000644000175000017500000035340412636021030013064 0ustar apoapoRIFFWAVEfmt DXdata:  $  {!#       mHC ,2 t       !   !  !}   |   $   "} ' #~ {('}  w(% $  #+}  $      ,px#A 's |*w} D@ /x3 EjIR] R m> h J jG"y X (sd<j M aH \/kS]^ | tMX  'w d=XcO|&va=  P] O "% b < 1 &u! # , r* fP_ !2t S    &o0mQd x0.f j7}#%ktz ui/8V_5:$vhCu>+op<s!?   \=Zn`9gXSvP  z"G  `m)BJvi'ew N Lx5kKwn\ n   1 i V qp n k V J ^ h; f ~ly%e{q lK%g7&  VC :{aaZJ cW GYnEd ~ A}'~xu #}d" {/ *fYF/t]iW]SIJ#0mR`BK#Z5cT@IZ   5d| uS6en vnb@u f [\Op8W(j hu~ % L"nZ> ! P Q- -}mNp;|jUK ttoy  [Rn[ KGu~_uB=Y[ i!$x } )Eoxf Kdi6`  `  _./|#Ed, 7 v J6T9xHhp+vgAs ^(k  9Bi }(  k'qdm.o3d ?lq    qi \JO Q KQ'  ) , $ r  } ;.~) Y ]  Q ZYRz){Iit+o  s W3hFpt Cl <qb1 S$3y)H`r\{9V]qQXS?O%.,><7*{ BA% J"3) ANA.b d= =H P  qK^4 4a-b5  0s_ E  9 l% N5Ic   -gkVwXbD ."qBu?/p"5hb@}:`w,.0^{<  ,v   .h4O-zQbEJc }9#@.] 'e Q~  BT&CmhC )6bq iQ K sy - x [ k 5 * o & i"BioNGJZ\7FIvo- %~w4L Q1 *M;R wX^*t5{M`7_(Yx1p;CMh 5 - ; < D  J =@c")v  A KxM`A/Pa.xb*Z{* +V35R" 4W  AL8Go" Ej %gw7~VO:I]Sz <}CZ I j  h  Wvp.hj"!K{7x%Mv;8n#d|7|~J}~~{Qa:u;U&Jc- 4N vq*-LkQ{'(C8D* _ Qf qh : S,D~I  P 17 Y < 1  snqT~ P   dyjd MY@w=l5 d J I 1 9   3` Yqn7Xv7H s x: 8 z }1 B^ O L +O f J*XV 2i ;a T "w2s I~|bj0 RI5   q v &*N'G ,h l(v42  9%  / iRPPqF/gU o=+t(Q~'?7Ao6L 6] [eLAK z  g0 f oKE1Y'^ <)NIK?C g = u L  X?g--:   &Sc%2l/  d ~P-d X-7/  D 7  -E b W/ (>i <  o MN6Q y1F b O-a3H7 !V d3>  m G"5r&~QWG1R:HLf3&5[rA-B=@==& 4$ <BP Pzy:_(m==@QF|c+6Wm+U|%DXO2 y v?? GX,^ S^: ^Gt<9xI$ x F] 2  020xS [[&jO Zu0f" | A w 4uxy  t] Q  2 ONQHV8 HgC A !~DHpQ ! QU i3}MG>F? ^   e V)-K  @ % ] q]< |l    4  Y  0 my 2Y'5'  m m~.{ 4 l LT   Z [POUx'+JY!~ 8, 0 *5: $~ v) c 8  p ] c u *Y 'DMvcG2!<R ^MN "3 (` j \ Wi} , :t g-]$ /gog M G  <] : :+RLMN g q ;oPR O(`h{"<j  jr,#~  T V !%h] u V & T'+)_O3 O 3 F; R ]TM  ?  Y   L  Zi  ")9%.=zms  =* `C)0eB   x5 ?  [    Xm  $ p [  ! 2  Y  l| F  (?HT   X O B  t]/ lT   m  w Q?s _ D  !^ KB d a  F]2N$  X   @g/FPf a i <Co   Bi<+( 4;%M s6 ? Q l ><   5AO>#svL FRtD 1%|Fc <g=k aR   9 s " 5 H1 e  =8F R a9 "-}:"qaTYG  )1JC EC }]E; k 5?MPth{d_MFw(W q  U X > ?[ Yt) p[  ~Fh*[*q2b^E +6 VAgqJk"w<[ w cl  r A  ) '1=d> c q  P~ "  Sw_a   , P I "  !! $zr  D   .6  D e 9  y_ C q @  L  & & v w D   > Z  . o u" _ *    d / [EK '   ~ z u G  0 | $ -  + 9\  c]: V  w! N(u  ku   -_49n )i kRU u {fF\D /^ kf g/|OO s " P4 D&)Ko!x idh ! [cC2CP1$::5 I&   h I ]9 S 9 8 ( v }a2 ~  U7 3> =H & v{ 8b,[po<?npVIHA w* 2 A3c "F  An= R | = u ! )RB,`  > D <W S m  GAn  y +   Td  Js c  f          V0 _ 3  | \Fo  ) ? e P  ] H \Z   p@    6  @j  \   {       (  N :  ~  /  ssQ 2; +  p U 0 h  P    # p ) M  2\   B   2  L R T]L.ijmpPR    / EB  I'Tj ^oTj2 {nL.'7*W .h e  zz Z 3 Y-2 pC 'h y1*1 quvC4: nbYiWg- '&niE&( 6 M=w;x8y% \m> ]O !Q@B!1{Pu[ V R *45P Q%i  LD!   2 9 R0F  f >  \-&  <  _    Ar {  :  l[ -DY ]  ah X  J  m6bL Y T       ,L   3   =  uDF  (   * M % W ]#5$- # e 1 $S !3+j  .  Zs  9    mm01d R ;   Es   F Fy F - d m R yL } z3 o  : Wc\%  > B~B dKddsh/]F: 85g9d b=JX/Y9)*>|&ry.^#&g V K0AA2^| yfM"\ /s 6N WO y /& < {6} K 4[ / ]6 o , 1n  X hr53V # [3h ;xJ0Ypo`DSBpuO $ X& x,2/j{:%]    n  k R  kl   HR k J Bq B <  v ^ c  f .+5< "'  M e  fj  c H o;  = !  #      ^ KR y  @  9 v   , $nK[     $  s (, *    nL   y c  o_  u  ` }Ea j     rj W v p d@  J=. ^,  P  n z %  d r"g   nq = `   "R 8EepplX8\,  G~  %  _Rm N.YQ{K,H x &K hh S2t8=CHK'DI ( 3 ! XX 6 [C.] lL@ 2_g;]"/Q  '\ lIRCgnDDTI CiiTbp2A } 3 t n >" Z*X}GX|]Ve#  i   > ,  5 H  X o `  2  `  5  .i   x n> _ Fb ] W 1 2q6Fja&k Z 9 O yqz ` ~#*> p| 3B m vJ    +Q  U   / k^ h  P n  O 4  ,P   7, w  #%V %X&)9+w'+) & q$1 P  yM? de y: s 9kgJ I +Q   q%OHWq6<  r $ &$e kD;)\vT #5$_!~"^n%! =aUu) K.l;J$; W _W8E5>* x+ ۛ a b "! u [n cx Ft@QZ,8b "FV e m PP? 5@ S 7d t1(-Bu   AelK6GhK >572  . +e% E /# #G #!$ D$# X#v$BJ " @$V} r T-T/ M v R   r y a { x##"09  x B! !#   ##!   HWv S0yX b \!l"!|  R3Md(  6b  b o  i XD<O)c<   Y\,  +    vf  C  } e   G  )   z         + x>] %   m) hyF  <` ] >n u3oP     \   H M70<E"2m c6 g Dz0M@` jL 0l +om4"( K  ] Z s~:j  . WFNiMOZ6j &w P f+5p}؋I]ܧQ|%s1sWۂQJoI%= - x l T ( : U nR M5VS j' S T I kc(lFD2  j  0  f U } $  q0  4h  f V{%N~L hz 6} E =$ V "!    PV OD!~$%#"\"! %  !&! ; v q #%&& $ "k p  N M  m #$" ) 0F^ q!q ,dC" #=rg S  ha  D X m   :  m|  ,  $ 4 Y xk   a M9  4i:y d z (*})o d6b]:>L'K <Mdl) *@\[ m?=  O( 1 8 `60Ku((%= M Ua]^]Sl ^ܺ y۶ܠߤ]I{۾?ُު|sx` 3"܈ޕy ݐwKw^y9~tr[GhsM,GM"iX2a:;76ol. !oQp>  G  / + "  5e G( X> J ,U~  L P T  3  +E"$#!  % ''%#$ "   "$#!W  $ #a%%$"sw$'(}('$"Y "5%&$!,!$'=('&#<! &*,8,)$YD!#$$$"+Ir| "$%# 1is#&%"N/!~""! "C~ "~"! u1!## LY "^!OV _H  { & M   <  7wz ( $H )i 0 z i  K    2G 1  w  s1C4y )E )! v H  y7B >1R>r}Am3H Z^qf^Ipu f  ܫB.}&ىܺ3ܐټikEվߣV܄ ]/ܷ{٠ת:R # Br k܅pX׬5ڽD4ظ۹4i! Uݶnخ:s4 Z=;L٘;: w -t W: J8 ;yxclE,gs | > f a,? i]   &iAfD N L  0  7 Z  T  o   B 2d$'O'$ c   ";>,6_h !G Y s#R+ 01/h,(z#lL"$%S$!dwSy"%'):*(1$4&(,/0/#+%E Sb "& *!+)`( '$  '! $F&(+ -+'" % !(/ 454o1 ,%C !$'( '$"!n] !!q% *.0P0 -(!  %@,1551+%   #(.)'&$C!'1"&%*+)% .[7"*143"1+>%.!#" D!&A)*'"4"(-.+'# ,! WX  t!I##! g  2 ]  F  \  m  5 c x 'B pm T> V Z%9J& H+rX  2z# nF^?6pT " E w c \i V+eN|0/!Q3bM*WN )` }" } >!$} | ږՐ~[ مB1ۑ m ׊ R( ҶԼKG& 1R ϾP۱+̛gՋ=ڇھ  фz 9 = x0Ο@E֛3}g[ݠPG5 А = ڧVԨ!  HiIOV w, 7~D' _aclsG P{ 7  A  S ;>      X ML efn      $X  &)  w o&**(O$0~  z%((() (%"?" $j'*N- -)# t (.131r,&V"M #', //v//..+)m(),.00-.)#!Hb#(-26162-(g#"&)-A1333330-+++-/0-)&%#!g  !$)/36762,'$o!} !#&*0-/2320,.+k(&/')+,@,*(&@&%##%)4,.12 1-~)%! !#$%n' )*,.0F0/_/ .l+'%$$%C&%"Y! %.(*- 00.'+ '#  ""h!  " %p&&& & %$1& ((&#!JVM] #&'%$"!rZo 9i5c    W|o`Z{b   !  ]  dnyW Q N 1 c   ; , fU7 L ]   Qq %   Ql@L   bsw3< N8ߎlT iU$ N n4=]ؚ֫~8-/ٺ{ ݯ'؉r~\K3E ܝrϝTbԒ {FQK.Y ؘw ֤" ^Ӧ NԲ_ K Fλ j XY Д[  ՕF ʂ ʀwpNbVF7ŝ.ܽh: ¸ Cȡ JՓ׊ {{fsї J' Bpڱ4Qg\x {%޵1ݸ G'@%IBp^ W \ R/  $TgM  5 cvb /  D O Y  w { Ms'[U~d! z "V$$!l"%&%%(*k)(* ,L*%(#$[&&k%#B ?  e$ &%$R$ %%'), //-v* '\%%O( +{,+*+,-- ./1g1.+*,.p,(`%#"$x&)**})'U%&(,/2d452/++j,-.-,.0100O23S1-+ ,-.- +'$v$&(+..<+&#$ '*^.1220-)'(+,,L-#/J111!1231!.+,/$21.)+$(&&(") )&y"%%",147973.+4**+*`))*+**+,*& %&v),.,(&& '&%o$!h[ -&-48:: 640*( '9&$S$%=&&')*(%#!"%(**&#:##!\  &,//L,&H V!!"$!%# ##X=C P  &!$w' '##95~ 6 U A    (   >{ &    c<   ;$2KN, c PQW s I "@drlQ  rD ٹ ( ܷ 5 A mAry[9ߖRܠ Z  ~Mٶ,ϛb  ֣ٛ{ެ''"J,ӀȀ G 1 Ӹϛ i U =̍ Kײ ڨcĈT78u_̀6,ʵҞ5լƨ  ыjǃ zMֆAZ4ʷA6fR/HA:\:,F^Q<؏ݪ`Fڲ/B.r$ `ߟ)+_$ Q\pH %dL[ BI o  \h $ >  /f bn 7 1:  !F%$f####C$%$!    j%*.0V10.+k'#!"$')+u,+}(%.%') '$$&)+.0/)" W%+./000.,)'&(+/35\6530l0366643#556761.+$b"4(.H35#6666Z5 31001)3578774y1/,0466M445567(62!.);$ ##',1455431.+('G'(^+/d3554,3 237: ;99:;}:8c5/8' #*"03L5676t4 1.-- /14)6 52.B*&$&)++-d1589A94D.' # !&i*+*)V(&#!@ ! #&+20 220.-,-.,A)'(*o++*'"^/p %''%b$!E"$%#" ""!4!"#$&'e&"      w  !^s J O[ g: l  < O(    , !r " Y >  . ;$BOaKdSWY?LNLB;G |( U il  :q])ؠ cT K zr۠ԜI%t9lʍ˝ ϕ dM 8Ќh ɿRTە-qřƍǹy\VTcƨbԃ,aɮiH=Ȏ  γήlj IŠͨCŋć m` [ 4cC 0`~QƄǚOPcܫւæчcuL C ,- Ї  d | b R$q A 8  $  E  Zp ?3  G +  bF!J"#%&$" p Bs#(**) (%"!" %D))% d : #'),058::952-(#%?)+.2B431/D,)*.|3530b..x//(/1367:C:5I/+f)*/6;>F@AA@>;M745:X?B2@<86z6656 8<@DHJ6NPNJFC>731R12|6 C GHI0K JE?< ;;=W@ BA>*; 8v65 6 79>DILORRMGkC@;5N1013?69F<>@BBA>:F646!;?BB@^<86#5323"8=AC"E0GGZEA=;83.+a,._0246&78D:94.p*)@+/4 8 9876n30.-<,-1555-565421z0-)&Y')*,.0000/L+% _#(,D--/.-*'%$"#& )s(&'*+*))$($  "$%#4 F*"#%#!q*R' xp A.a  !U6 o V  w ^R  iiQM   [<Jc _M   "oqwa`lZ!VN S FԾVrDت~gԭͅ۹R ۄa߄ ֭= ȡ @ݪ T6 լ ׸Ϸ̢Ñ Ԛ x Iʂ ˏ ϻƄ óƎ ͋K 6 EκѴ ӵAȞ ùΰcºM[oΖM "CǿEʗƬ?k Ji9>Zhsʪ4łǦfֽēά ԧ n ? \Xm.v܀U' T  ܦЍ n >49И` n A< ލ })}mm7    y }U ~D;   #&(( "v 2 -! $&#I*!!!!!   %, 1X34k4 0b)#"!  V !M(-*148:95\114694200v-*_'%1%$&*16;>@?9<965t30.+$+++-28;= @BA=b: :\<=E= <<;96G3233226 ;Z>?@@=97897 53335 8=C2G HHI&H C0><]>?><= =;9*9:;;877 8=998 755:6 7i9<4@CUFHGC=<;:H76=66%56 9;<;;:::;=r;85543355444x446 8:| ,  N-F >J'$ @dC{ ܷ ~Z {:ӟԕ(Wd2B#ܠb̬̲ (z ϥ \ jjʠ̹ρLϏͬɦEȾ "'B(&r)2o(Šɧ)(#VY$ȚԿ1tvظpV껯v*o!#b۷)۷^0װ.o0ٮ+(̿.!Һ ,}~+%dǮ~佤} C6Xܾ 'O֘١Բ·"œBF ޼ R ԝݡJѷ Vā!: 4 F ߶) w ߔy"vRn h 9 #?] k^ aLsL V  .}  9N  "  !$$3! ^ :e <!l"MG M" #e#!q $"&+,2\7864<443 2d221.-.. ,l+-90 0/0`1.(%$# "'',0 34433o47<BEDo@@???0/B-,/ 59:J;;::<AGOQUU/PKGFCA>A?=99;]=:79#;F@ACDCA:> :64E57I9;?D&FDBCEINU ZYTNIFC@<83/./1347: =?AB A=916446Y756;=:C5 359%> DJMJ FDCA=>83.).&&()+)*R. 2f578 852.+)(d('(-11..28>B*ED?9420-($J!  $).3442 1-'f$#:! $%$$ %*035e785/($k"Uno  =##2!RG]@e&*,.0Y.(!Z  b `  vJ L .pg  , O F ;M/4TJWn|L 8 c] d ݆U~ ߭  VޔaCM ڪ E [a\f :qΗ_ķS!ܵ%ۢ (#͚*ֺػ)>׶%)R/&p@$%!\~깧> YRgf8Ϭ׭J IB 󱋹 о - ,Ʋ *  cɄٴ{X}28,Mʵd1 񨊥 )ظװED 𩌭ɮ+. õ ڵ#Y"x{S ʫ tPiqӺ4ԺY l컥Ml(8͵Ÿۼ=ǐEXVԿcέXvӏ8xʹp\ ڬ1v Hy @ A N P +  1p ;g ^= >   < q5 [!"V  G c  #(+")%"!M$+--^,*?(')-1563.*q)&* "&).3<65A44}5677"51. -,+:.4w;@B B*?:d77A:>4CFFBG;532-)+ 1"7:}> CFDLA??@AA?=6<;@:9;AGK/MMMLIFEFIiLNFNJ!D>;:d7339@DFJNN1IDCCA?I??<><; <>C3JNNNO P|NLMP RRRPIB)>;6116Y=BmGMRTpSQPO`ONKHsEB>:9;=@EDGILOONcPT/WWVSRMFB>'80F-086:=BGJJGEDEFEC A>R;8=8;@D2FFFGGHILZNNML-IB:51 -+))/ 7<@DFEB>;J:;<82.++h+/5,۽ܘbkӒbqZ ۟pȰ5Θʧ `d m Ђ . @ qXľV̜:  ad%eH&Ĉk`g+ҳ=zS2̟0\кq̝״- # ÙHp9ޠsɬDOtЮ`cؿ? o | + @ f G ;; [^t~ 3c7ƻe“ʽ<ope+ Ǻ ǥ F!<'yPԤ<=ڝڎҰʰ Xfhx@ ܢi Bxab eA s ާW:sE~ZHFU :]    y{"%$Q>G @!%$p"%$""&+269 83.+'-046-9;=<7322R/*''(,/32.(*(),0369:979?FVIIH E?99 >*BC!FKgOM"G A??= 9(53468;$<8{2/!272<AEIIH#<::<;7R2/05Y<BFImKKJMT [t][YWQIDFhKN]PTEZ\~XRPRQJ?86655<5 370.06=CrIM"OOPP/TXXUdPN3LGBBFJMQUXV RPRR K?62 1.,+ *'% ',3;}BG"JKLN`QU{XWSQPMhHF'JNNNNP7NHpDCA;2+4(())'&''&'$+/z11 2 347< CGHGHIIH IRMRDU SNIFC :0*( %G s##! ; !$C'&" c"&*/58+8668:=BFHFC=5-'" D   Z#N%%%$$',1/58;<@80(! dY Y  v  ~]R !x  Kbt4xG~s5 V V4Ղ[/ jnfۀ!ͽz/-A !Z /nř!#ȈJq'ϪMJؠ̬ U ֿͽ7tRتX Ā% ˜Ѹ 񸍹 &3 @ 1wDz}H̓j$dӳ yѲ O  H%-Gҩ`0ϫ k ê´\a v :զ ԉD9yāHH 0eu֫_̖ǣƧ|ֽx!+% 'Ʉ&̪(%&4()ظ(غz+O,7,,'s' ?$^! sUNp8   u F7  T ~ 9 K "\$%^%"b_/k  (  S"(03n1.-+ %  $'+},-I.045}650*d&%%%#""+$$" "w&.?6:=AF GC?>?<73 358&; =??> =v=?pBDEEB;h4244 106;:79AfHKJMPRNIcHIGDB@?BDFHrLNKHFIKLMNKD?@CCpBCGLAMJHKPQROM0NNKGFFHHQFGrKQTVY\ZUSRRRRPN(JB;:<>e>@GPATQJNPVXURQPxKD'@??@??RDI.NPTY[YoX Y&ZXlUQ=KB: 7;89A: =iEN]ROKMrR TROO OOLG-D Bv@=: 9j:=OA DGLQ RQP|QPKE@;522324;DGEC FJLJGC@t<72/[.-,-E157:?FJKJH*GEcC@g<7 3/-,(%%)/22+26.>CCAq?B~FHGEC@c;645(66q8<@DGHIL8S \udhhfaWJ<94466W5548= D IMMQ!W[[X.UR0OKHGJFEFILOQSTW]gBqwxvpgZMDBDEFCAC J'RX\_bdd`YUQN@LK KJK MPSTUW[1c lau| yn b UJDBB@?&BJU`0ehlrrl.d]pWPI EBAADIPVY[_emAty|{eth/[OGBnAA @=<AOJRVX1]d hc[URMD>===:<OJC @?=97 9;6<CB=:!<;=81./0/"/w254!105g;=;:;=<>?CF4E=2*W&$!O #*..S-/I2/'#^#%`$##" Z! "  #e&+3& ] #R(gڵO   ,ߐֺa::\J. &  ǫщ.PT̋Z YCyI$ ׻ Ի ƍժ ʿм ܒS(PL1eͷ 1q1/˷Z̅տL ʹo ® =̏ iA%8 { n h ʳlBۡL_𶎺ҿ9kkɻjX଱ҽƼOoMş@P@ﻨ #*򶪸Ư>`﯑v뿓Ȱb뾷 )m Ӫ=ɏɳ$· ܂ ۳͵ vǵ_DҼ7V A V:ء,U)4Y zڻo~ HH;#%%&%$_! S|  !"   "'+--,-/ 1O1/4,'" }! &+046L89:9q73(.)(-j6?EHHG#GHJKwJG`B;50-) (*-->*),027?GYJJKK KIEBC@-;67 ?IRY[pYVV XXWVU QIB>:647W;<$;:DDCN!U#XXLXW WX+[\[ZW RLLGB;552;=}96:@EFBJMNLIF\D@j><7229AGK ORS1U W?YZY\]ZT{MG<@6-**)%#1&+R/14:?@???=;782,*/6;]=@jE HHH/JKJIOGB;60(!B 5#\) +,046532 1N.)#  %(,14@68><?@A>:40*"baJ  ~ V, x 3  "$'*E)$fX #    $ ~ v Q q zv|frQ. Zr" f:p5 [ e݌ {KtǙwIׯu  Gػ  ȋ ˅ ̠iΧ|³Ȣ ß Khƽ_d5Ù%դ̝ט %߹ |󷒶 "kŷڷKdvҙk1}xy 򳜺FA9Z%R$ߵtx .<E?r!@*ܰl U򓁟f[4񻐳[򑢓 1c Pѵ2'g0\Ա 岔Ḃ:ߠ"ޱ# K'Ѷ%|mn O $8kǤ1s D N *c ߋ 4e6`ݏmߴ @+֭ "d a$jקF|R   E <   r    #,.+ %U"$X*-( 7 N }!#W$##&*-.022 .'H##%'(+/38>DE?8456994*c"+279CFtJMNMNRaVXZXVSOIB<;a=?)AD+JPW_)h kFf\TPMJ1E<0'%,o6>[CFIM%QSFUXq]aba6_ ZxRIBC@??@CGNW`hliag[ XVTO F:/m,06:;<< >wAF'N VO\]?Z T6OLK ID;1 )&+26=5347:?'FKMNQSSO,J C<8V8 99:`> DJQW YUMZHFD@5:13&o"$&(,17;>@CFH&HD=6v0--02336; @BA|= 8W556 5}0)!S8 #%%&&)*'$y"$&''%#"$())*-#02551+o' &%"8  U &~ - I  f [""' e *,] [  B'1 | Ti !/^ ~ ԛ̣jR εnMymlǤȫ ~ (.ՃK~A[" ̱ 5^N 'F\ mī]v 4N8#0Oy͉̮˨ؠξƅ؇ [\ tfYB۽d`llAg1#¸KH'ֹޢ/*g Iqs7嬺+qťe.޷Ϻ7BeX Ljn ƫLѬ pJ?Cƾidq< ՁL d/TD˿OÎ1>jڪ Cʍ ˸x  ߏa˘ HWg Q oM|iG     Aݍkk [!   r"(,.j.) "+146873,J(). 4x63|-(((,2577:V=@C B9+C!  b]#*."3D[LPPQTVU RRR

FLMMNONMMMCJEJDI|RZ^``a2dhylnrnlhc^XM AF I%LN{O OQW^ aaaF^Z5VRH9+ $u"!!$G(*,18>?>==(>?@>7/+,r16:=>?AFJKEJIH E@&   i!">#%'%  J!&&%(]*(w#}   ! `' .W 0/ -mh)r& |kSn o)<4,uhDt0Z 9g%w1 n޾  ݬ/HU]{ݕ "LԴHɆ'cՂo  ~ =üÆ|sCٜؽ)]ڹCΣu ͼϑӺοP̒ЮƱ "|1&=Fܼ ξ: "˕OЉϛboL9 ˵W! m ]Hϟ-ϯΏ4aL R޷_DҼ ϭ@ a y^ N H+o7ʳǶ 8 *U;z ̱uhQhp$+V,ء֓sz5r    8t;9   O "   " K$-3@310,!  q"$' ,y.+l%  (&,.7e?BTCGOSPJC:,  V " '*.27U;>? <5/6+&| +!'X.28=ACDJSYXT^PI =.-$ #*(-3 9<>KAE]IK7KG9@7/)$"$)06`<AQDFGMT[n[VPH>2*(*+_-1{7?EJNOVOPySTPIkA8/'$ #$)07;=@DGL4TZZUOGDDBGSOV XSuL&Do:/'(%N%%J(//p8?D2JNNJ-HyII`D.;/3,%'+"$'*.25+78/:<'@DxFC=6M0 )#!""#)N28G:<~=<75^6750*#,!%*+*)**+/562-*&!!#)/3661+ *-0.*&!~2$+v/-('%!" OA F!%'(%$$#H#"}q l st  d~ (  :$ Y U&n () ( )#n@>a: f)  p u  u?  y/ݸ՘7xE2  #>bY SٚfJ uۘ \uЊ1s?r8ӳr׀sͺRٽK* &ni}ʹNX %Ɖ*ٿ*λؽN,18("%Nr! Q ҽ v,ckU(=> <@%ٯ)-Ͼ4Iή'2l̩7иǻ3ͨ+;$ݼ!8ߪ ;_ƬT FŝƲMXX"Y淓¦Ι( ݹ,ȢkNJW IG 2lR޻ tحQ[` # .V @ ]}:Wt0> r qP  h&    !189864210.V-,+,.1O20D..15y63N.)'& $u%). 110*/,X($#%f-:GOONDLJ'JJIH+GFgFGJLLJCIJ?MOWPOLGA=<@BEHLKE>:-89aA NZab `]\] ][W_TS}SST WpYX`VVvY\I] \z[YQU P_NPPPPT_TN%GB!ACKYgqmu usqpoPnkgc`]\[ZX,VU[WZ\]\[4Y VTTUVY]b]VrLFCF?N]mvJyxwv;wxOxup kUfa][YV$RNSMNFPQRQjO LJKBM O)SWAXRVIB@AHUUenqqqppopokTe_KZTNKYKKIE~DHKNOQTOKGE#C@@ CC>57 1.0t9II[hnolirggNgc[RYJC=:|:;:648?DGIH C%<6`4468b95-'%(0>NX\Z8YWWXVPF<3+h$7$+048g84/+ (&'*Z*&!;#/:@)BBBC]DEE@ 8.& >#&&!~  \ $##&*++~+)N# o ~g { >3 Q| R b0|N_ @]  5^7wܼt>:fKfq/bOY^؛4YQΈirJ&bش یړթSͽ6RQڢluf`QϾȿH=6GaϙaWªw= - ։ 35 $ڻF!ʮ_¶;򣜡@ cȣ ȣ8 ڴ cw Oǧ = γ y s(  ۷󼩾Ϸ򹜷 Nc^ <ÚfHαҮN4)yvϤ  S bC ճQtʭZƪ1  ڭ ʊʁ†iİ4q ^ ā ɓ3 ۮ˂ۧހק?ov{EڴڔqYgǺЌ*SSO | . qH ?  4  j0 iMU p ` *  6!#% &C#p Y##" !@  , !&N,.j,( $j *388:;;; 71-_* % 3  F$+N///5:=&;83-#q$.9S@CKFH{GC ?:3+%!    '(.0028=@AA=5*#}!#' -5>iD FFG;F@X7.'"l2 J!'-024 9>BeD C>770+)*i-28>ABBB?7.'  f N#)++(-29>3CFE?85G6778:;97'77d4,Z#y / H $&%,%)07;<81* ){,/137:84330 (U  Ms #6&$:"#Y(-$0 /+&! q#(M- 158S8520`,$; K! $'%! !r$'' %  o #+2e40,,+" t   !%Ww%,q/ -+--$<^ f  *  e  %&).. $7 d K     $+0,!~c h _. ^I J "vH x!v#mh&%$#X@   #) $p#}49 .)  )ҏKt>:yM!  @޸-p)ϻYGE&ЪѮ%CX :) ܏#(v**P+6!ҩʼ͖ $ۅۖu'ݳ|"֜"F%ok# !7RwZT7ޡ3uٌ C7q" p^ O)j&s>M; !%++ , 0 %, z*s!.3 h @ LI " xr ".' (&#W$&%""'7+*l(((&%$!&7,.X*$D""   h   &,16634 8977< @=28541-!/6= >;:;9%3w.*#!4  a-"&,39O<;7 2S//0138;;8:=>4==?@> ;;<;6l1,% X "o(1H:AWF E?=2Z,+++/6!<<'; %?BC>@(<;;9'4H0,&&N'S' %!%.9BEB:1A+)) *,1;53z25599887:9Q6 4563.c)$ o &U1:>>6-%#""% +/.,+ /57;77m874343Q/(i!?  "+27 6-"!*!%c&.(+,}*3)*+3(8"O6 Q3M .!(&-x0/\(@&$ X =    9 6&w*-. -^$- :   +/ 1m2 3+F( 1!ex "0 '\   !7Q45o,  ) pd֜b|"0u Fu7v5vϠQ uBF' F  ľᆲǞՒ؎hֿܧqVk ܟˏʻ˽̾K]֒W,5z B' ùû sfIܪ )rI5fp#M#^CDS lfݻA@O޾%,"+ ɐЛLΌ HŮ θ1ݲk& IΘ.z4د ΧD ʇѠLZߞr g ܴH٬yЦՅ}כN{h E:V[| m 7m   u!t'M  %e P ? `%(|% "#!@ %!%) -12/+r)*n+("!>"!!#%(l-5W?GbJ GCBE HF?i7.$_&/69>[BEDCA@?;5/,-}03i56&8;U@FOY`_XUmY^\UI?_5-+0;FKMOSWY:WSxNJoHFRC@?@?=; :99;BgLV>\ [}WVZ__ZeRIA<;@IT:9R99:>tEOsUVdSSV\<]YQIQC>_<@JS UQPSXYQW R>LFyC CDEC ?82U//011 39CJKGF7KQ@=:;?1BA>:5/.3>HMKJJMVNIA 7-$9F$*-+#Lm! k,$4u655 6 50F+#&!!z%(1E5 5D6884,"g m %#  dF3 "h()w) *+)%!?%,-+s(&0$ v @ b  ! [ \U4( O5GR K  . {  5Sk|Jr^  {~ ,9S޼;~$ΣEBٕiRh ߼IɃɼ tk-\f0 N |ӐǷ X~. #g-~d; (BȿžCɢC%xBͩ7;Vʻ/%Lj'ؘjX ߃w%pӯ\͊F0łĺ&ӊWmϭ] Z!辘x_ɽ ƫC!'%Q/;5׽69R9غ4Ĵ+ܸqyUw s)K4@873,*ԻxYk['c,ֹ9OEHkٺxLώCĽ$8&ҽ,c]AG)>*ҭ8'BB־CཽASĽR<-Œ3&n׏gpYZ  JɬzB@Ub-<:AfAAu ?G89585>@580,'('#'.;KCCCFE?p>I-TUkSUVNUA,:<>=;<<:6F3479J<=:6J9_@?)3E&""o7%5 =%;"x/ ݽڷ1nA#GJwFF9*݈޽ٹ'ͮt@-FN(5YVݬzUwMzB(3s~Voĩ)ɲį?37Tn@aԚ eԎ֛b#UsH5ܼڼLuԸ$:zIGѰӛQȭSЫر J ׾~@*ع繭 ,󭀦۟.ŷCٵ޺TΌΩYj]<èR˭мGd1~z󻤼 檡)ͺ=ʯ޸fOة~[޾_jaʯ˪кPWе;Aǽι(޵״"3r.߽%Ѯ 93"dI Ϛؔ˝د`3ͿzJ \jL(ok`&pQ.p;׹ ),'+B)(!-Ua8 e!bb^UF5/ul *8K:9 :4%/%5"8n9f]11!  T;!(-?H*F6BA;0D('((N-57.Q&',-+J%3$'(;'()',$&+(y  $>(,7LXWW>SQLCN?ACBXCII@^8:?Z>\8687Q4j464B/%.07/-)&(B%&,&4EAYbGKK0FMCFG?X8p;CsEW@;9q6P334u1J--/*8#"'u$%$ +0@U`f` ^\UK#HmKKeF/DHJIC7;U93/x*O&%% ?L>-# "k { F /y<=7686N1)2c:>:47X:<-7:/.11@-'":23/- "J '67/+,|-)6!>'/@0K.D02/V)%#"U! V  M\=r * _$ -/&" J!.9V< n=)5r) D7 ${ )O 6 < J M H MBOI6;,KH! 71YAF`F]IHT@'82uz )I8@"@֣۶ݥG8ظ޾L֬ջCښݑ;/qv 0# 2߾%V(|0'ԟ%w3-c VՁЩ$ 6;6n=?0^?9)% a, צ40^#9&j:t; ޮ9[.5#`vtْܹ#˾¾-ۥ2ڎ5߃4LE&Uؾw'oȄǝ(ٹ-Ƃ5Дځ:ۧں4 /W$ `&7C1 (~/ծ7O93~-D “4@Ħ >!Զj)ϣg,*$K6A ܺ[6ۈ!*1yv9_AvD=8*0%[]f 1+$<2:JA }=,9 7(L  ] q X # ~ '%&%(-0+!"? 4 B"N()W('$. % -G.$176)8Y==5#-,-0.$ *,q,2N9;O;<;3D$&1 &;*)%"&<0>F1G=G"JIVBA:8;;76.%4+%4==[;>BB @B$GB"5 '!%1,/U.-0-43.+15?jEE@4=;6$1?-/(CC[ ~?(52;36/-,$&7  U*1-A' ''%:% *~/.*.(&"8 DeJ A-!,474p0+_'+$!3<3&#^# "&&M#.!=G3OٲP% r)L,C+'">o+"( \ upA ) 188Ƥԭ7/%t&.$    c3JgyXVܩڳb\_FZLMF1<|' D/Fy-L;Kո)H4²kRkQ_E>5" ݬc++?ʪ˸JԵfSa׮TtJ:*ٰpG "95s¾ EީMEѴ#Ik kA 97#Ӈ ޅxV!M8%~Mx֮d$jčєosYjܛV_ɬ\PC̿Р4Ձ3ݶ,&%ɾն5Dĵ^@ɉ׸xExFa>՜/ϣһ̊Ӻ&!޸:īM!޽WvեE_a\R^IJiBqϨ+ˋ?ٷ,֏*ϻ>nPəׯRNQyKѹz8d%ۓԨ֞ϞL7QҾ˟P¨/_hkf lhdݝ~Se_>.R#~@.۬%@ʳbTFd3 S pmi` Oy44{-9lLB\#ac Wgz[x&N%6O;0H  ^'#fm g^&T(?%  8*c(MC{&( W#2>]=b7 3+ fbP%) Q =l$#y&x'E 2? P015<.d/=IIrE@6m)w%,1-o-57'^ F$80'.)+- ,. 77&)sKw&-`(c*:KQuQNEQ:9CID}AEA,pN 2 6Y*#'4hA=AS==;4/33'!?l.2",Z.?NQnOMG@~B MQIzBB'+.% =q)"A150F2S?J-M\M NIBhE&RYVcT>YS:Y! -.I# ,716T4770(,11&(C{A:;FtKC=?t6) o M(v-/%  4 S(49t=kA=57@y@>4-e1w+ x ? "aF*5.C#    9".52U361&l'm494/q&s(# nP_HG %-7 ;(I #p$d(&-'y-4 *w "j~tV8  )mJ#"k%*&G0%-^%z~B|0hYCGp' c65T -'"ob %w:yψJp] CW[$?/8G[ v -#uivy͆ӂs^[7iI) \NK 5j A|Jtiwy&فկ؇rm[ S3\}: Z{8o]RXݥ-UĦMyҸ/<&. Khdy{0{ ł;s/ϙֿ^E߯:;Is Hhfy1ځn ėڷh"АHu؀܊fMG!Xj> Ypۭڎ|v#ɺuȚȓgԤwN,f V 44gWt ~;m\g㾙rmʀךxWױ׻X3 /]4R.Loوױ{ƒE{:}hUpۋ6Y̾4`ݝ )QH]\fmՓVq騈Awa7rL˕Պ_EDׁ%vt@ea}RΐnÐkŎÌ|yڐRe;ϭ>A@%Fz g߸ݐʀ|ćvv͇x{~ dٍأGI+. 2*+$ Nb׶֙fnڣ@jZHG' 3p! X*70upnk r > k Pj (''K,$)'13316;F=!U FiA"t]l!'e  O x/  # /2*&8/99z9ZGVM61{x B f \&a""0a:8.o%#h"f%>/9DD93?KJ G)Q^V:M!lm { jv'&)m8x@ 2m&'t'3/W)S"$+:2F@:'FVQ57F Le g x*$+0k@G6~ oD*'X&$)1=;.JXWH ?FNF#>#GWS9;@$.] {k %"x'F9B03v7e YK&.029FS$R CD;CG:+%.95 H) cv "~,1!y $j W[N'-03@LH7'0 <D6($9"*'\ {{8h%|$e-# k$} x'$(Y)1;.93*#-3 & E08Q j8 }'] t3 d HKZ%0-+$S-!  /vRk|t tv0Lh O(I(.Ud l.fN֥ЄhtDzLqڔ bGC$#&+c:Y]^ ɒ_yJymNjבv)܂l I<$8H'3ĹQԡb:nܘݐxl]͆֨E1+/ ٟ.־љNƙh#ɉҖ~ځ}EׁǎvZڟ|\b8|ؖ/7ӿ͉Vu&~hHl5ٛmg՚ôhBȐ̐zzDQU"4f ;/R½dNҟ'g̋},т̓ܶ{ևWh7ߠNU5#e (σ(̋Ixة7fӔ7tԄןvt̑ҒdЎۨN.] Vǡ2ȏȋRנmNJ*}ņX{Ņzوxԃޛy`V?ޖ߮!ےЧG֪Gd˒Ҭ}Ԁ@Ӄds5| {ك߈jLܓ̾. ֬ӶÚ'~6FЮY\xٜ=imEjѕ*aخUR';խ/[ ω׿[?V\ʙ"nлׇ}͂yҟjOӾ:0e G{k(H;ݬbٺ|rկ͏[w ٍo:a, JU,c i-1ּ,P>i}|a؈Mz8~ y bcJG%_xa5Nmdba?jix\a$)F m( #  ?&Jg }y m ~ Qx#%*,e4:K2f!J+  7  {l0RO&C(f# u!+.'|&3?h?zXDE@hAKLS NeGLR;z>WD~DM@CN|PE{>sEK2@q," [!%? j :  ($;#+3p4X3%421/m19<:v=AFF8w,.4-qJ`CC\!  3I#**R+/0,g-364u8 BB,4w'*0)ubCG9+a, EW , E"%$o `!&'"q#L** ws flTXp8:[  *;A}J#$zR;N <؜J' ݴ!\?mO] r I' }E }1kϟުSl޹z3dI$ A_]r(}1 o{siґ`8JIL/G% !< R[^ߡEUhͱI/ܗ*2M S a  oho2ה iŅҠ\MC'hA n*H  j^rKw/uҐ-gCXD>e':>V"9BIJ6 BAV/G1׉%!<}R~$^5Md_!Nj>*%  (s= Xi2pp1jh`ZD\~) m.!"" 2IPf߱mTփ^MPT>ٓY,6) <@O&Qe\`y[gPָ̆C#-;/ֳ"  U();JnW+ZGW7Jl ?r6.( 7 o; |$ r4Y CG] ECT-<1 R2! !8m)Y85$$>8FE= J > K .C 7d% "*,&h!"$"3&5_A<}-$$%X"-!%($; C# C?^ 89-#.9h;5Q25623B#OI6(%'6','9*+(2/.I, -G0-$.l6&'8)03:-3# $&-%&)-"2$=HKG:GM8PIFNTJ7 *&&'1-45/<)s$E!'$J "&%A"$),<-.14/;FNI!>:??74?F=+"v!*!*-%9 E DjFB"=$l(,u-4.4<;$3/1U0&-$-*L {$ . @eHE*GP#$>"+*,#M#+,## X&d%, ' + *`, !Uq&8  ']3;I; 30g! a0 #<(-kU(!A%W  b #c&%z# t4  &(+ 3 *U$gRv|R"R' $9B)$ 9MɃ "u % R 1*q)( Wn   [ {J7fulN" BjX'?۰ &UKJ3p%#&ס~[ z-wR#Mߣ\ZS]1s 4 . 1{l  x =x dz 9f ST c N!& $ #&#\L k3 E + Ia   <!'*/,$ R q!g! ',"' ,%.,24./  % q !4)12,&&0(% ? (.$("'3:<< :A0^F @C &39)?&FG?7+7c:82/.c*"a1 5)34,4&f*3(7,3+/-F*#! $ /*49@ H:JC >@DB{;%5/&2 $5,r44,8&)2679640)0 )%R$"+>LNLPTPIGBXB>97"606)'%,15cֻcHٸIFA<1 *6ݺWGM@QSGK߷Ah58NCj%4f>DZ?ޜ&?8E7;x2$z ( M )< $w5L 85f9  8:/  ij  Wy/k'4A5833/,$?;9V ,$n*)R s>  4)'/&x7'2/F-0/<%K^K1""H#'=+13H&+ !$8 "1F=?/2-C.<><A>.6GV$#%! Z )8iEK'@& (2??5==6(@Y!'+@.34Y-?(/DC8(&-!!-2/(I )5A#G <"4*67F794"(Q!'29Z>EB>1W'*59@>2@#%/)1=.'{ $-6=O6 ,",b*;&5%TQr)0U498U/Z'g+58V40,s#K' 8$"' $' /6;3~+m :J"&E),+)$F($+,>'C$ 8 6 (B= (&#. 5 s IF} O0 T,0RGs7&u f Kw+A!O  QUV-bQ׺شD m3 (7Q[==߃;Σ=1 b~*(އ; G=KP=PִINо@*/#  ۯ#qT4Ԓ@LNڲ3OѽBqЬ0շX_ У73 DJ  @' 7BXRhdVc ` <RB;o ( *a%  0 CT M M AI;!*    + 55 q O a[0 l un h^ $("J3] 0t " )^9G'$Jx!#>E={!+,+!0 1W F<QYf&$k!'-4*d$%(#[%!H .+w$ ?I6lPw>_}%.)m#&+3(m"L$($g Z  F , >g%&N"eU ) 38%4x2B+++b$@<# +J{ (> Q j me,+h%%%af b ;S ; !!2  _ `#4G |TXYO  D  6B "R8HD/ PPJ>. 0.@ O')c>GUV"R(C&W3Nn}ߍ&\%=wM`LY^Wf&M >*-e+:ڗ Ea5P{rMLEs2x*9?$ҰH3ھEY]ߨݤ%\a]S } F{0~ݢъ '2Q;P]GwXFD?4#Lj݋ ۧ>6, 6o6#o8FS3$Qс˖z !L7cݰELUTMOAh/pSw A0/'w.];=?>K8 .|A EW 8&S7EuzJ<M8E  >1 != j /ۜ6(/2.6 ( Gm nI +%9h@ C:C  7d'8pM$!/(Q33%=hA Dk <6E ' EY"10 !L0k 9 )> =  9 $=*/*>-2!1''J"*53" u F^~!.""f#C($-.+*'$!g/! ) --2<@<8"=-EC4) < K 8B)4:;B==5'C %-20>..116/.-+/+0783.4=D A<;>^HH;)"#$()2e=B>CRJJ@1$: ')&g' 2?CN?=@A9/+.b11A0. , **+m+-384+(.g67p57#;7*m" !- /l  "LۿS%"9%.ޖ!M SI 1 r C@D "!W q  ? P_wЛM 2 , W   DYִ bOD G  . p>` .R- '#+ m g M( 'J#(!$""Z"(w,&F   r%..#q #Y&"S >!%%!)U f'7?@p;4+0.*  =! 076/ '#(29;:851-'M I #7E/LKD ;I3-'c:v)8sBFA7g22566 7`76786/$ V/=FI IGmGGB5b! 1 K,7=>>?CF D?:4 -(() % &j8BEC/=7453".$^  p-:'DF]?4@.-,)&&%$$((*'b.e /F2*00G/4/0.&3 [-* '&2-0K/ *@&$8" C % H# ! !%'X#h O  ""!!+ li *hz "',//&Yh -s  Ԣ0 7R%& Yjn J EF H 'r߼ q ݸއ"XGK o! A? <ܑ<؉Տ48 #B -u9o[jժ /d(EµHGKʓ P t 0UsB NNQŌȤ8 '@t.sܐTd;w  Tg4 j~EP ' mfb[H]۬Վݭf lq R: \ {)dy 0  '&&8YN"5"*Xڷi i  u "J2\   Ufa +B  \   ))B& ;  %%  ; z ?d9"    2 R)i  *35m,1CiRh%&($3 1݉~ -  ,z!K@V "!$!## X q / p%-3 3O)O @ !%,5=)@<50/2/41G)"M  "$#b" #'.6 =?<1!G 2!*?/28BKOGKA70!04$993)EW#*(!<):GONB1"u  $'*2?KRRME= ;>CB:/#*)1/%V(:JgSS9J 9'!% (&)+3 ?IOP JZ@7R58;94+  +68 -+7= <4)S ! $.$""%n+3;@@=::J=AoC?y5(vm  )P*  "3>?8<, b"&) ,>--. /-*)) +z0575.&|   ',*D$H   ""%f).Z/,9%   ! o  dE M. &++%09/0b# =04 ck iQBY m  * L % d ߺm љ ^ :>GArK 9޺! x&ޖY Ӛ#)k"ܸ&0'۶$$@ U?<Ĺ, Ξڈdlqւ΍/zC$ac ʫC߈nYq(4Z9ٻ֪J, pٿ 9yNEڲ~ Н7 E uSwՅ~qRm^?Σ % ֚ Ti  L !|#˷Ǝ$(O-D(ڂ;$%-#ܧ]-ɃydY٧zb Η e՘   mf̥[ױZޚag'%*+,Y*״&)e`yWh-Q o **? K0 VLV  8M 7 :  c? f _ f #Z ' ] , ,jV*Q$!  U m R% ,-,( l%)*q) )Q**V+.10)!&,) S  ]$.k9==9I1$h "+/.,07=?@}@#=8d0(##+, %d%A((h+ 167f882&)"350g+),157/881&-=')2/ #U] "7&-K45G2 /( $ ,+y+*2e J '  YE  {e  tu G @ 7  h_ +; 0`~5 m@ % i:'%' ,#\   R@3N l  'B s  a|  2 1= ! 9^ v |$} A/;  )I 7 q#"we %F L d  +i ? Kl 9  } (26<3+#* k \0n  ; \ '29i80% ! & )8*&v,#z 0 W iXT%2?IKD7* F<>"+s/1w2 /'( !B*'5;i;5h-&>!   s &$n%$# Y&  0   O-65+TpYE  y )s*  ^  t2 r  ߧ W  Fr7|Z j3rMG*l& N ab$ݠ~! :& 8m ѿ 9Q "M wß uq 1z !״J #׽Jиڨ ٴd(M>íӏ1"!#^!Ҵ\"xq} 5 Ӹ\cB5u,7 &Ҹ:ϮE0˭˹^ c ڟ‘ כ hg^׎x q  Iޮւ6L]##z   Vv#n % FL t(--( ZI P -"}a&*& "<$%S 6:'0#  #'$ 8 ! W \g!% rrS #a!$P"y4 Q!"_!!)# " [4T Vt!! 9&(^((3) (9% 9 # G NT r  %v" "s !T  !  z f  (S*'%&&%,# ^$&<% "#+34.+.2/*)-,#  #&,,(2')++)'" T o"+3i304AKMVF@@=5*$$a$ G!%$0${$ %[+0d7:+616D NKYB=?CB?>@>4$'!$$#$',0,  .;<FGGKU\T(E854S/'_'-g31)#"##$%$ l&'V f#(08;j72_5@BIEy93I9@A>64:k<4%{R!''  p o ,3q0+-6;5(!}#'%!?"(+&6 sy # M!B" #,1+V$d  A A  Opq f! oT  %,` ie { BG E  e   &v !ןrB)4{%3yvkֻ>@1,-PfQ \ ~3  ڰ tZ @1xTu~F̵ ú.+f>g͈L64r Ǫ 7ɪ8C-ZJy v=a wwenY2Qf/'!w\M&stK ľO  >N :5H2 LԽ&lV ɧ* +ҭ ʠ d)&,  s 0L _h* Ӄ ۇTܼ9 04,' OW 3A  1u8Q c'+(" 9[ Z{ kz b +$ (+GN[ +yZӶה()&4 .w QZs, d# !!  ! Ky S #%$ " `Ïʹ,"  h p &&(4741 - "  ۖl 7#( ,J-*%!\oys!*-)p"!U+:DE_A<5*lr&O%.[124 6*7761W( B! -43P. -6GS SI@9 0l$% -_*5 #K-11246d8:&;83,y% )..{+-;9J~WZVQsKA+62{:D_B2F""&+3U:<;;b=?/A BZB?: 5.%  -W51('I4 GTWT PqLD:6= H 4 ?'b8$1u@j  g!)M%e2%,&ڶղ)eH$v ށ? קЉY - ͥ֬"¾"x1# 4r ֣ ՗//$Ժ9 j߷Ct[鷎j!,DW ܾ_{ym6mz6#n E۞e < Ԣ F yD&$ ˱ ق%#oJ ݣچ Zaڍw|̄sܶu-  fJ -1\  ~ 0 TJ! Xr Q   gT9#b !I   oQm  c v / pl #05 1$rwm0  x"$ v i(/-% .  ",/,' ! U  k 2d''X%{2970&  L,8>?<6,"  S $5 BLE@{8 .2"   J#3;<;:6-#@  +'J8ELK~D9-# !0:@EJJB6/c. -' +"')*,2?8P\;^WYJ=1( >)8>>TBGG>1)&&$!H"&+3:F|Tac[L=2(?T &2Z5238O7-!L#_'& f"1H^f^KNF90*!  Z " R  0 6Y0BF;=.% ( 5o?g'   /3'!PRi!l>#vb i @s|a|6}z .Qֹ˲#mxe4Lq2 Ռ lW 7 0 y Ϭ g +x֍CU 5o=_ x i 4 ?!XݦݯǤ T, .o8Qww/T@C5< צx[ ˢHUXh\?3JfDعY  @bǴKgr 'OP: V n χ2 K; AҤ)+%V  oնLw#g""v~!7+'"->,% 82P 2P }v r " (.- &s @ R | v 9 ѯߨ ,e' .,$W ! p m  #-q6 9~3( ~^  > _TW "'(%J   h) T k!["Y%\!f(174;:3*#!j! "R%j& "9# #! ;i u  'V-4!:92,*,0-( $ g',*&(/551* (  ~)18AHHBM<9Z70# J .,43/3=CA:0" ( 0 R   *4;CKO$KAY:9:6+  !.8:&8;ENNG<-O~4 %1 ;xCKoT YUJ?@ ;80 "  'C4 88=GMI@6)"%&"%-9@ELKD<981 "  *26 =GLI =- f q_u"'().55.L$!l##h  y4 #.I20*i2-   &'!AV  Z ݆| #"{d z S  m s i2jM Tv^mZb()K,6,,߸\.<)A)6њ#џ^ި7+X~@U!΋s ݈zU`, x, uU $'ܤ$؄%ѿa"%O"|D̞> YQRߒDjބ; յPW֧ݤ"} J=ҲʼcLӅ 5'y  (PZ .:q e   V!I  df=X P   !%8  th *  o!u $!! !/,  r:#*M .} H E"  U$   e U  C$ )($(5"     - "&"d" "E" MB .#  ^!! %%!# &W+&,*$%6L%GAn. !),'k B !%')-/7<<&81'=  i _*22//8A>2}( $  '.a0132 008598531* l1H_%2C\K RRMF =.G   T$g.32:FRU NFEFU@4,,//~06C?D[DBAA=@?a@@<60+#K!$="!M&,-/05 ?FE= 65:<81/20-~*+e04>40,+- 045!3.*(#  $,5AIFX8*!+4:5/0453465. '#!L! #(--**(&  L"(+e09?;y- &-,'%' 'Y#!e$ %kU w  E Z !/2'*1-o$k m !%$/ e [ ) ] )n ! $V 6݈*`9 \" 7j c<ʅی" `T]ط ܠӹ ƽ:v &"h pr N5ٵkîU6U ۓܳZ ^>˭b|&[˘Ӽh̵r䯊}ր4ZÌDZڧ w P Hi  2+r8ςa;m+? ƅ [Z U 2׌<c  U6ù" z ? ơҜ\. އm :saGo[aV1ZNlV  7ԗEfX/ݙ  |Rβ/& Q e: { #0AT`M 'a uMSp T^Q<X&bRxn:qS  S d  f{lX [  <  } )BV -:31foHEd6 vkh!FWV1Ell(]OJ"V iVuK [tC hr   '/>mm$VWHjbMEs eguKD%AzI48(aH E#NFl M  $q S/n  B WN w fV  h9j_f[J^  )}XO#HPB{FD 8<\j-,:N  % j]qEJ 12Nz-{rzq A 5 J @( &x5kW ~c "M0DiVn ~ X+|4\_rxtrL  ?q U QYD8 Q#N yg[>/x Q z]{ 5/. u!sa!|0;gE kM a/V_Ix >> x o1  rD8T@  p?7W@  pB6XB }M-s=t< ;p5F+t(1y , E  "g%5dJL  d7n7|m0 1K'Et7 s zj]39k e] Bt ` : 10_ H  /}h]F~j) Rt4"0uf\A{j,Pr5#5wc]C|k)Rt4"1yhY@y j/S w1'#Zw)%("^y))'[y*"(![+&,( !r  h;     SH q'                                                      "                                     ! )         |( $ %~*'}$z((y "        }+,   w* + %!~+(##$&'#(%} !    ..$$& $#$"% + 5 k k 3  !# !|  #%LIST6INFOINAM teleportIARTunknownICOPunknownid3 XID3@M   5ITPE1unknownTXXXCopyrightunknownTIT2 teleportatanks-6.6/sound/07.wav0000644000175000017500000051450012636021030013061 0ustar apoapoRIFF8WAVEfmt DXdata uGfWrBoM.N|FMthY`\ak(,JXXE@htb)v6y~~|y !zB5VYD'jpgkhh\kdE^k.lv| "E.vaSF; o=W9Zk= HbB 2$Sto.G/m3xb oK15Hlh=U+3R&b~b fHA^\S}$6>Nbzm)aud"SAnQc"z/twEzfBOB`\D7f6v AWji:M. *ru\Gr2sr#+UJP0;89ZFtYxdu9qf(`Ji'w=F8D7IqC{Jg=%DYa6RB:K^ Q'J1p Tp:w>mCv!zWCF!.}4 8UE$xl-P8:uv7Ghh#6<_?;IbhS*$ZQ=1q,7p1k^t Q[9%#G|)iJ08>N%:8c+@>OOr2tcvVpV$Yj8wOW8(22(/;y:. ag*g ~\+CC"IC4+x#zV40A-b#U< k{; wk^`. Q8XUW"4'0pzwX|1Gk^#G6  gehvPb_u)UUHO-IQVU#skV8u%BRCPv5m(R~A'#(%!1\/2;<x4B'-@3,`j[.z:}5O#^sFxZ{PB(E:pm"]5(D 4i*r<9w-zyf5`$&6@ztw~}yumo$~fA4f 7&%*ohNV&FR'8vP LbyjT~*|NG@2$Q_%s)7=Ym~];598,+>t$`#W JJE0^S7gnDIA$KB JHZ 0L~I.v2P}A~Q8~< ! :A0#<"20 j$S\1hntGjs/q:Qz7pN<G2u9=Q_{6p1q~1~Mj?[Q9 W_.i 3*;2+%%4\R >l{mZDQ@wv\tj;j&;9,:Zo6JIU-r]a.[L v)d)y;M@6GUYy*'VFj|H6V*U'#T7jWkkcw?dbm"Vy{B^Dih]nd_tCYu3jb~8 $ .$eY~zFo hdlWM_ (NtemQi?DPC:W^ L0Qs6AY`E4"j|uYB]BH1,BRnu4K;@Zx5,nm_ n#oZPaVx^m |;]K3K7nYO=0&1K=gaX ;U 2A!hx99/{c6 ~(`n|%}+}3S]|:2u%8,=7>WrgH||GRP?0}zt_iq\MA2(Zo>0:<KBfJXL\:Crq;CK*@uJ".Ut||G:TwL+ T yUel: :Aai.3a vOv'FPd"DKVa{E#1dke_rzb c)G#R%HQIgQfAuRT-m{-P[9JkH\zrv& ?\X]}S/o.4y~z%F.S6ao 498HYlnaU $1k#Ob,&B(?d^^s3I00dGY$B] T::[ +lxeVslr1[U p/H~~M q<Z'iQbO3R60'a(55#\C :u-3JHCZOP0s4SRj)@|#fG=66kV.jeC1Fc[56g# /%6 &9LfulAoc\bggm}5;   B.z>~S&LojKj{D .QR[>FvyG WxW2gq;$mbSa2jo&|QM< %P):ex\{ )TQ2&ee2cjpZ5>BHq8'pM2e|pmH)9R">:kj zB=ej(%sKhKJNJGvSYJw[z$zp 5E"(2LC#E4?y:%% U"&1DKa| * !@|t3@u[+u:]wp9 cj fcl s&WtHSeewJ5(% `ZpCo9)EOagmpl^l`uQ'1Q_< >Ml*;CGbypd:3lI .Eoo.u5bGO^XPb`92EaX/I:%!aMF&Tq \, d@ : F_5sA[6E ^y{yp`u6`!G Ze ("%b {lB!Awx.[sPzc2F(#8RZb|=/:w{;,??Jpe z z%4cA)AysKUU?'Hs\9l>?](: E  o[GG< ){ fy>0 K >kAU_v1'P|ib6-mW4<  H  4;DNeh'R669;' M G $$1L^f]] OE# u%\+c@ >#"B] #`9 C_&^3;*B>vR6ZhT4>'DU;@7+-^Fa3M9KqBkS>/%z#6 -Wj=i.b"-Fa+ 0_%*Eq9s.H9{<+0IQKaukrtx92A?C`6> PP ji{tnsOW JEZDS$vB:FTJH[ ^Zo=:a  <>YmpP >oicX5!PuvR i 6 `4?h2 (FpSC]Q9!o|1  F I c h `zKbn>X7sua   p  re WrzlzxlLh\<)6`ww9j G sH,0j" 'X|   q h B @ :U2 6f2i2aP:|C S : y}nk~n+e LgoSkl~9 # 7zF"}s(xi Z +FL&&*3@flA~  l s ' 3\laTNu)cNRC X ] M , <"KC $~:R=oDQ};,\lW  c y ^ +  nG$Hcn%fT~^  t ! - d7KFv T|^O`pu[Mf{y:Th % r ' OA>/7bW_ 0LU{E / = ]6 ) "q"C*Y(Sz eK c [afN6DqQ D0 a SHU ' gv[Do)S.e T @ zxPc = I  `wVv.w419  TzP  g%IYt AU'  %P},xd C ! I9sS_Y%FEK}a3%i T p obY-U + S = Byk )^*58p  x j o'}Z ? eb,v*$\6I$!Lshtl4j     I!EXgEQ>tr)u< x(  j ; _ ` L r|U#!D. \?~IL p 1   j :YUe o^QD J B J }r6HO  e+P,oMuvUSy o [ < [ g X|],i lW [c~G  m <O OSMZh9Gjqbp $dsG kh"s   W i %\J.1 kN7*9|D9" 8  D Z  [ ! S\%k5<_! :  \ 2  j L * [ zn Ug8=,Kq,q  u ~ } hfew^-= ,oMnuY* J v X F7 F  .PK$/ C $  l O -A_|a~y+k6wO s v ` <>PIu}M&d e { A - c n N ( <  RdMH}MDQa/L< x$QC Bb|_&{-"'~P<>f , i { ] w |O'+dd,%<`g;-@>    # .  x *og0c=SB]x-N1)  n2F Z Nd~mZF_FEfG6r P %}Q # W b#|6sc. gD9  7 d al- 0\OU^zhb e#[wq,} 5gZx%!uZu. b\?S8 f/"ymj1kmk X R ^ ex8\2]:b$A[0 ilnI+  / G]Bp(*H { . g*>Us'f! T-j\  6y-OsG  f nV@X DC1oR] :|k/_/c C E3l#.zXIy 8P | Q&B s0h( Y zs5 m px>G , 'E)9}Tei -kU5VP& _ ~nS- Khmh45uVXn-yMC bL1V_ `~v.:* X uLO=0E q wN>j\$-X`U\7*S6X ^*E RK^KvUx{ L 4{ E$?5-k% >ih%f%(U;$WuHIpVZh  G%o &6K*5VtP eR 0; N Di5295s|"}oN)0t1jn 7 Kv  qsVO uj*1 .bn m5[5 Aah+Z8`}a;  S Z9+ z /[%)Of^TEi/Y-; f  n2sQ n +ZvrCUy,,XT-: GWOm o(Wuz79 , iOn:5qLf2 /0T1-_w[<cY  (\I J 7D ] 3p}zO  F 1~+G"_ \ yG<! k1poVoquuYx " bOq #SmV,!? c  ~ym<B* Q;na7xCs? 'Tmf,u QPzG @ 2Pa Rg[,6VuR9 Q x6ZUj" MiUuX&=? m s>V  D^my1&YE  iQRB6 X<=g6 w6U߿ߎoX2jg JYKD  Bߝݭ 9 t)U x~0QW3 N %e` =9nPRߗQ^J uP B5k' RiU6| n y al" I (/L>s?md* r } FrCy4xL|  kkM RfP2QI$^g T*!^P \V dG`QOkb/J4~  #p>eu# LM2xPG_pt99L  |qh`Y *qMG9 ] }?T"@)qsb [ lV!n7&@uvLw< R< Y=U  5.nHC{d+$g&p ;mP ^  -."NMLx7w? + smz>N&M  c7An)6W9:0{]0 `qs:NmI>g 4Cz.=|cޝݕlpYWGQ . $?> st | $ K]%@nNV 9/=qc ^-^^omK&vr Kurd] {oF$ f d[;_8" vjz.,z@EY-:g + A 01(&+  U_y4agHa:Qz * G@>FD 2 yP7]f'97! a b;H7?x J3A>(m_)% (nv}aC + @h>3Wo(t: C  L^X Y i PT8^PLO8d`I</^"W . &0Y_g: ` 6 * b[t 7/#=7c,lv~ N#7o  d+T|0\\LuOl,K +H  m ~\-Ay9q+Z&< ;nlpO 7 9|Lhq39f*p_& 0 W4e so4S$hx(_  @*WB pz 32O(8JF>2$M(c 5S "!E#$%$#"! tw| JߺS(Yܔ4*}ig UD!%(:*(*(&$#!N s:t& PH_>`Iێ#ZޤRWM= cg`"$&(((n'$"b]&he\ܫ+זn׹OKp" $'0)**)'$"pyD M^;jsN6ы҉KG(Jh4Ob "&*1-J.-#+'$" `M^ TK^ؚ-ߍm  #n$$/$^"PK ?  2[}z$abj r` q# x:)D"k%'(('7%!`$4=M wrdۅpԌR\-W>a.zY NeR b#!%W%#u!hewiz< @ A(O6PܲڋySB%RV WX~*HF>  V"b_$iLߵ߽MIv8??U3 !rr& i K:aQ~S \ Qj b|Tl {"^b3uݟ߼@p/K ,n}ZTjp  M/B84FsV # 6t .K%!-"i"!e 2I W 2 t("9@GLe\UN,2,JK V8"]zs  e.m5[_4;: XdRBG*  (/}"Q3g? qVY #3%SN<  F}-T_,MSQ1Wm a;&`r8jL) Xw y!to$=tFyk{U #E{Q< O ]`BS5"sc'a0Y G&xvsc h BWcgt_f5[ *!#$b# !Q m  3mLS" $1WkdYSO  .330h;5   Z 8XRK>TFz`p ?'+, ~ s cM%  FC={>-H= ;=  3]GJ?Eo!#2N 7 YT0Vt # 8iB pf@?.A`$=h@%t. +J'i""?4NK H9pG l?/ oC +S}eVhUz Iq+L`Wx(> ;I'Vf C).W-_ ` ^soNJ1;[Xc9iC]]K<02F5Cp@\%;nq۔& a)(RKq B d !##$%%%'$+!v mNn-4uL+٧ڃ LI!##h$$$$ %%$$!)oX a6"k$xxi׮eiֲK׍خ݈]2 %!m%+''I'c'(")*w*~*2*r) (%!# i(<١ًة֜*= ,, $wJDK e!R#%')S+-.B/.-Y+'"] u74q7Ԥbϭ.cΩSϐi3Fw &S$(),- /y//]/,/.K.I-+)<'#Ip1gێ;ȬǺdze˹QF5ٔrmK(q >p%q,1454m31d0.h-j+)&# pA<}XЧoƵævãTȾΖԒww@!C B#)b."36o87i51-)%!aY ku|ݕ̯ɍǮdȌϯٯbQJF$m*.134431n-`)%O"?4 # }ZخXЊ&,.KF/k$m*B/n2R31.r*&7"+(S2 b<;zN%%TCӰ5Eg  H',c0!2[1.*J'$" *mCi i*tHۓ"zҿmG޾~bjZ  d2#&)W,-!-+'$!eWjmf%ӂٞ(ߟ;fC]lh I$)I,l.7/o.,(%<# [<" '~Iaٷ*JOpoH2oQ <$),-B,)A%z!&'_ !| ZSژجaܳHkYr <3 #%z&%# mi{bBV\v 5[Vۭd}sNUHB^!''P)(%"jOj1 (;Yc q<]:/ U !d## B4W + V%bݢܮSYTP]9y (2A_uu6=g\ PV$=kHڵٷ5x ! q Ih#%4%P"04S$2: n  \ R c "A{b0TdJh>y:4 ]% YQ sRs.)g[e\uTxbhg (<s!Ehi7 R M@ g|Lwa\C4W k<! 1GX[j 5A&[k޶C|S_[  #$"_K % y V v`݊ޮ@ wmz]!X"0" r}-1 U 9GA)rmۉs֋c+*pl"([,--~,P*['$ *|n4 F x0-dK9c?4| PJ~$*/l1L1.*%!:<  iVhb07U? ݲ_x1"t&)+-,r+(9%!" gxӸptJݜM}}(#*0n21"/j+'y%$J#`" y=^Q Bl̯{2Ӫ֬U۱sް8? *l#*/2)31/+'$!9 9ixWړd בز]`W}& $F&#'&$"%^z ԃsؠ:ڌڏ|#J$()*'$z"!!!!U! = 50F!ٴ՟BզպՁu Cاڥ~;L `s!$$C$O$V%&''&%$R#! z g?{ۗbE"$ҁW/=@"+&(b)T)((d(3('&%x$" lr QE' v}h6sԛjxi#!)6/2332 2L1/-*'$"G^fLy(ʎɐ^5,۪C.TY,!)/1O20.,*)q'%#! A47 Cϩφָ׬i.Kc5J l&+F./.-D,+++Z+*V)X'K$f8zw?Ӷ;֔Րԝ.S'l23 !#%`'(p)6**+*)O(I%y 75ߢܰYۯt_V#֩ՖԑԢAא) k ~'u,..-a,+,L,<,+d+*|)&!2`i+1W}OөӡӬNԇT`3x No !6#j$)%I%$#4" h$#} %. X= U ;&; r %ne-rn81(X 2SF "!p!!6!QG ]!P`:R^   ? | `(zBh/&J\|bmfQj e hqEY!!o#ff!D޴۔TU KU[ 4O "E#" :p f@psOZ{Jn%$m^p9Ge B[a]| ,oCe*>sW#`[K%#>lI f#&U)G* )$  .SM( ҾϙwتwX% ]^ gRn#')e*(F% N F; vۿs a"9ΤН;_c "&*.011/ +Q# NGEywVטGITG I pQ f oXbQ. #;S<~Fm.%H2+~M: qwc=|@ I N^RVF"MI 0! 77= .?#QKu.[z7 ( ! FUtPjH c.<;`HN$or:elz  v -T_gS7u 5* <7b#HH0%$M"3+[7:v; Wt& {'?3R kb<)$1~WSLlMV   s]7UWDx BMgY]#+*Oz," N l_W : ^@3 bcun_H-@d szZNJb3 86=vK B[ ik0 9S 'Kq |IAh z =#te5o,Sp[GmN ?yq"" d  {\$W $G݃ݘ߁[*gbcz !M!E~hwH@Rn')(UBqLP /AT;S"H$S3 Kvz kW rl=C D. u(:*iaX߂n,(ؾ }D|dH"o%')*2*(&!=+uk4Bn߫1%OoZنSRb \  n ! v*KsNt(*jAm~V%aGZ| |mW K%6Bw+58uH%`)LM4- i p^"#$$$! '+U`l z\ٙ1uW E _Ez"$&''U&"s OD*,4x?:GYF&  T k"6A}TtxlGv3,EdY   I3~kp~:f    Py#rhd[ [DN ;I5&9% YP c(jdQ1& 7- Ae cc\$ 5g@ڷ݄+yfL.(-&$?C k"!T)Y&$&^ dۃUn{IF?{#)+(#) . 1l]w'gM\{;Y9/@ "'!&(u'<$k#p&po% ^xys.gZSguq7~7j &b0 65/& # Yd 99RZ8es΀4]n? (rFIul&^ &**'"A ) ,R  l9Hޢׯֻ׶ڨpJ>?zQ a")",l+'")Io>> >DgN /ͩls2{"?)141+$<" m x q Y O  CrZ241XLF^f !N&"&P('%"^ ALv'E(޻ݐޓ>||P$n :p r%&#?!r!,;[HC=SOׅܵږ"=#_C@9H U!## VchRQD!jw >/ ܜQ>BGdCg!5.o&\+w,*o(%#!t> 1 ( ؙiO Ψhwޙ. o%,12B2z0-n*%6 J W9uoҜhf Os (2b8p83N-'!r O'tg"xҔ̧>ҋٽOhI3G$()28;k93|,a%i W;c8 T ұغpW3JHF%068s61 -(O%!s Sh1`qVb&qcHhq0sL!*o K!.9"AB?9*3#-5(m$!K-v4 9b' |Mݚc; _RR +O# )3;$AB?u9J1)2" l>ٛQ4ŮWģm͢fS; fT t(418v;;d71{+%# DO ?-Sأ%j,@vAdt  !,57_4F-$) oor n,j׉2̿ˁω/ߤ < j o.z#$$!^ @#*6/͊ûȾd]N&L p#0=lGsKIB9.%nq XmH/݂Ҿ32 E~kB L w ] Dt%!-1H/.( nVNE"i{ogz?Мeb,@=x L | y ~ > Vo $K2׼  uXE? u2:9"i'&+t,2+'"v;L i4d2Ҷ]Z!%   FU$+-C+A$ IN 8yZ@? LHqT]Fn7rmH i F @ og(!{ zz.W~ E j IB#O  aJH$f{Do !R!q"ٜןiߦ:$j Nk Ft"S#!T\K12} 5|scu j>* '+;*$:me !! , l@`0cC} UDWi>66 ^{'-5-'!\v`{g` / ݋ٸڛݑߢߙ߹ݵZPS_ "t""! #.%i&R&%"HTT &Hߌ8r5o~' 0# &%#!z !"I#K"0 @jCp|Bס}k݂܆R_2#M'E%. bc{0aR Jl`܇G?`^O"f/| W#[-W  C G5,IpF . h s$$d1 Qo @)) .tCZTK' =seaG"3Rx0YR Ti]x i99S ' :1#SFWcM24vv2 |3! S)ޗې\ XJ,##F|B 5RW Z  H <,}A5 Q #^a @ ;'P;t $  DI &r_nt~@5dPn[ uEs" M  8;a 0 =9 ;"pmS.B}@  o W' %WQPc **FFY"$HݍiTطp V jQ2 "#)%&(%*~*|)-'#nMUZ۾{ޡ޶ݥA++~!  H!.! UW9aX2R-@^e'#C B: ,#~'5**)$ Ux-1R~<-޼QدH8 D$)&N   XEh P!S! lbC4ݎܯgdHT@*S=K*q)$ ]{\KU1o U Lo i M:D, Z 0 Q'tC/Q.ܵO7 ++! 6 `G 4l R"#$&;((% JZ 2,?sQrHݽޥ$hu 2 l R9\ )`*) W  ?e,JklrJޅ4Pg e!%(*6,z-.0010k-'JYqn&T҅j/@ǶTǽǐ*w~8 @ ~!&t-$4 9;==r="%'(B(Q'%P"v_ ;&X #إ׆g;S  Q' )kaNa {bc D~FIX|NN>>z^4 O]Y x |:U)f ~ D.N =u<?7!*01 -Y#v x)c"Uk,#cKYΘւݪ*6sP} !-<9"@?8+ 5kp Up$r@ɯ/M RJ n= $'&nXk4$@ ܩ҅Ѥۤ lk" LcL| P G0_4U>?FET P) w d8 i  }5}aHtC|| ?}.N4/).}j~ Q#s B 1H+ ?S&lW'#q-[ hH \}vWf fl>o.W"&l *ޭigj   b\Gy #4$!fKDc@P;apc1 "!C kDR  rB]u/JzNqv${-$" f  JhDfZk,aΝܭc 1%TYn }!D"X  <pCgy xn-lY@0HA o w.<K S : hhHDAXa30dAztJ H_~ *B_:oU fPܢhO/sY,u0 nlg VG#\ BT 2GG7# b7?l]f=- fp ~|F>8{h f& @=_'pR   t{) i J [IW+U}H^:!6K > o2 B'VUF^(j.($zNNVe~H |2   B%1X3BBZK"u@sT8lo 6J {5 D  ~ )]zO޴8j?W>7 !t#fwR7MO: } > U %5]P:sNsNE{ :  {J jޞQ۰$jIGwn/T J'b3r61)v!*x C&rv ( AGυ(=ݩP/VH6n,W-!3-3P2+!(' 4j:1<=#̄ͳq٣B  |) B$1'L)*v*(E#Q\? w Xgn..\L"^ybko0O  h,]2Q1O+$6 CC\27hr>AlPomFj M"'&(d#? ?]]>-NI܏٥0p}*G t.';-/-'rq N8_}\^ɏϓةMi51&G^b' _%v/~43-&"u8 H e:Ա-Éqv pCyZ#qw & X*6?+B=4%+#E 3"kc$$èƖ\ϟԷ9h7Sb_#.5[94:o9~740,($X!x Wy:оLŲZώφ վآaVS[v-0Z7-:CD?a8k1,(# D 9 0\c">ň ~9/l"i2W=`@< 4,](%"ju a %Fbʳς`AI؁aKs"> [)>03w4q3;21-/+'M$"u l^|!wx#SҁϮ8Hy̾t ,X313.**0.=2456B8:C<;y95B1,?(o"g t{5Lҽdɺ!w@ZA(/pI.>JNK;EE@m> >=:740*2"+=b- ˹)gW[v] k+ &/;1.1+)i+0l59986!53 0'AQzm`8h͜Z#ǵ~3ښ;AFpRSR}$(+,3,G+;+,//+ +5!y4 ePFu9 #^&#!+!#'*n-0352-m& tY6&)ܝEYj\@ !p N O|PsV_:'KDP0t|812  k D _!! [iP(mW]x l:oe5 ( =3 L ]$'&\" 0(INWKlx,e r0a6tMݠd,Pl{n !d   W b U } @TDW8N tV֑ ݃bN`  ()D%dHMl!#%(*c+**'3"ch'z9׵רۍz"Fܺah֛޿)@"+0x/q+/&H!p}^!##! >΍MzbYټڴߣ7pן֥Y#] )+'"!%0('$bQbH*7 S @:ЁύӷSO/מԤWX|+Zf* ,21,%-!8/U$(o*(v$gdh͜ζ=k۽[.ܕ@S$6',+($#$$$#!%Kn NQ>OMR`5ڦڎ#C.A2/)#=<OwJy Bޟr˖oӕܭMrS; (n-|+&" >~b u !N(ף(֏܊ߵ7g?OS##uP3 R  Q &  O(F6G;y%cs PCO'#p!p~ 6 Q a H @ !I&{n]>'VT!.g'e8߻~6!!L/ & SDiF!R$%%')+(|!CBT%ޚکk@| rDau,& ")$#w$zJ*B9(CBnJml9fO " g &w|a!"""!'H y *)Elt}8aH۔pOe ,:Ma!%(K(#={ pHI[}MmYsrc7mV ?wmb_*;W?C~9B,zͦ˟ͪFOqgE!#$$$%%$eGzE):jܧH'N#ܹܲU Z4yh"["q`!#J! -)"XQv) LyRmXs4oBk$ sGwZS:ۺYބUٓcE6;@U"*/43q-&!  !w"w"v!CbV <NȩU+e/^ط֘Eo$+{*$Z# ^"u##e%H(+- .+'"` IQouLنڞmԿ׸?=)02m0+_'$/$%(+-.A.+7' 1R 0A.8!ܒo֝֌ S)pRC( +V9>:1''$!J;'$g #6'g)(%{!5VcB͚ ,[uS2U#شqbӠّnaUS#-0,h&""$%F$i"!"c!?! .n'ޞ~j "uP؏2 !%#~  ?4M!&+-/10* ?ٴגٓۿ2H#Ct|7e4NEv߹4;%l//*%$'+E-Z./D/-J*k%&!JW \gڕeڰtһ7 ٝ ^Q2' n(01+L$ $.((&'$y""#k$# 3/nӹS#MҏԘ؄E 6i!"l"!"m%O()<)'x%w"_= ݶ9 G|9uWٰ؜l6 '(' & sJ& U"_%&%"{Lg ֱT<"~vݗ=܍B{/"Z% p 0Gt  XC|l :'VjGCiA'gYPh `Ze Ru!zfIj|.b6l.gj $b d k V mk-Yg'%A3n5XtHn} A ZT !#b),,R)s#a| m2.U< еYWu0X. ?y B,= p$'''V$  @n- "ZـҥyЋײwDd +0E+ g CXG!^$&'&4!u[ ="ؖK R-֧R)+F%Zy > ixZL!p!TM Z;uNGH@ r[ }     }7jO7_%߱{Z#R0P {S* )""!zW k;)3Tӽ̂#֙hHIW"&# %* --],+*)(&B%)#9 U܉Կիsݦَ.,"1gj'1k$'<*+K-- , 'R<O v,ًuҷ^׃N0܆݀~xy?9e-$2G85j0:-,E+&WxJ!)$$2# =yu>LؐkعڻG9^gx w('00,|)(A){)('(+.J-+([ rSîǝ@ 8bڑۏ(RT -h:BDAV;3,&9"G9OUB л#Ƞ?}S=Dݳ3 :~P*E C'{8}CE@m94.1.*&$#|#/!~ sFϕŸºUևE"5 -M& ' 08?}B ?^6+d#0e YЧ$ֺoƗ\ث܂yTuS q{*8@CICgA@??c>;86R1=-)u%7wӓø "$+@a@f$ f9/v@JJB80+S("^ i # n  tg4/T޻ѽDͱ+)KF@|*g"%4IAEAA91+`($<;  )2gӿvƤXg~AWA,&8'[14l3`03.[-,+W)&h%$-%%A&%a$ weW &|=\̿ΰРTٟQ7# R+92-+y+*O'!d)b d"2\z͋W1O55V\ $2;^<6k/v)=&$$w"T *n d۪M .8-щh#8 *%519=x:3+~%2#P$&)(% z u  C b܃#ν,dẓ.i%\FI>aU ++Y3V3/5+*-T0!0D,&^C$s ^Ē67ͤKӍr7\܇hEKo |hu,5070& , wN v}$̀ðqѭ v"d$\xA%.y/*t%"#&()))'$ xPJ: 9 WAͿϳӠ5εzљܶߴy +3.51-E+*)&+"%}l, 2.a\٩g $ "*i.B,%m,W   ܨ%ؑ+V $+PN%%5w=W<3'A)WxGm B'Ҫɏ~Uؗ@t^ R_$"5BE>2(#""e!GHV 0w) M2cE fϼ%ze( +S 0"0<~B@9/%t@ ) feo>ґݴQ=cy>F '2s871(b K7_@ Ngծ{Xʤ&߉/n fnxoZ"*G6K"c#vqGT }y2q;לHؤeL m| bb Y "#u#2$$$$#I1uraԚѳҀr$݆ oKQt $(Y+1+'% ۃب؁g؍։;( ] j 6X\ #%$`!6r!o -wˊI2Β yԍִ/"0"#B""#$'*/3M662,x%nE=u mӢǩī}[WǓn\ٶ0+m~)JUF}%x3i9070-+H(8' &$! @ 3A0W  ЃϏт+Fٺڠ۝Vd!-6  "  ]"'Y,.0'1.)*$!_ 3"$$%&9&!_ڛҋ̸fyѣӞp3-D&c)(4&Q$<#?"l v!#%_'v('# )J M:KY>Y"ԗk p ~ " ! |"V#!${=U׼iF>ٺsH P# XSF$(+1--.02b4340P*! a"}* b$Ȱ7Ύљ׃ެu "$C'7 Z*3>9d950*e&"NAFَ߿~J܂ ؏'7RUY?`VO@ ##7"e} @z$k]*dwGߑse  M #3)>-02I1&)P28q[x[+@yvǾ3#v`Z :5;!&*^,,+*(# )k2܄o2g!(&)x,&-+m(#vivY _@֢g#Y # (d 6 'L"%$Q?'9x?ܩ>O 4\tQ'Bh:  G!&gc8 ڕ <F &&"Ngt"NR | 9qK|M R A1WJ. N @ZQz [& A\`e[Aqnyތ}֘܁T <  ovnr (--;( r={jo܊֬=dXE ^)O=oR< ; <oJD\n3 P "6w0 oT ] Elw8q$Q!W^xr?  j tdq }Pb:f-]<.ޑz=&)%Y#!$%&'()(}$4 ?"BG/Y/K $*2( . O I  I g[C*ULeIR ގ,S J6= Sa~  ! qA5SE qp)tj2;fp&: A T  icԈP&k"Sc3'5_;6+oL !'a`Z aܱGFS@ e!#4 Jjhk CogC q hLZe_  % \(u l%!E= O \EO#OԜb<}Oh ~L3i 8 1   %p$1+ _^T,T3Qu 0=? :  r,$]My"J"V h =aI e{ѿŹxܧv9`e+i8@%C[@:450-+~),&~""'' b:Z.~* gۿL+Ƚx9w t I c\8%4AHHB; 5-%6 5yh em/փ[+so31'1; A9>3&x, `Už^pu|!ni> F l  z"2?EQD%>6Z-($-*:y_kZ͡+&N.h($ `)2j5_2E-)('0"mQe@n2.ݼ2mUCg> ?ZR0&$(-5T:775R0)|!D (۸OZPfĭƯvрԫ7ٍqbxq'(#/}<FHxC7:2X02o31*|" ? `zkI^KqYE9%֛ 1ja G[+ 9;CFB:1c+g'$T PuOϫq#[ʔˑF(7{6r !/;xDFC:c0%(##%$!8 #0_Jh̋q)Vo6ӝԓkjE  V*>38961+%4Q22lvH^iwkȷΦpn.LA 6P",F474L/)#O98 f׊i,/R-x&Jx'C# ")E4~;;6/W+):)G&2 W@ eswX^qŒŐNܤCPj32B =(\3>60(##&'$'z یЯ{"VܜݥE=-- +1AGrB6*&"At "" 43!ٵ̜~ؑnA[gn vr#1u6@35,%GpeNd* emЯϬӳ\omy[iywާV>u,4B591+!&X$%&/&%%&b&"ai  J TC*O@( ؖr +N37973.d*'((*+',C*&#| BkhĂ:=lo?ݜ(Ԓڡ܃ܲ޷<+9>;4-*)m+-0/r.R+&,"02 dIT KԁqˏpY֗N qt d% 2::Y5-'q%%'G)o+-//!+$  Bz4ɏrOx׏֍_%ړݟ%*M&+ lIl$*-,)#/C!#$9%r#1qV`\ىL$܉4Oځ)>)i 2*.-)_())#)&#!0! @m?,9 S X|29ڷmަڜAzٜHh>FrJ(3;5]//(_%s'*)]$U :b_  u|УȞv߃jC4t.$,&/,&5t\ 6c+`%8{F_19 t r"6&8&##Lt{/c>)(j& +T'HLmu   Z. } <US$ۢڕMvoj/܊9ݪޭ 2Y |y _ ''%C$#J" 0kjIqxeғ5M& }p!xY  #(,/`-'X86 'ىߟZܷ_ײh T!&n$  '!S% '%"iE   lWܘ׻>**]ܡ]W[E$$/t551(+% !^S* ^NmV3׈ސM^6V\)!3\2 +%"N"$O# XL{  r6տdeۈB?&۠c;S7f`%+,f(!!#" 4 b <ڡ46Ho7bE\3^ul #/98;6V0*u'$ m r-ˠ؎r-ap &%g.e2$2.)p$ #(^-0A22/)   6 f egb_؝' W&MvqY *- +y'&)-0)/+&@"D  ?Nj?̟{s˥Ζލ J*$/6g76o44310/;+b&0!6s5<'݁AK_ԞPp͓ҎH0,R$oT#$:#"c#%)4/>46I50+&"B /fpDB_$.2ƛj,ֵ .:  !#$&+1\9@?@{<3(pS +- 0ՁՎP7m .76/&$JS !!""#$^%#i",JQwՓ՟ֳ1us۟ݪJڦܼor$*,-0231u.+V**+=-z-,=)%" v!9'jt~Ē|I>r/7B=$g-78<;99-=@/@: 1&g9 Rr0=̭/E^ z !p5BE6@6z.&)%y" F" %$a _ JDIWV\${ Yչb+5 9&9766)7R8{:=ADC6=Y1g#O C&M_E(j$Z"RV2, +(1)896/)/$W"B [4`͚iaH1Y )+/0!0/].-W,*)))(Z%K  NЛ¹Њ߻?܁ا֘Eەٌ#יٖJ]+;|C;B";2b+M&"4  }" &'%"!%Hhϣ&JǾ"ܗm=H!mp]-0,&696n3s0-)&"~6  Z ;r4.(*' " s -e1ĨʼnΩ`(O*in "-58%4+$!$+)t* %L\ y [F-EÛ2!ڒrG׌y*ۙ\|$fU /#/?8f:6A1l- +]'y 't% H ? &~Eբ}-ӒL,T.C'7Un 3`3!(,M*% #nHvKh_׸J"Vޥ;UM  ; 7'.-08/' q +߶}zvͤȠH*XpJ,,HQC :!!0 |{8 q i]Wy&w-qP R%,-t'h) ALCf1raƩѧ3+Z p F-U54-&?" ^ 9&4 0)KNހ'.(̅fxtbm> & ,D/i'Q I+ *`=;  uZI6pGT -}!+722-%l;`:/\! @EY85X_܂vX]R L " gO )'P1-4-0')03/0.v+(&"LiN C= H } =`lD{,;4r,Eji\Nxs"bu  ]~4* i NݍCE@Z\s1wCe#';%/  vQXܣ3=@ Xp l .~ + _%Skn jx ]UMVrz`VG԰Қ{,Cc z=a&..2 0' `Qh w-pn  it  Pp mYX gn @pu $ }"$  V X = } 9 d.@TZU6uRMR{XX E!ZW M w #$d!]H ?ZoT>5Te>Q * b\ ,e 0+ߥv~Oa@/)/tUd %[4A93( YF d9 } K  \ /sPƘͼ]3%#g~%voDiJ')P$} ~j h, z\ BS*m/g|rx'Q +1 /%| dX>\!տ'N>W6y4[ *P!#!)>tOg^.$$cyё0qrQ/0$h, ->'}` ErO~, %D Z&6 B Nj[isj9h;[bFP6)OW$ x~ " s -{ f>mWίLɤܻ.XP[ Edx4"" y     tKoO  l2M3 "R`B % Btw P U]ROG&^B`AL" Sh!tk\%,.+6$&q;d uҥٸ&}8bT@X'1s1(h .8yQy QP 3WYD4U*AUsh| 6^h R s 0R*oB:YNٻTz_Be03 c ,  _#i'7'"$ nr` ^@*f!_ fJ?tw0= P S W&66h B <8T '-+t! s1ye'!K d*nܔًac.    l RQ \  h! #kz w vsK"5K x , - DlO2~W58  T<dCIK19=`1'(m/-+%c Jl*~$r?,YX ״  4 z&gܗݻ W41 pF &cl$ax4mHpcl +]s  _"&e&G$`" vV<>g r}$Aq3#` bOq i ? q^`4vh6b<&ߢTG XL -#9'<)** -0"5C885/%:܁gԆ}+=֎U^$` ߺߓ%j*/* {[& )Yxd# cr] lk~ RQB$DSu{@) A .T-!9$";clS:ܪ;ޑokJBw?| ^$#! w ~)OHm- [KZH%&A  7  R=c#cg !%O&5#  }Re\atܘҭΈ˸g ه" x#= #9'E()a,/1.' XUU2g֦':ޛB V k T#&'X".!(/687p3D.))#c] AIu&Bԩԇyҿ\#u \%0,0&3I2/1+(&#> FXN`EͻX͇V Gc5Q#|(+,+,/4:_@C^A;3,'8E@2ޢڅNσпl;Î3,D_qܶg33=*'58755(7761-*+)./-o&p*zpݙLӐ&ݱpo*| w f3/Y(4;:5.$6-"".dن̪Vƞ(v <|$*}06<=eA>B@:0 ; !y;bhlewJ|تچcт L; 3 b &! ')(%$5C$RMF&B  v "6Dq8 d{""""n P@RUC=h1}j1  < | n d`4)< *(EVZ V /VN< _O7)xl6d m ?' yE:   R @o~4Ixir<_JC9   TLYBo*۞:'14&10K&5 K/f9A1XRb;~U5-,;^6P k$ > &- /   [QXں߶4_  ~ >I=@-Sz P+|2)/2#;sZjY#e_.yq-JF. <o:i )fZ " KZ[C 1Xѵz݀EAgDL,S2+ ]0=B@,9 0'q $.z& V M ` k ,`ԔizW6L%f rw(&-*>": J"[ HU 8u>*x~{8Fq w&,.:.O-+)$1\ u   - !tnњ p^8eEC&<}/h l8 w  X`5*fM)BE;'k۴ޅ%~ SqR   / /XwEtC0HlpR +f4Q1%&=* ~ B>]wK\ [ޭݬuvnT,8}b _x 7 Yznw}?Mn3jrq/Xw);01  `\G  EF4[; 8Y{-/f$% ! A $ C T tS&sE\BsuczݦjvU?!% nU!%")c (hn*t5A  o<ܐu/t p(+4'9/A0 v*fz-g'>3f_ked +/F+"t S A  tW[pE4:=1:Iw} !S% $G"7"" @ uz& wj? }.!oP%)| $Wtݩܓ1,=!\)/)5#Y|J;Hwd ;: I0X^CZb w " Hb!!  x bwd^ = @2!,; )!ixyH; Q Hciv n*$.&%R"/p jW5فOzj. Zε˯Ά1WAu ###{#}"{S rۗڔvg6;Yi F+jQ]Y  '40 r^CwcّҢ֞ܲ12h;GB5[6o\ 0D=afba @ 8r 8*ragW3f9QQI]t ssX/,Y&PJ ;p tGݚ݋@##.2Z/')  <2 8*=>WT!{'fF^]-n/%uE"(*)U#oE 'j? apCRFc3khܤyu#E/A2e,!aN;ar cL.$6)XL#/1q*# f g  " )0SK pwWhq*EE|L-U'EF'e\ $&"dJ8ywj" dP<%e`?+ #%#m [& 0WP~ rRoooZX *'4>rA~>6<-$ G|8J%YҮ(O&_(b(t2 4 $$, `b> |;  $3EOKLԃ&!k)XN ux]81#c-.(  G:!pp:_߻WK`w '4_;8k.  k  xdqkgVޥ"aY '#*+'g"W@%  w * 5  Sj0M2Z K '΋;ݶ$;Lxi&NRzp$-F/q,h($L"_}-)k/(n3p5=/ &--D*&'&(+.00.)$v a Nڮl'}ʼ*ׅۥSGUI_(q U+3?3+# #:%5#y + . W $I'ڔܙtD@SfxW sC&V--/*i&v$#!i Yd1@Yܚ؂$ڴU !/%#_ U:#&'Q)l)(),Y01/(? @; )UGџSج/gXpAy <A +_.}h /)[ߞHyR]C"))6$w  @$ u$#ܶ|8:+N1n_B*//,)(a*+*U&c m 3 NxgѝI>Xz^hC\te&],|-*'#! l103n$5L*Lhp'RjGH$o u.2p+ho z;Ju3p'?%*) #3`_qL{& ("./ ,%)V 5[pyVT/l+ٷ$wG%2F #w$&#_L  #>(&^3% z :߉q٭|5ZXkܽߵv7j8 '*# ItIJZ hCY&GP7t^d){)!rV< #!(#c&(U'  gm܉h&BNV eh~Q   N V '#b+6/-(!!H#'H&.{fA k1DՎβSx j tNn4j};Y8e'@tW/ O\u #%%!1-  \ 3UVg)܉݅awPݽڌ}/M`M} *$m)o)&# "%%$#d#[&a*g,*E#n,q '5կѾυΎJȴ?ݔ 5 G&0*6U62 .)&#> rp '1GJ۸ԖҵA5ݔc1wV)' p%*h./-*'t&<')#*(#kb XܿrGOj݂ߚ\e5 =%)D+,+(!_'H0550)j3:5۵#ً?Ϙ%5L *"l''#LMP#*g0c3]4u3y/& F\J߶g_֩ր+ՏҨ֖, b '-120-*'*y*I*(O&H#ApWT !рγ4eԎv؜מ ڨF i?J!S$%&?&$!|=h ވs= -"eҭCMڹC/]RSPU G uj~E 4 Ir & s#\mp nYv7POz5J` @l < E  #6Dru 4 O%KGm}O oP8 $%&$$#!;u;Ax eq(P$'U݊!# Z,1/&QeM l!&\)[(k$  Gs7LzކfY:eJh-L|K %!%$ O w y g x ut_%)+*b$o۲T !O @s!$?(+4->+&% F ))b*k7tA<ܫIHG s3/ -#)}/2s22/*F((*+2)J"9)בѻ0ם.oՖ E 9*+ "Z !!""#"QMsOW"bUB ?^NC`'bp!$%$r!"F]ܙ܆P!';F> ; H"#v<YRU!## Z A*\Ѽ߽ܼ/ iߪ2sr o#E&$y ~ p&F_|n "mљӳw[?UVds* 2 L6~H r  dLelko3npp~߿`   '  cR#'%$$$%$C!<d j7=tJUg Iޜڕߔ^}H   + ri% K#)F-,&or| Q@Z=/6=)3pW u6o yv{ C՜zeB1zw1u=oCE !$c+ t  BW*##6 % /<$}ۺE] $ ) )p @;v]|}j$'!!0<6ܞas_TGY}pA!s kuR sAgeZ( PIBJ  H'  [$)c,u,+)'$ޱݚWq8?Nr߉Cس6 iNJ|r Fxfak9bf7|+J 5*7߇jLH l 9tal( mg= . h5  qmSu[2TpY#Q Wx >a Q (H#J#B] %nB*wxoT f OB< \ eH Q! SiV #$R-241*q nvG}&2#Ԅ1ۛ~s)  8 X)#!&q,03211#1/R)% 3M-،0д!ʥʧʘ̸[RF %m ?s   H Xij19 & 8d'P@ >"!%*.0Y3}2].{(! CHAE9l4>fY9Wشِ,g 63&0x8a\!p$Z# $d:mvV`j2ٮԟ)G TI,I5 (d c6 [ Z(J \ߢ\xW Q&e N :L DC*|#',R26:;=>>:].;0(JطÏQ"Mv#z_9x#R*T.p/./*"n (x `SA G ei{I./ @޺  Tbi S 0bTc9 $ hJ};dc-Oyf^ߧ!U#x?j| ja nA/*&{q MXe #.4;DߝtjXv3I)5 ML8|c 'WX 6 ^ 9 lbY CcCu(n$7 `}oS,}I9 S5{,  0+e i, aT q! NtvyLR֍׵ȘN`5+Z[Z8 +7BFCu;0&5 & :(K<ݯ<HxWrePXSY mN""-  0{;&)-2b3D%y!&*J+Y(#c!+ c0"όH3~Q?`r!x \  J  (-* 5 $sRXO`rx0YX1] )  DgC L_?C 3?N_xz *?E5 K   bd `*%,,%!x" G}.Y=ַm T_]VK*0z)jql  Ar}xf'.MH!X^YM80"-1[-2" l9ilyyx@=dx P 2D kZR&mܔԒKǏ M >0{*U .9A(1763 3588l3+)x t   <۔ӪA(%\Q vc. XB$,4i<>:O1#("!! YpL= 0= uCeo*r!.9GAD,DA>:5e71/.+(#&#  _1Oe Ɔ[9<>wtS <4(vT)313.b&<G 9 ESCBڸƼԽuں&3<=91,+ -u.f.F-,+)&"n UܷV3ָTؑ&Q(&.@24u8A<=;|6}0i,*(%RLp; h0B߽._uG܍gxRw J ,'8;94*0+&&  'qy  E]q&҇ Дٳ=6 )*#?vB_s_PzkKUрγνϲ#]1^K   /%)n**,-.,%)$!0G7 F{roڷܹݮkڋY cec'e!pt,:1[,$R !%I(@'Y":3 1| M# 2C>Μ ]5$ pKw ;!$"93F $&$B !&(&"7OtA F'%Ĥn[?}ْ ӨӱփX0ߛ4(U"(+*(&%$zE<(hg:ٮӕ_p&ܷyLz`&*.0W,6&! g"##Cg!"d X n~~#Ǜ j$VW|F2aL$),p+p$B" 9 4JEՇ ;ݼ1ԣ i nʶβ.kp9>iAJ&X.d/,)'%## ""qhm- ; =ۙҠxIC3T݀ԞembAL J$1=FSHCl:/&ukg_ Sl9lґ۳\•m"]Z6-;?9/((,-12[10/.Y+& @mm IAݹ ƒhuͧΙ֊ٞݿ?'W )8dBEB<746#88!6/1'd ? _apͅGv߷f$ W/[t"Yid X'f5BJTH A$:6}4/a& 8?s~6Ҷ3ԁa~@mcK&V18=@CD\D}AA<60+w'f!65uѭUhԿ˿%T4 c$ ,"0 <@F>97N:H>~@?:4.'!>>8 {j߅:l3J#i9UN _) 4=EG`ET?70B*&2# FBV% d:Ns3a?zֲۺF1 "S= &6yA&D@M<9e:;:60' VCe JgE-zu̟ñj ˢo+& ),X&` 5>%.674.B**,-*$JdA` So-F;2'Ȳdm+ u, ## !$$*--*!'0%# uzM @*4Ê =χzՂtO&}1=52|-)*/45C2*"Y5&' Rʿ:ЦՋpҦiyNjȡZ c*ڔ-"1;=~8.%!"%''@(*.?22/,*#VMz (\ݏǓ̺oٺca ͓ 2TRkq "z$-8NB8HTHB{9/(Z$#X$"@TO "OpG'[?V†|*0.(<$<#%*w./0a/,h*k)*0-F/.)!f/ºû4΢8ϵѶԄҺ=X;ۦT!.20+)s,2462++$!?#&z(:*+-,(p! QѨ-QFRk "՗ͧ[̭ҜQB? 3H!.F;\D:GC=62F/e,($!!$#_ʥ:([@ "%#"~h]*6q&0799I691*!lW߹.ld߰ەzatǓw—Š~ޭ J9>%*<.0b0,?(%'+17=AC B=|7/&c 7iSFJÅ/T׆= I.Q>HDLJHRGHKIBF=G1#X? rK.aQՁMNG42AԴv+)$)*5'!#+21+!b8W!"_$',<1^32,#A%jm4MΟ7e?&̾,=h"),-N/1418;>%?;!6215&7-4+[ h9d:"ԃD 6ʥjـ^ T? -8g=>cAE/a dǪ@Տژr/&% &4mAHHD?!,o4^7D767;:=>S=94/)#X c`< ȭEVοٻ<7߽+I[K%2;??<{71$,{(w&$t!^Q+}pz= ğɋ^͵Ҥ9dv^k J#/89>5b/->/F21(E6kEҚ?-zF̓PWUӐ߿ %(*'x$%@,h4x9E950-,+)$p`x?1=?9/'Z!491Cy"\&'L&""{z J >C.ֿIϞ{Ԏי} WX؆ۮߩwh#077a0'8!!W 5""!!!#$)"S I -@A5Gda %$-x  U1\+&Z* ( ?љڲ=yWؠ Mo"q'e.f E ޾ғʾ*<ǢɅHΙؓݍQ_ӒnvH$p #I#Y!\ !"E"p!p$%!ۂԆ ڻWd O g E (| D-3/rW"'} `X>zݗڠ mܑkh4mRǾ+Nr o%)*6($#$l'('$M"t!""5#|"h( + :r^mşˍٸFޒ K -/6s98536210.0/-y+(%"9[&uhyǔfUΫ _Z& %&L!D"$/(8;:T72Z,#P+l9/ ܈פ dqεlFHPːN &}-u, )(&-3#88654566H64n2x/+'!!NAkſsF׿j#Ń{yg֎/Xl)>:EK>LH Bx:30;14m8581'& P G qm;^S\T޽e%3;:3W*8" %*,.O15l9y8G0!/pߟӭY }icǀ̶@ղߦ> c e(x2;BtDDCB-@=:75)42-H&i߭ʴ8˯fȤg 7ˀʖSҸd% /50Z&$+/1245531U,a)o)* (i `ںݯާEmwqU Kg =<n2z[zh eqܔ ?+/ _ )b'~_U I*4;>8C*?}S$A_:u}ɘY)i  o "v\  Db\iZ1 ZQ+ _1 F$(*R*%*P*&:vJRB l.?|̈q?  J&P5M '@18>@Y@>:o7d4/t&Z7ؼ&ψ0ÿ辥] jNЪֲ#(H(&H'L)g+,.c28A?#CA +n'>ߔُ*Ѣφ/e?QSEaӦIԋY(+130w.^.1x599{6.# 37u:ݛfOҀѵMr Vw " %h&#! 3X XJR|ˀ;qA>޹d` ^HӋͭ٬;U)53;:741//,&]m %Rd+'[(H$| 9қƼvOƲ-פ7u!utxdQ?<"r7HdPKMB6-(K%!m* .+׸zfpah3Fbi٤;E".0d40L*{%$'+-j.-+T*)*,-+%*DF>uuf+EҠAܩk/ *4.,((i(& R\Iq0<U K NҸܓ ٓLUQX* *Q-)$#$&%"!"$'O(/)))'"y i4۾4i܆%Hs } ( #Hu>e#3 fC]T(0j W uCy -I? Loe*xP;v3߈H:Ӈi.ՉCޛUZ= !(%SS@A"p**!2[p>OM8dcjK qQRy* \  C !R! ? _da.q@e\64 [ۧUd9'+,,*^'!g }Yxc"%K(' #rSܵޡ۝ϰϵ8?>[AI +/-'!< ^"$<",%x"%ݓݫRlِ56b, X"$o%" 7%),-,*'$!!g'_ <T5BߵYr+ۙ >0x) ^7b*T0~,%v c4WT٦۳*o^y (020,~)C&"[-* lH # RE;C[?>@+-CBV=!_(V*(#N| +  ~4;ѐݮxP tuV]%H} ]x0V}$ TuӤvp /#8+/Z07.F+h($ %  ̈ǩǵ|dut8:i@$J+4-*& -U zr- {S7 ހwΠԀ ٩LYmR,z (0021-g'g~f@͠&!IAߎd ' 5}<-=8X2,(=&%$%F&L%7!LE O( 1'ّE#ȠЙۛ)g0> p".5400*V'}$ 6 XF g  J~ֹ ƁS}#NVMVY''*&="`  @եݻ6b ^iKK% l$2:9 3)!FK G"T$"6 fwݻ׋OڹxmA$8+&W O '))(&O#7 MX q@ D;|mZ~}@ !%14K1*g$-[Qc ~y6 ^c{nN &,?,(&X'\'S#'k4S  ^x<ܗ<9^UuO/#jc"&&#KTM(f#KBTyN\޾̰}( A3FJXe.?o| $*\*%J? ֈ0ß\!b$lAO)J=,!#9 % `  4h n ?xJޢ7B~$ p%KK % o a i l 9 | G/JCP&&Vc7Q+X׾0=@p( (G m Z,^4d2) x*HcqCC}] gPծcxjLH&!02N<| |"+ 9GX)Qf to lR> &# R (-L*_!ot: S]P"E*  w NE^$DZrQ*tsy!^  r!%(%!8 \12oaܴ҇ 69nK(/X-% $T l#JՊ8 y ikw!&,5!:d:R6z/6'OK  +,K  m8o ΗΟfCԽ=J(&Rbf -#a+V+&h Y %q s^ 5 IȹҥI~dHc"('{M1hK i$.451f* Z.>gňөӿոN&0 4"0:=B92..F2684*6  9V }NXԀ ڎږb؂رW3`@wz1 (p')%  D#g"7KZZd mr|`mT.;/ m Z  _ ?  ? v1 ;/HY wW  ~)+$(">Rb_: -}}d) 4Ui߮O=QQbg~  /MH:<f %7//%D5rDFy>kw<v>x=yg 9mKT 20-"4Ӝh@\!(d1&9u==E80( V {+4B*<ٌjߜYez7H 5)0/)!MU:s l0}IMT; c+A|3ԆӚ֬-vv   x*2H^ r{1֑ ˷%ɵI1;_4:n2 F O,h̲m=?  N 1>DB=8v5M3/D*"$B< W|v Ur|ٙt"o-mMSM $D#D$ C_ Y^   0OQwhJ%N ratYˊe׽BgQ(E y.0$0S:x?=6'-F$oRv ]ln  ݦEDKFPF % #d$"p6 f F v; ! `7ÚVѸ& VxB' 7<6)fbE"ŰFNqTF* $,4@GI,I3HGhEu?Z5I) / m 7sLQ2!NѪg9_oD!G  e 3 %E^*.,G(Z$ p | 0 K3"?OX  cZ  olٲ&/AH>N $&&"q tbí΀ې3zz}5# !I:tTg) H 4$MV x,>dIbBHB";r_@U hJ $ vS<mH  p"s #Q^=λ<҇ڠ : ] c`);o" 3>+24 @< E A K? .z tI_TE6][`gU\jm2f V N/< z U9+9s@rM>*sD$Jٍ߲/ 68M b |#\ | sd g"Lg_ ;bKV\  L73w5v  T4' .e$\51 C rPe?mZ u"aP8oP"`OGt0k(|jۍ4~Cqet&.K|%,{5n?aGRIoCJ7)Su WXHKg`\ By^ cSJUe7n`D@]|hTM9a?V3 <֗܍aoH@W+ QP Qu ^Pл/_¸Na˜֋a=#g Dy2 ;+w&5DNmP~L-DQ8) /^ j ` Y7 2p#?3 >aw/ ђŬ}аVK?rn Wo"(08:_7.$f >Q0 nr:8-ي? 7b4~ ) Q ! ' k ~m-pCv=rw0 }Ze {F[x Y"""'.\45/$n6hW S7κ1cķq>F3V U@b L M "rI@#bX!/S G C G q}~0e{ F\ X VI E =G? 7[ !16-Rf 5k + D BdP|=܄q%Ӿޟ?'XTY c#S),,&bVUY8lhEf _  xO/ h{4 b- {-)kx @! Sxs= ;}L"'-1q1Y,# I6;@}# 8T|H؄˪ͷùu3.1c +$x+19+BHtHuCO<(61T*K WB KXJLՁGߙy&, 6B(4 R ', }6&cy !   :"y%*'B x s  cQܝU߰c* ]ߞބGr-S |$.,8;&7+  FdZ^t-[:чw4{(1C 2f 'XIjlq7U%  } 0m9#L %!,5;f@A=3 &sy ^ | Z ]bϼt)mؐDhR Z$0f52*l!4 `TG`=knmJ޷7K<Hc^~.a1H ,`Qd`!- 3`E ',/L-'&zx%N/ a:k:?2 CdUkVP ! m<j}SjR $kpowڱeRta |7: a!({+%W  P GGVUuc \R % CB5l %x^"%'*0b7F8[}bět{eܽ7\6b՘ߨ;Q J6= % ,726X:<>$AoDG-IRGpA8+vuw!ތBWuыaxͺoowlМ"  A!?#W&1*+ (8?i''AkLf:ߠ׾Ӌl 0܍F x  Ge&1-/I016m=CSECC<1",& ywSg_:v *MiƁԾny%#0772,(=+18= @ACFGFMB;5S0(|:@׎J!ZT η7C `4$"'()V,6/0;0*.H)GDZR BbݶاaدF x .  t7ME%g(4)*/ 8;AGFi@z4M$]_fّ˶ɛȿ@:+*/b.4+4**)F%- G"Y(-.~3d784X)ߓOL؜)J6N N٩f G + k: 2sc {f^;p O1ExY&:'%k  $trB H&,-3l9<=?=I8<,G,O{2Cܹjظg&?  D B g E+k66:9655~4_1`-*w'#6K !ٹ3CWH Vj5xrG R!I!\HW T"@c_fɓ̾nղaosv h!a*4;=:632G0(O| /C_'ȵ׽='<976677:5|.A$Q#tC{ @PG&DZ˔rݬ,Z&T7>< 6\0-+& > C9 B<}c5)XΣΓNKs'A #*4&9h867;D?>q90( i| jOىuڵ]=B%@til^n'./+f)*W/D48|<@D(D;?6+!l-+Ɍ^1]CV r-1k"&)+-//+$} j%QמZd8˶ γgD,` f#+**&i %(**($sG EICZ*glޅhTӺpه:ed 4#,.*+#d|Vz TKa/۟Et6 O !t#(f++)$Uhb8 7S["9!ދ Ϸʴɴ!sB(< .O;>91 -.3:?@S>81)!   b 8'κ4d%7t6DdcE-"v-346P643j4n541)L+3  7yί㼷˘ ֧Hg )/0/-,D,,-10=22x0,2)'X%!  ̚źѷsnŊ(ʟ̈ѪEcx3%/5689;<<:99;};r8y0u$2N =  RϛeɌ_ŀs}1$QS'LU,7{1$46=;;4,* -0/+#$t ; q.?Ġ& Z2+@zc@Cj .5#3(:K_D8yJ.ؔثbBEԵ)>OsFwU')&#b""@#!Y@]!.!+ ݽnb۹8يڏ?z/dߖv###['.3676432u.("?ZRL i I&cȹcJ77Y; g6uK YqԀؙٺԳ#Ո .ڳٸW!z(/46O6c41_.)# G  s < 3TaF ;$_؃|c{nٟH\gu,+1e2E/+*+*,*& "  y"7"J;Y U~̛ȇ#ݺ> F < Y.!!I%,151-' yӗɱ;k)Ƀ0̱ Wкz` !.21.--`-,3*&&>##$$v"!#(+*) s Ze}GܯvE"mGxF6ե֩׽֣l}*F| ).13~431-)u&$#-#!gzK |pB NSH3Is! nv \m?7|$% ]u!v.l)Д-/HhԻՍ7}ސw*_$&C+-:.$..0_2/2h.&KQGcoшu>p]Ч:ηΚRڛQ]ag v1Y;4<6n0]--w//.,+h, .l/.X+E$" }<Ĝ#|6k r^\!m Pd#"0$$)$"qohڡz'=%Sa׊рgɫʙ5Ss89->8'NMq q(+1:~CII5Dp:07*&@#9 ҡ-фϽ5Ѥֹ:LҤ ю# ַs !!_!e!%()*r*C*(#K!F !5mqo- ab oTqNME^ez,vlj5e  [xTFU4%M1R*b\3@h 2%2;Q@@b>i7)E S;BDbCM ^ԕ SSo# HnA f!f dX`P ",/+${FN G ' gʱlj̤Ҧ8޿RkQV 5l <1&+*#; q,R\  J m v;aߡ4l,PfUG(\n f~6\ {t  n M ] 6wGTs \ (,'3B9h /}H<+Al&D@Hq6f=XV _\ $ 8'^vy9'jK7Dj'/T t*$i$ il\p"U,@E'Kd+23.($c#v"'1B 0 P#R |!ҏ֍ߎ[ٹNn(?b_!+0/j+'')k,-1./12.X% fX(~yV˟¤҉לOӵd1a @|:$-1,"z%ө՗}ڶТhjPޙVg8g_E%-/E-R'G"0!$I(**T)0(''`'' )*) $!G tws),Ot,/Yw3'W.111110^.M,t+P+)%<5&rEOoqktBߣ[Vx "r0+9ϡּ܁| mH  /OALPMG@R:w3+p#p7e P ~5Hrw^]طQ{Ni&Stp)1$y%Y140)z"3  e VP{wԳ҃5t+/Cn< #-2321;/+& )e))9c˷N?P?ɺZ"*5;<9X6K4331-'*"kNv O/ޗ<^~5'`&!b b(oN*>#" 3 %e  . pԤڙ9`ؔXA[g . J&[+0*W% EPP  !}!T,trZQ/>:AZF*'4?FF?4G)P 0 VW2-Ǝ%B|\6!> ?'( f % !2 sg"5h.iT>|02W6 S#h(R(" u[ < "7E?)3 мŽ^_U](SZ4W#% (@(152)9   [ujvrW~2NPA -=s jy*T   u 1  mBBCR&+.e 00szt   9 << a&b}T ?Fp"l#3Gԩes)z,1|.(##%(+/0.&|?!\+0,!]3F"h:)Տ%}4ڕx:V fZ"'+-,,- /.+$ Any@ރtڹCiLƈū00' "&"$)_$,0(2z236#98v3=*] BiGHρ]Uə?Gю$:1o;A|DC|AV?=8-1l&Y"( !] )q "֟Wݫ݄w.4Aq#+---+ )Z%!=]L@q  8?ū?0Қ=2֧؏ \ S{"\#/" !#$$ R &yp&،LI;ת$iSL O#2W;8,w\N Y ;F u\C%}^2.*J F!v" ZW jF / G J$'%8 ) H~aqm҃KiSj% 4D!(53S8h5,#C5!%  [E 5`=% YΊ.+U=lJ %n&'+#141y* oy [&M[dT]s2I< "j I%%%>!`!W~D!! , o0ӸHV8ܝm $w= ?t~#U,4761+&b# !Yr > < ȃ&fvR6``  {(8(AB=z977630/&1292-.%vH .B\ݞّ4|؋erlTG), 4>=\70P,((%! >#n&E& s/ g a=뿋…ǧ=hs?6 (2*5b3/,\+e*n)u('&%"BR G$rӕ;ڻ.ŦЕ/BL;sVPy`] )59793.<)#$6  k ) ^ _Ǿmam͊c Oז|A]4 !S(.4*86~0)$+#$%b$ }@nAd̔ԂV*(:9_ _rz@a%.n20)#.AQ  j| ֶC@*#A4&k e%,,'t!d"%%D#ZxRX%$  r4:WG6۽em" qN%0)(U%$',e12:21g368Y6-q 6?=' 8}у3Ѱx[߳]J"%M,a,)(*E./,4'!!Q#%#,U6L܄ɮʴͬw v؟٠X֞HޖZ{"*./-G+6(%$%(++ )$r xz &εʴa͗пC%+v=|_R!O(&u#J*p.]00%0.|,4'{?1{\S֩qۥu\ؾJ1;cL !O"""[!sMxێڳ*a4 ̻c֛׶֙ECv,2*] M>"{&9+N/1f20s+! eSv}ٗ9O\0hv^I8 J $%z&(*.2p30/\%v 7)xj{ژQe~*%ST4"  ll =$}2  [!qް^ܳsUmuo m$ "#~ cQ: j  ` l@)ӞA[#G d&\\D   q\{DT6bzau;jZ IGU,S]P hI/;jY A b9aF # xYpR  ;ruke1; jE^ 4Y=  61r8/ 8XZ HC W/>  PPo6?FTZI:  2 , L ڮ<.>-E   siv 8w, `7ޫٗ P Uf #BJ| :}\* .7GM ^ 9H[akf Jy^=m iYI2   5 n1h  sY VR q 5q j4U  %Uw=zaVZۦv- nrQ9!"'~ 5k 2 Ji]>w\B֥g:uMub }e s| ,$y~y 0 E3RnYebٔ0_E0sV6@Di  96>j] +} )$7**/$. u  V8ϸƞTUvseTTjb9 $*&--s.147L84t-# {!}k}ĭ.{?ټ*:`0CMILUC81*/ /L/.,)$@ Z[WΈ.Uм=XMΕϔ҆ݎq#-u$Q2;k@@>;:&::83f,&&+"#eх&ÿ嵿"Sϸֆb ,:#/783+,').368:E<4=,=;8~51-I( \ .dUPF?xY'Ȇ*u(HN#F2<><989d<>z=:63/*J"F Qܜ $@x ǭ(Гrױܢ, "{6 FO.T*TQQLF?70/'  S SDǮɯ2ݴ;E$3===}AEF>D>&94f0*~!UW2 _TdW嬡upڽԿYƲbZ#),:B,C{?E<;=R??>v:3,$eUM? vgH\p{W-op-cߴFW#GopR *V2551300343=,!^Fy1 $ 4.60̓)B٧aՕնmDpe">0;rAB>3B' %C,.,$(W#B aY(&"ѥpڦ[_T׀ <2CKJCX;410.,)^&1# 9 ynbԴuόN%&,%$S!!&*,+l)(']'&J$" u SHWB]G'm|5s.'621(0 "+P397}7?5l1w,&! @F.]@mZؚRd7~TйD¢Aݲq v%+0D4h7:R=m<7u1,+)&*!1 [O*"5,&# Uރ/ĿF)xK܉e eF k0:@I(MLIKIdGC<5 0;,)'-$S ouھɿmܶ51rV8ΖDWi1n,(4 4003=;CJ4OOLC9N0 *O&g# l2}9d«~Nqû&ӭؙ!!dDk-E:5BEgE4CVAAEKN"ME::1,C-:/-&3l /;ZӲM̏ϳЀˎKϲ.<`%129@CFGBIHE@:3^,%!8rBC#}EΗ/a.J6M60+,3;987*63D3478K60~*2$\ԙծt !ǚɢ ю|ձr+./5 $066L325:@>>;7655V4W1-)#lnsopŔ.Ǹ̸̯ǦtȡƍÏA!&g޴Za ,+/.++-2g8=M@Al@<731-1X/) C4+' ^o^{oe͘_ю7Xs&e-~133R3:348<@%A4@H=480k( vG piizv!hȰg$9ejr &,-).=/15}:m?&CxDRCA@A=Bs>4&94f/*k#_>rXxYgݶ٥ؚ)IΪ5+bW&Ϭݫs#0!8W84/ /39%?A?2;%8n776^/i (|$}^RЬʸɃAz #+ B#!W%%" C!$)/46"66|6m63+-"sָڲ2Jݔ߰mԛ'Cܯݬ '*(R':)-13f1."-,t-).}.-9,9)n% < ٖԂ-'̸{̀ͲPۧl#"B"'*-03676q4/'~ R5(lo_! |߅H߂Pٶ Ea*/0/-*&K"AR&& a  Y'U`mzA4[ڿ3I9!'& >'E(n # j |HCձժ1!#PD~fuN[;)-,<'J$! ipQj $vH94 ;%Z.341*8"l& ~ 391uلԫCJ|?PRs5#2=XA=R7h33e676>1)" ] ~ :1eʌ;Üƍ1 2pFAJ>] g3%{#)l" \ ^ L% rY٩Lb(H{SS1E3""Ze I b*  *D?8yӘsBFS v4{,'9FAB;0g%.Z'& =ЄǙfLA253&[&YY$.140$ <$XE&aQ݀Ӽ8_CΘ Uԡq3EGa<_2sb |#$    + iy e߸6x~CWrxo2 Q!_S$ A#&'(#(%:!,U ?$X,ުvUA+J: JpC%('H$ !#$I$*"eY7ڄ؁ٹ 4JѮ} i>=N <Z !v 2v# )+)#wG <%m1liJh \ Ad0 T!2Wp!T*/0-h(H9 )"ٲJЧҴfڸӕ)pM͝Гܼie"%%)$05]74.+:,/48O9 83*vp PҪChQy+Nǚnf%zuT\ )/$21y/--.0I369X<+? AA=v4$&n݈(@˧=+ʻ2ńǡȴ̯} s"~&*$/1A31458;=<8/!6+B܏Өsín߁McO\: ;!+4:<<=$?p@h?e;5H/(m  /^ԈXiYŁ.Myȵq3,+$*{07@rG.LLIhA7?-# ]9n޽R{>qĺŶb'7 l3Z_j$$,/0/*-+,t0g46@60& ?`+O&ZO˰$l:W.=eА + 39"AHNOMI(FbDCAm<5.,--&&_;t_D/†ǔ2Ig *97==Y:77DfFEC:AH?g<08I3 /,,%.//0O/9,$QwѻāɴAӼðÂ-̇W)^f1))0t3b6:?BB[?:T620>00>1Y/*#j &jљȧŊe5WL3jԩբܽ?Tg*:CXFA7-@'%')'#wJ27I ۦȾ| s"e{߈##WS 9)29==8l1+ ***& ~o X)rk|̞CӰZG|4V  (070=@a?;6_334^6850)"7 bڵ"JKψЛh| (3)<=930143Z/,)#{j&CgTp9Žp͏Nӗͷ<ɧK.M"/Q`#,5;<8O06'V T ;#$&(y)&x[`i t#ݖv T Q  6.m8K<691)$! ZcE 6~)<Ǫ˛Ӧ.E VOq6w.c h7 !%iJJn'} w-3WaSTSE*y hf-9>(;I1$bcM#&&!A+&ky(=OڳDHZvUV,@ !#_!:j9G=@ n Da" 60 + >y޺cKE&g2VN!"5 Eh 6 v  K S IP?W@G 'iVvG V L R  /#vMa/SvI+@{}K  u = Pl  /Gn1CS2Q9pXC4:Ra gH bl0 tsgY=3{U8 G - 8 #2  1(^*0& AbTl  z(c}φΆ  S &:S  ; C  o n bڍyc-#fm\Y1  wiE +`( 3}S;y< Sm ~w{wk#c\/-P`? &<3!GwZ~@%/Gc ` }{ifHK* l3Qgt:&&- Kt# FS,=(o95=oH2!8'N+WrD؎֪/Ԃk  |h*2=% )) '"5 =ZJfܶERv=+g p ! "#%')% >4E\k]6^}qPڃJt a,y_ [!% %efSjV,V l YYLWX _e  ,. >Dm`H@SN[\? _  &K &Y V S4 I#Qv\#%xB6  C 5\h; <j8 n+"Z7i=^<+=3KA I %I!*O *%c Ffc\x .e D {h 1&7+..+($OQI6֠Ԑ3ւ6ެ?ޡݵ6X {C,h%  K l H !v-'UO{ 5N0J "!x/j G \q0 "4\я V<<F*QW6 K5~oU=sV!!~T0c'rߖݬ  ! I"Z(,[-%,(9%!Akj # 2"L܀K![uC% {-B92 ja( s0IeD+q+]0W2'i/g.&xsN =Sj=ݱ{Su}X$]44|X,IPelAP Q ҫx_ 8 .<#X%"IN bm  S }BOJ,.}[4ON&fM: f^QY_  6 ]|m Om] 8{ ~ A$   M ja~u_ۍ[Eݣ$f2 .se0>/B !! UAr_\t,k;'P!o:  # I ,Q!%%! M<>5']a9IQd^- eb [ ha! U}?R*#TV#^UNc98fT nH*Uum6=m?"QN1#9(vB V! %$O 4 v|#&&"DN .ߺzg_y]4]֎4׺ݼNJ! 1bgc%#%&y$bN%I:2ٛ24r*!= ' M " %,*&+($D {2>5y &EB܋q =%:{!"'m'$!VEw8?uBA3hۙ?hJڴܤ޺SRLu4ar!%z(*t++,--h+,&b,L=Uq&4@0MڜӾїДϷχҭؾ= !kR .!!!! 5 tD՟&)zHO/jh*{  W%*{+)%!QmBH&ftS K iR N(Z-#rV66]B C4%p] gX`4n,6 N^ 2޺Odo۵{3cO L"E%$ f(xf%Md!Jۙn3 .ZHBYs#&'&"*B)TVx^fon\*/ UVN"&)5+w+*&! dZ^Jk-hޑS-%y#x ` y%*/u3_42,T%S ?c7>&ںi։RVXKqw NS%) ,t-.L.*:y:v=۲*vGK &v R *h` "k$%?"QO&@9ݺعVbA;C] 9"[(,.-_*J%6 nP ۤgyb]8L (~G t"(,, ,R+q*' "; HXireU ޘ=Qڿ*ޖAߑ j Eo"$&&$: : X  t#%TfBs-onc1+ wM$7!?%l'a'%#"!_ cj % Qv#Gܳ\l|11 6|S "1%(,/Z0- ( _'p # /g#ri̐@³žg , '  M[" (.4;iBF HD>4)T:C Ae_ʠlTBϹV_׉[GP ~$ -B6;=A]BOB B+BBCGDB>5X)' 5&`in}!qξ74ԋd "*/2344<5$6Q8Q;K=<6.#mfx:[Qq6Ѐ8Њa3d󷃽[t΁׾x $N)*,/L479);?=:50,"'M!"X?X!̉>W&.'̗߀>!)0s6r9:;=?5A@=82+@$NDjbUn ?9eӞ|I4"9')j+,.!148=@MB6B@#>^:4r-$R!hX$ ɇCnQQ϶ T!$S*E,L,0-8049<>=+=<`== pY?E|@;Kg8/@ rR xbe F O YWy l } ]bzm`1?5P nFD^x*u/[~fY|4ioc %;=?5{x9F3 [  S5]4jfmjI `p[$8fb!}x'y%) u  : (1oj TvJ*J4 6 s * ]D' yHp@ HGh^]M/ T U# Jo4]GK jDh% g=%gI<װԲccV @sn|Xz&XL& Uhb\#a-PaaT0Cw  6vw@?{ v0vH vvK?p;5)^Q YPuC w P / w<y@IX'(d j  y3Rj$:wGb {w54N &,-*#7}P>_bfPu,3Yќ*rqu(@ r "_%\*+(!*Gc _228gvgCA]1%^F-8Q ?m L   !|  $p߱8I/!>3C# o E$$B  j +vI.}+[;Q5& o")7EI :ot|} ty/CM J !% ))'")t }NX]g t/E . & ;}i+> Cv<(8L߲$iL!pUU "!#c> K7Rn(H]8FC/^ Z G FG#w&o&#)\x; (ao7W3ߢXI*םKۨuu/R1F : ) 9 ^#O'%T A^_nY\65O,\AU)bI $`M0\D F ^ g_):+P5UsH- w+d, 6# DjF ! #z.Toftx 4O;^/8 TF$lx_1 L7bI]m@"IM}/ 0Y!* ; >a ; ; MGrx3m \b Z"!Q/I84d C0kR*kۏڿV!!n""#B$s$#3" g/~ 2d,kCHJC2E&!2&_()j(& $ s9"&%u xI \^Sآҕ Zrs1P} g $}&''(@**(#pAYnMnڎ/ӣќ`>S *&  c "}Ot$ ` V]R d MERdjx b- <G6 2'f "! VE]0?su۫HfJ*)$"%%k#  <#T@)*ٱ/L߯܆[=na"%'&% $"$]%&((_(\'2%!7O&-o.&\Yީגgbɮ]fql84 .I!2"D#u%C(V*k*('')-/-(M!MxWLDo~ҳ%:ִהEf.vK\93!$(L+,S-,+3)%!/ %_[#ܵ5o9I4-ߌ{=. X{#*.1C31,$NV )  -UB \WzQJ1Cx4(Is =V P !!j"-!Epq  ifӀήAyXuyC IYF$G'(]('� Le FxKZ{lݸ;׃ظ4# !#%'O(&Y#3pB o^|6;Gl21"V) "" A+!s!)vch vޮِמۤy"pKfb !~$*&&&&'\('B% # k {4ن@98o)0b 9!#&'X&#\; y(+2 ݉ =Ֆئoz  O x6g!$%$ $" ;; d xqkUܫٔ׶ .O=' e2Cn!R"8"! >| ,L V٭4پچ0ۖLN)#&S UF!"!P Lt}OyJ,ݰSm5h? NJj U.~ Ze1ߒ'T=Q:'t)^S3q &Gc (u_NT& O" pSuےނ\i;`Da #4 J3N #  1A߼Q6ll4Mf[G QLI!%&#x &Tb~ ح4Ж3=ټj\!f!" $K%&)) ++)$  %H&4{32RYJكٻ5tM * [RF7f O3  q%())('$f=%c3YEߣ 6S;<&>رߏ# Dd OU97#8',3A;v@GA<4* 3N 'Ruj`#ɹǷCOtyʺW/3  h(- 0e1$3578W8l75|2-'u!@> !߻ڣЇF8ӽwʺ[>1E  )05'99;<=>k>(=:62,%]X IC|%כ]ιA4 ;0 )3^;[BJGdIWHD?h:52d/!-*'." .إ՞kʙXŊw|2\! M!'V-1D5[8`::9>83641N/^,x("p%wK wǾku%hʵϟӟp8O<Y~"))/3A8y<>@BCA=7/&a c_uQ3¿`C1uگ33  ,&,538=AxDDtA;64,^&? hFsc#'l{BP6нGβb٦(8\g>& [ ?$v(,159@:85/*!%!8 1 wG'Κ:Ѣ/_Hf %,1s57"98D73. (:S Q^]IɏǞȹӇoV%)-/12l2y0--V)%"NMy 8~\Z̻F!x6݇{  $%&C' (('%#"""Y!.K /rbOԸ8ɉ3LJȧ]ڱ9HL>u) $(+~,]------,>,i*& I x2В=цoKԸhZ?t _G'z+,*(''')7+|-.-_*&5!?i Rqܹ\(Ҫ֌ۍXiڒ ӴӠ8 S")-!/.N-w+)0('6'&#:e VXd/OWת>JSGo+3& 7l V$'(*B+++++s*(&x%$#! siL׉LH0de!,i\(2 :B>>S<770-*$ q$~ (M{ޓSȖrڤۃiL܁,"& &u,01t2F2d1/`,'!\ )B*Niy/4skna a*Nw(^5 , 2XA&LXI4bg  w{Pb YC)+Fg mrnk}Yh*[ dR ""D"# >MB%~ " `W3MnچAuo63v+& #'1*G-011/*J$`yq wz2 ӴϭxB(AH +(19?BAB=65/& L_B̤#ĺGأ܎p{ %$?+0l5o:?CEB<5.k("@ `{ҹuּpҬZ S \7t"c(%.37<::.9~6L320w-*'#\ F]}SܛאcG ˎG/PЎXPuRy so &s,0I3|444q2/,*((W)(l%zc?D]Ѽɇ;Œǹʮ̢ ή1:_k&z.]35i4211s0'/,y*3(&$" u0:ِPɁOu ɒ%Κ Pݹ M$ +/2431~/,)&Q$!iY _ 3*Ab]ΑVέєԎ8ڑ u")/32.)j$^ >?@ }sk܀W62Ա!Ԛ >9%!@%L(*7-e.-5*$&_* 6 7Miln߱9թғ]M&3 1R5 "#$$$$"s6 :uf&h-LݕاROZZ  z !! R V{/0tZ3ܣrZ@C *6h yR(<%wUL  dO"ו19fsc? 1} y ,bNsucCzoodjsw'HA{( J=r4 0 .  `bM6I2-W} 7Z|$PB D [$z]n.vSe` 5Y$j'('#[~#Zo  i E Jn(Y7| )z =nTQ pN"ߊmh'1]2i  N> i * UIj%JiZi' w]|C 54h$Fa % _ !A!3;z#PhOfrl<.]HE:$ 6:F|h[*%RCqX\$>Ta }g{ GK4f%' rkIvb$xA*. nJdkg , R s  <; +Y@pP. M &:_ *(\*`#=-aqSL'wk N lS|]Ub *msK% N*gmAn}p\ !!5 !!!  sdM#ߪ/>z{3~JH HH?A[+O ,zQ^R*}jv'2qA^u e Yihz[]Vp T  ? ; D%TFX- VAh24U~Te <]/!"!6 buX  *5Hw޸|{?vX Oiz [ jrJ(b1"1lj{aL5+5 lJ.w h  _ulz|S!  ! v &#&' &"SQ [LSD/i*Nװjݍx+^ v"N%f'(j)(Q'6%" i IDUWvS[Wm_b !T%(*;++*(%/"lX MEFURC;̥ VbE<)% q H&=+ /1 3g32.s)" "h|߿܂ b(Bl_ + F!$%%h$!crj m="[2f}2 ޕ^uS`& )9 "#####U#!; cK]WVtM#%dN`*tx y"'%Z&&q$ "PS1K" *Oיҡϱ^ #v5G2H( !+&*I/232d/I*Z$+^ @/yi [մFһ`֨+'> (3 "%?'())&#0 qWF[ثֶf(͂֩gUj@ N"%r',(Y(}((( (%!) +>|,RaЦc&ދg`dOh` &+H//-*'$j"xT E ._h_ܿve'ָٙTݛUg'7 =  d%|*,6,.)U%""^ )c wRt%Mڇڪڣڊڏbs O &+l/Y121\0:-o("#vF* {5 ,ڄ_Ԙ\ҿЛѫԮ\]>~'bC}whSc e`+$KPmb<e u c Ji]k:&; 2'!}!*%(+-+'"i! h {dG9m@ۧكة4ׅ H 6Bq" ,!%()(&$" 2Zg .[Fms-ߦ7ӋكRRX:I pb!t'5,//-*&I"{ D2uލ݃(۝2tשiH ~ ++"####"!s 4Ni\w۷D8ޞ;@jG qpCCF!N goM;QJ%,'9e'</ -&! " C,}8fuAz^a % ^ W F>lm'8(."C%3bY|l-  j Ps7 i e=(AJg,ox [  q[pWG*}yV/XZp 4 MS9 b 5 !! B4Dt0\j_C1| 1[iOW[xb V!+Ge&nGh5EhPca ;n{s | # W \sEl|GL|2( eC Q\}N~ +)߻ېn۰ݖa~Q- ~e]Bn^ E$p') *(%"/>  drݮwܟwx)uU ':{ ! @ ,!m T > %Sm(وQ=`x !#%%%v%# kWs <+%,^\g[/۪0+(~_jz ADd$Zn4W_c w qS.q \^$S 4DHj' ! X3 _6?o,i> Ys`X [dttdT ]"<3tݐr1aY]A v|K448nJ\ JKQ56ݑ$gc-fgsu!K!0!! 9 J^ s5=4eYبOۍ݅0,Vh J4@g n , I V,&3~[ q  O5ޖA߹Q +S3f߰)!*SK V>K3Gb# !," GY  *A|oݧyT]RM9K o2@Y BP|` [,ei;0~M /o2% l , s "R32n>KxNT~4Ft4.H? 7p:=Z(c"s7n_33 /uc()d$u_z , lI.c/A1$J_N U R )N ^Gt&C=.gB67HJgEyZ B5 v G  }   zP<=\".Jm0o.#     @7 !)MV1RfZsfIe3gu A cXA+t   tzwaZ/a'eo/+-72@5 + 2,@j: > 3^,<*Nu".t|fwT!u:}Ur ] A A{ % L < M^$d7-!WPV ckgA LZP7|h5HQg@J`R m KC_+_12I& p/A_H+3Y~Ox/?!F`#1$x6Xm-G!axZsmin/P/:|eBv6m]]_2KzMs.W.4z}Vk0W9 z.  Tam`3zW}Qs&Yi5?W h aqE j2B;*S{Y;=D/I"2m |  zah  1-ZG=aAMz-`Ica q_FoVa L6g\&k/v$ SZ  0 " +   /BF+.\0#| < HWz7 }zoJ ^'!Y i-$ 7~k L O*VK'2-X7kD6P3vJ # J  1 8 A?v' uq~xFz+*)u~w14j|~OE _ I)Y   AYDB}E>/aHxh\~H \ X ci]!tD8D1veikX]2q s sU( 6A#36pVmR GZFVf#N[ J S{z/ { U8wtofd  k<I  y:"c\9EmO3S]mM-g S4g ~ i UBN f7.5&i Pbm`YV ' fn a f=]YYg@@O @ B ]]F : L 3)Rm}U!oo@ dcS{;t r~)3S Ru`52 HQn j b 4 } iaRe"pB(;DS b!  [$WGS,"}( D| C  ZA^OO<%JEs ZxM},Z! 8QpR E [ 9 3 4 % I N /am|JiXm1Z , a B b  D pHCd~Ks<IX4_P y b X ?$g Oxg?X]Hfu{} ls^ Z %[CHy)-`iz bEOjC 0 !  C@F^Yt=[=s--Lf; H8 &- $ hIZ.=7qFwd"nYrz   X g<WP~`iv J  wY3,_j &=[2XYM Dox$ XO   C 7BHI!o >8;J,OAi ' `d2 X7 %}KrcPRHxQM~>c j ^5/; f zn1'/"K* Q{ [Y!T=  c:lJM5q|x T b !  >KC%;BBmjP jx$1Y22h#fn^NOpmojX@Ef,(iDPCGE*h$*"*&fQHZ:!AE-T)k(l)d82;L YF-u>b69 x!ZJG >QBX\XS*&~oY{ylXbyo}[eb4 $O!&J#ozo ` qM c u| H.{#ggV6/ }:b-91K N-Mcfu0D"`c?-`!Wasz2#EG;~3O;r_-Yz6kJXKRY%.# I#NvfbE1_r%Z,`UY{H+( |\= w9x.FtFbfT l ; 4 .y nl@G5Ay V Yih;#B  W :l o!y}>Mut w j J@?25 rg$djk,  X u   u 9  S8X7S_I:z)Ut@  ^RpLSq=N2UFKg{!5G?A Vqppt6jH`S=tNM, )?;""-9x5x' b)ld(1Dq5V3 WB+?N6k_CnQq*>V K-f@>vtWf#yM9DO%f"()':Ni| DaU UlLcoqTe$|}e!?dN, r  $#DHZ Hp^NQ&hJSmY& p )gn_ )3g~t@oU&omo4#C ; 1pEz { B ,~S iJnnO   q I2W#T!|=qknSD=hX %z@n 0/oV54D_L <2{ } $  &e Q]J9tWbe4 x N0be  `jNFhG~b7x F +94MT JN I X Od2= ` gL-q 9 R|C3bP X Ox4` i\~Lw}Sa 31kQJj _ cDy.a*UYZ, w!g+C gv% *IxD7 !}]:a{-E{a %w{n|,\SnY^1(%O@ v, O V h&={v3q>%>#wo TqC(m FB  cG yeE=p( Q R *#Q H)YCUWFU(9UpT c  a m 7 [ eBs%% RD14)IY={2{]$7B,8R C#\'i] /1; F M BBo3/I+&Rh + I-OCgs6_?1cr8`9S'Vmg ] g "Ki : U$0~Q-Sp?q<}zM@3  \Q&3T^t(3?:8sFt$qkJTrC   C@T4b Z5R1 eo95!$VZB58YHi+-9.hZ[Io/u Ot M*c-Oa>'1V*E,a@R9ok2X ; Z m r " w j5uL("Y&=d(9$Lr+>5#;X(Q&U';TU V8!NI#6YDe$i}^~LX%NS<-e7< d J ] # K\a#fc|,q#vp@  & nH*Ei|p|UH~gH8- QF#]I_q~ X 2rN,dQO3~EQp* 'J0,38= W  rvX U'$d)| ZbNKmvj 4 5 / j }6a|HttlR{J1cwI&_L    _ " w 7<" bq -$tL 8 SZe& $ ` aH}6 o?^L>& ] ` _[ S \Xe.E(IU:2 e ~ KDn) Hx7lR^7 pT=   /Nn  _Lr(FT,z<+4,4o Il4\G 1 J rc+CZ~ /:~ p OT5(O V # z 6w"VIHvWG Nn$$+s- ' 6x,Q  A {KN]JerL(1 ler6 b G  3IN7[|'O-VP~^ t a  5 + Y a|fa(n[Z{ 3`M/S Z J  )whu,:ql0SDg5a " ! 7 u  YTah#4CUV[Pce)'l>o11D|Q e = uy~}j\_?FS&ZT"3 Y 8  d 6 k cz:$zd >  < n m5R)vdCoT$oy { ,  " ET<'!y:-v$T\t5$` U x 3 L u ]Mq:.b]=8'<%FTDP1"q00#}CpY=;SU*EV.}'5|s AW0frFN 96gOsAPy1mU gC\CIQ-+55-(dN3T8}Q{t(K#>A)q9$:|4$k"IJ~\*r/Y(/b2/8 ^Dn5|? a"[N=Bp.?X>h?r[bT$ v6&"4Lyt?F4Xt 5EhJHJhV5(D 4@uqXq&\a.>a8{3SdVWwOrts>BqsOjSoa#JIV|gv;;j'J*G SmDBehu9`qkxm<HlpgV +V1zB4 r& 7_'0C#Tr]l^'GmJ=B?8,\U8vF cdRO:TSVIGQ8IWR!\&,y&m-qCqrU*a6I#RB1n=74"3:k &~g@3H ~@C>,9/w6Lt/M:Y~^@GEKx}z<}7u @_3 ( ""6^HYffZhjshp/G."Sj3bnbri<(^]5M<4U XseXuBse3*3aY=(SiUgYF[<}ASv GLz59?|GN+n4@" C.Dd;GqQbIK`2-'$N59 hm j 7  >  rU+7vKiC?xE2  uX{e ;~tht">^S~ dq Wx@" ,kv 183Gv^<&H"<R9 obyvh}@yKGq }:Z6l ^ M < 9 uGUJEb\f|)sS'/&vm-4 A z 8wV b   Dcy v(&"f:zv*, + < Q ^Q#Z %2>=b|A97N <  E  @ !>'(2O<! $e8Pt,\[B d W ? rpnkXv0`).'6Ro/F^ccxLv'/Hl3anfwR&;Z(\%JP-K]4Q?Lec}fr("FD*5 q309\: ^Q(d( (vDOo&#)y\ 1,`DW _ss(Y lytKSn|7cS; "pM$eqC htdujJ}87?A' Ow:b^^<i?P%Yct:?qb08v:\^ qZR- V '7MkGnoRPieG& f 5 q _   'Pd{%vcU2zJR+$o e =SE[ U<P']]hQT1.E1X<>  WRp  m0xkjG7Zj I1 ^ $p r!mqPX b|(u h yTj d5k DED>*XB7H{D5BrZU v I IN=WcM3Xu XK% D~0eg[~?%;^TPQ=f-yRj.>SPyXo>8?D;4`KlPM@6=.8bp)ccraJ@ZFXRYG u|5_d }I+nZ)'.q2IGBz8gCk:*7Cu0j]ub31]uhalwG%{"W J&)Pz|I+)n5w'OW1}dcdrx8ycx8[KQ1 x ,j@T.SgO|T@o"n9TM@W^\^ Q6swJ=G,($'e }> 3Le\]kGCQ]ValQ{'Uw\<, x rGcP&[Eb(gCETdfb_ieI}@ D01<q)p+S`lMPMspG .av|qa["qXX.,SRU>"/F{L`ttg=3:((Jv4TcCQcc'OL=/TMOT8Au;y2ab{HiDrA| Hx[)emj_[P]5G]?FIN5.# %IX=V ]{%TU*tk!RV`|q|..B{9hoIIGLMYL!y4ePYXIO%8F@@IF.}X?1tsQcXE6[#g2t.5|-o2$.^xHqyY A0V5{M)W~xzZG/96 yesXD W.&]{"t=u x84VTKpjFS.xB29AIK"o3Mv& +gzBhsVz Za!Mkq&SNf9^E`h=ozOC( K#^l\Zt6~O0}h?xe$S #a\) Q(T ?t-$mw# @7GwNpsDo>?N0TW7+ 5 Y " m 3 ] f "Z13/csG8(1 r ? ,Ac}Y[!H@GV-%a%d G,6" @/ggx(6xM6>)gR>4u>C!93[qwcQXtb/ W U[z+|$5vK;K~abd]FFL~s5s "^Bs_ewLN?6\d|G]6=n=AyG{6Cn:Mol'94gfh%Gv+oXmPhSND#sr2uyKCNgd ^Y(*$I'npE`@A:bs0Q\x5o%d-SYLp>R37/bAtYL_W_`Z9XfT H|:Xv%K f|XwCLu[)z]8' Rsc"K[j&jd&ql+ CURYY@+]j|TjjiotgEl H} (`dUza: )3D?j|eE5aD%NN:AwE B*Mi5lHg;O%$  _p!r!oapPRIPLJOZ+24rifh}Hb5OY 0nd+h{9"hq\h~zj|tGI1?Rz2L<5;Z>Z#OD;F F!4932R6RC PgfWY8&AO_ L" +5LDh_&!7-Zzn2c9yfsrC ~$s7t AHk0pOu3o)-%F]!%m|5j!P +/d[Sv5M?a`]gLX2qWIK6  8S3-*jI"*- %. _x3-JPzjE t6OZC0~t"&j2=GE:ZvxY#:oJo9j6wFk_4x8\!2,>?F<oz&?p3 +>* q" &z[ Z K jP=?Vmq 1'UO!ir|maf+]>d03%(oO,]=oG kQ)3D (^)%3-vVX_"<5.OSUueP>5 LIST~INFOINAMFire a wind fanIARTSven "Yamakuzure" EdenICMTAudacity 2.0.5ICRD2014ICOP1989-2014 PrydeWorXid3 ID3@   J00XTPE1Sven "Yamakuzure" EdenTDRC2014TXXXCopyright1989-2014 PrydeWorXTIT2Fire a wind fanCOMMAudacity 2.0.5atanks-6.6/sound/16.wav0000644000175000017500000041721612636021030013067 0ustar apoapoRIFFWAVEfmt DXdataK  E&  %S)*P*'t#~1[_#-7!CN5W\^\UOLf?0@"% 8 K p K J;?%AG'+ XY=%_

K!@&`~V]NH$(M&%۴aTӠFL Vh ݪJ߄ ebjg~ʐ&Ε9V|/FQyr 0(=FJJCHDBBDHLPRHPKUE>6o1.z/14i774-H# n@dH_^5aZ&9ƫͦ(签CȽvNƛ1KҖ"- 6v;$?SB7EFyFCW?692,D*\+/6=BB^@CED?q8.$/0P~* z zk A P_s}kޞ،4ж#Ѽбε˺el8ô=ͱ>GAqGmıⱤdǯR8rѳɻᾔđnŽX\db;]v"*2%;B'HJ,KYJGIHIrMSY ahJnr@uvuHuttuuw%xxxwuBsspmkFiJhhFhhiihf d_Z|UPXLHFEFF G?GFE*B>3;7w420i0R0Y0B0/-+(%"smn4* \_^ZΠ/ϵVp"$>F7;:+ݩv#d@$,鈢Bԇ{KኤHHe&zF<q^پ)~>"NJРԿ+eyi@-#H)]/483;P<@<;A;hoS.\Os۷ڨS&M>)5 CMZTU"SL~Dw<63?47=BGKaO^RaUY]`c/ixnruvnvtdrom$lj[jDjjkm'owqsuvvtqhkd]eVOJ*HGHKMO$PANIC9_.#$n &A  H 1 W 6 . L $ o 5@܁ِڠҰaƞJ񹓹ܻ2ϵT_eȗEÖ,WFRg2<0576$()(&z#" ?DFf~e&m.@0>,#es Q5  - tP4 4I%.r6:;:63237;&@BA=6.%aOE obXlЅfP)62s:Zp ɶ$̻׾PQ ͨΥύ9#ϣJVچbS.Vsv y@; EAM\ yim\g6xX_q  ' 3   P2< 1 ) +,߻~+ ̪ŠȽ lA; M*K4gi!-)X4=$DGHFC{BCQGMS6Ze^$_\UME?;g:;?B]EEC_>E6,") b  4;%N)g4- b U0wKN!z'[4 m 8 "4Cf %*.&00S0/.m../135$78V87'76U66789986P2-)S&\$#$x&''\&"^J {bhgzRfGޕwܭܠܽ԰%;hXΟ9̯81ǜC ŏBYIJ3xH"J^-h輸d'=/fĤoȊw^v KдԵ؏ 7lڂ۝޻ߘc9~f&'w[I-H Pi/}s~  #&(i*+e,--.. //>0122V345C79888G8778@;>CHNSWYHZYXWW/Y]\`fkpuwxKxIwutsttuOwx=z{zzUx-vsrpoZoopQp+po4n`l2j1hfwedd)eTeedQb_\ XTPMbKJIIIJI IG(D@<>83/,*((''''F&%;# !?\ =TXN  MsxCEbK)ЀWV̻7_ͿÝ϶/U̮Ѯ3Bve?UͧyU4\Si\N>C]+8ԤC466696/ťx[9?Zmz8𩒪jȫϫͫҫK9ڭBݯLno`> #l%o!9Ⱥջཌ𾟾@5 9€ŞS׶ֵcTaAq8q7 K)FeW(K ! !!O!"#%'W*,c/}13&445556Z6679;>kADGIKGLvL6LKKALMO[RgUOXZ#\\\\\[R\]{_adyg jk7mmnmmwmmmnoqys=uvxyzzzzgz@z:zdzz {S{o{"{zybx#wvIuttueuuButUsqBpnPml7l7ljlllkjhf0dta^\[YXtXgXnXcX1XyW VSQM>Q??[?#><9w51X.+s*)) *@*)(%>"1x  i :k:]Xc{BV'8׸Nʢ@G WsY!=mϚ&0lzJԗ떑'GQFiȈ{uӅoυ؅z+_5$9ö́?ɉҊċ Umm_荛ېyQ1 ߙQRgmרGw~|}ӽn/ěĞCŹKͣi5je'IJ$]7,8w] D@0$!$(*,\.G/ 000#1J1m1192]35l7P:=dADEGI&JJFJIIHH IqIIJJI;I|HG\GIGGHHIJGKKK|KKJnJJJKLNO-QRST6UUU-VmVVVVVVVzVVVIW$XLYZ[\+]]]g]\\\[R[Z}ZZYYYY ZnZZZZZYWVU UTT9UUU/U9TRPNLSKqJJOJJK4LLL#LmKcJGIHF_E DBBrA8AsABBC=CB[A)?m>(=<<=>u@sCGKORGUFWX+Y)YXXjXXYYZ[\F]]h]\[Z?YWVUUIViWYZ\] ^]\[ZZZ6\^K`bcbaa^X[WU+SMRvRcST[U|UTSSQN*L8JHGFHFEQEDeDbDDEF{HJKLCM1MLK@JHGEZDnCBBBC{DEFdGGFECAJ>;O97\778J: <=>(?>X=I;85#3W0.>,+f*7*n**M+++,+X* )'%($"!( v`g 29 (=/ > G16$3R;i(TjK4s?S]0jJeq1~4KHp4ſ#jxxljcżU(b@Һɺ:QԹƵ5ȫpYP6UEHܥ󭈯#l{ ayжjڱm§e $(ؙcc\[ԓ6혷qԦ BճI<쪁d.ZۿWx;%H=>㱪 (X9i(.dn ;#,4u:<9/ p}q !v19:F3V'߼ >-E=߼hZ%& m\ R":0B>KW afhg e`[WUTUY.]Na+ddfb-]ZUjK?3)V {:yF 2!?zu!&!g!] c,$?Rydqwvn9bT?GL>`:;AJU&`iRp|tvv_v.utCsrqynxjeq^VOiHCAA,CrE@GbGCE@:g3+%!U "x$%{&%$="Y!?"s%*H2:CJOxOLxEICSZ]]Z&:4.("Np 15q+rE:~h2w~cRkvJޗ7HhS}&b A^t"$k%$l#! g c!3"x"!  :_cq @<\Yߖ۞ւ̊ŚxT%†K`UKH¶ȶs==Y>????u?J??1@-A4B C]C&CBAJA@@)AAK@{>;7#3.)&$##q$$$L#.!zvzf L.7D lGPR!-ׯ_øǶ:*2ͤ!Nt2{ "&I&X"'5W L d"( kQj _m  (9|=}?P >R GksT$ )*)'p%.#!(| }PS`>!'N߲bѯA՜ާL=rssnH%/53," C? { ]$2?H@LJBR7*p<"$$gFY>M/KM qHq""+ +{V6ʰ ÍҕKZ1弯ٹ>-paP/Sq_\KP_uӄ~i߄ݼXdvh!j@Q!#!.oi7<s f۾Ҹ/*nƢǍ95s~FڢA{ !r> $e'(9)T)M)`))*+++(%W!v n(-pWNcn;["8`m=Sz%"_AW  sp$*2G:BJ3RXC^ubddb@_ZUQNPNOSX] bdeWecWbabehlptuuussrssttsoje^YTR:RASTEV)VS3NFb=2' s vhk~/eJ۷gcO ͛k7Ǎ˒ XĠھ j#+ {dQw\KSlȾľҺ}* _I &(-'# !2 #*5BL'T8WUOG?:=9:K>ACA <2'2>\}P  A{:M)!,# $#T" q( "%'&))('%m$#U"c""#\#^"6 p(s? =#ԅʵlԧũ>$CyuyǍ=EBgd]>Ȥ+ɟ3^ԝUyB%'ګS%#ҿF)l*ԝ$P  < Il( 4>CFIxIhtgeWdc df+ilbprsrq6pToo>qsu}t0qj`TE8.l(p%%(M,-,a( @2-vuޓ=V߉.ԤǀÞN'hĺNfC[ǢLe6AC;m|n3 ڦKH+񬱳}".#~wt ad]!H&+0N59;<==C= =<<=>d@BEILPTX \^`4bbb!ba_^]\[[[[[(\g\\\w\^\A\[ZYWUROMLKRLNOZQQP[MG@9 3-H*))a+A,+("{R o,АANɢ\tz6ՙ } pX$E͖̓ԑ1rA;GbFP#H_"zgov C!Y&2'#%!~L")3 >GOSTRWOLIyIJoMPRSDQAMTG?780*'&N' )*n+1*&!d`2 | d I@/^sAtG, ڊs ]J]^b9CD ]\\~5!&+I/J1210//Y147=BGL*OPQPONNN PQSTJVWXXWWrXwZ]4a:deea['SIA;8;892<==w:4k.(1#3!"'.)6M=<(<;E;::9$9865:55=556T6543$20//. .,(:#A uUUh$`S& bn wMVҨm~yϳɣĥ60sיxGɈri0܉f'ϛءϡ ЛWQ:`ˠFƿȾ e88Dw6y# .fC`-0@$_xg#V&(a('<'&'?(* .1x4R66530-*)(\)*,-/E2 58r=C[JP VZ]\\[ZYY4[e^bgk op qYp8o;nmn:p2rt)u6usqLnk`hfe%faghgihfb\TLC;51..A/V0G1[1!0-{*$'$R!)go'zCG$ ; iR7 k K G'[EPlvͅѓmhx#@);] dt6P CwAƔƽ*,o#ɰ *X2̷#f+ѱʰUȱ-Zӽ}ŽReAϩԦۧ߭R f N ]! #.P6;o>4><95G32247;?BDUEDCA@@ADIcPMXj`hn9twyxvt=sbrrtwyy`FKLO5QOPSNgL`KKN7SX^Icf:hEhFg fmefgjlnkm2j6da\2TLEGC CDGIKIGA8u-{!? 6ei ت[cܘ(Ãŵ`׹YƱ/YsȷFa'Rݻ;Ev^C. %GX',..,*E']&)0:F3Sz]#df0c\TK+EBB%FKHQQUUeRJ?F22$\ j j.ʷѮA:+M$S4w`dw) 3 , S {FZQK$"qL|4 t 'c-SF~ުӛ ¼ļƾ?ʢҹݰ!=񢴤IT߫GzvrHn(Y9@j+#v+D,$hǾկ]-i%"#.""(C/ 5=9Y;e;97n53211/?-I)#u ; tH%+/0k.)!>q   r F E k Z   qAٮȬշ`ϰܚe (8?O-a w k+D8_EQY2^]OVJ;, F&*+*Y#tyd f6$c&"Yk-3 - ##i' g+ $z(5+,k-,F+($0XT oX_j_V G;yУ^~C}4'2ɑ/6T J _.l7:~9519/.048!;s:60)"&Ya{/"x#" (YMk"y%&%#Q#O}#&(r)0)6('&%&(+/2K564(2.)%#"S%)E/48k:B:863246R: ~4NmZ4FCra=X.ypOcݕeV OT 34KC"C%,&%~$z#&##7%'*@.)13W5@6U65[55556_8&:;t<<;9B74`21 1+2G46 87`50$*!p _  5&h@+LY.SF_xszyQVKp$޴ݼjc`ҠȻ]Zcr5jƐЖh'(җJΗWըg3A\f&DqG_deO1N/TV\a[d;4k#K!+>7eB.LSX2[k[ZZZ[[W\\[qZXVUUkVWYYXVRrM8G@j:5U2_0m/g//000/.~,*h'$!?qGN6'1:!d&)m*'h!\D O"U%# * '2IJ1=Wl 5: 2EA< f   oQyav8 )  8FD$}hNB<3Fkߟ;6U\+J8ЯVsmΙnx}ukhNϗ ڥf:EҩܨD_kŇLE}o p&-y3P78j86R42N237'=/CHLN&NgKG,EJDFKS\Rek.o?olchdbzcf,knpwm"f.ZKp;N.O% N ;#F%T%;#  S$,6?F0JUJHD7AK>1<:84-# 9 @-W̹ 4•ńТ~{˸wѺi dn$s),..,N)%J ZT 4" g <%\BM=jۀ<ܻ{jgז !H2^P 4#).0'22t10001345?7V8799:;?EAAA@>G<|9?7Q67y9-=AFKOPPnO MJGECBBXBZBBBBA`?v; 5s+>OBqI:$P͡ o̞JY7L0Ȳa2¶!5±+l )t۫DTKҳЋ/lx4noEqypHKcҹ͖>p:%05*62-1*)n,17:1r$[_ \  ~!AL#µ8Y3 &s; I $&7EMLqE:f/u'd%)1H:><0wLJcDK< ] %1!86-p #,\5WRI= 0#]; ##2F hܪvh-w ٣ح$ܼ߽_gpgW?eam; iqf cLlSyjc w 9Y ]")$0u5'9:s;;f:99Z; >AEXJNRUWYZlZZmZIZY+YdXW1WWYWXXYYmYWyUpR)OKcIGFFETEDCBAAAABA?<71+8&! ;""Y! 4"dm (G3ch&6 ݏQ*ϵRDzƱRncX?­謀 ŕ5iFx}$'º͸׈߹RT '#}4Z ؎"Zli $'d'%v#h"$p)1;#FcOeVHZZfY2WUUX\bm{:|k̳j!y{ B;##-""2,8G Vb'jhn.olga[VROKsHD@w;M61/-'.)037q;>>=93,%z,^:$d ."8(.49T=t?*@? >]5+ a!$#In؅JJx z a{]wYfX=Z)xAgrF qzU4jE,4#Nfg ;ht \  {%,R134 31/...j.R,(!#2F  `J w Oۏu𴛷,w2 ӜzY:ضik g Hv %j" ,f5>GOOUUtYZWOC5G'k  EH RZn%,26752/6-@,+-/3c8<@CEGHILJJJIEHEB ?:62/,*))()>)')(/'H%"q: i%! B !7   [ * NwR/FH"#=Z1Sŋ wb_'BÅøDľ*þ:+λpX?Ir4ceC%ډ٬ڔbܶ ۹_G փ"6[7׳#؉ܟ&yݏ׉ُߨo6"&|$n+2'4B? F'IIIJG3DABmEKT_irpxyNwqNi_=W#QNOPU5]e?mstv]wvslq5ppp_q7qokf^a\ZZ]ae)f=c[-QD8x-&$&+*,,Z)!K -mx+d'.J2r1w-6(X#sf uܤӚ.{hJ<[ټʰÿ ƚ½{sd'؜.nˆD_/ I\\̢ne?óAO=a :noXJ + h7t $@+2,(2 +;  Jy tVGF"!o7Q#1AOoZE`a_oZSM)IElBU>$92Y+"J7$ Y Z G"$(.C5>FN?RRNE8q(r o=,f7")8..+%\iZp/  T -z (}GgW|/n}GxJd#A'{k $P<',=/.*#" {"KY=eo  r$*,*t%+ Vg4>?BDF H-H G9EB@?C@MB|E0IeLM MdI[C;2*Q$  !=#-%a%"N l! =dѿ3+W֬3QɠTz3z VA i%7((((''g(A*,. 0r0/u-*%!\ P """.#]###$K%%<&s&w&X&)&&>&&&j'(r((((((()))%+,.f1468S:f;;F;9d7P40,&~! n* ~Y e0Q|jUNu1Юm0п÷ꨌrYejץ%"J٭&X|_'w֯،ڸۣ3ד֢oj #?)b U  m eN@#'-e27~;=>#><:99Y;>C2H#MPRR\QMOMKKKMTOoP]PNxKFA<8d65,67:=@iCFHKNQUWZQ\]\F[X_U PVIA90'1y61 O=BFP*.Hbti3AЌ#vӰȢ|.XٝLK@'Bb9wVڑCڨ˚̔-[I̫Ӯ$VP?"jP N!&&+|--:-e,,3,,V./U0)0]/F.V-/-r.148:m<`<:8"768;@RF[KNOOMKhJKOS  z!4!v u&> g<+3hڻ'bM~ˬ7e"v${dTˁ ^g[}ɐŕa›$Zۚ8N֛֌ N=<[5$ N&3@LW`]gjlAlkig eXb^XtPHF/;/$Y($h \#,3-8n::975G43n4579&;;:9z6Z3/,9*(''4((r)w)(@'%J"4? 5!#_%0& &%$##$$%v&?&$"]7| 9cv^kNT dkFm?mhN! XO-p$1И6"cȠ˦dv̪gA,dOvɨW꟢ _(4['>ە %g>ͥzȁ;J&ցۍޗ#صͧʟɶV!{'az=( Y H c /pP!2({.3x7:M;Z;:0:::;=?ABB@>2:61g.,8++-*025289::9852/,R*!)p)?+8.15K9;==;9:889^:V<,>?I>;&8@3-($"J" #$%%#I &aؗ?fιƂq BwV|޹}TRˏ̆Ȏ(U4:Ny '=. 1;0 -y)&&&D()6*($ fBq% #-}r0K'41 9?BMDCB@>`=<&=>ACFIKKCJFAE:0g%}o lsK<4 0fP^{-+? Z: a{bysm`d 4 o7, _O}F̭zh3dvٿ%4  '.!34y3T1P/-h,*($J2A2ԯϴ~џ֙#(%Lה>^p1Fr% %' ('Q%[#!!"$e's*-011"1c/+.&h Ջ֨1rĀm'*ז\Eh>pS`-9BGFDB<5;1&//[258R96(0&: 1aI%$n9L&+',8)$E "*4$?H NzP%OjJBG9*/%Ga)D hb >O{#.r|ށFuXF[`lfgӲIƀ n؜D6A U!n!"S#$&m'%+!,G>߉ߢވݎy`a}تX։l ݎ}UD afy6G9 W!(/4n7751I+"+ON:%62001367875S2Z.H*&#!6!!"$%(%$!H"B w  } 4 ! h|d [ 5 & ޹ZxTna(^+u,i t k )3x׋ǁ{ko/ݦmBݘЕЕ̸ңֻذYڒbCu 1 6":*[29>6BQDE6FGHJLMLJFBY=97.8:<>>B=94/c,++.C2T5663W0-,.3:-BHQJGt?-3%( R- {rxMBEb8,hK'lO @G֘f<׫AsdR#Ĭ̱CqS˰Ŀ`˳}JC))ٖv\ARӌYb#Y ߧD`43{,U8FAGEI HD@l>#>@JGP[)fntv/rhZJ\:+0^ #d#!,hetl! o x Em )29=#@H@?W RWIl '17h:T:P8X52 10k11,0,'OkaOf ]>q o"$ %"4)%>$(S,`..-N+p(% &  Y5pK^b:ʂ`QV͡B;ƾK<=U֨*Htk,[Xi˨ woˆm xtZq%y/?9AGJdJsHF1F7H2MT]$fknmQib<[qTOMORZX~^dOjToJsvw xwu:s4pmXlblmps"usnf\OaC:;547;}??:0#ys@b?ڇZ.UY9 %.r iѱ۰سV翍绀'ޜ4nޥ2[<;ntAǾbïZۮ(L0B\V^R2G&7@?:7) ok v:x@uՁ) /A"m$}$|":a 2w$+2p8 c%l((&" z b 4" s~ > |  NmFe5ۄ@uۭq%C91$xgwRmxF^{5[ZʮČEl 6.1꩜6vrٷ J)4ˈʸ PVͫҎԩ#Ol&ټsZ !&1>HMNKMJH9HKBQIYNagk6lJhaXPKKHH\KNlQ%R{PLG!B=:9:<=}>=<9d7A6628:=A@AmBA@?'??AcDGJLNMLMK~IH2GJGG0HGAFB<3($HZ#$8\Xə7y [@|#altb\K8 y z47  4 4 3yY|?΋ ƛA"`~ύ͌ ?A̚&er<%ͮcWގ/ޜX:jsԐͱ3ս_1&Gkcű@ײY-%nu|Ǡi?\E /6=^SJ\?%7*`,,,*,++,-G/5147<3BDIQZagkpn'oRnlkMkkmipsyvxzznzyIxvu ttrponlzifda``'``aaCal_0\fW]QJ>E A>=>@BC+B>o8g0'z ]Ie#' *p*)=&"8K#l*hYh O5rdo/n]ZQڶΰ"ŢZDI8|h t2ڳ[zX cpč˵іم2dn~0͡4 ñZ^Oj"ǹĆû˶㱃9Qhש|J) T7Dc Wn  9 A yX,G"',e0210-2+))+v0x6q=DKQOTUUTS|RRhR(SST~SQNKFC$@>>? BDFGGEA@<5.(#~kI!("!8pr qGE -՛ӅL Dկ%"ˢ?Ԕ]ȇT& qʭwVpđyڗ߀&`O-ћՐVXy7-$r#4!,/8A|GIGQC=85N569<=<^93--($V$N&4*?/R4>84::84*1.+*++2-v.M/b/.,I*&#7$[Y ( S q F$8FY^ on3 3;r:Y,WݔּB7-hbȎŐQK}iܹd9˿ ɶe'L1Åؿ4 7FҮڴYT޹QX+!}iW~׵ӾѬx 3-58 70' # Gwd1 ;'z!=U` S S4 ' !!!"y"#z##'$G$h$$%9'o)5,n/25799E9R86y5O4d3210~/-*'R$gDJNRSSR`QO(O>OOP!QPcOLmHtCz>:6|4346)849#9^73.4)#5hk;1X =5>(,WJC5K@ :۳iP!{Sz,sӠΥɼĞ(>+ŰLuQgİ+4ȥwծӿs2˘/rK(W ²ȇNޮMI2 Im FR~g]^J@4TM"5v K&I kr"*#0f47 9:<===k=;8n51.,w,T-R/14678]75O42V0-L*|&5"xwB5'=%s i7t2'sӁsŖˑu֌ۻű\W;'äɱӧiχAά҄HX$%/?X|  a HcQ(^R W*4=D#GFC>X93.P+)(4()h*+,,+)m%-kU VJ<"7!J!|!")T06^;=f=~;8605444&482.G)#6n]-z!! ^Sr Dt9.=uL A M \ < , #G!X a  Av C ? ldTmzi6C{Wi7b! Hi,7p6k' 1" gߝjҔC^"ۊޓޫ~υE5 Ց6ns4d:xo$˳Iֱ"͒ >*D  pAQ`n ~!y{|> C b ngi|O! K-\/96/ !! M{#)04@763<-$ - 9 O(/4653J/P+'%;%&')q+1,+:*'%{#"#&+2o;DMUY[ZVOG>X7 2.-.. /Z/w.-,(k%(#$#%+:3;BECXbKSW `efsea]YCXqXZ\_`@`]XsSMIfFyF?IMSW3ZXRHE<.![ Fy/}/B( j(1.;YCtILMLHC=7O2S-|)&$%#+"! ""#$D%$"#H 9݋ٙ׽ֻ"m"Rإ՛_=Р Zln:)Th,C}b.{V Oiد2b|ˁ)ۻoVRm R*m ` ;$ #j%$Q""C*)C3;mACGB>:89[>EOW&[Y SG 9I) 2 R& };@GyھױԢӍӥӗ"fҀївάξЂ,ԁZ֘V֏H}ыСЃѬa%lbӨWIm͛-պzU1? рhF&K38R84*/+,2=#ISoZ[NWM>X0Q$j#^+1551*~"s%R%.32, [ 0[eȽˌo՘X˥ĝͽ Ւ;F f*;JWbPkpqsszrVoibeZRKFaBABEHII:D9H*ӾAr_A?w0W+#]F &r3"" au  C jg{P:>>eD^)Ưn9ǧKK\اgCs֡rΰ"CUϰYEEYصcƧ%ПӔ)֫y#җҢ&ݑHeUr} 7]%.8?GEHBJKKJXKLNjQ/TVX{YYqYPYYZ]g`c]ga"ai`G_^\+\_[tZcY XVUSS/TTUVpX YXbUQ$KC`<50-o,G-/121a.'?ojPmĠƭp)\̟q ܙ~*R QDƌv)IXpƎ!a֓Q%`ZJ/FĹ}ԽdAƘƚoˠЅܟHPr!Hy )%.6<@AAA.A7ARBDHJMRV[_c(gjnq9tAutjrKnhvc^\d[\'_apcb _XQHH@966_9B=xADFFdE C,@P=:W9864%3f1/.S... /. -g*&#P! >!u#a&((% xX޵x{@>>6pL覨ز󼶿F,4.5@!7':_?󩶲Ծc(D3U& )<'"A!<,]7!AGHC8P*    P2:{ 7!,F8gAYGIHYESA>>BJ(T]AdofcZO=E(= 9D99=BFD<.uU[ש꺹EߩNfv0ïÊ̟OϲKF=R3 V$4 rZ([I 2޹r |ͪjRK"Mj^߸ gv(D׼!ֽQ^_J_wxA IO T? `$'*k-i/00/-S+(&n%F%O&D(*,--5*% P@^6=ye^i$),-U-+*(%*# +n 0Y0kr,l#ozJ%"0#gS{J Z >-| {w)ydWXE_ >^")/477998-778":Q=@6DNF%GFEDDDtF3ILN PONJ`GNDlBABCEE&C.?9>3,'" j!"#:$#" kx&WJCW&e 1s֡mڿ )ßcXьUC~ՙ8 듕DAţ֪g) 񩟮a0څzΟĽwMǫȿ*~޵z53h( W7 A ,k9E^NUhXXT7P"KUE>e7/l'H 2%Mx% b u*38G;9:63a005>JWdxovyxuqmpjgec`[TqMFS?]:77N9;=>H=9)4?-%   y q]!  ,"j%&& &$###%c'),-,*;'"CbkB uz! q-> ّլֹ#G9e7ǜ [Ќί^%k*K{ǧǰdž"ǙLg ǃțKMJq֦ԉѶn6ŔMR]ZſL;5h`4^G"UR(g%׽# #P})27:;: 8X5n32O34789}9740&-*})D*)-2T8>DHKHK\IEA<7X545.8r;_>?>;60+)$n"%m+4W?!IOxQME84+dXZ%$y7 9S/J/d`-Qm"J{iY(qIװնՑ׻WޛfLܬݷX5%^, tUl !Gi W K  5 ->  3R{4oYXS@r_b ,MOf 9Z 8Z'd?!i6Nqny N |~,"5 q xx Z!H5sHGؐԲҠD_֣֤ Ҙxha^\G 2xT"',t1456{6&65:55i56657:76'653W2&10W/....@//!0l0}0S0/-/;.!-+*)(''s'' (i((((*'&$###K$$$$"X&1| fGx3*=s7!\E˼2t]3ŸcCܚj#ʫ"Х9שDѻB6;uǿv*0J5m @(huO6 a u3 _6!#*&(+.163N31/h+'e%$&*07B>CFGFXECBCEHKMMDLHC=8v5335Y79/;;;:99N9:X=@DGINI5G@C=r6/(# %i M""! =*w hyއ%eTڮ CeM4јҿpԞԇ k]7q]Ěȏ^ײܠt`>hz~Pssھa؂f݈E rU4 l & 4=?V%:Pa@*saL E%41u;DJNiPONfLJzIHFD?910) p3ft 2 x g dQS"&1*,-Y.-1-(,+A*)('%"{ 86^l u^y]LNxk N V&+0481:k;~;:w7*40.-.1<6;?TC2E;ECTB/AA9BuD)GoIkJIG/EBAJC@GLSXZZZFUK?2&N"&V)>(&#(F{&%"J_M,F˶̶C7'ɰ0ӟαؤߊ=T 9W |'Ҿn̢6`Ju߶W,~D?e XǏFKʥyڍL5, + k yJ98 22'2I;]?>9w2*$ "#&-+-U-({  /vU !2),O,($!t!$%,4<@@:'/{! ;8 } O=*9  )U Uhl:^ =z\%btNs6qQW߄(Uy OOY Rn FM~ ""g!D*/uc?Sh.;"5PFPMRTT RXMGA|<651+d&W!22-85vG [S5v$n W @ fCB/L ,!/;ekl8I(X-*!dy"ZqZ{[ u +@.EhWA$7cܪyёнoۭ;QʔTﶚ|ܬ#&O#c ) l3@H?<=:89;? B.DDWC3@6^' *sۋfGg~^ t%*Z,)$L 3qeNؼ!Fʂʄ6&Naf̋eR/EUw'4׵Z\lw$𚶛ڡW۹՚ܩg?8I:%,10^, %%A$ i \\j`a< au .;9q888}9;=?[B6EHrJ1L]LtJuF@90u&?@ l a 6$ENa¤n_5C*r~,DtQ8hˡ/ugLa'$2As *=)T߄ϩzlT'efǽQې?r F4$('$%/;GQ%VdV SM!IFEGKMNLLFO?70,+-0"3^3x0t*'"espr *65;=A Bo?:5 2f0G1v49>BEFEkC:@}=<=< >JAD\F*Et@u8- P< Vg wqjи"3 _ 6# s,7 -SOޝJݚ]sޭ.ˠΜoj|(oŻJC9܄tд'12E6,ߝޠvZ 88%1{0+OS;JzʹpϠܵ V%:.IOON^F ;0)?(*0K58t60( p{ %2AP\dec}]WTTT]TQ]J=+23$F~ C\۫D & M(*&MnD g#(+*](V#^3^WTBcT+79xދۗ rԂ׸M}[}{]~9)z6UBLSY^aba!_[WSPYPURFVZ[` ddt_VJI=P/"?3 +f)y \UhUjaw ,.[h^  <U'T AZvh"~%Y(w*+++=+****e*)(%"2 Mo. d=   e iҶNmԜ0Ԣ2S^y>J@'{w~3i!Xj—֭.w׮V%y+TUҕҬѱпҊ׆x%> < i <U !$%y$"!!#?'@,q15@88P73/-+'%%'*.022>1p.*'% &(Z+C/Q22/g)g&W rKF+k܂ h<Ѫ+yܻ6t2,mxӼ>?RiBN͸Dޱc_׳ԞJѨл^dӅղG;ݪp"=GԨԡY݈WkF^k! P$Y+278]=ArCDDDlB@?O@>BF}KhQVY [YwVRO5OQW`js6y zumaUJ C#?`?BCGJKMMKHC2@==D=J>o??p?`>s=@=6>@DJPV[^i_^ZUXOGy@X9W2+<&"h C&l3"Si ~+1ת納 KʫBVvzԴo/&ᮧ(goy(oս2۔J5GBXj%dzɖеE"0C=)/`FSnݯR|֋|ѪsߝP< !!"#%%$"1c}s)EKJx}i5{2}z}B3 `W]H T0 m3 } d ei2Yr!"L" GDf$0*-=/.&-W+<**,05BE  | ]fu_ܚۗݑ})8 ,e 6 T !J(I,,T)#/ua79Eְ w>nƷqHԤձQ ; ̺l@| ճ֍1MձT¾ZŰ\)eU;zPss YUn [}"*"3:@CJEBECA?><;L;::9h:^72=0N0(24.8$;===B==h?BHOGWu^RcAdL`WWK;%*? %aIHָz%Z ( ) nrD 8^BPukݟFɦ@xH'x|/ɷۿ&_JچٕՀ@ep_Q^-؉3u9<=t<.:07$41l0s01I3453/*4$Cm'- LClC#3{֡чoт@VJǵ',sǥ̔ӰӍ{s‘q@e.qG1uPhvg|?P]`7 S/<@3 (:L[?fdkClmjUgdceinrsspi `}T`IA<CHLO8NIhA7,/$"'*+)% q!`'m.3a4r.B!.&n\5˭9/ƻ[y٢N_L>C)9dԤˊO¡ qŇNJU8NjtśķD'qNbgTXSBT-xz kWT .uW o<'0t:gBG!JKKbJII^KYMNUN L G=s0 oڏ;ʉʐטN]uuJ ,ل˖ʱhh\ 3?nEEDC#AA GO'ڇhl vB %'%;s  :[t^  *ǍfR>Y)<ިކ}JK~{y::D:?% k7P1'7j8-;IrTa]mdjmn8nlh`d^UMC9#/g$l u< #{(+,,)&"XV}> `\  U*4:*;7/ &^Y> [}+j]#vmSȄɅOF/rǹBT!Z hpQh""&!;ZwUA""U&-F1u!#%$M# y!(*/L6m<@BBA@??@JCFFIJ"JGGC:=6C1j-++-13&4 2-$}O gٔن\k&uȻA=ohˢ΁шAԷTPչSi<ސبҨkaɞʷS{u׉OJE^WlD;|DοһlܨBfށ۠ݢQ;ZJE3|v5p7)~V8۝KEpJB1A LnO&MGB>=t?BEE?J6)*ux  %2[a@޾UWI̮mY5,4BS_Tf>iiiggedee~ecV`ZvSKCA>;<@E)JKH@L4%F cP(SoGq # 4:D#&'N&"T"j#q-7AJPqTVgWY\`TeCij+g]P?.I dut]fSR{&xլN#Vܵ{M,@muyKDb2^Ͼ+ ۢؕЌ?Y<+ύ#۴FKcΉؽ'  N^4>^.+eW l ssl cv'.06Y;=>f@BFHIHmE>6`,#.r"%z$ ~fT*diY) F0zEY?9'])u߿[q47UV7(? -"#r#o## $$[$K#^!xS t`{^?3D`%WpZSa=/dH0~^ESK$M'x2;XCHzKKIFB?;.::{,>JPPZLrE=8 78d,DŽUfV³y9d1}&f=r]-?ASakypqp%poCpqstxs&n7eYI98-&S 8K%1qe5qO^j%wvߚ Θ kd0D?nWK m-Թc+| z7;qBx҂ڶ)/!1.U43(.&  %*JR<'Uژ$2l o0FTXQB2%"Q*01c+l\ ?2ք;=Kջ|ߗl=޼2˓]^w xtt ?, n < A A ]yrzW;kP\  m J&-1g1-(T# l")5DSH`h kg\`IWkOJ'IJN RiRNE8>* IA LIHAXV١=}oTݡ!S`ؐ:$ڒ鐬%\\qMڬ۾7B_Q eh24 >OLx 6w fj 0TL#  !> bC ^)/325/)p#{C!$i%$"- &Y"/(x/6=@A3@=:8O89?=93*B"Z" (+--*'l$""]$'0,0335O4@1,$1 uT( -  "jނ٣ٴک} qp1 -] P VO@!Hف؄C+ԩӧ {{f؞;׭ijݘʏne&LӶ޸](\VGUzܫKڹ fԑկw  N EOF7K4OrI:pnUM'@057631/14};kC#KdQUWWU"SPNMMMMMKIGEC CB4C DDEEED2CA?>=b==,>>9?'?<> wES'&w~, 5P vb?2 o5!!!5m  a^>E3u Sݤ $G"GP_ +5ro==>t??K>/;6/(#M bz "%& % 2ul ޿=Џƴ 09Iعi,y<@Ϣ\qqr `  2 J! eFu t33WU10 ',+%} }/C!Ykv?xoK`M<0N,.3:1?{=4,'8Ud&,%-)n#.j G  n~~IB "30?=˽ťصO@C;PMo )+' p=d0lP 7A΍+VUTʅնpL m;J"(.91/t( gE t*x12.']"*+2674.${x!w_J6h% (i0?6v:^=??@ABCdB>92v+#$0Y!#"? 7{L㩗v]O3;B`.j{sSEcݕzבV;3&)A'!=5w!,z8 w:+#8 @B;A^=87547;y?@=6*L D!/cg-T6 <!D e&:*ڦ?{MٴzIpy Zz _ E B  s ?C bݐՃҰ ކ>沽͚G)Ѩ<3ڧOپߏuqtM(,ީ.n2J"G8~ > :  l 0%W-4:?'D@GHgHGDNB@?TAcE$KQgX\\DWtMS@1`#4*5>CEB=6'0*&v%%4'),/>36h9;<]<:7=2, 'o"0"#S$#~"k _ !&+{03g41,+!9 [q]A{x"P460ׅٲ|ܗo׎ӁQ)LQɻHs&s3݂"BryXތ3 vqǯƀ9Y8ӤŸ?) 5 I!2 _9l= O~ntn  u#- !   0E7Ygopl4e[QRkI"B<97C65\66H764/4'n!|ϗ΋ϿVJ9S٩ؙC?+%4 .  &,5@GIHENB@?`YEl8m#,/L/-+'++z-/k0.)" L {#r sd. + l;'nK0lLäǮ]ɑѾU3ɨ&>xݶhߍSIdB) ")-.)-)F%!"'V {!3,f!!KA > Y [|)13U87l3,%3 w "&u+Z.;-8'  1ژҴ{~1Z &+-/27= DhHG?,0aqE8CoܠB'HZ Re!2ALOSVXXOZ]`c|c7_W,L:@35u-*-b281;}91!@ <#--͠ԙ 'A/M҂שJYK"G?J yl"/:>ZKTYY=WSP^O2PRTUSRJ]?t2&q 6 3x dy iq>&ϙ_[Һþuy W@ [aHmЁ0LZ7  lnn7-ҟтԸ\ s:=hS5~1` v:j0X2TvM^!$  TA1DU+cEj]jdC\STMIILRxVLXVRiI=C0# < K V~ We/p=e҉Ԯ2A4-پʘ̖@ 6jW u-;gDGFA<:MR:X= }ЬѸUqtl߷lWۋٸ׀+֦֤׉ْIj 3ET^cdb^[Z}\ah*pumwtnyf^XLVRW1[_ ca[ PP@- c`qgfYݬաr` jܪ@.wN\ jʐܙ=V!w(H;  B7,-QxM"&-ޒVF37_J%,/;. *$O  #|%$q3 T{rТ̴ U[;)Ǚ4{A׵<  #%%%9%C$"? 6 @i;!C%z)-d2e69;>= >>l=<{<^<;:}84.o% -]Shj߰/:6T3-"^`%U,y-(8]*c I&AOGIsfv`If^&.]34Y432d/,+*("  C4*/!1E{_7U!/L;B FD@;]7&410.*e%]: jm)i~ׅr]|H؍9ް!%' &#  Q "'O/60=@m@<5,  ls L/"&('$~Tfݞ7&IPۓf$1<ϣ-]'CٿmbE0A>;FJIfHD@A?A6GNU~[o]$Z5RGF>J7345n:}@KD5C`<`0 g8B۔xǖЛ ؒ_f,mX̗ؐܓA&3dFT\acCcbc~dYehdRa.\T9KAR:m658&6) 0vc ug9WӪ^ɳԼ* cU~q r  "*R1a5o789:;Z=>?<6-"K;@^kÖō+h ^I):M98zW-D **7WD3[ '08=>@@>;*96n557<9;=?,@J?.=:50*K$B'_ V1zH&.+U>ԛynέ]_(чsK #!ap " ,I't-j12(2/T-+Y+,.e13I2c-#0y ӱCu܂qԽ wd`eGSOVR,aմz+;8!#3W@HfM~NLIVGFHH|JLN"N$JA6)t;6L(4 U?껱pn÷~~;ԑ6~ K V"2mDUcHntwHw]sle^X*R)MIGG1HIK MKvGc?3U"B&ڱ8PBm ١=t |*zлz^5&ĿAϷ "/8=??>;7"5R3621@2]3456`7/7551*"G N*`nQR w^Džo,áý̶ʟ51Xu+Uw_<3N6?JVH,9?DL8QRoRQQ PjOaO;PcQQ0PKD#:z."_ h j #8tϠѐF~+ “:Aհ k  mkQܣܤ  G#lr~Uz1} ~S> E zNb*;`X5@ RsQ QSJE2sd @ 6 h}U%*c---c.059=7?|<4'0V?2YހK' ai)f #+-},$("Rs IkvfHˍBzgýP!IMS/ӽDIm _* S/@NVVNtAe2%~pB$)+4'zP {&`U<֋z]u E# S4 lgC  o Z܄b29-dE%*+'"i 'E0 9@^FIHGuDPBMAAC GIJHBd97-b FXm|G(N·DwĺBKA 6ini $s3!a &,/1 /_*$H"T&'$ 3I!/a "Ÿ74Z8u AN0F?INMuH@9 5359t?CD@8*ކ *T͂ѿͩn ig̒19B*-cylD;)K WHb f ZFQ +(7DoMPNE:-#>#(x)%ewۍ8&UP۳B֧pCXנVó(S!- Vb  ()-~-)#J S" !b!.]"%<'2'z%"LQ& oLtFL IeAE #Y%~*-..-+**('' (()*+",8,,+t+*)($'$!Eg*InpٺO-ńÛ±lp$aٶ$ë7(7UBJqPS?TQ|MHA:2d*"8` ^0 P ]c݄l!`* =%,K.,)%w" V d=bA\/yIUHkAI A Dj',K/.|,O)'%'q)-021,")\aRohW~d.vɈ diğ7L)ړF` c  : zH 4 "/)  B  9 ! rL;J<`7KߥFzC.]BiDխӜxeђѕL2ҁԇH35xr!"~ .D"'-2W6~752,'##)&,6XBsNYAbEghugda\2W!QI9?1!!ZV>L[pwѸ Zͬⵡ-_  u !0%@MV3ZXwT P1MaLM`QTjUQHG<(,E:54h7h܅tnrZF_ /V?ZL!UXXWTS\TW\ad]d_UXNE=u:;[@EHG@E3!u^NZpQ~h欴?{iz Bk F !!j&#bP_'Wg^ޢ_vϘBOǢ]ŽrџU!P$j"!?zm``l?[ieʮۮʔȍazEWǼȼ!ܹ φ  K ye+,)\*0240%@?<fE"Aءڤ57C w%,-[+%2 V h "! e9!;gIz s%6hIZhrdww0tng`\"Z\YZ[V]^_h`X`^Z-T$K? 0f` E[2ן͗ۿ0NTV_ݪ߰{ĔZ\D _%0t7:97652'2N357x8h61')а@Ԑ|շ2~:¼m RSјov?[ D] 0 "m@ e  _ P/hWkm@9]H}n~0 -n{)j2)8m::87D77899.840+'%'%e&(*,-+!("3 ,$f<(n p N[fo i-B |@ | [  ]L>P  c+"XHUl-5G q.bg/Љڵ  &  _J 0 ]c W 8ݲ<1osw:R&lڧVY(:،ι~걣j͠ް)ݕC2ڝߦVE(bp4e2jqS.!!x   %A=dke^8~N t P k e" d "FZ^Hg!#C&E(F)(&"7Sed+ ~$1(*+{*'#`  VIrn ',M AB8J"?Vk"PS`ELcf3TҗNP\7{ϗԗkQ6 "(%J%g#j aaV(]T! !f"#%'x'%" +TY߼٬ַי!ݘ֑l2>l_iKq %,:/ .|*&%((-5=C F:C;21Z&#!". Ar\WC Q}')c17<ADFGF|D@z;61/L0M3G8=(A@C~1 AܮLa-ę:h9ƚހ)b9 %&dCD% b89 l?؃͹(\ԯinX Je :(8SFUNjO-J@2%V7f "K$Y"$:W y cނ"jEѨɥ-ɀen"*#CWcchd{[PE?=@FM@QPBI;)%߸ٸ`vXgǿWŤ柜<5ۘ> aٚti%@ $)/M20z+d#hGls D1Sɹܨ#S ' #.2W?II,N2MF=4-)R),26u85- 0أ r̐vИSIA ԕipn X,R(5>>7t(e<5׸TߒYEVfBۯ!>&e LZ/$`-se #/;8'ѨpɡdRu=\7܇n!(.0.a+'K%s$G&*|05884p,1 &9/jBjz@(qR_ -6::74L0,)S&!"/Pڤπքق٭F|ʕϊԆ}Ļ:x9#,,?'c "+8GBD3=N+3hĖļ)ΒѓŽe̅ڑ״ќKbV,  ~5 #"fE Q'$/W^p<āMG;9,Hf7ycq.>vIOxQOKGnEFqIN1TXZY1VQUMJJLORkS@PwH<. |S.|PMil/?TOp]ziFrvvr/lc ZPIfEaDEMIPMrPPLD9)9uLe8vگTYʪr:vx甤Vh-N~ ݂;՝"eݱS &"1*9>#BDGIITGB<3A)P Kg (:38 z } auI F!#v=[VBlo"* 1445K3/*]&"nwjFq a S >Y$S{  +]լ-v]W5|6w!kdͻXo8ڔAOK {+/شb>Yٰ֟׉pP̹ȹ*ù_AΑ\L^ 3s/J yD.?}1 r p]+)6>BCBo@>B> @CEGuE@8.G#57ZG"l$$"$A#"d""#% &|&&%o#!; KRU /"$?')+,,,,$,+3,,@,Y*& T Jb˿4ހy"]{:W ! EٹʛK7J~ M1 $=(*+)%N23!7 )2íؑM ȿ68ώʂϹ!!*dY)LlPX\R$(Lǧͺ,ˍmH%/c2-$W Mj,;|FKAI>-Ys*5uxZZ,u8>>6*bS +%'&#` +  $ ~4:*O D h7 t C o <F_ J7$}=X m M"cI" ' **4c;@CDCtBzA2AdAAA?A>>9:0l$4d ~gTܕܑ.\ ) 7 C?,e^Z+iˆ8@Ц;.ͫܞvt=n At##!,|f&-X242+=݀JH۬(f{& ,N9TCMIKIkF5C@@@LClFI(JH[D= 5v+D" ! L^ z*-"I' %!.#9AdGIoHCEB@AD#H!K~K$G=.-!:{-S^'ױt^@E Ofr{ ~cܖӮ)W 2`FTL"8Ms‘I7ʔgƫJkȢ9J7FBӦw@uoH*AhS /UR;? + -@E\A 6Up*%@ 6 o0?K;S:VUvSPNORV[_la`]XoSOMMLOQQPuKgDE3'E _trdž,Zo ="! w` :+ޯ]XӸˏDz 'g3T8X6/'#%-9UGRWSkF2Gup!& 0s5P+$2l=[ٹZ2,LZ|g Z/ȵeSC$0%T#6_cST%1,277R99y786:6T78b9781:$l>PȰs?"¶^Ua՚0| h2\Vv#0~9T=`=&;743220M*s_N'ƖȀӫٱl׈]j޷xG8ݨݫ3CspFU&!W*z3?;@CDB>F93-(!" .8`InHy )Q&5IG!q$&'^(!(['k&%%K&')*/+}*:($; V4s*#,''"k/Bd6OsEе`ʧܪvʾ 0Y232.+)0!u  \8N7?e l%O.3A653 0o,)<)6*,/3578~75P3g/v*$|p 6|7JPYoi/}o~L &#o"q% (*-./-("mZ q2rV:WU݈ޕW.r e 27ղȝI Ndi"p &^=H&E4f "E1hǶɽ؇F#^6  ] q s QgN P 78'5L0U+k'[%%'*.02k2]1 /+w(0$ ,G;  }9hҏkѡce.+1Pݺbi 1QDS@_gl mbkhvfddyegkk o)rtvFwvvtqDnic\UL}DS<75/7,**+A--w,(!yf;JØ*֡.Ӡҿְ9(S0*6B9&:9~8654+4o57t:=EAC"E ECEA<.70\*#KX jS r 7 7#zQVS<!>'B#THvA Iup"'+P/p2k45^42/+&S"MAb vYM?K h_1%[֧ڣhO;6S" y  "f ej").S10;.*'%%% '(('#|) m]K޹W٣Y3B@>L0?_0y-ܥڦۡޓMSY"OFěG[k@č 6$ /@AA?;b3&JH7m;ȇώәՅ6̑3\Wx{?Ҵ̼B]˴<9\vd  TxY G #" 9o!T)2?BB|DEDgA:0 %WD 6Tn[]ݗ?۹~3 w$c&#&r$T" R!#',J2688630.--j/11 0e,&zfZ f"G2Y~ ] k, /=ZfcTJ5WʄPݞf~ڠ3&ׂڜf^ ^GbJyy4ezbU҉ 0PfξғfQi"% . T [>P{ G-Y@Q(14*Ve%)+-.03%677948/?(M n.M#)H.00z.*&l":h/r]McdT^F`ߚ>JeQvP @i 2iMQ_tnlJ "%1%"KP9?"8#d!Ly 0!WqM;o2]<ވwGXAMJ Oe%2;BGIJJIHGFE_DCJCSCCDFGGFaD?7\,ihOܼ!AJkoB  m !#+2G8><>G<83-V$$no`p+4M7,R4x=`!+336|542G.d+X**+^,-+'/  *Y zԵxYΜ:MsJ‘ӒrS ܎rfŜ&a%wü8R)C@ K b( /0^," w S] :ld?`ƫgá"UY ZA-aƸ3EwIJ!,b4`897\3T/z,+,_0q59;o@IDuF)GFEvDDD,FGF{B;K1*$o  A ;xyǙϯ4EM;u}-:?=70,8.6DUd!osqi^SLJRMERWZWN?- f?f4*`>H0 5]42 :] [ѽ'W6)~A #8#Ni`Zmttpikda0bdeHfc]_SH?|9578<5AlCA9+xƉ9wKc\g8g͡Q '.S0-9)%%(.N6T=@Q>4j%+"ކԨ؍*B6 Om|? ט-LBsr!&[%سp (] '< (.c3565u4d3[3342/*"K}+U.!m]۳؊b׳d'dT2).U&yl&Z!T^- 3{vN}RK%k=}3rnJx(sv'cEcQŤx~ԡSDPi5CHGA6*"v;")1]63(E ;N. d x!0 >GKJD4?<=AgG}KJqB1HZuYْԹαCJq, J/BR[]{[WV%W[agh1bSS@+  /GFEiI 4W&[:JTCsG2!?&(*,/2553/)S"@:69HUN  &z.22/[+0(#(,y3e֓גaٯCw/ՂG}BCܛ8Ӝa'9ἆ6;qB^jlT\2C uN; B>  i}z҅>Jp$ =$O,V.+&"}!$n-:JZgpv:w+uYqml/m*oqstyqi\^WP@1"u/Lx<#Skt#R o J c2 &)*(;%V c9gL4: G9p%L]6 %:.i5;S?B1FIMNNLyF=/ I=b؛TN{&Yε 4>$Unw#'*+)# jSf9_՝ݾ|d%1 ;@:D6FsGGGFE6CI?9,3f,-&/!Ap $n)2-@.*!Et rkgv.USS5 afN %4=@L=^5+# @!&&+/z.N&X:ʅJ͢Ҙ2Kn亊r҂څpܔV >j]0 EbiMTrOYoЃӊp ϱPߊW&8EoL}MJ#G)DDH+P-Z?c.ijgc`YVL&FCEIM}OKyBE4$T2 H `}lDXmOB͓̾7ƛqm A}t 2XDnRZS^ ^A[VQML'NQW]cAhihc[OR@#/ p/*ө˴«WkB͒Ȅ§%¨r߼ (.8H>ABXDF'JNrPOHa>16$i/ f" [H_6 7> ;#2 W  c]B@"Zt`I7 6>Q4޳ʢ›]|jc'ưźUh)N9]DJK[IGD>;^99; ?B>EFGGRGEB>6+% J+pϗqhưeŲ籖깙ʯ˹{Ɩæ;r<8>#(+-T0i2'31.)"D I  l1 㾑A ŵ ݼN;#΁$؆ۙo#!_ܹܶfl ', &P(7F^R[`a,_[Y)YZ^jcff_TFi7(/v"I&&&^ے};W6qO? DB " p- =WKUZZUN GA>?"CG5KcL J*C27O'`h10}ʍ{Ȫ*w,lI dLʤWں?,Ήн*TX &:.c;5D?HGC?=>B(IJQX[YmR-GP9*MqmO݁؛9DkXVŖ){_F5Y̛6J9BT1hUES9hF()2^9=?s>;E61.-.s27p;=x̼o {@ Qn@c8+j]?RED!. 7;:7\41+0/;0.E) dqI3ʺ (mCe5vƅw)ϔv&'*#D J"2FEX}i@ssl` TIBA_EKPbR{OG;, a+{3#0HĦ͝zqƅ݁a+#-eDqXfn~qq3oPmlwnqtutodg]gSIoB7><=Y?DAtB'B@N>O̕.Ԙ>x-;?:_VC! ,5|j& lp#i T!vw{h(4cAhLAT XW8UxQMI'FA<5+!\imMwUVrtښٚx*ّ7?m֜< # &=˘ɳFϸ+˿dBځ 4  [0! q]3"H=16.K܂O0)J!*T)Ӎ)*H_{ ,6>E>KQWD[0\ZTK@4;*Q#M #(& ((%g!#. =pM]j}rt s!nf<]RSIv@5)} i , 7Ƣ4FһME&lxD0_C i* S& fS3F /#I 43nxZtL 9#| a\\< Y H p16|!s$U%-#  EqPixO_dظd_F,ƈԘ7 QQWn q(6`>G #&'% L+vmJIڒouݸzD% _o<w"[5XEhPDVBX!XkW"WXZ\][VLTA 5M)"'*,|-L*"29 .޶V*Gѱ ΩȻֿOyŢ=}:c$"D4 O- a=AW1G?8_ ;JZ $f,00v+l"nZ ^u  }UY3X+dPI;n֊٪ݳxScS2&t"k @"%''}&%%<&'*+4-z-o,)"%5 u }1]5S)P  Ka(^Kݯ1ihUw2{xVp; GoS!""S h X3WUߧ m'/{3u56}67n7d76d583~0-+ +,].O13 53.&fN@.,;md .&kq%2>IORwRO\L4JYJL5Q VmZ\[)W2P7H@:77:g=@@E>6E*zE `B »K? Lʭ; )4  H.is [Y_ȥ߬ 5ݭzZ)jȭհuc \= "z(,-+)'~&S%$"  Q 8A;BK1ȠՉ̉S8ՎbCG.J#)E f[!!%#W,6@/IwPUX6[*\[YEW0TPPQKrEJ?D93.b)%#*#G##$%%%#!7^5k 6yqMyh5<ۮ)כ, GA٭sV83& Jw R 5L`onvKvq[kecbKe8hQiPf;^QPC4(i^"'*7*l#ڲȨ(a%N*UڒOU>M$;"*# 3*O4 N  > Q >G% 0%R-*qoX G4R3|HI]yo3 =z"*S157V87B64344@6^8:>>>===<\;852>){lfpt3WPϻ?ƥnӾӫb7ȠM]ĉuÄĴɯ͹Q ؽٵR۳ܶސߘ}?*Ѱ|`MawՓBx E Q|@ @   [Z#^(E/y@ڿ 3ƒc"\څA2cQ~;[eaE 8"$9%^$" 7m !""" Kp@!!x;\j9 { &@*Z+`*(>%"0!(!"]%(f+\--,i* '# !#&)X*Z*)(('K&%g$ Ddݴp@hͦ{44Ӗp98֔ԗՆm~'8D{KOMKGD?CFNV_eogb.X7J;/'}$;&*3/50,#KCyܾ[ܥƙ𝭦` WZ`s-؋% a9vM[cd`+[|VSSVA[_oa^iUG5[ z ^#0<0Cx󓝗pӛ؛ʛH³{Ə_>%  *i==J?)BEHKMOPqPO.NUKE1=1%0 %7`rOr{:ȴChc=9ۀՅҫs;ؼއF*ܤ҂%R%fs9j ]( &R1 9c=,>_<{975(67O:<<8 0"^[)޾f,;τ<@7{.{ thg& `/G;S gS}(*^>7oU|y 'ei ,YL DHc't|HDި|)-%D/8|@FLPR:QKD:1)$#&*/22.&g[  %I.342.*G((,F28d=?~>D;7N31&13N7983*l  <޸±Q'gYܣذ݄ ,:DIAJHFDCSDFIvIvF?4%Jߒ'ӗ<]ݷbowx]Q+ʑ}oTРF7ŀǴ I%*+(Z%" @!S#`&))'>"flفSH9۔,ܫ60pņA4I"4" !'w)'-%"##%J+2m:?A?:3+$ ' !$&['%<Xi |"[F@[YulCЛΧ,ل\b .>%KvS9WWIWzWXZg\\=[UMA6.)/(+/G452) ^@юIO~оjͦ8C8rX)#/0\@8jn~P?o ]M ? |7!aAwFwR(p^ !#"?! 4O -xUm^k ہίL,T~@fO1~£Vԝ}KDjuF~i(99j\#EEsPH dZ o4Dw(LߊmHԐ,%q*5u؂M 'zWt@A >)',010/.+(?&~# U t Y\<14dY@,݆ߦ:k5 ?F  #p"~+#]")x2c:@B"B,?:52E0]15d:?"D)EAm9p-Ysl2::ɤ̕;~cާۧ^ R4Xz*BbIAFB'Qc .>4k*i'~9 Amn) P$$!7(d*")u/3W53/)B$  "K$[$!f| I*"?ܺ_ϧݥL$$ĬS͖ՖcߏSߖܶ״yn3w7 ]19 !d).~11/u,(&%~&U(*1--+z' q9J:Eqh0ZntXL/Ea )3;?ABCA@AC@DnDCZ?80-%ӎϊ0*ϝѰ:t'ה$N9FߥܘIuހYfߴִY&Hhv/"!i,re H=z@ )%(('%0$$]%'K*+N+'b  bK3 xhЁ|Y?ס-l?)1 79:;"<<$= >>=^;72X-6' E0 ] )T   hzZǷ$̝ ˒‘̸Zͫ0@g!s$%07;853n346|9(<}=p<8T2G* r JX-c(9J8zqΫYWNҏО͛Ƕijbȏ>Ңw0 w @!)3}=FMQOTUU'UTTUVVS_OG;v,  h|{yYD OʻeuΦQD^MbL i-#?MY`egOgfdcbU`^I]t[pY XW7X#YEZ4[vZUBL?=)ݷ Ot{ιʯBdJpL W$+>LS?SMF@==@IEqH HB9;."I ]: mE$٠ܴڽsȑ'u;d sں0ǯ! C'k k"4ET`Jghf7c``^^`cffc\RE6&   !< p0ηm*]oW{8׿cʹ̻Ǐؐ!.6:=e>?v@0AAA?;B3P)8uLm9{`rkVߊF5Ѧ$B jD߿R|ۢ 1")-8.,B*(0((t*J,-A-O+'#S?1 &3.59v:6. $ h{ZK# l )" B%7IbYCdiifc``b:dred^CU)H9K-#!,!&*1+'Ψj\ns2vW=JT U,k@MSgR`KA9559>\BA];. pdj%?>;p2ۓ?*2.ۜBAΐr1.`ДдNRSڂXD$[aHf3"&2'3$I64(6GXfoqnh_KXRQSW\^]WKJ9" SQɎu.nm덚 +ޮ3ř$V1X3;   pPT M Dk~.Ԑ )lD|c9 X Hr f;:!b m|,, Mo | X   Dj  ~!V%,j0/)=B kc)dtGLܡܵS@y߲ܳ۾i0+2qnܔ2חgܻ3B e? ^fWlhAMتmózӹ!4 (˹bt0CΘ͒kuQ$YD Q2o)*6?'CC@;[62e1t2477d8A7>3,I$B #7N,(?W; 8[!'4.4:?CrEnECCA=[70)D#U-|Wz$o KOY-7Ѩ).VC,ȎIþ&ʶءU\7ЧЗթ5o#4@H{LLdKH8FEGKeQW]beIfele=eqeff=faXJ_9=&9h>Ss/ϸծ21J˶:lC/|dĖHϺ̋0f֭W#5CHOLW,\^>`abaa_%[tU,NED<3 -($"v"##$$z$i"_A ʯ:E3?JYsZ|ƥ2{MŒϏߊ ?* q  ;VOR  {Mo6=oܢؐhMlFH :i{ Ay`ՒۇD jt! hoZ$5'!ߨ ;t+n\;Ŗr֛ؔݱ&A04540-,.2 8=MCiG}IIwI1I8I IEH%FA9-0t?jlBȹ%(vM۽5^0l'7FS]ekoqqpskcZOE>5;;:?CGIUG@6F+g H G g]x !Ic^" E% Rաmz¤dEO(XG62  f&s8H.T+ZYsS I>5~1B148:o?0B//.d,['42#ʯMqN̤nuֈeZ3H&$VM &Vu_}W2 9 7309~+"im(F:'   | m$t*,*% \EQv;ڔڍ{ܤ2؊׎i$( =P3 7E/ 5TSu:-_c+Vso)UL@mPSq:`u xQ3)sg(-K.*%!!% /|ŧ :Ǵ2ܩ𣂠hͲt[: >O&-.}(4M~WmC9 .//BAQY[ YSNJ=IKO%RPPxI=.] {   2 <+MT]9!! <0 l ޖI߁ۍTٹڠ%D[ J!A$%A&%$$####"x i #\qA@q6#~(q)$'"(B%g Z{L _CG`@ς4S'h.7`*37z63.+L+-28_=?=81)"\a"H%&$3߉ՉY/@^}Ȕ(ɵ/ͯN<9G#UU8!I  @?J/JJ$-6V>EMaTXYV?O@D6'?9 S ~lZ S@~}4bI5[19>% 4G(,Fv#s^.)I N A  w#ٹ8BOՙaAʲu\: RH);FmKJ\D=9:@JVKbmj6mj]d+\SuMuJKOTHXSXRzFq2 Q׸xԮ4uv2yRJɶ:̵ƭgqG !k(!--K*$N"$A"8&k 0!)z-2.+&!+m>a   56. )Gv7K=LFgI.~ޒ|E=п2^==,>%Y-`254?30.,,+-1c7G<_??<{6q-#X Fake½aك܃M- )1440,('("+r-._.R*k"v Q%"է֠ ]כ֕7>Բt}n8T/:X6+%+`00,%8 x,PX 5q- Xݨ5sp7ձq'WْYՊ0˖o Z" {)s'TR IL t -  w=QP# N Y-U>q31"` 7P E*GfE'3LsOaUGM?Z3L&3;??=96f43]5779T8f4%-!4 ֑;Vj8 úSa8pY~9?e` /'B$#+&o()*+b++?,,-.G.,.--I,++-/B4^:AnJRX[Z VNC8$/(&$)-3v8894V*DM \c1u3+_kh`On cUGb%~jl&}0/;CHS]bGca]@Y^W;X[I^z``2]9UmHS8 'g>jv0riތ2VֿĒƩM: ɨբIM)-] I ùWO4'Np=fl2 +@+;KXcilnipwqqqpnvi` SCX2 L8aP6IGBkiD))1 ;aOt ڙ܀UA:>,zNq7 e X'*:+D)j&4$D$'>.6G@EIPUWVUSQrQ#RS.UIT_OED8;&7o <3v~:{ޯpNGl#(,.U.,+*R,07L?GOTVWxWVV4WXZ7[xYUMB5&  UZQxZsխ˜SczԴ߷ K˷'^攡3̛}^ωŏ?`"ǞԢϿt !#!b/C#M"($H#*%7aA sbq.X` GLvάLM޾CU.'D-(0/b-)*'Q&'+18h?DGVHG;D@<97<77l859H9f86@41/V/0536}:E==u;5-$L 2 + 1  n N k \$p'(q&# !&`.+7?EIHD?<8K2o.<-J.03754:/&C.Ԛɬ/H pίv̺uQ؈֜כb @\9)|-pK{. t17&+%!P 9 F3V}AhvN>q >5/ވ1ČשG9!̜ѐѲ@Ǵ<ǰϟ{f1?bGIGC?>AGNT.UOC217R1vΉtnϏLԼ5xe'4QH2X_yJ}$ 3'?CO*9 ITZ[lYkURPbSXe_>dveIbZ>P2D921^37@<>;25$`w܈rCqj%h{!Sv)p ] ? -449+6i B E;"%&%#"s!u"/%h)o.3`6 8Z876656b6`52L,$$ABF!Hf_ж$Ͳ˝ʔʍX#F1"d*#1552N-$QZ+8t\-aR/DoV1< nvz# ]f<6d S$/8Q?[C>DB]@>=%>?BDPD?6)DzT~^hf+ Ʉ̋Y<Ӎ}b٫bC + ?M VOvgJ'βɀ*͞2ٳԓ&7l=p<§1v*v6M!D# "(++l("f1==rj{ ]%`m J.b \gz^r^1m 167y k  2fEEWLen>ssqnl8mJoq}rpk'bzS@+LeRy̚XtZ6}؎ԲW` W'5.10.2,**+X-Q/c0#/*#xVcܝ0f$I֎q=0ݩupyt=u,#') )M&w"Ql #P%J$+1 z֧Z׆׃ֶӎҭl:a6h[$v cN 7 B E4G ^LZ*EE.MGW>}n{: CmkaA1Q^|GZ EQwqK 3sv?,i &i㿯tf &[TͩEϳ4MBX '|4l=@@<86 8=F8RW]fdmppnll"npsptsvm[cuV:I=4606037V:T93#(P38ş1GS͔_ؐWYu#!:Avs$ ϲҕ۹`'#6]?CC7@;87 9;p860? '>/6=%CGJKnIGC:0A']NT!$$ťcƵ ŭMƣ*.+6;EHUGJCC>:a;AJS[_]UYFG5%e!&!%(_ߠ5MGՑہTlG M{Qby  !`&&"t ;RRb $ w6RI[b*0:X..#)r[ڽ֑Ԅ(ӲҴ)\Βσ׷ܴWk}CmOj s 8 t   k wA;I#ۺ~>ڶ9Q·‘GֽȾB;jq4$(C(h&$~""%*I169:C71*#V!#&(& ћ3˭œ >qCf`XX'**K'!F/ %U,S1 4k42"0-*)m*,/1220*"0z5yk7o l ; N&.5:>^@@m@4@@?9?O><`94-Z%Af  & l ]}Mk|rԿW؉[ۇwv9 " %<]Z nx q0 cEKZ b!($%$^#!F ;^.P(1 ܻ\7݃ۖODxǜYƏ Oz,kɪ+,ˬ d.CcS[][WS8Q:QTZ_wag^aUEQ/<WQKy:ت*z XR΂@^ѡi:5OZ[ULFEKUIb#lyn<;Z>:B&FHI%HC=6/)|%/#"#"%I&W&$!t$ LmjR~ؒ:5d sʀrÆņԆQ ܞ/SG".)9@DEDB@><'<<=?@VBCQDDB@v<~5#,!hpfc/׽ohKӨʧIתwr MH̿'ˈœ bˁ: Dzp(!'<,X-)!:q:9ѩ7̧ԣpڨVkF ZRM0Z)9RK3[gpsrfnviekdekgjmmfi``|STC0 @La܄>giӕL׉ IH*rH \ j  'L2f* p}%, + !Q+V3p898521259@=i="90v% m,%pzyCħ^)楦r}?{̫6^Uf/ۻo:}A`hSqC~N5.3Х,V˶i]vrҏ7 Df %'^&1#= $&'o%I4 JBBp6Oh^ӏy o 5u,a;F@KH=/"p9$2$JUȷʳҭ-<8{tߡ "*J03,3|1*/ -w++M,/439|>`CFGFA;3 +! dq)c c NrP t )O nXbߞ]|؀݄E )ݪ!|$7@)[y2YO2+Y^Ul K w"&|(>*~+ ,+*l)'!%! f w/>L>"YrkCw5G߹ߔ,<9 OxiUFy] ;"F AsV 6 n> 4!ָջخWXlwH*;KYelq>t usoyj@d]XRO~N{OQDTVWSWK\>-3Q|&gǮĤ7̙Њf%^ǧis?Lk҇wޏ޸טnF]t#FIZr| K%׵ڒ|͗Ĺ}t&ȣiIˑ։[ji`Z *#4_;?>q:4/*(/)`,04651).>YkYٜf:yjδ \Wu#5,4;?@?;8h6f5579;o<;:V8@6 58569=AdEzGGEB=I8[2-)&%%&"(((&L#mF1rj:q^1  |!*a14B5$3/-#,-.010,%>Z  jܟٌٗsR׿֙օפܨqP`aNn,ߒ9 }&?KRz  s  v ^ `@ !)!jB G|auO*޿7خN۵ If컠!  n- 8_c'j.l355431F1<247<;F>@AAA? ?>>>??>V:"9ێM1oֽǻώ=́ʓͷ]{hQ:\3~lUbײQړۦ۹VճθLRi7IߵKaWf0?GuIE?>8I44w9AxLMW_ef'ea \TLC-:.K" o~M =ے&mlVK;Sc@U%U MSwP6|.($)/Y69975468l;<;x6/4& #"g% =W< .L$c&#"0AAR_Bhje\ R]HA?A*FKOQBOnIAR7 -e#~xi .Vz3 wfA?SR"1o-}ҥ&׽Ւٻ \%Sd Aҍ6ـny(hAeX y\ Gh ]YdBwVf[-wׯR Ў҇תՆmӞ"ѲYoХˣ"0uƈlA݇ݣ$7ިecfg y&!k%j'';&#!)0 _!""+#Q$%p'());($, ~W = x|] D{:l=oG8|Y#+3:@BB@Y>S;72-'  _D!65 b!&'5d| kn 3  z*}'+aLSKj ##%O&&X&%%Z%T%%%g%#( T$\ sh*Nz<ѥ՟ԍjZr.]ߐ{_Ys/ ]  o 0L R O 3a49g] _c{36` CL3kٴ qΆٞO`єҠظBr insG0\41քכ߮9 U Y'oFgFb +n!\X ZG(vZFmX8FTWg՗߰o۬~K}).Y.2)!,p   7 >BG  krB HAߡi5ѠQrĕ۽Mкg*`ȴM/۶ܔ_-."E=Wldmqpmj@iiknr=utVp@hg]PB}6-(-(P*-#11.'~|ZG8ffEeowWO^^ t!U"!71G#M)-]/?.V*$[j%X!kbY}r>{{2`&EiZ8iB b [<&JnAJA۞Wݘug۝URܳh i3 %}C0 $ ,L14555h4b4454328B3NRCJsQVXFVPKF9+~m6VO77Sjzt-KT>*ݠ [k216J_r9y4(V[ jKsl>GHt;>=XRELݓ9߇\G ?TB9f0"hZ!GiJYy| v8 .*Q uf+sެPs:,s'!d-8?@=}9&658t>ErK1M)I?L2$ A2q] 31OҪߩިۭγBHző,{ p!$,121.,++,.0/-p(&"j aW_ x|i\ _a &BA rh{F#, ]  o(168O73b-'#!!#%'i(&A#KV-J#:oqs[ v A!t2oW:]07Y*L#,269d:9K8c6411e.a,+,-/$2331-&Kn S3Gkgh)IZӯ& ڡדfӿ{‚Ʀ˘)[~w%2wt$ $`(*+ *v(&"%l$$%'d(>)?)L(&=$!" C #e%^':('@%C! ? $  g B r  Q ; 4eg ba6Mt|M3[ W#Gc)  m 0A?N VWTNuGDA==@&DPFE@6' 4W;z|ƍ-{:⬤p0Ҥ$(gEU r lt \o't` !!d(y"%k'H&="k FR.7 @gx"0#έٌ6QߴVi?ڼ&X: A;7Z   'U+@,)Y$=q5nV <+nGkzrZ *|0 " ~?  6 " 0  J߷֕eԲ֡>?ͲʽȲDž^Ƹ:RØjд?۳1 Eh٤>g F)5>CECc?;>:;Q>_CH MM:I?V2c#: t-t_ / % sw0+߾Ty %.522a0-K+*,0]5@8703 +9Zs zx՝XJCŵ͵󻲾~{ɼ~ڶ_HtQ{o A])QHBTeC ? V \ Q ) l_g   V|CneMxDK *E  jWf$%$$iC>{{q&ImKO"a(r+*A&{^   {NABzt *\#E&&#}k^& ! ti\= fھe1Rlb[wT"-6>??}@c@n>91C'U$hDڞEǔ (]ɏ=טܮG[-ʻh?[ztνb7w!"!! ">""""I"! VK "#l$#"L X6 =  20)H3ݬcחԭ҈LNxh>hd 1/O d L AM$JCK !]"!\ rc j F-&8K  !!! S !" VG l].d{sxiZȐDŽș̣$Ζl;H f0+O4773i0L./3 -8P2. ,,.01.(h2BY)\ -ԺП[)(v(Hݑ^ާ# :ߘ֬_=}&( GGq1J3~G]*o~   = * @ k r LsI L Z2K~h".kKc3: Jh   * / G g aCR :>μ[Ӕ-ءGm`(a]# l D~\]y Y hlcF 99  '++y)&# $r'N-4B<BDDB8@>?AE JKLIB85+io  W V>ZWH»N/ÝtTU&zEfuwޔ`zlg~ an 9! % PUHF 6 4 n5ۑ$aU ۽ԍM5w f ;u|A y+?vRbmstEs pflWjkm?qs urk_WO=-+Jv{,Igլ5JQҼˋĜớÁ|ٴX T G 6 "RUtj:8jWe^5o+1.WOI֦bvA6b׫؉ٶUس@hrޠ|ݷr޸T@G Z"+J022w1/..0/4s79B:84s.'"!p%w((%kQ*N(Y "wʴ8 ՘|Έ>ڧSokR8e l W , 952<F<*+J$n%hXiYpYAXm:C% J ` _IOW&(7 V,h _z q)<){j ukN4UG;6w ޿tܠL$NAa  8K i#m$:$$$7&`(*++'!s; S3 N[ ,{n~m: zG&T.W3U553a211,34!653r.T(!UMK`Z>֯1VaսN6l!Ӻ4[điهN !"##7" %  t Z`cIUo^Q u MX$Q~/טɇ˓ΡuӾлyn̲ La:$%/5 754/L,+.4<4E5LOO,MHC?z==?)BDEZEC_?.;75394547<88z63L/*$_|+ m ~Z+$X*sF/| {h[q$u{ ^{ PK'1b7|6/%\K b 1t"ɩJGŸ̐ݒ`E܀/%4 [)9CqGF3DBBDGJ!LIBt7)x zpS}~п5koVYU9?z4Hkxmp@?v\= 1& ,8//-*'&',2A:A.GvJKJHmF/DBUA>:3)yH. AY]ӀP?̝gxʡ/,ֶ0֪6{- Ҵ_ρΘφ֓|ojT(=LT"Ud^L_Y[<(:6OLY}_ C#09r>#?=9767j<B7FGC<1!%,4 {gFuLי؈K(%ƔȧlϿ-_E˯ғDz'a/X%}`{'@2m:?AYAW?b=g<<=B?@@^?Y<883V0-,,++*) (&'t')+q/N2@3v1,%3   ~F$Yi-ngنz NL'A17U::_:/:Q:|:::Y: 927o5[4445G7C87b5 1)+#@* j1[4#N[7X,TP68 [ ;)O8MdYP#,2f5#5H22.b*('w(*+',*'!:2J(/k>ۇͤI`Eg{X62:_ֶvˈИ&/17^;T===<2>9b1%2 ,URfcOwm:Mj$[#D1YPk<5Ѷx@%<"] !7GM^jprlq n_idbUambdzhl;prs{sqmgz_UJj>1J&)h3 !w#)8V.#xsJ{] | #N T !bT K q m|.)N &,z0721f0. .-3-i,*c$s [*XpPsFP^%ھVͤZnљώΤlݴ ކJe SLERW0/ 1&4bh /!>(>-;00/,)^&`# u[y*X(xOWSh/@,NlӪLI*٧bѲIШ׫ B=4GFrS[_``][Zo[~]`dhimpr?tts pjaUE1YJf'Z+*Ӑ&>IҚn`"Xy ҜSsbٕeцѼ)+Cd,>#$/w=KYemq6qnk{jjlpsms0ndjVFx6( *Y $()%9y[F7FG\ B֔b?ʥtZx칣}%$-/Y,&!U #h-jhii jif_TsG%:.&".#O&H*,,l(+ fzB0t(_}ށw445=- q$+022p/+T(d&&'(*+*$' xjAkR^Mv+, F9յӶڊ tK!}c: ><n  ! q c |Jqg(g_EĕmV{HCRڳγ,(ڴ U;! [1 h)^5$BeM_UYZYGV{SQQR THTRdOI C?>;5-#p g : R Y  o , _ x  K t  & D-^EsO{ M_ݮҷ$"AϔНѝRFwɆęWnj̫Ѹ6b_) 0(sg S*>6S$KNg<{J+|=oڮڞܚ`g"6twD+;KZj SLyIzR{!>:?Xb]y@ xeB OVuۊ|߄Zٜ& 9zhU Vn( 6BLQRNPLIGGInLNbMIC;2,^'%w&)+-P-+ ']"/o.:t%^e;y :;x܌NX̆ɲǃƅııŸDžʨͽ<ӜԞrӽ3|?~B>3,[\ 4   U 4 P * [ SAw  zi,SPY)HR0&[M0$ H:K]_M߈ݥ5ݪ8 ۈҐΩ{DazH7}aݰ) b+i Ov2^ +hq?&*fw.[X|Z !"n!D  z!Y!a iU W *6OA Q ]n1J 9pxa !"V"!? "!y "$&4(('&;%#" "J"##$$#X!( +~fE@E~*rM FSr&j2ֿ]F*'78?$& $p X_8(MfngNӕxǓ4LKɮ<)3]~`ɛ4ɘZϿج I ۪ܜ!Y LLfhRtl P \8_ j ?-t?5}OO- =gE'^dNׁ9:Կ^ҷ&יBe]? S c  2 G - #D%$!Zeu$,5<@Aw?;5r0h,R*f*#,\.//-(,!Ka}PY >8w_VtR !R Tff> Ez5q$(;-30l1 1/|.-./ 369;;P: 72.n*<('Y()J++*'<#Eu =z=`4ݙ5.`Dժ4ދ ]sهY߱Nc o!< BN 3 U 3 lc`PjA`;9~[Z#YJ#9sfB b  ^x>0C R[ m#T(*9rk7g ]{oԈր)ס˹xϷӺؤoLtyEްP%gv} `Pj .Q| &bl?ns_))ׯҳDƛ.Ǘ9љёСհ>6^ay Nps  Y%-5:> AB;CTCCBuBSBBAA]A@t@??*?>> ?E?????>=R<:8/754[4,4&4332s1/.-f--*/03221/P+$ C8'x;KaRF[R?PޞړNh ۃܱܥs?, I ( `> gnH#(9GC4n/!p50("+5=_B.DkC@x=e;;>C3I NdPNG R   B # BA Q dg15b}j(ϲ2BѰgUKLpo濆0 -:gCGHHCGEDE@GGFA ;0#% w$\QoqmB9|$ ^ W ~ g @BLy u   RL &L\}KcU<" ^'[ z-/Ov)l<wQ.+s  n,`$&f%"ac &8.t46X4,!A $8u$] nĴʊΈп)ρz.#vZri ! lL6sb8i*JcPL9X 3 p"#"!M!!"$O%%"h+u43nQbF%A{4z~VHp/-[4\TF b x V  & hIFk"6i! fD   MT35~r9#N7}J-#" {3!!k!   M 'J 5nUj\ \xO *Z[LM/ }2]u 5yuߎ\d M y - "<U[<3v puR!n#$##!  !<##$$o$@# 8fj ?"] {Zo ܪ:" SNBR2!ZQqFm$! !$$t#!0b x! . YnIg'bw ?##ؽׂm թRף>ߖ((ݲ|OAeyP '^J!@&*8.0,21/,($ n^o #e%[&$ &V-/ _k93Nl  q~ | v2K \B :  ^ (J ?HCDYE 2AZ&%D x #V#Rbg* kS-'/{F}'.D'why38METL=/Ooܿ׻Սe]lՈթֹ .Lܴ5 M`ܣ!k\(Zr6Y<,|uw(dm;FTK[,X'NKdc 79u  P/! 0 JմlaчԽ+TG+h='i I? z7 J ? Iy sr!#$" ~) "&Y*-1.z-+'#R cz8!"D#"T q,W\A B "F$JM!Q5!s $AHWYI@JCB"-6 F=V  N"" 19ck#&Y('Y$ !/ , fP 1CrBSoƬpfŖO̡ςkѸb>ʣ z*x&U cP A _!o$&0'$ 2A%6Qs '@R + =Z = , +  | /SpI2#R 8 ?.6a~NIp>|XH) Knk!zVݦQd@nO R "A+rfP`5f:Lml  Yh=h$v*J7 Z  b A >Ij =smuK4sy 7WI|y;PXYJX~$A{.pl{*FH@: hugk J#w\ y;jh>pq< w7Z9Jfh7K%kC7@}?%)+1+")u&I$# %'*,*&Fa /i=Fg}Ue&4/E_K *B4T'+x9c P` 2G_ ) % p E ~5>/m Q!TheJJ#7/*9 I-lX&ae*3E`b94Vr[BU?`-4b  N! . ^  b U XR V~ *V ^y<@݃8֡ӭi/ˈr1ȃ%Σ|oMqX8LPnCo9VY'{}n,9.+5#"hW4'T n`s (jS ;  (?YnM=["%'& $? ( %&$F H"6Tt~}GSh k301c`E< (w%.Wy  7  u dHIT($" "H&u,Sy q 7  I'~a,or)It[C@!VQ'JQ: rO:4U  VQX)[2 &\  6 F G  &m 'ܐ lKgݵހ=,)|' P-6| ( p N_XJ7/ik VD2S/ 42 e :;;I T\; .]zFܯ۟w~ (~0@Rb n ;   l 8]@$<(.L59#%`;>& , ) ( *q5 9V} /" b #i+28;=H?X?j>&=e q # C4] z O Z *8" 7~M9I _A;gXb FDltBmG6<KC 3 _ qc:+HR &m&>_|  En p%\  S:GUW#",zhD6 &*/GyZryce rPܪפ ݪbܲHjP}) h58aC[8xT p!k!!s r!MH -_tCy?0 ];s=v6'!wW"oqGD?@ 1O9'!d]83 $ /,%8  ` - l A)IARd3GfeFhe{O",AxXI2 ^jVUidYa1{ j+obmIL4D/ ^ eU$_ OҋՎ@P;ߑi37U( a8SKb?r_ !"!u!! t !!!! " 2 X ] -S_=fOQ@7<B^X}A0:?0 5 N 5 : 4 ]6P'?hP@yܨ٩إN!wr>ʱznfگ_p8jRh= .&V 0q  L d c.܇ۃ)hڔڦڴ۔u\ }.G5 < |u$@ r 1%' 2 C " ` !  ` |c~#jRmUo r{ RE &pO6Q|],# Ch}[>͍Vز Qٙٺ(|}Qا`8J&yݵ'ߎWk#5,'e7 : t4 "7"w!=w I::Fa` i] CoR : R ?QaAJ  / Y ~fJ]TU }` \ UIS Pyx@ R g}PtRQ_)W o=d .w*f"ov^(>KУΦ+?ѳ פح֯԰ڄݜ܏ێFڭHyHa(3=C_FD!?7q0+/*o+w.131+8" q\J{ &T_H|`#ZZ%X$؞as&QВӫR0="5c<  ok ;  ( u< \y dAZJ<sn=+̣V΁ս ErY a (c4(6@@Q?;6.& 84\t$?Oc8WKY}.jO8-Xi',t/9og!0>JSY[(Z;X|V|URU@VXYYeWBRJ3A5* <M f;٨!آסsu޴tu@SS2$EaHk++(.;d9^5UtD>w 7Hc " ).jQ`NZ Zdq|;s'4DB[nCsW6=j ^w, ""!s.q ( 1vah+/ApKS $),-_,R)Y%!T "%'>'#3 l̸ЫAӄЉ ƾƲq!ƻkŌƞntYR9 Cae,$ް<%  d Lh Vw,:GPVyYXU"ROO NN1QT9X^ZYU}ND9J.#NeK1t @hإ7ث/ؑ0Mpj"ͽϔV1Y_K$l1*OEb=-H` # D* 1="*2U8;9<:86 46335T85;=?@M@><:754w445#653o0>*H!! GhVm|#ڞ?6.LĶúļ!- ISý/,ҸpKHHreEqu$ +$~(*D,,,+f+`+x++,J,H,++)+**Q+(,@-J...N-*x&{ M^ !={yR+dkTnB]SoD|t5[WزzͿoj(e` @%'e''&&'E)**(% m zV .j /tq] E[o5m Q#$$  2";or<=} r 1  2N6R6<U TS<:75P43n467m99l84U.$d?AZ'&ۼ˓wbeuh<(R4‚ӶY՜Ӽb&ٲ  i2 N#? @% @ ??><9a7u54 556652Q-& q9 ' > @ >< 4B`tnB\Dz]u19<ƾu5ŭ51iq$m/5z7.62/.,1(7@KV4`sfhhfdb>cein:qroFkd1]YVQ{OPKRZUW.XUNaE4:-!,$ `j #?^2ܣj!|Uќ{НzڜneĜ2^q᫄ t_ׯfͻՊf| p|&1>HOST SO)LI=IJM RfVY[[[YXVVWYYmYV7QG:!,0b \2Gt _2 q9u Q~̧#nF;bţ{E>򵗴ٺP q  8[#)d-/y0/ .,+,,,-..H-*'z$?!iWs!""C!E+ 8^8z7%`TY#HmMwXQsZ7vFmU{A (KJdo Q0$  #&'&$"] < n!#y$$#a E ^k}:uF=0b9dRs2^&;PT^AsJk5H,ZU L> va Q y 6}X OLF$xb e . x 6C``=[dN [kXhF4 , .  @9 :D2|m wf|2uc3Q 96VDYi!t b >  ] m^VlN\iE[X=߸ܔT!j[(߽ AJbT agFuv.z #n\B 9Ezx)vw G7-\C# <,X{ S qU"Pj X W j ? AsRTE\ ' ! G f n R q3h8@ #%%#G bEyqb8WCD6e3 O e>U.m ,]FUPAL+ =|_mg_JUSRmM- <ɒ>mpZJ#" , R^QW)hc  E) > /  ZT o 27eN?O[~}b2 %>2N^pzvY b _!De$ WUFY WN I & + R  5 6C\ p D{e@7 M 0 (5Gt6(l-LBcUr"EE}Q9II= cY P]*% WX F%(*++*(''(()+-.Y//,N):$N6: !AM')6s[j<}M1m~Z%fhYknW2~P$NX/tW9nCF,) L#U),_.=.,E+B*m*l+M,\,+("%" /! W |ccߜ^$oё It_k"XJ|   Q B }f:jv R B v E  *E{{T+5Gks>hf&O=.Ucc E9Qh3(MF4|%_ 'rP [dR;@x49\b?>80 $0m V /G=ސߓsb?ڙlї9vEIJE @'Q1K dbN&*,,+ +j+,A.z//.*#bx6 r x sn|>t4 >]?~Z9 q< c"p4 ipq5-xW `iQ "]hR5b(}V>!JkucO[#7pVn|m X A]U e 6z G G_q ef'G'p  J  w g @I]0 O T ?  t SR  )eAB~*H` E <k/g5o1/qg3Efk2 }gy\nFh6@1nygRX L@ `TL(o&RI+VOo1 ;-Gp>LU 4 cT E + 4 y  | 5 \ ( \:0w+(~"Gw @ah@cI]ekYHRi  ?Cru;  u s A#;'#(&#  R ]t {Ѡ҆ԡ &׾ՂvF}[o8 G=U /Co^Q6?|u%,};97w^MVsZ| 5 }<i ^   &t5U)qf |s&n.9sxTnR*GfVgM q:wY!!##'#X"B! LA9 w M y 3 o O MdZ[i1'b sRKz#uJ.xf ]uCVl<rH]yys6}fE]W1ZiC '  i ~ b 41EU)r9=BKA^[ߐ`o!m ]O3:J$@^_5nrT4@jS$T C/ r[K |<q8:64 \  \rF/((bhfU|y)oEzk354Fx6 W  w0$/-cacA>!. '&"S%psDuVtcFn u d~4{cq9r*;/q29 v p t p R / t: QIh]hvnHKkpSJH_u_ M-FrcHjiG.4Yu0m|!$Y!\G$pAtJy3ZsZGiLl o[X',Fg sg  (  :)^69$Oo)rm$cBS~s J s QJ6 C @^% s ' ( YxgU\Yxt# >\ h )'Br"[L h@)CCi@'v Bt2ppo %yr9G{-A 4  p ~ ,  Ev83(S"~mf`\qrN+WvnI'yTmxJ>6PJ#  $1LW]]]`oEpu?bJ.,V{taM??UzVIc;d"dk?}IYbi_6^x~lYFTr.$psi> l p U {8p,H! L'H}uBDuY")&P]F +4FKJ;<6[ 8P27*Qgvrl[PHGK>=,#W!1f*9a2AGho\qL ?p~P-uanaDcS ?)cpmfp`<*d$(1\Yy+ DZnrh\E9*'%.3<86+" "/5%T!'P '%8M! ,.OSAn! pi2~5Ft XQ*43S0 "C[Vd g+{ r,"8 xF)dU. KQ/`60A`tl[^gm{}~xstv}Z;@nLT nZ- MF6w. 3fqE7hHKxo.cJ"rf}S(.lsc/ .^!'4%$<YnnZ v"4-[jZH107\|Q1 -#aH Il:hU.$[qC4-tHdV1' Y vDE8;!M[b+'Iqh^NQnIz1 7DA& 7-k ?Wa-;|jqb-#'eC7'BM?%g@-'/=MTPG.!$?l`H&{ 4]igK `+  $&,+5=WuEnK^XJ%AL+~  CnN L*u@dk;|E] "T{ChpZ* yuR$L }4b1^bL?8;HXgrxxp_RFBBL]{ lMBcdS#v(m\e{NBIo*Uixo].|q@Bd^zd|;5  f 6 n  bC(7^ -_'} @`i!%h) -T0#3j5+789\::(;^;o;9;:9795/1+@% z8`'u= wbP#4  }"#E$$;#!xrbS  e . r 2 " C a 8 5 ' BAc,U,?7\F D4Dg G zq!$'&+. 258v;=2?U@AfAxAcA@J@:?=<;<96M41u-f)$% a oh Q]%l:JyJ = w}P0 k + gz5jr&?[A*>GU=,u*7]~n$/ݴwڒz(צ׃vx~mIך)֖O}Ӎ҂p=jVʄ/j9&U޽b[ǹћی- ,#&(*D,.----O,+)-&!+8p 9^)g&լцȐ6ɩʿvϰLٚ RY w'p5 JsG f1q dsyP;~>A{6m-ߜJvXZZD|7]3 8 U[S $+(W+-/L14222 2F1Q08/.,2+V)'i$t!l~3Fq=&0JzY),8Nqy_3I BaGZ VkF M;O<60RFg8isjm&[qEA4eo@B$: [;h#yz.Xs`,@Eags1!|k1=*RQbj".lj`Js @Ov* Um$-6>&EILlNFOQON>NpMgL#KIsH*GFDDB]AK?>?DABD5E$FFGHIJKLkMNNOMPP;QQrPhO%NLzK`JqIHGG;F]EmD^C Bh@k>9<97164q3 2>0.+)&$"! -f  H TZZu"'zH+׳ӫL4[v  T'`/)5d9<?A BjBA@?=6<:S740S+%m gM ؿѰ*ڞWq\hK\JܣZ5TFm_ID @VUI:6CØX ,\Р6ƥWTORLϟۭG A!#$$$P%3%\$" `N؞ U݊ _@0x lH^5` B# &)-2z8=B9ETGHHPH G%EB?<9$7523Z1\/;-+U)P(B(*)*,.:000;/,)I%U G)"**3e;BhINxR~UW,Z)\]__``o`_][YVSPGMIErA;45-@%m6()PׂƼԻF'(YrϾ˪ъ}k CS F1Tddܨ˺ צ`;Trϟ$>%YUjÊɟUCO>O)T `X0 "\#2$$$l$J$+$$# #!K( !i\Cfscs p<|(!5Vp3AM <k}uI{ "^$d%%$#!+U CzN ZVTOe 1ۧ;S ӿ:ӆԀ\۳ߕ7sG:E7XOX S m-+Ef>Gk)9S'\$AE5A;bt+qD (7u)!j%r)/-036=9D;<{===m==<<=_==`=W<:61+]$m 4TI! a I(08?1DFKGFwECBA A@N?e=s:6'2~-($ }*ܦ Aňǝȳ|ݗEK0*~߃ފiNlm-"?WySW[k MSAYL[{ <?}$).1_5~8q;P>@@CDEEsDoB?=J:765%310025@:?XFLQUWWWUTDRPON^NNMM LwJHuFDC CCBUB@=95/*%~ ' j})4;/g e0*[_<ѿG< Ҽn&̓wߑNA !LYm Ov~O/.8qҤUlߢjx`IH~"h>?Gn" op%( #hU߯{-nȽvǺǮJlIӘ<ԋק۔NA{w $H.7r>CGxJLTNPQSEUVWBX\XXlWVUTSRPnN`JxD<3*$"fB thUjgM@Q F&},K2;7:=?iABDWFHIfJJJHGDAH>:(73/,'.# eڌhDTǟV&ǘydѓW [vBl MX\"Q'-28H<?T@@|@ @?{?????=r;+83.)" $޺Mމߟ)^'y8ޅLuP  % {~3Cc , 2qM1MbQr]?I/ԍϕ63ٺϴ.߯=֬誀ׯͱѻ&zK./lB5sHsv)5}m~4nܿډ٬ׇVӉEЙN~Ζt̨x*CޚHk HxJ?' hR\ۼVΜR>v­ŵhܵ 0O0R 'N|+R) ^~_0WxoiQެۮغzxdxDk|`0[P_  ? z eWZ("%q')+-Y/ 1234 54443344506x6:654531/-+'#0FP$ zEH0 o ":,5WGN q x USM{VpkA@Y. p]E^rLm. h OcOT +=`:I|MfQ6%9yi( 3 T$m!x#T%'(^*+,-L-O-'-,,1,+*)(0'}%#^! RH80GbN9 I + ! $ : N \ Q e_l54: x  .V !!!!u!  bK "\3s # u   $ } % Sg>F< VGOJ?  u Q5/PPKQ\wqK LLL%o.O#l /wrsm=?U!{b JhM d UV=iw[Hz(TZG(tЫмfӍ?ۊ!K#(**<)'|'m(*-0233 2./+&& ; '4)Վl'O[eI:wzZ磮|Bjx e0v[X3ݿaA-Bެ"|wTdۧ +Dc"pbAN{jӼx;ĀAS1U\@lhդ&25}VU-5 x+N cO3v# C ds(#,@} zKIR=N~ h " . O fxf98Ey  .3S$~"! : /  M c>_yh"k^qۚ٭ܡ1S.n 9.fD"'-i4:h@?߶ ( ,a14*  >K '(0~8@GMpQS_TiTSaS#SSyTU~W8YZB\8]]]\[Z%XUSO+KXE>T5'+eL[T)zf4P"0%%#i bzHJy>ɥ NDN³:YswRhk $7,f06222#2 18/,($0 A .΀xdBԛ,\3  $'*-]0q2^32.1z.+(&$"|`4 e,S&QÇ󍑐\gGמyɯS?鵫ȷL Ѕ%G8ìM!Οbqoql I#(;,/Y36:=;73P0-+*K**:++,a- ../e0v123~45"543N20.*-s+)U'b$ ,:_ qwPVnkB "`'Õny.#ǭX?ֽ͟E9xL UvNo8 ]*PAy:vΝ)9"!鋒Ei*[<.~5n^aܐ"DϹɟ}ɳحŰϷ z1V}աk |CT V=!:&*@/37a<%AEJNQSzUVXGYZg\^_`ab3ccTd%e%fFg~hijkl`lllllmmnnnnnnnn oHooooooo0onmelj ifdb`^ ] [X2VjSPMJ-GC?c;628.)*&9#Z wwM3Y Zi  } C"jtj>Cݱܜ y6u1# OpP hKZ}s3Sb>EE Jdz9 ({ZFU äÖlȥׯ^8:@:Rx* j%|8 gs.֐A";UF裙R #i2=e-ۇrԤs@βJн1VNɹX ֣aqF\  u4\m~b~BfsyKd Y6A_̗]֦۳V I(o5 r[ _Z~iY  Tyh,2[a  / 2 A eE !#\&N)g,/y258<@EhJNQTUV[XdZ\^`aCb9ba-a[`@_]H[NXTQMJvHFiDA>h;74 2/-L+(&$"!Z!! " >D4 ?"7$%&&&a&^&&&&&%J$t"j M7$  '%+? P-atqx`L{ %)+2,+*R)'%&$!"  =<I(߱֙; /{5:D#ȲhWŸAN1 ]J_#&(' &w# .@= 2b^>֕ˈuݭd\\QV&;f,ϣ b%)++**<*+^.14677-75J4b20-Z)$WZ  # $)'09AvHMQET[VXYZ[[i[ZdY7X$WVTZSPcL F=4+"TK: EsLT  uZ#P,4_=ELxSYM^ cfǯwh"&gÿ,݉"_  sP^RC mlŗ IN󐂐Rhʕ˗ɝ gRl] &)ڇ9ß/F#RǠBӗRyXV,\~p ݭ @N^f]z5p~4"I>8h\-ԭ[$)ʻυݹ7}uls 84p~lBq7N#z?a)  n3  I`7 V73AO: K o Z w  & ] t.H D F )69UhgL'0l v J f<0*@n ,7`- c P %  1y g 1- Zi9s 1"#%')+0-./01c0., *'%+$h"c6-u1߲Ua {$-3J646434f7;v@uDFuGSFCj@G<73/@,(%!Ouj8UAӐh1BrpIػ `!T(N-A0111|11'223k20-)%  l  Fw6 *g> G!B&G*p-/Y247i9;\>@`CFHK?NPR.TUUUUIUTSR)Q\OlMK JHuHmHHwI9JJRKgKKJHFDBc@3><: 86^421p1410m0*/,)i% 2Z  $ ,z~2,^S?z%{ E]TQ5"$&/((('h&,$l!)F  xc[տƚ·CڤsrTΪFDgźɌ"pOϹϤ8ωΖV̧YPt󷟲ZӔ2bm>1я\М+uBЮDX1Dž+Bг˿Õ* Ǻ#`| i!`&#*,.//g/.-%-,,,&--,+V+ +**)&  3Jj̘$ϯ/OR  5$)s.4246I7Q7(7777i8199r92852/h,)&#hf~Xg{aջع܁<f#&+0 466778:t=;@BDEE'E DBA@\?!>J<950+%"V Hs$f\z6$zw( .#&.*-801q22G10800123432f1/-k+(%`"X1kw ( 7 u R! )k0?7<>ACDDCiBA?>6>==Z<;O:8S6<3{/+r&!x[V m[*ϲ!i޾0µ͛ԇ&*3[[-6"*ĺ2䣧 nޙ(ԝ[2+^-μˆZ̥4oսYܺ.+mRD&'pvbxE:$gfFL0 (Xx"o%")-Q26:=>>=<:8~6?41.1+!'g"M ZzzW;(*L$N C Q 79a A!!n""+#"" SG0u9M8 aBRX Y DS  g35"$+'S)B+,k./022N3v3T32F21.E+% whf # K e !Gw hu'[XW]P^ ʑIi%Ȥ]    JGByPnԉҼˎ#pޠ|`妸0խTVo,<; hfMy=@det~6+hj;Fv?  b  g CUQ3l`vj 3 H BS~M,R!C!h)_bT L %) -b/12 4Q5%6>6f53<1.,-*(((L)%*++ ,++)'%#!3ZeyFp`YLŋRԴ)B11b. 9o ?gO'!O!Y EM/  [?SA~L^oz5TBGD[  I0i8bApD  :|H939(T#U_cd  a(1;FNUXbZvZYXXYoZ.\]e_`Zaabba`_^\xZWTQLGA:2#){ N h zn oeDU$cd)]rq[il R{&"+*O4KxBbٱ+0Ѻոܶ6иѹĺEmY0uհց؃|ݶ%C  b{Q!I'F-T3l9?EKP]UEY\m_abcvdddcca_]9[XIVSPLG~A9D1(  4U|vb NpC=9 ba8 0d:!l""("! !!! + m U<|:ө"5S'Ep6󏮌@yƊ?-ة ġz˙AϛАњmͯʩǩqdƷk9٘@*ϵy.e5ѡo(Ub}@q|UP&mQEFk@K̓ѸVq29!_$(n)0)R('(>+C/ 48'<>?P?=;'8(4/,(%"D " (~epA>e)"D9 7&#'+[.0112_3Y4I55 6544P32W221f10/+.,*#)' &$#"8"!}!"!   Y dvBbBsY`,([=UBAiЩdisS#[ LC ',/2530352/0)-)% # l=:< 7:gZ!µ񶁷u:h̽אjP_9'A-U012a2234^5]5|42/,D)?&# ,r gLgPȓ*Q{˽ sKSX J9*  t !B#$&^'F'&#!l{+Z~} $(`,/110.*h'$a#g#$P'*.`38>C~HLMiMJGB>;P;<@EKQkVYa[[j[SZYW WV*WWW:WVSGPKFeAw<8 40.+)('((e*,Y--},)'&#"" &_,285tԵA*[%mڙvQv \ P : I  j #< mqMc0|g  %*y06<CHM_PRqTHUyU UKT)SQO_MI@E?992,%s 3<& m"Q(i-{1468;=)ADGIPKNKJ[GPC=?70(#" G R ,{WpCczck7}_Bg11'oRX* Zڇوqj^WȕǒƆrr<úĐgԶ9کBܩn7  7 y>E#OG W9Q w2!s vt d!&f+X/A2T45_78:<<<;963l0F-*f&%"-6 *< 8K}KKmxSs G$&' Ja : Q . Zb߅ت^džNBÏīÎ潕Ӿcr; jXئh٬HŐAϼ+@ ]uC|GVL/ۏ؍ ҃MȪeƩ)ʄ$яn׹ْE/,T9Ib[ifI' <\ w v ppB f .>#3-F6=A]BA?=E<;;;< <;:8630,<) &#"" $9%%!%#Ihxn SD݋ջ ͧs{Y:HBBg (^(X|I)oed5 Y  )8 ОI~ӶcpʼnJ%Y!ˆJ gsΖšٱ9{ʥ*adgápB ZhVr l^$+2@9@> BDGHIJK-LLoM&NNNLGy?3%C |0 Ub $'+.1445L6m5J3J0,)&$"}! ."%+$4>HRu[adf;ij>k\jgb\TO\LMSP\~e mqWtttsrrYsssr qpn0kg,c]ULQBh7,#N >v6`{"&D*-8147R:;;965+/C(!XNE"'H,d0547;?DG#K1MM`MKyIFC@=:272L-&Q !NC5A xŊӻ&U =|rɨ5xx)?˚daji&.h׌Vg*l>[Rޚ"#ljƊ|1BOڶe׾*}ϒ$KZ8!v# d>=1.5!!""" Hak 9  - .q<pK"-%&'(),./2 567642|08/./0|110 /J,#) "!"3$%'((}('&M&<&&w'?((p(L';%z"bS, G 3 Ys! YlXgrbS8O(  jQ !lK)j"^uF|ܧڅf֦ԟv6԰ՊJِHihe!&Elf°[ȷDZ3zCL E $F  Gҿ@ǥpibij8<Ң`yYhZҹl>e~JQJmCpڅPfW;B+ eV`w  P`y*mKh # n<w X , JypfD1#&b)*+),,-/37:A;JQW#Z^[[[[x[2\]b_(abRc{cba^[VnPJ*FZCBEHtMQTMVV)VUuUfUUSQMIEBXANAoBC[E?FFFFDBb=B6-"` e GXKvF nO  R V(\07=B*FHVKN.Q4TVXXXW@UtRbOZL2IEA?<5.'!]Z -hZe>dY7u:sԳvc2  c ( : +P$ԏ<μCٻGZ Cv Ѧé&\zľ+ &O]c=rMQUf, AQ!|$ '()G*!*)('&$%w#!0 q}Jf: _^ ;' "#w'+.122K2110`0}00<0/,)~% 4O > f n :LFbm]x%v7I\R)Arj8:~y"  ^  #%6''z'&c%:$c#""I##6$$$$$t$$$ %g%%%H%e$" 5?AdP`.EXT'"SQ=&\#y!#%&Y(.*+c,,,,,z,G,",++ +)'%![e FE 4i D 49EU1  Mgr1y1&3ܡcvڦݴ*^Wd x z + F  j 2 [0zܡWDԷ4j3gⰑ챠/̹4ʂUSۖFM*? vyY A"#"! JW`]|d ? 'rq!IŨ͹0RǻOqSz_0.K*y5-D<}z ^u >;4Cb&W^ߵLeń^n nϭx2{3 `k%[ F ` h#$$+$#!   [H N)wT%-w\0j2+MB+Vr "0HZJL&f ! Z> ,4 ]jxPz̾_+ί*M}Aۺ/(KV~G c .<6Q Z9۬\gK]R7%¿QnCԼiP[j :Sm]1! $ ')N,Z./{0O0A/o-+(&$#i#O#1#"!U zq "$g&t' (q((i)6*+++v+W*(!'%%;&'9*,/c257;>{B-FI(L+NO[QoS*VYO].ad}hk+nIp!rsmuvx8k3Z.)&# g1& J . p>R=  E;}[ 5 djHAtIsW>l2uf_RŪ)M2_e"ZYϵو}5&e-^q/DS{Jr!\Xc-/1RqxK[1*MiNr)39y!4;|rr.IK)Jsz":"Lz G.٪բc >У7BnhFJ-c۝z ) PyݔBg,Y;;){YA"rF .@g1({wt Z-oX$h96((9>^c* "%H()*+,p.]0247;9 ;<=\>>>=V;,9642 2111%1.q*#^V Z^ t<&&@ a>":&A6!;`Ĩ–Ò_ب"G{Oy/ 0X9 knY=2~u3]! }{vt{~3K!Q%'((({(()+g.s14X8 [yjvĔ7⼇NšP[ҋףq,tP "$%9&&''((j'$ q &gK&4',|@ tPseB!O$'*7._147:k=~?@EA@6?<96|1n,'q!S"<G F?OQQ%| Q :a**lk e 7gAO;UmLɟb|M8ҙk\abQ&!Nu/#d)-k9 Z8FH r r:C #$%&%%%%&j'x()*+,.A/40000F/R-*u'#h79[KLLhۊJ`<,ؓךs`&>@><:098R9:JIFC?D?@BBCSDDyEEEC"B?/<{841.p,$*'$~!BS 7`[1N\-C1CX n q< kM S : _ ?~r,<߅6Z}ݸBP`:'Qxżߵײ%ԱͱٲgжE 8Ԁ m)p,Z;["%H(=*+~,,,,+*)(1& $!R z,#*ԗkIJȔ>޿ f q 2 =if"xH wR0uD08{> ?$*29kA6IMP*V}ZY]^^H]ZXUZUVY]bfikl'lj-hda\XTQNKHEBl@Y?3@ C9H"O W^dikvmnBoooon?mhjsfa,\IV[P$KZGcEDlEEGE C>c7-"m v^9XK%0  &+0g4:6B6415.*+&"e[;1iiܔ`ɿ Â)Eu&aձފ{e P#5ZO @6Md99ZP :k?ͮ1iIҬ筛Ʊct[ͅҮޯtrK^]b7iR>6D4fI> k j XY1Xq nhH h U [  hZ_ n{W%:eU!z_| ܼb!$o}#ᴟj8׳HDzP;xLU=ݹ乺ƼC6U-|@t#8\ky_dΎ=ĸ̷,&8 ֬ZšWT¡L׿L9:H`''yz!׵؇q% +u# ). 4b9>CFIJVKKL@LLLL>L+KIG-EB'@=;R8{52/,* )$(((#*,v.03c6)9<>AD.G`I5KLdN6PHRTVWXsYYYXhWVU"T6SR+PsMI"E?h:4/+&T#> z2 !#t%d&&Y&%%&=(*D-/=234C5&5438270-@+('%<%$$#"i! $e7 =m R GRA(R E#&p*:-..-+O*J))F)W)(w&/#p UNӇ=Ɣƥ c՟ݼ2Cgr/ 4UYfRDUgG#ׇk {D?cѰ޴DvoP@(΢ ڰ[ =H<"O/ 0B B M~hJ)er@UmDeFqaky|)*y=FT 81+&#>!|G.6 6 }C#@),C.-,+k)'o&$A"? Dg pak2۸bUO& qSAD"5 Q~%kA k Qܶڛ?q}Et[! Sh\^JdY=G#&)*K,-/0234M6789:e;;;;974p0*#DE ~u`+p aOސZ'RĵO2֕( *'DM 30@8$y L [z(C/LήBJqW<>z޳H[ǼͿӲًroFqhwS]Kd.~> ' . d/Uh!$X(),4049=5BFJN{RVX#[\L]}]^]]\\];] ]\V[RYVS QN@MLLMNN7MJE>71,(O&#! [CCXi # I : S  ] +  X}\߃*NۭٓҼ>0mŲV:'%^PĿeæÿĶ{͉z#'&t \Qh9L# ]  #:RJ Gf" E1!k$&b()4)(R('w&$"I *#wL FX2I ׅٛ1OLKPz_ #d9,mRxdA Ktf_ũv.+HOީ 񫖬д4^wص9 NBoH$ZIڠԮ"Ю3جШҲy}V 834 c Ty3M>1 z M!s&)+!-----[---2-P- -, *&" h Jz[m%)U5 i["+4d=FXPX_e5j*nAqOsbtttsrmqom,kh>fca _"\X"TNHuAY9 0i% 8H.-yV '06=?BF)JL*N:OOPPONnMYKHEB?T;_7 3.v(M" V ܜFQʜʚ`]W)h0q? &T-4:@DGAJKMcMMLTJHEEA8=71*$#$ ^,5n wtj%{ģY)Y .`K/A]t yM2Ao6ʹI`ϴ^òv=ٚVG: x)LfV2ިܴ47kb 0ث׎ a֏v٧zߕ-g{y Rp]0d6'Oz+&?4]CQF  [ d1&A1b$[@ޑf^FBLD@q6"(K@kjBjݷJE i]ٷuKvՂӑЈ1 Ձ۷޾@Y-&! q < Dr!$%%#e""&%):0_7B> DbHEKM4NOO*PPOVNL KaIGtFDb<:7530-)(D" NlAqǯ[ߡ)`z  n8n: HG[.\ `XٴV,%ϼױ7# l+}q 3"9=E , y!$^(+'/26:?CTHLPuS>UUT,SPNL}KK=KKKJIGEjC@'>%;74 0,2($!Ia z  4 j  c_;DsXܵy ֌'2͉ nӨԬՠւe&پ '2jR%`/Vހ߈2,8ڃ:!1ڹڀښzؕxp؛ ^f$)NVSE{NdK3|aUrx$7fml@Y~ 5Ewh/6 Lp`WjwTcx 3lb|N!"#2$o$$$V%@&k'()V*k**)/)f)?*+-/512 2G1/c-*a'# Eg`r .  8 +{ mxVZ j  \  5  x ~wd\i_8ʴb֡$x J U< P H 3 bףԤOAH݀,YR #sb> #&?*.)26v9<~===<;H:97R6N4|1-("D  ԔϘS˲˅b|ݴOޔ$ ub"CT  MfK* !#.%%E&&&&&$0# ,/H  c < ^KHw|Ccǽ’ԞߔjT)CAL#ܱ=щԗmjX?~?>f=:l72-U'j  ACTާ{! LZOQ45 _QdM,\G !$m& )+.0i22210/ /a.,*&!t?. J e g a|߾W@Ol;VPPSZϽШј҃FԝՌYڜݾh0dNkN_ G~Wk&jko N b !  c 057D G "$&&'&%3$"y!  !Y! `|,-\<ICJmc 9 ~ kX("3  u4F*xi8߻/{UQnW9u6c">AǼ\ywPnBBżʻ_Xk|& Wӣtİ6OդR?QYe&γԿs;ֈڛHG rD uTx ^ : 6i)\:5~10.N,=,-]15:@DHK!N#PQS*VXR\`cgk8npKs:uvwx xwvur2plYi[e`:[TMFp?8[2,P'"QbqMnA7!#/%%$#""I$'O+}0 6F;?~BCCB0AT?=;`:864A2/,*[(|&$# !5G { {@\p lL" Z kݦ ϬǙGübQ{ʸ$>2DÉc 黱s Ǽ>X(wlupόԥv AgP c , rܪӭI?}ڳܯ}ұ^dΠbSa5IfymK J{b}w3NևGӅ\N`\;N/ h4;{Pu+2S 7v` # %&((=)'*+ ,F-k.h/ 090/"/ .,+2)&#^ c*W ?$/*x06=:!8^52Z0#.+($ +1gXIf+ X"5'7+).;0n12N2l22222)221/-+)k'b%3# *m &E^a33T(Ȝ(ۼw<;+]-Y֛`W{D(:" Z(U!vu.$(+B-E-,K*(V'&%#u d 4]#?݊!ױ5)~^؍)gJ垹㫞r GE9p(ƱĻfùÁe džVśu#p4_O٬X0ģ>ZfÓ۞Y[)i< , &q,1470:y<>L@A-B'BA@:?=k<;987]747I777A7V6420Y-*('&e&i&&&E'''m(")J*+5.1k48;?B F IKO8RQUX/ZX[p[Z@YWV9VkVWWW'WCUQRNJFC@A?y??@@@@X@?>1>==>>l@ZBD3GI7Lo7F.7J q ` \ d J[]ۼ&[~_h螳˙;֙4˜e_ڥxD&1DdW xhc7CNL&ߴyئ!o㧄J1zܥq^{6@ f)O| gWxY !9$&-5=7E%KIOQSJSRqQOM$LKJxHFDA>82+#A! "|Le,"jH X&!!^'-,58z2x+%$r6.9uSNt.? {$)^-/{0W0z/.<,)&^"3]K VW[W`ߡ ҆6ĊytbA&G1cfC%Z˪&p1gޭ۞Ko!,q@~: St x 0  &Z!^# # ( ? _ <j"$%/&&a'I(()(&P# (U  K*׍"ߐ}#):cnC:/3Ć hIA/XͺP.:Ts Q UAV+0P4pA<hrzGt^aվ"˳ʋFAG¨s(4AǤATը,ߕ0sC#v20P}qӗ׊.\5}+#-8AH=O\TX\_aVcodddxdcbaa^ZTLPD0Z?ݐܮܫ7;}C ],%-o6?HPW]`cdeyfgCggZfdb `\YCWUCSQ=P|NNLkIEAW< 6.%@G }ސ+ܢݘ[busU;( F *]blD<͉vyrW!z ŻmȀ_MT`je՝~F;9W>4:)t#ғخAN:BP^a|D?{a4!Vg25u1YǚʻɵS ǵ:gAι:^ˬ*ͥgͨti9Vd_K-i'ń2զzqVx+$j+147777 89g=aBoHNT&Y!\]^^t^^]M]\:\r[OZXU5RM^F=3( \F '  `D%e,169;<>zA3EINS+WY*[[\[C[cZYVRKB7+~vR%$S0$xw$Kv\{{RԿva"0Z3-֎)ڀm~B ,fځێܪj3X݂إVp̐ԃڮBMik  !Cp '/b7v>uDILM@NMLJ$I^GEDFB?<7#2@+r#Z,nw ?,ؤv }2a֘`ϛϼ'L4>6iiZ  N 2 $xCTLy>MQm:`׍ܶ`4n9i Tlk7m!h)H3T>IS2\;b+fhi#ji1iHhbgfyfffAgvg8gfc`];YUSRdSU"WBYZ[T[YZXdVBSOYI@B:1)X$!'#' /y7u?EIqIvG D@K>>c@DJPLV Z[A[YUQMJFdDkBAf@"@@?>m<+94/#*T$Y* S5O$ 9n%U3Ilb+P k0! %&I'&&&G%k$#"!{rnt ^+9 eҍPƶai_Žȋ,2^ʎҙ`4+g?siׅ0a1~~`ʕƕ ?Hץ̦q9tɶNYƍ.͚βζǙL) s֚MD.!2/ mO,k  V$'|*),, ,*(N&$!&14O La":^ڢFЁ[z̀֡b`ީOdJf E@5K| v3wBRܑLoؓC;$wq o +WQ fT0>q v "%&'%((=)|*,3/L2o548[:;4<;5;9a8643o1 0.-&-q,+{+0+*#*w(Q%Q | h"$$$#"i#$':)+,-n...I.>-+*h(&%$" gZ! 6kī:R g,u!$&(`*]++^+*a)( '5&%%X%%b$d#C";! !:#$&'S((()%*+-/12]2V1/., ,+f, -y-t-,>+7)&$"!"d#%(+/2x4{6?89;%=>?]@1@U?=;975G30,.P+z(%L#-!8<" 8d ƆGG/ˆ<\+]x8na*nc`řOYz~H, 8ɪ)1긒/V˺QZe­ţGY&UӛՂ4oߒ ٪#P˹IW*Ƿ,ڈyHy$ TJ"$')*+,-1--,,@+*-(o%!kH=m- čZot٩ܺ,_v\ `!f'-3s9>>LBEIAL7OQqSTpSmQK-b,h>6K q ( W9t*0 C I C Pbiߔ#ȪǣϜYz♊ԠЦ TJvH< 7h hx$sТ,փe '%*,,|-.e02a5I7188Q7e655=66653L1.+>){&"VB2~wALq%]{ n^/yv?һQgDoOlI"<7-g R:pbh  e"',[1:589:;::L98(8588:<@mCFIKLLJH4D?.;6D30//024%67L7!7666>7787(75h4322223568Z9H::9;';:9752.*q%  )~[Tuʿ_‡6aƒ9NwGs p-tڽ҇4lɧ&yuҿ%?, ^/ ]!!! 3 G+C`6ܫz6($rK&mnHd[K8e +>m  #7~07[:qt$(r,/.3|69R=@ DFLIJLrLmL*LK LL>NPS=WZ^`bcee*gdikm4nlhabsZiRKG?EEGoI3JIIFB>E940]+R&!(-Yk#^&(4+@-.10000k0023^5Z653/1+!&!eUc NK ؜P{n񧒧ȬW5``m/{=8. Ts' +h¾;򙄗O͘ʞHףݣѨ]dg+OS}.ߜ Fڹ).ywă3o4F;γtm4!ʢi51CWy:@BDDDzDtCAY?U<875}1-*X'H$I!. uceοÇ=l>ɒޓ8:%MHsv=޲ڪρͷ˸ʧʃ[-ӓuh |A" %4)|,.010/|-*'C$e fTD tfJ?'m$&H!P ou0$,=5\=D8J?NPRT!V^Y]bTgj mmlHk ifdb`Y^[VQK721N*V#] fh PY|037!`Pc 4$O.7u?EJORUxXZ\^_``B_] [XTQOLHB;1& N(5Lx} x <#%7(.+].M1344]3a1., *R'$ $/pu@i ϙGc0@ 'SPZUb bA: Ok ^ S{$K B6]!T$'+/387^:=?ACEmGH/IHGMFDA>;73K.I(! "{N6`i ~'b[Ձԋ&bؖڏ9Hmwl)^S|Fic7!mQ_#!KSm;S,oBXFKPLU}Z_dg kmoqqDrrrs\t?uu=vutWsqom3kg(bYN42246`9;<3<:7P520//=-c*& 9T/T:! c4 ) QMo |p b97L؛ ɍq%KܹQ^ɢϵqh6 [pEv!7%!)-0a3443*0,&1 olSVoEN-H՚UfG>~P  #$H%$#!vA PBpI9|(<Y^=> ]iO x @%U),u/<122O1/".+)'$" G}Z/\8[""3&*/137S:+=a?AAAA/?w<84/\*h$Smzв̧(|̥2E z EQ$*.q2Z5A7876j4z1.)%   TxoVќȑ_𦵣i;W TAɯQ  g !D) ) <# ΠʺH*ʩQ#jS4ܳrrS*u $3":(-258:,<=R?XACKFH=K=MNP QQORRRSRQPONLJxHEBM?;73/+'B#rC  / l , O"!%&'\((k'p&S%$" U)T ?W2[H06!Lɛ彯!Ⱦ.uHXavm .QR WӔHȣÈơ[$O/A#ĵڱ9Ϯiw{(͑jpo -x8ήֆ3jdp<=Xv?UyHӓI tΤ0'3'2yDͩoH ?X . F. #$,$!&X j*\tR>:JMv 8..K !G#%%'*1.1T45 6420-+*h**)((E'&A''()n(&x#nYB +s?Q8$75  FII$)* 0n59=???|><=:07p3 /)#* :dGCz֥ф 3Ȯʾir]Rh{ |@ !#%A'''&$"A 6m[s#yT zh%5ՀW܂ Hm= 3&'9:!'&F+y05K;@&EHJKIGaC>9<4,.'x!&Wa ,""!L#!q%c+2;!DMV,_ejmop|q#rrsr repmjgc^WNBE4%  7UnI iR4" k?D_ߡ~Cӧȱćm_C̙明i 6+ֻD5cVAƾw¥ּc͵5䱰n,GԒݤ!. hi")]/49o=5@JBCYEF(HIYK MNPwRSTTSQoOMq==> @A"D/FGGF>C+>70)2$ ` O~gx $ Zڄ fqnҏ ؾKu|oږۢn݀LߙIKk( xߢ:~Σ$ 'Dc̣0+ڥlۇڍٞwˢ+ʰ/\κ LԀ҅xYnНҜ ܇1 FRw>zv'@o (Pl_\vի""իc՝ԭтy̆vƍy( zb:۽۝piIB1R; 50G i 9p; G[4Zֈș[YBǁ;ӏ$DۦlօA٢ݗo ټ!M:Ӥ)7M  t :I~>=e_o t < /+5?THNRTgUTS`RPNLJI8GEC$BX@d>k<:87665p55E67:=BPGMSX^cmholoPr+t'uNutBsCqnkohdp`3[T6MD;2(S=Tx8VR+d = )`U !t!>! Tvn eTp}S/3">!۟٬1Ь`ɧǦŋİ}S)׹f<։!xָOR4T Kog(g TGkб+Ч8ezEIh 뿴**нda q!(&*-/o/-*'$ "o!"E#z$$m$" #,MP -lgۉ߳Zy߫A{ܬ߹'$c&.74m7899A::; ;o:[98736543z1/. *%n!1)5Ypa 4d7<ܻR:\ 5%!$&.(C('&s&O&i&r&7&%U%%&^) -R1h58:<<==>??7?= ;8X6544444}2k0.+(%!5 vj}@%T$ޗp(ށ "Lˬ¤ɡ5X®ɉ͛QfV)7h ߓR\+܅OaJP ٬qɵ$ь}Cٴ_u_P/׌ҿP~z~ا` h@3Ցر܁{. $c.9CnNW#_dhplcoqstt.trpnYknhWea]YT\OI\Dp>7?/$O s$nj#çCmÔnbۺ   %)*V+*.)&\$!`H *WQڱؾɻP̴ͱGส2Y]I\ !mR=Z , RbBB$Nۃ:  uk[ =I=gӼЫ&hX~V) ~4ch b+aH/UVݣ߮jo jR"F'},1k7g<@CEFKG4GFPFEEHDdCgB$Ak?6-#N]ek@[؁Y ؗۦ޼ ; $/:DLSW[^a'dehfGfHecaW^i[XSNH+B;3,%z_DI l,*ΕжԙOt r ! m XqUOډq|IҠ&du mзŭCϚsܪ= tK1?cX!#)&''&$!!,lv_U=q`] úŎ/jpjޘ][r?x TW R1{=:5/)# _nΞ1ӅԌ})N2^E< \ h<b/[<^D'1u u4 %P*.183456B7Z766u4o2/'-*&" 462}܏ڒ۵U(F-l` 4Su@./~e:N7TY'TDczD|)lik &n9gʷ@,-MŠȳc-]Fz=47 9 #(},.40]0/.,2+O)S'%6"  SCWA"ף כ)vA}ܽ٧ؤْM+`9LisEz/ E2e,܋e7u2#F9O&noX  &+0>344317/,$*'/&${#"b"" $6&a)m-W28H>DK.RW(\^__L^\[[\>_tbe/ikvmnop)rsu/vvv vwtqn#kIgPcl_[lXPU=ROK{HEAP>%;851O.(*5%w/Z DQ j `U;"Bz]p.T+? mSfXs+ @ M3:>ӓːqh񻽺wصZrN&믎\̹c-XBɢ Rhțcm=K4nv*ňĪԿ{ |fZQЬjif4ōȨ{֩` $(+].]0&2368;>@BD/FEC>@R<9r7'83;?OEJ6M+NLIEAM<72-(#Giim 9h\$b/nd//1g"\0! 0O0fV;6׎ү1ɧy-Ϯh _M V$n'p)*R+++++*)'%" b,} E^ DGJ2M8OPQQ!Q}OMJ G7D3A=/93,%hn_4 @rtm~٢ހ,y p X!1!e -~,i(   wjfmْ{x -xҸ?֠n XD  &+1A8J?FMSY]`bAdOe}edQca[^[|YWURMC~70(e\ENb!ݳ%*طsG  ."V#"{ D, y CFgBJ¼þĎhA*¼!GWW'3 \[ E"""-"!!j `c )(d (K(5  } E#>%&((')(G(9'%$!Q f'#MݖJ~-҇J:Jݭ5f+3LY{2K`?9`"@1?i ]d W  A W [?3U+4>P. b  X^>'ZiBc %ht=sm/KF T]r?]oN\ (ۤ`:K4,Qe'mO|9;h $4!j wCdY~ 7P` E ]0٬,H6[ͱʃNvo秬욗.ϧaI7šzmшֻـM%t̼ɦɭ̛~4eQ8ޔ޻0ǔռzr@|є4ڃA߆$>,_]Rv9 E.8"=) 06E<AEHlLPCUY^`bma(_[WTS?OKSHEB@=7;7-4/k+'C#S VE^kK[N"&-*7-K/U000041>23_4b4 30 -)#%!$"aca$).2o6`9;=>?>Ǻp϶ϯd'K 0թoHkb nP`mj( l m V|yoc DS Eӥ Q\RJeP{ p֒w01˶vM۬;kHWU]]!9&*.2x6!:y="@AB@w>;m7`42<24346H76c41 -;),&M$#[$%(k*, ...-,,,n.16:u?CFIKxNpQTXx\]`d\gikll-lkiShwgfgf8eb^Y!RJC+=72.*|&"ctc][; %+(C/ck$1+1{8=>B.F!HHHkGELC>@v<8S3Z.).%L!9O yԅƣŬ@ XB RB$r*/3677B52Q0<.,H+)'$u!L4 D ݕٵ88Ǘ +fKغwǁыټ1Rt8_׹}ӕ`Эȟg7mυ_eN_jnފۑ3ܞBcBLh'K b\>v w i_HJp T({0 16:A 8 Z@Gp:2Pqh[  nd NQ&eJXZqJInuğc-N26j`M>ePE]pc)|l j q ?"0W j"`$&),059=AExGH=IIHHIKNRWM\`dgjmzpruxvAwXwv vtuTuuvwrxxx5xbwjvutsrqomrkheLb]4XP)H>5-% ~eE =O]ll9f}lrR J %V>  Vl`41ۉ?QwƖc"4WĥDϤU2m aڭi4zS\Ø־;:4go$r(=Cg1!h;\0Úl0.fXeX،,L  3"%),/0111)/,?)%!Oc > +VE4`X.hR 7S#%[&%.$"+!/ {28 2 %k"j z,*9ɬƉu Ɲ (]03~6^ *|E|3ylm q?qoY{M/\ 2F1 gK3.Hl% a 5 Mpv b W =nm#P!7u,>''zX{),a[:j;]n[kNT1s/>+ .n#uP } W8Y>څ4HŤʽE>ȴٲQ.)fU;1-Ӟh^_T 3p!2RcvAVWGt&  $ miU[ H:s~bۢܳ+riu eh#,|6?jGTMQTWKZ\J_&acbb]bta]`_][Y WSPL#HD?:|4-&%)$()($fQ*NdU l $ ^ !)#%!)7-16;@'EMI.MP{SUxWwXXWUFSOyKFA1=840i-S*'%&#! K :Y`7E<rqm,8 !$?&Z('*+L,u,#,+ +*+Q+q++)^'#Ev 5y}޸>*۱-֒rҳԼ֛^ڨ7 ۹ًקWہٱڍ$4^c9n0*ߞ ^B!F%GNܷغԡ`ɇ'F¾辮ѿ IǏ#̡Z!Mdbܥ7؞उݬͮ~\؃߇ ;]bt;g(>t/K-Y$@ VP#&G()B))((s(Y(+(''''()X+,`.e///r/..$-+5*'"%!:P ~  - sa 8R&+M/123O457:>B&GJ[MN,ONMLKJEJ3J|JJKKKzJH(FCAZA#BCEFEVBb<4;-&#p"$O).H485;<; : 8542/1/r.,M*'$"nd4 }t> 9x rgXWDPGK [FFRܒ۹8gX%r@CEG7I_I2HEB>h:x5/(~ A } 4!O&'&c!m D ( "!$$"v, g # $(*-O15;@EJNNQRSS4SRRsRhR!RFQ\O1LGB=94T0+'!w }rUzSՈyI#Yκ& FU9.zAg,M3+irqĈ[#ͳIs:k r#('A)c*++,-/,1?2210.u,*'$!1 V} ڦ غ:JCtrfT 0P6 hg9 L"#%@&s'(Y))('=$ Y) rMuj J3 %*,.u0]2u4r678 7@520/-+#)$t #OYQ\ݗ _7$2)-14u78Q9g8631Y.+v)'*$ `^ NFwa6 F&4@̧Rܧt Cy!S$&)* ,,,,*()&q$~!1U  _k ܂#ܴD1#tJuh #x+169dO@TBDFHIJJIGD@Y<73.*_&m!Ho Jܔ?Aô~ CY̓֠ :1C=Q:hY&hnfԺíJ0_@x"ߔDư:ɸa\ɦʑʠf"ğŐh=o;ך٤{K4ltfUr_M d% X%)&-h/0/110/.@- +E( %!*$ o$)_-L|; 96e41C/1,(#RYtM܍ܦܧׄ$c': g1] W"#$%'j()+-%..D.J-+\*))z(b(( )0)( (&w%/$+#J"c!! I( > [ T  q <#&),.02Z58;=@BDFXHIJ;KaKKJ^JKJeJqJIHDE?$8/'"\=$*.1:45166D7o8D:2Oޞܫ4܅ڵIu7 + =!&+i0p4V7869v875%421/,G(!j+](#g"l8Nl[+a fGdz<: 97654i31.g)W!1bP׫̣&dP|J{ =lR  -QX NGsو?{!}6R>N= nn T!$###$o%'*{.1@45 6I53b1.+h),'}%a$##@#"!8 I (!  | j WW i t 1!&{+]/122M2100b00*/y-*g'=#~l   } b all݌ {/Z jXb  N0gr߿.cԾѪʎ-䷼kݶRηƿA C7  )  xE&J - óM<nd!ă{3> av !"#a$%%%g$t"zA xN**_HDڸw\4لߡB8 H"+@/[.U)p"{( 6DP^X4ZVSP$ICnAB4FJN QBPeLEfFʠuQڧJx]%ѯN׬ة[Ӽ=ڍ:mb I( G$(P-.2!7;~@mDGIJJJHGFFGUIKgNPcRRQNZJD=)6.'j"[!%)Y.z258(;l=|?hABCCB@>;840|,'A#=5oc jL-oMQ'C d =[Ukcq3y jK `-]Q PF\ !"#$N&'F)+-049K?DJaNQSTUNVWW+YZ[f]_`btd3fgIh5hZgecVa^\ZYgWUSQOKGC?;74R2/-s+)y&$!0Q~ e Y8X,%MY؟j4 ؐ؄ttT!v݄wcpղ1зϗpCt#vDG&9bPImٮi\/D!Nٙst/t8şFԏE7=H/(J#~jC`Yո!`HYݡ:q![(32V8( KUn= 1cvoڞߋ4J}ݳԴ1lҹgc<Δ"לܸ^;g4 } %B)3+*2( #N@ e&/ 8=>_=:6I2J/9-+*'$  ={EnbIU  + gH V$(6,05:?DIL?PRTVWX-Z[]_abba_\YVSPMJHPEB?Z=:7@40-*@)((*O+m,3---A.M/013q7k;?FCrFHIIHF4DZAv>;c9H7p53b2 1/ .+)E% m A ] GF4LťLJ[}ʛ͏̋ʃOmIγTf&z5i&=Ԧ~E!t"{L01ˎ(p4ǃǭnZҢדw%'",U2)ۉӓIAěħ ˊΡ99Dّdܦ7~SݐAH0އ ndtPsE&PW ,,/%-j5;@EwHK OR:VY\_aldgi(lmSnmljah]fdb:_YRGN;&.!v _XPSK tWq K#(.4?:>ACDDmDC7B#@ =W81) 6D*9t|5+ׇY6&Sgc#%,37J::98J9;@GPYb7hlGnonmlifbg^eY6T)OI8C9,`Dr؇׸KfGКףێVT`$FB~"{!#(%t&7'#'.&$" qv y3Ȼ&^R%I)pDpu7e {k!E !#$#w!!xj| z:+&e?ڧTЌsϗLׁW)CZ|Zb@#N*.0,23h4:6`8P:;;:863+07,'":/1> d <+߾L /ĔŢ_c}L  K9M+ x S ?$Y(TzTJֈ,:ωϸf8m׀ٚ.8׊؈Lcf(:'0<#){-=01 3*4U5W6651 ,$7 " d$%#l mjM ezU5{#;')>+*(%"6o B>TԶNŲкIƧʋD$Хз</ξ뺏´|֓߄l58lmxS]SG/?fޮ }ߤ!=hM z!+4!=C{HiLBPTyZ`fkor4tttNt*sqomkkh!fb^X RAJ1B=:2,u%Z*pF)&^Lu ]'"$M&c'a()+z.14$7c8O874u2/K-*'$e {iy<ڋ֢*ڱݬTd~ڇԘѨ.Ɍb=aٺ1.F5Ni£kàt5oΝtΊЩٹ__NK a3#(,03:6C89 ;;< =W=s=q=A=<,<%;98%63s1.+(% U% W\OF^msf 6gi'#&),/258A;%=W>>>><:7]40,(d%"9SgSa:Aי׶Rٽl1Ni %,38=@CCyEGIKMOQ|Q2QKPOM ML LKK JHFDDCAY@>{=;97531/-+*D(&%#P" =w>*I*[=;JR9<B/NiD!$ 'v((K(T'j&%"&&'''e&;$V!` t7(feO6ˎmk=:Řǂɲ˴ȳǦƑlÆ׿%[0Ga6>K޺N?ks@ Vl]: uh p  @շ${c2U#q4?Ud;Z1n"ڸ ʘˍ̰BxQ@8ujVcw A I Du? u W , ! 3BW #'w+.15!86;>@ICEHKNQTW'Ya[O^Tb+gWlp|tvwvfusrrqqqqqpTponm}lnjgc_[XTOJ.E*?93.+'$!-8<@o"$8)e-00/,)$ Z/ G$jvetM4pLd')+]-.f0=2,4566Y52.*a&"g!)%  U B .{߶]դ6ِ* ۹9"kc"htEۓٻPٽ!V06&K$ d BL &,/2i21/-+)'%K#- ! cH$HDIcNR'UXZ]$`Mbd eVedc0bV`B^[X2UP K E>7 1=*<#( E.WUasZT' 0lM 9 P wj_  :2 CVԃӽ 'ٻ33]UӜB۽B{#',1Y5G9y<>??><96,3B/*%&  T8JQfD!srLՅΠOȏkK IY#Hp X ^ " U Bsyp2A\Q)N> TN8<eزѱ;ְlt뱨%˃=(gA/ 0}{TR!#$%/&N&)&%%%d$Q#!w;\\5[#b-lo "$&')A*O+#,,4,+))&# yV  a q;H\E#4|G B;#&)+,^-a-5-3-N-d-,1+'"9 ?nYb&WOkHs e!#$$#"mD` Ho\ׁ(}o1Ĺ|HpE^\EvG;ֽX,rƆc߮쯠B̿6F gĂjFy̍KҨ Dgc&J@|n+C )a"tB S )+2;EhNV]Ic+gikAm$nnn&nhmwlk`jhgdXa]WQJ'CB:0$ ZP5ICV#-6>CGnJqLMOOO$OMKHD@7<73-(u"[f (7[Xҧɮǹ)]ʇͿ.x[<f"Zz- _i^ݢoϹbTFFtĪEr~м.ܰS | 5 W?+5SR*R Q Ia9 ٕ؊M/}Vؘ".(؍ %ɇڴ2x zU !z#$%j%x$#!? ZO$% i $)PFѾ1}iǗʏn>x4 IyF $ ] !D"6"7!Uq 7j+2ˊܹ`K3N6a9v'GrFN܎G1 j cT"S%g&r%l" caj!,+LzM(2pyhAl V"6'F+m.0|2345x67895;U<+==a=<:8850+%OR HpPz NUA-n#t D#&mz "2%'*'.1 5#8:;;:8C631/6.,i+)<(&o%l$#|" !nluzA G S V -QzD #%&'()O*"+&,O-.`//.G-*'$!a!o:K ' 4  "&*T,-Q.$.I-+)F'g$.! _ *q'/{XªԹPda?Ϩ;:HNRS5-KUڋYÿ m$*"0^47:=?@jATAg@><:S741/,q*(I'&$"< u quT/]PܺHq7THa;,o Qa n^9C q l%9F0Ӑx €k+mX Ҋi%'A- wv!$(N-?287;?BRD;ESEDcCSAx>;!7@3/,*)s(U'%# 9&PB-T"z$0&&#&#.  ?Wd a;> D   0Y*xxC;LKeo 7!:,o :  " L P2 i0ٳ+%峺ǼvIƹʱI ֎IO4: sti (y8nLk5[_E^<Ӎѯyԑ3l > R-:+GQ$Z_bCd?eefffifPecb_]ZWTOJ%FA >F:5/' rm`y{ yF `$(+2/26;>AC>EE4FFFWFD@#:01& ~ S8I0'"B Hdt$>L+  0(A/47^73.'R As"F'PQP V9Fy'#l R "$%&'(&)W)('j%"|6!zN XQ0_[ԙPIô@[mߛx;~܌۞8Oטsf ?u'${\0U "l(N]=4S*/^J`l T6DOJ*oZb3ZVmfcڄnm B4N͋eܙI޺39ʷ̥ϒX/5͋ʘi³߽ܼ?/ZIj\-8LزpVżF#|/2Oe7v(}K + 1%* 0K5g:l?JDIMnRVZ^bdf?hhhgf|e+dcb`T_]YUPKF@;272W.)%v! }~ h%u!;'!-284>CHNRVeYZO[ZYXoWVuTBRcOKGxCH?S;7i4L1V.t+(%" ' *]ښݮ,aUe~B/fh$T/QNٟܿ'Ұ&I.*OόtfӖڛ%Dt\SLFAݦg cb:u\ D%+r16;>B\DEFFFE&D;B?<940,'#X7&V˳Գܴ۶齕C{r{ GeZ%k*8.01/,q'  eq6D :ڡKf .9J! &('"jT 9JF {Z &7*++*f)( (o(N)y*+,,+*($6 cbO: ,cͪ\fpTt9u^|]'.Zm G T]:p0Yvo0ғ4GN# i&.N3q648h9:<[?B9FILNOSONLIBGDB/@5=x94/)1$@i D W Q ~!%@+1B8(?BEI^L.L4IC=5/+*k+!/j4H:?DHgKpMN+P/QRSSTUUTRN!IB;Z5/+'n$U ` +M3CB%juܙ"9=;?קcȃa_@d i| Jr'̀-5ƥYUfq-^H7ƶM*v8VklЊۣ#:WYsND/g!>8  Z 5+Hݍ+O$n HVt :$"(/7?0HaPWS^c9fgjhgec`o]ZVTcQNPK_GB bnKo # % ek 78>+ƍ #MVȡ !eW%%>>'*"C݉o`J ɱne^Ŷ̹[ĸǩ0ͲϠ^7"o, <"l%'(('&%%%^&z'(u* ,-./f0k0/B/.X..0736:o>ACDDDBAY@S?>=S==<<<<;96'2,&6r) 7l jSU~K "9 4$'j*,.h.-+)'$" :+ = D`(#|.ڮ /ɈʟϰߛGn&D7$&o -h)  sy\Xu5?H(l ' xMuGZl-xT0xh3QW@o{R]J]*zPy>?vk4VB}  X q >/rl4WWR4 # + " < ? =x{ޡܯ$נi԰ӓ,ն֞L >E]icVL|/lj@o/Jf*3{h)3O&A $_& B S v9 "  *?K@@P?r>=1q{ ^ a*  wP YEww)Clq  ' 1m6~GKSӔ̂ǐL9H&֜]Af v.-$)$-/0 0-*f'#H ( #&>"\zM*߃*؅ḃ)9ʯ5IޒEfrOî  ɼԱBP]l>qܑϻ"hIܜ7 @g&Q?jh.q RJzjK ]S~P o ? k [;Y M.nX &+/)2h34457l:=@B;DD&D+CBAU@??c>y=l:9752.*%W!IR B=r}:P ٳٵ!GՋ]FҮ7 `p.D Ev!)18=@BBA?=;9751-J)$$6=m |ACˀ}ɿf -ͻ4)2TQ#-s5<CHzKMNhOzOLONMKH?E A\[ W!RtL:Fq?8Q0(\!"*i28~-\+(%# K.[qs R}grzըNU"ՏiڌGީv</~*Q:+s*4Sb"&ތޞާuݶZLغ 8Ȫʽ`<|ˆăƎ ֐S6}V\k#Y B(߿-ǵרP"Je$ْPߴDghƸ;vϗЙј҇RTM4d$Mm"B(PśEQ(v\ +T!#w%'*D-0k47:Y?_@fA]B.CCCC0Bd@>b;85a302.+)'%%C&') ,-..-+S)&J$D"  _ !!!!!!g"#<&')C,;/133321510041123[3k3M3-3733445567765q5(5,5[55Q542S0 -1)% ZE^\!"$~$$J%f&W(+.26`:=@/CEeF?GGGGzGGG6HHH3H2GE+C@-8g3EIDk+77 Y  # k i T &`  `ْ94Ռ#؀ݼ4Rn ;j OKQA ad8SǷ˜nmozY:rgԏ3 ʼn¸}ǫ77~ڣۼCޅ8%X׸1ߍaUٞOmԺjbbV{ǁřȹ̀ZdIPw]w!O$T$"Y N "#X$#'"R O K O6qrۗ4*DqO٘/$Bs $,4?@[AA@Z>L<<:87Q77@88863/@+%2 Z LnB p h q0b_b:Y8F<]A 6z0_[O*H)W>P?xeZ ixݿO"Q#ߦJvqS:MvLhIx_A/?}f?&`*_;dy88 "mnmWFF!a,[Z2W*F=.lB;[{Vtݫ݅s2kިݓۄ܄ޫ#L|"erlnS5R,V p r#*0Q7J=BFkJ;MqO/Q{RISS$SRPNLHIEAc=582-'" g +܍/Ϻ]}ݸѾ W;?'ow[\H(U&Z4INR}xJ׾~6وNvVrѣnz>R/2\ 5"$4(_+-/1`3C5 781:;<>?eA:BKBQAL?j<84F0+% It!GP ^#Y3#'+.011h0}.!,)&*$7!m9 $=XqDD eulVYf#)05:B?BEZHJPMrOQ RDRQPOMJ!HEA=951-H*'s$;"s p^ZX _{b8/ &\u so } [ 4so@{zJHބڸ/Ͱ ӓa"| QUQc9|H߿I0ޔ}# 1>b^6|W <0+%z :.E?"B}YH?>UnF.Y0/g4:> W 1|!%(Y+--.-f-,,+,+:+**))*+o-.'00=191!1/11E2G3456778 88M88:;=?ACD~EEEEPFFG+GFE&DB?G=:&8z52/,+*'K%,#'!  : t5 KHzLBn $&sdB nETneќ3̟?$':@<2Cx.#WR\zc^95"/ *S_4ӵ?roáQ% Ԉ\ e7=Әa~m±cͬ%[ӁԄ\ݺUJړE>'[\ˊ2s7L,]1{򰪰Iat̳ҷi}ޟ57c3 DXYa"&*-j0Q23k4442433\4 556'52d.("Glv:kve $'+d-. /0//149>D)KQ=VZ4^`bkdeg~h"jl+n0pqssssr`rq rhrrsrqpmn"ljhohLi kmnoonliHgOeddrf^hj kkAjigfeeLfzf:fXec}a^2\YXJV{TYRO4L&HC>$:51.-,,F,,-e.K.o-,*)))p*H++*?($ T:?wRk o `G#BZwJU 4fgװhAֳ|xρg8k8ĻƋmɕ@ȸ2ԸԌԐ Sβ̓,ʹDzĥ(p"0迳O.Ѷ iEFAР$L6M{O׿ՒRNҩ\>QK<6ɎpKũĥ"oL^ɄΙ'\V6G..zW#c7M6q4p)C }b]YA!#K&Z(#*+?-./11M2=210.'-=+_)'a&4%#D"'Qf Typ|3T\  Y Q.Q T Ewc5f8mN+AߥޛݺLܦ""_>HLR{ k40?/ \ ^8j$ j6^Y:$FZ_wpSYr ! yk "%u(I+-0123D44568$99b:0:x9S865n4322223e333333B445708999!988"889;=w>\????)?>> ?u?6@?ABrDzFHJULMNOPRS|UWY?[\l]]]]]\K\`[?ZXmWUT ROM1KH4FCAj?A= ;8a631k/J-8+/)'%>#!} NZTevUXE&ump - ! Vd*D$K<K iF)sBmM"v<_6qWcuBs-eCIӣE֯w(BяХ˭1½hla_r8`ֈljȋeNOLNsJ$| P0q Ta͐}+Vg5/ږɕ_Zד-i͠ ب𬗭(AoɮVl8U>i\LΥæXn#Y<# θ~\t-voygSόr֥tܛ@޳޺޹رA?ҫюѰ ҮԥD'Y@h:h%hgfeca^\.YVlRgNIxD>C934/,R*)((()3*+U,.i037UUUVXtYZ^[[[[[\^`Qbdf!hiiihjk lFmnoqqrsJssttZuvvkww!xxwwvt s!qn[li?gdNb_B]ZWUQ^NJbGDAf><97p5'30c. ,)'R%# < B? ; & + 0 2 (X[7_@jߕK>Hب -̜EZ^+ۋ/!M  J\ dh9߉#ҭ3dܭOW#L풜ϖ[-)b`PȺŅǼɖlͱ˙dž`cg2c]@na𒖐$-X蓕Ș40ɣmOt* #v%.E+·:?ID$Q=ӱӯEӺ0у;Y0μ@ CEHKOOSS|W~[_bud2fghi!klhnop qppomkihg[g#gfffe&dKcbNcd=gjnDruwyyyux wutAt+t8tx<963/0,( %!fC4Rd   x8j" = u } ; Z y֟}Ե׍Nvg%)L]U8 g߼֊m*v.lڷkõµ#C#N҅ՙ֠S)>U ޻r؎#ӱNμ ̿ȼ./DܵuWĥ^%qߟj6uI ~+UwԻVϭ{̕'gͫpSP'ׇHB٘g֥ԚҫҬ҅D-~ӾtUٝH9;~MiiR߂|ԬВ8/ζa©ꥩ Ҝr4K/&ȜIR|TVL@ʉ̒ @/:XP%-Ět'½6(!6+̵ǵ4 XĮ ѻwS'V"  ^j+:G(  d ~ T,(KQZ//i8>#"J&*s/848>j>?AC&FGGFDAK><6=?CIbNSVXYjZZu[\^`c\eYgi]jRkkl6mmsnnn"nl6ki'iitk nprssrroljhhijalLmm mMlgkjAj8jrjjkKkKk+kkjkklnp5s~uwyz#zyx@wuttsMssrr qomliZgdbW`]w[YVTT RPNLJGEHC@><;9S9!919o9999u9808U7d6k5^4>31,0.+(*&#P!%$)a) s  K mY5YH^pӽp͞0m58Sx򺝺U%/Iɶ/|ݳS_˯T}@Rd &Ѽ Mwv1ļV"hv~F~#írƖIlF*^xZ/?˸ˡX 0Ffհ!zK %VH5\Zgc  ^ ! c MwZ - t F%),,u*%KE x"> ]n pZ8{K3vQoI&цͨ/IۯJ߼:;A$u=BAD'/Syr޳Nuߟݠ!h~ƧvᬏAFMjk+ 4[õ6ƃǼBl͋ίSKآf;:r$]ZwtC4a  `4dS A " )1 7+929<8779*<>@A~AN@> =;I;B;;R<==>b>>>?9???>I><;852/,)&}#K,"''+-/K1C359"@BEI4KKlK\JI_JMQWu]TbeghhhfdCb^Z"UPMTLLBNPGQ|QPNLJHGOFDkBs?;3841-*+(%>#g!/ 0[}x !&,F38<??q?>%>9>?V@ABBCBA'@!>;9074 2a/,*)(''''%#F ,V  d Na wJG v S IE> Y0XV'p }1,Xa72w0NܾWu޸ޖOoܚ`֡ԻSKʓN΂ْٰإbl{Hn L w R Jo/)S݁ܚD:ԱYT\Yǥʗ΀+֜:fj.e>   =b Aܺdj5%*嬻 ,c6i+/3:e6|$\Iq=l UyFhO {i~`{yghH0-g(+,Tkg~674F` : DGhR%.l jqK z+7 *r x+i4?Pi [~( !6#$&i)1,/1n3}44)4F3f21u1T1 1@0.1,)q%!:;3k2hxk"$$&&&&`'(+5.2,6-:=@BaDD|D7CDA ?<; ;;=@kB;D&EE?DCA7A"AAB}C;DDODCBB@?=<)>?>>1>=m=<;9Q61,$'!LmqQ= 9~Xz]}(] Z e %0 V"#&$$Q#!I8sX < jW49 ږݼ*zL2R9Kr98o!ޝڬ؆T"`ƕԷյS"]fznZ%\E,ҿ'? B~<^7Z \DC& }upe| J" }V  f5 {pG !/R@K"bTT :3-6yEs!/msD,k  n Y 4  0ZYTcvMexߠNا:̺ݿYbıG쩪s1{kF?33K9հطH><21:=1"%*kT:Eܖڛ]ק-t`w ZY"*'!-*38=@ABBCCBB@>;f840:,Y' "RoU|g2&!#*&(M+-b/012 3=33}2e1/-+)'m&7%$" [ s&xC0:Q[ 6Q$.),F/1_2345265841.+*)++&. 2)69(CvZt_ =. n g 0OwR N dds@L|9l(6IUuUR݌X޳ުݚܻڧ؀igU$έkéνʻL(ʣOݘ֖J !`ː\&`Pf}o{;XSͭmc1oξ״h0 ` .|> ] Kjy^3'Ʉ+[6dǻ6R¹ɮؼB=-k g  R c :4iԃ Jp¡‘'Zխٴ݅>\/t5rO#8e%FlENܧ]Y5,=,M,O,O,2,+_+A*w(%!qM  4My3kW`!.yW6s,j+iu i *z OV5z9m5qdg$ q ( ,z [?~5هWd|'џD"}ٮm"]F-zc'5 + 6  #w-sJ,iyGҕzd<:.U )WF,!X"####l#! ' wQ6dX2}O 8%E!#V&~(N*+,O-5-&, *&v",?Hv\+ m#'*g.14^79<=>@@AuCDtE8FGG~HH!IHHmHHIIJLK%K-JtH+FtCg@<83S.(#{>v_ qSs_oi{\IbgqI`(u@" jeL^ ӕα)j&Is 7ʪӽ6}ޱAi9"q\A7.j'9=DHL;Ay- dZpPh}Y Q@n8S_6FEO < q ' &-G ] B h a |  {j zoc@ܑv"ԁ)ȧNź·B@3ո)F)ZjP _PްEcxx@Q)A wK -V]1;!~#%x'))*,\-.0t1234441432.2X120.A,f)c&#"!q#&+17o=B$G=K>OrSW\a[fjmqprrss\srUrq/qponlIjgVc_-\Y VRmNHA83/%C d;  o'.37:<=?8@ABCDCNB@><:x851-O)$  Yx]kZJߴ߶.7A9ݛכӪѯісDUNΧc̈́c͋jZϋ}4ϣx̦Nȗ‘;7&P>4Û®qíbk ɴT>˕`tСҜ2>׾׶Jׅy"{҃KˎC+9u忑v7ŖƏHȸȧP˽аHis+Q v 0N+R{$ԇպc)ҨͱB;SþƦʒ~Voދm X }4XmԧC׈8KٗEφ;L%ڒމ,2N lt !!\!!""5" N " Tf#&&()*,.#135,76407+$@9fW!&%+ .$/.[-+*)))*,".03Z7:F=?ACFHKL8LI:EE?930026N;GAkGMSY_&e*j/nprLscsrq[p_nlqifac`\Y/UPL$GB ="8d3.*/%F `N)ȢǾǚɑ Zڰl$e]'kJY >CjSBcbak3׹'GQ̡99YOبڤ܅!݀ny/Q! @ h/ z!T!t -t#Xq  Q7ߗ5Df}= .t= | 5pS' j my_y?\)x8ۻٗ-(E5ټ݃ߟuzaJߒ?C12ɭŗнfd񶪶a/'ٲjq F"CN Įծ:ɯ$Owz˲aP EE,UǏβp͍-T Sxee+B,S6Lo &n[6 ^ k9['!%),.20t0/,/..026:?5BC|CA>;964x200-)&E$""N$v&(*+n+*)p)*+.1u58; >?ABCvDD.EEiFG5J/MyPSNVX#YoYWYYX`XW^V{T'ROM,LKpLMOQPQCQ5Q:QQuRS=UVWlXXX%YY ZZv[$\\]^_Wacdf*hUi>n?@!B:CCCGCCKCDFJM)QTUcVU>T2ROMiKWIDGEB@J=b:j7N41-)%!Co jcV_SECqm Y~ O : d\H!4w P> K  e2(P^4OO,1e;  7&~Bެ֤7Δ 71ոúUtǂɥ$(jeiVEyԖԖ5Ѫ2Ө>{ȸ>%̲Zޮ0*gB#Ū0 KPM>.QfҴy\_@Ef٪cå[ 쓪Ó G$a֑ aHܑӒKݓ{Uc)Oߠ栁ݟ/{abvإ&q(3_r\̿xC4M}ɡ˙Y6tӮCע ڃݳb(g*KRq2b>l,G^e y F` 4{2I "#$%0&&')9*>+,,'--2... .h,)1&G"t^Z3+"$i&'(Y))/**4,.T0257 :;&=>@BXD GILOP/RRS SRR-R^QOMJFB>W;9888:;;j;:\9 86a6e6679W:;< >t?!ACJEGILMNOOOOoOON[NMVMLKJIH/HGGGSHHHHHG FEGDCC&DDDEEDDOD$D!DQDDEEEQFFF GGFF(FEDDMCBBA=A@6@x?>=<<);9;9Z9:L;<=>2?W?-?>g>==$=<;:I9630+&M"WUqt|I(x2 X^aj3bx _ 8 Y ? 8#a'r Ԟ'͒49ʼ̻ߺ13n^ǰױڲƳv@fd7.ɿ0?7yDVkߩRʨUå~@6C4FoILO RSTTTTS`SVSwSSTTIU9VTWXYGZZpZYLYX!XWWW~W\W+WVJVUTSRQPON9MKHUD0@><6978;@)GMTY\^_`QaPbcde8ghisjujiigCfdbAa_^"]>[XmUQ8NKHfFZDA+>H9H3,'"wK} U 5&-p27:=?OAwBhCDE~G!IiJJJ5I;GE:CA@[?=;*9?6]30.K,)%  E %g# #w!=#>$$.%%`&M'e(I)))(u'%#!  5< 1?X*m_o+&Xv MkC90#HK;D0U\dYneb O  I }-cA~TlS%M%QDոL3i((y0 Žn+#úĦƢ44ʇZ[很T?{UV>5̾ͺpȸn'(vXe>n je0. ֲhޗwY3=)՚fb"K+Nʻ31\ŭˣh:>*AL*Ҝto]շ߃HS[YMm޴ZiBU' c z5h (o/t6r@?BCDEFHQJMQOV[@_}bdefg'hbh hf eJb_[X[WVVV8VTQNIE(B{?=|<;:<9 74O0,'"vY5'7moQ!b$'*D-/E123s455555433<1.>,)&N#OM; {4qߋ} wڞ h3bvsZV#'A+Ӕ>ʞȹƷ°`N$ھڳ"1ܨm=?^ـMGRh,>t3Rh(P5EJhLb)5 !-  q(f =!H!!| eiMlk9+&7S|F1Or`4$<Q&k O^NA4HY]߲.<q߃Y (ٰ]3in"͗ˎɦA_tк)2ܴʱ`[DZҴOtyoXX|澎~’ģƑ6ʓ˽`;l:ՈՄD3{b(P; O:%.j*o!#&l*T.M2(699~52/p..0../0`235789:;%<5<;:9'79532J22 3333@33N34l5789z::a:959W87^52/+|'"MWK.m$\I!$t')i+,--.-j-,+*)()'M%"?F k1fK3X{K&T i  %of*y  q (VO)}iWVh9 =>;K#k o_o  )I(qSTA7ƀɚ[i}%0cw`5"1 ^0֎S+nrͻֺ˿5ƬIԸ~jYKX  l  t  N N Z@#oYϢhAèȧ§٧@ʰAaSGqn "/72Fz—Ž\hVî nG[hv* 6  h i A  B C GAKpgbtWGEY_[ -  #:: Q(1GG:m~ 8 *"4$&')+Y-.A0/1111010l0 00/////+/.-,+*)0)('O'&%$a#h"! k 5   _ !"D$+&f(*9-/1357p9Z;P=D?ABCDrEEEFFFFGG(HHAIII$IHbF D9A5>C;865H556678=99:w;y<=>?@ABnCXDzEFzH$JKLaM->qI/X5خ jկgyhfDqj9"ߥնCOƹrܴj-;lgd=.^z,!eD_nQq׳ _,ŧƎƽǘgGQջۓp "'7+/.0245666'64N3d1=/,,*N'=$,!#J,u B^ ܔqp٠JG6"(-1~5L9/= ADjGoIyJJDJ`I7HFEDBA?=;8R50m+$ E]`8 V4q!$Y'+1_91BKWU]d:i@lnnntnmlk'igda]fY2TN`HA~;-5B/))%U!og(U:}7  2mk? 1 iX!$'w)B**(x'%n$z# #a#+$;%Q&'>'&F%/# |!' u [r0se'V߼kڻ6$ٗw+Ԭ",fHH\#SOWVi܆:ʔaKURާ礢՛aXO}ν[P 8j'T'28Abjp 2P̷`{ j_  a4q(u% dP +"U%&''e(u)}+.26:=>K><_:J865431x.h*%! I0 {IY8 *@#U(,03x68:H==;9735v2/Y,)%"N 3x$(iTV[1`2K5QI&is")Lhyoެ@as-rWtגՙHҥѵAҤӄӲҠn:)YBϏ3ћZվ}LFS߹KM`o D![N\݂ ߝC-k/{SmRfE$;6vtZ4h_eF: ۆH(+=JLHk=5%ArS:J"#Hwp"ZOufJ\VB L -m #%&B()*:,}-./h0000/-+ *F(&$k#" TH;!!$&)Q,Z./0&11224p578:Y;U<=v====S=<$<;9735220-+ *$(%#dE  + O3w@9ngNv\9 GP~et cYI ?  ".R )Q 0> .4 TR b %_g&LQ ^I. p  ;  7 ; W e)K[/Z*W lM~!&+./00U1/23856%888n876f5a4M3E2 1/-~+(:&#A"!"f$&(,)')$= f_< N  l aPD!&$%'(y(7('$&!5 f u ] o  ob՟Ӊ=ii׻eM+ Qlٴ^wVozqӷչϽ%h_Ƕʵ!uz#ѫ!*ݜ u@Ɋn3vJGXP$Y[42rV ±ko|"ݹ~Sη|ϸ޺mA {+/KCß_.Ц[`p5@/0f27# , o ~ U  Pu6=d{E #f'*,./S0V12C5Z8;?lCF1J=MPPS2WZ^bEehwjlnjp%rstTu!utVro mifca `l_h__`aLaa `^\ZXUWVXVnVsVUTR#PM"JGFmEEFHIJpKKKKJI,IlHGFFxE E2EE}FmGLHHIHHGE`DBp@=:7X40-)% >  F q=LCYSMQLii';WnG !i9֋Ӽ' ׇyޕmhl5M;U4G'-7)w`OA$ʪŵD^j{~R[APbK%8W;PI %np=HuR  y   O v U C  8 x  G = ] G6"XCY } kAkuA6TXUh/f~gx%XS27m *[sH pO8ݖ;إ|8g5+¯~޴dAWwե/< 2ІuȕŬ쿯߻J5Ĵe?kc}N㒞ߔcd-Bʈ˩wњoўlЊЕG%ҼQ*ѝҺ/\s -^):.pJ; ' Q & aC}r!#p%M'Z)+-0235?78:<>@BNEGNJLODRTEWY[G^`bdf-hij1lmnQpqtrsZsfsEssrrrrrrr7rqpon_ljhygfe`eedddeZeeeeRedcGcbTbba a$`^][\B[eZY1YXWVUTSRQPpOJN MKIJHFFLC?!;X61-\+:**+-S/g00*0 /-i,z+****a*d)'%" *vh |5l?JePω HbeRSuӯ IkMH Uc@ln:? /_"WOlu$L~  8'X3Q&`<sy8 u k Z*  O O C j:]|J^^ 4SQqQ\x&a+AAb"~Iw$ eeyi ? d2h^.MV} WK?3+@C!EFBH I/IHsGEDwCBAc@%>:60x+&#j""#p%&''Q'&&&()",.148U;m>`AC;FHIJKM6NVOZP2QQRQPrNJF @913w-)&G&'4*5-/4141/|-*/(}&%&(+&/2>679{;<====t=6=^<CSz* sk(#'W6 %$()K M }I#1'k+/'47:<== >>?AODFHIIIIJKQLMNN NLaK4JwIIHOH GDEB@=z;:[99699::;<=n>V>X=U;8520[.F-,+*Q)Z'6%:#! Bc jeh A }Hjb5h(Ȓi ʥk~#űȾн}L& O䴭±eXާ͡v:S a̕#\DΫѮ۰ S~p]g:3(7w›OˆpXJÝƛɁ6ϧeO3 7͗CBp.ܗ7aU >n4 h hch $W K  9 b q#%()*+{,,e---..---W,~+p*(&#wR 0!? ;vSX \.JArken GU$>+fDH^83 ^5"yHKwmj#< qZu oHwl*yg#z:[ -d |lMz(5= mk: G!!"]#5$$$#P"N 1}k)]_eTzQ!|%g),./x00u12"4U6(9e<@C@GdJLNOKPP0RLTW[{` ei=< ;975452R0N.,,)h'$`" "[ KK߻M٧3 ǟ9»RͶRCg/㥹L` 7B|폌5ՋpهhvQϋlo̓-m!6{̣$Ӫΰ^M˶9k[ʶkȵǵε [&𸼹vݾItwŲǑ+Q>zm  & }r@!a$&1(w)d*++,},,,j,v+*'f%"VQCg# oW+*hk !&";##-$#j" E_%5 6 cq  idSW85~޽IrMfxLͱ˯cī.kɨ!گ۽(Fg,Ω:҅ӆQՁ^٤(زׇװK)93ܼ_uV6|79d D 5I  `#%!()2+,, -}-(./ 0 122344b5c679:;y=>@LB9DVV#WLWdWWWWCXXX%YMYHYYpX^WUSPM+KH%G|FF.HJLM OORONMMLLL@MMeNOOQuR'TV&XVZ\;_a!dZfkh M,Sc0&t\.s^7|?|uNۜoԣѾ@} ηG_@eaz?ے.܎ 2/Uѧx=ͻyhH:b&\Ǎ*:Υ*`ϳDx֝תU۫ݷU`P%y %'4 bc"!# & ()I+T,-J->-,>,q+*)((B'M&%#! ns \ nG:U+ :C/ExkD  M   FMo`lpt#d.ao> u!|kVaFyo[?ަڢ֭0qŝÑ(AžÔběęEE¨ھa2SMkЩ):@$ۮ/Ů3 rzԖ ߯- /B1r/8!wFkDنi ,&|~ d" &),/j246289:F;;;^;;:7:9}99`87R64F31/ .{,+)( (_'&&d'~( *0,].Z012l33447679;@B^CBA?=2<:98^87w64:2.:+/'[# OA1fb8p"Kx>la9t\K2٘˻Ǘ'sا63U!<[G̴ȶGڷJIJʲ#_g=կ~J7NΩ7ЪT X!&~ش<кԻܼo(3zPʜ̯v/OqռLk(|Db4sH+Ej PJsV.D=HJj&f|H 9+P  F+on !""^"!`! : Y5^$ l_7Vd6{J7 '*j~S:fߝT֦T#$u8q߶)uër~dz*6GoOƶqXUuʝϓ8ѣ8҃Ӿӝԉt=ט3gڏܭޝ2sM_?X a W53d :'.|4R:g?CPG,JvLNNOMQ}RwS?TTUTsTSRQQOCNL"KI3HFEDtC.B@>ADG+I{IHWGEDCCCDCgCBuAT@I?>b<96:1+%{ pO1]N !K!!" $T&o)=-s15D9<>???L@@AIBBBBA@u? ><:86420.,*U)'&%%%%P&&&&&-'']((M)('%E#Y wjY ~&MM8#0  3 " G nl fF#!oIAnyQ@6MqMe0Ϋ@ ÊmB゙$wԻ%qx{ϻ]!߽ǪDiZo\F:<5sЄ Лϑ˻ʂQ:DƀĨİŽž$.2Xߢj8" y0"#%&u')+%-.<000/~.,S+)'v%6# WeLZX "%x(+D-.Q//3.-,++,K./X1L2222234]689::9751.{+($C\m "l`*6SlV/1=׵uyЏζ#ɍB*Caa!Sθ(O򳂳b¨Yңxagop͜ܡӣ- ݱA½ X̚5ԟڛwa = ,h[|_b z2!&+/37P;>AD7GZIKLMyNO7O ONMqLKpIGFaDBA?>?_@@5A>A A@F@u?_>CGKO8SV!Z_]\` cegijkllmlllkjjigfeFdcab`^\ZYWfSNIlC=095r32K3468;:;N<9/7d41/,+))g(']&$"#!Ul:.re2=N H  >PI`{v֊ԋp/ˡxX.+C7,dݭIEȕU&ʎˊ;=Wѐ9=ĚfV^w@gڳ7 [l5ErģƯȱ(Շ؆ۢn?Z-كܼS  @[H/ $c)e-0357<9U:;;; <3 E J  Z D y  _ y * u1# ߜ؏ּoўϰʶȜǬƔjTյв[F&̦B?a"46CNBb*Dؿй#+XŭeD[Ĕ* >[Ǎ ֑VCǬɱlpdwޔs(ZDP#h(u3v5\'z; "2'+c048dY=Z[[[[YIXVU(TTT;V&XZ[\\'\[YXWVUTVSQ}POMnLKIG F=DBqA@1@? ?=j<:9>99;r>oAD*FOGGG:HIJLsO(RTVXXYiZh[\^xa*dfh7j2k~kEkjiHihggesdbi`]Z,WRNHB><50**&"Rg{j ) QVuv xdYb޵:ٛ9MDtU.:Zc׸=!7BǮd˰uon^66Hdkv(ĵrUϹ{23Wðę\y{A۾ӱۯME|,#s $ I f  =ya"c{ @n`$   C$\'1*,.012133U4d56Q89::Y:98E877776~4N2/5,X(# w ] ` F}f?eyZi] M =/YRJQ-a(:jc5"+KS,.JI)Ivjɸ4č͵h2!((!C!䧫Ҥl휆Η^&œ@a.͟,Iۛٛ>gdx:?=љӗӕ wT7'%ёsA#3Πʡ]I'˽0жX#|f[ +4 #R'*z-0Y2*45Y666B65]42R0 -6)$  0Jul"$B'),03Y7];}?CHLHQIV[`ejmpstvvww(xIx7xwHwlv^u-trwq pnsmSl;ki?hfJc`V\XTQ^OMjLxKJrIFH7GFFYGHJ5LnMNNMkMPMMNO8QRSTAUUVbW X^X_XWVMUhS&QNKHEC@>u=ꬾϬuޭNЮd0.jѳEXtuhP%򾒿#6@×XOƚ>P*X˓ˣ˗ˆ˅˓ˬ˹˷˖`'Z-βeյ״BkI%4ߛrvDgZ}@L$*'~ A=!#&'W(l(''$&8%l$#I#"! N+ !+&߷Io^zI4wD~)TbebX:ڣL@_Ȉ\GFīᦍ$/Ңɢe֦b# ׷̹žĞ1GWϖ$$G޵@3M1w)f , RO~y7 "  y[S^!; "#Z%=')*+W,{,:,+H+*++w,-/13579f;<8>|?@BzCDFgHWJgLmNXPQ0SSAT+TS8SRQQ5PIOQN1MKGJ@HEB?c]AxC'EFG.IJLMOQSVRXmZC\]K^A^p]\,Z5X]VTS SRzRYR4R RQQQQQR1RfR{R\RQ#QONKI;G:ECC CCuDjE7FFFFFDFFEEEOD>1??~>=<;:98C75m3+1.,G+))0(p'&%%%$"S!-_bMWwjd) EvP9gGy -tܡ ݦgSro|ߢVit/d& ߱\*'یHyӇ*/xuȊsm]Տ,ӴѕϤϞϔvϲ(Ψi̙˲iFȌJʕʃV8ȲƈĔ0p0 ӡP.Sʯ߮oL@z) ,ߵqTվyFG˘&˭,ʌǯgYg:CFO?<~謬]®ӫˬr&,ո%$[ňơ;MNǁ"ŸqM8-9OdA F ѹ޷+²6^knwĥΏҨwռjڏb@Lc]^5s>DnWUZP!5ypjb}(+5n FLi/T!"}"~"v""#D%Q')+--.-#-~,+S+*>*) )y( (''w(=)`*+?-.0O24579; >Y@B)EGeJmMPqTrX\`kd@gVijNk=kjiwhgedddef\hij|kkk{kJkEkkllmnEn!nmmjmmnpq]stMviw0xxxWxxwv+tq olj$jjkmpq7ssAtsttt!uquuuxu1utt@tsvsrqo3nJlojhgiecaE_\YV=SPOJE@v;66310135#89:9887}7789:::938C641/-^,3+1*,)'F&@$!tXy z` jr d xuoRg5t`DnCtѫцB4b|١ abQA!"O$%&8()5+-H/14f68o: ?@A-CDE]GHIJKKLLMNP~QRTUU|VWWXYZ[\]^N^w^^^_k_``sa@bccKddddmdcba` `Q_^^^]s\1[YWUSQPN'MKJOIGF9ECBK@U>%<9r752g0*.,)'%#?" Fg dIChxd\jjENkXNy e ;jIX b ?)J= &O$F 5 !"""! F([]E%AyT !6"#c%')S,j.0c1h2K344G555\5H5{567B8^9(:j::^9Y8O7c65(544x4_4L4+43T3o2;1/.\,*V)8(S'&&X%$!\ it #'+.135^5444333455K42e1/&.,*O(G%!H#[ /,z<%/ݵۅ;PfeL3YMs\WzޫjԕИ̎thѸo4<7E M_lL%ӳ&ܻkмڻXM[tQԛΙ{;aMה{@(_蟶ǣEIjg?a,!N P]ɯRIp̢S{ ++% תod/.DAde ZKXp볕_(ǶRpxܶ u `ɝ̐Ϛҷرہ;K9642!1/1.,+,+*9*)))"(&A%`#\!d% .dE)TZ"YE)h4 |czlrJU0 !#%')9,.02'4055X66M77=8B876`5[424@57/;B?)CpFH%J KKLxN3PQSSSSSSTU;WsXQYYZ6Z&Z ZYY0XVU7TR}QOMJFB@LAEBBCBA@S?4>D=po)oEoooQppqoqq9rrrrrbrrqqrrxst\t2tos0rpnljgda^AZVKSPNLXKI>HqFoDpBy@>)/v_6XkT _ V5<}BU Gp y , cT&!T)a> !  3"#Y#",".!B D&, ") ZNgH sMm P14b6^mNY]Yҍa,1=›ᴇq®M OֲرذB˰Hn._Ujn1ʴ6w̵ԵtϬ-r46Ϯk[)ڶ=]4>F?M@ACF6HIJ&KJIHG!GGGVH#III+NY(NXx'8CL ..iaW>np`aݥXUi0[%a͇ Z̞l&+Jˏ@03RU*y7JZ= )^>( )p-a; U &+e=!&#*4./269=6AD HKNQET*VWMXXBXWVUTReO!L1HC-?:7;4V2)1d0g/-U+'#(tC!)$&(-*+-/S257:<>,@AA{A@?x><;:987531t/--,5-)-&,)$&!Hu9"0$%<%%)%%G')*(,,,,*,+**)'<&$#y#x###W#6"m M[0^e~x$LK !i T  I w l&|w)GGU Ud,7G; 1 I +}<2w|g d4 r - 1HEҜ*֨ qڷ߾``'Q2g1V0H5'7z 5(=Mr"F%')+-D/0q235'667!8^8X87O7\6M5A4k32223?3V3Y323 33?334456\78:<>@mBDEFGHXIIoJKKLMN[OOfONAMKI$HF;ECBXA?Z><:97533{1/.M-+(*'(&$"!!$"["!sKX>LO m %0MY\ &uIzFڑ?҈$[Ҿɽ%4q([csJ\0uQWJpp0%}=j9wgݸ۾1ߊ  a:%+j1}6;;?CGKNmQkSTUVVUTSRGQO)N L3IE@h;O5.("l  j#&),/2>69FDB@>"#$%[%%&&'))****s****:*))'e% # lnb  WO b  <yD"DW23 yAk~y:,5;H b tvs> y)6Hze b}b EY_O7)[Pjs}&2Onp[rq h'`Kݖv/L<غ²E9ASݤEإߧ}}گƲ7.7ab8#򪳩{?ߛ3̖ǒ ~.3|Ό~R6fbܞ}KR(Х֦(ު٭z~̰ү<Ѵ/J$/ռH4PLX~te D T  !  c EpV!$N&%),0t4o798g7#52n100.,?'^ Zh hXyNF ~ Tg>E+GQ(TUa^ F 3q tRM0>>Ft@&S ] y 7 !# &(l+-/01I211/.c,*|)W()'&$P#! {2b[*!u#$$$$%A'),S0369S;r=?AC}EFTGGFDB@O? >b=<-??@_AYBCmCeC5CCBCCEeFGHHHbHGG>?(? ?>Z>=d=< D A k&ctE.~S%\5a9iwX\w4`K (Nb 9 4 t U 2KAS"V-+AL:S "$}&$()z+i-/O2S58;>AyCD.EEDCBB3Ag@?|><=;:P86420.x,)X&"4  b{  /3 !!!!!"l""#"\"^!6 %ZQ<6 4 l)'8s\a#I]wY(a/d +u\uA+ SX)v.Y|I  h  {%b00HHD 2V8  #hv6:߷c?«c9~.ݝp 5իcξãV͗϶ѫpׯҿЭ̿0UP[Z/βح KѝԜ6ͦ\hpjί ܻWlB:Ip:5t0OVg OiMu v 7%~Lw3!"#$%'I()*+,-./01Y22222C334432c1/r.H-s,+8+j*T)'&X%$A$$X%h&'($*^+,-./#1h23`5 78`:;>;z8c5t3>347$;t>BAqCjEG JWMQTXX\_bkegikkkkln:prt%v^vLu1sypnllTmtnqo pqpp`qkrsttspluhkdaN``bCe*hjlmml\k(i[fKcP`][ZXVTQ0NkJFB>:5/U(v tueSG^ 5,%rE q U\QlfIEL/M%+JD/;*|cAbg1;-W,>4@\~Y~˿Tכ+;7N('?UaWcs< k940-@,:,-035[89]:O::X:f;=@yDHkLORIUxWY[Y^ adpgj"np>stuDu4trp#omkiZgc_[WFTQObLHC=p5X-%'4}el?|3cIP @ ~l]e)TDK ܎qGY0%9?)R@p{ cj de<(wEl=GXrj{WJ3~}(0r[Q  r A F H V + 9 R X ,S  %   . | Gpt!i.9ydyN5T11=+miGs%Vv4C,!?   ijcz #j%')+-Y/ 1m2U3333F2}10/b.w,)&#A?K<j "##R#|" "}"$&g*.\135678:<:8654433m21110000,1k1w1410/.Y-',+G*))))%*X***:+,'-.u0B23U5~6r7d8f9:;=>>?:@@AZBBCB9AH? =:99: =@MCEGH6.$P~ ;@2U,6.ٞװ8ыСMxSŨÒX޼<*ߧ6 ͛.S٨ګ/3)׫#bJѤ(f=Yt"؜㜛ݙѩe, ~ZL r) a_u V#&)~,m.9/.-,T,,.15:=AlC E-FG H`IJLdNOQQ\QmPNLJHFDB@>2@BUDEGVHI^K!MOPRTTUVVVgVVUUUUFUTtSQOMJHGFxFtFrFNFEcED`D;>,!28 c #< & %   t >  s (  ( dM = ?  LFWYj; #$%=&&&&m&%($7" E(-"$'*t-N02,567777*889::=?BCkEFGH=JLN3PJRTUV?WQWVU/TROMJXHFKFFGIKMO3QRTW Z]a8fjVmors4uvwoxx5yyx2xwvvEutsrq_pnljg7d``?\XSOKHGB>-;F8j65^67:<>@FBqC~DE GHJLN]PQPPNLJH\GFDC)B[@ >K;841-*'B% # {%o9=Q'0`. "#9$#[#""}! ;kb0O h cGI_,Ob޹6k-ۜV _͋ˎMSŮ$K¸-gb׶s쵳F) HEqf+RVۨ:Fa2ޣwSthյYA˰?@4_zݥ祁ΨU,Ux^w}; MUAH/IЕ̠/^ AڼDMźOԹʹxٻPƱ5~Og[R"j?Ԭ*39e^)@WN"=T ~ 2b5E$MܝڠMَnz:ߵR]WYK"$#$aCnX"lgY-qZ;dA kG* ~ 0P!#%'Q)*+W,,--./0123p4578w:m?b@zABCDDcD~CrBA-ATAAwBBBOBA@]@K@@@HAlA^AFAQAAeB[CXD(EEEEEEFaFFFEFEEEfFGOI4KMNOWPPKQQReTVWY[]^```a``*`_^-^/][7Z6XUSQNKIFC?|Md2jGotoO,ʬXͲR|wڔ۽f@݈ܢۜڒ٤ ӜTy}þ緵ڥţȢZ Хr릅Zj[/³{U0'r2JarkkƏƶƼW^M@ϻĽþ;b˜Äyrrm`YB5%"+>TeotvՋ֜~&,Wܢ݅ JޫߛMLC Bru20@-' eC1ZnTW߇mZد#<_o bS2, 4] NM9DoGUs |s;!"%'*-80T23567f8:<+>U@ BECCB@v=x94D0+'m$!. T_ !#%E(*,.0A23572:n:7q4H2F0.=+' $6 5nS|& !"#H#E#*#&###"$"!Z`Y69K  [Nn.fYb S"s$&(*,-p../{/#001#2+21:100 112K3>32H1/.-,,^,,++****)%(%"r!$%(+I-- .- ../01221h0r.+)%)"BA`4y mN&۵ښs.݇e#܋]ۧ_F}Yިp>ٕՂ,Щuʹ)ʸH `Æ;߮:~إ>JY1jT̩թ&p6 ѵȶ ֹS)jȷy ͻ͠Cd˄bˆ*E&UkoõùþðÁ? Bc& dѵԵՍc ؽ!B!;ؓ >є* VКFѿX Ӂ4X6ה$JUNCGuVڡHGܻ5jVN9;e$7d6}yeW7R@|!h91   f. ^"{$&y)+-./F011247:>FA@DGILO!SU5XYIZfZLZZ[a]_beFhJjkl6no >"#,#s" 1bp"&*^. 12K3a3S3x334Q5}54x3O1.h,*>*+,/25$89:::G:R9752/z,)y(&((&*n+2,=,++**+,2. /K/.g.--^.//|000<0//r/.@.)-,*h*;*8*)w(%!(Z:< _ 5 s zRkd*!uN`]4b E%i(ue:!OF8 y$|vEO U  h6 Byx8Ue[1WemNJ>,/hmtl9(x}{<tGT=&f6@"OhX`rEnA u W1!#%&'&&9&7&&'M)*)+*)(&F$","!"R"{"n"0"!X! o  k! Y -;!"#%&b'%)|+. 25|9<?@AbBB:CCDEFFFECiA>2;7}3.),$1?H  /*yVNLu  dTb?zG?R`  zE6SJۏ@>խҐ"vi6yYc  O`O4ނF5h.Ҹμ]#УӊMש#߰j15}8Cl##MgVLfd-=NS#z/Mca:0 9  j I bQd_^xv!d"l"!!Y } !";$%%%I%$##""""T"!hb ~ e ~ !a"'##M$$.%%%&%$#   $ } 4 mm==<:G975:4`2V0 .+([&#!(E2A  ' /V^`X_cgT0lPj~f\2PH=_~?u:mj&nU8\.LQ=R!'dߌݻ ِة8-UnvW"g4ox8T>u* nݙզ!oΘ̀Zӽ(qAՋ՘i նԒԴ׾ؔAܲޤe=BX X9CoglqV::0 <r<("0F"g<]g# 1 ct( O r Yn 9#]@g!7y`U w  Q |  [  ' M-3!ga;kBs5gkvԝ;dFBZ"Ǭ#2˻˖@$ˊ̟]Rn*˗M[%ʦǎVćL÷APɷIQBu' wܿ pHOD*Hn[Q`, ];"!%)~,/3F7;>xBEHwKMOQS8UV+XYZ)\{]^_`aPbb!chcccdcddjeEf`ghcj4l(n,p2r'tuvmww)wtvutRtNtttt_tsUr4qhppUppIqdqq pnbm)l-kljihgZfdb`^=][ZYXWVaUSQ|OL?IEKB>;852/,)&9$!Fha5 FK9 mYb:*Bjx8GkiOJP y2”؝]ʘ&Z[-zI^ Emk&٧j}5ܘܢfݚHW2ٽvs էx6Ŷ*ͼÄUveܮ4(x 1}k $&F),+j,,, ,* *))*,~/37O;?fCeF>HH!HFECCDFILN7PPRPyOsN}MLLzKJIHeGEPC@8=v9T5 1,1(#Nb 9V%D* 9 dz+x }I!JpI $g):y32Ħ¥&/!ĸz6f̶#_ҹ:ղ ْ3ٲoբәtbe˅ɞǗHâG*Eˮ ̧0pΤm_T٦RPk ۥ˥rѤän \{Bʩ>NЫSЬQ58#󷾸^LXѾ' /IbzȖɑw%̷.ͻv΁_ԚjثMܺ$v}9Zzi yb~rS&  t_0)Y k!x"#$e%&& ''o(u)*,Q-./0<2357:t<>@BDDYEELDBA?!=l;8:9Q9s99:g::: ;V;;C>>>G?????H?>>>>?7? ?v>h=;<:Z8x642`1 0..t--,,,,+**-)/(('%$C#!  I$ '"#%<(* -/01222112210/-+ *_(&%#!1wN Hkiw-#UZ&gOg,W  7{v] \)^ 6 z |t8!($&(*, .]/w0n1I233"4u44C4z320-{*0'#Z +f:|r "%&z(w*-'037;=?AAAA4BBCEGJNQTWZ}[C\p\-\[ZZX=W UlR`O,LHFOC@><;98665556I777G63 0+&"r!$&{(])y))L(K'&$W#" /4-Gs"EI H z <o!|9*>sδwķ]pPέ(ʤQGΛ^lǚL5ԦBCTfɲʲ1ԯvϪ{A𡦟\8TǗٔ#`ψ4iiF[/wصɹTle'Ʈ3ZǔCȬ;,ɽ8hBc=70,0m|·З7Ԁ՘ֵِL!Fc4XGMNM&r-ug   tDb j/0 +9YwHXmVI Xd UMXV(>``c5VhLLrqf E6 #Kv dOQUQ o,'(Ey;DE i#&),./1357&::OԙٗhDhAuTY40`߮Iʳﴪ6TB0gÊ95Ĵčģ 'cʧ̇bЍRQzڢڜپmZ_٣=dFMdPVM:;?}l dNmk=^ sl0 %  :;u-`Xg9h7 J\i9q+'|b4C$ }{E2݌ٕ$ɫl|ܿ'l8]cLl"KǴo{ȝϼ`ցvsٶ;3AFYE%ST q ?kD.([F!#\%'*\-(0258Xտ^t_.ưǭȻʯˁ6n{Zg;iu ؏'ޑ]=ZMڊ֮GFҒӌwۯܕMެ߃ :l w+y< \E)w$oxK+3c,"F-V `TBa[8Zޔݏ2A|,3pG6[ͳuθrѓjه=ۼE5޲ZaYF*v[D1E(|.OKPtP#POO P*QRTW@Y*[\^`a4cdf*ggEhShhggggOhhiiiSigeic`^]A\[\[*[YdWTtQNTLJJII9JzJJ}J;JI@IHHGkGGHH"INIH'HGEDDCCCCCpC/CC.CCC?DUDD]C\B$A?H><&;98789:=@CgGJgN!R-VZ_~dhloaq@rHrqpho&nmNlk5kjih&hgKgg_fd5a\ZUNF@;865[420.,+,B-e/"2D58;$?:BD$GHQIXIHH2GBF.ECPBs@\>:<:8630~-])$1} ==>&K(Hٴ .ݛݩrԭэϖ4$•ĺɳp73۴𴕵J f1 `]LuֿKvzƼᶗ<[ҤK_NEN=Ηm!t0 8hLԸ xn oZÞþà^M#}y"̰k.]ۣˤImίMX6IȢݢGGfBwĢY͡8@bߡU [qfuh[įű8n] ;ڱt ðeű谡[w>?FQƓȮ˂ ;@ABcCCCC(ClBwA5@>6=;:8 755421Y/f-(+(I%s!   &Jl!d3w%!#%&(E*+^-/02F4567K8888 8F7L6R5474P44.5{5k54&4N322(34O567d889/:;C<={?PA CDFGGGGGGEHI*JhKLM.NNNNPNM2MLJHFMDA?=;97643322G210/.-,,~+*T*`),(&%#! !8 @|w_3 r kBj\`9\IPh; N;ؾڱmޮJ*l?܏O2֚)ԘѰrUH7ʢ  ۼ=iU֪fE$u@׫ܱƳR]۶Ķf>VϳݱjjSEUiĕ~Lꐩi*ڊӉ3 "{WxˉÊKq&o2Mێr@Hcݖ8d^H-%)BPaYVSn*aZGȹv \\ȭˀ-Ϣ^҉M׼G JI/  #g] vGyW!X#`%_'@)*,7.0;247:=@CEFHJ~MZP7SUWVYLZZZZ%ZYXWVUrTfSnRQPPwOONNNNsNMLKJtHFEDCaCCBUBALA@?^?>r>5>>==u=<0<=;":87M643s2h10//..,K+_)>'G%#d"!4! y $!9"#%')*+G,D,,+I+**|**m)s('o%#m!a[|9 n`rߗ>A=Z"k Itb& x  g\P@)  ^#&)T,.$1J3J578(:;4=>@BEFyHIJKaLLLKJ_IGFxFUGhILPT3Y]@`b'd@e ffgghhihj kxkkk[k+kkjkjj8joihgfzf_fof~fHfe,da^[rXUSR{RRStTWUVVW+W WVUTXSQP^ObNMLKJI"GDBc@_><3;98!7U5 3y0j-*&B#+" :{S 5kqܻأ=V $wǤOdBkpҲ ߩFܢ˜ߓUoXFDʈs_k 1.]Έ^:S"׉ ,vΊ4ًVx1>ؙNԠȵĸ&mǿUj7ʟʉʫKˍ˖rˬ>ɬɢɾ ~˅NΦo[_ҖԈC߆<U \9.K&m]nyvxyXWs (;c g Sy(toXA(K#dmV+4`M>R!#%' ).**o+++,,,$,%,,+4+*#(%*# {!h$'+B---<+ )F'k&&'#)*+,%--..w/&00J112j3c4I55 65 5+4U3210/ .D,*l)(h)*+`-R...(.-W-8-D-k---K../.1w2345n6 7789N:w::!97i654H32Q211>1 1.1a1111F10?0//r/o/W/0/..C.C..#/ 0?124c567@888Q887777S765W55c5v6%8I:<>>@yATBBpCCDEFdHdJLNPQQ)QONjNOPSDWZl]?_'`n`_`2``+``&ab,c:dddca]^YTQNNN PQ SST T TETTTT(TSgQONLLLMOPQRMS&SpR?QO8NL(KIGExC@=:1763.("$,Y%RZ'ߞۆF~ּҞXuɽƴn|ojR'v7$=,ۉ"1;^J܋K'53s˕ϕ~&䒣Oۑ[ېx%ۏu7cꋖ)_$["מS¡[g3bR0INl7;ǘQVƈşkñè˷Ι'[:Q܇އk-jsX$  (J9n*a99Vjbhe 3 *  c @  < o -  ` 2LoKc !"" #-#4#A#Q#r#p#=#"!r @*;f0un8>_ 6#%^'({)))M)(?(''Y&%$&$'#!l @0X:EQ  D)oQ p6\ w"$&(*<+++U+*))'(>'J&O%A$:#"!Bp0  n'  t8 ,"6##J$$$J%&"'<( )o))'(&\$"C"h"8#p$%o&&&%e%$$$8%%E&&p''()t))F**+, .e/01X222r2>2211$1o0r/5.,1+)'p&%# #m""!!!l!)! G!!"7###!#7"!Rt!h H? x[ 0 ?}8`# Qrku!#%'))+,-//0e1111190.W-/+(z%! _R 5Gv:4tQeHk_p_؂"m SƜaۿXӼ/Ƿ@BBCCcDEHJMQwTWZ[\\['ZXSWVjVVV WVVUUSTSRARMQ%PN M'K+IGE@CAc@]?}>=O<:8!63}1/2.,+K*o(*&#B!.&y88 ] Z yD'pg- +Cp%H? KZ-EQa_Y<.U] WL j+=\s:~T @ t8<t  "e~  7 J@Q ~@f5 u!J#%3(k*+,,,!- ./d123'4321Y10/ .*&!a;y5 #C[]~b0 dKw 4 y GIomٰҷΎʧYä߸[.ķ}7ݱ.>G_O1^>79ێl/f򐇑Z_{&;,j󪻭8aJ󼬽+AsݼeE{̽tC0ø‚;cÐ[1(tiѳvx2}=#V/K&/vu0n:e$mg % w EyN  r  -*  dx*"&+51b6];?oCFG[HaH@HEHHIfKMoN9O:ONpMQL{KKJ2JH FAf;BFJ9OS8VXZZx[\\]_`m` `^=][XVxTXROxL^HC>952t0N/.]/011222Q210//..U.-8-9,+)(('&2&$!# 0{1"pw E "VVCD6@CO[h9kJa moq!QoH'>wZpjB" N) U<j#C !"#$$V%4&''_(e('+';&\%$$|$$$+$|#"i!b v^qGL=a7 <-)&  '_OJE"{: 8mx00" Wֲg<ȑCƓN€lnn׶3~ŽRSͤn;; ΖcS}iU`P8"1j8- a}dҐܝߩNY:^^#$:tQ e j /Z 9 9Blc&mFtI | m  3kRv!E1 a L ua>,qX5403YA' &1 h$@).Y2b57T76555578:;;:730/%*%!-8VA 7\zL!]$&}(#*+-0c3G7;g?B{D@E$EDC#CoBfA? ^fb l f NLo(k=x!#>&(0)))<)((( )) *F***)q))((((F('M'&%$#"! -  Z q4 ^ <. mef{gHR 8 H& F .n!PZe [qPnA_I ܴی8٪P/ o*+ԲD+ӝӻfhn[ ެO& Nb!{ qB+FabGu  Hh7!$(',p/{2d58:<> @EAIBCCKDDDDDDDDEEDrDCBA@@+?><:$8e52+0.y,+)|( '%$}$c%z't*-713@5f5[4U2/,)&Q$Q" t !#"&(*,/.6//!0<00//E/..,W+)<&""P X{ t3D ./)k ) Sf r (g?PK#9j   Yp [9I; b*Ljx>ٸי֧ՖNӷxĆ̰͢ y3x \ KM$.߈>bP-̯JGͿP;rÅ-ƕɼ:iv]4CE[e%o+*@I2\c/Uc (PCy5}QU_YK0V4u}h7'kȂÿVJӵʵ ջ(Fʺ!eEӒ;`B=sՏ֧ՕPӂqEӸq!#qܼz R|A8@+; ]:. PU 2" 6 MTU8R \ t n[qFxB 6'|yn g#8w$ A -)g{C["$&(H*r+Z,--y./0&283333210/.=-W+)q&#a!QVAup!#M&C() ++,-.F02d469<)>?@@@@L@?,?V>H=>@QBDGJN QSVX)[u]_be7i[lnqrt-u)vvww:wusp miKg5fmfg`ik^lllkdjiggLfeetdccc!c1ccedefshjkmOnoVo0onnmkmjhfZda^[XUnS QNtLIHGkDzA>;/9K62.)>$!? J NAgx@XTrؔק'ՖϞX4QLJ 3%#ٳ;~ĪSmحUޱjʴݵ&& bܼMbvøýk?+LHŮa0c͖LmMbՁ֊ڵgޟ@J K|*&42~ !  .F@t>y-xL"#U%u'PlgVw}_ 8 M XmIZ  * E ~ D   y SGq\Fq}i/Nt 5   % [ASr B};cB|[Wo&t(bHmsg(w$ߴޝuMڝׇO=u+ɴȁS(":èf˜4)UŋƢNj>Ƀr˿̇άtաwܞq<IKik|(O4Dp  BIA9`}',(eKM/"q$&k(*]+t,[-../042V47:2=?AC#CvBDA@>F>=======>>?@BBCBAE@>=<~<<(=v=a=֪ج@EdO357UK}?#d@J@d7[5#2n~ z]c=FQExc CF-0 0I_Tl: *92rvp)" "0 _?~';.zg$"s%$Ru`:]tATt<-'LEOcΦ շڱ*X{1Ea 1 E'03 RlCA XiwjmMUrVP%>o" uj-upvyF2hyPRcHdX J !t#2%;')+I.F012y333E32[1/#.w,+=**c*(+,,-,V,_+<*)('o''&)*, /022j21+0z.,*(&$" V.}wUGgF  #fA _'-X   t @ K Z h2S k  .$z'*^.14p7h9:e;;<;:9876544P3210/. ,)&#. H i/,csAI(<8&li*GnHT|s ۭ1"8{H`V(r|GeT79ҶӃՍCܣXE؃7Aξ@̏5̱w׻ܛ;_X2C)!gX0.}Ni߫~0iܮݢyv6CDtGDn [u2" z6GoSZ\{!(4'H)3 @ } P Q 2 L ) T  F \ j z      + D O G 4   . | C=`Eb * W 8 b ! H4Sf K 4  ZYo&3 Q"/$%:'i(S))/*$*))4)(r('''/&%#"!?!  Z4q2e8iZ V $ <#bnFunX4^~YQ~IU&  nX/ /KW0`X^ 9shR#m`Zpa׬Y{~*iRMkl]"XEIw>*~"GK- - e A!e! =HGQsf6%n!0#$-&)'(=)*,-0A369< >?@A;CD6FbGGGFEDDDD7FGH6IHGFKE#DNCBBB`BBPA.@>[<9>7413e223256o89:<:2::9g98|75306.g+(%#` !l.7Y[ZT 4 $x^ږ*ӣѩi0Bʳwɕekll˩zʞǾEàP̸^ k~کЦ]s"8ݫ7|ЯcbѸиԸ฿_ȷ Rճ׳ R>7þ׹Ǭ˧ծڵ'{QQm/|O Ga!.b.:s]p4!!7"""""A"""!!!U! c Z[`UY 5WI;FoO:iJ# q 2  2 f q d}7&].%@NasHKtw8RPmVHRkU;)'KaEF q Sb^]!.|1M;h, bf6B E0ZP/K1&Gm3p*cD{wݍgԇҽb{_ԗ֥ :{$ZNoG@a(  *R UR",%k(,0S48=aAEsILOkR4TgUV|VVVVVcV VUT3TbSRQPONNMM:NNOPKQQQ`QQPPP;QQQeRRSsTU%WXZ\)^{_p```x`_^X] \ZYXWXWjWV'V.USFRgPjNYLeJHFEgDTC-B@?=< :775V2 /+($!n(8 .O:Z5Y0r+&6#m D'!y"i##u#"9!$Vbe C {qn$vc %UVїɲ={=&JƱKðU+Q<̱_S۵ ^XyUNGǯ$Kܵ;+ǤBΗnՋ پ[$يcݣCC TGCG :!8zrI9VO;kK]f \W3%" f -8e (A !"#$j&K(h*,.0 223!44s5N6#77*8G818-8W889:;<=>?AB DEAGxHoI#JJKLMQOPgRSTUVWXZZy[[["[uZYX XwWVAVUQUTTHTS$SLRYQgPON5NMLiKIGEBh@>j@=BCDmEIF`GHJPM PRUXhZ\3_adagjlSnvoopooooMppp}poLnljh:gfecb`d^[YWVUU~U-U]T SQN`LJGLFDCTB@^>;:840-)&$!BI` c -j}W" OgR%wk۟cҐιƵË7ÂŰCUƺnc˦*N@ՅQN1؇Y1ضnMа UL݊8^ޚAZjzA'31jgv ѰopW[f_pCigq o dej @'kXAr?j@ }"$s&()*',y-.0:152336444)5U5i5h5:54l4322K100124x6C89:};;n<==>]?(@@APC6EGJMnPRT VVWJXX)YGYYpX?WUSJQOLeJHEC@>s;8B631.0$/.a.P.7.---,^,c,,,@--..]/R0N12m232]1!0. -+ *{(&~$!3>EA/  7$mp5 t:j߆ݥW~ԔyM̏ʶȢQIqؼA'UB)6 &sה;ˌ^SzƆ74L񌕎L^z ML4'7oɖDD|>emԟEנʢz\俢Mǯʅ~Ѐx3ٌiݾޫM~E& om>Dt75 l)$U}}:PLE  !~0![#$%&'0)*",-U/0245w79H:;;p:%9\7z532222]3A4#56!78/:B@BmDEFG2IJLwMNO{PP;QQQQ RRQQ QPOPONMJ HDxAI>;E9o75i4 31v0b/a.t-d,)+)1(&%$$$$ %$Z$#"h""!!"""!!"Q""""""l""!!p!{!!!" "! .61YnV:)Y0G;Lf^ z W}C4F5XuwnXOSzGQ   $ 7   BzM VVy^*4ׄV1T6ٛ٘t Arwb9IhL!$Gr߇RCyaDh*vnz>w &h<@+2s !1""#$$B%%d&&'S'f'v'''''(d((!)W)a))((o'&&&v%K$^"1_J J53 0  x C  ; ?v{P?J@T@@?G?>d>=<;8%63/,*'7& %*$~#"["!v!=!6!}!"" $O%&'()p))),**+,-.#/n/z/`/J/?/O/i/a//w.`-+*1(3&Y$" !!{ {B#!D  b _ O L -(RUw7 - T q>>RID-0^,I H}s9Y2p^3Q ah]qߝc3ܜ۸x7 ֍աIuռHփ֙J@wanZ֠o "՛ڀ!hBo<2+=Fp.)l5oLNt]G4el*  h 4 C # 8 DIWvn9Wd _ +  +2{7< L}UdC7WZ7[1eg/@,zSQNcT4*Xd}N(*h!O&?,j-#ۅ-ܭV^#m,<;y*0 )Π͞MϐHilͮy۶WRE"O pq Z] !!!^! ;  KT8,Z ]0$!U"#$%&&&&&&'N()))G*h*d*M*H*F*?*)N)=(&e%$F#"" #"["O!g "{"A"V!k}!}#j%Z'T)t+-F02'578{998::;;<=>]??|??>=a=<;:9752/+'#q5n \\ L  ] 4rLZz]Iv$u: &k),Fn_Z{ݗf׌ g:3C.ƕJ޷~g?#ߵ :lؾL=ӕҩ0ѝn; шX֤$hշJ L$^kRT LzWP?2  (LT6 "U%')+-.i/ /-o,+(*$*+,.12m4N555)5X4>310)/-,>+)|('%%$$$$)$#!I  !$(+.012S10.,!+)J(Z'&_&%?% $"!nh  S fTwSEZ'8v> ڂ} doWM0:yŽċǼ!k͵zVU]h\󾮾ontͻ`m8ٻL StW[D`ldhj mnoppFqqrstuvTwwx^xxx#xwcuEsqHo5nnenn3onImjheb`S_^\A[YWVYUTqRPL}HC?h<^:99f::6:864V20m/.-,*/($_! _9; a !]4.}lzr*_ߣ޻xc#iL׶ٷWۄS$gٲ}ѩϬ3ʶFɞȻǬƳ%#ŖYã߿6/=J*P;n`E!$NZ1|*%bhv@EWkdYfE`Y-4Ah<R h, x AM 8 F Jaq Y*  gU !"#$;%o%2%$#" "Y! 2)*p{|x|fzYS "$&7(;)))(X'%#!h )  \ ] ;9{+7/eTdgw׉|;ϟɬƆÑӽ8p@\(йZ{Թ!/ʼ𼠼 )uٷV򳰱Ymi:6PZ$|Ƨ6[в˶}dN_+ӹ幮ǻb>ļņǩ,ԅײEZqJ1pf 7"&$*!-/F1d2293P3h3333,4U44456J8:<>?AC\DE#GH0KMPTV*YcZyZY/XVVWZ_lekptvx1xw wv!ww7xzxGxbwv8tSrpo*nmmmmmmjmm"nGoprktuvvvt qcm5i5eaV_]t\[[zZYNYXXXXXXZXWVBUSQOMKI-HFEQD CA*@><:8v63f0~,!({#]T:A, y +MT"sG liu;S۠}b?so9T#۸(Ѻpb`N\DMpáU)celo/ئ؍؉ؿ,Pz ,Nuc2!Lf>nU +1:h;0k  r a Xey>hnE\ rf24r}+\h$V2LHEo hqSYp.H*a 2Ub9۶?iLՠ0gװשeqCES0۾۾V4ڜٌ f׸ӟ ϪƻÐúECkͯ:>F4PZki(M!!'<ꦛb*Y]GJqǪJ㫁&ͭrzߵ;~t̿ $?nxBY!?c I R^!$x'*},.1W4796<>>?]ABCEE.FEDCA@@HB}D?GI5LMNkOPQ}R+T VWjYZ,\~]^i`a%c@deeFffLggih&iBjkmoJrtv?xyVy=yxxvVukspmcjgedlegri7ln qrttuv-vuut)t!sqpmYkAhd`\pYVTS!RxQPPN@MLKIF|DNBB@>>0<:75W4N33`3@4_5a6/777778f88h87+641/,*(&%"@n~ 2 a X\ T & $ 3 B i & {0*=DI, dp%qf-q(/p"T:L:;ۏIYxTڸق>ҪlKrԅԻ3!w2'DbxuJ]5_\{a/?a)Eq 8x}C `xV_X}%v TWzk5pZeiqi/4-6Zߌbu}aЄ)}yǞXǠ-nŜHÆNA;d׻ ѵ3SwѪnE6۟u̘zc@1mГMǔKDێrډYsKTuaוGۘ~j%uQ\.V֮6A&H޹Zܶϰ-wwvvĈ=ʾ^ӭِrBP" 9E%_h!&/ u"$&()*y+,,0--~--[,++O+i,t.@1i4u7:;&==>?A$D6GJNRVZ^bdKg9iklrnpqsltuvjwxxxx?x*wUurok!hda `^j^n^^_`|ahbPc/de2fg1ijl2nKo pp0qqrs,u^vmwWxyRyJyxwHvsp\mtie`b`^]\1\\[ZYDY4YY(ZZ{[[x\\]^g___._][XTSQJNKzIG/FDC!CdBA@0?I=:7k40d-'*K'$"9!O.z 0l[^. VbHt`AA#j,nP:pXP~+܂cu٢6eҺ(ѩBXи2Oyсҍn;ZPLwޛzMFZ@#$Im;~`E[i"d/(\u?&T@EmY#j{[ SE$G:!lf! U R Kf) 1} 7 n R N J   PU`BBMay<]pO޼ܣڎ؀wԖЇ|?T(ˇɉɘȩ00ʺƵS) ߰>-ӪSĥ 6/Lazw;ۋOˌ^,đk~XVEܘ曙ALBߨ}F]fl@NAkUʈͿϕJ%ՋװڬIDDP$H 3> }#$&*()*s+8,--./0{123f56d89:;3;:h:9c875433&4i5J79G<)?CBEnIMQ!VZl]_Zaaa0a`"`-``!bcegiiFjj(igofecbaa`_^2]\3\0\n\\]l^_cac!fikQn{pnr'tuvwxyByyx xxwv)vussqnpkgdbaZaabjbZbava2aYabbddteledqdd;demf0h,j,lm1ooo|o}nmRkig fc.a]XRK DY~ 4!!`! G  c Aq'q1;t@pF9 >=>_>>?@A CDGFGwIJtKKKKKK LL_MMgN}NBNML)LPKJaJJPKuLM5OGPP(Q9Q{Q#RVSTV X"YYYuZr[(]r_a0defedcccdf`g\hhh1hngxf~ezdzcbaaaa b,bbza`_^](]\[([ ZXeWVTTESRQ9QPONML K1IKGEDWDDEFGOH9HGF}EaDeCBA A{@??&?>=<:7<520.>-w+m)&+$#!&# ISLWp;w*w!ڪٶ׫VѻyKZǫi+î ̟><ՆEڣu=B F04/I&G-DFxt? JeGjr6ht` L'OX.[h2xh ,!!"u# $s$$$$Q$##P##""""""U"!p! g ,[HLns{?Cz^1PZ:b`A0w XkWn[ߣhګؐ|AHٖ'ߡS H;-<0*Y` ^޻]en;20̻͊_vԨԽwHQP ٛN XݙޥyR3||l;z35b4`n b\"Fb:'o!#&}(*g-/13)5678&:Z;<=l> ??F@@AsB]CbD=T<:87F5322T100k/...f/00:1i234C6q789:"<=g?OA)CDE!FEsDB@?=]<;:N:h98E64e1.+D) '>%#"U"!!!!X!%!  b <~ &`] T x  O q 9 { )+d<A5 H\ Y$=Ԗcẙ2˄ịϯЫЊ1yTηʖWT/*T,=7ҫ2]Ьǭڮ1V +^2˷:óvN yNu%Nͮg_{tgmӎh՟b؞1:Y'EA(l4d9P]'Ox [ /D k|7eH  c;  ^]2nec!"#n$$#!j x% l D 4J~[ ^ KxG<r  C^ BH4rwX $m ; :?(mwZ3<#dݸpoU pݛޏߋ`9 ^~:[ݵoڍJzڗ ٞF ՄkԦ:uN\߱HnT8yN>= Q<* xV':"^%1(*--0~2o4 6&77Q7-6<41M/?-,-,-/258;s=?BEIMQU,XZ\^9`abc|cba-`^]h]D]Y]\]9]\K\[%[ZYJXUaRMG@9 3-($!}*uWB+a_@ ]"$&T(b))l)((''(L*+-.{/u/.- ,*'Q%"tw/ V|Hm" `Y]7mteha# h s/UxV | fmYIlF?{13i$mb/Fjyqyp][[L;JpwNVޤVcݿV(`X \P BR e9}if$!R!@u [?dQ'r H~ !! *`am %"$0&T(f*>,- /0012356D89o;<\=="=4<:938765 5444444143210/{.-,c,,+++x++j*j)(u&$"4!J#x,: ?V+9t b q O w J p  5 >?/Mz  hP N?0D!j k < "}fd~-nALJlRmJOE7EyLaVk]xٞ:۪ݐThG,f|$l.c}B1 {cny<53[_;, bVUP-w3?h|TP::k{/Z0A :yA[QO\֕ tv0}~cJ8x & z2j10:G/ !R%A(*/-/24%7T9 ;"<<<;;~9D74/*4%P. N sMP2FZ-Q 3 1  ro !"! 'LX5 z7'ӰyŽu{ϺRV Y$ ìÕ)ʒ̘ MҶӂԆԋ ,mH>8jY۬î*:PƵ/vГ֦ު|K<{:}7=40-]+c)'&j%#!AYJdeT/~oU "$r% '(*,,,(*'Q#LFI +7gEFxQ ajM*t,l,YמԺ f ,?с(_̥;ehgdĉ2}YĜG2l:%o»Y߼hfռIN7൚K󱜰\[5ͬ?櫯-ծ ٯy,_е׷ܽo9TGœyV͟Eװ٪۰ݪߋO8/:'B- xQ? X"`$b&_(M*@,3.50=2?46799:::w:<973k/w*%!< _#(/C7=CFCGGfFEeFGmJMP{SUVW X]XXYZH\]^_^^w\jZWrURP;NKHME@;?60,(&S&u'|)+-..-M,*)((]))A*2*)(''&&Y''(((G(''l&%$#^" y][# M5tvSYTحS SSŞ7ŘIJÀ1zݸN~^mf]T1 >nydK>}݀}jjJܢڤYФ7͍fɰƊ=QYHcTFUFK 6Bmx!xpzTj c?llg 1 $)z-1}58.;`=?ADFHKLNP;Q4RR\S~SFSSRRRQSSSSSRQQJQ%QP^P{OKN MLKK'M!OQ"TtVYXYZe[3\U]^ arceThhj lvmnoBqrqtv0wwwww_v{ut]sq.pnekhcI_DZ UOJE"AZ=P:7P6 54210/-Z,Z+*s*h*l*U* *)(c(''q':'&%$S#!" =W 2Qm:umKn ˶ྻ˱uhgƩm$ti6%u}'no#JR ?< )͹羏#D'rZ~>ُy߀)5u+ڒ؏qhӫӇ[E׉UERbZ޲ߎTm>'q܍Hۥ. u{xFݣwއ SnGpU#@iECy''G- Uzc`i I9 %${(&-1|6:m>ADH*KTNWQSUVVCV7USRQVPNL3JFB~>?:l6r3i1X0 030y00w00///01`35}67\888888A87I7{6`54p20.c,*n'$!(| A][C7k9!ooρ`}TŸ#-'H0q;(%Q程KCH!Q3v"K-e[ީf@ܽ<©P w)Gsݸ [6p+&+0& et7 #'S,o16o;?BEGYIJ%LMM+N]NjNnNmN[N(NMMYMMNTPxRTV^X.Y}YYYuZ[(]^_[`L`_i_4_R____^\YWTSTVuZ^|beg7hgfeeddd&ejene8eddLczbaa`t```6aaa1b/baaaN`l_i^8][oZX WRUSQ*PNNMMM&NKN,NMLL;KJJIqIHHFfECA8@>!=;:(:9^93998,8O7&643S1/->,*H)'&M% $"! #z6 R&bR&+vo׹[S(E9kuRʾ9 Bވ8a$hL߿[=aޱaz_ALܫ=״T2lڻ6հvHZ_B R0]G34$ 7elYif":1~a?FY!?ZycKR6(XiAmpiF˙ ʣɇɗɠGȪz8Njǩ`=PjƈƉm<ŪňjtſS!Ǣ'Oɽʅ%?դ֖ثG $.Zԑ2ɱŲ̌ #)gC%(|KR ;4he4 /L]=f l /NL Mk/ S } F x$ # 2_'iߡݵؤցՎԀ)ɸt3@DZVņËǿRO7p!״rBYFch% ݮ֮.d7'G}ö ^QBDų!ȀɻʪṲh\֭ٹ%dF$E KP~[.t5p{!"K$&W),0347:=@CFJMQ+VZ_cPfiJkl"n op"q?rjstuv8wwwx_xx-yyyyyxwvuMtrq)pnlLjgdap_]\T\\]]<^^^^^^^S__`ataaab,b>bIbDbbaSa`&`j_^|]\LZW*URNKHEAAXu¶ĎCdϋ*NCۄBvJ*"@^ 84W   $LP$4EyKni3V7ddh<%4a  / VsR ^ k!{Qhv VdܐJٲ=֒Ԩ҇B0jJ`eҟ)Ӂ:-,PբBҵ}J,m|=ֹM#xP֐ فDޗ?FJ A-<k 7 U>Nlo "%(+X.Z0122222]2U2~2234k689;=?BLDgFuHGJLMDOQ S]4]\5\G[.ZYWW)V\UTSiSRRSRQWQPvOCNMKJIHG7FDB)AX?_=L;96/41/-,*+)S(&$",!cOK"JgM+  [ |}Jgl N5R1YHݭݠ+Nڽz̜Vё7LtJzj2J<=vF V L 0 $?mwUzFQ r5fF7)8Rp i SO|~h Zߊvih qhڝ MZ;Ϯ͔˲7wķ5̳ղұ;Pডa!12ޟw;q)ЙP\zoO𖂗0M|na>ȵl)e .Ĝǜh˼z͸4?ΞV́ʅȸmr`Ɠȟ}̌΢Ъ҂J9أ0hy"]& ? g^HG7O f b#?  &   GhF& @!O! m O3"U}[Zi> K $t]:- BOgBMgV1pgӾ_Ѷ,sЕϣ`U9Q[ֿMߢ73 dm5 7zFc "$h&/()+-/012j34455'78:<>G@\ABBCCDFG I[JzKQLLM NNOQvRTU WNXcYVZF[^\]i_facflhj4lymeno|oooopp8p@p"po"oKn5mlji}hgufBecqb`_9^+]K\[ZFZYXX9W-VTSOR QPWOO O0OXOBON;N[MHL4KJHGF-EC5B@?>=<`<;J;:W:999:E::::::98H75O42E1/T.,R+)(T&$"R!'J8W 'q^Vp  O3~y,!D# ~TN I@y$ x C  9  !-{ [ z P ~AO0CyX pU|~݂h_Ӂр^u(RS#aMڞP𛧚GؗGʔ]S {iۊ?ňs%$qËy;'eoabOlܤ!%ޫì{Lұt{PDS8״wں^ɶ2Ј-rR֨p؃*܀ݫ޶ߝCh2:ݶؙڶߗC,?l~+ ]~g dTT8L !""i"o! y3I   ~ L B: v @  Rn7_E`Sg/}9:ޫ'ׁ6tFΜ Ͳ̕*YΒδYJl^Al"E׸\E~ [sKltI q{$ " $D&(+h-/1Z345555 544w569y;=A?@@?,?_?@B$FJRNtRHVY\`be#h*jklmno>ppppnpooooo\ppcponjmFlikjj{jGjihg@fdb`U_] ]\\]^5`ac0d:e%fgghi j7jjigi+i iiihhgfe4c@a9_F]v[YSXV;U;SPMIEA7>h;98!8877'7e654,43d3 32;21>100?0 0/0/M. -k+)'&%4&<'(*u,-.-A-Q,c+\*)W'$s!ze?"0/c# !r!!"p""?##J$$$$$"$##o#u#|#p#5#"+"Z!^ wmIY^m i'^x>O8gEovE#4NcT(4E .ԦЋ|!ƊÝWyLy󭗫%n@T sh֐ߐ 3`OzT>qL В6;ƒגnϐD `Rt&@ Emd?'nIE0|É&>Ēp> !և[ص >dَg4,ݕKp ۷^ ݱp^w`פב8j7mӁBؕޫT/?EpN k .0: g 56vPoP!%N<s~$ = "  u  > * u q3 EV1}r's`P7.!{ޑNNam[kCH of})l-!`b7!;#$%&'(f)* ,-0P246~8):;=u>?A^BCDyEVF+G HHJ^KL~N!PQS%TUUVbWiXYZ(\m]^_`Fbcefth@j,l noqrsMttttt4uuuuuuuuButtrqpnpmlk#kbj]i;hg=feeeeedcbaaaaaaMa`N`"`(``_\YT{N[IECDEGIJ.JH5GEEFEF6GPH+IIIIwIIH;HGG2HHIJIKuKKJH>GEbD CAH@=>r;73.)7%t!4tjiH !I.  uz*dO 0n\M%qgg`٧֙G(ƙLP¨@ u~ѽYܹGU#/eưXάBĩgxzeh(%ЙޙP횵œħ Y:שX$C:=`m!EjvCjğuƉǶ:}.ϸ\Z ہ%K݈gT_BH?:Tr^UZ-$Q>[l )x}$H . a?=G{ޙۜ%־՝\ӹrK6qÍ<4յ C*>ۻ0Ĩȇ2ҫ+Ԭ*ҬyȺioxĖƈ&HɉʾΑО`}ЌΒοGϟѷVTvfWւdً;.  P]v ; 7  ] 9 ^,}/,"8%|e rQ=1D߫ܪaٟUފ}u;  JD.e_ e ^kyv^[x]` J-#;'+/3"79];~<"=====>>===E<,;98767666]6543323(5/7r9;=/?@OB:D~FIKMOPQQ9RRWS/TTUU VUUUUUU$T{RP2MJF@DA@> =;:::;k=? BlDFHoJLNQ}T=WY[\]n^^\____^]g\ZkY5XFWVUUTR0Q;O MJ7HEUCA?*=;:876543 352V10/n/1/:/j////./w.-,++;*Y)((&$6"p+sbct s  V/j,=7_(m//Ll[m b ԭb7`jUϺ*̄K!ũĘĀTgǤ~ι:б)ѧ+ҋ/Ӈ7OսRV۱ qߗށbwBtw\YD2PL S  %Q]5!+$&5)*+H+)*(P&$###$g$$%s%%&'G)+,/G1k3g57a819~9f998@808j889B::w;;t<<<=>=͍A>lӳ#ͮܬlGkTڣJK/Bm͗B6([Y*ЋU#0/g玈<ۓUUޡce먠ת8D{]t:Щ@עڹB?Yc#!1QV\{ N =>1L B y1P+tnOCR@[M m: V f;t$V.\ge? uI4P6gs hAxY-[1gp8   3 \N) jHeXhQ$). 36z9TݳMֹpߺ!MNM)=(/&1އ? FT0^bXQ7?&,: ` .m_,!#%&'W(()*t**D*))w((''(S(a(/('&%$a" C]1 ZP  3"$#a#"! lT* %t  |'5`FHp-o+u!K}W Y-A'K/3s@dv!^=? & - 8 l Q]~^2& 4-\S F v c  U q8g9pPn ?YJ=7)(y}'oEZH'!,9w[ߚ6܂R)َ׎Y׋-Pݚg`^Q*t pa u G:oY Q!!"#$%P&&&k&_&&(V*-:2p7=BHL\Q/UX[^`'cef#hii"jajjjkEkkkkkkkkkBk kjj(kklclyl)ltkzjnih/hIhhijklmn~o`p;9g8\7D64631.&,)'L&/%o$#"!adQ Ri-QgB؀/ -CzҺoDY߰&_ék礁c ד*"Xw9zXڐ 鎒*Ìq(鋰_RYnt[׉S\O-ɋKΏd󑎒B#LיrAR M!T'8TgnD[ukI ) r s0} !#$'),N/14679;=X?@=BUCLD_EFRH1JLMSOsPHQRR#TU5WXZm\#^_b4dmfsh.jklmnnn-o]ofoxoopp?rsu;wWxxyxx2xwww{w]w"wvyv%vuuuuuuv;v'vu usrgqEptonnnKnmlekige,d~b`#_v][ZY;YfYYZj[[\[ZYXIWUDTR QO1NLK=JHFC@@=952/-Q+,)&$!X qQWh<2~_:mv5IEܖٻ֠Z̩wZ4ȼV>O㚷sԜ5)nl1񥭥JޤPPޗnޑ j9]dkԚ>_Ѣp(LٴNúǔ̏̎>˽ Δ,ѩԫW֟AcZڬۖܮߍJ\)7ߎ,O?H.jg-h_DJWWA.vKBB:&#'X+FNX0.3 9 J >%w6|g  (X!8ayP'Ox}AEt/t4W_os ,PlE֌JԀӒҔѱДȟ3smк̽pҡյ֧d؎AYA4x}f@]FUGoz>n^i PMV)!#$R&')**5+w++++,,-{ACERG3IeK NQOTWZ])`bdIfghijzkJl)mmn?ooooo~o[oo-nljhfeQeeUg?iTkmano\oeosoo ppq^r%sst uuuuu vNvvNwwbxxxyxxBwCvtisqomqk>ifd`b`o]ZW^T`QN|LJIHH]GFEDCBxB%BAA9A@?+?m>=4=<#<;:98765q4?3200n///...,+(%&#` N lvE 3 , 3: WBXMm .m +K0.mFʙ3L1(%fܽ6:̖]gDtټܨoL57ݛhםԗBтkϕb~/<ȯdžǷȐ"ɢʝDٜ#ݖ+JhDUgTvwm<}_x9 pF=$Aو֕Mϡg0ȔBơ ŚïgZ))øԶMHɰ~G--wFۧEmߤH%*›z#tTĨ>/׮HDpqVf3́вMw5D5 __ӓ),ϙM;u}߻ŻR}}U:%G֌,anB(0A%i ?@ABCDLD(DC==t===(>R>T>>=i=+=&=f==>?@A[B$CCDJEFFGI J KKLMXMcMHMMLtL;LLKK[KJcJIH-HlGFFdED DCCBrBmBBBCC:DE5FGIJBLMNOPPPQ_QQQQQQQ[P@OMKI!GSDA>9<976|4310/ /}.%.---!..X/j0173456O7476543Y2A110#/. -,+A*)(W('&%i$"|!TUH`w@ E qW) >B  Jo:@h6#,3TT8e d w8u# 8r,Wu{e0M/D~q}0/Yf;P #WaQTi5&j E 4  ( Y  FVm3g)4<_|<='Z,l6 i>z|C܆<1ل:BZIׯϋͤ&{Gvɐȳ+4BWO ۸ҷܶ𳬲G˯[Q.RV[cL-t$ΔʓϒMؐon[ߑp";}/}_WDi4+0ܝƞߟ%ӣ$)-Vǭ G{Ѹ1:оm ¦IƺȧʺJѭ*֣.۽KEJ8sC/K*gRj % "xi!w$&(*;,-c/12l48680:<@?YBEyIMPISUU U+SdPMIFzDCYBfBCD]EFNHIJKKKKLyLdMNP6RSTTTTsTT6UV WWXWWUT <97=411-*&#I C4,0[  ,p s xO2[)lc\J  n 4 }a p ~ T n rasy5Jn$""%6')+K-0m37:=$@BXC{DEGHJeK{LOMMoNNOPPQQRxRRSRRPNLJIH!HGMGFEDCBLBlA@=t:62m/6-@,b,%-.......=///V/...p/t01u22@21/.,6+){(&$]"# " QLiQ]])S@BZv1"2gܲSn"@з̜85fe;dλj#pbGƥF]ɽ˔#Fћ]ҡӉ݅]1o7DB ;N.ff`I{ + !S { $>  )X6`>!"#$%>&&&&&&&,&%$+$k#""""##$%$#!d SuEy7Y1k#IZ9۟:pбd3-`b2"ӷS7Sy/t/ϖp ƍÌ ~F퉲ae͋aWg]2^dA9ZaKB-Պ Ɋb8.Xa풛/2Hũb_Y3xĸ.Oͼ E6 0f';O R .tK+ #'*-A0N245^79:p<=*?E@bAB/DF H:JOL=NOQ`SVUWFZI]_`=ceVgrhhhgVf>da"_\ZXW0W$WW;XY!Z*[2\6].^__P`~`h``n_^1^]n]<]%]]\\\\\]]^_I`````_!_5^][mZX,WVUiSbQ9O MJHFDCJB@A@>l=;9)8t6532N21210/.. -/,++* +Y+++,,+++X+?+'++**T*)('&m%#t" DzL/B=$KQ * uY30 PIL m.f/_. ( X 9 X Zm" !""E"5!YLg Z& R u u=p/Pw|^CY% o 9l|M;+  B 'J1IAt{16~T5FaW$&RBb*yn[A&+bmlUp#L6Zam9^~U0)} L x!O1 !2#n$%$#!  /  F 5 9 9 %ioaZJ8@" ay65zݕ+Cӂv!ʤ-LߵҳDZB˦^[.Q>PzW2ӑ|;Ǐjގo(p Ȇ{Ɔw ֎׏Vėx D[a[}̬@ׯaDIպغ8Y%u9IV1aդسSy8[#L]jLDc 0S !"#w$%%%r&&'T((())('6'&p&&'C) +,j./0111247':=AF@J"NQTWUZ\^`bd8fgfijVlmnCp}qrstGuufuu|tsszsss&t_t|t|tvttt5uuvGwwwwFwvumt0sqpom-ljjiLiihRhgffReddMddcb^a_^]\Z`YCXYWV VUUwTSRRPOUN7M;LKJPJIHOGECAq?`=h;9.86543q21_/-+)'Q&$#%!    D TcTE#bR!Qi^[N"qE_N (3r6|Mg 2ftl u 4  V d w ` cfB&AKxVRg8: K tqJMXTqU$֌\(Nִ$jo-ךӆy̋ZɅǧǂKƝ"iŌġ<:Kȿʔ/Ε HԘK؉٣ڙۂNL߮ߠh/ކCn֔ӷ=ƐʼnLĒx^ΊԼ։ٍܷ0{q'$0;jHjPJҳѵ! eק"ހ}/H?r7J]ۈNnt׏֦ԦM͟ȪȄ6hˍ3OZmDžƥžñˆT0Bwй H Զ[[ݹ0iA"⾄3c<ħŃpǃukͤ~ؾCܥUN0ewp0f6k:`=+ S |O7 #&(*,x.$01R346_789V;<4>k?Y@@*A*AA@@@#AA>B0CYDE@GHfJKMOQTWZ]`bWdefgtiklmnoqrstuv,w-x yy2zwz}zTzyMygx7wuetrUqoqnYmlkkQkjnjihg]fHeldcc~cPcbrba a|`__8_^Z^]W]\h\[a[ZYcXVWUSQOMKtIFDGA>; 9B6a3T0)-)&=#pO`v / &8i' ZkOjAUUnld`'R8[4OU63W _kqfމg~c).s)3zO #Tai{X:s>p)9]nSu&B/, jG}  j  r @ 3x(oN\C|S,\ռԢԌ\ZM.}Bۏۻy؅1Ԭ|QНPˁɻ[s2,VȽԽbۿi!³:íĈj6{ƫƵƭƃQŹ"U|ƋƑƕƵ ǭǚ/˧#ΚѢ;\ף؀Uٷء_FGQa׆uiٲ;ݚL qE>5gADFlILNqQFT WY[]_=abKdefghh-iiiigjYklCnoq8stu]vvvv|utftLttSuNviwpxCyyzzzyyyyyz_zzzzqzyx_wu;trxqmponmlbkigeca_Y]ZWT_Q0N>KHFeEDDCCD/DAD0DDC3CBA@?>y=v"M$]&G()*D++$,,./l1S3@578:<>@BD FLGXHFI@JAK\LoMkN%OzO^ONMSLJyI{HG*HHQJLM{OP?RhSTUWY[r^`bd:fghivj ktkkkdkkpjihggedcba8`^J][YTWTYRO NLKKK LLKJIaH GEAEE/EE4FF GGFFECB`Ab@?`?E?S????f>=~CoK\Ad<:753Q208/-,*)'&%;%$##)"1!# A~L""Q M kmqt[פ=2hѧѕѰѱ%^BmǴUv׶ٶ"й&yO| yѾ P.`fR$ K1JHɅgVٳe! cy! \ k(Rc !"#B%&F()z+-b./0;234X6789s:C;"<7=v>?1AuBCDtErFGHIKLLMNOQRTVWYYZTZZZw[[H\y\\e\B\#\\\+\I\z\\]]]"^^]\r[YX V@TKRePtNLJKIH@GF}FaFhFzFFFWGG~HHBI3IH\HG]G G GFFE3DAu>:62/-V+g* * *;*^*k*M*%*)) *i**++',,+*-*),)) )((7(J'&$W#"!# 3"! 66[RK_i9#e^׉՗[κRrGCx1E֭嬬>YУyK]YoJt8ƋJ}32*G Frk'ʅ}v܅_> ==>}@BDXGJLPdSVZ^Cac_f{h\jkImnopqkrrHsrsssttUuu^vgvut$s1q oljf`cR_[V'STPrNTMLiL LqKJIHHGAGF0FE_CA->:W730-d+)\(M'.&$": 3ki $ Bg^:0X>|a~݂׬E(^ 9Y[8 C˴np`S<9Er.L[]糫ص_ʺB}\d1-`HECtq_nōm;'XřƑǡȽ$· ҜԎi5W)D!G lq$p*Sweo &+{o!/$8'|*-03679:<=>>?B@A B/CjDEWFFFF]ED%D DRDE'FGIJKEMcN^OQPjQRETUWXY ZYYRYgYYZ[\ ]d]j]Y][]]^^_z`MaaRbhbbNa`f^\Z[WZYYYZUZZZq[\\0]]_]\\ZY@XVUTSQOmNUMLKK!JHGpFpEDCCA?"=[:7x532R0R.+L)&$]#"{ 1 G @ 8%A   G !f :Ez5$[مקט"դӆU*)ǗɁqE|BI"ŧS43_޸طFжKydֱ+qs rװlewRϳ5DۯfTI9 %2yw;E8$5B2/N-+(.&#N!;hJZ j!rS  j .>3,Fێָդv}гζ̬ʅVl̺˶+Jг?ʺk 0.'>m\ĭľďEj”s­C(I}ƺ4ʞTbq:ٍ8b^T6~il  NI5 "$&$()`+--/02p45#7[89 ;@ABDBEF HIKM P?R@T0VXZ5\^`VcseQgh@jWk(ll?mmmmmmm`m"mllkkiXgDd`\TYyVjT-SRRR}RBRQQeQQRRSUIVWX-Z[\]:^g^G^]q]\[ZYWVSQOLIXF/B+=T70*P$ 9+b,4o Ax*v"hޓ@֤;c\(ēJRj~ø;ؿ6e>%ʜʘ4ʉɸJƁHƠ # -};;Щ5]ߢDR6񹪻YȚ̮EЙԬc`ץ"aحٽ ޺ݠزQӐҕvpKdݏ5gGd`e D_2FfJ- ,ܯ5hGhMB;$K{?)b?>9^0crQVQ q  bQ.F`Nb3.q !#r%4'(j*+r-4/D13068;=>?v@@A@R@j?P>N=>=<;:999$::;<;N;.; ;::!;;4<=> ?#@*A+B'C)D0EBF5GGSH/HqG;FDB@^?=<;a:97?64q3@2H10//w/q//// 0*020%00/p/.S.|-,O+)_(&$|"& <`L +]G||I׉d>Q ߹:b;n$8ۗ, _Ϥ:͑˞ɌvŅñrbR{Vilڴ ߸ⵟVٹh¼p6Z»G5Ǿ_ÈǍɵB`.:ˇчDٵ܊ߴThX,Kw E8#S&/)+.80"235789:q;;|;:987z65?55$515#544/3=2v1$1l1a2357p9:>?ABD`GJM9PbS`VY;[\];^7^]]'\ZYEXVU(UT[TSSQOLJGC@=:B6a2.:+(&Q%$U$$$$#$:$$%S%3%$#t"T! ] !X#2%')*`,-./2001|2346)7748$87B76543270-v+(G&#! {?|@ ~ |s _E7H?GK4 v'Xbݯ?ؔNRA2Z|qȄǙƦşď˙4v8*xeζ~lq_ڨ$+gӯB~߹Ti̼ż`i)׽~_Ri¸CƓ&]ʟ ɧȍȻ ɐ6>̝}Ў9jN)8ҹXSי ެLiDFHu)#he z Q-S/{ M P B c  SiM'L}o; 3(*A% bM ]?2?9\1\F-A4NXs91ou'5 E R% !$E(j+<.0246f89;; <;;:8=7531/,)&#I!oG^LhWv ! "Y"""^#####" z "$&'(7),)((@(!(((( (''''''`'&%$s#"  |hb1{ w M%CtCHf#T? K T+!l#z$$$$s#"!f mzUa8T*e !"#$%,'X(i)w*V+(,,'-Q-:-,],+* *P)((W'&%e$"/!hh4g!8^Ei ' F ߿{ܹܣ*Cem%rY9|~)Fs_L~]AZ  {#+S| Hj'|Rf|(idT 1 \ q %;,Q\9s$aweoOC^nkG}>/ߔڿ(Ӯ]Ӟ҃#n ȋtǯȌVɞAw}͏ϩ%ي@ ރܝ`7INujN܇ِڟ۪@iBU(,Vx{  U K zzBfV.׵ՎoSͪǨ ՙǝ좟5ӶйdIÌŧh˕pͮͶyͮ@˧ˈpjaf{˕˶˷ˇȼƓO?]̂b՟1]N@pc : =,|n #-[nB8!e#&7)-16;@EIM QKTW [z^aedf)h]iEjklSmnpr6tuvwxy?yIy:yyxox xwv9vEu8t7sTrqlqqqqqNqpoYooJoohpp&qqpo=onnnoozpIqrrstuvw>xxyQyoyny9yxxwumtrpdnli&gdCb1`^O]N\Z[AZXV;T&QM%JFEC8@v=:8z6p420.-+(&$~!`Zp{D q  "C;6A25bPXՒGʸqòt򮠭_1w}j "{Ƥɛi_Ȥk0ȵƏ/SP]K=MTsůZ"SڪȪ9.F%=ڲĵÍ̑Сb%&_C^>W5e`ԭcڿRGd&mO-+&@K 2VLR dRj(Q=P?M&zx1QiAW;w ?!x$'*,-5/0!20344-5e5S54L4U32r0^.+(O%!Kt8QQ!& k  P K bz'X!"$% &&%$N$$$$#" ']s LmA #Wg.U? \Yb-G}(!e')Skd'[b;qРvW/+~cD4|٪+$"y/}CD ̖Uǔ Õؖx}K>T#;Y wgA׿îDz˧h֬?hjXTZ60::v WP~5y"H',16_;S?BE%ILPU/ZK^a{df h9idjklmvn+nlSjfbD^ZWUUTT!UUWuXZ~[\]^L^Y^|^^E_``#bcBeg(jmortvxxyyxxxsxPxxwlwvvtsq7pgnslbj+hfdpba`U_^^J^]]\ZXVTSQPGPOPPP#Q QPONNZMLtL&LKcKJIHEGED9CB@?>W=<:9?999:<>@BDEGHHI+JJJJJFJIH:GECcAF?A=y;9-8R64t1.+z)|'%#H!~P O7b^r6u0f#l 98e8{%2Yp$qs ߯މݔdy:ء֢_Cͻʘō~ǒȀ8ʩgkԖ׀gk/Ilhc~߯ iъ7͇EȼnjUKͽ@ֹyJXͶe:%7)յrܵ~K>n,K®ƾpȏʇWͩV΢ϾϭTf2ӬԨף =Sى R7P3Cvd0, K  3 $0x , i  ,_A(Kcq Q"#!%&&G'''l''&&%%$>$##Q#"$"I!F H* \J$~IqJ%<0ܲ`};̃pȚƿ-G˻hGשz!sE.ԯsNQj{ҽB=,&Gӿ𽌼 ¸^"i©Nļ$ŬpsǍȓUʲʻʀB8ʝJ8_΀}ҮXٛۤ݌C SY)~VEiO l A @  + P+yJ"% *.38f=ATFJOTfY]Wa4dnfHhjkmnPonlDi!e4a^R_?bfj>nooDnk-ig fff5hijkqlmmnfnnBo?pqes4uvnxsyyyyycy'yxPxhwv\tOromiea]1ZW,> =;o97u41U/,E*'o%[#!e v7xY$ |{v  ^'   ' #  W@YiET9k;6BeS8$wz`1E1W4  @cU_ 3#B|7lXI`' Y2.8B) eM:&^v$ RLoK~ܳىМĸⶁ&[k>ș'Yȥǽs ƸmݶK%^}(\M}mɣQ Qt϶p.RPa΃mB15sYGچی>ݢݽݳݡݦ)ݧܟ~Gѱ:͢ϑa(׽ݓz&wn8+ h `   v#z1 L 6 h [m`-9%EUrW4   W  XSb+lE3ACsFH|K!NPSq9)Sbk3>~K4 _-5GLi g \ZBW(\1n= ud߫u2Ҷφ|ɧ.'®lܹѲɮ5ΦӪ,qO\¸s,͇ӒբKstd4Њ8Hˈ*ˇj*ƍDq©aNyť}ݩ:ԭݯ*Z˺; p0 (ċǪ 2Л!6mso XW n ? 1 ` ` Z 5vH ) j3#&,+/49K?D3J`OSHWYZ[[\c\\]]]\P[nY`WuUSQ_OfKE>70m*;'}&'C*,.0-0/c//...,+(<&#! 7}t'!%N*-//.g+}(&$,$~$%8%$Y#H!duBo)Z? ? y u 8 U I  , |,k0r+Fu`!g-E1iyYPi,TL X k oj?<- I A 6U3B"F$B #V%&%&t&'),0f47b:I<=s>+??@ABCDE=FFFFFFF$G GFFD_CA?><9d741.,+!,`-/01,21w06/G.--.P..S-+Z*(&N%$"! f5|(1(r X[;t>oEjݻ#00bכ׌׃b(ָ֭שOغhخ֫mΛD5`[}2JG_ȪYu>IӀ՝f٨aba$ e x ."   Nsh^t#VӅѓXɒʕ̅o3znٻl:6Lq2v6߃ݪ۴ْPnO_ Fٺ_൒Z䭾?q^n &MM۫ ;,Ү¯sd۲!@ -sɽS|9BEڭ݋g )u2HV! >#)F.2j69d=eAE"KwPURZ9^=acveZgcikmobqrst u:utsrp njugc_[WS PPMKLM PRUWXnYYYZW\^adgjl;mm[nnoopqkrrrqp:omljhjfzc_[eWS7OKHQFC6A> <9765+54321P0.4-+)'%#+" &: $  :8Yx7l8"QsrKJ%%BQ3,SXB1=wVk7F4 y "$M&e'()E+,.024 7H95;<=9>>>?&?>w=:7^2c-(&$%U(+.)1R220^.+*()[*,/25788b87977n77w8r875V3/T,(%$#S$0&(+,-.-,,,K--,H*%\I  +5 "!$$$"[ V{f[. #Y$$X$$]$%'*,g..-d)#:'YMN,ZOGqTH.d$3ZA_E6W݉o,^Ǝa24,&vªѧ]֢6ŝ0֛RB̖ʒg! ԛÞ*ޤԤubuĤJ  ,ҪA\`\ZiҤf[4YlT̤:ѯ_Ya̶Fק܈6n2xEo4( 8Nq߇Ҙ`ҿە)(^' E    n,YڇׂX5^!N.̻а"τ[ ˼K•;"Yֶ״Ӵ>%}ʶ VѷXܹaS9\7=5۷.fyllpM xSg9YHh+ b ~Nz@fq '-14M657B8E:=XBGMSWA[H^`cfWikEnKpqlstuvwOwwbvuttst4ttasqaoligfghjCmoooWnl&XEz N   iwI2m):<یWHߒu4t*NlX11n<.P޾(Z?Nk :b"$&&''#'S'''x'y&$! 'gm85!"~$^&a(J*+)-../02U58l<#;9v99y:W;;;;9g875Z5)5H5556/65D542/,~)T&G#4 }F g}xbDּ֪m7e̙,:\J-摒s:s2k,y; )KzԇR!U ?Pmі5c[ŕ>͖DcCfl|HUɡ$< ,Z#`'ʩ͚JՕ0ٲ܉_Uiߗ\[3Ծjr٦82 Y}?]CF%<- <#qMXcZeV:T5YN+-Z?Y.?4O* ^v?CPC8;De  Uz޻޵ަފ]2 Oޒk`F;L}=LO7 w]=U4 k f fc!&*".00358A:839< :f86G53P1.F+'# d m ! = Sao tB + ; 8Uc5>RW-]T !t ~!#%'B)T****)Y)(7('u&$."|% 3UXZ fE~eY TQo!"##" "H!E "?3  3x88Pf5G.;o\o vqr1ZuE(e)mF-)N69cu;%}s I#W>] OΏEԗ-K-}W+ ( su! | 6,)XHJ' n+<qgbxzjM9`CxYߟݨ%R݈ۋk sҤYĈzzAhJ&YXqY{ř< V<ښa(ڝY r򟟠QJngq\se@wM{K+!Ȝʼ iՄj  / fsuXML T y \f- "%{),/24Z799<>@BfDElF:GGH8IeIHGE^C7@<9w5;2h/-#+)(&|%y$# $$&(*-v.!/.1.-+*m*N*q**+7++*)S(&$e"* ,% pTdtM* `({R}@M8]-z6ۦڀNߘ*0Ijz I$'+/G36:<4?ADF@JMPkSZUVW.XX"YY1X:VCSOKH(GGFHYJlLM N1M]K3IQGGFSFGI*LNUQcST0V9WYXY6[]_5akceg{i$kZlllkigofef}hLk>np:rr:rpo-m{ki^hhfc`\XlTRPLgIF;DB?=;9'7v41.+)& %#U"  WI X.: C z Rp<TbW J Z:pD~߅?nwڌhn,W!VО͡h3g5pчPt"֣(9־\y Г%˾ ʐ]4̾Jlxʚq(õƼpٿҿ+=ĻƑ }΁iҹեj)؎ڀ-r۲ےړ օԺԅ!n,6xзӞEW1Q*GC{J5 O+d F;) r'_ %+c/{2t45G6678::;:98"7 52-' ) C%aUg#*Zne]'7H܋T^ӛΨLMzo!?DߨpW2mC̛MnA=`dNδ8/ɷuZbŸݸ-R{ܰ:\y6!ڮޭ=#wңOwEƒgϒElߵ)+j,K~r @4Q !;"|""#O%'*-C0X23(4=4O44355F65i41/2,]*)@+-1846}8}9::-< >y@0C FHKNQT)X[]{_` bccdeeeedcboa`I^)\YW]TQO N>L.JGDA~>;A9[75,4|20.,+e)'%"](v&. B)yFU:X' [ g(qo{8>2tܠ؏ֿc *"AIS 6P? ,  `"%$%&F'U'X''](s)e****(y%" " 'D,136D9:o;;)=?SCGZLNPISRUV.XY>\^a,dfsgZhiij_k.llmnopqrrqNp_nlkkkmoq;ssrpmkihhgDg=fdCb_]ZX WUTIRPMJGDAG?=:8<6|3u0,-)&# # z *Y^7Hoՠ\ҹM@ѻwuӋԸי3NDӥY|JuJ~!⦚I;њVəu F.إD dϹ4n%Y۳a_W—o\mƑŜ5ĊĤBɩʼ9=.[gЭE:qtѝG!ְױأ.ۍݸkrP+-N ,,{hUV H?"{%}^K]M'jTl",EKmKڀ܂LsW/FUvqs! Q͙:nt'课M*ț땿z_·ݺʿ`] PqH#:^T_OSHkõfLRLC?]T,*4Z܏ޕ_ihg.D ` I#>&)+-/ 1x23w5379:?GABDEF?HFFFF\F`ECA?g=:u8 631(0)/.D/*0W12z34]4Z434332*21/a.-++*(f'%#h!rT35; 4 n+m @ G <CCvmeXn#N=@UjxOg' ' ۽؛^(}k j0p o8nwX/}7" v * w aQ  [ P ( Z ) T )  f g@;{\\m~{Scn߁؜֣ռԘ67Ȗb, #7LN`ĶͲ/گשF夑v皵)@•uYюB닧P Bϫtֽ׿4\siC ɵ;zʋe6`ɴȭTÃB-'̿ЎJcާY[ |h?] ="%(,,1%58V;=@BEH.LwOjRTiVnWWWWW XXvZ\_'bRdeffGfeffg0hEh&gUd_YkSMKIFEFrHJuMO#QQNRGR3R6RRSSUUVHWJWVUSQOMeL^KJJ2JI`HFDtBf@><:8g51--($b!M]`IT% 2 ##Y,RYLQ 6_[U { Hy? %1t0oM6bX@HO:7Z{Fs1@"V%! ߉ݛX)Ӯрc(ΐ̂9dڿ;ǹK%թ^NSyQuǝtDŒȾΰ$վ+Z{ӗӕӪ KԣՅ+у~ǃ1>;ȠˬJ"%0XWO &\j"$'(*,s-.x/00001^1111 1a/,e)%&"UXU 4!!!Z"A#$N&G(Q*[,T.f0257:=>@BDiFGIJJKMLLL"LKJI*IZHGFE?DB/Ai?=;{9V7<5>3x1/.-,+H)'u$!obL`p %-I !"#$$%')+4.0235r6U777737642M0-+Q)&#x  < *A tsP7EO6Z؋6y,²ȼR:=RԹLsC۽ڻ߾˾?ۿ+G›Ñ'IJiű + OΆЀ2ԨײؤuW>q"`Q 3ZbbA $P_I 9PkX[ziF9 ZLVkZNgn~ \ '  i2 Q"$?'*!-C0_3L69;>@CE1H}JL8NOPQRSSTSASRQPKOMHKHECA}@&@g@@fAADA@*@??$@@IAA B?BBCCEoFGYIJK/LLLLL9K:J"IHFGF7FE.E?DB+A6?5=K;97Q64l20s-*o(>&5$"eEM (dP(ynRl7eTYst7R}= 96ڧX29RS~>ePMɩ٦죂vȤڥp'#XwG:]V]R"ˤ %Щ Ҁ҆39ё9_Wp'Ծν|׹ V?>ȞΨc%ܨ[g%  jg$jR@=YA8CݒRny|g?\t~C8860Rގ۔U)Kӄӛ?ԉԊM+әB<ңbӄ՛בٶ w MCM c<a+M- J=1     'JG !"8$%'&())*+J-.0L23]5678j99987%6413021[1310i0/.$.---*../01;346L89o:::5958778:F>qBGKOdSUW'Y.Z"[\\3]]\LZWTPLHEA>o=+= >?AA-A>;w730//02F3-445:79MӘ?+&úM}/Qziʗ6O =l[#|>cBq5f /nVc~gH}9\OsAnr327#nqOCL8ivOr)5K$K>;\X`f  f Ph e " c |d #&x)+- /00=2047:>CGmJMOP/RS`UWmX[YYdYXWWOVUTSP,MHC>m:64q21D110Z/L-*%  W n  ?e*SE hJf > BjdQmW ֋{Ǡ"`3d AJҠß)ܛp#n& ʖ/cғ̓bp!!$_')+|-t..-/H/`/l/I/.-, +h)(A'&('''' '<&g%$$X%,&'''''n&%%&&'E'1'&%$y#H"/! 9H@BgM w  Q-a'xhao/< 1]"i i*etm?9]x.?t_\=g.L_ |d < u! i$'Y+.2'57m:<>@B}D3FGIJJKZLLKM~M[MLKIFHCB?7;75334k677J75k4P3,3/4:68;c>@BDFHyK%NPSVY]`cm@A.BA@X>:c5=/(x"Y[r4(4 c  Jhw1(ݩۭ ڋ'+ԮnN.ͷ&Kͼ乓\ݛ]o’:ݏŒ xS4t7Ց; Zrίϲ#oI%OٶǷvۮzݵoG̀aΊϔ}ҮWM.'(1zIcy O`x!$$%&I%#! e !+#$i&'^),+s-20L3r6f9;>?@%B;C[DEFBHIK@MNO9PPRO&NLVKJHGF#FEDDD]CB@f=95j1,$(#c'A6mz0H0Z$ KsxvT  "C%'$*+y,w,++;*)(A(/'%>#j TI,'T C XU|޿ѐzb+ʀΞsC{c*I#ޏ٦tЅˋU;än\*2d%ƙz B9M_j9]$μ t!1ҬëBWϋLӼ>jمb@a܃ܹyRI9%eHgg;cs?*f"V: B3!"$%o't)+-/w123333}3@313N333=4>4321/}-3+)4'% %$%%g&''' (((=(())$*r*e**)(u(('(/(:('X'9&$" I7^[: :$ g0o#FR=-quS+ 1Wvs4 HX K\պղ%ֶօ~ؤ2zߔmZ}^yWRCU.BLL0G5n7/E / E.)!$(C-1596??P@@@@@@?e=8;852U0-i+(%""Yp3 H 6M /%S7}yCk+ݘ  gQ H ~ҡ)ʩŖcòIGϲ浠նȶ+&j[ a *![ q&iRF0= z?y2Zz&: L %*0H7={CHGM.QTWuZ\_`abQcccWccbbZak`F_]\ [kYWV4T2R PMDKHFxDBA@@@>AlB4DFIMpQU,X^Z[[[[ZFZ7Z;ZZYXkWUSQO}MKBHD&A<83.(#J &)\} 6a_++./]m~b\p`vabPձ{"uў ɻ ˾+4|>Œ«cQâ3^%s8sßcY)/8V>t-˼͜EnͿ͙̔̄͑ʓ+}'4"𰗰vcA8~KԱtؖD {˲:Jӥٻ0kF7dOi/ lmMNd^=%>M~f!e9a a#(-u39>CHLPgSUVZW WVhTRP6OsV sEL.zo!qu1;CWOK6F $ 7Y[Zz<Unr ~ # u.7\iaVNV(q(2Q !#%&5()o+M-`/1357 9`:;"=>@vB-DEF0GGGUHIIJKZLLLLL3MwMMMM_MLLeKJ`JI|IHH=GoFEuEvEEZFGGH>HFHHGG*GFiFEWEDCBOA1@'?H>=<5<;::q988`8,87r76643"270-<+W(p%"] SR{cU ^-53f cPtxMdA4NBYhĨv ȤOľ8\ *;O%3oe`ۧN Elj|͎9"4%1Ţ vF>HKS̬DZ#|TQ,+&~ϴ݁SF:@AEIMQU|YX]0adgjmMoPq+stSv@wewvt,rn~kh'g|fnf1fda\1VNF2@+;8637B8v9j::::;;<@>?ABDDEFvF{F(F@E DBAA9AABtBA>9E4/*'(N''(('$s 7"W}R >Me׈l3=ʯD[]Lޭȳr9LzĿ̘ӹC٧Iu@l`g^2`&7@=* N\w  m >"@$$$$ &'x*:-/1 33S4467G:-=U@{CpFIYKqMOQTVXZ[ \[IYVSZQzONN&PrRUUhXN[]T_:```%`_:___~_ ``Faa;bbccdfhknqFtv@wwwawvvvvUvutbsqno$mjhfe"c?a_^\[ZZXwWUSQOMLKJ9JIHGF%EC"B@l?n>=I==<<<;:[97531/-+*v)~(h' &E$"9} K urlQNF޷j84?պ3FEXV;~x( *^G/Bor\FLl>}j͙ҙ SؚК2̙iΘA/њsܜ ,RiZȟ{^O8֞n+ -ݟןJ^ ^ dSŦFӨl_تAxӮׯXaIJ6.6$y*rȶΰRԪ%ߑ0NumXNjBn[ ?+6z  3// #&),.01U222>21)1q0/ /.//012d3w32106/-X,*))(&%$@$P$$%'E(f)W*+++,./V1b3r5Q78P987~52.0+.R--0e3E7;E>x@ACBBB~CqDsECFFXFEDCBA[A@=@|?>=<;S;:I:9^998i87n6 4b0m+%?k OVcD #  k n % }-Hx + &qVi a M/VeFatb_v HɰȌPwнӆuأ2ځڽu۴/zڗٲض״֌F|$͸̴˕ʆɌǐǞǹǦ;ŞQJp-zު1 > 9\x HXhURRyE!$'P)j*8+$,-/Y25\9E=@A6E"ILyPSwVX~Z[\],^^^u^]6]_\[ [ZZ [B[[[m\&]:^_ya{ceg{ijk=llkjihshRhhhtiij jiFihgfda^\sYsW?VUWVRWXYb[\^acgtjmDp}rNtuvmw xpxx$xqwDvtrpnLlifc|`]YVS~QOLHBq<5-& %]&&  \zoh 2 j'fBU!%eAͺMK[&߹ںaTim5Īƞ)owSclj]ٽ 𺇺ϺoJ'x𶭵a~%lW2 %l)Yn{_ ]U|r ,&-7z>zޚ܎M(ۃD ڧ=څB؊mCtY:Оэd<|`=mۖܫn,P߁߶ߣ;J\ܠ۬Us=إ|ֺՔЗ ̞`sW%- P|ׂfbMd'10Y/-5*'L$5"!!!#%'Q*-/T36:>BCE(HJ)MORTZWYU\^`bdfhrj3lm=opqrUtuwxxx3x@wvts5srr~rprirqrrr?ssOttguuxv ww%xxxtxxVwvutsrNqonki&gdbah_]\FZbXVTSRRQ+Q~POcNMKmJGIQHuGF+FEEE&FUFFCEC(A;>E;86b668:T=?ABBA>@>;s9765,4o321#10w001w112 21110N.+'"c( ' &O F]Tw>\8S Ba޽ߴL7 !R˷ʇ.}+Ϡ#y>\F ٖץ-'Щ-zԸSֹ3S-ʹ# 񱱮ЪǦ|-QMR.[8Իdrp[ʾٽ8׹AEn Sqh&OՑ/ԌSzD!(lNKJޱ겜*b,Զ4Xoİfy8,vġԡIL-ϯq봱 jΝQ׿ڃۺQ܁5IOR'< r   JKde4!$'F*X-0a23454444}5t67i9R;x=?&BpDFHTJKAMbN/OO^ONMLbJHFhDA>m;'8D5#31y1}1y10/u-*J'# vh^_kU u  :KA$  7<Dz~K#jUk*8c ((uf*3kb?.mݜU/.Ӷx^ʦ_ŕ.'h̿bo xHģŊpP$Y] о6ƺDַr򮘬]ɤ\Nř0`må ͩGYW@ƻ3s vJƑDz/cϕо#oւGݛ&~rRA9)VJ H#(/-159=AELILORUX \C_ab4egikmKopqrssr/rq|qqq{r#ss9tttuBuxuuu v3vLvjvvvvw'wAwWwfwxwwwww x҇ڢہێO'n ׸,[,cŤEJO=8Ɔ*|Pҷk{>Ȧ̜Ԛځެ\$fAr` c-!)*Tl S -MU !S0 $(,@1q5=9y< ?@AyBBBBJCgDEuGH/IHGF@DB@E?=:6W1,(($ #p"""#"|!X x,? !w!`! H p"F$%E'((((E)&*+-o0^3A68:u>Z?@@AAAA@?>a=;9640{-J*n'$"=!Aq'qJ]IG!#$%@&7&%$$4#"P">"T"v"""F"!p!! !v!""""'"!q8NB(mh' lKi9x!vL& W:,+@PEx3@E. Rq:. 6g   !!!! go *3 | z iRKLn"`(o-6&~< ATu[ t/i<,ea eX{_<+B h'a SF3hAdk O;JEZ{? ] SUynI7 mA_1q[L6.muW-FIs)xOwc\$d(kT cC^Kٱخ֯gԾҵSX Dܪ~b@Y뜽4K`5|Nu>>=w<:=9Y7R52{0.+y*))('_&s$@" )M% '9VcZtmf tIA V# 0 L >+P(v#N` XX;5#G(}+x-d../02s4#530* $]Be~~U { C ja1ko* %: k - R b}k~2H`QE4`;::N;T>'??ABDFHJ&L=M*NOOP Q0QP>PEO'NL_KI_GDA>y;8630-V*3&!>Y6 #R  i k Dhe|ihҍq̥Nu7ČmúFħT ̉ͷͅ:3ɊJŠ´lO ӸUijCG'0˙ቒeEדQ.|Ϙٙzkܙ0j䖸|;Kқ?xСà/J͛:hQ) E@:`%?ȿ[ۨr?<D5pD#dgaA ^M $q(l,?0369,<>=ACFHJGLL MLoL\LLMNP.QQ RQlPN"LAIFB?N=;::;<=;>>>>>z?R@_A[BCCCCDpDE FFGjHHH7HGGCFED7DCBB@:?*=:7572/e-b+)'%]# ~T # *_D}#`6[K!&|%cL ٜc7;f`ӳR){}kϏЧhZԟ|0OШ9Uؓ iF|] & *_R5Na  w 6 , {WK7M Tf!#f%&a''4(U(K(({'&r%$f" 05 k\[xUyN  8QAQi j z bF % a ! iJjwS[=+ q!%b)2,=./01r2C33M43432Y10.-J+9)&/$!?'| 0=fsG [^q3S lsp 4Yp  l7(wW^f59B !"e#W$.%%%$C#!}  Px@    z#%P'(L*+-I/012#333>321[1<1111u1/-*'%$$%f'G('%G"g+ . z t!))aVyh 1=GX<1aٚ؟g֘ү%Ù:j>xq#&Ԝ͜˝sL2ϝšԘC &𔜓XqאKŏؐ`X[#@̔ѕvGe͋6֋pnw#UڕЖM2Ju*NMVR%̱p߿Vj=X͹̢VRѹnՍqHUV{gfԋ޳A#+7@x P!&V*t.$2j5=8:={?AuDFIJLLrLsKIFB=8n3;/e,%+_+,%.v/10D0///0Z246s9;=?;ABC E FGH`IJIL}M4N'N[MK8JHGF7EzDC&BD@=;740l-*3'$#"3"j!7w L_ o7U&p?2@y@]@@?d?I?$?> ><=;97655543\20/-,,0-$.;9730h.,+*)K(&$Y# ":! J!!e"##s$B%&&'8((()((a(('A'&& &M%$h", mkNHq +J`aMn $A*`cGhDߵޙݞۮiBَ֮ b~âƁoeBڛXic-nb{ ^QZc}1u<9$e  ! f E . X = t 44}!tC?Tc O\f "k$%&h(*-0x47:<==<;:k986M531^0..--B.//01(22332 2)10.6.--Z.....(-6,+k++,-.//.-v*'"Hr y -_vi }HlA;2RMi5֡lӈ&"Мq̞CƊ¥̺$ͳli˪rH!諾5ǡi;Jv,˛Hߙ2wזpAAt^p=5~[Ҙ[ÚٛCk㥠|;B}(l̶4hzֱ&IrLcVdc_]@*A r=1  x@B N"n#|$%&'))**/*))q)C) )(K('&%$!#;!D(p <  ~  ,5rJev0<%] Dڼ XӖѮϱͲyvƲiȮɿʻ̅̑k˓̺̓πϩϨ{.akδΑΤZϩϙ͈O 6I.&!e@"%)+.0M2C58>=95?20X1}4U9>CGIyJ.JIHHIIJKKCJHLFLC?0cؾڔUg\ma)F~-S; F7;H(-K>Wh`&RIsɰ׬hY44@EaHT&X'~&7'Jcׁ4 ̰6ۃۓXދ@V g 2tBIqvOT[yWOlC~% ޴hqܗۋh^؄քձԳӮTqԸճDG0ȦUj‚aϯҵw;lgfҍz·K'Ξ̨hD>ŏWƛa0hɶ ȋĐˁӚ[! D$  n c6 vt0"Dq!c#$V%$e#D!2g!%(,.i1357$:<?bA}CuE+GHIJKLTLL MMNPaQ_RR SRZRRQJRRSUV,W&X)Y-Z<[J\Q]K^A_5`Nabce3gh9jjkTlm}mm/nVn]n0nm7mulkjUigwfdc>aN_L]?[2YWUSQOLJHqF*DA?=3<:V9 86o504321=09/-(,)'E%'#S!M; *?mm}U8XK޴vIeg+dʳeâĮwĖiE! á{n aUƢ5͉aӢE2`تGlyϲ_З)ԑn؀߷*DU߬\xӽ]kwwjMngqi_~E2| BKV,=HEUw{/b@M ! 27Kڌ@߄AVEd$BG w N 3 a @#}.v Iv3n3~iE'fD / !%(+-/,0010n0/h//...-,*(&$u#t"!8 w} R'[/ IO,3" <%*-.P.,4+;***K+++*o)'%#!dcC'ek- kox#sT-'e^iGu /D,$8f,wC@'ߺ+*E'^Gv()fUa=ULmQvH`R>PLC c\ZyCm[;tE{sC۩֙z SUӳ[~ĜM*]aϨ@d Q'cߴި8Y ؀΃1ʙĻ"íޮyѬٺR؀r-\g}: |  ojUSf{ g A Tk#&g*.g1g4689g::;<>?A?CDFEbEDC9B@>=<<<<  v<TJ  CD $"a .q)G-g Au,#n:04"X-Wс2:H؋FgG USF9&o vHcMxeV`b3i`4P # r !T""W"!Hs%v+G-I "i#k$$%$&$##"""Y"! c2pfL cojGWEu(cH'KcbyH;(94ynAmX.rpM]ֶ;MVl|{Z JB"+w  lg 'ysvla? 6bw!$$%'H)J+s-C/e00/.+.--, +&' XU#u# ? Na{3 # 2f\{8o08 [ h((  ' +G8hO}~|$(,-#.H..0M2-58:v<=>R?G@|AB!DYEwFGHgJKOL'LK.IGEDEQGIKL_NOxPPPDQQ?RvR4ROQOANL(KJcIHHcH HG$G|FED~C&B@??=j<;9"8W6841.N+'U$K!Dj'%l6{G 3S]֔иreƄL񻹹ֵdʮԬԪӨJ⣭ߠ-rnbu{؝ _͟ɢJ +3k3Jmħ@Zʆʧʶ.˅˓˙VǐdYr=}Z'eiA(ApFcpt.MҤJÁ.ҹFz̍Ёts֤@ޑޭi۽ٳeׯh"ձx C pzZ"1!4De}0ϔ LAz܈;R5oO  1Wav Yi ~/{#(j,@034556m67?89:;<<==<<<)=s==>z?@ABtCCNC.Bc@->;989:b=AEHKMNO)PP]R7TVVVXYZZZYY XVeUSsQ OLI{GDqB?=v:8504y2}0-2*% -}]H W[ $ R R l { B&*-f/,000123w4 5154K4R32f0|.g,**'%d# !o! j+7qE5)o ' @ | > a9OB" k<; R7("JZq\SKXg tK8Ov'yW]ߌߕyQ{=w1F%[+ڐkفٝ^ڗ2ܕܵܩܪE)A<%mT| qq`y#'ru( 6'L =%0|*D#k^NXWQi=|=  4Pj " %'>+_/]4:A@FLQDVLY&[\\\]}^_`anbqba_\XTIPLIHXHIITJIGD@z<8 6V4}3.3221,10Q1 36W:,?CHJ~LLLKKvJIAIMHFKEyCA @r><:l853l1/".,*M(<%!;^ k% @E@s@ظճ-Ϛ:˯Ɇ'gLɹ-ǩ_*޺nnDznHɚ-АtҚՊ1Pچ.dpӣ|gʅݪ~ vfZ%ߐݮݖ(gߋ+J&ZھKاؑlڥrұТҥI՞=!қрm9ԘqПϲO]Γ΢]'%πhрќ0DjȻ EɌ4ʟ%;#ϗQԥ׏X՞O͵/0$/P\t I  0v^+)6f'$k R @ eWz `&+0F4a7:<$?eABCDgEElED?DuCBAW@>K={;k97v4p1.*+'?$ " P G = qw v $ 7Yt q4/ 1q=Va r 8 aM=ivi#!$'*M,=./1 22333V44E55-66q7q892;<2>k?B@@4AAAbBBTCC]CBAq@><;(9P75433{4k5h677t77541/-+*)('E'&&&&z'F(%))* +x++++++9+*u)(g&$" ;?9 \cz3r7tVC_ ,Bt.mb`Ũ Ɗ&ǹ'<ƍ€;vȽOp4.vlݮh?bá-ɟVȣ`6Y۸4ڶ}ٯYo۾ a~tQ1$/30/0Jw/e9.6RK6d( .QWUOOMOB5Y&n f!>"#####M##"X#$C%&8()+4,--.B/01O23X5(7A9;&>@CFI!LTN8PQ{S UV.XYZ\\O]]]"^]^^^L^]\[ZYYXXXXXWMVtTLR+P$NoLKIHGF FnECEEF2HI%KKK'KIHYGFFEEEDB.A?d>:=&<:97532A0.,*}(%":fPoo  l 2T!-D"<&x)+5---r-(--A--.D0)2v479;TyUUUzUUTTmUVWYZ\\]](^d^^^ __^ ^]\[ZYWUuSO KEr@<97R78 99&:9>987777S76654321/.,*z(F&-$H"  :_ ?Sn i(^Pk3/Vd4PktHq::ta~?i#g|CxJEYo]G ]r}-^s _  LEo /@ff; gXIr>^v%xV<6}`h6E9zW\O)ًۢ؁}֧7vx2ZڣܮjR7ڪӀ Oߧk6!>.tS`߄_sK crϑ&# f`Mq-+O!} CMF\=|+  / .BIPt X"$%7'()M**+++***)((x''&&^''())) *L*f*~*****+d+++3,X,k,i,p,s,,,,,n,*,+x+<+++A+q+++ ,2,v,,`--./S/h///001l22,322#10/-|,*'V$e p#ul+d !!![  q!1#%u&M''@'&u&^&&$''(M(D((''V&^% $"9!k#g 4@oh!*= \`l}3}0S/024x56X89;V=?@B)C:D=EjFGHIJ_LMNGOOP{PQQR<;:9 9:8V7O653N20/.-,+*)('&%$#[" aP-Q;-'z^UiP0a &] > WA *g#Gkp[A5&TkIߏܷ=إ(ѫix ~* W!!!2"x""9###)$G$`$z$$%%h&Y't()*+ - . //012=33x455B667N88$9E9H969'9"9&9 998G876543W202/-,*)+)~('&%k$i#"##%'*t,.R012345 7g89;=k?@6BB)CCBBBAaA@?>9=;9726<41.*% m-/"=Ow8VuV w <3<(}bf{ C+߾ݴaJX?Ձǥ{#> dÖ:…Ÿ5=qˀ̷(оyկ ,\|2CڑR3ڱ>̦ψjo3ӮԎDأrhcݎ[l1mIxx bgmJm&{N f0@b"u$u%LL;Ktvdo *[|N w ) I "  "#X%')Q+-R0246]8:;=?AwC,EF2HIJ#LMMNNFOOPPQfQmQQPP`OyNMMMN^O+PPQQPPQQJR!SSTTTTTTTTTTTVT TS\SR{RQ]QPONMLKKIlHFEDBAt@"?=/<: 97 64s3205/-/,*3)'%&$" u<Y 2`(h7&>g߅A?؉׽պԁ0зϮwE˨ h3ȧ(ǶTųr&Č0cx>p۽%\5𻙻 YNƶy\|ͶF巄((5'W3x$42̔I΋ХъY'{ӵӳ~DEӟԘ0|גA؎H?ڴ Lۆ8ܕn.eek<x!AڨV>p5}M-pK+O[y0N } , m\SL ))CX'mu ;u ldW2++i z~=t{3 72G xpP=L}F,4W\'~`-FSx=i;CT>F&T l9^&"#0$$#$&)3-03647774889:\;;;;;Z:~98765R431G0.-'+(%"qMy/_ : "$%T&&&N''())):*y****?*c)@(&%$#@#"!"N!T KY$Bx@ eTwW^.x+%u1%b4Sl8^wD گOUӬ҉jFΰT xƘj,ūm@"0WŭƍDa];'9LJ#˙2ͺ:L4+ӳXP֭M׬(ؖهڣTߜ-w V4" /s8 y FD|i!]#$%&'0((/))F**w+ ,,--?../W011"222533&44567{8p9T:&;;N?@@ABYCC[DDDDDDD_DC;CRB6A?>.=;.:887543~3`3344454w432q190/.-V,++j*)('H&$#$!<JZlzoIW x ^z3"vw?Epb91z>{X)ޅܣڍj<*1=gʖƒŇ|]S?{PþW((d;{\nǰV6ʎD˲;m΄nϕYXkӍԟՉBLj؃ؑؗؑp;ב2}< )Pmvc-}!ԯԪ=@922Nxյ/^֕6rס cAٯو#ؕpS#Y8ֱCw`Ӯ^SLϧJb ̝aTġj+ ƟdǷȶpΓGԱ7ףڪۤRiN8Ys~ Z m } R q  0G!# &6(7*+--6.=..-.=..#$`&'((((T)*,037x;>CA C:DEEFaFF~G8HHIJJIRIHHG:GGGFFD C@=:7 53b1$0%/O.z-,+.+**j+, ./00h/-))&#9! *"$Q')++)'%#`"!!!d! & nP -u & N F Z GQ@-bp< I "7Itw@Z? #n(ARyN r  &   3 @ "YkZc )9>Sk$/1' 7ly} U a C  Q M&|:'yb  Q ! O4@ais ._ T3<^@2,Vd)2Xpr,k=[D?J Atpx3Ux !  k: -   +m3!.e<C G @sh4+a(^C^vCsT1B6k0 ߑ5ـՒѴ4PōÖ.-mvœRƊfUę ſp"ǘRxʗIʧɴe>Ħ="a9?FZοؿ¿ÿ=IeTYTw)gZÖ Sġj,i{wQ5(FwƢƿƷƞƍƎƝ ƲƓƂƂƗo-tȘȯȷ+ɱvXZRF, /K_P(ח[/,+:0ߴrELDO.uj_ A 90=;, :rD! !"~#r$%&Z()|+,@.q/012645688f99999O:;;<=>?3@@AMBCCoDD EEDhDCQCB"BA"A@@W@.@???9>=;6:87`6i543y231/@.,A+)('&%$$#W#x##$[%0&&['y'-'m&8%#"w g-w=, c + I  d   : 8(!Ug"eGWuc 7^a=~kI3&P F +T^%p#RIl^%3RaO$q\YhyyqGfNRT^L*CYwkm%5@G`XwWZh5 !M""#L#Y#I# #"!! flc_/Ep o'cH* Y z !Y!!!D! $~4Y K@ D o KCV$ , 0Tt)5:Jxj9#xkSOf % ۅ&ڻ4فت҆#К͍.ȭO'ÅѾJԽx]yٽh鿹#™9xIċ3rȡqD=^Ȏ˗"Γ#aӚ֨wJ3 2nQc& PEU#%pb8+zpR _0'G~[a'_ .Ji*;x2c>fpG9Ij8)OJM--0kT`)h.'V9%knDM#./ J o P  7 @ V a ~ .yD Z u  |^`V[DYpi(;F\o%hzcGC~/P f3TbO;duSQf7j=.` $ S > 1\q[(\NQs g!*""#$%P&''P(()()-)#)(((&('&%$z#2"!*s.I:a#OY|  < L D ( HBC 9Tp~^"JE60;@>0#tCPY9q\5\"a;UEq2J( 1 9 I f Z * S I z }2;R eJ1^|1n+ O Z H R2eow( & )6J")-Q;   $ !qezWHlfEQFt(cy{RgnE#_Jj_qZq12=UAA}!kwl}2n yO/ 1O ?wGfcF;ZKgi,NAYQ+?z)cUIqd;H RX(QܳٳrSVO`D^߆oD24TP/A_oF:LL,}.vSuyht/O\qy`jx o ._l^ne!#h$z%T&''()*+,T--.7.u../K/M/.-,*('%$1$D$$<%%&&%%%$$n$b$M$2$###""!F! , [% P!9""##G$$$$$m$I$&$$#r#"" !5Qi'T Q _ .3a#5e[`*07:=iFKI(+|&w7|0rb|o {j2fw jd-h6MF ]%+9Ky_k5H baF`.[, g~E.Is b5+Yw~rd`}7bvV +W%\ j Pn.]n[5]:;OS\44ECXu))b?~JZU<7KxNo>gkP(w?)fE bP'BMM;);e<cths|z/ $~!X }D z `P-%w e  N0-EKQC`bE s6#(Kxa,zf\@  FiOJ1KI?`?vF;Uj~S-~Z%$#S"} '{}F>S$N8vWW{#(*l E)a? % $ ? z  o} 05:fH'mrfcjrwrhWE2c6 @)ie#Yg9wO'{3,\Z>G|%v`PX|ALBNiH$m^;NKj1 d.m2 e XFWz+#F(  w ! ' w ] J 2 t  P  `*>  i  ; } @ ^6 @  / ?  K?p    ) H ])o "#%$&&!'.''&&a%$##n"!k! G zx< JGp$-[du&b%Mc\VKSc  . < F ?3jPRrUnv)Jn~|_W[9^DkecotydI%7GVX[XYRC+]. D&1~;lE37=5*&&#a#T8aL93 i~:  ` !m|bO5p3 }  : 9 I @ ~j5]ys]ORf C7K'U(sC+^qPݬR۫p~׬טׂzfO&?ד,h؎زMٌFl2ݿރJhk8i/) >MK,J0gL + 6 J _vH)!;p !"v#/$$I%%T&&S'''''g'U'f'''|''e&%$A$<$$%&y'/(}((S((''(](((,)|))2***+)+ +**=*)))\)5))((T('a'&%$?#! 'vih][nt t P \((BUl:F jP^zis!~xFߪ ީO?ݚ!އI?z@i2Wgߧo9 ;yLggGK=\3"p*w!q8pQXXI (dYW ^ d Q . L\Ht:VG<#\X N`)Ke)OI_ !U!!!!!!!!U!  Y yjih & c k D9vl*&CZ,npo|O( 9 9!Iwlmukpa+\"yqI{Bv,op`|lX@NPz-nXeF-?5s*kL>wPn%4>*s-A{yWHt>WyFOjXUV)uQ7`neZPBDHQL>" q  < Y t  g  "  I #v6{ =!!"2####~#"! ! O>~+`& f 1 b X H  6k}$46APn9p UD,jhw@!G!-9NzIyJ ge`  $d v"(i"i \   \ | X ; !  c e H )   ~,3co{X2nQsg"2Ow:Iy[Rv"\&$}]IIsQcEuev=m"Kx p8+oa sps n!m:H , m a SL,\ XPNjIZ4 U!  Q!![""""""""y"q"n"d"H""!}!0! 6 Ol}XA38@u    & N O;or fm.[QhiaQt}3 GS}r3:Q;+$PIzzZ:5Lqp hQ>"q,7!T:?L[Q({uF^f0 syMPh M A L  &  >Tl m@5. j7d&(JHj)mK XULez.=nt_([:z]pzOn:Bg6d W_Hsd \"{*R=_Q;J HV#4$EVoz'I~2g, 5_Cv-6IY3#I1w>sb/_/Uk 0 _ T .Sh~8 34*d  a  3 n : ,  1 J n     t A ] C VPG<2W$Lz!>SZ`TTGIDH=. \E?8<+T0 &MhxeE#U)x\J'ult~bP;1$v1i@vP, 78Gyb0Q MTa%|Sc,YpYJMG\H{:$j;.>[qmPD(~yo x -% N{BQ@GP~ P[{ ^C[T2+Rm|gbl7 =PT<U`?9~'heY QDR,*Pj>x W:TWk~c 2_x'W4R4\> `]2 Ub 77A>t?'D@(i";i $K-tuP$iJ/76$ ? . iQ<!}J5D>x5Si2wBi'T[S}H-:cIdIe#?:K8C9> # *p>.7BITo> L q> <Y0Smom`lG9*xqS% \VO>ic}"y1(=:0@\$Kx2\Oc{!3G\juwwqjXCnfbS<}M7 &0::?81%u*w^;$,i:AL7 gE%>b,X!XdRsBG0i/,'G@,~IA{ MV~@ !`$36&"3nl$cC}WR"swfO58 *bCpX<+% : E @ ( ^Ko>] a@;rZ4wmb <d@k9O]_WNM\})` < h  9 ] z l P C @ Z $ ~ ? H m 2 l s K )@`d@7=, Vg__}CY7#   t p + I [ j o n h U ;  F yd>ygUh5y0FrVA, [5 g.g&XC[ffEyP1eTMF*?]z2AbnI'j]M7ITY\[_bbfZO;vK,|^J/weU@+ s$b5;>\X3%Bb*Ic !)45701-2:H[r'AdQ$RDUZijqmmgiiow $5DHKB:2),+1+  ?RckdaTRJOJRIJ<4iBw_I6+$(2CZk~{zeQ;. pcQG9:7GUl#686%Lcd,CL\borz|{SCXYO4pQYQ5p@_e,]!wl6f=I> ' O n | k ] P 3  ~ _ B +  %1wJx8EA3rO,@ d4|4y <z 1K\ei_QA2)#"w`9 >M&i,`dH;CdwM1-6Xy%C^cW/j(0^@MsonlgK(g+`B x3EHmj[E0 g,ybM3oj]^XSMB6&wbM8 7mJ}Dq9[~ #'(5Tu1M`q}saL>) sfPYrW=#y]MA;63.% $4HVhrql^WLC9.&   #3DYp!4Uf>o-e-<N]t j@$ Bo0e9i&;APMQJ?4 rS11hD:Ru2TdiiYP>3%{dB'fK/|&c vlXML^zxbG( %(1=Mg *Fj3P`v %<Nbku '7Ne|qR.!Fh ,9FVbq}~zfW@& qN8vG9P3Mb~ 6s &5?HVliA!'A\p  %""hA]r_H6yT9Y8\H 1]F~2J^m{lUG3, o:1Lp/Y}#,6?HLUSYWTWLQKIG=4! (9E[f{'5=QQYUI?/$*,631.!# xpc^SMD<3-! ~~!+:BOW_fjqpyxzv\L9'$ />\x@Vs @q3[ 4Gb (6KZn vq\WA5 W&vbP>*|laUA7# u`G. #Fa  D_~ ')77;73+! {w}vwrlc^PNA:5*'  {wqpou{*49?B@B@BEIMSX]bfmrw|z~lsadRP?;-(zsg^RH9,_Q>=;AEPT]cktqp_RG6- }sd[ONTbw&-5' )18864.18E\r 0>Vd|)AWr)9OWaglu}~rsedZTNFD?==56-( srdf]\VTLH?94,/).,.//22:>JP_eq{~z}v{uwuorbgXTNEC=88/2&' }{urrnll`bOP=9,%q]A..2FG\[lpw}ribXWRU\`nt 2@P_q);CS]hnw|!+)/235;8B>FDGGAD44"  '8I[l|phUSA;/jU?4)+*6>MWfok_KD;::>CEKMQZ[foq}|z~y|z|{||~}}z~|wwqokheeebgajbifffac]\YTSLJC>:602(,&$  y}tpohhecedcb^ZWQMJDD>>660*, $   %&)//556775663:5;97>7>:=9;552/1168ADKPPZT[YYZ[]dfqu  "%(+11;=FMV]hky|    #%!&)*01598=<@CBGGMLQPTTRRIF8/$    '0.:5=:@>ECMKQQPQNJIDC<<31)"~xrornur{xztk_UG;. ~ttqrswu{wywsiaWKD80#  %")(,-//1/414323/3,0/,5+6177;>;?:<::7;79;8A:B?AD@GCIHKLOOPQPUQUTTWUVXVXXVYWXYXZYZ\Y_X`]_a`ccfeghhkjimipknonooponpnqoqrsvvyzz}~{|~~~}}~zz|~|{}}~{x~u{vvvsusqrpmqhlfed_`Z[WTSNKKCD>=852-+$"  }|vurmneiaa_Z\WWWUUTUTUTUUXUYWYZ]Z`]caddehgjholpspyu|y~~ $&)-/24799?<CBDIIKSMZU^^cehllrruyx~|~~~}~z~w|uyurumrkkifgbc^_]X[TWPUKSGNFHDC@><98421.,(&#                               $%$#*%+(.)/,/-/-.0+2)4(6*3.20323454757778788897:797:4<3881:06203-/0'1$-%(%$%!"!                       LISTINFOINAMNapalm Bomb goes offIARTSven "Yamakuzure" EdenICMTAudacity 2.0.5ICRD2014ICOP1989-2014 PrydeWorXid3 ID3@  O98;0 B#_9*IMJ~GFEDEF@GGxHIFIHxHHGFFFF F4EDEEDCpCCBAA@^?>>>=<7<;H96n42/-+ *(%#!\   AQr(f1ް–<ŴEnH&LEQaP\RůP^LD?m$:80$ Z"淛txĹP# 9 `U# &''()q***+++v++ +*x**))))('k''&%$$#"" ! #s   x 7U{Gj( PoǷ σCoc!}' +,,,,++,...E/$0000+1Z10/7/<.,i+>*(# H[ Tή6_=ͣȅe§jÂp7ſz&Ä~k7Ê%~ƫňx֊/qv-B4w0'.26{5371=?AFJE:r87AHEi@eDLKXA]4FGA;m4 rޫ7.vHO G7\1%8?;0^*)k_&۴@D) A?G5K0$4<޻UsNxJS_1s!*# 547/~HIB'*N>@6!4Q=D@d6N3:BO@C75A>M6H\6+r2=;18/ 7;5,.:@7,<,134-r(M.8:=2k,05. h#.2d2K6;5*&-$08-;:~71i,'eba|b$bv``ecbZTCZfg U+2Z ZK| ~2KH5&K,i ?:^a):!H/ T;#[+12?.b)`())d)d**&b @"^+:LzZVadffLeedWB=(-rE6Q=-1 ]$%1%O''B$/!#)079!GVh_A__^`\RJn3.AlY_VLHqBl6+*O0L6:?E'KPUXWSL GDB@,?>;F9P8s73-i)\(%tSvGbhbǣUh<ӖhXxuIHt*\ʳԐC )%!,  L߬&[ή; JŌMW `}f}qxG}Nzwld}z뷈It]oιl ͖Bf̛pepǝdΝdhTo|FNc Pi4'm.04>GHC?}=>TB5FGF|EREC?":p5|107EMpE3+4`B#KPZPejihJhrbVNMQ [beeYf3gfdkdFedt`ZTkPYMLNPRV[w_'`*__a^sPA=HT?Q<" ij]9L 5#4%//#E8QL8֛5V *)"+:[0(q޼ڴ, \Y(al`mP(qOKCptH{IP6MREg6ptء׍axވLz-np`iq/];;Nҟھ<'@#?VG' l9+@H}FCMUSiRsOQ.Q@>FFB0A$<'t7(4o;0/d'C)'})+5#B%T,Z+|\26w>DKWs ` m wt" Ypi d-]w  Y;UbVXW 6[  9 cep:{0xp$-0-k*)+-d.,'c^Sr# RR Q Tr*Wt-W  YY  XFa YY BY X W D R L DV _5% 3  G # 5 7,I9b w~moe[ T QWy  ^ ig o/wn~rlU>=#A B!C.D9z=2?9 6!)(,"R%$'&$$%%h%"~Tb7g KW `  |AzeJc;?%l1(^%O ) f'`%+( 6 $"=)IASlTPS`gMD6݃&̝͌ƶʵ׻8ǵ\ēXŁ m §Ir0!ɝ)˵O7}ѻSՠlՅEՀucbiT`ZZ=`:jvZ-r ^DJ:fM%y^%)u!:$""H$XbElrv.x"tmt$k4^ QU'@/{ @g #3 { @`Pf[ i l Q w~  + x , m l  ~_YDU֤R]yҝ`q͟aǡ\̯T>ʬP+'ӻw" G]ƥm wءL "D! .#"- c /"!fM!"FT؉ ԽG'~Sd¬#7řn *! ^! c":Z B۫0\bߑk[ \ <˺ubsЬ֭<  ) +P&!N 1!""_ U n<|D}XÅƓw-w?ttń9"DŽɄ }!΍ay!ѐ:tDs$ #w8K=5>16<~>>A/DoCBCE`ECDlFOFDDE=ECCC$A<7g/k@z ؑ ,١X k'6'==<8:<95f1 ) "r3FKD957 :::D:9751,(+3+:e:4W/407@D=A==H?D>x:78H; =<;P9877Q751.R.046U4.(m#TSB OIL s C?N;5 M0 s*  yX  % q @ gTLH @y (P74nEL~[ m4w[ }  }lz o  p im nUt`+}ym0-_w gLZ<. T 4 v D   O 8 r&'2* U)N*?.A*~  +`q&O!c/) -,߷FTl 60 v _, ;1 u!.H88208FWQTRMGA;72 ,*2? E]>2-/ 8FPnPH=3#*!&7I TQF4$ - >LOID -I B  %}$z !X.77329UB E1B>> >$=<>A@=*<<;:8:<;:645 76444310/ /.(.-V,+F+*('~'#'|&%G%"$U" &!!e"=%$"A    c @ DX E5  ٧Ka=+/  ;ǹ ΦԲ!%ˇ0ըŲ=EIQS]յeipˍsA+v~sꃎyqͨjN@f^'P룱Fި:Ϣ*p?L6ى$H62/ɽGBZm6 U~  y Z6e8[LCD<6n 4D 2 5:rB< LڮoXd¼Vy~ tF_ߖ6PŪ?ɛ}.ݢ֥b$m ޤ𩧱ݧ*of" l!! !@"""##"  9 '۩ CW𰰬ĩ 7Qk/BɶAıP(ȥ:bԼvĶ҈ j WF I: +y$D)?Bq ,<>;::879<==#>?=M810;(@OHޣ"bNӓ҂{̟| ͏g̩DNͽӍ8# 2E D<:>YB%Br@?R@3@z><<:<4$@ D ߵFڸF7׾3@tտӟ7Ӻ1ר ,l".2-# E'=.+-  B i !&>R ).&  9ENH  '037$?HNP#RAVZ\(\[[+['YVSP"M}IB5#"dwc s92  "2n5, 9H ]&"#c )tSx Ah5!gJ&*,.4^ANVZz^@`{\%TJ?f21& 0!M"#-C;]Pllf*cpcb^ VNJLQWZ[X}RHt8!T }#%'&s 8N]'.2g4033t54`,rW߶]=#&:Z Z 2=%"%'+6EPnQL JLNMKKL I?4(E2 t(~0G;7)-)<%"98|ߥ1 ()+*%h}"51M *AH?,7?O@U:J+=85C)Tl`fkr݇ze ~wKЉחrx!k6AE2B]2bX!DWNS4&J(E (BP?PB2.49JSO3C"3$&!*28 ?B9 y ېn o ''0URi7b'u ~ތgڡLq,% / Ĭ1]aނ`sI N K\( ;2'ްBrnճį36@߽ z%:$!'I A{#n C(80 ${$7+R$7/ (%P]+q Z&@5);8o6n:eAEFIMJKA615=DE@927>M\egBm|meV:GMAHVa!ci^YXTMB930C///H)_Wyz CjQ \MQ۰ЇMbQ˵oORNJ \IgRXv>uޓndirVZfIo: C0?]&7h!#" "i%$c  _ pE k(/j#*2j2:;7o ]=a;;#""&;-V36R652v,'A&-(L,/0,0^15";">>>>>==w@ B'BCIPPIJA; ;<=A+IRrY\\[[\^_]\]^<_^Z#SKJQ'Z#\WT)UyXYY'ZYSH$?};;~;'9461)':2$$^ "W & &<'{.L4ɠȖ7)ƻE;CwȼI+MEPγ~[V[᳤W%W賓SϢhRȩO&rBԮ9ȶ/Gȋ#ȲϸcEi" S 1t "Q$&(")[(&%')*')&|$$&'j'%$" .$ Q$%A0^46) 2 $ D2/.7&Z \-S _g  0 / } _[. X   1C- =w\ "P(E0gu 2c4SF?GS S|Yh6\9!f!@pw'23-}%K} zR#x($Mp p q V vru|I!Ys:|x*Ԍѻu DlebXcLܢ[rݩW`ʱ;HȿҳA'7.V}#! c%CR  h vuGc%(&)'-4613>.*n(>&@$"t!I `LT 7 Z9#` J>\X "%7-O9ELlLDGA>>2?A?>$?!@(@=G: 7y40-+".@0G{?1'L# 8!l%()($tdLW m Hu9 ,c !V`\ g'7c?Q',c8AxIlTk:y("zb.8=ԿˍJSDͧt\Jۢa@c7eRaVLLy< +Z  hh"@Y&Ls. lTuC0 (&b$Ց'̫/+>O 1^srNT6cYq[.ib bzdfhghvbB]v[B\JXL vLaD\?`GwFJBLE >B ? {  ? J @ * ; 2 6h84/k+)%%I!fSynN7Vq,o%!_&#'V(c$',-Y/^/;1!p,84,n%`#"f}19v! Wwb\ T{Id ^fE!vU,S8RHZkj}lKW*TL$>k3@+& %<\$`#*  1( ;3 E NV \ t g f s { {xXeqJj\U[NI4@?!73d;4Fd.( a* ("(*V$"d:"  !+14d[{|.|[wp  x"W*E9C>OF\gsC ;}}-wCq Q#ie addadgJMn)jsi|Dp xk&^aSXH^[ : x 2 u ' . A(t lJ g ?AT>  ? 8!#Ly)B*Gc3gt5 ; B D SF|GE 5I/ E ? = 5 +"!^@y5 (d XF A՚#ծ2#?ѳJԭiXѝפelHp8t߂=&{zxj}Kv i_aV5 M >L5 H$*'W))()'&&'"'$'&G&$&b')?,'-+(%,$$$@#;!!"#E" !!E#V$%(m*j($$(,+q)+/1S/d,+,:/64:^=7+!A!&-1Y1/?.2-3,*J)J(&#:eF"}$ &p%!^_R h~I @"D$D|l E " QFa@v|%\}9a?1aߊ֑hZۼ*kuܼ@7ĵWӗ tӀǸamȟИ׏\̑ZXҪ˸U4FXܨO]Ȥ۟e mlvCw rj$*) gK$'g%"!Mo_w@reH#A(J.4637/01!.#'$'4) $+aJ'.$x 7jF JSZZhj\ XE7#K  ?-  zL So1F V i Yz. } 4sqo id g8i6pHy\y p  ` hWlK 7<=3 'R q   g3X $ 1  ==2(NjKz\9 3UNZnI`}8f 05OvmDFi f& bJ . (E/ Cn\ Ӛݚtn~ZnIB?:";Y2׫O˺L>D߱*^ מO<߼G^|tddQ53?]V1' );6@ GiHGCvCF: @ 1$)5! !Q#%%$""Z#$$"I" $&''%"  ` #"*.+"'$+(,)q&+)] ? '!!"_$(Q/ 4$2)#"%%{!!Q 8|!$,U6:2$o  j"{"!"H&,1@0/)%+592) # J(+&J"~' */)$5 '^ `$ L/1|4fR kTkۢسRиc=К(˄˨ qƉ j:)JRȕh ɔÖ#r $Ȟ&öâ).++00m,0ͼҁ Nۑ.<]NAguA?;:8[535=:6:1o'<&/8@78-$!!7! Z 0h&^ B :` G+= K]U m  s g `T By7g*v o1',D-*I$ =)*# l !#! e; $'62+6O.9x #V"D!-"""F$ (*x+Q-)132R2464]0.0^2\2*21K.b(#!y ` !%'d"Wg!& jX$(o" re'+/y- ? 0;J;86{1Q,,s1n1% e $_+_.,+'X!PN&N*.R& eTxWgBb&,q wccy S>* A j 0@ "C n3[/JLЬa ʖC{5xÏWaªIſ~3ؾU^º[7#ٷG2̵+:н?ɸʼHhѶӓM (K>݂IɲE˷Dآ=ރ3,1!16 7 6 ڜY#؛=%[F(֒ ܃ !QU#Q5O FaִiX2ԤӋgdӑ v5܃RӃx_lp˗١fh]εˡݢ] ڠ[/qd$ܞf}ޓny#|Fq0`X>A ,~ Zk"EGhބ|۽ے%V+׹}. A q ųb2MQ\ɢ»nŃ?ńŸpǕbʸ_5ȤH_h˞DmhDywվ[4Ժ 1}N ? xph< B u pj`Cu2 )~%)5$v H _$wox qY T> C   q 4=)<98T5?,n Q'946`-]#"(+f($$c%e$M###d !%[&" P @S.j p  "C "n&<*?,+V*Q*e+*%e]u . | sR%q%js{C} j  T>X%35R ocS `VH4 <&DT! ) i:XNQ g ypxU ;E G3 `>M۽IutLMLJCAP<20, +W9jH.p%l0: G w TeDozy mHa#g)-,'a# {\-.<\8& ]  Uc"*.2c:?:*n!1.t5S8:8+y} N(1=qBV9*k [/CLbB+`$7 X&''c(Q)),T4K>EHGID_>85E41,>%; } 74 Q!*/^'-)m"&5@;/+*+r$D ^$,/6?@E4Br"[9C?9v9A6'ZT2g?<1N  1lz p"y,1N,#( 5z |.@4V0%fB c-8%7E* B?0 7: d /S&.)= (>b , Ib q4T%$3 ?#F)"X*t?RX ^e o\ r^z | Ky  uEsj!Xg V'0Y- $LSK53C G:C 1M,wY& kk%ݰ^#~p!Eݼ!W֞!.#^*w$Xݐͩ $M,΃ؘ̄Aڢ n}G  h$-gn8AiK[/l  x B}r?"_(o+*'&] P!l#X |T#*"3SO L Yg_gv!r{wj ]oN}Aٰ0m 1H%12C,Mk_2o(x&gz|{%ymј]]M4QM= ߭eaCˌ`p3?Y . Ɋ1˿ͱZҙ*|Sy@/]ضբAɹ,/ر!lĭK((p׾k3ұKYϳsd,qFkť>3>DhQՀډߗ>O#F%Fޫ^g =zzwجm? e`f٣ט2jZ'wKbCmjU<_$ 7$ /q@pNVX \ n&U-)L EO? = 4< @*")   ;"9H'/ >!3"""#<$D%&,H8,DF0.5-m*&%'r*++,o/0//f4993^,(+.j2K454X2=7.$ - G;hbp!%'u$vF eY#P:JbٶKRFU2]K0i{~gkNo_ R%D<%2/?)S)u'  *V b( S.+  0- 8 8` >5Bns?94w20<A'\ _6aH1s HDv$or/8n;-kK]| VK dnVzr!} { q'{ bwj[_uRk@v3( w}= N ^ k4'29@MV Y,bk  w@ ~5 { 9xw9kt(qlh$>g]| VO A8/r [$ :Ӷʗ&̨$̤1zMCMͲZJϛrόXaѪbCԄw&ը9 j!n}46HS\=^ׇͥVK ;$p yB>6-0*#,$17-! <2""#%&'()i*+-,+P*++*)))(g((q()U,.V-*) +,*)!+,+))!((().208(# (/90*')K, *G'')*6*,-,0 9<0,  &#Kj*j+)0&1V .}1 .' (%(&u+)4O:?Lrrb4;m| !kq6@fҟΊ[SlNݵ&O^RͲUէۉZa؝تhәѓBpׅՒӃvՀԔc+֣T٦ٵpE|3%!v߆FHޗ{' y0q0 Hh<x J `M m o  D) >\*M #  0 J ; M K @ 0 W`Liw#m) +1|/% {=~!wupbVKSGL@D70"* +-7/q*75[?NKL W 5- d Ub hqjg`b YOT ?~ 1 =  n T  |  ,Z(?Q  ^jM{ 3Ou p  VpDlm h X m n p;mrstotHpxujw{YQ?rxjk8[s@J =,) }o0AbWN8]5gvi[jϲҔfJ͞bϩpXϳGz6KZ%"",3bW4$*.5'.! x: dBjb/߆*5\A5m;2) ; sP:+y Jof,rWt  V2@Q.+$? <g*4= UXr d%C&$!}$  L#?j?:WZBn}~qskdz b e? k ub@z }qq ]M;8A$1&/?8,+G(#6Og" w s "$g&(**^*,04\6Q8<?b:1+Q.j6{@JOzHp7z*->OiY[WLM?64K24,'*29|~F֢Ȼ…H̚ҶsGϸH=4CYԻԚ>El=\83Ӥ܊6ߍ_3Z98?r8A LJU٫NY]_ui܇m7ݐgry܍٧wEv2̈uEӌxuێl+jOۚicY9QZI <@0}ڣ" hE,@U9%l-W7ޤ՛;BоUCBع3JTMϹ˱=OOQͮbR٨QN܌N4LYF?1=7_7H/'-',v( '-$-1r(&C #l !  -l2}!&,4796/*+)-}+'$6#! q JZ` r";Wq} `M&?\6mQ.})<"n!#k(.n9ӑDVԵM \?Ҝ}dݢrÁͅMvގoԙڝecѪQW1˴!Iտߐd"A E5 G X BA76D-w% rQ u %# ,!!5: S.3=-J&&+=,)&$= !4+z8<7./)'v%""8"( 3:5;86530<00A23<32r22M22n3!30+!%. !"9"#+9AGOQNOH)@97R:.>@iAZAA@?]<60/b7CLL`D~7* "]!(3h3 %+)4@ &'+M10+*^0141,p++)&%H$jIQ!6z$$y d82T/~|\υx;o6hy^U݊TyM0۶ޗIvCDC<7>DDH7[HջGA9W{5,l ۙ ,p8SLEշֹiK܈׫ЊSĨ=YyZOX٪=QJԾھa?y4#"ӬۻQ"&qC+;*|&+c!!@5 # h>  , /)#7"##"B!}!"""* #$%!IJ    B  5 "z=7  [ J  "b)7'16i6J9޲=;|9];: \; / ! 8 6 7   30/~,Z(O%$F""K#Ez }!y!x#$$#S f!^ H"" >#&rY%)8*/**hޖ21556528ޅJ7;;9::]G66e߳8ܓ;m8T76<.h?=O>'?Ӿ߸@d>X ; <9:n3  04h1`v*e) e& % ' $ C%a"  _$uo q q "7* *? >&.320.133.' 0!$09<);S72/*-,,+.(E  - +!!#q&*()-\3#75/)%#"" '1=LC?622442/./"/-+#/p>3L (0Y8==7g02,*8(o$!!w  VF"&n'%"!!"!y-t!%%!h[_pO= 6 .##  "$"  )}3"'.A4952-+B,..I-E*D&!HC "#"A! :R&1.j22/&+&#! $)--+(%T!P( D 2p7i5= DCTc @ ; m5 /%n &s~M`$.>5~?@pr AB% C e ? 4/M.) h9 o] 9N'1 2595^64ܙ2*R߿&{ 'Dc: QU 5*T̾7 4i!=:"̝:%N“"\!Ӯt w:'# ukӝ & I94h%w*ۄ.B;3߽:&>ɪA۸ߑCxGbOYmPdyPTVXfY3 [@[ [ /X :Z# V NO MG"?$" >"%%~ 3d&U h!#'-<10-.01_/+(*.0*-'$*#" h4 C L;S~~[ _yd@g h2d _ ]9 YsOHG3?|:G3)$wY o . dX  > R QPJ*+04ڪ/ *xdDwh,O",  vI VY  N $$#"+1n/+&))^)%#+02j1-'$H'-1/;,*)('#+k4>D'C@?>-<73/9,*+->,&K"&U'R#;$Y*r+&cH ]+k4U5-1#qv~Z ]y  u&qe p o   p  w fk~ l 9 y Ro e V a IL ?:+" h   Tu$$'Q,-z12:/021.2331/,-C -a,/r+.%tt!@eZ?;  .g;F. Q 4]!dnrs sYo\(kOljgZ<a W9MbD[ 9  L-$  2 4 g  r f 'k19=;,4,(()+(+&!#! C  PI q '8,> $GqW^_dlImp#'qvkewڜڑ_YXLC-2) Fg#sIPya'+:0-p4`56498j6D7_q1т1}؍/7ܾ)ɛ+4Z" ݂&Q Eؚ)gAl)K0ؐț+_ճՏѴ ] j  %   "y'(%/)L&|#9n l Q *4A"G6"$!   Q!,33/,-//I,(&&d&$ ~  V -! %!-$E+,%6*"<%'+/D0..j2F9hAHLFL=HC@D?>?A@B)@;6?2v+!7")1,,-^/10v014&776431/p-+*+7-,(%f$#    0@5 =:" !!L  _ h  |ҷM˻`oɈ ߬L&L4ya>JR   ]af.gԎΖjʚia˜_suYGKߡ?*̱V4ӏ!ιd #J-$5<=4+# )(3m>)FGA7*0..-#)!:&*+*(#d& -l0479: >GDHHCm>:5%.%/ ?4;G VAH ().C," @sCAc?7 ;d5$%" .%/8J<-<=AE(GEC D#HOUSE3)+240( !u V%ډ ޣ  , :A H&'q$  +"  " !"#"!," $e&&$!D l HEi< P! "&$ Al Di ׌?%QDd!|ȃ޵! 61 icʘt4K{$|(0 6 :*6>#"#$B$*"y;3>;f;i4C4/2v,f(Ϫ >w  '0 771*t&$ O!$'(''&#"/;@;1%{  < Fzp#$$$&),-.T//?.,X+*)(R' %#$' ,2:4@ >4)! ) t   sBli#  o  ݨ$ ʝ n ˘ 8 ӋqڂUX "S>u $"#%'#$ :#@!@#̉(y'$_!:"J1ݺ՗=W eЂGWqrr  n  L &(~)*)'& (+/36654 4F43[3 426787(64b2.'  - zdqBs${ '*02r8 [<> o > ED,C@.L< 6t.6*-#fC  "');(# ;  "I(ר,Hޯ+so,z7) < _ ( 'd &&$($7"IP %k +śww\ؿFr [D"%&h# o '1.4 9:=832/.2!674X/),T.222+_9 #$<%&),E.B.-M-G-*.//J,&!I"O&)+,W.02\7Z<$<3J'Y$(\(#\ ["WH\T6OO6MDY;94f4*  >C iئ SF7˱⵳,޺ڽ#&ԉ$ܝ"}Lm` գҥfAͧʒ[͉&*) uۣ% 1 { #   Pu[  sq ":"& #? " \F  p| Y '-+/-*&"!'$'(()+,,+ *)( )")O)*/"8BHI(FA??+?<6-*"*i*#(*c)'' '*2'=DFB$<@5/r-..) Xw &-0l,%;  M ( E^9F  gS-"j ]0!G4 B ھg ЌJڲn { fW V< 8J k  1!%(=+-(/14763..'o ; 1$&%^K(ܺU'ɒ'ֵ"$$?  !%#()*A+!*&!! #a#"&"(#'%$$!%&&|%% m/"`#0!?/%X0M    Rr "" ! ;u @$A)|0:9?)tFJI󠵞ON䝳O4O 4G[Hy§C柾2C̗=8/."%)/6"; :p4-*)('')*+,,' |x Y>ߓ~a-I( }  x\&!"##$%%$") $*(|-2S6.76680<8?@DA2BDHtK2JD=]:-=DJlJ+B5*$+#$&o'(&$" #!$y%&( +-03677789;=?@BDEgDC D DCDPHMPPANJsFDEGwGGFF1C<0$~  !D$&&%{#Ma pߕ"* U W#Y4(؂ѐҚ{d<Ë0 ޘ] i 6 \   E f!# !  }&  2e!Z;ŵ鯀|˹H²8Z} !%'),F..-,)& jK W !$(0<.ISZ'\ \[\+_3`]mX8SPQ1S@SQP QFSFVX@YMWSPVORNJBd8Q.C%V^VW  VOJA'B #|-:110142113-787P540567766,7 7j6420.+ #Qpd !%)&w$E! aG .F N^ 8I 8 $)B/89du;?E!E~ ID F@y;2(%}  w'~.ڏ4߂;]<2?# x >81I'#*.!//113214: >T;3+&E$&((%N$$d ( "%&Fv+1,kv. 0&+,02J2$0.,q,#+Z'  % '@ܽ7Ѩ% ޗvz0 #]Ae ]ř\?ɾ=!$8  *5,!&+)/.. (6L#;*1419+%"!!66 ,4588!651*!*/' c$*#i d.# c[RW:ض=/7!VHrU+ = ѻ0dž%٤&>,%+,p (',03'5540"*$!}##&_'&%"  ԭ˜ ǀəɒĤx]%P&ֆײ.G-?0M.,-/ +&('6"$A    I J $V[d .x ""+ A )tE #2$%(+R-/25Q79;<+:61 *"f# ),,A+' E  ,K"&, -$%0$" / 0[ 3.R2֦1_0:I,O)&*(4'3' h!#!D$!L)pӾJԁA ;x  "T& (O'#ue 5.Zx "&'% z It   =$q<m%!_ j ޠm"RY  ݸX $ %;*K%0-0.)6"$># > AWB2˞@ǿ>ͧ:˽Ǻ<4ɹ.A*3"ߢ;$M zB ^>sZ 1!A,)A +> + '6s& #(),/3):@DD"B>:6%2-'"# ]! T 0 ZW%5kEt  ;E`tZ ) b "! !]%)D+*("&#! $"%&%*! * I #,-6S=>{;26g1-*6'#!.!9!R!"'8/h684:,":< = >=<X;Ԓ7͑ 6_{4ԯѥ2ب-*D #H"!+0/,**.4:)=;7 2u/.e.-++)&"c  G ` .(,+ 04( _8 <'198<=;,::}=>BhGInG61-:*%! 7#+3q8672+ &6!5 q+' '!0 u!  <(` g aQ.՞!&I ' kc AB6 `9(qD"$}#!!Qێ  $adQ L WpH; cMͶ "ʭrԑׁe)$j)(A +!$-''&$. a,~. r * &~-".+$()i+*L(&&&)x.&22/f* %3"!\#&)-0/*#s ^  T -    n' 9 H`Fxϔɩ- [ H S<ܤBm(n_N~# ,{10+$s b#w+125m:#;t@p8#Y:>ѩ;ܠ6t1 ;) %=!!B "%&''&]# } %)i,2w9>6?;622 6=GO R"OJGE1Au%''U( *h-16;=>z>=;;<<<;84.1( R S . %()*)(P&"  ]#i&% %"  ~[!1 ^  \   @: '  %!X5_ xPGۦQ!xԒ7[T˦bìϾ| d 8  1kPhʑ9.jce/r}X  q  pW2L" !' /589 ; =f?@:@ <4+$!!&.8@D:EA~:4359>DJORUUvRM'IE@90'L o+ 7 (2 %+--+)&$$'1+.30"/0-++$,Z,*'*"x- 2923X2J/00ƹ1Ҹ0T +Q%v5! X+9y4 "WE/j QI"B#ծ%*)8ۣ+E*X*+V))$H hEfR(s[  `2 (R058742357:>A$CCCC?CDtG IHF FF'EAQ=9,5/(!_"$#!   ,vj    ;  !$+-,+*(J(+z.111/-+)2'&' ('$!  $4((#c Bir Cר!xҀ&1%hܶn"|ڮϸ#p0!/# wYz!~[ b  -^> g ف О# Y`*leF0V)bEګ Ԗwү;ߧX^ ި&Nw)* 1`7 W.7'7N<&=[<`08O7"0ݙ]'"et%  Kڥ!nXܷd/ % '="-  &4_ 5 < $8u9A!(=-]00.;,+-/:/,(x$8! "%0'&%-%,%&'*).14H5"2G,% F6$!+G %)+3- ,Z(#! "n#"  { B4m 4h ֒ Ye X wF I !#%&B$ B#B)-@.,)&" 6 S6  u9U si#~Jؽ ZiAi=K:g   #3w<]*84j~;  nX_ < s lCZ  +S/+E xѨX2U;yBnO2 ? @ w {+> k y}!'o-120U//0357H9<>ACG'JKCKGM?5-)&$" J D T; ?*#(-/// 1 3u57z: =L?@\BDEEiC >@70, ++,(. /$01e479;=>@=;T;<=?>/>>[>>?A@=J821-)c'%"d&/' [!!!T"#####6" . p ?T ^  <  %   v{Of tOr͔bq e}g i B Q۽Rl$پpG rٜ׆Q;,Uē }vӿ o{ |p( l'+,B-ة/K-)7->k) +v$F > ,(N" ]u B  h Ўl =ѻ; S` -bĜ Z3@Ut'"$&W())*_-1c58E:9A62)/*"x RgmVtyav>H`ܦ5}8#!a"h"B % X ${e% ! :![d uDw<  8E [_I i >  w$m Fpw7&1;BE)DBBC"B>:88:<=<9Y62(/.`01/,c)%Bz !#% '((*,.15:=??=83.)`'&((0)($: '[̤5 § 8.(O r  ]AV+{(gȊ̸օ)ԢsۿdqXx )!v ٕ ߍ 6~ }D*t |   ! %')e, 048<>D??:@@?=u:99<|>@?>N:520-*('Y%" JZ  , < _b! '+,, +9($! ! !I$&#''s((&# ^!""Q$9 # . c?  "s%(*,D. .G,( $ I# cNo6(VR1 "8 ת Օz_ل ߦ8 ֯LM */YM]LG  R A "H$%&#H b  m; jc  8 ~  ]$'* -./0 0B0/b. ,[*)(* *)(+(' &%& '%"q (k) FP  b"g~ ~"#$#%%:'3+}, -%,*..i/:*#/,ݠ-((%g$E""*n_<ٍ(lʃk5 \Ĉȯ֏1cS)] $ [ C4WJrl کݿZKqa y "##"V"!]s C5 !1dJB ,` :!y' g,So;! " |  ' &  " ~ # n>" !$p' ('''&r#    ( ++   b        m  I $a c 5 W  n6 T      g s  V  c j   / z|J69B  6 \Yy _C8JJ 6 iC=XY o  >xaOS B  8 ^ : G`   o Z  J c u d# #y=mSHQ^J  J   Uu 7 1 ( no2o rZFK* z שxd0#c ޱړ>~ 3`#^ Mk r US+a AKNUIK M Z \  m 6  zG qz)U,  ` ߞO;ܡשw?ԏ@D}  ^ݸ Y ہXP L`   "&i+. .+(&$$$$" X l  Z + p \ , p)  i Z `    &T:9 jv7 @ P p  8!$" m > H+  )q- ݚؼ *݌%A۬N*8|ed*T5s# P b&   j(c   b  N &j4\|o* 5d h l20} ۙ ۙݳߨi*#CT+u i;h0lVV!l]{-Rr\ -e xr& CGK 8\ = ? u  6  ""##%%&c%#!? G#%' ('&<&&&(6, 035l6 52/.-,,- -,+* *))R**(&$ "9  a ti !B   < KE8 Y  |w  !     w T = _ 5Y fEC+iFc'"M / %[LlA_!o $# %p ދ4)%v8HQ[$m2ߨD?Lbo<o ߻^ . ?L8 RE0{g HgF H  0 6  $ <)  N !"Q##"!~ C    7: u * DM F ) Wp 6iF!"g"!  JO !q$&&&3' '&#! x!##"k!  r N   n  | +#R<' ޺ y XAwm' U      Q 2tf< : 7*g VaI(kBnS;{[[U3dK J #  C78t $  U]? y? : EX!dB .HrSm     E [  b }; x {rG /=S.25$a  2  N   ~lM. [a!+"$&))(&%#"! CC>  =  6  o  Hj'Y]SLJIyZ  y  -ۯ e _& -[1 JLPv j Fݡ> T- m B  Pa  a x ZYA`cx ? 9Pc&rr.Ii%} v^- p $x =y"     ! !pA" # 3  .5 S " I &  m& F ] -       v (   L  *Xb}.;%$$ 1 ClgMFerl H? 0 P u ;Y n TO|C  ) $W!d  -   QM   I [0  > ^} q    1[ P P >'|  ; @`  n  a  y  JU " ~ K^   c ! 1  1h   ]$     (  R bJ Www- : & (3 z ,V  |&6tEh=OOqB o  !9 ; ( \o@K cXv< _ G^cGE UX ,Mrp 9o4]8VX;b  'o %!i y +iR  xT>UdJ    8 ^ F l :  G 8  2 `  J3V      _   ; A ;   L $ x    w SR % FjE Wmx;     ?  t  =5 v  x!,3 H  n  P$T?V    [EHZA (}(/U q$   Rp+bc 3 M_hUѤЅ|"OO2*)lPQܝۋu݌ߪIO3$hE : 3R't"`p\!;x   . .  e  R u }e  ; | _ b & t    Oz-=  j S '     7     b  *   iW9   z 2 Y #k/I  i 9n .'G  f  f  UA f|}x0[ eV" ) lB28 a 7pAc /   L o;"&4Kj  s N ` vr`Hf Ojj ( (c8   |0 =~7s w Er7%$ ="u[$ h & % :2D  =  > % $  NHw  3 } bO 80 k^]kG%  Pry XzLP b]mp_   # k Z  ( X  ? qJ[MlDv KWQk{'4~u|s(onL < bC}]x = G k^N A y(^KRj  1   $ v+EL  Wo3c {6   =( [ [ d [ # |1 cR )  j ~ n  $ ~   3y#7   E  E q:8 e sc V. Ag O a#^2d Z   y. #S^b|>lB><=Esuq/rGGXn`m2f u   \'*     i ` r_:f^"]{P!_K\mu  rtbIUcS X 5P*f pJk wx ,n ~I 4$e19E 1se! gj (z    I I |   ^ ?  v n 2  Lq#     $  Q   K  2   ]  {  3 .   e <\Z5=    z 4|    oHluzc I  3    #/ VdL  tl  l,8]t 2 z! `yf AfGfO)O M) d6JDHjV D   w #  U+?R }"/ >TuAxPk  .CB" >Rl  q _ [YIa I XjG_C EaF1 r^ ,8 h  7 ~ )y @ Q , D )I & ! wM  e i  r CgreQ{{*5    ^J t J a f ) {=8eg % U r6<vW!`lE$D !%Ig0 P4 $1 3w$ud]iA ;   pCuj& f f SM<G3) {}  #t ~$B=&C fWf 8 dAt)[4}!F\"Sf y. m XBZIR#!'+tz ?  -V  LGX>Iv"9w    J L     , d  G %4+lOTa=cLu`     Zn [=~ }  I E  T kI  a  Q [ZF 2q 7 @ $ +      *    r|  _  j  w ygJ  69 .o   OS>    i ?rEGM   : j    rL b4#J'z"%2$"ix&"4!a{ I!<^@FOX7x&%> \ $/ m " eX 95=w ) nZ?`S#%.0K*'lV:B _" + zu W F KgKK Q'~& c~3<fw+z^h v  C  z ^D & y=Wf5   :   P p9; xh l  *H 9 6 gY'P[nsfZ  ;  ~  {    pH;q Q     1  F bp otR8 pR+i _  #D34xm59  n _ w 5  x B. PKz,      ? 1m);ayqdIt1C  e ' |r  qg  "  UGk'+M =P x 3 {   L  a  ;`o9y  taRv~[BXjUu4 f#k!; ! !! # A-H;$k-Rs HJ ,a -" 3_z4z*Z 5)    E \.qQ I0*0U[L.3.xto0b4 A  F !sFZnO`1e;u H   U g. EQq0G r" m vI@CRyZ / q 0  - _)B Z    * o8Qc   3 O n#  o   > qO Q-G 2 U <M#%v   g ?Y I 4 J N ~q t mP<)z_y3XP  A  6LR? u \P  (_Z]  v scW-  k*w  W   UXfCg  ~ & =+sz <Ct    s   O S u Y 6u?V u M c,K k  `uA*nd l r 3 "k$w` v]~f4d R  !  j5 +uo ]1!4.Cv/) K c `mS]7xYx:sg+p1'U @^ )  ,k ,  LE -YNmDveG Qrj _> 8F Lz   '    W   75d}V ; 6b}:x   L C{A\ ndaTk*{t'+x  3ihf:}P KI  4.  X  S   _ ]jw       k|u >U u8}9! c? !  IH&& ? o / Ha 8 - m, r h   &x  IJ O >  ;G |k%N1  $ c\%;  3 oZ? y6 q ) J^vfE  < p   z3 ie s 0  g. d  )  `~  N  "  4 + i OL  n U V   u   T7&Cc ruW MYg$x .7'aR CO\a g l 8i 5 L+N#*Y l Q |     dT xQ _ V=  6 `   v E  )  !  m  m{ " ( ^tyy  x L Iv&]U j~d <d? }$myf/Vhw!% L I-[M`GJ m&=sa  g P iWX  y2Q!"$$W$$ ' &&s6&V# # " Y$ V$a"7 D P'! I   S   [-[QR   9(^q(> el( ~phf ?cKj C eD} 0 r ] `  1^ Y Ltc("-_!Id o:gIF#Jf  _    qOXJ%v)  GiC`Y}7j\c ~  C TRi w{ ! 1   %  ]    W&w'"\FgS i"c  'w`*`#xu) ZF D ][MIh9vXdfl ,~     & e O     ; z   c > (  {x   dR ( 0um j D  > 7 |z9\Q ;[ @ 5$  z$ g S !*z7m jDt46`_?nLz*2)!* c D z i6m\V97i{ 0 w }pX ~/ C tw mv ChA U2+4O]$ 7tcRZB] ,f(  & {2\w0v  yqb q #  RRW S    ) 9  EI  Z  '  :  $pqA/UT D  > ] w Q 2 % h K C    cU K  v)!b>DQTh   B z& k  9`u6m2z"\C #' x< Y;x_ e %t ;s Xxv+} 9|wy+ uz9+-{@n dl 7  7 x nh    H ez~( 7 #  8  nN E>c E ^ Z   % \  *9#ra?j [/ v D(YX  J  cwP"% r#'y)*5M)%A&# c<)i-6i m~H " DVby9 } + v r ot \  w w k   s f L  ""Y|eI^} 2' 7W&n5/ p 1 vjE^=1?zX=E{M^ !${  d   G    q@j^U7Hc"s$rcXY lo 2 Q  5Y h   a R\;j$OCm! J$l}:w  q N m+--..Zf|\L~]aH9,TQiVl:s k  r{ & J] J  "X< $<tEh 'V7j yk  fp r P L k *  a W V    `o 0O} Ar4FOkbI K m  `6UH9fX ~[B$  * Y  _  k v q      H  iB_q\kKf Gr3 # NH}C+(@S i jj3 2r a[L4pweKYpq0/  % h W  ry&p ~ 7  Qa R!I.J%0*1 k S vi=Wv7v2j Sa* tslIi9 V&P% 'Ee w}p PT  d  x"\V")xd  }  G   s Bh,s  A   ` z    rq~r4 j<.{"YR@|Eq{q(+s q l '  r ApO  -n T\\V \ 4Y&/pq#< ! !^8zo670v @ v  ca6]1 R T lry}9&F { ]{  Pl  k+ Y   T  5  u [   5   U  B~  `Kvh {  l8m]-h,SW b2v&   `Q,3vd  9 ,By #E  E A  k   v*!gwv n,8 pU  + e [ nMf d  ,   jexn R gf ?  ua H  }  \s1] i ! i n & , q`OR lE6d bjxv#~ , y | }{~x    i ol ] b T.f 4#  N 2;Dg~4 |r CQpk.a  w%oz<v ]@ :     0 (    gAG   --    o    w" 5 %1x?O W   l > }    &u +" V \E   n$ 0Td($,s j+ `9aGW| : rk'& A\L l XMcT|yu  p@   h | +  "    |} < BgD } ^ WRP1|EqR F.rkquy4i h,? kE  I> J 95 q& ? A%}l9  k 4F  4  ?j]i ;  W ' SQ  d      4 x H\# H d  0y ]x 4 !  nr  |(_ XY2%o +n-a8!$6s Z  q n SGJIb)J  0( <3j |3 y    e    a: p  PF"C n"tzG NS\[UsFlz&z -7]  * # ) j Y 'R kF[L X]7WB=mtr)w<*s%pD W j/tVzR:^WC: s X ^ r{w9'nzp0p `cwy_B}? O 5raW;  & | o# H R k o gUOq^    S  } 9  w  N  X     A  d  VE t |AS P    %    vp vZB'*XfxqLz  c  W e$x  k95 sk\ nop6( "ts    " 9n!!q(:<^h  >*n8lp4!`  +NYeR    f *   } , aS ' ~uw|A  - XOpv V   T  1X'rn7)   ;R  y Rqy!` *. |  d  ' ImG)k 5_z*8=]2h?U [     L t6 r 9      K s s n    } g  7h*w #  )xlb; O ObV]  ov$  cu+)Wm]  7v b1{>5 "l T `$>+CTi)i/kt t*o 9 o<d@72gifzS^s yuC W o! V / N8 /lZ  1_ \7o*r F d)o K & G  u  T]D   o    )  ] z'   L  v l    T    yn_ n   w  2 H<f  x MB &+ B I  kz z  s  U 6d %  9g   }   UG_Ln5z JpB  m F     {uG)`CYwH)^EhkN.^]6[6dp&U? ay#JQgt u / b|Dk,t/`Q l?rV`*u2;'z U#W ox{+j;n <y}2?" m k  c  +  x qUu ]I t !U[SEm  !  u  |  TgoV   |  g  a x o ?  # nb  "eB?l | ` R 37yJ &r d    :    a  G    d   '  8  b  R F  J R P urtf         \j r6 jSzm u6bq/ /sz.(Ro$[7#l jQ|}C@h8Bd Ug z&x rY  f L0,j rzU  % |wlKt! v%#"rh } dIzy}7 n   h u u <"xw&] u#* W"/ vcie_139xP; m! HO}/     i  b R!qVZs|$AS f'   W3R-=S"e w5:)abbH`vTd N I"NTDK & :p T Ec*"tx Jc & }~h         D`fNdeId^VyVHE`Y*zfay-Gm2(n{)-)|o3& C$         U     DtK [      w   PRQx%j     1 l  " d     L  exuU p0vxi6-q  v8M lL  M_Ywu & r:y _5?    d;AZ\7%6h#r&:rE## r  >   htl &      | ;  z  cX  r5( %b     # vnN^<Rh,3l 2 mp   a  .u fGlz/xu ] O b?}e F h f[&ZU { A f U  ro:tNcrmeHX _  Q 6d t5 # 9]  `ru}/)x}"# ${d #{ | &:(Ct i.: o6@f"$eR{$ply)   (  y      >\ \r ; Y   . k  vtc Ks@}< } Xy  yknvusfKzw(mA~{Ce m v~%iZ7c8$ 2 s  Z   s u$vz ,tr{z p% Dj ~" k1c [`a Eo+%n.&   q QU f   F   R):f-qo A CFg@!q/cuyQ5/K # yxQ,|,#i:Ub^<#~ |xlFw~ 6n  & T zj ]^H%`_ NQGkIc S  }I{o "~J{i;*7Y)9 !g  r)h|z#e r  kjP  ds~{fPp;zpR  c5=V#k1 ;  t'+  b^\pqe%r C   Qce%!kNY  %{2"~ i0 , x  {%s f= r0$#   N    bsrY N(  g  a<   Q c~56p  9*k   L^ |pgb<(v}"!0t Y  eG m  {)1u <b*b "  f TZ!v[!"x%f%)9)K$$$#w"({c#! i*!]z %(  x  be " } +  n" ,} k  S    )q+% @T i(  u(s.(0#Wp<]z     e i7W" S{A=bkm x}')m  |) Hh|y13y $ p :Nh 1m - ?` w \>"'d'(,:W-j+m. q+ v( x#qdjW,>b     Teu:CVhn )nIW#VFMOv<\[F0Yf$s' d uCq9l   T  X 6 wkR ~ 9\'}"} o1"3ps/ `      &z M  ?gt4, m1 ( %   &x nx  t8 r<y$  _"}no35p+6j Jv&l" $`CJRp "$$$xX#$ n" . -  "sks/,F      l-Tt %  q+qIZTDH^m./   'b dwsJ v / .u U P   e) 4-`zv i& s ~~:na _  ^ Xc R ! dSddC  N    u|n)h*/2cUC4w,tA^vpk0 {- J  -i ezwc  X  Gy~~{& = YH b:i.c!UA|{]   uu  )| k)  v\    x+ B  ` B >f  #{  j8 4L }j *  lzt&LK# &  X # % 5kl4,y ^CGd *fXr7n:    _   a= 8 o H  fhG }  x#  o2     t 8 y  '  |e..Ka`   " ~  MXc +p  v'  c< 0  v "7  z y     o C  j qw9q- #>X q & G&] @e|*wkm%&  4i ~g i;K VU wr   y _@$'i2% $ xPC !|+n"   ~$   /t &o |EJ1=c    "  Q ~ 7 y |.$&})S23  g1  8j j3 % ov ~  :8 2;mcS` 1r/z &$m7-BLm"   _: Hj ( #0invl/   } 0  1h  &u z[HGPb3+z  H   mB q   0tJ_G      A o3 8 p   "  eF k  t.4p Fc '| V  $x % X   u*     )  /x })i1u0=a ] p4!5n#&r/$ DX ~n. zi:q j? z 2t     # #r@tC`Pr+ '*  uWB %  0y   }OT\)>vn7# \E &}     7x' +~   ?b  F ^   1g0 ~& t&   " )   G    }#S  `: *  hF  Jh j8eB    p$ z* s SR g!  !        (xT |. (   !  $1(?[z66q j: , GVkz2! }$#;d{x$ ~'   /~.u  v(  LS q VE  {%   t0-  &| * / 6 w  Qs68 i 0 f56x "t eI l  p>r p5 8s S  r  q*      3k  i2 4e $z  w0%&*/x  ?[ e.  ~& "  ..x0{+  p7!/jj) B^  k1   !}    k C    m6+vHcL  *v   r+  z ( 4m)l;   t7u * "  S ~ c8gj: # :[\:-sQ    .w    n:/$i"  $  h@ !3tG <_SIw) 3;p  v*-zo88k  4f l7    .j 0)B&q"" { z n64 v t 5 ' 1 y `5      | i@   I @ GT uc(JN6IZ} <  a  3u-|Bw )} %$ ,n {   '   ~')r3ztDor0.u SmAy+}<{ c? '      ({  O   ' g * d9  ){ -3u c F y g> N ]   #{{jx$ 8 >}  }&    z(  v9t% !x  u3|4w       `   .r      (    u .%9f   ZllZx33q e B &t  |m , ) "   ?e! j> !!(E`}'  N   l8 q; , OE  uYC 9 v  $ t. 0mq3# !{ )8g l5 (rHR"|PZ 5X `' n1   k? o / /t u.0k4}1eJK0k    %   ~'&/}|h63v@a   u+.r k 7 )"|o+   ; l #( z0z m8! <_`2  !!2t    z+ q2 + w    v& $ z(*z  |e> *"|n?#i    # v$ "   >k   G^ -u"u0ad){:   4^`5  ,@]V ;?j    u 5   (u  w7?Sd'0  +t `  b6"c"TO!llV*:-s !   q- #5>c |  )gWB& , y    ;Ue, iGi  }$'    )gV<- (vk%!0-q/,{  $} t3+{)$ $sAj!, (n: y   $ -       w4#w*1x1iOMkEv()    (t}   ,~ -9ix)'}  #     %'  }$    &z ~"    n/!$&4u |i.>l  2qk9(  -i2^_+r0                 0    /w  $9ss/ . x    v%   #     #  % #~  #  &  'w x(&|  w%       p0    (w y%     !        $  "  |+'       |   /#     .s ,dW6 5\a#  (|  %     (w  ! $x0)t t5'# $      ! t60 p  )|  {-' gPh%~{-2}  ( {&  &    {   &$#      $  #   "     %  }$  2pp0#      &~           $}    &xq0  "!   ( &  %   %y r6* *~     ~   *|u)    x'  y,2n   }  "  }%   |!  $,y x-$ i<8w&~%   !  % }   *, p79i x"   +x o'   y(%v.".y)"   $ $}  |%  !~    )  # #qEo         ! &         *# %~    x52z     fBl  o: # "w   v+ *z  $'~ ~%  !/         %m F\c  "    $     %   x!       u:|+t    #       "  &$   5] \3   "  !#   {,+{ x-1z   $( " %%z  3\ ]8           }$      z r.   ~       x--w $      "    6^ ]4  {,*w (  "  o>zyAt  mDl  r=JP k)         +)}  $    ' % $ ' '         %   )y u,!  ~     z)&{      - ! "       y-/"   #}  |!  "  9{          $  !     +wY0##   9\b7 7]`0      %    "|  w/.z    !   u15w  kBj$&     #  $  "    *  "                 ! !3[ Z7      %} s3@[\82w $  %|{%  %   ~  (    }" ,}  {,1qv*  "      $  ~    "     $  4^ Y4   !   %        ~)'~ {"  &   &x  z+  7^]6  %   !}  '$~~!  " $  '} v51t }%    0t z)   ~((x  x*(~            u31r   o44x |+"& $  +v q*       z$(z  v9  "w>u          !    z$   %x              !"   %  +   ~&     ${  ! $     ~(#|   v:>Sc.   "~      |    ! " ~"   $y  !i X;       ~&&{   ~       7Z[0 !           "  & ~* '   "   $  y##}   !  "'   |  +r w,     "  # %   3[ mI #$&0*0b/X0w/-b/&\-"- ("      ?O}% |#  "$  s34oo5,OH'   !  *zOunx1W&   LISTDINFOINAMSmall missile explosionIARTunknownICOPunknownid3 fID3@\  `idTPE1unknownTXXXCopyrightunknownTIT2Small missile explosionatanks-6.6/sound/20.wav0000644000175000017500000053253412636021030013063 0ustar apoapoRIFFTWAVEfmt DXdata<tM*<UN6=LN:@FN?=GKB@BLC?EGG>CHFC?JBF>IEE@GEF?FEEBDEEBBIBEBEFBCEFBEBHBECGBDCEFAEDFBFBFEAEEAHBEECEEDFCGCEDFCECFDFAHAGCBGAEDDEDFCGBHBH@GBFDBHAHCFGDFFEFEEEDDFEEEEHDH@J>H@CF@GCEFCFEDEDEEEDGCHBGDCFAEEBGAFBGAE@ECFBGCEECFCEBGDGIDICEDABBCCDCEAE>C@?F@GDGEFDBD?CADBH@JAHADDACCAGAECFBFEDGCFEEEDECDBDCECEGHIHIHJFFDEDGDHKLOMKJFFCCDAEDEIGLJTLTORNLHEFAC?B@DAEDEGDGCH?I?GEEIFIGFFBE=A=?A?DBGFFFEEC@@<=;;=>>=;;8873:3;:=@?@>=<7;6;;>@BAE?E<@9:;8==?C@FBEGBKBMDLGNIOIMLMJLIKIEH@J?ICHIMNQLOGLEJGJIMLNJJDH@C?:>04%&"$..73733-*&'#(!'%'(*,-(*#% )37D@H?A5.!#09EERVZ`UZLMDC@<:>?DFJOUZX`Y[\U\Y\`bghljigca]\`fovm^K?88;FQfmzwvn`ZRPOLMCA,&!'?L[jki[K@2)    #2:BCB<*#36@CAGCKLSV][]TOF=2#  '8HYbtu~tpbWJI=?67:>CLVdsxwjS@#D^svmZ@#,9DIHNLLJIG@9*'*6G[i|f\KF<:53626/0..76DGXeoyxtiZJ>-!"/=F[ali`XL?2! 6GhiC',GP_Y\L?' 7I`pxypfTD4&$8?MT]`UO<9'.0DANA?-    +5FPduR!'N]jcN2:HLNA:&$9E\gqgbNG?DI`m}_H3! $5FdzpK1 :VtzZ;8Tkwm\;%):U]c[RC4'".:IatlYE;BQy+>.R8Q^XU@9+# bGHS(') #9Y|^( )IXd^RI?IJc|{[=,,:Zrh4L QH*.[3xdXLJOWWZPSLZiiZB )-2xrBAesJ/=GKG<* %V}eJD>?74 %Wo`VZfheM.!||8u@CosX n;E|f4.9g +2.U d6V~y_5 |tx0duY 57O)`\vs Ji+SChH3|]/)MK)JN7nZXWWJ7X9-)04=:5 ZcO:|Rc1Qdvf[NM]z*9-nVM^?u.6C:/\6 $Vh-~oywPVo (!80M\R5rdn'CK>u3 -^YQ^%-w02|MHzN6 /;JSSC)UCPv1tvP7;_|oO*  (HX`O1.a7)Vz  }[EEZ}~bN=2-%,;m(& HMI\n("o^^ QkPo > Ql:  _fEe} 4nUfu(`"n:?d$o?-?wMbBT0@P>:1Z_@md lP{RKw\}Ts{Ocw"EN8FWZ7m`Y]j2VnF^o~_7x uW]GIX hye{BFWDn4hn>+Xmk+ $etmY::}s]y+@ Dh(X,U.5K{H.wwR1=voElrn%K.QDjHB>l b q  nd<HVk"~P>|pZgi2t^SYzUep T<+L5>DV*6o3pp4W950dh+<i80W9beM/<YKwywM#}:k5%YoqL;qq<QV hAKvmJ9E2ZAJ'!{cu-2FUIu!%Sia'S |xyRfhhK0= F}Jwuu+ crgy@78*ts]Vx:.4x72}8]R:!)O\/$X}-Z,_f PG_v(' ?iVw $)_a- xBAGuN7-t`:NnyvP^}5&*[@aZ&~k :Ca1_Z L/w[%U[6) ~p=#8!`hpdf8iAoOH; } ^ i#o  bZ d J/+N1 I E  C!,qXhL}!,&OD]Zz@aHH*9Q9 mPFdLp a'2d- *[89{ By./?4v*c@[Ts68TCA`^irr7UKQm rubsy6o9zmr8 : n &9c{eG jJIw%a/xIH&N GcP7@RfP+ovFZ[i; T\ \ +o 0 E{-IJe |t5J: UUG+{i@JEIY@@lD,8)U('{^%#pk9u1B1WAd_/ 3R 5 5 \ 5, 6k'^+#|w>DhvTGb0O3bgp}4v]}6W'.4i. ! O=t? 5  !V7m*5`m}+#RS 7xD*ks+ p , a*b|b{g "N:sb[vs09bstz.b 8 _  # cq l yXNqZ<L`*DM1i/f1\ "Mx[[p;-}b%,nD  4   9']ZQ{ }&!{ H )   m  ?   -w`l 1:ldh n a@n-41 h{]c]|yE5Xxg$^A<_t&j\R4Dj^boFUnhq , A@T 54 HNN0`: z V,L 2E3W7@mz G N_<; G YgIN<HPIK'g3vFDkn  a S y itF4W9[ k"%*E0m4=6m52,%'!&8,+a>f L*݄5@  V} T 0U Lc-_;Jnu |:U ~  V o p I } Cgl+gH\g<9Y+ W _ O xa.17.O=gu2 ?IwB m kd   j?2Q1o FUY(WP [ }a&I $ *!2"  7$]G\ -[ MW6^ u ^EI2!if>r\AI9>  ]/&u | &hl" *&)g7GrOs0bW S@ pY  z } Y ('w-@24d4L1,%"r'+-,("% el^ Xcbr{0W64&&J-f:@4:ivK)d3?^r "$O&:?*;!)&);+i*&!O !!@Y.Me!" j yY`9}Y?ndd B^$CߡJfmՂ#fIn٤/]_~ڰٞ.yc^#K Wx *h RC% Y[Ev  \!M10$3 <Y V4glYhdVmqLe܉E!cD ? I  & lz 1H d| pkk#5\I3(cQ#*g2 q% V  R F74 07^ "esOh\ hfINtR  + q@7 G,7F||$nE r e  mrn5  v } K  / <qx {,## q  Neeph#$E/F<p@adsv#axQ@h:*!)h> ` r 72xXf/ EK7O. !  Mnu y =FXs % l_k@[9J# U y"  {BT=sfbluD `A {`JsJz5@`8gi_v&:gMD  | BG 88f I  B ?oY1mGF  bZx V38]1 "[E#'FkP3]%_k`l*?ݢVmO};; M hrJ DU&)['!p2Qڰ̥7 G P ]$(+...,*$'/"I_Xڇ)ʃ^-нW8j3݊|= E!JQ:3)IV|V^NVwIWp;f t3TOBlZ{f 7 <D|)QX  !  Da s C 3  lqDX# = A>;Oh^"\s{jX9Q6 !c  k}' vfU}uF iQ3= WOHqxa(cPc3"*Brl)J [ u>?:h (T ol)K O% }J g \ o f)lqq`wei|^ K C P5 f^U8 ~ at :h {9tSm@$x @|JJ- +x =(Rz: aa%\@0aK Ndy\/T9 a x:D `a15?Lft W+N, H' kVK%b #,{"c.ch 6*~ iFy y' Y7 QI |e $!')6)#t= ;+,  (8\t 9 o0MT!Cht:N>)p3[l F?o|0`0ݹ1٘F :`b2#p lV H)M z%2U 7cE  q 1 yQd@0xg Xd !h(+?+& i}g &(=R7o|  :L6#7 B-Kj';_D,}e"IP,#[;v!) Yv6tW4v58t + 8 7X GIIv ("D# Qz?2yp]a0pf PIHg[,*x < hK[o49gbaqX k| -v`"Y,i04D k"q  U*d g  aN1>Ub b!_.a M d j=*Tyw A {  7< Cr 5dbo%_~DO`5 #FC&&)7M NL l Q} X} S Z  r>+8@4+/F<~ la} o2kq O X %3 ZK&(E&m (   mnm rn'[!2 } gRpqSV:L5yh HiG n`!Ap6JbwM|Pqsw445yt Bs26\ X  X  ]Lx@  Qwi>(  ub =' OVp {j#  kE@q>Q q  \jIo8"" B%kQp+EVad7Ikif[=t 9u z?E!A%&%"hKuy eEvkCv99Tf5yA][}4:M8J m=vc>\Z-Fcu_+Qx K!^,t K&=f 2 1'3uJK IpL< h K1u1lYl 7 ZXg|NX>&{Se,)(le>OqL,qC X &_gD e#\ . |S  42yUWK= sB-LeshTކWbcɺ.N"M,911-:%) M^7 9ZjQ#%q%N#.; "FTGV=g@;ZLR R 4jrl% w?  qY A5"68N4("",!4hK:|[2 \zOTR6?" DbGxd^tn5'yMRFaz'ni0K( Lx?hp 3 D j(d* 5 R ) & 8 fmZ-1 <6x) K y "1%B zg&jsqsZgo }wm G#2'(c(% cb!$&$!Jie#{p q^QP.A0wwTY'Vb=9*ahKB9`LH (Uj # c x?6!i$&$(:(&b$W 4 Z-A D p X|p ? 4/Q3:6%U-W,,ro-[!jW2A6 b YAc [PR,%g zqV@Y5B/  A ` +C GcXt4~z i < = 3 mpN]2h 0dY88+ܽ_8m{r/1pj c`R "#9#K"K!| v  .2@ e "  m 6-UP@ dXf 1ceּԵX]+Xk>pw^! y 3 w/iD|$$H i bn'C^O6m L &</  z } Q"y G Kr gO. 3{[{B%eZ9xK <D.e?7j G %$Rh Y G]Ni:"' Q 5 qeRPc0iU3o' M|hp8o{f9G݇ޫuNIE#vF4g {'W"EIA=( ;h|EY^lS za q2UZf\aZ~W f Dl)qZ/ \ OjM+ k&uU|lLq @u ~ [W )If- o 0 FojB ,  +G $iaS =R$a; tH0#.Y *7d Q l \> #  @ SIXA@nu=e qyB0?OjWq`7 6 &W ;5/6Puz|9e]Ojvn r]KS5N,.QA ^ 5eT1 O>75/N {W7J t=S,G& > cNIDj=G{:42 @J8?+A,SbqYJ/L ;E 8[b]C# z?n W |,^&[B W :zDM &j5`<q B p  - @ [%z 2 $cZ[l~1a l0o#2U.gx> K` XWa-D>Q,Fc 3Dpq O h`  jo2Y?% (  I2|f C F>-`& L^?8IDM/8B    |Sn 9  -  G ,@5 6 kC+S {  ..1Io*:0ezkh JHv]|rmkEL vJQ0yaG(u &h #6`/Xv ` r9LN!~#;$W# Ae _YL *r ;839_ ~AMU $ w;g=fkg6$1Rp Te WwC1n9 J q!-$x J Q] @ o egYL6JL'ET"8i^ERN\ x Xiy 6 `& Yo   G B jg p P e tNV/]5,9՚%Nl  -3i(UY Aߴj7 *#;PlAl] yh6|QgaM 2 | < : s {  _  0 $t$OY<\@D/+4d]\o@0 `:A ISg;, } <8RI' MOM& ZpI TRbZz C  - iTag 8 f < { tm$(o> X s n?ej o+;/k X7K {l)Xp ^P (9 N !cLH93)D c S  <b  av }lM h  h $#)Y3y/n29HucR&ݡްSM" ( s)l_!0[No,P7Lrޫ9{eO],[r:f.G1Qzm3 [ w  9uy ##4# !Z=U* Y  5oR $ \[[Q\B{-$La?TP)mT aJ:w) 2|9 t+$]8X TPl!n#"  ?!" OHy ;~]_ &\)L4>2F]t 2 r w7ߦZ,"CzJ/U"(] #[ cAhltn.U D%(  @@B g Z V ][P W  EA% *_ Y@p&G lK c/_ ?+b` H "#j!!hc  '5[{w4 ~ ) 2 =?  sb V" #7?z{J ' Ffd$ _3f@ ga:"J:$bRD)  =Qh ,:8 cL)~4c$"d AU428J t%vM~"8޿أYR N L-]0_d7o QSwPTC !$M$ At 10}g f35-H' 8 {#eVmkQ=y d." Z r8[ i[|M  U'n +J!am[{+Vg  |Apw "XhQU03C J!wTK) IWB}u'Q" ag*yE6.X[Rz 4wn u95  i Y~ h lV, !s&&"Z2$*8 ' jH+b$r(NDHGj(PmY(/8Rpy=z# M 9 B!&pP_ ZJ s dUJ'7@? z r}qu؃VGDr% '@Q0[Dj + 1n^a"C J&-zYP O sp^ G&.11e-% .Ty W IM  k`8+@ z = _a # ,N6 ;e 2[c0 Ez,;G"Sl'c6{XX- 3/g g7.^51 G l ^I S aE`v 9{9 7qHWW}6_7ktowvaeN8f|Jc#N{iZK}U > +xmSAsz ^qTFdB@ : |7H! M ~gT'N  8;x!} ~ {!j  2q wP!j a5.%5q&h{tn#pQcDql%~'!,g/ jWq{LA@ v oLzoH G  j+2sa-]B8X?l+n 0%Pc [ xHV%q`aM`Ce ? _&q X b,I@\ {s? {)#1$ 0i l!] ]: n#8v&/44/&- )^{`R a} [$`b#֔ٴ߆"z)INDS a1, 0tJ"b$'%$#"!!#%T)~-145W4V0U*a#uN%E,+00-'(q1]   [J9m ܎a n  0yx<9qה*}4%5'$#Mh9u 0 d"9&)+E,A* %aW- $: W KA'!ZX w]ouKI [I+}}Vp4<@]mn?Kz>Rt XX5 >'; Zmw _-g(c& )%*+(P" !wVHT []  j '5vR#E #C+(SdPy3 > j s өdςS 2fA _g'C! .1Fh O <2Ti RL v zGF1di*1 xO`0 lI ݵٓ_q}TS\i$Miv^)Hn q  ;9uMlP  9m{6a e O 0  K ^cv9H C0:A ! ua1.M :Cѐ؞zNB2GDwV bNP1 U}DGv* Nx Y%" &\'h%  c;D= c:̸k)  * r O _՜ΌMzU0T lH & XXLw% G ;*D$6W~ F )16 8!5O.$X@G @ B~"Gf&)n`EX}T2sW@TNV\E:mi0l?8w _Q^t=1 n"5$"< ^ ,t7޶T99W0gEMPFx t`q8@f ?Z2ߪٔu9P0A6xv}rmcآһֶޮ4 EuIeSf$kI@[LrYM{u߃F*k&'V9Rd o HB , 2 0 hTKn t m5|DRvmhu  ^UW+d;2cWZ  \ZbTc4a~4WxOKLU.Lg2, } 2!VB / {{; Z +8S n [RTG2nvGcMk%2"6j42&+,+&!P-#U&o'&"Om/M z6 =   ,gTKf/ uKe fP YE EDQc q}Ba"'l}B57>s!&=H?m -aA `N"E%#&"%t YQPWf0*VO >6 * f .h y 5 0] S?f@W[,jn8XU|^ W c8~F;Wm ;dlX b I AS`I7 ~Iiz $%3"=L::lLjE}80 wJhLYdjעՄAIS I(!/u9p}@sAUj߃Q $ f,cG2| b, N3' . ;((/ fI!k(zxS_4>Y JY8Y<_,Idc<2w)VdNWRs`|z> t wlg6P6) . !G}( ])q  * & ' v h R T >:("9>W9ۺ,CfFuhH+Lض5׆ >\ m[YϏ̷͒!x9I Kz 3G $Z**% Z- #1&#R83R "#S 0  gb? B~L zP [0ryJ-5aNJCgwaFGnD#. i^.& .< DS? P> ^~\ u? FdP Y?) O{%$ | "  `?j{Q 1}nja 7e l ^\ r  TKLC}<y C g  /$~?CG><G)+{r% 's3 OIg> fiz;"g6;=x1-g$|iXmjjzZvn8  /  l x 1}iK wFyrD;R}Al~V Vd; d(gx" Gʧ:* 2)02/' {e7:<` # *w]NJ F*HOx@*g@mD J2gB_F|=و3ӭ\ں6ޗkbԟoڄ^h٤ڍvV. 4  t 9F 'X+--,*&"h.#(R,.#/s.,='? %M4 SwGMzi.W4 sAc.&]lo޻`ݕ9z_OR Q S   b&!&)1+)&b aWGY ! c4bAD '= ] nx&:T7m9Kj{Zk] w,C4[Glnes/ݖ<G6@AMfdLw~p>\8 H@6;   N"#"6 .5E !\#;#I!!&)_+j+Q*a(%#T Nwy GG@Kk.oCp7j"?i"ߺC׉څ\IMT R;FKD'7~]&Pb*^AIZyv+  c . M `{xjF^fk5#[cq`)R~\v) o ) V  ^ {~ o c^YmVF4sA7G7p"B:7f/]&2D|d_S CzL LB}4$LH,dj d   /X/{]_^ %C IGL d ]PB}^H?X L 93^$Y />->F!a"Ey~ `B5{ |8: t3 d+)s ah 7< ; T$}%j q3 ,6AmBXT<6Gw*`uql:s.kX~`gq%E+)CWfY\ =!C -WEP8"m[ y(j-9yJ) MQ5WNKW,1kw]` % !LBDaJK,S8A"K  d(nJ[4 <  :N wau8 5W{, . z 7EqJ%$I#$%>BTJ6.WaH  [NC tOs  = P3%\ # :S^Y5 k QD3*+-EXc8] f+c:8@ p ]C:ZCt \;  F  4 !%'&#1b #"" 1,YK M ^ 5D5;X6{3 rm: lNU+ 1 "  $W&\d3goKxryqs `A&H  c ُ50/ [GF21_ % ] _@qk B+m p: b d*oS>֖ױۚRFP n 8 fkL a!%=&C#3  g  ?EB&L~T1!zYk bQuC TP+0 Xw3 wA_9K'i(JI5Ypd!s s-sF_` x DVn jOc JQF -YFb%jQ g+/P g[s q U"Q#M"b)F Z ;$/ %3ߏjKb#O_FW?VX *Sh    :A)  Sp pNDQP@_' p f  EV w$\KR~D&^6\Sx i \ ZCPd z G rA- Wt$ { U 9y;UZ Q |ZS?m|A> z + ~ie sW x:Ik =V| #o .{T b ( &qHE{Y(#d0ۦCb|I"'+TkWiTw4s{ cA!  gP5 %<Uy%\ F+$-|%H m+r#aVqR f~ g|:dfv~X6'' kF $ S  .02t&F>BNc #P=a+YsxcA{}I<\ct{p2 Z El7 k Ap[dfskk f A ? EX$:z Cn XJ8q &dJRZ8 Dx%h܈ ܕ4zՃӽة܀A7!ׂ1U\ zWn|BI  ` Y g <, =>; @##8] uG?y_i>rwUkEsMC@hL. kHU  #2'R !' I#%$-i, Ec -j;KWn M E ~  a .cX.1f }K% 9 yu8@XTxܩf5xs=xFPy\QM    X!%'a'u$F O S ( N bZ" $5"P9 KGy7{ ~,/kJV Lmp ~ ,Xph t $+ q`rd( T$ i j .!I(++M(!Orr%k.477z4/t*%`!ZKk $4mE;jp/Mbvڭk T$;D#Iw M )u "$$b!e\ ` &*+r)j$`@W R %S =EDg qX )(^_*F]  :|ia]IL^{D,e   At ?  !Tu_&+P,l(!w)o|r-.ީJ>D)pmk/55+GԗMаY\0,)># gC3 ld< .L C=#;"x Bk, ?9A# { :"}Gs_T{|PT?'\O2u0-e;Ri  <  \g kA!bZoVXdtp@,mm|a~ T؝/+o_  *6-h ~)2@7850|)!N I , :@zw  e  tXlm >3 M[  X_& . Q62YboD ~(:-:vB< 5 =_!1$$#m  9^&; .~2   g/9( #)(s `bgBIHGp8x|\]X6ۭBU  P_Mܜ'RGYQSp3H,WqD `T G * J pGl u"#  a )xh9 W, W"3  U "  `E  a Fol{Q_kt:dR ~$ 2H23G7 ) 7mXP  >7C)",NjE-ߨ%vi+vDg I4۾ݤ4Z7W9* Ib\ j R=$p lo!" ;h5 K+  6 \(KFhh| -Y  ^ Y gh:wB MSD`\'QQf:vWv+Z>\` O<u AiiՀQ0#&ryi u9k 0?6 7 {hQ r#(++' td d8 4 b@;RgӰ,ߪ* =%gpkG+n R A h4bq ~ R GuYLvpbti7[ 2Y v1:xXyFF0x#ge|V!O~O5@zH~݊޳Q~#֌>g|TvgR oR4@ t ^9F {*E D + v[l :'U J_O S#dAz w )(+r*$;{@'{! ^?Q5[ ZC g! wuN W"W6i =q")P,) #g Z~P.za ;] L DcZvw /?-CB9  K|'g^]pS|; nb 4Q}]Y9 Q+N<r.B]k\Y1 %} + ! ?*sZg l ! Nc N*A+E)b x1|/ 1j3P bnb e v 9x' .`}cQp1 nH* p _$'(='"$J \Wo2 )C{IByAjsr vxHYS3 &+.J,%2.+l0(8//t*  Vo^:~5z!u6CjX:]C<ol&]a3;tCJD BL5F60.l{wH*:R IH, " 0I}1K  \<`q  ,/;?S$/43," dco !H %b]M)F'U !UZDL) Fe[2A iև0ڪBrpf(m )yXx1T  ~@Xah; -L P؈^ڤ ry YTܴ2,aIjr^"{K2fYx_$O qݍކ` 7]d ui}i>';"m!ԣ70 r = ( x$ QQ*LY6 fK C m@Exc,8 t#|%$1gARm80U-X@ }| \  %&%#Joq VF | *: w X Q :P 5E ZF2(KQ/Nx=Sgo 72 {i@zDK @|1:]iPmi4 *  f=\'> \Ex+Zd=~Y(UW>զ=+ڋr2f< sa{Q+)y*@ c8K bl F ( D B# ) h29 ;k}pZRcw3"sd[E~L߳ԥЩ i5yV\11c}V3p V p  $ H/v< P TcR/% _8t[F?   /cnec 4deg b)ABQ/vhq+rmzStv>E G ini'!6} 7 ! `c iOIv=iB20d,*1B' F |+A ApR6#%82 IA0nLL 9HA+VQ,k,Sy 1] JEN0S )g| *a4x+J1=b !h]aGk K6. ~Y y mfF~^vW MgPlPn,n ,Q "'& E2;#G$n" > 5b!"& *0$ D 2 / % `  v   % t: kn9  /2 } jwtS!@`cC*leޓڵl܅ "8Cf+@ p `FZ> _"1upDzJ[:ZxZe,,f[ WvT{Lo*0ߊQ۟f=8:5f C g b  86g # N</e    q ]yuG{J;2@aI2`x1eE]ol*c~AQ 6 XPAS \ : ~p?'+kZ X+m O<hGLTY.t}_ݫP\&N  !#" Xw C l/ [Vsʅ;n(ߋo= ?#G'(:'Z$ 7 m# #D-[ۄپڭC 6 c \ h%9((f&J &#tj7[ UtS9('wR<] ? elH(/{*2=lyq5e*9B>`Zr^Y' 3_[ I 6zro#0 =/j/}:] q i:u%">TBKr_&XhA*[;m.HZ vu{AWs=P%G $vZZ' #, ]iG6 &[-  u  ; ""9QR z"U{ rJ;G k6<' y IW5rb,)mER!FFZM 7 X aO- $)++'*'%"!"#%()Y**)S'W%u#,"!!"#~$r$Z#!X0tip -?mN9#%~K 4UWU_ ۟T\Nxi'g]U [ (68O> OFU h @  }t :pT Uw f "I#M": C 1t  Fbqx7ZIy p  , .o!"! z 2)o~% Y\pjH޽0rcXbR!EaM"~|?7 z!^(.3/7T9984/)#6,B-!s$&i(8)z)P)((E(('&%/$!2 !IEE ؒسMSWܸbo+х ,uյ ނM meyw E+"')^* *Z)p('')*,--,*&!jJ[:U ]} !K$l$~ Fl,ct  }}sէAsCr[gI8xٕ؃؜`UްQ߱\֝ ՜-/&xEg: k V L  a G _\ Bd' = d$E+/1104-&. 2xu0 Wd=t Ky}A,b9wE}"ߠ؁O=ʜ|؈',.zlh@hsA (  $81Q)} X} J CqPSgPe`$ % W8Qr4}Uw] v Lz~Cyh%,?\@Es*'V\=RYdg{< =  OGC |V!8#:#$!t 7 J Z W 8  9I;9c :?Kg{_  h R "[9\gHFPQprk BRGZC` 2R p HX3&lcZR-Q/ ]Nw   G   o | NN4! G_v:( 1 Qbi:7(N%,j*+a yC*& x]8t=s{ d# 26M <40C\)qok:O( s ?  |4< >Ose \physcs;; /;|H'^ f%Lv9oC j   ^ : a(RyT~/YB#E m i v A O R + 4 T  XE a kaB^v# " * ]J}Zh\O9O*oWrHs//EAz+Z8xj< gu)VH <, 1WKH?T[-b`)P=NV}m=E'o0 nnR1PC 3 T ]qv+oZ , l:J|]>Az! ODN ~d !  i  3 y sN7 e a s19m DA/+%QR_ <E4!$&k)**($  Kv Y`ׄ/ I+ID"i%s&t%"d$. 7b7>s81CYV_9Nlv1 5 X {*S~Kn Xy6n "##")!ci[j]I% %ZF e f9<`7md@cs }b)5}u~o+ y  QC6 =C>E <Xj 9aar 7, ei&)av+'h,*XF[S!W/ND6o0X O ?i@}0yގܱ^#ޘ "64C / : P % H)Y N D PkR%m\rEO|M3  o v%34B H1&I Ae2 kjCI.sp B F$: IE  m.fQs+ d lvWBu2It0  qH9KK `y#%%A"IO[ Dg 6nib()~hbkso?1qJQa+5"o"dnqZK+LvKwy8 0kKQ4* I p A5 ^h +o)k c Oj)l V 3) #&b(  Rrt{  rO|4E-=ln > G h g: gKM @=-F>)l*h;XNt u ZS &NOz73th6b:V|!k`P/F,-:> JNiQb {c*!Aa hU F< X<TݴuS#r$ S ^ 'v`M3@ S JE6d} .'**&k  Z#&z%E"V@ Ijft \',.,' O M B b"l > {:b~43/U7 l F| 0*  (S!ߪբ%g2} U *yd UQԻ[Պ{ B ?}(3WPV9lM>|i4HC u a aR |IM/ j@i ?% G ;RQu 4 C uuq" .qB4 X8 {n9|% "gr  ,',vIwv $ZL}U/OM߉ߓd4nR{ M O=ԬKB6$6] 8JjlL!@{vn}4$VP X/ ; tv 6 X X G w cm`  ggx/VK PB<*/2pt)Z; e.&v u<LO++YezK=/.T31R_X asLl=- 6*4 8S4)wxJؕޛ!oqB:J4 nja?VH0DC;('[@FOf_FY @C "BVU+Z B   ~ 3~ 6 b  -DN: qx .   a S ,l,Vngi6'uz߈*G9SJ=ޤ:w V} )2CV :)p9nkv3K 4 [PzGUX U"T# w  cf bAvf S < yBT  I/`F hb5Pd }D 6 su!e)s+$F|%[Dr8 o 1Kp%" FX > - { P f  6U3``;t r4 1dG  5aEALTFwAa$3 BS67 ~9#&Qa q/2 A 3*L> *& O "~   G#&%]2svF%*(l! ih %1~9:q5)L] Gg.h ` %{2F8o9E &v#w}g^)b B r;>%)*a(# #5=7#Q c! ju!2W^E}0ݦ&9y{ aI U/XHGc6͌@+(%bZ h  ] < >|o $% #FD fO $&f%#"!#"5#$ &%|# ,# W@ P z:Ԥדd9_!z>SH|ޅ٣ՄגO M $ ^ )7B' 0Rf F p 4Ck0 : 0 !_A[ oH  N8C;)iNktC o [+nahTNctxICjyD aWax"8 l Id J5 T z RDZ+Q!!9rgVq5pU60  |?'X{MK?~CE܃DJ׀ߓ 1  k,- y$*YioD HG b  D N M V#'(F%U v:{u[( $ _A#gK - B$( ] V\d8 & gWA,^Y ) mGO$,e0 1. *k%v!f1 "#0$# "} ]E M 7 R $[  @x}^G6vzG!| Ira\BK(H M$ <PKT?Hr ( (%v@*&*D4220a8Z_L_e\A`LL^k8NFZkIhntMtL{g DiDHm51zE*  '8GiRx7N &TH xu!$%#tjQexff ~8ڂل w9]x g#  n %A!d^)Nfz%tH;Z'8P. }  @KF*[ Q} ML_ rq  Q /\%g x7L 1XY VQ6G4 $!> r_G N,,YeKtkSIC2 r2& :YNQ(\m9&@}d : W(+uopqR5u) RMsBvJ9= VU A O ]!^ qcDߪC >  C,CRai  CDb 1 t Z5XZ8? Efqf G8[j) Mv#&&%y#V!soWb )5Yw`! ~ ?kK!?[ Wv5[Uz-Nүη7lh7d6MV7$xF   Dg{ + - t m<3Vtl#$#U g9 GRBV06o$(*=(! CWpzswJ* -lnd`$ڒٔ&XD_M)+ # O{ :g!$%a$ $8; W$lUz64| Z  ldU /Fe،oMG S  % _o9@)"z \? R;bKB_  AP8=O at!S2uy  h? | 7 2 K ]CB|s83(Hd2Y qu9ut  - 'p  g x=i "`-0+t^:ٖ*Cd>_ Y  3'*I  I ? ;czWgeL & !# H t^qa9 o 0G!xp hf'l l s| m 6i]8 JxW3y SrZ)1Xg+dw 1=G^1Xl6}C;be  :Dۄ۝~g 7U}\#1cv$[* ,)#,K3 Z! 1zq 1| 49fp  lyC8MR=E s+Y d (.2o(!:@GrSP F z V q7ncJ iVa| 9V K<ڐj;u& BM Ir |!~.3]kj~  wR#]0 W> a,+  [-sK!b*. .d)! N]F +L  M[(u] " w P D[-^6HB/ "[ 3=P1~s  2g"b0(]1I%W! _* e x   Y,/ d#3('!PxKQF_6B*5536O\ D Pt9NC 1 ji [ gTO UUG 27~ v~d sl 9b9E E1Jp=#;#{Zei(VqWUKIX eq_[u" x BK$#[ %x(#>}̜̈́ӟxo V %)m+*'w$!}Y= k-=/  ^?=Y| :Twj'i܉؅٪2 aq'VHTjs); ! Q F 4'r.R3q6q8J9863-M'a|V(\W/.il/ۉW~p< Ft83 $ E{>X$H4:{,,W O K n V ys+vo>S !"$G%&(*,--J-Y+'C"*O: } i! 8$ &<%!& _-<G4 w"2 ߸uZ&Ij- 8#{ V K 2"o-3$ףzHb .͟Pշ׌ٿۋ"E"Jl %=%)+a,++p*a* +,.0I2225207/-,*[)'[&$#" #K$&),/T1130[-(P" Jsc:?xsb5BB$T!_E$ph6]+&7 -Z  }c:X#')(% L|n Q F U ^4?;jnt 65fh P* g `   2<ٔ%܀]'ӝbiϪ`0r"|LC׃} vԘ)b)\asCT5n',Y V ~#W$Y# f4#5) /_35564_1<,&("!%*x.00/ -)&M%_%&)h,.//*.#+&"{U *%6^b 5~V. V}U@^YՖԅ=ծֱxzV Cz}\4 %rs L8zMXBb "yHy u /  Q +^{ZbSwLjL[`ZFj`#:dn\6X^B_`@+=  Qi, bvNV ) 8cze+  <!)#VXEKLtgLWDdg*E Np E_!k6 %}:Fs" BA2:gZbN;% Foxqyb >xx"+0%2_0B+" XG lHɕRӅt<A',BL|$ \Yf\a rt eY 46 j 4e eN*Fp   i!_H։ӶdؓݲZ Cܱkҗ':۽IyDg8wp Z(/p"yWwq$>H"R$$ $!#W.I ##!A`0D"p 9 :R-\)% 6 Mz" uY76ydl zE" | G 48}kL>JEvocW&z*8%' R@K]v7h"3fp)J}S#8T(7A+7Gu {  e3P  u= !L! m: 6A9 h gX9z G . $ 1(m  Bw+J>/73vdk8a~b-,&@a 9.u'CL@CvJ/@= r%)x)2%d i7Q=L=OQ"  ak w  &T= ,d Ig= r3 sAkgQV+!@x&6b90K%9 9 b 2 % uD 0X.^ $ cL6n 5R=RS ^n{ =: ,c?t 8[DZ1,wtJe%1vge{Z%Y>KJ D\}RL lh "aJ G^[ m E JZn HDl;]S*N`@s(!eTe^ +Cb R\c" P{ݓRcE`&='b5knaD7D } j e8 >. : !1 !'x \ 6& sC Z KZ"" 2H| ) UtG } z y myIflS -n iY'\}_ll  Cv(uyvnC1'%  C3EAAS :"EV ABl|Y!O ,B iaz (*2  c=w -'zRpP 2J( S +Ro|g  pm  >;U8b  Jbfl9vL} +0VT{\6C ;f b : 3Az{R }];_~  H S 7>/d" i t 2 4/ | b G%N8D8%o_qeO/r=Y)88/5Ciߍ$"y0 GmY{ s :_7A s xT857nu< :7E ;!0os^'@sAq0pg+| ~{BI`S]f bpt Q ' /> Q6f JIA;3N2/ GhY yzb|cw0!J_H&s : 2 Qu\$wM8_ XE  ,|Z(M^ [kI| \G$ M 0Kl1-_Caj# ^S$^A=XIy  YZ\>q8<8>?x)Fu:m'# ,!J) _ 4RYsg&"\8bCcK4Z.`m d/ 0fy+H N]Q.-("e7> iZ #  G&z5}-zj *T?w |N9w~ fu>(L [ Xdp^b%Sz, <  6c.1 @ I 0! QT6O[ xS!h 2P !xj:!j,eq=() "!h m Q%L]=  ntziVdAlw{C,\ZZ!o^S6uq$/]pdZ\A>$'*'# dhzbI,h5,i*ؑUSԲӨ9x۴Y$J>12`U@?& 0 i?wmB } T$*"/0/W-)K&"x|,N o!f W%/ KU  CSdޙX-jV̢Χ62ފvpGRަ!s r P" oVp9`6K| ").1g1.P*$o( "(-=2454/^)!]a2Ai_%m5    Qw =^H{ l$ $]A6NaCcntکbfMjԡۈ?em S.  H.Sqk`UQO(> 2Cj l Cr a - >7EyUwenny 85)&LUlHp116?d4'P4iND6#l~?%z-I"(_- 01E3455y41+$ kLag`,}}~N z_J!(&*.;11~0-("G<c bo:eHLoj9,t@sLwJ* 9 U 0 &{v`] .L- 0 wykq>;}14cC8w45 JS 0SoYo  !@ [&b6#$): ~ddz rEhN uX;GGurli  $- ~Ug2+I_}(nL: j:>z(f |'[sYTE`j _ JW]I$W =@B] I$QOb z  _RxM/_gK dIt  y33   F Yj (\  ;}t 3<p x Q%; +"F%%!) _=2[;x=Lp_M"ߎة+_Գ3?a((m9KsH_\JBh -x l . :%~"##("R 04s#b(H+},m,++,,t-K-+({$I = E  ~U"#$# 7@ d  lGiGm!aU<]Ig.sq|tcۏtV- yD U rh' SN8F = 'EE Vdq 5# ? RQIr^cn=V7)#ʕyQC};Yi~GN`z`bry~ j #!&+*++s*'#V9m.?$(*)& Q4 "Vd  OG 2 ~@uUM?Ty4 1-'0߈H?b7#jNPFJ%& $${)}&n|Pހ#L`ظ Uܢ;,m"s .v:@ 7RDG!%^*-/.+&0B g ] z96D c-u>/ M5 ` ?wE JmK.S. k"i]=E@U1Ku`@bFm d/n2"~ < MLna8Z>$*N/34j420E.+( &c# na 8  =%T))%4_ ^?spl:c]p>a& ݿo2G% Ks))G,x_ \ "R`* + % M YF7  w % PDXNEB+b =KyٷԑGӹ?ܒ Tgets7=1;4M0U J 84"s,} 9#J Zw {a.[8 F ?IQ8L# N )L R=C!ahHzG%#m 0ucvKMglwzJty$&eH4wtcu;4Y'$/QWx~ tg lInmEeJ-)y|w% c j x}D-T[E Tc H~ 7 2mx( b's";wf`"atRu1q'96Is2= M8g$kgF]N ;"J0W4BU /4 m u _/r,8`; e|EN * 6 LXw2HE`f3 ( 2#L L ; h' x a%  #2 @D+= Uy V!: "bC %?އynD  M ^S.c^wKs)#49Kf*27~9X83+!  tw> D < y`)Vۣs&B (j({$0G?(_Ec;  iF>> )E& %B".< @y~mOZw&   %b,S!Wu߉BAFVV7xQcU-ct`dgF 0  l]w%7'T - -i  sEDM "HVAde,vMf\L 6f j(f 5  av;pM !6v ,K8[Q]0B#9 Y8 H B:Qn&&\4Y>^ N'  Kw:b tE !! HcE^ _&%ib4E$ H7 N Ao , :`)$݋.ܘWA?]@34<HZUߢnuXQZ1# * * T  | s  \^K$ xu X-)l \ ,M'i g{ara6',ObpLݘ XCN hS 7m % )r MN\ -FXS ]6$ n !".!7#gS Uu xGHK hKl2Db kv Y\LWhgZc: D.QN= 8  0 z _M  s o CkeS# 3 {O qdb'?*"oh{5ic)H-j`k/ W  ^O/ZSLJ&xF= C! Ly r$ M k9 w-o ZvR- 2  4'0G.{x*|ef=ڒj7^Ah_MX/|t1Ig26lF yOmt i$&$q  d5$`()'N#E~Q Z { k\ R,6Z5=s z -u7_T@:/JW-2Ei"z`y^4 Htc !'*(" /L 5^WUcFoEX *0\5Q8p9\8s5|1,B' S3 r *mvtZq| <ۉhS>\Ibԉ6w]̇{ӟ׫یUfM,Xe-f@k?m"'*p+)%Q Q  [U } i $ !!m $Ct)  V P35#e QAHo6 2tkK.}L#އڑ-98T2tg:pj-,   g#&*Y.<134]43(2/-C*'#V J~3-L"%;()***('&D$"L]Cw N U1bOJ9Y)l܀'a%2rclSIPW)4iڇ{H8\}{e91l c$ x6 #$x$"Rf %   kcwi ! eu~RH< ެ:g; ,^*mY^|!UB9P e 38n$] 2J=r!M%')f(&$"! S WYMg9Mu3TuW*QI WZS = > ^[+% !""e"!6!Y hhLa Y?o6*0QVo6<C[,m߼݅`p(a$RUya]}62|# UaF!ZnDLvvChNn?}Zb'  .#3"'IjRqM;gM5K0)*&x\f<P4yJ7hR6 " P 9_ nYMx&U&'{8,x~H^Q'ZEtr8+n:޶kߑ=8ee  i AQ&k~ l At wr L=fA !2"\04  L;6- ^"t ejQ<~;"HayVN : =85 tto[> )itb|OKK Jp:k`uUܮض}ׂ{DM({}K N6#i4g{fnb  k!-%'&$!lY@h u A = } R0\?m@  a t 7DM| 0QfiR`\; D61  2X- KveON)x : ) 'LJ ! Y[ YG`9OK\l1LIlii $ k-~LD.df=A AoJ ( ?Q.V G@-0j|<- w`8 Ai1 $ B   nsw*a44TRFk\4A ' o0k$؍˦ϟ5%9SRB4_tTZpaS( ߭7Ve`uT--m|;x;<$ P{\%Api +<R *  C = 9Iuq8k# %*5ܔ/BxMxJE C HP-|j"?A?9A \c;3H`"`f 9@ ;JT[Gp }2 D- Kq6P^DZ qSghcM , . )K w $`#;, N[\_ Cz <"rxFrؾu"d{1K#kyHcRWg-@n9we= ?m{9N Wy Z9wEU c!"_!zG 9> Il?>b Tv? , ]>4P'-]G9.rh&.Q9;" . %=g N:tl# Y$x_*%+"{o82. #!%<c o3 f*6dW]5JCcK99h:#x K2Y@ b2 Z4Lw tNjCZA7=-c{q&HYK@ߎ:<% 7Y#-` Y;oa;6'!h( O]Sar"^~t v 'X EY:({_#1#} o30FAo4C&N8 ]^p8t274Y08`1 M kuKR5h }% kD. N h 9 X M 6qxl9p;0n'Lgj9ּ-;bAa:L.@!d+tr>?\)< f  /]D0T ^ -bQ R 9 ` A  g0<P 2FrQ A%;"S x h Dc3j: 6 m7 + 7/q[|kEWenfQ.uFҀp|5["q%%")}hQ~Rh*[,$Wntu| -6#*-,9'i"=  jVRxܭ5Φɋ8ʇ%;Fܯ3 =p X ]<7`Vg Kzg_xOaS-n2M 8GaJ "?$%$"$S {  CA/(7+ jGk Rkc#s6c CflR jAFT   ysx@: D d!S# $#"!'! T "  t 7, v ' A*i }I{~Ml5ixIC_Im1IE ,L m[ 3D: Gw ZGpz_%ZR b igiM_@ MJ $+ : j  @\-QUk1.  < b Fq J:69MK  3h-T~sbDjj];2A)  >i=qGc0'q?/N W0+ sUCow*v,B ( 7ko}H5= 7mIw?} 49 ;D & h@FdhNG=y P J rJ3eM1 Dr[SMg4w,*:eB9O q ?jvx52wq3޻ܱBdriR|[t-B[}*X(F?`QCE:? B^! 8 % bBOy@ ?]= 08 ;VO v.Pn x h 9p[K #@ , sYokwfyy4:o  d@fCU5: 1" []753 H Qr, Ui X-_Uf X   08]e%%[VU{XwSx @/3V n }$ ZhP4  `kuYVX' L:vXY?; Rv)X!WnzEqM%;m RjTB "b< 4(!T%&$=$@P \l#*3t!Eկ>aF6!q9'S$`] IF$>8l2   i a(w ;7Gv )$)U-g.+-)#X W mS% q ~ _pD(1 6\ mv61pYwy+K sATn  Q$hT Zk%!L{D/Q~Q  ' J+&< 3p;= Z"kC C\? ")*032-$ C ]3  &U'm"5-% dSx^ 1 ژwjݤ݋YS&9R`//vRn#uC52S !%&%8! -[1}z - E/um UR* =zm3' j^   J Q W J$? B( r    #bu p$#b?CT#$|Uf r R1X5 }KY 1V~ 2 5f^^ CVH3[i6\Z&yU*>#Nl? 9][w\YQO/srܹחքQ6ov q/  2r  w>bN C?yB  {zL25$- Nx h xKJ",Q >cbJ, }    w l <  _F[> [  T J [ f\~Itqz;"-,R_, X} )h3u E'b~7߃ۓQڐVW-+461 Ic+P|  p N S!T!/  }"urI([>C%  Q q,[nyzAV^*oVN I z  A% D  <u=qc ] ^ [ = }I>CZ;  i fuvںp$(ՆqW!-[588c62,'$i$5&)+,+&=-٘*sGvxJ |Gw' tdF<)m~[  e$  u@t)\\iU="OyM! { `E@Ak8%bo)b[_<8cKw, v {9!&TJD/j=G aj"Z&x[dD`T X@ I  2 $tSamK IjC G_/4sK܀neG j&@W 7<+!w4`v(QnlXw_T` v)g'o -""M@2 *)*ةޭ & > **n\88 h  +B@:mYp=S|)b]A`"~ n d2Q;q  ~yi H 6 0xH< ; G6a9_E 6a  a 1ye L7 9NajAMc[y. 3Ip2b~|"A:&+#,(h!   {} !6*u/K1y/|*#nXS $&%!KH p aMEV#&?e-ijO$ n^ ElGwY   ue 8ppSY7xb ?amgL "  VnJM C%_`sk j2I:2Y9VM\B7x1^d)H|O/x/@}7.Vo9LU3 &"0 K3{xm^ XX_ {* EDv 2E4R HYbes m&}\'t0:Z qyRAN`tM+ @eC7gIq(dk%R&\6qTu Y >e K!# 9  X #b2lS4VzO?= mNn$mp#).0 /D+?%$} 5^zz[m4;dWb (` Xn,qWPDN(N)MZ !O=Y#j  y . # 3= Eh- yXP\wbV} OY dnGUY6  BO45 <{a: T1SoEG + XݮSSs%5)cgzXB.+w d a=h)u&'S9ne).pceEl  (_G o:kW 8:n  ED 86Ju |  q ~pt "]d 3 7j mH(!  `hytۑߏ J Z  WkRD\Y )` azL)=D i!%(*)& 7s I  O"PvA ҭi#$`$VϏˈ"ЍA[2Am2AHK$ 7 h o  8  n pI@ zfyfs  ","Wx& Z , 3 fTk$  \  N:{2 fB?U/H#2<6j&;hQy  _'twK =*M : &m,z*!!!  I\}0~ % > ?=3Y4)n 4 K^V1AUc57rhfYk *&z}VG@ H O8 A  % l*[398x9L71P)N ' g ) < Z _7k"'+\-c,("^  k^b XSzh4 &mt3M|#7B Ap_ K} _1*6d \$ .j:/\2' R Sm K" GQS6!gKA# (+jL+M:<  B7"e] '3 XXyT k / b[ b}J  @4U U{ o^c DF 7 Q?+wJ K%WP6X@!\qsUXN.te0xT ART6 y R j/_a ; jA 7X) A;fZ2= 9g9|3O\`}ۈـ6ܸ8MZt*8l 07.mer:H2, b6E) < 8{Z |!R!cHT z&^0  7HL%NF(|Kt/x)ٰpZ~%N WCg ! 8=zc NFknM  5 `I[   jCu-+o pm `m3fZ8Wv+ aki1O<u3y6 r  \#7  &)  $.5 984,K!*: EA a1R P9x<"D_M'Q 2\<ni J9M.NE9nudg\L[f,* !@%K%}"9 3 3 #2f <"oD9W:^ i 2 #moKA^y_> >6tx  H'] w ##91e+v '! t1 )'J*fr]vr~"N d yG L BC.,Q.ae=a [ :  cx z # zr xt $ w%; S<"r߻U }J|9!b+SݯWucWX~nNd pv/m!\!`d b  V )J$#V ?` Nl R0",&}3sv}U@9FZ̍:я b~(n    x, ]1 D i?&JkKfQ`b u f *. I" ,U3FNp#[P)ݞlN 6 j.g$~K (  MWc\ ('R b [^")/0.Z'iAP cIzYmI#$  7WESpߘNcb:; 8}(.N??yW DhNM &8dU x S1; p8G\E/ D4)ih8w-Q%@  8! Pb` u1@k .N"=L4tT ;Jxw,F##u33b"?B@<f\ =+OUb}Uso(~[V V + =Oqb%Fu-.J W  hvKSjWeM:WZ[ 8c)f4,m%{h:[3 z(N-v[Hra +Rn[krM0r:1VNFݳ 3$t+0BU&$*.{Kf`K | Xbr]%a~W1jr;)OE|m~O O M%;`$ <!`@C'@ 1 Nl\O)[y 1g.Tf.X  B#X)--+$ :  ?RW0.gH. "A}v(2>zg/T1^Bqo&pw\0 1b5;;& p ; a B AE*Z KNdzm , D J uu +R=KH}qf$!D./ X ; Ck"z2vY Xy Pm%, ., ;x c#` O ^ q\t>%3{#1 >Ow0V5ɸ|τv2{E9 _ i  YzpB  < 2 !e~?!9z u e  7 _f1!  w ^ ;C +7K3 (> Y.t?Od w<)M /m?7PR9 4=W= bgh ~@+ s)sCq 4 * Y wOZ+m/ x x X 5dV Sg#+~ZzfupI9+-* 5T `c:o:`(%aO4 # r$yD.!    @ - + k rWs~8-=S(zp 5MQH+GL8f. 3UeLQ o P n4!& +,+("'\4-Z=&;T6J C@]#+#Ynq '$qػz- )r_ PO 8V|+m&> yr x} "a*9.Q.5+%+% "D'*e+')1$Z  zy Z T~a#pG-#bNM9߰0>v{C1?6Ӽr߮, ez0cd6Dg [ a Aj/<) h } r PSLe4X/  YO9Y ] !1 g@ 3xR`=S %\AI $eZ >P MgV vV _Jl W V|Y{*Kw8   Iy1^&L,F />\ k&/F=B n" `7F1}g:: ^-3 u'y uiW $E&;67`0y[\=Paq1Phr9TW7U KS~O " D C ` :[3NO  g/2 *THU+JDT,7'+\_ | Q ""v&aA8 *M  ^(R- z  FsfWm;7~cH:e )Gh7J9MQEgYV\8"@rkh77vs'X.8i+{ ^ ol)D~ T<W @zb)tk*8 #$ k{GNa{]w>_MSo$rPF{?ts *]aml dHl Ns\1E 5 Y.}K#'y('6% V M 7 V(N y 7  q&WF= - ,i:fyr W$o>ZWZ  0a<:X,AR8-l U2 ? ]:~ OZzYvH  {)%  ^,r<|EK= g` LQ6YcfA7" %h!@; 2r n+\ <T7J_9 d Q %p"<%6%"`A-TQ d#X%$!c@f KG #$"dda _K@lV1bHS!%Wr݋^XQ^J\9ݓvR  nC kh ' \w K!%" %H&%#  H!vsD?$pQY{x ) U iMMD 7QmhZ@} /*iD  tx E & #Vet?9@c OZ2%|Y; Du(X * s0k - Ps D"{& Ip.$r&#-m)A v Ww:k2("&MSV#H_,exQM!W]6.#U  #3 _M z1 w b /Tu|} l l X  G@eo% HtKgcqWuY}* n ]r^ 7GhAp)O.y8  M H #fP% DTTR* T)HmN kBG%H_!p&h0-~ HR t t } 0~Z2 | ]Lfv/I(V1673,<"#P`q bi"#$$"| b4DJx<KE:LnFrY-pWUP@s_t}qs$HWkE  F MazAP F Z "g#. % E5U t>X + *c7B;81 <Is;Vm:a |SAum6&y #ot t ]  q,e  <~iL:W(  a " /(C|b<u{4gm% ccm> .LyR- wCM&ׅt3GL @##HT3@L YZ6e?p\?aY٪k/_b1p U(f[9B:&n o )h3Lq&M  /(|` !u 9 ' Jo  96 L G A )  z- .  Re Dz( x3)  .*ѥeOqJRX;}D 6?-4e \ 5n 5 Uz  s!fC,  P$C'%? c {{G]![ re>]>$1?+fFPz9+:ZW4NEV++SJTPe* 8k(/4541,%47 %T| [.ySZQG!J` 4I/&5 sk7)]7)aobi`0uqwxin2n{riJ @ \ J`{~5 W, 9%''%!8M;QkA#(,...+(%"!"%(,./q/-v)#) 5M~| /  |!!V""#%'J*, /W00/[.+($!'kp=,%WO n C{w]_&0H |ڳӫ E޲pw֞0`31${I 0x * f#$#!$@[#'*, ..,*R'#|K(rwK 1T;#m38"a߿+C^ދ؋3זqJ٤ ـ׃կw&ӅTٲ݌݁֎&p/nfn@1# pXPU  E>C @ '-,2<4?4O2l.(_"W %) ,f+'<"i}' %)*:'k!/)/7 )T7F5( `Ιyg<U;-ݷU,_۴Z ` t ( $QUFC Tj~ - RgTuD"Y%3%,"q+ B'+PdwT %\ޖsxubؚ ғUس1*xy]1& tzYdx?  <#`$$y"g<J q ImM4  a $ h[Do ,86QVY X Nl_yN\esmcPFl_4y%;> U3Kkk -$`zFG~ 2 & R A dMjuLQv! L >8@ < /5 ~(1}", R 4 f(B { o :x vZU' v Hs;u Pc~w D5 "!)V   l BlIVSU1i$6HB;DHRfz|,Q:4]dMW' @i>^S(N0#62fLj Q 1 pH'(6;,sAY@hNsP,b5Co2n ajKq:p)%6{Z6Sr}ۚϔGY2# <\b^r9K.C#Pr F f |a  & ax!Fi(  v>P`_BcA]m2A_aLxDk X{2. 1 >`m!>:q^bJ&j6 X   5x&?v `dPqqCf/q"y AhO <@ \ (l8U Ht xS 7} FnUh9  iWHW2TsG>NB\}i$%# i1})Ph7^ d pv+@  8|R3F! Z  8 8 ' o GoxxC g Il lXZSg|lR 6 - "}4 6Tq; 7<0F-CA=!)/4B6+/ep=ؙעڝ+MUb?a*op$;wF&lB `KbrEaXgMGl ;19]$nt4z  % F J KC6yLJ5wprsL1Z5QBi!a MS  _xGM]Y2"~}Y:R-C6 wrG 4GG|v"[]L"*N '|W8 ccfP|$sK-Su "]%~$i "SQGz|=4iaG)71"L . '3) { Y;(_V|x  yQ/K4] ~  ]?{Mhif  p FR-ku#|1 %U!>6zK,FwG"! j C j~b B5a R) }2 8Ewo'z p  D \wJ q 7&{(&'#J!W+R ##r"L<"6  JFoEn l/TgS}6^jPګl2Px9vv'w #6%# +0;9  x`H#F&.((('.'@&$G#4!nC r5z׶ԡ|UFT@M4{}g  % wr=|I{sDA.HZ%Yd`T~ 2/ +x<6jk\x'V ; A ?ELQ-e e Z !zFo, DP-} 5 r,i%F  \xYP;NWFAu3*#uE !_MyAu&MQ`  ""$N '. qvwEl8e Z K G.|fp<A 4qHK'S  ajI[Vj*LYhB b ' A m  !5,a 1!$'R(()E)s))()(Y&$$!>`Q #'S+>./.6+y%?WS #"'('<#e!^SIw( ,[hc9s{}  TU7!MG|_\Mdq GX7Uuqk&8  (6i   4Mtx j S   ]qd} Tg|\~DBFh2 2 EA[bYY/u F g  z dn9+(2rV~Kߴ v7W h vJ$&`#Zslms~m} 1': c )A BR|t_ E!eX-/ @o" v?\&=H|1&j  j 0 ijj16og["8[=x ,w J7_{l<+W >{ _+wL  ;d18UM9WW `  x8w u  ] 5 o T!S-\yc;M>{kQxI8v4AT*4a Oyc \W / ia9`; 0  M1R;%" DvU`F?+!߅d'3UGacn- W G '"$%%$#"! 8N =!  9 i c8 du%Je##gN*e N\A Dg8 H <8o t<8XF>Dx$FYGL[^3>ywP{@$[DN"+B. , %Mr4YO#3  = UG$#V D n)fOC# K m?s`s] t  jD6 R6]1ܕփ5-Hf 0GSc[+_ ?P 5 r V^*m( { " c1=7 i+ 8  @M @ %R2؀9e VYr_%-ܞS80݀XpmEuy7P  /I+ B[|% ""A  2x^ %#)+*,*'Q$ 3q "C#X#i" {hNHq9Pu alv./ Kg4)"t(m|]be>=Yً> bL /&C4jECPJW ~ N M9=\ s4 1 +_f?#')l)&"\ <Ej @_M& , S`(hC#LW) })v8(b 5 }U;  (Q- r 8]`cd . 2 } ) ^?V}fT|PeU; k@e MTi98Qpq& =))ulOu w T8 ; U ,{%'* -/.-,)e%z!j@P'U<  & m F   |S~  ~s\}a F1bkMh#7ۢ%h{ O{}rZ[WyhPu k9qg ~ #W8 . [[N( _!\b \>LerAV _ _5e8D{|hF G #> Y =M|Rq=~0cxCaAu[ = ]fj/?J:o)vb?t"_:k7JE,|v 4 %[/F T 7  W )&O(bpG&z f[Y vkJqI|N, 9c M#W=)o}  \Io_L  af p < d &8j"qs' e 5 s 8P$E H3{7  P#(+,L+P'O!s3SdLx /z  } $X : vVWM97X޹7ۚܠ->qJ<$q[G-xza9rC ' HQ!d  T߃JM s xt(fEsjY %> x Pu ~"n}F  *boz>Y`c > i,- yJL7vt}p){wa'L%'k82n2*MvD t @5kQmg.&cHWT,,YKk,\Y ,n 7 $ * UUK)GJ8Ue/pd  < Z&H'~ nVeCHlA1cs)}l:XY_o ?s A'8tZ p jV  Rq[  \T7cpy v  KUzq)n6J10ybfDWWi< QfEjA ] -Vb7"4k& D } r|s>  N&9*+*7'!@R X    jCG i)|Y0\Csz\.S u?NX7<,g 7 _jV! = faHbm(G j d8\7 k tA7k . : fvfR"]Bk /S 61 }za]!La )mJf x/ 1_ ) WHA0 { 2 ? a#| # Ettf4mR: Q9gV P g }uX0|;{g AW  iMZ  % * F L0 KP?NY3^ra!pn^ rRb2B  ) cJI`+  3rg v u> {C Me RB5wr=\_-M H%߻33&7gR*E`#C(Q=NXDUoxA :2 C^ j (, bi" S 6 K s~f |y m p + f71ce$wt2]jQX lFoZVh߄A٭هܑ2G.aE$u[|(8 L g ; 0> 5'UA- i = /< f G&vC $"Tg " 8:78=^Z5`Z-JNMCndVP) t.;*.B|U?m3%TZa.qM O + > ICy FNZO  f9e3[ Q }(} z@L>av 5 C# " QlQq{ 9 t7#>*O H5GaOc,A/$lgjk, !Rq De ]-Ig&{ * n1t~ 5 t x#f-snE3P')Ug-(a3zS1.!_TI f7NI 0Kp#3Gq* ?u\-7v ) "{6SS@z?P{{$%wB1-f tqZJ#%J5S @'  dL =&Nd.8?Z ; F IZhT a RA\Pvnj  rrnAC(O}z+usiZN+PB'E.Wq ss J  ] r 3 H ![1gQKt/7vFE6 . @ 3݂۫Yob +E5SB=]08 E 'wh{*g C s x eZl 8i 3Ip$ \aldO N e ; Ijj*Mo!70:/>], Q Y 2 8 G n u'}\dl(Iv-! z   G v(k#FV%3) l Q!U  4 'O=Z;J4bzZhq { .v ' Pd3 Z ` e b\r :(%[>" n$v,CO>V,p,40HTPw^dߎGm~d Y^n"Ga> Me] H 9x2\4'2&"x8qARH|pfGV [ '+/ e )L Ri,  W5NY DEW}V >!FYC'O%!JN 0 ~/ | z@:=U mG  ,,|z ` RkwT@nnkx}azRCOHws *0V4FJ{hZHReQtmhbHP^l<h Rm 7C 2md i  ? @CjN {  `".!V{1_E$(`N3#*#( 7n up*uG|I} ' S H  W~W0@ wd 7!e K  kgJd(Obg 2Mv,%rdS;elKtu hnzXnle/ o!&3S*SHf P$j"L.}B.jR.] 5  bQ Ct e"#m"r ' Z7C  x*9LdQq-L9&S5J ;[}Hw!PvGE*VH'Cl}8^qK85 N Z1ta  $ | joBuL.s;Q@Z(BNYZs^KH c_+@~4U>C|H-Z.>}mG ; T}51n|^ \QH 1  vyb.u9A z u F$ x7I+d k Z|z; Pn t X  d [ E z Uy\+1oD]vl5>V'S{,=m2&CCSTl 4,tZCvzQj- _ + b sT-*R1dH D 7 e'S m  D 2Bk  h^-: DJ.GNxJj*I y5.I1<~NJ33 ;wGU:;w@ 3D0 \ < .9r-h%Az? ;, u 2P,I7Z&"E]08%Ato?h jy'7m4="Or %e|)Xstwd465Edw+@g1aV#8hOhM e+ k6t|n X  }MSd C) i{jR76 G8BVS>csK"OY:s4$U Df=T^Ft%^E [Ga$V,\Z&:^K H $p:,PY.1 ? 1Xd  KCsMxB>5/`. ]Xh56f*q59%7 C j G0Y[bXKUDlMPF2R.Sb1wL #?7j=VQ:nS6GOlwUi~r# bds0B7 9 (W6HU?d0=N/`yq ` q  1DH`F4Kvq  8G Vu"g|`m$ ! dE +Sd o Gl   7 &7_ 3Fc4{`  Y KBq i9 5 k l+D 8 Bt _  c\T7i&n#x JT y_?bz*bsBkElI Hqs7MvanzNK+g ? vI1!N7  `ZY S ZQ?   Sp*Pv ^q! ?;TmV {m,KOgx4= Z[c2;990[#9lmtEi/`  % U  5 o I T^ VK4 j a 6 '  M os&%oAfWHtTy,eIC26 F9m=U 4)*:hWXL&o)"Fnm,V?CY k?V'P,0l4+z, 0*iwQc|B:Y_J J !uS62* ; $ f ' M X g8nOL -BJ \ 26cN* M  K ^ <>&SV{T @k#J_Kr4L-*uJ TaeO UBZ_R`6b~))< 35.$ ; V F .e@j= 4  x 3t" >qZ"FRb"Ba ~[qlE3/$] : < ,^3yK k#Q(p D1|t{EM=1}X(,F?f->LKx+zesG 1uGG[4zn2 :oZ@36]Y#K0o,TN GG nEPj%xr5!j/?]~9zS^ R\v)-Mn,a P 6 o; N aL1G6`]1#<|gr$Bl+bC(4ar~c 9k_'+l< 3)) oE6w[\6 ; - / S k M '*v5?z:$ j " [ ? |$x 5 n `sA`TS00+P#3/.oAm_au{jy0DA*J~o'bi,G A  > 8"?& J ,h  G4p / :I>2K`  (4@ C*|dlTDsqCT'JEug 'k~E'DeB'<2 ,j bDK1{A 6  oXp|v0kZD2Mj#^zN]zN>v"b B & =Gc$ ] 1 o6yJadREL3 &{@DqnXX~Sv/kw5]5XLQ!t Oo|yznXi7NJSc}#u<*W _ Fv t, k [(0"z6 c7@N/_f?Z(y=qHW@)\d4 J UBy ;4 MK]q' YT2R - jhEqN&SW41cEvhu{fo}"yeO; htK/a .sn;f;DEs=Ld^)$'m ]OWedYv 5 4Z }] + mC"9Vc]zi 7h,/6%U+b#v,]!~1S 7 JVGQ 1 N }   J h (g ] z #j4Ak<5awc P (S5(3RT &  n  @ } db#H~v[n u~ze@77T1~:VvT<=z.\N;l/_=[ioBO<?a8 N f {R} L   N%j>^".^KE#T 62<?NlCE]U  +!w 2 + V G= c R ?<c4GbD%/fdM{>D6lHb"8CoF8Fx H O`3#, A G I > [*Klq4HYcBkcRwzC #m%qx,g _)*|qEUM|$N;Tdfg_S9BE 0b\RCI.C- O   j W1\$t1 c Q2 2}^9aq8rN~ Ul{0 ._*DEX~yB >80[ l? oL?{6 A 7 <e9V]XOQ,H=]KNOKSzIvKB:J# &Vc2:%@q}c{<LS]E\H D$/1v!f lNsp, #z *|]7BOu!137DH[`V Nsi!~oC e #jFQ\b  r B%J#pY&iV&q<wfl5FpW"'#jGCP}(-R/B3%G#YBWT9R5(4dxxT w:-Y^N_:=(] B@M.'QWjC_:vF~[dGY*@BiiBIvL@V syh`@@=Rh%sy%}g(v:aMvaf=# , O   nV {ZT[_H q>D=lax|GdpX/N',L|ZPst1Ij<3QJ5&pN7$zK>|L :xs bS/A`YNx ":gy  B&W Jd X 3\ 0 R S +  7 I y Y x .7jc_+49*H&c)^4 c --H@ #N"+Hgc5u{Yf  ?   ( (XBep<N I#]} pF5H~NL6pc@:1Bq!u  {]oR<?v[ [ Y OPeI:u9>%"L2D+LAl i$yT3fA\*2"?|zrar'9OvmU3-#4cvH C G M d.X: L #\b)UEM - =.m-Nf(*G`jt8WX$cX O$  *6K_:q/r M1 F%bg ?HR)=,! p1fhK]0 e t Un?PK 5 A QQ$)vVe9w,B53RP {uw3M[2W&y3|A^H;c>~ . Q =PtCR "hQ\s|u H"$#[Y  ( r "gZmJ '  T o?$-J tCL2i39XE Jpx>/x;h& R g=psDY3fKK ? ~ ] ( +H d ^ 2Aw8uU -)f.p8?)bc  , f V:z2i(5g}?CH a 88ZC,}8 U_`Fx5dT>Yw!  d&Lzt/aX6VmhEez{V"P m opbv]6#$z/PZ $rYL 8ff{<L+TK<e< @991 ~ @ gd ^p2<h`&3Z5Rw0Z)} zqKu. RW`KSW }.58w=Iw<[ q   % 5 /  V `  v-4V*a<sH%&]`RITt s <Ogw'Q5e[x,Q^j93.(//y{YAasM0~2o|0$K !+]MUNy7.U5$u9Y # BQ\57yWZXp,j7I0+L%Z`Cr9S , ~ y + jQ=j&,ZYF-(\a,F Kc?Mb ^*'xt, dGQb*H^lSy zS#7d|r(}D<A3 jO_6 < g4TMw=_!fH6s_SL$&\Qu:=A!9w_> 9^@eX7Z5*V.KD]d/N%5}n0.`bf5q v ~#  Y3"9br?@ H"5E_9A%]}MoXl pX)]9'itz5 ,[(w@R1xZe:emilH#*0<AM_lsiC4Y9oD 2WyN/jfzc4<Qu{ 8C3P+hI(_4a*G @:\95Y"SGAQ(#6/@a" L,pPcj |a/KyCP%"e d{F*wb D,\!:,@dlR>x*I0[48Oeb1/ :{#]F7+:7lMP cQ A 0%Zbz|w01'w&&]EyR>?d |yE_ddBTn6j;8 ]  /+7.pV>{F])iD kbZ(wf?9 !EY&MtbS<n < Dsq*9O"1taoHH1O?8T% ~b'U +]uU% 6aj<4";e:$NL E'^Vhcj<tpG^RZ !Vn ;fQ*)e,^aI+lnm1 ' mG7,#2~PZa)&c<59\OmT{V, ]s|ud!CR7M)ylg.[:-mf=zbA3*kZVv&'s s {3/Alh3- 6`tlR3 y=V2-'AZlspirTLieoM;^UU:=Bdm;cFAbgthl^2=&  o)<D'tfYHl)=tV; |\A){Q]?\<im+-[|v r1w/&Suog ! `7Hpc(PnrG++P(+ o`*oUO,^ @:xY3.^=| ki6`j253-YyXTO9S-! GH GT-E?vdos;g{G{5BBhWLKaT9&INyi#m P.,N[* <HEP s05 "45+&!9'KfQ FM}[M&6U- L`cJIs|E"(>S\=3` RXdquj#fsQ_f`+kw>X6n2R^#HK4PP*2yOW\BA<1LOXr$Kq]Ee(p9[ s]-CrhlgemT!bvr[kZHW@:r`s4"|WeW8K MIiBVkse"t,)\=!`=Lw}[RCA">8fVNOKD9!7vD2#;NQ,i|'n3S};/*O^>q.<t|a#6n@^wy1{Y o p'u|MHm :]C ylM/7R2oD"Q5xM{Ajj<1EC!%z-U (#  f]R.ndm/sA$Z*V8Wa('+n-\ Qhwd#>@GbVbU6O*BoTp'$a[J8.cOq=fSd6 $|OH6uBGb~oG B&C?A wD-$.AYs{iS d@dcL{kx-pt'r+%mEZBYbB8'HJpEPT3JVGe(^z c))Tv|EJve(esB~)/rC'|S[d/N+5r #[p+Xrm=?pOu89R04| ;*VoBe1 8$cnDkW8t.B%dC>i"&*m/n;}A N/g~?3~'H)7|1~XQGwMi&% eQLTQr0_H]KID.wn6[K(v=i1g&m%dX6IS]`bBy8 t8zjVDdH$  6Qoz\7y8n'd{c1h=14AA3tq=ls9O\,*JH8e#,O,-i4NNLicIT+"=DUK?&c4`FCW,P7azN(!RMKt {^nm-tup+RX(Ra&0ZM`"`KqM( $)11133BNq +9;6&!!8_ @`pxz<*;7G_P{i5a\Y^]RG9;Lz\R`%I:4i"DCVsit fLWUwU6LqW,g5#YF V;) a<$p1vW) +1#n!:[1+ u$0 cca-gyPIGC?dCA<1 <q1Lrn%{yF 6LV6gSB9S gDH$/;?}j)o\- n@$1_#OcE3A_ay\8&!.Vz :kAa<&c`E-$9T}x`Pc{j8W?}E  6i f1dx4  gikF^(m>Q(bh$ZFu#KgPSD-b $}VqwN=YdW6YyeDO  @gwSf;32K_znV2 )P)z' R()gTp!SK*]]A /5RUP3 q}C/TW4=E "?Z{N6YdO|1 Yf q|*1::}z7V/  1d d(y3pD 7t U{\TNaws.vWVtR0bpoi[PNLJF4^@/;^ qW$jJQr;LG2 HdhRAQyN&'H^tx||W1gey_ llk8#C80R%&W^~zxoo[I-B4j:  48+^Pqpt}*4 lO\mo.$WlgK }l]K1BpvCjz{qR7)b6s~?VV4@*I":nA~%:_~X'j5._ Hn)rp  {Q928B\x M I |CG2.@?<nu"=P^nRwiR, "5OWmm|-^|R%w^D5#lD)!6a4=7a g!zhIk=&-TXgu=Gk"F?"_JMa|&)'!*`}z.PbgO,r:&BZ[C \pe$AqX:e9 <u<F6_2!J}&Kg #)-" /Pntb.$9Yc$A*1 YrE9v7-g?r[/-l;!~R ~|0FXo\ };6`m= iv;~tjnq!>KF=|fYZo&!xBG(BC*S.'Hz$*zohw9Zn 2RgeW0|F"6V^egQO;<:M_SA 1hP~B 6lZ /g3@RZuV{%S@zr_]9`^7S2HG2v R:0Ef/V sdW`tEewveE#H<wSNP +=CC7%94<Y73Dd]@16M{#axZC0.+?Py!9A(pT?@`^3ADLJMLD;"|N( ;`g{??|"ml3|xpO;9PnZ, 5`&2/MI&!As9jqV=.'&+/*&7Pgb\?N%7($||}f@,3- gV<0'#/:XqlE14Hr#Q|}T l-<b"363$tS3U+ AjqT3$!.9AHGHEADAINZdv nx&t -F3xuu~-:CLKXYdb\O,2OQJ"R3Q(6_ 7Lca\D0 +De~yd_[]ju'20+oU>005JYlP5)'3JXf\E`:)3U()**  ,B_}rXIAGYooCHIIpD<Gr\zRNd8adeL0S4DFI@;78@I]j+8LTij~o^C(-Kq %0-,b?1/@` ]2  !#w~ytg\ODDGcQzT4?lmU%$*<DORQKA5$~w|!    !Mow`NC681822)! Ekt_@0!.?Tv m`WjfMJOhb; :YcnU?Hdzqb<>-g~_/ -;HA3{qgZI6 &TuyjVWQ`izjS=1-0:EQTYML:9.8:NYjstn[F+'@CRSXZ[Z]_fmuvR2_JADXolN=8BZz    *3DRhvv\D/&:Z{gWIA@GWs3TXbRA% mT8*#+CN_a\J0{mkky'GXfdZE/  ,?^ktumd[TVXekuxuocXJE:?<BFFIGEE:9-&!# {spia^UYYhv"?_uum\SMJNVdu~p]]]nznE$8Uhmjlevf~mu#CYvxswAXRTt-@^tiPC>:HM_jxzo^RD6)}nor<S`cQ;#Iro]>6"# *1<>CBFFOVdsxlfbeekjlojneh`]SE1$.JJYUTRLKQRfkrbK>244?FMTQQLGKJY_pwqlVP<6+!    3Gdr     GS)SA%LxwhL.`9 *Dd024 {{wtrmgYI,,.0$!Bb}a@/% (,464*! .7FR`l{`XLPTdi||{ogUO>:0',DVa_]KG97??MIH8    *<K]oyzl_QHDELT[^\PF2%*:ARNWQMK@F8C4>6<??LJYX[YNJ81&"+5:MGQF?2   )*./33660-# /?P\c^WJ93)08H[eursj]TIFGKR]cpu}|rfQC0#!!)(//<AUdvwjMA%  ":J_krvpg`RQMSZhn|x|smgehwvV3   !" &8:JGHH=?15+33<EP\gnyvv~wz}jWH;=>KVbjjbM:1IYbUL)0F]iw|wi^XOLGF?@9793:6>:A76'"*/04//*&'!(',45ABNNTWUVRKG;6($ '6AP\jsyusntmsik_\ULQJTX]hhpgl^`UTQORPRPNHG:<1./)/,202,(" '+-.'$ (-3=@GNRW^^ehhnmlmie`VLE84,..29=?A89.'$!   ('-01667<;A@GEJHLJMMPVZdjtyzskaaX_bk{~txvv|ssg\N<3&!#!,-241/($  "),:9BDAC::12,('    '.-454:9AFOXcow{vle^WVUW[]__XRE;1,+08CQ[dggb\YNSIPPSTWOPD?3+  #,.1/(!   $&.,*(!#!$',17@CMPW[^``caac_c_a^_`^fenqvy{ywtpnprv~}pned^aa_d]_[VUMNGF@A:=::A?EFHEG9=*,    *.;EHTR]V`Z_^^`\c[b`bekkxy|}uyuyu}tqykoc`XQKA=42,+'*%&$!"#%''%& %$+.7:CHJRNUORLOMLNNOTPVSSUQSPPONNNQMVQYYY]YXVPLGBA=>>ACFHGHCD=98579?ESVferjrgg\]QWRY^dknspkfWOB63*1/8=CIKMOKQLRQURTKJ>91,'*&/.2312,,)'+,68EFRSUXTROJHE@?:74.-)*,,86IFSUVYSTLKGDGELLUT\[`_`a`aaab`_]\XYTURSRRPTRVWXa^hdmimiifc`YXQNHC><795<:CCIIKEF:50$* *(05:<?>==;9<8;:7936042466854201-3/612/''#&+.>:HAH@D@DBIHMLIJAB===?>B?@=:<9>>GHOPNSHNFKIOQWZ\]ZVPLFCAAEGLRSZVXSRLHE??>;=<<?9@5?471/,()%)',,134776877:7;:9:856211.1.2004/32.6.848:=>AB?E?C@A?AB?F?EADAB@?@?@@A?D>E?DBBDEGFGFEDCA@@@AAC@D?B??>?>@???;;845/336:?AJHNNKKIFECCBDCBFBEDGFKKNPQPRMOLJJIGKGKLNPTU[[\^Y[URQJNIMINILHFE??:<7;:9=:;?8<7938-4..1-212444555494<8?<BACEHFPHTMWRUUTUSRPMMFI?A?;@=BDDIIGJDEC<@6>4:66979;=@BFGLLLNJJJDHEEJGKMJNJHHCDCCAF@H@E<>856.7/;7?BBHCFC??894533649:<?BCEEDCD@DADEIJONPNMHH@A9<6997=9?<?=A=@AAEGIONSRRQOKJGFFEHGJKJJJHHGHHKMOSTXV]W\YV[RXOTNRONQLRMNNGLDFAA?>>==@>@>A??>=;=9;;;<@=E?GCGDFFCGACA@>?:=9;::<;@<C>DBDCFEFIEMGOKNNMQKPMLNHLGJEHEFHEKFLHLJKIKFMDLDIDGBD?@><?<@?BDDHEIEHAF?C@?B=E=F=C>A<@9B8C<BB@EADB@@<<977447395:;8=8:8553212324789=8@:>;:::8=8><A>AA=C=C>G@LCNDLCEA??=??@E@KAKFGJEJDHDDF@GAFDGEIEHHFIHHKGIHEDB?@><@<@?=?<<<<:?:A>A?@>?<<:<7>7?;?=A>C=B<@;>9@9B=@B@C@B>B?ABAEBFBHAH@GAFCDDCEAGAGEEHFHFHCJALAJEGJDJCI@J>I?EACBABA@C>D<C<A=@=B<E?BD>GACDEEIGJIKHKFIHEKBKFGHFFGBEAA@>?;@;?@<F>DDAFADC@F?EAEBFBFCFDFDGGFIHIJJHMHKIJKHLHMHMINIOINJKKIIIGIIIJJIKIGHECDA@C?CBBDCDCBDBBC@DADDCECDCC@D=B@>A?@?A=@>;A:@=>A>C@BAB@A???=???B?DBEEDGDGDGCGBFDEDECEEDEDEFCGCICGCGDFCEEEGDIGHLDOFLKHLKINIMJLKLHMHKKHKHJGIGGEICIDGGEFGCHAGBGDEFDGDEDEBFAFDDGFEJCKDIFHFIEIFEHDFFDGGGKIJLHMIHLELHJILHLJHKHHIFIGHGGIFHGGGGFFFGEGEEGDGDFDEFAH?FBAE?E@E?G@GBGBJAK@K?IAECBFAGAFBEAEADACADBBD@D@DAF?I?HCEDFAG@G@F@ECBCBCBD?F?F?EBDCCBFCEDDFDHCHDHEHEIDHEFGCFDDFCEECFEDECDCDADABD>G=F>E>E=E>B@@@??=@:A;?=>A>D>CBADBBAC@D@C@C@CACBCCEBDEAH>H@DEAHAGFCIBIDEHBIBFFDGEGHFJFIIDJDIEGGGHHFKDJDHEFEFEGFFJEJGIHHGGGFHBJ@JBEEBFBDAE@F>E@D?E=H<G?EBCDBDADBCACBAE?F@CDAF@EBCDADBCBBDCCEBEFBGCEDDDDECECDEBFBDDCDDCDDCEBDCCCDBECCFBEDBEDBEDCGDDHAIBFEDFDFFEFEFEDEFCGDEGEEGCHCFBFBFCDEAHAECBEBBE?H>I>H@GBEBDF@G?FBCCCBE@ECBEBDDCCEBEBDDCDCDCEBEBEBEBFAFBDEBEAEADCBDCCCDCDDAF@FACDBDCCCEAFAEDCDDCFBDEAFBBF@EBDBF@FBDDDBEBDCBCDADADACCCAF>I>GBDDCDDDCDDDBEBCDBCDBDBFAECCDCCBE@F@E@ECBEAFBFAGAFBDECCDDCEAFBFAEDDDDCFCEDBHAGCDEEBH@GCDECECEECEDDEEBGAGAFAECDCEAGBFCEDEDDDDEDCFAGBEECECEDECEDECG@IAFCDECECEDCDECFAFCDDDCECCFAEDBFAFAG@GBDDDCFCDECFCFBFDDEDDEECGAGDCH?J?HBEFAH@HCDFBGCEECFCFCECFCDEDDFAGCDDCDDCEBEDCFBGBFBFCEDDDDDECFAGBDDDBFAECCEBEBFAFBECBFBEDBGBECFDEDDEEDFDEFBHBFECGBGCEFDFCFDFECFDEEEDFCGBIAHCEFDEEDEEDEECGBGBGBGBEDDECEBFBFDBGAGBFBEDCFAEDBFAEDCCEBEBDEAEBDCDAG@FAEDBFAEDBFBECDCFAGAEEAG@HAFAGBEDCEEBFBFCEDCEDCFCDEBFDCFAGCCG@HAFCEDDEBGBFDDCFCFCECEEDECEDECFBGBEDDFBGAHBEDEDECEDFCEDECGAGCECFBGCEBH@I@HAI@HAGDDEDDFAHBEFAHAGBFCFBFCDFBFCECEDDECDEBGAH@FCDFBEDCEDCG@GCDECEDDDECEDDDEBH@FEBFDCFCDEDDDDFBEDDEDDDECFBH?J@FDDEDDDDEDDDEBGBFCECFBGAFDBHADFAHBDECFCECECGAFCEDDCGBEDCFCDDDECEBGBEECEDCFDCFAHAGAGBFDCEDDEDDCGAGBEECEDDDECFCDEDDEBGAGBFCDEBHAFCEDEBGAHAFCECFBFCECEDDECECFBGAGBFCDEDDEBGAGBFCECFBGBFCECFCDFAGBFCEDCFCDFBFCDFBFCECFBGAGBFCECFBGAGCDEDCFCEDDDDEDDDEBHAFCFBGBFBFCEDDDDFAGCDFAH@I@GBFCFBFCEDDDEDDECDFBGBECEEDDCFCEEAH@I@H@HAGBFCDEDDDDDFBFCDFBEEBH@GBFDDDDEDDEBGBFBGBFCDEDDECFAGCDG@HAFECECDFBFBFCECFBGAGCEBGBFCDFAHAGBEECFBEEBGBEDDDECFCDECG@I?IAFCECFBFCEDDDECFBFDBH@I?I@GDBH?IAFCFAHAFDDDDEDDEBFDCG@HBEEBGBGAGBFDCEECFBEECEDECEDCGBEDDDFAGBGAGBEECEDDDECEDDECEEBGAGCECECFCEDCFBGBFCECEECFBEDFAGBEECEDDEDDDECFCDECFBFDCFCDFAHAGAGCEDDDEDDECEDCGAGBFCDFAI?HAHAGAGBGAGBFCDFAHAFDCFCECEDDFAH@HAH@I@GCDEDDECEDDECFBGAGCECEDECDEDECDDFCDF@J?GCDFBFBFCEDECECFDDDDEDDECEDDEDCEDEDDDDEDECECFCEDDDDECFBFBGBEDCGAH@GCECFCDFAGCDECFBFCEDDDEDDEBGAHBDECFCDEDDECEDEBH@GDBHAFDCFDCG@HBEDDECFBEECEDDDECFBFBGCCFCEDDDEDCGAH@HAGCDECFBFCEDDDDEDDECEEBH@GDBH@HAGAHAFDCGAFDDECEECECGAGAHAG@I@HAFDDCGAGBFDBGAIADFBH@GCECEDECDEDEAI@H@GDDCFCFAGCFAEGBEBGDCCGDDAHDDBFFBDCHCBDHBDAJCBDFECAHFBAHED?IEE>GHC@DJD>EIE@?NE?>NG?>IN>:IR<;BZ?2B^J"6zeLISTINFOINAMNapalm Jelly hits the groundIARTSven "Yamakuzure" EdenICMTAudacity 2.0.5ICRD2014ICOP1989-2014 PrydeWorXid3 ID3@(  iyt;TPE1Sven "Yamakuzure" EdenTDRC2014TXXXCopyright1989-2014 PrydeWorXTIT2Napalm Jelly hits the groundCOMMAudacity 2.0.5atanks-6.6/sound/05.wav0000644000175000017500000007403212636021030013060 0ustar apoapoRIFFxWAVEfmt DXdatav. &`] y/MJ=rvLI$A^1 y BE C A a"$7 I7D&]5# E;qU$ M|"'% %/GE#} i$M)#*% 1C :?DTLJ&$;xv_6%H%2tw'(S --,1"(2l ^ݣ 61inزR09˶/>F̫I>*<zF9ŔP=0 e74-4Cֽc:bL~w1(1;^^4?}D ½{(3m5;G 7;D5{?Bo.?Â/I3#P&3S A$#᲻g֣RC,99&[42#$0nJF# ۿD0Fd8; 4hɩ*; B~.cΑ_3=01sa'<;@v,x4B:d ( >~"UГ j:5ORƃN%>28Nz  Z94cR1F.tJP)櫺lj> ? <÷)#F/.A;U1=sֲ @:,ɲ؂@5ٺB;8<] :=j/E=,›(AE'TM\))>19PtM.25z*5 >$MFP@pǨy 2I}G{,ֲT|:C4v@ӶԴ,0PKYoF_ >|YZAS}1˿ `09LSC4 >Эs۷ػ:4&+;z87 d!௺`>GP7OA󱀮۽>F"w9@o6^ՠ=QZX/ED 07ݺ i3vJ&Hx/ ƻ߱jyߥ/GH3w)=Yǒ=SS =иa,%GQI1(yuDz K(BL/F/-nΰ:t7BA4'!h[|J:3AD<) Ţ`YU8(N8 ?:*) iq'628+. ʂҼգUZ"1871&[Zù){<"9FG>l,,<صCp$Ʉeh%!Z-o2 1p*0Ѱ?ӕ%4X=>6y* ˹73µQ"8IDRO}BX1#ޜ8ïs&I)d9m@=<3% Dn3[Yܕ&}(5@X=ge3 _0w:> ;12$#*ԂƳ̼]Z#[@RXVWSQ'NF08"' ¬JU$5EBLXS|SJ>9#>]m}TbVŅ AP(29[;f69-#T4\D*W +6@ED;F-d -Uo ՈˆɺϢڒ~ +:AC\CCCA;1$. ,-)zgA6 1*5<><8K4.p'n=Xy_0ҹ@cOn t \e +8mBmGhD8&w{6ps.+ ăgs})G':@G"MPV]dyd\OV?0W$cB<$۳! gl& 8DHGpC?Y=z;82)Q?jCۃ [$2-5>FI{GC"@>=R915($ _>ANӗ%ʒǝغ}N}(2}b*N%-=RILG=?5K10&/( (>v~ɪTz * ނx,<<L")_-/15:?FBB!A>I;4*yG tz 7\>>qLՍ$z 5$,01g2_4d7997q2%-t' un< ܦgHصαn͂zDZ î͓وK! zU G"y)0$9@DAA91-B.*120+0&!Utǫ̺NŖʸ̀˳bĺyIŏh x$M*+*]*,S00y,3$gd<)dcn  4Xwɬ22c/tĴA8 kZG(H5CPYZo^]W P}HSB>2:!4) +\ 1BE@ʫqZ֭e賦U#&$}29Z; <&?#EK7QSS)RNIMB91+()*+ *%  RX)7w­H'ѫщg~dd~} 1 !)v02305gG$)-i.0-+*+,-1Z8@@BC C @; 7V4a47:<>;61-*&Fz Rq &Jцhٝ.ә͓]uHs F˥nFeIȃQՊ٦ۼہۍݓyF{V o"O.8BLU2ZZsXUT.V|X4Z)ZWsSMFBrCHO6UcXZ]ab+]@P8@P3w--E.9+#,2!+4 4)#  Byb5^,5̽F1c߶v_Rͧ󝔜rM`iBqzĽ_ܱBBe j%)-Y38<>@$DaJRO[QcOjRptwwu6q,kd?]WrTnQLD/;K42,575,e"BJH b<[߲Y<ժ-tĥի?dav`Ra!7*q)8V ")L)n$ %-4J8 8D78=D\J)MgM5M]NP RRGRU]hoptk]ec"iq5y<{(xmrlSe ]SH?9T643j2=0,)%K#!4 IBy[IrUM䯑ҘKJ֐7n!iQ(4⣘ӪFQ_ۧk3.DJŜƞƷ(wУ3ٔx $,"28> EGGEEG"JKKKLNO5OLLJImIJ}LO U;\c"gf,c]X\S5PObSZ*dzlq&s|rpum3h`ZYNTYS*UVQF5%$C  WR і%@ÞaÃXOҗY2á񢤠("4+sU;|ҐOWK\ð85 uĘ8=ΑvۏqKwG* !'+b1:TFwQOXY(XW [bjoolk*o>v|A~Mz4t)poKqpi_U}OMNzQTX>\z^^\YU0PpG@AGNT5WY\`cc9a_)afkn&m hEaZVTUWVRKEBDGM[P/OKG]GnIKWJ HFuG;IHD<4s.*T'"Q a:ʶP KƷS`7ȑȇ[ Rp᪕/@ ѵ+鱳c즦IB݅ iW %A\񒘙 CC+øŀyҐe1ۏq*ӐzߖN # O"&%(K/,8#BK[T7[t__}[SKGlIOV[ ZUP PSZoa$eeefiynBqojeb'eljopSpap`sx~Ezqig_fZYW\4`/cc`[V4SBPnLF?952>/*&#$'&"wa #..^=]36M̻ȅкe@=ڶt#gǽį)3ޥpKͥmv `BiZ)㔱ƨ(Ұ+A޴۱뮤n1CӞԖ٬&݇h֘Ԩ ޵ܣ9݄BbY JA{; H$a&h'(\+u0%8AKS:Y\^b hlm0jFdr_]Y_bdglsxz~ |;uJleacXg9loTqyqqrs-shoB;87:=?R>8x1l*F%!36v8R#!"iX#yډΜʚ ˘jǵC~.}76`AњEΖɐN'וߏ͎[RDf~R՘8⑮|DHa唗 qt3ԥ\cԼĻu[Yqҧ҇ӝؾOF0  A#c'T(g(I*K.2)55f557;9:+al_l_laceTfpgj*nrsw6{}]~{hvpaib\YZ`hljrcI[W[)bggaYR OMMMLKKJIG?FCh?8/%@ } ,? (<'fGգղܛަڹC-πX7b]~J̣Ȝ?#^hc0n.be吃 #񜭠Ȣ[H_ޝLN8g8HQ Я1[)()γbF1ڴyԵ3ZaoDsQi@c>P R Cigg#)/49==<:M;>vDILM NNO4OBMJISJLDMUML/LLM PmSX~]bde]fhmsy|~|ww%q=ljikhd=_ZZ]bexf/fgk7qt^tqnn~pq'p^]^6k`̢kC~)LJÞnbʑS1䕌`#5ěFƓj23Q􃁃3ىJ=lߙϚЛ=6fݨ 6\ʨ1μ̾]ҀM5դXt ߦ( ~"٣D CJd ^B BZ&F/8fA>HL?OPP{OL-IGTJPMW~ZXS2POPP)M$HDEJNQ)SUY"^S`_r\q\aUlw~>{uwpooppr@9BCCA?<);q:961,)'%"~x` s@ tj:2oXiޕ۝Ҳ 5Έ։ҿǺٽ߹xY׷^wuvߠ=ŕ4Khڱڎ$~44#Q! @  : DRYOL!%X)+-d/14Z553+3{47k<@DFJMQTU/U`SaQPOQSTEU>TRR#TX]a}c4de5imq?ACDWDBAACEGHPG1EBR>:8E7b652.*%k c#b  T//7lf$%_G[rTlC֊Hzj*]ƹgʹ̂2/): qv^?bŸ0Q#X\b*`:|T;?Ɇ…مPϊލ Z?X΀;M؈'/LXۀ7ąkT I‚.|vA25+b؜~FѓAwu֒Óaޛl@h˚tR絚)*+.16468+;<+>>>?wACDC@Y;52014h8,~~~V"~~AJ~~ ~9{uqpsw{}O~|~~<g5~}|Z{lzyxvrFn1jOh3ikKnoo;pPqs|t|trpop6rtut=r$omlmtoprrsqnidbcegg*fdcc+b)_x[AYY*]v`>aK^X!SbO NNNM?KHIGhGHIKLKHD>_:6C4`2>100/n-)M%w!Q A !!4 c\L !L G:Gh&  ;[+H]?80 ‡ x'4_ͷ;Ĥ0w箋]"PKnq𩰨Flէ?lvfp3%֤ģ&&싗RO苰H=vrބ݁σo„Ys__D[Ȁŀc%^pF-m€ HKO4#DY7`ҀL,2 <޷`!ڳ0u'«‹-氫UjhAǔb=ˍT#yRŝJAPrDlݝb E[ #|< ` u?L!#)"A  I$).48y:9W8$76.64212"6;@YCC]D4FHInGOB0=8;<=gADEDJCBBA@4@AEpJN QRTWZ8\\C[[\]X^C^^^`bcc#ccfjNnoooq tvw2up@mln"rtGu}uvx{|q|X{{X|J~a~Q6YYTshSj~}h}}~Q~~F>~<~~s>~:}}m'}weplmopoomm`ors)rooskwyxusasssrp*qrsqlf0b_][XBV U#UU@U9T:SSSgUVyXY2[\C\v[_YUPJ*EA+AkBDDME5FHlLOKQOLGA=:9 ::':7540..-4+&n5m;V$, !3#$=%#W0 - w a[F0YMhA\mͯ*F%g Dͳ5|^'H㗠Ƙ)꒰ӌNJ*SɍܓҔD 6[S-8˟OϑɊ)ʁc j??>=<<=?BF;JSMO!Q%Q(O0KtFCBEuKRX^cf*gmd`^]^^\KY_WX]=d!jnquxz0z!xtp>mjJihhphhCikoiu{~~ztokk\mnwmojg5h]lmr-wxvt_tviz}~b{w{sruy}6~ji-}J{dyyz|~~=}D{yyzG||{Pxtpnmkhd.bacgkkorCvyw{zvrmjhXgexbaadfggIghiklTQtN.JEBsA|A Au?=;L?>:/62137:};l8k2t+%"!!"""p%)^.N2m44h32w11A21{/*$ETA6  m2N.^S,DQQ b{n܍󓠓O )*&{fɖ:^uZgMj͒3fg lno~{O=B̖:T̩_s81: ɵ^&´0ĶjyFճhe} wOM=|xoץڎ8 pݵݸݤ ,L4U$߀<.Na6u7 apq # EB? ;q"2%]'(8))v*+./000039yAGJ#IE@w>>@lCElFEC@>>BGN5TVbV}T2SSUWeXyVRM&I-FEGKPSTS=STW\_$bXd.gj5mmxl+jh#hhh`h|gf(fRfgshjklmnoSr(vyQ{z x^uYser,r]rrvssssq qp|ppppyponmmm\p$tx|4|u`mfhOhkoplhagihn]rss5ssu+utssvzK~3 \[/fX[G}{z {|M~N~#|xvqvwxwuttkx|~}}~H R~ ~~V~zuQozi&e cc[dmeZeca_l\YVJThRQSbUQX[ ]]V][-ZEYY\^`_][\`fkImJkgmdcdec^XQXMLMNOQTVUXbXV[TRRbUX/[ZW1RMEKtJJmKKK~JkHEFeEFJORSRPMJHGD3B>;H977530/.d0114/+('3(E))(y&-$"W"#%')l))*/,l-|-5,**K**)'%h%o&<()i)'q%"  $ k[=  y: @ Y=vbM%)/-ZOu^A*tpG4e;xԅXnQ̤˘˾A:஘4OrT涆,d;Mfdҡ򞅟*֠ݟ)Dqݖ2ę:>PXwޠ"![쉧wځl]FpZƄȆȎɎ-ÑvRʊ̌ԉ7VÃjƂ(' R*)ב'HDaOq񑑍։PȄₚ'އ򉼉mQ"ʍҌ6-Yl0Mԑ􎱌؉YTcfk8؎IMVt0ڎ둱ޑ1A!r )Ex]aӡƘ5ו'۔)0*lǑ {ӘGS{U?={򣿥 2qOj&jĹ *Wɉ}̻ɬƳNPŦŗYÕFו;SAآ֣(22M^ol d^J@/iY%y9wY^Y D} Lms = 9p@"W##3%&^(!(V&Z$!$&*.10.--(/u13$5667i88|7 5 2/ 092*54776b6665Z30..M//g//,0-3P7 ;=>?z@@@^><;;AD_IMQ]T VWeW>W*W:X&[_c]edbabd1fedcEdefJfdRcfbbb)bbdhlprrDqn?ljjkmoooXnmmnmllkgl8ndpqqp1ppEr u.x{};Kh}E{&zz|~\~|b{yur^qsLw{~@<}zlwKvwy_{zyv2usZrqp q0r5ss?tgupwyzzwzz\{|q}}g~ [x%}!}{}~~H~~~\g~}~|rxt?sUt-vwww6xz0}R}M{yz{7{xtp,p*s%xe|q~~C|wVrpqu#yyYwqtqrqpolji2jjjh#fXb^wY UQOPQ:TV6WWXY|[,]_$ac dgca]Z&XVSYP>MsKKM`PRTT8U3T#QKE@>?a4^m8_s!OQInP%剺x;N1 -)=πV"q |ـ΀4'Y SxuĀ9wQm΀ˀQ$部DBǏB7X荵O[ՃTxrEah ŌYy:-i哴 ljTkeԡȢjΣڥçXc:5%)᩟ǩݨ㩾pbHO } *ɹPIþ'0q[;Bnd4@ G I Ty"FlLT0%>+0509974u20.+)(*/56R4U/+)*,.0 357H877789:r;p;;p=?%BBnB"BfCkF4JMOQKSYUV"WoUotay{{xOtovlk.m{oq\su|v wuYrnjibkZo>tx|U~}zcvrMonptwz }W~ ~{xuroljj*mps utssPt3uuQspn=Z>Y@BE|GI;JHE2B?<9B6 2.-.0110001n10e.s+D(%!-F ~k0w5jKS y?^]qb2P5 ^!}Eo1:}3  & .,$muGFm-3%#732k^ cpݟ޼oU-&s7qqڮOBًԓщmKMkeŸ%QY=ȳQ̪XLp{ۯ \ܶõlNɠϚ7j IP1Ĕc ΒS|ݏt䔬ǖ /B􋊊w9uń} cf=ՀFl=R+%|ډY~WʀsŁxƅ5Tjg&kJI-)À$C vֆVu> nׁȀk"ȇ[m`ȓ_Ғk] )6{Fr0@`{HTꅷ;mm…##F܈!K4%T>!ۜuvˑŘVEhs _6yנU`ǞY_#E_k&妕¤;Ϩɮ5/#G2XŠ#7?@BCE@FJFDECBBC&CBA@????!ACEcFFG GmGNH+IIH{G`ECBB'D FHIKMOQ\QP5OMMLLKeKLMOgRUQXU\n`TccbI_]^ae3g7ge*c` ^Z+WTRTW\`bba0aSbdgshyhgtf~eddcqd f[h/jjihggh=jk&mmmlkAk lmnnMm&kijAmp tdvw=wusorr>uy|x~2~|{'|}}n}o|L{rzyoxqv%t;rlqqrsuv xKyyyyCz{}s.}U|}{5{B{{|| ~~~Nm`.~ ~G|xtTqnlj)ji,jjyilhsgf2fegeReeVf7gThi lnnn^k)he-dqcbaabehh6jDj"igff"fXed!ddqefeKeddeAghhwgfYf9ffemeOeeffcggYgeMc`]~[A[[[X\]`\e=iRjgbh]YqW;URsNKJgKXLLLL4MNOWOMMJ=I)HGE@DCwEHwJvKJI"IyIvJKXLLLKGIDE{@<877888P998888t:`%#$#!*W})I.; *$EB + dd5'?_Ucf1u-r'bM *dTpA+ݎX׷\D;0d ҄ӈ H@ȥƒvjȫ3$şŚȤˢʲ˛ҨҮvYIbʎƊ"seŴV2ﱖ k᪑ofX=ApƮNޭ1mdHĦQ2yLנQcFdM(UjC$(R͋B H"M򉶈uVĀ˃兡t[aĉ&fgȏwCaʌƇA4݇·χ9~$7 MZ($ QVʀE(VzxfB;l+eփڄAWh<υ;%ĀόW;0ܐT_mrz$rs@_Zюrđ,}l`euQxۗ]៤ǝIɕ>ە$j™ Y|hȤe_;80׬ūUK񨘧V"zR*zjU+ޟ_Gªy+֯:Xj5𷋺1 MjHƙŊŒuĜf2+Ƕյe_¾ˊǴ&ȀRSΥO~y89.ܰس!׼Jٟ޾g>Cy.{J+Xf5  ;   u i   t>^s\` q G g "];{!H&9))(>'n&v&&%n$""#&*-I.-+W,.2589@9q8p631Y2W5j9i<6=k<;>>k?hACEFEbE*FGqIWJJ?IHIKM%QSFUV+XY`ZYWVWZ*^_^y\ZZ\_ab,csdfjemoppnrmlrlk7jnh#gfNf.eEcabglp1qnk-iikGm)nopmsuus}3fy~}+}}~O~|zyjuq)onodrtxvWwwyz!|W}<~~%}{S{.|}~}T|{,{|~z}zCwr.njiijsjknsx(|d|2zawuttrq#rsu'v2tqpxsx}~|.|z xbtnqjppqgqpqruwexwwwwxwvuu_v=wwwuxzB|}~v~~B~_}w|4||D{yxRx[xwuqr&olallPljc4KZQ ~6LUn_0Ƒ|ߎ .؀?[V (߅+]Za8WE[G"ޔB]͑@aaFlLr^STmU8OҀL30ZnzoozzlZHPevU$ǵkT+%s" ^)6BG ތ򈇈ɉK⎙YԑFҜ|5fu­Ӭ== ܞ٠wĪ':گX=K 6ܩ&.ÜVơءˡ>e:)X ɱ߱~ް׮)ݲµSĴYQU)P;qǹ6b"ĸvRлýPe8>ⴚbAɸ̴кԺnهQމj< nG#ӾQ^Mԅ֮yz9?Mb3T;U0'ߛOީrz|#qFBOo@ffCH 5M/a-z1H q \;H7P ? p1K2Qx=?!"&*;-6.-[,<++,-.]0024,8;KB3EEDA1AB EYGHJ/L@ORUsVuWXbZ"[YVRyPPR3VxXXWVVgXZ{\ ]\\L]^_^]]m\[wZpW,SOLK;LLLMaO#Q,R^RRT~X{\^^]\z\]L]?]`]/^_^\YcWVWSXdXWW8Y\aejlljgjdb6cdFgii,klllOljhgedd?fhakyyxvtsptuNwwv|uswrq2rsv&z!}~}x|{{{ |M{ywevuuv6vv%vvwww4wvwwx4yzysypyyz{|}~]w~}||{T|X}~tv ~~~-~{wXsoGmkigc`_`dBgijk|klNlkj i#gdbb`^_adf g(fSee}fhgagf!ffjhiigb]Y W USpRQQbQPfPPNP}POM KHHHIHFEZEFFC?:7G654 30//0/..024*5F4?333k31/-./'23/432/v,/)&%%%]$?" !4####""##" ! "r#"! ? S(}1 ]]a|5"(TAnT@iٝp-ޤܔٱ9)ڥt(ګڌߠߒܓ׷ҋΙӀR~۳o؟LрPк1Νe˹}{ʒʠʯ ˭3`σg\Žwi;}JϸE4`hطzգr,ݣCΧ,ӭj~-2 d=琝1"L̆lqi*omMFA{:LN* 3 hՊ:Ďo/ƒ;.% Wc=R!b݉]yֆ[߅(ހAH̀$ƃ$`Y@)ƆT ގP*Ӎ+߃3 +%d@ +̀b4˅+<نLJ{} SrI  4Öv)ȓȐ‘ёŏ֔}_Қ .kժLA].L`Y̛꘴XTϝR«"*V#4~A4%U;%ܮή+/,+sZūDY>붗5շ޶E#|M[/ôLZpZb©öċśƿ:w3Q۝Dښ`Kͨ˧Ϲ*׭~zgjwX5.anY a;  Y "^9y JYP t   -HHNXB7dd jfx<9C V} +Y=VVRj a &"r%y),%.B.F.'/113s68>:N;;Q<<4;3;<>AD$HKNON_LJKLNbONMvM;NOPEQQR,RuQOM LKLENNNeNKO4RW\aXddc ccegUijhEe'a^]_^\ZVYY[9_accdcb`^r]g]S^)__]\\\y^_^_e]FZVTQO:NLLORUVeTOKJJKKIoFC#BEE{EEEF!GWG+FC}@=<<=n==J<;;\=?CFG+HFC@>V;n8E5211'2221000}0.,v)('x(v('=&$#h"8! < !X#$$#!~]W !!Y! >!-""U!(]n!!LP?S QIZ*} 3 i p > ! ( / [ h *` ;p^k- gmXCZZՊ;ˋǙ [TFk٬"ƨɦɥz٤GVOg÷K RIةcȭG%ϪJY]uģW`1C/ߧ;O$߭xܮ]=ޭys33թ-  .FL 0yO"ݰ)ʰ)+f{(uɷtѷӹ-ĹUؽs'rÞgL;xe#ϐϐvђ2Dюэ3і)9ц5Ԃ'h֟oш~U<ܡۇQj4 ݰݔB"9!deyI-6t T5cޖG3yV(߼m%,vEf3:]m\X| 3N.FTFshov:8tD\G=MLQ?9AutY/ %#tPO9* {z>'wn0dl"^ z7DqS2&%q`%=)E'aCoJpvS^u v -=t3 ??0?u}xnwbg^#5%IF >OF9N'8$1v3'jkF#tn&p1|Y%C7)F !  *9M?T  E j  } I.{3t}.[69E9+N?%/?5{*\ [L9W ~VoDWc  z-b.,Nc:) 3t.EH,@Q,4 /?oc2 Z8)]/W9:mt'WtTC*:E!(K -39| bQ/u9A']r _fyQO[k:7tsf8V _ )e!vKrD] [ s V .9u. G *  )7`$XK}4%Uc6 YQoWU)H. vzfNH}   'ne)rySD8J%/pem9,teU0JowdWU`a`jhaF>75N< 8E<hmo9%,)f lDEqh[{/sQ77__hYLi;$j+j  'CH6(!  /Mvkpu aB{zCLISTINFOINAMFire any laserIARTSven "Yamakuzure" EdenICRD2014ICOP1989-2014 PrydeWorXISFT$Audacity 2.0.5 (libsndfile-1.0.25)id3 ID3@   Z'TXXXSoftwareAudacity 2.0.5TPE1Sven "Yamakuzure" EdenTDRC2014TXXXCopyright1989-2014 PrydeWorXTIT2Fire any laseratanks-6.6/sound/00.wav0000644000175000017500000006103612636021030013053 0ustar apoapoRIFFbWAVEfmt "VDdataa                 + $+2 ;># +61$/ "'/&$"+C$))  28*&+%+5)%, '"-&#!%# 11.!5' !" +/#'::       $/=9.+#%JE1 3' 8*& $ VP?.(*5-%-6## #% !. %*$  )-/-   *."3&HR8  .7    " * 7=  $*     * @D5. );)/3(6XR927        $<;-61B[[6 6*(07I7386#D>?JW]`WKB_f^UJA?0#/1)!, )NB+#%#1,     !(/'   "#   +1/5 &.!'7=)  932"&*2129/=++(" (.-,)##9FKG?/$&1NT51045  /.$&+,  6>;,*(   +'"    $+% ! #+(   &"822%&" 6?12A?/)  *  &0-    $-8C>&+"    *67'*  %@-         ':,#  5PMA;!- / *.+%(  " #) 88'+C7  .4-&%$ .74;C$  ' ::+*/% $% &"%!'/) &&$#-'$          !#  +          !$*@OJ7"00  %  $%$#.- !).('&'(+*        $%$(  $% ',.#7," "04-*   %    *%-!   "#        !-(%   ) !          "!%   '-"'!#)  %            #()(                                                                                                                                                                                                           LISTdINFOINAMFire small missileIARTUnknownICOPunknownISFTunknown (libsndfile-1.0.25)id3 |ID3@r  y)TXXXSoftwareunknownTPE1UnknownTXXXCopyrightunknownTIT2Fire small missileatanks-6.6/sound/18.wav0000644000175000017500000076451412636021030013077 0ustar apoapoRIFFDWAVEfmt DXdata\kE[e0j}T/[cDjC=9)!;f ?~5),!  , _ a: q 6 j z v @>U,!{CGf,X^7cnQ6A`+i--gk ߑfSKlR>ToJ+7s E 'D"#D%F&&w'' ((''&%$" 4  :Y(L}W]DicP*n5(s Rf^S5P [i3)rr B߂e=xX*D' I q ? k @ } I)|O  vgDD* # !#B |OJhZPT˹ VFŏΚҵ4Jډ:j \L$,H 8;H7S3}d|`/ |B; 4 7 !g"z#$&(V+m-..2.n,4*'J&%%4&T&P%X" M2fs׳ӎЬ0ȕϺϷ~}ȯc_Ųƴv,l̞џCf^( ON #L'**e,-..5-*'/$s>|+ , 3 m o  y.8 C 8 $) ^ui $@!}'Z,046m89m::[:9E86\41.+f(y$ K (RBHd8{3+\"C~9 ! ` }  |&tnWGΥsѨ\ٙcJ/"%4()E**+T-R/2589:Q;:s874.(#k` 8 = V "!YdIl pVejK"4xB( R 1Iz L[PYz ۟՝_8ECżźŎVgfK=_¾Uݽ߽,(E"DŽr7^ա6(ݳ T1W B$*/24544o44579#?@s@I?_=:73i0,)&#! Z$kxQ?3 zYw" %qyu%'5#(v:c? $[yu%џW _2Ew֌6agהݧQJ7tDJ []V M   "A*/D22/,O)&$h#r"I!#uVf VSG}q/wza!%)\.269x;^;963H0s-+N+,-E/00,/,'!z 6/ZE(qYf6 ىO S! GE5l  !&g*B.\13}4Q4t3N20b/-,)3'#d 5%M^{n ^ɸzLJ6%Ͼ% &کzܬT"꺐cƒs͂Ҿy8ܧߍ^L R 6m5C`=I>E;,GziQ$ܦߤQ?kW8?sEd!)16]:<};9X5W1-+,+%-Q1e7>EKOOLF=3)!b` %*---*"% ;8*5T@UL =$u* ..,(#~rs' %*.o0/Y,&XTI  7u=HiM/|]ǘƧ$dzTdÉG:Y{ۚI>0~&\08e?OD9G,HDGD3A"< 6/)G% ##&,5>3FLNMIA75-Q#6!%&&3%\"x 2{  q) { LC>?m`/Q5$ q{h0 <܌MɺIfҰ#nQڷϵ3}Ѷb+ΆӢ x0 UM6+m KD u"=#*.-)# F5 ks=A` O*6ARLSWVjQvJ4CY=1:@:c=BH6NaRYTStQMI#E{@;61+r%r$iv2[Y}{K/[9ߣ12`] ݆cTϷ°SX߻A[/ľr"jۯY2gT:ߌDfLg A "d/b;&FbO|VZ\[6XbTQP!MKLO U[Rb+helnEnkfa[bUfPWLIGG?HI+LORTVHW}VGTPK^F@;H731/2//01 333 2.)"b PhWCQ Hi+#$# u ~Ok"%;&$!ki>+:#%&p&,%3# 5 2A t[NOem~ '}MHݦt*zo_)9@W!  -a g!+38:I95$/Y(!s ""fiz Fu' '.9C0ް+ " k>d߳>ؓנ۪ޮ3#~kw3 #r&-&4-266 51/--c/_1@250)g 7` ?c"sx!}BbچoިEeor;ڵ,䳪`NQ̝%Q̥ĪhD ĺ[{7cCr\̯a6nFMdz*c~z * #,3t8983.i($X"#b(p/77?DGNHDFBz?=E>ASGN-T XX VPIC=;];>CPIMPPTNICn=7;3E0.m...-+:(#V oU3GƉ:$*dWJ̆M[ޑG.s^-Or#',+0&] 0B TI(Y&pC p 8st#!ϥb6d$2^+}C  'u*)$T(<4@9MXbhtm?pqrqppnbmrk?ifXc_\YPWKUSSRPoNJEe>5+ H r#ܴԹ̨0Fɤ=2u@8Z2+ޤeȵޙ_`٥%1%-.*"F*#*,/L1/+$%EVPx"(V-.,%_l^'   _^N= $Q|qj4x< i 3 jT ]:p8W8 Zl.m@KK%Cg3 f4 (27"7>2+T%!^!$+2:O@gDFEQC?t;62$0^/04:AHNP CsJRY\ZSH}9*)6D@ FE\?3##W{3I~.O & h L PS^#3b+Y2~m D`& tWeY' ,+Z&y# 4#$' $ d;9bF-k F) 5 4U(: JTXT_J:4) * o l$4ALQFSQMIJF]EEFHKNEQ SStRNH@4& |J A_(GDrsVinU)TGQօ&Db3G-Og[D!, poڴ؜:"|,/+!s?v"-2C1)e *)Q&.4M7V6l2W-(\&u&(,_0220,(" KC\%\) g ]Q0uԤΑʶ˷Of: Q  '[2z1Z9>Pc gohk͙̪ȲׯL|ǟH`͡% Z\ Z+{7BY\!`bccbb_t\ YVsVrXi\aficie\QC&6m*"r!&a-3]8K96.# ya}̈́Ǯ Ƕq觷6\ܤ6Ұ$ִsGܨD4=!.s9aB;G]GC=720/0q258=::73.)x%!,B/ X BK:vYux8lz- Ko#q'+*049=;[9V63/-*(\'%#v Ez y% 7?5]oVQٱhGiյ?-h /xÉTX߂Ђς`L샌LJjy`@D6W?4<}@А7& Z!e&t*-T02468:`=@C>FILqPScVXZ\\]&_f`a/b/bIa_2]rZWUcUqV'Y)]afkortvAwNxqyz?|}M~~e~}|{yxvuu7trIqbomjmgdY`\YU*RO9LIFCj@;9642L10M0/.<,'"iz "AH_G3OՍҾ^˕}ǟڻRq F%EҿòmIгcДQ׬.`S E"+E6@JGrJH`B8-#PW$/='KV^kcd?b]UiMD;2+!&'#u"#&T*-0Q22I21?1y1T2w3Q4O42[0,($2"%!!>$'*`-.e.,C*@'$"!!#"" lwq9WJuYNy41>Ul 6D@rѾAꭟ®*N'ܯ37deЏ!/+( =Qm#'+ /)2&58 ;Q>]A D/FG.IIIJJJJgJJI1IJH0GEDB%AI?V=/;8w641/-+Z*(o'%#$!gQ pHRgɸ߿[cբnAW@a䜓mҤ0d#ܴ߷ q]Ӄ֑ٮP@ d#(`.3L9>DJfOTYj^ cgFlp>twPzQ|r}}}}}S}d}}~?~P~~}~{[yvsp9mj)gAd]a^[BXTPMID@<783.)$A zXti nKL ЬNQ8%?SʭêWب[RȩA=F6˜vʭGwм[x^ʭ]Onɪ3Zkt|ʌ1˺ς\ԆW:G܇K8m /w4%Y+0'586;=D@pCcG0LrQV\`>ehOknm)opq*stv\wxyzzz4z]y xTvVt8ro[mjIhectak_@]ZXT2QMHqDC@6COINT'Y]Fbfzjmqs]v,xyz{|B}}U~m~+~}3}|k||}p}3}{(ytme{\fS6KD<@I>>@ICEF{FD?u91)!`d V"cKOڸտsΖRy#4̹ܴUn*/sҸؼ~rGYG 0tv"&+A/25@8i:@<=?A CC$CwA>81e) -;l z؏ұNէr1ݑ (ŷ0/#cUە]ՁeUCpƅ"ߛ7RJ FH [mg!7RY 1 )!#$&M()*+A,,-./0122J20m.h+'#tZS  -RpS:?wk!Sb&&[ܱeYH̏"޳#.Th"ԢFѾU :پڴA0Ng~ =J>W<=td 0 W+c.j"+A5=4DGH{G*EBtAADClFJPU[agenftHy|!~B}ytnidbybd/hdl%prrplZga]Y X X Y$Z[ZXTnNF>J7_1[-6+@*)(4%`  S(_qg ۶ًMҬeA9msN߾}?&nŵ︓AĐJ8Rş4#Se:񰶰uζ2ʸRѶv( 3NjͧҦ֚٦ 1*7uGk02H @!)G2h:\AFIKKJI{H3HHWJyLN0QS1TTTXTSSRQrQQPO?OqN{M+LTJG(EA]>:d74211V23V578:<=>+@wABCDEYFFGHnHHHEHGFbECA@=;[974R2/-*&# 4: C"XۼҊ՞癋>’ޑ> "Hi6IY4⤕ۜ(r( d6Ja>KWolœbӗ )pC "w&)*+j+X*(&a$!,gU$^ E 40N&(PA  @[%(*.+4:AIOUWW UPMJ7K2ObV_iHsbz}|xpf)[\PFe?[:76?78:9<8==D=<;::+;&<{=>}@A,BA@>"<85X1-;*&# $L x +wrڻ{:p!6¦Ȱqnq^g݋Fיפ__HxcD> Y!'**'! 3$*..*$0k !~D%DG.ޙ6:ZcSS~`;n1L6Ի^*Q󸓵jZmuMγxéb] a"Һ9ޛ 6 d"@(-3=:AG.OjV*]>chm]r\vyy|}z}zuIog`ZOW=W JxJ y ' L 4#*0{43.%qjE:0 boFAFr]*9[5TʻmKYưfƒŇvó75(—8и]#3v+?$1((G%gD q #)-0'2222234578:;<;:Z97643E3?336445S6`653,1,&n 8ݽFu6&p)Xם8®عޭ˟Zeb© .!ȝAlbtrziu#H.8@8E^EA8.". % K7 !:h %F*-/:0l/-)#Zr?@ JR=6U  Qug;("XJ؜B_B{ ` ]n"ٓݰfpyjnk,` 6 }$),/1N210.,*'#8A=`H#ډI].鯎N0򰋳gÑǧ˽AQ#v H L%,37983P-%#$*-.-+t(%X" 5 >!" %c')+,D*%  *>BYHݵ(C5 ߣN-WpCݭܹH=ۿdԐnҶ6;Y7ήǴč;ȡˣҜ-"]uf#s(,:15:?RD{IN<\<<;4830#2|=z-<L1sڶҞZ;߸E;a"v "2#" owH/h g X J4VidVJoޢڢn6@ʪ0dXĻ}Ј@Fغ,V LӞD{r'   D}E#',F036k8=999U875142o0-*&!L^]&%-PNZսȻWͤ(~`lжծڑ߁0 b%!$&(+.27;?CEE3ECBsBCEHKM8MICG;11( W=!X$5%## C9 ` ݤg* e ?>ȼ8> !I'],0.58<7?B GKPUKY[iZWSM&HCAAUC0FIJIXF@8/6&{"@ ovFYvg)0 Kǫ}(pܰa|P *-12.'02D'.22.&L m%Lw3#K[݊G& ߗ5c mP^ $(;-O27=CHLQ V{Y[*]\YTBLB8l.9%%B3    a } D - @ -0nvޔ_@vB`hќ$F:[RnhӤm ާkVp²ﵥ)eɤRz,`~tC`#+4L=F/P@YamiotIwyPyxvsqzomZl4ktifb]@X1RL>H:2( 1t b#+/-&At$2+/1+210012468d:&<=>j??W?>==<=O==<9 5.&s H f 3 J"ȉk:r'cU&)|=qж<>\¦.ߴ1~2 fuٝط֤MϓgzDM`BЏԮܰm_ ( v"#"""! w NOU}q, f.3]#\,5v?GLNSMHB;6y463;,CaLTZ][WgO0F<5.F*V'%7%$$#"9%aK m;9' ו4ְ@~= z"Q%Y%v#| @2h-5 3G0wW8v+ a$(k++)%jo_G#0 C  ?m u    cw^ v[.wXvS#žuأЏAxa:ŎP@9УWV PLQ 0Da:٥8jc &# szr"* 39=m?v>8;5.A'  z. [`}u; $}*518?%FiKOPPMKGD@=W;8 63/,("$  w N/|}C k $(I+.259= B FILO`RUT VW(YZ[]]~^^]^]j\Z!YmWU TRQPONYL J&GCm@ / B!$([-34:d@EI8LLL{K\J`IHH!II7JJKLMN0ON-M_IlCC;0$ x|eB=I9t4/+9(Z%"Vl/ &0} s"'.+,*+&NY&# d %&C#" qMA,ڦFġ_`%k$t2ݲS/pK`!(-/>/y-+*=,0u5:J>>Q:0G#-rDB "#$$_$# bxB3 { (x{'?מӤ!ɍ-ظ 򳥲+Go ĺOx- exUp4"&++06u=D J[OSW5[?_XdsjpvR{R|oxDoaTQ?.!UR`!1%&6&#E*zXP>"-&)W*)k'#i 6&_dM~]WiŻRf(@JOϐ|ͬВJk.ə#Ӎ$z# F f  ,@1[Al R ,/M&>jhU O"K$&U),0o5A:?CG KMLPRYSuT~UTVV_WWWaWyV$UvSaQOLJH GEDcCA?u=E:C61,#'2! '%8کoץh_=lʩ멒!ױ(b h:AGX$υʳ%)aѡI)/ĥ_LBŘkVm#_v z B"&+)*+-/G24.6652(.("Cm|XAPzwjמpA  0ޗ܄1Y*}[ U&1  C!"#$%?&&&&&&''(%*+-)...w-0+!(k$ D| iQ޷ӉnƫY3z?Z8QŚG7ʡ&( i~I`ڍѴTvЄ#n;N8bwg E"(-2j7;=q?@ACDzG K-OSSVY,ZtXTNH@;92S-(3%! ^-ݿ=BuSbBi [n {ޞ%1/_bѱ{[˥өȹB K,F?!_#(-159^=AmF1KOS0WY,\l^+adXhOlo=rWrojc[TM(IIGGdIKMqNMsKGyC>9m5)1,(#fG W3 ]&ڔud.V7d*ߒ1h"xДKӚVCƬ=p|g ^Q$ *h.14f79;=h@CE+HJkMOWԢAbǦtR3tìϷLU;":~g+ay .(t7FHT_eg e^PVUNHD DgFJPWU^ekq@wM{|{vncWWJ?~85=72Z)"mYM F/ > : !#"  jEV%1˰ǎo<]n4kg%Fƌ, T;c 3 ߤoǽPE Y?(<]BHOV{Zq[qXQIL?]6/,J-0Q6;?Af@<71+&#!!y"#$%&&%r$P"z@9 &~ <ԭǃ>T*xq ,q:pI݅:'ח֥=>ʆ9;p== iP!(07=BFI8KKKJbIGFE.EJEEE E>C?92) G  % ("'4#0 #& r;#(z*+F,,|-./1110F/--,-/K24Q6$765P360,(($1\_~/UǵGȢ՗Z9Mb_)0lh`jr6٩N;I *"&+V16:=>p=.:50,*)+/53<^BFHG;D>C7=/'!  \ _m(2ʾĨGսVƜ"ͱ"â !%()-)&"uGYNiN1c;c9fjߩֱЀ @lܖӊ̅$̂< 0^F}zvdzŔлۿ GI9 Y d 5m#*.-?)!iua '!#x%&+&X&P')-39@GMQ5STSRPMJ|F@8{/$i d/[ c_]`i}f~ر^b8i< Ч/Ŗ~B»l\Ŗx,( w_wm%-5=DkKQQZV.Z\\^D___h^\ZV R:LdE>>62.O&G.vd"c),06<{@]BRB@=9150c,U'd!0 *ި9ݗQ߇ (v ^OM!"~! ct'~rܓ֙oQoz~(ߌD܎VB97% /6N<=??>}<97c60678:a???=;H9Y62.*% 6f |-8 ҄,˶ꥼFצ0e0T=w¼ ˝ͤzPOtIl dm.wd4=hǩ۽{EԮ}ͩuࢿ4٭%A D/`C *&L-38\Y?VQJA6*j '/#(9+(!pI`ҧ͂͜o5Z E fr D%8}Z\ ћ;_,Dҵ'1Op"(2;VAaEGGFB<4+"9#V-6[8Q40%-(p#TT1 o DK̄5kݍ+/W* Av6-o B$A/6@;<<`:85m31/5.2,) '# REs1'-ԍJ.Tȧɫ*ΑRqa5_ Q")B/2S4-421/..8/40 1;1~0.,G)>% k 8DAO hy,ɤiIZWK06]~܄"HҘߜD$ֵO8ʚ~nq  (038!>ACC@'<5.T' m~ ![',5/'0.+,'"1 ";( 08@IFYHE>4' <D  $('+#=`U|ْ|LؽpʲGxYQ-ø~很–ŐɴԵ?B_K d%+^16;@EtJ+OSX[^`b|d9fkhKknqtUvtvgtDpj.d]!XvT$STVmZ]^j\V+MF@0 PJa!"ݟhɚƝÂD7εzS(/׳ݮ,/Tjl ( Bw!%s*/4F89m84S/A( \724[ Oe"'56ծ{?ԻeҺһ ÜN; C8 5o#+3:A]H NRSSOJBs8.%z-!(1 ;BFF@v7*z 6W&x)H13d0' ضڔw%yi+*Ӑ{9Їm)ȪUE | ] ^F[e !.6:-CmIcMOPQR{TV5Y{\m`diimqst!rnAjeb`w`D`^ZcRE4!r?$& = W 9s ƫ"̈ҋڰ==Ȼ.*_ՋU9G} $(*++O*(%# 33R KdiГ$U,5Q05¼q<ٔޯx>kQ' qv qKU = { s: n PFq:>qF)Ў ̾K;1ܰZ|?MW,ǘ shq|oһ3Y 8&;09_AFIBIFD@8&0(G!|z e&6,k1H53764j1-?*(v)-03 ;gCJOfQNcH>3)G E#M)~,,)"yChBʶ(ÌԻг֬XPl&ĺu:iƾ%>٬Y.".L&-X4@:?DyINRCW[_bkegqi"k$mor:vBy{_|{wMrke^4ZW*XZ*^acb3^UI9(  (X;A±?˯D89'LCI%A\g 6:">&,+0X6:=<94-%O _8I}2 X>TT2+KP,9r?֠edz7 s D! # +n3;CJ3QEVY7YVQI@{5+#?s!(1;WD.J}KG;?2N#GX$ \'16j5.!H9dwuۼ[{wA,#iQrXrGzACb#'~~ÓȀ̾#G˳M"CU6(iGO9[(qVY%Q7|9^ܦ f t Xoj,9jDL QTUV~WY []`d8inr'wBzI{yv*BjRFjE:ԏHh+q5vbpZ}ļƒχߧvON S#&())i((&p# _ $umFq__[I4̶z/ɥzؙ (] ;|Y#&^BY ~!WX >C  l[{) -՗Ϙ̀c$ǁķ_ζѱװ'SƦ˿V* *6]ADIMVNeJBC8-2$;v!F(=/5:$?ACBA?=;::;?OF/NVC^d?i kjrfEa8[TMGA<@83/,>($  xc.0ϭˣdRZfy9g k< L$0;jD9J$MMLAKcJVJ6KLO0QRStTITDSQ9O_LH8EA~>;9d864I1(-`(|#.K."DѴŃðÀE ¾9ű}O q~gl=AЄ3jߍ?o<ªXד8uK *1w483<._&@Do8-3>AMX _^UGN6$3 m );-LWB]>[RB/A: g7  > %9,0d22*0S-*'$"E mYe;y͡zJ*w~.ryveՋȷ-Țӎ\ ")&&"- 9JI)4;}>]<.6X-#i sZ֬kBS0!C"@ . A!%' n &UcVeo pyWXE su"&*-P27=hD"LT[bgzloppoTmie`"[TLC=:/$@#2te.*F J%+-+W$AR e$7FNOIF>/y{o KOn"+i`an  9 =Rpy|~(U d3>ןj+ઍ̓n)ޖHAf(+b̖ުxq>#).132S1L/,*(Q(()N+5,+("gQ zך׿[ݧ*bBDur$+06t:X>ADGKuNQUY]beh}kl2mljCgc_[WSOgKF@91](u ޞێۿ=VmJb78qCyI0")]/@ܿأ׆؞!1B߁^8~5IJqєMn4۞*ͱEթs~㔱xl.՗ЙPϳ9̳ӒUݮ޹*)#s@/ G!'H)% %b#;=L!6$$"Fq S !,nM %%.*&/38=3A2EHoLwO(RTdWJZ]TbgJmr{w{|m|*zvVrmhd`;]}YU+Q-LF@:*5/V*U%h ^  `iTղŕi٭զnc=4˥ܑ+c#/[! D)IU [קɹ QƺLq6cʓB򭄲߸Ŀń6˖ʻͣԭFpr 5! f@݆ڙޭ.;I#4.|Jv _%r73 Spk+4ă=*mƼ uԶƽ׸#;~J;k$-V  _!%*07U>C|FFC=6/*)+G2JA'8. &q0O!$"!g!$!%[)4+U*& \|!#4# 5CQuY{DԖml&:1z|4ךmӒ(xҍ$DHwNfRʮtp'һ܎w& tjd"w&+049=ADGbIyK5MvNhOOONONGNMEMKjID<2*%jl "ѥ= UPǧ;USЮ¥Tuܟܤߪ@(lܜ #jF_ke!+49>dADIoNT*Y\^^\Y;VSQQhRTVWQYIZZYXVSOKEu?81+$@c * |eѮƝû·~;䵨PiɰP0Kc*%kY"c,+5x<+B|FIKMKNOP7Q3PuMKHi@6*^D6 R(18W<47 :P=@CFI>L[NOQQP:OqLHWCoKѭ͹bSˎv ͉͗;bʉʺUˬuE  "D*:29R@QDESDu@:3-(%P%&)F-011R/*+%fF F { ,hXs+ m ٌܵ5ӄAˈƅI׶\>S}Up߅QwKRn:i~bgC% s!o'o,0 4N7N:=?BE7HJM4PR}UeXE[]_aaa`-_d]![&XqTOIEB9.&$?PL?oB7g׮=mlӖ H ߴ1iho8!|o0 C~ o&,28>CGߒ]AS;֎4eρԅh O W">%l&&&$"!>ip w=)kS0c'2HV uy!\'+.K0w0.+'!wN+YBdfO<|8aLx3 X zD!*RgWۆS˿2ٽ 01&!qF(忆OmǛʴE.dD2 %q"](.39|?UEfKuQ .q2 ,k $'/*+/,,--.0W1q253z33[3$32222~292101Z0`/X.W-<,+)i(&#  H8w 9׭ҊΥʷµs2ͥܠUgX$g?Zנn ĮVTţʫl_kxy z> w  TS*n~ n= D +>&/m57861*"3&S3Y#V)`.13j43X2C0-+<*-)( ))V**k++,,-/1467 73-/&s W RU[ 0d\$ʛྣռ!’5TɸȺý3k!ǰO\]/} M,#*18=BFI7LHMaMLKIhGEB@>E<96`3/Z,=)&+$"bL_=_[ n*5 P#+,SN wW:= Mm $`(,/2a69=@BDdF7GsGtGPGTGGoHiI;JJJUHD@:3,&!m!"M"B $(CWނDnY.򷨵Ųٱ㰡24ө󨸩3TGԳ~mpMf لD  f DW Ny~v:T؍+"gJlB ]S#(-L38=AD>GHHHIFC@=83-'B!\R -e(!pB8 R  x 5 2 uiUT}8` ii@R׳PPZޮƮ¯OE.\Ìȷ{X , 5'Uh`oqo۬ګ٦؋ש3Vֿ%-;< y $+W//,t''![ *4?I{QUV8UsQ~LMGB?=< <:7{3- (3# $*1$8f;:%3D'(P Q58= )7 ?7dE !#&Z(*,.q/01$2\2;21J0].,)&$t" #m^:Pt 9$݅s0jQm]aH ꅔ85*堒M΢Ό/V,~څ T.$#((I(''(*>-..<-G*Z&!j Us!1!AHME|`@!qTX O-"<(-3J9>bD{INSiY^djor'tspkd]WSQMRUY6]`bb'a]MYSLD$:.X!UZ,,%fKݡHFRXGqfowKb}6͑a1G.D})A DtߛݚܘEqzɟ_?0һcW_ϳʸUoq"ڮ'4/6962!RD f|$!&%'h)*,.*2:6:w?C0HKdNOPNpL{HCi>9o52v1134>66]52t.T)#]E ZLy[14][Fl$+˻ö:0l t( (M Q:q; ynM 1# %җ|& ӜhCs,܊I9I #*7BhMdVP]ad9fffedc+b`]ZBXU]SQPQQRTVyWpXXYXZXWzWWVtVUTcSqQ O8LIIIFzC@y>X<::853e0-)+*)'&%$#2!m5 !P5ܼ19|;O|-؍~Ʉyjd6@kcRPcnrx\\5yCͯM}/Iq M'o/`6<=B6GKO+ JK\! "#u$j$#"! #@  jik^+G43MNuw =XF!M,24A1* ,S * > N @ikoj5hf "',1u6L;d@mEDJNTSHWZ\^__0_]\ZDXU SUPMIEA'=82,&!  ,}.XbΖdíGŹAȴۜF2 c,;Q*G P3a*w6خmě0FS6^(eH =~}JCnéCl"HNCsda>Mty$1&.7fBMXlagJlnpDpp`qrYtu1ww wBuronlhd9`4[UNBF=h4* (5V{ V%kz  h6"(+q*&$ 5c$B Th= Mg "t A" [ N`uu+]'t 7_k`θ~]QU{ר ئ\[K+ǻ}Ŵɣ5e6 $ L1"t&*-1W6~;AF~LQUXZ=[ZHZYYZ'\^"a1K(!{#*17<+@@=S7R.G# 9tU;T4~e%[diZ}12z̊׻STk*V8|T]4u^Uvڳ 4]5+߯+Tt/C;̊]$ޡHbF#pi% ,(K2;C`HpIGB;51[/05P9669V=BHMQSIS0PJC;2)"2?xm}!' G28%3S )36<BD>D@:O4.(H$ ' xn~X>v %BoZ2"u&z+0$6+:V<<82)h g :!""!' &~ !u""! eh iwR,/p޾m<$ŽI@aLn[Ͼ(/i7aRNеoH` w*"',A27V=BXG LPTdW{XWU+PqI B5;532q59?C]G+HE@91v(?n;OHk|3ՌМˬ*I&յ 0Ǭ4+W:YgućDDa\ {"'+/348=B HMRKWZ]c_@``]_P^]U[_Y;WTQN#JFA{=8 4U.2' I k fPo!Ԥ> G Xߖ<މL ݿٟΩ|̱}^4ݲ " Kb 5"%),*036a9;>a???>Y;96D3-%QNZvWy(9׬Hտm˄Lx-,xL2z7R(+y9.L٥xZm^xCKVW T]V "$n&))-)1f59>AUEPHJ=LLPLK IEB=83i-&`)B~xdFP]O)bUVնBuιlsʰdȗtƪ4^ȼ޺8(t[C٪x\4$)-<146n9(9@0!m@_)Zg܊+tׂaSD¡<8wI߮G ߛ({(#=?Nڋ)Նݮ=L:f`jU94KER p$ )(=kXJm Gx:0'}~ ZE`?y|B $'+-/1w110.-+**I+,:/2z6:>CFJgMOQS4UiV}WhXX/YYX>XyWVVUT9TVS%RwPGNKIHF}C@->;9l630 .b+(k&$!Uk 9W߀K#9ˬO_7JZ~[3,"ށm>+ɜ6OmuHwƮ_BX̫0] >$4*/D5g:>BEHKLmNO(Q RR(S SRjQPtNLhKFJI"IHGHGFDQB??@sB&C-CBA A4@??M@-AHBpCMDDD5D9CA?=:73/t+&"q (Pg 2֡^Ϝ^hB$Xı#@*XܮΝ`z)\vN0t ` F O/ 0_ooXn8f ;` I D  X9Jqq AD`ٯ vrۘيؓ*٠k[R֪ШΈͫ_K;|(Q ݐ"@3BB+C7CiC(DExGI.LNNOjP?PoOM&LSJHGjFnEjD*C`A?d<|9`6530,a)7%b A*mS1:ނhܜ/W5RA7R`'Rw7lœc Aǟgɡ?*!Mjo}Z"!%&*$4b d!,5).))b*g*{)'$(!zh{w`< [ ^9? J%''J y :&5$ u#%')+-0258];=??;??><:l8]642)1/H.,+@)'$"K:, 3 |Kx^gEhh~Pʰ34Fѷ&ڱ֩S^ҙ+uY??%~3!bAG^JXΖy-O ]5 L&5(%p | "` `%*d.I/j-)$})%-78BKRSXF\Z]\r[Y6XVUUTS7R P\MIRE@;7410V12/57:<====>?:ABDD"EDC0B?<962.K*8%%xv)܄֢+˅ʵ|˓Hң֏ۤ~a_${v >Յ]ϫ#\jZ( TU†sw(΃*'t ["&').+,,6.02Z58:;h>=:V62.h+(8&# + = T=%X:0<;ʸP׾?ߧ5VD̎9;IS[p­L~ٹӷ[»#!þ[1˭A r , %9U<z gjR"@#"!r G#7&&)+-z/z01122_38455?6i6R65S543320/-+)'%# " :nkvG N$ѡ/ɘܺհt`\f0ѩȫڱ޷ǿ [|݅sx6N*Sd3/tiaZXa`7__2 Y=#*1 7JLVORUoY\_"b8dPfhjum;prsr5oiTa3WRLhB:668_=KCHLoNLMIQE?n:4/*#:d] Uiy^T$ RLƸ}o?Dxc7ΆBk#Y U 27 :t0܋؏ՎXjpbƆ3Ou)Q^%yB 0 $)(+/%36:>>BsE5HI J6HD?7D.#_uN! L[>k}q7ؠY,KIA BX~b 4 jT |8ʵ; [̄rϊϞv<|WT{)^aOԯƚɖ8aޡا5Ӻ|RߖB4bT"*/0-(/"% a m'/6(=BvGAK5NPRTVXZj]`Ob dke fexe3eefhUknonjcXXJh9'}P9_Qc$L aĺh@ȶѴA׏ٱF##99 m  I!+<4 :<<:e7@3&/+&!G* /A- C Y TWoA؛Ҋd\Ĝ1lͷRb'<ơ Թ0e|. (=3>IQUWUY{WR1LE?:76431.*% Blc9 Lh.Q;!:$'|+ 0&5Z:?DHyKKJjE=3y(h\3 /O )030t)0W"[ b  D?6 ggnmfxCfu-+ĹƝԉۦf, )j] MP M! !@.d}P &8QAPe1'yL˘Gl̾Xչ@P'r՛Gpp #S$-7?1EG8EP@9 3.]-/U5 =NELQTlUSmOIC:31& >0k|Mg֞ZFĘIp{ [#UyQ `2«uլƪ-{򭾲׼úп˔t 0I2  +7yBJO"STV:WXf[^^bad1fqgggwggh*ijLlll>i1d\R>G];/d%es /6M &A)V~Ε¨!^Cǩ́ئݎ'['02({șF_1- H8,]i+\0}US,ޥOG  $,256\41E-).&#M "S@/:  t$(0, ...?/0(4x9@JS\chjjhZenb` `+acgf2hh-eJ_ VI;._! E 0 *  J4v5 `v{(V{ߏs7ӄܽ_6![%&%Q#! @!%x+3.97668;*@\EJ OvQPLsE?;.H!4X WA C %( *'+++H+V*('$#H! [bS3r bOw ,=gBK R !!(Y.379;;2<0=>\AuD~GIJJ}IG'DA?B?!@8BEuGHuHE@Z8-E!MAA,[vP`ܱԻϥйu'$Bѷ%FDI*_B^T"4xO-mڊn.]4Nzg Y,3n"zX *%),.02g468j;=@CFILiP*TW[%_{b?e>gNhdhgsd~`[VQLHEB?`ACDLE(ECDB&@R= :61-(#f Sސ"l΃8 ɠaW=">y>[1x - #U.9CKORS8TT4TT_V(XVZ\B_Labc;dca._[XS!OJQF|A6<|6 0( ÈӺg<> B-FJO{SVyWWVU TRPKNZJD=4* O J lzfh?ݶD{KH6:#jo^v@aV *PG(4::n7;301@5);('( )*-11479:}96_2-R'!QAt =#,n܈Wե2Џa\ݷl[,z gXÏؽ%X.j #*:IUy^YdgJiXjknpsEwy6{ {ywtJqmjmgdV`@\_WYQ9JkB90&XE y:ڴdqɡ*ґ@SƅÈnM| ͝Aç^6EBVwJ5 8 Av'5"%'"(&T$ 9iAJZ X_)}ž$ @EoI!Z{Ρa)Ě}wUo\MMȘȮyƉPǧʄL$ӟ;۫O/*9HFMNJqB8/ )&&w',05E?rI~RY_Ec\eNff[gh.ijmorruxyzzyxWwuuctsrdq|ol^ie(b}^ZZUOG~@ACDDnEFFFEFBEC@=_833-&J  n`Y²`n̗V”81eФ66Ao l )16Y984>.%eH}*$?0r;8"631/+_(@$Z* uKccԙOf rYrdLljKJ! 43!$)/5BEEFFFE{D[C0B@W?]=:61|+:$1y J8G7HR.]Әڍފ -6ω  «jNv܌zeu 0zv!$d&+()('%I#! R!#6&2*1.^1 331e-M("O{k 9n2v#}ѢɯNp޸AʬsTD ~%g-74l9<=<9t3,&_" ""'.7@#H+LKrG?@5)nyk`$+02S1,^&Jf "*i!B[2z*ܿV&صvHل^2ͼȐ!־6ÿtۄzrkOA|K_harc /M D > N3ze{f_!%`),0368;>rADFHZJKjL#MMkNN|OPXPuPbP#PO^OONNNNN0NMvKPIFgC?r<951-("d GcidMƐ"?ad~ޣDOV^t vw"Zv3xdk  L ue$.6 =A:DD2C@>=;l85w371.j+'b#s x z%UrUiԬ0$׀M4vm( v`'V~M{c Qe5 %g+17>YEKPU>Z^acAfhjm2oUq sgtRuu[usqok|gbX^YhUQLHDP?[:(5/)#&x `k~ 0kǃm=ݼ%krȽ _r &ZRd&O_al؅-*sğÚW\^ź[٭XBJlV_ G"(+-..-,++X*7)_'$ Ax :; Of( 1k[O  (--N(r D\q4 +?" %''&#srkucRQ(lwgOD Zep( A !a K wUeI_B""%(+/+37=_BGmL PbRSSaSR RRRSTUOVUWT R>OMLIHGGHIJHTD=E4 )?#2 VCٵ3'}Wgt<I`NÂmO!;#`֓qڐ'[p^DQ:Մ󈮋Վ?uBV!%}(*=*)&#qW| #%3)-0H47:;?CoGLQV[\a+fYifjhc(\#SI@N:6<7:@GMQ SdQLhE<44+>$b_ YXW> ϣnNذ5*{qk7Ķ-sK#Y=.r;EJ  $$(+/48=CoJ:QW]aWewg"hgNgfeUeMeeeledc/b_\cYYUPKq4#۳_oѺ{můCݰT9@c#Y*º;̈ӷ\»Ϻ(3< ]p¦䟭Зēe^ԕjӑʑњ+۲ 0څ܁&0vCFyE-&b a&B+7/37=(CBILNQySSxRhPNL)JsHF8ECFB@?>=<0:741.+F*)*,/256(6f3.("~X'2?LTXagihdV_XHQIAX:2+%!S2.!!%(,04}9,>-BEyFEC@w>C==w?A3BS?7*x{޹mL!ƖGT̑ОCӮOф'ʳNΈό7шwء2yR)ڟ&υSĴ$zRdkoxք7ɃȍnziߢQ髑^Wzm ЫԨ؏K# n#y,39>BFKOSW\Z\1\ZXTlQM@ID,?8h0')f UB~j | :} A `S\D g ' V 0bp j9Ah*G9_!%F-H7BNbZc+jXnpqqXrsuwNz0|}f|kz~wsokhda]Y VQL}F?_8/&# :SÌ .zm˼ҡo޶k'Q͵;RҿX6̵x"(P9X8AO 麹 @jfE܀MDl/:J.ǟōKldݐIf|bʙοΗ΀6M͢δϸ\SGݤAbT, 0"'G-3B9?\F+MSZ_cenjn^rulxz{|.}}[|T{Hz6yxw)v7uturpfnkh=fcaI`_]\jZnWSNHB<73.^+'#yXRK0cܤ ϻ+dz$*2ٮ߫ZkL1ѕ͓G ԏT:ʼndʆjDן e&dw^,,9=t$! R _33Q?s@"'].26>GXNTY^%cglqvz|.}m{wsgnjvhghjlInn=mjftb ^ZVS1QNLnJGDNA=^8%3[-%' b9ODFPØ_9ήɡ,⑄ӌsɂԂd"e#cؗxE{oes0\Hܦ+d$rB&J.E4l8G;=?ACE"GqGaF&D@<72H,X& q GIN =P(| i!.oM5i2; Y`j  z d cwe XB!%<*P/5;B5J9QW7]yaVdf=gg6hhiisj kkl6llkGkhjipgdeb_[WS2OJFA,=:82,% y!ghs6W-@<5bbsǧ8iƴ\g˽"t|1֙qޱOR\;. Kx '7"3%u ڋ(9ΦP4κ]̘J9ʱʂGҒoݹp! !&z,}03N4243Y1d/-x*'%a"G%} .i  R$2*0. 0/t-)1% };? ; b)X)5mN LjTѥBy]]%?j <c"S$Q%&E')-115+:= @@@?%>;8E50*#z U2\h7z@Y%5=҄ߊY)q:m eyZ R DX|a;ܔӐlYF_ӇӕIMӗZОjXalv5{D '607= CGJ;NQUY^d9imnxswz|X}|{MxKuGrQo;l.i fb^qZU)QSL{GBG>964.T)#^gQ &y4 dP Kzt 6#h& &," uZ2X }f![!{TC w x u  %/߬ `9,o,G`/omZp׿pմԮ+7*E/m#[(dY .~:ީqɻ>[ŷ 3 rUs5 MQ+r1 J!:'s)("#< QlO:Iq< J =#(W-34;CFLT[_`^rZT{NIGHLPSA[bhOllicZPKE9.V%9 $w(+++(<% !L}b 8)cU K>~& Ko+e1}g9^"<$XּP_ۛWe&RKj %O+/3{566065j55566*63/<*f#1 4_PF 7yQ?d!d<ď&r /3ɋ̿Ғ;9JZv/[Y~4TռwΦІԝ؃ܵZgYoS}Kny[F< yT Brvf߅~ֱX%)F:@d}y8|J*߾~k\ c5#G).3+95> CGLhQUYp]`cd@eFedb`]ZVRNlID?R;@730-+)(%@# Q 0 ;  /  Lo.  '",B6Y>5DFGGE:764v31p.*$a^.!(/(6d:<;73-Q& kv   6 k|H^m s ] WV t G xEi X] Ъ˓VUܴ;}Iy"z>Nʫٙb9řs S ^R5uޗ=(ȾוֹL7'Ϻ([KDFxO3FC }]ZR!"""#$r',28?FLQ7U>WYXXX+YY[z\]___^]I\[ZgYYXWNV => Koua xQ1 a]<ȱμìФzNEfԖǔ~җW_nե"Ų#KïIɼ(ul ԝԈ^-(Yٵ?d%F)aw:c*cE3ܘڄ K,>0,@ iU0X| r 6 b  ?  ~;1e V z"x'-#49>ACADCBBA(B!CD;FH/JwLNQTWZ]5_`bbc)ef:iko/ruwy{%|||||{zxvs#plgc>_][WlTPTLhGA:3,<&] (p[ H.L@] jGԩͿ˲ɮ rYƣ>qZ{qO. 7,7RӣP.ZJkPߝ څ״mu͂U'M ¢ 9@~ð7/50kݛOٝᢲB,Σؤms[9eks-ͬ]غޞ7.z !Y> D(2>KiWa>imon:mkjjk'nprs&ts`pal[gaZ{SLD=6/(  5k(%o]'۵գzU0F 7(P!&*06:=w>&= :t5"0*'&M"4F fb`r~G V ) Z$+04}78D987 6U420~.,W)0&m"$kw k\ʊӡF/e֬y-uciǫ#WٿA :~{/ڲ^ !v&q)*X* )' &$#p#Q#"!" e,o s ]>&VЮ؝Rz~h   Efi bG% [OmvMMsU QKTJ } [ t k 5p3O,nޱЁB`;Nĉ¤a;ƿP¹L+KW)~'_{)S=Z P %),.901A358<@EJLNQTW1Z\^adhk]o savxz{{2{ywusiqNo1mjh%eIb_q]\l[3[ZYVMRKA6+ |)>\6;=8 qr.PDJ 4ݵ JɅѺ׬/ݘܜ\CEB׻VܯޱUebL)^h;@=1j '< v|k !"$&')+,-,+*)E))*,-4/(00@0/.(-+v*?)'&c%#" d12 ]9S=fLgʿɢh=~¯ySIʴ$:%͖ʵŊ޳EA̗w_hiJͷŹؼ½׽ɾ⿎áƷϬEՑF܉Vi z)6AJLU[T`Kbxbam`h___adhkneqss tpsErpdom+lRjbhOfda_]\d[ZYXWUSP MsIFC@>=<^;97_3.+)o#L45~+=BYT|2Aq:  n xK`CB(ҭy#cLjԭg*/Ŝt֒͑kh]9Y^4͇j"uH!*D޻DعLdE2Ƀ˝A"ԦO0(T` S^$K*/Z5:Y@EJOTY]ae+igloqkrfs tDt-tsysr{qoKnNljg&elbT_\X@UROLJyIGdEA<6.%E> #  Vb4yP !zB%ܳچjoԚ_6SϝϵUΫl_[0΃kFˈʹʉ̪ ߽(k!,M5R::6/&$Z$-M646Q8&999:9987Z5A2.+(&+%#n!v> bԋ '* ۰%2M\# >x>x[ ӥ$Æ>m̲#YؒσzԝY(i6ʩ](,ýa͜Q$"S F +$K(T,03F7:a=?ABC,D[DDDGEFGHIIsJJcJIHGNFD CJA?><;#;:);;<!??N@n@?><:X672 .O*O'8%/$$$%k&o&v%h#z m  ՞Bκ7k^ވވ|Պ"N5Jg控'ʔϘۚumȢ4ץïUeӹ^Y °.ŗ0ɒ07Δ;ad j 8"#a$#!?<{N }s$!C!!}$*.J0/,W)%###$%R%#?!/wzv"j%(R,06=pEMkU[`&cc`i\DW3R%NKKWN0SZ-bFjxq+w'{}|zwso?l3ifeddhcb_>\W,RLEu@@$ R ۳׽֙hRܴ;tޙpH9,2>S[ke4KKfN%WCfفӪi&OӲsQUša95X؋ĉ)ڂppP \Ҙǜ[MG>H|v/[I #&)A,.D//.+s'! W!\J{ }71 ]B@z"+73~7U8561,'#}"#'/.5)=C%ILNOMbKsHD@f<72-'! `Ef&0]* -  [z[M J#&* /3a79';;9754a3R3W320,W& _=oe߃Yݥg :jvau#v)>+(#L lei%JQdPnMjVF.XwV9fP %.t5;@BmCA>i:51-a+)f)W)M))0(&%N#! !f""8#"H"f! O%Dkc kn%hh0+-+ӤЍ 5YֿԿ;{#*z~ӡ,noKJ QFm6įz>ηλ_"pɽ̕ jWJfmֶֿ҃"yj8ss2f>lXBX oJ %*J/38P= BFKPTkW6Z6\]^o`/bOdfjFmGprtuu[tNrrokPgb]XASMHD?:4/Y*$. ]R^|MZ-|)F :6"$%I'F)+4.02]4u55555`43210/@.,*(&d$"3_ Sc1J`@6,|G=r0@A8?b>˨LSP7߭"̨̪֧}6󟾞ǝ>Aם˞tJ.7痖xՌ!D'W+֔=AOy)niSg?ґu5 ?:">+1566 41r/.g/.26$>?ABA>7@/%8|`Hn+MGGg  C#,(+L..,v(L"g!I e  *!'$%&%$!nq uC[Rݷ(?o:? Bé‡TW)r*C 8 nS#G KP,ٳէ Hj0Ǝ*fȧ>ǝnjǟZ'ق'THMT^I+O4;b$L w[; w lM0#|5K? =  ;M4T}ڟزؿڣ;/NP`v_l! (5&6 \ 5f[2Y$)y/b5/;@EJOVTY^cinsex{)}$}|TzDxVvtsrnjOc [QpI C?Z@CHMPQMbGb?G70-D,-[0}22#1,&sb  / T ( "~,0h! j   ( @ f r D!Tcae4Tgnfubb`jLhpQ<󾀽TcQ]ת.5EzfѶ̀ È=sҌeَ*ڔZF)m;&vo_7Sbվ~D¸Ènpƛw ͜4іҺӠS=֠י؏؃OKx؜m?'ܳiIߏ=T^JU Hu!(//e48=<;:98187N7:7Y77889;m<=?AC*FH,KMoPSUW Z[?]G^^ __^o^]>]\"\[0[ZZ8ZYYYYYYYXVSYP+LG=DAgABFJJNR*UUSPQLGyC?= ;>9074r1-S)$| Yn/ c Jf'6xi)ȾӲ5٫ڦ<̧iѩM*)Ȝh}og|.-we݉Pij8z~ɇ׈$p)kC?q#Q^3뤞@j8€80`Շ_ަVc $Dt@5V]TE< Jt >|( h=1  ?Ey"$'*S.1479;<ADGIeKL]LLNP]TY_etjnEppXpnrm#lk+jWihh@geUd c3bbbcegikklkj6ig.fdcb"b^ad`^\ZW'T6P LG(Cc>94N0+ '"jj c-'Uѹ9k:#dL^ތP;l<Ӕ@th;!>rM/$>sµ޸!cn־Vܹ~qraK4c۴ӍխQgZւBx;Z^S Ӷy)Ǻ#q›Ȍ̦ݞ ۓTdޅR: +/$[,3:f>@AA?|>@>Q?AE:IMRUXZ[\s]]^W^s^b^^`]e\ [jYWeUSPANKIGED~B@K?=v@pBhDQFHIUKLMfNOqOOOP5PPPQPGPPOxOON8NMMMZML|KIGECmB4BRCEHKOFQ#RHQNKGAD@6>͊4х胣D;Oaˋx򏔑fNk]vg)ܥٰOeؿNPʝ&`R4݈_(VC+=QUm = O $.2}N ] AO Z  YC #w&),B03s69;d<<<<:`97531/d-M+4)%'5%#" X.Xz2K c  H !#'*n.174>67F9;Q=G@{CF/IKLfLLMrORoW=]MchloqpoJnlkjiigf"ecb)bwbncefhjk!lk kighfeddccba`_][XUQMI EY@;6'2s-(N$4^S <5w<ә ȕ.@d}w:A|NJŌnBQvH엛oyН0YͰ^kΌ+Z܆ި G,P5 Wڅ< m (gGNeVY۪C٫`_.޲״zTlבn؉֌՟95{ M (B19AGKLKFHC>: 99;<@)G&N,Uy[`dgjfkl{llelkkjh-g7ebS`,]YVpRNxKXHEC@<>;O9630-*+w(%#! T>n)n !!?""#<%&\(2*,-/p134"6789e::L:9|87532212368 ECBGA?=ԑ_%4YߏPאh )l֗djE壱P# ?w6?.J]́_֝׹٤?wr^m { =-zBRU9bk"lfV%)w$ۖ؀ٸ:jmd!>3n 2/ P"&"+9/25g7k8876G53m20/-,)&k#- Y gz%VoiY/_A' ,`#)'06=EMU]+elqbvkyS{C|3|v{wzyxwvutrp m{i`e`I\W/SN'JElAȕͥBݬ,fܳؠԎN_ȿǻ͹ŷʵ!ű챶UƸѺeùƜtyطreP!]'u-3:NBVIOU>Z] _B_m^\/ZVS0OJF3Br>[;8R7G6a5 41. +f&N!gN>:G;s7:f&[I!C"[#%)-0*8@I#QKVXXXIW"WXY[[XRH{;-5 PB* d k,5D #&)q,.0(35T8 ;"=>E=1:k4\,#{n \ 1 h %bZra^"3Fj ~ۥyњy朶N$5~pB *=Qԙ$UVW= z,6\=?n>91(3hc u }N J N#R3Cg!t"g"!+fy DMc]Ղж>ӨԔ~զԄ{2(_zڽF\7Yi ^>Q>g-9-}"t(RߎC)V߿CZ b\Vm t60 [#w&)j,9/ 247M:#;x73 0,*'B&!%d$##C#"""L#$%&''' '&$#!H!)!w!""'#"" R8O6 Dl QxzkEYċb |}ƲÊLy=QşOσ;==ݣKS }`f ʮȥƠĵ_vƼƼc#&}J^Ājʀ˸ϫ҂tk,=/ux +#nN&a-U4-;AHH#NSX!^b4gCkowrauwCz |)}}~}n}|*|{f{({zz}zygxvutqnkh1fca_^%\YJWS PK%GBTTZT(S QONbKHE1C@l>;850V,f'v""0!{Xs `@ QhR :[P2  [ ##y%'H*,/0V2A333A33321/,(#+ ' 'a!Q ڄ־'{DZٿ3:Hnw%9Ŧ1}Ĥ C񡪡29 Ű /4"-n T44QDДO[@]3*٠\+c ZŒ;wƛǰ\FО}Z#(Yecz,,peÜȮ9]m1mc>8K0 ~/;z־^oXӾ `בTْsلN?ܙߖ.?p6x5J- u|&,1G7<AFwJNR>VY]S`-cegijklWmKnvoprt wyz{'|{9zwtpl h#c ^XT7O,`!"#$$B%')i-1:6:>A5DMEbED|CA?=I<:<97<64g2/,q)%!I )Z #X% &%%$%H%?&(*-0-437 :<[?AdCDDZDB@|>=<>BHROtV$]>b/ee6d&a@]7YUShSS;UyVVDV6TQbMI`F xbf|" g .}!o #'*.269;Q=w>+???8@~@@A/A?A8A)A@@@w@,@??i>==<1<7<<==]>>??9@p@@@@AA@@@k?>=i<);98753 20-+[)&/$!!7Oao n:Cfy !Oy/REe󿺺ʴw(C1cRWւflZ_ԛWFSȪiY8̻ŶаݪۥQ}Nר٭Y)ĩɅ%jJCd(Ò{h6)]$Cu} " #R!#g;2!)2];dBFHcFB=8r41/Q.(.%. .-,x+ *(&6%Z#!z^/~Kkhb 'sz#%'e+/4E9=B+FJM QhTWw[^begZjGlmDo[pqqZrrrr}rqp8ofmLkheb_@\~XuTGPKtF@:C4W-& 3Rӯ]Jɥ-ƭ2ö3+"|rݹ7վZ xRLjf8 | o4yW d / R@ 5|7ٿaH$* ;ϟUϗмwҨZҶeϘf]όN!BK7}ؘdcڬ]Y~~  =s\#=&(*,,A-1-)-V--./0m110/-*,(%R#j!X4:[ vD xNc ؽ=͞­Mŝ,?ѕٔm>XqZkӞ?ף~ݨ ۲"ٷJ{ d̕ϞҏwدWvtW #(.26:"?UCGLRW]pcimpLrrqo\lheDb^[XUtRNJ?FA=840q-W*'$'"cL z /: W2ba+=eu%<" ;1c% +#%:),/357898X75420.D,)%b >\P t7O;ؼտvʫ ֞X6YɊűı6ˌx1"*%'rq|y    4[kr]7c$X^ӆHƌDs1qP1ړրGe˓SoV̺i2˶[ɩiɆW2Ғ`gN"Im > )18=AC5DCB.A?>H>>===<;97O52o00.&,C*( '%$#"!  Jdd C 'qK##~IvkCn" ! $)'*.3o7;w?DCGJBNQOUX[^`bcedqd-dcb5a_^[YbWTRNPpNLtKJH2G%EBr?<:84/r+'n"a /KO,4`ޮ| 15fזˆ{PXKa˖žbG/+!٫T,2 B?(Wu?)?{ 6J4 i˦9ūv‚ľ8#ſ/c"Ǫəp. A_/YJo^EL$ pC!|%)b-14H8y;`>)ACLFHJrLMtNNN[NNNNOPQQQPMJHEC&B@=W9h2)]wԹZS.+#ַ0CDh跀wNAr  "zIhGs _ !#o$%X'()?***+3+f++ ,W,,,,u,,+J+*Y*)))(''?&?%$#! LEIHb+kZQ( xK"wyP< `TTOLBDWL ѹT/'8*6@Xv`Uo̮pCa(N mž0âe`bʒhջؾfw49 8c!%({,t17>}FN W]be~ggfLedca=`^ZPVPtH@n7.&] s  > ,uBW  9 0).9BtFIuLNQJSiUWY+\G^$`aCcZdee@ffgfgggggeud+b1_[WSNIE?o:4.' =/ۇ՘07ʠɮ+ʼ'˗= $π"UEl|_ 8~&\?*dʰǴŒÒ˻7ĺ󺏻Kܽu־ž{H_־ędžʾT)>sepu X$R-7?F"KwLKGGB<(97a8;@FK;PRSNROLJGbFFFOGHuHOHWGE|C.A>;84M0*<$o  ŌΨܝ%ߑ `MƞɠZשʭ43£ N|9# k {^ P S{7~C~`DWq |F{&KP)032H-h%8!,5=*CBEDCNA@JACFJMbOP~OMKIGbFDCA(@=;9e6331.G,)w&#|a 5{]|ҧ!Tհ=aߜ݈(QvUL`Ƕ߲аm`֤cǝdaԖ2͕ue#Þҡ.wiZrұZ݂CE^R#+2<7;?CHNV]fmdt4y{y|{yvRspn!lcjhVg%eb;^YlTGNG@S:3-(#.cT  qL /w#(-25V8T:;;:8(62.*^%  S^3V=c`,[t$  F nRx #%:'()+.14{6763Y.3'I " = M `A\.PKmؗ~cπ<ȍ țɦ|h?"|(˛˦U9֪'Vߗݰ0׻֗P7ѯ?#{ˀA|xݨOJ,h U C<%z6:Zw!l#3%&(*-/]3M7w;?D{HLP%UY]bfi1m$prt/vwxKyyNzWzzyxwv,usqaomjg5eb_G]~ZWTQN JE@:%4,$$T֔"T)W_YEПLg$ʏGąN烝t?4&ъӌF̓sFOإ Ĵt)ڿ]|&Fձ#bf=f~ Q)$)..4K9<>CGLOhSVY\4^V`bdfwh=jk^ll!l:kigedCbb`^\gZWtTPLHBD@;7v3-/*!%j> *M UA}l̗ <7pł|NϖϷ΋_^˝5ʎʻlCaS-8"&'&M#7r+{#"" CiE [r"&x' '%#T Jd3/*9;H}#(b-2C6@:7>#BEIMxPSrV!Y[]_wa c@deveeebed#dgcob5a_^[/YU2RMH C=6j0)"< R#yH, ؎҂ͯܿJqDlS𓍕̮%(2X.AԂ#ϛ͉QηHVr]rB "R6!t%F)+-@15[:>DCAGJQMNObONM2K.IGDBR?5<8N4/*%* 4 DD%ܥلֈ+ήK-8Zá.ڽ̼bĺf]y\հ_ۆ37)1&85=@CnFH0KbLKIE*?6&.%Vme"&D*+v+)$Fpv IrWc$E|oTj/$jB,7".7=?s?n=;p988o9s:E;;Y;: :9/8S76x5+420/-L+)9(&x%1$"d!k0-#' > 1 HP{S =!O!! HGM  h--.#4@r˙½LmᴈO> Z 5ǥԥQ ˧{FuV4vȿÅŧ-́mԺM^l<! ~@t !"#%U&'()*u+,,--y.k/0;2/4j68;>ADGJMdPSUhXZ`\]^^v^][\ZGYpWUSQOM0KHE C2@F=L:o741.+2)&#! eZ 84ˋƾͼ̷ Vٕ܌ىl΅ƅMȁ ႄ؆ʕu<: OH7Xġ^̃<+t b UB3&0;NFlOuV<[]]\ZSY XWV>VURTrRPWM JeFB>S:51>,c's"s| | 2{z#B~Bރ^ٙٙMR,cNN a"'P,O0j35677a765420-)%  Agl'Gf c>ѝ"-@^A?<71)"[ADT"-4VfIL KeQ^G'y  f5=bx~&":? uz  z@)XA 9 DF 1$c/Z7|:]81|(tq ) a,n Re -  Ct ˧xPZ߱ݸa/ԇϹ^VY k8ɟHnTR( ֻ4J  [~RG ~A$ާձ"ӓS:>T=<0)E uJ"c&Z*V.2:5788 864(2/F-+(5&p# @i% HT'E%)gێgۭC2{^G(';5}$|J F  d'y/B7W>DpIL)OPQRSiTTUUVUTSQOMfK?IGDB~@>;9v7t532f0.g,)&",;  3Ty$+SՒѐZ`rtα'𣗣ȣl9 ̳*V;ŵȆՆ;ak f% ?7{^PCҏuÌ{[s$sİ-֯pqbA?L0 0~ȯTٍ0gUEg r :>j"`&n.6>-FLFPSTKVWLY[?^!acfhjllm-oXp\q(rrsrr&qpn?AB EG!JuLM;MJE?7.&;:'|i #t4JcTbWnN@00On>ҷιtG®ãFJ̴Ѕ֏@Hfb  !4g|#*1Z8*>BFILOQSVOXDZ[Q]^_/```y`_^]@\Z.YWPVTISQP=NdLJIGFEDCBA ?V<84M0Q+%q b  \Mމjyс6iFԼ+ך#ܧ}e߇<1r= :XX!#g&(+-M024*7G9\;f=J?@vBCDEkFF_GGGGqGGEFVEFD CAz@@?=O<:8p63$1.+)'p$!Hk0 \@~<@ށػ<)òZ}/Y`@8 v aq ОO᫒q"ˏ%I"H ,S>' v$3)\.3L9G>B FHQJJJIIGFEDCBA@y? >`.~$%Y  _#O%L&&U'A()4,.147S:n<->?p@@A@I?=R;t8\5<2/4,)e'$!~%E0"#؂{Q/r8įt[vӨ]i㢁`kЦ>e~`I+زy;ƶ,~²ŭg$ִڜ&V$ C"'q+^.t0123$5689;=>C@BAAAA#AO@3?=<2;9S86f531/u-**(V%"hKb  ^eMC|b :* ]Şʑ̤`ϔ~;ؕ$R yv7$;  2_i  XdGy>VigL8"R&,*-146 9A;=c@nCFJNRIVY]_awcdffEgggkgfted)b_h]ZWTQM{HC<,6 /' t ?߲ \ʖ4~#4sPZifVtB]FS͹ѿ^"Vٌݗ}޺ݑU4ڡڷ49 Ya.j0}>f#x f i1iVv0 ^ ILY_sÜ0kӌg`{}j3Vҡ[ᢸݤP㧥va_^uûX6[Ŀ]aҩ؛"k#h`s E7#x''+h.a14|68:<>P@ABDE'FG\IyKMPSUW&YY|YyXVURP,NKDIFC@>3;~864s21/.-f+a))'$" #&I 6!Ы"]ռ(9N"1=Iɐ-$S׻>OS_ w"'+.Q2)579;;;:?962e.),% SD  X fZ5N 7G; B,esS  ] "%Y""/$%&''&h&%$#! XPKye _е1=ȧ/G-׍f؅H섊7+Ն:ljm7еÌdݮML B| $C(#+]-.X01x3{57;m>BE9IpL OQsR)SRQOuM,JF`A~<{7X2O-($!|5\ Lc2]4h;.G»2|Dzf!I2йҊzؐBAsP4,N`_ ? o"H&)t-14L8;S?BOFIJMP!T WY\^`gbdef6hijkl'mcmAmlkj+i8geb `>]lZWTQGNJF1B7=8 3".V)$ x 76{u:GH;Un96fʥq7Ǽ}uM+6*ϴ:!#*2+dwY (=Ji@&j" Sp 8x2LJur!'.5<#C|IBOTWZ\^_ab%defhh"igi jkolmnn_mic\TTOKjB_:G3,%I K\սЯ{]`ǃƤŴıcŸ~waOPH%&-f1{SYKv ƒ;EPvX~?{HM_23C&%uhD8Wa5:Iv\ elV%&@ +oCoL #<)2/_5 < C+J*QW^bZf`hirhf]daL_\ZXVTROL&ID?:w50*%7!gn[ .<Yڲԗ- @Ģ'ŷƓȭ`ѣG۰(6pm|} "a a~XQY*b aO1! %j(*,+)*'v#kI j.od޽֌ӽ4ΰ ǑĤ_ycΰVѪڛ_ y*r"$!'%*K.39@HN}TX7\^_h_k^\ZWTTQ+NKGDA>;8`5 2.+(e&#!kH86 - Q z r8c%up 0!co4 _\c!#%')d+,-.////!.-+h*(('?%"& 0{ '4fY 6DŽ/޺ 43yߑ]$wTr‚xP&!?rǂgw96m*ݔɗٚ<ܳ>JÏwͨ:v  >C"'X-2772^/---3- +& HQ&z1_Z^8hlα޹oI]ɜΕӋؓݮuYV _#(.P49?DI0L_NOONMsKIzGEB?Z<8421-^*E'<$  m5 mHUH&A > w\pf>@b( ;&/9*AGK6NoOOOOP^QLR SSSSQ{PN@MgK~IGECoAI?=:a853/, (#atQ| UE*'gPe g:$F7ޜYR zFQÒԓh@/qźƲrϧр6Pσ3?ʋTDWʧ<0GeZ~v i%̈́Χ1+Ӊ5'ް}9 "(/@7>mF NUZ_!ceffeKdb_[XUSPNKIHHD?B:4X/*(&\'(*a,,+S)X%M &Fr X  : xIJ.^NP2/.,M+)(='%H$" g7 XsAUY_kPPzͶgMlkc_2*5}τĂ&?܇MDY㓄G֞j(ϯٲ!Vĉ, ۽S_8 V E(.4R8;>OBF|KQ3WZ]cgkoqsuqwJyzJ|N}~d~[~}d}|{kz3ywusFqnkhe:c`]n[X}VSBQNKHCFCI<9630,x'"U f -1wA"SA6ķ`ME4Tbu3Q(x[Oi6ʴжYĽ,-Ǒwg~ӲlBh{E-! m!%)-15y9B=@TDrGOJL7OQcRiS"TTTT?UUUVUT|ROKGfCQ?;(96420\,'!$ r,lxФͻȡ@˾μ&񺃼"DUdzɃЫZ$lXY j"&h*.01356<7;765r4 31/-v+(&#* b= ,tE1Q3yD0sTW(Z8qG/ t vW%-4G;@5CEEFF=u;9T8605Z3P1/},n)%O"xiwe R*=P_ }VzGI2&]zYa\{˞[KԡȞӜUힵm' #TצߨWz]7w PF4ֱբR_΅RFcδY@D8 ӛӦ$Ӈd'bL٧\[CTf4 ="q(/ 61=nDKQVZ^```_][XUR2PM^KIFNCJ?:5a0+'%%%'`)**9)S&("<C; b ymoXZ38E#/mXzQaFQA  3 Om"$9'%)*+},:--c../S00D111*1j0~/l.8-+*2)'&%#!. KQ44] M 4~'کյ.{jůҪc͘ADy~odWSꆌ?6t蔛b$ܢD xɾKSU4t@}}=j] c#v*05{9~b~>~}}||,{zxvt?rolifBda_\ ZWU{ROMSJGfEC@>1ADqGIJLNPRTVZWWXXXXWV U*SQNKI.FB?:61l,& _wDWȬ-ĥ1ʼ0͹a_?ԏ*F I#g,UWr ^P<.)- FաөӼ>׉8fnh+Z iAF !3"W""!!!"#T%T&&&% $~#%$N&)n-N0<1)/[)0\X0^_ iGv,'f[n'v"YPg"gxI~oV enR/nJg`P+d*VR8 s J _l$(Q,/J36:?C H+LO0RS T$SmQOOLgJGECBA>a;73l.("lCQ=wWӭw<ʸÂ'$쳇;u2hłuc1ӄLޫo9:v;R|x"$0 ? qw}nStߵD݀۴ڡٵa 7|q\*m7 g,jC\""%)!.37E<`@DdG6JLHOQXTWY\Z_acZe^ff g gfffesed6d`cFb`^\XUPLGDB@j@@><7.#P0r ɽĜ ȴ/~˩ҤD֟Nؠyr޵j% 3tɥͨpس%mvssm zSO V%N*7/48=@DGJL!O.QSTU(WX{XPXWVM?>=;85g31001110C.*%N rG xqJR7.#| #-2n-{POi#  W   "^#W$$;%%`$~#p"~! 8  y 6!3"Z#$&k'(*Z+,-/-00122r34445O5c55\4#3l1.+'n#.d MY?6J"]a9AAʟ KʌțŔǼS੭b^Ӱֲ48׵aη ksκРn։uڰڑ$ډ!ش׷2e۾݇93lU*ewwNO  2 { Y|]*nmKvC ^ # "&%' +.]2&69w<> @@UAAA}BlCDFPI*LmO SVZ^7beZixl`o(rtvx\z{|U}}:}W|zxvsollhda]XtTkOIC=B7h0)# su['ԖQμWn̴u^5Ɋǃp'O^]<ΚմWm/ gPrhgֲσUݻxʼxۿH—p ďY))kʣ́Wz,0҅Y˅=0Ð*龮sc]XֳwEcǹA-lqgAΨGP߄ F#(".=3 8<@DH;LO&SVY\^_bddgKjrmpsvNyh{|-}|{y_wft4qmWjfcD`\RYUR NIEA=952w.+'$e" LXHaU,++^7/mYw Z!""D#####a#""."!y!w=><;F:864 31/,*($! Vi.SxN'(aɤݿgϱ^_Öۊ.#1c-՗ܥz[3oˁ8׬ܦ2gb hl+ {\N!$&()h*)T(%2# .9N. UC\#"  K1   O$:/ho- u . xp]F[$&+2v:A~GJKIE?B9300&4':"B$K T[` cc.a^ ZVR%PENL LB:(5/?*d$w 1p_;Y%ݸ8-,>˥ΏfZ}< qIN&@UhvK*5ovGڞ\_ ;ǤL;PƂ?'ʄ,!{ֲEۿ (o#0#`Pbߠުݍwۦ.FڛWsL[CV.@ < %P)-159-<?AD+GI1LNPSTVX1YBZ$[[\K]]r^^2_t___w_P__^y^^]\[ZYXhVTRxPDNLIGECAT@>=<;A;;;1;h;;;S;:98754210/.-,\*Z(/&#+!&ld n i%h&ݫB?,̥]hdyvtƲX-;;Δ ̏ Ή͈҇db߁/OI ӘW+?賤Gȹ0хզ٭7q3 9j!${(,16f̫ipUi d򋛊e&Ɇ`dԁ=|u{"G֕>¢uJ WtSa\13 !|"o*&(KIwxs ^ gp2zz7z !j#%(+/o25K9Fgd"$#!m; u p[:t1 D / j TS0&l!Lmp݃jQӌѯ(8˪ȃÀøA:D2FG%I7J'K0L6M:N=OJPAQRRRSRR"RQ^Q QPP7PONMzL#KIHGFGFFFF`FFE>0=;4:'852/,)'$"K!_  Y!@"##g$$$${$m$$$%^&'''''%#!J./K K ??17"׸IM絏R×>ґUˏ&B9AYZМFաX+۳~\}Mm²ûĮŨƢǗz_,G{̇a-˷ˢ˵z*(Uҏ'`k>٥vٜ?tSi>Ș. pο4c*ʾ+.ȯ2$ޫP"N&?&5BIJ|NyO#NKJIUKNQUvWQXWURHPM9LZKJ JtHEA<7;30d027d>%EJMMJEd?:76:?FMS=W(XVSOpKGDB;Ad@??5?>t>==;G:Z8=6 41 0.-,X,+)+*(&$!'g~ c !U!t!!"5$(&g(*-./..-+Z(|%"{ R3+ vПʲʾ( 2Òa?:w_?Ɂ̙cժ Km >GQ5RwDݐmD~q==3yw4R<[{!M8*}'.ܘ%ٶ'֐ 0|̲ʩɨɔ˙dOWӋհ \1D%tO 3 #n&(*c,|-#.x...K/!0y1W358;>>BEHKkNPISWUWXY[\\r]]^]])]V\5[ZXpWUTROMIEdA;"9;766<89: :971*!2f~$޺bլqn@kb^̮ЫYAǧ٧9Ө"GyҬיܻKj4"'.{4|;B{JQX^gdhloqs%udvSwwvIusEplhnd`~[VQLF@7:4?.)$$!%I+ vpg/ ,4/y[krIJ{ 7 ~"T$A&x(*g-/2456U77o77b65"5~4343210%/-+)H'$l" .g ] 0DL ܸחbry+8*DG占E,k_Ђņ43 Y%E]Hɣo7_Lpys1$J+ 248 >C I NRW`\`dhknprt(uubvv3wAwwv{vut(sqo[mjbgc_ZTOIB<7g1+_&O!<[ 67W݋Ќ̱S!t´slv\XͰχI0XJ `n :n #'A*&-/2'45778929&99888m8x8s8_8+87642z.)$rGj >`ҽcʙ+w'Ճ_ ՌΑ!|QNӳקۨYڶ؉WTJF9Qu \%Ega*2QW, s 4i^%-S%2_ M!""#${&j(*.16:?DINISWs[^ad9giknnprtuvv]vut ttsr$rGqoem:jAfaH\VQ;MH~Do@C<{72+e%ER ڹ:ͫƅNPrܠo4$[U뇲򃏃__#Z$ ]וlS{ԫb+ʃSDFZ"'+049>BFFHJJ$JIH-GxFEfED@AHV,@:ٓ<5[smF㻭з&~g[p͵)wao&v˃Gx9حܜ!- :Z:#'+/C3h6?9;{>@B~DFKGHHH IIHHEHkGFtDBD@=8;852-("H3 # k1:kճpמ%àǠ&dˤ+ѯēMd ) X'Ir _ kVRu. zV+, *x!(807O?FBM6SW.[U]Z^Y^}]S\-[YXnWVOTRxOL J?G?D.A=|94-?&qc !$H C _HDr46p{ 85l1Taln{{ Eyn p9^O wF-&*P/5F\^ 4 .NeZNzvBNvکF *ɓ3оv ]ѢŸ˝N2ȝƞ2KPN@@CEH;L֢;*1(vs JZdL$!-$T'*[.^26;?BDHMQV2Z^a+eshzk0nps.uwxz|.}} ~}|`{3yvsqmjgda^=[WiSN?JCE?:5/*$_+ !xk[tۭs\iΡ$Ƨď¬;o9 :b^󰞰wn##Z6SjN-Ҟz0?-KTnAZ TA'kO9|R DanE! *yڽ}IܜܮܒH`ڤںN]s *4qB M ) fhJU>}D*]; 9cw*-a "#l%'(?*+\-.}013>4G5%66b77B8r8{8U87F7j6s5m4]3i210A/}-C+(%"Ud Y@0xz#B"바?)>ޟמ0h<?@?mCmH,L O6QRTTU`UUUWVWXXYYuYXUQMNIDu@<96.41}/-r*'Q%"ExtR:E YׄEּͪṳ1xaϛuk؛{؜1%ΟsKZNugAR˵cߋhu W  ``k` kXq%FV>J0P=[2 9I&#U&c)^,L/e2y5[8:=?@gB'D9FHKMOPPNKPGA;50"+&"8&rqˌʞbGٮֽ H>WVܸlϲ:j#o-Hć('b[nI~{/X8~vmh[a W6x &7iݟ"lo 欻Y-ꭗIGBv2սb ɩGոbN  %paR&-4);k@]D]GIL"NVPRKUWY[7]^_`Baaa`_^\UZW|URPNLeKAJIH)HGEGC?;g60*"_N u{qm[m Xڜg=͗TƦ:'Ƚ '@V "s'N' !4""n#*$$%&.'',(( ))*+,-Y/012e33 4332H2a1P0:/.,+*(&$# {6v  UU{ܵ،נ" "ֵՍ^rRġ-*{Kmrɏ׎Ib--~PU88ZktkС9ަ׬ZAͽnȌА}LgU0P[| L  $(D-16V;6@,EI=N2RUiY\d_budfhbj9lnpMrtawy{}}}r}|{zySxnvso_j[d]zVO[I8D?K<952.**W% V 1JJ]fG>߄:q%S\?b'It?hz @])Z6@ <; #φˈŚçL&/OҲ|Br^H΅Th =d7 bO R k ~ a [ m ? 32|"%\),/=3e6A9;?>}@wBDxEFGZHHpIIIIIdIHG`FDC@>{<>:85G30~-*2&"g` L.dT2\ f(W\9><j'$gcڰYһڿǧ˦Ϝӗׯ, E$WF= !p!/)0=7O?~ABH?l@AC%FIMLOSwWZ]_abbbb8ba,a``_]N\ZXV=TQO$MJEHECI@y=y:=73R0,($!'@) n}LT6wP1^lOY.r"NҔwŅ~:>(Hyꃏ/W"a`!>GeFǟ@e ]%0 9$>@BBB~CDE`GHIpJJJJ[JIHGgEOCA>ǷȻڿ ,Y̢bp!J  R $r'm*z-0l48/=BFLJULaL7JE+@':5213:8 >DHK'LJoFB}=n963P1.+-($ipQ u  7kDF>d{AryNa14L;X*hHp: U 0m!#_%&6(G)/**f++++t+V+N+P+G+*9*&)'&A$"! I IP)9j_׼ԓ"wzºC^s[#+sp/q6ؖ˘ǚߜ7v륈:ݰγӿ 7bu7Ϥԕ֞s݄iY)249d>}ABB@>5=;:u::;<>??U?>=4<:n9~87^7686 5=30).x+$)''<(*.39?wEQJMOPOhMIEA=g:7544455|432Q0H.+,;*(^'y&%k%)%%$$ $^#o"Z! ,d^)4V  ! > 8 Ch5lցc=<첎+̂Ϟq:υO?K*.2{שرEY߉o^zg/eI]RMeA + J$u'*x-A025H7)9:;g<<<<<<<<<==.E% O:~o(IQҦ*Ĉďǖ677:51,($ 5{P   .mb +L l" #&()+p-n/+12F33d32=2i10/4/).,O+{)'%$$V$ %%%X$ ^ b5Bx 4ʮxܷްx]~^Ep]iA錻`ߒ!J@vu[p>&̚F:*ZZ %2T=DHIHFC?<97643210/,)k&"W-([T W<> M*8C l!*""#$&I'()D+,-Y...._-,),5,,[.B0t24Q676p5Q3t0-)F&"tj (Bf(ٴN΄ÎٷMdc<vegt?Υҩi{(D"%*>0+5 939i3t*79In%ͮ]좋1¢•o=ͨǤ[+נgR@:ʖ=Θ/LȜ( ȴ/g/DZ !&r*5.1x4%7:=x@CGJLNePdQQ`Q&PWNKHD?:4.8(!5 ?W^W\:ؓ<2ч̀1Rɭr5˒O#п!+שڻeo7X @"-)w/b5:,?5CFILORUX[Z^:`a``I^[Y|W6VUUJVVQWWlVKUSQqOLHB8;1&3GWBhNY;AAZtY`x3UⰍdcaݿp-D{dmdR @%f}/ !r#%&'V)*z+7,,.-O-/-,J,o+E*(d'%z$`#"##y%'*,w/145Z7y829{999P98V8777663654420O.+ '! `;4Ϩl<_޺%{b{r4LO"6iux.2"X{R>H} 6R)ܠٵXӖϛO=xu"ޮha1ɻΦTu~f3w.6 V_ $'+.2V69<==<:a73/;,(%" Eek,U K $R 69 <@?  +~5$=AB@<611;,=)(7+06U>ELPSTpT^S>RQQbSUdXZ-\p\ZWlRfLEI?82'-'!kGuw5y\ f1Wͮ­"̬ĬU3<޴cB *s͇n 1Qܧ4o,-9  .  2e4 _ T ? s #%3eI%z I0\ps~mVO)u?d{,e<"n\cRa4`j/2YAV*7'Y]!quCM0}jCa 2 N+,"Q'+049<@DNGJNUQTW[e^aei(n[rNvy|@}`}||A{zz{,{zxuqjc\bVPLI>HGGFEBDfB@b=p:X784!1. +(+%"8 t:  9wUb*d-,#جԽGiV9:[؊LJFZAEق҄N:󖠚'2ośǡɎ˰D;A{s-  ` Lf_@L"&*.27:O>A~D5GIL^NPRTUVWW0X2XXWTWVUuTR4P,M~I{EA=:8N76!7$7640*y#utTWWTZ׼оt1\AWh"0ҏj?.m͓)e&A?\Z3Ȱ#yՍ1s<#%k s !.!  yXE)s+3~*$CdLWj*x8jrjO T"$'*s.1`58;?%BEHKNPSHVXF[r]_^abcd&dc8bx`{^>\Y WVTQNK;HD@BEG$HGEB @><9<<<<< Ay-5$ݓ>z˾¢5R0bפ?Tdϑ2퍄ʍ`}2_Ĭ;ͳw^2dӥڧ )m"'^-2M8=qBqFILOSV[`)ehj}jgbM\UOJ:HGHEJ L MLKHLD@;@793/`,C)q&#! ljgu? ,[ρ5@Bԩi+=Mb~4VQênchM:[5%)P^ F!$'*H.28?GOW7^!cif3hh,hJgrfedcb_]?YUPKFjAS<5716,& !^G Bi;Dݜ9ջӧ.Rė*[9ϴ/L 1#k [~"1(,/>233{321. +^& PI[ rEE`GY<U}T7;"{Pjʿ+ׯ]IwhTF]*/mOA\ײY2y̽IaI3-z[ yJW Q$(,)024x5 532}10012486789994987u7!777)7G7G77t6543Y383344679:;W<]<<;!;E:8 602,]&J &  y \8oP#\ݍ۞ٴԫҧ~[ЙЊ, 3PڪP:x/e 40v*A,8T z!&%(,0v59=AEiG I3J#KKL"MMN/OOOOOTNpMhLK\IfGEAB>:m61,'" u  7Hpxܰړ֪ؖ 57)  R ko7ժUܯy .g UlSUPb.3|kK% kM` 8 [P!?}VѨˍ_^W  T@̴ m|~Lvo[} 4n³hN@g '"&+/257y8~887J77~8:;>@ABBBXBA@@?m?b?p?z?J?>=<1;98788":;w=>p??U?>=Ww2: | {oM" #q'b+/49>CIHLQU{Z_djn$suawwv^usrrosntuv'uMrm|go`>YRNLcMOVRS2RL C5C&}F+G5°2s̺"#.Ϸ1S [D{ʊсWWNR9E bw/BNr nPf+t# زpΑ|Ŭ/btyZΠ$<׷}(ݧ64 &#'*/+8*q(&% &L(`,1&8>D IKFMtMLK)KJ]KHLM"OPQRSTTTTR2QNKHDA<8J4@/) $+, f@,Y ys\y-d-̕+ʨt\@+D{1˰4̦9G+\̱6YȜ(Vʴ-ӑ֊ٺM1CUnn m\ChG  d}<  9+]As!L"NpGWШTxƾ$Cɼۼ\Cd õ#ĂeR؜x,+[Z<\K m?6q9!$(M-16;@FJOT1YZ]Va"ehlortUwDyz{I|{.{zxwu tzrp=nxk hc,_gZUQNKHFDB?.<7U2,&A=  0H-Cҵͯ U&eխgGٚڦei 7׀͹ͪ^ٻJ$Wo-q.6{2pdeH U   `HWI"I',F2 8=B@GmKNQnSTUUUUV@VVWW2X\X X9WUWSPMJ/H:FDDCbA>:P5.%F t |Ε)콳Ux≃Å/5icEϋo͘,[̺X QήL׺ܓ {y 0VZ# #&)-+0S363:=@C%FGkHhHGCGF7FFGIJLMMJLIE@L;5608+&"O |tm$`]kًѕ3*Ő_H4}5n[p8 "kD5z',->)a a C *13+3/)#c  w B<dX?^׹6tz,} f l-  }XnF !s"8#$$%%%$" lI> 'f  39әюBKϺ?:ԞMOoۜn9VG< \3 3;ESp] t#&+18?ExKO(R[SSETTUVWWVETPK!GB?<<:<==]=;84)/(!e!>v1aפ!ȿyv (tRfge߅u+Ɋߒޝѷ3D8֦0 p#'&0! qq9q"s%''c'&&&e''v(((q('&g%@$##L"!.!  M'xI@'o [ ! > @R9U  rG 1/ z q x T-a NZ/XڌdUu@΍ΌΛέ>ϔMnaP2/{&kz 9FuEb5i e iN~!%|*/f6==FOW_eMiif$aCZRsLGqEE?H&LoP[TZWQYAZWZYdYYXXXTXWVUTSfQOM(LAJOHkFDxB@z=t:62M.)$i q"ަڦ}Ҡf~=E5˜CQlRcDقQ&ڑP+I ȷn Џ{۲ޫu)&mki0 T "##i#8"~ gF=9Fac B ^Lv0)\xJ7>fgK7=&m;Ii ?xVj!&x+=049>mBFMKOSW\[^bdgcjlnp_qgrNswtvxDzE|}}{Dwq~iaBZT QPQjSUoW\WmUQKDEO>71+&!~r\~ 5&M՚trb_϶㲼o[g#譂߮a}TGM N?6&!sּٿqz˵DßɝГ׍ݑR{ֿ:Γ 'XXVPx Ӷc9 % s Z0 L#''A&"b1o  ; V "K| m f7#U(,/12m3324z5[7l9B;E<;82*!JRSN y{L u,Pݎ*P8]ˋcĺ̺ c޻z fNuD˱Ђ7~IjgS"O c;, #'+@/38=ADFGGF%ECBB@U?=<;]97e65321/7-)% VW?zcШsec^嫧اEutЦZ2_Ъi:\ƲL.}Q˸~ٗxs, 55 V'\-27;?DH+L^PTX4\w_cbdzfghaii=ihgf%emcai_]ZXhUR2PMMKH~EA=940-+*<*)_(% zob+JER!>ߢԛ߾մj@R›*DQŤnmQێǑ(icHfzcPu2꺆¥+ɞ>6jpzc# (y+-Q/0|247G;(?BEKHI2J/JVJ"KMtPUU8[ya%gknon^l~ifeYddYfCh)jk!lkJj`hfca^\ZXVTRfPMJOGCr?2;62p.^*[&R"8  t? cۈ@,ϗnʻȝǿƗ04D>( $Fҕݏ؊T3S>,vԞyĻ#Z6quF+x9y7!Y O:\J</2d B Z ~"% ),'036:<>@AwBCCDE?GHJMORV[6akgms#y| ~}z|Dzwu[tsssysrpmjgda_ ^r\ZPXU+RPN4JFBc>; 8Z52?0-*<'"O[e_rKJ~6:ZLںʸx03N~ظ=}e 5dyá8ȏv̊)բLTil Vپl¢g#ĸoԽYf7rt|'C -tAĕŞh5`Ȧ(9˿Ұ %X (?j!T%(?+-%0269=AEQJNPSW[_rcvfhxj}kkjigecTa:_,] [XLVSP:M{IEWAKV 2 X mg2F-0@w08hfC U ZHC#dvΩBǻ#M ݲ!7-aϚFW$%v`ėϡ)H 6@8!#$%C&7'(D+K.15H8: |os`sגճӪL[˧̩&Wc<BԂՔ*ڳw1v3b i To#m&A)t+,---@-,C,+-+[*C)'w&$"{ C%3 `cXb+7ܖ(v{ץ+F}Wʛ ԃLԌ8zt DxԆxQ%[i;6/"C #57\H { *G2x6!74W/(!<9""'-u38=AEHeJ KJHxEgA=!9644P6p9]=GAPDEEkB&>8\2,&!GV(  mu?Pk0]o>?~{>\]g;N#J  mX=L; $(34>Fb|G?X7 DP u$^rq^ [oFA뺷%ϵ/X%3wƪtȬϭ1${>7%XRs6 %*T05V;p@/EI5NHRUY[\^^`#bc:e[fgghg]gfedcdav_4]ZWvTQN{LJIKG'EB@?f;;7Z302-*($k  ( R|)%͵Ĭ f ]ڳQ˼ؾLs!˶HIՓ׷ٵۄ,H i@m~f3 #+`!$'* -.042`3844y555655t5$555 554b42/+& z ! zӞȇ{E¢ſ;ϵ,zx JVV"F'+/367*87653O1/-<,O*'#ho @\!VQn 7 &;n;>o܈_uӹ%]_ې_ݜdjܖܔߌO$.7 ?DHKLjLFLKKLLMNOUP3P_ONYL[J,HFD$B@=V;852D/+F'}"T|E ! `S_ LV=Bj/77@'lp. t$ +4")Jq3>BgߎkEٹ؇W=)'3kѻ!С:δΉgYC5&:ZΓΡxzщҩԸ՜֋׼LY `{ ?LZM^He!?+~_Dz"'a(]   S EO# +187:<=>T?@WBvDFHJLMMONNDOOOOOOkNMLeLKVKJIHGFD9CA@?L?>B>=R=< <-;:87(53*1A/-{,++,,-./01T1c1+10/ /.,+?*(l'%E$" 4w 0 -]H[<4Ս º²!aL2|y͋r'ӅqݮOw%ڟ}?hhw챍º)t ӆCbst`Xazx[}fJ s 7N!#%-'(P*+-O/-12468|9:jj@BEHJkKJGBF;2'{ KJ2 nx{'u vd*fzS t)+$cA!?"U"!<0N>]u?#)/5E;:@C)FFF)EC@>"=·MDO@z ҙu؇^RN(W 3GK !!"#%')s+$-./011111x1{11W2&3)415=677d88$9i99!::/;;B<<}<$<;::Z9888C8764<31001*34 653/)$#l-g]C CS=c(> XIFHO   U-|Q #W'l*L-0 36(9?KHDR?D92,&!]u qV&Al+ܳוzYmɺNԯp_{ 8̛W̘}IߟZبx3zgc񸢺|gƔ̗ВԹA+l   ]rZyt}8d-ItgF7,wَڇk.T˜ý}JĄw;ӎ ۳P-SSuA1UQMW}A}P#@ ( q3w` !1#*$$%e&7'4(T)*+N-./13x6:>JDrJP$VZ^aocdefghiSj|j?jiTii#i}iiihfc-`[nWSPNMkL:KIGEDBAHA@s?<-81)B8 /1= W  iHjGnޖz֙%ŷ™gMdγqS[HƦuEs=g.) Ț>έ gײۺ݁!vO $cLr!\ 2 NDx ="W#P$ %%&O&\&&%$!$ #! l]g& `ty;~p`hqWߙݷ~ވ"Z]5ZVDp^;)U9W%AY-5܌ ۰xtچڹ ۈ"ܺݻ޷ߪl=lVbd&I> ]Pl">(k.4;AF}KOSLW}Z]`cjf ikhnpsuv4xxyxw^vtrqrom~l;kihge!dbQa_k^\xZ X@U(RNKHE)B>:!60U+%  *GUiSԯοPPt 1iëe\ E5.DEPgެ WHٶ}^F+Eλ!fZ C#)D0z5-9u;>? @?X?>=<$:]8576c66h530,V(#|* bYk9 ҕUx(fL=\4.RÜw;ݥƧαPUeZ>Ș0er؂s(t#{Tl  <% 3$)).u5<`BGLOR TUWZ\_bJeg^ijkll2mTmEmlkrjhf5da%_\ZWUROLiIE B=951y-s)%!KP T (Z'݅د,ʚ1漾״Hݭiu˗6|!pF&KKXңܥʧe}iJ(q`J/tS` z %*/48<?ADFUISLrORUXU[b]_Y`Faa`bbbbb(b|at`9_]a\ZXVUSPNtLI5GRDLA>:62.]*%g!dPd fSKea~7E2c f,?r]q@Yƶfе3qh3%͘Hkk1h\*5T _ mj4#om:Z %)-1479%;;;\;:;m;=<=?ANDF\HINJJJJJJJJHJJImI6I'IIH*HGpEB?;73?0,D*'x%}"q 'kٓ82.,**))X)('I&$*#!] R+EwUU T JUnj||l$[<]cU1 # nQVv?TGOݬXs΁ʲ ÍIu#{!ص*NzϺf!׻d&^5/we @b8!a%(+.1&4]68q9;:::A;;=?AEHLLPSVtY[]_ab/d}efgFhh iihhgfuecaZ_\Z1WhTQOMSKH|EA=R83/9-++*-)7&!C1_&#ƫ/SͦҠqX0Wi`;ÄƅˆHʅ4քׄBV؉oXOGud93ت¸|Gޥ *D!%),/247$9;y<=:>|>>>=X=H==->??@?L>z<-:785302.q*% Xd$9֪̗ɿos˵ɴ0#v͵6/1q!j1'G6LXe"!O <k+#',16;z@D?IyMQUZ^ cCg?knqWtJvxiynz+{{:|c|Q|I|Q|2|{zsyws%ojebT_]]P]i\Y9UMgC7E+O u!t$G}H ?̽]FΠ6BKcХ=RʥĢ khBՕX$kOWͲ:±Oӯ2bK/ekAmRfk#&&%V$f" / "Z$&W)+, ,I+)9(&%m%%'(+-036q9U<?uACEGDIJ9LMNOPQ(R\R^RHRRQPCP{O}NfMML3K%J0IwHGGFDB?:3+"v+e'93.9cgT̼¸ʴXaפ͢ }"ޛCEњE ĥª>?:?8?>> >o=<<^׉aԤԏ^-9ԙ+Հ2לOٕ#ۛLܤݻO.]xa}f lqFvz|}~},}|h|0| |{{y xu=spl}i%fb_[XTPMJFC?7<85p1-)4%   `<|/_ <\,܍؀\f \ƤƐ`1˧Ϩm6| &dVRY ETSJ#^ i1*\׊w՚CӹDэ.Ѵ2%˱ȾŕX_G5}~EŪҩ ?w;7L4Kʻg@ǧ̙"ӎV aDIjMCPRJUJX[J_bLfKik mnnnnmmkyjh2gevdicb6baKa`^_] [WTPMIF%D3B@?>(==;8G50,|& 8 0Cjmޜٵܯ0]bY߾`C/^f47*F <&PO /1uQDb3N `'dB  # s K$X!#K%&#(\)*+2-.]01s3456[77777m76c654321C0.j-+*!(&#!i~8U b F~D<2LdPWdz%7ח;Cʌ C25mĂO?*]ΈY";뒇ouf:ȉO@ԉStZ ;$c*6046Hx='V2y3tuk ۵AmXԒ@xSv;Z ]`/$h),a/1369=B{FJNRRUxXZj]_aceZfMgg-hWhbhXh5hhgXggfeUc a0^[XTQO{LIAG6D@ 4 * U "{p,~oh/wk6؇<dƳĢ´8"ɷض!c61N[JD̾`|bhɠ.c~ԤֱQ4`iU2 / $+,27431M0.-F+a)H'%"y zT r?[dERX#0Qȴ:IP A[؅j򉰋bԗOءͭͱƵp3˙ϊ&܋&SM*F O#[)1/'5<;IA,GMRX]bg'knq"tbvBxyz{{{M{zyxww_vmutfr?pmjfgzda7_\Y VQJC{;2*U#dZ6n]s s*@7R,ȔƎ{5YcՍ-]K6b$xm%ڂTgک&ۨ&ܴo݅{ C /2 K [F c!F$&(('$<} BY 8-4/}E!Teiv-mO:Z6K1+E&  n+/TϧʹA+_L6Ȩ(ϢFiJۚTדr#ҡߤWrijbUةߠ@DTZf5% ] e w  {a}B).]H= 7 NMq1%BۋU[ɧs}ƖD})ȵuF6M͛6 Ջ 9$Gp3(k[ K>D2#V&p)h,y/2\61:1>wBFJ|NNQ_S}TT TSQPdPP|QS UW ZI\^m_:`V`_n^\[Z]WS!P:L HC?;73/+'# /} zci2 #yv2))^A|>>߽[ݙ&ݢܡ5ڠ}څژ/ۦݜs=KF5#]fʼnq]/J IמЪMgˠʊV=[}Ńű^|sȱE͚ M˹}Fl"ݞQjf״)IF?A!@!q $)2;BFIKFMNPS9VYK]`d3hDkm'pq8sssssr1rYqLpn-m1kifcap_P]8[8Y>WTNR6OKGC >83,&v dG+B"4վˏ^aͽQ%ݧBJ8%k:*'s/cgr[!K @{r !!U! L=Bu t F V13ٶ=GϭgL Ɓú{ܱ_ﮑYJתqa|rOcaG7 2 TR+>"{&*/49>CxI OTjX[]]k[WfRrLF?:4z0@,9(E$ n c=[!8sYX ]Z|e"&),/258;{>+ACEGI+KYL;MMNN"O,O.OONuNNMMtLKFKJIH=GKEBn?;71C,&!d Re~׳'ɰfдx즆ݤ ]<,7$ڝvz}  5W $(J-1q6:C>ADtGIK2N%PQ1SXTTT3TR#QNKHlEA->E:#61,d'!^. E׭ӎϹ_uˆ!sڱOYakiFձhLdUݔyd!_#$ '*-1479:::;G;;<=>{?r?>Y=:|73/+&]"Aw= e _a8bKYhsKeuIoˠ)q0ȗ 1u֐nӎԨ3ތO[}9 p)`5AK6U\1`)bbr`]ZX W}VVW^YZ[^\j\[[KZmYnX7WUSpQWNKGRDHA>rCHMRWM\g`fdhlp}txz|i}Z}|p{yWxvtqym:ha}ZSLGD]CACC(CSA=70'NWw AAT;Inyߌ ܮ*ِ(7;>\(ۭ޲fnUA7D Zqy;$(k,N/ 12t2L210;0/..-+*)V'%#!YP ?mRHC7Y܉ؔԤ_T龓8ܴ ©nդtţѢ;iz3^㔯 5Ɩ[͘ԚP# cפd!¹q~ʗd:ҵj,R!$_1f;BED,Bt>:7=7893,&Q1E {(j s<,#%}ĎL\Ĭ%.hOSйPԦԃW_ZC( "#"!!!"#&%:&&&Q&%%D$##`"h! c]9zg2 [ O7_'R9H;(θv񾷻QkdkIѧ5שw񱲲9d!޸º׾8zDZ*jҰ׫sN@GZMoP P!McHCi>f;:S<#@\EK4P4TVNXnXjWUS8QNL KIdIqII_J.JIF(C>708*#EW zQd] ޼:CT! ͔}FcÈxσ#QDFڗߛ'Ĩw[QSbd[@ڕ"]l x 0 L2}lu}Ez(p!$JLl pp["$')-0A53:N?[DIMQUX[[]>_}`aa?b ccde;fhf fmedccbbb``]WP@F+;10&^,- %"\!Wqْm#Jľ#$<_ԗ 7qȮj)ŵ 0k_FlS !a$%&:''(*,/36`891:t9 8=6l421K1,110/1.+ (8$S b;)KK4 ' Wm(IѴƿ¨x/@goX!õtzܲC+_(߻5q1ʡ@ЧԿlۡsst A. )/342.`)#H`4%,4x:>@?3<6 1+v'$z##$%&'_'&A%#"h ^'tHCc !"p$&(*,./0x0/.-|,c+*)J)('&"%# 3}j Xm&_VBxl{0Oܡ _ժ&?EjgsPβX b鱧l%Yp8ڴb豱!®Iد,DZͲUHB9-AmñȲʅqM"~ާea6myU nrF!$a( ,/3%8b<]@DSGCJLNPR]T/VX ZB\~^`Lceh+kmpPsuwy{|}~8~ ~}}G|d{]zdyZx*wutHr1pmkWheb_]/ZFWFTHQAN1K!H7E:B>O;.7n2,&:" Q eoVGXK<݂)2ͪ\gh_ޕ>D'ʆ܆L1xm vUȞ`$gk R˼U(Hv_' F!&+y048b8]1,*"Qh> G^'->,xl{IM0[r%S#_ 5Gq*F(xXw^N ;p@M~=ޘ V&"|Pw`H8P  5sC$ d  *7  H,:@  VGjlngU   ):X $Oe + ) 3T ~ E \ x Ox) l,r, Y>hڋ)y2򻚸Ӱ㫃jtqvګ99%򶞸)EŒĂNӻF O)l .A"'+,2{8>CZH`KLL*L.KHJIIJK MMMMMKHE<9`8778X9998N740,(B#^n :48,=l͎DYe׍ۘbWlkߩmHekD 0} _ p > . }"(,1+59> DIMQMTUwVVVVWTWWxWVUYTRPN=MKeJIGwFDCB@>*=-;862W/+'Z#'2  }mD(ܚpԆ5R߽|$ƲİN\ q\իETH ?ܪLwHŹFSxs  }p >$&\(c('$ !!kZ**F%~-Y7z C -J ~Cd`-!Ҟv͖y9 EÞ  W„ÐZ5Q~w)Ιb2F q }%*0P5N:$?CHLQUXl\_fb egikmomqrstuvw xzxxHxwuwv*v`u{tUsqomkgid`\[XSxN?IC=71t+X%X5f]#ATtpob•㶗uT/$/Tޏ p>  $Y!r#%4(P*+,s,+)&#e &? ]VHTۇiٰ-Kت'ٖڄےfZfNkp - reI:a`!'" a =  !A"4w/h@TBO : XX23es3G6G~H@2{=i׉Ѕ=7$|:Tk4bθm)MH# %`Li Z&BP y[b fg'jBLC '.367641 /,++-.0e0?@ABCaDDDHD`CA?y=:7!4~0,2(}#vHL hc5;V݊yňټxE`m:7Slʳ{ZɷoiLܢH !!=gbW S  yCKLOP:P ! P I !$'+/,48[&qsdxuÜ.ߦԭׯ`ӵK~ 6S+#(b,0(59=+B\FJNRVY#\]W^k^D^$^S^_z`^bdfhTjkblmm5nnoqr@sStSu vvvvlvu`tr6qYomkljigfe'db`}^"\Y W~T ROMKhHLEA=m94(0,D($!O65 lWB_ܭ-Eɿ1򨸣<8-RntxT),uSu՜$FP>pȱ˿(زPHG7!k N &+006;&AAFJlOS{WZ]`Xce^giFjkkkkklkjAjBigNfdbW`1^!\ZW,UVRNKFBx=8431 .$+J(b%/"L? _lqklĘ T %yB4_0'3ɾ}þ/ǒ|ԳR?+kUyO *?  . &| `iJ@=l F$pyU(OytYl3/(\ {!M"""""{"K"%""!a! 11i ^HHnݏ;ӆЏ͵ʥĺԲ֙!]6Do,5>𖤘Dɯ&qīͼ`&}آۓ1.5!k d $n'*-04)74:E=_@jCaF@ILNQQSUWY[6]^`Pa{bcdefSggshhiMiiiiiiitihdhg.gf;feddbu`]ZWTQ-OLK=IzGEhC@:>q;85<30._,&*'b%"N7 |7TZEJ+@~@ÿMdqԉҨ̋mbL^ $riJ,ں[bYixD׾Æ'rȄ\ kА)ԦV؃٣@޸s[!PR6f ? Q M 5_#*?2q9?DGH$HEB?>=?BG MeRVYZZ0Y5WTRpQpPOO_NqM)L|JH^FDA?<:X741)/\,)&#!/) Y}#VnQ1"h gđ Ҷ f̨0*R6UÔΒ/|jzdK<ȜѠ@3NeGJX+ILE34`hO6 ?wb$s*05J;u@SEJzNRjV!Z]!apdgjmpPsuwy{C|$}}~C~[~d~?~ ~}|{yvfsolIhyd`\YVtRNJFFA<72u-E(D#& u1%S9<۠א_x̻̌p]Ȟ"n.NӌլדL-rRc[8+t+Kh,k3?07L8 iW\~)i}g |B3<&`֤wۘ74 LL J#QK *!$&'h'&%#p $@gd ]"-_M  = ` 0#cMPn \I3VBe4PP/  6*  mZ*u ?eg*o e!2""C#M#"\"l! H[<   k m *r '͗+Š=AC>^^.ҰV3W鯿q+败x /%Jȍ̝ϮV֫W! C\=y6a??:A3 XEi@% ""%P'O) +l,-p.*//T001P2334555,6k667u7 889U:5;<<=P>>?@@ AsAACBBBICCCDFDkDDDDDDDDDDuD"DClCCBBBBvCDDEFGHYII&J4JJIIIH HhGFEkD#CA?=< :753f1/,*Y'x$!#b }?)m"hNhmp6{Ⱦ/4Gٶ}Yj,@HʊfԆȅɃb]rg ʄ.ǁcg'–ܣ㫪Wv: ͺl lɞ/1 <E|1% +/K35Q79;d?fDJQVZ[ZVQKFCB;DNG\KO281+*g$x U @$*L058j865/(!y)f;2J oh({Yv.܄~֮s]SzоYΰ\̣˾ʥ^xG֯unߒ>XiW< ~ d"g$&'(*,.J1^3455e31.,^+*=++++)p'(%f#""[#"v ^ܣJאJgd,j¶۴M~٪1 f=hho_0lc҄j݈J~ PJ""'[+^/268B;r=E?@IBCDEF:GGHmHHI`II*JxJYJIH0GDUAu=*94/n*W%. nJ TQVuTw?ӆo$ն^׽Y.ߑ yZz4S nG #&)l,/\1r3c5;78g:;<=k>>>>>d>Z>s>>>H????@@=@@AArB2CCCD7DC]B@>j<+:&8v65321&0K.,)&$!&* `!CL<ݤ,֞}AUǓ3ܒԒlu*:٪ƭζٹܿ˜Lʘ@[1چJX`R3\ uE#-(,^159:=_@C$EFH%JKMNPP QPLPmON@NNOvQRSROsJ=C:1'X   etj18ȭs!b]vM5?@SABPBOBBADA@5@?>,=95.$24_Z>;~7-)<;]Sĭ)ǜ g'͘=7ϢdiԨ=ۮZP',aO ! &&\`] V#5&.)G,o/26q9ADH}K&OSW[ `dh mp tvx zzzyxowusqom:k@hdFaA]YUNQMNJGC@<73/Y*6% H_Ppw \N0jr + d | h \ u L 3'5NgؖԔd*<5պvyψo :—.#c~Ʊz!qʦK̳J'Ӿj"ʷt ٞD:R`Z 4' <@2t9h$3XYsd&/ k^%'.1T&fKsKfi>@>-5E.c$+c14h5`42.*&y!SEl %#)D05:<==|=w=>?ACEFF#EDB?>94m0,)&#!kt&.59:p72-)s),3?=GP|VwXVRLFA><;$96~1A+#K2 ]X(( 3TBvX<%!s4BYRݪמ̳%}Š7̫PӘԥ|ԟKՐ?nGM܊!e`$ԣ)BkBGU]sAS"zշV緻ijqںaSpc•ܾ .$ٹc}s":Q5n0+d'z# 4F5F޲ߛݻGԊűO t:Χ?-𻝺QC7ؤ@4n̤ϘfN@'JtiUf$RpE R HA "8#$$%K'(**)''"1eC$2?LUU[\YTMGC@@BjEHKmNdPQ,RJR#RQPONMLKJ2JIHG[FfDBC?S<%952l0%.2,*(d'k%"0 Mp pyӸ$côʱˬƤbНE[G]Jmp[mѯi`-Z#n| s (; *%g*/49^=@CF|ILPSV|Y[]r^^ _ _^^^_^^^S]B\[ZdYXRXW!VZSN3H!@6,# ' O J W WS 8kމޟߠhn3) Ϧd?RÄ̽B۸{2T/sk/ũGʬM߯޳u@ Īf8/e֠ڎޫ,UJq` \? C$X(-427+^ ܉]܍aY()\ӥͨɲ)NNÉƨɡ̋\ռq._ L?QS ; #5JI,K!{"H$&G),03b7:=@;B6DnF/ILxPTY]vacdGdfbi_[bXTQNLJ.GC|?:4E.a'n !F I!tkQ&&Ҙ8;z۾FM>h$ءgO_fDO2/PNWmRVHOtR 5~7 5^hhm=92qi  W^Vw T$f|l y ,!_!!!!!!J! #]!}?k-(!&+/2$44443D3G334}444o432104/-o,*_)'%$'" 6 IA |\-w_R2ӜIhץۢ"0y/؈!YƂ2D< ^1򛲠zZa8~p(όҟ ܃ dmPW] b " '-+7/ 369<>c@=AAABBUCD;F(H4JyL,OR"W\bi|p{vz|.|yvq@n1llm9q@uy |}Z~z}{yvKtBrp om!ljh gdpb_\cYUzQ9MHC?:4.(" Q!3}"ӧJʇb8Mu ĴȂ̰coWqȐ"͜6[]ٮܓv8n, 1!$>')+-1/}012`33w444K43210/.-K,*d)'%s#s!~v? ] w m u0,хS^X`8D׳t'ܼBaT :bIñl:ݴ^絎M4]úY߿7Ɠ˸e@S֚La";t gify O"s$' *-16P:>BuFIM%PSUYXZl]_Dabc'ddcPcba7a`_^]\LZ#XUTTRPuOMKH C<4, # u B  G 58QHj ޒڨWŨ Fȁh1 Lx)¼Tҽս3;m7ܶ@dz^ļTDIw$n #wwNB&y* ` G N Q{ QhERߟݷ2MH ~f۶XڙڠvJY5k m".')V*(%! !%*-13M6 8899:u9G8642~0c.,*p)(&"%"< S .y q2r ^uWF-FP \0"֏Lʕ˦D ی< ߡ݀hKhیۼ۰ۨۚۯ2ܢ/ݫފ߃jD^rZ'T ]"P+".$A%%%7&W'),G1`6;L@CE;FE6DBaA@/AcBMDFH'KMNP!QQRnSSpTTDUUUUU2UTS}RQyOMK!J4H6F0DB?k=:c85320h-*'$!s!Q ! @Q=*ߐەױǯc[ާ͞™K*^MQ'%ز=s̳1s_׵r+췙M+5̸Uſ,ÈƎ·ϩЮ҂yd[K,pr;/v0 s^s/: !"##8#"1#$(4.5>GOoThWNXWUWWZ^djJpssXqm"hcaq`a!dfijAifc*`\6ZGXWVTSQJOHLH:62.'+Z'#2} Lr/'=ڊֵЫб6\7NIX2ЃгЌ =6 ˗nX]ǁƯоSS^ɲ;¯sQo˫iJQym^?ڥУa7Qʖŕo񓯓“BVaʞg(\QZmnb3zgXb zNS"&)#.3:AKOU_iq8w]{^}}|{zyyLz{||}?~O~ ~a}Y|zxgvtq,omOkiAhf`evc`]eZ?V~QVLFcA;50<*5$& 4~(ilG0ƚĕ fʆ܍Oݡ EB}u" k&("%).v3@8l;<963/+=($ |:j `N{5kkڵ7p*hB6ζ|͒U1Y'AG<Z;R9W e ]!!!!a!B!! 1 &AV") W kcc}~H 2ݏ?-]_!Hʯȃd_S/0иS|žõ7Ŏ8c1ˆnIע ܞC[;0 !=,"% ),.C135z8:T=?A&C9DDlEEFFPG6HII>J=<;;[96G41/.E/X159j?D2I_LN0NLLJEG=z====0=;83#-B''"( 0N X_>bA1׼H؊կ|%ޭU?_:iBV ػ%m!0)=tߐ݉q[:t8s>c"p&7l*v3 1 k ~ b T QL+I9Sulf v p U $')k,/1<4699;=?ABBcCCCCD8DZDDDDwDCDCBnA?=;92866(5432./*t$72 /)``Ҵ׭{R4ߩϬ]Uj$ϔeـBٯ`[5WZ  g qegny:WzyYL/`ht\fcm@33 U ZAgCJEFH)J)LN1QSUV]WxV[TbQNJzGDBSA<@A?2><-;#96r41.+($ YZ wח!CĐɶϨ<b( uۡߥ^,2߿C<1E p#"(l,048(M#X<P e)Zސ˷Èɵ⫗ Ū˫w Йw뚆tǤy䥠Qf#53޲T4# H JEXZ2Qj!-#$&(+/f49?EJO[RT!VWX@YZ\_pacdeedbh`][zYWUT>SQOMFK_HAEB>i;7421-T*&'=$!X F`#`ڷDA6em族:ȫëk9ޥZ (1?dӳٺG0[["(.J49>CFHLPUOYw]afmjgn rSuxzy{y|"}:}|r{yvsnidB`\rXkURZOKG@+9`0N' < ,DLD Ef!ޯ_޹>zZ 6F #R(B-158;<=n>>>>>>r?@t@X@?)>;3884=0,j)&m%$$#" 6 Lin[P,օszbTd aєː΍yLނ%?8Q镆R՚#GM묢*V\W\_ʄ'^{߉o+ \pg !!! M"%)&.L25\899Z852.[+'F%r#"G""c#$%+'()%+Z,l-d.C/001s234547b8O99:9t988O76555i4f32S0?.+a)&$!TZE40@"2$ ) )ەyϷ2 bKZDpR½89KԔ:ܭm&6y !U%(+&/2468s:;> ?]???!?{>=<;I:87<64~3820/..>-U,~+w* )d'>%{"]P%݋ic.Kнd?Ȳ[NŗǽE%&FH a%+17%=AE)HyIIhIHG5GFFrFE-ECdA=8A26+#`Xn \&H`xW'rf,Ы͡uՓԂԏw R K\IMMA n  to]X>C{j ~'+΅*bЭ:lpCãym,kܨ[9γ^ S~*ULJȡɵʸΗcі+\'IUc+0bwJakt9*ai  K0t/!*%(,V/'244i555@544!5x68}<@EFLLRY^`fmrQwz|}}|zxvtriq pnlkh\fct`a]*ZV;SODLHEB?:8O3/.--,..,*D' #i '`)&56D1koUuq²ĭnQεq:9ɹ:ظӸnľ^z<Ǖȴɲʳ˵Щ'Җ),A[\$1yU7VBc M }C?) "9#<$%%& &%$#".!o]=lQwI;8 "f%d''>&#U n'M!%'E)))'4&n$"!O-Xx xv_ڥ9F:XиΆ͢fGʇ UôlKvƕnj7ɳȅśc98x׸1q ܳس-Ƶqn)Qʆa! h  noK dz\1&.5G:qőǭΣ;ؼڭI߼2zA ) G#zc/MhPpn;CK+o y "{OrVBze:qb֤ վԄAӣO҈$Ѥф|ќN\ӑ| rc4@nwiA5,y}rqn3aBrfQ\2x>$&>\ xZhJ<i I )  l #[%'),?.0225q79;=1?@ACCuDEFaHIJKLM?M!MLnLK6KJIIHFDB?<8751.,++;-/-123u31.*&m"xk XElP\٫ىR4ѱ52UT 9x~?ٽ\ 4GH: }ƌQǭ?yȦRɍ@ʝ:Nk˗ẂeΨϑVЅҞ/֊זVxܝގE}[6T f9Enao p   p d |aTW:j*|TwF6V!#%B(*,=/13579;>@4BlDFH`KM&PYRxTeV#XYZ[]^^M_d_^][{YLWMUSRQP'OLHC=n7'1+&"2S$_$x&-1<31-'! &,y1M4531#-)t%"!@!!"1#F#}" QI4Az UGnڑ*!bij\޲'䪧zp{S磏Eʢt)ۡ͡G릀§>"ͥUH?$2]²0bΠ]Il\v) 2 _+bykK9S<  U Z aGsB9U {2']>f4.&TUjwB@L1,!%^H _e   58: X !"$%Q'9)E+q-/1$4>6V8g:b@ACKEF3HYIEJJMKsKiK^KaKK8LDMNPSUX[2^`c*eghjjl)noq1sltGuu*v"vuRut tr8q%owlhd_`[WRNKGDAO>:p61w,&\ > V{$J28-Ҹ3J0#2s˕" ɗƘH3lϩ`ٲѿÕǭ!u~W2 _H h uq' !Z"4#B$x%&T'''&$"VX  }s%&z CǿǸS%,WͧVQ9tۥХH-[󩷫ϭc'4ȭ˹Ԏܷi-<߅ޙYDز>W3sy~G6BWzBG,T<N  $'+-02\579`;<=k>??5AB"EGJ3NQUyX[^adbgi l3n?p?rtuwwx9z,{{j||g|#|{8{pzysxwauCspMnsk\h0ea^0[WT%QM`J%GC@#=9 6420.)w% d [a с<%hԸުҧ㠀bǝkISH*tF񺦼0MYu ܰrJ  daO $(i,s/.2468B:;G=E>>y???,?>==;:99,8776420,($e 7ާBSAˮ̸B9{T֏Җh/#.论Oyv$͍ҕסےލj2 cn !> ~{Q m n  N  e V @_+o 6 0a>: a $    ! 0 p v$(w- 2q6:>BNEhHZKNPISVXD[]`acUcbNa^[WJTPxMJ`H~FDoCB@?=HBFKjNONKTF?8y2.+++,-A-+($F +j6 }  97 -<7Fͽ4¶DzN:cWVS 5ҫOв>e̙6i] (kWkåk8ȰW?gطlýӾcTƀɈͰZُؖ:цb3˓AF[w]rAS8/WdSbkY  5DAE!$'*-0a3a6h9jp;r8X592/+'$!C ZL1Qz'crb&سƯ89̡CGu]IHis@Pdgڥ\pJı!>ŵYEq€}MٲEq[.:_5 'Jd!$%%$# 0Z$0g#@  U %`*$k3@(۫ٝ بq)*}"ϋ* UȚg<7Oȃȱ1̾s5ZԔդֈ[72htS_is*Bj5e I ,ivv$?m>5G _QMX[s\  ^ :"#c%&B''(G(())R**+,w,,,-- -,,,-'-i--.U.e.B.-,+ *i(&%####%''*,.{01\2-3469=AEGsHF-C=m7?1?, )''()*))'#\! [R?^vG~NZR  YѲMB㷣vˮwޞݠHP5֧@/@~李󪔬e(ǴZ1&"ǟ˶ϣ ּE=z.ڍ޴&MqPי@e~bdNg}t޲̴Ph(|)խD߼6e 209jc !G"7##9$<$ $#7#"! 3L >q { b/t*d=t8%Gճγ3C̫\1|3\Df{;Mޭ= qĮ̯/a뼀oy[Ieժ3{ e $)%0"7>FN?UZ^aAbTbaaaaaaaa`T_]_\Z*YWUTQOMKIGF1D B?=: 85O4 310.,($ nt#&u)G++*-)&$C#e"5""k#D$$e%q% %5$"`!B!%5*T.1343K1K.)+L(&$2$2$g$Z$#" o-0 N =?NӺL9ƻl굗fdkөuRzܪ#6豗c@.*X5QNX]է ؔV^݈Um>+Z~t<"cN!fqcqݵۓڔ-عN֮yF J֒שZٱ{3ݹQBJH3|wiN 3 9 ;`1"m +U!#%[(*-0>48<"@#DHkKaNPS%U,WgY[^Ebei)moqrrqoDmkiiikmprsr2pktf^`ZTNJ!GC_@< 940,J)%"o  |M<D:&X!o@ r@ t6lT  <% b%h&@rw?4 kdhI[ԱtbUFёr"͐~\_HVV.8]A쨏)T2ʵQظM׻b]ī+ǵ:i ڧܟFk1EQKc3 _ x"fF "T%X)D.z4%_6l\8fT| 9chDCP\HJdjlim;`ntfVLGYz9\T~[%5fT6Tu6>Lu9z tU_A@!"("!l G R " #py|.VEPdV\0M   I7Y3:C ($(3.39=ADnGgI*K%MO?REUnX_[]^3_^]ZXV0US~RRQONKHEB?"=:$8b5%2&.6).#n) ]m@>PwUtϸxX»daH*KЫ'N&!5X۝[47KGjvuLӡ"P We)g3TeBkjs-1cqjXQ$4g_t2-r)[''Ysv d>Yf.!$ '2)1+E-/F2H58U2ACDAG)JMOyRUW ZZ\^`cefhgjkmnno/ppppp/pxo~n!mrkig[eEcHa_G^A]u\[V[Z Z YW_VTRPNqLQJ.HEC&A>;8613k0-+v(%"W1 <5E,'QS#XZ4сcˆř`E+ HK)Dګe%媖6ȩbè;+_«f䬋Jԯ'S񲲳z@a*ݵɵ~]ķ%-պU.c^ϯԆ٪qibq= }`f"N'-5>HRAZu`dfjggffqgikmnnm"ligeelfh=lsptx{c}~}#| zw4urolifvcb`]b[vYWURNHA 9q/%GE pLKU/'9ܶ6'ѺϸΫ[MrPζϗYҎ[ӝ'ԄGո*֠װY٩?ھ99@ۍ7yܔܐzZN8)۾cۻھ%(ܹݺt^POFط,һjлεZ YIĸŇBʁ ku`>-r n^!#%'2*,u/2g4S67887630U-)%!3eV7 1|C 'd0}TZgDZ !!$'*-/269%=@?JABCDEFGGHHHHiHNG(EA=8L3+-'J! dӆVwMlظ︴Ҽɾ^:JvD.hzBdS O8=  !"#X$$$0$`#." ^I<wOkaP H CKqy5SseD&g7A4eمWj3ĻJ迠ih绎S5Kkƒ?,8v9c՜]dB UR7Z64Z" "D#$$%%'),04%9P=EAPEINSX]adfaffTedccOcb`a^ZUMOHB.<6n2.t+(Y$ tt p"rٰ]DeuC  g)V]X}>z] ;'k`!=B0 rc'S  O\SsE7xïܿ|2 )ݹPô촺kķͶ!ɲ ˱Dҵ{G$Jqï(ȷeҫՋG݌1G$w q$G*/4:|?D{JPUJ[r`Xei-nqtnwyp{|O}}}}C}|W|{zyJxvmt'rompjgSebg`]Q[XUROL8IEeB?;74N1*.+0(,%!xy t~@ ׉h|Ey|( <[n"<ާȧZZ:Tҷƹ\ÆH;fЀweUPEަ1Lg  9 $',U2v8o>CGIIGC>{:{7 6j6A8;>@B B@>;886 4210o0///-w,*/(v%"\ .(L^֫ΉXHPaQҸݴsy 8@I?@Q"+~hda.o,yכ҇ϕ΍'մTtlcۭ 0"޹E}/~ZvPe \}2G+u!&n,G27@B@DEfGHJ?KLMO:QSTwVXtYZq[\\][]]]0^i^^^p^.^]E]\\R[ZY YXVU?TRPNLJHF|D.B?=h;_9g75[4e32]2Q222+3I3 3z2u1/-+M)&$K"< KoUiW %* FttHBm!=̯p3myؽ/ߵ~ްͪfB,m6ތÁ݁-c]fh$klm"nnmllk&jZihgg fdIca_ ^R\ZYX5WUwSqPkLGA;05.(#cs Aq:_cM!&A K8{y8! #$>&7'''{'&k&%%A%%$$$^#"! !$$(>RB4(  UrS@оWHю /ʕH{zC´P3!ēb´İƬϵh^+9EMsP#d8 0 kX#zY}Qv"Q'!+-..-,H+)9(&$!q"q 9Keys  s+J# kb~ATXQ*1ь\:ws@Ȯ"ǚ(ŜJP:<DȞƠ:ᣊ׻ݺAJ0 կ`3B󴝶dH=Uhd.KǕȯɫw G0̻VVʏRҖ3(p0 ; $ q {3@q b "&#$%T&')+G.02z4a6f8:<?jARCDEFF;GH9KNHRUWXUCPH@81-*K*I+,K-,*6'E#I 0 N hCN>3heڐz3׸PrۻNh KJǓnk[9ǍKHVQ(5͜ΦBA|ԅܱc,a b_Z#',T2;8>;EKZQ+V,ZQ]l_`Paaab8b}bbb{bbla`|_^]]]\[7[(ZXSVSP8L/HFD@=9G62w.)Z$. ] JGrEb]hy3 @?rV\Q1G_c%?6  ]68z ` Mp ^A~("$:\';ٚծҸϸO8o]̪q.L18ԶܲLq_ڨ{FQr{+ܹ4uQƽʬ-Σ$ӉIH[NA3 [z? $#%(M+-/12233~4578:=@*DHMTZaKhnswz|}}|{yv\sJojf~b^[YWeV*U"TKSRRSSTT|TRkOJ=E9?94100n2y4.66 6<3J.'iOU?;z0o=pU>7}@s܄}u~ذ׸n2y4}1һqK?#Ё!]Ξ΀]-ͷt;%OͬςbDDN؋իikƻřp< 6=$8U{6DAśLʬsjмF]|_R e "J$%& ()+-0258;?bBEgIMP!T\WZ]`cf}izlFo rtvxyzzzzzyyx7xwv*v#usrpoljhf?c]`C]YJVRNKDGC @<95 2.+j'#Z  9 ;F._'̛_ͯ"?b䩝Kf> + ]@ !C@?=2?k6_QkWga5᪅4+ID~2OeɅaԖ[i lU."&*?.w1Y46L9;=?AoC!E{FGLHH-HpGqFUE DBA@m?z=;-85220../002/3+$(DS,7!G!ޖ֨9)nG̻ \/̃&~KCi]}PWuV T- &,!2r7b=9531,)(t$G!!6X|`󴋵 䵘iVѹżPRʑhgY~ .b/ "Q%')y+9-./0j11e10/.F-+B*('&$#H!= 4 ! 5 4~( c+߁VԸ(̷ɟSÉ@4KĈ>I;av1 >z+DZ˂svת<9%"{ )rj#(-03G5F66:7}77188m99j::::]:%:999:G:|:::*:98K75M42Y1\0//0013,45o5V54_31/6.,++,-%0259<?AD,GIgLOQTWWZ\^`bdlfhijk6l.lxk jgecj`][YW3VTRPM1K#HDA9=N9350-,'# C h!Kټ<߬ȱɶ%ݾ$Dȳ螿Л_jJ{D9&ԊBVĖ;2= в3[<y7=^%KWdY؀׊`ګkuĎXGf=ũFީRw{Ͷ1ګ]'$Pޢ*_18eR?U~Qp 8'X[ #|&),/2~57#9:,=6@GRF_5ktyzvohja]\R_chlopomk9jiijFlmdnnn nmFm|mmnn8nlcidi^WePID?=<<@=;=K,=|9&]\= ?K5<(m J zxH/-dC @!!!!"!!!k 6 @ CEF\HIJKLMNyO6PP@POxN&MdK)IyF%C>93,&f1*hMa ob?O*WdS6ʮ-,64ȑ֌~(8eHb|'ǘ˝=wTNũ⯜=YϭG7|Ǫĕ! ɩJ ;%H[R( ~%87 **E Q;1EZO JC/BZS#)r2:74y0,L)%"ugs# /  ;@0}ܕBk, Jw1 {_aK_ 2 }I A;~? uS:"Pݼ3ޓ޳ޑ9/ݖ܍8ڱڞڞښڟڒxDPdCSpՊϪ˅}vRְܴcƠ5[s΀[Ǫ\-/>ϑ)דًatb c;$H0<I:T\a*d%deb_\ZeYXWX XW_VT%RvOLGIEB:?;2841.+r)A'-%##! !iJ'   aF6_nZ= uoL$*R05d:=? AAA@>Q=;1:z865H3_1R/-x*}'/$  JQP8gQmrےeׅӊҪѨѱҳiש,ޗ|S!#?O@@L@?>#>X=mI\  *^u]E$mp1y>܌רҝ̓aj"vآ!tGCoIԃ!~N;˪(ұϭƬ6ᾤɤΏHٍz(_^Bp#j=fNXrhmr"+ ):$xCH > V 2J"$&g(*G.3;EN-Xy_cdb^XZiWV0Y^d=k qtQv"uqmhd`8]cZWUROKwHEA>N:h6u2.*!'# 6vo  OsP#c9L3,ۄ$و*vlx  h(Ib : ?8t^t  m P^10>u'MJrCgIܼB۷ op ׫מלנהׄOָֻ֤טح٧f۞[PЍAHط7D&|똒i=rL7̾g`hʑ2 zr6CSЉרB#dK v#.;JI.V` hklkhe#cUab`___1^\,ZaWTTPRMIFhB>:,730.+=)'$"S DnR2 L 9 fZa^c}F' Z 9a sP%w+17+=iAFDEFFErDB^A?=;(:B8;641$/,($ -N  *^Kue}׊`ӆQΩFӀ.I5qE"m  8 '  -5(B"acSځӫ5SөМRPfQS>+=Ė]ƙݚ͛roGg9ߓ o} %+/4C9=yBF;KqOtS-WZb^beimqNuLxz|x|{*zxuroXmjh0fc1aw^i[6XTQNMKMHvEB?g=;8x6`4k20.G-+*[)0(,'I&~%$$#^#%# # ##0#E#a#r####$[$$ %t%% &f&&''((H))))b)('}&%%$%&(*,/0122D2100/4//...I.-~,-+)'!&E$G"? &  s 2AK\D.|3$'aȳbť)4 ߛcЖ5A㌹-ƃlQMTj‡#- 1C:ɛ㴿)Uͳ uӋ>[eّ3Q#1H}  6(Hm!V#$($0$$K&P)-v4m<#EMT-Z8]][kX0T5PMLcN;RXF_Bgnjuz|}}zx2urpooopsq rQrr[qUp(omIljiYgeca)`{^\ZFXTPK9F@*<86R6A78:o:J96I2-q'"Qfy P!`vۈ9zs&XP<ܙ@;>S  /VJ!¶E0wĠ~hK]cͮөeF򏇐쐎?xyXK^޼) c$(n+[-.8/L//..,*n(X%!fm^,B}8HZ "$%J'),04]8);<,<:62.+r*W*p+G-S/ 12-2o1 0\.,>+*F)(~(T(,('''3'&m&%%%$$#Y#E#i##$l%&'()*+D+S+K+\+++},3--X.\.-,K+3)&}$y" FzT%  E9Өе4(?OI3ĵ-ºvmsWƻ"Тv yt qV0KcFf"u'YGC h O dE - (7*AA~V&7LB81S+1&r##&+2U:CAFI&JOHD;@K;6 30/ 012I45665~4^2'0%., ,s,-03&7v:= @BCDF{G$IKLNuPQR:SxSSSATU_V X"A'+I/ 23321/g.#-0,t+*y)'%"FpQS l E^4njևԆҫЇϛUBێ~hO]j VS( n#%9'(*,-B04g8<ADGIIIIHFC)@m;5(/'e `v#&({(&(#` 1t!pRE R  G(y.B2{@zk?Sw 0~  k Y$f*-.-++(''),/2F569765432Q0<.+i($h 1 5y%gԓҸ@qLjlůĄrǔpϟӺ@Hx!Ik /dA+fuL "#E%t&P''(''#'&@&%&%$# #+"\! CG o)0NĭԺTb񮿫Gdr1/Ϩ+}JaҒJҥX %ЍA+[h$U4bC$Y-t3#7Z8W740-+7+,05<:8-631\0/-,D)$vO 7] ar|}}~`җΑ=Z҃`Ј· S K 7Yc-=xgҖkx+JߌojLw3wHQ8QC(Q C0!%(8,/3578888888.9t999+9876 6 5;4E3#20/c-+)'%$"3 O&(EN Y[&ڥѓbr-˘jձ4hќː(6X[ժfq]_ֿ#’Ļ{ ǞWPɴ`> ѝ]0l8ܵ]8IR G#(-m27>;#?BFH.KLhN`OOhPPQRTVkX2[B^cahd;gi9lPn$pqsdu wx'zz{p||9}*}||0{IzUy:xwutrpn&lhifc`x]nZwWT|QHNKGD Ab=951z-?)%!N1k Jq\ \ ӴV9o Q OK(3/ ЏZ1J<ٍ(Kh~u}}?OYU9Ǚ"Ϥ.d݅[F52,ap D$$R`Z!#p%.'(/*+-.(013579t;H=?@BK6i7 h 3,[-NVYނޣ ܥـfB><5Z1ॼqИȘe#Z50q 4if ДwoQ CTSŢɴ}ս؞atJB $O7" &)-0 4>79;<:>?ACDF/IKNQ*TPVWX`X$W$UROLIFUDA?}=j;V9*7420 /X-+{*;)(&'q&%%%%%&&H''()Y*!++,-E../X001;22x344755Q6679889 :::b:98)7L5$3 1/`-,_++'+X+++ ,|,T-.41B47J;|>@AhA?2=a:7n53P3E33?44@5555~5|42 0G,X'!  _6"xRmx l܌Góe㻊}¯(^ӝV0Îx= NfzWE@YbMB04>xί7Qt]/l '> (:19A HL;PQGRQ`QQ-QQ\R&SSSgSRQXPNnMKJ HECiA?<:*853n0}-h*\'u$! ! )dSK&@B$D0EFGGI!JSKLMMOPRHTVWYZ[c\\\E\\[[['[gZYWTQOMLLM]O#QRSSRXQVO"MJImGECA>:V61B- *Y((*s.s38 =?@?=]9>5^1.+r)'%:# ;4]/ k4: AZfiGZo#,ۙ֎^ӓϖLļ4ٶZhtJ6ߪIۥ?ǢfꞄ H+ÚLᛣrcf`Gãy4U l粭7nɇaEA1@eg:  K=!N$&H)+}.Y1476;>_BE5I1LNNQ^S&UVjXY[]u^_`@auaYa`\`___k``abcd.eUeeSdxcba`_^][YW=URnPaNLJHGDSBM?<84[1-*'c$5!>6 V ;A=Ol$l{d9 2urT0 yu2{l9 a K x pd_ [m`AO?g<@ 0], c"Zށto ,¢ҺIN`ÅtU7ժYeoDxHrCi=bt%h3g$ّ&ѮυzˮȕU_eHwûć~Ƙ'ʄ ͦV՚׆vۋݠ7w0-C >#'(,/!37;AAG ORV\bf6i/jjiih0ij=kalVmmnml#l/M) TQ|o~H X Vp~|%Q+g0455T3 0l,L)('v&0'#)+.02I3I321j0D/P.-,a,+x+*&*.)'^&$"o 7<^~: s %R0ܮ8|ՎoRYɒɿѽuTݮzgqߣ%2@q@ǘ*z2čFH@o"`ǕpƘu"4ҤΦը+O*PXZJ8XK΁-ӟՠ܆X b!SX$$*J [ YM!!$n(.,(0:4q8<@EHLBP{SIVX[%]_`abcfefg{hh iii4ioiijpklllqlk*kgjiih1hgfedb_(]~ZWUSQ[PNONNMMfM+MLdLKJIHGFEDCBA@?G=`;896i41S/,*g'$!Wa8 !28yu݌Y]-y[sT/Q=ݧ4|>chARAU4vüj;όІ[P|ՂDV.}DVYD-bB)!U@o*_7;C X=Z{+ i <e #&*,Z/1[344678:<>!AAC,EFHJKNPSVYH\d^_Z``R`_q__^q^] ][OZ_X1VSQ}OZM^KaI@GDtB?<9d6:3,0K-*R( &$!lgj J fCg:-;x[/g`//vVR#U]B. tBk߸ݕ;ٵԝ≠e򿋼^*ڬG˥IR؝ߘ=n3+Y裧Ŧ3jqj 6ÚRyɐʏl.SλuP= d<}b sz80 4xs #&),-./0x0012m469Rw `۪Hӫ)μˢ5Ĝ˂s}ŽܽM7ҽ޺njbU#ăAЯݓJ1)PQm3~~ (ZD P!! B\N" W i s'lR]YMܓDY x 08 0 W x + !B 9 @=0B3C:4#qaڷS "-&t ) ] O,#.SK :#oS2- kC VO?,C08Qm3'FQSv%"N O~}#q'A+ /26:}=@RDG2KNR#V+Y[]^^*^0]\ZYCYYXXXzXwWUSPaMIEbA<'83-(=# gh x j ND9\iY0a=]Nڹ26A:TUX ; Aj'9wR" F7$@?XxѨƁ;v :yXМ֜-ŝCRuN3m.a`оˢϤھ{Dfc +U  "%$((*+,-4-9-G--./1~23g44]56 78:=>>M=9*4-v%>_!#$#!Yz($E,rw,A@H?F!33+ . - E c _J^ 4gW8 !FfjGN ;  k  ?sc^fvvO AO. =!f"#$%&u' (((r))*%++4,,,,,o,(,+++P+!+***)(((V't&%$#"!%!K ko?o`S@ 'dJ=3uG$0X߅ݢۛt՜ЀźáQ)tD¨@V?óV R§د۾x z4# IG!'-3:/@)FK]QV \`~eim qs4vxy`zz5{Q{C{{zzz4zyyxxvousTqntljgQec`]1Z6VQ MYHD{@9=:62-': 0My/B5-l\߃XLPG=Mџ)̺˴#Ȃhȿɭʸ˵̵ͻ-шԼզ׫qY1]1MbnP M ! j'K "% )m,/z3'7;>BFJNRUWiZ\^w`Bbcd5eehd cUa_]m\ZqYWUSFPWMJGECAz>':4R-$; Tr(ߒ J3К˔ORƪTw+_ӓ–*i٣ҦϩkaO5ؕ͠[Cޟ4txB> few5Ic7vq%MH΁ȱ- 8(y 9DŽ3 G`ƷLgEӼSںZ^ w \!&)+N,N,++,,5./2356777643211070//p/.-."-+o*(f'&%$n#""!/d"(NA  [ ds  } /Pt2<L!c"""Z""!!X" ##$%&R'''S'&%$#"!s V>V3o  e_h=V}8wJѳ|͋͡BXeΡPbјha_=UEFBWZ /t?S-&b Ws! 5\WpD B K  L J HYM z&-5=KEL:QTVUVUKUTTTTTmSQONLLNPRTUTR-OK GCEA?????= <9j775U310|/{.v-r,b+S*#)'&#G!5 ~~|c / bxRD*KUXd @s`8g`Xnc'I5p[ޛݰܔu;d֨ԗ*f̓ʹ™ټ*==KrɯVƪIæS 򝗝ǝX~ʞxϠͥU+nLTbFMSW{Z[L\\q]_jaZdgjmnoptqErestvAxyzzSz$y\w4uromXjgda^[W.TUP}LHDA>,< :986430.+)&E# (fEHL } ~ AJPE ?&3yD' ^ 7^6]SS \#QN>21v\z.5a/2S=ۺi#ӯָنܞޣ[߷ڄД̟Cpäm.$iӵRkk걭9f5ɲ;űӴfƬ&sH#hRشdK.LKL P7K{!#%`'(!*+- /L1369HFwECA?t=: 805a2/'-*(&$ #D!mZpd3 :S :T7 jAަڙk^G$,ȀlIŖ7`Q.AO B.&s| #Y)-0110//15:MAGMReUKVUSQsPO8PQWSTUT9RMHB=:,8l8:y>CGKNPQ RQQVPONN-M&LJ{I HFEmCA@"?=t<;}9{752.*&"+= we" w:EߢNԅѿ̎.©r!t,,Ǻȼb ź(X1U 0$+⼦ƴ8y˅S͙D Kӊ.}"،%ѕΠˆɮ3˼н ֌bz+7Yvރ߹S9OJ2+2Biw>$1[iZH[Z > D  2O"*2:6AFHIGECA@'AC;F4JQNQTBVVV\VUUUVUUVV W2WWVUTTRQ8PNMxKJHEHH5HHIJK;MN@PRkT>WdZ]`ce1fPec{_"[MVQM%KIHHHoHGOFuD*B?=:85 3j0-.+(&$# ! uRsD}$iεɠE'2ָQZܴҴ״״дc?0Csᴄela>l=*KmpebϬ-jVp<ߣʣ>#A򪺬yG'7(DW(ņǡɤ͏Ԡ2`X6iRD HM!&*-03C68:<0>?ABDGJNRVY\y^__V_^]P]\\2]]q^A__````_^w][-ZgXVT9SQO@N^LJmGOD@= 940[- *'m$!`O &@yyh?H&KMtȶEQHt#Ҥg]ߨت5᭴l;1u!PZͻ1I&y5 +?%$*,'+;(`$ W"(~0;9AIO'TV0XYYZ[M\}\g[XT(NGMA<88:B>CHLNLH@7,.w%8/9BM8d#5**0A4S52-$ua % zGf +52G| g 0 E B u N Wo,z/*I)H]'ނ"y׿A=USͬ&ζTϫ_"Qجژܛބ> 9jh5 rS 5$'*3-.//.,N)$  Oys1;SYag٩'\y˾_}&o8V&9غxO͸к~K%> aL 7 $)k.25589l;@%BfDFHsJKLLLLLK KtJJII_I/IH3HNG9FDC,A?ŦÙwjҲּʵyՏ;ӄD prsu(tO!K4>T $,4;>?=8$3L-(o&g',3>HR|Z^_m\VOHdDBtDHNUx[}_`_\4XRMFl@9}2i+/% k"&,14x53-1'&/ _ R})oAzە2!}J0jQ@QDGKOlSVYv\^ `aaubb>ccccc)c+b`^\sZTX[VTSQPON LI GDoB@e?><6:6,2^,%qP?T^ t zRmQr; 9m_kkI+p\wΧrxbɳNqߺ޲_ӳ><$KeX1գKAֵظ޸rw*PyP n93'_`$,]5=DkIK]KnIFpC@>v=<}<;;97 6H42 2112j3~4567;8888J8765432M211G100/|-S+(I%!  g3!Vs˨8ǪK +6B;WƓ>Zt)D홁Wܘ@V Xe3(e͓.׊۾ @M P$+169:/9c50*1�$&+05{9::673.+('&&K'o''\&R%G$#;##;$N%&')**+,q,,--,../01314X5^6[798993::;o;;X<==>?ABmDFIMPTX;\"_aabaUaaSab]cdDf`gggfeGdba_;^\ [$YVuTQN/LI;GDB@=:74l0,*'8&$#  &4~PFPHvnu:FG Ȳȳse<ٶƳy9ڦw `%g#\cveDiԎhʵ|б߯V/(3|խ,L)M #D)4.;2s57999\9/86A3/,6($"W"A#_%(*++)p$ G zxx Y | # .uT;  C ujAE D: R]J fDk#'+)^'7#QA=J$R(8+,K-,R,+**a)((C)*,/1s3-3x0*=#P t3CQD2n\w} -#Dþ¼gyйK㸬V年λK#{ƱEaK՛ݬ+x|2#0i M#)@-//5.A+'$-!L e#&*-//.,($ In@o4d Z 7 Y X 3 /NHX@P71, Y6vW qE9NtnbP)Z.4'giOkG CDއغ[Մ ӻӡӃRӓҴът<޿[~4+vxm\* vb|'L"%)-1t5=9<<@vCFIL?PdSVY\_bGd5fg)iQjPklll2m3mllcllk kjihIgPeb\_g[WqRMI F$C@ ?p=;9h7411-*&U#*  Y{.plZҠ ɦǵYŜıäj$νֵإѣ+§ŦO>$ucРˤ *Hg z LqĖƨWӘZگI [m rfSh Nx"')*Z*y)(J((*-26;>ACDJEEEFGLIJLMgNNXNMdMLKKIwHFEDDD_EEDB>D9c2*9$I%$:y?ܙݛ1(m[:R 4 v >:uE-LݕۡQ z -@( &q|$ ^)B  Ab!#8&(Y+-/012F3345"78:\;e<<<+<:851n-N("ym q0KZI \tY ދ}B*҅aўi{cr3#Mߊ1"a}"&Sy V Wd D ~ & p nL@7,JR!$9&8()+,,-9..A///////.1.-^-,+*2)j'%#r"!F!A!+! he/)'߶tmӫ%̦;v*b 絺BgY8KӢ S[<'}Õk*us>έұ;Blm P ft!#$%g&&:&%$d$##2#""!,!> 1*4$gTPT /RfiҞI^I ŦŊj!ȩ*ɯ=<΋7҅T <ޒ klj q'-02,321112C4M68:BE>7>=Y=>Z??y@@HAyAAuAOA A@#@??G>i=`<#;97531x<=<=A&GMTU\bgkvn pppopn\lifc`7^q\~[I[[[\[XLUsPJfDm>}953Q3t33h31.l*$ha e*#^^p{ݶ,fԭ5=TG D޵eVx5 FWN)81߈ޱ܍ۖ=оxLŔŸƟhYoɤ*jFҮԝָ4ݓ,] 9X Em"'>++/26n:=AEHLdOR~U+XZ\_Nacfh^kmoqqqhpnxl(j h_fVedUdc.bV_ZSKTC;4O/;--03479/9)60)!  t %k  (`  Y8b>g>يdkȦԚۖڰؼ/Ҧʛtʃ̟mӆt.ߍYjsg S@!""!S / 516r UW>([3)1ы΃q2\A3ߙ[_Xtw ~rrfu4ܪHٓ5gؘ W٥ڣAۭ܇u~ߡ9!Q5H/s*6 &7D!&*'.14|677q765D5445Q5h5'543c21/.(.-i-'-,+*(:&#x|le m[?;4 5m՛kЛώ<ЃԷCYںbS_$6w@$+ /^!2"M#X$K%&&j''''6'&% %x$#L#"6"! A;:ZqZ p A "\q>'mqa3SH L-,V[ NY%4b&GkE[ I7+ %*e059<]=6@C EFH2JKLMNkOPP Q\Q|QWQP3POMKIG;8e63{0-b)b%!im x_>-IaioL8ڒ,*Ӝѓ.!\Ӥ֓?6ۧ݋UQLga \m yT#(y++r*o'#+g [b+Tl{:n71^40Z[2 0D11J2o2[2221;10/E/.-e-,p,,+**('%X#w "Q kGn܄׽22"ݤfئU+7~iM Βo`7|hK[6F % TpyT=aZ4kLwMU3_ %~ ?VY x/.-tw?)`ؓ،`׉֥Ԕԏg "\TFj 6_"~&),/135[78:3;;L<<;:l986(532`1A09/=.i-,++9*5)'d&$"h P[% Kdh/elכ|˰jDƜú迴 ’õe}2ĆɄ2aפز JK1}Z_? !"###"!i.9~L! #$&L'I(.)**+,-x.(////P/. .J-,+&+u*)((7';&"%#"=!  3cd ApJ5T~0/]$[$ܗ٘@Ӝ ""1\ƪZrzە͕DKژ`\פ+U]pI@Ȳφ"ّaZjg;?Z)!qI ,#'),048< @>CQF\IiL{ORUXu[]"`2bde=ghijklXltllllAl/kDi-fav\VPKG EDGDD|E$EnC@;5^.;' t|. FOq!]`={]g$15_F*xG3nFE|J@Hkm,P!"%z')J,.024Z6789U::G;;;F<<<g$fd(cVa]_5]ZeXUSQNfLJGWEBG@=:685 30.,*-)'%#!\E Ck+)1lȇc¥euY^`hH,ùDM"7ͭz_3`J i9!l#%|'d)=+-./01W222o22110/f/.?.-,,'+*(,'`%G# ,q h:Ih?;KJ4{Iۯd'ןդл?3/ŐĴţLr4N)h ݀\S BeL JP1B_{wkZG %:z t kN VW$E q &  # V {/ X aMtv!W@IzJI#ق)fۿAܣt)a@k DT l  Dr+IA2-D )"/$&/),O/2 69#P I h/Zfِկ|MQŲJ$ͶʶlWs jE@_BDcEFGeH"IIKJJJJwJIPHFDaBT@>L=s< <;<$<;;:9,86'53820V/-+*'%#!eQbwZ e >;84@1-*&k#f W[W ;0Q L{:axtpEM+${ ?K!U$''*,j/1457&9:;=>>d???Z??>>>x>s>W>#>=B=<;:z928654s20/6-J+P)D'D%5#5!%p+  Hg۝ϲq'JyŰnjJt-o&xb'i6a b_ݻ:Ȭ;ң>]U=.-_ b^z"Q'+/R36m9=<>ADFI[KMzOFQRT&UVVW;t963r0-)f&#'s  , 2SpٰЄX3(Ȉ†KG`hٺ ٺ7Ĺֹ8g|”á_-Nöuv:ɗhK8#uQ۩އ=FSnS? $M o#%2(q*w,.G/00 11z23]57899S9O88766`8 ;>BGJuMOOlP7QQ.ST0WYJ\^`SbZccdcb`]WZLVQMJsH3GFF?G!GSFD;B8?;863k1/-+)T&L#JI cuNёzÊ) ޴ŷ2i۽Hitrz!/ӹՈb5kRv;8tMN@HaD^|zswڙ,ծӅwъп z͈O;Ḿ@ε5ϵF{3*T֣kQh[%w4!*ek_Au ="&*.q269ܡe-EkAo4 0x@ "f%0(G+b.1333V0+%g h ) P $  6 V 3M. m v ( H P(Pzb(0-ݨ{p"gQr\ | +fE'{#PMp!(Jdk@-+s2CVgQ x m 2 iB!$jo=-C%s P | y 5 ) yVQj=AF:(h;.ZA* d|niNt BX +mU.~+ ~l=VC p _3LCA"f&*.27%;?BNF3I|K@MNOTPQR/SuTUTWXsYYZYŎ7!"z nMh/ӫV˺=̷ 6߲U/mH>5: P E x H >]NwWT? 9A 2y<R3օX͆ɹřܷ'e<ȧkI|>N,V}ݾŦȊ̚rނ(7 |97 #['*-0?35o8;>BFJM/ONLHC9=6x13-L*(()*++,<--S../;0112d44628=:;<<1;83.(#\9Sm>asG,Fpyn 955?a  \  HH"4hsA #"EUFm /S6_/h{R *owc f 3JQ<:ZOEwrя./m@ݔkfA\ַiק޻ G g!4$P&'((L(1'% $n" YXF- dH1!ލހދ޳ߎ@ (?JD)?HP t Ta3X!`#2%&(-*+-h./0E11)2^2U2F2#21100.-*L(i%d"N]D"Ia6'&  - 7S Re %ڸKRyԽ.;(JzԴy\7 ngjnrDMGS=3 X f}d !"$'a*]-0 47g<{AGLR[V3YHZeYV?SUOKH/GFGHMIoJ4KKK KJIHGHFECB3BAFA@?>;B8R4/+U'# #vM `8G5 =R;;γ͎ͳ kΨ΋ Ͷɵ4ń¾KQ9cاwd٣=GápPƨ-*'gQ"!E^:ѥӓ Ouc2 u '..246X89 ;l

A%DtGJMTPQRRQP0MIME[@:50F,(% $"4"!M! 9S}RWElSdM d 9xZJqecߩ ܡڏH'؇YWJ" Y 6 c v ;l){> !5#$&U'=(( ))(C('%'&E&%%]%%%$$r$/$###n"d! ? aUb  dHf pޥݞR!N۟ܖ|ޒ<`&$Y{"7 m_P.Vj3b : NM9sd3 * j q?ep|oS)L/Y9 9 @V3}("~3_ݻT!oɽB2䮁~Sݵ޷6R;<Ȍ?Ӹq# U\ L$m')/,./135+8:,=?dBDpGIxLNPRS.SRkQO$N~LKJ>IHFHGcGFE4E`DyCqBNA?r><&;987765=4 2.'+&:"|22T 0 #V P0Sپ}ւ GLєͿy"ǷLܿO@X'Hb;Ƭh)G9Ӵm&ݹ~tȬaH_ӂ֓Uޭ?/%s2 $*0#5Z8:E<=K?eACFJFMPVRSxTwTSQOKGC>8H40,)'&%:$y#"!. '| iS %. g AUlHW *a6>'۸ٰm,%Zץsjݾbe ncl81 g MKO u"#%&%())))w)(j('g'&&U&&%%d%0%$$H$##" xSt )qL3,Ly7"ۥpzڥ7 [WhARvm ) % ' 0O|R ` _)\U1 @  k SvLWx 'f R [v\6#VeV,6xQnESԃOČ T5̼J̻ E S 릜Hkޮ%t䶘b<"N˺~ҍD_ @ Z p%)&-)02$5H7G9Z;=?AODFHOJKL:MfMPM MLILK{KKJ=JIHGFCEC&B@?=k@AC DEEG^HIpKM{NcOO^OINXLIFuC3@=A:75j3?1.',($~  N ISIt5&{bٞ|ل٭/ڏ=Mݱ'd  'KkWYhstR (!! $ WoMn{ 7 CM!q`BIi <!g$5n-XH" nݏPPrܱEݥ޲nA4C@"RI;H f'vrg"2s*nSKo.^x b - p'O3Q :"#M%&([)*+X-.i0235K6777:7w6{5\4F3,211F0d/i.H-,*(;'%$"7!=* /g_ 7 4D`/U@!M"5܇+EהոӬx;g#ľ WPuɢ@͸'ЭgJ]הQޜo9&]h e{Y0% 796g@N ,zj[E߆ݳaՠԅԡգvֆײ$ڻySV|}98i7s pO. #',]048?<9?ACDEFGHI%KL`NOQRT!U VVWRXX7YBYXWV)USNRwQ@QQRSUUUTRO0LGCC>:h50a,'u#!<w ) }1X  J5wJD|)xe[ru@w;De M}2%3s p0^HZ`GޢۚأբҜnɅܹ8$U>sըϩǪv:|%ܯγ !$ p0ۼT+T}ń'ƽǪȄKEˠ 2~!PO[ܮbmۺ#܀ܱܽܽx+(hPmH;V} $Eq N"$%'()j*e+&,,Q-..c0L24?7: =?BEIGNI'KLNPQS8T9U VVV#WOWpWyWWeWW^VPUScRPNaMLJOIGEB?;73/,)'%`$"  R N z (~ps=uܩ^e˺˾̣τeyn3cMGܻ>ݦކߑSrQ?PnFAvKF9 W 5G'm )FO (!! #e$%<'q(t)5**+-+ ++*~**)N)(M(''n&%$)$K#\"?!O5zR gk;d vm۞O՚\28hǪuĞ[- $]Ķ4ůƅuX3ʮmUx % ؤu] Fq\qc8}9 ,)w?VL:  ? #%"&A%7# Qk. u$9)&.2D7(;^>@:BBBUBA@'@??@?3?=;730,*)w*,/)36:=?"AAAA?@6?)>-=EN;QhSTUU@UTSSRPEOyMMKHFDBAAABDbE|FrG#HHIJIIIIImI IHG4GFEDC^B@>U<9774 2/g-!+(f&# _h  /[3.rNl6ݣxr=sԿ#ջc]ʶ6QwQNlqJ%5u纓Vǿ=GؿH e8s#SQWn4? * $t6J/{P ;EעMex2F4}a3B!FK yN!$.&I(@*/,-/1#34'6789;&<"=>>?'@@@ AAA@s@ @??>=M=<;:98w7J6532+1/.D,*(3'%$#T#"%"C!  pGA!|"QYO hDI.~i | yzpiemv@ufLfm T I 0JWJ5f3`&e84=[# yF   |bx, v p hTyEQY8fި^͹0ȽpF((6tзW/c+ɹ6zѾ3Á ɦIgGsԹ$ݏ]`l^9%?=H#YDi{ { 7"U[ /#&(b+-K/0"1=10{0/ /\.-3-,,p+*)(( '&.%S$#""!! K a*o'H (IF< )a\x !! n !"-$%;'(D*+-s./183579;<>@EA-BBACkC\C.CBB%BAAZ@u?d>(=;I:8754y20j/-+*'%Z# : tl 8 3Bw^mu@oՒIJ̏*QHUy谍yʭfM_rPPz cx-ƸDHྚrW\`~ʴ'EG,ٕLܠIe6n / _|ck|[U!"J$K%&&w''(()***8+M+L++*Y*)*)h('&%$#"L!rnl;_J g7@Owx%C:ީ4نmִׄ |ԑ)ҌqvM ׇ-h?ޣd6bP7:P)x.f;  )+)ZF :"#n%)'(*,`-k.>//0124579;=%?#@@A2AMA_AAAA BBBAAmAA@?=?]>_=F<;9876543G20.$-A+W)'%@$"s! (md   I*IhU .XF7pT1BJ425y׶rͰžP=yc?Eɐ$oз2ΙQːʑZSk7׾\ۿ]J ?nmEg&^JWs!NIqV% k (xPX K"#?%&(B)Q*.++d,,-@-X-\-M-#-,f,+"+h*)(3('&&%#"!4/7 -' , L q  MVGQ7w16^0{Viw=b0(al=߼Oݤ݈_= 6ݕLV߬=>NT JH3%'_-tB1 V{|IL !"#$%&'(y)[*++,D,),+~+*j*).)t('&%$}#4" |X)Ed ` ;g0nx!yG s֋-0]шЉR̍-Ȼ(hô¯ymfqŲƦD˓qyԳVؕ0ܾ;߯"{|MUN}~ v Mq" < l"$&u(!*+!-.01T3568C:;=I>n?@ACDEhGHIeJJJJJxJTJ7JJIIIHGGZFE E]DCBA@?B><;~:D986:532j0.s-,,+*('&k%#h" +m;2x ^ I)f84Tu]Nݖ,=L`w̢ MŔ^9 1~D򴽵&Ʒcɹ[qvʦ-ΎЕ^Vg\*]7&:KRiJi 1@2]$ , 1 1 + '-T7i/LKm i!!|"=#1$%''K)+.1448G; >@B>DrE^FGG$HH)II4JJKBKKK#KJYJIHGFEDMCA@*?=O X>bxR004IoTX D]}dNj}E# $ 4 z6K6Az~{&- !!m"*##$J%%%%%3%$$$$$Z%%%%%e%$$p$$$L%%& &%$#N" I5$Z !"#$0%j%%%%%L&&'2(((8(C'%H$y" ^TXoc w W9ce'f8~ؠ9eL4ɽ0_4Ʒ"YȽtwJi!Ҹ|*෮rnwַChܽ;KÎ%Ǫ"xlQշפَL XމގސggZL8 R2]rq&>* i 2" a  P B!"$&)I,J/v259c`oK/rhzz߃ޑݶ hڼ}v֩X,A}A׿HBٗٵٞT_׍k׎מ_1ڐXܕKj9,9Tv6k<%H ,uQr ,#3%&'#(n((b)a*+-n/\1634N6789=;<>?ATBCuD3EEEFFEE5ED(DyCBA@?>J=;O:8 7[531*0u.,*?)k'%#!Y#<6 k X>}߼?יҫP$q¿l|EnY6>Eƿɘ̈ϑ?܋HItPi ? wr_PNnrjnwwZ gVfq | o c "~25Y*,&WsCrZ~{$EI{ _`(% Ja" %')[,.1=3<578:,;#<<=>v>>>>>}>=L=s<;:d98865Q42S1/(.s,*(&$" pK>'9 u |Q.=ciEJiܯ{ ֲ^' Aϗ%ͿMΘmϟkOOSiՆ֥׺ ]ܽKP]aEALYg8^Q "%&B(()))))*p**j++C,d,5,+ +1*<)F(_'|&%$f#" f3[  .->EsrX20S0dݳjFVخF*>uןקx)y$Kͯ/̪+ˠ-ʹb"4tIʃM44B]ЅѮ:~?^ sFkA fr=I{  (% #&V)+-&02P5'8:=?ABBBBsB%BAA2A@?J?>*>===<;b9E6]2.)$&'#!Jjz6xLi 5w;CH@ ޳)݊ۚې&ߟTab!=_$n]RFxH.j%wk@/<ui a:vAo !"j#$$%g%%%%M%$#"g!iE^:G/r@|c+<wW~bEUu 3 ~ m @ w", @%+b%@Jܿݺܽ%8Oֿ]`ӞӌfҾ3ИЇЗЯ\e7 3Ajבس,t2>h+;Y{~H*~n 9 O g 6 2 a  $ u!i[auGX  q O%hVNSi6^z !"#$%&'()*L++u,,,,,,r,,,a-+./01123D3e3c3h3l33334:4=443>3210/.-,+*)(~',&$ #t!D)g ? ~ VK qVހBJ؆ҕϖ!ʌɇȯaBŬ`ù*±jGASf5¼}lĆŐwI.ǨDZ V(0)ӰӨ3ӫ5tҀԨ:[i׀ٴk:(*Sޘ4dA*~w$v $!#*%&&}'I(+)**+,,j,,,,--...'/&/.`.-,,5+k*)) **+ -/2$6'9_;x<`<';96W4211b23656V77V76W542J1/.-Z,"+)('&X%,$"1!8NBL cVHm#Q"_2Lkג4 _ͱPէXs7R"l\hyDThFd7y$߄C Oߔ=)_ry g ! "y""#:$%&&'(<(!('B'&&~%$$7##" IA>S z 9   "+5phs$ }I ~A$#"^"!!e 'ZmA v U  l;  hiP:9߳Zo4#Atܨ#6AXh݈ݔݮݰݻݪݒb,ܕ:{ۑ k3a֝>ԲSҮқyCҮ\чIXӲ7/Y8۸ۗۏ۶ ܇+ݕK߁xA_@*/3 X 5 T*g!#%(F*,.d13X68:< >>>G>)=;@:9/88j8t9:;<}=b>>>>=f=<<<<=r==S>>>>=<:}852/--J+ *h)6)9)+)((&%#V" m*`EOlkZ W w  d6 `N7kJW-re9t4U6xZ4')Eku$` e<@b^T?kbzri 2dvn' >]s]PJZ:g|fE"d5ۥڬF0MA ؘԣ;_|%ʲʃ4ɅmɱgʝY{(( ڢi۔ܓއo7W9W9 LA5 j6q1oG !!![""6##G$$%}&R'((z) **++,,,F-f-9-,#,=+8*)'&!&}%'%!%%O&u'(*,`./W1522221/.-y,+*))L(c'O&%#! f = 'nV d {  F : >  |f95f6rs1Fv*9/k98;P NP05|pTZ^:m2ݎ)xj .[BZD BWKr3 H EVo~aI !#n%`'q)n+T-.D0L122`3445 748Z9`:1;; >bj Hޓ[(q|k/.U ~ke`p`8J9 , o 8OV88h% "$&B()+Y-*/1245-7 888 9;9M9P9@998-8Z7S60532$1/ .A,G*$(%^# j F/% ! 7 P K F& {\?! "Jr3y$`ew$_FB?Ni& PJM =EH~!:޺އS&ݿݿBީ3߅EMd>+ )6FWm@nY2l$ 9 _M /"#w%&\()*+,G--.*//0p00000f00/0/.-1-s,+**J)i(d'K& %#:" #Ij/ ( l.SFg L13q{{besA-bSL0?n+xXHP`4tHo/6WsB" UkR1yH +A;%;]2Pt(n; " T k n mgu&= B1b8vUr^b|WYfe (7.7Xd" _ & q Z I%jw  H q j   8 . x ( I T U O M L S [ ^ W H   ] D %9>G5 >( *uf1Tޏ[CEgT)/l7Iuv\-E(bA  :R8Lm9~*/7+qi0Rqy6^W:;@dQij:ZbM w z Z  H]0zHQ{.Sv  #7=DCIVpi78N% < 5ߜ&ݗ܇YF؇YITtثVٻ2ڸAiݤCޤh:mG, D%B2Q+XcGG nz v |=$0hjd R7YD 6 1{(xF[z $5=/TiH n#%')*0+'+*)('&%$#5#"!V! U {kJ"$06Y5mQ0s $ ( @Z' *t=fl+Q }A;ZHKc)e4Cߛ'ݟڋ׷~qyҤ1З ϷΒλ!3gt^t׭Kب,هV59\f h3,:SuCg~eh{$K 0xR"  # ^ cR x!/""#)$$9%%&f&&&&'''&&&g&%%$*$\#"! $'   P p ' Gu\/V6ocs,sz-F8`5H&N  * c hIOKy   = 7 % s #L4_U  ' G>,e"yP|1Hzv.g#:c!o.y5{@eah1g)f]QcQ`VGrBxdusZ_ ) wD|T&A>ur_>>VB 5  ~Ag'k}F[q4 l=oz'EEd $,LqQGNJ| 4Ul0{ t   B "v(^?ikdSLRq:2(eS&\j-BR+Rw1e K _ Z  umYOJwOU_yS%]BqC!%?pެ;܎\u&Xٰ$ڪ8ۂ2ݜ]xvu>g=>m=l D   pWSary["L u(t5$"m9b z ~  %Y**%|>k+rWM`LPBfq,tI+!&6Lma~b{"9w.3cuq k l r t  L.mv^G: 9!3"###$$$$K$#J#"""""b##H$$%[%%%%%%%%N%%$$*$#G#""W! X$ S (Y4vklt c`rP)ݕ+۵R yӭӜqQ.&JӖjԉ"ַC;ز0sJGsݬM\5rl!n^ , dwA#SY/#-$] i5 IqhF@ \ C50:X{q62vW,1N@ G?^j3TfaM#Cf J F } 5o0<?{,9+z+/ $=)mVs7P{ i  _ d E^caQ? Q  @ 6  L'4h"l4hj9'3\RG3JP/NmB+h" 2 $ > H GxS'  L } a ,  )$-W<?Patws`>e2-a}/?!x LhEwHJr.6rH)|1߰߃^TXoߛ]pt_PKbP)/O-~4Mz(} V Xd>Nl >D$3z@P-* j(7~=d8<@2KQ z:Nl_NR C c %2KrO&v ] = [ :#Tw?\jm\5,y?Z}^mH/)7^ٔlֵydTUXbef_]X]q֝GeZޛ.h^E=ekZH$%d(`3 d  _  Z  -\WI 4  F ] [>=(LcW_~F2Aj]=**9OlPs R 2 2+ = Bo3 ] k ; Q R  @  < Cs ! k + UKyw9t\ 4}3X }  J @m~qj\54a6[ R= [  c  l    vQn&P9r7 wI~3j6j+C-3S+YG  ^StW6/>m+y1KIQPQ2X^Dj1ma 7 { $ GT\G/6KaTi"n4!Wz.z}uE%W~@Fe] E[|6G D ; 6 0 2*>aW-&`_d(S{=2^5 6 r {p7\FLpxmxy[K!q5^kKB72`[p#v$Pj'42''iC';$/Cd).u))xB;9a-y5i|%}Vfo =Q[8U9)O"N@> \}6E|df|8sa r  V 8"@h ( h?lq@y5[sP@i Y  P NzeBJi$pr_: _/ 0}L*&0U:+s1 F;\}+pkHENFF?`=# A 8=?@81;M@'\cWHF{ B S N(0^[?1 K@`O]S\!8^[4dA\ ?9.qO)0>t%r?Z6>}no{ %HgvqYE D d , GM=MTnH\ZA%k ]/H*MTR 2]9Oo)e~`_O~#x_ WzU(|0U:=Gqw)S#f+VhBQbq r N em!dE K+z;W[5iS.,[&WQ/^{_  c=jx%$[h b]Z?GX8G*-G;+P44qT;j5Hp#$_K nn% g M OpMg'9O/\ ; q 'H{`XqeS=.=r?pA+'#o0I(AdqBkE+f U5W}CIvok^@kx-;-x1=IRUlO~,q:*[,L `p2 uYLr%   $# vU1cX;v<Go$= W w = e]%CSv>wuke v7Y*vgLC+O&t)TW%iO@Ho$YP)Qydj2.b,E_  , 4 < =5% v"n6agWPR\`\N0m1c ~  /idki_K0(l anNerz}pM{?`&X3  (a zCsaKHCMXhqx8]m=_E[LEw 0pEy6R  _ $ ^(l,RBufI"5m8@=3{-Z} `[ D";&0*" Fc9 X9(n2i2.bQl00Kv \QF r+9Saj9g\cY,"ebi5dYgL!"bMyvQ Ms.Sm0qSM.)x)v ?qM1%0C]~"VwUq\ OodG8VWA'   R U9/&Ywv[.lO^G`CV #?IG)x-OV{%sMbBK+:S]a]SNKLNNL2(DL M C  m   m  = 6 !Ui;,INHJjiI,w%O &+#xp `F#N3]rh^Yk  l & 32kS%^0O:0$n7A~ha|& 'vAj+16KZ1 oSp@FAeD"IF c  Q : q p n d b G 4  ' s [ 3pk>|b> k l <  q_G|>QY!-6iP9'.Qbz<}nplqthbG*{g`_tHpSQHON@7YN |-EXgu* C _ m d AxCEh*#& k.::;3,F| 8u U x f ` q @L1%z l1cXHUnfg!jnXt 4O6 %,Ux i'iFCIuR>xHg29Y(^&U ( Y L  A d 0{B.+!l_=;s \x$_z}j5 @n " _ $Ny":Z4*8.O-AqwuG=*Mv7Pm}~skaa`dox7c;{6k6qae{iYJn*{4 ;J(^B2# )-'g+@~&}?   2  [ xj9pZdPi(scK9 i*tF0+=a8s(2 g ^5_ dP 2 e!{zDfly/lUW4 8 V F g K V  ^ Z L]mO=krG-fjtoKv//k=;k )\1<?4P.@C"R38G5zgk h Jd]r'w'v}WSp8:!U~v"M^sVun+A6{J84@IXWWG=+!%6Tv.:BKR^lxtbOC:486FFYXdgjnw|.Rv>lA= z-[gZD'B~+eP}? X i  A} ){C++>PU>i`/ SUvONw";\LJv6{A d> X,aGO :^  '-" T,q[F{V+s%2vy6Ag6:c1a LQi-1*/0|MUx!Sm0z~4Li@M Y( FL49Q'5&;,1z)E  w Z 8  pX3OT&I]g> . 3 F b #S?}yAs5g o$B l  * z  d2Lh,r0sK u.4]QTm\M?<7'{G4/8YUo4Bi/eBA&r#d'Gv/ca"l1|G`0e C ]U?5=Y8JV3-Ir,`VD,]#gU9f p J 3 u  #   Y ( e  P a U@Aky3"lN>iQb>15^ S= 3HP-nK/Mye#^:b@YZ(fvVzpefv^#C \r8W@9CTvCp#@fFj[Q8g?0 | - X s 2 /  Y r aN_]}sT=GjejuTri8a%VHzE6k6 ~\: M}>f)a)lK@5:F]w)L{UL{Ny? |stxwlS&A.@Q' m - ~ 9   ~ t[*\;S`d]R6T#dz(0 F F 5 n O .?"=3|/C6wU:4,{$v#S]6=Wu|}!_ $8Ss0Nn-kB^?J n-0"x^8x5jV.Nd(L[cS:SnH"T|O"oD}Ua9 uT>%&9HOPI;*tcL3a=b3Z_L W} k%  ^*oK,'\3MeO|+*b@OL 0eLLm * U  1 d  ; f  > D LS t / e U M N T ^ h r t w m f U @ ) v N  b ( \  Y5vNr0Pq }O.rN#5hhtTxG+X3Vw7j5uF<2 q,sSs9mSri !"'$z,u. \  % 7 R S b R O 9 # } m T 0  v?h#=GADYYO ~8w^[R__w(zW_H5p.|8J omFm(~#Y7Qi|-^i2iDBwSn^<hA74Kh 1Ts~ziR5xgG0m; n:l7c)~< XS$sGeI.!  ->Lbs">_vq];$u`VE=51.15:FM\iu Cd)Kv$V:{#][+n,bN}3a-O[d\en'H w n k y d =  ~IF_ lv$u_0dB,w&i?.O QnR=+KsA.GVhB}$c5zZ;)0=Q g^SXZ&b'RqJ ? E Q z c J  7 = u P ' a * y<y;dqW:~#tr%M^1n1:]o%c\?GNvbQO[o-iVyCgHm$i6DeH{=[0lP~M!mH+ zmebir7\Bn5] Fx-j 1Vl`# 2W}sV+_hL[W<hQ7) yJ;["bD ti^YQVS_gu !FWv-;H<0=s66(K7MYOC207X'}(i%<_z7U~/g)i;{$Rz#,0-');GU^eilrmn^K/eB:00643-hM&U"Q y6r)<5|o{,'pq,K\08a7Y6a7~#xmfcfer{2Ok'=Vq%W>p5HV^_ZOD92/3ASo,E\p$EeGq/e'_AvAh;[s`?w? qZJ<-!oJuR7xY- rFPb"\`#_KnDzV2vohlw'.6;EUj#@Qt%@h4_/a5i Aw'b"f<f`]!1=EQYl&Y      t\A) LZ)>6x0J^@,pG|[Ne(Cj/i@5)qTD|(@o+I_u&E\ 2QegcS;+ tJu[LRmC(VebJ.<f"5ESdkvv{vtqfgYZMN@A73.($ r\G0kM5j>C{l]>) x\5bC' lUA- &9Hd{7KmDy J,^7  4ga@3&"wne]TOD?0%qdTM<;38@HZbsyysaH*sBc*pP5 mbTOOUct)^P%wC c-Oc}l=x:0X{ 2B\q)[3;?4 zGqaSS^z!^cK:018;KJUKN4,ymx7t'^vC"\CwrJ" |sdaSSKHD;4'+D_tL>l /Uy 1Kg{hG?|qksvvS,8zsyuqcO?' &-7=FJQWbkz'@QdvHx &=DG>6+! )2>LYex )Ba~+3?:83+0<Sz.Sp !)08>EHJE;.ujZK;)fBa.TuBr?e<qXOB><9=7;5<9IIX[\SH603EuT'2Iw"Is6cFg )7CXcw~q[6zcSC+|M'(Mxg*vI!ycF.#8Lfy %@`,\"U>o1@Tiyr^J4lP2q[A/ yp\RE::58992.!!+GcM#Bdz !3IWeqtxvpi]RC8( vm_[PPLNPSXY^]```cfirsz|}}yxprlljjdaVG;"-:P]xzo^Q<& p\F6*[8 nR- sQ9 #;Ke{4PuL|U O7i$mX8ZmtX?r8H j<bB#tfQG93+)!%""#)-.99GHY^p{ (?E[aq| '7R[rv    |ujc[OI:/"{v`YK@5-" }tcZOE:-;X{=i-PnzuheUO=2#{udZL;3 2Me*Z!Jk|kaNB-  vYA%_@d6~Z;~cI4 xpjkgnrx.Vz =qIh9Sk"(<>PTcfw{kU?&zeE,$4AU`q} (4;EDOJTNUWXcev(.,1&# aD2 ~`C$ yqYK2gE.{]='S!Sw$+28>>ECIIOQW`cps}#8=MYdq4In 0AR`ozxgR<  |j[@, mF%sR/ tk^\Y`ft$Ge!).7FOhrlVH73,,./112/2/1133513-'$!0<GRO]T[WUYS\Vc_jlrz{ %+76B>FHNRX[`femmrwuz}~wulkZVE7) zqi_WQE@2*{q_QD1( }ok`UTCD;21$"%!" xdTH?>8A:KIY_it}0Cb}Iq"/CNjt&K{ $1ABHGGHLRYhr+9@NTbht{zvjdUP<:%lV?!nE nS9}wvooklkmjpkomouv ! &%,)/.1/3.0.,*((%'$$(#("#  8ARXYWKA0$!"!sbYD8( }lXI5' ,2>CKPZ]kp{  +3BDVVdfmosppmegZZURVU`fx|r^L3fP:$}wtolecZTJC8,&xkYO<0}snggceacadaf_d\YPH>6,(%$*-:AMZdu8Yr $$.-45695<5=8?BHS\jy ,7JPahry}trf`WKE60 k`RA:&{}stfaTH?2.%%#" !! ##&+,6:CQWht&H_              yrb[M@8% oeVL>5'}wjfYQG=5-%"$$6>Q`r&/EOcp+Fa%B^n~yrmi_`RQICB99524/12.4.2/2/1115232/,& wn`TJ:0# to]ZLC<3,' #*0579=?FLV]js| 0*?7JHSZakt{17IQ]ft{tm_YLE72!{rdWM<3!~lfXLC4)'-9@@ECFEEBA>:80.' {tkk]]ULL>=3,%wtqihe]aUXSNNGFB>=99481817173757698;=:B=DCDHENIRPRZW`_eiqs  ))74BBLPV^ckqx!(.6:DCQNYZ`dhinkskslmlihee]`XTQFD94*# |peZNH:7(& }zvprhldda`Z_U\TZT[V\[_`bbebda_`[]Z]Z^]`bbgclimqrv{| '7=KS\eltzvwlkc_WRLEB75+% }ol_[OKA>76//+*''#&$('/.68=BFIMQUZ]cfnozw!(.4:=EGNRV^]jfrry|urgeYWLG>91)% LISTINFOINAMCutter explosionIARTSven "Yamakuzure" EdenICMTAudacity 2.0.5ICRD2014ICOP1989-2014 PrydeWorXid3 ID3@  aGETPE1Sven "Yamakuzure" EdenTDRC2014TXXXCopyright1989-2014 PrydeWorXTIT2Cutter explosionCOMMAudacity 2.0.5atanks-6.6/sound/13.wav0000644000175000017500000100637012636021030013060 0ustar apoapoRIFF WAVEfmt DXdata 'ASk$=^ c   "v+e,+Y@,/(+6-h(g$o#S9 w)     &~ wGf +o(5pm86g t|8GNi6"CC$ X   &cb$s(!<`!ZW  ]m K  I k A (T%35@bM8_jzzqݗUce_\WޫQzShVx^Pf9m yh~Xne' SCAb2 X%y   f i$ w Y i84A Y 7 mm?<ouK  Qx d Is ; D    u u V 6 # | w% K = LY9 7eD    j  * a  K w  }   C    2  X * w pN GMHp i   # p'(\ +8-- f+61.5T4m20g /b.%k+& $ />   3   { & s P+P5X8*=) ?? ; j : 0]0$"A=fJ  F(Qt*/2{n3 3 /g+ ` &$ ~I  : : -  /  :( S(tE <'c  Z y   /OL7wsҭ_ /ks&F2ڭ:GO\dnlsx}'0~."vOql$1g95=>D=Y940+L# G<8?-h)0;6:\;:\73.$ &7C!-/ )K 9R?%PQ .L \Dj8K*a`  'qn1>?7GެMyRVٲOܹE36!wv Qް;S$m6<gO?/R,X;(7j%}&p+4..'=# P3 h Wv$,4S9;;N904{," !7 D4ikO׶t7˻d$ `# ׋ʨaa  V  eG+ -@U ;m'0_0) q ;X#o35+A!)- * */$jtAZ! (3!o%+&$0 .,.`݇+K)(}o(/R$7'~*+),s/70n=!9-F7[@HOMS[TTSYM<$ ^%e!*4h8 3*?$g#A)3̷ِʤJqV˫Т޲e /4x+{}܈ԧjՠSҼA' }u'P6C HBj8#0,' 0/{A;H=&HD cC'.,!H9FGDKA[80 )f%{俋9ِՙҮۻ/^  󾚳 ԡp3 8 U? )&((&4!BRԾuN* QX'\01'N`]-dd s aw U X D QkG]>3) ! !#Z#! !8#'/59::72.,2*%c   ke"Sy\ % F&3c^>ӉҽJȯOX3Сb֘tofvwރ~IEoy!|d~> zquk"ZrK <#z']K1a /  | 6W5>N4V Yv[\{ZJPE׽՟;+MPBʏ Q 3AN [ e,q 5!z ~Նz~ a )%|}|}YyTDoe=[ݫޙKC!;̧ͺ&oO~ d"6LY flxy z& t#!t"*{.a/.+&{Xo/'-/^.-/1R3}58u9A5//6/=@><";989::98 8M8872=+%;$'H+*$  M  48y)O-  0|  &#j(a) PH&"n! ,  : ^ #Hw Vd dv {tiA^ZSX[vcmp/{G{UjߡVAz/Lnf {oؽm.s>ENH[&c\qz }}&!vN "('~$}""#%%$!w&-o244/k& Eai 'S7AD?I3G&Y8H (&%11%  % &n9&IR1Wcn$ݑwʘʊx{ʆF|ɋԫsٓkԜc\ ٫MԷG;E(D\βм{ 9)ȟ?a3)L.(V \Qa S~ a2 ` d ` U RyJxA973, ]umC   = G} 6N%*#{!T*1 9BLޮC[cWqُz[Ɇ˱Є!}1qwplq܎lp{"sf W G(;55? EEv@!5&! 6 !9 C8!  %(% 6/P^TD<$9 K-B.R"PS%"^T QS Oo O_O N ~Kj "F%I')+/K3566L642<1J0/.-M,**.,M./01R3321T1g0-)S%;!SC O|M C6k-  $+Z3 kw/Y >+ M)'Xc+n֔pՎHp̏"qi@ɐyd؜ڛ4`2§X`P2 A 8>)",> ^ (/331.,**&  l- =H MJA3$g !m%?.3AEC2=w5/*-<*#BE0 F*25,9I=d>:~5G1 ,$Hi >5 .6j'< T]d ap } xV t  q fv~y~erk8_ Qv=( U N:->̿YK̵ΊW˪ѩaXE]d)ʝƒ_^gäUxշN39Fǔl:_ѕ*G笠\łѾr,y3>־։K۝ۯYҟ۔c+ fqXw xE Exwbne n [O@ڂ/)!Ube>Cټص]4Ѥ& ̌Ι )6  M& y  m$''&O')*++*M(#'/ 565D20-E($"C" $(x.V2346i9h:;_?yEFKOqRS|QnMJIH`FEGIUIfHHYGFA:;JCDG@5.D-*"+@ A*E`NVydIt5Yp _=RFl<ڹ-!}>}5GEj6iP̧V     +8=9-Kb  F(&0/1,&-"!$(1++*!(8$8 > @ G!%'z(D(p(((J&%%&D&#ED"$=!R40u'd  R  + v ( =-hݵ'8:*ۨl/ݢ:.Ѽ%1%Я-Ҳ+׷)ȅ⺘#VeĈoJY۷ w!$"-U '/1.*)*,.1356D89v99:<<<<<<<:9\98645 78;A IOQvRRDQObNMKIGC=60,3*)L*$+,.N2#53*7$ + x%1 '%% -  ! 4Kإ/R&/fT:ݺߗ@RHT QZSVYHZ^XTM D G  A7?1$ .kF= #!5"!FRL  7 E *  ݢ݋ ثtԗcԠ̼ {]GGK} &/ e$4&w&'q+70746 8;876699>DK7P{PKC;;M656;62.,7-c/3:5AC@u:140/*:'/&(-.2)3&0*%!#D"! ?I   I V:!+ޣ9$=;׷G"P_PWʬ̧[1ӠВ^p̢G_˻ˠ+YZϡpTGͮNP̯̹6A4A ϩ iî)4΄ѾֿNmۣٓmΈT%jRãö QU!&0"j7 {%)y+n)"*k!K!X ! Ic7#8*z-)$#+"*5m7%+\%l24-&#%$vL$4 <93y255.#~ d&&5u*Z y0A;bFODV,]b bf(*i')j*k891'k!o#,5i5|-!f i`&3A I\@p*R%+"KA 2'8A)UW7 *r091 @Z4"3$a(  '$).J0b.**V/45I3e1M111x10~-t(#n\ iJi5)Y ؚAɤ , , YH囹ʞ읫 ފސ %AӡJ,]͘|:N×_BԘO&]Ӯk xzveߎkcФ\X^[TP Ve9[%d36/+h,,&Ct",}5|=SD{H^JLOqPLC:g3,%_1 W :P (*>*K0@T_K[L=7G9<@CFINTT8MMC<:;O>@BBS@D=;;Y< <;;c<;97h7A76D5o31.-w0r45(0%Z*33+"~{3&,*/|+ ";J"w&'%r j b&iY MF6/]% j $#JQ E S 7aig۔Uӥ[ W Z4)7ža  3-Ɍ҅<rݴw 9$F.4:~9 _<*5A9NVTXI;=6/[$>-r0:?MC>949@JgM1D3%Y!)'N3>`B ;j/).7Q93~-+C*%Q ]  8   V  R x.^٦ B'Ts')740=C578Y9 C !IJ NZ#')S("MU"Q'2("S SCN HB<+!g vMM/x:GOax,ybLjü@Ľ2(ܥ(Z޾㢅$ͩC'շ3=MѨ_Ԋ՘WpHs* c U H6<. $1 %t',)*"%,*,)&'"+5#m"!=  sf " \ W " ! ס@   ~aMf E [i  M! "p#!}&ߜ)b9(0ӷT1}u9߇SAPO JṔШθ\ڞf[r΍א}$ TvHlcآ[S0 RR9M#m L6N(P1.%!W#&$!a"(%&%l%(-$4r9<<<~==x;(853l1-*'\#oJ$<*19 >19-'T1"FUO8  )9GOK;&4[#/f0):"Mo $!Q4p/;"P 7(!!.% 59y<$}("AG @  CGXGK ME@lA>$3;d 6$'6h2F1)I1/+f!Λ؂ _   e*kr8 E 0O@) [X]g) %h1 gG՛אf^^ =TK4?0C"O l 9 * (- +7!;$&?#(d EO+F#D<4 5+(K!'  ")o +j$ 17A' J*SE[9 <a* ]_  ^(0/*Z(w+/P/Q)!Cw :** *3c41/ .2*# ^e% a$ 2 C 0PD4Y&a1ff[؟ _gؤWVӧN%شIЊ>3r,ڽٕ!#> '' Ӟ#?o)ͩԹ֛Q /h y ^X-f8;HsR2_ޠe:nYrFtsQoni \?T@M A6} %%('v% ypaD$,)12{.(L$ !a% +,)!& ,%+++/%]$ 1)11*5!#/4:>=N:14"*40 "01H=CgC*<0&I$"+C8EOQZK>.{ D #5CPIF;,G& ,>,'Y#!  f 'Y,.X-( : p    l )i@Uvm؁ױl=ҝ[J@02a'hٹ䐠!*.˳AmͯʬZшՙҵyԶs̶Q )uK=9=Ӿήk:\=5nAZ!]*>>:EMŅ԰H՘A˹4T&  $ OB=Ϫёb "#Uge* B/S& c -"56]F} S,UQjJB.u! RnX2J&#!teZ%.z21/,*+l2:?>a:644V8f>CENFaHKMNORT^RTKHSeYncJ\5].6H]koCy{Byxtn~gb^mYrT{SW_\a\UID:R-+8vMG]cgn9u1sh]2XURN.JaC8(/*/;MY&XcN@2+& !'0,#./1<335W6F0"wU / g(h1v6Y5,uiz [g!(%RL EE# I "<R Xd E t2w%fR3<0]= "S?͋ n%ٵ*۲+Ǣ-ӳ0ɋ,{(\!Z iʕkV QǃW`!ʉ˻>"kANكI տۖj;.#+  7!\$DN vC&U./$wW [z%:H[MKE>L:2+'C&s'*s/;4w8;<6:Y4.,./?369(:p:98'5$2/.,)'%# E w$'9KTR/G7)m 6us;+$9>D;E2w'NSN)>GXA1 Z ?]i[hZS NqG ZA&.+5G/?$#J$$'-}4:;4'" -58(7 2) "F.;EJHEDFGHbKNNC/8+A6 =?>:4,#3($+015.'!'J^sk' T 6 >)6םN;l#.ޥO.ּ2BȴAZxקn`˂oٺ{\ZE~6)ֶ#O` /ʦƞ$d .QҌ峅ʵ >Ճe"bNj#4ًƠN͡ε𵇺 . 2>o1  [oM&4֢6;@@JI?LqTݴ1OL J@""< s. ! ks&17D4+!L   f"'!%)%-*-'x(,#&'V&-$$(/)7K>CE&B68)h -=GjJJ JGB;50+'#!(-/-': y9z)020,%   $rA f !%  !$c L>0 2%. ^*(Y8FXZhۨrr}}z1Ӆ{թχk~dyݏ2jҚYuHٽV7Ǻ% ƶUޞ"I+ /Y7^ 2% -i( $ b <# b 1 *7=:].!c5#P& (.)0.)!*%c!'!&$&!v-(=DHJ,B, ) M,(,*'-%+.)1-, "19 c0"$+-*,# 0L ' ' %++&K    o |  "C"u# '.t1!/*&#" Ar&01/?01S-# -X";ߦ=# pGOtTתV;8XЩSPtܨLܯCMaȃH4Dz?ľC7B1ݬ,ߋ԰/ּ̚x*֢,ϻԷ0W/E52 6G:T>@wD@đͅ>;1ݠ܂( 9  /!"    ( d5G N[3 ` mt  y Lz")|ߢ|-{105Q;|7S(y({}!1z@LU~ZzXK6"u %*k.22>,d"GL^P(T5AMJXK^^[S?C+J1l'7D)MUOJC#=; f ^|SuwP'LFBG`¸̔KIP"ܯbOUYԞegV՘cul}|P؊]p帘gcER̭wG<[8- h)bh0  Z$1(#e տ "%%&)3 9< *0(EiLXM%^/0! f{oz |ݪޅ1wYq ie$0:A?a?;2$e d$?fV>ZM*7m) p4;tSepHo~aN}A:0!s"l" [T-69M8517(;e0 ;>PX!YR< /AMHMC;=j:4< >ߝGנ׶vRs_D8gvJ5ru .fZ[JN' JIB) A% +/~1>0-,--<-z+)+?29@mICTZQCA6M#hZ'l>JOSsWTGs5t$<t%3w?u!?veB>_6@ >7>=;>3_0".,1)' T$3Y@st L  n  $!N " H ^ &@ -{7@=+B{cL1  S=YC_ ]~_ q\([7n<6&Z,Q*59H8K4/+@)),39:;6,- O w) n %q-7 4AE>- &1?QWVJ1 g$45 &P,"<1 1z=7=1!VC P N%--2\2+g&)u'"R~#({&evFkfhsbb ` c'cəg!Z"moyM~o|ވo?ғeBVjɭGkݺ;ڧ.qQ 3;ݱA >4S M,պx6u> H GPڟ٪\bi ŖssYxzKtا٘\l ] R[GM@ؽ߳=u <\?GMO- [k~ދxH۔p`WI ( $*  # >'#5-V*K n(Qo "\'y'P \#:HLQE)> <-ERARNPTFOE>,#P! ".[BRX}VmRONN|LH}DCDDjAI<8j6V436;J?_@@@;?:3,,&$)6ESPVlWO?.$ # @X[J 4!#0;%8)Si'"0M>+MSsSbnmp߆Ӣ|o߃iӅå,%ă"{}ݴрdƀVŇv۲ىuA_qԸՕmk`)j # ok**o6 t')J,z00|)OrNg _/64[,"K:-# "$ " ~ (C縅V*߭ҹ;̸BSg2Ў{xВfQSQ(>Īϴ44ҿ,֬7%ն)Ҹ1ʉn=ԦҷZP˼jj>ӎ݄qToܼ6vN! P=`(.k)M Ћ'ľPߣ'0j߱!4 ˼"N$͗6{°k:իDa+̞ ٳ<г Kݸ] "dZ8 U P u K }/^Gi ,7%/39;01  %D,-/3A9<8",(*06>ISY[[WPJBJLLKOKL!MMO U\d\j kwgba dfd_ \(]ae fPb[-S H<57 @aLUXRG??DAIHMB90)'#9%-38<"> <8<6#1$%a $*"--+(##&$\~\ _ $?2>:>-o2-31+&M G y*  W  j  -ې{'˓ ri$ѧֹ   ZJ 0?<;Zb '\c #*6B#E 6"e["(-0".v*'x''),0333.))80":C4J;J@.? tE 47;C2x#H%e(I(D'%^#K"Z%*+M%QR W'.|4S5/%,] ^  u g ~k$J)++s)0" y g#j*r-) p kc`aW'`ۤؿZyΤ6VuUTU T SߩWRXݧZ]&͙րd܁>mՈz*}m\^KӰ=J 3l ^IE*G_ sG܊emɘb YjS&UC_(p@rV-=6m.;*;V( Gg_3 Cw#?tkE k _e:juyv @t!bTT @$ +}=d5A sE 7&# :?ĂŶů[*zr^ؙ֔OĨˋ/䢧*<ߧHҶԱh*ڽ@{)ϏkⷙZe eӛl {yǒ[.: N4i~LF= X   7{$5AhIMJ>-cG1,:8>E#I@/8$(,8JZb`WPNLE';)5@53,4$%2CHQY_ gZnod5' \S ! #! %s(,2'T  [#%%C!  ֕*y55Ͳɭ=HNx_kqD>΃أs`bģRU{G <ƶj8ʳ85w(9۫Y>@۵ԱJ|_t{gԦ{L0,"| 4 I cb8 qVx{|{Z }2836&=x$A-g;1DMQQWG95(&I)S)(*6.|02I6)7y1'   $ LA* 79+t!*01-32,@Q Pߥ`nxnede0ٝhQ ny+~oZ ]ޠЯ ODU6 ^#UD)&,[ 2625 7km6p' 8 z9 {8>1@ 4GQ$OQXq!C_ afshl. 1n sٓܜsqia[ZݩUҼͶJ@v4-'ɨܿ!ϑtd!!&h.԰7@IDL R$/X["&&\ "EY 8 XWAN y!*H288p1E%G? t :%&#"3%/)+,/,++-+/G-% ()'0/*'&&G$$+(8DKL&HB>1j''!V)%x1:>$?>;5%0#/27%<>>m;5.**.5>hFIpF?717.0W49<@AA=CG@LOP!OJC.;(4c0-V*;'',3F:|>@1AT@><:^9985c/)) /j575q3o466z0t&Zgrpcj>_ MR )XDR3ݮZ#։bW"Ɋ9LĻ7IɵЦ^ GiW'w΂džŵ}߽󵃲i~unآȠ\zŰ'F0r7ﱉl&"&݇26J۰մX9ǡ?`͏ؗkkZnKjf [z L 8 , + !$' )++1+ )%!*0( @L]%Z$m \ ] (/2^/ 'Z7S"%'VM ]޷B5";,%-%-v + }iz  "*-(1 L* ~# $h 2# H//3.:9'O9F|4 q/"Fj&f+t'-0۠7&9d 9cͶg5ܟ.T~#jea . >۞Qݬa&m' t&'.34/&^} y ~.wq2eW ` Nݲݳ ?<^-ܡ\#  U .˾   + ղɲ &]J?{c a BV $i&Gy, i.} /z3 9Ku<  =+,#RB?κB $@()%E! !B <<W 6H12 - s$(+01.% +,  $x*-(Q NCs+wr ,Nvgל "g#{#eSׯ צ%ߴa ܤߙsџe!" ,2Sw;I  W! #,d; GE5m"|!|$x*/0;/i/.)!Z!(1N=E@-B(368?IL-=r') #"9GmM#P4RQcL&A,3'p#1'w1>I9N8LFt=B-  hN!b-.y+_+ -+>'o# txd*1.#Q}dA 2,&@"9p?RN  /&i1>aIWO V~ m^aFߜhg R%b$ e ]!*,9(T"N DB!i 3$370)!H < ,s "{v$ Z2hD*L WT6`d&Z%c'04$a\ $7BX@1| O@ 6J % g   !['P, i 1Ey88H;p,B!DnF FЦиGL:tMT-[ޥە^ׅѢ)dc2ޗhƗίjpl´p6ȖiЖ_g2dء^ĨUξɮL˶М@N7#/}~ [x#T%g" ""v ) T Y b #&'*.d.' D+ 6 (06E:7,PXR TY (/o1b,%!*#c%D$a^%*,]+'%&U*1/3 7S8620-J'"D&;8i4%5  !)9  5  x ӷ  &"    l  05D66j   r  U v =$'ݢځ.P6 `;?}AJ GMUVT=V 5X٦=XޣT+MWۨ`VݎXTɭؼLgJոܳKڶЖGDؽւH'BJEˬ¯ֲFGULEQXVǪ&^̛̩hqu°ȅ ހ4x)Wk[ضP׷[A 9g36),8CDJ\ c } {wW`3${( %3l \[   +e8BGBB2 *  &, 4: AKA;3"- (#V!%!X!-= f#Q+I4:5g"zviL^!E},ެo / U 'H)a(T&=ڎӶ7v i($.+!8 $JX_',W2s8;9 1%Wo&^4?CA@O8.#> `(-*/##F pP<M  " bV_..y;AVh=[ӉIf z:ن"#. ՜Y뽥ΚH',j67jByC~HG3>F%H@ߺ[G3]@95U.: !Dx5  { L ez'H"!! $%#)/56/ ! :?N] / I)5=oA>+5,$#2.  m  ^'/<2/'&C1 c$2C=A=4O(t^zq W{&F30!wkgXf&& d eSi pv  |%(%na@QCR: /H `%-%34^0'U' v 6" 'h+1/ ,`}. )&Cl$%$u{0     kHQ % |X-cӊ$p*Ӱ*.z0]58 <=- ; Y<29 a f)902-% 2r*,K'q"4 L ' u T? $'%%2 =D'MV\4mbdؕDrޒt݌}w|"÷|Ѕּ~O| ݅צzʰt nRe4۞]ݨ3RE$ܧ5%4] v &Ff3Q; EaK&\NI1C2?](/ #  6 '+ 9 b |EeQDZpnbg= a c ]\^}&S&  KCi!d<n2\1 1+ ),)-$T. 2 6o6{"&>$  @wJ(H01 .J)'+O5N?QA6#R N*9CpGIFC@d:?0%7D1#x*-w(" m uV "y d%($7>K\U]қ˪ˏ\ǨóX~SϱlOVLCq58C$ͻ㿛w ՚ڼס3 GҒٮ܌YCН͂k:׏e}؀Յӓs0ؒnh g>٩ik/`rޗ~+ pv drVhK=3(~.#ޏ`i  ) 9,b]u  Z _lZo?%B! Ѭ_L$k.  = T O{a96u$&K#1n \ #)2-Q-/8@A:&W5-BQ.VrSPQ)QI?6;*=><<*D OUU.SOKH4JVNL?>-Y #I(K+0;WHSYWcOC9&4s2f1/.17q=X@?;_4R+# I#'+.9035F7'61*#"O*3:>*<5-&W!\1 :UGyR`Z k##s_d  h i do eb7 UR[J ;0y " os  V  i D*35 7< @C A_ ED/@>_Cgϻ+CLڶ KQڪH[#d;j_ՠwVuҊ1hݘR\%T^=Kߣ޿m>-p8͗Dz/ն*1&̴'Яв+Ͷ8 A@óڳU5h|ʋсρDzwí˚Vؕ=&Ҷsaҙʳ/ sJ ۩Ta{vpzmܹۜۧ_Uy RۮQܯT\ b 9Vp{r'rbTpG c 6 -#  3K6  ݪה  w`"0'*,V/0@v. -|+&) n"%+*28>"@X@ADEB=[:6 0*:*-.,O) '&&& &%%&'*.388:8520112/+'#"!"#&+0)1.'!!!/$((-$v }+1244+ u $)g*** 'K!x $(&s&&&0&&).B1.'=I Wx &a0n7="Al=1#pt*1(z# $| e#(x'"{r1!'.i4651^,$ Q_]A (./-% %*,* #CO^&}9aKW]%c -Djm#gecJOc UONA23- !C =)(  Xcuܾ =/ D9'׌-8ٜ۸. ʽ %oLժެCGѨ ػ=~ǃ``):0p;,B>KCO HZϦf*Θk NgrC||&5)7%tރށ}a3DyH7t_Uk p c'25,V}NCp1&aYI _=s) b V j * Xm  # L    %.A4$4W/(J#*,X*$,42;+?S@=293667d6331352547<2@?<8/3K.,/04!79?'H8NLD#:1+)) ,06:<;=:806445 667 9m:::8&643430-(%$%%&).269;93-(# g %.8> =80'%)&(" !*!$#)B.p ,Z( %"B ? % . M , %E s |S#  };Q~eH" XrӬA(R ª S X]/r }0-'UҺǂȽʹ~۾>ŋP y{ؔ'+9H.٪ؾ֝|3B!,ٖڤC&X-$/4:߾A H KAOjUs*SXUT #X2 RUR#)2/U0A+"mTMN^  P 6R"&(7'N$ #$1(P,05 9Q9075'7R;B@DgHPKLLKPIHJMSQSTSXQLON-NVKFDJVWbd\WOC==VAFLFSSX=YVTPUTNFLDGIEG= :C7$l >0&VC7$#D$*.,o&0o4760-,( d$o%  ', /0o-#I m O!x)/21O-($!{GX %+051./)! '.(v& ($;:!E    n ` .Q( -> B  i ; S g1qV= 9 ;   7#@' *,1i3 f y526c2=1d2ܱ#/P3'+ܔ)D^# '"-#м#$ *޺+3 ;C5[JسӬՙWu٦O6_3.&/A OL 7#~!%rS~&%  &(r+Z )+r % ! :$&&"&B%:- 08-'$"" m.%+/2C4 4 3100\//271;=@!FKK:B$3((/-5412/563//,,/~317:::947R7:@2GBLMJ,A5+I&*%&(**,_-.1!467874.(A%%(.4 87400)v#)$(*,,+*.* *)(9$EYL"X!I[a"n&&#`!0^ #y#\ 5 Y 2 XS K?5%? W "%"  V B$5# &2/&ы8tL 8Y#86JBMXLcDc:fgdhkgڠcBڤ[IRmDl9_{-xO"s"~ҙ)25ν8o99<=K.GJGB.=P6+-2!"$(4,*"2Y3 >2u1 , > *Tw"Io0t@־ պN#.\3PB>^L \RY3chޙn"jq rljۗdbJ]"TBEs;r-3#ac"$" !`?  !"#v#$c(.4789p:<??);2)&*3;@BFKQqUV+SKCA6FMSX ^ cgk@o rtu_slb[^X VSQFR TRVX[]/\XSM+GDFI3HCM>"80(0$+$&)5,1./02;5)50*E(*.D0Q.+)5+[-:,'$_'+)g Y gfg~ f2a{`YNHh=t_5Lڤ- Nv<ۆKF~ ARw o#hK}^djI]xD > \W#egrڮH W ۨ[χϜȭ徘A潹Gzo-A  GXݨڭ޹ƼQ7Ӫށӊ tWi(5F7P`X4_Og  l s ErGqn&ogP _VJQIE : o5 - I=% K  W'-4=EL-O J =+#+169<@CERECBF{MSUURLB:8:3>IcXe}l"kcYO,GHA=<3?DJ7N6N MLCM@MbLJ[GKAr92.L-t,++W*)'6&Z$"!&a/8<8d.$2hfme"#!c at [Wa uXLa-D=p5X-(#П_ {!a #2" !Z glO&8.C3лOVU/ʨD]ףӜ]Ǎ›aeÝfŦƝ#bآ^֧U{IC]h7Wu&ug* `x Ug'*(& $ <#[#!rq U"$U  5{ D|9 %r$& # q2 3(? = glR  |& +.1[-B'e9" (+   ' "  , x 94@N'I 1 0NLxJ L\ F!A >)M2523,&$&$+/342,&!x"( *)''#.AG&)u'!r  w J  ^uM=    q. ܿ8% 2 9,@ܻBѫʻBoD,>`IA6 4Y,y$ >. yJ  E x  &  .XIOVۂS$+u0447t888h6I7692. '$> ;#.43"* Qh '))('% /d "'[)+[/1/*'&)$ mL W_ C [T l݆݀m6f"r#RB Jhu0 ! D f y&<$ "!,'AO"b .y**(+293< 8u+>"w" C . Z~%V0)4))7܉=o:]8 61O 08)m!s  =  h    vM    F Y | (]$ %  }p ) TC %S ) G ] ݧ LW<̘ɉ G2"ܢس#ڹC"&ѐ(*y)!'+ӆ̽*-0 *!('J{+])'$g%*"Pl%ahs : _   !#'S-366A40/0Y48i:::840-,+*(&$&+ 0h0,T) )+-+$  f&,x-, +(%"l! H! $Z&)/561C( V   &_ if$  S %&&  #  g %  H ~h 8  JnO"% )/( 579 :NY@_EDsE ] F T K L ]LtMsaHKMM8޴ֶJܵ]Hڮֺ֖GmϺ:B¼w?eY:F7͂ͼ1ح)tA"'G:/ +T1 - 5 : U Wr"  n #|# { L  > "-O& .t19@EI KI N nMN" P! T #}(Q-024Q6544M5d41/D/p,% E$D.3,>)6"){+3' 9+ <#$P$%"D"$k$ !  gx!6 q)ɡ~x0ޣޔK!j2[b o  w>z i Qm}$. X  * &uT'(*'#"*$p%#@ ,/_"$$2#8! "1$&&'(,)2(&1&-&]%"t*b!$#"%8a% 'V ! 1""!"P"v#% j) * /1.bu212Q7,6@|313իɰ+!)P%_o#q"!Ο;^â̺ ̸1𹡺 Vڻ v%νuIyPQ!44$J()\Q-#0?j/L .J++9**'$ "|/|cT4j k#%$HA)M)?.9, +9N'+ ! ,/Q)x   w Pt2 +  !(/59;=?Z@@?:c40'00.,+*w*,04B41//b/.,* ()B1:;0$ $- 0-.+)&"  H  m  F^G2 "=qO݆  ]jT -*?/9ABe Lr!S [\[b e =gwi nl W g l%c+)#9Xx mR _H@ 2@&  Lp _%+ " 4p( / @15|94z7߬350a,`&M$nfD  r oC f  . N  D Q = 7 z  5u;[  NO X@C},,iw "{#8%! e;]  c  *Z) 15667?9<>;0$C!/# #"#%'1&" O#  l0D  ' H ' ^) ,3-x ,5^*)G'V"iW\( +go3X L   0&eN X>  5 TN   #z'*-024W7;B??9 /%!#(+,,*e('&(('')- 00.+s'%&('#@ P4 @L&**2H,377>C#߾CJGRECWܶ @WA<9|.&abEG xݬ. E ӮщxҞNG5OԹ ٯ ѓ kU$C-b  qFޡO  gڨ7p9 /_ @ 1- ; & ax 9p)0 '&('#,y B  *   0Nh"!#& ('%"bU YX S( .7>ϷǼA!EEBɀP8j3E"/ݏcضڴdz/D*XhDЏx΂…%uBk:aIb8gޗlis|| wDDKOLCB;89:71 +'f'(),_1576421l/-G-./148::9 998[4+$&&(l#*W"+$D$$&/' ((")/)D*,.2.T+('1'&$#0#"""3!5(15?CC/A>;c82641-,(%%(#-00-&'J!#$<+1N7;=>?ADJPTTPJ B9202X6=;GMOLUIEWCCGMRQJCW?<1979>BEFF$DA?>!<97#502.+))&#!-"%*--+#368 =G?vOD@RܱD>HFޣٺٺFַ`ENF2G 8@UBCYAY<\ 8 2,w&sh Gڗ  _o(@/՟H9tԜ=AA6LLѯNԴ۠QUaScXXĬ UĭVSߺشO毰Lo}LG5F]ʺ˾B@58_4ć0¿п-z(эq#!ݹǢڎܙܴ ܾ2ܥڥحJ  N  2!' +s /%K(+//1,"I0 /5 j 2 /(/% ^- l&(n %!*9,*9& E. D K!"! "$')., -+'"&9C>1%" %!''%O$%#y#%(&)1& T( '0d?-CHGIFfH}KI ޸GFݾgF0C$ԯ;v;:2:]Ԫ<ؗ۴6x7;;;H:)T: ><Կx<>]=9c8-1*cۿ$,~  &'z7 77K<":#!620:0 . m )-%"!   H q ] f !!G  Ke  [ /y#'ܓ*Z/e34L8<713۹C1?E-Ϡ'i!"1 ˵Ӊ2ߑ>$2 9oA Da  y`{Hx? =  zB)A5eB  9ax` &VD } -q [ 0q&'  0M 3 e6 r 8:q 7 V5Q3 / (L [2' (B{   36d   w e z   O"$ L 1%3!'!&KZ#j""A!0  A  &H!~ظ }S  ÑCֹw: Aԃ+пtޔ.LlNx+[ i Vx< N`g! %(,0)) ,2 5;  A%9m?fB +@>9 8 /@ % t$m (! ~ ! I | 0  K z_  ' ]e   E   g "z*C-#%%/$1!4:!%)@++*r)A*-2|6=889:8:8669:(@FK4MVJD?*=;85&57:h:#7F43q58;?CG\IH'C8+#(!'h-131,%<!).-N v1%x0 1%4c6S1$2)/=/;Ҿ-_++*ݼC-=**+߰)'װQ(Щ9$#ȫ˷"*UͰ i &.ЪF3;=lɚϝ ׅ$ө'ݩٕ'$b(%> /T *l N -#w$#C $$j,$2]3-=#"d Qc""!!$(+- ,'!B/=s>0y t-w>IJCK7)#$-"G%')2)Y&#Y$9'y(% :(AjI i O j y J 'O ##S)*&N  P ? JJ} D ="w#$#$7?X4+H)-"s   Lk 6?in  \G T{7@Dj Xk" $ ') 5(o% # B#!FN g  CG)*u  5 %    e   `T  1 ; K     < p |T01s,! Σf՚ܾ?d9vMSxǻO̊Tъi(..'۵*M8(7V*x)p (c%J]!G}:1:_ { 4   G!#t%%" VX!|%()*|+ ++)%! = Y n${tZ;"4)*](-+ #%(&+-/,2&5O9>!E&JJDl9!, 3JH$4l   <#C)3D7: >FA4> u@?>9Y7~9k0n8.M"*&5#j?IG [  z   A (     ~Zr; #  h > |{( O 8 Fa   Jqc] ! ,C L J| ,AoV]@}< zv-+8m   ` \ l )y"%"J q   z^b+   z j b |    ,= ,0 !    \  knx /` W  !P% '%!  0  GF Z[u   "&%3) l$V'}3u  jT'Y rTY]ԗ Kח ٹψ$Qϵl7(} ц d vݶ f `5 XF + <2YKc8/nC  ?%HF')(/.n,+p+&$ܮ ؙݘ @/6LI20 3xqn ]  ,  2##% t'} J + # ,x .,G(HW#%'"!B&)*(%"" '+/22|.+)*#,-.13 3=0-'--,,,+6(% &())(#(2(()&+,.%2%6G997-40.W/)2 54/-)K%&+'/.*&'$!(U % u eu.Pݴܼ޽v_# * (1~2n5X4&0/y-'ګ#ˮ޿$DT~4A&ZIF!3#- 4: FI KMlSXX ^\ ]"!"@%\(d+.d1]2112U457o9K::99E::85=1m+%!4V(! %&p&$dJ : M FO\Wv_@@e  ; B(-7(7=CQI0N _YQ %Zݐ[*> a=d7j0+/*#6%0,.&0$ &L9@wAA:@;40Y///0$0,&$& ))(s( (D'&' )($! d !! oD +, !2l##)`D(+H*0l(\)FgC! > jP\$ܤ'(()h(1hN}& vX`h) 9 " r d#% ]&++*/i.<1B 22429i &=~TUw u9Q{b$=k Y{hnBot;  G  qee !'}(n-+&t#h5n{ " w5F%[9l_~xn^\^VGNA P OeT\ci2r tanU A H. 6;  pb /t!"_! y < #n%@b =#Z!10#yq%()4)2/0115 6 88 5 v < 4 @21??.(_ j& / j m  :p!@J!$@ &#yK#$ "qB" ~& B ̴o RGXSuiqՄ9:s#b l v]W7   { $_K x";&#(D*-1#320m1)3433,4:555(42/+.,-,-0.454316m;?I@.=84j2+2x33K1*-U+-C2+41--%1683 )q#*%"i,"$%%&'%#!M F -$%"(H!s E E yNcv#&o$S$М%ҋ7)<%DŽP$l%нܷt i(xիu  9!i'b)j*. 120 . * +E2! Ndo!%%&# kn ""R! g Eb-!\ '!# ##%')'*+./-)%#""""v"#$ $}! {FhbK*  "' M?? KJ {   H4P5S-ZD0JE` -T^xf;91Z#C~%&.&32 K6u 55)v2a-*4#86D 3,@0" ?lM ^ Z |j Cy]x urRsUޅ܄~opu$d#7V^dB -J02K i -" 1EUO^k2_qx.yp wwJێֳqiq$`XO,۵D@6="է3) q7خ7= rn7<t Mp[. %x+ ,0,2!996&9 6 ? q@@U= !6#<$%#u< 6AG9K 6 N;2; , ( (q % B " Z  \"  1GkO t 66Gq }N l= jvQU+ { # mVb _/%%yvT  ?  wk  %%  L ! {C   w, T L <<Q# &5'&&'+..+%!+)#), )z#!'$*&Ba3O!!$Y%F"""$$L&#( [ % j%  [ # v N^ h  ޮDʪPʊѯ6C԰Н--Y_ycN? $ާ+hOa Z|!x #;#s"w% '(%'$;$V$ $J"$)(^#u!#J$$'%%$#D##e##8$ $#"""!q}2sSm 2x&;Ef ^   ] h Z$E,!3o>5<#?H D \Fۍ׻EFWDs?=wS7v3 )qs&"!""1"""M  b z~ !  '  -     ob 2 L6 ޵RGT/KUL`a5ޤWձ ;0̶ΟL<gLJړ6 ׎܃}u R2:    V  ;  E%  $  %V/E4b<BGZmIqKiJ]M >Ge!FeuA45} /)x&/   #+c V5  @  <9 * V%0q1u2&5 K x75 ""6 6d ! 7 6S1 j1q2r ,/ B.33-V/2&3x>6L8e8Q4^4 c < 8 7 o 9 66 X 9 5 J9L6+0 / S -[ + "1 x  6m     f  wK #f!t&w&("R##aFd8 5Ֆ B>  f #gG >LZS +,_   ; QYh,Y C^$1&V*)X&p d$#% ! #r- * "Q-_   - / I~#( *u. /f244u0 ,+/+!'cK%XbO41GG  b  v0K 5 / ; $!  } #c%#!%>')*++*'%$ $T$$U%%#!kW|#y9-_-  5M8O:D5L96a2Gb+a& pE6 ]Y+j  n X6O `4= M> C&/ k23  =oAHKHHI߾G܋(A= L:q3 / + s&#)&  7 e[Y\_ /  g 6  ?  -L+} 3  O # 5   >!f')",%q4)( ' X*s#+,H+v (5 'e$[x>  zP Ni{@n 5* s] I CB   ; O& ,)%- 207W6 "%4]2@ ,F* F] "84C    Z  h / 7"$ ' )-+-01* w.!!&(*'-,02330(!<` !C"I7Qf NbQOKNKLsD_?v6-ެ*ԬD$y`sւT"ڧ\ܾވ<J;&u(ufސ;N <5JWi]p%y f ` ?    Q  i  !#+$$ & (*,^/1D."d 8e(%|%)*+,'J  %" gg x  % .  c k  kTJm}0WB!  y }  b 7  n | }      > D V R M#x w { >" F zS$ IU%a'> .{J407@?*C<ED FM cG/D'?-= S9 [!3z/!H*%# ^69Rk b OoeI / u c f ߇5?H ~ GE6&%'`,L,l4,?697 89!'<.1.#>:&469+ :#7X/"$(("/  *f " 5  'l~PJF) +Z&]n)T5,NF? Iy1OV`e<;a_ ag$[[YMRG\>XB9&1,#Fpr < YrR5 WM~ l(K;l*'> b #   K*79, n ) 5  .&'  wu e5 |0 <   l .  & "h!!# $  "?llyBt# 7(b  Ty FIRi ! d" %(h,=32j6K6ۡ6n^4+<N/ܚ-b!> v  W  .If}~- <  " ####$$$$%$&'"* -15:>1>7*D%x9H2KC81. ,,-/ /,*E**))))''*"./.,*+***.)&$~$3%$""7'-0-5(q$#Q$5$B#!3 5^o7%T - , * * g  {߮i f 9 _݂Ho-};EgmIA$D > Lw}W+| {7"$%~&&}(*N-PA*-T,3۫)(C'# IX4u 7 (2+ZH ܖPn j֡ B4 uht   W #2 "$$ # < !_! u !{#'C. 6>G:9875310/-,++y)(''( '&&* 04403 0,(&%V&(9+,+*f**)(''S&%&'()**](%$$%'((&"M ('!BTR8y'X 2 c\ !Q   9 , 0; z""X#n o#"? M 5# "A VO t LA 4e Vs ) !  &Y4,3Y:<= > s] ? 0d;-:@ ,q %y U " i+81 AJ<MXL^r ^<\٣ܔYVQU L,G>u5+.Qt8DA  c   p    ) !  z!"%&#,  m [5%1X;:G)@U|P_fۙړlܜݐuwڍUvF͈qn7tk 5e kbSW  S H :@x:3u062_G11 /+b&G=%IQ p |=m b - :< AGMMLKK J E @ = 5 1E,"e!&>P  + |F w e~ '  io%26y|; =ZL': 2   ,EW-  H  ^ y}_ "%'*e-/u02220/1244*42.+i*+-25754221000.*((()*+*))****+,,H*%' m y!" x\tU  O m3+#!)+T-3ݣj7 f<0dCCϼFpźśFнԫIֿ6ETо?˙<ږp6Ԛ3۳.bۦ(26 T 7dO8$& m ? S >k; &"UQ   " l    Ir  pK %6   G!'1m:<CILi! N&-.@'O(K DH?!2 *d ~ WJL%_/0!'.82b/%?ZI FM JI  E  A  = 6 /'.(   Bw2 a~FK>-׶UդgӘoюvω~wv΀΅k-2!- # &hڨr 25$ݣ"r}'*h/ J5q8";56Zڊ8']4 /)' $Q G3"(w,h. 2$ 5 4#{"L2 D372+g(& p#= 0a-jgF\uS. e 8 ^J  h.m Z >  >DQhI9\`  8 $\     0  &  C  D'D* #"?%M j$ ߂8 N]' R  {! 5n>dtT;?T@3 ݂>_- +h]}&ѽ'5++5ت,+--B)Z%{% ]vf  Z6 v!"$ %K&') +n,-.-+'Z5 w #&%xJ!7k "e##e$&(*M+*(%# LC ((!l 7 >\ 9M B9SA e  V 1.wD $# %%$" +S&      E R# R=   @2O|"F$'K/Wo6f8@ۇDnFeF#GHFݵoJӋҸAHNضGӺ5Dз;C]cDȹ@< i;U8ND/3-8-'Ѓ"7DZfNp  EkhMJZ4 # N ,*' !  O$u$JHf 0ZoWxD,.pj b q[zI`#W$2(R)/1d3@j63׆-ٶ)!ު)A<$6Gi\8 prJx@ Z '   $?yRA:bpC  gh #$##%(q*++)&#"!J ##"!":#$C'*,.@2 7:93$,J'&)#/47G7&3-(%#$p$%&#&$#$($#!!$#$$ $!# ##$%J$"!   [%[& n & WQ P0#;iq+.a_mBUT e : y GE  IX]D fQ $ ,AfcM)I  [^ UM~   , o  -gW (T^u5&>($#/('o(Z+'+n+*- +'Y+! &&s",+q(J % #W#+31*-",=.,$BY {QC a   H +tCd$K * .,/68--:"<%&''@(()*a,>-(-,,B-[-,+<+*&!9v<E5o} 3<,j+c & #,  Wa#b  XXܥݮޒۑ :λ= 1 ܺ " ݧ۴oiL,^uekepa F/ DiGIT0ڏ^ W "9`?7KAu> P p/ 6 >G? A Q   U>XS*T]; ) 9.O 9  1 z*U?6*1 6>= \ C  IPSg [m] B ^#Y&!ROOMyqCE# ;GD9/ h d#\   }   * & 7Q B   P 0t|g ~ &YdB 4 tMw k}GM@a<f Il^U' 8d W8  w? 2ҁ*6ܢ c X!"N"a!V$C"D'vkO1wh  7j\ :  # , 8'( )y,51*U+UJ& )d$t &!"wiE"$%&''5&%%%"  = $M $' s . X7 o27 :8765G:6.s)/& !#/pZZQz 1 . V,Z W     }8g| ~c5  v B&l]1 u 1n lbkJ@ݚbS\ WmCt]1,KI3et J  +< 1  FuZ   Y%  ~ f 9 @ B 5 +  [K  K  `  '     L {  R  U xlD   z s  ) L  u"' B"6"T##  #!D!D +KIܵ q߁NC M< ] A  N!@LtZF l-iASE  [    qQC    3  ] )"h_xCZQT5j  p   x^!y " p!$)$-,'[ -.H 3WF/ !0! U!1! -x )6)':WA#ۼ+AM߼JIغקI޵ޟGH@D>bA&:=0->%+8 !L  Ic @   /  n ""']* > + `3 \ %482Bt44 4 3 f0 )u (!>CQsc J+/7@QAL DN&IFGFIHBq?g#:+R6.(#|  :ZX i  MoU  m _H  |;O b T  "S oY] %P)+) kH %?{^b b "U*2[;AwMmPձWXͪ˄\'ܨZV`V Y PK A1!=S9e50*$  " X v'  +  st6IX ;   N 1 a [ . B] -q!m&* -*h%9=!+*: ! 3 PycJo9 WMיQ?\ س V)"%% &G*A" !@DWbGx  x  # Q!6 ?s e&G8g 4> {  9 x   =G "| ) g  8> rX v  :+ f ! &n*((!t1 "    y*%~>(  s ]A-H }x[h b yI1\XJ .1Wvq 5v_P A  !hQwa%a  8 4 Q H E  : d  x[x[ =  c :   ? a~ BBCY#f # ?*  -2;//L/,-(; !   XE5 L .' R J DvN5K\ Qq`e  8= l0TZm f K Lm p3 +,"$8(~U$|%^!cMM >T  + ! N n  \ M  A !"A# ##%n( )'#4!# p$'3)'%"\! ="%n(*++:*)) )'&L' )+-2//.,+ *(%# !NA #&((X&$$%$"! E4e\< v  tO  J   @ Qi  { . gfq[ ; jۃx& O6 d jA/d|( ۦ19i ~ Clmc $ h R<  q)\  w R-fJG !#%%%%&d&&'):**f+,,,;,+)(M(('&%% %$"$#X"!!!   *> PG"$% '  & d "bB}E ^8oxQM y- Z !`/AR߸ޝ$/ۡS [Ox0<W_kE   y?  8 p    z  '.z &,0,$h <EEeI!G!LJAO M R  K  NHB B*:  58.. ) &b s  4    z Fuoo}$b5Oy 7#}  , [8  8(3-6/)7AJKN QS PLoH+CA-!6=)$ 9N !Rs'=&k@05tR; @ A =v5=9 6 2+t!   ! ( t%h [ i N     1 !   (E's {M   @z#qHlH'I tM cP[ Em% 0q  qsRvd{A=z-P U"   T   5 w   iZ    , 3 ; 9  N G9tsF   [SD>sh0 _"D"y&&(^-20X3611N5H2)3s/\.+}*& !`)!OipTJO>".03f>.v}; v )=## ~T M   J Crex  !#%c%$##"!W W "" @r \>5!  ( (W2 5Uj9AFH4LRO:QMޒHGoHd@<53f&!3 Qژ ^ W:OжfCoiW . KD AbV~Ov##zuaUw@! IjfGh    :,];#  ! 2n8i # f" < ' A % # 'bX$$ o1-[ :   P  |  I )pBOipka y ^ =a^>A mpi f !0")&i,0vo40q0x30.z?1 I ) &u"o|A#{ Hm3t nI?m# i y _b! (7 N :  ,x6  # u?      |50 IeXV{% , Qh@B8!1&8<UBz N C  o!m-"i`OwkO  / z [ - W  ,`P0 E  o_@~z9I6Z?nfZig V" W_R 9o vC 9~s|Itc} E   s     l%  w'*:i i  !   . 5  }_v  s   y (    H u }   (  9wH6o=q.P. N   yyB=  Xl@t   d  lf0  \A  $ _  M 9 u|% 3:q$SQ) t a iD+ ,3{h< HC    !L A  lYQ   !"!)   ( m<    '   w  x V    u0>vy I 6 r . ߆)I+cr*\ L 3:{D+$~ t7ߣ hw  tI n4M9@J  < R:,I>`a0I  \ # }<C  kG  .  v  = S    ;  R &=   f "  y  .u?  ;97} th U'0'h+)z܍26%;VAدD0ݢC B,ݼc>`Ap9512E) ^$Z/ '  p{5m         7  9l 2   8"#$ %j%%&(q)*,/W12|3320/.e,*))p('~''&'.''&%%%t$###a"!!"A""Y$&'(e* ,-/31 0+%! Q KDl =  D2%% GK $`j (q$} ?_ P iD a E .U# R     C ! #"-"t'I )hv, ./61m7 l6 ;T 9\ 8A6=.3663 /*u}*E"oF(  \eM l@B5 = b L  ! @]w  k>}qh # L(  ;  B  ,  L9v e { k ] E  > 4" 5#f`K|es2\bqy;Ra :4 Y2 07(F#F&KR C   ! 9K\t \  \ Ju    y6 WN   3 o d UG} /)Fs#)/3 =>I[PA Q 7m[\\L\W ]NZYS6_I C>(8- S#R Ls !P! n  \;~GM6e y  c [ { c 2  c  #  S    2k 74| < Lu  *K > ?.>J yR1 ; J & .58Mk~ }F ' P ^1`H$'8/-1d4 0y1.* W&| 8'z1 1 HO{u+AyBO;RT' tk> #4 '#u(uf,0 3 C8s :7r946c4 3 , P ' ^"B}A @7 [ m@t . _c  oe e F <[] d X   'R ) g g AM  )"An##(j,*'&+"%A! l 4 g +,SE " 5* 2~3Gc   # *d &  #C R    <7x q$H  Q ] | $  M    T  !*L Z    o g " kL*  E2 d G 6 MC*8 ; 3 -s74 J #f   x    O  c  PgU  ##!Y"  '  R n 8xf`UݣۦԜɥ.nrxJ֒֎"j)c.ƛ1Z`41833l&/D0.b%"o-+ kLf;g 4hB 7 ^O  i   I? W}  f ' !F ` ;  yI>g|)< U tb,  $  iN       q o;Gn7cQZ%eayj;\_ ; Y $s%#|'_- . 1 q&1D++, +)##0 Q(MI yZTf!Q"%>/'5w= C6H Sq W AYZ ["]Sm]6Vm R MRF  A}6f-' '! ,  n" zo 1 j  4 k so  E   kF $v  Y>8  {3 m I-9 ?  n  & ")  )'* )TX,D.*' '%?Q" Pu_YN  ݟb<rߢ ۭͺ΅g7Ғcץ}ؖעS) w6+l ) tT `K  : !N  y ]#$#""!>     P  * !$%&&# 1j<v! EqBG ( e1   C    A  ! D 0 mnZA? !'(?p002B01 :3r,(j d&=<"߰^ |aN7 +V ,F!z3F#y0Xm]F Y    E  }   y k 2 M u   p  K . C  b  Y  T   -   M &  | |V|IijNU( EWUMbB5` m 1*0&u9;R'd 1 e-G W>.SU;%R+f! YzwTg tg ]X % u:P/pT QX'(i25 5&  G9Z% (  . C, ,,![&&.!* & %P#y1>e>1k z  ^   ijvZ  !F!!#$$$$ %e%%A&&%%U& &$"  {J . aE;* %     ( .  R9  }X R 1M L   U= v I H x [ 5v Rvn9a5 |2X !&(+n00/1 @2.{F,+![)"f;#p2w I   5M W  )  # %  e k (  E | h   xYW ( 0 9 ^I Y <v=00IHU Y$ 5Xk/lGeKY ;:48J*x_j hh+Y ~#7M>< C )s  O  [  RU"%%""7#$3%$#%(*.)' '%R   ! 9$)u,I 4^ 5;9S78Mk04/#+$}   yt.Xp !s!j86 !9&<9$&z%J#U R3wa{ n)g% f &Y -z v_   +[m \h C]V+PF] ~ XY:od!!oqٯx3H d Z nO_ ' (d$  _JC)a/{v \  L g'[EH 5Ra1 To  8d     N Ah7  [   K E!!"# #4  6"p    ? `=   PDN  6-"! c c W   D0TG<d3J;$5* |Y:L-e> "x "%,l1%%v q WU e <yB  6 mIo+* \k   KhH4x e   u 0uJ V y- v  ( M  %  P  Q F- 7  ~  A X    kn   h p"g( ,   O %zI* Ik=sh9MF/Z$A   >m/G ]Z9 s , :  m 8n 4 6V ))^u3 :Mo{T#+  L I Ze!"(!)h%L(q)++c'0l'p!  J o " P u"% "t#$=& '''''w&&6()((*,-/e//|-+A(%V$#! ' x "%),,*']# v s! cW>H | <   W   :   de l H)/ijxt"J0DCڟ,5ڶm9ԑݣבټ /=_[݆ LD8 r"{8 7vh^ -U  p  0 X  9  U  % QIs! !tQ$P$e!M"6#!O 4 !f i.hh  ]=!$(,---,#+)m('&%"[L!#x##"!Er  XDy  !#$% $"!      ZKpCG nO < LL  =dNS 9 !  )` rw ? \YaJm~DM3Soݵ , )9/(Crp}ާ Xݹ0o@eK 'G uޥ$N$^#I֠"ٶ$ޖ #k  %  T ?   Wkt(r"8Oa  +L,s [ /v`DY  D Y  T E   x {  I  PGa   U F@t` U^ _ eޕۡF6Ҽ g` CM>W SVg'p"aK Cu/)  0f   K  u f 9  #|%&&$\( b`DI!  q=a )  N V  W P v R G  d ""; 1E92I; 2   '    , iB  qFWU& \q+(E#jEczNE+u!"w&o6.U-NfHB 1fYO`"r m  X  W 7  m   H    C u A v    K UM     8'O 8  ErBx8T8lf nB "Gw  dR 3 8  N 1V6u*Cgu*xy xPY(,0B&Tor-p @  Wj . M  }  @ Q7~3p+ [ E  !\!!2#%!')))&#! A{ ,  jt5w9Xx  !OO D (S bWF`B7w~G m r +K?6OQMej mR WK a J]~pJ Z, g"##! s   0 Og  h+ !8! !!!" "!!X" ##$% '((V) )_('D()l)(''&&k'(((()&)('&# ;l~eE  5?w    nXD9 m y , Rf9v - m, ޵ڢֻѲϜ & j Л FٞڤW2| ?C _1C"#L!%F&L B  ^xh %w0 ]7< \  T=1o nW  .J sUN } V M:#  rt     Gw  K  7 6f5A@y4 vEt  F j4JB  #rFX"tFo`W e  Sg3Rc; Y  tA !  / :  qx        1Zl~= r ) \ D"  8 38E8't Z;e2x ~U'P4Cں۩vHp /U (312$3JE o ky,fQQ N 1 u f-   *&gwOW  b\ 7 - Zcr^ \K  Y g rO I Q f~ >@{ 7{P95HtxzMZ' ~a/6  ; (K6Ze3  ^  w  " :LB SwB     y  B  # H & $9% 4 ( 0"#_9!bw&Ha   , ~       x03}$,| kcm5IoE)nf ;ުHݗ4z =,$TGc ڣZ fb a 92[TJcVY+bUs]&G9~ &@yoc P c Z 4/ 7   .?  < T n |Dm1#_] @    Ti b S/<  x [?  P  k ? ;   n  L7 '5N %i 0 >   h /  E n  -  s  AF M = w   V (v *     F8  w  yjWC?/#}?JK $dIsy c |S0wb7N4v`P! eU    n 6 v  ? H Ih * 9 y * 1 8 P  6l  V i  r : b |    *  @  ( ;?$`(( n ~ )  + S ( b(#y%e! l ,  =5"a  xM1G!wG'(`'B B }׽ؚ|eTW N}.UYznI - e UA )o t f ]y  Ctks  uE 1O M3JE!$&(* +)''''%$"s [  ^!#E&(;))0* *))*+*)((&$6"S_!B#%%%%%$$p%%S#  8  " W     6 ,!  7}0G  h t ު$`uݲoX 43j2 yNi6o]wK..     \  \ V    oB$5cxYy ]  }  { O    , <   L *  U   7 qq l ! C  H x ~ Y FYZ,}P6   *14k ",# Z#)M&Pl+&*)dt&H/ihX21 ۿXڹ׃פ$ / ,u)gg[Q[ r z C \iE = Bx T !)y:iMedTww_8 . p NK!#%X( +-/0 0s.,++)'T&%#"P""! 6  9 \ "$%$"G" C!! xZ9Y"{ l   zcC(wf+S %>Q;Mܩ އߋahM u.4:!/ ,J \ a uAe r I J V`6i#ikUI N 1  mBe [&T!"$&'(>))((\( '%$$$!"  !!! kz   #  - 7 0#A wE lZ  Z  ) "EUm[  P)a:k3X\E4I  Pa\< cQ. S Oi!D    ~"   +  upB 5D5"> S @(r5-Dh  G!a#< L     - I  - G > = +  1 V g!f&&Amdd-  e3\1 C)Ep J# 1iwQ]MH]_ ! fڄ܌]@$21 {^ P 4   s 0#D0#%#t'&#|Z$ !!" #a#"!!! jnZ;\r !  6  $Z (G$*')*Ch(](2#T#%  \  2q4TzEzW(6aa7f+e3K ` h=  s! 3   R  8>m$0 e 6C"0 " t  S ?   ^   / O2'aEw"L   Xe={dO `UQ !iEj&k5:_ d6L A`!Z?y-SFO | v ?  Xm$sl3 V rw5  CTfQ6 u5 gsDZH Exf  PLZT\%j:e#9L<E> (V(  n 8   ! n P7{q;&_!|UC{Ui^}]'JUp ab%To?}t p Nc   ZI *| b H c څ! Zb ՌX ԆC܃ ޣޥ vܮ 3@߿އ%7Rre 4A $ B A--B>="8Hr9 c  L8[AZ*X,2   "o" $$$#!.CO !"! }c9dQ f iPi    |Y Uj t /#T ^  ;  z'[ qLC`/!q { (8 @] m# $ '&#!T&$OA h=q1X0 4:,   c h   E D aLi c G,, '[vnZ    I  i  > , ; !{ d 6=o~{ ! ? ; H z = & HE *    \)~Rݒ ߸j ݃ % l ߜy؃GֵK\ߝl[ iq Gi ," (ZcV=^ , yDg-F  6    _ -  )?Glf 7 m[ k  04A k < 9    ] Ngl2SF |    O G 1 ESVV_pݶ8z5n[hWv2`XZNr- j-,R }7 lw'B  # M L#!!! $ V#D &! h w  L   < R  Q   I  {  aC    y  /2QI }   X!!!""!!"""!!""!!"""(##"!!"##$$b$$(%%6%%&())*+m++,-1-,t,,++++W*))**)**)(<((0(''&a%$z$$#$$&'''()('&%k#  u ' CF J5  6Vi Gh_! #$$f!#G4$ 7d02 Rq Zه[FFI S[  lv 9 4 G u h   `PD  V     ; 4pwMO {5 KVToBWg  f   j < rU$p - /  e  STI  = hO p    {   S  d I    V    < J   L  M       f 5Znf  $v" ,#@#w($V%B$ %&F i1Y1iZ ! XS ~d #/~,/ k/@ a 5H )    P k  . H& t>A5   #| r2%1: ~wd ,* O  z+Z   u    D { %    ? d   7    /  }    Xk mGSBl ]B+ 0 ]=ug*U[!s&@ (t/#+3,j,F!.2r .oe/.j.&R'P&"z}ZKAL) HSG H Z  %|RqHg<    7   H  9.o3 x ;   T aAr</zW T' & T  M   z[b$E 5$ Q ]\m[Wr}.TܓܺKOa m/ b r0Hc;i6(4ub l \#*; i i  { <8 Ik   `    mhkv r  u| NyM|zrP[|r Fs%    NO f ~9OB,h@ pB gIbq5f"v# 8] 3U  9 pG Ub m "  . &m(*% %  & L $ *!$n#"!s Od #!Id  L 0    i iu $7 g  } w  g I G xs k[]~d$SIv}Z*cn|s W M J qq-pD Qe *)!%x! Z, T H dRT݈*g*" ' x _]NU "]l 2   T  4   ?  + Y V m Bb}{r^ } jR ""$ %&&''(''%$$%]%%&())*+*)( '%"  ! !  1b % 5  }  e u t f &}u'f G +ف ь҆/ݱB&W ҆ ^@3߼7 (k8#\r5zj+. b$up    3j[ %0/ * p Q Yl~9|H{`MhR7 S y  U/@#7k$4m)<dD-tmwD  w$ [Gc`     Zo"MI % h r X^Eq:ask8w9IEF 7q 3  S Mnh/N6S n H  X   8 ` G #8_AK  f  _  Gb < * <&!Kc>}u DM  Z     )  P 2*6s<!!rt k9t#R )7y ELq_xZ.z Z %< h|  Jphl  !!"#$l$$% &&&(''&%%$"!H!! !z!!,""! J  e %     a  _#A J o}U "#%')*,./Q.,z+*('~'',&$# #!s [ID#  j 5  s '         Z QLUd  ZW3Kb^ ~ Af@SB * IjMoQo*X&{Ai@^07E  w 3  M d 4  j   m   gT# M   )Jv>v_    O  !F@ 7 * o  t 3   'v, r 0 l<v\>L W\LMM  :    $   Z   j  l  j H  o     8  C O[P n}  X gq6 ornMoI 3$t9  < b [ B R tw0 r ,T d ۗ^ ݺߟ 9 ( q   e%  gk#BJ@b'z H V'  2 L     PJ# b  0 yf    V    C nx'Upz NA  2  9 ! {]7 !"##""" Fmu  '    gTR:@'u`)xskS W VC~v}MC0\l I z(r..j'p\ s   n  ^  }    F @   n1 aP`ws Snp/gjcHqg Qj d/ = >a d d   zp).z y  ^ [  iR V  yu B6  8kao>yP l  [:NEV+zkd & ?]q ' G T I( ysT^#\ twIj.}80NN ? c BI4x3ee  k 2uH   C   \  " \    m  `T+f^<gD @ ( z xy&  a  q ) P 5   >   c {0  m GHhKo l~ e d#c)D[݌ߍG| 1m$V ] 7   C  * Q  vcRD0\"|]K)4E Y    ] {  , ]cL c  CL  _aOw)4 &  -   R[%O.?.Y   z . % YAV *z?  7~ l#{  3 G&CP; |[ < D J @ &1  m{ r% hYtVK DB|0 B{ 'M m   {K"_Tt {|v  ~u      m (  0   f W   _      f  9 9l   g     de% ,2%}$$g*"*&S$T#j0"-eqP9.e  f  d  I  ;- W NN |;5yG3f Bkx  0 |    1 t @ 3 r KO { #b1"K!["!# j}!~kB{y}|qIU(  y  ca[$ib$uE"> h   "8qB M ;p)  ZP/!!B !>+| 3  c fRj) bI 6pQU${zy: *i q 0 U/2R|9pz  k1 sE> ym2 : K &:qkQF U) n @ G V 6 Qjp  $Q[= l r | , H n/ #  i.1{{@v ` /  Oq iAPkM 8K zs  S B  jz  B&h y! """#%3&&' (B('b'' '&&&%%& &%%%%#""#3#"|" "! h  z' ]sw     F 2  K Q@- 2 ~"; @b $qC S0R1 %  E74x56DR\!S!e 7wyOHlbq p  ,f } E$x0v-po  Qx|9sEu'O a < M  u4 T =y_ [,<2h7) V E p/  5c L A e  & @ ": . *Z ] .\9:N   ^  X <|o ` r$>     h r ! a   0 t   Q  r  I (2  I s{   s     }7  > Rf  a      *u[  c   I C0Y3 ^I >> As   I 6   P  " W " _4'a z& [ vV ENb [ s9 g b  7 . _2g  "  < k- -xB \ t]j_  ]  ]  S h  f  ~Y E! q;.jUMQ] DO8;LPI ~c<\g!!?!_#n!F!*$ #a T#HJDR ltLZpPX cJ+ 3t#]&a{6]>e ,   Y    y p  bV!RIZF yM A K    P{- #-@ s & G Z df\m"nF Ou 2 K7.TmX S[Bxqu]@+ +/RH } mx]  < Y  y~N     r qp ?z  t -    5  (   - "  p iZ  *uk  ) p   L  "e  FeIg}Rf^_e* brp Kl<n  h x q9UC>J t+  " < n  aLT ^ ^x  a  ] } 1 B  x FP R  H\LvR    5 ,  % w+!I+hV8_ q rm} E/ t5 _lm/TN" Q~9Y     & ~ C`m8L    " q  x%aN 9: z w t ~k91 r 1~ O % -m 3. SZ a  z2 o c/ A+t E.Ct_o3|=9g|rvuDQ}gn0 U   [ X rJ`X   S    >    *"""! I o  z w jd  U y0Z =  C  l  / Y c  ! 9 H q  +  R  9Y  c _./iT y H" 8juEU*D4M | {!e{6 ? : 2 $}#!#N$!j!5M{w5M|| >}jZt Ch ] w=[oq \?Lz K  x  C   B&   W/j~qW/J" u !!"O! .  Zv" PH;6V A Cw |7t%{s % d)bs&pk Z Tf 0Qyh = <$yPL 6  = D f ' 2 z9Q _   I V   q&+u u 7;  L[sg"9=E KSv75v!  ET  S ] a  y   % -@ Y u< d   k(   c P^ _! `   3 9gE="`B  C L  E  >5 c5 v M` A ! B2ރP\ O LH4W|[ )41l0}  /u K O;    8      :  r    ;4\<3%e-դݥ)+?S/07O799>WذAB?DOF#GE|GN"JJyFm`?%><2I0$, '  "-   r  l 1 k" (F*'!   4v] C pnk)7  !J ) 7   V 8Z    J  ! N Q-H,^ p z   Y ' :  E`#M ] AS8H q: wrkYL l  F gcPf`   mQQ@t X IXA PJ H ap   p  ݍoT!!}.*%P0X)/"7$812h 7X,~  A zoԸV 1 j(".O'(I) +A),/.1R,D&i)3"\ %fC  u]Qi ' vv"!   ~  _ =Y 0 [! $U&#"F&$+'^8'.$ %Z"%*+("!] m  +f J   h  0  yb[}1id  1   > v  xk z{ U]  F 3h[0v*cbFA.;v.ө 9ڨ`ZtCXW dfN}lX%аLݲթlةܜޤ baMg4Ekc6"g g  u Z   B' . V  v` 7 M!$%&')*,.0/-*&!!F$(+.00-*e(&#!  XT    R  8  @ LhK;l u    [|  rw'_7GV Jr bV^kigsdP\"$>#G(O#h&%") trQdD};>ic $  {~f#l E W [  @  .    LnL O  {@ f   q  [Z:y  # nf" VF/A5 R PsI=V'>q  .z  o}^5    C F       I J    [Szk   Bpj * C Pv a q b\S^ C~>$cT!ri; Cm 3_ R  j T k  (d a  Q=NW   { ,lo1o  v   O H &  5 ! ~=3 4  kA    kKQ  hl=w t -LVbO("o & `=8Q{]8Bw6MXsRF k9u  *& M '\ P W_v[    X  c   Dn) f    + _- 34 . ]bc{;As:}>_QF ?>~; x     o  (@P >   # 6&( ( D(%V,,5-OF2b/0FI4Q3 3 5 . i.0 ,5'(O& ] O )ms+   ?  R * \`Q[۬? S *։ۏhu߬j|x#Z$&4!%$N*4%\'A%#;$s%2* Q$u% .^Z J<a zP ~` Bc H  c | f 6 C "N`  i  U @, T=q7x t 0% y F   'M  yu  [&| `&? :B+  DO [ aOQX> t<\ DtB v=#^Y SAB[69ޣ8D6+FV5   t A Q Y      `E   U )jU tD1zc2~  {  :Z@i ?  X  Y  yW b !$ &iAWrIM54.7j>'b b P'PU D [[ C  z a91L =3   <  #  8 Z   R  O  xo9~ :q!-5oVL1f i  j E  k U&{ y  +   4   xP%~4p5 x {} p iB : n- ! z e .nH  4( +I <~jT!:s .dg( Kqx 8is@k a " -0M # hw:yj qtr-(k ]]Z^#(W++)&!6Q")!%)+.,>+)'4%!4t4GC52 #&7(S(&$4!1-.Bc-+# { :bin   " K;(=Z@sc {) y } ; pߗ  -gvZcX< oV: .0 0 4 :@ w +!  Z~. _ + G  d Z ^RaTX & y Q  n kw ? q 0@    l p K  T k (AK  |e00o   H V)^ ^ o n % 9 P< on 8F}9  / 7 [    v  w   {  , s&Q1d\ # Y w Z  ,,1U Y.CdwsbUKG1|%|A)c = i]Wi-fH!A j   bgp x  J   1P   O    1 1 t i    M    L F  o8:+J \U rH41 ctH!dJ {XJXq{b '(x 3^*->|=^  ( N Z`1R'5 l  I  bk  Y K L` I  |3 "       ~ _yRo 0l q qXx  C X>[ e " r f~) !N{[y2 T F>|!j0%.w  w   8  *  : Ea _   ~   TK h )8Ro#Xo [ E }z(I=[* $g nEGRY<{vi>"S )$&(p/,)-,.*U+S&E&$~#Q"ZUaC + n /jh& ` Qw z H {Z ~    E   Q    mTV {    g s rZDj    |#  3 !) W^ K]*D}1r!i1 ]  +s n.a  M { 4  < sq 2q4 N X P  0X r m a m   ~J(X-u 2zZ2UgW p    8  3k )~VbV {K@ /  9 uMWw<s Z  "z# Kt%7 9S # s X ojߖ ۘևH ߘ|q &0|`H\@9yV Vg  ;,a5<%T$ > " n x  $"5%wR H1 E Y!!! W|v  f  +~ )w l V !"#"! ^ C    L  s    q  S  d   2 26 A 6   pKn8|[i|5r2  Fi&{vkv7ij~m )p&= '=zfz.p[U?{;i h xd  F b G  n K  ( *r&\Zh T!U"o ]##QJ 'M  R8* ^@    %   H 5 Q g (  Xy7  l   B k 3  _/   #   2 { 5t M u HQ~<E!#Q'hY k6j .6  HD " f|r  XC  }b     \ ]    (CpH @  \O_  F= r Z  G  8 d Ci t     y|-8p ; & W-v8n%L! E"$#U #`_/ZLqW[ v*npw^ EA.H  ] B<_o}MH3< T  , W oy TN(U . $ n   _ x\=YS} ] S   B B t  7 J R IU o    m :}" { E  " 4  H z   ] % YLi  j    BG<h ?   <@n  X  V U m ( hdn  P  z   D  >* ^Cf  a lf.6~ [ 9 q$ d XA om t 2 > d]Gle={,udk+|),l9 m k 9dV{.WJ#+w"L?="7X L ;fi0 ,%ywo &   _  s R   vR{<    S  c  ]    4 \  k  b  {  Hb - Ic*xz.2^@m k s  Mr 3 .;j7aP:nF$U{+c    5 j U : ~   L["kx{#btfF4-eVs9 shbhOM*&b 4$iKUxQh}L  " Z(*Sa-q# DjmD{j#| ;8d D  ]" e  WVBk L|7 o  Ru o`Ap _ zy &vlF r    B  w  ROVA kO<D?;% h } \-e V<ot~Us'!FMQd   w 2  &  d    * x ~Y ~ M   '   Q Y >$cSZ   <'(?7O$UQ&=N{uuPXTn *uc9T-)5  H  e 9&FL(v vVW H Qo ml  FA   6vthq^[Z]  $      ; }i Xr{jpr [38|o A ]UM 7x(Bd_ g1#bmFvoKFPd y(}$ ! f ZQwT .nsP:J  S       ~  n    _  z  <  E P  c x  A  r A m     >  j  nsB^_E+Pg"Uq e@r]T} 2 s K2cY.O 7be`?X rz9f <) sFL["]t2m         . g   Y C  tc  ,e&} 9  !  +4O g Z, G^ fZ  lCzg     I    + {  qr m  ] Dap x8u r\ [; B { 6 ) k Z>s _ Nq P|ii\4 9 OcYY^`\ st#.#a  ~  T q "  u! ZY T P[G     \  ? e}  ) M j      k i C    yh ~#  l $ *;C<j$@?*slev pcE 6m:       f X s; k* No   - @   } b  ]  ? i u{ Y ~ E 0 !   O ] \'c\m]??f8wkdT^   |~/t ;    d~  TL< - v$Zlc*8ggZ.B] ^         \ .e  >q Q Ex2 k ':a>/;ri^){e : Vf   J      Z  T g L%1 %0 w   "} , U   0u! m7! % m 3) $9Z P G }  ]Yn< 3 D\i RP h vK`u40m    Q 8jtOp *  U E  )u}  |  Q hV 1|   1 e)FS Ek< { x$0~Siw ^ vF nA[gH +U  T ` ,zyx#q,s)+t-t~ cnSD t -& ,  n.  L[^  eJ E h     Z  X  YBnly    g ;  7  n   ` { C{  _  s  .    &  M C   L  m fw  q(Fi}'lPE}z=6k D  | @ v01~PSq}>wgqk5 lWKDG h ~ n kv eA ?p E|rL Grj  _& |   [\x} u   '}x oZmiU )&}| d    F  E mwj C ~ ]F7 go   `PT d T2in`[_9 w  &H 1 <").|x&}ct{2%5Hw> $/ ;@dh' $   _ O    x  .  _  u# l >    { * (     M   TmY6a uw!0"" ,Z/+ NVS i ^ AS wv*   w4 # YJ *r k1  f? ^ v,!}.!i$$0c-@  f q i"}  = } " VF#ewLG;p -a *n 3 !m'F   '  VYgUGE_m<G   C b   yi  i t {t rn ]  2b -5s MMi*9  k,  $lhLOc0 v6.t6iaT 1jb }r]f P .s  j, m+4 sj   x   <f A }  a ? #  4  o      ~ %          g F  l  " vX)p'k"|a@HXvK   ~  RB =  `F\mM&b7,m)!}m3%9j!&{aAkI    jaJ&v 2bpV, Ci K @9_sQ<JJ # _Om]lA  fz/PU#  pvh[ ux3      S  } -  ! s j  #  l  V        v]ybz! v1  L R 9 +p &&i4%^^}0!l2 =f t UQ Y    ,x o, $~A vL   # ;   [YvE~jT $%[_R ,)e_p if$@`\! F#"#`! %       <      v rz K& ! 5pTT :t F  v(  X t7 j j9 fRarsbjC\E)+ r 4 , y#   !     p,    w-/zQ{ \ ,d  tCD/ B "jDu6 r  .ot/ O- 5   f _   r {~ z %|gE  k1~o j"q(~JL u ~r M W   b -nn} MX ! C  {  ,_}xW vW "nsgJ  pPDu kVOn( bms~4njv{y{{h    i` h               ?  b  '8Mp-iwxq  $  )m  p !  ~2aY   CH 2 ) ^ b  n q ' wRY Z ?n2p J l}}$j4C1 r4  w > q              "  | [ b J#j {'';e hA ~ lYJu3   ) !  +    =k>oZZWdN V  p H -x  5hdC>k tQP H  'Zim MZC+   u0tzX  !  z )0ZHPP i[zl cr  ^  x v   6  >  e   != , M`G    o 1   g 4  " ( K" 8m   %   # 2  c VU b b  Q 'XD i3@ ~ _UN\: 2`X;".t 2 r/.x !{ nD WJ\{n }  i /           ,  q  &-y )s=w  rfA]U$s-1pI XTaz./ '   )H $mz:?10cf 1d  c> '~ZA " k5ZIj:\' Oa4i  Z  b d<M aSX<hN 26a   m  }   D  M ?       r YH ~ -%  wsk%6 % g< - R  n5'@REbR_S 1 # s1#5t z& VM4 : )sXPEc  9] r ,.#w`'?O   &  |;eq   *    " {        )p %  0v A9r : eAh ,t    $ xv_8} ' ~4#0%h ?  M 'V y =  Pc<r j Ng{sh~y j  T F  &    "               )p uu } L[0v! /EZ|$1w   !#   q 4  y  }'   ~" g`:&H]J  8v *~ {:@L;(gzS HVDr; r +         " }       ;e  +o $K/!*F 5 | , d  -y8S nRI 2 u* dAg E  ZA(y v8 :h {$ 6qcIh  "   v-     aH     |& h5  % s f koy@y'2 k/ w!x(    x/-s uG`;  ~ "  N1$J  m O@        "      x*  % x" E*w^}7hRX1      .|CZ}qk3xMn3g d b.+%    ,t   BiC 5n  "   (   n( u,~ l I } PB% &   t7?Vc1    v" JV    h  bE'i }Fj 5l_ _'vvk<MK]9> 5     Vc!ps{`;   t 6 9jw..} &3s*2z ( {    ?] d2cok  $ y)t2$ y(  z1}4Lk,97M Y/m   &!y1+{3u,  z 3  x&  *p;&oab fU     h + l5  &  9 b    $   C \   ~]&xSQ >ie +r2z0gz #|    w0HS'2]  ~i <buwUtuC e  yw \^ tf ( Z   c6    9 uf D   O  a 02 K  J  n} V }S 9 { ^  IX~Ci9t lG4x!ea3}77@a_u@hw g  t# US  $ $} "~#s(q1~?d y""  (s he2< lm 6;&i8/ bmnr lnsj~ |$   !  o )   v   <r%{ A  !  'y&w       0iPS` Bw+(}/s X    j3 ! e     |+*%  k>  }(,|) 3y ~ ,BRy`jB LKoJY  }}d`S bP_ 4 }% +kc ,nhVMn {?S   >phD h0TTv+ TL  ky{&1lB ]E\ w3 )  x#    c ( -->a  k >@Z|p+  s@  ESFg     b{ 5z,} E` 29g   -k}3kL,o5qj,  !      uR iFVGhv}   o  v4   GO j- oqq^  8 r  ! I>f$!r.&d    q4 *$T tv  V|=slI a = ) 5 6c f ]$ E"VX8fNc\ l= ~$~$"0y  +y $@}mi-*   IZ1z(  " e:#& ~"aCx2"n8"!>\'D>puc p# : (             2 l   . 9l LT w 0x1n#  u /-d" n:|&  w.      }#   v% ZLM  WA"p8 y  #  'xu( zt" ~"x#x(r. '   ) M!&I R l6 r,$~  Ja-o 6s @i 'z { !y   | X    o:x*[I ]E  l:w- ! %       |* #)~}"u= z  = q  ~  n6:l4y&}$~# E  V O>r v.   $  "*{)|#(w #8]`4 }#  w0&&)u x(2w   t,fPgd>&2t!+x      #^4 p D af\$ m:     ) &.s   HV }   / 6 m Df!  *~ 5c\:   /( /    &4w "F { ;vX c3w.y1  }- x .       ! ~    !  '    0r/}+.x#* z&{  eMb 4x 5x  |#a<0r%QX }|bE)o. +z h$;  n= Ah  3s    |'  ~! |" Ha   t7! 5t  2 2pL}~a: (wH   r+~ uCt]^LoMV!|    'u   *y (5iw&  N |l bG k. -}  !   o.# %  b= (~* z /  g?   $      z #    #  "  " 0 h % u * "$y#! #t ?p     b    .u  )q ?(""5w     &|o:3 yZC ' w* $  Wo{ v       >j(&?_{ $#  6k  9 y(   'T x  k; 2 o  u3" ' f6   $  % x+$$ "2bOWi ! #6r     u6 *z0 PeR],1|~, | - 1{Rw |#!~((~)$ n+    #} S 8 kFl*z w.!({,/dA WJ  f3 #{Y R D   ~  n WG '%  } "     & + x&"5j {#ISn#x +C_v #    {( ")-  | n,  }"     }+  v ,$               2gYB&3t     v3  ( , _ h ,y(o62nAd #t7}jXM]H v3&|t+   .*'z  "   !  !  p@     $  t/ Q]L{#+v  #    " #4  iA 8 n & { YO  $|aXK!q      #0w:m)}/t $   u/&    {" ~&   kNYWSe %l< #  $ jIk U}%  t5 =e( t8t3 $ 0m') |  %x Af5"s?i " %%:v ~&   "  #    z&  ~!   y1$p) k=  k8,j:?d  (  fc ON  .q   _ ZA5&t.:f ,&,  .4qXB'  2r z, .u}! w.% q@o . >W z  1  r9 ( @Z x      $  /|)     aC8q  $ "  $   #   |%     |+*{    y    6iz/'      &w&| $}    '{  "  $~e==h|)  {+t1%   |% u/ }.   l6   n:=h  )|  #  - ~ "| e(, -{  #  (:d/Ze-  q4+r   (v >p  l8 &r @k n 1p=|ZH  k,~ # }#+   #      v(     ^CB b 1~ ) " *     j=:r  ! }}oSL      &        #z '{r)(v  }      !   w%      \ L (w      m7 5n+ 6s  (  !~#(# y,rL[{#   s0 },  u3~4tXA6z    .s9s    f30}3p"|    $|  $ " '| n= *z{0)  )   !.uo33scLg8r}%cEq03r x6        .p %"z2 x( -    /w xy3y/lo+  '| & y+x  " )}  u2"( z'/|'x(  "  s,*{  '| + !%  !"+v"   ~'        (    h<      +y  'v % ,z    z(    |&"     "   $    #{       $  #|    !   o72u  ~"  # ~' s8 #   #   .w   ~!  }        !|  $ z'+x   (| !{   t-   z+%{+{     &1u   "  ~) $        x,v. #~ $~    &|    |   * %   | %4| % v$       #n+({  ( |&)"  ! &    -r%o     $}   ~  })! u=x   x'      "      #    |$      ~    ~#     '~   %~   & / u      $}  w10s  v7!//z {//u  )}*  "  ~! ' ! w,    *z  }&x00z  ~("    'vy%    *|  "~ '  " sFq  u25l  kIr  $ y1*v ! &   $ %  #       ~  ~+.q  "  $ t&      !        '     %      :]`3           5\ ^4    {!    !},&{        "    #~     "(} #   #  u* 0t !  !     i0    ) r/1y {*+x       )y  "   " !   $   ~-(y  z$  |')z !    ~ &    # | &   !           $   {& # oGm #|  %y u2+x    #} !  lJj y!   $~     $   |  }   !z69lu'  %  !    !  # & *" #  !iKk  #|r;2 q                     %   "    +pr)   #~    #     ${   !   ~    |!1dS> 6r  "  )  "     {$%} x+*!  oDn    )wi?>e  k QC # *     # &   % y-1|  #  ! %   #~  "  &  u w*        -q t*    &     #  $) "!   '  %z  %  # |.* %  @M~(    !#~ %  !| %$  % !|  x1-u ~!  !} !    #| &  &   3]`7    !    !    "  $ }"  &s//u $  }  ! &   $  " !   !  % " '   .s t+    %        !  *   )rv+  !   ~!        %    sEl :R|)   {*      !}   ~"  #~  ' $    " s2  - { /pn,  +IC $ % x y))}$   "$   ~' "r>q $   !         }!  ! # $!  # $LISTNINFOINAM"Small and regular Nuke explosionIARTunknownICOPunknownid3 pID3@e  5TPE1unknownTXXXCopyrightunknownTIT2!Small and regular Nuke explosionatanks-6.6/sound/32.wav0000644000175000017500000000170612636021030013056 0ustar apoapoRIFFWAVEfmt +"Vdata (        $ (,           *"6$@  B!   & :&***&        4 0 .     ޺ (   ( ,(4*$<  & 4&Ӿޜͺܼ    , "&     $(.(             $ .&   .*0(.atanks-6.6/sound/15.wav0000644000175000017500000021050012636021030013051 0ustar apoapoRIFF8WAVEfmt DXdataVT6gi{V2#f/D,\)r%jߙ^/+r WMLi~q@m LV5L d !$Ka%߽ޠc  K bZB# c S޶ ߴK  x1v - ]!  *he %& !6  ^ K >0 w q )2{ o  T r G r ? j  ; l $^ e b ^  Y d#?{ S  z S  4!K  c~^O8 %Gߑ Uߞc6D Z } aL%iߜ;ߘ%ߘl:>!e P W& + U & ! N ,   E :   A ;   : @  6 B  / F  $ I $ # C /  ! A 4   B 8  C >  A A   H C  I L  j J L!U 4w A6> l >Wݡ߆ߟf"߂ߡ ߠ ߤߦ ߪ ߨ߭ߩL߰)ewt 0./: N " T ` oߟ82R  0 J   uJ ! C   9!=  mM Y x s D {  V q _ !"vXLq  p    vU ~72 J'w  U CAC4l-}߼d&߁9L%\\Jw7߉"ߜ߿ ߭ߺ߶߰ws߈ I90 ?"" - ( # ,  v 7  g 9  _ A  \ B  dq  D w  C q  C   :  {8 R! WK M Y % O' ! .  .  0   6 ^ Uz *+ ! 3 )! 2 p5ߓxޒ-'3Kk4zl;y<ߓ;O17(S1!߸ߝO|XmF`nZ=ޙ~" ? H2a1Cv^f adw 2d AV1" J"!&0 !z#B !$=w Oo% <Y/" c! v Z"3HxBg*&_E { u h u U $ N8oA?( +OD  YO1~ , =m@x#,߰ߧ,߻/3Gt>?hwߑ 5pH'uBr[%w?w߱:{q4o|/F,;~q !gj D  ߪ >Y|{\S )bq< )U6[ o$CQ !W ! Ux!{ 7 y L   T >   o |= #+Q> ߫ߙt+ o/ # o g u } ")kfO߉" .! 5! !q ;p߸BOU[iJߕgߪ:A7cߠߕ-tDc}g Z/~ߋ? , T 24`n#4Oߊv6T Q u N:,&  q >!l!*߬ߍr/#~" - .)9T] A. Ok R Z r K v L z" !# %  ) " . "$ [%]q,KI3//5&ޱ߷%߫g.ߤ"@ߓJh9vMߧ! ߭^߬߻߷߽ߥ߿(, 5  | 5B a "G kwtvF=` YHp-"b fi a |'ߨ߅bA! d[ 9 c  >/y_ߨQ  + E_feOYbQWjj >! v} (  !.=#r  n h     q 2!d d]M ! = ! i/  I { X g * >m ` } I  1 (  @  : LtfEN #e $L|a "h <nzL8  3 $%ߺ~/&W ݡߢkeߥ3ߨ ߫ߴ߻߱ ߇cߧߪ3-58ߤ޺f߾1ߘߺTX, ;  !*~a M"@  !K HqߖݗiL x 2x i  `N"sry ! :"Jj 9 's e  k f F&7[ V }T . mHt&$ , ! X;߉} @.ߋ޻ >$@AOL $Wq{s߳߿߽G>N2OZEP 7 j _] wVNs !m <ޔߨ9ޘ27 .}]m$FPj L8 ! . "S ?O\-jmZ ߔmcߑ;7z pg @fDWh0(ny M jr}nWSzkH/l'&dDCq Jm  \ q~ߔ+<.% Fo k k Z.!b |Q_  C S  L P  j G  :!B M[ 3  ? 0  # - * $  & 5 $  " 3 +   4 +   . 2   , 1 +   / ~   2]! , d x0t $ 7 2  & 8 z ߵiߚߒW2 c"R7Za*%f~"j&f\9frF$  LC v  ߯߿ke@ _kCH(=tL.*ߠ ߑ"߉OdTt+> _-H "v=N0Q߄.'߉!@z g "!%y&y=NގJj1yC>[H  , ! j W,m5e~yIB5 ] 3h T I,N " : ! : !Pm2 D L !B dY3  R!C  : ! K}34q lG kH bZ8o߷ F {7Xq 5= lߚ߰ߩߗ0I߬Yߋ߉1kt߳ANXU6MRitGrH@. i2c@jG߲}[ X`^\T  ;> B 3! 1 &  6  H  &!T [ !g Z n  # u > y s y 5   } ~ L j "p O!]P" hmiA@`K <G >](ns  Q ڦd۬/'jx޲{p߶,ߐ߷22߾;TYRK1 !  ߙޱz 8TNS :  X :  L 5   > ;   3 <   0 9   - 7 #  , 4 #  ) 5 '  ' 5 '  " 6 )  $ . /  % / 1  # / 1   0 3   1 5   3 ?  / U  2   {DV7ߩ߻߷߲OK!kX~ilVGz)}M{ & N  @  X >   = 8   2 /   3 *  ' / '  ) 3 !  + 7  - < - E  ( Q * ] & ! w )  &+9 ! 2@  F  / x a h F k  pK(ޓ߇< >4}"eB\W 4 -: '*n jI&Xn RQ'ݰ߭ݬi z>v`aߚ4 EW߅^;ߜ>M (sbDް߮X,8xh[uHb'\/VߤFZ } X$m\YU[K  1  Y5 i߳eyyM 4"=L  oK Q!  ZQ NTX + & = %  - 8   3 4  L 8  ;/ dJ ! uQ'X9-v>i ;hgzifXXt04 &' zm DO1@HV u B W_{vR39ff "Z? Bv)Y O<Po ' N - %0 e+ 5m6f_ #fa;d9OW ?1^ , )!;f$+e rpK!߰Gje?pA-FD|%iM#p&;>u(&yj'M@@ JD` _} <  G Y` il  o#!X u!S nX +#b@ nlEf ! !# $ .  M5ߜ (Evz  ]lBZU9h p9!j  [ tN F  B  ," # [$ G $ z - K? Et# x!2 K Y Aun&T[ 4 k !CPe/c ޜF"v9!} _DHz4v 7[l: M | !  Y!U 1O5k + #Xq"qRuSsT}9 ri#ߡ߇*m6ޞ߮Lߠ9ߝߠߧ߭EJx,Kw-?F[A :" b {&ne. z:w8 QRaYߧߧ ߧ ߦ߭߰߯߻߻߫߫}4nQ.^)# ?l a 9Z 4  6  _ 6  P 4   F 8  = 8   : 6   3 :   / <  * = !  & > $  # = ,  ! > .   = 5   : ?  8 H  > U  9  :n'u 5 @"w`sXh[IZ f n  >]x(b{-~M߭4@) :ߛ߫ߢߓ߳) d%ߏ7ߧ6VBߕߵjn}FVg#^Qc^I1i4~R߽ߪ@QUݘ\ݑR Y! !L{hqb"   Qt+VLmZOH " = ! 2, !$ '|G = EBv$߭V2 9 V  4 P   . K "  , D   xNF9 g  2 G  , B  ' < (  & 9 *  # 4 /  " 0 0   / - "  + 0 #  * - & " % / % # # - ( % # , ) ( ! * ( ) # % & / ' ! 1 % $ ! 0 ,   / 8   1 W  am (f OCyCVe{ 2 =VX.a}48KaY3/28W-T߆ߨ߲8cE62)ߥߵ ߞ:1sq4*XkS[y ߩvIS W  ߻}oߐ|N, cyu  yBu5-GM!{ R  , 4 UnF~! w   U #X xf p _ <G1  D  ;  .  6!' -YwB B ) 9 \ zJ8% :!. $ | )  + }keAAEe3cx !M dl"Q D (/  Y^ iv$1ߤߧO WNgJ{ PbxN\igm mqu2^}ߋߒL;cx2}wYl0\1<#m l'eYsf]8"+ h~dA=Ll<ߙߥHihgD d# < rJIW` , b  +dlw B z L J   K 1   G 4  H 6  A I  < jO ?G_ '8^RLa?|_ K "1^qV kR fvm Q Bm*z V{.FX 7  m f5 ^ 31ߤ@ }* $ )zWJ߭߰ߺWV Jlxߋ/)߂1߂ߓ5_~޺.]el 1+4[Vy= \y U(Vk ' & >D < c = h^$M} (An Yz? .  E RE:߳8;6) 8^T)n"@ jl-BlKw!vB\ a #  ,H)uJZrj <1M  _ =GZPM7BLx$E>\w-t6 rTJ?{!D1IM U ^ ZY KE  ^ H * [ u  E B  h  - ( ^ 1J3  1^ s j SDuWFU|S=@yZ2B6 |-`,ud_^  :R`'JmA* `*\+i e ' N9y`<>d"X z `RvJ7TuMP2+*HHg~iU  e0Q ikcZ N Z$)z & q;v? l D*3 0aiU 4 yCf8JPll=p U[ -IO~F\3 `qh!Y k W asYn{::. Q  M I  7 F  / = $  ' 7 (  # 6 % " $ 1  " P ' i a  y `zHDJ(]]: l X # 0aM/'fu<+*TU  ` ^e#}s#c'x )sD Y  > J /  ( P!! !ߌ~+qd3(3yT c &ypߤ ߢA+\A zL1EQ+AQ O3-b#xߑ)6(q B4 H'iމ3#^y >P:$  K W !U ! 0l4Yxy1s  n  *  ] .   B 0   : 0   2 4   1 1 !  0 0 $  , 1 %  & 2 *   4 P  2~ } /   > 0   4 0   / 3   + 3 !  0 4   5 5Ucz?VDgM}YO߇ߟ ߨ ߠ߈;NߩShX0! ߯߭ ߬ ߪ ߥߨߩ߽߯߱߃:/?O, y f.4_ 'S# !+ $ % ( $ , # , # +1 !$ O jRAw#H*i 3Sy+ߕߣ߾߲߷ߺ߶ߴ߮߬ߪߩ߿ ߩ߫ ߎ 8SCx Fb a ~ln UY R fb%}*w A5 }  1 E  . > (  ' R ( >|#i6  2 Z  9 R  8 d  ; ~ 6X @  X A  > C  , B -  B h  m<Q  'i7A0f,0Hla4 gw d.9CPQ|p S+" mv _C@ds'b55[Fgn&{1@W jYD D  ? N  QI^;# j 7  m P { Yjr    { ? 8!x !g "Z 9(ּl C(E #V vf!\ +!^ G b t c  [  V f C#_߈߱ ߊc{M2}ߩ- ߨ ߣ ߤ ߣߪߪ ߬߯ߵ߽߲ߺ߱ ߟ߈8[ߒ߫w9 C P  2 >   ? @   9 A  9 @  2 B ! . F $ L 1  N S U 9u k h  = q  J x /b v6*F0?(O >QR(> G" -  f ,  M ,  B .  " 9 .  " ; . ( : /  $ H + ( d ( ' F|%߱7iz4u') Lߋ@Qgfy߿R. jM _`o7'LoG  / H t  r.   8#Eo"Y *DZ@1 ez&Jn d\: K ~1 f#mHxߵ߬eߗ%r =bLZ%]I ~ G t9b!eAߩߣ5 %~> G   9 3   8 ;   6 Q  5 % S[[  :  ?  t C  I *5Aޡ4ޚMc BW# ,=6 sS[im ,> {t~]ZhV]KbߨG[o߉= n1uv]~y ߰ߴߺ߽ߺߺ߻߶ߢ߅Qq!,d1N.c3 !F  a G   ? J   0 J $  K 0   E @  A O  ? j A  !7j s 2 5 q W$5 \߰&\0߶߶ߡNm( e&!f1'I,m+ 8p!a  a c Z  I U  0 W #  P 2  N K  I A,L &+ / Q 7 0 K 0hQn 6,@]߼߽ߦߌB@@V P # 7 ~  0 L  . B   * ; !  & < #  ' 6 (  & 4 +  % 1 /  # . 0  # - /   . / "  , 2 !  * 2 #  % 5 %  # 5 %  6 )  5 ,   3 1   3 5   6 :   6 F  / `  . _ }O߹ߌ 2{q.=Z`W{ m& ' ! I *  " 2 /   ( 1 &   8 +   8 ;   : Z  8 }  ^A!b   2 F   3 ;   0 :   * : "  + 9 (  $ 9 -  # 6 1   : 5   1 <  3 = # ) D (  " J 2   M @  R qWE}nbMt C[7L ߪ7߱ߵ twn- (;yw߫/uac;ߺpYU@ aߣߧ|oߜߴ:~ o=-D"] =\ "  CS,wFwwbr&+5{cd $TVpmuލg Z% J    6ߦ O$*84lb  /-D n~  #! NE  ^ A C @  9 <   , ?  * 9 '  # 7 ,   5 V   [iBYCYdwXߺsDox3km+~f[,߮߉^ z"6L%i0OM7d,(< 3> ! WE H  5Y> w(> !I G H  E  s C   w2-I 2 ' "  . 0 % ^Tc}YY3   7 4   0 8   ) 8 '  # 7 .   4 8   5 Z,! ` d j ^ _}xi\>.g9zi*5x>yq{ Y?!V #"9 hVV f T J P  2 I 2   J  o QPߵ߾eOߊ߷߿߭߫nO^}3 k 1 /DA T  ( >KCM : ))& ' ( g $ ) U # - T ! 1 \  . ~  5 ? d%|{xXy3NfvOB HKh!  ) 7 #  ( 4 #  ( 1 & ' - ' ! ' * ' # ) ( ' $ * ' & # , % % $ . & # % - +  & + /  % - 1   2 9   4 E   7 ^  :  s 9  coy^DO~zj q%߳ ghZmpbHj|t^bxr#59xg szHx>2cqB cZl0pm}aq_}uQj* uE s4{^b8mpr7Zm .6LWd A 0  $ D * <NK G ) ' ^ " xbo}rdZ#]" 3 ! I /  > ,   4 0   - - :  Q"z# (=u?fHA 0-DE|~7G[xMd% P q<O4&OJg߁QZ6 P y S  T M  J L ;2q+= 5 @ 2  A D   ?  F <c *$uwk d!v jzLM(woK{(4 /hzr0{ra o<.x'`ߐߊj%13wyߦgr U`Uchc{s+nrS vF _*  ' . -  2 0   1 / $  . 5 $  ) 7 '  ! ? '   > 6  B ;   C S  E z  F ! R T /7Le( L ~ M 5 b O  >D"(_eF8-TsFC3^xX~}߽Nߐ.1|X{izF! w%  "  , 4 &  ) / (  & . (  % + * " % & , & $ $ , ' &  , / $  ) 9 ' + r (  ZyLqzmoz( Z f g+v$2ߦ߾߿ߢ+16/3 & >  _ ?  D =   8 9   3 8  ( : #  ' 7 &  7 (   7 ( !  / . !  / / ! * 0 %  ) . &  $ 2 % ! $ / +  ( + + 1 + !  / , "  / , $  , 1 $  - 1 $  : 2 PI`ae #VzE߈h ߖHr߾߿5SBTm}ߩ߿6gUX0oh*,~E 1  B 6 # 3 1   0 0  # * 0 ! ! * , % " - O  { m<1LG # -  S * < /  5 -   4 .   8 0  f 2 a06V  =`e߾ߜ~Q=( ]W V M {/  YZ? S *  = 1! 6  G 8   : 7   1 8 $  + : '  $ 8 .   ; 4   : H  :  jjR@ 0  u~Wea6tD ) : S$? ay*:.U 1') 8PA1XaK.?Z^'\N6q-zB0SkJ&W81PY=0CWT.UCCf%Hjb % $  "i!5 `6߯ߛ߮B2Km agL/[X&5.JE7gwaߊc߾4;>bh t a k \ a S h  a  MBaQ0vydt! d + R3 y ( \GD%M>7 @lD'-W>C  W1JH1?@yq$ W +  $H@n~#( 72 0 >  zl5#1P  5 ) $ I p 4 3qE 7n J&Oj534:5L$8!vAHCe\5r,jS~{%7sB98g>t=YX%-  ` g ? kߪ߻ߢ߼&)LvKD M5tW~CP Er8H3$UcLro_V nb?fRo8'6& b 4 n N Ub & E! :  L 6  < 2   3 1   - . #  . * )  . ) ( ! ) ' ) - & & $ ) ) " ) ) +  ' / $  & 9 &  + i * |\U& | $ 8sr b sG D:Pb9d>|4XVI~^d߻zߑs,FAR/vjR^bY/S#  l} T W %   cJIG4 9   s@ wx7]߶Scaf $f G 8%s> cmgBj4Ae!gKYߓk"BRAk:JE{{n:H c G$N> & 0<& +H1xoJo~5% uO\#baqE Bp;6 +DXD 5f-G}M, ?U va]'  " ; 0 )gH# @W*5'L"Xiߒ'; ,wmN^(1@$td}"Ujjc,_jpo& .m z p-TPu{ 4  L 1   6 5   / 1   / 0   - /  / .   . 1   6 3  " l 5 K ~_:(_`8.~xL-']I37=5dK  @  Y E  < C   A F PK /1;l߲@:~Sm+a_cyaOOj ;d* & * S & % P ( ( ~ *    NXMBu;v*\;EW vy;>S4 & " ( F_O\QXl uNS0laQ) A &  ( 9 !  ( 9 $ VnD?g n~W0 |P WfA8U Q;#d*߬)3vIR~g  [{*n}B O C y L[.nPߠߙY,F} it T v ` y ;{ " (^zf)9*~.s/ k> j K h  0 ` +  _ <  [ R Y w R !q2l%Cߵߩ߹ ߌߺdG( !!_<:{ J$*D W  C E  C ^ B  M ^$YmBOUU 3 r!.p`dL 8  p 9  P X M{  0 Q!)WFo2 B   / R II5|3p G7pgYqr4s>+ J 'd&l u } -~d(߯E@|sx01#i1Fmq#߾ߺ߸68- _*P6o[t1Q " k a 9 cNF'V.ec: pߘNow?vW>SP`$E#u{31P%fsxt68rjBt߰߾߾߿ߺߦ.)?! I ^Y^j  K ~O0>E&W } G 5&e{PX m H* N 9 #   ; C B k E ! ~j[ B   / <60Y{_`U$  i$Fp NKSW  { i J 7I߿߱ߘ6-_S"8 <  i @ fA1K p<4xXgFW Zo "\  \  W f U \ S  N t5Xc"QKW Y[^. # ( Pt  CjHfjo߯ߺߩeNel߶?Hb  JGDU'Xzz`w^M߅߬߿߹߻߽߂. L9bRirD!}5 0s#Z6 " ~ q ) [T[*"!:  >  ^ @  M ?  = A   4 B   . A !  ' @ )   @ ,   A 0   9 =  6 L  2  <g%< e rcBh  Q]J"4ߕ߱߼߿&J4ߟ"(W?#V^nmP,d Z P N eo m ( >*_ # x V^X0 (?|EIcW Cx7 U   8 %  % 7 &  & 9 '  $ 9 +  ! 9 .   < 4   : ' /cWx oPb`ki'z < <Ky px0vqo@7 ]vKldM4Q cOu~7g'LO1& EN߹߿{߹G7/09[ ]#  X߽'= "e1y #S U$cO6W) I`r (wk$w~7)2/4PPBr(?B*b 7H]&N% # ? G%q ߶ W]߄W&>uf 1yI_  _ \e( - +  5 /   8 0  I 1 ZH"IR,^:}!_Gx g ~_(  n{!:+, R4G y L @ y H *" a4)'l \4߭ߔb߮ߴ߸߾oDߝ ߣߘ49ߋ`q; o)B{ku;Q 3 E+!P y P Q P ; P % R 2  Q R O :y^xR .g=Ut^5jP'}߹߻߽߻ߪ$S)PeApJA;&Ld{oT߼ߝ8+smP)HH+]5_Hߙߺ߸ߕyu M+?M&q`u3RDS p bQ <R9 c   7 .  ' ; *  " ? . = 7  A @   C U D 9 E]XC 0M6tn \V|U Q L R   U E V :r` 3 "TFd* e r !X Y ]  " \ I ^ q ,4 h7a`(3 <\8&K z!%߶2ߥ߸߸߼ߦrw\1};m5Z!(dpVr[k TcwZ(RPt>frBߋwS\=bn9 xw<   J ;   K 9   Z 9  B F=Y ^9l_;+/dOy8J . g`n a'_d K osRG  ,  2JHTz)6G4do o eAgse W ] vTR 5uVm)$AoJߑSMߐ\d^EQ{&   C!.  3  2 !` Rg8{ߺ߯_j?v[Rc O( ns>t )  i eE!}$ ߱h\W] [ = ) `  S &YD2W*_qPlM DF\   a f"8WdoWt?g_iI?߀ K@Qt i 4 uI@~a <  rH  ~!H r.  #fE!4r*:K zE&A 92^30 b suHy #hD t  aq rGGCU@VrJj  $d Y j g-7:Eh_H 84( 0 Wz17^h=V `i E{b SO trߔ߾@[߶g}qB Wp fBB @ ] J# z v s-%.9rM Ue^*+ "0*dy-߄Gqk 4 !1  d + ! X $ & # 3K "O)ߢ߸ߦ}]x 6 ( o fc c C c "  b I b \ k!3 3 v  2W>DC4*O#8߶[dXf@t %  x6i  2 6   1 =  2 J  6  ) V1  / xJy }G`ߡmx(ߐ&LXDf߯ ߯ ߬ߺ ߗ 2W S,gpr uO  H   >[B `, H3}E a  / thM5!@ `#Y } "7}aDu;r{ j]F|~"oY u  $ E + # P( ME jV2%>kvI B F @x< <   ? 6   6 0  # 2 *  & J & 4%H|b 2   3 F S W ^{A7:/ c; l%Lqt ixVDD5 ߹]o߷1ߋ߹%߉ߺ@O? 0vGIw U | cXt9b ?JMbvߤ Dߡ߼ I<߿&fhN+iNGqJK}C0X 7NsYvO5 F   3 g  % , # - \' r !  ( Y9 eeO" _xNSW 0v>Q/@txbS~_S3wI* 3 # , T *^ sqb5=ߚ ߰߱q߶,L"e`{^X[?y ~ X 9Cv 9?][v_{Y&w'2]jHzZk}e` ߼#4d O5 i   6 C  1 Y  wlGK` j NddJP%G->B'G_-'ߩF!) m \4%p #n X  R  ] M  I E   B >  9 : /  tW,bDmj 89<J|Cl&W1 &   * Fl z' L@akq" . l  * | . ! Z2 !" t L\<bVap[ 2Z JW kn3+jDߙ߽s?r?J3  6 L   3 P}{s} ?1:\߽ߺUaLro M'] FQC[AhNTi9}2ZBZWyQ0U%  C<w&  & A +  " U +  {/(@dWy >!M  } P L V . V )  X J V X c!U a"a2o p G  = qR<4Rmd?8o[ @ E 1 F F @ Z D } D !.S߼sl GI/BCRI"En R Pk1M`\bRN K߾߷ߋ?#lg߻߽߽߱@%; Sv w % J{ (BmBNT\.  &MmA 6)_ I C: \!j~</5$ G3iJ^I7 !ߢߝ E%#;Ykg o u /@$dHYGc-  !3 ! q 1 " X + ! c ,1CX'H@|f)E@ 3NC]xxz`M 8   7 4 #  ) 7 +   ; 6  ) : -?a ? Z+߾߲)q$3 LT 8  5 2S'x TQJyqk|c;E}q;jn1nT,OHW7;^]E4Lf*evUA F'f jns CZ ߮k*; $N   NBE`O3Y.P 2 .s!N AaAg.x\kZJ  zb~yoraJorSz3I TdUw8 @v O7v*tERF ߿߽ߺ߸߷ߡpuނCP`#+gm{Anq|  uXJd `  .d3qF$F@w 78 x c a ll 7g l lL{2 ' V /ru+ CJ*-& ^  \ Q [  ; T  . P % $ K 1   G E  D kn[ J `gF! cy: .[* A< ><3]P_nz'szRGEbJ߅ߠߞ߇KkߚbTR7AWMnTNS0t`[u Hz-!= . YtcN1C nM,Qep`>S . J 6  M /(   u\߳%ߥ߻ߺߨ S?G. d 3  : *  " 0 (  ) 8  , J  3 ]+.gD 2RkbBBA$L 3P[10h/F]Aq2߬<C])/ 5o?o1:  }2m?2Bߓߚ(VLc, 2DL9 !H e K  j I  J P   : M   ) L %  " G 7   E Ao){'[% N0\76O.&Z#߫߆RS9QJ?ߗ ߷߽ߤ!d;߶ߴ߬ߩ ߪߦߵm]iR!` L ] 3 _ f[ !1 5.JhI4@ w   < C   = 9   ; ?  8 K  8  xS A;`A>=k4 H b | ' B  E F  9/d @nA|ߤ ߯<&LBZT.I y;@>C|D2  y7kߔߢ, bHm    W/Zv=+6UU;|tw*8X4߭.xxA*QCA  >"/ / jQx Y , o>y0A$p#5UtTy  }GV4w W  IW Vkn! C 1  k$"j:A oK v oS '! !8: JU8$ZX\./O>.rk߻Nz =e[?^t:{9Bj{k,y>>4A j:J$ n  !g ?fFF d`B hB>l\ jK)6~߹tv-Uw3^L>VnU.B߾߀߃߿߽A0C!`SlG6U|8WIY ` { 6   4 5   ( 6 %  # 6 )  " 4 %  > 4   `UOA`FkVo}8'%R_GmN1$CJafvxr[M1   R #   |y W}9 D}!rPD%9 ! \: i! Ww  @ 7p+)A? pb$| Y j wT;D4~ ߬uPjub2?$ߩ jh2} 8-F + x|$EWVߖ+o%6 P P [ F KZ?   C ? QdR ]@eh 0 _ w|K}*ߔ"ߛ j7wvyF6ߵ#N&`Q -  7RQD 9  Z ;  F =  = =  4 A  * A +  % ? 3  B <   C N  ? q p6 g2 _>p{y# S$.7 { x_]_ G'Fh$+|Y߳Qߎ߸ߺUoIhpY+w<}yߌb\mn!.TM.f C.|k j \ X  _  h GK.dfgWcvW!u&T'-"X mn 2Nyn߷߽߼߷ߧ1 nA N!9 i !< =BW[ z ` +uj,5>s|~'IGZ9 % C V ^Paq D ~ Sb[g XSusp  E x > ?!lA C;Gu5y6 2|  )p{~B[߿߸߾߼߼߻VmQ'|wpfKXsROn,}J7GVjr30jvdeXyD4 YP4 8  2 0   2 B 0  2 % ZSf h  {ZQ5ML`M EX.&rc M  /M'h[e ( F 7/ jn!.i;=~#Q?7_Hgnj5?q :0 @N&.$߬[hc^^. Z| h# 9O߾ߵ߿߾߽߲8ߪ,pC %\]w+Esz:5wrudz#Y@ La'0 G B  I  'mbch I _bI]?KF4@p K ] `R3 FA Y9ZzKx>'qk #,`2 " % ,!& zr>~^K@Z'YsU+ J y bP2UU3o7+8 fV[B`m,++)  r U5GxV߹W %2;K-Ah9cmGs[ vEp{Wo5' `Fw Vr^*K-h,ln\ C2Gu߽^2p<DtR H  q C  Q >  > <   5 :  . 7 #  ( 3 '  ( , ) % / # & % ' ' $ - # % ' . % ! *  (  ?+j 0{'|>UZIV KJQ)#3E4"&߽߽߲ߒN!ef.oQwN)uF4q߃ E*ߛߴߛ߆w8e2C5 =w7 uv1G&B k , % \ r p 72r ' 7 {eTZv a J ]j:1V j G]k # 2 D ?#s.{aFPZu:&Z>E]mnJ*(ߢu%'{dW0 A~7h  Q 8 = P p5]<8;va4RK9WZ^ 6 i UO Z ;cMHzur7r%Ru"Q,+ baH A  @ ; 2  ^h #|&7F SII pm{ |Z  'O-IlK8}2ny߾yy>i:A~  _ $ !H!beZ U M 4 b LMn,vOEuqjtp<odqI #  hTHo 9   : 6 EZdv 29f?r\K=+A/BA1=C%~$Ql Qo@H#$ . )  ^ qsj /\d /u S " 5 W4#>YYc`kdjxo*t>\g (*8c |c  m]p ,k -n9ߥ߸ߺ߼߶ߚ6!H,SeZX5%R /%J= hJ (DlP | 4rg} ?  B <   * < *   ; 4  < B  9 d  7  ]Y:H - os f   ? CjUqY߿߃Cn0%vezU8<0lr*UA߰ߴ߷߄~0 LL0LdE`}vxr\:wb`]|pv  D]v j=<$@P ;c?waEd2 U(4 DcmFM OnrS.@yGZ 6 h(|/>h   XU D f  f ,xCDF6o[Z[3+ ,G.om J  2a ,MyC _ 2 & Papb.R0{qzqxJ#im;i;YMgKZq&#f2]%T{0/< 6Y  x  M  M . G'!W\K `B_Sb#J 2 >} RzM!\1o C$u *\ 9 A   , 6 a  l=pqjN \`P3  &L  SPw`ߵ߯=7s` A4  %G ["q6'ji{-60u/ c-VZepT ߊh#DJ%'){ %^E"BcolPB/1 3 ,,e e Wqo:Q5 !  4 5   . 4 "  & ;  ; (  # 9 PO d?!4   $w',_<^kpzb,7~ &` jR4OrAߩ9 {GiYF\**1Eq[|a#WK;")?H:|KYX 6 f%P9GU-=yG5j2K 9Q45*# m4 4 m  1  *GJk2+ f   / * " - 2 YTfD& b~ e< R/\> =U37\] ( ^Y vC4KZ l bYlZJs r<߽$ߥ߽ ߕU6UxB9f6RuJ2o,rX]P1@ v D  @&Q X 7 | }   j3uG m&4T a;D) .XDOG 3B.P@XutvQ S RRu!1߲ߴ}LQ^NY'[8R&+  =(G~ 4P9T_ߨߕog(+opO}ll O & Iz -'dleZG~vi\UJ'tsRp>0_eMre{3&%<# ] bE6  5 F  4 E   5 N  0 l  0  ]y&X x"`eR d vmtm -p   X  JV#E42jW3 ru5tg A $ H rSB[iFGzif2Gzg?q(I?UZ:K C i~zOw{Ocq!+߫u2P-p-?5H\&A^6@Zߍ{x"E)j-9_`I U@N5A#Eh%3q`A^ , j # ^Q c R t N % g|^   ^]Ynuac9)dt <  <A/ Qj2N  j CRQC W6;74&'FgP[wQ( # a  yX`/-&h W?!UB|/xU,J],bC:c MFM!F1ߓ߻߼0&uhSeKx\#@3XZC / @ ug Udiu:K  A -`*l IN>  A X+NTH ~r`p3{*z"HLp]$N dQ QCavlVk/_VF, q #UR2oRI8zyU1.U' ~ *rMs1 ,Nj.GJt"}g4{-S/nI<K6"nYT/XSOWl | *aXrESh 2 iFe37 U , 9zL%  - a! W  % 6  m1CV  5 0 aj9 D:<>Kn YHx`]z~%z^V&6hY^77V| d^B);Z,/L"J/DZ o % u a k y S 62: p & ^ A F>=v+ +I*q;~0aj/H%OhGS.xN#uDV&a.=Q{X[f{L+F9>(kxkaa j V;[@9v:ieEvCi^Qxg I@2.H^) p^\ ,!!' * < e ] a i 9zo d6PQ<R.2&S. W NV6CiCb[ a1l7Txl~.{sytK <' )  \aa[ߒ):nkjyT$Q ,YHO>.S+7SlrrnrS?Sx5/$v'49U:/u '  ge gG=1" 1i6-UC#A5Kqif=1  sT? R*|  ]|D )GQ icH-0J%~?yQ Gul  D aBY%$dw1_sU߁ߧ`CmZr~'E32J3x-9jVAD|N߬߼߮ߑd]BOQQ/  ( *EDRB ] R|h 8D?go e@  F V?JU ;TfKH~Zsg7 IL  Rw 2YEW 8hlfn{H |Y {&ni  g xa-/  |߱m}[lR1)<-h+C)X6D"&i KOA,J){%D ,Tuk)r4n7- lNTMtqM|]gP w+P< J' 8 T 1 [C42-0/Tv"DaY  3,a16dkTI^cm[zgo dC<PiaO -*r$Ce&*.3}2g >3V #1wE 0  {< < LZ8G { x 4 C$Ci(vNk}@~Gq4c-1/x9Rs"a~3~T16?W{5Si%fVc}&0 Z vx[Xh12jHkT\w^4 P{;? AnB q 1;T i h E _ -l3)1 2eIzA?%pR ] L Xia?kB6oD7#  7yp>IEAoa>%*r F=R0.;M:GAy^JDQ |]l|23Awt5jK_QMe/3Ju!+2V&8%dAl   {)}N1f $7  Z R   Non|CY#Cy+eG$ 5 ! &|g7 U&h9Eo#%Ho'G_/ x\EeFJxf:A.z& LI$ "6br B  6 D r`]#s.z)ZiA %{B:`})bK  % + [  S LJt) _jWY>vQz{F  9CT4Y@$<8^uI߬B J=u<W~[ bo%eH X p P" o n )  kT$9T!jmAyev^fV"C+xHfP Z  t v [ a E[`;eKgj8Z{L./| xr1| w#5G $ / v /}a#'u# X^8s,cH{Wjo`gkq=aMc38~ ! xPN&7%gj%'') EK}w@N ' E{Q3!Yi@b`I p :H ?E j \ rQI ;  ``#IVrO+O6mPPa!O?*NAPKD]D"@8$t?xfKSW4eMFz0{6Z"_DDZA< {]A Z R ?h> s  2 @m}Nu1*HCE7F:?kIbLn~L-q.3VyxS.}/H~>>Lp)dZ>+BY}gdH $}D1+L;|2-{s;*+m}u9PV4 ) _# 0(0   d 3 & ~pz {c  84V(7GXL5Uz>Qol >qL\,2|.OfK6k87xf E%lyCtAD@ y{1U!TYTsi mAb5  ]D  = / z~OR1l>j@Miolym=r]k>q!nY=x;& !)[$tyS4eF12YGiP1w06cUc}-qk^ vu"HJLHS/Xf8~#]{|)Tm"ac{s4OW8q}UsB4l(TQO:Gcxsc-0lkD3)  V q E ;*r nDX$"k2Nl,  h7 n :tqQ|s7j39y6zzAC_xPzrQ}\ <kO)9^N 7uQ7Wq*Znu_ 6\_[n)*F-^[P1Orn;3~1O7^*?$V37X.i|tr GH%X ,c/%dj3ExC{2KIzaF]u54b7kf%hW~h"xWG[qqF|5??7e"Pk.dRK@*O KvJ@rG =iMXEgy J *:.'%B =%$mznrqma`j`K!0wV> H= mx`&% O\8h-)YB 0tbFK>f"q;+0zK5aR*5X?m\ 7Q3.F`R/Zq$Ciu5z[< <E N(@Imsv{JYGLO`}3\k`Qm|W(6(-EI~{Y{6yR<, %=-q8.VEI bJ_dCz y$.]<PGGx 2V=_dM] fia)poon})uz9y5zy2H:.|n ~m8P`pxB  9HU)Kc(2y~+Rkh_fkbf2j30g06Y52B434u8>r9f. gO$^ck=hAkZsMvu]xx;]?p="-#Cn7Sh   OOO< ]eK$>A?NEmA1M~( =o8et6el\eihlgYig#"f kPhfe4zn|z5 4>3xRA{}KwgsgsDw#yy6yv2B2OkKhoingNiS3[3$5,4vs!vD{s7F}4<82{uy{27yFxC%BbB#BX}GSCH&<fuDxz'vjwqrB~E @hB,Arumx3bzvyfwht{i5wXt|rn{qp.al+jZn9.'|Tk 'mvuC{ vl{]y S11=/?CnA'@=.'I>"EiBHh5$@h^l3Et6ZeC%qEgxesdT0gGEC'Ym-    LISTFINFOINAMDirt ball/bomb going offIARTunknownICOPunknownid3 hID3@]  VJ5TPE1unknownTXXXCopyrightunknownTIT2Dirt ball/bomb going offatanks-6.6/sound/22.wav0000644000175000017500000017433012636021030013061 0ustar apoapoRIFFWAVEfmt DXdata~] DD6 U y*$ % (\%@#\"T1CSoh-ېق۰LO. {}3W ](6*!-J߆ PIl,S'Ur(suC!|$Bγچ>"`Gٯzל^ٽN$B v@$O%('(*-K-^'i`ki" $"+. /(.c-L-W--,,-`.-,f,.B23-U$ q K "23,&(,/.+^'o! *ys#x/12g/=,+\-.-+)'*e,.+d%n|# Y١fI<۲&^s@+.& "b-?624 TKF #1y2*<"#+j1k2/--0/v0A0f/8//00111=111111z1W1 10=0/B/..- -],+*M***u)'I$1M {g]q=׬[ճԀ:ҟѐЗ$Ͻ]ͅH̟̾̋̇̄̀̆̄̊̆̋̄̃̚{ukbUNB8) $Dd̗ dͩ΁ϓ^J`lqݴkd#(q))*+++ -/%0{.*'K(,1 55333%555:5Q55[66r666747Q7i7777!8S8p88889?9_9v999999999!:A:E:'::L::;:v97D520-s-/-480;r:744j57K9s9888c9E97"6g6W8~82' ,464K45V61 (,Dt 3$(1-i0T1n0*/r.R.+.-,+l+$+*.*)1)((8%ԄԦlX ML_m ΀̀0˶t?ʾʹʺʸʳʷʰʰʮʩʮʨʬʫʰʲ=\ˊ˵(j̩Uͻ΋eώ1Ѵ҃87.`֭# 43$^-47q63233:31000+0/.-+&H!< ($S(#Hpڄ׮ֳ֖,ְԅ1 Zڻڻn@/ ,H8>tB QܚaѵѾ~pAC#&?i ]Rݼؽ2wӎ5V{$ђ]ЎойЪ7N7P7i7y777777778777(88b87i7775.(8'",2P2'A9V'4l5F-!Hs0 J |;~ R Y,92C3R21<22:2\10000J0w/....-Q,+,3-+&  'X۬#88ӣђѧѓrΡ^-ͤa.˟R&ʮʓ}l^J; ɣɅfI' ȼȢȎzgXIB>=>JM^cqȂȤJ|ɣ9ʍG˫ >=OXΠO|Ѯ9ۥڷ3^_}s>* c  *f/G0/E//012]22b3.44955667V777P888909`9999:3:Q:l:::: ;);0;G;;;<;;,;;R;;`=%===<<<<:R:W:S:T:^:x:w:[::99&:C:98s8(9A::75S69@}"x..&I] **;#J~L^|'+HU RS0rm{~ғaֵԗӌ֔c߸܄P^{ښ`c,,:$k++p+p+V' <S+l221p018333223y4z4F4i44G5i5c5y555 6'666636j6R6555o665445V763B2i4J9R;5;){Dj&3::5125n4,!,U!n-32/056-r$$/-0 t$+#da_.dٯsիg֪ձԏՄ$ ӊ.Ձtpֱ۹ *>^οԒϑΈCR($)["Oe/ܱ} 0&0+ d#%9, $) -HI6%?)6_ 7fӏӏ3ц"маЌN'5Smwa]Г\LEҵҥ$70ډ&S]S&g-Lr?,/+()*2'"%/?65,K(q:%'*:$ wS"")4`5 Y`)G(v $0.#  ν 2(b30++/4.% z$v1t1 )!")/7-a Y-iC >r Y *12/./ +!G-t1x0./r231M.-1G4I,@13 /,-11/].=/00.=%,^|&P/0/.,-;.+(K)z-.# 3G ?1*A6M`@Fc =;պSӽWRUhnR-]ҥXҶ3|T>$ %wîĜ Gʴ'J]CYhݗЋ|6ӆѤ϶ыY߃ד@͖jҘ~=Йѡ S0ԈAԝն֍:T٧m$nԌ} ^ R L$)-.,+ ,----^-1-s--.-P----{-,+f+C,-,*r)*e-+ /nA+ 5 S tB5<Ֆ[ڍMسPAWv~׶׌ؗבKFC|oA73-s-T CZ&-.Z+&*" "&)+.(11[11$111111102U2q2q2s2w2222222v2d2Z2O2&211c1_1410/Z///$/-H,,.//X, &Ebh w>NrexOmӰmӼҪщdѩW4'ϯϚϔφlX?6# δήΔ΄vΆ|_MrεξΗz)6f7sm_Ұ$ujXi55'V(z+~j'Q 3F9RuLs ',+(&'*+,,,+^'u pc A!*o. +]$P 5" (U-/-)@$ z =3 J)H-R$ZNW',.02b3s/"( "k!%x**6%a?e"'N,`.-+)!)M)#("Q/ S=i.M,V \4^ٍU\B>ԠԸӲ\߉ՍW߰C(ݻ&Ӕy w\ܓ;CzcRȡ#oʻD̘˻ʂ˲]1,$/Zqˇˎ˨EZ̜̃1oͮXλ*ϗ Ќ'~ӈNFևֽ;0$<پۛ "(S*))+,5..Y/>00/x,'$%"+15 7A65,6*77]766[7777y77777777888%8#82898L8I8I8C8>8*8888 8777m7S7>776n666655;4 44A5M42*0\/,$(B!*!z X&"aI:=9gSxܾqӼhd~R4,љ/UKNa@ϔ*q ӣ-5ԛVWp # " ^-.?p> $G$ЃЮӕԪҪsФa_ЀЊ1!Llb[{аdѾYҚҍ.ԥ21Gۗܙ݄W8HOY) x!"k"#>'+j-- -:-.01111111L2N33n3[2S2 45d5a2@0}278/VD%8%!"[0562,*-!0:/+'$@  [';9^!  O_ ҾՂ՘0+_J`dҤ# [-\ׂh>jE #'NmهX\ڔW,ЧSG  29#"7$8&$1պΝ uc ',/T(i? ޕE=P#'ۻU<ݜބH $C&^OkL\;S&qs!8#3 )T2;65$21245 5446676778@8I8J8^888888888s8d8C8$87777s7@77666965555v54200e,'"X 8$(.1.y!J@|^ݩ*A/`+$#=*3b5( k  2# /)?+J&/u32;/`- /2h40(* 4Mt#'&#([EbB`G U*l0)7-(&vۭۤ2Rh"t'$V7zopKXِtQޞg7 \$$ e m T} sS۬pc ?<+93779;$=H=<>.i2]ЗLn˵C˳3ɧvɊPTȮưr7Ȼ$_Ni+BłŁ#ǩb~ƳƸ|6(2A%źƣ%%˚kǕ=fj\ˠǨZѿ:ژZ̳;'DV0rl`ӬӖ=p>[$ڨ~!u3x+Y "H#E #!`'6./+"W.e8cq(/21/|/257 877d8$9r9g9c99:K:::::2;`;u;q;;;;;;;;7<<<.;8533|5l8;" Knd$ӓКАР0{Lc!%%{߻lX)ߙ4$5-r3C *,l'^ d 3{ 4q 6j>O6&+;43*I!],W47o75 556C776p66777 767k88x7i668V:83.}-0{5767555z2*A ;;(126V4/-0E57$2['\ 2Y%G !g [L޺Jӫb4%kڿʹ+b:/0(έ6_2"+ѝ϶b1?TwCb'Ɂ%JYcʄʹ*Rmˬ9~ͪϵNٙܦZ 3nu:{}ם =>ϐ"ظ:ٴ[yIOԛQTsM\d%'`! _U\ $#CG!#$g#  u߃$%|!&y+M0"3h1*|!;%+>/1B1a+ s)D.8.,+,./+ ބޑg!!+".*"Mp|@@] L \o'(B$4 j*݃U K;ښ@Q%O' #fz95mYmgC E{+ V^xp }٦jt ٌՁ֓۹(jޭջ4V\!+sJE-8  *J,o31,@*)& `: <`+.*! ] 9sQ !p"L %,0x0,*+7/23O2 180-("?#[*Z01/,+L+)%   r/ݩ"{[؈wwל)b;ҩyעԠ԰gT'ceOAuXѓK̼@ИҲLιЊќ ^u[RmM]Oj$6& 0KGԜӉշϱӬ J\[W2={lҝQ3==IF)h(}ߖR?* H(߶M|]^jzeUhw 5qH#e:.], jAu0<" X" I /1$`L/"_&m!8 / Ck$ A#+*$* $(X&JJR #!^u ~Ka6!](,H--/1342/!./3s52..4;8)^B'.V' 7 N  th t-w/")M.0'10/.-+s+,/00^-1+h,f02.! QXٚ׎׽ւI2ՠ@Ԏ]-Ӵӟt_ Џv'[. -N-!Hv" 7cߗ_ё_ϏKψp}w.͠@Y̸̸̬elҜ-jBЇ֭vR0Q]h  N7#ӼBκ5ڛPٲѓ΂|4&ң;֮֫80~ R%+G.-+)('$9_"+~/.s--*,?ij~H+U "**203<4y3223n44m4A4e4444433333M1.):$J  `kIp;w!0640.0232T1(122211111V1 10/=-h'A=c)NNߢE"n.`)0&+2x$ j%(&+3,+*(&(''!<ݻo[.X)iߔܕUɮx5p^ԒiԼiҰӰ֬t]yƯ6+{ټӨ͋S'w#ɞuȧȜqȅȱ,bɀɂa!ȳȒ6nD٣'ˎY 4͊͛͐ϡ>H|u;Vqm I Hd4sO((C 7}1H f M |"i(-0210012;3]210M2!4m3.4( $$9'&# }'(! . F".6J5.$$R-#20A,($'(*($OZ2!!y  %'s(*.W3685f, k?-!=.g3L1y)>g [pw,b+M7~5,S#!s@4 4*.0-)'%"BT2pQѺխ`pf UMrfA~ '(#"(.*UmKx%}3`_k<ϋFpeЧ͗6|Y``^%.)ZORυM"#ȝLwɕʓG"ϢZʩ˝[ʩ4ںO>).ܨ݅UErD 0~ٺo&QּiB5}I/bN N#*@*  !+N1X44443&4R4443e0)]!k'D2e73@)e|1M^ Nh6.5<&13V*t gT #-\47 8!76)77~7655>666\40i,R)2(8)$,D03`4."'JiD:JH(4450+()*.537/8O1#%w@Q$*/2'662c*y 1*7=C7$ ;[ '%""]t s !&+%/244K4y45\6n4h/C)!%#%)G.115004]7o5{+?!A)&@)M*ھ޳M [3J;"۶ӢdTkCF7Nw3D hw : dcj  '=ٶJwQ5˶ϱ˭NWw˼lȶǿwpl^el3ط5"c q*9ݻϊВ;Rth" b~7 <* \ 1c1~C"0/%2+h ;$)v$GE <7(7)  O?lv !&&#  $#'*H+%} C  T q$p*.2a3b2001.s!c 9p H /J(/44K4y0c)` QnOy Fw  I֕vo h"՘p"t]I4CN i 2FE[ͪ ΅УM Љ̊ɾ|}ʵP8ɼ#a&(վ X8cRɜȮfbu-R9^d P:CM1ȂC^@#dЛ Ϛ [J;+։J>IAuX(Smf#$""@%(' {I3!/L85'Y D 3NE } w e$e-0@/"/512j."b3GNQH-&"Y#! #)D/^2?200255d0&MN-z3-  v  %%+w+()r0$5-vکԦآX`i)a #'*3*)*++K&t$ԑ`SN&wқ")o׺%ъҾ϶S}T;|t)@- % !$%#stCreјgІ2σϥ/)! +xϠwXϘ Ϣ߭:G<%,'n BN 7t nkզ\9 9[-دCw׃۴6*f//.C/0-10./36v5-_#ia!(,/37n8>34)6   !x-342S23X4/u$>,RQy##$/5x6)533044G5%555v652,b&"5#)(.g47`8%87&76&65k54322220D/2/0209)JXڗ֨؄دׇ+?#`\ԳsғwҢMb jY p a %6*%)#U$7 i1ҰEР1Z|Ӄ[϶͗#glΝYˇ֑ mjo K!{"?',/O(CoubS֥;x?+[~:.|^'F Q#r#^)!w)(# !%*/`0*.[ '.0W(4M* ݗڭح|$'eJ!a-3 l ijC  X W?UHv+#_` 9:Fw &Xف  F Pk,9 cI%" N 3 3 b#N&X B vcq  w+^iK#*J- ,)Q'T%!P DA E   v I޺ۚޘLٍһϞзCаbѳѱ^o׶|kMe`2A1S- (& t jC%Kjs1:J|E#נ٣ݻ[C' oiz!N# fee,]o6*Pk1x \9VE *pkg ( a ]*eZ1nI;EzU9 GvD6q+!"$U'&!,0$ /!;  9\#*+!&%UY)13$0(1 O tj !6N [ #/4.e!8 !]#"|#%D'$b/.2c:'&. 1/+#[ 2dٺ:@ o s^  {|b߉tz4ՋρB$fXeڻB{Ƽǰc܂&eŴ7]  L{Ȝc-6}νc-V`,jw[mSy C6QeԐ2*bU'ͺ3ډ$rF7"eL ZذH\{*x*a&--1]321923W552/./25m76=5g4<5 78755}7n7.\;mp ),45/#C i 'J(fz06WPh Y ?%/54-!JO b h!Z'*-12$-  \ /UPs3b#gc1_*6jxR+o|ZoJ$gP֬:̀έSMLمS77W,Fl̬j\Q#KU*<^g jY$E\ݥ֖ ^dy*.R{})6 5%8 +"6'(X*-1j4D4,393[4O4<1,'1'[)a,.R13G2+ < N vE^+.,Pu:ڿI4Im+? KttI t:R'|'+ J+v~M%<048AЄϔϟϒf+nN!QVԝٸBXo tmbmYAZk;F5M@e  2#!2HSe *u)& #Iqcf (+"7 qݴH87}iW'Jؐl Mk]4:K (3082s100-e' *49-7/D($:##>"H$#)//1+(w ] rF!95h#IܒdHh A)_%= >t @ .Zt.,kA GuO,\Rle"|>%Q%gIݪىܭ߳HؼkH u2U1! nm|؟݀@Hf+A;kL׭(gOyQ_܊׸?؆!0 l JE-T le x}#c*S, &&5!!E   m\j^w*;V +KlrW16x  otSbh{KF*1)])? &*s,,q,,-.`...m-' RUx,C &,.X)!H B>|1 :Vt>X,pP4SӸDL | Q @ xY bO9a %%$!:`yI HJCֳٌܟ5sׁ=)T~ԏ֪߄W?zG: R ߀FS4F(#\$ h1_ TBcZlGwHh>eh* nZR`*{|2cHx? NTv!{'.<22%0..0220,*+.0.(= )G *00,'$#!tN }  p T  G B-Wkڈًڠےmn%,bQx|_"U1#)F. /*O'  I( ]N7#(+J)!s!x yR WKvOnfpHMA? INY!>sTե,?mҽJ,߅uu"Q(P4, #  ?FQ et. x  XpK[֓׸X2&'N7Mt\z$Z',-*..-)!AZ !(-.P, 'c :j w.4DL~R<61\_{b UEEh%ؼeuH9j`NB nxH\ +OU g kzd#,;/?(o` jcO]J#&(M'  Aw|h<U|th\!GurՋّܞXrޡ5ءҖ8|b[#cJfݣ߄  #.)f*'"f B o&*++,K-?.-G+(&$hV2n'G{WQ]4X@6Q׎)ӈѬLA҇լq I2s(4 ){Mh%7''j)c-.+ '(-0") ',+U)W&t"tw nIC>xq8ԃ 5ڥGJHZ4ۧ!> B MM!j'))C*y+G,++,.|11.0+(''&%X%&),h,)%\BrPm @  "Aqf5EB'xNڳ b  ?i $&J&v$"T"#0&([("  e Yj J&+..N+)+/S.w& 1%~ S  B:)WRRt\֨җ[٣"}T֒׸JbUAILY"!kPc t *VL5 YL)0$1.z+8*e($J <#&V'g&n&)o-}0.D&$*T4 ]uՏՍ԰ӻ2՟tNӍ ӶGlپ" @ !$+W*"C A'zG# &+../..!/`/-1){#gs rA) d0 3,.y$#uy~մ Ԧ>5չg i ^!8I*!$m$#9,l-)&&M+.F-'"W"'u-*rVs-2G/,.`0) 7 7E>ԫ?׸ہݮ]Ib ^r K+ٕ֯) / +#j+---e.-O+K(x')-0P1a/A+L$B' z $"W/1*ޏLa`]ёb"ԟ=3@Ѹ֐]߾խΉ*m  0bQە &~*,--.-....i../00.+($lr ` C$(,-*W%s $+PaQ.і҉E%sнgϢ9njaГхҍi?gHc U%),////!//0*111311$221=1\111/,V)!'x&#&`$ /+ "! 8!)؛[ߚ`NCҘӍPKjњАйЉЛeѮҡׯoo]4<$),-9.P....l.---w./$0/.L-4,++,./-&q dPL)938Ԓ+Wwѝ.1iQѱЄѺюѹє_+D'ݨ~rx f* &21,+/292,&R! !%W+14v3G0Y,C)'J'N'&$"E"N$P(*(o E u` O4+]w.{r5a|i+2qݬ#=ہErw X. N"*0321.D&BLg$,132\0-+)5% j U& :z{ݨDlTrݤ(> Tef{M r =4 .  + F ;G i d^}l~؃iHVxX?e @w:v$ : !Uh%f*.//G/.\.,)O&O#! }_ R(Q/kݰgZQJueީkYx׫rؖ7JBԍs}XKs'HO; {-{6"$\!M y] "+f010&/x,($]"#&(I'"goHxޢ܊ٴCժ٣[L~ߓW6Uq zi( N  () D  ./U< <D^ؓަC  sQ ;Qe 9"    %z9^YӦ9xibm a , ; 0+V/} ܲݰ qs Vyf  o % 6 5SK! #e%9G"AT`^ZJѱI5N݅ʗɜцwJ r]5#%"*X) q b blNCe q: Hi l =;'10 ,V2_ |fܶw :'L"]b AOr##5`G !"0#Mf:Rn1=JsI. _Y / h'|=l/ $z!qDx};(Q ~B"X!G a ;'>   / ) ` /z> 5 tlG]38߱#e?p+t6t >  *h#)"Cu[sf:paV e,l-M)~PPK UQ   "n))$1v upm e'p"_ϻٚ s1SiqqܦكOԄVN>  vh h 2 W |S, )  @);-*"? F ?S<<Գt Ix##H.ݍ$; O  ?H 0]]o7}@l0(RZ%& t UAi  kt} { ! h ׊י)%`Yb S܋ӐCԻN ,]F\TtY=  ^M) BPQU#'Y%><!"~ Cj3; Sީz݈םԻ՚ ՑL:؂V̡β+zy`UA΂δΎPLթ|8Bs/{ uvޖP!)/1N1/!/0y1B2622w2M33N4a444L5r5~5555V55554+4\33F332.1%00z21, $4 yVEE#ٙӀtmΑ;͔\-̼̽B̈́ͨ'λD~tϪs|^љ4ӵյOSY"8&#m*t+&>&  "+1W44:433@4444y4444x41433333]21121u0o//0Y0C,#~ !<zU(e9!ѨԋoSjվHڷLspC< ^\҇Zrϊ)͹׉߸Z0qvv~'ۍhwH,Q <%!95&!!".&2)'8 O/z_vF U 'G'soT!$:&'r)**% :b ߒ f{LvI{qށT\ UG6HdePUIeݜVln.%x( +*2D1u)_[ O!X).\. 'acnP Y #,mI Tg ( JI 3 +Sn(L / -Xz1ב0JmӉTM~V$M-Jm` $,/* ' +"k)t/N1.&@b e+P<%=Ϣ-Ւߌ0ֿ8Գ؆Gц0b33XFJLF~7sj[ Rv= T:{% !8e %)5#-(>-/-&eq&/M2, o0 ;>1&VYSFL*6!$=8\KhݼSӤٱߜC ZWie5?C]֖,CR2G?T x) &.i450&Q"*/K2321i0%/U.]-*$ z 2x<FKB1 F ^8Y !T޻ֹՒڏ߁,԰$0sQ*ݯek`t~c t ++m$"2+172;-%!Le  o!\%&%b"XP rN3J aJwpB80%MـR֡l-.ѦЫЌЀRS%;x6mUx r\ hzC"#&$ K'X0x3O.+#x`!f*031-'!H(UA (E0!>$&P'%"o" w,7eߖݺڊ؀׏քԚFϻΛFК͙]̷̈J5̩ͧ HʹV~ޞؘߺowhCBd`)3O6+3r,%|! #\)/5774 2"0.,' [$|.Y5h6311E2_1/02406'vBEyJ8u.Ov S)վZmB΅·͊=1?dgα΃Ӭ!Xэ*%'ZX # S'l.3,w%]&k",l32-b)_)V-14444454J4333250E-+,^/U1O0,($h@X. ( jp+ ,G!""#" Z ^Ca0Q4u|_Ӗӥt-#$17jPn~8 ~,E.VPw"h*:* $' |b9$#)(!?!+/G' S$<-&Lwj >RKf +]R(BPt߈~6}s.=wU/I :Y Zn!!4 MpJ"'d, 0#.2( -7e 'Z mXF LLxҊҢԐ:؆* W./ӎzКҎ4y%}I&eOL%) Y` \M-x !s6 0 ev!"#(G.1.'"+!"p!kk*} Qz6a-y K]VD{iq q 'r(" 9!F*.K KY\/| p0zZaգ{g8[h*>jܠa  0 . `6,_JEv8-$TJ '} D("h) && A$)*(*b*+%-,*8)@(&"?a!J'<)(s''l*k.02J441-Q)$!tT< }HW<{oٌC%1c̉ȈJΝf7θy̰D~}˺ϩ%R,%yrJWF8!)Zcޅ:V)- X #h,23- ");%05j76866p77777 88778<9/8?51/.^/0$23455445K5~2*pDpF_!(*"@c)/׋؅ иq֨և@ٍ)Fi,i  ʑɴ&kR9Yʝ8˲˅s$3Φ0F΃ϣωΦүW(MzD ;^b }&/34q3h221x1;123 6 76u6j6677?7767766665`3k/*$!!`%),.0 3q54/# O,4.c }щ}Σ&΢ͮǰ̣n=ˆK% ʣzʳ2r˛3͠ξ͹P&S=@c׀Gw D 4$%_bg _"*f/1 3j333 4J4c44455543V34454433C322,4~5t4/(!" k0I `?^SҪة6 A*JӬ͋aV̥Ό%U˿;RLbhVԅѤ f*x:ٲ@x? F_zec+]@0T"+I0*10;11R0-,-b1*430,<+?,.010/.[-*E'#"J%d)-+(`$B! i\mLeuV9 j + ߵٹ%ֱں|ӬD=CYguQ2%#3*N)aݐ ף?)l]9Az5 n &hMh% M  4 c '467. ,t"g(&+* ($!6Wr L&+,&_7%J/+1*Dsc^ \ p  bݿ|Z-r\lSL׶ X%جIد;_d Dt'u QI fo|s! [ 9>FN3 aI GIM.Rh  :6Ufw (+#Rl7 6Ygh9HY:BֲgePrV~@- W `^ !d /a _b (PTD1\,)uNQ .$)!}8[  TVYftm-B3 D s S+5s '*mV0 sC^ ^ ZEC;L %i ^ h;/Bx LX$p% " (' C`` ") l cMk#$wYigdI=]9P^kt~ ىuHҿmԫlZ@!,M'b| %W~. 4 ^ k mh%3.D37422~22.2!113h4/1!*#"}'{-.(RY) / $B)0\y{ptکϑzӡ!aYkQx-ԦhxCΖ44ϓt<.g߉cJ+*D#>?RY&/I4o4t211(3@432.12 44 3 0[/2:76.!Rx%?/.#h+fzS @ 00" 3l_e1^^( Wh8Wϲ΀k >(֤ZFszk&_YM~ y  m F d2jV_" +}1?4322&33_322222v220.*r(}()-&'2T @2rqWD  lN gejh{yi> fd< a"A(o*+($$r!j 3 =#%H`h \ 5mPf&" "'&Q6ץә%3hPހixZ iN#*.00d0-'NS1m7"k09R~"y \tzs&+.0/.-....c,'5!dWxR"lx׹6Ԥ\G_ьfW&q<ԯρfJλ7s>=?ϝxF֏ Q9UH)$%)x&"y#|)N043 1,(&`$9 C z 5 zV   %J*./.,*x**|*x***&n5+%:TTMnDUw_lwiԦt \V4ڨ$en@]:o hq 9tVD [2vU&Z@zf :9[V4:4 U  + yd?Fmvx^V : X{6!$!}+$*+-*&n$'+.3e531/q1~4675o4S4*55~5421+#N(\#% /`!'m ]>/_E62[ӫB ͛jJ2&̰̬ ͪR̯ͥP=׬!0~Efߩ6Z}=5mdho z p T 5*14p4L44Y5?532003588~877(89?987789987\3<0/1(4555=3.'B^$$!;"(  i<&d԰ӇGnqΖE˯LʺʜʋʭʗʦI bʫ'dяGs/ROs88%kF^x~e5 ; Y ? c #&&&&'&E%$i$& +.-0//036502(m !:(.F/g,?)).573)PM) w!%$ $d##f#a  pY bw35Ae*$/`~ՅӹдҙHT-+rp 4}rG4ۻmvH=v~O+-d\V9X9 J"f u B 'b+\*# ,t P:P$)-y.-o-4.-) t .  m )9!&))$_1jp!~ixS>; 07xѡԊk}@޽ݯeֿЪ7H8hۮӊpdҥ&ִ{ G+!w-  Z$)**[*)& a^:&.35w531/0333/$Z"'$h'".h76+X   w V1s b ֺ,џ +׹^f{Uʅ˝οβZ/6ؚ& T";+osb T P 9 X$g-1b0n- -;0i453/Z-.T11L-:%'03}.$%=kY9 o sm1eG0kWh-gt{^^n@NAKRߝ>4wA`~6 G g* u(0O,&&m-W341/14 51Z+''^*+-i.c-P*`&##&)(e"w MQ7 h" P I؆8\޷i wS-~U.ߊ#݋އR3 i p[A}}S`JY"Z=Pfu T )ljjp' Bo*<\2*!3K63-%!4"$X%!63A  5 7%Ah=Sj(IvOQYmT^ 5 ;Yxz!վ|BwQ!m- D B] w4(Qz\!-(e&v+Rmn[N    Az+* pM  ,{(rSho{}t !ve { HOu U Ea"  `3 tjzr/ 3ޝlܵSZ\l٭(2? +   C Z  D6THa]"#&$r?gd L6C O`,y.C 1۳=X`-`ڀLxC1֯1,UEp's W1L ,J}? 7  _ ,q7 : M[ 5 D H  fU[9uk+  MuF !^F 5'wv(shڟy?ּ|2MFZ:T 1cuj Q) ,%!!k j *b_m iT7Tv1 ;D$X qHzbqCAUu0юuT03m,h^Q'pGtd_s S Uy"2*s.p.+**+./],!# s + }e y: L ~ 6 t Y "iVA ~fowgGZ\GԜ=ߖrHFzz`k2Up16`m:  >OmJ ~"" %*,G(!C !P"h !Pf m <\ ip`N&M7Hrus3@ٌU8v~lPu@UxH>o s lD!f!y?i qip :  0{  K)Y~)B`RkA`G< - |c_ ],MXLg N v `0Da[F7uZy TiM= ] F > E $**g$Er` Nk@^_K  v fxh : IމF՘v K )hM ,@y[PN? d 06_0ID\u0X -F L]nDV%g&Y#w!6%,0J, gT")-+'"K1 3=d > n(Ha^) ) Z15[%0 a jh ҔTdI,>)rֹ@V &aUS~ \ :$ 'Y8}A oSJ&.x a$!L##O#$;':(P&k!k DYu#%5$D kBd4)] 0 "%AxhbEezr\zګbEH.1ܬ,֔پ `rK%N I"$" R #(-/i*y & _ ) $l!]#y!kZ# @x ?4|{X8g|u= t #x.nY> iwl1 ;NJH :@DEE dd??W& (eh -xM z R\?k9 rok $#Qrp(. 'K:84$`=U18 o ,  e (GPT-B@ L   3c x*""? ( LlX36` # Nr5XS FkuY w_-i, f> i 7Hlk,g0~KܷwM 9c+ t 6!!t-P)}  L  T x $/  O 4)  %Wx Qf. KehIdBw}( _P&fOVt5y BL0?T3MaQLJFqJ-y!`AF ~8h3 ;fx3 $G(-g3\4-#F' ## b: y 0C D4V` D 4Sgc;q 2` w w41Gx]|9Ց؜_:$*MmPclE^bgm  w%o7 6w Lt 1a+c ^ <$>%D!{ S ,oFw ] 1 |F9^Hc]dlh< n]t6cwj{98-]S4 &-2 PL j9z  \ 3  :D "W foEA n NrV + {  $u!L ;^g w ~/[nf8fvX {f !doFSYSKIw6V r ? !P$"`N$]!$%0$!a C]h`.3isUcjx W 8\FA:,gE CG,"E3 x  0 e oy% @W`pjReL> ;r0e # 9 + 1   (\!%s"zw/EnL ElAPE8v(j59KޱO ? R< |12+ }! ~`\W'D4a J' k  r})t9! OMS7e , (C fi & s}Uz O (CFak)C #@BBN9[@V : %  u   [F~Wq-"   E  jf AU=v  : =a] ! 68fK$! sK<_;_(1>?v^][  s u'H $W .o 7 l v k $ U ^(F  ymWTd;+pA< + s v zEP 2 ^`d neY@ j x8^ F:7)7 2g^9, y  SQC o/ i ghK:=&b +2cV6T{fl\;HHM2H  & *B07 v>C ^ ^ q  A -X `D+ p;0 R q V,eX)i2xKQm1  t{1~#"e F J*pQy G  w A iEGyB{kz4l;L_J~T]IKQ tR (2 > , Ko   VZJuP"" `L TG]q aF / `LJ fC}hn[~:,6=G'EEn O%NI++'Y  l *0  l[G""@`r g 66EMMhC@M(+6$:JFzG"Y:T>_ L#(I(=%"t !$; UhQx}VPX%?3ޜEh 9GAkdX8=;K s v JS!%(+,)["s1a M  E zpN Hݗ: ,{L |G {n s0p}#"|!+!A <@  %Bc?k-A|0 d{SP9Ry M  Y6iFV |u^5UzC/#bl !!f^ 6j + s, Hi& &L]\ AJU1vB q5\; R >3n /F d HB 7D ?1 u QS2B/7N x#| !?9 >J ndM ) Z Jn49Rob1ui7ޏxgۄ%D[!U; fm>Hg N -3U t / Z!'dqxQ {  ;jytzlC 4XN*0 6%8  U&p! a^  ^ !biFe o>:J 8Azv-*Bv`G h>Y # |E 8A -HI =E/\o, a9MZ  } '^3 @ D40 6 =[4 r.   @ ]B O }=>^vk@E Pp-)n 1Yb=&$ j 9'}M)^g UH;u:O*F( :S 7u.U`L "*pjS_(o cH +  3 *r  o + #W*Lp v2 + J J  6z]mQ7} z s Oi%  <Y DBww.],YDl: X; L @|} } oH8j O S V </ ox , bu7 D H x%bkh,Dil[l ;3)  G^(CFt -I  tJ>6> w}1s  eKl+] *j>/6$kYZ  C O0{ / } ! o,juGO6@n@o hN@S1~Lg& pzf- W O&W p( 8 m<hh\!i}Y{ ~4y,@b97W :{* 0 0W<pA (uX.nE~Uk*- )b T :Fi_ t NL|cn|5w86ylcp HN2/o ;AF x&nG 3,"`-/"DtP9  *4` L^jhb 5udo5ZZ'NY,TS-teHP+ j i ,+Sd dQOOaM6#g Rw ::Q~EZQ5( 3Jxqx|SDF|N ' z }tjFn' 4  .* y !h(~2Q?\891g0K3Lyc*Pf= | F4  -L rpprB)H $ JW %w4X-y`cWo &3dGZc |J! (YN dJ H3kB e i V&lK6n_1~=J)w/6]rh 8x,}-25 f b<"  |Vh):9FkvYWA65'c; ^B3IqI~!tW\4u*PZ<%WwVt-GH\mjI@ - :^ 0N< +9 1 `W"~Wo8$?FGI- \ !V7sBB|N ?\PdeLIdno<R+S52 +!ig"<WEaYS$E k0})vu ;?]nXP0wN6Upwm TuZUAbPZP |F9sY%km#U u j';>-3;t  + #(t=(`Q ` gXY H 2 T}|X'*-UOr#g9` x__V~ &qQlO~^ - ke8\@WP#rhJX!TL4K qXwa8_fs BBhv c%; k (m !>o dS~w "g U4 ! Aw} 3i 3 Y ^ ' 5Qd3Vf]i#195R{[\LS c@k gg<I>~<6DJmGP Ai:bd1 u9r4o<!W %r CQscPoW g}HPBW  5 T7@SZ9 T n sv/g[u!"Bs.{TxPt1 hy P d Pm q E d M= FY d C/ #R\ GUT*CY^Io)  8Q,`HU+ ( N1+YJZ;C%&u:S26 Xt C(g k O/8$^JM=Wqs,HW8^   7  8 H R ={j<2 Hi lm]* KV7F O` <75e [b 7-{l{=Gsh L @pq* ty ."=@labfL9^LUca6` V ' 8 IDp^ ? p{ _Y `cA"*e7(!8$ 1 Y5f<;:\\L 7>   \)w^r9 pqdgWv ( ~ z k ~dj:gzk7C1P B L ^  )(uM P$U2a <9-] s[A25pmw{gOS2wN 5N qEl !#Q CMtan z32|-b22 T 2  M rcj&nr  Q-bt kC{eXpanj 8 D  & 0  !6  :G  h% m4eiRXoksB0m+ u#<;S j%*! cM U Pd:g # >  ! ) K0'fOf_ZWO`>cOF>Sb<%v% 6DlW  %"zaRV::hHz={.} fW#  B+ *N b., [ w/G[b4Do?sFKO OD ~tV , *aM o{~P /q> e6@[ud|bWzp  TGkJs&nRT0<V#)tEc}rQGIwp@jsp8n &vY5Lm\uL>Z#e}1[y@78Xi~{ 0}x.Z DB2MMTvk< RK. ` ; ^s1Ze ?   T0'Nu (yJ,G{#'W 0iZ H 4 l9Lf.  V,'Y?+Jpp {^J(hx;Q $OE)LPW[bLxq`f_KEA*i~?jkeSU]2F,J Q v {3sW Q f%= jT6 + Xj1{`'=4uC;  R@2  `t=@IY8ZXl `4R {]xs;E+ - C Ix)f bad=rZEhh!m%jcIl #B04=&v:F#'&uso?2pJ $  M H ) T   L +>c D8FQ:UEvb&,ap6' ~;L^ 2D ZA{}f 9,"Klcq`b!r*aHivw>n{xlL]&+FG RlxPMH[0 B1(P\z)a = (v,b_SX2g&~^)&OlD#3_L0;n@SsXX)Ix,3@[<'V*ys.#os[@N5`d:-qUCZK  fn3>   1  y 4 7P^2J*'^Vi_5Q/2K $ Zs52u{    }GB=*7zg^+z,o<OXnI}_=LVEd`V;sT&$Qhme>4qv`10yjb Y 1 ~ N  O{{$SK!X =}t  h7`}85Z ]%UL!<30x0&j ] G {0e ?M&+_hFw&<"z&zT(C`n~wo>S=cYfPl:   ]oL%EgaCd | w3HI$ D7E%!R7I D"iLG?{!_TziL >5J:EC  $ , |@>e+F749z(?)Culd 4EO4 $8L-2~vJ<8dzSC3c^v(V N%u#=(\^g(iq ^x D#k2-m^$q}&U  -E 72PH" @~p"/#-\o \KgyM@oSp!EA{uW` 4u@6M`V"d3.t\"dQo1N)J5uC  j}C"r K? &K+d'mzem  f ; Y9BoY'] F U t{f6  f, 2)*'|Ln[WIkv|ak.;&GV\X i 6LZ\,f2P&~P  g{hB\-EZ{<yl v#+y wmCBcnnFCLl{o}^lVs5;|P 7 +=rFjS\bq1E y pssJ(O?wP:4jdxcEPCXy3X drkzR2 |97wP~aB#v;Klli4:{He j d q / }0F`Bn=^IVmQ=|M 3BaQH7_G[T?Hj((bhl\SFA@gm@KO=39-+"]qvN.R>m Y W;l=JzB^"~d^^4wR ^;x{@ + 2 [ * '4Owy{`L"6K;o<>7(Da8Y?9v~0{+[ZzA7AXLkbY$/ O j=N$E,-nEm,yA t??9GM[OhMG}V]-B!Nk}/Zc6uRKVJ~S{^D,FD;&pEpm|b~s|n& Km=xLP`UMkqTX: $K%2 / S F-STW T& dWaoC]<r]9  [b#t|,0,?WU7vPZ% \D;hQ]B~MEzX_ sKM2C?-n? m71QjsN&YO=6s&ZI6d1D ^>Mdpm,Sm` ZY,G{`W  P7Tol{raqTO >5 3Yh3c  D<\*%X!+lu$SJ3A>kA*$wGA@f_XKNv9Q\( BxFq15A<?qLy _lRvM&Rn9maamXm6{N<9t  : pdxfb-m:,f- =9#2{G@fX$0CE%pl.-U\X!'24B:R2dI*Awv+Y,qI2d; +pzrN$ xOlsV6?N XIPp"D$Jvs ,#\4#]tnIvmDd{ .L3Tc9"i9A wUn}7L=B('Y@X1t%9j->q|{yy  ^ ?[@Eu=Yc>  <4O%^*=Mz}P| N;_.!&`M7,f]C{qt)f%x!C\!ue=qMlN=-0n5&PC9/O11P3cmQ-t6$ @s M qzc|&SfVL?UB'Yy#-JvCBp\.|\#Y_w}>[ "0D!P>:Z[fFg-S9UWAu;-r,)fz4~x KHMmYzz@X.VG3y`0zj9gq^~KEu%@ |@JmUKtR-Hz%?#(}m~f4T6&ll&eE)4nBpDj1uYqXg%M:s$@hz^)%bh++awW|<+oNTNvLBG&IT 5-(src kb:5V$-=UO}cUPWq Pc1.CdZUc{1TL-a<_-zOLhx M2Dg45[J@=|e|^tIR k)Te83nvZ,2[3Bv\J wx{vc-'Mg&v )q%}7c3|U!2x[ \G[$  -I_N.nA"ftCd@5"_$$QIc!L byn!pHyBF!f<h7{l{hMSX=:gf&u%;Pz'7'$I1hW W_) BT*\qQ>eGymB.,E4}auwmzZx[>x~UOn}xw}A[r&3"mzKBaO cL c  Bu|Y/wNb $O_ud0rb#PCPbb[QSU^@as!FjnF"LMu+YEr?L 7YG0P=.= 7LLj%DPbzjX hc{vjIp%% x} 1_#biH~lI!{ nC0(S@*2C9)7}TzIg<]-6KKEGGOB:OHnqU"R%4_?|O OpxeHcj(LnLIST|INFOINAMReducer hitsIARTSven "Yamakuzure" EdenICMTAudacity 2.0.5ICRD2014ICOP1989-2014 PrydeWorXid3 ID3@   {(:gTPE1Sven "Yamakuzure" EdenTDRC2014TXXXCopyright1989-2014 PrydeWorXTIT2 Reducer hitsCOMMAudacity 2.0.5atanks-6.6/sound/04.wav0000644000175000017500000032243612636021030013063 0ustar apoapoRIFFWAVEfmt "VDdata Wg{cdVkU'KJcDEAQA=<:/91' S w  (r-4ޔjQ8RϗeHP5%ssQ~JKM}9D,V1ǣ g 0,uQYРt]uŖsCWˆNU~iƈ߈Lj&,;0f>6\_OȇbSpRF 1!ꌝɌ[!h Ў 3onK xc.6Xù9i ٛ[^"[s' "#d((("*3BM SSRSVWY\\I]^ acedgvhiijklunoppwppCqqrwsss;sr"s ss-s=ssssqsrqpqpfppooJonm mlslkigdbaSa)ah`_]t\y[I[OZqYWVRUHTRCQ=;957p54s31_/,]+B*%)'B&$#!4H )Mzfw V ;"""O#7$$$h$##$$$$($^#"!! } $ _Y:; 1 `| 7 `   / & ( 4 ? 2 > ? < C ; ; < B D D ? 5 @ A K I P d  I  ; F <>Q,06uDO\hy}3yeٞjf^кp)< V)?B]_jƤߣ|MVȗ^䖝~Ւ󎵎W;ꋍJ$툍Fm‰ފ̋^=?0`Ќ)_=Omǐ6@SĒM~[3rBY{: ZTQp޵&c"ΖҠj6WBRJ  "R%`),!013w4w6Q89:F_ʪt;b)k4W)ۗk0 ":풉ado8TU ꐾč5uŎAx6|d3H?UVgϑ@eR9 \9ߔ(񘨙5SК0=𝠝lw/LiΤ([ͨ[󲌲7Q#)Vgۼּ5Ɓƺ&wȎ8ˆ͒E/ѿъFצG22݈aP\<*i|il\KG ) z 8YL-WX) :s!$%%$$&0)*+:,f-5012t21&235788n87544M5679;O>BjDFECAW@z?AFALRVXNX3V%TS*TV XXXrX$Y@Z}ZbZZ\Eadked`^C^]^^^q`bcbbH][W S'RV\b:frghhjk~kgeaZV)VX\]]]Y]c_&aad_Z*VnSRUX[]_`bdfgghgghikomnoo`o&o ovo^pqOqqTpoVonmljiMfcbbQcbN_gYTONMLHEXCCA>:5731110.c){%w"!k!j r$ M ~  y \ ^!\BumXEy v HV #12Uw8 ;~\,0^A )%5+02/( q',/0Y2%8YBMOG7(h$~)-c**"~$.93K.$#* 020--/1e1-.)$ #6+U26;8m4`,;!2AK#MIC<510+().7AHJ)Hw@5y) p g%&G/#՜(״jçT,ˠSПp ȏ}uLQÇ#]b瑈Ύ dNj16Rݑ ؕ1t0sg3"ߙܗ9 ӗUvtiI=פIyOR,q0/;|=M:Isʰ;6ʨ(Goޒ •3Ǎ.|LM/ى~`ɂRӉ\grOߙؙ``l.!Mg2@7d#[`eeh1m"[ z vm 6y+#'f*,.C4:A FIKORUWXXY\ahmrsuvxhzY|F}}}|||{{O{{{zzz|zzdzȨ#{JHp; \Csӎ6苕AގËsWӆ 醛%…و?ۏ鏑 Jj򕚛D姀N$w>!ǡL6FӢʠeӚњ5S^ޥg%P| 㺽űbIn7fgaQpyn>plU: !'+./,'"==$+1>&HUKJHI)JIFB>y yD A%P  _"?.58:@LF;KLMOU.[b`bcdbfhj)lElkg`XRQSX[\X'RJAe<861+#R8(o (x E A & '~  S  +f=rO,OF>ܡ݆D6`(I dZ m0t\b&f3=DGHIM/QSJVVWYG[O]^_S__7`b$eYh;kmo rrksSssupvwxyWzzzzAzyyyzzzz#zy;zzzzyx~v@s.pnps utqCnllmmlhebaaaaaab`\`__D^\e[[[G\[;YVSSRfRd>,+)c4^: : |   b/.8\)P+v "#%$$$$$$)%X&'())*+ ,,.04/67N8p9Z<>.@??@uCFIzL!NPYRSRRS UV XYwY`Z[<\\\\]V^_`zbyd ghjj}jjjklmnoppqppEqgr.tuvv[vvVwwwwiwxw!xx#yyyxxxx_xwwww>x!x1xXxxyzTzYywvvvwxy{{|I|p{z yxxxrxwwvEusr]sguwy{|}}|||v|I|{\ywtdsr@sssorzpmlkkOk@kjj!heah^\Z Z$XWWUTPI~>%4/.011/. -+)(''$ #~~u4J / 54yG=Eoz>wکڣڭ٘9ӒLwH~#b3yI>_AڨrCݎ[g2ݐܦkީކEab Qh}ԣE`ªaڴxŲVƲȳLU :ٴ=ڵesN<ѵϰѮ8pĮϱD0ε\|kZƭǩקNNX ҡ3Р❗hC'ސK@؋ьߍ>t. GD>QFG=ut?]2|i^2ʐD'-ՄcUMٕbتfՙvцL6TE~Z@ImTߵ'؄7CUҠ5լp׬֩Ը.?b5;_XɯhݱD b[Z!YuXWVRSPLJXIJ JIrIaIHCB90I3AOUPE1@FLOQNKMSVRKGM2V['\LVRVcptjU@R>O\-\M]<:AHPX\^_bPiBnniP`Z\Ibh kjkk:lHk(g`XQMJIEAC=9o876421;3578m8@88W9%;=>?BDcFH8JvKKPJIJMHR;VCXyYXY9[(]^_`azcf;kHn.qrqqr/txj{p}~|)|{+{zzzyyyyUy/y4yxxxxxxxxxyAyEy~yyyzzz{T||||z yvt%rIp*olhUa*\=VRRLwGCCpA::+hkʪUul$A_@o|⍵-O7̇ш͉͉̉b$шx͇LJąބIG'y)h>ذ߷"/Qˍڋ޾+fnV A- 4$Z*H3:T?yABH`Q^(gjhLdbui^rRx2|m|{yswtfstw{}}|Y|+}}|_ztwtsbq[pn868 9C85334554i3@2Q112 4<54209//3`7;> @{@AC&EDA:=9650)!Td ?D_e@ 1p mO8%H -{x0PܬG}Bo~Ľʹmb(΃уMń~` WԈ݈ÈcXf"s!1_;'׃߉čɏ.ߕޛ3A]ԳC`KĦȎͨёۈs)A>i;~( ~F"B%'(I'&'i)+E--,)&-$P$'*.m.]-c,.4:M?xA&C[EWGyEAo@/FOVWfQ`IFJO[TUXk[?_``]\B`}fmpaolkhjnr4xzzxxzk||p{yyyyyy?yuybyyy{yyyy!zPzwzzq{{|c}}}|zxtp-ljg,f`X-QSID?8p,f"z]x''Ĝ-Ѵ% u9QLϘ֥\(鮜N[b¢ ʠ,УF)RA@'A#Zss'[RP > !P&D*,+)(&*,-}-Y+('Q)o+r,*&##j%'&9$! UlZ U?uҼY4v _c;|NhŎD.5uG K҅8!9t[X*ZE.)|gݏr `$XY  * $%!"1(/Y45{58z{|} {#ws641.+&(%#"!!g 3%-Q  0oFdP+RTD,"-ێݶm0+ |5U#2(-E0347>;=@3AAAC.FH[JJgJ+JJKK,KJII[HFC@o?k@BkDEFbHRJKZIIGoE(EEBDBAnB\B?7/v)()6)#C1! pZp)vIe>_+,ctO[-.R `ܬܴ + (1ceMV~\0))EOPTy0hn\f  , 7*>BGDHrLcPwMAZ/N 3 q`:#lO,hzq%w -cY$/+1?6$<+@0EtHLPUY^YbZeh4knq]umxb|}~7~}-|{({zzzzyyoyyxxxxgxMxcxBx8xTx9xNxfxQxxxxxxyOypyyyyzz1{M|||{DxlurapMnl.jfb_.]ZYWPWWVSRLTEA??>=9J6 4l1/,f)%i"YkYh- dJ{|[۪}P;üM~>C' za<_ (eF{wΈڈň|lO]f/QAH6)&. 5.)&, ܇݇dP()ʇ) tΐq`]Ӥ y佞cȭϺRոiUmo+l#&)*n)T,00/58J;%>CGBJL8LNvQU:Y8\q]^^e_BacBexffff%gijylmmm|mmnoprTrrsKs|ss,srrrqqqqpnlkakkkUkk$kkkIkihh'ii-iik\nonljbjkEm0nml*l$kjjk+mml\jg5ghiifGdbbscdmca-_ \XWWnY\ZXRKZG,FGHGED,CBA@?a><9v62<0.,*(%q#!Q_XM7 '4gI8UvԇU`Ҿ͵E>ƩaɦIɤ墴򟺞LHNxp˓A)SDݑ|Ȓ%jߓ3&*~Ŝaɣ.ӥ"ܮ>QHYWǷ3&-z?amzJHS)y U4we!6#j&'),0h46S8}888:=?p?a=<]>(DHJI>GE*GwIKL5LK'K:KKTLLM(NO.PPPONMLK7KLJGIHH IHGaD@]><;\9731:/-+i( &"! E'ih c8Jqݰu;'~[͔ͥ{R˂/K;dqV'cpTt)=(l|0³F,x>㱳EĮ-=-﨑4kƧlçj_+8dyF/GBR֮]N)Q׵ڹi'UcȁaGЄvَ٢TO_.!RytpzUjDu L  F Z M#$QxEPTK $''0%a" 2!*$(-1!4555G6B8:=????ADEzCP@'=<=E@C6E*GDIK|MVNBMKgIIRJEKJ^HyD+A><97,4223c321$/--.//t/u//////004/c-,,/a3?6,753!2{12579::p:99:<>?>}<:9:<<);Z8/53Y4Y524/x)R# 4!D# $N#h S?- * F d  Ps`&j[zr0t iQCH }E}Q]!#i%>&>&&')+./12245w8+<ANEzIJJlIGGHJMNNM\LJ~JJKBMM,NNOOOMJF C%@C?>=;|952.+)'''(&$!~M| 5)eJ!irKzY.0c)5Tٚ׉XdBpcAgɌ ĄZÙlF%fgζ[]hhIP}F7C m㝇ޙ,CBƖCzޒǒt˓]0Ўb^.zҌCsD̈m mڈ.)s=jDCv/Jv׿^ɌѬ0{׾QL}6+ 9(])+=IPYQFPQScWZ'^>@CDDDDwDJD\DD4EE8ECA>@>>;=<;975)3`0+-*)$**A*c(%#u##m#"n""$C$# !v!"I#|"8!d6 R >;91wkݘ٩ֶk_̼ğz5y²Ө 8ۙߔg׈y|ІƆӆ񆾆ņʆfvJhQ.U,5J @D&OA2_>KjGctNmgoph[`Z=MD0ȅÅslۃQer3֑o8#鞈氖 zv̓O׀-3Im,xf6 aVu $'R*d.=259:]<< ?BEGIJYKMPRUVVjW(Y[P^^bidzfgmiekmpoqtrrs%u'vw=>?AKDbE,F8GHIL\OS(VTXYRZZ[\]~_ `uabcdffohiPjkl n\opWpapppRq@rstuvfw xxxzyyyy*z{9||||{{{{ |{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{||||$|;{+zy&yxgxw`wvutspdoFm(k4hUebm`^r]5\YWSPM:L#K^JAHDuA=<xuHeR0"։)Ҡ_˨KjĿY.cpۯ6Y֚ꘅpNSjNVp?Òm5\BW @]ćׇŇj݅H.?$ L*8$߅ͅVRklˇC>!Y"{K {܌s>5PFߒؕ˖חw`U}vXyd{3ҫ,[*޸hĻvV ;c§êTB;ʮ˹c[)ΑN,ьҩ(/ sGՏ+>%!% rA#޹7*6O(CE P' LI K)M2 .)YG'LMHMX GH v| "#%O&(+/269; >?ACFILMqOO/R UiXX[[0ZyW=UTVUW(WU~UVY[\{\ \ ]^acfDhSjklmm9nm2m^lGkjjjiOg\da^\[Z4ZXV TQKMKxIHLIHHIIKLMNOIQRRRPRRTWX*YXY[]_~aaFaCaSbd=g}h{i>i]jkXmnoZpqrsttuuvwyyyz[z,{N{C{zhzz'{B{b{ {zzzzzz{F{ {zztzzhzyxwAwww%wv'vZusriqpo`omli(gedMdca^^V[WUSQOLIeFaCW>E;740,')#' v i p*\٩͚;ɲuĻg%򴤱ӫq 𣀢󟈞Y .OXϐl1ٌSU'򈭈vN?% 7􉰉Kэˋ*Rt/ܒ8[ř#ؠ>3>'F^d!zˬI鲋 ,ֹ%ܼxǜs f čvމâĔad,őB0~WI"àĂŅ\sŔc'űĺ`KƌduǞbKx5cŽV?ɋɣȪ ˲̆j̹07 χrϳз'kφξ>ͅͺАLfuOޔ`p_[av_).F_6%!i$=JwvwM.:ZJ Q\9+5;v V !$',18 @@@ABD.FvFEeDC#E+GIUJJYJKKLNO*Q RRSU`V>XXX|X,XBYZ)\]z]}]q^^_}``aqbbcdUefWgggfetefg~iihgegg hggfGghgFg@fdeOedgcAah_^]]{\q[ZY1WU+TSRQHOIL(IfGwFECj@'#&-|4<DGIJL!OQST+V+Y[]_ad=gNhge*fim}on{kgfg(ijjjj_hfe.eDeddba_W_]d\YDWsTR-OLJUIHE@=:6E4u3 32P/+'I% #r" GP| f"EsnKql6G  > *^I #A%'d)C+ ,,b--q..c//00248<@qD}GIKZL-KgI@GEE+EfDB(@>=>@BDEEEF/FAFEsDB@*=:87l89<>?!@~??'?E?q??a???j?I?*?R?_@HA/B@CCKD-D&CB@Q@@X@@?2?@ADFFF`FJED4EEFHHcIJJLQMOQSUkVWWWVeVUIVVWVUVUVWfYZa[8[ZSZzZ-[[\6]]^]u]\)[Z[Y)Y YXV,U$SRQQQPN%LJ/IHGFjDB@?= ;8p642/+'#!le(=Do ':&OV~mҘ̬ɨ6ۿȻöxɲW/{êU]UAw2-9 栤d iWڤ3"ԩ^ޮ,Jײj*r8M'[.\ѿ&U+F-˒i_ڳՃ־׺؉5ԹM%DFUٿ߯ugݓ޹'Phe5\ݐT+ڶzLԥ_ѕu}3ٵLDMQsMIq+tAP@vSTYpusVo<ޟk_1&)mNعڒݽߴߢߢߧ< !<ߓ߹{h׋^}Q۾ |!!ݞ܅.އ,&8ty)5E1;  Glq $(,4....8/>1?235H68:C=?BB`DDFdHvJLOWRT5VVVV-WX|YZ\^`bcd^dwd9eKfg*ih.hfVeVeuf1hiPjjiijwkskjiikiiXjj[j{jjHkkjiwh.hhi idfbc^=\[[Z;ZX}WUZUUTVW3XXV'UyRPN9M"KHHCD@=7=>@CCCBAxA4A@@@@N@]>P;620../.-q-e-.02331-n)%!ny~u9e2s  ~KHD,=CI K߈ю˽}'*3C7(z ŗϖԔ%2ZB+8㆕*˄ŅPp_gz*GuJ#%͍፜;?\RNGהД#coוW`\ȝ՝!Ĥ\GD.Frj;'u "+UAEk~¹Wȿ+= )ʿ/ӽZ /Mo.nɿ¡!nr>|GyқLbwgeG*#/''(-2[:?xD5HhKNQ UW[]Nac_gjmnqStPwz|~}||{{{zrzfz8z1z$zyyyyyyyyyyyyyyyyyy0zzEzWzJzzzzzzzzz{{z.{'{${L{9{A{a{E{Y{k{I{k{g{L{u{T{Q{k{C{N{Z{.{F{?{{;{{{!{zzzzzzzzzzzzzzzzzzzzzzz{.{ {.{h{{8||J|{zzyxdwquTsqPo?nmkiGgc_a^\YWUiRoPMHKH E?<8"6 380,($ h6 g?r܎ ز)v_%[T6ڟȖܔ?d\̌QO?6ij߆EL}9uR/ݘřHNt/7\bcü׽(LŸdӶ؟'ܷ4K+>l\y{CsL;G!:~Bj>4X Hlxa"=#8uL^`w*$6 r 7 4A)~K+ {Ag{( QuEaC uU$op\V-L4: K x 4Yi*łDR ޳+vED_xޝ!$=t̘2tdmƗmeڗP >x+xŘ0|ؚ`VLž#@jS!NZ˪ۭ֬ίot8J'ɾʿN/#xɥ˕ͭCpO9_?Q v,2!#&'H(K'%f$R#"##d$S$q#!\0 s>8,Yn l $'O)1**D.`147X9zdzpzYzzzzzzzzzzzzzz2{<{{{{q|Y}'~}{xJt~pnLmPljFgd(bH`R^[XTPNJH1EB>=;R95.1,s(&&#!A ] M_ ]Sz3wۡۀwڻQV^NՐZ)`ӵNVC&; mӔSׂ;۟ކWj>o#B,765xVm8k?-~Mwf>:ۉڰ3"5^^R/4̣7Ň'H\t2R@KǠ9cBϘӖƕHj<u1ԊЈy (#SxZ݆Ԇ膿͆ņ冶ʆr}Lg$4vևo|S֋4j:2ߕz9DgRtPq많\cغYLIý$(sԨ޻swZ > R ?}anK WYdi4x$7 ! ##H$\%8&'(()*k++,-013444Y5x68?:;<=YADFGDGFENFHI JIHHIKLLKKK4KRK\KKK:KK2K=KnKKK=='=<;B;::K::;3<;{:^989:;+<<;::a;<>y>>=X===>C?7?>z>X?p@@)A@@@??U?>?V@@ABWXeXX|XY8[\^7`2ab.deghij0k&lVmmnzoHpqrHrYrr tuvwwwwwwwwxfyey*yxxfyKzz{Czy3y yeyy9yxxx2yYy-yxw&wvv]vu!uttttt&srsp/omlihh$hlg1fb]HXpRMJHFHEA2@6!+ 愝D7Aφ}Y- 1(⑵—< ~@V۸0tK#s{%$evкгcӪYOמ\ڽy%ީ-xi}Z>irOT-H2RUHR@3}f 7  v Y  <   eA)"2 5#&()*)(''(M)B)(( ((H))))*,-0P23-32253b33334E4364y6,:V=t=;g:\94/,)(&\%D%[&&$&$'"Q In E x  p ! &  | Q f%!+S! B_9bџe2e)ҷ8XʫV3]]ƔSʏ'ڎQ؋އ΄M &Æ*!U+8a0W`1iM5])&Aކ׆RMmQ@ vA%%dg뎰HIQʙЛaiK\Ч;b=Pt^˾1ӳTy634b k F.+ " %&'[)y+-/1244568;=?XAA A@@B_CD'EyEVEE/FF?GGG|HHI6JJKkLMMM MLJcIHpHCHGElC@.?>>m><:86/4Q2/._-,s+)t&"3}H r r V , \  A  U G Q J ? I 4K{O?!{GMٱجAل٨4ת~!ͪf(Ϸϭ͇ͭ5'ϥγ͖iʺʯ'{ɶɀ?<Оfѐ Խԝע_kon8];ekn8+}Fj7  Gp]/sn? Z""!! V!!Y!r bn]k|~8/iqrWAd;GS|> F \  q_$WQ{ 3^6Kd?D# !iWJ| @#y$%'),<.k.y./3;AFHHPIJULM>OOpQkRTcVXsYZ [F\^]~^`4bxdf$hhi|i]jjkm'noRqqqr rsuuIvvvvwxyy"zyy~yyyz{N{{\{{{{ |{l{{{{7|{{Uzy\zzztzyxxMxxwWwgw0wvutrErq4p-o5nVm]lkihhgeca$_]]][ YoUR"QPNKE=7322F1/.c-+(O&$"W!# ~EC/vJkސ0Zj-Io᭟1 8SYی FKgxDCɅÅۅ΅ׅąㅿׅŅʅ̅҅܅؅ʅօÅ΅څN_.򄙄<ƅ )y~ጻeٟIrn׻{6RKcWg& xQw{^ $(*e++*_+x-0234&3H3T4N7:=>===>!?A?>*>6>g>>>>*?? @=@?a>>F??v@@8BC]EGHZKMdPSYUV.XYYZd[[[ZY$Y 5 +x"_! w  P]")&!Iz6RSPX8 J !WXP ,3^Bߖڱ"w׊+Maoߤ߄#׀s ,Ǿ¤>lI9޷볜A0Cĥ8?hJe>桗zd̔ƒߒX񐷏E󍐎*݋}i9 ly܆T(Ivņ܆i·>:c  ޅH`84ِҔ@l;zțݜAZIR쩞;me4XW&ç/[̾ЎؓOSb}z:J! e $]i? "%(+,(/ 14y9T=AD:GI|MORR0SSnTU XNZ\_`LbcdnfOgggLg?gh.iRk lkkloOtwxxxy{|,}|d|[||{{{{{y{{t{g{{b{`{n{F{a{`{;{e{J{E{_{K{F{n{>{e{i{O{x{l{\{{g{u{{i{{{i{{{l{{t{{{y{{{y{{{{{{{{{{{{{{{{{{||#|t|| }};|z7ywwv[vu_spm"k8jiiih gSeb`?_^`abba"`,_]m][XTQ0OBNZNML2K"J H$FCB>:863Y0,((M$!"c[i W]5"LlRYJ%lQ8T,ygQ-z `d:ا zQéF3q^AcWԜ B~(ʔwz7?E.HqNJj>Y\I h(qؒ|S˒ђAȖӘ2<;񞳞۝>[>>pxƍފ6ŒO͐]I撿cؕǖO J'U !8ējΓ %qkml閨藧8uLǥФna򨖪٫έyıuϸr߹ǹ\PÌP%X;΀S%[ *IH;rxmF}I' !!# &*,025p9<1>?A~DIKN6PiQRTVWXYZ;[[8\r\0]] ^]\[ZYZ\^s`bbdca aa4eEj#no]popq(sottOuuvvwxXz{|}||g|{{{{{{h{|{[{M{i{7{M{Q{7{R{\{L{v{a{b{{{{{{{{3||||{{_zyxwtrpBonlgkiigCgffedcDb`P_^#^B^]m]\\\]^w][ ZXW[W@VU[ROWK9GB=96h451-(%%![14j Z|:))!"#$&)j*h*,(f%M"@ cuB n:UI\s{o/@2 eJ! ?_ }%D{W4_[{@Aާ&ܼ>_Q׮inӊA͆S̙ 軹˸jGbٳz*%fgУҟd(ؙݖnĔ>pkސڐʐ␶ېڐݐ搷:J]ؔ,#t"yYW&X>P̗$zӣfn pb&8NaդP58wV ^ KcE!$'+\/13479#<#?c?,@A,BMDEGHHGFG KNqQ3SSS{TfUDVWcW#XYZ\~^_`+_] \ZYXWV UESPLHD@?>;8420D/|.-&.024567r65~43@4442//,g.4D?F:JKK NQTUiU*TR)QMJFA">; 84w1.,*+-/0246W8G: ; ;n95u1,k)>'%#M!G*%p1 "$&-*.10)4 M b , D8~\M֕tE͸ʪ5~cħZ A~vˮʊʕY\ǪǾN=Я5IsA7BM>Ҧu#{mξqL4^ĵźz%NJ°H(vR۶CѾ€P7ZPs]+]H0U)wse L\<4{.=b }I#'e-38=I@gAACAAC2DDD D|CBBaCC}DDDoEE@<2P& 61đ4aŔǁ"!ͷӋZn~QMf-܅һ_qCĭ̜^c%RkʗVa>q8ccYd>ņ@$5??乮f4}øz£ȫʎ ˅laҙ6گ{ӏHN,t8YfG).RO6 v(`n[]긚 η˼j»%ÜJ{k<[:8=7778=9G999N:;?h??U@4B EGIKLOTV!Z\_AcPeedbabbdd ee_fg}hoi3k*mnorsuvut s4q/ojmkigfgdhohwfwc``Xcnfi~jjl.mmnnQnBn%n}nnnmmklllmnp qUrsZt uv&wxyvrmhedca&_[ZZ0Y8XURoMhHKD@?=W<8(51/B.-,* *-)`)l)(X&y#o1%c {M OL{:Y0EԿ5ڹn3¶±=9a߾l;Osҷ;l3紜ϳ鯃=\gЬȪ>]/v9宅֨m 9:ZjxЧ_k1xݨګYj n!z|mQ+ŴewQQ7C9_zH3il"$|$H׷Ӹ&/jųJM6б#']δ޽⼮»m.,t󫓬1.Jܸ•Ðp]Ʊɪ̀iiюԌ+٠7ӡn/uްsnTh+ > tN,#'[+,,*(&%$%&)-0346554271x/./;12S3334#5~6>8: =b>>H?@CE^EA=b9Q8[88H63:0-!*+'3%#$#"! y!#"'v*++***-/0&0N.-,;-.0~24k5s66E66H66[8t99:;">yA)EUGGGF@EDyFI4L`NpO0PQdT|V-YZ[/\!\R\\;]0^_`#ce5ghij?jiii4jk:kjjkizijlmnnooooqwrt/t~sjrRqbqIr7s)tQt#ttst!tsBs8ss3uvw(xw@wvuuMs]qnk;heVb_m^&]\\\\L\[ZY XUbR9OnLRKJJHKFB|>;v;;|<$<97R5n3/,^)))(^ $Ed՜qco*ƹ.uGFvv>n]~ѯJ<쮴Cn̤~bYݛcQ%<*dqp>SKݸ,8ƹ7(K]\nXz݂,ـ)3ؤٹڎۏݦ2=SIBr8/Q4A>@J>hO ֳfrЁ& ȑ>Fyn4[cÿjmھP=\ݎnkߜދܢJnfՒ/ ԻӾ$E{܂ݖߵld1~LC] `vECf)7 2R#_jVI/'d0HCҫM˃v:q>V[%Ծ'O8Ŕbʚ<~Έĸ%Ͽ5ɽkvĩZ3dץآ4Xk?2֙٨. ٦۝mD<$$$x#"3 t @)u B;(^qAmۥX840ɈȎƎ–n<7 ߖ$ ;3˃Ӄ7JLaޅ˅1)X.Ca4`^CiSKcIBg-<6=?$؅څ'zىzȉщIGz!T̆珶ݓO7SK96HlMNtZ_B.WIcG;Kl p w t ;R"&z)****+,/2s4678|9I:E:Z98 7o6k6@64290-O,+.*R)(V( )*,/:1356789:C;%<>==<:H85I421w/-,**(4%?#:#$&'()|((':'T&%# "!!!CVpPYTn,\yp - q g  {T & 6A v%/Y6o/7`\_Y%Dtf' 3&>\_?SrCj?ySx` aZ e""#$*'A(('%%]%&''$ $+/ "D%p&''(+06E=BMFIL)PRUWXYZR[\\\(]\d\[[Z [Y[\m]]h^:^$^]\[5[Z\'^7____!abe iGlpmrt0uv2wxyhzUz^y{xwwvuts'sjs#tHtssqfqpp9pojonkxhqd9aI`_z_^7^]^_X``e``1aGbcccta^\[ZnYX<:q61h.*(%"   ",3u gef.ݞ8 ('ťJ^0dLȅƒCľlh彇J Hm)9kksܧ#W7 @eeΨzǦ,B&8ק$fYݨЧ穰ën/Zil/N@`LoZN\.ÿpğ~GǕ^^[aYt!ٸZZiRAsٷcݵzղޱuӰj*nH'^r'4ʨ4&N#ڝA4&ږ%ߙʜۚ-˚B/BlЖx}9U͢Vr럙c@c +m&BԮmո_=mR|kiUѠ՞~s6QzfOKRPTJ $h''"'e+l. 1#59OLH@D@-@BDG/HIILKLFMuL2KI-II,JJHFDDD&D^B'@>F@B~BR=3<+$"" z\  #Igneq5QQa{[S]]LD}աi Χ"wΕˮk ;fhiӞxգԺ2R~Άϲ α) n9t7E- Sݥ$#=tWa8pMW}[Zm?I: ^QbiTG2$&ў̘ǩUnɾ^Ã^c׹ָɷԵi=0ԧK%q;pË@JQ Ќ@rpN|lurҎRى}Ո\̉ىbvEp…eYzpψo!W1V6s#e5hp}vĔՔĕzx`%q{r6ZXܟʟh)>~*/!'L=8}ۍda)eV qy!7g1. #^')%-0Y6 ;@qFuIL7ML{K'LNsQQQQU]fhn(rOtPuKw9xVyyy{zz`zyxwwvu)uzttuv#ww'xyybz:{{h|p||{M{*{Y{zyxwwswdwwwwx z {a{rzayx(ynzzywutXuhu t#qnnm2npoppponmmllkigWec`+^zZsWTISRQyPeMIYE\A*=:7;5V2/./024\55M31o0/Y0f123321/.i-,+++d,,,,,-./c12?33N2\0@-A*Z'$" Q 9W%5- ~ zh `d%J/:ACBkABB6C DC6CC{DDmDCzCCtC C9BXA@f?=9631/-,-a/K2478:<>y@ABDDDCCBCfE1FD@:50200/.,K,+,*)o'%^# h[ $':kjc[iwO cڬpғҼ‡ev4ɽ$˾6Ҽ|aoPXͱd1AA(D.:]Ӭi YB41ß kqәٗϙ՛D'ݦRçLICΫ2e{a^ۮ*c,=@ױF5ܲykfh< ä/UƪǻǖyıŔ[ʻʇ˥lHf/yvǐŸ„hĪ cϬ(vԍ[Z@id7Hzn*% 74Fo (gWy hM^Tq` xXIF&NWE4zA`u ,wLS(TJ=Vqct֌O/'k{" 2p/ }'iu.9?c   J [ cs `#t-5666|89::y;G=8>V>I=;;e@CEGGGFFF`GH~IIaJHKgMdP|RT6TTjTwUVX)Z[[$[ZZZC[x[6[xZXV7US!S1SS+S{RQPPPQPPPQ R SS0TTV.WRWVVUVgWWUSQPOgNLuIDFB`?<-: 8^7\6j6679:;;y;;;::: <>B.GJMNNMLJjIHGxFD CmA3?O<7H3Z.*(&%r$#e#$%'()*,&0468987P7=78k9;]=>t??@@?/><=>@AA>;Y9*62./+'%#"#"""T!"  !"$+(,m0-21k/,B+*+--,*+'# !axPE&1v^ m!"(C  w gV1F 6 {N?ugS,z3A8)߯'Y%{حN,{H׭ӢŢq * ?S|ذܮNE֥ۦhwԞڜJڏŋc7 fֽty\b׬Y\EΟ˿ZPovđ* ޹U<Ĭ]# b۰&QarXZNuϧwe67BKiOT^U%+%9|ԗ ـ8ϻYɻĴ%ʉzҹ.RޏA6۫RA =zyԈ'[qDUOܐUk)?gZpGc 7E ^ G 2 t N= " ?s~ d  R+wP9wG Zq?PK : ? # ir+6H  t  C  / <",*Fs,2\Dv{|'to,qPmg:, Z 4 } >!-304-+**B*(''i'&%n$$P&P)-1M5D8; @SEIFM OOFOOOJPPmOL6HiC6@=t;98:U=5A;E,ITKZMMML?L1LKLKIHI"MPSAUVKX:[]%`Qaa`_"^\w[ZZ$[[[ZXNUQNLKJIFCBS@h?2>y<;$9J88:?<====>@BA@??@?A[@=:88:=?A CrD(FNGFB=60*s&"<?bDO~JC!h/bsX _ b yt[ڽنّMӻә ֝|*NDMͳۭ+W1 L-X\OIedؔœRa8 c-7ܗWғy(ϐ[۔_gn,ǘ1wӝ`Λ՞P٢7#!,tu͸յrlAŵ]&U򺝻μZ߹_^K:q,Se~ C)=~  ;L #%'C't''&# m X!!G#&+1,5/778F88|9D: ;:i9707+9=B3D@DAx?[=:72-)%d"SlY6,^Ii}_y*JV4 b#%&%"2 O( # (+'..,*%="$n& 1 >b2 F.y o` H#"DG V l}Uv $C.$(q+,++:+*(%Z" SH thB )A5v%7,0l2333@2e0.T./13d30u,E($"Y$ Z5a  ~I 1?'{ tufgvW-  6-69E^SR&467!2r z B|QTUa vKr ^"B" 7tM{Av"&T*,@.i/0%22N20,j' 3q%*-/2p698;;;<>AD(E=EDCsCC4DDDVDC#BAE@V@;ABCD(B&>82,' $   jCU r 4 -y>x"%{1/ذ9VI-dfѴ*)ʦbEΞy{ʳ Xֽ HQԑҪ@"hy H9ơ2˿Dzޯ< ȱ\C<˹ݻ/, Ɇ˞Sʎ nJŠўTҡmuЉzcϼy}9}5ֹoiYN8V޶5ﱞ$RαF'Ի!J4ts["?^;ͫΚgüzӾ) OD͙J͜55k[;dPX<^FQjs5Wْܐz .M+' E މ C #''i&&((*+,---"....o-+y*/*+r.0b21.*+(f&&&<&M%g$$s&(+w/3:?qEILO$R^UXP\@^_?_][PYWnWW3XWUTSPYNMLK2I E*@5<:P:w96w2-*('':(c)+.135)689=@GCzFILNP*POsOO_PPPkNJ FB@V>80)'&R'('x#_Li #)y-|//r13i55A31358;;>ADaGIKLMLIFC[BBCDCCBBCCmCCUBg@1>M;k8f64o458c=_BeFHI%JK,MNPQ2S U+WDYZZxYTWTROhMtJ]HGmFDNB?wr@ACF`HI'I7GoD@;d7J3/,*)Y)u)*)T)((8*+,--<-+(#wb V$) /5g=WDQKQ XY]^aba_1]\I[XUFPyLH!E@@><)=<:~73E0s,'!@W) <8| ("+4;ABA>:4-(6#J{/ i o z Dim ge 4 p g[D*GЀǜßee{(PM8˖]ǁêJ`CfA ϽB(Dlo88ʆ\<@HWhhʍ;IBR}7sv??㏮bc7֕nk,~l6śՙ0ؖ$ FحKYHƅǁ=@s֠*XԯWsʍˠX\:v  2!9%*y0645K5h444_54(3m10://0f/-2*L&r#!?"$'+,/...C/627>EIMRZ,cMijg6c_^]cZVSPZNKWH6DA@TAsCFJNUQ~RS]TWVHXXWUS@RQO5NqL?K{KLNxPQSxTWV+Yp[]}]Z\ZXUQ_O_MJAE;P1)(+/357#ۦڴ#ٍذإog)/J 8'$eawj!< "ߔߵO?5) !/)5--,)'%%#S:8= f4430]*e${!R"x%'+'|$X""&-3e417,'$q#"~!8 C O y 7t u ?N")C0~33/)I#/O \% H"! c #&C('%O#a""~##r" 2   !#%v&K%$&m),I/J/-*%4s a _ D (o!9%&&%)!u8Eoz4c I!aVW)l?7 ?x7J 4 o?F4E O)9q8AGX&F,޸ܷci# n ,o,~E߈#n6!0NR| Z u& !N. ,X+߶o*hK2@'G6$H܈@, ]L(A}EE)9/W_Wn4P)8 :thE Vy|u Tq3Sԋ}Ng&l2gei&%6#p!O+a A @3"L%%" 1lVR OFH),+a a h L a JG $'m*2,H.26:>A[DVGrJM}OsOM;JDEb@O;t73 2G1111~234a4m2v/(-+,,8,,+)'z%"4 P "#@$#j!e 6[`rB a>(Q !Lnl2ݹ!kݡ7Gڽֳ5ηρ7B}zt͵̶/^,ȥ}͚x΋ I6M)X126!'ukYBT" N$s*,G+'/%$'F,/0,(L&& ()'!#KG5 Lfpga #,d7F= ?$=<=A5DLCl?:17?6k79q>=:O86;420/.,+=+))&o!0 KaA*.C8uMxan 3]܍9XӔX¢IU}/1ʖvoږߙ/i%]GfM5),5&P m(Rh~&.6!:<9=;m:9:\;v:61 -*w*D+",,,,.+(#, s0@"*5y>CDwA>O>V?@A3CCVC @::3+%T M JbQ?og gs0;dABx/Q 6QN݄G3ur¼R=[]Pe#2ɵr˰(4$úAȒРm'Na n#g1zD>ܭ#9KshQ $<E_dU)s ,  >$& b  " u34.t.O 5xv$: "[#EGa[M*ݫ&xtB-x:+)R_imU/u vHSbMN:` 9~^ 9$k/8:>??,@BEdII"HC=9@6567:>{CHLOP?PLF6?7d2=138=Z>a<8a66b;A0HLNbO^OjONiNGM|KHB@<+62#34"78*;>>_pv{/b3pi0;m2mD < l(  `^ڙGՏuԗ̒32Ώ 3J:DM LTdeДדEGn w*ƱƢĀH­-ƷW^F{&+vPRSq5 vƴdA+֣'UbK /q  n @ 'BI7I6LP7*P l ! %+Z(P~Vl: S M  i 'D($)-01 2h/9,N(#z Zp !" t{>%.5?EJyMPOTX4\]][ZY"YGY+Z[] _~`acfh~ihfiddb1`]M[YX`YaZ[]^%___[`pacegnij!kmkifa]lZvYdYYhYXVSPOd6/+,_..26=DLTXWS&KB;/7R52/G*'% hQc|R" \x]LK (O!%R"t LB\(R}V A c$bzݩLWԄ<ЦQ; tR3G0ɼ̛Чb׋O3Ջf+dgT8mn+)D!pGoRa]}f [ߥUg\wu{Wd ##dWI8!"#%(-0|0,&[!AUL a#%'c((()-%159=?APAABCBDDGgMTYYMSH ?84k0+((+..*$H;!,%%"N**#)",)$/~ [|V~W=z  0kJjm^V2hiƫ̡Ԝ֘]]0_ڹW66Bڌ֨T~RrQ#ܱRuq(9ļvG]5?%C΢1FƒBwJ`N)ܹeIR`VŨۧ¨ѯg ҃ڱ(gh t;t4ckv21tF=oauh7 6 K=2  q#"/69^:991<@C FEDRCBCB@A#@?D@CKEZE{C?<9768;6BG+KL)L~KJdIGFFI8MQUsVV:WWZF]_Zbbbna^k\Z ZZ[I[Z@XVVWXX X@W1W2X~Z\)^][XU TRQKER@H>}A@FI KIF=ELD}D>EEyFQFEEEFJPVZ[Y9WSOI+>2& E }W{X ; gvxW uF~ Q]7w~wk O 4.1(WXa7DBpԡ.%{˛:;MJ: ŝ ѫ~sϊϑ͢ʵ]DZǏ̜$&ٶ?b߼+) ƺe·^h Q߳H.0(Ӹ0*ϽՈ ` q! z I b<v` )f ,r3!"S"C!.!!""! ev Jqp!vN֐ٖڍԻ@>v߰ 9; E_~ ̙~B -°J/]-ŢćĘ ɈҲ)DG L>Uگ%mAeQѠJ%R}ȕόԪ{BBUNJ' +@ uw Qw6 Z J"pvm~ :7  >j!"r"0#&*D-_-*&:%'-2&53-&!8P %,r1r6R;G@CC@92&-))*)& ixD=  *5=A@>>?*>7P-!dS/g!3';)%14[O"Y{)!yE(1:&?ADFIG C<648?>DIJJIdG,E]DFKwPRRPOMKEIHKO PG9*'?p  _ b s }#,241N+% hM) Q PD_Ƒ6ڤٚyҟ!ܾ[HaŞz˿R*ο߿Qᾆн!п Ѹ:xJ/nd;di/t$=09zA{DCEAF>CKRbWy[:_b9f{ii gaZsTNjK?GbA801x,+D-R,' r7%+>.7. -,-024w313/3,)p*.d7AEHJIEB>;65+7871!*# `?]o3XvN#iܔiэ ٽ5fҟ.;ݷDսANhHHCRxxKP:2,wIz1T۾6vfݵ_~OZͣzҷnȁÑ귂'i5̱Ei\fԏشW8Fm? %/#K#D " hIi 2L&vPӁѹ]ey$@qLԂLW0[3y[Q@Îǽ3%:ЅГϼ$e8k48ctD(6@߶_ߴlLJIϧrZgeߪ t+WBrIa6 <^h9!$%Q% 'b).4;CvHLN^ }4Vr\#&('\% V=#6% #'2>HQ&WYZXlVSOH+@\;u[(OϽT'c?eRpL"ޑ<\zI0meZʻ*޺뷋*[.;39"+>:/*dF=ИCO`:|ߚ➲]@Ob8@.:ųNur0 yV^1mh Џ@It&)Q!E]DS% V#4o$WM_ p fafS'P-W122#4o69/<=v=>]@PFM`V<^EcfOhhidjklkj ihafc `Y[JV6PJI>7Y1//.*$%8!{My( "&-4799W; <:87:><[2>#4'I  c R E CMd*  sY_DZOν鮋s,˨FzG?ݭ6я}H0F \O48cˠ"74ǾDxT`fJ^U6 n sTI >zn!!! Pf7!"%,3b8q;8;;=GAEHI`IGDA@jC[GJELLMfNwONMKK&NRVYZXgVU6WY\3`ciglnoVolJjg enc:a(_\1[Y9YXxX*YZ\^&``1a`V_ZnUO/MLLID=7{3..( "hmHo"?$3#>g &oru 7QyőܽAm^ϞԐxڧ#H!VCVݾ>ٴ*|,xI-\2 觵KbS\,4.EAfվЙt.)?G t`CƫG4v-YW{oWkB ]?7 %<.354r4z7U=EJNOP RRSUWYSZYViTS/T9TfSQONNELLIDAAC0F'HGEFJRZ_Jba^\HZ;XTPZLIHHhGC>w952,$ _ N = 7' $q"Ve?)+OD#ҽ K-tCda 颗ϫH7x4ρΠχΗ[ðj4SʝΘ,Oވ;@ꢐέưļXȇȀmGãAХNͦ U|ƨʞ̛iϦӎh,\3fވh yU9hѭ6ϔN֍ׁ9p+G3V;BxDPH3s$w 7&v 0 . l#& ();*)(& %%(/7>CHM{SY[[HY T7NF?83/o+y&@v ~v%*,,+*(6% Q]A")G045^6f6<6D4y1-*x&! l4@" 7&+03 2/.#/27i:%:P6A0~*% "(0|8>ABB@>R<8Z643G1 ,%rsiqrN^< 9o )&r*+*k&!t HoR} J6z݆[ш}fU؃;&|6<}>לֶqdحRzBrJ n[l.לMd҄v`&yO{ @440L sY">9XB|Y$Ұo0 D^v^Vv%> 'g/9@B@:$3,%G   c"f&)W)('(N*=+)%K W (g=Qh0#er -!g&((7'&(?*m*&!}iSXql<Zby *Z(k &,-1579;;#8@1( 6nA3 2_ k 6 (0 Q s3U c~!Y$$#rIj QZ>Ǔ΀Ҩ i5u Iq9lLs]ԭq* !% '&&+':)G,-.g.Y0X4a;AEDA;>,@AFJhOQR\RR4QON}L LAKFI:FB@?R>;"9789CmGHKMOON(NN3PRTTRLOJFmAJkF[7Ia5TW(߇e =KOqo2DJLߚNhBжdnK1ŭĩwÉ5hʧ#ݿ $LUңʞǂIdڐ搯V٤.%ޫeZv4̦߫AE@[ 7gbMĻs(ӱ)SdדgWœդS{0qhkjAl Hq`t>`;m C:'=ܻ\q!_'+)r'B',%2:AGMNQU?X[\^c`be!xGtԵ*'%8"Ӭ̧\z(ũ/ WөիͮīDDD⧔˥roNZGLr|͎Λe Ģ#!VJT0ٸMmb W  ./33 / ow[R _9B#+ח܋wQs%  H0m < P6B(ZO s> /L v$H* ,*l*")&'z!Xthق#aЯΘ̫̰٥ޅd| K K z gfS$h91]0EOPMMP)TmX#Z[#]]X]Z8WQwLF7B>?;z71,X(%Y'+07p;=5=<>@;CEpGIuLdPS,WqY|[6^`c}fGikmo(rt!uwsj\M<420-3*(<*-000#/./;13O66520a15;/>8-"Y3 ZJ < %'T% l B!ZRX  47+.^ ~x]V?/43!ڠR=_(KrJ@(~ p  O5jt i Mpf8RJ rp+^:GD+Ym$uSچ*ip I" v  ) w zIW.4ݓٯ,ݿmIRiDF&p.9E>PSRFN%IEoC3B?=92L+!8 _l}Ol.Ka=v s i(~/69E:4 +mV "Mƣםיۜ١ꜯؠڣO 0B)lLNǿ45޾38Lё~ӳS@̄Ƿ~O9ޱe3¹̾Do20:JuGLmF8 rx57]u#*M/11A1g1,4r7N::8_5347$>?A+BA=8.1)"-Rb*_pIBOMAB?ُKt˹`׫ĭ{ҮB ɹoʝʵ r]ڄeh$h! *~$(**++D,-/V11d.'xK U A^`=B!N$x(-27:<>AFKPMTVVTfRP>OHM_JC=2'2  Yw  #%$"2Hb c,H^ށjkWh]+ni ;"%,)+061=8BB? 6*7  2& T#*010.i05=EHI5IJKmNPQ QM~G??7>304/-M* &)#! "L$;&'(W)9+90A8uAJNMIB<::=AEHJKJ;Fm@$93.*g$9 zy|gH b  ^d(WyݵI t%vVw]oDŻMȴogQֻՊ{W#ߴA%>,rm@ōвǬت#C aS &[+.b/01w48x=@A`Af=81() `9F& cO"U&((&!`J 6WNW gH% S| `   D6q[  }}6#+ӑԬսӟ{衛PˮO8՟2a2U忏aޙߔ$ߐ%LսϳBQ"c  C2(fߕߓp}:Pq *O?BI "%+1564M/\)!^U,sl D= w s*#;A@.:4233321.,]+2-C16 :m;:::::/83P.+,1s8= =840.,(":!#! r6&n 6Ii Kj߇DEm UrnNݍܤτ~׎ۃ64lTFfk>N:: e j $9   l:$-w5?BFJgMNO-OMOXOOPjRVTUTRNJؕqՇޮQM $w  {a -]yWtQ ~E } M l }a ^z$O*]04@9F;i:73j0!._,(b#+diO.%R'^%6"A!.$'')8+-/=10n.w/6 DAO`WYZZ?[ZYhWfU@T@ScR:QUOM LJJ^LOCSvTSQPRoWg[^h`__M]\5ZWrT[PLJ}JtK?@AKC DDTD.D~CSB>?92-X++.-+e'#t1# To3@لy8|Й̈́eFG!vMg O._@'RÅN1_ߵA{`奔l]^gĕfWޔM,Žۍ⌬Ԋ‹s}nxБ9O^̘T=&AFV@hB C~CqCMBc>6/* *,.//0x369852-*~'$ j @FWoFi + ޘU:ޒ& L%mW@%H'FoIB*?Il@h{ ) } S#4&'&q$""#&)b,/C22"1b.P,+,p-,*(Y&H%%w&E'1'{&K$f" fx}s_ [u #[&)s,.C00000/g01g3430)"F9` Ur hAo;/&]+ N(SC   m [ ~  t`Z {%1Wfy P dZR=;83+%#3 O,~:ADG9D=74d6B;V@LDbG&JMyQsUWU`QIQB}:2*< lB K,z?#? \qͲv4]9,ɡwĜƲ寲ò8`Oiuݫo>uʵ'2MTdo:MĹvi,ءOPڬZd$4УԢ$@ 91  7N2 e L |""!=. ,&+300W-'!Y#5{#*{1=8;<; ;;:=>=9(4-)%#! OAr*I pHv!/ * 9HC3[K }"(3,G+,'"1N GHtJ28%W !! QWnh 9j)Ui J !B#_&#I='c Pd*/82("`I#P#"uZkkktR jB . R8{4UON®ޤ0͙嘤ACaBZ?oDOX]__#_s_aal_\ZZ]*_`a0bbb_\&YVtUUWEYZq\@]]]\8[Y*X)XXVYYXWWW=Z]_abb*cc`ca^R[JY X XX+Z\_d6i)llklojsqgXCG6 1.>)S  j G '%,/3C79Z:97o666q75K2?-t)&&e'&$7E6Y UՏi9ǥ+Ŧ*'Ej((yodΦ2ʹ`࿧1~soDf`knt%c-&R%$ѳ&&P}iŃI#Bһ[Rfi-j7l+̓Țc׭9*Ѩ2"ŖXX;cmD3C1לV_ğѡƥ/rQlƉK{f1񴄰L(ʠ&o ֜"z+yD:* Kb.Xx!(.24531/u+&!m($+6">DbGFEBBBB>k93136;BGI K6N4SW6XUPKLIHlHdGiECBNCDDCA @7@AAAWBC)FtF D?G:6T3/) #!r$( 4 ?DfFD?CDyFHeIG.D@=<;975`5n7(:7=>>0>=>>><72"0026D:;:74A59CMSVX|YE\u_&abaaaa`^^ZVRONNO_R>UW>X3VP)JC@?@BAAVA[BDH!MPRS6UWZ\'[2V]NaD;1n) a*Aq"#h$ d j 3@*iYOH2Hio]X9[FPt@Jj{-ډߋ  2l^ v ݒ@q =,'ިTZ&u w'-,G)' &$"!#&),.1H58k987Y89<:82k+Z$mW(/3\41k.O+t*3)% 1#U,oM"8) > *א,̤΄Ьk W6Ijބ_̵ܾeʲ:칉ޡ.vH3B˘Ο4ovNůfLEOF'#5|ᖗZΒɑHimf$Ű>s3 PִۚҜ0,#rx[܅3;/ܘՓ w8*([ Y 8%%# s$+16b89;B?BCC@h=b9n470,,,]-&- ,+,0m6 <@CEEEF9FEB;3a,L***m(>$v!V'2@IwLIEEFGD@ <+8C3|-'K#"#/%'*2;~BD C@z?@AAp@=:4u.3'Q"-<mVl!!VDX pI1aD>  $o%$$R$#!t}u g+CmXxgv"e&<%u) #I+w--,+.O/),)% #g LP !'9(x&#v+7j$*-///.-8-,,~,#,0+)((+/5 <@+CA= :M89<<\8!2,P++t*%%)$q+o/q012q6J;>?:4@-'%-&(*L.|3C:pCLQSS PIB991J&- BvPX V  !Bx {P W0S! 9f ?yTxTֵº BSdԚWhv 1m?oWxqv8>=i[et#&=ºX+%˽ԄܮPjdߘڊчa;W*Ha]Û%ۣ4֫űJi,\l÷Ǵ[׬P۫ƭGiWCپ_}U(ؿaVy,{p2D:dպLyؗdAm;  _y>?#&Q'X&$"! P #%&*(*-2x9AJT [_:b(b6as_^{] ]\7\@[>[\V^aBdeV;V5A0+'$D#%P)"/4s9i=3@@3?:T7!5W553U/(?#!##=#!!!!y q(+Y2Va /R U dE${w~1xYC.ې Q 00=xӃ]vA1>; ; `_7sc[[ !Y>6Tfc;֏߈r= bx AWd gߣ^׿7PjB9cѳXҹ+2۵VIt޵o)Sɫm5ĥKxЙ2zƚȭP3 ]J̹%ݏN` W 2&q2! Dm x?mFZ 6dY pv Gch: k.4m@  D]O#rb-'"l&('(y%Q%' .\4:? D{JbPW3\_^\RXNTPSNKE?]e_`a=bUcdec\b_ ]YVUPK*HFYFFFDSBACH;MMpJ EsAzC=I~NOzM1F>0721120*m"  \ [ @^ #%&K(+$.-5(" f ,` c1)/ rtT?UL:- +c`u%ôǐ͹T85;r>&Ժ̹h[ѱ’sȝ˱̗~Ǔúp{=8͐͵1+uϓ͔CM_3C`ȆtOi;_ыӵ4پHaϴPǔÎ8*!`ŰqZtXŬ6-]hXUy7 &IѶ£<۵ȲAeGm"HUV6"` (H ]]`Ԇuڛ;l ' r~T "$%H&');+k*Z*u,/.$is M  ^ Q6@? ?==::77;BILMLHEgFKS:\#bgIknwqr|qGo8mjKf)`XRN/MID =62/,'"* (!}! (/1.{(%&/+`-R, '!SR sW~g׏ҋhEƀcqP[՚b05}ԭaKǷq̺1Fłb$v-2V6E789<=4@BE IJIE@=B?oCHLMNP|SWqZZ\YW W&Y\$_a`_^C_a9fijhd`\tYiUGQLhHTEBnBB/EFIMPVSWUVWY\_{bscvcb2bbcdda^ZXWWU!RKGD9/1(b"! V @lz'Rm^:ٱ͐Ÿh3;' [Ŗ–g疺*Uېדb̛R|)𠭟>PH+l'%!=Iiןڡ-tX-3+ep{ 2[pW8Sypk@997R79C;96200/.,,-../0#465!/w'"*!!'f Y *8 y&0W[G-g݂9WEǣ<ɦ˳δ\ԽؼަJ_!wgqJj)x\FAF|<|LxB7Hz"VE  X  !*',48: ;9b8D88";=d?@@%@@@A7DPFIGKLeNNNMPMLM]L3KJJJLP`RST4UWXYXWUQJA8]42332/-,++Q*(&^ b"ysT #N%$%$C# r6H/kh8dеˊǏɔ a=ųȺνκkʤƏ]k5jrgb[CGW ڐ&_ȉgߎژ͜ :]fk~2 >Fg-oSrYI˾7˙ыѢѡeڦ7@Dt !{Gj #)205530C14v7s8D7$66\7592t.,-..,*b* +Z++*+d-F/*0/#/./}//////k0000K12 5640&)!9F'@KE&0` J f &j(k:}ٚxckܸ/ׁۚؖع^ݩܚ+23lڔٞT؍کoإFݼޗ5j <D; V [ {Q1; %f+@02 472/*'0&B(S,u2$9>CnFgIKM-PQR|QPlOOEONM KHuFDEFiGILQNXo^Rc)gghhIiijjKifb_\7[Y-Z+[\]4][6ZNY#Y3XUPIMCa""!m 3^Zm &% A|iإřp7s/ȒɕA.CóhPԿ"> FGg義H;IbO{j3ǛѫXഢʸxh鵞Ͼqk׺ٴȳٴෑϸ P˻s.ąKS%ʓWdwx3twHZ\I=x2> - EWH%R6w d ?!"!Ys8?,*L"$$3#! .7K!s#"!!$'0)A(#D  +YWm Q 8ANi"%e())w'#Z!\   6q.@8iq$ 6/ o @=&vF cs$K@ޒۘtQ:duBXBIr JݜݢFHQH]g%W'Gl 6e}|) U 45"l(M+,*+f-20c2h3f3^459)?CHuLhPTXc[O]]^/^!][Y~VDSOTL$HC?<:9x<@,FJWMO QTWXXYXYr\]oZjRH?AL@0B EGUIPJIIB91+)S& u otDg -X ="z7b:Gȓoռ^ũֹ d3 Ş= F«+&4äΫT,›!-7;";W9_8#8,75 43b1^-o&*G ~ j- <b\fNK[C$a+15s7655353S4&679(::9755;6`99668;W?CFCH8INHLGFSHKLL=JFCA@ABxFLK5P}TXH\K^-^0Z4T#NI>HF`D?79Y5m437:>j@BLfN<>oŬƧe#$v$ ا頻5``ؽcn}ͿnB4gu>;D뮱V֥:WSΩgӷZ?Š(=w5TzӁj55*sՌդ!:TarɤĻ)Λ5o=Qy; 6 x\Fp$ ~ 5 ;zkU> '  ]mML(L,G#8&)*,,(+)k*.x5<@B%C4D(ED=DBBBB?<::-<(>-?>Q>?{BBGMPUVXY\_cdMeJe/efhjkiCf d5dchm|rutats4tbts~qnlki5gc`_C^~\SZX?XYZP[9ZX)VTcUW[`dlf^eb`<^]h[|YX]Y[[ZHTMQE>8H3/+ !d9 Y &o' /b<=J4@kB+uZQ6gMG@qcK}eF¿ef?#Vkr[}$lд\ێج՗5׮L,5øg+ˣˢlm/\NtZ2'ѸMH3@ A5LKocdO= .(eI j0V ,g o;*k%H `c{!$#Z!aZ$,? 'pUE\ 73V\U{oG c~t{X</ y  R 1  { 7 q W u 7SX n<3)D0h[ ] Nh3 q ^ 7h}0C Ԅ^#H+2%5J2,&" P&XER< @ P}%(,"035t78j:=HBjGIHCT<622Y56G50)"p h&+p17> CKEGIMPQPCMFJHF_Cx?b80'g 6!" d y g uX  ! oF }Z5ւДԽ%ƽm>Ƣ˅́ʭֿɹ&Þ}IA􎧌~'q2բ>뵤 s̹b W;V84?1!.-_.^1M6@:<=>?:3!.R*Q&H"aB&[/589<>$BmEHJ[JGB >g;;<=<>==== >>>>@@z@>9T3-)'Q'I''y('*-/10/.@/0^3t609:f;':8'50e+$  qjGp+  }ɘŊ ɠ̓94U=sVIίӽ'ι˵#9W3WĪG(;0Qߨi٨IΧyЦC `۩"g+%P#!bȭ`U#4պsՒԪ$жܨФ1QF . @ %?  3[7m~ TO# oXei!$s(+-~-*%V5~   )NN$*+/1133d432M0/0//0258<>AB#FOI|MPRSOJD?z;9H62C/,)'$#%y-9FQVXQXVTRQuN}LLPW^+d2feNb9_<^<]a\WQJEA8\.%H? $ @$g&',4<@BFMRR8NoDN<743,,0! 4TuWVش{ǯI{=;.963.0)"} n ; b! DQ Q k K`EOG#A}ʂŹA"б9ʠit;򟔟v%74(ؙFС-/`1j~sOUͬGĩ$\ωÍjPʘ?Tb鳨DԴ̺\ɷ̸`Ս3%wMuAXRPhZfOC ZP \![!$&K&$(+6.1n1'101$5(:L>ZA#BB)DGK1N=NuLcKLIQTURM,J+HFjEB?I8Z1,'|%#"`9MEg'[l  V>4 bL l|O{U K B_p9h3QF J*@#$" #,(7+M,*)?'"  0 xH f?!P.{=HGIHpHLRW7XVdR=PEPQ\QNfKE>8P3.a)D#H@!"q$&*07">hD-ILL NPNMLWLhLLFMMNNpNL@IDWAq=f7o/%.{ B I69t 6'1& ,/hJޅܯw߼ܒ,եq;#xzUùoɱȨ Ȋ ѵ%ي=ډ2ڽٜ!ȃ&ZCؼ [½BؿµÜïrqݴdُzё<˴ Z8؈ٮasvus): f^$+)ֲܔV7o5Tlۓ֞~CͭȢ˫OR& "{ҹڿݡ"pos5Ir= g `?{P+N(X[}GMw0 !~$)A/48U9s8655%642/--k..-3.q020s+$C] np+:A_@)>w?DGwHEB@@@c?k<843]3W5n7898H75T43;2A2y2?2L0,& G;x(>eb K6Ei!cipZGK_$ȾNɈ^mޣ2xf%|9{ ڹΖƨ~ egOh M N "*W-,9'!9  CE1z 5 j",64786%5F414z4W44V4w5664p.(#!!8"!lj #%~#%  w% O>'{~:F@ -#sͼ,դj~'L~ Z\ -H%(B/"-z.!! %g**&Z!(.t2353/21n090800[/.j0}4:J@A ?9 5t20u.)#y}!Tk8 F l }Wc? Rr"%R&{# "h` ۡקդ@hd)i: XhP: ZBރS4wMk1( vF,, Lm ܍rܵރݢڑّU_ө IϰԯR͖qͫΟEI߻Weː‹a5ִѷ߹^εq̦>#!wZxob!vHQݣExlџvʰi-iƩP((xھBMvOժ2Rz k1V{ .OSg~|Q 4I&/L78z5M/(# ""r&)"-/P24"89`:;D>DLRVXYY0YwVR\NJI/II JJxKGKII5JMQS`RKO$KE=71 & # /;DGG F3FG3HIINHD;2j)!p DKjyK:@$(){(&I&@'()))t)'${#zZt( D\ >Aq Z" ~  r rlG C  "'**|*(,,/22.(_ dH h y@% O@yJ$-R68l60)&&%o'(((#</Xh1Y/t ""!)! !"$u(+-,)J'%%#!a- V a8)"Z%%"3a  Q S ]fr FDs5&Һ_G 0/X ݉ FѺ#|"V'u6l(ǰM>t̺ łKva"۟.VМF7ۙYv+콻l1TՃܺݤ$؋XUVvs7x: J  >$%',2441)JrK , I S " L LCc"+X5;C=;u97s51+,<'#!`"#d%&%;%%'(U)(#*15;5+0A*$"U#$#cm&}E*%01663112N2- ' 5HC/ \#&)d)(^(( )(\(o(*-M0-='fo B  # D f ~ ]qJ"[f'm4, ? Z.hvXS$ @)װF@B#S!JcPg;W3o djQ)ry"zmNwqb 8$'*.2441/!//1213.9)"y},m%-~8BJzLJ HFHZH*F@ 92<.?.53%;yDKLhHAw<ֹxMʭ;pFݭ nǚ 癃J;A7Lm2o젔٨pѪj ɿȞyɢrͺ̗5̈́8罄bJ9㫢C&?;]  P.ҩ:+ qwqa-G""%&*h.11/v-,-./..t-V+U' !8U1=h{%{1=FZMPQRERLRjQ?PNNSOPQMP0N!IQC=6/M(")"'+ -.18AHKKGMGQX`zfkrmnmlklqnUom_igd_]d]]e\XQI D2Af@f>9<85<3/+'%&(*,+:++-0O1/*%_"0#&m*,*&T! @$&&!`tv\kK q }Fgc ߡw8/D̂ʩ"Yʏ|7ӸԍxޠZ1 ߕ{Պ}½Xе޲bQʨ9C_̰+ξj*-  !#Vaiz2cԚvӐ Cet<Գ5uvͯLڟ$?9L~&PXrx : tc . g |..= oaG@!}R N wu!!Y nt oDs N  " c I_H l"'-429f8j4,.%,r fog܀PYYD(v2rS)P "3C2Is~&-D# ZjhgAנV*4~ߛ>ܥ=_ UWFk ]$;~q_Y?LJ{* k< %r SHSfxLxQmdS ')b!H'*H*(%$#"Ix4a=9A61,&  E npWQ#}_GT(#>[6Ul`(iȤó̼@Ƭߧ+㯫Һܡ2[r y#;Y*|s "c=0kH`Ut L ) p @=#I-8?CMQ4T>5BFsIMPSTTSNP@NNQCW\_acQehjmho8o7nal2jgd` ]M[[]^V^ZuUPMMNUPPQRTVuV%TPL0HC<7C4 42/'  q ?<T _ a hY Tߟa!ߋVrY/u'4cw (}xq6pd `;DT\Lڼۘ`-- U R 9.FhZUTa$YwL~t-]  `}@>><  t\qO*mwe$o+O} 2Sm #sJxٞحڀa֍Ӊa"Ъ ҞO՟&5AYWKT'Ut->~꠾p(~ોͰ{u]ρМ7qvE]ӋX1êT ;ϴqð1Ҹ39:u P  Y/wr  aQ ! )d0346viA_CB? ;5/+^(&|$ 9tPbq!%A*.131\-&+K[  k{*m9FsmHZ۷ׂy`%ȟkâ<JnY;6JEZ4̒a^‘X_w^FĬl&έԊهܼޜ!(\ݞ_ٹڛ7χͯo:X܁Wڿۿ{os! g G   2 XX+5FK [f!#%!(*-E/0L00J0148<=o=:63/?-)%! !!!!":%')***)x))t**S*(')`.37`852v.):$nyd*u 'h1_pl6۫-ME_O9TDY }etvI Ph׹؁־տ /Q=J  d wC b6U~Lbb#x&^()G***&K"^PL/.![##!Y!+"c$&( )))*'{"5?  C h xi"$[?mhmLn6bH zkM_c$QܢةTֽGPx!is޶$}&;y:^]F؁`ϥǭpȟ=OGʦ tɨʤHWuRj@ڌ<"i_#߭ޡݮMD*ܞ v˧t ŭǯpн-Ֆbߍj݈'[e4glyyl *) N9=% 6Jw-5{VB!%+U/_1N11M21.s*<&##J" Y%nz !$)L/C35554d43D2m.)&w(-133125S763c0/0 222112332S0H..3//.+)*.1"363q211.*#^ Gyo$' ($'$m"  \7>t@FYlHWMMJGGGHIJTJG,A8R/+,./;./3:x=K;[5/-?-_,B*' ')-1w5Y8:<=<;;7<<=;Q:I866q5!5C42J0+-(#24<CPO3OaF}le:L 16 N H X 0 V?K hܓ{Ԙ Y-91͵s;NȲˮH8:R񲕸C͚8=ЗѹӻnֻVnԟWW u#"ʱ!i|aȘҒRfVlӨԤpAuvc;¨ƨͿzgU"p= lޔݝA?P,E1mY+ _} 7 R  { a) ^*\'xEL0'2 xD$)) %! "& *y*)&'*/4775c447.8*86 66)9:_;:087R8&:;!9@5&0+u**9-059="@?{>872A(  # )=!s9%:,of!%(J)(%w#!k ^#P&s'% $[ ;/z $cuj5AcfHQ 34TQ+0; vVj#g \vbY" &}Q.tp\r[L"bM%G EǐѺE4J ;X"ʥ!ΨЄЉͻƏƅLg5֚۹ۓjzނwܑgD)fI$4;5VE8x ,RG7%%U d/za=hG e* DBR s%{ICy Gm"4%%# I!j%)s,h.)/.f,'u!t1':3X:82M-r++)'e&'(z(&G$#%%$"!B""$%N#xE 5~F/fxU 6  + ELlT e - / -(]:^Әѐ9͈ή 8; j QzSL3;WPbzNڮx.PDm ir ICTS e"T 6 V  D   N!#P%(,-//>./~3F5- 3YbQj/ sJ !l!g(-1l21,0..b0`37;<29:<=J iI#%&'*/3 7*7}5'30.-+)u&"<j8 K%'$*.'69@A\B.BZA?c>:< ;:<= ?*>;Z60l+E&! c [ x Tgn ^  ~ /\ t\rg-*hQ,JX;2tOP[` ) q O7\} b 71yyW*v}]1~$_/&ڗ׹] SPZ~^! $K%#}f )R $@ YPU> n;X~ <-`vSJ3' d  Hd 2`B1x  H  h x m f   J x77%W=z36# K M .v\[n *  Y > U  < 0E`T5 ^TO}'mA81 J5&wX.;6  Ul A F7#(7,z-S-=-H.f1l4-7}7524.%+I)7(5'%#!,!!#'(*-f/247:<==;975|1q.,j-.e.f*$rj j^ xzb0E /caC~g"$~d)}KiT$ 6ԉ'՘ԏ[d,iCka* ze ax\U~.BNHigJ;w`?!޵?]fAў_Ndlڲ\%KܗYs߈ޕeؐӫrх76uœñþ ɖ;gѐէlVa=zN&eB.U}:~{~0zKxdVjx I 4eJ 2D~#  2.B2Bc?6 'HE0h  sB 7 5sb '>&8M3~B  @q+G $U)+_-,$,x+*)(()*+,-.04a7D:;<:8'7G7u9 =@BB@>=q==K<8410/.6.//-("C.c3pM 2!i<"N'+0427752/-,*'! z  h;}ZZ&!W b"Zts9wF3XbK7^ +-0 Q2 |p^l&1}?XH>4U#Umw-d2Ipn=o0+nW+aW,(iL%$@_EQ\&r+V.XYRVRkODYF9r#p*{>$7dir?gnEZ ;  C i3-(_? BWbgY`"%&&G&&%#"T L} e i}?8)0N&W n  [ Y{wS)S'c3Xj7H   nayzN 4TSAi7zND9E[K9=Q+ Ii OA;BhRf{^DF =I& : B j96mj(p >Kt i?< H}DI7""1""$&%#W!)kBc3  LEe>,eQj ^ S nnM{%q95\AT=YN w~SSHn#DZsNP}{=W\GܒUw w8ְo'ڿMA0 ֔jaڴ}֔Eي$ڋؽWzӇӥ>sX/?;Vn7 s/(xPe ( ac @ L} !"?##$%,'()?++$+)'&&l&%x%b%}&''&l&&(e(O'%%t(,/x11{259=0A$BAp23p8(}S2C3S,W^N YA5q# 7c yTxj&Mv3<>xhF6%. apLkLH{3%D{A?}!,m>o!!7!kBS6   -  qj O n ; H D cm.nFrMR`/a)_8sm{0x;EVEgiO+ W R b9 CZ>avFR 2?0:(ky NGr08w)9Y53Z  z>1ntt) = %D|Y3zgx)eLi,DB/8Kp4CYm E }ai)Heg` ;E( 6%aXhlvvOBH=-(*]iOEH 6 ~ )<tKp6 i 8[  J *C0~Z#/[E?   1 y P v: K S u  twFZT%rc ~ ( :  <RZ}~ k 8 ,t x \ xP I f I $~Zhlb    Q#lDo&B:FE~"LoK "UID *w'io9c%W}P( y8>C$1#'^_xCLMJl8oY+Z3uit F Q>(f^jK`@% P 0 I G Y m ' w& .7UA3jh<H   & h"[, / [  8 O } Q *QVx  2MoA7 "Q?h nWG~ok9G%Q[8n1<%62#lnoJdMj_*[M"_lN&v Hm\9 9(qE9hdJiw#$2T9m {ps]4LyL<X17@joW,$l;^;g4!:ba M ) #  5 Y /]KG[j    4 g D}2RLfMyggo (MW8^t>n"'&=AL?Gm<2Q$\ Ui R@5`]KHN]Q"b`iTU[g^WMZdiO, B"+5%5T\ZSQI5#N]x{kafzWv{1TEsXjlU^3;VC>H3~wv_]Xr]!}VmZ`qxf]qQGB<  ?F*1\ * {^q_!?/w 9'-'U$eQW_`Zj8]Bf\g[c(\>"P8Ga`-aLMXUIf(k}xsl_^ur^`N1Q8YC$] ! m6{C *J&3C<?c6#:LYJJB_mtU'SYPA?<>6;=;(7n #X/YsX-. 30"  '$&%-<DF1obZinpxsxzrwzwxd`e.JC+ :u^8IO5|Qe/btRH[  (/( 9]{_MFcv >@0,8Vvsl]i /q~Y4+13+cI4=RhqaA% )+hY_rzW6%W-'Ht}e]caQ';^hog]ejwv]?#$#!%$$# '#("'&246!$8[fYXTKJ\~lUQQMJH[s!"   $;RSA*,?19135.89B7(!)%*1Kbql_G4)$))**&)+*+')*54.+AOXWWPVPPSMVNQQR]XVA2 #"/..  "%-(+(*(*.60+             &.=>D<C;@=>;=;=;;:;::9;9999:999:98:7;:7=4C=A</*"&%#!"#!##"$##$%!( *!&%'+,&            "!%!$##%"$$"#&( %"$#"%"$ '$$ %"#$""$"###!%!$#$ ' %$!' %"& ('"%#%#%$(!'"!!  !  "#$!!!##$&$!!  ! !!"" ! !!#&% %% &%"#"$!%"#!%#!%!$"% %# '+)( %!$###"&'!$%!'!&"%$$$$$%$%$&"(#$&$%%%&#) *!(%$)!*"(%&%)"*%&'&&*#+#*&)%*$+$+%,#-#,&)(()&)(()''*&)')%*'&*%)'&*$+$*$*$)&'(&('&('&(&'(&)&(')')')(*(*))+(,)+)++)-)+++,*-+-+-.+/+0,/,1+//-//.1.01/301103-3,1-/-.-+0(.(+)(&(#'#%#!# ! $)&+..43;7EBQL[QdRl\wG*>LISTINFOINAMFire a DeathheadIARTSven "Yamakuzure" EdenICRD2014ICOP1989-2014 PrydeWorXISFT$Audacity 2.0.5 (libsndfile-1.0.25)id3 ID3@!   ,. TXXXSoftwareAudacity 2.0.5TPE1Sven "Yamakuzure" EdenTDRC2014TXXXCopyright1989-2014 PrydeWorXTIT2Fire a Deathheadatanks-6.6/sound/02.wav0000644000175000017500000020403412636021030013052 0ustar apoapoRIFFWAVEfmt "VDdata                                                                                   $"(#&'"    !"  !$*'+!  !&"      $ "&$  !$$     #"%)81(#   %$)(&*3:EIPXZYWVVOPE0) $-59858:980  $7>;36624-5&#23)&2:J?:.  $),1:;=BDIRSJKP\fdWOF59>4) %30-:8.#      !(& %3)-,)%'+   $#-9JHFDIG-.)"%!>;4*       0;6$ "&"& '**2.  .5/  #!  3?B5(2"    !  *7- #, " "$*   &     !#      &9>B60-AKD4$ '(3!   !/ 2(1'/% %,,#$  #&+% )#&!    ! %"!,"$ $  (5+"$+-556&$     #(*'%/$%!  *& &$"+8)"!##         ! #&)      "%,2-)"#-=BA0186943+        "(&!%&($!+74#+)*( #+ +" !%((&  %/&%! "1)$#      #$"'345*395+(+" "$#%(-+ &!    & #'*+!''&%           "       "    !"$(%                      !&*486(+)$*)'   #      !! !$&      $#$(!%           " ""   !*  #!%%"()!&$%*+"           $      !#$""  %##(%0+&(' $& "%+'!           &#  "!$$*!!!         !&%"&"(%#  %$&          %!!'% &%(+#%!($(% #"!!"&" "#!     !%"$"! $%.*($"%"%% !"  "       *,'')+"&(( !"!$ (%                                                               "                      #"#"!&!$!%!" !"             ##+#&-..*$&""!"#$! "!        ##'# #&*&' !!!%                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 LISTdINFOINAMFire large missileIARTUnknownICOPunknownISFTunknown (libsndfile-1.0.25)id3 |ID3@r  5R TXXXSoftwareunknownTPE1UnknownTXXXCopyrightunknownTIT2Fire large missileatanks-6.6/sound/30.wav0000644000175000017500000047536412636021030013073 0ustar apoapoRIFFzWAVEfmt DXdata z!b{wc|pF-qq]L)^MPAUn% WJ[} $x#wc_$,/Ds|}Xr1V|py GnnYA$<M@m?WTE>u iIS&|3NlN6+C^OoHDaR23%&(25L&qdE.]0@x [1h}Q@/S+}r:3EƐțˊҰ!o?"/+KiW-R 0 G J : Q rYQ_iY]I| PH!K'L,0t4J79<:73/w+'$!jBtg?F }f)49i|w@hcoӾ*֢cڔ]ܰܯ8n޷ ߮&`dlCHv7Hd߰޼@4I4^2yjכ%&ДΎTL*^V'ejC: ݊ޯ; ߫l޾ߡC6M< E#0!*#:$$&'*-D0259<)@BDEaFnFEDJC|A?>#?A@AB-DEG_J;MuPSVXYAZY YnXvX3YZ\^acKe+ffghKjklmoprmuy(}M|vnqlgb&^YVROL.J!GC@=:185 42 212210.0/O//0 22343O3]21S1Z11c2357:=AD3H~KMNMuLuJ>HECAA?<:8766677%9r;[>bADzFHJL NNN|NMMMnNPcRTkVjWWFXXYZ[]L`ckgk1pbt;x{m~}{y#wXt?qm1j fwa\XTROXNM6NNOPQ7RRRRRRRRQPONMMLJIGI4IIKL~NdP(RSTpUUU&UTTTTTSRQVOMfLJ;HELCPA?=;r9630-?*!'J$!)o}V_ Wh1Ws|ytnЉ΀̿2džĜ(d Oܿ߾̺,Z)6ƾƿvYaTǼƕ0_Ƚʚ̑(O΅Z0s̾m)ʫʴZKϑЏ < TxֲF̕ɓƨøӽ׺̳Cm߮f[.WƦ[бԃۅY>B{[6k|ډ_ьϾpɢVż1¨&9җؔRtT hǏ܏KNЊljfg \,ތ:Q2ӟܣåz8V]L(Ыѭv¶ٹeEs%¹>TªDY qKV X%kܠWw&ؠdҤ|ަVz>v ҫWBv:ۮׯܳPWЕtd}0ޫCzvo۠4e/أO:xt؁,!ݪlvۣ8شԦiАN͕V2ȥƼƛƋƥȯMʻ0ͮΟUٖׄw nX!B[v +AjOzm)QѣВЄғO(فۤܬݰ޻߅t7oc)w݈D٭صmםؔ&:^YY MH7!X"#z######b#}"A!n hAo%Z= V X j< ? m  {0Ex6kE  3  T!#%') ,n. 1357888877n889::^;<<= =C<:9>75V2 /+i(%" ]  |ke& r < 4  <#8&)#,/37WpXUYY>ZbZZZ[Q]_`nbcdfeee:eedVc$b8a3a:bdeghij*k|kklmnofpq)s6uWw!ydzQ{.| }}y~s~}|{zBywvtvvmvu8tqnkhfxc`^"[NXUTRIQOMNKHdFMDeBt@X>*<97Y53"3P33455#67!:=9@BEFIKNTRxUXYS[5\\@\Y[YX?VTSQPVPMPzPP1P;OMmLcK K6KKK L6LL'NOQQQ`QQPMEMMN[OOONM LJWIHpHHI'KL NNOONHNvMNLJFIG2GFFRFEEEEFtFaF<9765v5$5 5^5T679:J;:;;;J;;=<==e>+><:740-5)%z"[ 4 "f$&7(s)* ,b-:.K.x-+)(&W&&0''''''P'&%$##% ')\,'/14e79;A<=?BE1HKiM9OPQNRR5SSlTUWjXYZ[h[[[}\K] ^^^_^L^^_Sa$cdddc1cblc?deoeeeefeedcbaF`^\ZXVU5SQNKuIxGbF F2FkFFFFZF~ECB?(=:8a53100D1h11d0/r//0-2o3p45h5556899:987$6431003/-;+\(%#!| \so>D&^\0ce! JeM(pOl hl+o~g Tp} 5 TR#M s] \}"dnl>l4X !u""#"""""# #"##2$$$#_#2## $$<%o%;%$#h"!+22=^i  *Kbh9) ~ },7,K j!!b""""""""!)h #w&M)+.148e;>/A CDE2GHJLpNPLQ$RRxSTT2UUVVWVUcTORPMKIG1FDBZ@=:752.*y'$S" }{5  # (a  xY"umsʶ7oQFVAG 9ǹθj@6kݵV׶}/۸˺eY[Zs VҖ)]F,ԎՏcѶ#KФ!UlIoΊ~;˝˖ˉSG.ɳ=M5=kɣͿϞ1ӁԁՁքבu6bi/B֏ؖٵ4/֕ՀӑBӅѵλ?ȥf2زa_ w3ٖۗfߔZȐ䎸+E4S7>cњzli/ŝzFǛ)uў)tV̢ $Bj`_PVSx丫t=SZ(E=)/—)ӴA:ݴC;[;j$2Xa}I LQ>`HمՋS 3|׭nZw(9ýnuȸ+r@ĀILۻ,7ӷ۵jڭ32f\Ԕj=wO9 h5(8ݨ|DlEnߧ!ÝƜLh؝f& |$k"u-#r XЯ Ѳc`ȵ84&ͪ8(&ة{iΧ𥀣c8$؜y?)(-`᜷ $O7!Ͱ񮑭q7桷ߞޞ] ٠AQϝ_e%(͠Lsg{/ xve[\ȼ ǽ8Xfgoa0"¢sČƈEzл4OUҋ7mժGw\ߧ;&]Tg O'&tFR !#####c##"! ;[E kt!$%'()**n**c+U,-=/062346t82:y;<;;9k86420.,+*n*g**e++Y,,--.7///////t//124H5d67b9A;L=T?A-BBfBASA@?>~=;85#2G/Q-+* )-'L%#E" %iD8un'!]"[#)$$%&(.))N*$*)))**+o,,,++))(&$U#!9M P#%'q)Y***I*)))Q**!+R++ ,,-.?013*68b;_=>k??@R@AABCCCCCCwCCvBAfAA@@AFAWA@?d>%=Q<;;s;[;7;:#:;90865453#33 4F4M4+4333a3232(21101e1$2;3468d:l;;;<<<=4>7?@.BCDAEEE"EQDCA@@?8?>'><;0:87\64Q32k11B3&56,8888)87"88:=-@CFI;LfNAPQeS~T,UoUUUUU?VV?XY[N]^_9````YabbcUdKdc5ccfccdoca`]ZXUhR_PNM~L@KIlHF9EOCAA+?(=$;&927[532x22E334444465)54~31/,)_'2%g#! g0!z|mon o R O  R !!"#$e&()*m+,-//0+112"4155'5n432T1/.,+z)_('&c&I&&%$*$#""g"9"~!9 }yy!&06\{!"X###V"G {o:nxEku"e~2 6J5&f L 4Le\ XB&-+0-)&#K!= s!7$!VM z 0بԁ֋);OݣkdiVOـ޻!bڱ; iCt %L 6o> zUs:ߒxpqKec5ޢ u).1+> VM$GE/N64#/57B8r74,"}1EXK+ K = 0S :q /!  ws%.4653;1Z,D%ubS%a ? <| =}I DY@p-;F ;#  o-"/-4i61l+%!b3 ~U Y"O%="3q2U*Bp1 t,&`T 1 .K h" tZ61r6)$u<4 (} U,gu:`|mb! lS(/0,K'!]0M~[[pk{_ J5")v+++k*o&5 p*I v1 ##!d-ytޒv | '  ' : "8d@Fyߤްߊӏ#iωӰأF"9 5'.ڳz1/fb: Y |/ A)* q Mk" \ ~ Y%%"fzoT! $"7hs75^f ^w! a s lf#&!BrF mR6 Q G^شjֵڹ zۉb%<ŭ*ӎ-Cg;^L}  [BӰvYn52>mH d=(lyeךmZ%ZG{Ta - UR 8  Ru H[ J:Hoߙkg$~ۀՏAϺ9k¾rߍm3#^/?ٞфƷV\/1S& 6"L##&*F+$S .GRT [! 8#4<8lRzT} *6("(S+,.02$57:'<<:7%3+" bj0c :PL[S1eTY #,QE?h %$!7%$|";" $%|%$i!+-Hhx)QW^NP0A(p3{2['  %*../,*%*&+*%o bxL c&1 ( v] E#&E%!*d  pS/I dg&0u8&=?C@,?<6/'z $kP89ux 9WV X)<<û"y#d]  l\a))u:x̾9'"d(_ H W':Фu؅Ed7QLE@6#*%$!F!O$3*O/v/)k  % BW6Hn&N{;5_O)Q#*. ~ Y  =9)2J}[Ƽ׾|qNVۖ'k9` V"})0<7:8q2!*"aG@>@I)NzrdIj @ _  \ 7 k-@Y"80<5 Tz!/ ! cF !oQ *   a<$c+}-+)'$n8[~z,ek   RFv#+0/](u0 c   c  ty,+q31 WBPkζWP 9"I& )o)C&yN  _0<D 2 !248 $U!!"(-R10+b#i ] $%"$i|j0 x 'r tQ"5pHI-w$,/+=" 9 V}QB9 ?R.%-3 7X9;:>d@"Ae>6*l ?OfH`aLBh  WJb,J :; q &w-/h/<.A,'A o | my1 < F {6b{C WK#W#D. =<j  C} )(  $" }m_$iJMPHugBLzfRu_hKjWމ#ۈ׫9dSĚJ<؊M>[n` }Nԙؠ|n C L ]k~ g <. R!!~z r {[Cq6\Sl!I8݈'ݎڋutFޔ_Aes e \ 4d#-5:=>>.=:85Q1,&> 2,} `V qr9 <} G $/o7 :8g645535-#9 `   iaaܔşX,QGp * H x'!0$"K b q2# Vh_:S Hpp դ֖+dS u9|M'p m-hh H Hh>C62/ e#+3:7BjIFP0VX U#J:+!G^25{5. 0tKZ;#'K'!D9"#"!!"!%A@o Jxvh<e!V=LKlhs"%%#"$8),|,)\'')+,&+'u#/ %#(,.+&W> <iO!KiJE8 C+1w_EuC2yքެcS+AR( TGekF~Q@;h JFuqp] H<tXVD:&*m)% ##1$n#Y 4 ` E`A8"n  8, yifg{^ $x|!)k116u88$71*" %E?cPGT 7 Q:B?#$#k"7#$d$!@<h$:+! oZY l  v  | h)cz t :  ~ `("(-1D6A:^=J@iDIOpQOJC;a3,)E,2:>B?xAQDoFHKKM8NK F(?9789;=>@DAIICY6($)*(*$FH$/t7971*$C"%+239b<<8.c# o['k-+.% 4'2=-EGGEA<5.(%$&)/ 7<=7Z.%%"#'S+--1^51860'-=]@  .qd :eFF[-:]D; kC!jO+QfܰX Ū.n0ev+Mz[p͹C *]m@\r * %lWJ0z :1 z9| KwX>/ ':*y*.,<03g40*$pN=Ga %(%N} kY8 ||q nVYrI%*;Jwg=th*GgbdjAKpf%<ugל3u75:[؀$ԘB; /+< 47uhTA+1[ j8M Lz$pe\ٚMȀ {d lii^Z&WSL .g$]DL 9 jqh $m&"&&'<'$B ?z e & " j?*!_Aa#O$"> SX= X}#%$Gqdg\wb^"x RVz[R'ӽɂIM ԡՉjC8P.VM(MIѼڰY4j(Y 'H,bbڜ5NIZ O, \ zJu.57;-@M2ov)'i$`B Qe`u= l 7 aNZX  ~oP(Ih+wK}.7HA @w X  ~ )&+*k%3&:[-%^tl,#s $mR nX]=tF J %J+R7vFQ$gcBK(xW{ JEG %z ZN {+zF0(A80 ZrG c RV:4D4{!*%%0!_j Ny#':'S$O!ej   v!& 1  # ][FTf)R/mBA?i֐] s[% -6!##T"!"w" p K 1 {c;7 S  c 76lS2   4 L 4 .1ey 'K=d ?7Vkfw 3$# =o# (#SB Q:-#]E Saus <d3  `* r %%ct gO- xr~ D "J!n%+r..+n'>#  !]   W T #'&%"+I~  z 86\-JAWdh["zZw ",z TY ZIFڹHזI{uφvHrݞ޼^b0D]Bit։ݕwF'(5QnP+{Pe iPz fe f ~P(j  |xK D3vڤwMEְ#?#ݱ8hܕܚҫʲ ȉրSunV#@ ;~۪.ƒݿø(۶͉IE®rq¤@̪գXWk{m|[Pq='bQW.n~ܒ#:$JQ OlS 4 O 1 _] &((f&#!/ ;5{  # 4kl$PA}'v{3M K_P 1#/"#"!@ a `9 -E g { i[X@aNY3ػЯˇǎ:jf̥єGۖv.nZ],19ha=2Gkb E5 HwuV6  2/C:lK n} P E: 2  S0.,J\] - oF=.PZ  } )hJbu o p pd8|,;"C n  +}o~'<.i4m !9 PP x `8ui%50RiZ) $ ) M=wxBkr3iWxa # dz#i+ ojyf oiV6 A7<&zp~ _  ' v  'VF@1 2G id?mxU_ u k n^G 4g d` 1 p U\B![vJxB?6*z5i 0St(A 1C)cX2 P !n-jJvC=2Lj6b"q dR  gtO1W}_  "6 Y;y i u ;y+a: 4 )w } $ \ 7>U2n)c9P, M (1} C\ V 1iPSD^ 0/j&{  e $Jk ` : ?GRU #ano D h  q  -} ""47  E@A+ j7/2WiBOH ( 6UX}>74og|e |DHdyTYy-Y"= k)cr26KH39!  C q 7 Q%v/ dyi 9&S![!EVl0;lr"4  T"$G&_'%" #''# 8SEZVY ScX "2#D!I  v !t d f Za  Zf q X#m%t')+,J-.-,M+(%a$$&)+A/14.9CA/EGGEJ?6$-\$&u#*/1/]*?$DD0?RZ[ Nd2!%S(.*,/2D3;1-)'&&F&V' )l*)&["WT!&+.,8)$!t!n#&<*5,,++L,,-y,+R+*)('& &f%$$Y# >p%F)H*!)&7$ .Q"'8*!*-)[(6'$ s#z),+($:!1<_`" &-@ N2VX35*5l8yRV > AV#{@"dMt `8 Sq )hTgbg0#x=$gSgTU?K|aKy0s !CkB|F{KkjCaUHO d-7 P L `  (deSXfB S `   a H@E~u->~ r X`>mTE>. ]  .2& )NAk n WVAss  O h*cN{CRD fk{&P *  \:@bHk~< NI#AY|G QAMf(d, 0 Z q_?E{[-/_ 5. r wF;Y;VH ^8vS /IfUi ^#k()++}++V*>)'%# q}_~   "ujpw{ Uv^).m&-5F Q \a >c Y k S5-!%*+*%Y! "I'**'" 0#)w2):?\@V> :=5i1*/m-*&4"]R1rJRg, ""!p^K h ! f[p76   !"#`%&'O((?'4$ Y: @)@vo >!hu  ?. m3 6 >aHbE Te30' K\/ oUhxLk3k*ZR"utp] ރߺ7+P1f; #54uei;X@XAJFS  2 ;{0w~`vT!>DBn3o#43i*KW{ ;n{_GG * = M V8FE% \o 0 Or8 ? `QaM:(ctDvG-2k q i YUu}'iF y.&qH&Q9 ,9!!""R!X='K   W & ; tWx"  Q > 7RH da 7inC+eDIsT`[ ,5teP z l pHbL[ok[ A (`.p:2V$ XcO 3Cw&KPۍۅejMUPuM! % : ! m&bj tE U5,s|3pt " / [@(XG<! rI 9 3P ;  v!]) A TqF#z.F?r޻ "QY&ZY=%\){DK>xr8Ya[*4p$PjcZE~|vd%@3K[ؐ$׎֠AʬșɺHڏ&݆%UH+$0te0ޠrkku"YW47(4]gP5Jzm  qR!&ZT zy-/8Nz i 4Np  Bl j 0 Zp\pNQ  4 s C_?{iF \ k+-UtQ?T;T=c܉$ձҹһWM֠DڪA;קs֙RS`t߰Q ,pPkdVu[ZR~ObmyH_Al=&@M> (%RnM12(] 8zl!02R[ "- V | ytiq  2zV } v (T[+V&6Nvt3sM {?DQCKh. _,EJT`yb-c007)*A:'y>c/KvQ^ Hl l1C68:v =  9  B 7Q,0I WLiYR.1DN4 Zve]q. B X |+ =9!!A'a_ BK)E? Te'Y$*!H &"Z)s{j n1#&&$" CH<s/ gSulr5iX% n9@vR/zXFTO pMl-J UVs8CrTa0S\_MC!` f ! F : _}{~+2{q k d k R l.U UcO7cV^BAk Kfu J< t % l+*)mG )dNAuqfy@X ""z!^w%C#=@Y !6qv6?*ZqN28~HG A aa [JyUnp=Ta]pTc=|y^F|`8Y2IfM$?';7rZo8g =A'R,e~p;mrfFRt}ygqi'Rl Jj_&l1+2[)_F e edSTuJ܎,;9Y[yg}S=[R?=^cz5N3Bߎ~:Gg)05o7T_ X |P-u >% _ \n  7H E Tsy @eE g  x r E """!UJ$! 6W [$&h'g&t$"bowx P GM h B [ R O%9v  m J ~5HOy? opk."`$%w%$##r#!V E$&\'M'`'W'&<%$#-#!qgG} 8 - 4 Mm3iXHf^VcQJN]xm[a*|jd^2T2vD0 p _L9OwB0* o l  f 4d`}U!j2P)[} \z<!Xz kx^V 3 $z-f  #cDVYK | `9G(v:lH] 9 i L!s$A$!/j 3n}8@f  +d5T*JO TAj\'6^rsG\pFzA@'!R`oaJP\HBqy^}h17#EOdr=k;!")f>_6U{eQ)JN$+KGhB8F#UwWP* v S bM5MM $  tYz&@[ svwyTP^29a;A  V @  F2tgE)i38D Ii3 kx+8{i W ~R$[ S }@'L/n@ v wz tO"_kak;.۴ژړCb&xzo~@5 s p n m<}k( {p;n[n/ S Kt Z2 A ,   S  dTzC:7 L f &m< I'"C40k >!V >6n!""!* $[ _ w`Z M  D`  ~"1$v#!1%!b$'0)(l's&&S''&;%%#;!Jy|7p- m H*Vgq! _@yx p $@ vyC^ptf ~ \O|Rz=>K_Rh"X4hLCi3q\@3xFp_e}L@Js^Ug%# ?5 C   1leZF1(&xpc d+mS U "  6 qc X BiAY7ym[Z):qWTaTX%pgkM7^M/I=v>JxiY 2B~Gt;ICK (a3kSwlK;Z PӹUA^~x=@APܥ.HoUN1BR{KAH%ܷ-)RV-VI:%x`r x=Ie2":mA kFOZ _ Jfg!V"3| .m=C ?FL,G DfP  ) SRe{x?v`bge7EozRyq}1~K  +Cm$]JS:e?{FWR]T30wJ(\xބ[uxaS=d(AWַ؉W۰ۣ9ہڢQڥ.z%94n< ?Vi7Y"NQ5 [C}ToK=tCa]=aJs9# ?#> 29 wCeod = &E'Dllw5 (UAk-}(P7G 7,lc7a(qZqjIfF])wC8fw g|v'7=| $iIYm!Z@u 2s4nnvA$gjNpz,vCa/%J&avrRtXWh 0E9A ]T$Yao@@CY =HA4yR9cE~X( YUHmrL:&2kLdZV@B%hG : |  % & z}8|M Ja3v\LV-48Xh.bqiW u]=nf.yy VU;zZ" Yt  {2k [$')))(U&$m">  s hpl~VV\YlsZr `l&uc#'))C'u$##%](o+n.0U10/~/"[S | 7 tB_q ,f^d c}r} ]"!RqrxT !"H#"! a 3#I%&(=+-W/E/-a+M)' '&%N$!Q ? D ]8Mz @&&  Ilw!#_#"! , "#$$!ucZ & w{d$  8 HT=X@i 8 5 PpdpO d & u} VlU v  4^fl(v\O$z A =Tw,R T(mMflr8k3Xd4X g  4= JAk jQ+ E '  TorK  j(0 N ; W =cqz 4=Zi=g<" 1 _d C &BWHUs A o -_h# LB e{! kA5 )T0(AWy<4iv4c (g*+nPnLR[mz< >G3,TiC7AxdW R[u"*( VtCG;2G*P W=;lF{|OUT0<tR*0_KT! S= 1G|N |TsnR"$!$"!t|* >v}E  KaA t m*1 CfW{3+l j f1D8#fvJ vn*zR;p+G=Ec%nq(R[NCl$:NK<G%&HE.=@PSڋDfV׻ֆC pvu$َ h vB߸2;m*_Yb-(csn_U=Z[k8Ck):kqa.X &_21zvF vZS{Qd=/A*m,Rdr4<\#EL # 4 x gS5L5b:7!)dQR,@Z * S?Z [p V ]b"toCd ^V  :!9Vt y +<\KnY&  *H*?S^#h"z:^7 Y6. Q}DCM  j hS{0c g g o^ Lr   h  t O `^/[9'+afg@[w   D  & , g_u #}7/E !"!' aC a  Z- A- i 1=W$ x  { ) A g _ d+B9 pwFWH L6H ,Q!mAt]j_| d } S . HB +;?`< J tcAs n w ) q$ fK^ \ F  |8, .RHk(g[!.t|jFDvqV Re N$o+=Ls D d 7 _6`AJ24`ނDs1ޣB,B0M".NvӍӀx yay\U2m!I 2xo:HLQk34^^EglNF "n{/]R=WvK Uc*bgaQ1W Utt]o=~m6f8G}QRWUsՓvֵo٠5޾H>?VKb]M>5/;"%@mHmC  E  X  gb%{[:m!F?e !aF \ | 9 ac5w;j D | M  9  '!hb\R<&[-z6SO\P^7 :Q__( W!($%%]%Q$"6F~ |o>GR:H N? p +WIKk77\4KU }1FY Tn}cW] GG*G G V 0]p $ *z* ;nm  {h:#d.BlW c_'Pvg^XX0F+h5uf4]t{2 G uc\  k m0gU0>~Y4'U\s6Y@C zi+[)iRfA) v\} Co- P-CR] 0 f!.%pVCkd( f..iJIN}Q vdtK  D 9  7&QcAz= {Wa' Z 4(h` o * "n"XpL 2  d U 7 V E'qNk,e?%kb0dA0Y#X@b):r^34b/۠$Gݝ3OCt2(b'+9j _pJP c.E}  ju]}zhu9  d  AW>-X`U {<? 3j +' f @   ^ Z v  7 w$ui- I_O / 2r q >J#5H^kOrMLMl>qWVL+EV]#5}\6C_8[V% 0 }7'jWdl|ymZi ")Jzd {9J&Q2:/UJnC?u81wX.:q  TD@a|NHEU_vMfcj C+gK}w) 5X O }~} sew(|t/6e Q;  j 3 k|6A@G*^ 1*!}$s,  x^g i  Oc COon1zq[7e J,H\& <s1P ,z, +KWb5{bg!%(M*.+?,-////&0.1F221M0._+)''(((&%$#I${$ $"h! s"c&+/51Y/+(''K'&&(>+- .,J(:$ 2df y  &zF $.XnU[ F PL ' NyHH 8  cYz q J|u nNU|jU.d  c#X'b*+2+)'&G&('U((`'% $+#"N!_uoG" ^w "$J$#7#!@ M!O% (l(% {( ]U)  9 f  Q hOSL pu!:7  Pbt@/p*h yTu_S i _ y Y J Xv}+b>\v[zfMF,#E@MS o \ fv]y U p .nrUt   E?RNf_sH@  Ku"h%%#Z!}jB q _ fI +*VI]+,  QZKN8 oTGQ G~lCA0 y  ^ c+;v%5"AFKJ + )QsDB 4A^> mGnu[%m9DcS%AY2?6UzRP&' @3)J yZB45ny2G{ia/ R B U = := u,vib] \x&[$ = U Sdf>J}?"6N %|N 4  _w^J2V @M ( gP(O F  L ? @ _ #   RWFL1^M4&z FGbyt} 4 _" = JH: gQIQ  M *Rms   $*/4 77d89<=W>v=~;84Z0+'%l%&&$ \I? "#,&(*(X%"  6z3 Y F zSOX 1 #:FbFxyX4I=8 ly*<)lQoxz&9m,I>EDAmUrW\ ? & b Ez9v^V XfE4X*%%/vdG&0~9^o7f#3&kc#H^fQG^7bp8}Z sD{ݟݱ+[^R\i~duwd5a޹ KԦ^\ϷrѤo;ehܹޔ;(ۂ]ݫ[qS܄ە9Aݩ24ח=+ԁ.IվYuA*d,">fjRs4Q|L9wۃgGیw# -UpA<]X [)2^ U3eJ.=:vrdM#+ܬ~׋Ӽ^c ֯ՉZѽc̦+ɛ>PZоԪcz5C@Pic@;1\k{o\Rsne)y^x}u09}_gpnAPB$l'S-ryGMtyި"^51TiDE`'y-'I/4KZ &n>Gy&.:;)(hc}:j  5vo  q  j S e r lB ~236>zFqo( h!L CsZ=&`  sgNP 3"*#"K!R^Ex @ fjlI&_~AwM@n!P4 |!7! c2v@ bXR&V} n [ &cEdeX %  v rl  [awu & %O2W$0  V  ' m 5  J q = i{R^uY  r ^u ' r # &&r$M"B _iP~io 6 wo b e  zcL  t #S%_$! \ ^ .   D~7z,K, 1 s  Sm.A f  _ .= C J  s-]G/jp8p!B(MeSt|{2e, 9!iE sm "%'&%$#r#"]""c##x#" f !#$#""L#%().)2&;"GW P"$#}"!?f "#L$$V%&&%Q$!q)s  ]V : 2 {   D Aa  {} ( kI2aQM) / )!E74  IB1;!1? giR )  $GDHb.  i 2/UFLm2~9 Q. 1,#>N  y ' ] O % ~ V d Kh|gZy2TQ 5t p I :  S 2$ 4n w 8K*S] "VyN?dgeKn. *OB}c(m5[(Iww5-y<;]#!<:Af\%} 3 un;&v8 8 I   gpLr+iq%nBuKJ);t[\>X~Z) ~i&=Gw P @ s 7 Ne X - <v R Fc";%u%# 9 Jz-1!?%E''&$!G^n53- ~ $ C i 7 )} '   ( " M Y L Q 9 ZhaC1\)O:_Th'wv1k+PϽʥ˷MƜ?0]`Ζς~V(bޒ2x݅۔AN-؝),Mܨ؋P*0ӼҾ+ֆڒ.clS) !bJM hNgjR  >\  p*B   ytH  ) c M  D fiYL.;{c(|;Cw]Mf b!&Է$HվD37E#(t{r3[=~W|Pou>%ECc el$=ݖߤ=1!jH@$9 !   & z PaRjB|O* bv4`\3VrS-iLw /f ({m   NI'l73)1mFk3 VQ  {YR;9KN b  >  m } _ "K$~%&'c(4(&v$""$P&&]%C"%1t j s )   + z! ?Lg0  :[ `Xdq6C  nBlDP/ I ;kex Q9 (2 @ E q  T- d S M&Y Kn!itxXN'!eV3KM   ^[{kam 78W . EH_;(oA\kU\?[fhT0s+>[BzRuDܰۛ]]/b:7+ @4&i, 5%R5&ؾfD7c{%MGkB=fی Gڵ٬g<ܛp٬64"gצ٭ۆ݉ߣ^KR>\3ZO!'js?g&DU@KKoT/(4$ .SuHF8P!]W8TCcu ]yG& % Y NM K\%m /gG ms2,5p %)S+)%*!T,uxK2 } ' = ; } J *g6P K C > }  ~ M#!%%$Z$ $#c#P"!#'&)d+*w(|%c##$'* -./0N1<19124688z741/5-+*'m%#!!"#B"/ R~M!$&(***)(&$!.Rt#Z:=2 bRTM] > P poB A:x  q  wJ(cL% ~HvT/CAhN| L&uRJaN^Y&|[Cogl2Ey-4py\^} D_Z@R7or`\ A rG AxGV# 0'@A !0bOcqwsx2)* $#S_<}j:MG.N1yKEJ="Z6\>=yoݜc2+-T>9-P s.z:ps kl]EJ [okLJheukq7AH h N ed<|4oL&h8 e:8p/H  4 B F 0 p a"])W N  PN` l W@"~C  n#>()2 #+Jx  |$gTX^ 7 c Ob<db a O + [P   )7 + b @6 QKyScD7A>2 % @g4{t37QC9]V@u)&4WKA B [jC 31d'm{" A( e"#!D{fp-@P_2Ke!$&3))*)r(&$"I U,<OKz!*X HQn %n  F >  ; 7 Des s C &"rNW (%\JH # /   e'.li bBv<?CpYqVwzk +3G#; ''-00[.I*%|", 4>s7(+rb1d `$'()`+c,,,*>(B&$p#~!n]9 bx t][X^J_RF %yt4_gMD;0x& SV\K[tSa(  -~ -Z>Qxbj > ~ OF; *rQ  ! k   "#$$$$$$$$%n&&%b# V   BR/  &  5 N~  JW &y)!C N6  * R xq.  b g+rWjpGok]iv5^PrJM 5&. / K \Q!!F F9tb `?sq/K,"&).<24.5_4334444310b/X0257899"853p1<0W0 24x7199863/+'`$!(<H%elTeO:r ## #! !#&1*u-+0H120=-)Q'i&& 'g&P$F!}ebQ 5 @ D]27S"v5_!2 [ .] vRGRz ~6ci P \ |      % V G ` 1 DraH iVS!7 t d  Es U'X-qcW43*:pqJT b@n}gJ+X /ޱڛّ#=߲0,ڱ4mQ_Cs#[-ex%ެ׀֦֮m5a߿B߯BybGXM//r-36X"pg1]-m6n(VHE3gHrz5Re#"cxyԏҋ xl& RQmb@`uؙH 5ߒ1 s>19^zn B0:VLu;nָg{82]Ur\gsl~+E݈ܓ߆w^.; -pS2 %fR][fJyp< 0 |t/\Up.N#ݷ#tQg[i93Kq+.6y>W)!B>#hR)}x\&m_]ros J^wڏيܯxL߭v4"!>rXQ&{_a 6!Jp_ V:b{ K (oBeIFKv}-E35 C) / #  _ z nw, 4.pWiQ"e'16m teկ/,% gJ*]s$ `L{mDt0'l#2jh:&WtMqm.nM)N 8OZ p +f s "~%')(9'g%S# \tZ=_ $ _45 ].fJ@N8U0']JwjZ:}u <  t`\D/ [ ] Y!i1  ~mG"  u c N F J D:y%>D )"$o(},03a55g5w56378P:<0=5=;98=889S8%7638#;\>}@@Q?}<8:4/+])A'n$ r"ZYNX"o^yB@bf#VE ! a @ |l= I1(> + D 3   w ~w% B { O pN  ^ $K: i L F  B !Ff i \ V S z :Cm .mF [ 9k"TG) kCN1R`8dp|Q;"O$K+^ ܮۃ_"ߠ`ک!$8]ӑҀѿSͩʬDzǺ_3ʨ̯Ί6ж `Ӂua̵V\̌aΏVDУw֛[vW8ӣE֓Wحرظ#.چd^܉lښڠܦހ=#@ ޹&izM?/,ds gn?QpyM zwqdn{$Vqݙ|u$#;&jڣڼ܅>Ёˋ8hƟZIϦ&aF:˄OeʣN˫̑O1,zӜӍ-]϶NNΫrТҲN֥֥w*׮~tۺ0ߑZK0 ? rsJB:ݷګ٨ٯ\-]^o$ݠު޵ݮK\܎i~@7Gyrc %ftd8UQ@k v % v v e3#NzIkyEl6&S*nV܃nf۔c! [ܡۤlsR+l7/ V;F "+Ixf8,&dڐ"wRu0@< &laLjqZdD")# B y   ,L s K i [ S k ) x%+Z;2"1\Q  m 2 1n4z8[ d  I F q$iGqaI; VgWzkc J  D>P!}L xHx43'&u`C)^a["x%&E'3'X'()*****6++,E-n--.k/.;,D'F!fM9)* } ^yR+3 9 dHT a DT $\$S7wR<xy`dxZD6~5Obj3=8Oi_.nBMWHtP%$DJJ|LZrr?[-"3L M)R3E   8 ` %%h\$ u #  " H b `G0\  L  M o"v%!(I*+,,&,h*'D%" XG !"l##!, #k 'x w I > D$&(I('''T().,r.F01K3]57`:;:73/x-f-R..[-*'%# !,8yy|TFhIr ,5"'*r-.O.,J+)b(X&#{+xk  f   .Tff*a &#%%&8&&^' ((*-28k<+>=9g51&000L0.,+*+,.0H345Y4?352210.<.-U,)% 2^6, ' YS1 enZxO> R;9 R  S U*L:;Gl7H U15@1 ;J -e x i MP1?qi[ r 1 ]!A%w'''%8%%&''$ ))k=\3 #Y&'&$M"9fG&q ST= - | / H<|l&LW5z)"+w# 9 N>p b Vg5t dcx:@/ n f *9 s"!!V@ y;Hi SI?dA $ 2 ["   5 YW6fu[9G2$ 9 * x J  s i\ c l h# E mf3a2gY? iJ3  ^yHs6:51 [{4A   $ ^Xcf od !uNiWpq B O I P ?  ZFRLY' ]ZH9 m h /[TfuDD {{] E2+.  F 0";[P , @,#x}R#: r8IMJp">c+E c I3$d y Bv%D#RL S ? 'l4+1Wc*1Vu2iQ*kb .2Z3l,"z|9VLE\X}DooL8~At#%b yDN*k5kf^ vS|_ |(%pL n%]huOM0 z"#"n""#" |"^ C!J!- S!HH~_O 3%LX/2?4;1 %q "'S++@4 9; 0m}0hYDuzG:#n  =ce.Tu !S!=! r "  g/<P`b>1 Y XjdbP {]:E(Yg!JOAF0/I>|yv70Q I W8d   ^ u 1 ' ; S<V . % +{fw7 % ^ r c &% 0 < 7 g n/&V  Y`p})uh J\2cOe6AH+Im %uC%^~f )2U9VI_WP\6$؁T;a$ @eN&Z1]( P hY"p!8@K M"#-%&''&$##:%' *%,- ///002j5}7]876m30-+U*('$!f7  P-!&+M/=1h1/,")Y%!d9 "`##$#g""x"#c%-(+.12~21/?-K,6,,,+*Z)[(\'%A$"v"}"m"2"!y!r!o"$(-0U47K;F>%?k]=\M&jT5  8 k4agF5@ & z R~mgj? Co^!b_  j   +t7_\( |VgDYAp!B&)?+**=*`+ -M.M.,2*'%$#k#"/"1! ioA*Z^"x}n~?ct8 7 6B/(UbR>g'X<"<U )'zVX8fo } ?  kLIl/F,w~  & fX[f[v ! 1>Vq <#[ M A 5}C%E[^ """!##$s%&'(^)))("'$!\,-AGc "$O&'( )))5)+)(W'%#!; jf J?S` [ E _ K = r $  x8   > ^  D=LYk ZW 6!! "!!m6!'{XP * 9/p Il3;$X}c,#2N_ f `3I    L ;mZ:5 ] L # T Y j > P@j+4;V++  f )  r/# 08g0&'D B | $_Cmhs  4 UBpnyp X [  w * ) BoY ? $(l,/225)6u53{1/0., +))(((( )!)L(.&"qcUrH"`%&&%#!h *oh * B A Xg 0)sz m gqMW/f!a$=O Xk fSp^6QX{E0PF,n]pDG@QF zNC  i 0hQGn|PU`_: g,Q~sd\yC>*Z t(`W1L M pH5"WY uCP- e.o69YM m ! @ P+k; r X 3 D  ~> a  cL-x N\Ve)S,Xj0((1V5ONQq@a< M)C Ei  9 UOj z  V )|a."J:~eqh B9 ?M VK3 !K*/ V Pk1&\-w#+ Bޛݣh*ި݆Q )[Z Z;4w~A%cNH~Lc|y\~"AWi&bWE Tq 2=od=~Ul.Ox/>&byMB2|9f]\utpm=n) 4c~ވݘ܊Sؙ״N\ ]&B*:#:|%CUsL/v&m#!ptrEn}Q<y1nl}g x P6/ 5 D)JJ= X1W#gF,d 2!m/2 fp:-I+(ye.    uI)W L  @  w ?oa=H4~2NdU{c$kS)-gpLDM& i NG)"N,ipM1o P qR& c&U^3 Z$Q?{^!/!]U8DI Y$gFޔ@!YGjj#4/R.eB`!fxlAޮ;׻Չ1:ڢ|EZчЁ:A*ӛҁt6v8׮/ۖ۱8֠ӎӭӇhHټ@PbR5vaߡ7>c\uDZbܝSJsN_O<$nKnmpFE<~[w3y}7GLi/R(Z*syM[wiuhU2&^sG1}Mn4fn !J@F>1\XkaWAjO>M@H]584TGCߺV ;Pܦ^}ؾ`֯6Px& &iWl^2ajRH?9xb]p< mN o2MP5 3#~uSkQ_RjWXO"70*I1**y,k8] X^qD`nUMiihZ{}_P9)GM`fEIlVK =muj[1__ L \n) V M 5  /  T x w  Z A f<, JMM]]:gcq=rCW4}~%%SDs(f"UD~S1 bv+4k}N;{06j8F&~ae~Q H0Vd}Q24-h6C?\^BQ$0Fe z#tv)mN~^HKP8c!3g XS8 Y/+$ L1{?t\BT+5Sjj48 kk}g2q0`fa nZ 6n:Mcr{e%OAG\2?pm!YqdI 4++F5r! z\wzO T=]DmiH4oj  A 8Xu ,W1T~i9  ]J]tIo5#_/"1h"|O& .!j"" #o#1$2%&%$"!L/=\  OFW ( --D $ 2 T h9O &0 ,, ^Q ; G&uPC7?-ETf?Ml_$k-UA\ %h]K9 [Q&/t G /rL `P&D\kkkc 01 :  00O.  b<DlCH3x! 3 3 > d S6 o ` ' l ^  n  . %WD*S E-ii 2 Z P . y }  jVs\ | ~ vd .y8aYsQC6V@C> M!'uJ XN)'%||0biek4M|W]pFepDX> 1T. g ,  v - #SSf',Mzdl`Yd Q=+W ) ^ } N 8A 6r& |=[gNKs1!h"P6(`u{;<WSVc3xY}qZbcb?n 0 ^8MI7X ; P  .:<|U2(sSZ5W3bO#Hr+lu * LvXB #/\\,b >uY%_;U { lIL N*Iv/Wd`Wk077kIZuY1S}G M%C?W*Ic=:iG[@ e.KE6v!83XocY}j5; #Hcd{8x-jiHQqNo.vmuwUWaEk8' A t Z x  w ^ U> ` Z F{ ]XR67o|L3 !  u T2S$DtXu/ SUUnx H%?j&+4nL(ikhaypfw#F/ Q u  w*W@dycklZ *  h^c[;De%aHPtX!5 ~A&6P]Bp$:oh ?rKnoPAkDKIZc#WxN`nB| \ `H${p8sM 9dK=FyD;wyi1nUy1>Xo/ rw[*9:a^klMa-VX OX]`v.9bQQK@**)[Qnr[\OO"F{5~B!O0  1npIO e-f|Fz]=&C]pra+^c4 ~$Um  V -$nj+c@>UUc~[?*~:d ?pt*^'Y gA :r 8S8[fa.lH/tZlmRr+mKkh%wf*,Qvdj0V[  R}B,  BA  +tPdoLak9s}%ZW,V#trJYQMNI8)c.xM dD\x!f~M0nu;Do&  >[9JiG.#ep7-rfIS|r ,P ^ < ?   %>."4 )(g<9I ,G~SmDC~4$<I:$- F^C4b,JH!Q+uNs<,Cz\=*LD ]s>/{@e(8!qE+=G^:p 57/UJFY{;WV'ff/\~~kP%}6P|L>B+Y #~PKG~V\9emMIIlwYW0CoM.\7-kN=4y`p.7Ou`fYRHIe@FsR20s.&op9/ NLnsO F?d/v7>2t?@b6cnoI  ,ci|RX'k@_ U ) oCxm7GSy9y%  g / vygtF|WvP<4_Rgi<% .RT]%{]+sN@%v|zECv6_x  s K V V [<G1 l P q  H ]sU /&<l3*}mG(]yL'1c&2~(*PyF/a@6~hq1Y5xz-~[u6 35 :T~w08U=#Li!3&!WVRMN3iޓg/DwK8`YuDv X"sj&ovb a5S%@]SS,EX# >y!7d$g }13K Hn)^p5">cdEc[[ \r>[(F;nؠb֦׆\۽ڳ۱S޼y2-*oFfW ^ Nڂ]Un6 35GGC+ z~oSHJ>x>^wEn{x995w"\޳"]CDVupIZ 4i0Yܐ; X\xbݤߧTEe&;za#>1EA.^w1 ` sF p*?'?kOzyA='1GQRb !2LbT_T\51[E=bY!dkn a y  S ] $ ` fF ?y hn:k \ 8$ B?  Rm{~#lqu7/jDTv?aFx*$p:o)tV:Ne5Q-a'`X8pwA >1xUO C*eZ2kJl YDJkV-tK@ 5X46(y0.!$I3{l5U*}6>1 1<nr7XBz%T"nPz{39} r?R]`~{a_  q`lSu9=%a.~:$%&#l]] 2<;PX#Y*>qS[Q@4zsb9:xw]@G^L*T\>b"W'"`cgw[l (flgjk?h8S ,MFoVrO,,ZhdJ[F90 S04-kR =e!-j{~: :#_7VX_Gd p8SaUfp    ' e V \ T FZ\bY)QQ4 MK0a^_1oW y Z B K n #%`3Ncvvy7k%|'"?RU[*r#w$\+KXr d K dDB;XtZ /ce_.UzLMP"v9 Ji/F P7&] k"=l\ PWiyI]6mQE{0BP4%c O^N g:v\$$X%s hNC^ N+ ? \#'z5 *}R];*@]@VXW.N 8  |c^A =3   Z - <%b _!Fd~|X:P36f,AI{D!r*v |?s h 1lwn&5~kwIR.`t8oEL$ i$@}> ILT_`N`b D2Ir6GZ UHH#3o5[d`o2G= ? g n g A 0 l(e-: k w,m8,KLx5W rc1_A6q%&E]3[z( RAc5RrGs d m#LQ$p8h s_x mM7d,kMyK !_   & \ \ : .W3\+}*!AB:NLzr>/LG6y2NWysn?pVq=WOq'u j<@p+A'%MiV/t_2(;1[}B Lmrzm{ L5Gr=:dv V1C ` + t D _ M T [>n(jt k3eJUc )=>&_y\S Y 2M& u* $ E4q }R  3fon z&YRS^RK(6X-Z>H:6  + \ Y "*"*>r WJ-I# ^ ( }AK(46  | J  vm9'4i--.]!"J[vyov7mpC_+=/U~j/qZ6lyW_-$$ uQ'"  / b E  ; Fxt9%bxDFqC>[A  " <  2 1 mP=%FR^o9w =/5 eWtf G `#$o# DuGT2jsS LuW/@]?hi@Q"n poE,5yH[ ~yDK4%K[wF+ - I DUU-pUZL)+ * P~j ) | # o Y E up4w G fUyGJ{Ga@ > *K ? < 2cy; 11TZ] p r _@W2j .H h7q\P !"l## #!`IO(&0;d?v9-8@td P"#$q%r&'>)3*C*)('='&&b%$F#! b !"#$$$)$ $w${%&b(*+a-/t0100..--.-,*(&%H%%6&)&W%#N"!! i@RP75?Sj;P4 d  8 ~ uc)2 : K   [ u j z s   #1yP;?:EN qc^.z,k3:i?a#  " B ? < ?   ]  K  +L9#LaGKY{:U)_rgAZK>($ )vg5N'~A=H?k'Tp}4*!rp2@C?r;zoG!K%\c4d?}8v  m v  nhTKf: 7 N ` u  &7%kvlWA7n7BBZ-MS]OVR$tce`y%twFXu49y`ImvpH @i"vmOMv^Leybu;>߶Eݷݦݛ݋[5)d^[`܆ܺWۙۢV܇ޔ3F#c!e2;߭ߝu#FdqO o% _p]<&HnV[m{5UCDfk3H?v"ZPp,oev\#b\O}_bA)m0llzS"5?x,q/q8b<}2M/9bNYD4V!}c A p_}.QfOkV"_MTGsWSe)o&9Et)2k3}/8X}FdrE#LJ(\kd0kk^E)6zngc3+It=E2/dn VcR-RP^}C'0HZ"*(o.vTWSofDuIN ihiD`1$by=P;o4]7,  ;y|9^>Cf7X`b+s;T,RH0b0gEi9|*4?F,=)S`MOoy% 1 EjCJ`z G*HR&{0A{~(X.>_Ch!g;|@2hl@4= Jov;ah'o:PC%y);(BrfJS | Tb3ޜ "߽JKOUSjr>lG"_4wXk>|tEpMt7v'1x 0 . ?)8+H}$R(.}G$B@3e{onmuHV.!x|KHݫܣ'cߔM|zL?0e7siz>yYT$|V0CWa?5Q <3n~EQUrBD.NiQfJ m3=DW4@^Est.k[Y:. ATtSPewv1di>:@J# }%6u`q^&ELzk$%{Eg r4VJg3{+nW5A4X(tH}/sCld =܅6ۍ+ޭr\މݕ:ܟܳ;#QH{!GyMY>rDZFz7Jp!r~ ?/?Ifk]esmc{Ri4m8NhfIwTNhm|:;5bx5F A;UuJ5U/!T3tSb$QQz J ^ d  a /#w}RLu i 0 u u 2  *XE?Q{`I} F v xSsqFQj*2P u_SG- JOBD{'uNGG^H _z9QOT{z]&>), b04BiSOh?5i`\c @*4fM*(dg.X`c?>;b7jn i a ,  o q 0R'r-i -  t a 6 dncl zO)#|2 Hj|tTc@Botr@*ylB07m) F  " q$q  ?rw^ P !4dl,eu.<86{i{J) 4H-TYW{)8N%"k9aE!&:kk7)Mo ,M*TYB#&v2]j_#(\C?jO>trK6=ohx1o ?E(;mv4B=q{:0Z#yudL[*$9*>H!6 J 4 `%{jkw~x"pqe 4 6 P 5  ' Q n>HotmZcb-~m=}="&rWZnG^ 1_f  = @@.`k|kb @9` ;VT:Z!bFl8%f+~nK[~IH@ew1-ZOr]>}'ewKB\8B[i>9^B-w\*LhIZw,> = sK: ijThz( $I=cmEb[q*$iUr4\2:)i'iKU#qOx  5|MK)'zqLl(t) ZI!EI YU9Eqhjwofg;T8I#eo\~$W1'7a I 7 ~ j F S S  _  cBin$D_Q9\\ CxzAarB14&3qAn[\l@'; z-DQ68(^kej)SyWt8rs 8F[\BV9/ 4LX`| -,5:s Z aQ L r  % M nyMK pR`BL! 2 % s$js5QI Yz}FL>'B & N > * ! ! V t 5 j <  \ } v - <[ ! z .  ; ]xQjcD6=zxZaAe..0BQ^T8: i%6P|1nl1Rha1Fw*IAZhm "    6 A 4  * 1. EXr8#['wCkQ]E8 2   J 3y x*$cn)c2/+?`Z,#  " )#D} . 4 q P R u5AEbquZq>/; n  xpA D&x{zM/A,7Is/_v!0i60r%D;9S2q3oHYMQxY)Q@nL1 )n S&?Swtu|5Jt8 a_ul-D3&{N6[`- z 0 # Lk5#p+iZ&`R ?dU 7L 1Te>DDo" zMY:Ew2]H, q }9h| | ` !  ;  T v;s9 0) tB %Uh|JGw.uza}7iT9X]ASNSk#Os,UGA@.b+B0 \c@GJ0[4og k7+0tAPTMFc%eo +Wr9w))J]PJ,/Nj.r~X#yi&8[| HGl]! lx^V . v_.=( :9Y!:6nE:bc"y( :/k=3e|LBuPxVXFvQ,CY<I`dWDG]0NDd8_1_)?ksgf y  /9 d I N 4  0 1 0 Et\  t #"{cVF  m Z9(MLG ~ F  eZ&j g A bj8 e v R 3 ! ( >tHOg7#k/6',1,(>vu)Kf;}Gj?1-KUEC4,$ObHWWg)'y_ IG'Ni`~0-k6"z-;.k<:h<<(WtZ0arN y_HgX1IPA `_K |H* ^iv={OrV#)2?2#wb" |FSwZ8 B(q NjV  .  v F n :y`\{E3]3V|*ai2"duObAKL+r"TB>eFI;6\s2i"_hZcI1Wq0 ~   M w ]o E } r  \6K U  RI,eOv = P;L-A)&0}p&_;5b< ` w T  E?,2$3E | 3 C {q]n%BTp)W1A \gs<,b-A; R;m! <P^+t;51fq~TMqc0XXAa. ,R Z  Q Y ; qpw<YL >h q  w qSs,*`z7?u z<N)1"Z5O|u^^9&N 'B Z<ynD#@?8v3 n =Ipjn,~7-,`4S#?yuF7pf5(,2 q9 @o  c  3cXoKpQ6l);IJ:Q}m    b:{d ,C5SR#y.J[c"5y260b#~>&Ija_]) / ^ S p<6}WA u  ZAJ~:cpL :9V:)& w BeE<iTIuS?&n`x9z: ND ,rXv 1 a  G oiHh[I<D-)r/?E_C(0tr  99=Zwxo<b7DnJKq{U_I0@T - H%? p @ < 6$q{Y2+a Cc7"y)."84 /4.mGnQ<#;| :no.GNbj I` S X/eLD5I5(0S F'RUPO^ie>A9Lj\5$RJ!) !p/ZEX#f$B55bwg_d)<D-J4};Q!\iv>U,I{sAET6*B*m{9Z~PNz$%zLY?I$#uwXj', #_yvbrFQFQ{"TTf)|,އ[Sz~g:O!ta8Zvu J\ZvA%Bo/qO 6J[j-I=3&f5W3x 8/?+Wt@<%l8w_K  t_5  <L:5xxIB   L d nh]V/))PAC*PW!.43!pRQq %DgxBu{.9+eJvf-{M`Lh$b{L?dJmn3}]j k/ W`;5B%b0!j'NP8zG_]0L-Tib1gZ%(fd Jq>g~+K :I*B`eXQ#]A]NEVDw"joz} 3e*o!LP6) FtP%%. G [ P  0xA E - _q77ljkA/Mv6G Z4Yw7`nW 2NzVV * v  d B O3m , E ' P z N ` AL2H>f ,t^e (  1 S nhaPp:y2 * yV[BFo m: ? _ ?|2)]oUv*xw"q$ O K  z cq9 W}I[(^E r c . l5hD'y3o]y7- KzLOHQC|&F5C56}$\'/m r  ^,I l 7kJg++ukq$f J / RMSsk_(Hn4-Fv^Cv5iojmAH$-.L)]%?qH&WI g.?fq]IFPI:QN)BHsAa. q|R`!irT:!Z~ITE6KQd5Wbh5YkP=L9D]v~wMP$8&=c*I- / c  s p l } R *q}b zX1_q Llm1W g N d ,r9 r Eg[m89,H~F ) :  ( u 1 t R% sC{J  hl[ 2  O )ze    C D # M *#3 f h 6qNOP#7Db L6T"h>lVmH ?4mW+su2  t  {mj#Wp/^ TE!r 11s7['g*PMegUn\@qX1~!yXO_yo,#e{L . k R T k | w - 9 ] oG'jF; X ~R0L xus h[#2.#/w: ^],ly~Br`8]]gW ]NZp pdG8zOKN$@M_H G?3> P?6KBZw>RR ">l|%v J5T'HxB/^EH%&)_oU8fgdys#U 8upSIgWA.k iQq~s8<0EI 9 Q + s vT)#yEy?1 !9V; < & I m 2 ^ } i N:WkNulW_!Mz+ ?\ju?,<CzAPuHi+0J[kUm| 2ZlCc=r$ g +}@xg  Z 0 z H [o X k!!Q! P NnHUOky+:i`lG F8A p8W%6vnsqu )w7c"W6LaznF0 z  $v%Ap t K ]  M C < )  q g 4 +|g3;iC@_FXfxJ X   G f A gR " R\ ; Z $ p f{SqttL7Hv(FFsT-]K $ K  _ :  9Bp8)+Q?r_[WON\1 ^ : -$v%#nr&y70A4 !"4$%A&~&s&&&'&E&O%[$#"!D R(*)S$j-c!"#w$$$p$$##^$&%&&f''(A(':'N&%z%%%%%i%%\$U#!0 71 5!""""K#$%%D&&&^&%$##$5&'*)*?*)W)(''p'}'''e( ))*,*)r)(A('';'&,&%%%_&&&h&I&!&%$U#!\ _h,ud Dk ePfn3f)x}7q3b9ZI@Q1 (/mlD !_""T! wByG*  W#{BDN:~gyWL d ~ l f b p 5 , Jl?ao*-I6`iZ&-?2" {PSB +g<[`zkzn ~ =  }  @  & l M . / J S ; 6 d  8+<*otk!x&E_  aey4:o6] `V:\eVJ,7|a;WQFM3q8j 'fvS:W}iQ#R%7T)+a>H SMz\BI/}>X/>xbn=^TC\@75@VL 0OEw_FBqA\[NFTS- ]&| M(Q+,7Q_%v!l~< ^yN=|t n9(jyMdn+ߌL:ޟIq""+99aS*S(\n/flv$A 6H6!*PaQ @t0Qx>QFGH>MTM{ *P>>MutxnOX]ITbt.c8%0n'*N&l3P0"X5w1A!\YNoLI_."yu5~?1 ';z$4u B !  F s6~)#@r=YlG_ zh7GaCGFwS@  CQ 6'Y <fo L}7 R73h7   ^ K C z x  '  4 [  a  >   6 ' s S B (  X 8 w/HB[`Q!`\]f p k \ x i  H F J k k  Qt.o1`Tic4g>&PkoXRX+SYN:;\*  = #+/z C 8 ejIK\aD Jk@Vn:>q!hG-3%(qAYrR;As _Raz)Va M?G\ _Dc߆%ۗc#޵jXۊSEPp־Մպb٦ھܺs޲ޡސe6 ޷߿ec^Ze^)wH ]~:Wp7P]I{$ f-pijC' WE`Q^GgMX0i?D'Y1+~SlJlXOLGy+tk8}}l^bySUN_AH:gOl_]|!RF7xH-[8BQ6oO'54ReVC m%\_bOR*2;T`w\==ps~7!wDP& O/l}]=K=B6h@ Z(m%+/+wF Eu1 c*&v: Y_] U y k z A Kbr[UZLU R = m " u b } ] M P o {>xRMk9I#uzy>tqgOR@ \aw('B # CE@RjaH(RGtneqHC_EzxeM\G/ J26%b!4D9aNe_3Llr(h|} 3ZwshNp.O:,U}SzJ.5% _|-uBCtWq2v+LbeA'eCb7 d q%Okw1cu* jY(iy(bPXz\0)nKe)#ro8i4=fW8`,)6"f:#'~qzH- $-Vphf8Hwjh7#.6-bbaikz~^kw-v*m Po3M59!'i3 58&"3?0wuCl4"-6 JX.OFt4n{TB\\5IP7"p*LgTkSO !~RDI]%c4C$zT5"0}TEE4)q*>[7CjQ8?ER5G.}^A =]A2$GZm1SeDJ`O=)GhkRm> `TUW66;09K z|OhN @V5&`~ y< "-,k P oF6U]^TP.~3Kvnv4E'{fdj=v`0t>Yu\'-c,ui)')N#,IBK? b* )3 ;M ) t o 9bqEsSZ{%P -jE#RK3W ([|s8e&>sO$</7`5?F ! q H  h   Z  e _ `jfT4 YSuB 2 _ q ? $!O lU7#%Lr>i U < w EZY $0C >  ^ ( a x {;  j ; 5 P _ E  { 5 @ t:!T=#uXU]hPEt;jocs010EWnf;7 _[vk_PH,y? [tG,[rsW+(CG+^h D W K P 2  WED58 oo9)khF:ew(ZjQ } L & H )  = \ 4  u _ < K ~ 0 K U ^ { z ; | 1 h  c &?!Rl/kYB56q3'  k / g [  .  >   { t  (  y F 8 y\vj@u\#b3sxqj[*BPID@ky*8&dlC)kT-HNa]R7gDfoldJ`uz_6)jFN`(F@0 N m7 A4 [qq l&1 av$[ghcj< 2CL|BD*7&g!|'u?',LbYVvB-8elt\0T+fg[ S:+Ux&I9 MZs]RAlfapEY=q:Y3Y0[|Ys/4r^vqW r0WSJ6=4q~Zt+fRL^O jX/#BYg|TdjYrqrf_d >H;CIb65yg b()A(CnZI w*6>u\AYmI$8o4NZ=y[:oU_m+ymHPU}{.+p &=W&0;BI` -L,M>?LytKGsD3iE@c V J X }  #  ( U ] /    P  7 : .   ( f r  |  } # c;FC `) 7[v-s2v} Kd/mB Cc! o + % Z 6 6)jeu   1cJ_ h : c . d  Z Z5?b=VSjNc{J4ND Y o ` K  _ z I J r X e dj Da5&cp1N-bxM%  :jIjP+\ H Q 3 klu1jNR~'7@F7l+TS$<-  = : b -"pRISYO?4:#G-BuJ3K V % # o | c "  p  d m   rK;)  9}\Pf 6\y=> $  u  Gsbml5+m$IhmylglqzmJm6M =y$N4o)5CgC}}Y\xPu<^FV}H >I)I\Y>CU ,]NeicP58pwT'3h6 Txk&F%a w  } OZ Tb . p y ~ s J    = W c :  1 F V .hr(>Ts]?2$ 4Hl|f(V~{"DX?mF'oYiW=~ZD6K bU^UJQ{qDY+EBjm'U2 } Im(2'H4oH1;rF'Ex;! 5RbW5gWdO\6\qakJ0OZ@lz \SaOivh#s($,]sOs=dh|3n{v-.yH bHSbaUD;El$F:6jh&0)%z@pTI59l&eP(Rky Y||vV22s ,/Sw}]ObO-uTrX}{mwuYO8>ZW)crz.K$t 2D?%%?]be~@E'+{^[Gx{@.>[RS0PVH4$ . aD|qS<E\!Y]O-$7ED=5" dMK>cxWMwZ j  s  z y B   o Q 3 2 9 F I = : "  ^ 2   B C  O b R  7 A ~  x @O|{ 0 K _  Q  d I : , t S @ 1 = > L N e  :Y Q J +  i K A - H diait- Y d w - F C T q ~ ] V P Y a b Q 6   > I V # " < O 4 | n64K#!-O9- (u0L$Js"| R`]a~J)?86|@NhtT ^ d " 4 C /  mJ,S`   q O MDOai}` [  O    8 _ 2 * ? w ) - L H " + p ~QF5#E:db n  , t  [@!RK e  @w+sJ % m 8  p $ b   ]C*OI/p^{3>VdeD&k$inRb o8TE\S) 3 ZoUyE72%Hin@vQ oC)860WB^ZJu^5AGBT, Xm @d\q ]&wE[T)"/9+ ~Z#rgPBl sW>>$ G^XwI[82ygtX)n/ 32o:tR2 O"C:S5$@r-D<_C_u>Q (B_3HVpy{ >Z<8@bM <} 4c 5K`syU34z?0 .J oZ. >yLv<p %oe2b?^/X3BP;=Y/ 1 T\,9 Z;P7j'Lx5j].t.;@D1b3=w&f~XbYv/E%cQ!E.tzDQ9sH44@g\{+UjQGN@0 -Kry~%)UaopvjPqp `/kdsM!Y;_{H/8: Q7+")(%Wx> Nk<+LS%tF v5zSJ-(6,Q!!'5.&/2*i z$Pfy }\^O zTEShzR?-7rkSYeWCKXIFUL%EfBlnbg!+2X4z<~*JWdw)TvoAmy'N}.v#Y$ Vd-@pc?{j$So{}W F  /f ~PQed;b%_3 e"h:`xe G  % (   A  ] + YL%p]L6(5#)HCtiE1@j G U F  Q2H8rL.v[JIi?e9u5u3Rz02Rqz|nnw$:,Mz5p/$SxO$ Q}1Km=Inn+l1J_O[FeqU:[H@LG3Sz$+pp8uy!dX&TI>so2 5.x@K'4(nl$bn-$@4WG`gaV8#AAh-.7uTN?]Ls}eN'ygbd[RD:-  d9uj=7RyH c4v$*af"U^ I%XdWA>Z(MlTk=9ZW] WNrD _!}oSNk [=N!e>9F<ZA WV O'uQZ#w_&i@j 9bqxulovw`x<{'L3~&QQ2yVIIo #cF=Z6hh. 6#g 9i^ s7;G\%PnznH(1U~XkX4 :o$7@C?AB]s$MiN_J:f1 1c D C 7  % e   ! + ( %  T M#ie  3_|p^H!@O .o0;A9 [.HXyoxO H!j$eD : Z (  q d O 0  i C (|<@_C\Dp~d@5e&?FQa7;/ G  5 T o } o = a K F U G z  5<n#2CF7*0nD5}>gG}LbSh Jn$Gs>++$ib':c:#F L 8kBerzsiWTW\L"&w@.>TsO!5JU:GrZGNFZo~Z$w{ ttG,1?T:8}):?Xsv[B7Fl`;C3tcC]T!|C+~"kJ_XQ_uhB^+g-Qz+j.yak('QF79J}kNI~ 0  \  T h|^Vz~cj1 b > U l , x  o \ C Gw#cA1;HF6vU:63* M5YhmD\x ia[O;1WMruz &80 +T iPH:G-&HR T  u Z P * M ] e [ ^ N F 4 ' # 5 Z R    ' B V R 8 V E  T ? P ~ t of"I:s* g   9 1  9 F k } k F R \ K  +Jd4)Gp"&l3)JQ[<p'uSQTGg4S9\hIT#Bm5dP6.%+9;,":M<(-PQN mm *7em_eo{_BuAibA9;IJ3ye@'T.YRP.-ER\M>$ ,I\o%#_X-%Z9 Dv 9_cV:- !/DVjqokggM7$Mz`Ozg<=z \RNJ!WFZD{:QtcT[{zs}53,//==U838IS`m G)&^F GYFh,w)`6<Shu ;QF, 0F| Gm o',n> ]  j | V % ` ' uJ Cp3q$+e@;G@$\GHi/_ Lg*^E9bL}sQ80 1H+Xi[)mSa|+A@*CL[d\dw #%'"lH$  ,/" [&zg Iz=O~Q87Z~$eo%H9%uj'V,>UZ}? +(&'('"$h7e4_S ~qjj}4Fl+ETfaR92gy;0w'#?ST^_kn{}^B0^#YC7{M|.t;@)%\KuG^9JOMB2$ f)-YL|7J5 v)#~01![H;u= T;]tcbK7~J4$*.*"!3[|vqx;OG"$17Rkb9 Qkv5)MyaU:Uzi`w $KY l $3:4:/*(+@=)_|gR&3\1/W  VFDkC/es.<=j+geGhv|6~NCww+ %a 6gNs0^=%Y & _ [  z: W s+>f*QckjccQ,-0Hmqc- z    W 9   v<-S H y    M  ~C~trd=VEvEv1} N   I  Q f T  I r0,..>a:v)pe}9PN;X3 gWVavY#yjWD>Ibnqd\j.r rG2RmY %T.,Dd`9R^e1]oc+e=j)$,?K46id 0A97) x`ZjgVU{\wD=5hI' '2\"Jruh> )iHQDcih?;Qk%%\X6b~Cy BU5((?ki}s[6U"wq b=Ff |rcRUe 8qskweP;' ^2gI( -Kn, mXF/ kA&#&+5Jd<x}K <o  }y7B]z@cIe`gvw\2{P0,*))%$ aA3txy~oZ/ D"Z{,7HMNC$Pe'=9jgrCtCe6{Ot`I&qC%_>e7A9%*9X>h4eq5a}>\",18HluQ~hsGh}\=* m;~BT65?HFDP\iif[A z8hTGQQR=^C3Tv*HR1<}0JfpgP2{>]@4%Hz1NpT*S=^`Q2)3,~I=m9pz5^EtCx$<B9-+-:QvU%Z;:;Or <TtaA$-O !d.^J7617F^s  R&^VDL]C6?Qj}zf?G~G0AVjzG*!8\3KqT -Ts _;ysw2b 5@IWt[NgF+#'%E[2~?  N{)FRK>(/@OE/~{M It1g ^786Xr^-Lz}uyrvswie[g}wB !B ,$d6iG<Fe$ThH%V\$MersxvpO1-Lah7[/ Q_G 6JUL9& >epgXK@4* \$R)"Skg d"V  )#  &-0*04/wYMJXzejiqRN/HXaj# vib;{cl 1;m<sq,Z= eD+.4DJ;. CcoA^$yfL;-.66?7$dJ;ERepy+c2Mjz$/Ls PpG}o/<6," r_Q[f`G~iQXYf."14'}xg=~E,P .=7~DMO tbPA=;=/$ V0wnjo}C Tj6"?j@`&V-qH 0=GOg&R~uhF1 +Etb=bvN''31.0=M^gdiw'd.xA_BuB.  %M $@ZafQG55<CSLK9<MmLh<3`e6.dE! )FmNeP=7,( (6Pu_, (Eay1FD81.11:Oo)PdcL6  U|6a3Kp%-)"   eKD?;69CDB3(9WruX.jR=(nK .4D^Bo1OSI&rK)%'3=Ucors{qaPFBAGHNLIIEB-+#y_<k@bB wHJ~ .PrhV?>?Nh}c9 +*-//*3D@B=HSl+,#y^bn1Qy +/~{z=]iF)$.=@>.'b8 )Pk~veXMNX^lpr~xgQKUk:Ws{a]G<4+..Ebq_LB:K]-=80&';J]djsrc`n"9au5lkG!\"\g?/5]@aonV;m:b9 ->B6$,Ut+5EVh{"Mn_=Wd^B4+9Tv}Q.NzN'f-gSOXt~zkfnz[NQ\6m?t'?d!CLovsW3s0EN0ubfj7]})a3Lf{s`7}z8Tflxz.On!<Tkuz`; |gR>2,7DQVRGNH]f{zn[UIMU\fcq|J v-x[@ cx\L?AEJFCI`v ?\|gFg3_+ }aE$d:%hbeL}pknoo^RJBDDWt!,43F\w"-ETgjbRB6-!&&:Jg 4IZYPIG78   ,' 4^8g)=E[!COM0KY?APadUJ!u8`: `m=h4 9TtpkX^h7LM7AsAc-U ^>!X =a%NvqrR T1" *T ;^x~oaQOQK@UP3Y<]x&@Tj$*<N_prrbT;/zS9aA5~lH#h_cBE*{iVD9 nU?3*&=^P#?Wv!cP~(:GMC:1ANpjA!Ju,Df"8FTbp~nV3o;|U1 F S `G2!1B[fz|a@ (.5 1QZelz_7mbbCd^c|=p /Jg8&Wr`WLC( R Q#h#Wi@_*zxwuxpkdn{/[&LjwoY>'$7KRQA*sL* |kTNGPYn{w^I63DUn{8n}~~zhJ6}[D!ohWK.@W\RA4 '-0-!xugdnw*Mz(BLcy}~q\A.r+[+N%}]'z3d" "*JxA=]hphVC/$!(:;7*zR&]KLpzhWQD?('=f68AFSp 9LF9.*# qJ.sfYRSIK8:./04?NhH{R># _0  ,Pp 1V!4>QUd`jgv}z}}p^H4( u/x[Wet(030-0HXoollirtw9Wx5C@4& >c}vnT87^-=gsS31BCEI@?12-( 351O$|iQD6,!#"!*IpY BNH7s[QIA,~_F1 'Ljzpeb]QF<DUj 06;;:B>:+$&.DTnzR( 5f!-kN5&uQuTF3/&*,:CQ]_`UKIDC6& .7DFJJ@45^ _l|kbbb^VQ=2%".7CHG=1tVI5+)""*B\my{nd[WOLGJPZgln^H*x~lXW]n}~{g`UTIE43|vcS>% ~3<>5* %Nl+9P^x %&*.03?BPZgtqoY=ubHPbk|)DYv4FRZ`ec]F4*$)  9Q|),JRkxgS6! !*-.%'pC  raVQQNPH@2 =Zo{xsjd^XPG7)$/71(  7Uw -DPeu#;[bf[QPWn%.1)($$|3\yY0~ombbe_`VUPH:(-KaffhrjkkX))=Qht<M`gs{ 1<EMP]r<s :\{9FVW^UT='lXKT^q}~lT<((9NXfghWC$mZC#xoZH(nY;")8BZo  |T8& 'BYpwyz||}xvidZYUPD6$.3468EGQLMKQR[_ju~pdM:wzuzzwmh[UK@=-# -Si|#6W|hO=-#@\y}seQE*o?vf[ag| h<jSA(7e|u}&<;C==7;9INXPA3(;EUZbclnz~~|ygR8!7^reP=) !?D?DCK[av|/>KYalqvvusuqojfimx{{ -7ACGHPRZaip|'7ET_cfda^ZUWMSGF:7..&%!)8HYdsq{nujnklj^VE5)yi]G8u|t}xwlmk{ljWWEA98:AIXbr}!&#$&'-1<GYi|zvikdd`]^X__nw{o]N>0& !"#"  "(:FX^ls}~vuii^^VUTWaivypeWJ7*  -6BUg}wzfd[PJ<:8848/9168;B@D?A?;80(""!!$"$     &.>FS[gnurrjk`c[^YWOL>3$&*.1<Jh xkh[e`if^WD?/,$  vdM:% tj`XZY^cah_^USQTMOBE<=;>:;-* %(+47FEQP`exu_RDD=?45,27FWetywrs # ',01-+!",;I[gsz|of^WUMH?:4-*"&&/365-("""+29CGLOLI>4+$ +6FZu!,*( |vorygW;.!  $'+(    # $#46IEWMXSY\^jl~z !&%!" "z41E<:=MFC@HFABFFCAFHFCJINOQXSUWZWZS]W[X[[ZXYWYV]Za[c_^ZSPMGHBCA??64.() !&#)()%)!$!          '"('../3297799:9887:698895848451401-))%%%"&")&/+4-6/75>?DIGPNTVXZ\[]W]TXRMNGHAA?==:8630..0/0/(,"(#      &%//262<7B=E@GBICG>E9D8B=A@CAGCCE@B>:=5907+3'*&"&&!(((+*(/'1/220.-0*0'*$#   !$%*(-+,*(%' )"+%*$$"" !! """# $ !#$%)%,%))'/+2154506-3.-/2-7.41,.(*%#! !!"     & -'1.01//,+//-0(,$'$*#%" " "$(*40;3=9::996000+,,-,((+&'!.((#*-"!DijS7*6@HED>4"LISTFINFOINAMSmall and medium thunderIARTunknownICOPunknownid3 hID3@]  T \0TPE1unknownTXXXCopyrightunknownTIT2Small and medium thunderatanks-6.6/sound/17.wav0000644000175000017500000043435012636021030013066 0ustar apoapoRIFF8WAVEfmt DXdata7T*AIDAFMNAI@4@(!.1ASE_hcO_VONLRVY?[[[[[Z#YW+VSSMG/EGJG<6*:#O O w k %56()oxY k\`F"f  9 8IF? m&3<>x;78=BuA7Y'Kv(93KXR`cedNddgjmmDiaZX*\ScjoQrrqomkmwnpo|kbY`UX`kg>zDJ]J&>)"+ )%'*+['-"3"'T-29?FLPS"W(\!bg[lnovqSs_uwPy0zNz8zjzzL{{0zxwuusqnokohBfd/c`\XURPMIA90)$ g \{p{{j{1{{{2{{zzrzvzzOz zyyyyyy}yyyyyyyyz(z zyzZzzz]zJzpzzz{z.zzz zy4yx!xw}wvt*sqMpnl^hnda`ac}c=bk_[X_V/URUVZ^ac c`\D[\o`pcc`\YY[]m]ZWVWrYYW`SN?HjB<73;11220,([# (I^0sS̝?e-7" xNWxt5֭Kެl쨰@Dog.ez_ě9?zIojߘ L$E=*6X!Ɇw߅ʅɅ2??*F1mB~݌!ƚޡ3پwJtI"&;JH YA\!&,1@57~8:>DpKQ~WK\A`^cegg2hgfed0dcba````3_[WdUkUWWUP/JE,B6@?=8~4233z43Q/)]%h%P),.0/*[&$H$%&@()*,z/;327]:);:@=8@1=+Q'H%:$:#!v%2 ~lyn9G;2RQhغڀNܔE)ڔ?b |Q_]V19g~ n|T!_#$9%%n&')*+#*h(&%$~##""!P!!"#$%%%%&a'y''&'''('&&l(+.w0/-_,,-q.=-D*&$$#(! C!4aTPZѴͯ%ۡ\VǔlԌS G텿I   )>G=Jcͅ*LeBN=ɏl4YUꚝ`niޢͣ} vtr ʷȼ\_M}AαϝS_ٟ/ݤ*}YEq@؏cޔD}9{3!X#d'..Q6=j@@.A6CeGLpOQQuSVHY^\^*a`ce;hjmps;vywwwx z{zfy]wuttCtosrrqqnj$f!bu_]\VZVCRPMH{D_@;A72.*&!# Q { |Ts` c$2 "9sJ +Fm!$'*1.3.:@FJMRSX]behk#oru $).38G<> @(A=CSGpMT[_yaarab2f2kpyst,u~utvxby'zPzQzzz-{-{{zz{%{{zzzzzjz9zz!z*z!zzyyyyyyyyyyyyyyyzyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzz.zAzVz|zzzzzzz{ {{ {{{zzvz/zyy>ySxvauser@q-pnlJj,gc_[qXUSJQ NJHFFFETC?=:74p1/-#-,D,*(&w%l$#S" +k_v HfId`Kq 2}o1e/:}up7ܾM_mш0Kgɝ]PO8Uߦ@ʝe+ؔ!ZsKCEɉZ^L:1/%" !(#%&-53629>EFEGJZY]Z[ikumokww{kgejk\NDB@<' ߇Iqu B8WFWٕz;k\0飮zZ~t?Ƈʓ Aܠ+ V W a"'),l03p554x32_358;?VB-CHB@y??AqC4FHPKLLKJ+JK&L,LGJGDfBAx@=89432G10/p-*x)8)(&)"{(A#<&())'@&C&(+-j257M;>/BsEH[KNrPFRFSSTV&ZK^ac-cra9_]-[YXXkZH\+]7\YVgTSRO LGD.DE%H0JKqNR8VaY ZWDSoNJIHFECC ETFEB>D;:[<?@@? ??BD;HKsORTTRPO7Q3TVWV0TR'Q=QQ3R/RQPONNM`MLKIdHGGHIlJ#JH?GECA9BDG JLLQLKJ'IFC1?N< ;;}<<5MOiRT}UTS_PLI;E]B@@.AA?=:73/+b)( ))y)&"XB+ EmMCQg \w*S%^%OZm[ r@Gxt)G$cp[e](ADQt ۚנ|Ҡеy w}Լ๨kgpYƣ`BÖՑȎIߍ}ܕזǙKҞU[򦇨8 ۳еݾLē'_d͚ΎUҔrԈٞٙaFMZ)ټamϳ `Ŷ_^6E#`ˀB\`F-N{|pV( p,AP GYy?E,ft٢0fݍNܽ٣,$^ӚMOsó:¡ÇTQ;O͇Ϥ1ԟ|U6 MY# %r*/478y88';>B}EEDB5BCCE5HJJ_KKLNnOQPvPOuN^LI"G0EDAEFwGIG)FEEFIKNO_PPhPOLIoFC#An>;8*7678999:9997L5]2/>-++,-6/01)2210/-,6*2(%"z6o N ]8^SNjc`xί ! ƾr}b'E3R$< \>DZ ;V龤F|˱9ϴ42pܜE[8y  u 45A=Hf' KK6=Ηa ѵW6Ñĸ&2\϶Jv]W̃3Kp#z݋1GXy% S   ZvQ #(-24)79<`?)@?X=BEfHHG)ECBAV@Y>i<1;::v:9630-9+'_" L P wRfe &.ɸ(޼ DT%ΰ( X%\.p"{cp+)413ٜ\$aCJ|X[pm, K< *x f  TQ6~[^U^#(}/6#>rEKPSU0X0[^ebeh0klm?mkig*feeeeefhqijiciiKiOjk6nps0vVw wuwtXtuwytzyx5vtt|sRrp`lzg*b]YbWTPJ^C:1)i!fr}m$L*I\ 0 "~|BB#G~ej  "$P&B&:%b$$&(* ,,-U/1a468;O=?ACoEQGTIgKTM$OPRThUQVWWXYIYvYY[W\\[YTPMWLLLKJoI"HFDA>B;75520-)#|  XWZes!j~iWc?{tqG-Ye7X桴]I "GnŲ(ո蹚jvIf澫j{M *O*!l̸(zʹfhrŴF£3ǿ=@ćĵaʇ;4;x]ony0:xKND%t4~m}DJFvE]==J7rmEE*^ka4@( C5Gya zS`^ >  %  [iYpo  (k2w I,_@K@ @@TBwDEDvA=p:399:;;9 86e6?6542/ ,(N',(+1798~2g+%#)%E(K+-/)25{7R87 657W:#>A>BAp@><:8\76l5s5O678U99-878N9:;;96U2v.*'%$ "`_ d C> !Bk޲ ՁPbɁ Ŏ+%_aogHa.:ķſǕ/j֡ہR'k 1L"+'+05:>B FIMQHUWYZ[\]^][VdR OMMNOsPQ`T|WIZ[[W[[<^bvgkon*pqMsuvw\xxxyy7zyoyy,yy4zztzEzzyHyxwvLvuuju~uvvwxxxdxmxxx1xmwvvuuttrq}qqGrrsr^qoo!oMp'rstEtrponndo|ojn'li fcba`H^jZUQDONMGMBLJHFdDiB@??>=9<_95F2n/x--,+)'%#" +% ? T d2sqi}(M]Ϙq%ñWZϰ?Χr>PژYrDt4ՎFWы}ΊOo(vuHCD;'(5C>?c^׈ UɉZ28=֎`kz'񒱓SĔ!.ؖtFØi/Za&GϠoڢu?奞k^^]+֫~Lg Fgeo_9V}Ƽ/%hx%Ӑ7TwW95JI^ P .t`$3+F' Y Lt`RSFJa[J@ {LD $ ;O!'r-2b7|;?ACDbDcEGuKO0SUXY[\\[ZYHZ)[ \P\\[[w[ZZXWhWWVSP[MJIIHHFE!EECE8EDB@C>;Z9(7]5-43334Q44`3210j.N+y'#xj3 ]F<:x::>;~:853`0,., ,>,,x,g*&# G  Brd}o@#}2\5wb߇ڽYԻԵ`{< |fM#@*Ԓ8i{ǽǓŦ?_˳<^7ұiܽNM]RW! No& q{!v',14y60778a:<?@(BBCDEGIKWMN~OP5RST%SN=I;DAJBDFkG]FDEA)>;879@=A8FIJKwLLKSIE$A<9 643 574;=>Z>=,=K=p=<%;86568;>@'BBBoB@AD?<6951C.+($ !WGG )xiO>  P[.VMH2\ % 2 k I@ #%?'(*7,+-u--./<2Y58:*;KANEiHIBIG5G HWJ9MO+QQQQQEQFQQRRQZPNMLKDJHFBEClB@/?=*<:}97*643j20.,:*w(G'Y&T%#",! *[fQ~(w'~1IP|Q l|Y ;_9 }*$ s vIVkxVAR3;QKY<Z, E j  v y 0 f , U w 8PTTT9[(?E;ޓ.`ݴ~7ܽ٨чЧ-̑ɦərɵQ ˜̊h͌` ֿgd(% MM9ۊC/MӜ#(Ήrʂ-ƸÍ!\پѻ:r2}.ź7Ib5[fD6Eڱϴeݭӫ(;ñN^*Jľ#ͿЌm ްX`CdJQYwp_h/#!woϡRyָ8]%9:eDWƭ6k+s^:AVixc*^y Ó&rرU߭p     dJ "! Yy"&o*,>,,-,/13B433332E0,)i'H&%$-# $%~q M'e]7'Lm8S]|~Z;2yIfB[ ; =B  #$"O t"F'+j/]247::=0@C3GIbJ`IGFFH5IIHG,G%GyGGHEHHkIJmJJJKLMQNNN#OOO$OL IC=8d5A31/x-*'$<" NG(b=M//Z_ N `]|Ls!܏ۃ ׻1Қȹǰ4"Ϲ+Hޕk$fۄ~ bmGF xVP7CDJ_ؒF+N̯ʝnO ƯdÒÑņvFhd5һ֧%LF T}e+S B$N)-146289:;<<<<-====E==?BFJGMNLJGED#EBF GFEmDZCBRA?;$72}/I-7,.,,W./u0/.*'\$2"! W!!!+""#$?%$H#! !"%5'(*++,,+++6,,-^.}/0g11H1000;0.-++-/0/,($!X$) @ n|-F ' v /$~1 !#$I#"")#" !UM2l !`"[!`3#l(r-0245$8:<=Q=M;840y.-,+($]!M*!HKYk  y [Ty&"i>LM_S RgX -I`rxh5h3+Ze f  L  j [  y \ @ k  > ahjZD2( Vw/c!=`ds&] >c߄߫r4a88Sbq:/$T9'5 q`q+u߳n E9Lˏ PžɝPʘˉ͠Ͻ6ׄ܇8eFf$0l t#ku ^ Qf7v o$s9-5` *BisftESw/' *y'Ogד ׾4uAՀLt9Sjؙ۟ڽn815h!vSQ\~ P6(s}`MܮtɖRසӷ Qýq~2HB 1orRr E<:{::6:72^*!'sU1 BH[TOZWYڹUCAQ1ɧź#;YwØ$Dկ odu =bjw+ǚ $05𿫾ǽ5¼,v&EmYx,vҢx18,҅jtˁh~ hI{ʨuJU{R"X$U  f>B R?!BJ S >aWyedb }   =+n`r,v /1i'Apk* MVMIiH"&*'-g..5//124"79gihlhoruwxUyy.xivsqnl ll/lkjzigOf+e7db`5]oXR"MG B=z8t4;1.u-,+*)'m%O#!!Q#% ()**+_-h0F4Z8<?BE$ILPTXr\_cOfi]m#qxtvRwvt;sqqiponmmmnm~l^jh feddchb`_]\[1ZXV5USQ'PONLJIGDB@J>;9742R0.+)&#O!nQ6 * um FW;jHӵe(Ϸ f#jIŖqlrJ׺ Ҽ쾑64ƾ*ćgkи(9ij7<"vG2Y !r6%b\G0Aeѿd AѬs I,8Q$3hbn`Q I I  {W'V P'D,Pz qf{ ubPB"   lV?[7c  )"74r[p oYO,blоˆÛ}$ֶr MVp埤FΙ𙫛!.ؠE+jM.ݯ XfӞtژ 'PhWt #  .#%(,01_1n/,)&%#}"!Lf p xxLs`{U\!?@BDGJJI4GoDAL?)=@;_9m7@520-*&#!xAC > GB  RK2F ZZB:0, ZjI V!5"$###_"F; T-!$נ!Y)>Ck=}pշ*UºŭNC׮1רZЯW˸{Ӿѯ4M/p6p6ǫcP҉؊߲**BE m H"&)+.D0q233431.,N+***~*(%"7"$%&F()w+,-.-+G(# Kxu L ? f /fK $0)l-1344433D414 30%.++^+,.H/-00<1o1M10/{._-,U-.14q7^9:9864Z2!0c.--,/c135G6'5\2f.H*&$_###Q##$#"w GIYAWa  u  J _R.3q})fV  (n$K#&\ tet !#%'((R(()0*E)/&!yG9] +!"#t$% '5()K+,6../15:>[A B@>vnBGqKOQR SJRMQPjPPPOkLwF>3)e ]PI E:n#p6Gga 4z_&,1333K4579e;@>CEHJLyNO8QR|TWWZ9^(`_^i[}YXYbZZLZ)YWVnTRPOGMKJHF6EB?;61-n)&'%# "fj\- :c_1y RScA[䲫줽6g6ę&a; [N77y¨۠7jk ·@òPϾRÐűS˓ɻɗ;ӡתoZ'q -ch "&)+,+)_%! 8;!"#!sdxBO !]#E$#"G! !#h%~&a&-%Z#! x!5$Z(,d/'0n/..0305f6 779;.>@ABCEFGG{FDD*DEFFGGIKNRZU`X[J]^_^b]4\o[=[v[[[ZXqVSQQ Q Q0PNJGFEGKNR`U1WWXWWUSP!LpF/@93.+<*F***)(' ()+---+)'%j$#%#"D!.`a3 rQAz/gtߍtq dZ"dߌ6\R/'7zR&*o CGޱOӧ-Ѝϫϻʺ {65#r[͘10Ӽn7؞u~ۙ4 hC#@n:" y v &D[lM3 Z [m>\-cI?!E$'9*+,#--Z....--.012345678:-<?BEHJLMBNsMIK.HD\A><;;;V<<6??>;>>?BDG_KbO4SUVzUJSPOxMKIHnGGII(I9G{DA?&><=<;/<<"B|EsHJLNOPQ STXW ZG\]]\o[YXVTQN>L]J>IPHFDQB?y>>C>>>><>={=<];97?6@544444\4 432"20/-+)X(5'&&T'':'&&$H" s >!!!! 8n ^ hLNZO$f"Jcve14eW3֌Ѝ8wİ?_ujBUTLfpRLƆp]ʕі2 GhxɸĨ.{%TDPS ɹPŶBf ѻ.f7иԻ,ɟԴ>Ve +e&<-o257o87642J/F,(e%!U-2Ms`N%&At5 $F(*q,-.02X7q=DL9S Z `dhklmznopr&ss`tt[tsss>t uuuu"utktNspmi,f4c`M^$\{ZYtYYeYXW;W;XyZ]^_6_.^ ] \ZYWAUcR;OKHECAE?=-<:979T99:I;;;f;5;3;;<>?)A B[BA@?=@;998b87H6p4j2^0Y.#,) '`$!Z5 H(XlޙIpܓtcF c}8̳Sw'_ y0-L˲+įC~<Dw ﳾްҮ쩼xЫZv==m7 {~<ɡ֡Iԣؤ u=I' ěȅ^9D|ܶJ # 2w"!&(+T/2698<>+ADFILOgRBUWZ]{_adf#hjmpsvwxyyy}yxwvuuuuu\tUroljhgcglg hCijYl~mHnnnnannmlji2j4klmKnnnnoonm lEj1h[f"edeqgij/jihhh*i^i(ihg/gVf-ejc+a^\(\]\L]^ `Oaba`?_S][YKXqVPT RPeN*MLKJI?H{GF)FEDDB@>: 72-("{B +L?X\߶V(ӁʔƋ㸔6v7ȫʝ̆΍{XoTڸ޽ߗe)"g[" 502Wځy}UʯJ80ɺŵ"T/էhE6pm ÏË5Q:zzyV<5@D>45CXaZMbÆÆX~S*t(Y]sʍJ׎]яF"k }ʡU]禗LRݤĤ٦بz M ]v1n^Pƿ ìŖȣ˱(ء۶oJ=N7 Y!%I(*,V.=/01+2*3333%44H67z9;

@ABhD>FiHJLNOP)QYP9NK-GnCJ@=u<;@sCEzF]FjEDBAAAGBPBA?=\<;<>?@A+BBC_EFGjHHIJaL]M@MKEIFoD}CCDVEE$EDBA@?~>  N N!C"""""! 6JV% 6 z DWNx8#<}sk1A^T. Kߎݶۥف|ոFr:̹d?5Tx,̼\Ԍ3\qm0rگh3Gշhֻ֠6HTϔR̳̾+עob܋ Ycڣـeڂ܈/PFL4 g4 '4> A T ? # 9WTO r w  }A%,1%6l9;>?A6C[DEsE|E=EDtDDCCBBBACDDFGILORTUUVX8Zh\]]\<[&YVSOIKF Ch@?>> ?>p=;9!86543+32221/`-*(&k$"8!!uX `!"$$I%$$#"!i  4 1!!!!!!!L! ov!\0,r\^ _ {<A .}pXTݕێd;\ڈ|M ՚O=q էEF2`"ܤiHH\:%c+  6Qpqwm/6]O7HLd < 5{'F(:T!"R$%&&`&m%{$#8#"S!)q JH)=B!(/_ !"X#'$.%&()*m+++*)9(&# m | ebZ )2{;r.=́qƠwAŴT\"}Ǟ nr&(sݓއ߉k v0a0qIj, EMAޖ4٪/W !ЍzT{*1W)ٰ}ҴTLwm䳮ȱذ:ӸM±wʼn #τOiρLzԢւٖڳڋژ޹ߦ>xXSiRG6G l\  y") #&)+-:/R013769;=/=;I95n1 -(%!8%#6VJQ] B"#Q%&L()((<((`)*t++*+*('\&$## !BRAk Vn k Ay.m:X62 &Nc(L [9tG4ܭBUفtt۰:_($S{CaZzMvJkAnZ"E3*oD1eg*}SNLR\lAt7͟}\;ۻJgMU-ܰҳǶ0Oc<'ú4:ˣbіJ֕AT^.Zs.BRzu?:$ Q92NaB\h y ,!b#=%&P(D))*U**v*))'&v&^&U&&$8# |WQ!%(,14a8;>@BCDJFHLP)UY\_bf3i:l,o rtvwxxxIxlx9xwtvUu^ts sLrIqom4k hda_][YWUS*RQPMONMkMM'NXOP!R!SSjT U(VLW[XXX5XVURPNMLLMNOPQPP.PPOnO5NL_IpFCA>X<9753221E10/(/.//00w/-b+ )u&>#F^ ^$7lVX p6mS9uMW?N8DHrjQQ/ظEzQ̀I'vk[9,SǩΉv  ܤKow׬Ԟ<Ѽ2;Zȱ3Ŭ~~F̷h3;ƟZܷ?eRpk6#V 9 )$(*-03c6-9<>xAzC.EG^IRLOVR4TT T;ROMXJGERDB-A=?<950*Z$TM5 mxb!;$ ')+-.H///]/.X-\+(R&# `5.c*  c_(N@UW`XiCE?"#AEAPHslNeXc>t{^"#Ғъqȣս)?LdԞ,ܠR`Bƣݦ 慎Gg&Eɪ\o쵟ŸS5>DP >(м4 WD&dAY~䯼۵Ըn̽tBͲѐ՗ ^],g E+b!$&'-('&g%# "Ftaz ]!!!! #%'*,2-,&,+`,-^-,+*)(((('&%T$-#1"]! { N 4+Zk2]i "L#[$p%&W(**+-.c//0h000000.1B235/8 : ;:9754*2p/>+%^w 4  Y`*  @ i ! Q ( 6ov4BPrjr/hSG?:r6߉<^Rw4^C|_ X ^'ȫ ƎtKQۮ$x:Φf˧򧯧ABaYFnIcgYsfߺ`ؠթqрaPъЩGȤDžƔ:Ҿ}l|7ÍěiǕ_<ȅ,Ge[ ](#F)ǚOܚםAͤܦͪW[ű!Kbҷ3n[Jּ򽖿Pɂ wۆkD0t { / #Yn\c> "m5 P#&L*.1g5 9<@BaDJEEFGH7J@K1LHMNIPQ|STVsXZ\^/adinruvvu^t;sNrqpNp3oOm/je~`ZTNHHC= 82,#&  i2 ,HX i%;Cݬ} wՇ2@ۈܥݱ]pl h6/WCe:ܐ1 Ұ Pædѱ9ݮ߫t2񪑪F9eݪG/U1@~Q# ¯ĞǷ$Ԥ׀߈HR;  T]"&]*-W/b1316$9<=@?D_HWLORvTUsVlWXZ\^`bd2fghrhGg=eb_\mY@V7SPN|MLLKjJIHE|CA?[><:?9t8y899:K; <<=>>=1>?@BZEGJ:LiNgPRNSSS7ROL4IEC@>=~ 7/(" g R O BY lay O 2 0 /  . )Zo^G$4bt^{C"P%OzqVn4*Tg0!T؉ҸitI,E(Y  !#%?(K*+.,+w*(_')&(%:$#!hA=Fi4 M H2'!\ix]#mހjKAIH854Q6'dw2⪛F3ە@?RT𔤖LšU nd[-͜R)ۗ1ZO6ާ@Tvԫᭇ>MliHIR!  9-V!b$/&9''''''*(_(i(U(I(}()A*+-0h24,79[<?ADFGHIVJ=KDLZMzNOPQRSKT{TcT&TS9SRQPlONLK&JJ:K4MORATZVX%[]`pceDhgjl#m+m&lXjhec~a_[XSNJEA>I;D98778':; >?MAA@*?ACFGHIHHHGxGG HHJKKKaK+K#KKJ5JoIHGsF>D@<'8.3-' 8 G_qjJWwx\0A1;Pyw75ކN=ͱzģ32ſk £ols)Ɔpƅĕq5@%v@līǾ\M⼴X”ůɔӺ&mP fHsdJ8t#+aKA]csD}pSsּԚ|#ݸzAbabQ.RtSڋs0Ԭ5<Ҡ3jyRM𗁖z&OƛUt oEʳcs%gë/=sѕ@hܾޤ܄ؤԩК̛T#\˽jɺ#9ԝ:ٓ۲&W_ fWU "'$%& ()*******!+G+ +\*=)'-&$:#"1!|   !S#$&(x)*+,-X..B/l/m///0<2345Y66f66554M43W321 100000001;34689999::;=i?@A\Am@?=(<:98w76*6-6679v;1=>?@ACEFIK"NOTQRjT@V3X5Zm\^aidfhkjlnXprtvvCwwxYxOxwKwvugutHtns[r`qp poooo8onml0jgeca`g^\Z YfWU"TVRoPN$MLK;KJsJI]HFDB@>^<:86667a9:E<===="=<< ===<:738/*&! TmL$}VUa<+3 ilNOA_M8# [  . )   4 3  ? =~ l  &3HU N V hn=;{Xo Z " OT$)[۸Yض>rz&߼ҷDZ,g# П+ElZunb򎙏Aȑx`;U(ȫa񭪯ڴͷ;߿+͝H|ܕެd#;,. !h"#$k%%9&/&%%#k" PG_LkS-  z : ]2 i#oC !!&!yh d Rcro R,bIg?g7 g '/LOud `8Њ0rVղ;2;׳ija+-K½ƕE݇'X33q`P V  eR"&+R17P'NKmIFTC?"<85:3v1~0W001'221q/>-*'!$ ] $ ^y {y 8 a 7 i } N (1j8n+ <PB p { ` >|v_MZD-`0n>  ?c!#e% '(V*b,.1o4=79'<s+1?Zڣu뫖߮E>wz,2%Ɩ q<|SrryScK>U1 8&"4%'*m+++) (4&1$!CZrdX3>r *   N ^NV}7:hΓ*"ȫƽĴ"ݻOX=7αs%2LcdN ĊdȉT)IFZˎˋF0cШbf׸q׋ՅEѼҌ\ٙےY# =?3q/4-e: SFTJ p gm M e c a']*eQ!8"j#$ &'),/ 36:>BFIKLMM}MMVLCKIH(GF4EDCBA=@>=;:98g8!8%8E8J87m766$78%9M:;=?UACaEFGH-JKL?MLKJI)IUH{GFEdEDZDCmBMAF@_?v>=?<:862'/3+-'4#3 t ] _xF%|a9D_e>Yi5cw:hyA  ]!#@$$$w$$####"! 6 nF # $KV]l^C@BqDEFGGG?GvFbEDBA?0?B??e@@,@$?=<;p;;::989 988A87H766Y54f44S5W6l7l8e9p:;=>K@BCEGIK%NPjSUWXkYY;ZVZZ}YXsWRVUSQsOLIhFB?c;841w.*&"d!~ jo1u7E78`UXynzl2k,RT'-XkBZ}S5E;!Gt ! c < I i\wNjJMajF o   u V!z"#.%&(*-0447:T>AjEILOR?UnW]Y%[\]^B__W^\ZXURPPMZKHRFC@=p;M97643F1!/,B*'%#!t lO(*<z*5 Z9XKLL2$A Z| Z?I4uK?ߐmjdaxXZ:l߬HĞ=[Ѥ7 NFݺ3Ka<4Zhɸ]'yh󢵣EY𥂦ڦ̦fԥJᤅ:壳ޣIݤѥ0#vpͶu$GĤ˙1պٹ+9< ] #a|2""|$& )*z,Y---,;,<+*(b'%$"+6e cK2OxBD_O[ H>x j c<o"z%'*,-m..E.q-4,*l(&#{!o6<p-AO !4  { ?2+CS 8 oj!^j "$&(Z*+i-+/0_23456t7288 9Z999?:f::<;<<==> >>>>;??i@_@yBDFHJLdNOPP%PNM.L KnJIUIxHIGE D&B'@">4<:C9\876r5e30-X+M)'X&$H#!QagD!g2* E }  ;AUSTޅ٥ϧFĠͼP젔=Y}ؖ_93XO?ډĈ P'܆ʆ#@Qgˇw"84/>|ߘʜ5ɣ&=ʲqΒӥD׳Arܮ7&i24}>T ]Qr)Khnip#~%J !!"#6$V$$#"E"! 2 d dE- D!"H$%s&&;''D(;)q*+~-&/02D3K4S567V9:;<=>?@BC;E2G%IJvLMNO PONM]LKJI-H&GFDCRB@&?{=<:987E76553^2J0-*Q'#Z  l6s.$X 9zJ !"#$^%%=%y$}#i"n!u OF!"$g%&`(.*A,.1369=AE1J8NQTVXZ[\ ]\[ ZWTQtNKG#EB{@><::9764&433333Z3D3`334W555 54281/-+c*E)(+(''k'*'&r&%$#p" #]8RR +bR{a/~9e=Tg@{3 9g)Gc[PjlPQ1N=25g%+_ףMnUG=f#"]%hy8ݝMg7xƫWŭBĖßRyNfLm۱ױűȱqIϿ;oћ=%:%oTP j E{ EP'eMDtYr8bh3m:Nh"kG6jn  w nZ%@ "$?&'(S*+-0d257:=@C|FHJLMNOxOO;PPPPONvMK5JHHDFaDBAAA(BBSCCDEFYHIJ{K LLMWMMLPJ(HECAR?= ;A976853`21/f.,+)&$" |_o|S2b0 A I B kk dWDr"='GPt0۔>?e?? @7@?N? >Q `&ϣ{ӣԁ +q}1aȺZ (—}]S'3: ש*ޡ=aCVk8 t}~8!V#%')*+-,q,{,_,++***))(('*&p%$$$_$($$$[$$f% &&'()*j+=,+-/.A/,001"223457:9y:@;;;;j;:948d6f4m2k0i.f,b*m(a&G$" R./1xm 8l Dkm#H DH8 2y~{YrdtZsO=B",> [ "1}1A>7  QA7x GF"O<b $"NN(CfDlv;߉$ߣܜڐ$fҐѠМϐΨh̠!ʤɝTDāšV 鯀[Ms̠w>R2Hhrm[YkP׭K62bĪhԸfܢ 3xw},m8 l3F: "%(+.01.3d4567U88888X87777o8B9#::;<=>?!@H@8@@0@@OA7B%CCDEnEEEEEKEDC)CBAA A@@?7?>>E>=r=>h??#@@?>=W<:97_6420.m,)D'U$$!fTs 6 c CW Q!h`Ww!ޣcۑ1Eڅ RtsM=ڋ?oX "9EwЄрҧӱ}Y֡ ր/ҟyѐ҉ӚԞIFڷtUOWv9]X Qwn&`06- "#h%3')*,$./14N6!89:n;P<7= >>%?p????????-?>#>i=}>??@&AoAAAnA@?>2<:97531.:,P)+&"5nM fN$+[Pnܥ׻ԫ'ϬD#Sɬ.ǜkPLDžvn(Z[۪o_WsE#U p 7 ^s O \ ,Lz; Zh7 5EӵL6҆Ax Zܲ$D6VPx.:T 0 5D_Si5_ "O=xNvVl`:3d^O:m&3/{?.T j9K #&<*-%147;=@CFIyLSO=RbUX\`dhk nBpRrCtvuwxys=tuu[vvv*vutUsqomkNifXc_6\cXoTPLhI>FC?<96\4Y2f0{.,+))x(''f&%7%$##"!-,\: 3 YME(jd -9<"qZiٖlk|ՑԮ*wϥϾЫFѮ҆i0ֶ֣sֵh,/WՑ _X#׍7ֳ֝։ւ}m~6dŽTƞ^ȿLʣ}{͜Ўy!gТC +#l͓p͊ͫ'Σ?wDѲҾԫo"=|۱#Xw^!/[q}zm>9wz V kJ%#vAqfMphgGF22 %\C B~Rh[3 a  +zxP+.KyI  As\>.= bP   (Fj52.5x.t@j.z-mJ}1k^WxSPFD-7dQTjb>u O[R޾ޱ_߭߯kBކݢem WΌͺT-ˎ̖A&΂0!"I׼٫ ez ] 5x|U# ( H"Z$6&()+-/1357{9;<=>?h@@ AOAA>BBwCCcDDDDDcD)DCC]C CB|B8BAA@[@?>b=<:9n75310-.2,*'N%#K!{;"oL~m8 pyT7B'.XQ\r' *< Tpἃƾ~[Å͕s]> EݔߦTA\ztB=V\-{)&LIH^Vc  9P [%*-0u5n:2?CHMRWZ]`scegh}iibiAiihhhhhhhh;hgygEggffeffe:edcc,b9a&`_]\l[YWUSRP_ON NMMMMM(ML1LKhK*KJJcJI IHGEDvCA\@><:9275"43^2151d0I/-5,f*(&$C#{!|8B  a?y< kd|x}CD?- 9 v O D >\F8 )T=a" #:)r . % +A\iV2<>d^|#ߐKڙfQI`zԧUќ(ϑ1zwMIV_ds˫̔d~hE0̒',ȑE?ڹD)OôI`9hȀ"fћ׼~ e:߇t1޴fbܥܳ.QtݪyHߜ 6ZX/>uiF]Hu L Q`}<j !"#{$b%M&F'V(j)*+,-.-0v1234!555M66Z778,99:;<=>?@*BC#EFLHIRKLUNO#Q.RR_SSOTTVUUaUTOTSRQP;OLMJmHE\B>;62.+.'7#8@<d Jd;9Msy}3s  n]>) &Wx7Mo $1*5> gi/ E 2(pA= 7ܴqtդLн<˺xȂɐ'ʬ/˧A +΀SҘI ߻Hb]f 3@U, !" $%%|&&~&;&%%%y$#"" !5MB S(cv 2h #cZ{W=I$8Dښ֍;·̼_ѻUݴQ؝pLvzuPRa5 嚶VNfӲ78%ɾnGÍĻƷVȦȵȒE4ǚ. ,oƢƵƞƚg]ȋXϜyD.5 ۲۠?ڡOf٦װ֒T# 3zm;͏e: 64ԝZӞwӇz9cܗ^G?BWzN?S =8W#MG'?qo_u<[@B* qf !"$[%&1()(,.%13O6+9q<@@hDHLP.TWk[-_behjlpnpeq;rrLrqq2qpfpo8onannmmmmlllSkJj!i h gfdc9b`_]ZWT.QMJ@GrC>?:w6s2.+q)L'C%P#P!d ?z9{#c U xx<4W{Q|1ߒ݅~ގGrco0FD97 $G nw|!#%'7*I,.b/r0e123d578:f;<=?h@A CMDBEFFGFHHOIIIIIIfI/IIHHqHGGjFEEREDDGC}BA_A@#@5?><;:987g6B594Q3Z2Q10.-,+*)((q'&&=%?$c#"]""!!p!`!!!"z"!#-$%"'()*+Y,-g-5-`,*)&$!Rq<d* - g8W, q '  1 R a D y `r)"wc:7 nB"q$&(*<,-./012f3&44J556877R8q8-87$765432160..-+*9***-*2*D**++B,,,,,,,++)('&?%#." h0FX`w P mG#1=K0ߏ(xnʲV•Bӹӳ'q[ǧa\ˢ(AʝL›?v+rÔ.!^뎦t/[clVŠR1Ljlhjjň0=4<[gjh̏֐葯3o: ˜]Ι9К٠dŦJĩ(Is xA~Q:沼}RC0Gâ ~o# ۿDX5 zW/  c&] "#r%'('*\+9,--./0S235)687;8?91:;;;<<,<<;];:(:99s876 6K5m4~3u2g1k0//~.-N-,+++*)^)(((()u))2** ++>,,-a.P/R0k1235E6789:i;;;;;|:99J8N7V65 545U5566077u889C9J9B98Z8j7>6532|1@0.?-+*(' 'R&%$##x##$%&#(x)*+,-L/02o346785: ;|;;; <*< <;:%:N9Q8?7654r32V210]/.,g+)'q%" 9R [ C@0ۓد֏ն=6{Dխַ*  ߪa9lt>)߷e ۗז*ɤ?տp-EQ@HCڟGơH^7̱ȷH߼GLà<XA͕҃Բ֬ثVB|- FN;Tx sAoXVBOH |"$X'),".013579W:;<=>>>>t>>J?@@EAAABDEGHIJKM}OWQRKTUWYy[)]z^_`abcdefgh i0iHiDi*ihg gJfee.f-fe+ejdccdcTc/cbkbaNa```a`_ _]b\<[Z`ZXZZHYWvVU1TSSUR-QONMLKJHG5E\CjAH?<:}7"53:1j/-+{*E)(&i%#i"!dl! q  keo-,W?bU"@W2/Sܖ۠jMѕ{3ӎS?cתڒݮH') {pG_9toFD3rw\a h0U:75g,TO>T`/9> j?Q"<{T zgt7u"D5I(6k d* "GkS7?0II|4zm1Z Q&Y^VDT[fG iQ(KBp5R|+!5sqv޿R۵-ڶH؀!ظ`,aj:RՄ ՝ҾuϪY/9p3ǁ\TPhǤ ȡ0L q. *Mv߇W1'k\$ge#՗ӔѴ Lg7UiD%H_#GÆò]^6Ƶc;3p4578A:<={?ABCEFGGHHIHuH'HGkGFEDCBA@?>=<;::9*98^877c7778q889:;<=>?v@[A8BB&CCBAAA@@e?>o=1??(@?>=:-8520 -)?&"7XVR] 9 ;=#J%1R8lk,M >#GMeš«3Ϸ׶ZY˶Զ0ȴӳ>{ǩS򨺨ܨS6`N=ƥ3ͤЛӏց{ܓG8q4"(YA_9Ex'T@HoUWuK+} .cHs! ` a f Az8m\,. L!`"Z#*$$%{&-'''6'&A& &&&&&9&M&&&|'7())q** +8+`+++o+0+****1++{,t-./W011N233v44U55566554&4 31/-+)'M%# U~G T^pYn +I%E~!"E%')+|-+/024I67F9:G<=H?@ABCEFGHHIJK/LL2MMNwNNNNNNNNNMNMMM@MLLDKJIlIH6HYGbFqEDC~BKA?>=<;r:A976K5 421h0/-Q,4+1*&)'\&$+#! IY!umtv u V A . >OP)q E*IL4Nd-I @T>޶ްީޏQ ݤݯ $ݐEܦZ''/4۔oL8ړLڭ m>҃ФY} ϻΌ[ Ρ@  h˶˲˫˜n3Lˋ˜ˇY7>ˀ˖/͚kLϝϿϩυrl{ϒϰϜS?ϘBџOҰ2GԠJE3}&:{4 0SF/JgMm G bxIJ ! "C"/"!p! F &CO !!!a"##*$X$b$`$g$a$,$##o"!s!! 0B !#s$%&~'C(+)+*<+,,,,Q+K*)'%#!aPO6} # 7N|uW P'x P9,i@11S; XWpO"z `!G"W#$&'()<*Q**)%)((('Z'&E&%$#-#c"! D|F#(`;/0 Gq4.t'7c֔3Ȑ^qY×,ºg;ξҺmYڪ^u)`ȣ;ǡԡZ.|MgqMUAێlي"k fٓF؜@*GǭD㮚^ӱҵI© {(j@5 B75g"'A+"/2+6O9!<}>~@#BCD?FSG2HH/IgIIII$J7JUJJJeKK'L$L LL?LL0MMMMNAN[N`NGN%NNNaNNOP'RsSTUAWXKZ\]_acee6<96|42/-[++)'=%##"Y"!!!""?###!$$i%-&&5''@(()_** +i++h,,,--<-p---W- -,,,,,,],,+ +S*=) (&c%#G"q mnyUg r ; Mfo@'~5T?-vcE6(A)b<<1.g r&]KVlt#o  / > A @ A A M A < (   V7c =5NcQ.pk:Uc v~I$SOkBIq[g[%VN^UW܀2sٔؠzRЀϜ͔&̨1tr'ǻ6zƕŵL„B,42]o{Ý!rM;弆Ef[Ī̟ŸA֠բ6FȨ7YܳƓcmŇLSȵʂ QϊyՋ z(  0*Z6`6)?'Ma? Ob    4ttDJ;d\  19gBW QT;|mIPvM _C&p`oKi$%1KN|We@fn`̺̄ͬaѺw(L`QQ2ޕP߯" \e])m:ߛ6߽[Xޓ`nDS/QC < ^!5""g##h$ %%A&&&&_%$# #f"!t %4fv/E1[Jo dzgUDLMI![xdIw*Ps#0li;=&9wF O )  ) qv#u "# %;&A'=(F)5**++3,,,(-u--8../01~2346]8U:g<|>@BEZGIKMPaRTTWYC\^aceg|ikl/nopqgrrZsssss;tt-uuv{vv;wwwxxGxgxx~xkxVxOxSxJxxw8wv1vuu[ts!svrqop omlkjuig\fdZcaa`^]j[YIXVTRP{NLJHFDB@><:8 75 31'/E-A+4)'$#6!| %GF] _3}"e"gC %rۏӘh.ͨ̒oJ9ܵ(մL ճ` ٲIJ~|rwmzDzL߳W%ߵE϶y((ExԹV򺏻)üj!߾CebO¼׻=&ݾ~¤ÝTſ2ckGŋ@ }ĖRRhvfR`ÕÒL‘~8齊MƼl,2սWCRÄ)fӖjJ ߭(~(1 y>@,)W-"$ 'Q)+-0^2q4R67s9:Z<=?@@iAAA1A@@>?M>1=;9:_8M641a/-*(&$" ;d3Das } Q 2tU@Kq%7j/tAty*xkUzmޛG{-0э";˴cȎ;=\LJ\AXʇ˖̠ͬ.>BJXotzي&ݦ"$~pJ ~~8 B i   [" $%&'(*Y+,.4/A0 11v2+33G4z4x4@44333>3210/.-[,+)(V&y$"{ S}= . h,b49$bT|ad5VM, e]|U%w a';x 2#%(S+.v024r6F8:;<=P>>f>>=@D"G JLIOQS(V^XZ\._ac5fhjmSooqIstvvw x]xxxyy6y8yT畇>Д&eԒ~pY"FɐĐOߑݑ'?Bߔp󕭖s"mvi| aV⬙]ųSppVL:v9̷>ϛ\ԏ3[܅.%R{@sus~fL.319(H_TpG*.T(m" \ xhuf#&8*-159@=m@PCFHK=NPRTiUVWXBYYY ZZ'ZZYYXWUTS RPOMhLKIHlFECBA@?g>.=<:99865l4W3^2t1{0b/-.-+*)0(&u%M$4#%" F~Xe `  M"%x'-IU]= `B17 a[ @=[zv TCyۍi̘ȩ"ǹް=ګѩnwvǟ:'՝Q`fӣӦp'Ϯ^ϯU|0z(Ec9hA/$/jüҾ p/ȍBϢԏ+||`?^^AHzw ( lb(T+% !!_""""##/#,### #""y"6"!T! q:AO ~ b   Y iQgj H "d$ &'})0+, ../0011?2^2?211&1m0f/..,+o*B)'[&$" q6R | g53uZH?),oߪX AӜ ˓bPȀ"LJ$GkͥLљ֮ץٌؑ~zjQ-ohb3z!(r}=/ 4w7/a  U$Z!B%6)2-?1^59=AFEHLcPTWWUZ]_"bd:gRij\lmnBpjqvr|stuhv*ww-xxx y0yyyxxy4y=yEy>yCyByBy>y9y==4==`=>>?_@@xA)BBCDExF^G'HHI3JJKLMNOPfRS]UVXUYZ[\^__`oaaxbb c'ccbbbIba>ax`_g^'][RZXKWUTeRPNLJsH'FCA/?|t"9&cThf}%o!ij0-   P h "8EN X==S j!j"T#!$$%&D''+(((l))^*********w*@**)F)(*(''H&M% $"!  OQpb2W4*N x 'J+- 0 C 9p3f|Qh<r](n&!;khW 5 s F  ` m < (@Hg/5InCC9 r7F3wW& Io^ݜPܜ8ۍ=^ڟٽجצ֖ՓsFϮΰFˮ>ɵGʱ˓̏ͧ9є֦V$گt9ݹb߃h:=BX4i3211^0/.-,+*)5(&T%#1"p ,eyR D  8&.&6=7$| ~Pi`F! %le͓KE{Ⱦȳ>Ƀf' ̛1ΈwukB +*{=7M>]? @@ AXAA$BBC:DD=EEbF+GHHCII'JJnKLLLLLLaLK7KNJFI;H7G1F"ECBxA2@?=<9;9h87543210//.+.---y---./+12456a89j;<>@ACYDuEFGH JKKmLMMNwNNNNNNN=NMLDL~KJIHuGsFaE2DB(A}?=T<:9;7C5N3\1a/U-+(&J$!]I2 W z=e0r%,ZrE1:=* '`Ƨ,Q iGڮ^ 6iI`ǣG5~E󝇝 f/ԛɛÛΛڛ:ۜ10ğ$z䠉o_Ff;󨽩`;(*mƴܵ_ҹF8žeƝ{3̀-Ԋ ٴک۾ܶݓO1Ef3hkd>v3d7F a(a% h!"]##P$$$%$$$m#"! omf%  U =WP>'kd_}U;6exH'  0 ) !*#$5&'),b.02468:<>@BDF>G5H2I@J9KK=LAL(LLKmKJPIGFSEDBAU?=;!:r8643R1/8.,+e*O)<('%$$M#"!  UGE< 6 #-cNEVt3;S?!sOt7(#- 1XҧB_pͭ!GpɤWǼ5ƽqNEC<-$$$08\ŁűſŸŃDągüo/Pzw4涌&Dtq>ҢY^Ֆ{"d4J6ފUȎOē͕P 9說KܱR&}sпm$"1zQ`oYn Xv1!}%(%,/14N7:ccccXcb)ba`E`M_^\4[YX;WUSQO9NvLJHFEOCnA[?*=:8K641>/,*(&6%#!3&/aML$A hMA;]n'-`|(q.8P $ Gy!{EXa?!AΉȌR2&%@9TfͲvc۲2_ش V|ikݹjỦT\Ǿhҿ.f"Zuýĵ@ `M$4كG3!8DrHK `wtuu $(,0{47';x>AEIrLxOJRUWZ6]_ace|gcikmlmnotpUq(rrs6tt@uuGvv-w~wwxSxxxy-y&y$y#y,y/y3y1y-y3y1y4y3y3y4y3y5y4y7y.y.y*y0y-yyyxxxxLxwewvutsrqypNo nl8kigecan_Q]2[XVsTROhMKHfFPDnB@>642Z1/N- +('{%($"!L h:%6q c ? B ? J3%L oQ8{>jQ0 ]ܣۙڙٌ^6 >gӆlBJ͌-jɯJnj ōÃÕ"®wÿ<Ծ^ѽM*׼e<" /\ڼ#]Ͻ#n׾MF5­eôDĪ3Ő-ǥzɬTJ˹C̯]jqѻTbӓ:֫f؃Eڽw<ޏQV"d!}V H1 qOw[,-#I }1oI/gݩ ދߔY2dg+_l7?j`-5))߽݃ZLMSJ>3;aəlZ;;dƻAкa¹޹'Uѻ_ U/œÚĩ+ȌX̛0їԃվ 5Cp߰3E:>l)U4]xFI s U AdfpPS069 a 0  X % N 6 D=Zd B> HpI9Ab}U5 =kvXSg !!"#$A%%!&K&`&j&r&c&@&%%a%%$$8$##x#E#!###6###v$%%&')F*+,W./H12345678[8p8V89877+765T544<3_210/.-f,*y)(&d%$" !z3 K 4Y,R^ofp0ѭKjʶȻƇ1ųōvjʼn JmƃƏƧƢ^ųűſ9Ɓ@ǧ~ȔI0@s&Л!6ۅHkE2 PeJ F=oh!!"c#$$$%"%@%F%7%%$$$$$0$#4#")"r! .Gp$H/( !"#$%&'()*+,-|.3//100000000t0-0/"/.-u-,`,+h+'+++%++1,,-W.{/0z1235|67I9:V<=|?@A+CmDE6G~HIJKLMNOPVQQnRSSTU_VVmVtVVW9XXXsX[XXXY YXXYXXWWWW*W!WWVU ULTS_SRZRuQPOSONNMLKJIHHEGrFEDCBA@?>=<|;L: 97654T3"20/.X-,*)`($'%$.#!? =9Q?= \ +'G#cGQD#q{-:gؙc0Ҵ}F+6:7!0NXOOYп@~ּZSܷ>)m`Nծ'PɫP㪌2ʩZ~Z3ͧ17ƥ5Ƥc* գCɢǢ)$!&2?f1VwQb§+۩̮-bp.*)!~r'ѿFe"׽"}Mҿ V`Ct*ó/ćľCe ǖ&ȶj+˵̶Ynٓ ܟD]z"2@#E&9 b r,O-!#`%''(s* ,-:/0 2R345+7h89:;=>>?@aA1BBC6DD#EEE1FFF GEGGG7GGFFFkF]FhFFFFFFGGHCH[HVHoHHHH(HG GF0FEETDCBBfA@?>2>a=<;;w:9876t5v43210/.*.[-\,/+)j(&p%#W" Iz[3$ - ] " l*+xI, Q f Z ] p ]2)1HU6>X2pD!#%.(^*, /147:Y<{>@3CEiHJyMPRUQWY[^g`bd`_+_^'^U]A\ZYXWVUT SUQO.NLQKIH;FNDWBk@><^;975T31.,*}(M&$!Aw3l \ly6XMW'~<.٤؉׏֢CsѣY?ͻB]ʜIȼWa#1bǓǭǴDz%hȤ?nɻʔG|˴̌*]=Ϫ3ЅGӿPԲ {ו7ټDڤeݧ.޾wM/t-NRpuA%R! -Ll;$ZqqtAf}YhYKl3 .X e1KbL21q~t3&bhݿ*ܟ=ڤ[ ڰa^ٝ,ڄ1z۶ ܢNp/ߗt9 -;;12-+ ;z#ޠV(:ދfߔߑrov߆bo Hg\@)6]֍մ#ӛ:ѤќѨ:҂҇ԇ(՞@֘~4Zl^bx/O Tbsow|d AcqYL;V y*c(@c(JfaGg;-aߨߌsL#dߙ1_PuXQG[XsKwOmh}#F0X  O x ~S[-gyL FEK- !"g#'$$Z%%&''' (((k)))/*z**.+s+++++M,,,P,+a+*@*)('&%#-" V`t<Q R / 4k6h$pZ i G m F ?#%')+ .}02468Q:1<>?A-CD;FGUIJCLMOPQ9SfTwUxVWXYZl[[:\Z\U\I\,\\[f[ZYLXVUYTSQOMfKWIGE]DBHA?\><;":87654322i10(0//}..p-,,U+* *q)(''3&:%U$Z#s"o!i L}lk# { =% :P@X 'j5LV@9U)'_qNH<( Oq z 2[  +#%')+-0(2457$9:I<=>5@`ABCE!FGGHlI JJJK[KKKjKJLJ|IHGFEDCB|@>=`;9w86W5320/t.5-+m*3)N('&%$Y#D"d! j#r_XCq h & 7gh@=.Tk6] RJ;~Dߒ%ߦ3ޮ!y_ڢJD؈[:חסH ըcպ}N}7Ң` Ѡ}U ЀdZYH/ ύ:΋-ʹ͒͢sO9,̏1˨Tʽʿʶj Emʂ|tdgdmgJɡɸLvqC+Eʌ0>tYf MG͕ndkt{͇͖ͯDΛ_#БJѤbҶ zҔѕЕFk͇̠.ʝMȆi/!Ƃnǃ"ɢʍ˦Fϫҋ֏RwA.>pYZlJn5v"nP,"x'?P(;4fio @  d@$ !"9$%C'(*P+,-/0O234 67(9:;<=2?n@AB1CCKDDaEEEGEDCBAC@>^=;97H530.8,)&#    &Mu=Z+\ ^\"/ޱf߯h.'@S!l|Er2nupi-vKhnA4Gd \Zߜj1ޑc'݅*ܖS8ؓHԛeи;0NȔ$bGϷ4%ע!mٙvJA.ݮdXWc)?szBhXD&03 g^ Vxg j $b ZXO!"$&(*,.=0!2468:;=?AgC0EFHLJKM?NIOAAA6ATATA7A@@@@O@?9?@>&=;:r98a6420.,0*V'`$!  X KZ:zѹ̺ɍM­mPLdiPavݵY 񹹺 @\Ìţ7ɜʼ |39݅Z;r? +q!&+05%:y>BFJnN.RU,Y\\S_(bdIgikwm$opq%sttYuuuuuusuut ts1srrrPquponHnm6ml=xIIH:HG3GF5FE7ED DVCBA@??+>U=<;:;:98/87766=65Q54Q4333_332f2)22 2 211J100l00/h/>/-/!/..g.2.!.$...---c---,,9,++*('E&%#*"v 'F 9 } H o }El7\?P]OIK~+-UN߉ݯ7֟-ЩϗΚ6˕Dʡʗ<ˡ6̅~Xθ"϶@з=щҎ&ӱQرC߫hA? 57 N l~"7%S(q+.147:=@ACE5HJ M`OjQ*STU.6OF&W5 ?_ G>:k/Z_I7~ 2  1 @ % R T B K gE\6!"$[&'()Y**+,,j-----~--r,+*)('&%$L#1";!O [uJj&2Sc2!R^"_ 9 %U|6IsdOcb%.(!yUOCvKgr/4ܬh ח֛"Ԥ4ҏh҈P=ԯ=ֿׯػR݃ޛ߷tI.9ID$f}8:BU/c kZߋm۾GAהVxԡҫҖҫҭҦұvIPy֙׽O TL@ZI-f w e Au "$&(y)+,.012B3*465x67C9p:;<=>u?7@@ABmC0DD%EE FFG^GuGyGsGUGGvFE ED:DCCBB[A@?>=|<;9|8=7643o2=10.-,P+ *(i's&%%E%$:$#|##G$%%&H'(()*K,--/|012h45}789;.0@NA8BBC1DD8EE7FFFGFFnFFE5EDDcD2DCCdC$C CBBBC\CCCDBDD?EEaFFFDGGHmHHH4IIIJ*JMJ}JJJhJIIhINI InHGFEUEDDCBmAA@@*?!>4=<%<;:9876K65K54&4c321z1W1E1 10/.7.}-,,7+g*)(' &<$F"N D}-/B3 9 40^KbWw8CD7FfԡΧVȲr7dVBݧͥ"e^Ƙ0ʗٗ)yȘ(CȚ: 0;;GJ٩@i®,ı_D~VzcŔj1ч;؞,Q//'RPHR  ' O ^ xF RjS- lbo:gDb @c:r @ 5!k$=')+-1/ 1356#8W9}:;< > ??@'AA$BB$CCCwC"CBBBVBA(An@?Y?>=<;M:976{5F4%310.-N+)=(&%"#!(j TR:%;}  7 12eB?u;)daD[vjA``ߊޏ݋܉ۈj6Sձ67$8q:ٯ9<ѨƧæ;ܤƤ>+:diB ¸p:񽦿*lnƙȹʔ0 u3ߩ)n!0;e@   W &l)XE.II@Ij~Z?:I57zj Z , 8vh [8ݘo%7i5ҝ}tҎ҈Z>1K׼q-y5fJqxp6M"0N` t ` Q.^Z95$Inf- ? k? =k^| N1c} \!*@bd~DߖS"޸N`܋-[ڕgػּՕws|{pZGJZ˔nȌZA;FC=7]ȼPɑ˶e<ΙcJVwӖoىݰeIYv,MS/ PyAe  ]E"{D<dN  0 ox`7vMQJg23gd& < 8 Y 750l; `"F$L&P(>*,-/H1'346R8:;=a?AB DEBGHJLMOPlR&TUyWYZf\^_5abIdeVghijkwlXm/nooXpp;qqqqrBrrrFsss@tttQuuu.vvwfwwwnw"wvrvuVutsrrpo1nlknig fVdb`^\ZsXtVTR}P.NKI'HFDBi@S><::9I7753+1G/[-,+(x&F$9"E 6tL\yE ^ rOO$Q17V3•ĖƐLʸ9ΨDҚDؾ3޾4,qK K ?T!%%(w,V0i4a8 =<':85~3A1/-+ )&$u"J _\ w d4or&9\Q" v*@ݠ!؂K BЏϪAθ͎0$F́J4ΑxСv@ҚRԑH5`ء۱o; ^x߲2o܃g ֺٙ_҆`5\ǘ:_ëqqáSIJ'Ųc6=M- mք'gثN#ו-կhՅԙS0@ӥ(ԭ/բJًW]܍ݵޝN+WgTC[X95DQ@Itw T0wG!#$$%&p'R()))**d++Q,,,,,^,+q+*j**))X(a'`&w%$#"! h$dxpfz" &  a   W -HJW>"d J yG|V~wa /\o’yZLOV~?A}C̡rБ-pٮ_?*fi`m5 $ KfQ3o@D|"/5iBp-Zޅ:ݸpܓFVܴH-bދޥߒ{5D 0bfvNBBx8~h3M: Y ,e7"'$%'(~*,,-m/012_36455679-:I;w<=$?@BwCDFfH)JKlMOPkRTUVXHYdZB[[3\\]]] ^]]]]%^=^)^^^5^S^A^^] ^M^^^_^^s^^] ]\g\,\[[.ZBYXXWW\VUTUTTTSSSSS T;TTT*UUU#V]VVVVbVVUU~TS9S@RQO NLK~IGFGDjB|@>cl?O@$AARBB8CC DBDFDFDRDqDzD4DCBA@@2?>̜(˨3nI,ȹȯȲȳȩȞȠȪȾ -VɔmPˋt̖"ίU% ӜԕՎ֎hBAޫ/߫k&vR #rM bt+'U&=N(Li}: - E-Kl} !"*##$$f%Y&=''f((( )s))*+++U+*****{*;**)#*a*****+_+++++ ,=,H,F,+,,+t+*7*))('2'b&%%$$]#l"p! *cf?ik imXWPezV.EܵۅNHrԍҨ̧TŶØ_¶~L87VM%Ƣ _+G\naATе繳wG87+ǝmzC ҞOٝ-݅ީ\+`:ePt3 [  i LoH U dX'|~* ,_d" VVuhUD=4+_@)S<Nmh} ;LO~ O  4 u"B!3 !P"`#\$u%&'!)<*W+,-/]01 34n6 8o9: <=?ACbEFeHJKMNOPMQRR SSSMTTT\T TSaSSR!RQXQ2QQPPbPPOOPqPQQRSTUVXY[k\]_q`bce/ffJggg1hyhhhihhQhgAgfffZfedcba`g_].\YZXVUIS\QjOkM]K0IFDB@>5<96k4-2)0$.+)X'C%[#!(1R 5 U N\ {x,U r}dߥݛׁٕۡlsѡlh,ř''ķĎň1̸ΡбԘ`ݠPD'. y4 uf "L#t$%&'()*+,-k..*//3001 2233744955#666667F7w7k76=6O5Y4^3-20.,*(v&#L!= Q N݈zןV4DŽÃQE|پt=9`;VWtb΋ ZWֵcؽؾظع؋!`׎֮Ѥд$ŽkijU9Zö?ā ([̝6нёӄmلܼݶ߳o,AP]8*>"V+'---2( ( C >  {e2DF2x }  % V x< #x%NaXZ#`SVXSRkگٔ ؗ$ִ֦֓։֏ֵ֤֧֣֛֜֝֨֬{laR֙&{ ӥ3Ґ7Ϝ pV˵m ˖C3K:ɐ`ɂfʾ8ˬtl͍Ο϶~(54dK*FXG W ;]hbWP^n`!##$&'j)F+*-.023k5B799-;=>@BDFHZJKMMN PQ>ST0VgWXYZz[i\D]]^^*_G_;_^^\[}ZcY;XVU SPNmL8JG}EBg@=!;i85"30-*'$!"{ o; uU] z7o_A>!zw߻׮d+~ ɻp)HxOϮ˫֨+̣Iɜ5“_(_͊mЊŋÌ׎/ʑ_/ %DJ aY+Y‘ÞOa4;%Iʑ˫*x̧̢̩̮̤̥̬̳̺̼̊̆̈̐9͢Έ!hσeUN;48QpؗS p{_k[('>mhqnY= "  , T v~lP9'snbefkw~ "s#$P&'(*U+,.4013;4\567I9:;<=>?@ABgC"DDEFmG&HHVIIJ]K:L%MNNzOPPcQ&RRSTAUUUU'VVWzWWW XXYYZ ZYYZwZZZZZZZZZJZY|YYXNXWWuWWVUT,TSfSSoRQPOONNMMLPLLKWK+K4KnKKKL%LNLLLGMMMHNNNNNONMMOMLLKkKJ`JIHHGFECBSA?p>>???@AAAoBBCHDEEXFFGNH"I JJK/LL^MNNOVPPyQQə V26'*pa"ԝ|e=KLŦ113cͯY߲Q@ºtVh¡,aCK*5$->|R 6Uu?"%(*P-/13579;|=>M@qABCDEFGH}I[J0KKL\MNNODOH<:86420.,Q+)'&$"? w'up|+sZ`tFmv]ty!"$W%&F().+N,R-m./1Z2U344555O6e6J66550544g321107/V.-,,G+q*)('&%!%m$#4#"!-!  1P [SJ&POCci^* | /dm$k},Rۊ`ׂՐӼЕ46tȗƲÝxh<󼨻׸"]͵/d,+[ٴ d赅-޷ֺ?꽱b13ɚ(:Ӎר2pVafh FfO\ H!!!!!!^!!  #Ti`TI5 ]  , t y /     K  ! v I 1&"+FxXxnX*H+ %!k!i!:! z : R{W# +dz % 3 w # l1rE*$Toizkc&lT"  ,<`Iy\UV2pmyf;AS!ufLon ` 6|uDz,X.Gm֥Q <Ç(v{vQǮʮͮVWΰǰʰ˰԰Ұx [񮏮.7@);쨩WRh< F]ƥVçx tRddp>1238ݽAhŤ1ɔrQ һփYoy-PK j x q@i i!^"d#$%&F'(()*+,-.0/1t23_5 78:d<,>@ACvE,GHJsLMBOJP?Q#RSS{TTTTT9TSySSRQ]QPONMLK,JHG`F9E+DCB@?K>=;:987u6Y5U4R3A20/F. -+*M)'%g$"!> 7Vs2  $7EO\z [~a$e*Q*JWkօ԰8sSŬănpտCkϻ.Ҹ-T}ôrֲ/6yQaŠ0Y%*РɣB.:hRL8G`vӕ֢٩ܲGxr9h BMcJ9W #$&](/*,./135p739:d<=?UA-CDFtHJK/MNPRYTVWYZ\^U`abcdf?gehGiicjjkAllmmmmmmmtml!l,k">=?=<>k?@@ABCEJFNG.HI%J]KLMN.OO<4;90865~31/-+*7(O&B$1"+ BNB  EeJ*pc@=m׎Ԭ ]z6翆{Z36pƦР5ϝo}ҔV钡v8 ֑Ñrmnt~xё[:ꓯ} =Ρ6 _ɯAJ㹑>"ˀ$Fp /RY@*+) v,6"0 "$%G'()++,-a.$//0m11B2u223344445?5w5555555@54c43321/.-,+A*`(D&6$:"W h}1bc\& ; 4 pL:y W@yH~@$ !"#%&'(()*w++[,,,,--,,E,,++*+**Y)('&%$#"^!oYo-Zw fS"0.Q4t95|F<< 1 X\-%8s u!a"K#S$n%&r'&(((()'))(('?'y&%$'$D#V"\!h moT9 s # eZ%`q~؛b9{·m?#@ V. Aݕ'9 :f4ϋi߉ىP233<06-779?;DFPXevӉ d͊A).̍a\yB.`٢@+̨]5QƼGťB̓6le/Y]2eB9aS( $ T vyDK@Bpe 0"S#b$%&'():**+,q-.n../E011"222L33%4x444 5%525=5N5c5555555,6s66#777b88999p::?;~;;;+<<<=@=I=X=d========>>==J===<<* K /f ` ^  Y  w8;K;.K,}q? +x q S!Y fO ! S W r|x' h* !"#${%^& ''P((((((}(Z()('}'&n&%%;$J#D"<:#9X7{5}3e1O/*-+(j&$!:D  F0jua+kz. EMrm߅YܴIH֨Wѽ2ζ>˺!ȀRT7nзMqfG§I \:ba5.AQBގ̎peXÔ bƙ ڠ󤹦mX&)SƄFϯ:|tqۣ/kff`KMna 0c o) | . 8 T\!r#w%')6,.02G45T7 9:O<=>?@AZBBCCqDD#EHETE\EzEEEEEEEEFFF%F]FF*GyGGGSG*G GFF`FFEJEDWDCBJA?z> =;:z864280-+)1'$"u~)R 35F~D[0Qp,"  !3G]ny "%'@)W+r-/1468:<>x@BDFH JKMNvP9RS'UIVSWaXYZ\P]L^__`abcdefgh j&k"lmmno]p qqfrr!sJsPsEssrVrq{qqpo!o:nmlylkjig fdceb`%_M]m[YWU{SQyOTMKHTFCyA>6<{96 41.,A)b&{#  i eHr )A=ҴσP»߶3oE+ܜST씆ɐYvˌ ^Êl'ȉɉ.O݋^(.1ǐܓv t=0m륀3檙5ϯl#˸h=8S{ēƍrXTasrpjؒU~\{YQu. ;(\|^!"[$%'R(^)3**B++++M+**(*)('&q%c$Z#U"9! SnM? ; Y j_j7B~3Wpq!g|EIo OfEC@$kjA޸cܥ ۧځzm4ٗzٔ'gچک,۾wdT+"rtpk'>Qn.4 K &kf ` !"Q##$ %% &&&I'h''''E(p(x(O((''}'k'e'_'B''&{&X&K&x&&&''%'0'C'['v'''(f((C)))) *S***1+4+,+&+;+S+T+)+**?**))$)(('&-&X%m$#"!  "0U4-Iw ; u n / = u [ u V J  dKN#b- JZC]bz { sn1!|,sy CWDϑ9Yɨag]-̴6ǬШEˤ|(ף̣^إ2Z֯uk_>ȯˮ΅0vF17cYop\M  G5U !"$%%&'()*M++,c-:.///00q1922~33'44556655 6X666$717G7o777m899M::;?;;d>G???X@@tAABCCRDDuE!FFGHI8JJKLMNOP\Q(RRSTUV|WXX Y~YYZZYY0YX$XoWVUWTRQOLJvHIFCsA>;852`/,(M%"m)o Q_NhuaH0*7_ΞNƥN»fbAa}Ĭmg}~Ϥaϣs¢x΢עݢߢG?¤8Хf ıɲε!Z ~6ZIƊI˕Ր,Nuv1t\{ g^V>m}{ "$$%5');+k-/|1I346789;=?ABBC!E@F.GGG)HHH9IFIIH@HGuGFfFEE[DCBA@?>=<i=;U:8642B1/-+i)n'%?$"!`(sU2 5T57SRtk>ZyS01ߴ,ܩ/אt~Ԣя8TˊʙɓȆǀvIžGн6#u4ȯ9]0_آkW|Wɜa 9{:l2jWR\J(vQ7ꭠ\)!,4մK8Km ˆ^Ǽbв b .9BqoY?!A n?xoP8uuP@@q,Rcp#_ [ 4^dM)(-$$ 3!!<"";##$J$$$$$$$$$$t$b$L$-$###""!h!!  >E`9x26H_2Dp  a g 1F X  * > V { ( 9 @ > B M P H 2  ~  z {&% (Zc -Fٔ:" 7Ŋp|߷`}ݵ8m𷴸%AObÂƮBɣVνПk֯lP<ޚ#OV=7uq 6 t`]Ti?J!#%!(*-035T8:q=D@CEKHJ=MOhRUW8Z\^`bdnf)hi,kqlmnOoo|ppq.q(qq#q#q qppdonnmlKlk!kj j&ig}fecban`_]=\ZFYWHVTS?QcOMK6JuHvFIDA?=Q;8o641/-+~(%x#B! |c mJ)+]dG0hDFE ݅$_׹9QѼhZȭIŶ ’E"ɺ׶>rt$²Jӱlܱ6Qw۲A_дLĵD+:踦U𺂻׼T:BÝ|łƁmE+ƕ/]NϬ|!ҥ˝[ŖBϓmяEŋ1Gшzpsszֈ4ωJ܋:)h{Zh󗋙`䠎Ha﫷bygz•Ċƕȱ7ϊ$֋۴P>PtZP)4Y n S  SM? \!2"#$%&''(X)!* ++,-.L/00n1223S44h556677H889u99B::;l;; <_<< =_=====i=W=]=d=^=L=,= =<:? @@ATB CCDElEEEF"FFFFEgED=DC"CBBKAw@?>=<;:`9865k4M3(21/.-p,S+;*6)H(r'&%$#|"! unZB#)ClsT# %G S [  6,:b*}H#mcN$mAx#Jw ynl'Jk%YކJۏmAl֡:ԋS1ӍN"Ҹң~LҴl=%!бvJϵuSVzϴ"EЭ)&LvѶѫѺ/pҸ҂,m"аfVϟf ̍>m˱yN<0+ Bʊ5˔ ̕FΐpqчұWB]|"~06 1 K Q &=[=j !:#$,&'c)*Z,z-v./0#2V3Q455}6377H88888888H877765$5[43210/j.9-,*)(;'%$#"! _[Fp ) O ` S 4,E^VWCL&'/+ 0WoN "$<|Bu>5@z1,{ , /9Z\<[:f^F-w~eN` z 6 l ifk07n7W [523 445 6R6W6z666666666[65s54d43w32221 1z0//.2.-D-,+*>*)((l'&W&%%o$#g##"P"!x!9! ! ! ! !$!X!!!""*"c"""""T"9"!" "!{!4! i I F{ ~    QF [CU \1Kߢܿ۞ځوؐ׫֨՚_ ҏ υ̊ɘ/ĉ=;߼\ ϷQ,䱼D(@Ǫ \ګs(׭jڮQΰӱ᲼y::tθŻq_[>ŵ0Ƨ3Uqǫ)@D,$#ǐP+"*ƞƲ@}Ǚǰ[ȟ1ʞ˚?qgΚXuѶ5]lxtҁҞ lӳ $6i.Ք5։Oןؗ١ڻۯ܍epߴ2Jy /|S4 D$r!#%8(*,.02468:'@ACHEFG4IqJKLNOOP-QQRR^S TTUTUUVVV/WpWWWX XWWWWWWWVVUAUTNTSSHSRR QPYON,NlMoLTK3JI HFEDCBBA?>=<;:9876543210/..I-,+**_)(S('@'&;&%>%$##""w! M3VF`Pfl# j "  o t  N OyJug !bW P[olݒ1\ئoNչYӄҵWφΪGYR7"7Yrӽ/T¶õش(DzeױB\o LݴV9Զ]1 ׻þ.ŁȾɁ'ͪдцӄՐvYHs?M4sj _ w83 ."u#$%&'(<))*g+:,--.A//0j122#333T44q55Q66667C7n7x7]7B7*7(7766C65y554443R32221G100G00//'0X0|0000 11*22L33f4 556w7a8a9r:;<>V?@-BCEFGfIJL;NOwQ ST$VWVYZL\]^_`abcdefffghuhhHhggTggkf{eXd.c b"a_^B][Z_YW%V$TR>P~NLJHFDCA>Q<97r5[3 1.+F)&$O"52i n zQmjg|`}Ӌ$ˠ iÿ{ظY'JNΡGD꫷g+ն_^wKűljɐ˥ͶϩьoYK#ܢys3cd[mv _  {l@  D !}"2##$\%%x&&/''(x(((()T))))))))x)/)((~(a("('/'&&%%$6$#D#""N! 1PX:kBt:t  b  CR,Z&G*_e:Om:ZbfR}q.+({KW Sau, aj&z:~5fAx" 1 V k y u e U H 6  d  |R4#`;8>")Vsonc<.Qn&da1HWo%9O]hB    aT.v_qRZO;e|[+'4YNMߤޅpkzڠO׊#ՏԽӂO'ҫg@KrҳQӞ)5OԆ$}8֗b/أ3{ۜߞIQqRCLFEQH@[|[%jvL$   1s ;&Y' : { G a2EVG+ziG x!(""#X$%%W&&''(()d**j++^,--A.. /g//A001;1n1112s223v33 4\4444L55666b77N889m:,;;s<==>?y@iA5BBCDnEIF GGHcI=JJK&LLTMNN(OsOOOePPlQQQRBRRSSSSSSS~S@SR5RQ QPPdO{NyMvLKJIzH&GE;DB"Ay?=<_:86^42/t-+(&f# 3i> \ K `0J"ߺQذּf:ν[Ȼǔƃŋľ P j,AwTU̮Hí~lg̭֭zJ4AQP0󬺬wЬ(Ha­qͮ'wЯ;' .մG#/hûrÿīAȜa.Ϛ>wf ݝ8_u,rqE g 9  , bz60d] !"#$%/'|()+<,O-?."//01_233n44a5556 6E6k666707-77777 7666]6G6?6A616#6666555555555{5i59544E4 4333q3(3222v2g2<221a110g0600//I/..6. .---G-,,R,H,Z,},r,P,,+++7,o,o,W,(,,",J,,, -;-Z-r----A...A////0q00000000o00/7/..f.---,+p+**)(5'C&7%#s" z&Dx"]P hSVR j ;Py/ڢp<(lpf{8,>nμ==縅+ϷuշǷH̶Rµ^ K𳚳Aⲃ*ñf f6寉> 𮥮V$D8 ɭݭ+v̮IS[LHerFŊ.ʣ̞/?-t7w$' {Kse= s  Y @ N m5MFCLQG/R M    ! ~ 5 r C : ] Q  F :   v h  %i{yN~ 4"#f%'(Y*,-$/023568X9:<~=>?@AsB5CCtDDPEEE1F=<<:9876/6D5H4&320/..-,+)(L'&$#"!CVN0/  W  E{U K[4 dQZ\\K*!@b(h)߭=4ݗcښi@ّR"  '^٨c7ۥ ܄ ݥP ߮g>.jZF^h@' vN( % f3y@y !"#$%'((&))*+u++^,,_-------c-0-,,~,8,++2+*w*)7)d('&&&%&%$#V#"@"!0! j / K/i"=!^2f.C l d GK5?d,n)Zxb2{!gi) i߀D߽Z݉*t+۰z;:y۽6^ܝ3TL@^ݖݸݛݘݞݖ݀dN-ܨ>hۡ0ڤ%٩:غ$j֬^7ӃҼiύs#ͯqL: ,DpTϗnZ҉aה2܏U67W,Si =MZM"$&(+- 0T2j4|68:< ?ABDFH@JKMzNOnQRSTbUVV.WWPXXYZKZkZZZ#[_[o[Z[D[8[D[M[1[ZZJZZYYY$YX?XWW#WVVUCUUTTLSZRQP^POO-N@MlLK(KJIH H6G[FEDCBB="=Y<;:!:9 98U87t77666666667P7j7r7t777 8X8888889:9X9e9z9999?:n::x:o:d:|::t:8:99g9A9987-7665432 201f0s/?.,m+*(d'%c$"Q!k.s.r pe~ \%&W޵{M!xα}mdBLMLU S`m`{R#Ε]ŗØʙy2 Achcr>ͩ60ɰAEǷ8ͻ{ֿ&r%ŀ.Ɉˍ4hFռ:TBޭ#0Co( 1'm#ZhoovS<]1C@sdv V P 1  ^ .I?A<4!@"#$&A'y()*+~,-./1r23<5q6}7w89:;=>>\??J@@TAAAAAAA}A8A@<@??>=K={<;:98875432,1/.V,*)^'%#!  j \iyw[@MdNTdxۘDz׸֯yL խO ӠXCNtӀj1ҥjLCeҚ@Ӹ"Ԅ3հP ׅ0oېmYJ9&(^n` _~X|B|O. T Q/A!"|$D&'$)i*+"-./A121452789:M<=?G@WAeBwCDEx<:887o531/-+x)O'%" EU. | >/#vN*4[ ^ݽ3y@/@y+Ҟ"ѴRϜdgςϢϳϰ'w,yP[Պֳ/۰T QT r%[P$E@ / @ !T+"yl   HsA!   +Vj4t |X !j!!w"###$=%%:&m&k&[&G&a&t&&T&%C%$#"@"b!| vgGklL< 0 OY[->LOLLSb!&6DVlB~habgjeQ@*S-B.AkEkDjJx,r.)W c>H# 8^pfWI@%fZMv`|LJgdgq w`O2: <Q8wf^G4 pE4V90(O*n 1=X^XP1yH5XWS*`ޫݕ ܍`ڰDب*֪w5?`[C:a֮'׀O؇ا@ِQڬF}`Rݝ,ަX{Le_ou\Otnfh !W}DY !""W##$%&' (d((z):**w++F,,.-- .q..-/y////@001P1v11111111111111111J10000c00/l/://.z.-e-,,,}+*))P(o'k&B%$"! 3'x1Q&% } $ (1W=gv&W 0v4(q1b3VzwH #LAT}nG*174RۯX{X=ȷD÷fR)/m@0(]W֌= 0Z_ΐԒŕט@ƛ5{֤N &DPo66@^Ȯl#ԍ $D"Q)jGW-: ^PP "$%9'()+k,-p/023/4r56*8[9R:1;< =>=?^@zABCDaE4FGGHwIHJKKL,MMLNNOPRQQeRRSSST1UUV7WWIXY ZZ[[\\t]u^a__(`m`ab.c ddd>eefAgg.hhhiikjj4kkk&lYlll[mm ninnoOowoxojovooo p pooDonn?nmmml l[kj jqihgfedcbb`_/^\[qYWYVTRP OZMK!JBHFCA~?=;9753s1M/-*N(%#"!3y- S=Xu)p\ݥ.ژאD ct̥PƇOK*&#޷!'Gȯ%SĬm0Sת]ݩ٩Ω^۪0qūS ͭjv:5;γvDRݹֺƻ#AQCB3( @}μ/]׋ؽ>yݞtOz{,Fli?U[D ;!"$&(*--g/1 4R68|:T<>?ACEGaHIJ4LaM\N6OOPQRLSS TETTTMUUUVVUUgUhU{UfUUTATTSSR RQOPOO@N)MKJJ(IHFfEDCA@"?=<:986I53205/-,|*(' &s$" 3?OD;1>\ w3Tl|K"{=@ܵۄBּ0ԓ@ubΕ>x$̸̷̰Gͮ:$qϮ(Ї3Ҳӑ3ՆT٦yCުk6 Gk @:ZpvcD Yr~rBz߫/PԜlұЂϤ M͜2#=Q/Hj̐DAΒ5jgѹ&Ҿӳԃ֨J,;[\/ܻݰb)A}9Bju"n {i N^+",Rk(}Ds "  - E g * D K a n z p m  y d h x h Z E @ 4 ~ Y g { ~ T "  < { n  ` B ? : 2 * $  m_vGo @6~c6gpg]M<(  =]!z!L)~dL+ xM)}n9%M'2"#/?Uk} ~ %JNK4Phe_ P c  *  6geFVjhW\iOV) ' T V  4Ay?"mFd+agPFIOV]x2mqatF+0:nN X >  23|P}UM]Wk^o4VJ7/5@4 k t9};f Eu7!# ) 5n.3TK|yQ !"#$%K& ''()*Y++F,,-.n/0|01123G44V556<77+8|88 9J99999:999i9j9q9`99887n7=77655h43e32z21"1l0/(/.-(-p,+$+*))^(''t&%$##x""!!d <XZTy& Av! $V)E 5 o  { X 4h @;fxjY!S@o1)>TGn݈ܤ5`zם1բH}+ѡ `Ϧĉ̈ˊ ʸI]ǛAp ůŚs3ĹįSHƢa0ȄȰ *.=GUdgr{Ɍɜɮɺ_ʻ$gˍ˱Pk@ζpАве8ј(Ӎ6ԅ=)||D'ڨ9܄osyIeBrVWs9G<B 5U ylNx)</1( F$)Y<4X{ =  f v ' $Uou_%kY:3~R?Sv~]E< t r 8 =:N'3md/]bv  5}$I z7ev k N   -tRu |89q[U@U޼"LdۍٟsDkٳ,څiJFSނH(i;NJ^Vr?*zb,MAo "4C:)i(0"Lo2Iw3,JK8|-s/x'_u#:M|K"tcHnho R z _ '5c .!?"/#$$%&'L(()***l+++,#,I,},, -B-M-S-?-D-@-G-2--,n,(,+++~++*))u('R'&%$s#k"w! 7Pe{:e   e =  4 e M < % " ; a n n b y  b c b6WDKf'ya9hQ$ t!!>""##R$%%&8''(( )))I***S++++++++}+B+**E*)})((>(('''e&%`%%$$$$$$$$$%V%%&P&m&&&'q''''#(e((()(((o(^(f(e(a(=(''r'?''&&I&%R%$$$-$#"&"e!  i/u<KFO_}xMn  2u^WOB2Ge }WTFhfCTD:RD#PpR?R*'w+_V$ QEH$x W iK!2\+bN5#rbmrQ6ۀڸָ:{lҕѼ{'ΝBwͮa3"˴<[)!#  '@Nzʪg1̋[ͺ3ik'Aт&ҹ`"&(Mԫ1կ'''հbջu8Ӵӆunub/)}ӷ+Կt*IסsI-^oS58F6pBW"W 2  b . B#*%%AM1<:E z   Ef;lJ S b55;9&)HY^qM%E/7p<Jv V ) tvF'k:9~ !S""##6$!%&&2'l''$((R)))))) ***))l)5)))(((:('l' '&+&%L%%$w$#9#s"!w!)!  N|U mGYy8jP$wJ >  Y :h2| '7+_H778x9K::X;; <<9==G>>>>X??I@@@@@@@@@@@@@i@@?B?>>>`>>=u=2==<VuBڝZś-k9𘯘a+ -6/(6jØ]Ț=BRH˟_Ϡ&G 'ỴjߤUq񦟧F0֪I ܯð{exƶٷø~ż""ł;tʡfЮ aԹ?؁ XiTBJwpNdav7'd Q]fN<- ^ !"#$v%o&b'5(()_*[+o,s-7..+//d0.112 3}33d444 55"5'55544s43V321K100T/k.u-,+*)(k',&$#/" 0I[}~ V  Y= DeX *J 3(T9cz5v  iITw|&oiN!% r8* V{ +,!ݧ܊ۘםjbԢOswЀϯh$̏ʐ<:ɾg>COfkuȎBɔI@Pmӱ%ֿBٱp_hIth | <#%')+-/13[5 78: @[ABCgDEEvF8GGH&IIIIJEJJJJJJZJ JIIIPIHoHHG%GFFEEDC^CB=BA@?>|=<;:98z7P6P5x432a10.f-&,+)('Z&$C#!  <6 [ (KGak  t  u  >?V&U1?n+Da%6[rn}jovqx@\(vg0/ 9M%C#"!"= 3 e=xnXO  9 y &!c!w!r!n!l!p!e!T!2!!  bg'pxg-kMoI~zs, S!%""P###s$ %%&&J''(()`)))))**'*3*D*N*K*O*K*Q*R*G*6*(**#* *))\))(((?('d'&&&%A%$@$#E#"P"!/! g?719G8{ U 0 h  ` ?| XXC;fmqH0$cr*aV[ao-Lng!6hzBpN޳J܊)ۢyP۵c4 ٘Aؠu3f֠֋f? ־ՁJ,$ ԴԮԓk!|;"/PӋ2ԂԹ ԇ8u/i^зЍK=ϝ&~'ʹ>̿1ˌ'ɢ=\ǭmbĴ }/-wIRãuQ.ȳɏQ̰̒ͳ1Ҟ, WEWmސh$S9Vw\2%"xBoXv:45W!5nMF?Y _mgz&Xo 6 ! Y 2WOS~9 $3FOPJPMP>2(%_"  _F8ld X r _ & O&X4Y-OsDWsQ ? } KIz8# 4  % uY VBvYRL *lXT6S 3 L  J L*7U'Tg =QE\@>25CN^|0] 6{y{n+*b3c!= 2 u _,<w: P u!z"#r$[%&&&h''d(( )7)T)Q)P)%)((1(':'&%%T$#" " ~{J\+    5xi"]=q/8-PeC)Kx@4|Zk wP;z\mhHk1[I%(]B'  ,?T !"#$q%&'()*=++,-]..k//o0011Y22?334v4445555556e6666666677 76666U665555T544%43i32Q2110000(0//.?...----i-:-,,;,++++x+b+B+**c*%**)))B)( (m'&&T& &%%5$S#|"!.!  J- 9jU41{  R * !WA_nr\D7- mONJ6e V<{Zݛ7~(v!ΪOa ssԼd¹ڸ,{bw>ʱQ=Yel5c|IJֲSճ%@Tr,Uɶ2&5ݹ~gN4*c­YƫaQͽSѥՊZ ܜX9i*|Ibr C ) K  }Wt3W+>GTm}zxrc\UQF:./-2*-0IQl}MvMAle e99g+ hFTFy%k'?"/=ިb܈۝ڹ(7H[luzЍϘΖ{E$BhljƈœĪ=šOH[wo-h"Զ Rҳi&)]aA)鮯g*#>k??@m@@hAAcBBBB.C{CC DDCCCCCC~CBA@+@??><;c:Q9R8475G42'1/.g-/,*)3(&\%#"0! 5o0 41XBx(8Ym4Da$ xWZB>r &V#Kh}8P;w'?`jt+)] aVdX6-z ] 3 >  w F!#I%'(j*+-P/$1!346789:<>@ BmCD}FCHIKKpLMN)PvQRS~TUVWXYqYYZ`[[d\\\\\\\\\\\h\[X[ZZZ]ZZYYXVX0XWWWZW==%83F_J|U/11z.pT}=z /RyެH܊,ۇTDEK8#1l۴Iܕ*Quݵ n޸PAsSK\dLua3jV%sN|nK&tIjcB*6;! | ] ' ] = / i < ::}&xK&hX ~MU N8|:58L;Z4icTy`P:% e$h"+ 2w U2PNkSz2"Ly5W1~j07ZU \ X \ S0j&n2[~4Wf) !X""#/$$%&'''(C)***)+_+++A,f,k,e,^,E,,+f++***X)m('&@&%$#"! !d >QPZxAzym  % .cC]b6#"+$AXozY'(r1 _ & I ~Qn1SoNx !!!.!K!a!i!\!X!U![!X!G!5!#!!!  : z&}\S>$T*f$ A~"(#:h!+11JUgaijy~}vnktra7f]Q=mKCfe.|(-;e7V 6 v \Um\6a-D0]4sI3"E%$P)Bq$"8|]6J>v'$<J7YP36Yi[46]iKYuY'!!-:<<40('  aYQNqnfaW1 1Py rF޽G܁ۋۃۊۆc%gۮ1܈ݓ kYv.H;w5W[5l>,2(iYh{3`e&[/ކ.ݡ~qU)(gݠݱݑb`ݏ3Tbhޑ/߈^6gw8T.{yC-D'bI+`)c6| (/NW1,.Ta9yGn1U|LZJfl(dL`f5  h 1 M  : 8HKVn1C(z}uaJC;7 n q P l c ^*Fu!~$rOYAHZ # p4;d'o. T \ Xytqr^VGSZaZWf!Mi;"W=00YH0cE&`h`8;6<Oa# W s 6 k  { f X Z L  _LH2Bb+uO$kj  |$r-"NY!i{i6 # !   7zC%3])53E uy g*TB # T h X = 7;1 EdEh6EHMm0~BRj+d ,?/w:5  { S 1 2q5t0~4ld_6H&+[<y+p !!="##$f%%!&&<' ((m))l**+,,J--../111N1 1!11`22?3X3`3t33333333o3c3I332>2110L0 0/r//q.-,+*U*)s)('&%%O$#""")!  8)].SIxq`W B " Iv=gDj+?IZ=T/r(pkp2?PFPPrHL|^|"Z2KOWQ'WpWIU%;(.8bzsZB]w< o1_/,J2K5]9;YGm?1Q}!Sm <\yߐ޴=ܑ $X׾SnrҺұҀGѤњіўѲVҫIӚԽj ֘׎ؐ&ًGD܈Z(S|WLwz#^=0 b"n dZ<K:Wdtv -HfJnw&WTpar< !3](H]][VbosfJ43/$r#o"^ sF+HlzC'Xr~(f{#QDN^=8 YIH %`RH >>-;#S/v Jp~w^Y\]4dxa[\XL:/135)"#!# ,/5Dd1~D R!DQ | [ > \ J 2aF_q: JtKz 3!!"#H$$`%%g&&_''0(())))*]**+3+E+U+t+++,+++>+**G**))g)(6('&Y&%1%n$#"D"! rcalc7  ?  m#|9~~W2C##cߛSOxZ"ܱemٶCr"֬֓wjYW]qֆ֤֓)״XuَR4"ޫߤH7 \-W= l r_?%& _!,#$[&'e)*,-W/0)235J6h7f8K9-:;<=(> ??t@ AAiBCC+DD9EE~FF)G@GlGGHiHHHHH7IIIIIIIIIIIIIIwIVI6I.I2IIHkHGlGGF^F(FEEEhEDD7CB{BrBYBA)AA@v?>>.>=pa%(FV_n܎۾0PxѽrϴWDɼ8ȹ?WņŖ|!¬aI`’¸FÊQħ2^Ŷ*Kǩ8ȌJ%wuϏ>҉ԭjT]_Qs15B:%%pX\# k8WT!vA8)4>R^qkoak`f[SH>981* *BMFSq'De+ q3" ? ` & SwgZ* #a#T~NxZ8jn;W W h<z32oC0|   EAA~LdN$*Dbk^TLh iCyWgQQ?M gVUN/i`^WK<921% P % 6  m g Z I G ] _ 6 , 5 A B 6 + % " #    H !   B O 82ci^HI !cD$yo )A_na 4u:He]] o>R u?2ac_9ߙ]3޴]ݡS܍<۞Qۮf%پ٤_!دؑi.G،2y٦RڧpWyޑe`YeGch;)0#"} E=[}ba7#W~Wm%q4fjaeM[co;F[IX( v  d % H ( h         ] 2 % Y     I  A P ^  QIkkgmi$cD(JWp'8~(jH'U~C! f#DB c"E UCZ{'W25|$v2 !3&Nl[1k!, 9G3I  q ~  A"?-s[Fk#_,. _ ` ! u " 3 " z"fbDA~!o8rlQ)bJ'tgr#bRJBynhfg,>WoA2~03^lD){H:.# p 6 e'_[u7IO.]) @!!!6""" #J#^#}###$2$7$"$$$($#$$##Y#9##""c""!n!=!! A v! _2MAFrC..i7 |%r~"iv$ \ [ $ H I  ]&sy+|,@I ^y-],Y*}|jf^eo;cC9cf.e6Oy?mymO~uPW [n@e)UOq}'\B,EFe+q'9*z#T?zOx8JY6 sSF(m#I7vGwW$J4d Q'yd!"&*&'  l2Sq.R1|=KoN3wRFB:-gUUX[TMKSdej`s"3Df!5-ArLCAcUC y'Q[/-E3  1 D U b  3 A D N R R U _ z | A !  5 .  f U =  ` H . b. di x7Y @zL"kO<?4, senwXQRVYUTST[^fgnpu*@R}-g'MCt&^2`&%56Ju C  V - q  R  9 kQIFD r,:Ma E80~<`yG" W f U 1     }S-)t,g2  6`:rDaaWr4 K  i & Z'e~M+[ CYXApA' y 7a .TTzFuLr  .Tz Efqa[p}qc^G<,)I |sZ62J`z $Qw c?w4L'd+d]*3BFOLUU`^^X[\c[ULOMQD:0-4-!{ojYVKI>$a*j1aC2,% `EILJzN#vP)J}0]0Qh-G\Pg+J`0~1q][GT9uH$v*=]'^F_t"'3>5719@<82-610%#%  ~lig_OKB;qv{rJcB4'rA1h4{< w(lV<5N])cVju^7)CTY^ffmo-4?FTn!=hGs,e.|A B>h~k3XT|)$BQQNd -S(Xz-Ndx  *662+1896*"   ha^Y<e5qA"bSTPB)re^>O-:Mo$c.vW0B1   I # : \*1D.@l^g)Oi3K_'HG7wD& pH.d})j,] ,DDk^1  l 9 k % ^ + v O : " pqqmP e0^GUSC{Q \6&o^YS@s<] |Y/W@X%b6jc]ZJ-~]0 fWXUXNLAG>IBGAAGLVWSX`5T}Q *?e=u,Vo0c".TrL~&Dm /?DLVZgitz $8^A`u%9=Ga,Z/e + \  D X g i x   ' < a \ E ? @ : ,    o 7  k # w]=]t6s/m T:"j#8W3faT&e!TJMt<^F7=DJGCJY8f> !D{0k[>v8Ow)8LKY[fit7Ry0:@L_D|:w/Nn[<f>!z4$H V $  W + l l JD]lv| w^I'K _  V  F 1 V  ~;0YjR|:x'mN}=)>6DZa;Q$~~}-Fb5_Hv%[8}0)TB}Do0^+C]{(Hg&=Pa *Z -Z0Nl*Lu  % 8 ] @ N Y f  = N @ 3 5 M s  ( / 3 6 N n = ` l Fis.Dc4Uix  7GcqzvwieK3Z@3 z@,q o  p >  N h  n 3 Bp4QoC wUG0mO+ wstjV4|N#j]ML90   2@QSVOXVc_cacdgefdfegcfcacacb__]`^`^_`acggkjnt3Y -Mz!Ba!5A?EWt &Ry!C`s|8Ykvvx{}yusltgaH,vK'bQ<3 f[E)vA\+q@gC# mZG6pN. `L;:475<:@ o 8 s 9 z * c B 7qQw&B\trYLD3w] a0 e - x W 8   H  i ;  k H ! U5 rO&mO#bC}m_Q=saI=/- xwvvuqlnjploipllnlkpkpqmpkrpsnhhjli]L9," {bH;1#t\KB=4& )7>NSew8_4j *Oi@n .\$Wr&\"=h 4 T v . F X a q        ) / 1   w \ ;  z h W C $  gE |Z>rV2qQ3~[J0*vq\E$}^D& cK8'{kS>*jM4lI0naYJ>' vy{xxtxt|x} +46FK]s ":EI\n%?Uir|u '8NY^ej|#9APWk|"*2?Xq %6ALJSX_pkus'A]m|,0MUdfdhmzpk[[XSOLGD<) |xnh]L<2(*&!wkZWVYWPIHDJB=87;:+  ~{z|} (-2-77CCHFUZpx89D=AKXcovy{{~{|zwp^XIHA=975.#}pohWI502/- ttleTC83660 )35?K\dpr%/;F[l 3DZo$7H\j #06674CHX\cbgdegcjhfg_dc`^VVUWQJ;/#~zjgPG,wfO=)}xk`E. }lg^XNC6/-$utqqrolpisjpkosy  &,6=NT\dgy 26DADFHTWgismso{wwffgeg_\^X]RRD;71801'(%'$  # %&$'%,-:;FEECDEIDGBGDGDFDGCIAGBFDEC@C>AA>>@:B<<;7;480)'  rlhh^XFE?CA;3(       %'*(-',--1.02398BGJOJNPX]fgjiknsz xwwuxoolnjlb_YQRLRLLD>95413,)"  %&-0/211429:@BEDEDFGJJLILJLRTZ^]cbkmrpoqpzx~w~tsspqqlneg_^Z][[[PYRUUSSURSQROTPUPRPRSPQNPQOOKOKOKLKKKJEE:?4;7773314,/%#$!          &%&&&''('(+-2322/266;8<:=:<<>?@GAIAGFGEIAIAFDGELHPGM@D@?B?>?<<>7@4>4956532,+(('&$  |}qrijcb_][VVRSQIMBHDFCB?;;88;56510.*.,).%.(+&("$ !""  "#   #"%(#($('(().-31313398=9=;BAHAGBGJGNLOPRQYQ\Q[UZ\_]bZa_`gbhffghgkmlpmlpmusvutuxuyvw|y}~|z|{|}~~|{}|||{zzyzv{t|szuwuqrlqkqkpjnhohmihkgjiejdiffcdab\a]`_[^Z_Y]ZZ[YZX[U\VXXVYVVVUVURXQVUPXNWPVPUSUWUXTZSZUVYW[X[X[\X^X[ZYZ]ZaY`Y^[\[\Y\ZY[V]UZXWZUYUWWRYQVSRTRTNRLMNHNHLHJGJFHGFEBB?A?@>@<>;<8:597664748281808/50403.301000//../-//,.-,/)-,)+(+*)+()(')'&'%'#&$&#%#&!%#$#"#!"% ! " # "! " #$#'#)* *GLISTINFOINAMWide Boy explosionIARTSven "Yamakuzure" EdenICMTAudacity 2.0.5ICRD2014ICOP1989-2014 PrydeWorXid3 ID3@   _! |TPE1Sven "Yamakuzure" EdenTDRC2014TXXXCopyright1989-2014 PrydeWorXTIT2Wide Boy explosionCOMMAudacity 2.0.5atanks-6.6/sound/11.wav0000644000175000017500000053235012636021030013057 0ustar apoapoRIFFWAVEfmt DXdata M N99&Q; b$ ^EbG^SIHNl0! f.   XQ F  N" Hd >> 0q J;; AT(@7 UGXo]i-O)vCrk ?<=jHN `k0 z '; q LQ D?s*0s%z*-Vtc(}= ** pi$W@]1g1oz4 "*3(' KF`pl'%% Sqju phCb * Y.+O {'/~6I57)G ~-B`@D[}GkcQU\oZix~D n5]I45"SGM T>#'#8 ^:D< D O(\r l rNZ C|+Cgw z#_ ?"ٞn' &%$ sKĀnS ۻ,κ65\@EڻњDṺ@w;%: /",PLj)  b$1<3(8 ! ,u&:+Yw'vT2=':6PCNZf_l=h^6UcLMDCSO`_ebaSc[Z=8:$1F{D04!tEݝ&{ff.O,i"-'}'S&&&D$"#$##+40&+ K\ hEiD]Jֿ!+ ݬVܴ6vJhңxʼC޹W\ҫTR,G46m z O 9'J $"7W(?M PPXE48؍+vP 龆!%7kQޡVgߜ~wϭdʼŤ]R^E67_+ӆ 1黲t 9Hլ 2h=&ȧ5ׯC T$)*'f$!y}Wkg[H*54k$! "&-4 ;+<5)%!9L _'l:z'**f%Lb=Y Z3GPfOJE;w/(*#,($g&'"B*0 0y۰: i11{ڡӲD (T6 5%9]= ,z- ?xAv81S/l)+k+vGg> \'e! !? {=$6S"rJt_?w>(*;G 8W uaC"a + a Q U{'(F^/ r Sm38B11. W!#E '$D8_HF6f&~ -c +"='M9F3$? *;U3(X$Kdv c#l04,~ S~ v O-Y#, I$/UBVX5egm_{#}cCTA_xFoBSELtR#KA@@4( bngbvP* Y"S 3]^ WGHT'q+C$4[  ~  4&pi!$-!# ;%++(&%h!k$ &j bV"1g`Ξٛ R,@5 ^(Bɛ* ;+բY݄͈a̟)L9Юɣn`#>ف<ثόn}ݦڝV5ٶ!é̥r VCv<#3/` 7"!$5 JOwC7;LXVKGNX[X;WYXQ/G?0:4.*&"m!%9* +)/S^_s^^_i^YUV$WjTQOMCK KKE$94AcSR< +,8='9@43q3:/O(!G!'*{$L F&(&:n'   0?.!aJp\ۣcP X6 @}&"0,5ee7 6 ? HIoN._]")l32>HP}R-Ku!.+Re]AePlpid)[ PTH O q @[:)3;=97.$G5O56a ?"I)s) Pa"qZ sye-UV"WMCKl?bFJZ$eC3o1݊2y}ًw8ϗtmšΙ1ai1bZenΎx܂ևϊysٛ?aEӪ`JҾή8GҺ)ѕ7й]Ά Ͷjˌw!j3łEĮb^ƴÛ0sLj*4Y~ͰLcɺʝAʻ+"`+F !~Bj|`JeY D $*i,==:Mif T'R!W oN5? #{- D   % S  } g8:MEp<|U۸=5ҢѼ ,2¼`/%ҽҺڷ<]_VzxhL\۬*<ϱ(V겔 X ĢJ"..+ث(ѤA)eۘȕ&DݘVf S Tۼj..y+K G _ ~%sV#;")#,*)D*,&05\:<==c7-- >QSNB5:C?9E_"jYA79.CLMK]F1IUGer{j~zj>GSXTVlSQKE?45@CJ JC>S=<;/9j6X43z2.'\ &@)]1j zf0FNyArOq՛'JuYsac/ǚgʃȠʟ\TJM3Ѭܷ}rKԟ<֞_2u³S̟=nͬ'8֐a j8# 1 ;O T+`/$ Zjr#hv$(8(@tL]g_hN BB3KTT][`ccDbF_]7^7^5\XT+PMOIUWBQGgBB:B?F=4b!a  %ɯ3q D6 8 <4 9 b */؝P~r|ͦϴ@ӱW- n Udbv:~Ոƌ¢j]XߘZڜkލԁopȝѮR+ԲsL{֣!zn:<ה ws6`H l@2LƷ/s3v[wR!d8 hI/rDD:Z9=8|)l#0CIzB^h VY0ln; '0A3*)c G(,-c.h./56|><~,!/ Mr[I)o"r03>/l.R0*St3L~QdAx,>""!a)J66/H-+2775/)#**2x0)%M'+2;oD E}7_  /.E$!*%)$,#%c('P%%$ k*q5-^'/(#)A03;LUH/"Q,17/k/.$J(8[9-. mC N%-"x$0(e(*1?RAP//>67'*Wl $9!/! $(B'<|] w@w-')>[ɂ6BH \5nI: ^fI]gaߗݦQMھD8̈3?E}_L le-c )ݭ۪҆.K^ :ϊֻZٓϹ־.ۗۿG R֩2L 9= FUӍu$hw\z .iu0ɪ͓4'  $9*2 , |G []_iE G^X8,5 5"|f-od<߉̺Rn\+\vM@+6]--^\`LXقg 8b]mi^[]f}l p94x j5x*- 8 8 m׌}ͩݘ \QķRݣۡm~ZA[ 9ʊնŸ%ah*0*47-D U`Y2?AFiR7aj H&25 1,('F-79-n"$&Ru{'F) 54k. IJUA'  mE-?;6j gL V ; .  $(z%ߤ9(w%&(Z ?$+T,2p &Aޟp`Z͌ iAI  3+Ne2p q pSZg_R 7~8I+DJ&<5'V gk1;8B+O]b ZI 3 2 1!,:JSSZ]YBPqE7%s&{=xMRPtOS\^yP8.;>W`qSGMbTtxsn7mja6P ͭXa8rzwh.["-d&VWU\"h&Q(#!y j X#-57B556D0)!6*7@EI1M O+F15 ),#'+AP,T[hi2V@@Q3XCG1a-,4 0.$)P)jOR((Vc96E]B>3`L1d1Bi[pOxePo_  eDi(  \|*X QN0r |%Y  ; #%  ,%$%F c.܍'dF%6Z n b%9 f`ˑΉeEF*|;ֲiӖ/ WоƇэ+ +K*ʸ˯@ ^X u}ϷΓzX0ZĨԩȳEʅݝ }m޷4ɜ˾ӻȼNX֚w}ܕtٺֳP¿ϼ@2Թ (Iͅב#ϟ`6ؾM‰ßj5ݐ}\IJ5Bvb-yZ"ڶ miGJ$#ы .۴nLq!aU˫D&3%c$ C ؾ t+t l? / XOQTּ2!U7O<1DGu5 Q   . V{8(k% 3B'7>4* (1EAKL'E8(Hp,h?DD>|3%Yua g%x3`.`Pms DqN U.= T,25I7H07}2 k4Ht((* BIp)0,b%"(L5D>9)4 -'(4!3+$ & $&-#>$N,'h  r rQ U $43E-MGc;2/1B7>DCc9.*;.5:-8Z-!w~- d N=)>+/){ ' -*'5AE5C<2[&A$(3Q6.%Z$g-l;FJHCs=2#dPj"/!!($2 74 -$/. ,Qߘo& c"G 9!ۓ,8&|(+D% mX(ѺҾ9@~UZgZuʓāۆn؁i]J+ 6 ޘ oѷ 6ӥXԹywy҆V4n ܈I. U _{scS4 Z G S##".U& $ W (dC/C=Z݇jh܌xy |mŘa7UˁѯnKDzE,Z@8ޓ/ 1g)&ө˼"VGZxU3Wqyz㺫%-̻>ЩȽKTթba—z}}ȎM`ԩݺI`2g Ki,=/ 7 &-A27=;o;:;9;/ KS Q nyf 9{ >3!4=A%),0>7?CnC9AAFO&[khqo_F2),]5$;:6u5O:BHHzEClFlLQSAELiSW|UVOHCRCL\Bj3hWHGQ{WS4J@<?>HRW"TNMR/Z&cmcw6zD@6-("&9(/84;A5+$F!WW)d571*t&%v o%hb j ^ ][ZP^ ] _aP^_d ]Z2|UFQֹڻSH6+&!uّEvĜ-b13N6> >mÅ@kܿ١Auǰ>Lе7jڗ3)+ޛ " 5 r]Q%-#*,;)"LEl Ui`v8e k$m*q/1/,*t'-*/4s7:9a3p)/!!e%(+/a6 <= T$WmU  Z ! XMck4%N 5 @% UaׇY<]'ڈ (,E8,>@ 4z֛"Tdz%̜ʘ(;*Ò,ַDZ.(ө,TӰ,Ϫ)}խ-}ע(mסQ$ـ$a۔N̦Ю봟̹eͺ'p݅:$jJ, L R > $*& ^ u)%'#F/ U 3 t  ;!C" N"X %*.c-&p "!Cyc"m%&&'\)+/2T2~/.1I540.?/c246;:?DF=@JGKI5C]>v>@@oAFPWUOiLLMLJKJJtO#[ghX@)/(_(-A8?CDHG|HgM5QPqOPM_@/(,>1(13@!NPCw63.79c528A D;.(+385.*-6H@F"HFyCA=:e9986410B+&$K'-6;l7)!@$mR*=M~'R I.T֤s:ֵN?*s1ضȾo;ÛнqF?KAʲcNԠײ)N#ݴJB؛ΐ5A+(~F ׺̔DV',I/۳t$OV H.E,\W oܣދO܀ؓ|oyr/Me[5f_ڙcl,֒t2i{ D jycBV2ĮG>>7J24-)cR(-,+-D1d$6!9]<ɶ֏>G=$*E'%!';(&!9P 1 + "' < T'1K򹖩N o#ךͤ$ ײT*ղH)}:*(Ȩ'o%#l!a ]S=  " Ls!"%'[#do 5%""( +&- $).80111=0...3?<{EL7ú'5NΤj(<ۡVۯ|.g$@8Zݶ܃Oݪejv+oqFFfRVXNh _ F F?"A& ''+;2799=::6u/9,2=C>A9==@C=;4*&H&)0:SDF=Z-c r$#! $H-y9DJzKaK`NU_Fj/pmsd2[XYg[[]dpyw l\SV`d_X6X]cFfLgbgbzU\A+i m-s ҇{9{uTލl`8SwF I U4{'%/ ,: RNc"&%$ Z5~,!%@*<.O/,5)N(+/3Z5S2* eMp! 6y l4|ڄv Au1ogL Z Ozȸ׳B7Jο_+Qپ~$ԻwmtϚ%݊ݔ+̸βK;޽HϙݱX0ށgcҍx8y`sŗ̮iqktÔjTvv)_jFo,?b t7ۅJW)dtr O {t q Pr!lx݂cu DcQSC'+$&*%EJU),,*'$7EUB]$%"e'np!Aq bo&61@tB?;T9s:^=>j;q5159>jC>0$b!%,g2Y5x1#HN& C 4%r2sėԢҙ &r/;ف[LΫܗZܠh翎rmn|jهާztڨv׉Vy }  7y  _q Xej\&3 >Q>3&GI >, 8#1P60-,( & a#$I " ` Z!t"$)+.475-"ZW  _ ^    . W/ L 29N*45:A:621H342@-Q& U?>$;893;<:4',$! $ ''&0(-36)74-.& O o D !*) !  >a w 4 f $a%";!"#" s}^R k)3-k.z915\7X;K:C=ۛ֯==´V=B=ǿ-9uȳ¶2PÉ,uѴ2/=տb(߶Z#5p砅& ز (𼥿S6(N%*ۙ*D-/6- 9, + N-'Y # "1 %)%(!*( ( C A[$ x  $''% /6(!,1.%vF$&$R'05642331.,+;**. 6r=?:0%,#*0.33t33j33O31r.,N,+)'e)!,,*'('),C1056533125l;8A;DA9=0p($\%>)v.25A6;77K7>79?E=HF@:73-((3+045.4221).o(#""A"! !8 " !18 b   k6 l zB^Uh X \ކ :ؓͧWQ򫓪 򠕝1p:륤O6о1%¹o=ˑȗ`j۔իϫO <4(G c(|""!I q \X  '.y/+%'-%.6<9>=;9M645 77520..048<>=966 79=BF8FCz@(ֻ&ԴJ$ڪͫ&ǯگ\#'ܟ8$4ފЉ!bܚIљߏˉߛG -!㢍 mH䞒# )Ꮸ!"^A'ܮݺȩ͍!+w" #+{39;83+T#1 '<1;EM4QP3MI>GGIHD=7448F=>92k-,_-,' Vy#)-1Y6 8*3'o C' /C45^4 2 1090/ /023d235665200001Q2 1O.*(&$"%5.*1v3Ţė<*Ƽ>ƿAŰCɺJxYH{GߦۺE܍ٽظB;8Q̦2qԕ)Ǣܞ^ *i_x^eLY NJ趐SS0!+&*,\+7'"#A!(G.i37;R@CC?W80,.Z3N897^5468]:963[2.6< BVDdDCBPBCD{DF>L1!1>&8/*'1 r& Nuj %%|/ 6{:}[@ ; 96 a 2 )+$ #x.!J#%M(),2:DLQ$RQRVG\a_b\RKeJMQW^!c^fhkmkfe$kyrt%p#iefilli2fcbe&i iid\URQ SSRQQQQQ%OLIG5FD?9F41.*U&6$&+h0K35C7x61*"r.e \kN$LCڶަE@ԽJ;LдUC1^Ƣni-r̨Ʉc(44<7;a50.5+%0 q"-%%!U*H$M! 6(22,'&&%"Y@  z ҳ!;߱%Iخ(פ.׳*o٘)ŧܫ!ܴQ  N-:n@vԳYR&& e'|{mA$k,b4|861S-0:EIJHDGCPV[a=`GXBNFBF@<62G0,%VVd!`+7=r9-#$ "$t"b!M;.# Y ŃĻƤ^*dW1ڏ;ɾɱDSкOHΩոjL9IxJB><, 3+_,#ANOp C-Ie% $1:*AR@T=;;;>YB*C?g9^3d/.1d8==8b3124g8>EHmFBABnCA׺ؔB]@742O'.L)c1P#*.27<=D-K~SZ^._[TL1D?>^?7@ACJF=IMSaY<\ ]^b߫>`:W-1/4'>Z0i " ) ] T$5( '%  ! W 0 @8^n5!(50:t@`EǓ÷ŒGη̢J}ʳGJ׳՝M֪ٳOI}ҵtF йGֿAQ9ɾD4ν-oҪ%%а" ؖև6 w  - 0$)0 8=@sB DGNoW ^_[T KM<72.K*%("%#ujpR /=   ܔuh`-͘Fh'.O4<5Cl J Q{"( .Z38=OB]GMRpV[WUS[R`RRS=U\W9WQSG\=9>dK]\LluuVkW\L@R=BMlVLXASIC=D/c"(;X."#%$+'4 ?HO QPM LKKMQ UVVU SNGB?`<:88';=<:9862e+ 7 u Y: ^ ح8ʟͧ'9լ_ e\ņ͈2CP و,ʾ ϔeˈ҄͞)5 Ms{D%l,(V.IO23Z7-7A7D8~I321  / `(c% # &))& 8 r#&'()+079<=;5.*)"+d/4R8"7a2-W,---,*0(%$%,(***2*&32 6 y=762T95W431M֟. ,,'٣!5 $6%& <| dI1  RlbR_  X Bx / 9 #% $N#(*-.0#0.-*(&"Vm"'+-,)%##$#"   X ? x>%mգ=Gю^ZCGJÖƼ: Ȯ#~E|KE L &"MK+U09 5 :< =MiA$LD_C@ P Ath? D 94x0/ %  U}  e5 %, y0JM4l %s)7,-+&;"  : 7 6$['( +1.+12~2/0,)'-&T$ &H#QZHjO]Cq{ ڻ 8 ƒUˁ'<-¿>oB t f "ܓ ֩e1 P{ i_CM[5->f  ~ R f!"`!!$(B*** +,.39<=y=<977:}>BFHIKNRpUWjXV)QJD?:748;>ACEhD@L;6}33W6 9:73"11291 +I#!{ 'yd \ b A  } yHIoF{Q 165:]   \h   '  -.  %r  /r u %(&H#y  # $ k$ m%F$#!5B#%~$!  n [ '  "g%( '[%_ҵ%<%7W"$/ZBA +$7 H   W i!!;$!%#!#)' ( & v*^0ڥ F +gu ׭թ;窱"،%<ז|.Ӿ1ֵڷ4м1ِ_1,.+٣M*jگ̱=߻+L ~b p8g,BD ]Fr ; !}.k8 JG :,ُ   K  4   _$'"+,-q.!.,*'#s&>.!4651!,&#U##$# V!"-:G!PSPHJ>75553/,*'%$%')^-1479950+)_),29>=<7/& j !$(-38;W<<===>r>:`1%  _ a 2  x'$&$6   #$Z 9DRTe*+9` 01~  G t~Z d: _#%#"B!!##  tq zBUlo X!T(f $&f%&!"&B C׎S1 FRծ)e 4C @ Rר z WxO0 ѹ: ]#1+/E0-Y(#  !!;  !*/.)D%!|Y  z  !!!P#&|),w047751,+\.2:57:<;854K4468*95+J }TֳկJwb#  AY s sx  / D  p c  &%1*2/-3W;v;=k?D. <M1AK:LE:i.7! 4C2B *7*BHL#Q$XBageX/B* z g!/3o& 2& )2&77<79C<:]2& t*r I   "%N$W* h> cZޛ: B  !%(,.,%$,0M1803n2H1 1r11C/.T-s+ , )U)g*A@+ј)Iۻ*ؾV%Ń*i#V%ٻ$q$t& e6OgPG   q-% |{ 3 ZA" 5 )% %/3J2/. /z//0220//h-)& 'P,3:+?tAA@,>w;86154312.*)+805:`<8961%8B M 8~8S 5 .) #2"]V  $& %   #.:BG;HEMA>v= ;m6.$   % Z4|nFLJUlءKr9YHЯ'G+!&a(n/~3s6 W =Z>+=ZA@?:@7" l 1 +\l# Y  l  o  oU i 07$xepϛٮ [ Q C r{  d g- !!St #  % ;q%)($Y  %!&h,1z469=@C0EEDBwBD@HMHS WYXBVQJD?;52024688,86 3/,*''*-,($ " Y  !P" [a tugu,!+$ v% (T4)- ' o'׿(H'>&'*r$" &<$#h S#<< ^w s5 T!"L$'* *#% B $(,.//,$ _' 07<><60B,(!Y \U  ( Pw K y &  S \ Pړ$!ذݧ <#u&7 ݬ޾͆גH=ҳt쿔 2Ƃ ғ 4 ͝zۦX`6#ңU"ޢ%L*k'o'}((e$د#"Ե!@Ӌy͹5ٲR$I"(-?13330+%y *  ]     #Wd' V*u A').H5;yA*FIJPJ*IHH@I)IJHFE)EEEaD)A0=968%9(!^g 7) db 輍&+ڳK(2(+T-s9*](&$t*4 p U.  c9    $ + x ` q f #f" `"%q(*++,-5,)&$""$'T'$!Er"&&" H v&K   t   h ?_, ْf f&G"Fq&/`&k)P٭-^.EN0Z35m75we3Q64E4/-0I-#c-d(3( @  p 3 pIߏ   y B=Nvs'~ g  /g2B568 !r Vu"$$_"[M  #$p%%$$%&%%,%&E*.N136752/ .j-,T,,,,+* ($s =0 H  ' 6 n {  Q |?!!KA 6;!&$$#"U h!$a(*-.169;u975553-' # l       ,K!NQ`f/~ %x ۩ ܓdbŸԟVWbe\ v#%S&@# "  "" 1  : ~a&P 3 u]c_?W Y# yg"n#)/,+\$)@-z-d->* ( 7'wc$  (1B" LS'B $$c)'" ~ 8Z   + i5JNfO6utȁ- Pجbc% I!8#" T B!% /7<>"=:74/)$ k $k9 =3U U :  _y=: n4A )Y -Y  ( 99' lKek"9 t 5< W O 2" %  $t&% w(il)?%*$()c)(',$!p!)#%'((&o"'!4#%@!%+04,79n;;D96R41-(&%-%$p#!n1c"$# 0  J~w##f v 3  r3 8, I R 0}" m85H% \J\   'h$&%&"b{ : !%'(('&!* `+ܶ*B-;)Ƕ",žf΄G}f>    60 :|ۧX S vz˩ O  "   *   C  [ e sT # /&*3B2e76X46|;J58 /3D+($0^m!(,*$b  d I WD  E mJa 6?zu w% W 1* = +L8  0Q(>&  %+.V,&! "| # &}:' "k#9 K  + " ${%"   d h dr^ >2" i  N! !k""""!!"#"! >#'A('&%"+}  "#  z7   h" %(-5 ?FJlKJHG2F B;3+ #  ! B# &'&#+ QP`Ʈp]őܠ߽ M( dR8,3yP  $J" wR!! i  x"%(Q%Ìg$)ڹ`)<'Rӡ(z!7Q$k!٢֭Σoߢ y2H C *ZUKwgm qK a#(++*),9/134C3100.-y. 147:;:8630+*& Sq5  hZ  ' >H$$.  O  yC6> 8    "(.1A1.*&,  ^ _5$'((a('%#!? $'$֔*ܸ.1b0 u669Z :<18Ԟo90<͇. *>-,ڼ'?$` ''ETo R@!()&+<+i*Hx+ U /6 * J -?6($).2'555*6&8];=|>%>P>>0> ;660,+,06>FNTVsSN=JFB@ AC FGFA92.+ '"a !!! M   T @#(,-+>'!= 4  '  (  _bs a!""#" P J G  \kk jO %+/23r443333B1.,,,.<13D44l5677761*#   } +   Xj}O-0r"2 w dYܷHU:˧èh̬ס-A&jGibg4 z! [   5!"O%'&# B Fz ~  = av &$Ls(_O*t ܏@KKu  3  k9 g?/E  $ )z,.0 1!0.t..e,(a$ H  d' % 4A  C7 l  !a?gmUI{9? a  & ` F9gJe,ܢ*e?$;??>* 9 =  / f Mt T!s8X?!%* .011@ B^A>`< ;;;=@oCFIKKIGDW?:&4-B($! P ;!$%%%$&* .//~/ /.-8. 02485 421W1 0-)%" "@$%&&}$"j"#)$%$$R" q c  ( $BF h  F 0 ? }  ]b>f (<H }awCi,Aj.MܔF92uWP$MWثއ\mv܂]whn) N ܿ ( `X o { ? TJ5i 8=5  D .p6z34@/T . M[ ,Vi&#>%'~+k(Au$Tj'4'"%_l$' 0 % %\!25#"`"YXs !#&*~-.-+5)()+++*)B((*-..j- +])($) )((Y))'%%%%%%%#!c #8Rk `" #" 0 hC ^m !{"#O% &&%d& ''%1$"`  J" g  W! D / m J *R  +u D Y) @! ub b #MX $U m = N w;$ynH "B+V CQ0y$Cp0 L= ^ Z QU/v /  a  OLFYLN ox  v f_iD `*{e:,'-(R W!   k=}  B Q aV"   3 i4 c AQ 5e{G8`I+)- # c  ~   $A  b" o ^ NE U 9&/'8 !Cv!  /m#4!#% %#%" L(   s lZ gX S 1T^ e  G5W #ND{ k  %$w1"Z&A&]*$(% $!}!jinHE> KS DkZ9 k - a{{Z w ].; s C P_C  7$FL a7 ) m ?9ݘۉܯ[Qz r  C  t6nFZqa,(p ^N  l  z0 F  G U 23 - dK 0b S  ^ g 3 @  *@ C"%(+-'-+v) &"K S ;  S  @YV3'~Z  3 s 8 ov D_ g?bn 3 { _: wU{N" i%, _3+;<bG)X    +`RW5 0_eE%>  % lhd  o  [ G?{ ]M '  * & UWo !! V nU       B@y8     ei 3 |HQvd q6Jd  I5/ N<yH 5Xr!Z4+@~ U ^s]O ;   #/ Ym  p*j Rx'pp<* kJ&5    Oy hgrc g  s  >  2  q h "W.A;,cBq:nRL +zLtM N yg #H5YP_U=YA_0N E + GL - }  gq {  io7 E Hu  n|BFQ  $ :W m V/9)!$&(*,,,I,+ )%!;  l  d~  * p X    Vf@0 # cZ H   4   9@ _> -  s tI!<(m S- 2 Q x0-u@a ?$!F "BI|!}= D hu  `    H   /-8?L}]7#  2c j$6?kZ(# D $$')i'(9*M %& % 5 "  ` {E[ E Z t   N q. c>[h~,N\$ m  |  G  #O@2p -n i U : x p` @  4  / R, z 2FVuW4c r)sA@ Pz^iO2   T =( > JJ (uZH  M Udfd #B [0 Rep1"g| k $*  S y v    iG]~ 5'!?m jv$_ Q+ dP  8   M DL I j :  (}2EV^"?pG HC kI@ ~  N> 85@]4. uGm|Ne H>QZ#[p |/ c S   y ec   " DMp  >6hx)  uu ' ~  z  8q# Uv8rw|;  zZL:{; fgM. w  g e!HQ"$@&$R&Wz$cc#T (/e'p K#FB "  S{<daIXbNw7zSrh> ;  yB\    Z  nQTV PXmBU = UTQ+ Y$ z M 2#f _ Fi] j {F]|b Qe: W  ]Z  ?   U     ] ! # .  ( k  ./ / % 0  0 v . + * - &&Y%#S> m0$j  > :OK!kCYsp./3 W9ijt>llr%<J^lIT [ C@ ) MZ ] ^9K.w 7An t($Xg}g2C0<r"(XjdB )~.7   90  n 0/, <    d   gz  K T  M  ^U  HTJh;bRXD  Y  \ ++VU lQ ; w/ k  8 3 b  | o kS  '  oh kx `mnvdN# Jlad Q Dsi0cj;]Th| J L@ [B2u4S so w;kFl'rviiPQM!aS0  a  `&U-k 2s < \?x5\S6z  ,JH< kV B Z v6 #g Iz PMY +] 7  l  \c T S   q ;( J p KwU? )Gc>= r ;D ,P   m  ' P  XHt  $  09$ Y 6  K V4vn$$  ]   ]   X   % 6'>  q_(DL6 ?a ?\Cx.B%ew# h S>[UaS Hu \G aE^ h  ~ 0`c  N  c '9 r F c r Q ;  J E@   Q J  M Zqm  j  Z    x x GYrs<wOQe-KwX   `*|   V bp"AE6{V3 (^G0p   V  L  ,@ @a  w   e 3Fmq  A=T  '7At  U    t!H L. 2$ x k  ~ !  F h  I  SY O  ,mWj O 5$XL    W!N +      ~Q< l@t:X[pAR.PY {#  i5,3a sYwDU1nl1bS Y[KB NM2fD@v Q%V H  ^   c pCrd%#C`R>Pt e)U- 5>t4P P G nQVIl|p o; y & GJ#nQ$q('"*U; ) ` ( +3%dw%h!%"a# F   c <     ggV6 #G +-  /*+5%Cd{% YZ0T  o ) n  IC80V[O~'"~ w   l V d< 6[< A15 b8!tv   R_ NCy[ V]1"  wwb"ctn  #, ;H    ` g   g \  0r > Qd ( n u_-Rf Zng40ajPD-~ v&"b Y c"o+Fo [ e m/Bv    T*aA s<8   q v8sjkXh Nhh,p|!7f>-7` j1lw6qxCP^dC5 fumo  ] h  }D+ 8}/j: +4   V   d 4 &$[ fb ` }?AtLcY0ym .z S msbm^D\@     m2w2 + '>  D_ 5;d>Nf5   &-0_" 5+ A u"   w h   @ .lcc C a [  r35z# ru@r{X u@m`  e  >n j l   +x49()Z [LYV QvlM n y'`b- BM\BZ.&\op   Ds Fn ' x([ $ [  w    m   * /   *r : 6[[ 5 XiiJ   $       n \_?6 D  WL     w ]UC l   x  ,  7e(p  > * }  #  q(T!SkOw9nGx  &(sx FCr\   0r T  v{ ] w j n g< Q   _] a x2TUo  K & @ 4 u5w  T  | Kp$ N 2r z'l6' M?-JV> p D  % 3s5,u|kE#m T[qt$Oxv]RWa  h b|u .uYJ AymUpV4  pu fb  r P `5CQBxLx 4 ;6II? Z 78  " K1}r  O   p/[ ND c ( O     ? !r m    cXa ; / 8l)(YH_kHVhf  |h )@?o K 6  1 }a N  (  { &   I S   d]ow    ! S>}p* u% Z]5"P^dB cb ] &  3  1 ^  _ u  zjF!. Jf$ ! s % %@ %/$w  ! ` y   |   F  "{l] "}] e  -  ox )r :d _ 1y&r!=AYf l5 kdfh}{4mdUcF'hoP1)P[0Ih^g,rg         d    5  p     T  M !  - 6   5 ]   _i"   6h  @  t  V ZNa I b}l {3 V9-zbT q Ml ptQ,d]  lF $ 2V8_    mCyhnn; 0 l    D- a ` e MC<5w%w<  y~ ) ] v~ d s*o!lBevQ,r<\_ n J  jh  P _  v2  ] R6J`n}xs wCX"2"i3!D8 *% D !D  RC +xunYbN  [ X {#nlvvZ  1  A  4S7qQ#  G T  TYYceHl{ߑ߰@+!Ea%~  W [!W  `&) *  Z H{#He7  B~  u - 2 e: !!!t"#####"! X8  T lw1qH[ 2#+l\d 6  j4D   =    sxB\ߛ)ؐ . Fz1ˉ ҏZb<}ޮ0$ xw0[er9   ^N,  % m     Nb! M Y  ^ D(;%wc`v6mM@e  7  "$'*-v... .%-+u* )-('' (('O'&$" 7 Nc\ a    1ps| ys^5z'      h     1 b  O   #  # %6M  ' B  bASkE|y[DQq@`?s% N  F 6C 'YH9b~{  f`jmkp0~- 4 i   // e  l ; D a      $E[> $1 0Z[%  n| "o   i k A  _ C       CQ_Y  ^[ xz lr     $  4}t e  k l :alO? , {yf  |whWZ)c   ' f   F[ xC y aI  l qN;< n ,  Q   A -k_5s ,bW}2qthNQT(6h j_V"$|u, K b t=~ ! o / G .;co d  -" v  #         |nK~      \ D q  j_B/<  l|LFnt A Yl r  (  ] 2 2 Q    g\N^rH2 f(lp# gl  )o`W%{` ωQ O{m*  y Z AJ  Xy:Zh{R w ; |  2 } h  ` j t| > -s g d h h %  |  !"! wl # !j#|j p"pM o$zTYވޘ۩ڎj  s  9!R`!$('),.h0275 789;< ==>??@??=<::7x530-*(%#" !&wo!(  4c eG lB f < Ck?g N0   q}wp^G} NI[O  8  5p j= F xq  5  l k Xmp|p   #     w u ( ْ$յ՗Դ4z] XKUb:g}0/q!zv vmتق ݀97 E ޵:'] b/ ^܋ 7sO|(?"r$z |} r + z'!  L  U   N! #$%3'((() +/,,- /024 7s9;1>@ABmDFGHI JdJJKL"LKKK(JHGFyDCA@z>=;9%8631v0/v-+* *l)(( ('%$$" >  5? k>O{:6er(w }  Z4~q#=^ ^ `jABJ B[7Y *( 3[? )6 NS}<{  ]SJ.5|fʨiĉ½^=LPƕȫͬѲ18ib!9/RZ{x   w ~5M \ p L ݰTZ2V 3  ^"% (*,.....,+k++**+-w./1334456K65430.-+;)'S''&&b''()**<*('%#!d !""#`%&%$;$# V OX l 1 ?  cNc4ysS F  $  gkjih>CW`@{ffnc ?z A   X ?m 9 %k;+ r!# BU XL x*/Zb(i{       , ! P=OlQh~ F)$XIX z Y=+_-pc   {  7Fj r Gy C:t A    u x#   % O3k SM YsGq4D@e N HmE9EzRQ8j ``|)b  _    { t l b ug  o8 ' t FLz A e ~VWB2+  Q  8   |db  = h   j $  Kh !2P1I   Q     IyM} <AHckjuܽk<!  +/c83inxr  _` @  a F9v ^   q A~NS>sY_i`.LW UO Z tz- \x 7 aI  x ) c{/?s  G^f#u}e. ( GiR "$&%%&'''''Y&%k%$!o qB t i+ Xv! Ql`@ R)#{Fl  y  a   n   l q $   E, $W`i}i    z] I % cd!/m}a : 5y%    Kck6{d  m  r   (~    N-}YNݟ_3ד k3  qڋڿݞ i| X: & | G  !#%P' (((A) )((&% %$"!!} o %J { a 9 B V( MYWd  }z eM3 # \ K: <= 7.h  W ^%I_? hT +Wi @   _ mm x#+. g;en^ #  Z  u + |X|! !!"l$&'(*-/136189,;<<<<h~ !  )   G +V>lܼTܟmސ)  $xizR  O :.b6q!#$%'(((((t'&/&%#"("!){w .  . 0c|}k l?K ; Y "[###$~$$ %%W%%&'x''()))w*+++e,----.&.-1-,*(S' &%#x"!V*5   Q =rQ|n`#QO'n V]V |uV #%')+,-L..-- ...---j,+++,*('&$"q! R } P  * .h q_=;{d Z-:\xog|ۺRرHׁbOu47h uQy{r'.mst !.{~'wwg"t6 9 t ~ zI9K & uw!|Q n * 0/k *7 J <*4m!}"#!%&&&&':'&&%z$#"!Gc GG< e    !zD{1`  L    #  k .~    J bjAگ  v~ ͏] mqζXдdӍӱڢݬ^z{#}h @%u8z J{)    Z  V! utF  ,>  <s#eoWN~       E 1] R]EK 9 l > j3 Mdgh:(`X E #p mjJ    q 0 T # = #$G% 6"# nxb   Rj2 3!!"###$%3%%$%B%%!$"! ( $A 9 ip kpGuI!_ۅy =y   X H,o|y   x 7 y   e b   ' x g  r 0  | - 0z V n g |lc`T     Z     !""#%5&&$''&&&&%#"" !kvY  g l9 0 ~Br{.l  rs 0q c*  }b2  aiX U MjD|^s  h"4z 4y YZfLfVPڂؚѹ)w|͌tϓiѮ Ս ݙ 9 =WT` v|z&4   !""A##""*##"!!!w  &  !!!"""!]  i S  T    LC 9v j3 x | o 7f  r c@  W d< )  Q      8 @t7lyJ  qy x9JoTf ii OeTX    `uB U  Q d  k u  S:0 p]B1Z$c2P?UpވB\ |rp,)YOm_7, _  %   f -  pu S    o  4  +{F(z ^r{Cf1:j#tD]S B !M }   f /  0     v  < xlFe{ Y\] %?u {  ?  % l  #lV  & knp]  szN_ourqpbx(  <u$z0OA ] H 2)   0u |  BDa~  x q/:!)"#~#$$$%%$$"!g    = ^|7  _  O   p    w { / uegG};R>~sRTePM R  {  W"Hl @,x [  |& dt7$o$v r o F '  b vuVl/{F H  D  8 o mn J]. 4=}|r@I!shI1*]  RbV1V#s$()-x,x.,(1T(v%$eu'JXhF .*A^G ,/ z~ | ~  r       G  W@" k ?  ' t d YR~@g[0zS*iRxq ?x;O v>u   e P z QXn@h&pti @ `   ]WSjDpd   O PVa  "k l q *2)zg+<f ;7X c! CkW \ u ~ ( @^{qRNmN1 ( (  e ^S H  9 1*~c d-5:qr2UM  5n - =  h 4% PiW u}{ov6 5!s| kr s8$B*r m    \    >   _-u_;2}% iw ~  q4#a L k u ,.~V33eD >P  Rl e  I     ,  P  b9-{% T  d !z@x?} ln  X    k   ~4^  M  _ u ; B  w$ T[Sm;Ty O | % rq X  t ~wi,Kwc Zo=~+zv   ' oUV@ bo f5- 5  u  * s i yqh:%t|c Q 6jiE^ v~g L         J x  +   z . ${  Y   E}vG )y 2sc xs[_tUjT1 6N 3  j87kcM^KY   3n $lCMqy lz*=[u3WZR{ h p ceBOJuOidg % '>CWha$Hm}rFfFEt w~]  RVbpH t~fd"x[`Vk1N9#jh[{-/pTVl(Z79^Rg  {(e  Zfu1s  V n  "  M  mXA        d  j  ^ ,p NosV|BSI[  J FdkZ)ff`&!<d rsk2,)    / g0? ` f  x-%q|{(-rdiXaw)w~ + tapzE rti ~cz N us YLemh[j3  ~v c > v  w4  \\U`an b  %:g  !g} #t h1   W)(iG X  0h  ]  .( s  n} . Y  -o 1]p  Tc~!  y+! k_ G j a vd  A`h XCM(=WvW ] c obP}. ,.}  w" EG C[~S ^ ,#! |e  ujoziq@r*~}+%{6y @8 )m    o ! C   1k N  t6   7)fW= 1k"mhc^ g  6 w z 6 g~    }  X p  s  L        9 v    ) {   ]^B'h{b@&g f 5)   7`| zr gxr ,q f r  ? n m c t- y3~ 8a h<##{u@xn ~0$ 7b  j  sxq"K] h  $    m #  D hJ    r h:7_Lic E $ y             / j   RB!u SatgR_?,  g H  M8n /h &' \ry |{Ex/&U       d    J   g  d  D  # o   7 1  v&8 %      G P _  #xqyc[CS- x_|hr6{ p +1p "~T eg/t  c? U JIo@r5{zbo~ f  [\ r/&b|xgAln 1&{/j |"  6}7(g [gz0) 3 k .?a+l w a6/ ~q ] Mag^[ w+8g    #v '        qw   S;,Qpl E#{K?zIv y\y>^2{KK}#     v+~(y6  \>*PZ*3[h\2 eA     G^~ bZP %" K \TO|  v \F . yp[zu    g  0   "       # {  fyuUx = x  l0   f>5gadvWO $| $}D[!t7   $}WVw p 6CTcl> GX   ag] Ns$T Q YM9p |#7 ieamsgo2"1s  "\M~ /b[:)={JV ]2hPW  )z "eR7s4 ! #  H `h  i<     ZOpYM .wDg9kQnj   e20v3     '  &  /  }:+m]hmS ,#_ {{ ar  L  \  H   zrz :   1n  ) * .v   ZF F a   # 1q r--   !!  O 4} 4_ T> % % g g f Tq@r #9r/ 3o .nJ   WLy$0t [C s i L!p J e  |'  ?`  p# @ Wiu%$ 0v B   l8 ) $j9%z2   8[w    ;$t$,2s7 d   u/     & Ol/q    !~ "zWJ $m 4   w2|v RXr50 y-v <lRL!h )|/ ^L k" LS  (o%4n k u o,s x% (gMC+      mBt*p33z # / y wxno/& j3tJ]ur  dkYuz= my q*y!q# x6 + 0t w21j fBo4.  Ch |   q  <e   1mB@#t4}2q; w  v/  (~$}:j./Z?1FWu  B k   bC8t  z'    n<  9\v #     s0 6v    n7 b :)BY/  p9 VTv 7v*}VP o$@j:9j!(5o2y,  p<z q% v/y8i{y[   'z      k8n93 i = =h&y k+  z& %h9   &{  F U 2y3mxu!jyhe3#    " &/ s FW } 9 w  " W g3y2* 1s     !  !   {"  l5 ' -|  .}  3n #}  z( E| f. ZTb '/p   m<d@:r n:  $ I i |<#   D {0|*tWC : m   ~ ) }*.%7_  ) ~+.y  p9 x*kB x).s U G  y(   0v  r=#  {# $ye /"  '9kk6 ( !<d Emv/  $| r.!l7 $  /x(--~x.)#(z  ${#!1FJ2Y D t' h/  &     |% :f&wUT 3 m %) 0e |zy* !  })      6f .6u  x)   { b<  TZ[=^x}   $   q= T _ I  uVG 1u;!s"){<^Q3 {+ dYe^|2^ E zI y YO uBi;j-v.0fIg }%y<~HZ <g 8{) * :j}t1|9i.t-    3o  &;fy%    ! ZrTH>_z     w/0 $-v   G]Gd   v* p7{x#!w  UM #p 7y)m=o' )"1~ u:  z+   %1o  .  #   ,6mr9! 1} JB        .1v        y+  }  u0 y :  t, =h?j w20m#(t  t. #   $}    (y  v8    % `-q!|(   v&$ y( #    *m 05m !} l8"n84s  x8 $3q   !~    {*|-   +v < xr4}(      $y  u89m } s.     0k YA+*"AXr }C o |+ {&  {$  x. | -    1 |/}{" eLe >k #hAYF   ,}z*   > f ?f  (   #x $ p 0% 5g } u.        &{  $   &   m6$/u 7h"   , v    z)" 'z "   w+"w u/      2t ! (9iz  r4* ~" v&   v1    7y>gx*0s q$ e<: f >h "  p8    l>   't '5o ! f9  Gg} t.    5l n9f? u7  #|.?\)$r* o1 $      (y       {&t;   e2   5q @h   u 0& |! "0w  w-&({   *2    z%     #w% )     " 8n    #y-2{      ~ |$ r8 y)  aY R_; ?f (q 4y+#"*   WJ  ! %.x!.y z1 &5n$y |  {! n-  |$     7Ya3  v1    HYw     '  q OTy"  'w  w5  ?e J_(q#   ( ' l A {'  }&W]      *z eF t)  Y^J}" q. ^In > k3   v3'A\  T v + ",t VB% %    %       7h   A m &|  c Pt5 D] . (   B^  D`z!     " % AiJ S k;  !  j; )+rDs  eB   Ce  m&u(n/ )}  *w$sEYk0  Tk6 k  .      1 h  % q?dZMkLV "*{#o3q9*Dd C! Gd(q5uk7'v,&   '    BYy    &}OQ~y$ !$ j%>WRo-FaCh     'w *  w^<   > g ('$|    " U [J  QX v "     }%$|  /~)(} >o i B    %y1t9$%'{   !| 9s     ${ "y3 ~ 0 g F h2)q3+rn70o   |Pp+    .w w./q tMT*-s {!     x-  *       '   Gn5% w'ZPm/  $B\  Ci@g&*  i: 3z"gA!v3u7 %|c @5  )u (m   qt c9m y* x 6j*o/ C ` %%h?{-%~( " -z (7jeNj   $q VM          x* ) 9o"  1 $:j dy3  8]u{ 9 |." v; n+l)^C    ~%   $   m@  %   PMo] '    v/ #{)y0} -  t6 +  :b1&j##:b E` g  n/    % }L |%<ht:!+sAl ' # %{)| {a:   y#1m  m A d?4 x % . y  !    ,m FR x 6   v+ } p3   9k ~    }'    y- /y RRu$5~*~",}   "$X[F  '  u6D](3b K^~% f= < f ;r cH z f4_D    p<{1p<v%   s5'>\ y%.uy/!+}q6/ { ^?  # !           $4n   u0 # /y %+5t  2 y  .o w/ x 2 w) .}1|  r: cD x-)}&' | %       !%  ;g$|^G (a s  !  `I x (^LhB    ! 9q u47f"0{~! u8&{ s3 ,w "  .i  6 ~q !^ TT f51  e se   $r,1` | { i!KP VN !p  ?eQ_ w QL  "  !v8y-$)1z , 2 /f x W _E g ;k@y <}(w3}-     *xF\"  2w#6s   m > n4 (  ~%bH[FE] ~ Eh&:i4#t(+ w0(Z  H   fHk `I  $  'v     w/)'o4$%( w   /s u(  v'$+{*w  !~  $-y   t :    _9+ }'  C\Dh #  y--x !-~*)u u(1uWG/:g   *6p D^   #  '   z/ } 4  }"     {*  ")(}(y"  cHo^7?j  >f &} !~  r7   # $    x/ #{5g{  {+q       "}    $    &~  $~ /eX3%&y }3! {+" t(            0r 3 3s     !'~   w3* u' )u x% {% n 7u6     GZz  !  /n  M c  7o   |%]G v$ r) ]?     %>bI ZEc{%q2" t + &  u)     "w  I\  c .tt&\ | UD#JUt  0.  y+       r^8        N \  7e 8u9j8q"#-v m4p<~ _2'WO  x'(}    " :i# 7X o#{&~-*.1.,7V*p,j$Z/#   wf#GQ lDg1      <c  @m w61aw"   JPm ~ s#](;r+        7g   "  y%   ;w  NW q   n9&|/ t5$ z%z0)w1dL_" ;oN \?xFj    l MQ r: dA   UG&kPZ#r2j8s>o*    5s    })   !   %  'z& '|  v*  &    $      "   $  y'/s'  *,w7w'!% # # !     !  ){    &#"w/)', y+&{ 7|"-s  s/ !     } j=    !)1u Bh"{ ;l   v* x 5 j9(  $ |')x     t>w /p6\b4  v)  !(|)~   k= !  #|"[J i6  6q         >h    #~ z*,)y -    !}      /q}t5  \F      %~ 2~(2mv(  v1#  -t         $  |*"         /w   &~'   !  u3*w  !  !~ y+  "#%%>]g/  w,         o2&$ (v /z*}  x0# ( $ .j       ) u("  ~$           !.{       |"  z4!      ,t!z #  #.v"y.   z )     ( #} #  .z   ! w0-z  ~!    *q v/     #      %{  ! % |'  y . !         !' % }& #}!   $.(| #   $    "z   ||#   #(w  ~#   |    "  #  %  $   z$$%     #}#  !~ #     +~ |&    )    &{ %  %|       % %} |"  %   ~   #   #         !  &  !   % & ~$  '  w0-t      *| $       %  "  ) 'x  {' % z'   #!  *y     EI! w-   LISTFINFOINAMMedium missile explosionIARTunknownICOPunknownid3 hID3@]  XC*JTPE1unknownTXXXCopyrightunknownTIT2Medium missile explosionatanks-6.6/sound/31.wav0000644000175000017500000117733012636021030013065 0ustar apoapoRIFFWAVEfmt DXdataz>el8Tv7,3BT/hq=eqDA8 Xξ ɢۼRoq^@['&:O]y`WG94^9C6OWXP:CD6-4+/n:G(SX+WMN>(kL*+Qb  - ByiW#"$+?4 ? M BO#X/^=aa`=_^ `a&c(b-^WPJHfJROiUZ]^^_{adpghFgc+_\[w^>bd"ce]UMKO[IjvxunW6}cޛS F. LUD|-I\GpG{_w]cCB"CS|f0GUXUU6PNS^rjxrrk^-Q JKUQcnoVdMH/ %CB\>g/aK-H|Mn0|)&,KI[>^?RB>,$K,?/WrghXX;-Fdv< : $ɢH..v ))гlBh鳪e hޫȫe%ϵl~ީ[S (#n- 8_BJOCQOLWI^G GGwHGrD>6-% x#'}+,+'|#|Ns#&S)*++*p)~&!u   y+" +] V G `  %N]ZCZعҴ0}X6wb GxsSV&;}ZA|\ ?`|$+m/m0//0U36:NDiCA}>:n4.'"].ۏd2dS $NyQh|C9a76C7c9<@aEIMP-STTTRNFJE?:06|2!/+/'!>* +ZRH8XTbϿ]Iv¬q4j°+Wʳ򴄵slų?۱ pe!hnHaĸdv/O3(~8B-',!+Y$4 M #+2P8<@CEFFFFGJ%OS>WXVRM$H DAABB/Bx@=:7V5]3J1z.*% 5 muqw'$k B jS"A-Fl805n9ïVtʵ3yoy!x_Ʌ3 ;+7 ^ (2D;CHL>OQ4UYc_+eCjmo9pornmImmnOpvqqIplf^CUJ@8g01*$L* 0ۛ$~P̙ u:f1R- ٴrАEҸ+ݟުݨ{MYuʤyW[vS,R pR$X"%0&$"!M#(0X:BH&LsMNQ~W^,e/heJ]|P/B5-_)p)h+`-;..--.&0a0G.R)f"H nG\['  2 ~ @ $%]X?۠Njdjα=aϖQ8ޯ6WrWtWWȗw#ܸ}ښڻܹ0Ĵ0Q jO%^Ǻ=”`D3J!tY ,W ,2_Y% .7AKU]elpstsp_mPjhoikwoerJsHqcl{e]WHQoLwG3A8B."H ,4^2rz4ͻrf) Dd~ô3ӵoQc(]8y&Y߶5I4;2O!&*E-04:VB!LZV_-gXlWopDqnqWqpIoYlga [UTPNIqFuDC:AW>93a,$A|$(<+,,C,+q+l++1,'-.156;cAGJMQTDVV9WWWlW+WIV>TPK7E)=3g)hl #VE$$ӕ\2Y܂x|k%忮 =nܙ~O\bp/}ua; w$&dze&cQ&[qrӿÆŏoYڰ:J st, &*d,]-.$%%P$!gu,o e{Cu]Pe i Gh ]q{ܯz]w} H #%z'M)t+-/f0/s+%y* 5 0B4n; d O  ![ < D \ sik!O$ &\&C%" :BsoտR˖fg{o'AӞpڅ:qDŽ,ǁ̚ 70~ " O * <g<, D!k!sT BhS| ~ ? * ,";JP4\!3gߟ}׉E-2"C!' M]YʂnϡҕKa,lh@+92  m#$%&'M*-02h2"0V,'"$!!"0$&#)*+,+*e**h,/<4E9y=?>R:3,&X#"$&'m%# _G 5(W$jlCtb"$#6"w!"%)k,-+Z'#^ > $n<8:3-)7'3&&%[%]$z#A##$o%$MTƲ״ʹ۳82ܭ,OĪɷ]XԫG 6>~/VӏN ҥ՘׆ؓTW(g:% 1G7d8t50,~*+P-/121137>dEZLQ4VYd](bhnruu+urrhn^jWgeWdc`]yZWT3QM HT@6-&#v&u-6t>nB A:1(1"&=+)'g/Pٮm‚񳊱Gܰ֯Աo~ͩʪI$γԋ(5UN&q>/s" ip@ $C),.f/b0s25m9?@5A_?:&1%4 h iNrc7d4*yZc؉oJ }WnFYL9[nӷtҮnB1ü¾DwзӒӻؿnzȭ#кA㶬c_d\r (28<:9u77;CN|ZdknVnk9heJdccba``acee0c\SRI?95441',#j -ZaBEF9E?L7D, j$-<2/& $ p>xI ҘҰھXǮ߮5xxnί),p P/IqBy=.!'7-83\:vBOh-t߳մt74ȯ$?Ӈ4f#sC3JZ"'T**A*)),0P8BN6[f osspkf+caaPcddcx`Z]ZXW> "B&*. 23F1-4' G["%3()* *)+)(M&#k q! $$#a /? B9!%'N'#(q wA|DFHIHGEBE>7e.b#$$[ [ 8ۿѐs|pѥИHΡf)r"igp % Kx#x(2-022?/ +&#! KFy %Gqě?ǿݰe&~Öİ'<ͿPkg;~GAv"(ݲ'Ѳܯ.\K%d4 |"(,o/i0E/,(,%"b="!+4;ADDA=F=<:60(.2 1@-z>z 4ijcɸ2ǾĎ^HQiϣGѕ(}TE# Pq6gL-7aOh O !/-M $'Y,058j;7=S>??CACwEHJL4OQT#X:\8`Cc[db^4XPzIC?#=+;d83,;$=cpJG$+)*C)$fNq؎ۜޫߩfߥ#)4{gAR ó˾o(?2K[FiwqHߞ„$1C!շR4/թru޷?Htoj\G1TmP #*.}/-W(" 4 H)2;"" :v@t!9+?7%DOWz\]R^a_xbgmNq4royh0``XR;POO=N1JSC:o1:)"{1:bQu:~ mm$&=&#  SC*ZC+߮nG< k|ηû!7a"Ÿm'L̦cV@NqڞV\׎Dw/7׸αj)¢ΣZcO{ jr #F)<0$73',?"" +T@cq03Qn.m:!1݇֯x xQ'^"Kϛɻȴ\b]0PF\a%@M,9 v"',*133;07*#YaE4K U& M g!p$%n$b NnpD}[:;H9 \=(W v\ JY![l`\NW߀O-H ]4׫6s˰4be1߀Lѿ)gA. +]"(/6?HIRZ`Pdd@b\T}KA-9300D072T442s-% 9D:Hg& I#yS W]Hۗ]֋ר36/E-j+ w` `a! Y^&\P9}{!-o %+M//.,*(&$" A f/&`RTԊ'}е1L6̏RύЧuT p Za^{ c&d c (,+'.# !&- 46#52/&1X|. K_},Hj0( "87k% 7 \%(*W+Q*'"$V3  sI; 2iڱبׇ֮C^Fr )x,!D6JOUY@\H[zVNE=73x0<,%E p ` . 6f|2_  D_<G% vJU:SL ={و1o׳կӍϾРkA7vh ۢXR}ۨ Bv \cWS8>aaߵG'ٵ*)1żmüQǰ৙ ]]b*Զ 4]֛'su @ A  (3;@mBB&BAlAoABC^G"MT~\bUfea[QVRR>T%VVFRyJ??4]*# !z!#2&((K))/+5-~/h1Y2201/-r, ,N,-&.H/&0}0/ .+''# S!]$&'e&"6lH>A r } {d&]V4U]Q'@%aʣbrCژч-͸Ԫ(~79%L8-Ǡj~$[G̷μo8WÉԬ=;KhT@$Na a&,16; BH@NQxRJP6LGC5A?>=9p5`0+(&%$/"so m .  j$Mp/_Tԍ2a6V μ 4C-~ $ DA3. %,5%?uG4MVOMImD@>>?CIO_S_S!O$G<1a(`!2" y~=80kWܬޡUWԭaЛjҋmѕL~f/Lt/m}x!ڿ jh(NI YqE"$%[&&v&Q%u"ysc"5]p3a mYf:]& 5TQ) I:1a # %%$B"& evtl4A:{Nx {t f+"%A)+-G,+*'%'%%!$ +rL A skE[\r @M v֔fߠCl~ɏ%/BN,M&٤;gƮc=3͡12%YvTֆ6ׯUAJVSNhiX1.lq< & <z t WVs/V-"a*0_5m776 6+6Z7L9A;<C JPUWVNQJD?z=<<:~5.j&= $G+/1j/+'%F%'E*-$01181^0~/.-R-,+*)%f da(Vt,ӷ A>uǃÝbڨϫ)Ćoƨ5Ӵ9X/+k&kX.8]2]BQA%2Ybׇԏ xպ]4h 8j%#B'* -)/v00/+1&`8 y A6;  X TGpN9flC;"MEۖ +ܴ maIF?,֠[;ͥӇHִ,mĴ= a4HԙC c^ cu  + J LQ  !g'.6;>L@@@@v@A?<8E40}/0U4c8-;;71+$  #&j,:279b9O743359;[=$=k@@=5D* 6h , s i n&} Vh9L5{XޝEmk~V6YeW n`kݝuӡдΧQ͸ρT0Wj (͖ϴ!ԣպ}ݿK7 axyW _ Xonc?z!$)0:8@HLMKGdD*CPELJKPTTO~D6( 'r/ лӉW a2xbR< vUAMUؙ:<[XdDyBlж0)'ʸC׷޷e#뻻e1@ƒêĢdǥsfɃʐc=ͤtЉ`ٹeb'Rl.(yU9  = 3 evK7JN\E!"##U#"!!"%#$J&'(m)))))t*+,2./J/.A-+)((C)h*+*,+*e)'&&&%%# |tK ` `V . r =.c uE!####%).2 6+8k9:=AFDMSVmW2UPiKFyA=b:R7u49211T3e5G6Y4.Z%m 3Rmd,._'9_x*cDMLqU|gf u!$'+-=0234T679 ::: ;;:::R:9876S65G5`421.,*X)K('Q'i''6)*,.:.,)$P[t-2~"%(O,/.3Q68k9"8]40.& O^jr-ͨvS;"8ݴNZVf%B='2NVŨ4xs˩_ȠءQr%Y| ۼ3dd*d}`j (O$eoe 9fMFӠb&!:D~]˯RAFP! MG ƍߍt|\} aC=5zY D7?#+J |"$Q$T##$( .D45:s?*DINKU[`ca] X5SQRV[\f``4]ULBI<'99{<@DHK5NPRxTTSQ!NKK}LOSXWY$XTRPLIJZOmV^+f^kTm+lhd`^^`abba_[XU>RgNID?;878874.V%2JK_Jh̦ âPgg ~;[CdN "&+033^0*?%1! ##!\  Z> (uDv$:)nF1ճ4Ƽ87t밢ƬQFbG4LZe4rZ̲H ҭӼGYTS4G $*I6[@0GIHEBBNGP\ ir9uqh\\xPGjCCFJNFONM#KI\HGDBy>;838U9p;=>H>2=q<=qA5HP>Yy_a_YjRK}GFHMLNcNJA27j+. uubdM>۫ՓҐb̉͟$L > >  E $ Ko \ P ! B"$$#D k2S j5"q,24s2-' "d ^!lsϤ-}RjCdDbM̰vL}g m yg aZ ={{. %'~++_("|2 9!T0gCc7u=T<'YìTgk=0 ɻiէQ*7Cf#H=+6<=BFmJMPRT UBVWyY[]_`bbccbaX`^\qZtXVTRTN;8 " =7srs?Bp. !C%?&X%#! (!: ֪̮aW%˸VԵT*޹WWճحl di[>  9}g΍(fߝ ˼ ('~бs&'YD +hԴ\SL[źp@΢J⤧wQE$5DLR^\i;q.u uqmsihh~jnNsut odV F3 B]-%-lPʩV]Rb߂~ rnAiXejccegFiiIg-e-dei%o;tvrhZH8,4(*p2@<4)S!q:"*+j5s<<5)U4#.4v5/j') q",9E#NQOLHGIMPRRP0MOI'E@:3c+i" N `c/֣yY_Nn, eUL6[pɵܵε\.¸$A=[-ẖ¹pͶs.vαMe ~sדϷ¢t(k(R|@ G"ֿw&ݯQ˳$ܪHL+ȃh'sA!=(/9EDRc^Zho&rrpzmVkAj8jjJk_kj@jii6j%kllll)lkkAllllClbkojiQiKi[iii.ihgh[hh^jlOoqisrwo0h\L9$Z `Wpťڵ?i}bǠV벮歩JĻtܓ"HHazo <}ogw/"'`-146789a97V3,I$(Sy:P&_.3541W.,+*)q& q_P?lUMUW&ڴ$󲬳n-򵽴uεzbc E??ܶԵ @&:ô~!E3tjÌՄ>  F|,7AKOU^gmo'mjf\QF<2D)\|ofs֦ӝl݄ؒ<#X? | j%+./,)B''+]3x ǮìxL 멚v9=!ɇ%܃M 81"+1|1+") f'gggyfUed+fimjpqoo{ir`UVJ>3^%0FMҷ-ǂ^ڷgJͱn\Nc@5qtF=GHUI*")b ذĵոùָ*R*DGKE*C!E,G(ƒ΄d &yp!_&*,6.//@0147;@F>KKPXUZ_@ejm'ppomFkiggTg#hiii~ii iijlnonmkoe ]SbH.>;5-8(#izxk !j}H 69Ƶ3r~kBk6r@Ҹ긊9yaѷCjضD5i1㳡l뻨AAmP u+6@FKUJ]cPhak,mmlbjfcb__ckjqvovovcwUIDFONXh_`[QF>|/2^6 :=@FCEHrJLOPQRRFSST{U'VoVcVVUUV1V1V V"VVY\6aeikqki}gKffrilon+kcZT]cgPhf8c_[Y[Z^Abdck^VVMJHGLaU]ba^kU[Ic?BSAp.C$%$#l \" գ䷛i  4ӟg&%(f֤eqz 7|̇ظFOϑ ɭɃ֣L ]--p TQab!$')*,/5= GP0Y_cee3eca_:^\\&]\^_1`_Y^\Y[[}]`dgh.f`W+MAq4M' }Sӎbzh\MQ_#e^|%λAŋDlҷk~n.A幟=޾μ:GxkX'Ҭ~Qm>ab~ u'2-K14'8*="DLU]cCgLhhgh5iigJaU-C,;e4q= V/0z=9P3.++7,+)$~ R2<Դ7̷۹HDO<ηTj*߉ XςڐUP(3-@..0?6m>FH2RZadffeQco`T]ZXWyWVdTPIA:3-)$* tCB4jƢֿb;"pW|'I` i)"E=6Ŵ԰|zۿ<>#0;1DHIF?b7/ +N*-5=EwKuM&LHD?q; 7t18*!;%7N?d%svmY?% V*,9@w?5Z& =*8C@;>22 [X8w w͗IF;~׻/tbpqEHմPS,Ìݥ %]3 >C[A_92- +.@   & \  n P 7 D])Z5?GNf3x&PB'yԉ?ٜ_oՔ3|B!5Q} ˷ɷ}vYøwR0*Kkn(;4EOO໼-?ǿ>ɮGˊ˔qΚݳ%xթ1źa ε÷󷭷FJ<{$ʏ7hZ\Y _)7AESFaE`E:HNWsainomifddefvg3g5f4ed8eVfgh{ijjk2lkf^P?-4} &^ ZE΍˛x\ϑWϼVΐ=mʅ% n#[5 !&*Y.147;{>ADGHRJKL.NYOP5PON-N&N'O.QS4VWkW_UQ`MHDoA><:~852n/f,)E'$% #-!%1:h}I  > tT1Gq~]&QGc^%U&-l*/d:9cފ j{޳F݅ݻ$G$, 37:;::8654 1-&("PY RKl߮٢˚˼bȳ,?q}OleI+xMƸchչ@ W׺>ҹع̻ܽý˼uGua߶ $a@>&ʙ‡Պ!   JSϵȿı P&aܣ7o& h"',05;BJS[b)hyklmPl1k j4ihhhieiiii~i~iiiiii]ihhhhbi#jj6kjigjd;`[iWGTRRRQnM$D5"-"/J{.Nl5 íA/pSD%ڗߐ< 8! YMt '#%n&t'(&+.27a;=7??F@BEKRZgbien/r7tUtIrnDha\Z\`gmpnfZLu?U5.+8)% V= $իDŒnt""B 趘pﳵ!9Q9iy#ZиߺºvҹE߷AǸ2e^:"QʴKzK~չIOL],s3Rȱxoʼnԧ1PL9D8) <"7'o+/4:?`EJ ORUX\_nc gikjhZfca%aa$cde,fedJddmd;efffsfeReeNeeWfffyf0ff)ffgggmgff@fYff1ggg\g4gngShik>mPm5k@f^T1I=2)! Q|.AɚLi@K$ [洫qxҷ,8h¹ӹȹS׸{M(&! ۷5۶?V߹ȸ4Ÿܷ7UoAһصD^G٫̓HN'=S[fr*xwrGmh fe{fg9h2hggguhHiij jii,jlj[ji"ihhQjlnon2iWaWcMD<6m1A,&e Q =d>Ե뺳xO߬ϮбCƲ>F%ėÑISN5 E D |uC $ )-1"7|>GQO\el9q4sscqnhlCjhh?icjikkki.hgikorqmf ]iSLABCFPJ%PV]'beRhjrkhllkfjghfNfghi?jKigQff&iLmoq_sYqj*`TH?:63l0+<&5!MtEe4O}KK <:: A] "v&&$^ y R}ԓ{p։I :J"Te1rww%tojhFh>iijjjihUhhi,kel5mmm3nnUoool1E&L T QJyЄùEsphQxձ*ݹg˽KBηژK: !s%k'''&B&W&'(C)*C,/39w@FKMMwJGE#F'HJLgMK0IF5EEG1J2LL1LJIGcGF!FDCAABrDED=A;i50]/2F8?F8IsHLDR>+82.2+n'k#o#j*1795.% O $ T#Gj8zl[84!:-F9nEPZa-eec`]aZ$WSsME<2)f"C.Cہv۰Lɱ5ϵ_""9+5tOi.ķg *ֻ/Fv|̻!ƹ)ܻзSһϹX̫gBǻ>& Z)"({-0C223\57:=?AAvBCEH>K6MLNNOKQTY_neiRkjhenc:b:bccIdc cbabVdfikkiRe]SG:Z.#) )%5AKRVaVRSM`GBO@ADJRIYV_ceedb}` ^r[CX;TOHA4:3,'"? a.ܣN6Ҽ##eݵ]ȶQtKϸ]׹+F*񹶹Cc'ʻϻ=ۼټzڻ:Ѻٺ+-j\jNswշD]2QɅCLCH ,a ":*3޳".a@qk'۷x0许VUЯ_Z- ;$& '&E').4:?aCEFGHJ4KBLdMNPvRITlUUqUDUVX\bf4j>kcjh-gfg?iihe cacgmst)peVG91/z27=?N>,90& @P L  X$$ @TI1N^ؒ>̷ I^2X_x&z5fi׵ѷ1 mэ9Ѱ ޿J3O%^-4;AGM2SX[^ab?deffBeb<],WPIC=!8M2',{%^4J,g6)آҾ̇V˺}Գϲ߳鴲L Pʶ@N>R޷ʸڹͺJMhP(2ӺǺRcp_K޾^< eϱ- gJP𴧮ӮH|ќ[*ݭ\r% "$3$2", H "$'i*<-0{5l;BHMQYRQRQKRTW/\aehPjjji;hggghhgg%gffgrgggggf#f(fghojqkjgb\UQNUO8QR!RME;/%,#(w- 0/-(R#xL _&-^5;=Z=94/,*+-k02G457;i@E8+% N{n@r4{Is\Njqter}oomEmnwqsornCh?`GXQMKOJ)HC[BFKQWO\]?[TL9886 0$ T ; #MmD/3]ݟhՉΘ+͢;޹¤^gr׳*Hn],)dL:׾$aےm d u"&U*,.023=69"=)@BqDFGIKsMNNuNMLLEMN6QSJU:VVTROKGC?^=A<<=?,@ ?;6N0K*%"%""4$4%;%<$["* fB!T'/8lCaNX4&hڳF Gʴ<ضHǷطn0hWq4) Ҹ"kBǸ>ط̷HϹq߸SѷN,'ӭΫ٭f .1tg%}SE. ("!#3&0(*-?1479E;<>BHN_Uk[`scegik'mcm5ligd\deg Bx9l`@'F. NmrΗ@TІI^'(w[OBխϥ׫\ uە݊`zI"X/v9@BFJWO:SUT`PH?6/-/D48;;8_40../0.)!4VF 0 Q|g!Z(-)13{4"68<'@DHLQ UX[[ZHWRMM`H.D@<71*.$,?"#`(d,M-*$g@$E' g3( +(l"k  s ;n+>'g$>.>>C@CG)NVZ^eMjlCkhWfde%ffve\aZNRAJCd@?>=:4-9$g K:8U ɸ~O3RηwM-Z,nϮ⯁ѰRo/ h/l?@m'HyBQڮ<@e )5 *+ (,*a!9B9S؋V–cVIدH_{{CBȂ9z3h Bf"1P-S(X>DqeԞ{3S.CI1$|k "#&!,oI(})4?YJSn\c[imapq]rNr$r3rrshtttsokd]VOIkDT?:40-%s@]  @ɏd !PѲ4m^Ƴ°ݱD޷ַƵɪز&;lD* yD 7 !%'n'e&$""$)/5::84/w.06>VExHF6@67j.U(S&R(!-.3=9>fD JO"TVSLB7C JVNN0KzD-=756X9U;,:c4)^ mч58qFR%i+gna_Vq W1 e#SZ Z0iRk 4n "O@6} KoA Y >~ C}b FIY`hP D)7Lz+q>0%݅<ٸN)49iaå׸ 6ѵJo2&PM sWhSwzU[(H@4boTm^ٽ݂ٙ$_dicz'xDIڈuMsqIE7P>KL[I S F )#*2\:ApGKJJEJJM'TH\cgep]AP[A]4e,*c/<8CM!W^di`lSnnnl(kgjmjjjjjhfyf7hlp#tsnSdVI?:v;?wDFoD=3w(.Vjuҗԩh6ȂF԰wOIҴG}?ejR%ε!NAgIǗ̾D]M?#3@KwRUSK?/ qfHfGi֮MQR5Ahiu&څ\įTyEX|=)2d&,e2430,f*s*,0D4L7j95;S=@BXDC?9N1*.%#"\"F Y5NaٶAYөQAмGI10 4 a(,Gғ˜ǡX8sjߍ]d?ՆݗKʾUJӲvSѱ'<'cp"(!ԫڬx/loFhe &08?DG IpHEAw=:]: =AFJ:KIEBBF:MTY*[WPHZCAETKXRWZZQZY&XXZZXARF8x*M%/96>=7-"HE p1y > K%2>FIIGaECOG NRTUSPM'IEvCyBBpDFfI/LOQTWWZ[[ZJXUHSNRS,UXZ[[?ZXV=UUW!Zk\] ^'][2Z7YXXSX(WTPKLF A<9886999T8520.>-- /t00=0I.+*)+.2w553g-&> !,!8 # e"'/o9BUIKHA5i(}"UɍZȌʩdRW_@/JŪ7fB}⭂f8!Y,́ЁԚ lvbrxC M3Cu $nVqB9@Հİ۵vPw 6n&аܰ<.ñȲ6y!?Vֶgڱҭ񦼤Ev3o]]l 4 m5SQa/  p%P,49?JTU[^]Y"S>NvLNTT]elo pnl[kkkl!mmylkkj.kklPlflllkmsmIl[iAdY]VUiMFA?>?gBE~I MOQ0PLG A:$6=459?FLfQSSjPJAH7&+B rhg)s=t{cvVDi tQ }zj"#"AjP p+8QH^5 ;v,Vܿ&'1ޜd~k\n8 }?ȠϯBޘݞٜԡ S`Oˮɒ^' ݑ%RI۰ H#LqOI i 4 7 ۰֬=s٩1`)л;о2v\2FFn-Z&-D[֮Axo.۽s[ FQ/ 0 J!%(/7? FJAMN PRV\c\jorTs"rom lTkwk%llmm{mmlWllSm|noppsolhc^YXUP_LG*CF?<;0,\048b;;8#3*!A(WZ e  H;fq%iK)tBVMR2M-QhwB'M}܇mՄֆ״=Թu[ڠ7t4R͇+*f֟/٤a 3̡qm%E[_ O!)17;=>s?AELQSY^^[,VHOI/E}DFK^QVZ\ ^+^]\ZW9S4M`F?=:65|68+;5=">=];a71*  ji]0Gk\^. q 7Z.ܯ:[\Q&7O $'(&"CM.Do!!!! 6|"'!-1`44X3/y*p$H?\1>U03 |+ { '[q"s~ Kn(S_c wVt/~ Q e#< pTuic ZjVz#HW1| %1~@͘{!ж  9Qrkͬ&P߰C(8Y ŧѨjaS̮ηΚ@5=y-CkR|ID(S}5>(0| );Cv)x5R | ( cgiA] _  !tS3> Rb"[&)+,.v0 23N3]345\9=ACBL>6a-M$7 Bd\  a  |Fln%.05762.)'&0)E-15751?,&9#!"$v&h&$>"p!t$,:J[iqrutXpljj>l]mlXje`[WnTP)KC9d.)#\T \#ڕXϽ뻞˾ԅѽ~hܱTȚX尢䵄بʭUJC7"T09Y?BKEHMR{X]4_^][VRNLuLBLJ;G@8\.$P FE_Kӄ1DA`@'Ŵݵô7g J ʹf,~㶦)ưp3Pй#p;ߒ2W! LDm& %*+/2g5Y78:<>cACE,G,HH8I|IIfIHH#GbFEE=FlF'FEOC@><0;~:%:9875O4$32222=20f/-,,,-,+*~))) *G,>/12T4E5L5557j;@ZD4GGE5B4>;9u:<.@CF\IKNQPx_P)ΥqE߰ζ絒y*]V61w϶̶Kdֶ=AKWC`b>_rXlQMMMQW\] ZR"I0@J94+1-&*;dcЍQ4ĕn!뷪1hb]˺Ι ؋ߩdU oPx> 5lwJ "2s c &0:/?>90'_!  P%r)a*Z&0VSuP, E%]? ZZz*HLLdd@SV`F3r)1#uݗݱ޴߅߫ݔSaКUXӽlnǼ޺" ͣ79?˷Ѹ٭ڗܢ޽x~@ <2iXphI ;_?6\ s y W a < MgJ~p !"m#1$$% &B&K&g&&'O)*$,x,+*(&&'I*,y..\-+(''5)**($X= q gK`au: לжNѼѪgсщҿ"qO?g l"&E+=0+6E=ENXah"nBq(rqqo~nm8mQmxm^mlZlkkl{llllllmknn7nl+hcM]WSRLYF=2x%R) ]|qjڷ6^]vz ̺UǨ}\Ք؎ڻ*j.R(tunމˢ>.%gOn2"9C ٴKzկ۰1ʹhpß[̤-7;PV 45&,32553U/*h&#"! ^^T]Úìr̉/6oh^ .* '/G7>ELT:]em&str!ld _\4_;el r,sn[f\SdMvKKFKGt?3&>n $#1 E{ 'p( ۃ*QTLͭuм-1+DݬXn&uxD v  j X 4 j  VA"UOn{O[bm2!!@ \>Z &>v* X"&((&N"g 1 X޼ʹ*JU1JgMKƲ޼ F*݌'RRټ Atk@ZxYJgSIw 4f +34s0)!#W^!#@$# I SxTsS!$U o\$5AHyID=7X5%7X<C ILMLJbILHGzD?7."@ oT:,a$L-~3t79::_:4976:697191;;92q)\ |Y :OQXp1qiakז?ǑYs0˺ɓόE9vՕؓD8NH%Stug>TRwq]my@+R3V}4Qr!<9xjL- Z S O J W k9q.| q H !c 4 2!>(7-/ /+'#![!"%(N+$.15:;W@CC?7'-^"]  N: F!ד=bA؂Dm^A 7B$W.k88AGKLLKlJIHGFfCq@=<<>ADDvC?;\673f24>7:J==R[^U_}]~YTGNHDAL@Q?=D;6t/& 1&JK,t߲ݜܝڥ ߨv*ՐˢԱfUj9ɱc3ݳ<İU|2g0VV[It8J]`#F30`δ hpBjDsP?Y82Xћ:̵5./qf/pX"6pe+ >g50 !A$$$""!)"G"! gK!%8*.0/,(%d$&$-6AKSaWnVnQI$A492.Z+l($Fb c.)"XOo?: Q!%;'( *+9-.s/.,(E$I@f e|vqؖSтU~Օֈ% · د?@H9ޫ'̭䬷߰-Opy q)13;ADhEC@=;:{;|<<;D8u2*"<   |)Hl]-洬>T[4pĮ#~91DD  R ?~?C#(.m57;>T>T:3j-)\*?0:sEO)W'[\]_@c@h.mLppnjtgekfh&kEl$kg=c^[7ZYXUPlIA 92.,y+(*'# , **sh%"%aI1BGCތإQ\Edz \ĶRZ*@פ;KB|b*B's< v r k E dI6l _ ?: <c#04EFL p+1 ##$ eM? L[F8z*LdU2gYX 7x  gG(2*9u?ACFSIJGBl:G0a%: o!y?<#e{ѰhveGō0 ǽJ%Fo X6!/',!2e55w3.(# ( !$'t)?)z'$"!u!3"#P#"!3YRj#=V(]m+vS ?" \w37r<x "oUٗϒ@+͍ӌ̷ĶWy#϶v9~?t2ï-:uJbb o !"!$%m'C((*('a''((z(G'$ ]1 U&l,ЖBìH'5ĭԮ )˱𱑱g}سƴϲ۫ݨϩYšAƹ9ْQJ׭"̒CϷ7ϩʅwrܛH<K'P ]%r)++,0h7@JaSiY[ZMW]RM HCz@>>@DIUOSCUTIPJtE A~>=>u@BDwGJsNS X]a*filnooomlk'llgmliOd\S"KC`=7(2N*tqm7ߣޱTCܢy)TW '$3NCQ^igmpIrYr rq)rrrCr*p)l`fS_W'QKHFEDA..X,!()$[!a} r/1NBG &R ,J/# z$(<-;1479;5=>@C"FIMQUX[k\\\[ZYXW WVVVVoVoUSRPtN9MfLK9KJI#IH|IJLgMMM LJ&H=GG?J!NR?WZ[xZVPIB<8*53f20o-C(d! }K8ć⼬b͡ҋ|(.'.qÍ8ʲAr6~j@ðϰ xѴ\ѳ*\Q8Sհ65ư/ļb@O/%NK,ȃ° 1ز0C ߰}W.W̲?FzO\ !n)-,)&%'G,1142F-$ J+ !$x'()))+j/38;>@RBRDFILNPPfOTN MbKH+E?92`,V'#!) N&"*d17[<??>y<8Q40,V,.4LB:5322F251O/,)!&! /vOu;%FH8q0+6J< ;4)vl[{Z$(*^+ -19DPkY]ZsSJJsB>X?CHBKIC8z, !f - L 2 A-hp 7)  ' w 9 1i+uMA~x֥9ngX)͢e^oǽONܫ˩s%KίJ4֮-߭;lXA_٧ojurM ^ТϭՍyݏvTRre S#J,=4j:=>;o85 335s8U96O7:t?DFDGjE(B>U<;::B:9*7j5469%@]H^QY`*cbR^,WFND<4.(#HFBI 7=- MW!_#|$~%5')>,,*f"GymݛACM̶r Y1/Lƀaϖ WSt& FiyDS"048G^sԒ9Kͭ۱yU~gZβ{0Vqm>gb4* ?`iPѰOʨ֛e~2G&%7ƈ̾,Aϐ? d=x\r|CK0~ #o I$2(+@/26;AH-OZTWXWUrTATUX\,`qbbaI_|\ZX XQXX.YOYLY\YYZ[t\ ]y]](^_`~b ddca^\bZZn\_bd(eyc5`)\:XTRPNLI=FB?=== @BFHKKKIFB>:7(65K79< @B6DADBw@=J;999:85T/&  5; _ &$X o ^g̸.o#bƇ< æȬԤ؀z(ח(qMlHm`سA"9ޭ#P57tѳ!z!POVtFݲq4eq[޲17{`61 جd} on:D[Z B )2u9mENX`Ddb]@W|QML9M0MKGB=:9:<=:t4S+  = Hr;{9y"'+7/133485555N6579< @DIMOQTSSR4PKKE<}2E'I6 @ u 6g0}t_{%0vp `#%&'b(6)j*+g-./0o1245W78X999s999:9`9386532c221;1u0/.-,:+E)&$"""B$&())&" |t  cUd` c3_qK6M":7.7P  % G#$%Y&g&%# C2m So:9,BG‡<N)S9"㫋yޭNb4fqqlʰBޱtԲ沚#)r %BT?"歺;ܫ٭6Il./ȜʸAѲqړVܖܓ#ݎ5=Tu \ *  0Y ) C/)%h-71Jef +`*L6@IN9d$Ar[0N罻ªø-Z1 i]w/߄$zqL j`2C 0G3 p M !!K""" #.# #U" 59 P;h!;?T \-d) ' @u_  #&:+ 0486˲ЉةYbvB+B0qSD)V W-Y\U5׸mSз]lEju[OTlи.йڹi$Ѹt: !}1 kl{%طa̶ӵ=#Xd;{זI|ۡ,cƝ ʳխTFLVHX3S4 !s&*.38>%EK(PDTtWY:\^ac fhDiiih-hg'gg gg$ggffffffvf@ff f,frfffffeeudadd fbghi{hf%d`]ZXV?USQOnMJH_FVDVB3@=;%965e31/-&+( &#:" Ck CT7:. r Yg,:<SR;G#(+!,{+*){) )(+&<#jr fsO٥ӑ2Cf0us ~t xHDr7l`D !=oxaq˽Ͻ]ܻzt)O -o׺кͺú;иz|:ׁv P- =EN^ks5vsniedeug i[i.hEfd,d3e+giihLfcbc_gloqnf\QG@<:73+"| Pe 8foHb|3!!4 *L~Aa59iٳs(S5tSy z~ "l%1(*:,-C--,,,`--0.G..-,+*)('<'&&&&+%#d" k#,V %,4=F5O[V'\`5dfh[iilgyd`mZ{S=KA77+  9]bLCٴj((ʱGt* гʴ)A-VзҸ@u{bv) 軟aQuc1%5C˺E:'G򲋰64+>W:? "!="4!q !%,5&@I QUX XV[TQ"NIDD>71 -**+-.-?)s#LF,={O_{jpjrp\mifdcd[egxj mmke[N@s3X)# !" "b Pzs4;kȤή.uEoځֲtx[77[a z '{V[?$Sgַ1,Qd9εE~>pB EVbI? 8"!s _ / P o UusJ(08=sADHMTl\cWilkhgb[T NBHC>l:V61+#f }AFѰD7Ÿ󸈸^I85FGgЗBSaG_y #6')1,-+/i013w456787c7654s43443G3S21/U.W-,i, ,S+**(&b%O$#H#""! =&@1v=IT\!bde fee0ed&dcscccBca=^YxRuKD?/;+7v2,^#t gM4`q.f-Dձα+>G㵒'h}طXڸ<`W5".Snj:ݷyӸI>ضsڵSʹ#f0亝r3>ɱ̽ώԻZٷo8?Dq]6v v< ,7}]H ` 4Bf's ֺNڈO8Ea!$).h37/=TCJaR7Z?af)jkkcjigRg&g)g:ggfcf ff6ftfff[feeve|eeeeee74*" E c6dχȕ=HK~V3OʹF̷5Xظ&UoemɹdlU@YK).Zź|AƹA︯Bh^*หLQJfM۵˳òMIJKŶڹ'bTƖ*ϲ;ӝ`֦5Wiz}D!Z-N|~L+9 # %Q&')&,--,)U%* >! Z߂ڛNhک&HE > 3l"0AR'aAkpCpqmig5ffxhiiihgg@ijkkj6igsgh5iiigeccofj3pFtyurl cbWI:(7HسPӠzy{۳i'2笌):=ςz;] 5  J!#p%%q%T%%&=(5))('&4&%v%$j#!P:>|  d Z g  qW<] d N*|~ 3J޸츄H󨵨 A$֞h}iV$^*@/p3x7;@6F3LSR@X]~bfik mXml lk`jjjTjjjjij,j jjKj}jjtj*ji\i ii&i8i3i*i "$Z%F&?)/:HXfqutoidbcfhihLfcbBcoegHihfRd-cd{hmrtqvjp_RkF;B35,% /XsMҤȨŹȹgywN 洆'A/ùuܺR׻1HrӺa/$޶A'ۙ{j 7P"@& *-14t6c89=;<>?@BBCUCCC(D<(;_97)767076!6854\4456729; @eF8NU[]YRIB@,EO]j(sHtm`6QA5,&X#H!'@qLiW$UuW٧ؕ*rLjœİͧm6&<))7"+50]/*i"9Z U4 .% ^W߇xƊZ±,dS>n⸤a4?DȾU£7 |į9!Ɵ+ ſ}%Eu0ΫgOѦ72ԃ ^ݯTn<7Ȳlֲ\4ķ͵6pδ 3tljHgnw |" (-3:AHbOU-[`dg0i@j|jjSihg+gfxfDf0f*f6f>f:f'ffeeeeeeeWedd_dTdmddddd|dadddUeef3ff ffcff6BNVY`d`d`a]hYWX \J`c4enc^WOHOC4@:??!ABCDCCBBBAAABAAAAABB6CCCCCOC@ClCCD8DCkCBhBTBBBBA@=;m:99::i976p4~3m33e442;0-q,"-S05BFILlNOPQRSU.X[5`eilml%jf.I13r567>8m7H51-)P&s$'$ %C&&%="o^2qsǜڱ MR ۸NϹ2pκjfM}_nsƺ.~#ֹdm!Ceζ~+h%$ԃف4ʸMY̿̏c)͔+vx\!22EV]eotuWsok"ig~gggg-ggZgQhikkkjYh#e)az\WPIB91*$rOlSl>%.6>CHKPTaZ__dgQg e`[{WU\U5X\ac d`a\XRV WZ_baZ$PC7.+,/10,' %C'/k IQY^be8hiiqihgg4h_ijkkkjihhfd)`)[UFQNxLK~KDJGDA@@CZGmJlKINF|BH@$AKEKRXp\T]N\YZKX?VSP_LGDBDHTMQRPKEAt@BG2LYNLF>$6C/+d)!)(}'$O!z[r:";'U,h1m5^76`41[.,--..3,&,("y'(_% z7 0 X FF/9ԅ({ݼj^_ܾ  rF@ٷK?緋췚P j^ kи4(k˹6/HȹD̸Ge5^D=˜5@HӔ\:Iñ ˀdٸ09B`؜c!` Wvl  %c)28:8Z53$6=IWcQlo}njfcccHe,f f eccccdddcbbBbc>de@edccb#ccdedcdcccdoeee>ed/dDddteeeledddJfFhijlol8k9hhc]8UdLB9/&\ pRXf*̜ȄެHشX(XjdzWϵԵH{%׻λPٺֺY7 udNĹ﹦JD1=W#Q6wƬœ:eʴ cjͧt "[foQ߅3Ӊ!< ƞXɹΪ7ޝ'śh&nj ɒՋP|@Sr42b-gYU~ T""!?KM v }W T^)8 ] P E U{S" U!#',2S8M:綋 ǵqt]ظV)꺼(`Gʺұ߄wf "*L27:):72&.*('&v$/13I `1*K?Gl˲0ºWMDX9!꧿Iﺞ>ۍ)%:  = s%6CGJSXWQIDBMD}FFBv8*Y e 4 "$ %5'+\2:CUJMLH%C=9777762.:*E&#w uv \) QI %aϙ7=9{̴x8d|.;V^Ɠ»ڱVR^`XJZZ'.U H, #!(-28u?FWNV"_gmrssqplhiOf_c `w[5UM"E=Q8H67;@vEHIHFDIDE I~MQTSPJCv<7459?bDG8HpE@2912,('# |Sp!$1& &#{ nR $&f'%y"fX A <(CنЪЈ1ғsK ɹƳZP޹@ڳٲ ݲpp`(%ﹷɹTd1˹S 8su%kY:IqI͵]ճ Jհ]sy̐niq!Vz"%)()",C/38>EC*HLgQXV[a&fjul mlRjWhf/fPffzggg gfEfm=:17/423_7=D'KQOV9Y$Z-"5%'+.&.( l $NL@Rޥ>ٺӭQ!<s/ZnG9_ w[Ӿ̾3 Ĵ6ž dˮkiƉLl~nг׫n={׎qn 1K}XQC V  \RGv?{k6.#7=Z< /40=CBe;3Q.-/49;X;C964456652.P*% P)B*J̙Ȟđ1o̾opWөף`u0k~G =x)!&6*.1L6;@EIbMPSVY\'_aZbccEd&e&fgg`gfedcd7d'dcca_][?ZXVTRP'O:NMMLJGDARACI|R\dkmmk$ifeeGfffffg?iUkmDmTkf_WwN7E#<3) = nE#ɾ۷ѯ1kDX븩1\ zz1+V =;S*b]4ϽȽ߼ۺ+[>)<սIλL|L:H*Py)n/DYUajqDtt\rAnieoc?cvd8fgLhhikmnl_dVBE2 C , :Ze BX .{I#|((K"ny9#9\-)?9Oj['cbgiZkmnRon!mjhggfdta[UMMGtB#?<95"0)|!C% O*E(ӓJܷmRBݴQڵVim!jH-ܶq]G'hK0e I{#7(S,/2b579@CDjFgGHpHHbIIJJJIuH GEDDCBAY@>=>5BUHPZck.op2n kgeeffghhhJgEghjmooFle\+Q%FwKƲӶrW  k f22B#'*(.159=?A{D]GJLPvSVY[ZeX{TO'KGEEFGH6GEbDDTGLT]eknmkCi6hhkmSmljcYMA5,9&" !"L#W"S0 S c^"O.9CLU[`Qceb^VzMSCz90-*%$q&*e05855.=!%u:fcą]Ʀ'+! hѮU eI  2E{$Uʆ;믰U(ɵ/1VOcWҥ:ߜ`t"&)3-X.,'!/  TgwyDyr$߳FK ge5|ۿ`Ey&lxǿEԤSɭAS Rd!!| "[%)m-/q/,Y(#<  m$t)z.223<30,($z"!!{""5" $p2]udL׏gZ͓ɪk@>g~59Ӯͩ5+œU^%Y9ފ;i80- lvV"&+T169;?>DIP_W^ekWnoloknmkUjhgffghii}hfe+eg=lqu4untbQH=;*&?Yrfݭ$nevְlՎ՘zޕU {W h imay$I p "&2\?(: {)s? MbL0b3#)2 `OԴb>ĐbSV1q뷹ܹغ5THú}L[$kQ}8߷Ʒzʸ^I4x]%ÇYvƧϘҝGւوؤ#Νqrұղ7뵒ŷ\۷%ںH)ܤѮ>.A8 ~$6SJ\k@siurnhmecMdefmgHgfeee8ffgjhhhohg*gf4f*fTfjf<;b:29 8)766F5(42z1/b.,S+)(}'&%A%w$l#!d1ish,` ( f 7 !OG d ^29PCܬb8Jؼׄג״׹yDyIҏҨOߟi@$,2T6H88R87A52/b,W($ " ~L BMݐב^PAݰYDz9s~?~ַطٷ#H_G$2̸帼b񷙷qŷ췏+߶˱~%p`ǐH2ҘMٛUTsBuIx O1p m# !q!E!!#4'[*:+'[X->+=bIqMLJH0ED4GKvPSqUUSRRSNUVWWCWVVVWWWWV%TR-PN'NMLK=JzHFED`DCCA?>o754322d22E10.-+f*)(Y('+'j&{%m$C#! x{Id}[!J z ^ 7  _(9L*fS2F7q(nw}6|0v?k|Q_TS,YRPuE^BG@*J-q}ͱӭjh81);Bb!U]ìA n 8 &,427;n@EINNR+VKY[%^E`hbdf}hijpkk|kDkkj|jiigfe{dfc=b`+_6]-[AYWtVUTSQYOHLHEB@0? ><;:853t1/-x,+))(&2%#! TZ~{  ?\{{!F0Cػַe4х͆Uaʎ ü*rE ӿ{1߾Zv^ٻLżMɽ)tK鿳[%/;āŀ_ʎ˄ CAA{ 5|ј`]Ժw0܊ ݴݯm8qq"nm0bq{( qo(I  8[ ewhb"(1=KmYte;ns@tspn n-nnn nkhd `h[~V;QK\E>82,'"zY(dڗР‰2t_̰+۳ȵضķI.¶7aGV䷂h3~ѩ}߫I| "3EVfpuu"rmigghinjiyh-gf[ghjl5ljiOgf=TBKpӮ GGO< +#(,036}8#;?>ADGIJJKKfMOQS?T}SQ8OLcKJZJBJIHGkFeED^DCB0A>;Y9A75U5543 2/-+,*!)(('&%b$"!f<y4D > - kJ?] ny] pt $  (- 00.t-},+*+)&-"L + L?ضu1%βJ屹>jķ2tܷ)A)lθ#㸂X͸45CO_wȵ]~ ҮA.>!_X͠]هۜ,#hqfu^yu& S l4k%K !! y [| %Bʵ_Āɻ˴Ј- OD!'K-248A?GR9\Aeknnl1jglfLffghggzf%f_ffzggggf"f0ffgdg?gffeee|ff gfe%edJe7fUghJhggffg}ijRkj gb]YU;SQ$PMJxFAO=9 7,531.+ ($'"z z|D 4hrM`3/Y= [T0)מ2~GĨíµw#b}x-K۴Ir²*^ްٰO5۴Y"yɹغg8g"?h {>uɎ5\bb $U1:?AA@@ADJGHRصVѼ!2[A.0Ӏgْ&?-oid6tEÂⵢzdjTδjaR $=KSdoItrsok`ieikltl'ib]ZQqJE?CvBB@>;867"78:K=>f??>u>d?RACFHJKzLMOJQS^VX3ZV[<\*]M^_Xabcc^cqb`a`B`{`aa"bba```aabcgb`^,[XV-VVBX_Z\^abcdddc8cbzbbb'cbGb`a``acwfh^ji-g bZQGyɹY ̼T``WӼ0:M!۾yÿa޿Rj@Kv7˾;,迆žE|6N+8ʽ(0psʿkMkޫqбi -WFC\lKvwri\a\)]bin#l/bMQ =*v<!W&'N'%%% '(*Q+-3e=JXdkjbrXOJaLS]eih^d_z]_e5l|o+l`O9#% :~h:v;`YX Ck-uq"&)+--8/-135f779768 <1CLW_ e;fd`^_ eltxujJPR2UTEROKHFKCf@F=9.5/( US~ 1 c &۳xh5+ʴ=DZ@'6/D'`'ǿUH1Ӿ] ՎN& ]!G%B*1)=kK[h7rftnUcTXGm>;?LGPVYYU[QSN|MNQtT,V2VT ROML/MMtNGN$M.KHG$FQF>GHGFBJ>:9:V?E LgOONhH>E4#+%}$&+.B0 /+U'#!1!!""-!n t] GP P  Q B  kv "+8,EQ\bdb]]XPSOL=JF4A91)v"{ J]T%݀-Ѭʏmض7w :ٿI+‘~q2k\sÊ'• 1ÏJLemOU:F/ѿy3v׽ݻú鹫FjŠƯ\vբאފH]!vG I,X b @!"$&(*++E,,-y.q/l0\1I24354<5I6.77v88f99:=;;;;;;d;\;P;;{:987R7~78|8l8[7J502u.)*O%~=%HBEծlq7@%I9L]ej)qqmwga\[\V_Laa`][`\_e5koqn<s-W`tF@r kzC.89z%$'"0ZžȾ-}ƿǿٿWe"ȿ5Ͼs R-q3½yϼrhc –“c#\ Tz۲eaR9_ a;[da2"&g),-1*7<:8754L31?/,*<*+/$6>HQY`'eghPhggsfee_ed]b]V+M6Bp7Q.'# }(ƫgȰ->xjĶDܻpjeUλ}78D P˿hž+AоZVȾ:c׽E{A黍'fBX̺voʷ/Pnlȫ*҃նآUxr8_vE -w +JgY !"($m%&(A*+=-x./0273B45p555 66/77877$7 7789::9;85e30- (o  0ۖ{ښ ]o`A :!a'H,048U=B(IO,V[`!dfghlhgfedcdTdd.eeeeedhdd:eeffJfTe;dRcccdf@hihg/dZ` \WSmPMJH6FCYA>k<:7542/-*'$!b@Oky! QxXZzggE%R(޴ښؠ֍Թvѳ _LHʎȅHǥ]Ƌ3_@8ƽZԅg  6 EKM9e҇~ 41Ux>hʻ=LKGH.hۼ̶=Sݼ>̽䰮ccǢ8CPKzn"-?7g>CFGbFB=i9n78UK4/T/00,l%8{  n K8uaM]|'D=[ W 2 !r#$%"&&%%%%%z%$*$##"/"! .Ql_up hPf#,7pFUcmspssp(l}hff fdaZER(I@9&4R/B*/$T B"3Ѵƴ1G, ]2R$ʺ~3Ļp5C%ػxz^o׺源r <.`BRȲ;ɹr-+՘'7S޼_BySsTo'8b4-@_ jRab z .!q".$%['''`'9''))+,--,+***(&O  =waHҶ]^24nI!3AGB5%;q, D][bl?sodVKFJHOW_dedcacbceBg~gfed!drdeeesedcbaKa`_^%^O]d\/[yYKWTER;PNdNNuMKJIEA=:876531/-,*)$(C&#A!TG9: { wm(.oN$sn*!pߒڔSڝێ ~8J̾ʴ|ưĜmYpu,L8ֿ#(NzzGuؾ \¯ž^ӝ'R$f 2 &.F10-*)*9-~//-' ci8 T v_ ޘ܎Zdp7AbdѴw͸g|HHWHcS.ιйVҽͺչ?6# "N0s 5SҶ $,4;E@qDHKPSTpX\_da>p=Fs|qi V:(/I58:;;d;9S735/*('$"!3 an"cS.fљn>e]7&iEo)B0Ans)h)is?꽧GQnW$ ھ=C9>RfR`%0'9/<59J=@DI{O&UYH]^b_2__]__``_d^\(\J\C]^__^X]1\[\^=`a`^(] \H\]_`;`]ZXEWX[^_])ZhVzU_Y4b~mvxoZ2<08.]ǮǟKąg9UϹP ġohڢyZbn`P Zl|0%+Q1&4N3*/f)# G "$&&$"  "h(70E9BKSZ5`c[e3ed~bma```l]VXPwG=5-|(#Ev >qϹ|Y1qCdcٿQAl™O«.68Xcyڿ쿕x׹i$B5"0/ъ ZֺDw߽Z,8ݦJ ϼdxNZJ1t[ź2uio;!&}+/53<%ENPX_c3e%da_^d^^W__#_^]] ^^ _4_^m^]]]6^^^?^].]\\X]]]]]\\\}\\]]]j]\\\]^_'`_{^\ZXV'UdShQPOM)KrIHF4EYC&A>bڎښ+JWI()+c%δ-굂EM{X> RA !#&+!16c94j-#eOCkl^}fsCǿ[C()FTNUἻxɾ'۽̽6<}ȶּ8:n]ߺ5tl=j7^cvk| <6 F$rTw '&2I@8O]hDogpHmhAe-exh4m5p_n+fUXG8(/,^077?CAU;m2)"|Am XSWj!ή $*àؾ꽞r{r4ye10ѺFN%)`ùTlpsʑWϵu&ջ*lلڄs}ݔpJ5: 4iYDP 8-U Xv !YI@p=' >!9"#|####J$$%&'-(V(`(n(()L)O)((E'&''0) **(&]"(jw:!ֵ1;ɮ ^5Y\,& V %)D-2.7<4;97L5%391/!.w,h*'$!caq,wX8qn0:s nis.LR- H~"/:`BEETCA@=s;974/F*#HD 5_բÆEf-3yY{ϸ ܸR4V5ܺ51׺ߺ,XZ1CKʻ)Vd85ﺑ?!+JO&EڸNpǸJ lܴt4 mʦ1ԻGۂ2Z9QX&r# % c IQ zZԍá6vNnw ; sjo&/>7<AvE>KR[c=jxmmek~hf%eceIfffed ddde\fhfedcc$ddeeEendcScc=dd1ed9dkcbccdeedcbbc"dQeOffTf0enca/^ZW)S^O L9IFDyB?< :^7A53,20?.+(&r&6(1,2"9A`IRZck,pqboiaNZT$QOKSDI6 .󶫩񦰬Ⱥ񼩽ûdIOIεٱ^} ނޖޅޯNՂBFI!NSZE`[eh3j3j]imhggggygfAfeeeRfff*feddd/eeeeWedddwe:ffgflffe:ff)g9gfed^dkdde ffeuerfhmfq\tsnb6R?+/G *d>߾@P EڞրԾbYȫømM߳&{ҶbmԹEԸ帇f.\<ָ񺰻ͻ^ѹ%ϺnET򺠺z>pк$qڹٸܷ ö wrj,(jL黩lp˶x}ħϵ'3A.KQW1]_dkaqItspllhffhijtj0igggFjm qsEtron+g\N=('MʱC޼wB(ՑXla:K31#(*.39?EKPfU5Y\_ cLf ijkJk*jhgggtgg+h7h+h[hhicjojdigc_[XVU}TSPMIvEA0>;975Z30-*'$"J )S' & lN#vuc1lt434R9L߃:(W[ٛٔٛhw ӫҔҝk )7Ϗ?M}εΩ`>;jLQ[LˇG&#+;Tp˧&_̱̌Mͫ|)ЏФxKLЯuьҵնE=ۧ6~ ,߆݅;[xRY 9v?9%3=]CaFFE?C @;i6/'* }v52k =2|Ƚ аاtʰI܋!.%)/5:='?A?=?~?U?=6B+_ '#"8͜ӾgaƗИG{U}ۅTP  M WG{5"#%!')r+.023[4y456;A KU`i0pr>r@ohkgeevfghJihggffghikmopolg{^pSF9-" FW*2YՋı|ﺮ}e,M^ݴg F̴M-Ʋ#ҳw̴ܴmh<ٸl4;G^sm³Rm[ ݸV5Y4L5 &(2ZQ9v40//1#5787p4l0,Z*O)%)('%#!!#%'('J$= q]!##P"#"~% '&%Q$$l(.7Y@iGaKKJ]GEWFJGPWi_enge_PVI_;,aU5}: սųT 鿽mt死*``0VR/} ⶵ}Xx󷡷eǵ0|S/^ ƵHȓS޽yG0[y-FqIh <  ?  ;") 18@ggh?iihg3g7ggh!i]i"ihhg,hhiiiCihgg@hhiiisiMiickmo!q,p=le[=OB7,;$7,ZM Z`!d>Ü; 8g{ z!6CeZƸ04n_^h;mM˸{>򯇭@Jֻ.Miٽ r% d M "#$ &'2)*`,-:...;// 0Z0W00q/.q.X... /.p.--},Z,z,,,,S,+B+**8+w++++++++m++*)~)1)))(('+'}&&6&& 'Y'/'&%$$#($i$$`$$#.#""! a"y)R2y<ῤPɺȷ۴ZIɱ? 淃zXƶy󶰷oеX=CIŻ\O; kl%].~6f=-C`HMSZagXlznMnl?jDh.gggThh}hg`gffg[gsgUgff@ff8fdffffqfcfpfffgTggggggggggggg;gfwfwf,ghj'mn^nkRf^ThJ?5m*Nbٕȥ]ɫ."ƧͰьu{lcӇ2}ѾҢ̲0KqLz` ַɶ嵆C :xfd,d56׉3BMl 3 HZFiRrut qligg{h,ibihhig}ghjmpLrqnh`UMJ?X6.O)$B ( !TXd>٨R`͌̇:8ʦ!˯={@1`l1֬/ڍC3[dd w>T.DʱZůTֲ@=Rs%Է嵢;ͱ~ɴqrXLޠ( lQ#(d-16:?CGVK^NPgSUXX[]`xaCbb ccsdyeZfffedcbaaae`Q_]o\[Y YHX.WUvSQNMMOR0VZ_cfh]i ih g/fee:fff,fYetddxdfhjkmnmibYjO6D,9.$Z 5 kK*~\0JhRMcp̻LͺF̹to`0/r_J칹ɺ4UT`ٻsyABo )Bg)6ETako,qomKlklmmlifUa`\LW!RLnF?92m,&k!?%"GO K޽ԹЖ.Bm[+*+X6ͻvXtc%Ȕ2ͷQ߲Rm:ki i`ijempcstrlqb;TCx2H"5Trђ¨N˧Yg䴳ඩж2d¶ݵI̲Ѱoϥ֦ S(*2G1q U.# >}tU  ^"n0.>7JSZ `cfgfc^X;SM|H/A5n$ -M[иEݱA6gW=ֿVȪ"ۘ'^ ( mv)9/HS[a#fj~n4q+rpmh9cN]WR!NJFA=8D3{-~'!|_ @ ט0uƛHͩ Gl߳ܲJײvwѶش>~_ǹ=)yQz)!VjO#1=EIJXJKNU^ hottrmniecdb`i^eZ UNH8C>;7z4o0+2&] L +t"T_)Xw;3yVFJn$M$,d8i`xX# aX[J =pi}l g u7  puuXjڏEٌktJzDo fT:K Eb! a$| :{(.2;,EFOYckGq^sfrsokhpggijlmmlUkh>e`@[EUCOIDK@@< 83 /K*%!dS EOM!r{._LÈ$t8zؕhxtI7!V$E$!T!}!: N # ,G 2QtGuF k#5F0)?"x < ~ [ <BV A`"P,5c=B EEREDD*EDC@~<7W1+[&!NW R?$H4Tc}X+iD޸B۷lGԹ =}պ)p}MgҹHd#KD;fl* ^ĸ縀ɷҷURj*:Jr೙}kȬϴi,=N|^jqsqQmh]eccdee^ed8d^deffgfeDed eveeeedc}bb%ccCdd.c4baabd*ffFfda,_\[YzXV]TQO%ML~KJIFCd>9520P/-e+f($!5e0| 5 vZ\A6j\lD%:`m]൸Cճ.8ԽզtcQ3!®R۶ļ~ދ!F֊y:%69LB83 8SaC$M D0jDseֵ#C緪ua̍z!ہ߰|"1) "9!$'z*Y-04d8;>@BCEHKqN[P0Q/QPRQRqUXu\r_oab'ccd>dcbs`:^\_\]_Capa_\YDY\dmuxZ|HmH z 8 enBMHޑ_^ɢ bLTA2D"m|1=u ۲F(o&P7W̏?5dךڿ=H !"'+/}3F7s;#@hE)K3QVW ]aexggvfndNb`$`k`Iabb?ba`a``abcUd/dcbba-bb,cFcbb7a`6`L````8`_m__/aHcel[)%0;FQPkX^bded[c`];ZUSQ}LGB >936-%  Lf fh+j̵ȴеY]9z9THG̼Ӽ*Nhx~nqwؽ0ػ:ĺ~U6 :ۼMLؼ96vN~{*/^0].+*1+J-/22291/._.Z.R.-,}+);'#9= R{ex`Q "#"@xL{w, B/gMŧWZP xzѳ؆8S & +v-R.4...038>CH]MPES-UVX[]`c fg hgf6edaccc)c@cIccdfhklmSmMjcYMD@3)#!R#'-39>pCG-LtPT|VV(UQ'MIFEFwGFm@^5$dEZEԦ9QY%!~.Dz᳐޶]ƲԷ4Q„ntlP4طnĺV sf/hB!8Wwj/#1?L0WH]^\XTRIS4W_]kdjnoqmh/bZKS6LE+@:50*#$D 6{=и&u [вf[Gسϴm/RSѴõDD̰LP1ܷ-t3駒Y> W<y1"%)-00/-,-.133S.$6~:HO3Uݧ׆ҝDؚ\L/>!IOQ/QOL(KIGB<4a,$qr  V' +O k "'+*,0@6=F@OUYXU R:ONPUY]_``9`#_^^`abcccNba`_^][YgWVVUU=UeTRXPfM=J(GBDA?x<97a53100`.1,)'$Q" Xo4`+ F vO 4^Jn+,{F4AߕQGڞٔ QOء՞NМ}لng n@մ"ɓ -;~ڇy|/WLo(<Ռɸ˅܎J c 1 W u x0CѡδJԲhw(ײ@ B^vҴȴVRô.sp49쵌VN`/䯈Q8/ë>Џي>/ AX*fb=  } |sY << =w==>I>>>/?Y?V?5?>>m>5>===h=d=== >>=T=<;S;5;3;:962 -'"!&b,1"596052h0..^02~4N5X41-($` e#)MSݶ/>L>*zE# #9! *2J:@/FJ[OTZa7hDm,ppn@lig@gghixihgf3ghkXo*rMsqsmf#\P\D8.%',HfߏاOՃַؓe̻q 1wͳlԱ1ֳǴ*i1}A̻7򸳸R AX6)* r,vbw̲:̷蹘俸vǧѮԁڬqx0; * { / ? q*) [T!$(*,)./02468B:;<@>?;ABDGENFPG:63q1y/-t+)i&q#  i% JUlڭa;۴Z14yiƷtµٵʶ4=7io,7Ɩ֫ gDڈڰ(GU_*= PX*2 !R#B%<'(!******+,q---Z-,,+o,y-./ 0/.&-+)('&&%%$$^#X"!ygdU b s d D  3Roc@yvw=C0?qQR?ll߇0ݦ&ܦ,ۯ:d غزؕU,TքԦԾ*ե8֯)ա0ӊF ӊ$KՎզ՚ղ~.`ؖ؆hx<#{+x}PBe^C \M9W"@ZͿWXߐQ H),d*  7-,ΙӎحܮxSM`f!e Y2V!-#$&g)&-169!<<;9p51+%o 0   "u##6$$$x$?# !   QM#Q+-5_M\j8~{KXӯ^6 ҼQйi5r]ս_ڤ۾ݚi-(|d}TT ^ %"h= b 6 I C5Y#yZ1J !"p#4$$%%%$%%W&H'H( )x)))))*t***&*s)(Z(E(\(k( (e'V&G%$^$$$$k"wj V a Hh wM-)"(~.2=4Q30-+.+Y,9.//.Z-V,-/3j8;<;&963x2f221U0-*(&&%N%~#N 4es L ,w+ k]H[Z6ژgϺ͋ ώЀo׀ۢ2sE@؂iyq͕kò ƸQ1j1D'їԲצPG|Nu-4I6 D |!$&(S*+*-.d0(23555L544)556j77"7$64322}2s221/-+'*)w((p'Z&$"j Zp%ik   e2S18\ k+$FR`B5%,ݻڲڂw, UՄwL;zz $;#^!AhЎU.Р,ԿV2- <J/4W ac 9 J "V/{`e/Œʦ,+͛Ol]ʧ\e,s /GK#a (4ݕ۬( Wմ՗2Յp%Ҹii;Ή'_МiD?(g)9^0!1^kvb B  A8x4. !"#$Q%2&2'z()z+,-F._.@.&.C..i/H0"112133144555K5E5M5c55 66 7A7B77666C778L8A887-7666777076665S5'5)5*5,54x433M21111111H10//S.-H-,^,+D+*)?)r('&%0%$0$#$#V"I!( pC\'*i IoK,{ /  N 3?4kbY ]Zq!8~"-&7+ 65mI82&R1al9O=gD%_߄=ηЙE7? PVƴU R5󫬭 ֻŷ˧} d+*1 ;"',T15: >A/EpHKbN QfSUwW*YZ[\]@^^+_x___k_^o^]\]\h\[ZY-WU2SQPOEOSNLJGE|Bx@?8>=pŤrʻXNȿw?ÙRח" 9bpPG!gm{C BWA!#&?)+-/24E7:<>}@ABC"E}FHITKLCNRO PcPlPJP0P>PP6QQnRR;RQPOHOOO ONML*KIHG GEAD[Bf@>==<<;:86^5R43'3O20.,*)*)C)T)('%#"m" ##h$#~"! C"&,39N=h=:6H3c1135n640*u#LD `  CN }vߍݢܡFGfmlMmC}ΕêsnTuڬجJ~+ _u kbfz˨^w9# I . * evy?)SqSٴL6p-ˈ̀Fɟ+QME̋2CPUˠǞfćϑۆ*p&o: j .  8S-ivٗԃρva;9ωѵyٰ{WV $wf"'-~4itACDNGJM7QS VXW XXY(Z[l];_`aYbxbJb baaHa`}`_^]u\&[YXNXW$W-VTyRO%MJHGFFDB?<^96432w1/f-*'[%a#!U =v;\p) f2+VD4I؟վ\InQmp6ɵTAȪLj! 5,%n> F(dWfXB~"=mѾõƱ.OQ(4{%w )OYp %v+Q03430,(N%%#"9!wEK>;aO-lW%ͯ1Үv8էӫ¼<ǍOھR2zmEMkQL "YeS =mX $ $ X  oWkBo%_9H}ZA >fPD6V!c (X[1ר w Icʰɬ8«Qد574Y״2=%DA *<%*/37;%@RDUHLORUHY\_cqegg3hhgg;hh@iiiiNihggfdcb1a_b^\o[YfXV,U_SQvOfMNKdIGFDDCA @->@{ 0 $ 2  U]2 t2QB> 6 U( zNӟ~_M6 i)yJ- 4س*wrZBbBU=PնŶip s񴵴ӴXSXas)9δ!ײ2ҭP|GMt֋ڳJݐ݅Ih@I7egw}3EErao5#kB*& %*.1582=jB'HMRrVXCYX#XWWDXX5YXVTRQSV[aagknnm lmj8i}hAh3hNhnhhhViiiiniihhheh0hgggyhikcmn m)je_YSMGPAE:2*#+ 3 v "z&T(('%1#? ' c 2NO7WfN ]*gH19R/1g.ހA7ڥ ۊh EY֝ ؓ֊ױ,)cK)R:DFZ. QHxXt֢ԆȢNB겧#J}wt O;s𭣬SaõR ݙ.N|w jA;; tiAĤԳ+ЯlQCĢ$nNח/փɜi]=QBC:UEf.?cβiϨwܓ>vy t"&)+h.y1v5:>CGKK'NPRTVxXY [W\]^`aaaaa``````!_^#]s\\[F[jZ5YWV!VVAV=VUSPMgJG F$EDDC{A?=<;^;::875]4333,3120.D-,+++%+(*(&$"! 6BYMg~Ngt > ( >  T Sn=!%c)+-,*'#!C (c&1A w k˖F޳!Xί_dӯZӳyԴB9SX$[ܳnĴ3iHNS +籓nîĹǹ{6Zױݯ=Z.+Ckn!,  YEE@S!\#/"-DOHRK$'H1:CKSRW7[m]^_`bd?giikk1l9l(ll|k3jgSd `[WUS!SSRRPlO,NfMMLLKJbI3HGGcHIQIHGD.B?F>:=~<;:49O7 52/,({$e.  C 6 d B % C tlx ʧTҕr#$لؐAݜw~pJ)x4>FnMRTUTiS_QaOMTLKqI,GD@;o7Z3/+}'"E [W '1}eIҡx`6Qйn005|+<{%gxGuV ٯEűZZ-ձ|%s౳ֱݱİpYiZB W q ?3 &+#/02y3593>B0GJ4MORVY\bchlnnkhc`k^B]\l\[m[ZxZZ1YZW+TO-JD@??B GPKN_PPONLKhK-KJ"JHjFC>8$1( <>rLUyܩٜںځ gܧ.+ެx*o4/z.Go;0?'M:}|&&A0H\&dFe 4~(T z%[*q.X143b4856677,7i642Z0T-)|% B  Q\سӃΝI3'ïgʮA/@бn_N7ԳRlXMh2mAY!Xܵ\ѲB Ѷn#U ҇U R T"e*!1B7S=DK!TT\^chkZmnnopq_rur!rqpomGj0eS^;VMEB`?[%><:976j66c5g4l3D347<`BG'KELJwG,C?;890741/-'a!&\3 # ,WJG84;My{܆ )۟mާ߽^HZ2Gghbm`p  .!$&'c!w"&*./2p455Y41;.)$ Xa׳oO3î+ѴuŲG:ZE,1qeد7]FBČͶ&p |U' qkQ "&+/ 47;>`DKT^g_n$rrq1ol-kXjjAjjNkldnXp~qp.mwf$]pRHI?#9w532P11/1,($ hes 0=xf&4qׅ җ}ϒ!UsSſ$X/Eu}xòY #]ȶ^͇̉sP\љ!jاFZڦDE܂ ,gYc61#a.?Sv98EF$Po}7Tץ˚ƎÛ@ :~%Ŷܚ61RW!'P-Q2?7=;8656(:E@KHLQOZcbhm.pp pnkCi8geca]=XPH>05L,#K :\ Ez3걞ٳB^ SӷmfŸ%<繛ںͻ̼64*X.GIjlH\ D[AUZ׽Ӝe_o/;ϴwS+T ӲӰ[^9tLug–)Cʮ# 8nG4Z :CTS K rs9AlR0 !!7""<##$-%%%&&&&0'((P).)('&Y&m&&&&$!cE &&ky-=;ƌӰr{1) Oe,"'- 3':BKkUX^ej(mGmkigbf3ffghihChgg hhijj,jigff,gghIhg/excbdJhmrv_u~omdlUzD3% P˜²Vĭ'ø㹲⹜o5 wQ緱J󺘻຀<~iVQXqnq,8+ d +Za*C5}!`K J  hrS~+acbPl%gMU  rm9dOcg=69^ovcA/{zTW=B?''U2ih/a )3 X}r9t{S QYmS$|8DL|/|KujG6]4{L,z<3KFR[xeh42b*2I.Qv0FvbT8m>h}If[,XXY;r  < v  &1}:BPG{J^LMPRZVY\B^^n^]\M[UYVQI.Ai7-$M~ xIX݋yDպʳ~@°Ra״ s==%ٵ8ϵo*ݮ=^U)M+= '1:BJQVRZ"\\\[$[ZXXUR3OXKGC]@SHpW3sv%Y-ހ05?3 #Yx}|KHa;P8Db  . 9@(yjhO5}3UL*|B3|x1J:>SJ6IK4+JBO_4ON_=V' |vttqB H  r  ] 1npT{FCz 0pŔbh7x̌adٖوٱQ޴v+ $(;%*W.1408;,>:?I>r;73w11H284453.&5 kx+FYRQ 7n%S-5o?7IRX\\7ZUNVG@&92W,&@"-\!d)_3p>IQVXWOUQNK+IEfff2fe'eddWeefeded|dddAeepee{dddmdd?P@@@S@??>>>>?>>7>=b==//6002C6];@DECv=60-.28=@ A>: 7P4N3357:>>BFIL2N7NM9K~IHFD?8-  };:T?U˽DRAѹعn݄ۜ,S~jNN 4!*%(+I.023444420-(#<nD! %'g)) **,/37;>N?W?>%=m;W963/+B' #\, uRbo:,͵/yoS^jQ:;Yó޳laȵzT&mk#\`6+ܭĭDc&hčo՚ޭ$} tdM!&+80369<?ZA8CDKFH`JCMPS{VXY [o\D^`c gil}m(nRnnmllkVjjiaYPG?8W1+-%^c 1DZ5~ھ؍֛LK$"d#cԴkԷh趒N-qѸµ7otvބ'( 6[$).$147;@MDGJLNuPR+U}W:Y ZYYYXKXXYp[\]T_*abqde2g.hhhh`hhh~h8i2j4klHl{kidu^VMNFB@DJS\c\hiNhefca9a`r_D\VUOmF<2<(UҬ}G_x߸AC3)SBYܷT۷6)fp]eҖݾQc<1t [ @}[^^"/+?5?IRX]_``_&^[X_TOAJD@;8i65F43V2;0,i("b)& UP`ݧb\>긶ٱT [aL[Sϵ% ͵nc 7_dЩ7PBO3i H#z+158:3;Zk>>@=<AcEiIXMQTCX.\h`dchk^lQlCkihOhxhhiii2ihhhhhYhgUgfffgg!gPgFhSjm6qt3to=f&WDh/ Or :_e<2bBuH> a>t-|๽2.M';sOhx{Ӹpdϛʙk ;@J}j&Jֺƺк`޹!UcԺrNM|#Դ}yħSlNW #d!t$}'*.w1~468:B<)>j@BEFHGG_FEEEEF\GGRGrFRECDCCBBBBOCADEHKNyQ5SSRP~NKIHHIKNdRoU]WWfUQ&KDw>9778j::r95/(! k; $Lh5T)jHB! 6 OQ#^'+ 0?47:<=>k??0@?M>; 83.)$!vP  ADjHKNP@RSSTVqY ]adhMjkkkjihgKgFgg'hh$iEi/ihhhEiiioih8hgghikkl3kigsecap_&\WQJCA=7p2D-F'tb,8,ݬS|C V'2۴9) ^*L,󲨱ʱEѵ¸འ l־ە'61p c i #|?|"(b/8ZDP8\eolopo!nlVlkKk+jh~gpg'ilpDtu|smdYND(<4V.n'M0tܝ Lk*2)ڵ@ޱC^ϱMpkɲXݳC?dв ̰|`ľ~PƹƸ W5TIJ뱂2ѳ%L|O˵1=OD !*<L1Y7cjPn950t,($g!7AI O b4iG$E^}~xM {%Ms9Tb/@cXB)&FWtujJo٬`Wh+³[yeÃ}ޚ8S m "&*/q4Q9> CgHNeU\c.jnqYsjsrqnel7ieaQ]YTOJE>8g3.+(N&,#* y#r7գǐyE PSRfxUvT\(wg)`3:YR =K"'+)/1<4609;>OACEdGHjIIII`IHLHG/GFED9C|A?=; :87654A3o1a/.-*(&%T#! @9CW$( < q e  1_h %#`!t(<07>-DHJMOPRhSS!QM_ID?;62,&GwE:AX=kHˑfޯe!`XԳ*'=׷𶩷klӶ左践hAU&۹1"^ܸzѹB\ϼrGb R?.ibQh B q  isiB'1 9CR;:d\(,\\:jU @ pFD/lf`1C8j!QI "q$%C'n(e)))=(%E":>!! rf!0## ;D? [0=6ލڗ״ծOJ7)y\/u P~ D%)c-036r:G>9BEpIhLOKQvSUWoY[\]^_l`arasa,ay`_^p]a\V[JZ+YWVrU-TRQ7PNLJyH$FCA?=:VskV<3Hpz#j޲/B᱁uɱA:KƯ%ڬ{\Ȳ±0z9ӊՎW$%xl vaN:Hr# \ xc !u#$L&')_+@-/01234m5T6Z7J8*99[::w;H?@{AAmBBCDEFGGG.GpFE#EDDDDDFDCfCB.BeAu@p?_>W=,<:83a-r$@P 57֪Ѫγ2ʈlU΄҈})33 o%)-Q2~7=B4HLPsSUXZ]`cMfghhhhhij)k*krj7iggfheddca_]L[nY X^WWWTWWXnY:ZaZfYVS^NI5FXD-DGEFGHHwI:KWN#RJU VSLA86+#q"u ) \\J j7 ڨ̎4tCK׸ R"J8E%- o~MnrmE45@:涻ֶ𶭶o0$NLƒ@T0ٔ> uo  Hd0.3g}Y+:c  !*4 >eF7MRVYQ[*[TY2VR>POQ;UY]%^B\WQxKE@<6x/& FTUz|הִ3c,a&ܮHŰ ק֧PTɕbڔ!oDsJi  u(+S_ . "##$%A')(-t2n9{AIfPT=VTQNL>KKLMKNHGC=_88401.+d($~ '-2X6f764~20///S000`0V/-f+(&#$!w& -:W\ IšB۶*44b!۵l!ùt䴪˷II毝¥anpԩ zX ec$),/q247D:>ENXIc8l$r[t#sokkh'ggcijkkigg g&hijjjjjlimDn}mjcjZoOC8i.^%1CSA9۫~[OnxLܸݶ-ȳȲmʲ鲣KӰ$VrE"~dSD24 Lw ȣ5  %.6=aC GH9HFD:CBBCCA?=:75K431T/,,A(#ty i?u7UEN0=_[M}}|XW6/cir&m3W,j1y nTwI } _ U`u"%4')*+n,,l,,-Z/1a3311+#%++ټҸΜ2҉םfxS | I%*.6i@uJT^e\jk kuhuecla}`_][XVSUzUVXIZZrY[W6USLTjVY]adfggmfFd`\\VPsJ E@@=q:7 4/*#9 JO ڔ։ҽKCȉôg&(W఩԰°|29:N _`tٱZ5Zױuϰ&ܰt쯼>ȵp"ϷK>ҷuӤavΥM"t*=024_677779<??]x\v[ZXXHVTQPhNLpK JHGFEECZB1@=;8 76^543620x-*(M'3&C%1$" mOk] ?]9:-,rp% i*% Ԧ4ڴD u3T!%()T(%"B);:G݁՚)̮Ͼ۳Jذ#ӵ o[涃BԵⵋsHnη!Զ#fKH={{жJA c8ezQ?gܿ6P%̨ҽ!C,ݍX{~^C $Jd}n? I"t#$%+'(n*,_-w.Y/001 23(4555 6Y66t7V8Y9I:;;g<==>?@sA2BBCoDOEFFFFF]FDF{FFXGGGCGF.FEEEE[EDDMCB.BABAAA@>=<;C;:9*9j87;766C65k54T43O321w0.-\+*R)!)@)I)('%K# C0MKwj  9:sO[se| !wgV#QĵK®ޮ}*O kݰIʱW#ײ^,ދ'{M`y ow!%*.1468:;=?BDF1HH I)IhIIJKIKJ'JI H6GFPFE.EDXBW@*>>ԈBog'W :X&./7L?wEJ`MOQSJTUDUTSRQQoRST*V#WWX,Z\\t_%c gj4mnLon@nSmlkkkkkkkkkkkklmooonje"_WOG? 80' WLԠϢ`W8~ׄ;ٽ+IڝOۋ.+d2peٖԴNIņ1 bU(PV&ԢtSb C 9  w M r ZO2~%K߽%թ·I=ͯϯɱײϱfBι3§Ut^irPnYg;ƝƬ8Ɛ#ۿ{Ǽȼ=$į^?˨̧̯-з^L٢&ܲ G'%oa^P)@QvY-PnH.IU ` FE.k'w 1 v s8 <'& C)r\$*0!6: >@\BC%EFFGQGFEC0Av>;:9,755W6&8:K=g?^@?j>6< :~87w775S2 -=&ClXv+szhP8 C lAW i2*!*&*.g2_5!8:=@CWFH2JvK~LpM^N>OO_PuP>POEONNjMLKJIHGVFD/C)A ? =u;q::/::::986+41-)h&;# &X+K _ fQ/qfC+J3}<g 2"d!=&d)++,v-.E/.-a)0$! \ m>`aq SΥ4uc]ݯ`+Z/k۱%벼TklO{z@l׵3)DSU`swZdΰAMP~y;*%P:ɏK?Ϲ&gTU&-'܄ޡ12(&=\*aW # L7!&H+w/3C68K;g=k?ACFI#MP!TV YYYXV?TQONMMkNVO{PQRS U]VX&Z\W_bdfhi jiihhggggg5hhLi=;:#: :0:~::v;G<}='?`ADbGKOVSW[H_fbdfgQhsh0hglfdTbO_[`XDURQQxRST*UTSQPWNLK}JHpFCx@= ;P9G87D76\6#6x67N9R;<=Q;j7{1(* " ƞʹ̯[լd7),:lq2鮿a)Wͯr"m־ØƀΜϵЦѰӍEٝj( sv"|"<|_1V w 7!q',03579; <;:/840,X)&$"  7&9m;dҜPˌ8+N^pĶPg.Ȯi۬|Ny٭rWֳh jF²̳sܷeܴN绯еB؀_D664S4* &Z-B& $(,.//B/.q..,////@.I-|,+++:+*)('&8&%%P$s#|"! +l#QUX"hVl: y J!!""""!!!!H H- 2 :=5=<;t:86>4X1Z.+2)'&H&@&a&`&0&%U%$$#!J4[u c)m cNGv#<}Ḇ̻ͧċmnJdʕh-ʀKͷa Ϸ\Ј(Ұӓ`:1.=kL܉ݎ4ތIjDHt XiSMI +d M6 Q!k]C>rߪډ͆{PU5OZ=O N"&*,q.7/.-+'#a E kۣ<8åĞN'̤ηЍҲԔeVfJxXa ;i"'T-25M89::]:^986m5F43r1/+& : H}3խԡԍXٵܿ?yoWTRKCM,Өd۞5)2~ A~5)RwR o 53 $/v0^hbl K 3 `09&tc'3M5!}?'j#I:bF^eE'z,hX_dwQCP )GVxu}u9h7 'W߁ّ,>˘ ?vϫNרC2Q~hf 2C >#!#;%%%$p#!6 F!Lo 5q-Tc^u !"#V"z rO1]x Jb, &gގ޶ޗچڈY|pB gndlC T` \ckEYrf 4Wt>+AչcEYG0kVdz !Ud}cyw` <$-'`)*+,,-~.w/ 00//.J,)&W#|Re% y_6IT< "G(-m2r694D@BE1IMMQYUrXZ[a\<\[ZZYzW+UROMJHFEC>BC@>;85w2.*;%3 7^ K$XaמE9m6Ӆ}фЮ*Ϯ;uzǼ©p۬zp^c>&&7?4A`=wLm&4ڔ0M: Cf$*.1.357y9,<>A}CDD#DBA?<:852M0-.+(&W#k U,: m ONZN! ^yON{/Tk"7MIoiFsaz *]&W5tC]$/~bNu ? t(-YWk %}/q0Bv'@: XY ?W s6\mۈC׌ү_0=ʜ;Œ»;g볕A)ͩMȩ"w@O+)WǥMHݵ.jAHɲхԏդոEziپ#6~'E. vSW[8b] }{]-'3 s t #"#%`')5,/37h<@SDyG&JLjOSRRUX[Z[]\G\[[p[[\e\\\[:[ZZZWZZZBZBYWWVTSRQO%MIEgA=b:~7y40a+$ 5y9sl _FRˈˇ͠6ѯ{֮~k@eJVKNsjoP9 ' C8zI) @vS' e 9';2 ݾpʳ8P^Ӻ 4ȯP$Fzfk3sE3zw m^#]&(&+-./Y000.*-*>(a%k"g N v  n:H>-Yt, l  X _ {U^ R\ +%(Y*)`'#[n aoIrAk v] O t^I '2TQ9YAC!X#j "oc !%)+S-M-+(R%!k!P' SPu'rz||8WB !q$&'4&$B#"$S&(*++T+a+,/37o:;z956Z2/-6,+*'# rVQ#du'ivB Ǔ„QmI$48Ȋ‹b`2tvѳgQQʤpˮƻqa|RMŭn̟ wy y\Rx_ \D { 9 1:Si (*5m9Wf k J Y f!&*'.x01m2<2a1/1.9,\*('P'^''G(((k(m'%C#= y+1ypVW> L % M"$'*++)+)((,)).*E)&#Q!""!=a #19d@^߇) ϒˣVھO"fC#TJ , Пx?+ڮ07Kb//\^qg1K[jjFBXl|KM2,5] j  8 > S ($s),./O00112E3b3210.-&--(--,,++,,-l-+ )$ e#X  3L$9$[VoIh|Wf;: 7 T 64  2%&OdkF! [.۷ ֙՘Ջ֚ Gݕ߭rjS4\= xReP ()}J8K` "##D#T" ) 2M f V%**# 5 G=#I*48x RԍϜę,}˃>0ˍg̩̭^{?؂=f {Ne!!#8$H$o#!2V Oz^WR~N`mA0e\Jܑ݅6e}2ԍKۮ97br z\Q@QN> _!#n#" m$     Hy," #"!V \ "#K#" BPu&a L eHbl.\$QDT%g% 7B W $*,/37;>@:BB{BtA?K><:96#3d.g(!wb @ !lJJG]\8/K#2X8_@7ٝմYȵ,ޖRf- ,P#!x#X%'(*,(/012<4}56@8V9984/$)"}7; sk6E^.Z@?ikݫJ_֕1oXa>ZOCqSVAU+>? @uTlg% @-93chAz,R]$ ]h8gq NeG]J#/'*d.D1W344421m/-,+**('$f!G>h \# H |s%\1oN7G9/ P:Y6 m5Qfu%1Owӓshq5A \.<R eA/%+0۬׃oӰj=xm]1@> G߰|%ܾܕ݂ޱ bW1 Y<Yq!5<c Fk$*07<BFJkN_QSVVX[ _Pbeftgfda%_\gZXVjTQMaIAD>82,&!"bhsh E M v ) d ^uv[L&0;#!BH3V+Mnk.EY@g&J@2nuN9}>[ u  ) mihC@hB֖JV0˪ت3٥۪Jު[jY0ӭ֭#D>/&;ǵв'ȫϫⳊ:= l`KǥˍЊًI*5^h 94i8 Q!%(+ .(////0F24u56z53R1.,+++8,],l,,J-.0e233a2!0-+**+-}-,*J(%i#!#!  $~4=cl{"~ vkqwl:B1XѴ(y #\͸ͨ/_ɼKˈϔѭiӗ 1&\9 ue"',/24o6$8#:XTQyO\NNNNMLKIHFDtCDCDEGIJJIHFF7HJM PPOxLbH%D@=y<;x;w;;;:R950X(5 <bG? ef q ) \ 3 b]E"u" Mr$)"-k-)t#\i 9 #~5cZMBy .dw5.HYqtuڞVռِ֭ܬѸe`$ǻdŔ?g;uĥI$b%Ϋrћҥ՗ע؍?/ؘV~8M ֜KV۸ݠ.Etb:Ji?AbYF(u mZo?  ?dfl >) # V EXj!]#$|%&&'(+/D5;}BHPN:RTUUUUxVyWXYZ[Q\\ ]\Z&X5TOKIGGQHH HFED"B@A=BCDDC_@=;;;}<<;8y4/ +'%$*$#"3!h##.rS\CM^% B  Z " uZ5}4w>ܸۺڍ>ЄˤD@ēKoEGm&ӟʝל ^pP(]pŠ(ǥ'á+De0f^$зt)Pzc¿fsOݹ9rɷ&֓/3~z1 , i7R{ysU+WTb9 `h +k"[' +d-./^01z358y<@@DGJMNOPRxUY^begah{ge:c\` ]=Y@UQONNPYRR978:<<:4-& 6s K[Xj"pW ߢuY ؝ָ,͢#TґҕWn­ȑЖg̔ǰ46@ABCA?p> =;';:1:987Z53120.,Q*/'#1[:N Gs [ks 8_,ؑ^ڕ]ӱ9ͷЭѫсx˚$8/;2F.FyA_rF &#(?-147;=)@ABCDF IKNPQ7RaRASUY^di"mnnm,ljbjgjj]kklllllGkhd:`([VSPOON8MuJF Be=9V51.*&2"Fa gku 4 { *viW$ E ) =0 h? eS!ߤ7O0 z>J{4kQ{ٲ*a'ٲk l/,kڴEt$ʹwN̳7Fű'}[1LĿ3ε}nc`eSٸ&F``7;魰ʯ"rz9JM)2 #y)E/49b>yCHNTZ`ejlnHmkcjVihibiiibihbhh+hthhihh$hgggghhgigf{f]fff)g;gf{feeefg'i jj0i!g8d`U]+Z~W8U?S5QNdLIFCA?=a<: 975531%0.-,+*'%P"A  x w g R 8 T  ! r +9@A<  `P^PܜءӽŹ;gMeƵ9Զ:`+%,ù˹j/D Z{cǹ4Yܷ% ֶзظзAŭBAxռTaӊh{zv) tVU!%*.l38@CEG!I]JKnLLLKuIFSC/@|=Z;9753C1!/--.x02Q4434M2/,*('&&$# !^B{s " rYݓ*ҺNhHíJھǴk[ǯ6 Kǯ:_0igtijfԵl!Lw'a(7R8iЎA:?إ٭RܝK-By]26d5zzB7jC!_ SBd Q-V O'KedCgiTrN1GO)2 !  _ ]"$'l*1-/123456&8h9]:: ; ;2;;?ACKD\E|FG4IJL!MNNOQRTVVXY+[\L^s`bDe-gRh~hgfpe@d%ca_`/^o[IX:URPON-MJGQC>R:643%320.)#f by .g+z,֜֙zV,ݚoەx&\Y)T ء!_>>?(?>?i??@g@@@Z@?L?>U> >==6=<;:9988888a87776u545433c2100h//....|.-9-{,+h+K++$,-.W/0E23#5=66 776S66555d5y431.,E*(%# "q  &+\4p rrh$6/߷sb؀֊F҉E̳tALs䵆I Ұѭ KM%Jb="ȽhE񶪵Sѵ2yƹ |ٷosY4 QA ! t-nlN]AEm9ܔ78ןN*?چ!8f`S,NmbF 82$g)y-C1 59j=BFOKjOS-VX[]<`%bcRdgdcbMa_]\Y~WT%RROxLIFC@=:7 52 0- +u(%m#!!va~ 1 MeZ(,{R1L ;j 6wM-(rY݆p(ש r ǵƚƽȖ̔ϐҧlݚ#q@iM} X"f,!5$U'W*-p/{1W3$568:3<=>?E@AACaDEFmGG4GzFEEDDeEEEEZDB@>*=I<;'EY%% v;  :wF#_UVԲPbɧ7hsD $#/,VJĬZ-w_ʭ{s۪'m9ӮW r>C-3_+J-Sw ET"(,0t23n4U4322`111-1070.,*-)(Z)*,./e0`0j003245877>7643u333!4320.,*(c'%$!"N k!e#%M&&'&%$&$#H##""",!L9P!"0$$$$Z"%+=-" !w#$7&v'() *F**m)((()*X++Q+*`** ,#.c01(20-?*m'C&I'h*.3]8;z>$@IA BBBB@><:9!8[7K642.+[(%#!P hU]eC]0li$eң%UXȼuշDΞ)Ҡ=$Qw7cB?QVqě̘jv,F^ f!$E&&&2&F&u')-1m6:#>@"CDE|FFFFGnGGG G@EJB>q:631/-}+6($\6 NEK Ҝ`ŧIF´ʱ5ͬZΧ>lC9X|hĺ ^7 ܳ* [4!#<$$]%#&'),9044#8s;=y>=;`84a1X.+)R'$>"|Q -4]r #b&i),%15P:*>@BWCCCFDD`D7C@v=r9g51.+!(# ;n|vRH-!꽊AXVBک۶lQ\Z .- OP0Y n x "   y p 4>,u#Q~>BV[wKv  Wq4"|$%%b$S"fLQ:" e \Sڝљز㝷뜮4Ek.~ˢ~}_ǙPew?6@@ABDF4HH(HF2ECBAIA{@c? ><<;A<==>V?C@A?DGKO)SUWWWWWVU7T6ROMK`JjIHG(FIDNB@k?>P>h=};o8j4B0,k*q);)(2'# F8}x'طհٌ*ًش؃d4ےt݁)]3k7M֦"yoPɸǾT!7Löݶ%ZKMCͮJ~DEPf1I=Q~Aɨ9Lu`DۮDTyκ빆?[ص(#HViqɎΰe?ܨbjjG;@7 #)..4v9>]DINS;X\` ehkmnnmkkjjdjMigfc^ZzUQNLJIHEBi?<:g988v88w76554l4445{67*9:<>@ABBA@J?=N<;9875317.{+")_' &$y#S!9'zz ( ZT_q{^vjlRLsv2e|e փշ.nӐҹ,_ ԪVօ׀ׇ+կlҦoѲ"҃җdҶҶӗΡӔAKf g "navf9 lT  %"$%&''+(()))(j'%5$V"Y :s4zf/*[ G 7  9 &-38;=M>{>>|?@ABBBB@?>?<):7;52T0>.X,~*(g&G${"%!R |Px&-M#'+ DDp2 ZX^ %* -;/"124566675?4_321,1/`.e,&*'j%# X y gMR- epcjݭ\E/4.l=yf)r9bِg7ҝβɎǿʸ ŵӵbbֶ K¨_۵M L |F5%A+1J6q:C=> ?>.?X@BEI-<:9 9{8W7530,b)%!4C CRi7kS>6 U5*Y@>4Ɉ΃-Ոۧ۞S=ؤ_Lע#fܱt]]s:(n|,)MfF(\YFٟGzƁĩËÞ;5̵ۯE㠰,X崌8ظ/rnV2NJF́^}qg<[4jsrX4_':g?LeKIbL_;aDwWf\ yK(BT. R߶sy4=>+d]5g $ /"&r+/w36}9;N>@CFdJMQS#VXYG[\^(`abucddseyfghjjVkzkLkkjjBjii"ivhgfedwcoba`_^^][YWU(TS(R6QOMJbGDGA 8L͛8n/yXBcjwI bf&#& *,r-x./1469;<=<;*;:;N;;a;:9876 6Z5432111234k55564I32s22g333T32G0.!-T, ,,+7+)''%" NapA !!!U!6 > ^!;#!&?)#,.^01234q6+8y99M9|741.+)]'%\"dR  Gx.B)Bԇ Fóbl箎{ԷѺcxAX]ȋ]~ Ԃ?d6J yu]"%&'''v''](e)Y***)(&%$x$#!rg=Y5& vdsgNk6=l Co:5'k+:p=B7  `]dBs%LRFE* UY9OFY2o0t.W*.~@WɛP« R8nŭŎƽLj\#ָwE ջTվC53u܇m%k *8 v #4'*.269<>n@ABCGEFHJLNP QQQRRSUvVWBXXMWVTSSSSATTSsR7QPNN3MLJHFECBdBBA@[?w=4;86+532h180.-L,*,)`'h%h#p!M>X`M I c XnI|GvWh~^R~Ԑ8Ҙеr> u½Fj~4ٷ%?ŹzþŮƧ6 Ƨ@ȔY͠˛W6?1ˍх8<ݍߣUF;\> o\i>KN=[-# *ޞ6ݖ܌ +3f*Ѵљ]·4!.G.bƗżĕRGI)3$-ΚҌԢC֩1d݃|T_iC $-<#{&)-r1 579Q::949_9: ;;X<1<;::;;F=>f???\?>?u??@@@@?#?>>>P?O?>=;975N4310.+(%j"j,= ? aL Y 5%z!s$A'*-@0E357{8T8766)7,89::]:197t6555&6R6&654545[555543c1/.--p,+*Z)<(b'&&?&t%$!_d ^9$38{}ݚ݅=bnt}*-ceqy +ɿ`ýN}ȭ KdԲ+T ֔@>7h5X@ Uyo!$&]''='@&0%U$$0$$%:&&'Q']'D'&U&k%!$"!+Gp+o#b =jB.@R n@FG}uz @|;IxM4^dwx1 I  \ W K ] 4 * avq(hHETܪSC*ҁ vԞ=5ּ՝jԕԦՌyٛިq w]-pHi]3LONEW*!|[e D y { ]ei\_)ܠ@O@$ɰ"&ŏ¶Ew&M⻢bOuo( !0ݧ ίckԻGʒZڳ@H1 WY!E',16:>BGJKOSTWY`[[w[ZZ\[\_ad ghiXjj!i|g/e`b\_\Z]X%W"VTRgO&K@F6A~J(V=\~]G\3'0f +So B 5Zm|P J#:d #&)U,.0T23455z5432"2111w2233:4%43B2A0-*'%$}#`#Q#"!H_7Kl =#m v 3)%G>*(~zCKd֠e"ɻJ pûŨƎjʄѤrq%o~ֺ%۠>C0}hqnwg"_s `%:/RAqI$? c /$qZ b B Q Q $ r | |?uf'Y{d hdux}-]'=ݐZgԃyҥЄEN+F:ʉˡ`Ϳγ,)ղBt\ D+j^ f  NZA !"$U&()+l.w1 5/9/=@BGCaBQ@=:U8$63j1'. *% b7 J w ]yQW)-sN8 @T,  tAJ( !2#$&(8+r-/_12.4%5567c77777+706o41[.6*%G!=(7'@  Dg [ A%4KzlyK?  /ls[ ?R=Xj 59ACFIvKMOQ)S[TU,UUTTUV0XY[[\]^acfik m6ml.lkkAllplk*j`hfeedd@db0`\XTPdMJFdC?;834f0,($ V 3l( <׮Ōt/ Axׯ?ϲIJʲ/890ں]^S[pգr$rfԅt(a՝ԉӥTԴ~ԛ:җ϶͉K˿|ý׾m4ظ~uNSͿ ZCbGJMMOOP\RS UCVWzWWfW>93w.)O%M!b1 $kD r/^ D). _"$'f+/36X9#;<=?rARCDEElEDCBB8BBAANA@{@?h?> >p==<<Sc'xGIdz-F{v1Ch\dmy?K#:loSnzt7  = r y 2 &P0v!`$c'*-013n5-7P8809D9f99q:I;<<=/=v=?>? BDGJ|LMQNNfOfPQYlϳյW8way'f\ R Ztuo r } 2  i  vC,V7a]֦԰ӛ%ϋOt*;$ ٿ]x0AjQϼ㻹 4ֹZI`1wULv)Wȵ+?yÍŔ1ιѤl;]ޒ&X0E5-k ` $({,%0369<>J@BEI4LNPVQyQQRSUaXZ\]]]]x^|_h``_*]YUU Q]M;JGE]B?<{:86531.*'# dO }i he)Yw"[=O !y A, o( e  IUg N`,qqu[IڃӔф ГFapҞJm q5%ѳ-ƂÕ4!pžwȬH,}F8K\PUZ_cf_hhhNgfEgh{jMlqmXm li=gdca`_o^\![YnXWVGU)SP^LeHDA>q<9B62i-(%n"  BGx &  Q B)Uun`Gn1j/d^;IBk_ۓۖ Pڶ٫IڝLRZ޿V߉(A 1c*IL'? ]IUt۫ڕ=Sf{L~tv m 0/W!b#N%A'?) +,-./\0111111135A9=#BCFILO8S6Wu[\_ab`k]XSOKH FC?S<9'631r/,\)%H"1BZ "q$M'*\,-/p0w259E>PBDEFGFxFFGVGGwEB?;7=533l332/,'/" VaCOުً?n~1?1ֻo޼nϡ΢ukgԪ۩J榺"[pk)˧O8LӪ"(WmlTxμ {Pԓa[[R)CY; E1#)-~0"4O8<@CnEEFF1H KNQSTROLH;F*D;B?!=963R21110`.+*$[ ]x)Q:S.Jһ{Ӹ04I𺖽*YŝȮ<Հޗ4V] @5s>F #&!)*,,-i--.@///0g0{00f0 0/.-,+r+T+I+**(&$"!! RjVl?[r L! Z ^ @ ZJ >Sj>p Q; K d>lC;#m =*f#0)5-/q1246-88>8d630O.|,+)'$` DN kJ"@M4̘DW'益T֢&KNEuۤϥʦ̥ ʤpݥݦ=ğů%'),?0n369?=@CEFFhF,FFdHJ1MNOO+NMMNO]QYSvTRTS;QOwNNMMPKHEB@?L?><9e3,%J #k951064/Ps m#s'+/3 7:ݰѰ iuWhKvfSIa~T(4?BñFS4ϭMc ȩةx0Ϻhy7aل(P"&tz v $^RU!#%''((E)J*R+',,,,/--/O01J222h2n223U45Z5=54<43z3]3<32l210_000C0Y00/.-,+x+O+\+u+++++++?*3) ('R&%%q%$=#N!"DLJ n p   } 9 hLB- x:Z=qVRMnJMDISTv *AEDJQcg`H& XGu_R'!XW#\ ]>VL * g/Zp^j < u&.M]R.p<[<D;, Xwjҡ{Ϯ˻ɸɮɹɯɏvawɔɹ3ʷL8i̜̭lҜy9ֳpR:K~ڼOs!@qi#&yx&fg} 0zV d"$~%s&&'(''()*++,--m.;/000001K112_33:4.433s3p3333333334^4y4G43/3221t1Q1 10Q0/////(/9.,+2)h'%$_# "  ?;TB IV{Q?tt R+ !"4$2&(6+-012t333Y44w55531}/-,,-.-/.-+)'%#!NI.|~ VZ{. O\}Xxp(J p ] z ^  k FGp=לӯжSŘ_>өmE ȣȣ[¥ku`ٰ^V)EHϹ[۫ߩ!E/x-gV*[:>  (]56|<#@.Y43 ]    |Z(WH < X.u `=M$>sAu*fBܼܲ݅f߅D4N30`.H"-z7Lc2wW4 8ue_'Z, CUM;n(Fv_   J "  5 X x H t_")HYWJ5S}uJ$m`7PK6AGG `Dpb>>ج}{[ ?" <߻ H~g)6 f HQt6 cF!`uR7><*  O =/eXhRT&Q$[#zwq`'R%E~F pGC\m^[`F4ehdx5_ :  Pp!C&EP/8(1=i-wL[_\TJHXuQ3g0R5#a8PVt(r4#nU Y \09!uX|z+_ #$+'B)*)Y(&P%$$$M%k% %$0$\$a%''H),+N,a,+*(-(();+,--,+)('D'J''''&%$# "!!"#$m%%%#!o9# s=s:ڟ^סQ{%.ֵdܮUYDޫتHl⣄P:,9-*[߾ӿ´mG͈ЦҦԨ3FoQt{,v"I + Ab'xiwt8x a:**_oL `i<sA-+Rl8 ~ : J ' 8;9<l:Lu?. +4I0-7`l pI\/{?R(~$@.&U\, U ^ ciy:~7"$1&M&%{$u#"^"W"""n##r$$$#"&!cDJu "c$%^&9&%$$$%%%$r#o!8.znYHl- y t,| 0 co@Hal^ kx84 t k$ Q q 2 co3wU0_mm =c<74ޘ' ?ݲ;޵8߿{TM%St*\.] DW[j "#%(*-9/00~0/..\.A/P010d/,K)w%!^c}m B jUy`Yڷ5̀ɝƑÔһ9ѵӬ nƭ!2we:L߲Umug.˹8>^ͺ>w3Ug6e3Г4GӕՃgOfQ_W_)  _"U%'(U(&n%n$e$e%&F(((K'%D$##_$X%#&&&i&&>'(S*;,-;/0j00$112Q457E8(99%:N:3:98B7502.[+'$^"P @Co) O Y&>?=9h"d^-&sf]Llu{3bq>v%5_(!4{l|)fEqF6|EN!E>24tv>;D n#:`R9X"]pN<ߑ*fSآOԂ Jgڒن2ݼ?E# Uw&'i WZ) 9dG54[%AZ`+V3 4]I FY = jX ( #'J+.|//.-,,c-.a012210}/.r../0s10/ -=*:'$n" bmW pD:n y 8 M K&V|f  wit(Np 4Ubg&  < H I  . a67Xa ?KCI {  Dq!s$'+@0^47:&=%?IACpGKPToX[]\_z`ab>dfhinknlllkYjh-gedQbf`6^[YWVmU_UUUT_SPN KbHVFD9CgA?;"8&440|,(4%!xQ sMt]vwMJ@u6OܡCP9*SղոՕ"?# Y0ѓ3ҫқ50*Vɡ)Ȧń.U Uݼ-l?u.˺Eqӳn㰜!9V\7l$eؼZɖEѫU@SoW1e1)Qf5( <kK":$)%$#X"! !"#Q$#" 'W RM{IdҞˬɾǹX{ ÔƊ9̱!Ӥt?D bC"%(+/N2`5&8:=G?|ACEqGHIMJJJJ[J JIHGFEAC2A><: 9877h76m5+340 -F*C(&'&j&%\$&"ceF\# ) RI@MvX { ^m!#%&'()*X+*):&"< a kh p4lް݁ظPdՏֶZ2\I׈u2*~1]Y8ԎԺՉۈnzWh?G߯1M']M\fkD]z`~hU|#Gt*myXJ L 12r&O/!&AE k]#&&%#"S! ")$9'x*A-;/]00`112l333831I0.(-,.+*))X)u))*+x,-?-W--..W/0^2b3~320.t-,0-P./00Z/k-++<)';'&%# FZ  t  %Cn`e_ 1(Of*)c9`ߘށݓ ,?dPr]h(8 |b` [70j M"# %%&N''E('&$"$Hp fa< އуЩϼ^ʿŦ޶]O0c3UeS֚К 4r3Ҝ*Ĝh7V Е֕:bOg̿[DW Jlj$,4;A}F_J NQrV.[_Pcecf fEedd eeff fdub`S]{ZmW"TPMKHGG}EC?:5n0*,0)'o&%"  P0a*7 \Z= FHD!%C) -%0E23p57k:=@BCCCCDFI5L6NMOOOOPQSUVVVRV+VVU.USEQ9NKYH{FE8E+EDDB@H?=<[;9852/+s(%E#!I E?7[./ԗжȼRlH`& [\v}"~Ƣ.=>Ʃݫ(>TI-&Qa!:բɠuҟs! ~{򚺛Ȝ)ן1KhLZ²ڸ&eD̊֌[ݧR'){zU1 F "$&)&,r/2^57-9:#<=(?;@@@><&:752J0-+)&$,#"g!P!!"u#$$,#c!f /(^# V[ L_#j2Vd/u`evg "&%h')c,%/14567t89;e=O@wCF9IEKLRMMM!NzNNNNML]K"JIIHHHH_H[GEDCCBBLB2AD?<9d630k.+<(,$9 >xmַ+RsX͟U.>I 2eh|.ј>~7jS+Ӝ ݤ®!qݽOsȌTk;KTW |ki&!"$')u,.h/.,)&&%$1% &=&%y"lW!fz %  E o+, (*m4 l7L"#&<*+.1`468:$=~?AiCDYEERFG9HIJKVLOLKHKJIHGFEwDCKA>;72-($b!0y!% j-p3,r߭dS"kPI>p0j6 6 {  B ,  Kt*NUB[@6]%ߌU C޹G׀z3ȫƧ#v^-4oDamݷ4&nͿ$vHd&  z X n$}bO Q ~ ( e M 1`h+h  # ;>x Y S rkbK5hW FJʴƢ6'ŵȞn=`N û~ͻ{ĚưZ"Tޤeef{:`py2(g4uTT8}282([`!2!;A 0t~y{ #&("*7*)(((7*+-.///7// //..,O+l)Q';%"#! GO>s2xa' S' qqH#D:޾[s߉X ђ?9ȑĸ~!Šȫ3ʨDuWۣg"/H_,`/("|8zg- f e u!E}yuzL  K_4 !#/&-( )('%$"!3! ib1*A-^D5f1N 33D!~2SKkK/Jd֭UH[إ8gԽ-9ۨ&kڼpugcHb~;-} p  n T w I SIB s  M  #MpW$= \  S /  #I_ -eH|A)\n1PxiG_, r+f> ^dN?U[J6=?ܠمکסѰ.˾:DS/ɷAț~ɀǫƃƲƕƷż|vėbǏǣ|R:ʏ$ͱкӣHyA9UsQU9 %9VI SU j"l##o##+$X%&'(({(Q(|(())&)}'$!7sHn29C "%'()('"'&&&'N((!)('%#!%ah36d `\e^ /$pCy,DpjlKF08!9/`/o.(\q>s$2<+Gۛn׿ mؙh@\uݞ+`N| - GpC#('*-03y68{:E;&;:999:;<{<=;9v631/-+(I%v!0[.Y K D  qUj  %S6|8?.*xnFR qh R*<"M  "\$6%%%%?%m$#-!NS[ Q >rM9?wa5gxr-ܠ*վ1T.՘.ؐم`>>]> >P>?$@_AYBBBeB BANBCCDDzC|A>;9$6T3S0,)$\ ytnT{# ` )y&(us /  [ X H _ =C. i\C!c7!ltJ& &AqƟ؝$R}2U۟9xvSato(2ƧNͺ!'OՈ׷!}YeqMq2,EZI-k`of Ko4 / o Z.5s@-n%Atfz G!I! gy "#$9%$M$$$&y)C,Q..-[+!($"!d 0 ?CPV* +p o A$7Qn``v(b3rd< %cY_wN B\Pb}gLb\J$Nes.>SZE!?i[1+@{&V R{5]wŷu6_6hȴŴ[ٳCŵ]sW/ʒ.Ԏ3pPޢߜ[,\b\[CpvJpa SYE ' W@g><+?@ 8:ya e ZQ*$7  "1%' +|.2_5`8;X=?BDG0JXLMDN$NMEMMHMMMsMLJKIhHPGaFvEDB#?;842'22p468:;^<K@BCEFGGFDAG>:631'0/k//!.J,)&u# 6IG)-L1 p$d|>L+X V$/ }>߾ޜ~yJW&90,gi!}HdۦٔזժѾ!z)'$aѱ/slYQ} I&pq !!!w ` 0!"B$q%%P%R$n#8##1%&'(|'&b$"o!Y NeurO 3 %3!G| 6^j:5m  +E3@dWݔ@٘w\K'd8yxƣ~Ө4<ބަi;e?"[`< J |ccF[{?b[IqADFGHRJL1PUZ`e>ijk&j$imhRhhhihh+gf,ffeeecba`_Z_^l][Y"WTR QOMKHD?:)5/* &!1} L:j Bܬۮܒ޿s>`lJklaj tGq5B&*F3SVIWEmgC9 [AWmr tS2sח'КVOj|Mź]??@ABC0EUFGHI[JJJJJK'KKJJIH!GbFEDB@8<7 32/,c+5+n+>+ *'6$` `+f 2  ay#rݶ ۥCgGJL*NOXQS WZ]`cdefhgOhi~icihUgecDb`^\ZWTQwN9KGD@<72+G%[ @ x:(l Cs/Hק,qPƊSFOʼn3@kѢ;}ٳݼMwE6 X%!%$%N&%$e#""#2%'(*#,d-./s00/-*'")3LA10  (   n 3 T ( kVZUV#޾s߈4nRhIDK< i.) AR{; OF> G ~"\+5 S0jv ڠi֊yz=ƎƙSrԐ؛[`tb֮ӋU2ا٪טԠͿ ʺ {4>m}Tצi؈֔JjTޟV]Z ho&}'Ob R#6:q!<"`"""!!!L!y' .  ~hL- 4  D r > ]+e+6"$$$#"W!d- \kV#T+_ zFR\YJd^2U 7cydi$:NAX,EL  Kd<>@\R%نoԉӡt|~+ב׸׶ׅ֯Ԍ R6zȸ.õ^SVɿ˼h򽔾[ZٲݫC/4HdWj Zd]_@CS f (Z]> f % r#']+.C1T34O679]:;]<<>=m===I>>?@BCKE GHBJMKKTLLLkM NN7OO&PPxQbRbS?TTTTTTUVXWWVTQLHDB@D>/a;.Xw9)6q2(2V,w0ժIrh((ʿ06M+?<{qPTPsY\mom[:Lyo'ro4JИҶm(ghȣy#€lﻀU+>6عa!ӸMMKMIdؿ-7ðֺd}\C/V !)&G*-/00////00a10Q/,(*%!J|!#0$%h%d%%q$###$K%'r)+:. 0X1:22346r78U99]9999:<>@B/DEFGDIKYNQRSUYVPWaXY[6^`ubcc)ca<`D^\YV@TQPON5NDM5KGC)?;7514P2i/+%)H2^\ l+ z yZ B֖*ܿ;S X}'ۺﵒ鵠\Lkf\<`˴Qab̸8ҽ,¿ųw_wՅۆ ofA12I H l #0Yk#k')*)'%P#!6)` PL,pPAڳٶqً4uZW9s CuN x#[&(*.,F-.03>7:w=><>'<963223,43(2 /+&0# we{D| Ww/ K  '4\W$p ddW8~q2,Rxe3-`gaqbmU??L@u@@A;B+DFJ%MO\QRQQOANnL=JG*EBn@>-=;:7*4 0+'"r{' c}KwY\b`U3v>Q>" ojcH Y J " M x  Jj!iBMM% O   xI f c9 p 0WZXljH7*sq15>%"Vz# Y1J:8w)ߵh4dnיݑ$kGGb^lAw{@ Kڜd6 ,$~|#JoݟڎҧЙ sφοksэx@F2H_j<|yG|`s Rl #K'(+.1344455M6666421000u0.+'#jP5 p8MhAvJ\f[g/5 xA 4 1fy~Mc! [   U]P    4>HS$?d%4`  ZZz=` ;+ju7{ܘ@P-Fۗ ]q|J Z&|fRsh\;82  H/wqV2 q?ncGWn:ڕ(J"v-?f1ǻ6Ŗϑ lԺֳ+|K  + # 7tGx 6 Ul6QEB[3:Pk~ߛܶz6)_̥˟/ĖĈʵ ΡԌ؁ܟUFks )E/C 9!!J""#l%'(*y,;. 0+2k468V:;J<<=>?|ABCDjCA?+=:6^3/,+*'I&$<#4!FIlcH m 7 c +_^1Z8w!3"TWJZT m ZT\ w$s(,@/1I4>6749g:;<=>{??>=Y<:r9T8N726420\.,N+h*m)'O$<S \0^bD<Ȇ6ͭѫ4"L+!OBũͩ+r  %㱧F>G Ȩ˪΍FԾ.vKCH(LORTVY-[}]_acdfgh/iQjIkk$lkkek@kEkRkNkjDj>i%h-gpfeedZb:`][`ZYYYxYXV,TTQNPLJH[GuE(C@D>K<::998643n1-06/`.e-,o*(&1%$B#" "E!l - z*>xs k W KPtw>+{0,U܆٨,2ˈ}MCiE`ߩFĬܬЬ٬$FGA& U76U5Y@ߪ謹q28Z\7򩷩tUkꩋȨާԦJ{OЮ7Z}ĻHKXȪreԬיؚnm*s?S\ z)BEHKNRUY]`9cdddddcbbbbbxb]bhbb c_cXcbad`^][ZY#YRXFWVTTScTUVNXHYYUYXXWDX@YZ(\m]<^^^^^&^]s]\ [XU21f1101;1D110/a.,+])'x&%%$_$#!~p 8  _XO M9`Kje/0 ?VBd^ mR_s,{!?Ii9BKE׏Cѕ\rzοD'5Xk_\jͿO uFլ~ڈYLoj]l [ MO 0e> @"#O#"![  5h$4T 4 ] cN3Ld?"k(x z a G 3 t y  t Z [mA/# 5X6 ; 4 x (s?t.<uf0Tk-kYgK(` 0 XD& '#P%t')+-/1!4P6I89;;<=2?4ACF5HISJrJrJJKKLLLKxJZIHqIJ:MOQRScRPNLNJGEwCAe@X?^>P=;T:a8:641X/,)&9$"! t!'":"6!~fT 2 @=(^'L&)<Rl[`Un9rou~?jJq J4c0R!VO+ NnB! e 6 4fwF?h[ P C&K-#Uzb~-P/,0lFR5 r<Pvd{0ظ,Mҕ)zќCS"%c V! @ 0hUEA x F  2   eovd ? y3{\~tps ["M'l `j@4  C99F,BG@}a&!,BR[^OO,l7FIg `,{Hk5نԦҟґZ Պ:ּ֊חڜ3ܾ~h$A)aZQ%$Wq/Q" c 9 X ( 2 _  r kx(*DdF(IL :NyQwW4 3gz c( 8 j m>:.7~cGNV}XCd:3 B z 'rCndt ]Vo\}Y*߾5Bޙe C%KPk- v^" Sg"0;Pe#[ x ,*wa"!#%'n((((()v))*3++b,,-- -,,,-%-.--,+*)(='&$#"! X  ) s !4!?!R!!""5#]#"u!O0^KC?sDx )Buu[ oL5| K*1 ,N`cRͨ zϓ>мч4ӬӑLҴgѧO=tN1[Ӗi֊{Eݜ6SF"c~?f~1D*}cE9 o%,]*& T cn#+M:,zK)[v{PI];   ; f- i  F!M1p/!l a h|-D )` i1K`]1T[b=;[_e>IzI6xDEvR%@N=m1>$e8{KEKg6?9:p;b9^sn=g`?pV3 " $5d7 3"#+%% &1&&_'() ++@,,,-./0_11s11248;v?BDEFGGHIDJJJ2KKqLMxNN N=L^IFC@H?c>=q<: 8;52l0.r-+)&"iv s 5`NPSS!=(GJ>rbQ M=Lޥ;۠M#M?̂|f0¥^4HؾvlT0Bʻ̔kyˁǫaR`W3#hqp;ю׷ܵSWvGl~XjUWi c ^moU\   J J\Eo;GT| T bvI ,P< .i.}  1SU:!$(-3$8<@C FGHIIIHGFECA?=;;8N6`43}2@22\1/z-* &z!b {MJOPmٕ"خPXٮ،בٝۨݜ߃c[ZajW  U8h/llH* + Si@cJ]bUs?ϷܚƗҘSݝըީױi޽o#o![ \!$&0)s+,]-,+1*G)"))S**)['# u`{g R )  w=ah'eY(ahZzd[/j]r,Ow:X944W I{ ,R#',0E59=}B,GKlPTgX[^4a`ce4fffd c`^\Q[YXXVUSQO&M!KHjFtC?;L7:2,& {c Zu\WLDaHim| &DU0K/-a&QRt@/ӌϦ!]枍\(6V밓&9KAu޲ߒ/m]!fS%[`Kz߲ފPsSBߞd 7FB ,fK\4\Y:brWR !K"!P txL#O&K)%,.[13578S:;=?AQC:D(D(CA?><;:98642101a111100I/.E.-t-,N,++$,,-,+)'4%{#"#$H%&&&]%#"   ')pEfٹ׍;.ѩ ʹÆuZ߷/gЦdm uŕI0iΙMݥܩygĿKđftӎאp$Ie< M[ld l}b p@UOC2% #',)*)'%!X_ wN{<hwT]k޿"R?w5UQnw7"HL \.bk) EB!!w6SWd%?Ag^8PD'Ux(Ni "yv6zm9 s)Hd!"##"A!WEKUB  OhM. ( ;  ^  ) :4F_`O=+1S_ % IW !'#D%q'),D.501s2}21%1X0//013b4k5?6 7 8x9[;=?ABBA?=:B85l3]1[/O-*($T ac _ 10 'uRݬsۺ*j^oʣͨ΍ς|]N ʫͺϼѫӋO؃ܰݼ۾Rץ̸8ʋ(hhލu2{/>aPqJUlYwg'QP`#I[OhڻՋӶ!hG(֫קK#zl" xH s Z U!,$').,$/2)7<@DGII7HFEDCBA>;852/J-<*&t"I-:) <  j=6!6QZ QuRe!y$'*J,U,r*&?"N.*q Up oIF,crLrv XJ۵كٛkٶhi ؄x۷ 8r U'چ#r ڣ<ۓG܋DE/9hbjCW!\_٦ٸٖVwrܚrBQ:d[9z- o JY"a6K MLF O.k!$M')+.?02478:;m?@B$CCCCA2@d><;9&865*31.,*(&$"5  u h >d?@T@O@@??>>=\=<;;:8.52. ,)u'%#!/n!^ S MR8Z-t!>;,@gWlߍސU>ԌWM=ȅvRb?&"e5󲹵~ݽ]-%рpKl  G; !"!V W<>eO8C; UB Y ('('!%z"yfx]Y Nooxw:o@[ܬՄ>Ʒ¦ɺƸ ܤ3<۞ML\+.ָlĒaCJ)S4iq-^foRfAn]cکإn|P9XǛ-)„#ǣ"ek3xتڣܹ2Z5 \l$"%)o-l1$5L8:LW?@A(CCCnCB!BBBC;72.q+(y&?$!2tB 5eYh3ݽ;DՠvYzsϤOԢԡ)Ic@9'ôsҐBqNti@ uB  9D(!"#$#%%&W''"'%" @ e]$a\" C> H4#ڒػ׆yZ}dASDEFFBF_ED+B?<,952/-)5&g!5kZ6A2=԰ͿR8潕=ܸ㸘i4țͯ>hۤG|5!`egC3[   x++ t}OwƂ촠Ъ{a0 ÜY~Ț'ɤѷ"-)ۍW-& }qd?#(.2o6o9;3>@B9EGILN,QSqV[XaYuYX XWWOXpYZ2[,[qZ"YeWIUROoLHD@z=:)852.*&!$-  7(qfjRF)4' n/rt!$Q%%$","<"#\$%3&%$h"<%iJ  p \53P% r@QS6szؽϷ͹ǶƵȗp͸ЈG{kѱ6ՐHfIJK1MNPRyTV9WWWUS2QNXLjJHoGEC@v=l9$50,)%)"F b O(w9r&g=fcjdh% 5 n E  %r>! Ca: O ; [  -<8vxQ  C`I j2%Sy2 wUZ KE4::2  R Y c  = +  ^_[Z `?v\D?LiΧǼù {9uͼZn;#ƨɈ͉чnf݊H@[Z  gYu<<<W! {JBLoAސݖCѓйK՛@FڶB |kE~ H#'~+.j0J1Z1*11z1<2333U3f2T10F00111$10.,*(&"im  <v35 c!~H}tc0 L{nf ~!Y"-#$5%Q&R'''&$! e1T5*n*d_}Z!]]ӮDњ ́[ɢG Û"ż gɰ%iݨŦUiT 6zEU)뵨!IĦgʡkΨГ ׮/W&X9LV?!M5x  L hOPc~lMI 72pf b# %&&&'q) ,h/2N68O::::i98j87X7Y6420h,("kX BynKk8W<۲ۏseۂJܰܲ\ܟwڽۉݭEPXw:M  '-Z37b;[>BAD7H'LORTVVVWX][^beThjjig3eb^\YvWkU*SsPMH4DA?u:06207.,+P*(X&# -,Wd_ T e=waMC^}zIڭC׳ hTpdף0Yάe^A,DFvH JPKkLsMwNfO8PPdQQ R9RARRQPO1ON1OPQ1STVlXDZa\^kacGfgiiij jihf"dx`N\ XTPMJGD@=j96#3q0-*n'#u xfIà>0,̤a^ڨ/ŪLdߢ⠆0q!׷Ȩ#DD'ԙpbL ΖTѲҕ& խk'$cjb7 PS!K%(,02K578;:I<>ADGoHHH}FD[B?H=@:603/,E*'(%r"a0#{ޟ̑<׬o 'B7)֨Z] M0rxrYi lam,\Wg $)u.269<>?=@D@L@@:A BBCBAA<@?J@A2B+CCqDDEFGITKLLLKJhHFDBh@T=951.+(m&#T M] {Wa6ZPs,rs;'yܹ dsy~cǠgԶuxε,MHx/))  %*R06&~"/ ! 51%S: R;n"K l% 6GW{fk$WOϓ5ʲȧZ[GMcyѴdqn;# #UAߨmzI4<ʓviȋyø߽뽓bEcrǶ}ζ9#lNX{ B%-*7.q14h68<@DINRUWX Y~YNZx[\]]]\7[YXWVTwQ|MH6D?<9z74r1 -'z!bz 80+yq~V!K9> .t7HdB 5սԜ1Қβj!Σα%8@̷*;ѰN׎[m`(q /A/+{2^ [YryLH% `  M  B & a v NZQTL+c !#%s&'g(((|('&%$'#a! ~  A zTRZC2KHB; ~ KV<rKp[;!"%'+-0a111 1000)112}22-3W35321+1{0*090l0i0/A.+b)&M%$m$a$#!@ y<Brݡہf*|I~J˷ʱ5QǚGĪÑĉbƉ@Zz8æ` Ϲ>ӳiO*VҶvA}/FʞѢ4ՅyܣުT3Z9>=k8Yz#GA}XRUM{ "-_9A "B%J'(a*+-n037:x=?ABC E.GILO0R]T3VWY[r^azc^efffeeHdc"ddefg0hg@fc`-]`YsUoQKMHsD?;7$4H1.,*(&$ ".; cTgxT߾ݟېٌלգӜѠ͗Nz>Ψpϋ>+Ԁ0~҇0ى۪TݣݧdمaC)bґЋ΂̱6'ZǠƫLq(>5Ҷڷ{%nkTҸ3x'ظ/k`3M췵/3ı0(-֢܇ +3 T7!m%O),/123+3f3(45x79*;/:50,L(%a$#"  k})q!1(΂ĖD̴rɰ9;F{ܳζi׶Ϲ K6N&h"(͸N|4ѷ3ȵ 񳊲c]d̃սQ +Z :#)&)+o.03V6|9<{@CGIKMNNNBNLJGSD@=O;963`0+v& j n{_H߈۱ӛő˒ʣ] CN(sĠƈԋ `k-` l~#8(&-16W;z@EKQ W3\`!dfKhi ihgfeTdb9aO_>]@[bYW!VWTRO{KGC@>=q=V=<);n84V0+'t$n!{N| o*{p-E ?dѮ- Rе;nѾrҙIgDܚJ"k{l]oSm v ! f%).1X58;>AYDFNHIHGFDB@>;84C0*A%jPkE-Vg7׫yr)񳭳f. %C ^m'Q񵢵赳̷ʸur.׸V޴'5ƑSէڦ@{ m #!`)r1:9@vGhM!RrUJWWZW,VTR,Q:O"MJ?H[EBQ>:I5Z0+H'##!"_q(sD ) "80xGnvW)4j2YFwk| 8G\!"D#" =y E4j.@ 6&A89F  1!c"]$&)+R--;../H1369MxKSIFCr@=9_6>3'0,s)%X!;G cGmm{"tg8`9lm+fAK*U(G+xk~&&9H%TzN( kQ>$"${&'Z(((P(K'u%"L : -gN0qȋ!ղ|,* XĴ!Ivȳ8ŵɴŲ#mzzxĨşƎʟVѬc9##=v  a #)/3)7,:<9?ADFF?HIRKLMNKOOOOwO^OOPPPP&OLIFB?<:m86,3/,(U%!)@ kUK[?*L:B7"mNbDA0; +s-!$(,0435799}::#;n;;;q;:9877\654b31y/@-C+)('&%#w!8KD! T hi`tQo_'=FVo.gz;fӨjd? l˒˃ʳ_A*w-λ&R#wzĊbzCʙ̻,rצ7l[Eje?3|-O ! #|##K##"R"!!!!u"X#N$C%%}&&&&&`&&% %4$@#" lY\1W X d9KkX (  j />yr yc6' = o (ldKwob0&CFnd=:f  M) ##wV׎˓+ĉWKQ~ʱe8׾YW3ԣi1>LS!r> h "&*(.[1L479;5>@BDFH IIIJcJJ8KKkKKJIIIBJJNJ>IQGDA?=;U;H;D;:9#8531.-+l*H)(&$#!6BLjI&ve h !EVQ)R>2 :ClO$ݩKڴم؉֨7aPFӋ+ ja_4JϹ߶cQJu%[ᮌvqAD(FGI&JJVK(KPJHFDYA>I<9x627.l)$ ab;.c / $!!!T"#$ %%&&''(*+,-k.F.-b-<-m--]..Q.-,++Z*)b(&$" Y a! #$%$&$&%%y%%&&'(a))))( ( 'Y&%c%$#1"J] Y`a2;bv>(N^ޣ۲?Ք5 ۭjR{խh=F_R+N;e´ִǴĴs̳% 8I\YU԰CԴ?񹦻l` YΪP3ALO&u%  lp$?M.O5X oq"F'{0_m!#+&('+-.(0248=KCHM(PRRSMTURW>YZ[P\W\Y\\]_`a+bba```/`-``Z_][XYUCRObMKIHEBC|@=>;;976"6u54931/-:,<+*Z*)%)'& $;" Otgm Z e1z@MFZ K}ΌFxõ<w&cD3 @'JίůG:xrŰ=s㭦ҭIȬ*KުhuZzJl!L̘ͿJ g/)2qCks/ 6<"',0D468.:<;q<>s@C9GKN3RTV}XYZ[c\\K]s]]]5^^_O__X^ ]j[YWUT]RPN|L`JHH@FCDZB@>M=!q@BAEG5J!LMN|OPPPQQPPQQRWSSOSQNJ@0CEHhKMOPQRS:U.W[YI[v\\][EYVmTRQPOMJNFMA)Ǜt-c!VѦ<:8642/+'q# \c")ހܸ~؋ۘ~ޠF$+ hH2vgX ?DJr$Jnr RTO6 fZO.!Y#%(*++*S)'m&K%:$" pWK aS2AWpǸ>ϰV+·OɁ:Tژ+"+ be!8&*^/3Y7:= @ZBbD)FGHH IHKHGGlFEnDB@'>;^7U3.F*X%= B 5(E?PSo_8N{kgp8wm W 2 1 ! m ++5Syc@B !"A#$#~"! Iz@>2 }>RN`Kި{Ԇ˦[%:6o/9H2ųǣ˄J,:62e.c)#nm'l~X ڧ3Ӵ<̲Nf'\ֳk ȱ±CJ<_XѦצۯ{raiRUt')4 , {Pe[R p *k-eL| @uDeO f T b Y Me/b 0  6}LP]?0a& JZ9EU '+Sn\s[ %1y7C|j~ l6CF H ~ o H7S[ F;Mkp+MS  J&1xVi?O9U[}B]N ڠ֩ռqOhܳ,iJ0$L)-Mh trƹ3ue&ǻpԵõL2+ع#ěqʁՓ٭zu+@E  $'*n-0Y2V456h777%88:{;<>>>?n??@@AC*DEEEEEEkEDCBXA?e>=;:C975o30e.+(%8"dZ\ !deLBMo'blF1Yl] M  | @  R l'T{5S ! l#  .(5W{]qqsC;E}%ני׫ׯ>ހ%ڿS۽JܸO\SCI%@#J*=9u!$Zw2l4{| N = s ; #n  xgjE@~!l`5^CX9_gx`E_odu97I$i3 %' - s2 = /tv?\[eR"Aq;$'j^,R'gG8S"/j$_Q 3 h+U3P"i%<(*,.0=358G; =*>]>>=q=l=e=<;962./+(%B# /sN2 Y|4i-J#Vb{ Fsj%Tem^`q00\ > 7  <  ~A~6La C#&kYvߛiG݊ܰۮaٻ-ߎM[ Jgڞگsݱ Ris{G& " pSd]F!_#$%&'(M)I)( (v''d(*],.011+140B/.N.4..-,#+\)x'%#N"q !6R( sOu M2.$j.h]Zm-L 0!ʹE@e2ʤiKǐȅȰȄ$ǜi~ΈF9ΚΚқ!y׶6Y3 $k=g)xj5" Ab,!&*+/ 3z69?@@@N@?w?>=<:8642z0F.+)'%$####"!E& D gr|ݣ ӽHϜΩ Ҽ#$.д ѯҋB֐}3ۯܿC|'^ ru=%  [rwq """K#-#".!7p,] * PhK53VߏY ؔץ[}+S K-2aY3 X{qm ;&y$9kW*a6iE8 2[rjDC "'%f':)*I++Z+*B*))p(''&$%#! E !v#$%%%$6#"" # #" I( _ p_\Jvx#a^:8a"1ވ\u&=ɍȷ,Ǐ< ̞͐iѣӆLR f\&\ =c"%J),048 =ADTH8KMOPRPO.ONLKJ"JIIHHIzIJJJuJCI^G EB@=:73.(!E! U%z]4VuWB1I|Δ.ʒ=ś!ŞJ : qӰ'GGIj0ۡhָֻPԭ "OIȌɡ8Hv˭̋]g:wێ ٣dןx֏?\ڗܘގ 4T=[JBڄՄҬ7ѽѭ+xk:+ 8R!%)j-03l6v9xAbCUEFGHIJ2LMN'ONNLTKJHGFOECA,@>Y=D<6;9/86x30-*&"ju ;=ߒnK#XҦϾ̻ɱƿ\kRLJ-'PBݪAwة ?L+~$G¬L`ʬ񫰬ɭzxg~Ĥ:6ȫ=SQϭԔ Z?jV~FB 9@[R9c| n#]+|M8)BG}|8 w@!%(8,~/26Q:D>2BEIKMO Q0RCSMT`U^V3WWWWVUHTRQQaPONWMFKHE^Bb?<:864~20-+)(&('n'&%$3#! Pl4xT /+ !!9"h"$"i!> \:%"2f4) n,#s 1@!HBV-TۉWԓϫǃ`պ#ɱ{rߩW}P%R#J_箻C:mꭓdVIC:_բ{Ļ˦jpf ]EE* $(,.O1357i9:;d>n>=<_:741.,d* (A%!j zY U-~] z=0/ e 4dۄTݑށ~%Y <gL"%(+.14689:';;z:Q975I30i.++(#tM 0+0zV5q-2pJ0qV_o' 'y $"U&F*-<0-234<67S9:r<=^>>>*|v%M>P6[5cT|KIRjeԯѸGϔ`ԁs"Asݽ޺ߦ1 l~dL#gy>O=M@ -$;f :p1OY<}x1 D . =2 b D?IwC r E!!! R^J*q M9 !" P<;"Y i w;C2r~rPXcW7p#cjn! G{  | r %HVv_fgE?[6CݡFֽs;w!+ ݿ%44hl7́`t5Rv {Al3!#W%%'%#/ V t8grR%dJZR3fyWncB}t-!{5'] =pkqk~Ms^5Q " mYjZVh,: ݭc"YoL*CE~+w:9GRe # Oo8}# * ^ N9}qG,u`IvTSSFStT% d 3 <Q:x p#;.w u]3e,*' M3;Jp5\g9-6G9aD`Vw kBpO?_,g @'1ERR1sG=,~[*43, 1hY uI N YC&4<i"u$&'4)Y+.3147H:L<=??@&CEHKNPNRSUVX$Z"[#[YWTQNLLJfIvHrG2FDjB?=9t6 3/,),'$"~ Z.0Z_'2pit=  -78Mg P 7 s u "@:O5Er4Kg`"P62elWoT܌mڇٝز׸Kc!E׫1ڢܡݸ+kXR۰b@Ac0ߩ pX܌/S4$c;Yu8lJECMC'0S%=q̋ʕȧÉ|oȞ#,:HӬ(׌spEWO Ggao # & (a)*****(+k++++ +*)((I'Y&9%#!c3" U[ z\ "#$/%$$:#""#:$g$#f"q vM6^R3,?wwG5E=>t}`ALBj[A`NA8/Z7Y, LX!1~1_ڌ ϻɩLŽŬÆOMJGafïDQg!tҜӝ0 `{OLDEy:6|30,p(#Jy` PP2LѮ˱c=kÒÊþB"łh#hھBS;\\r[ c7!",&?*h.S2y578%98B876P531 0r.Y-,P,+b*($ J*z&   /HpJKy!(>;yYtzRgWH y=X!3%Y(*,@./13579k;<<>m?l@A>A@7@J?e>=*=<;v:P8f51T.*)'#G e OD-5K`u:ؕvzo̗˱ʜnQgƹ)Őľû”i2.S˿j :۾z$\L׻ڨL}0s|16i+H+oEL7,Mi l[<#RdpGDr {!#%k&F(*-0M35;78:<@CGJ'MNAOOPRT7VX+YuY Y`XWWW[XXXWVQUSRdQ1PNLJGDA?<:87>5'30.1,)'% $q" Cb", 8 t  KNLDH_* ;zx w&_Ѐ˜{ƍa$C޸ >sԹ׹@{S߷չ%^cÕV̓ρҰB֦׵޾~09T0*v,]l"y_0W#FN z D:97  "%(,.01@2?2!2,2s222H20.l,)' &K% %.%k%%%M&&'@)*+,=-R-#-,c,+V+*)('&&j%$#"m! u6{pXo}w  9 l  6 z  Y   [ \hR E% q   cJ&@]G$zQS | #a 3ۨ״̌Gy.v2[ݻ*Zq⾁PHƮɘ?fS׌uK%W[5cPn@:w`U=6' gپ;ՙXӃ$:?ν5ö ʝ(јaHr; ujV G b$Y'), .01:3N4445&54q43210(.,)'-&$#c"(!@P305b!o'F' Z!"#$&)Y,/a17345]6P7v89;=m?QABDDDD D4B?u<69+63l1/-+)&#E!#)]^P R 8 ' 2 q 8  [/@<\ 2c@gk ޘܨ/ڻڡڗڠکxٜغUы7P1̘͊ίѴҥ6ׅWb\}4#f;=E?0~ V j]X@9!Qz`5 +  i _7MO! H%( F  i'_!" $%'l()*+,-b....//X0L14222g2110124689::::::: :97l6 54P3210!/3--+V)''&.&%$5#j!s)!Z1 p bIl-[!zӲ{1ʑ}O-ϼߺsoK0E) ŬƳ:GOȡȁΊкhҺhi,H{s:a$qC8?B_6X ~hTRba:n? Ktkx4~|><'#x b % $sy/!5#%Q($+.1@47;> BEEGIJKKwL0M@N~OPQRS SRRR|S_TzUV}WWWVTR'PwMJGD[A=F:6X3!0-*&#m Qw-U* R r /  ' @'*Yz{Qό˰WrrǸ»/d廍) tŽ7NH V9EA ¹)K(w8Ŷ\9DYdE,&P T m3 !"$A%D&''''''U'&&&%%$#N#"!O! W! "## $$$#p" Z2$ g qzb ~2\\3e?6=- ' Mke^` d!l"-##$}%&'()))H)(()y)))p)M(&$" &7 ; %nn]G0k*(V5e<2B`zf#i45چпn?^@@@e@c?=><^:^8_6O4P2Q0.,+*)('4&$!S-i m=FL9PMٻm Ӊ Ζ]eCRę}aiȊzIwŚ7 v@(/XķS;\˷8֩eWDj% 50!#p%&'"(L(E(b(())*[+O,t-.024698g9:T:0:9875371;.+'$!_/^ )=j g>ۓXڒ(Qz=Ljd? $)n6 !""r"! ~<` hIfX@hݞTSyԿ0_uӝs+=ԕջ ܈ݠކ߽SDfA.V\6lEK_^  70hU; { b(gpr  #;\7L.w)ը(7[1ʹ$EN  N S%P*)/3Z8]*~Z~&<.M9\Mr HM!\N~!:9 K Eh'lXb+Jz#L}xU|P(|*]cVKY;mSu &q%mQ " $&' ))**+,-!/00U0`/-+)'R%# uB~9E_VI74 0 L-?/ pjaO o]{P$K(+|/7387b;L?BDEvFF GGHHIHG{D@; 72q/,)&"~ H%q%҄?ڹnϳ693%&R:GCllQ麏C^ɳ&HU#em6NHNC|66".~bvkvk,u#<9qg{|Z4/2T}(i~ =bn9qOyia(6y!#$%&'() +,$./12234679;O=>7>==+>V?3ACEDG HHGoGYG{GG;G,FHDAq?y=F<;;;;9753H21)10D0K/.,+U++*l*d)'%#!m [P  = D+a,jH "k&mr=Մ+Юp|ϐ_3m7ЕG77E^`:JޠO7R2TBUUeUTSuRAQJPOOPJRSVU'VVThRO KFA@=}83.*N% fg ^`AgD,yT#: x I c Q"#=%&'()*P+++++H,,L---o--,,,-Y--q-$-,,,U--_.h.-,+*)*)0*R**-)'w%#  :(o  :S{liq$tfOjmT1SXCU^/K'EgRvUx|wԎn$>llǖ0ĐÙO,ǁƔyČŸfəɄ_MɊ2&!] $D՘>.<<8ZIg51 G=Dtr^p%x | T  /qR&-o?)iN =E{2@Q.!QfaO@Vtf|   l*  "T%G(+/3Q7:=@C=GJMPRTFTSrS-S7SSSS[SQOL<973&0l,($+!U , :cDW6K D dY3h{d OZYy>C.4=x 7Y!> =!!3""c!; S ^ ߑ݁Et"4õāŃźķ ŜPƤ/k~(lqKRɈͤ e֦Nۋۉۇۙ;܈܍Dܽ@ ZBܼݯm g51u|*Ge@Znif=7Ly  ^ q N  k ! U }%,2U h 1e t#&*.]2589y;4@.BDzEDFFXF,F;FFGIEJ&KKKKKLbM,NN;NLJGD=A> ;852.,:)&D$!S1 = JU9i^֯d|ʡfeVðœ?Qbpɳ8.ҁaۺ|'J.rc^D%#|Mop!-yz   L \ "b ?  .d C9+]Z/Ѱϣ˸>n?{.ȕ`ďmȃ:ʺ7Eֆ-n4AFX5 *":%(T*,H-*../1q2 457899V::_;;];:/9L7520I.,)&# qblM$|xS`Ţ-/6@}(Dž$ϨҡՌ?h}Fp7w 6"y'I+.S146E9;=>?@7@L@j@@v@??=;97531/+=(?$ !* B=[z4r,݁M9V4fskGKӍ LsHl: 6u $"#6%&(4+-0135~689;=>?m??>O>l>>3?@?>w=;975-421[/y-+)'&$+#!O _'0`wN "f$&(*-15c9=A2EGJLMOMQ_RRQ[PqNLfKJ6JQIRGC>81*$ L]>V? !jA<-`IJ¶,Ù_ğİŃ(ƍ=rƜĸF?ŚŢh2+1Ƈũă^&ĿQ jŘ%ʿѡԗ7؍۾2aݨPwl5)+ae"GL*d33b d o m p A)S$j|h@[Qef,6_ "X&),x/V257G:21/.,+)'$%{#%"!NOL\,T e o6Jh" 2z R( ,}+Lkީ=nݙY޾FB n~[mOyIG6,2Ad{IS+|P;}]ƭƽǬyBUʊʐʐʞʡʯʏ_ VrOʿɦ*ʠʭ6eKs[:%3֢T.x  L{ual!%+C:0q"E ; vL|UlgoV"@75B tM #c&(U+-/1G469;?@A`CDkFG!IAJFK0LMMTNNN?NMsM5M"M:M\MtMkMHM MMMIMMMN NM'MLL=<;:876{5g5555 532I1G0///.0I0/8/.s,*F(%k"v2 @I@7^P/^2>2܏ c$қ@ό5#+NjF0;aǒǼ$o3ɀɱɷɴɳDZy'UˎoC!?ai`I,&(BR`N<$!"ʽʚʋʍʏʃY .rʟr \ɾC,< zlĚ5ų{ܻ(T r W #&)Z,.02344!565J5Y5S5$54431s0*/.B-,,,,r,,1+) (%#$ )^I*stc { 8#&(+Y-/14(689M;<=J>>Q????@@@@ @??>=<;9742[08. ,)'8&$#""5"! !& ]b^'N2 R 6  B ' 9   {  k^lf ,ѝbrʮDzʼnĩ*/×#Ěŗ9m ΰozkIZo8$g1kgO SD!'(gmct4V em@~c[lh[+[.t߻u,VVsܴ_ ވ_aPx0yTHNH]J+q T7=vrZG}ߤW۴0Г=FǾ,Ɓe-҃֍K/CMOI .D ;#%j(*,.f0 23h5\79<>@B DDDcDDCCCCCC2CBqBsBBBBA?  8YOh}oWs|8ުhچظ/ۋܬyt.].uHt_G^>!) GGqY%J=MyI06>E-n0AnqB)  \uɣrȹ1̥;Nٚ,QFW^5`_NdZRx#iZ2/i'c7FZ6tB$ y  n  r j =TG( 9[H  u & "  oq^Y 7 @ '+'W`%=}Xo;Q~  ,NKGW \$%"?t bEP l{ !h!!"$'*E-J02144E4J3+2W11o1323}3Q3s20I/-,+R+*8*)'%#! N )ie{`$&v .fBuFzHL`V  hQ3czIa0}ep8M8b0_eC OOCQ1&lK", ߟnN6 YպhNuRn,c׊׷ُݡ]7%, R=[E"$%'*p,.024B679:;< =L===j>??(@@h?-><:8&7p531/-+$*<)(((''%`$?#"b"i"E"!b y3 v :I5<&TU G_5" "s%e"%v( +-.I/s/-/.=.--0-,+)'%" Ifk>; 7B &Tݣbh֫Ӆ΢xU1%=Ȫfz=Ȳ^ɭͺΔЇҀpF{Nߕ){eO0@X L 7e"v !4"c""",##$ %3%$# "RG Gu80ov"_,3-T4c,^>8L#8T 5 &X|fR-t'8S  T n.7A~S1|$?~UN2*~ Jn2 Lh7zX@8L*SF)0 4 <:X0 t|B_G^Mia+Y%L' M u[ "}$%L&&'''(()))g'$ j]M m(xjc 8 i @ 1 f[d  Z  CA,ٳ՜ѸWʝǺųsM%Jlƥ #RR֚-ݪF]lYFw h MZ~S  R T %\} kbaaa/ku+Jm /$Lia" #r? ?[n7KoXc+x/m)v`9^:V39__D[ F };{ r O x . Z V 6=ny^~[/ay%]  19B*3P?O@@>AABDEECF>F FEEVFFqGRGFCG@4<8Y4g1=/-+)#'# Zf ]y.;d>j _NB  c W s q :&\W&nUx\1ZNֱuQS3)yazSٿv?>ubbƿkؽ½8. uT5e2ˍˊLs.Ѧҕ{ӭRb8_5W 8@נ?W7k|ԂKl Z [x '5f "l#$'&S'K((V)))q) )(':'&J&i&&'(Q)`)('% $"J! {!1""Y######:$$%&P& &q%q$D#5"h! !3!h!!`";#^$%&*(?)-**o++ ,s,,-./X123445i555E67L89%;<=>5????C?>=$̽Ի` f j@u-֟3^!7$pٴؚػ!ٱU3Az_ڙ (CD<]~3 <3(Lxh8-$mO! 8 6 ' ,]R@Z ] Q 7!t"#%')+8-<...3.--,++*('&B&%%%% %$" .tKmu%B0^EJt Q Y H_#{';L#%j;7u3bFܬ8ݼ;ީ~ߣl\pj<  >MF;U|2'A\gH&F Ju4 > s} ]A,`Q<,ݦHڻxE)YZ}a6  mgsy`C!"$%3'()+ ,,d---<..d/M06111`160.,6+)('&-$!{c j&ri v%4<+`HPSZ>R-Y);E5$VM~^ln;pV )o- .@*t u $ 6E;u(YW,JMx&t@N'lvg}84^߁|=ޕޔ\NJY$LUbc3n @Lhq^xEx5$BdWHl7- E)j  9 ] ){MY8?[VI <` c \ 3y&/\d~|E%m5a o )Cq  F V N V &  ,C\ * v ] ,Cu "$%&'t''b(((y(Y'%i# !IZ 'aKmPObn }ܕmٻ9ئM֜iSyrz"z[IO/V J )vpXd4S6{  ,wٛ:Gظؕٷ+3ߵc?lC IZ:way}* o}6M !G!!y _N4>1H RkOkxoEfj#B$ Cjt- !6"B"! d9 du$Sr jpe! KL 2RAح/s,fXc֭֎l576KtهM٨أ|֒1ՈՋהےR"69"]uWtT~bDLkC:)6cbߠ߶2+ Fj*Tzh* s sO.|{y:'S)HX(:dL=C?Ql$tA/\sC 1 -MZH|9p;v\\3s-҂sx?ݟ߶q2-+ 6 \$=(+ ./.!.:-,,-W..-//...Y////.R.----,)+(|%s" g M=Zb y|U#Q>6rh>_|,72FZ  #dgqm) | e  I'bKFkr$KaޡSykiF d8*uF=47&Oy/J|N.FUoO [ o R  j a  bEnlK B  T0t;B ֙Uͦ˦)Ƹ}À¾5Og8Õ¨޾ܾG]Hҹ։t4;~$_edzY|5Y6:ghl8_%Yx{Hb$ G k U B M   E ^ R  HS~m KW R=~l(#wRX:3 G}:V X".$%&a'''~(k)*i,.l/d00=1122w34!4321r/.,H,+<+*)\('%%$=$ $##`#"x"!5!d  cb. pjK/QUJ{9,@i2ygr|: w*4aI8;yL 6 H (  -'"<,Eiv  OW>0R9_N4 L/&cو|z~p˥2Cʦo˘˚krː˶˯ó Е($l؜ueH%h2h߮2Qi1$2ujp8.32+POVd;;8}2i&Kb_<$rm  hD{7 !"$"% &&'h(w)*,.0e239444,55 7Q89:5;;;p<=>>?C@s@g@0@@?@<@X@C@@?@?>`> >===>>b?&@@3A?A@=@s?>>x=`J5 S=kU"hBnx2Cu?^۝hL:ԿӲSЌ(ϋϘRжЌAύ}:'q@Wiڄڭ۴V|<~Fxm H!!SQ9C8+P~ X:G)01{l7, %6A5  .&%f$F) !j#$%)'=()))n) )(I('Z'&%t$n#"D"" "! !mk0Lc- 49 RY!\x N6R1_~UX%SlKv=U||4D  C7R :!! 9!!"#$,$##.#""S""!!< $C<1>  V3zsR[/Y Pws@yOuD7Z7Ff-"a{,Ev.:{F!xj 0B).KQ@B7KiH!\helegHalsG;?qD`~g,m q@w#EZMfmwp_LFyG< # # S &  I;&;<]0/$t cJQM]@ c#Z&"OvCUBXX9^wE w / &  RubA#_W:q_) L +Y\RCxr :vOoj\ *|oRrY1~bL(Ot2S@E0|Wm!A[jN=`Cd>H}.PoxL EH܁'ڎڅ{KIlyXׄ4Re۲ݪ7,i>Mw%uC 9N! o!1"#$H%&'A)*+--o..D.-,,+/*3)(&%8$-#\"!6! y!vs5IX[*LR\~ko U w o>h <XkcJJ y /  <d  + 9 0 ] r V dt &*+Qp7$ut8ݰdY؃؋أ؀HҢhpЈюgצA7Sml-h[uZJVQ&zDu9,oIQ8j +vy1 ~"QemYrgx].  B V e E8F?_) 8<XJL1vx<.H&Aa]-ksiSc}AE a d 6  <@ 874l8:G _^)h@c[c|3,4T_hMc ^t]1T+8"`nlsOI94vz@ Ck8aM Y^v`ք֎։^\Ӽ% ם(ٖZ3' zNWGo,3 Je9wXBn/b,} r=j&KpBAq q y@Z<;`  p i v s0=0  L $ \__p?Z' 0Hr,} kQ?c/IG4 hZP%<.@d)8<$&+KYe  WUvgZ%ul2QyrD_e k =PNju5 W2RAy8f\iU:!u;  Q >/iiAe]Wvo ?"#$*%&%$f$$ $'$[$s$Z$#Z#"! Q={f  uIJKhO/T l.MY]ob^= 2  :F6j1 !#%u&'(;))$*q***@*)((a'&C&%$#>"d f=; xN x,~)A59B8)V6 $.n q_s!#%&q''l( ))*+,g-6. //0273O4A550665 5r43832D211F0N/c.-,J,++)%(%"hXRU= ;*xH/`,jmI & s m m  ? =KIS<9*^;+zLhJ&!Rqe7! W *42P),O3(|) LF7vQPg !!"! ZP'Mz NV 7|l1>Q6Q//A:`? z(p"Hq U A52Z iY9MZ5$؛ӣZ6?ѢtѪ: ӔUՋw1לXن0ړK &hbkEnm@ ,4w nB9O|  , G J1[Mf59&MzVvp /M]Ha.JK$ $mGG?moGfDe>n0}SV;~YqH&g P $ WFP|t"ObS]Tc&.r44(gSo{V/ / tR@B@" 1 P`mwkkeV{eyVN4w{V a 2h H"?$:&A(/*,-/(124E5T6677_888+9T9s9w9w9^9>9988929X9u9l9098)876~6H6G6x66676654320 /- ,v*(&8$!qbM OQeT?b]$rg!DLT;@``!deakR {_u?V y 4 , :ET)|' xTj իԸo+Z]C աՅ}ՐռKֱׇض!wc\խ@Ծ҇1vQ8ޓߍ]Gwu3`h}L~i(md&SG 2 b p {   { Y_VVbRZ #_ w W P !i*@KtQ8 6:6As.q uD:9 !"$*%q&')E+,@.S/000>1{112O2223&36332e21*1s0/ /.-8-,+*)('&%$g#" h`/sbn A   7izH??`NFq!L0qZGCTUA~lufZKN$OFԦG՘fד׬׾יO֝W) .?G%՘B 4w6ևֻ֤l. 1e֒֡ևEՊD:Հ&׊V{ޘlH'Ayq,0t/11>w4jEpg*xgm$RI<Rj-  P ~ S  C x C  J m |G*7P+bz8 2 7nQ$6!$%y'(*+*,-../021364555x554O4433333F4485555h5|46310/.{.1.-!-,*()'&{&&'()w**F++,,-"-J,T*+' #4D9 vc8aZmIs '880?!A}-~#M K 9[I?^-v ^ t_܏'٩!R.ںڼsݏ*ݏ l܉ݴ݃ ݗwܽZ]H"ݢ|[݌=ݹ ޢۣ VErޕ݁$ܴp>H"F;f(+0969:9a74[32o3`445r5154>4@44e5586654}4V4d44455&66%7641,=& .h"qߣDhֲժMڮܻAb0^WM ' =~ _!$']*{,B./13s4<5`5433{2h22]3333k3'3!3s33W4m4:43P33@33443?3223C57b8863w.i( "B*} P7 omۓPؖ1dڂiܾܹܳܵ )Ko݃ݖݖݡݫ 4O=݀}&/hܟܸܸܘ܀m܁ܗܼܹ܈E%z9;ܬ}aexܖܰܲܬܚܑܧܬ۲K؏CCIQ C,^ "%')*,./G1230444443W333323B3/332222222g2.2222$202&222@223J3)3q21$/,*(B'%d$" ]amKE G(qP/ % ) h 1 |sB+{kQRB yBZm5<ug f|;"o?B fY.lH-l.{ZܿھR{ gݙ}O+$ܐxܟݠD*ޤި=T?ߖ#ޯU F݈ݳݻxjU qۄE8csZ6%+uU+ /O%c! ܽe@V,_TK ="'i,02N4&5h5E54l4333Z4555n53s16.*&"b BZ]A5  i #pb'!"m$7&0(I*p,o.'0t1F222w2321111111111 2&2@2M2Q2Z2`2n2222y2`2>2)2&242K2Z2Z2P2U2223f4 5;542=0,U(#^Gbs  %c(#ߢ܊bَc6nCo۫, ] یu>8BUp1mbUhFd@.>ݗ=@~&I+ܾܳܝGܖ-ݲA7eY,kܨܞBۈۃۺ)߆6BnY"tm|~Z2(n>zEgie nZ+as]|{\dQ5Y ds!d#%(+.134a4a320p0p00X11p10q00.00j1%222Q21/10t0a0a0i0m0j0l0p0s0z0x0000%11110/-,M*(' 'k&%$J#!I, YoF<  .  ! y4DZ Cn#SVQCyt~+M4Y[5EHڲkG(x޾޻ޞޏތޟޭ޸޶ް޻+4 ߻_.NމC`ޣߣ %޳֙ nV tH4cp1eU  cU8Ska&?6U<8;{]1 (Hv=O ޠJ F}9" =o]שڡߠ3f g #'z+.1 3333V33222e2<2%22"2328262221111111e1H1;1-1'111001n1111O1`0/-F,<+* *)('&/%#`"p! J B_C]&|uh!o$Pw ;   [ j  , % o>wY! i NsOtO۶مSژܡ{2 K~ݡݕm-ܺ܏` \یZ9QJݍBJݩ?޾oz<uڛھۑa'!uSxciV RXL ۪܊%z'ݺݿ:,6 / nO&#\K@ -oP~..pIBhj)DM."ZeTEj ne(\@WHH)8 '7Sf{@Bu`,CI(Wc wGPS@[tHa>" #B h D / PsAHrq V]sC!B9, =VE]@.KPܐ *۸*&p$ڬ؏_iخݺ7{eWc>wrG y߷gܰr{ۈiۦQAډۼ=tUۑK=gۮ۠ۡ$qܛ܁v۶ڜكڌ<޹(LoZ [d+8_d)~pA    * q JOq_):+hrT{8a$-*98s h <"vu4$0i]J `  ;' "$L&'')^*+,A./0123 322a2=25242-2211.10/(/H.[-q,+*)('&%9$ #! !5 VeD$A(XZ  < 0 XhdWYpN~ 6-89J~c[\ =xlV8x 0ktg\~+.'CZXSFBFL`baK$#z=C C9{kd]b YnkL <  R { d d Am K2 . k WxT"(E_B#?܋ݙ.ޠ޾ޓ~opgV5,,aޮLX?xgN۳ڀ60ݨ?Wt G#',/23433'2Q10000000m0J0`00\122.321/H,'"h:  %hbe H   C @D=|W U!"#K%&`''''' (()*+C,,n,+"+**)'&C%#"! F V7u2|`6T r o}VZEݲ܉ܧܱܡܺ ݘ7/ުޙޯ ?byubQFRl߀ߊuN' ,=00k߉t.DD$"ݥ݆޹>z!4(p?Bhjp#b)<\j7&|_mpb  ^ V IPMT C Z&`>ID4ruFfS?FH*Bs0 &D&PBA`{~Ymu4   ]Awk=iMqd&SLwHM~vgZTa'7" zAnYT_y} I7gEQ sA'K[J%FaS8gi'N u 4sgy^_h}y~}~> K >Nu%U]3eeSfr|jQD6PJ~vڏګڞN(w{Ju 42my ,k d.bGBJPT PlA5X6  b"e0!"X E tg&c?# U^)sSpgTBv  n 7  }J.||AcNn }&{EHg-nw[L%a1 su!dqTXyG~|sn'![+QZsKAn>/kM9hEi\!wP *tVMnP \Pxl ( ] +YpuU6F`phM0! 5PhpbL/(+LrlTcZz<w &(sDAS}. O@5IZv fJQ|60Y\l+ 4 Y . b S 5ZHYer h - a'Uh<RS   +L^Px% .\*XvB {Z T  e &f`Wy+`9{wpiqu}sf\epFMAt ^^sm2FH ] 8 #  x  9 ? h?B22P]~~6)c7|a$ ~T2T|+iSm{T U)RRqwgG?XqCikݲ"۔5ۇo>"ܓLڧ+gB-mu ? W  Cl6l(:U T!!o! gwt"AMLM{Dd ? gXJ9$]^OWoxz${d)0)Np~tuqiS:>N\n^Q+2c^ X!DS-NY "cM - ~s(iU@YHh &gJ`Q݉G_l{ސޢ޵޺޹ޮޢޙލs\BJn2߳UT1_6߄uݸܺzWN~;>VS.5 8H  u C !"$& (<)***+',,,,,j, ,++++,,++|+e+|+++++M+***%++D,,,U,+S+**+b++++;+*) )(&%$#K##""!!>wx{ou   R xTOwlc~vEmqvRa>dOA # !|of)P1#m}?Un}T&Ztf(U߽ވ5xfn~v5K/[Xߧ4+f YFiZ*-3< T Y TykGaw{"$/'D)*+,,-,,,O,K,d,, -G--l,+")&.$!%~8\ W GRclmcj|;oC:o~U\[ NsddU|/X3,/pc7!40fR^=@>yU0kk>!#>Z(Ub.hF}cY F  ? 5 - v w G / _ d Q  9 % Q % # I j k 7 C e$iZ=^_cr8 .9| n *HOu{M;0 " N NN3  @eB7u9r` # .HXO)~ tV6?YP߽ ߹Je޹ݟ6QX 4UuCp U [CU*}_!L d \hY6 SeUOn1YhW ?p\nߊ!T6fUC16 0 2 ; V r 9   [ P ige^,8#~|rZElJ^  r/KDr)s4))0u+"AH}xE{(Rs DOW"%m2M\ZQ:*4of@ ; 9C? bf f ~?#pXj t !MtlmaJUa j  c o X P[Y e1>kBCxK u<_o   n-0 #&})e+c,,++ *e))6)))))+)(())*+i,x,+b*D(%t"0&# 3q `Sii Ve[aQ7{S?CI8~TDl71:S &  ^ T(ReXjqO${,"V"6~MGd0aSJ|\ahI81mzU{4 g;Iqw  DY]u2QK5 / O:y$ ))Ox]K~H a&ySS0<j A I 7 lCb O  J % !0>NE1D\kch=B)ONsI}wk"q}M\"$oV(&Rb_A 6cUQOmUsauq E ru$ld<0|{6S- .52 J 2 z h D!!"^"f"C""!!R"##$%%w%$#"T!> R}v!T\$>k s > l~5GpZ_Bn>9QaDoG(ro-t!sP|%:0U.LW,#[)=F,^\Z|XlIJ\4\21Z 6A7x  \e<bVUdy"KG)TJW!"#w$$%%$a$#q#"p"!e! I ~vq8 %`_bJqavG&[OW5EA 9 :`fSbGM T N2~bJ Q0ygKM "HI@8!{Lop;?<>^gVSH7 pf*B*ENl8kxQEi~/%Wb/)jc u:{t<0#^x:arqM4Z? PvZ7m P#%')))))))*)d)6(&$b" 5 ekI.)L> .uG4%m2. 2 m>[& 7 )  e u<GV/` b?gZ43!/_6 W ou(pV=r~ZWcx) |Wfb)A>0mr;?-: ' &3 SQF$  v^GgrߕDPI'/\tl5gp [#-SmI]i'X3Hw{N&7_ 6 } PhmJR, ("#+%&((A)(('Y&9&&'j((((&i%#h"!|^ S z  Ph^><K^]   _UbNjM|W>X$=1I.^b  *fJtP !H" ##$p%%%%_%%$$$$$"!BrMc3c#/\QV%Z : G\* #Uwc/46Q#|"f:VPy `n}6 K  hbRi6  G a:-xk-&9k>6[$REd/{N/7DS;'7#Gf}WpurTJkqߤ{o@fsnb]R'f& Azv h  PfV,jS T Q  / :s V0% 4jXfW tV^IGNZm2FeC.XjC\~_bg@C  y ( F'_|]~F~T@(df7\Vqt_Zw= _6;KaB   9"!Gx 5  & ` \ $ 0  T8ves&'(|~5+_`gbBy96 v =b0Gn ! "#/$V%M&&6'&T&%$3$$3$$$$$%$##$$%q&&&%$!MJ  X)+~ac<  $ 1 % 9 sfuw &rna )l%HwHpg22F> 7UUJ38R`54" f/hv@Z}bCz>vZ'Wx39afKFom'xON$Ri*i W22 = #uv!K 3@UV~E @  0 w}u-2y]! L V W g |*9=b O'RWI205O]V*-I[E4\IV6v7Fb@   `  y  <&m:MJy=oZ8n v6C/}T#AD*WmTVa-ZHa/]D"^gEGbGxYcj6$|{"^~Yko$,B^U9 iX \@{N C '>!?#$%%% %~$5$'$O$v$$p$A$$ $&$h$$$$w$##8"X! /1y"ZT! 9R' ^  :   ' m 1    k  |i#s`8 0,KAmB@WL]{ Y @{Ld$d fXF tdr91& ^ n_A%X1&M 5S[XUV^jpjcYYht~fMFW4.=D;0{"UA EdcJ U^9 bt5;kx= KY ! H n  % ]  *  G N 8 o]~ {o+G+I,gQRg > kiI\'fBZ]^<j-y6v  a  Rs % L ! (IUw ~ u b 4oduMr;(DP1!^3z*fr6 )% :w; ~ v g e=t"AfYoc"}Av6]#_ z h \ p G G#U7n]jrH}eL& 3@V9 t 8 _ A { N Z   ?L`0*`?QU:f 7g 4_K!+Od0o4]% H 9Dx0A Z       b # M P F N  s Q |'A\oqKYP@ 4 Z }  x > y A;?M#yfwlV{p `)  O 0 >  IP;M^{>65 h6m BorAX7jvxadDH>IP!h@N:jbf:B 5 D H ^   ` K   , T F   / M   7 W s c $  , 4 0 $ $ . 4 + 0 G  N 2K@` O+=?L A L uDkPql{0G&^5E +Z+C G E e :wv7+Y}$8B x v u^'I;wKti:r #tR P# WScm   s .( %)9t%=-`p> !'S{r}{EZ},:K[dR>b<0osU,[-PjK.K)8vnbmL < 1%d3 _LnN@G3C QYm  2 M vGL}9 6+9=IYqV-10ANmx4@"E`~Ap)Ep ` /AxPMz1[2(bn1IBY_Z>4P3m3wea& |`CI 4) ~D\}d*A U lY<)ji)}UBhnI`&["ZWp? '\ wY#VGSh ft.7 ( I M KsAPM+2D<4 6J5 xs}dFANb\AP5=uv-wV'8 K T 0 A W T3<5 ; ~ o r  knJ l:H#IP9<1UWVJ-i G$x!@h<BiXh $ F m O ~ g ) ? @  { r9K l 4 ? \ 6 4 K ) y  ' H = x h-J3{n T8l>WhNv7z2Lt% ,'/NkkPy9{ oL}tqJ0!x'mAMvaMtfG Tuw6+TFZ3GG  G N`&ThE7H]DM~6ofW} : I*Pc8Aggnb\IwNvy 0 E7.o-HKRl< :8*6j~Vc0@=R~KO|)"dw@#6`}?7JpB1{ I ; ~ x aOmBxn#* :ON/  1ii f R D . v Y3W2Bw2GzS`>Edy6Jk24RbKE]e%[gP,*${lg-J*2go1mEK@h6IaJpj* Tk RQ+ l d " x 'Jb \#zgB6H\1U p ^ R T |#%,_h*FJA %vE v Ul1 {4F>Z #/7qK}@%Ezd@+/hf^W.  YxB[CHah?64 $ 0*!KebYF Z/uecBPx4k6^ -^?p f86y%'jd A nM=)2]Hb;8w cOG8U"O|  C=b%^te4FcEbd?* t * .  j D T9K?Pqa= 6g 2(5Zmqkq' ,*!)00 kEJ'4BVv w#,ODr58@[{G=\>I5n^o])c3v I8^&:pm0mSK'/D T # ,  n f y ay:/H8)Q^Xah#iKP`zd'O<] 8 K w"ueD>/XH}-et8FXz._R|BUGa|X^{{>' cFBFUg{}#e<~.x `Pk1) # g l O  k  / = UvFs)k@b<,goZ\0KBPK9D B$C%s\xD"U/K9l tM. $,#xD Ii#:<H!Z)S> & .   /yfbHUXx 't9!N( #  T & ]k7  s $rrZK{*j:=4 ejU)Wm\]dv~t`(]2Tk,&n>xo$>dgy?Y<PhgV_Gm&]z+Z (QhhGo/"YM?r!Ag4BB<7711t'R'{)9ztiu`IIs:>^f\i{ zLe`ctn^5jP@(9t X # MbM  R f Y ] M > u ?s7 3ku7iR|:R{DH%qB  y |P{hX<"H 3 J \ 6 Tv_8 J XgkrB{1s_>-*2OhrJ7 UZGR"^xwX([1X')4+M8L@}6E!K{>'`8 I=%z#. R Z  M DY+  h m = 0  V FCZz=w~|rc\o]jK  K E  zK  eU4\`2 ,2Y!  ,\h)$g)^lYf z Fd| KZ=<EXC#(:Of<C@[-9 1  JJ3TPV@`K)>IfsrNv mhlxa3sNeY^ $ L{s af6@B9S+sa[[mtc(q"7|,Y|5GF/q( K M Q HE+eou=2"w'{0My K xa k> @f8z7O,!J =)e O.<qm Z r ct3<:  a j D +RlX69!EZMMRsfm 1|y\@q[@ v/Kzm( @ g  H n  I s l 7 J h q | wcUK]SMVkoqH2Ka_ZD v BNO%Q(*HM0}s{AKVqSV;,h3Wv _3<4 zW]4yU [w= xM&/Hd_ s V ` m { U  a;IoS]j&"3_ EO[fS.Y M  h J ZC@6:[eSI:BOb\NSu:zF q' &0P|^ A  w 8 Z |k[UO<',8yV#S 7,e=cc+`3:UtZk ^"sKDXWVr/i%u:^ GuB[|v,^yx}d"V MW]`(6Dv _o!PbqW(^u9TEsx3t +q+l + [ j FZ[Hi< d N V x =)9OctR @OD.!165)$&?^~w>d3, L A  %v"'~&d8Pr%cHs AJ 4]~wU65d] Kpv}ryQKb/ Q2,?R_]RMUh{uHy p!]+JrtBs85~$ E  w 2 e j 6 OVl'Ru2_8:j$(Ur%Z}M 0T5ORyj`]^c!sv'`b*2]wqAdM_z0@`tJg>,Qoh-b3qDva! M"gwPU\N q;YGZ~_MO,ee} S   [v?D,X(/AfgAa94&hNa6x#&M@y vjK)o\PUIBZ#/xBG_U  M\p'4<6T tA,xW0eF <q4* G k n  s k *  n N']e(d[#|Z] O / 3 n tdTNi*D\cjnowxVh)F+ \vP^ g8$z%^rHZH 8 ^ } 2 n :?+ Wp^;P6&L3ZcGV,T1Y{o-PyXIf^J5:X58)  E# /b}``[,*ou5;XL/N=uj`Tm@5d&h_x^=8p<9e8vWE-@,|LuqV(>74(k?=jFg2>cH{U-q ] "  2 {  { *  k | 0TfTTwNK5x= MDaXr(@tE=} 4>0%^w/v*2k#.Ct/ LqB/fTT^YH]cRA&S0Yi3UoXz|")\hWO 'X@]B/e q3h/g>/5B(g}Qjd}g + F?kWL3D 2 ? o 8 < v }y9D HgT)#PgiMa?-09I?!tI9Tax.1h#H0?ht?Dq]6}ze2 ^?_c@i3oOUJQ$ hriculF '1/~GHtNfm 3Z]X%)#*W|Q&:eYk6"*K*rk" 1 { 4 w + "h4GC);ZfN.5p;^z ? : ! NZ[&'S\ O O }    V  6  `>vNus[^F:qqL; CC `O%>2 AL3Jsq,WF_xypgX|EKl:xZE\lgW/m'| I6:EBY>;8 ?9hneW[v>Up{>_o-bfD x o T j @  t  >Z= @sf'hbjEwu`2 W4D ` zfW>ai : IQI2QMknladyQJW5QPrD Y d O %      Z  n ) ,z8rO$b;P-}rq[PE u8NO tY9G'*N &E\wlcCXd;/={"k,n1r%}>sfRTx @oEiy3f.[cI 4k ')Ae 3-'HDv#m[X6d77Ld~|$[P'!RB{4G@45JcfCNgB+5Y},nS1r 8Sdr[[qxko;($^jE+(NL)>h'?P\[<i=Avz# S Z B &    - -  t y|S#(a3Q18LhuZ+v~~=2:SM<7g^ ^fiO< D . `  SCx56 p9!/D@  < u ;v 3`{<!=bOn_O$f *U7Q=gIW|h0Eb3e0hp$bUat||aWb h : ! ( E o x X ] "  M#HrGNR,*&Uk&%&-RbE,Kub!:<Au#XE'  $ " ( , . / "  o> 4PY8^,#=hU [jC  % ,  G c *Cq;y[G0xX'9Uw~xBh:eYMana FizUZ3%(BZgcVE?DNejwmnhms}WsO\,iZJ$"/q'+) A?##,<b3Dp-<Qdy~j3VReb 7}wk.\}"B2 _ /  6:kSN} FYJeO[k{zrheeipv.>5 , 3 t / {   sh U%KO]@vomT!^FEim]AulI&nc^\ZpTnV8 /ywQFSXX JsgZ`gi+z*  "HRJ ieFX SEm;z`<#K 8)mnt,^ZR?5  z  8 _ v F  W [ /' p0%r99w&&UslDlJ & f a \ Gw  O < q   Y _&sJ,5ml=|N "Ba{`(W#,/D{*$0W3"{qz%o5Npy6=PnnRdnxL:gh"~G G 7X\9t3Mdcrmb2X[920[Evx X3UF;_tZG).KVq ,[+3(c t73?D4z0(3;j\I:_G1}C !46!hch|pwn%& Z F% *.,'PgJ#EU&wL%o.d  . F ]  G f  y | M  k 7 ' 5 C > ! X*pK'l?TK]%_O4=C=:/-0Gbo,]A DX{;6KJuR24x  :?F1m\TVcduy5t6`)Im|qS??TXFK i&] +L KoHb#Y h G & ,dg>-:$[ < S ] ; ( " ) 0 5 6 3 < T  E T 0 ` K W zIzC^cJq 2qA5GE[0sU(>(XIvS0 '! ;~jV]z7wAP9at_1"e*Vfdf8wyl@8I}#pZ& F r  B v l < m  JU4cFM  J@}&Hi:GFLPd~NY^. sW|9S'$7Ockzz|k_[j5axrV$t]TOg,CLr^@ kMW20uB|%)> ^! PjSF 3 l  c >  w /mq7 P 9 I n 7il1 g  % g  A Cl6"/o#b-<@5- & *&2=Qd{yUh_gH l '?a{yC`KW%n >U}a@lu{wklD}ot .CE59a0Agme&r w  J m  P u ^ / | b B  <eqlTNS,]0P^t~k6 KtK&RP0+_tFy)Fk5h9!G"x/L'N@[w3GRW   a * N w  ] :  F}JKffux-5747/z i^ 'bAi Kp>s=)71f7meix_*|YKNVbkkuovxvvjZK>7IY/TYU$%Ek TgWd to[5!imwjv/c@ 'O|Bk= |['x 9:841rI* B   6 M ` f Q  I "   ;Pl5 ]0DWbY4nP!G; 0V}eo&p"|B3Dcze l9}0PrCYyYKWdyx}okjoz{zo`_alzp]*tF@F?_uZ,hZ+@W~m(z # 3 C M ` y S  J r R m n p!>o2=\ iiUKIHK\z4r\(goWH+Pr|$E1+`I ,6GJ@-$68!C]U9g?`Yx"HjIX`+{=>Hy/m<fWiZJ  !.4Svh#zd+tRIJU[^h;M1r K9gMj)ey"m-Dy "r; ~X.Tj_{6y4/{8x&4s9\{b38cq\)'0Scj}>3MMr+.o @Z^;]e%8=-)"&.&|H( ?Qx'&=w?KX{&p8^|8^:o5X' .qgxV)kbOCL j- \  b  H d s H  { *  6 Y  &[{a \jV_n:v6[@jL%S}#JXWG58T'uX e(Jct.em3 #"0,+ e> ?-! w]+=~]-zNt.uD!s[G?52,+':Tvd`0%aB hr^B" 8y^[n({0n0*9y0fsnkv{yxuChG\9ay6= P7ei#,n- ?6'hd] ;W%CN9 `>//)1=n&tK!.oK"f7jkU&kMa 1bSn7zY6 M @O{SVr2 %:=0gWuep~n6[EN {W/ 5Y{-q~`w "ELHk=)$Tz-yu=~7vz#R}6 Lz.YBu&*5)v[:Be_%2P"vGO~.DECo58TCXv77hrcvL aGTkGFF^h%c%L>Zr@Bl F%l4mkk W/hBg#3gU*&W-_B5,*kkAP#(8Vm"h]Ep WwO'EA9    8|)zEm@Ww|pbXV\_e`VG58Cq%Nov{}wS% }_7z: -Ad~)UolWJ7Ni4Tkk1%"%yod^TLEK\v  .EOE)fr0u4Hjfpyve?!wL0")@b"hVS!l7Xr"Wzd.JFj2p;*/w/)qo94t>@NUZhGO U^%yjsBAtXxkT'Gc3Y`7Od(IP (EpFsO VBLy2dnK0_}d38P*fv_cdxx}nb\[huzoima( 8n|qq|tvimdgdpPywS+ ,03${fhg}|zp|c0;U6{-n-"+:Wt%[{iB%k4  oabjniP=Q^ z0f*+`~(HA ?]nhcqmg!Rw "!  $Ck9L\ X [GCc-Kytfb>w]={A"*XeI0gF\VNIiL?Olx~sdUOLV\`aWTMRWaedb\_hu|a4vZ>ae$@s}S%ll/0IV`bd^bZ[^bz$Gf2BtN@xzR"+Y ) 8u-%h6Jj'PwiL4Y6(#0Ka3``'l L j7)m ,T):?-#aqH'zVKC9UtW.Ehv|qg_Zbepqqd\OORd#q#<KVjdyArqeG)PCeJ~1[=Yu"\T^}^+7OmZ(C^qllVT^&h0Av\.{<Zouto6/\^$6'^j~6'2G8To0:| U{K{|=_aPMKSRZ]adccdkuu\4 [- i 99 ~f,Puyw(aI C`{tot_I2.L"hydI5(9\%^U ,Z6So{znX0b@;<Tj"Evn>f;Y'%,9}[.>]0Tszk]j l!9Zw 5XyD`{osdi_[MLD^q<\psvqyx~zbH"Mr'[KBQalobP;48Uo<k /Cg *LZmlwtzneI.TR!V,? KjLj!?;(hL~-`'&a?,8t96ah>;FO+:tXw b8*&,  2k1f8^ #7Y| #g|FYjo~H +a&NkdcUZ\j`E SjdN-Z Nt>r~U5jI2 z:jD5166*ArC~ [ % E'Z|q]H@HWlws\=yJ#xX1mK-qK%,Up]A~8T,\-N^jjX?k4v]9 FUkg_H4!#/P$*-+5>PhDex 1dN jC9&!Rm( @eR9) {iR:i]V[XYTKQTp#:Pi '8My+i;YxwZ3 aCxW,)PiA9VUwYDGIWWN.~eUMLOOVWZ\W^ZckmtdO$AVbbi_e^`[ZXZ\]`TRA=:BXq-HTVS@:09CU_^K+yV;<Ggz{gA# )BPQUWonigkbQ* %0# n\<$n\@#pjglc^G04X~+Db/q "Q~gTJJUWd[`W[Zbbjad]\a`gd_UK@?CPh%Dfjr_L2wW6"hB&!*:?7 S3%)*(FZzC}0NXY\oX;h\8cFk5p+kWB722ASv;xp -Jdpvnlcd]^UUWc}uaM6l'l<Y C_+Gp-<D<;2E]~hJ:|aS^bjaM'!AmbBsS1 8jDnpM*  L{gUMHEA7 'Ler,g!>n@moZ@;662",Ij0Sjuyvy|x_<wID  JMi|S/ E2`8s?w:z   ##lF)!HhmP*D\w.YX3M^y ,@UXZH4}i\B,\ K a {  HtuCM5s20X}&Z hTG8){`WMSXk #=D]kA{ 3Y1HJKA9401404+/'+%)',14=<7&8Su 0`6Sm lP@0}cWS``\L. +YtH% 2No*PmwP+ xM& {}vvlv|Eoa<}V-#Ko wvv sP7('%%#% ,+655.-(38IJM8# (Hc ?g1Yqz{puxeK3|cC& ~z}wX:*%&7+1 5Xy   jH=%fyX:% ):WnAk9q>!s8q3UlgO:.Z|kUG)mO&j4b>0 vV=-#%$.-4131449985/("" /;WxK 4c2Ejw(H]ipidSB# yiFj@"c,woqvxu`E#{YE./3?POTA7-*7K^z>tX,g).+)'$(%+.13.!{[A!.Mm +E^v m/ sQ4.<_ %3Rf j=f(zT:,,'"Fz&<]^'N\^D']3]3iDu@oXPNQ]^jn}:Vjw~wcP8)#  #%-@Qu+Ce| &9VWSMHUstidflbR9 u_C?=CG;$"2Le/7<:9AQh4Qn  }Hp9`(iK5+.CcMy!6CVm (wT9+H|e?zB+?M\o"Nx([/NkzmZE/ tS*b!j%\{oty 9pO,k 0Z Se-rL#~zzFq-=e'ASedmdc[Y\akpqfX<))+6,$i1wW@rO4hC2*,'&:]&6Uz #/Po%" #/1r^@N*EThm +EZp *<Si,DMLH5)}V0[1raP8  -X2Pl1|]!,., {}z|pO;oWIFLPOC0zj\C-rZB8,+"#(2APq6nFwY7J_WO>,%$ cI80"vaE( ,Ib{|x~ '+171.w^PEDGFD2%(:DHIMLQNK9( v]F)6D[cljje`c]cabba_a^ddihlglimjnhfbW`]s  seK@%rbP@(u[QMQhy.AUcq{1Uy&Eiy)Jjrzmf_Ybamek\`^cpt|siQ?$  !$!tdH3+;Up!@VyvL%oV?$ qR<-mVKIG@3 -HUhw-Tt"S}3OfqkbJ:' W3  qYL:*oT) q\H-",@H^o7s.h6Qf}{pS< ,Rr:d2O]lljd\Y^bqrtiXH1-#%%}cT?**.J] !6G\fkfbXW]bqtup]Q8/ d2_4qC)tJlWLDKP[`d\VD7#  "?Qhz!A_x.F\Z^F7! tI'rV?. %Fk*^+X1o#Eq0<DNSZadd^SE3'|ugcL7[#'IgAf%3AFJQVbhmhWC"yShC$mQ^>$lW?. -?MWk Dt5hBnF[lkx`8m]O<(Y)mN;'&"'.17750*$"!+0EIYV\U_e{$&5F` &4F_x;f2CSdiliiivwZ@q@fD*nP5}m[QD8% %3BFC82+9GjCa+L]uz~zyy||{uxv}pbSJCE=>.# 7Jacncf]hpxfZV`kyy{qg[NFB?>2* &/;=;75368;=@CCGBA5)zkYC%uN00Po8^ $-/74?FScny}}}{upfVO<<15.)   5FX`fc_N@+y~qkfr #Hf -Ho~eP5zY8l={T0 '4ELaxIr 5`/X&0=IMVQNA5&h6qL!wFZ!}tlituc\cu%F_#7Of|%B]w-3HR`fif_QG9+$ xm^UG<2!}6Pht0I`qnbK2qVF+lG$ |{nfTMDJTbry|xofie{*?h| &6L\m|}eN3" |sh[M<0! #4/ rWC+y{x >H\`ipw  }m`OC:88<<81&%3Qh2So"A`&+7@GKKJF=5#cT:,yfUI:-%rYF+ 5Kl 2ARXgk{}skbYVSVVQO>4! ypcZVGC5,"uudf\XXQZ`p.>Tfw +;NWknrXG9-0%/$& +<MZ`fdkfqnvqqgbUOF>9+' wywrmd^UQLLGLHJOHOHGF@CAFLPY`iu %/6<6=8CGTYcacaektzvmeYND:823+!v`M6%  8@Xbw %7L]tvh`SMB<2*# '-8=@A<>:?>B?A;>:=?@@D8D6D?GJGE>51&(%"!!&&)" ymla[TC;-% "  #.=L]jx !.9IWiqzh[F9*# -+56=FLQUNPFCA<>77+*#$;KYfjv|uaRA2' xzvy~%-10729=EJWT^YYVTT[`nq|{wtfaWSKK;9'  wp_]LM;<*,###+5=OVipz+7>GLLNOQU]bhmnmqpzrp^RE4-" yvjb]PK?8/*''+.58BFNX`jty+9GX_mipijklpqpqkohrntrolgjgtw}zxxxxsl_QE9/*    vqlf`ZQF<1*(%)*047AFS^kw~);DPX`dhhjhmgnjkmhmgkjlllikhlmrttsjbVIA3.("/7?BFEHJHNJMMLIIHHLKRW\afdjajajfknklf`ZPMAC7;37255687968/3&$~{zpk_\PPJKIIGD@BAEPUelv~ '/?DUUcdpu vcM<-  /:EORWXW`_noyytykogjhjhic`WOC8/!  tp^[RIG:7-+%+&.,))  (.6EH\[jjv{ "$--,1)2-618/5),! |ojb`^[\YVZW^ddomtw| .AJ]]pq#!  yiXK:0$   qmZYIH=62&& !.5BHW\gqx *1<BEKKNPSSVTSPLGA@750(&  ' .(55>GK\\mlzyynfYPG;4'" ~rnehac_ZZRROLLKEF:?5;6<=>C>ECHKNRRUSWV[_djorwz #/=FXbq}~zqpie_[RRIGF@D?B=?>;=::?=DILSRYT[ZZc_hiinhskyt~}|yvtvqvutvsrplig`_YVSMLFB>931(,"' #"" #!#!# ywmmjghhdgdcccae`d_d^c^c_caababbbdcdb`c\b\cdkqz    &(3:BQWeqw{vqkc]TQEF77+$ "&)+247=;@<?<:;370.-'&#  $+6<IRZhi{w~xrld`XQI?5.) #%%&.+427:;AAHIQMVPWUWX\[e_leoknppqsrtsrpojib_XQLB85(%    %',14;@CIFKIIJIJLGKGFHAD?=:52.*&'!  " (&,-/65<:A?BCBEHDKEEF?A9931*'  ! $"%'#&    %((.,00234526.4.10/0-.+*($& !  $"))-03597=8?8=8<89541/++''!!          # $!$$#&#&#'#(%&(%'&$%"#!                                                                                        LIST~INFOINAMLarger thunderIARTSven "Yamakuzure" EdenICMTAudacity 2.0.5ICRD2014ICOP1989-2014 PrydeWorXid3 ID3@  0: TPE1Sven "Yamakuzure" EdenTDRC2014TXXXCopyright1989-2014 PrydeWorXTIT2Larger thunderCOMMAudacity 2.0.5atanks-6.6/sound/01.wav0000644000175000017500000021463612636021030013062 0ustar apoapoRIFFWAVEfmt "VDdataFOGE.E F: ?SJ7)08+1% &LE9,,$(   !    %((646104-1//2//-( $%&%"%!   %%(+*05458479;8<:;96.4657:9=6**('&!   !#'+&(&$+(%##!"#&(,.'!%'%!     %"      #(,*,-+03/(()("$#!#   (++(.+(+-02.+%%%                "*,*""!$-43/.4:84.-+#!%(02210/,0/032,(!     " '&&"$ #%'!! !#&(&))(*+*('-*($%%""$   #"%')),,,)&+*%!!#%'(*)**+*,)! "           $'&&).././../...0./../.0/101/.33223011.-.123321323232210.-***+-,*)(%$%!!$#" "!     "%%" #"##$#     "&&#$&'***,0.++(&&((-052346677875135756540222552+#! "&#!     "$%%'%&(*+)*)&(&%"##"#%%%#$!!&()&!    $&)++()('+/23897532/389;=<<95300013564630..,(#!  !$&%)+(%$&)/2422212-.000./,**,,-,,)))+(&$%#&(*+,.+(#!     !%(+10/12368867745888651022442/*'%(+,*)%$!       !#$(+,(&$ $#!       $&&"         "  &),,--)%"       "%$%" &*+)&$#      !&%'$"! #&'*-043300.+.-.,,*($$!     !%),-01200--.-.-/.-)&"     %-21102243566565777878855453555753232311112356552/,**'&&))((%#           $&*-0/12132312023221/././234333001120/0.*)%"""#!! ! !        !   ! !!!!!$%%&'%'&&%'(*)('&%%#$#%%'&#             "#"&&''(&()*))%$"! ##%#"        !                                 #!! # #$#$#$%$%$"" ""!" !!" !!$"!           !!""!#""""$$&&&(&&$$"                " !!"! ! !###%$%$%%&%#""                   !###$$%###  "#%$%$%%#$"$#$%$$""                !!"!#"#""!                                                                                                                                                                                                                                                                                                                                                                                                                                                 LISTdINFOINAMFire medium missileIARTUnknownICOPunknownISFTunknown (libsndfile-1.0.25)id3 ~ID3@s  #";TXXXSoftwareunknownTPE1UnknownTXXXCopyrightunknownTIT2Fire medium missileatanks-6.6/stock/0000755000175000017500000000000013006377360012116 5ustar apoapoatanks-6.6/stock/44.bmp0000644000175000017500000001136612636021030013040 0ustar apoapoBM6(((  baa`__`]PPPPPPPCBB<840{-s'c!Ubaa```^\PPPPPPPBBB79/x3+m&`Puqqppolllllll\Z[ZN4,opaaaa__\WWW]_^HG@B@H1}'e"Yqpqpoollllll[ZMB4+obabaa_]WWWUIH>?ED2%^qqpoolllkZ]og4,obaba_ZWWHFDIB:'crqpollZbL)ijijgWM>DD4#[qok`wp'crph[P]Io2gMCatanks-6.6/stock/10.bmp0000644000175000017500000001136612636021030013031 0ustar apoapoBM6(((  PHPGK9L2&/0&$A vRV TTZ4 ϶CCC=TTT7+++ATTT*P ͦ_;:cDTTT*tP)^^^~xAAAuuuѯNNNϗDDDLdCTUT&yQPPPl} qqqԴ???ڕAAAOjBT)xU*<<*',*D<A;9(&$++I@F98(("(*QSRA?,+#(+^^hbPO42*(.,dctj]^?<1*/,hdwodeGD7,0,heyrfdKI:/1,gdzulgNK<13,geywokPM=22,fdvsmTO;41ebsroWS;;1[gqoYRFC]lpWRU[iUWatanks-6.6/stock/55.bmp0000644000175000017500000001136613006377360013056 0ustar apoapoBM6(((  abab(-1706%)ab$(>EXbiufrNW05ab(,GOnzNW%)ab(,KTufr06abab(,JRwiu17abab(,KTwӒXb(-*/KTxٝnz>E$&,1OXyڣuGO$(05S\ڢwKT(,ab05V`ۤwJR(,ab28WaۣwKT(,ab17YcܥwJR(,ab7=\gסvKS(,ab7=^iқq~GO'+ab!9@bmӗkwBJ$("<Cepјiu@G!% $?FgsГgs?F!%"&@Giuˑdo:A"$(CKkw̏bm9@"ab'+GOq~Ȍ^i6<ab(,KSuƊ\g6<ab',JRx†Yc17ab',KTxąV`28$(GOuU_/4>Emzۨ~S\05)-XbڣzOX,1$&ab27iu٣yKT*/ab06frӞuKT',ab%)NWmzGO',ab05NWfriuXb>E$(ab%)0627)-ababatanks-6.6/stock/66.bmp0000644000175000017500000001136613006377360013060 0ustar apoapoBM6(((  mmn()))))))(&j"))(|n%())'()$!))"y))#)&y)%n)&)%n)#((")")pp)')$u()))))"u)")))'$)))&(&)))(!))%))"x)n))!$)) $( )))u%%m))s)u%%m))s)u%%))s)u%')(p)) ))w)(|))&) ()''(&')'ls$))){)$()))))$$)(')#n)')#)y")n&)#y)"")))%()(u')$y()(&uum#()(n$'))))))))& patanks-6.6/stock/43.bmp0000644000175000017500000001136612636021030013037 0ustar apoapoBM6(((  ~~~{ji[UGGAxx7bbpp`tyDzz7ff~~ifaRJL:jjppića7ddsfSPAzz6ff/XXv^{4``sYRMu٩BxxfZatanks-6.6/stock/22.bmp0000644000175000017500000001136612636021030013034 0ustar apoapoBM6(((  [[[[mmbbpp[[TTvvWWMMQQ^^QQNNxxeeWWQQTTpphh``ZZ[[atanks-6.6/stock/65.bmp0000644000175000017500000001136613006377360013057 0ustar apoapoBM6(((  8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888M7R7y88888888888888ꊎc88888888888888888yRR88888888888888nM888888888888888nn8nR88888888888888MnRnM8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888atanks-6.6/stock/32.bmp0000644000175000017500000001136612636021030013035 0ustar apoapoBM6(((  :g{4Z]'EO!:N!98b7bv2Xe*KO!:H5F49d8c8by3Zj,NV$?J 8F4:+Bt?p?p;i~5]o/Q['DK8K8@0:+@rBvBu>o:f8cy3Zg+LK6I8J 7?.=,?pCvDw>n9f9ellFaa@_WV776$rqLY77%$$UT9TS7ؔ~RFF.21!~UeeO66%z``AggBȆwUT9==(0/ ]]?RQ6lbݯwwNcbAZ}}TZZ;BB,=<(xxNj̋jjFDC,EE,ssaBB@<;'hgDba@~~TƄы_^>11 :9'[DC.ړfXW;poIqkbbBAA,SS8||iߖƫkjGWV8ppKvvWZZ=KK3s{\\=::&VT9~llN_vʍJI2&&ZY>g__?KK2qqKΊhJI1:9&ywNuba@XW9}wvRED-Ή{UT8<<(dyx]ؖo//((nlGsӨrrK77%cbA~bVV=hgE54"SR7qqQΊr0/// 旗mYlشYX<Ϭsatanks-6.6/stock/60.bmp0000644000175000017500000001136613006377360013052 0ustar apoapoBM6(((  y""""i&&pgw{!!''tgg%%{$$&&xghz!!zghw{{~##ygg%%!!phxge"" xbPhZmS}rYwbNW^gt,,r&&&&&&&&&&&&&&&&&&eLvsg{omV%%&&&&44$$##%%&&&&jhvmlr**!!k&&&&uh&&&&&&''orkw##aw $$i{}}{l!!b_o~mqw**\w_e!!##{{i|{mPuKRYvppr}}}$$""~Xz IeYY|{l{''{!!{yh%%~{|~**!!,,"" _atanks-6.6/stock/79.bmp0000644000175000017500000001136613006377360013064 0ustar apoapoBM6(((  VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK JA VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK I@ H? VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK I@ H? H? VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK F=82 C: ND <5 VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK H? 612,4.5.2, 71 VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK H? 6/ .( ;4 A9 VK G> ;4 VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK H? A9*%2,5/2,2, ;4 VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK H? A9 5. ;4 C; NE LC ;4 VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK H? A9+&2, 817.8/ ;4 VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK H? ?7 ;4 E< H? G> D: ;4 VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK H? =60*2,4. <560 :3 VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK H? =6 9271 A9 PF G> <5 VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK TI H? ;40*.(2, <560 81 VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK UJ H? 601+ =5 B: SI <5 VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK F= ;45/5/ A9 VK B9 VK VK VK VK XM\P]Q]Q^R]Q]Q^R]Q]Q\P XM VK VK F= ?8 D< D<bUdWdWdWdWdWdWdWdWdWdWdWdWdWdWdWcVcVYN ND H?dWdWdWdWdWdWdWdWdWdWdWdWdWdWdWdWdWcV VL J@dWdWdWdWdWdWdWdWdWdWdWdWdWdWdWdWdW`T SGtfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftfftffatanks-6.6/stock/77.bmp0000644000175000017500000001136613006377360013062 0ustar apoapoBM6(((  ТТzТТТТbТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТ}͡ТТТТТТТТТТ΢ТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТɞТТТТТТТТТТТɝТТpТ̡ТТТТТТТТТТТТТvТТТТТТТТТТТТnТǝТТТТТatanks-6.6/stock/24.bmp0000644000175000017500000001136612636021030013036 0ustar apoapoBM6(((   bFFge,, " o }5$Lke6v@:z1Efe6vGhe6}IPE~F~266~vGhe6(eZzcXK@^ri}Ui(eZzcXK@*TmsRkIaeVufJ;*TmsRkIa(?&+Kz2AwC_W#5(?&+Kz2A 9Pc+O:) h/79O}%h 9Pc+O:) h/Ez=2p8*h&.h5Ez=2p88A{(w?2sZB8A{(w?LQi1KXLQi12POH F2POF HOP2F HHHH1iQLHHH?w({A88p2=zE/ h):O+cP 9A2>zGa=ً#,.tx{޼qtv-98 "!Ե+.0ȭOWS ^fe;@AJSLouvjpp(5-(64LES*03'32]ccDNL8FBglq~}!-,#.-;EE$#:DDóᜠ;>?1?>CLJ  7@<36:мx|z(%̲6=@ȴ(1, ū?EHԼvwwWYX286(% X__ǡ殲;?C,)0   +( $))䨯Ӝ!(+  7?=DGHHKKsutwsy^^eatanks-6.6/stock/58.bmp0000644000175000017500000001136613006377360013061 0ustar apoapoBM6(((  @@@@@-s3 Ls33iOq` @m& es @- `%3 <2g  ` Ls@}6,:LMAFi3@[ f` f:2/t 2g2:Y`qF!:L04g@ $q//g2_ QHQ `` atanks-6.6/stock/18.bmp0000644000175000017500000001136612636021030013041 0ustar apoapoBM6(((  nss`caͱ?GG "%zIQPqut.66Yac{?FI (-_hif^p(53%""++4>=ً#,.tx{޼qtv-98 "!Ե+.0ȭOWS ^fe;@AJSLouvjpp(5-(64LES*03'32]ccDNL8FBglq~}!-,#.-;EE$#:DDóᜠ;>?1?>CLJ  7@<36:мx|z(%̲6=@ȴ(1, ū?EHԼvwwWYX286(% X__ǡ殲;?C,)0   +( $))䨯Ӝ!(+  7?=DGHHKKsutwsy^^eatanks-6.6/stock/26.bmp0000644000175000017500000001136612636021030013040 0ustar apoapoBM6(((  :'1AA1' :H:;eittie1++OVO1tojjot1.'44'.Obbwgdg">wcUUcw>9QOccOO1 Oyqk3m}{MOfwbP>awfOAPuy1typ1Oy[V;:i1th\:ft11t6:Zft1AVgymZG<6xn]hxwt1yvPAOfw7=OawfOA+Oy]W;3(k 1OOc%cլOQ9>,w6;Ucw> Oyqk22'j*.' b45FF'.2+t24jot1Obbw&h%c%c.$6g-,e,, 2&f'i+ttie1OV P " ! "(2AA1':H:!  '  .. ':}5$Lq&&v@:z1Ef}IPE~F~266~^ri}UieVufJ;wC_W#579O}%h*h&.h5e62sZBe6vGhe6KXvGhe6(eZzcXK@H F(eZzcXK@*TmsRkIaOP2*TmsRkIa(?&+Kz2iQL+Kz2A 9Pc+O:) hAw({A8Pc+O:) h/Ez=2p/p2=zEEz=2p88A{(w8 h):O+cP 9A{(w?LQi?2>zGa>>>[[]]YYYYpp~~گkk kkkk{{mڞᅅβ||~QQQWWXggQQT⣣Ќ猌ՐPPfLLL՞@@@ZZk$$$߸ffphhhBBB(((((((((qqu((((((888333333333333uuu333333333=================================HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]ggggggggggggggggggggggggggggggggggggggggggqqqnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxF1"ut:MЩxF1"ut:MvH"hhH{ȢHHH??!iiGHHĬmJHH/ @HGEyԶ}*)@qp8:9~˝8 FHG%xxDզ->HHHH^ܦoXQTWatanks-6.6/stock/61.bmp0000644000175000017500000001136613006377360013053 0ustar apoapoBM6(((  VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK JA VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK I@ H? VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK I@ H? H? VK VK VK VK VK VK VK VK VK VK VK$J$J$$$$ VK VK VK F=82 C: ND <5 VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK H? 612,4.5.2, 71 VK VK VK VK VK VK VK VK VK VK VK$J$J$$$$ VK VK VK H? 6/ .( ;4 A9 VK G> ;4 VK VK VK VK VK VK$$ VK VK VK VK VK VK VK VK VK VK H? A9*%2,5/2,2, ;4 VK VK VK VK VK VK$$ VK VK VK$J$J$$$$ VK VK VK H? A9 5. ;4 C; NE LC ;4 VK VK VK VK VK VK$$ VK VK VK VK VK VK VK VK VK UJ H? A9+&2, 817.8/ ;4 VK VK VK VK VK VK$$ VK VK VK$J$J$$$$ VK VK SH H? ?7 ;4 E< H? G> D: ;4 VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK PF H? =60*2,4. <560 :3 VK VK VK VK VK VK VK VK VK VK VK$J$J$$$$ VK VK PF H? =6 9271 A9 PF G> <5 VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK RH H? ;40*.(2, <560 81 VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK UJ H? 601+ =5 B: SI <5 VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK VK F= ;45/5/ A9 VK B9 VK VK VK VK XM\P]Q]Q^R]Q]Q^R]Q]Q\P XM VK VK F= ?8 D< D<bUdWdWdWdWdWdWdWdWdWdWdWdWdWdWdWcVcVYN ND H?dWdWdWdWdWdWdWdWdWdWdWdWdWdWdWdWdWcV VL J@dWdWdWdWdWdWdWdWdWdWdWdWdWdWdWdWdW`T SGatanks-6.6/stock/73.bmp0000644000175000017500000001136613006377360013056 0ustar apoapoBM6(((  #nh e_ d^ d^ e_ d^ c]!ga!f`!ga"jd"ic"ic"ic d^ e^!ga%tm&vo&un%qk$pi#oh#oh#ng#oh%sl%sl&tm&un%um&un%sm$qj$rk%un&wo'zs){*}*~*|)z)y(~w)z*}*}*|*}*|*}*|*|+~,2,*~+,,,.--------.---,,9620//033232232232220.DAE=645555555555555554JUlphN>ŷ977877665555556FUtQEB@Ǽ@ƼAɾ?¸=<:89:<=\fVJGGHGFBABCEFC^gWRPIHHHHHHGGGHFC?¸@ǽA˿CFFGGGHGFEBBAɾ?Ĺatanks-6.6/stock/37.bmp0000644000175000017500000001136612636021030013042 0ustar apoapoBM6(((  ϬsشYX<Yl旗mΊr0/// hgE54"SR7qqQcbA~bVV=sӨrrK77%ؖo//((nlGΉ{UT8<<(dyx]uba@XW9}wvRED-__?KK2qqKΊhJI1:9&ywN_vʍJI2&&ZY>gs{\\=::&VT9~llNߖƫkjGWV8ppKvvWZZ=KK3ړfXW;poIqkbbBAA,SS8||ihgDba@~~TƄы_^>11 :9'[DC.xxNj̋jjFDC,EE,ssaBB@<;'lbݯwwNcbAZ}}TZZ;BB,=<(z``AggBȆwUT9==(0/ ]]?RQ6UT9TS7ؔ~RFF.21!~UeeO66%llFaa@_WV776$rqLY77%$$̬qedBącbAJI0g[TS7.-::'\\>cˇ޶xgfCYY;XX:A@+YY;qpKgfErăҪp\\n9f9eo:f8cy3Zg+LK6I8J 7?.=,Bt?p?p;i~5]o/Q['DK8K8@0:+9d8c8by3Zj,NV$?J 8F4:+8b7bv2Xe*KO!:H5F4:g{4Z]'EO!:N!9atanks-6.6/stock/64.bmp0000644000175000017500000001136613006377360013056 0ustar apoapoBM6(((  ;V٪;ƫUqǮ8UV٪V٪s΍qs΍s΍s΍V٪s΍V٪s΍atanks-6.6/stock/49.bmp0000644000175000017500000001136612636021030013045 0ustar apoapoBM6(((  ܄zzzzzzppppppiiiiiibbb؁bbbddssssssddfZUUUUUUZf`Hk_TTTppTTT_k`HTPtW^^^kk^^^WtPTTOlM#xxxwwxxx#MlOTTPxh??tth??xPTTT)XUXU)TTTTȭzzȭTTPϺP////____________wwwwwwwwwwwwŊŊȍȍ܄܄zzzzzzzzzzzzppppppppppppiiiiiiiiiiiibbb؁bbbbbb؁bbbddssssssddddssssssddfZUUUUUUZffZUUUUUUZf`Hk_TTTppTTT_k`H`Hk_TTTppTTT_k`HTPtW^^^kk^^^WtPTTPtW^^^kk^^^WtPTTOlM#xxxwwxxx#MlOTTOlM#xxxwwxxx#MlOTTPxh??tth??xPTTPxh??tth??xPTTT)XUXU)TTTT)XUXU)TTTTȭzzȭTTTTȭzzȭTTPϺPPϺPatanks-6.6/stock/9.bmp0000644000175000017500000001136612636021030012761 0ustar apoapoBM6(((  PHPGK9L2&/0&$A vRV TTZ4 ϶CCC=TTT7+++ATTT*P ͦ_;:cDTTT*tP)^^^~xAAAuuuѯNNNϗDDDLdCTUT&yQPPPl} qqqԴ???ڕAAAOjBT)xU*<<0o)W56;>z-i'm~422256s+g'`$/0010p*g&`$6~/0/~.z-q*i'`#Uuz5s*s+v,t+q*m(h&a$Yz!QoMj~.{-y,y-{.x,s+o)k(e&^#Vw QpOl7V987F765>531k/W-u+n)yV&'#Z|!Zw!v' lH!J;K<=D;^97A5=32/3-<*j'pa$}&"pB!Z{!EGTFQC@j>E=:8>7|65=26.w+p)+%)"al!z*!JKRIFBI@_?>K;C976930{-D+,'ht${+!}("IK_JHDڎB@?u=;8X7D52~.4+P(d%|5#nU#_JIGDCB@=:8630w,n)g&c%WKIGFDB@=:851z-p*l+JIIGFC@=:74/uJIHFD@=:7nJJIGB?LKJHC7atanks-6.6/stock/0.bmp0000644000175000017500000001136612636021030012750 0ustar apoapoBM6(((  ]^`bbccccccddddddefggijkmopsuvxz{}}]]____````aaaaaabbcccdfghjkmoprsuwwxzz{z\\]]]]]^^^_____`_`aaabddegijkmoorsttuwwv\\\\\\]^^^^_^^____`a`bcdeghijlnoprrsuvuu\]]]]]^_^^____``_``aabcdegiikmnoqsstuwwv^^^]^_^^^^^^^^^_`___```aaabccdfhhjknoprt]^]]]^]]^^^^^^^_`__````ababcddfhijlnoprt]^^]^^^^_______````aaaabcbceefhjjlnqqruv^^^__``_`aaaabbbcccccddefffhijlnoqruvwz{^_`abbbcdddeeeeefffgghiiikklnoqsuxy{}^_aceffghhhiiijjjjjkllmnopqstvxz|^`behijjkllllmmmnnnopqqrttvxz{~    ^`dgiklmnnnnnooopppqrstuwxz|         ^`dhklnnooppoqqqqrsssuvvx{}         ^`dhkmoopppppqqrrrstuvwxz|~          ^`dhlnoopppqpqqrrsstuvwy{}           ^`dhknooppqpqqrrrsstuwxz|~           ^`dhknoopppqqqrrsssuvwyz}            ^`dhlnoopppqqqrrsstuvxy{~            ^`dhkmoopppqqqrrsstuvxz|            ^`dhknoopppqqrrrsstuwxz|             ^`dhlnoopppqqrrrsstuwy{}             ^aeilnooppqqqrrrsttvwy{}             ^aeilnooppqqqrrrsttvwy{}             ^afilnoopppqqqrrsttvwy{}             _afilnoopppqqqrrsttuwy{}             _afikmnnoopppqqqrrstvxz|             _aehklmmnmoonnppppqrtuwy|          _`dgijkjkkklllmmmmooprtux{}          ^`cefgggggghhhiiiijklmoprtvz{}     ]^`bbccccccddddddefggijkmopsuvxz{}}]]____````aaaaaabbcccdfghjkmoprsuwwxzz{z\\]]]]]^^^_____`_`aaabddegijkmoorsttuwwv\\\\\\]^^^^_^^____`a`bcdeghijlnoprrsuvuu\]]]]]^_^^____``_``aabcdegiikmnoqsstuwwv]^`bbccccccddddddefggijkmopsuvxz{}}]]____````aaaaaabbcccdfghjkmoprsuwwxzz{z\\]]]]]^^^_____`_`aaabddegijkmoorsttuwwv\\\\\\]^^^^_^^____`a`bcdeghijlnoprrsuvuu\]]]]]^_^^____``_``aabcdegiikmnoqsstuwwvatanks-6.6/stock/48.bmp0000644000175000017500000001136612636021030013044 0ustar apoapoBM6(((  F}>F}>Deli8z}usQmY>Deli8z}usQmY>AqhLmj:e4ekZcx?AqhLmj:e4ekZcx?lphHmk=}}}yyzzzzz2fjAeoilphHmk=}}}yyzzzzz2fjAeoirjHmk=}zzzkvw1fidrjHmk=}zzzkvw1fidmli8~xyyQop1fimli8~xyyQop1fili8xyyUpq1fili8xyyUpq1fili8~~}zzzsxx1gili8~~}zzzsxx1giu^?~~|{{{{||u^?~~|{{{{||{||{{||{iiiݕvvviiiݕvvvsss└xxxsss└xxx⭭⭭F}>F}>Deli8z}usQmY>Deli8z}usQmY>AqhLmj:e4ekZcx?AqhLmj:e4ekZcx?lphHmk=}}}yyzzzzz2fjAeoilphHmk=}}}yyzzzzz2fjAeoirjHmk=}zzzkvw1fidrjHmk=}zzzkvw1fidmli8~xyyQop1fimli8~xyyQop1fili8xyyUpq1fili8xyyUpq1fili8~~}zzzsxx1gili8~~}zzzsxx1giu^?~~|{{{{||u^?~~|{{{{||{||{{||{iiiݕvvviiiݕvvvsss└xxxsss└xxx⭭⭭atanks-6.6/stock/30.bmp0000644000175000017500000001136612636021030013033 0ustar apoapoBM6(((  e6vGhe6(eZzcXK@*TmsRkIa(?&+Kz2A 9Pc+O:) h/Ez=2p88A{(w?LQi12POF HHHHatanks-6.6/stock/7.bmp0000644000175000017500000001136612636021030012757 0ustar apoapoBM6(((  PϺPPϺPTTȭzzȭTTTTȭzzȭTTTT)XUXU)TTTT)XUXU)TTTPxh??tth??xPTTPxh??tth??xPTTOlM#xxxwwxxx#MlOTTOlM#xxxwwxxx#MlOTTPtW^^^kk^^^WtPTTPtW^^^kk^^^WtPT`Hk_TTTppTTT_k`H`Hk_TTTppTTT_k`HfZUUUUUUZffZUUUUUUZfddssssssddddssssssddbbb؁bbbbbb؁bbbiiiiiiiiiiiippppppppppppzzzzzzzzzzzz܄܄ȍȍŊŊwwwwwwwwwwww____________////atanks-6.6/stock/28.bmp0000644000175000017500000001136612636021030013042 0ustar apoapoBM6(((  e6vGhe6(eZzcXK@*TmsRkIa(?&+Kz2A 9Pc+O:) h/Ez=2p88A{(w?LQi12POF HHHHatanks-6.6/stock/68.bmp0000644000175000017500000001136613006377360013062 0ustar apoapoBM6(((   #()))))('#t&))))))))))))))$m ))))))))))))))))))&&)))))))))))))))))))))| ())))))))))())))))))))))')))))))' ())))))))|$))))))'#)))))))))))))"x()))))%{))))))~ ()))))')))))"ppx)))))% )))))'u()))))"%)))))!))))) ))'$)))))))!'))))$)))(%))))()))))l%))"{)))))s))))))!$))))))))))' ))())))"))))$m))s())))"))))#m))s())))"))))$))s))))) ))))')(p))))))s))))))w)(m))))))))))p&) ()&))))&())))'')'ls$))))))))))))w$()))))$&))))))))))) s)))))# ))))))p ))))))')))))) p))))))#)))))))(~r))))))(r)))))))))% k#()))))))ph))))))))))))))))))))))))r')))))))))))))))))))))hz()))))))))))))))))( '))))))))))))))!"'(())))((#atanks-6.6/stock/6.bmp0000644000175000017500000001136612636021030012756 0ustar apoapoBM6(((  PϺPTTȭzzȭTTTT)XUXU)TTTPxh??tth??xPTTOlM#xxxwwxxx#MlOTTPtW^^^kk^^^WtPT`Hk_TTTppTTT_k`HfZUUUUUUZfddssssssddbbb؁bbbiiiiiippppppzzzzzz܄ȍŊwwwwww______//atanks-6.6/stock/72.bmp0000644000175000017500000001136613006377360013055 0ustar apoapoBM6(((  ::N,-~(p%g#d%g(p-~,N1&jN11N&j1X$)rKqc^cqK)r$XX(%g1zYOGCACGOYz1%g(X$%g'^M@5,'&',5@M^'%g$)r1ZG6' '6GZ1)rN1K^G3  3G^K1&jzM6 6Mz&j,NY@''@YN,:-~1O55O1-~(pqG,,Gq(p%gcC' 'Cc%g#d^A& &A^#d%gcC' 'Cc%g(pqG,,Gq(p:-~1O55O1-~,NY@''@YN&jzM6 6Mz&jN1K^G3  3G^K1)r1ZG6' '6GZ1)r$%g'^M@5,'&',5@M^'%gX(%g1zYOGCACGOYz1%g(X$)rKqc^cqK)r$1&jN11N&j1N,-~(p%g#d%g(p-~,N::atanks-6.6/stock/57.bmp0000644000175000017500000001136613006377360013060 0ustar apoapoBM6(((  atanks-6.6/stock/67.bmp0000644000175000017500000001136613006377360013061 0ustar apoapoBM6(((  s%())))))($l$))))))))))))))%}))))))))()))))))))%!)))))( t$())))))&))))%")))))#))))}$)))'))))&)))$))))()))o$))))))()))'u()))))" ))))))))'$)))))%())')))($))))))s%))"j)))s))))!$))))#))')))))%))&)) )))$))$)) ())$))%)) )))%))')(p))))))))w)(|))))))&)()&))'())(')'l $))))))))n$()))))$&))))))()))$x)))&()))')))(%)))#())))}%)))''))))(l())))$))))))& #()))))}))))))))))))))))))'()))))))))))))(! %()))))))(&latanks-6.6/stock/70.bmp0000644000175000017500000001136613006377360013053 0ustar apoapoBM6(((  {{ffkkssjjVVeeqqmmjjYYYYYYKKffkkjjuuKK2211YYjjkk||wwjjjjwwjjXX22YY~~||kkxxqqjjkk||iiEE__ooqq~~kkjjqqyyoo{{wwii``jjxx~~hhZZXXbbVVYYYYYYooYYYYQQbbjjOO2211ZZHH6611ZZqqjjXXII44YY[[MM22YYyyjjjjXXEEiibbXXBB[[ssjjuujjuujjuu||uujj~~aaYYYYll[[``jj>>2233YYkk[[YYQQjjXXBB22YYFF5511WWjjffYY@@llYYBB22QQjjccYY@@WWjjttjjlljj~~kk{{jjjjppaaYYZZ~~ppZZYYYYeejj;;1111YYuu@@1111YYggjj]]MM66gg``OO66YYiihhooYYHHoobbTTHHxxhh__jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj]]atanks-6.6/stock/62.bmp0000644000175000017500000001136613006377360013054 0ustar apoapoBM6(((  = > < < < < ; 7 3 2 2 2 2 3 5 @ = < < < < < < < ; 6 2 2 2 2 2 2 2 3 5 : K F B > = < < < < < < 9 6 4 3 2 2 2 2 2 2 4 8 aZQ K H F D B B @ > = < < ; : 8 5 3 2 2 2 2 2 4 8 kia] X Q K I G G G F C A > < = < .u$"&2 2 2 2 2 4 : ~vpjh e [ S O L J F G H E C @ @ @ 9"& ####1!2 2 2 2 4 < wn j e ] V S R N K J K I F D D C ? < 1]####1!2 2 2 2 5 $!xo g b ^ [ Y X T P P P L J G H G E C > 51##$!3 3 2 2 2 ; $#!vp i e b _ ^ [ X V U S Q M L J J K G A < -s##143 3 2 2 5 $$!}vn i e c %,^ .'.&Y W GI,'N L K I G B ? ; ##$!3 3 2 2 2 9 #$$!|r l h f #-` %,$,X X 9#-O KIG F D @ ? )#(#3 2 2 2 2 4 #$# wo j h #-c$,#-Z W 9#-O M J H F E D B ED6 2 2 2 2 2 "#$"yq n j .Kd(*$,Z W ;z$-M K M I H F F D F!E!7 2 2 2 2 2 "&)#z t s d%$#eEj##X V BT'%M L M KH G H E F!E!7 3 2 2 3 5 "((',# | y ^B)"h)"##^ \ 9$#Q O MLJ I J F F#C8 3 2 2 5 : %-).-"(#!!z wt)"##gbAn$#W S Q M K I G FF#@ 9 3 2 2 5 &(,/,$,'$#! |+"##kic` \ W S P NL J F"F!? 7 3 2 2 7 ),#/"-)('&#!Pv##pkfba [ V S S R IF#FG< 4 2 2 4 < $,1-+**)*'# wqmhgh` Y X X NF#IF < 4 2 2 7 (/.,++)*-,( zpjlf_ ] XFF#G"O E ; 4 2 4 */,,+*4U8RM/&$ {f h i h `HK ] P E > 9 5 8 %,00/0=&c[30'#s ~ w up^ Q H F D A (-1102"`>[F+*#!"!udV I F F )/1014"O1c=W3D(+$$'&&&!" udN H ,-+-/07"40++++,+,+'#yf%&*,/010"-"/#0001-'$&))++*,--,*#atanks-6.6/stock/51.bmp0000644000175000017500000001136612636021030013036 0ustar apoapoBM6(((   SSSbbbrrrmmm]]]PPPLLLLL(((SSSbbbrrrLmmm]]]PPP$XLLLL~~~~0c(((SSSbbbrrr~mmm]]]PPP!!!z~~~ !!!666PPPkkkwwwgggXXXFFFBBBZ !!!666PPPkkkwwwgggXXXFFFBBBZ666---UUUcccdddkkk___RRR&&&@@@*ooosssoooooo[[[cccsssooo___[[[UUUccc___RRRUUURRR&&&UUURRR&&&UUURRR&&&UUURRR&&&UUURRR&&&UUURRR&&&UUURRR&&&UUURRR&&&UUURRR&&&UUURRR&&&UUURRR&&&UUURRR&&&UUUccc___RRRsssooonnnatanks-6.6/stock/42.bmp0000644000175000017500000001136612636021030013036 0ustar apoapoBM6(((  QQ+RR+}qYll:UU-XX/󇽽dvv?XX-aa3튝S^^1^^3OWW/CC$lGgg7__2ڍcRZZ0PP*qXOaa4NN)uZPvv?SS+|cRHXX/TT,kSH^^1OO)qWHaa4PP)wZJpp·=\dOG.BHG>ù c]EBBAʾFC^gWGLHHHHHFHGGFCFC?¸@ǽA˿CFFGGGHGFEBBAɾ?Ĺatanks-6.6/stock/56.bmp0000644000175000017500000001136613006377360013057 0ustar apoapoBM6(((  atanks-6.6/stock/54.bmp0000644000175000017500000001136613006377360013055 0ustar apoapoBM6(((  ,)3 D*0^D?z#D3 D*7l\pj?z)$2bZu{pD,$0^Xsyu\0^)3cXq|sZ7l*,8mZs|qX2b**8m_uysX0^$&4e[v|uZ3c$"2a[tyv_8m)%0]Zv~t[8m,*5gVsv[4e**7l]txsZ2a&&4e[u|tV0]"$3c\tyu]5g%&3c^w~t[7l*$2a[ww\4e* *RTs~w^3c&(?yjvs[3c$&;qfjT2a&3 D!@;q?y*R$3 D&( atanks-6.6/stock/15.bmp0000644000175000017500000001136612636021030013036 0ustar apoapoBM6(((  HHB:T\}"PnRpz.IE;OZ|"Lih'?9SWw i&87S^$l(79Oz-g&445=n)c%]#/003l(b%Y{!~/}/0/z-p)e%UtOlq*m(l'p*l(g&b$Xx!NlIeIc7976552~/z-q*d&[}!Yy!Vw [|"<=<=:851/y,n)b$Z}"Yz!Yz!DFC?=9764~/v+k']"[|![}!JKGA@>:761{-o*b$Y|!]"IKIEA@>974/r*g&_#^#JKHFDA=961s+i'g&KJJHFA=95|.m(JJIGA=9KKIB?atanks-6.6/stock/2.bmp0000644000175000017500000001136612636021030012752 0ustar apoapoBM6(((  F}>Dcu}Y>Aa*Ĭ.V?Fa)jwooP`-V;Ea)eif/0eh\-V<la)eif/0eh\-Vis)eif/0fh\-b9eif/0eh\;eif/0eh\غeif/0eh\غ؝hf/0eg``XÓW]^iiiⓓhhhiiiⓓhhhiiiⓓhhhsss└xxx⭭atanks-6.6/stock/34.bmp0000644000175000017500000001136612636021030013037 0ustar apoapoBM6(((  q8;A "A "---q8;K%'A "A "77/----q8;K%'A "A "7/-)-A "L&(?!1&*)K%'= D"$?!1$'** :;;6.%$&'B!#7< 73+$""(!C!#:B!#64+$$!&'L%(H#&F#%K%':8.&&!&(-V*-P'*V*-W+-C!#A "4)(#((.\-0X+.d14_/2M&(M&(= 0/'&+) a03\-0l58f25U*-W+-E"$95+'+*e25^.1n6:i47\-0].1L&(@!:0)-*d14^/1p7;j58^.1_/2O')C!#?!3*.)c14_/2q8;l58`/2`02O')F"%B "4-.)d14^.1r8Q9K4E.Q9K5F.={)6l'3g'3g?T@T>R9K5F.={)6l'3g'3g?T@T?S9L4E-A4674,) uSHI9=695/0-,&^WQI3A񮩨z_WedBU`TVqoJ><(++矟~`_@ML3NN4a^@ywOppLPO4*)+*Ѝ½{dbA::'<;'SR5HF.CC-mmͥf]\=10 11!76$ED-bmlHXϣškutLWV998&.- ?>)un}zSvtLicwvOgfCSR6;:&ʼn}|S~VigEYY<^\?]\=HG0ѝtVU9A@,FE.UT7ّǫtRP5**54"qtڛ񷽼lkFGE000!XXgallIa_?l[Y^]>US8]]=ӗXU:86%lKJ2ƝmmLdjiI~patanks-6.6/stock/14.bmp0000644000175000017500000001136612636021030013035 0ustar apoapoBM6(((  PϺPTTȭzzȭTTTT)XUXU)TTTPxh??tth??xPTOlM#xxxwwxxx#MlOTPtW^^^k^^^WtPTP`Hk_ⲰPpTTT_k`HTTȭzzfZvPTTUUUZfTT)XUly!)TTsssddTPxh??tth??xPT؁bbbOlM#xxxwwxxx#MlOTiiiPtW^^^k^^^WtPTpppP`Hk_ⲰPpTTT_ko"zzzTTȭzzfZvPTTUUUZf܄TT)XUly!)TTsssddȍTPxh??tth??xPT؁bbbŊOlM#xxxwwxxx#MlOTiiiwwwwwwPtW^^^k^^^WtPTppp______P`Hk_ⲰPpTTT_ko"zzz//TTȭzzfZvPTTUUUZf܄TT)XUly!)TTsssddȍTPxh??tth??xPT؁bbbŊTOlM#xxxwwxxx#MlOTiiiwwwwwwTPtW^^^kk^^^WtPTppp______`Hk_TTTppTTT_ko"zzz//fZUUUUUUZf܄ddssssssddȍbbb؁bbbŊiiiiiiwwwwwwpppppp______zzzzzz//܄ȍŊwwwwww______//atanks-6.6/stock/71.bmp0000644000175000017500000001136613006377360013054 0ustar apoapoBM6(((  H"$"H&0+y(o'l(o+y0&Q1(o YI;5;I Y(o1Q/#cE  E#c/1#c;}kdk};#c1H&(oEdUNLNUdE(o&H0 Y dPD<9<DPd  Y0+yI}UD5*&*5DU}I+y"(o;kN<**<Nk;(o"$'l5dL9&&9Ld5'l$"(o;kN<**<Nk;(o"+yI}UD5*&*5DU}I+y0 Y dPD<9<DPd  Y0H&(oEdUNLNUdE(o&H1#c;}kdk};#c1/#cE  E#c/Q1(o YI;5;I Y(o1Q&0+y(o'l(o+y0&H"$"Hatanks-6.6/stock/12.bmp0000644000175000017500000001136612636021030013033 0ustar apoapoBM6(((  PϺPTTȭzzȭTTTT)XUXU)TTTPxh??tth??xPTTOlM#xxxwwxxx#MlOTTPtW^^^kk^^^WtPT`Hk_TTTppTTT_k`HfZUUUUUUZfddssssssddbbb؁bbbiiiiiippppppzzzzzz܄ȍŊwwwwww______PϺP//TTȭzzȭTTTT)XUXU)TTTPxh??tth??xPTTOlM#xxxwwxxx#MlOTTPtW^^^kk^^^WtPT`Hk_TTTppTTT_k`HfZUUUUUUZfddssssssddbbb؁bbbiiiiiippppppzzzzzz܄ȍŊwwwwww______//atanks-6.6/stock/5.bmp0000644000175000017500000001136612636021030012755 0ustar apoapoBM6(((  DlBnMn@I%j,-.:PjgHI47## f 0 !%`-0;=GJWWbdopւ|{xgl@x#&B76^HEQPWYTSPPLKRR/#'(t"!*.D@BFLMPVYk\ZYVQSKKggk -,6l'%47KNOSWWWaab_`a\Y\NONPQR65< "a((==NY[]]]]fdhdacVTWrsqhij!"!659$&W,-zEETccg_``_a]UXWUUU448&&V-/vEFWbbbZZZTUSvvvZZZ#$#R./o>?PTRSMMMvvv666"""L..f==JMLNjjj! "D//]@AIXWX "!!A/.[BBLjjj+,. !?0/[EDNnnn./1 =00ZFFNffe%%'"";0-X@AHUUT\]\ !*,)F7;>DEIkhk*7#!@((N12e=Q44; 9: I"%L*)k44<;_UUS?@@ 6,$!@#$9,'W..q>>vMMN~}}! 5("!1"&+'$A+-SC>MOeYYZ*4!" && &$),.1;>hTSVXk$3*""$$&%#*.+19@:NQWUXuts;  #.('h*(w-.D??>NRRUWaihu ! !$"''%A('K./2@@?QQSVYV~b`b!!!)%'((%&''1/.?@?RSRYYXZZW#>"#K%'1%')#&3//PA?^SQ[Y[Z\\\M !#%$&N*(*)(`10@APT\\cddd#] m$$P$)-(',%(A./tD@XVa`pkkl)+&#)()'(&,&(&0/4@?NTUbcdeuuu!""&&'*+'*'&&%'./0AA@YVYfgf~~~###()((**'(($'(10H?ALZY\ggf###()',++*(*$%.32jHI|_aihhi###(()+,+((8('W38UTfgxhhi;;;(('),+*+J4/gCDf^\mk666'%&,+)-0176=RSQcbs|||bce_bd\`]mnpatanks-6.6/stock/23.bmp0000644000175000017500000001136612636021030013035 0ustar apoapoBM6(((   bFFge,, " o }5$Lkv@:z1Ef}IPE~F~266~^ri}UieVufJ;wC_W#579O}%h*h&.h52sZBKXH FOP21iQL?w({A88p2=zE/ h):O+cP 9A2>zGa ;4 VKNaSSQ\P^NeP^Mg ,$$$$"(F|SUSTQYJpP] H? A9*%2,5/2,2, ;4 VK$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$0 H? A9 5. ;4 C; NE LC ;4 VK$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ H? A9+&2, 817.8/ ;4 VK/$$$$$$$$$$$$$$$$$$$$") -0223 H? ?7 ;4 E< H? G> D: ;4 VKTR UMSSOaTP VK VK")$$$$$$Iq VL UM VK VKRR H? =60*2,4. <560 :3 VK VK VK VK VK VK VK VK$$$$$$$$TQ VK VK VK VK VK H? =6 9271 A9 PF G> <5 VK VK VK VK VK VK VK VK$$$$$$$$ST VK VK VK VK TI H? ;40*.(2, <560 81 VK VK VK VK VK VK VK VK ,$$$$$%Lj VK VK VK VK UJ H? 601+ =5 B: SI <5 VK VK VK VK VK VK VKUOMd@@JnTR VK VK VK VK VK F= ;45/5/ A9 VK B9 VK VK VK VK XM\P]Q]Q^R]Q]Q^R]Q]Q\P XM VK VK F= ?8 D< D<bUdWdWdWdWdWdWdWdWdWdWdWdWdWdWdWcVcVYN ND H?dWdWdWdWdWdWdWdWdWdWdWdWdWdWdWdWdWcV VL J@dWdWdWdWdWdWdWdWdWdWdWdWdWdWdWdWdW`T SGatanks-6.6/stock/45.bmp0000644000175000017500000001136612636021030013041 0ustar apoapoBM6(((  F}>Deli8z}usQmY>AqhLmj:e4ekZcx?lphHmk=}}}yyzzzzz2fjAeoirjHmk=}zzzkvw1fidmli8~xyyQop1fili8xyyUpq1fili8~~}zzzsxx1giu^?~~|{{{{||{||{iiiݕvvvsss└xxx⭭atanks-6.6/stock/69.bmp0000644000175000017500000001136613006377360013063 0ustar apoapoBM6(((  _S_S_S_S_S_S_S[OLBPFwgpb_S_S_SVKOE@l8K~ATIh[n`bV_S_S_SQGOEBo:Bo:Bo:8^0LBaToaeX_S_S_S_SPFOEVK$oLJBo:PFOE\Qk]h[_S_S_SYNOEOEYNdX4 *KBo:]R\PPFYNdWn`_S_S_S_STIOEPF_S_S_S=%4 !gGx?_S_S_SRHTI]Rj\bV_S_S_SPFOETI_S_S_S_S_S_S_S_S_S_S_S_SZNRH[PeYh[_S_SYNOEHy?OFYN_S_S_S_S_S_S_S_S_S_S_S_S]QMDCq;@m9_Rj[_S_SIz@@l7Bo:Bo:Bo:_S_S_S_S_S_S_S_S_S_S_S_SRHBo:Bo:=g5I{?uf_S_SOE'vKJCq;_S_S_S_S_S_S_S_S_S_S_S_S#kRJBp:TIn`_S_SOE*$nNBo:_S_S_S_S_S_S_S_S_S_S_S_S-&rKBo:ZNn`_S_SOE4 *!gMC_S_S_S_S_S_S_S_S_S_S_S_S0*!bDrOEOEOEOEOEOEOEOEOEOEOEOEOEOEOEOEOEOEOEOEFu<_S_S_S_S_S_S_S_S_S_S_S_S_S_S_S_S_S_S_S_S_S_S_S_S_S_S_Satanks-6.6/stock/17.bmp0000644000175000017500000001136612636021030013040 0ustar apoapoBM6(((  eIEB>@Ki;2@5F/?;PRk"dq0WLB>@Ot9.:4F5H<>N@/:4D;R;:=M;3ABWXy 99=Iw=4AF`b$88?ܠ@<;W::JT7654237;0/|.v/,-**j'f&b$^#$%{!"sJgJfLLsǼEPX@A돾m>>=AD>?ՙ>976DM45621/>G,,`Jo)j'e%2:m""Le:KgKhbh`qDDoB@?g~==∴g;98H66M[5431/0=Fw+r*m(`2$$19k\"?T0!aRTYZTTQDBa?@MUЧ><;:>@9:˔7664O`01|1z,u+p*/3&'a#]" "afPgWWTIDJODF@?>=f::e876833;@/}.x,p.))3;yc%^#i%+ZIfzVUTGrA@?>DHS`:987N9<61.z-CQw**h)e%a$#$uNl`YSTSICBAA@?=<:9875420|.v+p*k(g&c%`$bWTTSNDCCBA?=<:976431~/w,r*m)i'n2|^WUTSPFDCBA?><:98642/y-t+o*l*UTTTQIDCB@><;97531}.}h\UTSOEDB@><;975EqVUUTQFDCA?=;97iaVUUSGEB@>B[cVUPFC@=WOIGD>atanks-6.6/stock/47.bmp0000644000175000017500000001136612636021030013043 0ustar apoapoBM6(((  aAjuѺ@ndo6E6关doKW$v}dop-)lq_SruDddo6%'IipNLYC1JbdosTO\eI.]=6ן6ImkJ5k;X]+hpQdocer2gUOK"tz-ƛ&bs~Jj;?9NK!`rZlvjymt`bnugronqpqbsc{x|CjV#EIOC4@|5?TaEA<GEorZu|qd|vgifu~u{~zznpl\v]U]Xsxx:hPBF;C#9UlHkTWJ^!CCtrY{}ti~{fihyyqm\c\QVVkuuNgh#FKAK6bMXwX[0:<sqW|s~|{fffWZXGON_roFKeBG(HR]{fMe#:prT{zrx^zbbcqUU;EC.pCFBFG;{ccosSuvrNPy[[_iiksSR8DDHpkGGCH%mhemtTrwrGSx]WZbbetVV9EE0ppMHCG[hdktVs{qE|wLQQ[\^tPP7@@UrroCcA Ob`krYv{qv|vGMHUWWacsMt>DDuux*qB$bDDRom^pys?|wELHUXWbcqrsFIFzwK9oFIRfZbJHtF<|BDLE~YcbgPPSHKGlzCt>>x>}}MMaaLbL=s>>,,,%%%SSS\\\lll***^^^___&&&+++zzz^^^{{{^^^ssseeePPPFFFCCCKKKQQQWWWAAA&&&"""+++]]]vvvzzznnnkkk{{{^^^\\\vvveeeNNN888!!! ,,,@@@---???SSSiii{{{cccĿYYYwwweeeNNN888!!! @@@yyy"""&&&===SSSiii{{{ooo\\\wwweeeNNN888!!! sss&&&===SSSiii{{{sss}}}nnnwwweeeNNN888%%%((( \\\ &&&***===SSSiii{{{ddd]]]wwweeeNNN888///|||+++444>>>SSSiii{{{___rrrwwweeeOOO;;;&&&EEE)))...===SSSiii{{{|||ҵiiiwwwgggKKK444###999AAA???NNNjjj{{{mmmhhhvvvTTTJJJ???ZZZbbb\\\PPPgggvvvoooeeeRRRgggbbbwwwfff\\\bbbmmmfff}}}{{{MMM&&&rrr|||kkkddd---zzzatanks-6.6/stock/35.bmp0000644000175000017500000001136612636021030013040 0ustar apoapoBM6(((  ȁ{{ttkkbbZZRRLLyFFpDDlCCjCCk~~wwyyttjj^^TTNNwJJuGGqDDkBBillrrvvii\\FFn@@dEElIIrEEmkkggllppgg\\EEk==^BBgDDjEEoBBhooffbbiigg``YYDDl<<^<<_>>bCCkCCh@@ejj__``ii^^XXVVAAh>>`99]<<]==dDDh??eiibb^^bbggYYUUQQ@@c==`;;^88W::\AAiAAg@@elldd^^hhddWWUUQQ>>b<<^<>a;;_EEoEEoBBiDDkᘘꕕޖӭق͂vvYYRRQQLLxBBi<<_DDiHHsEElDDk鞞ឞչߎ׍ނaa]]ZZSSGGq??cCChHHtGGpDDl⦦ֿ旗ߖ鉉hhddaaVVMMxAAiDDlIIuGGpDDmݰꜜ䜜nnjjhh\\PPDDlGGmJJuFFpDDlݶ眜ssoommbbTTFFpHHoKKuFFoDDkݶ롡ssppppeeUUIIqIIsLLuFFpDDkݵ襤uuuurrggVVJJtJJvNNzGGoDDlݴyyvvssiiXXKKxNNyNNzFFnDDk㬬zzxxvvjjXXKKwOO|MMyGGnDDk奥zzvviiYYKKxQQ~MMzGGnDDlꛛִ悂}}yyhhXXNN~SSLLxFFl홙ث慅ȁ{{ggWWVVWWLLvGGn엗ڧ۽戈ʂffZZ\\WWKKv압ߛժݺ懇ΆiiccffYYNN|摑՟׵扉Ή}}nnkkmm]]ٕӨⴴ牉Ί||ttwwooߋϘ֩뺺셅ˁ||yy~~ppӍїڱ}}Ƀ͂~~ϔۑۆˉمatanks-6.6/stock/21.bmp0000644000175000017500000001136612636021030013033 0ustar apoapoBM6(((  ////____________wwwwwwwwwwwwŊŊȍȍ܄܄zzzzzzzzzzzzppppppppppppiiiiiiiiiiiibbb؁bbbbbb؁bbbddssssssddddssssssddfZUUUUUUZffZUUUUUUZf`Hk_TTTppTTT_k`H`Hk_TTTppTTT_k`HTPtW^^^kk^^^WtPTTPtW^^^kk^^^WtPTTOlM#xxxwwxxx#MlOTTOlM#xxxwwxxx#MlOTTPxh??tth??xPTTPxh??tth??xPTTT)XUXU)TTTT)XUXU)TTTTȭzzȭTTTTȭzzȭTTPϺPPϺPatanks-6.6/stock/25.bmp0000644000175000017500000001136612636021030013037 0ustar apoapoBM6(((   bFFge,, " o }5$Lkv@:z1Ef}IPE~F~266~^ri}UieVufJ;wC_W#579O}%h*h&.h5e62sZBe6vGhe6KXvGhe6(eZzcXK@H F(eZzcXK@*TmsRkIaOP2*TmsRkIa(?&+Kz2iQL+Kz2A 9Pc+O:) hAw({A8Pc+O:) h/Ez=2p/p2=zEEz=2p88A{(w8 h):O+cP 9A{(w?LQi?2>zGa>>999LLLۡ]]]GGGٝqqqSSSOOOɆfffPPPFFF^^^OOOCCCᢢyyyYYYEEE@@@¿yyyUUUEEEPPPٷgggYYYRRRӰrrr^^^¥uuuҹatanks-6.6/stock/63.bmp0000644000175000017500000001136613006377360013055 0ustar apoapoBM6(((  EE<;;99=4B544444444444^444444444444444444444444444C4Q=444444444444444544444444444444445J44444444444444444>44444444444444445E444444444444444448E44444441 *V44444;E4444444'q-:4444446<E44444444*V  44444CE4444444#'q1444444EE4444444##4# 44444EE44444441# #144B44EE444444444444444444E4444444444444444E4E4444444444444444E4E4444444444444444>4E444444444444444474E4H4444444444444444B>65555555555555555atanks-6.6/stock/59.bmp0000644000175000017500000001136613006377360013062 0ustar apoapoBM6(((  atanks-6.6/stock/41.bmp0000644000175000017500000001136612636021030013035 0ustar apoapoBM6(((  FQぺcULKuGkk9~~CvvAOO*NN(|Vtt>cc4GG&牼eLD]]0TT,pTKqq=UU-YY/nUOrr=ً#,.tx{޼qtv-98 "!Ե+.0ȭOWS ^fe;@AJSLouvjpp(5-(64LES*03'32]ccDNL8FBglq~}!-,#.-;EE$#:DDóᜠ;>?1?>CLJ  7@<36:мx|z(%̲6=@ȴ(1, ū?EHԼvwwWYX286(% X__ǡ殲;?C,)0   +( $))䨯Ӝ!(+  7?=DGHHKKsutwsy^^eatanks-6.6/stock/39.bmp0000644000175000017500000001136612636021030013044 0ustar apoapoBM6(((  }}}}yyoohh``ZZ[[||vvllddWWQQTTxxjj]]QQNNooWWMMQQtt[[TTnnbbt{laxe[vd[ve^ve[vd[xeZ{eX|g[}h[}h}g}gjjj}g~~~ggg{{{eee޽ѷatanks-6.6/stock/1.bmp0000644000175000017500000001136612636021030012751 0ustar apoapoBM6(((  F}>Dcu}Y>Aa*Ĭ.V?la)eif/0eh\-Vis)eif/0fh\-b9eif/0eh\;eif/0eh\غeif/0eh\غ؝hf/0eg``XÓW]^iiiⓓhhhsss└xxx⭭atanks-6.6/stock/29.bmp0000644000175000017500000001136612636021030013043 0ustar apoapoBM6(((  e6vGhe6(eZzcXK@*TmsRkIa(?&+Kz2A 9Pc+O:) h/Ez=2p88A{(w?LQi12POF HHHHatanks-6.6/stock/8.bmp0000644000175000017500000001136612636021030012760 0ustar apoapoBM6(((  TT)XUXU)TTTPxh??tth??xPTTOlM#xxxwwxxx#MlOTTPtW^^^kk^^^WtPT`Hk_TTTppTTT_k`HfZUUUUUUZfddssssssddbbb؁bbbiiiiiippppppzzzzzz܄ȍŊwwwwww______//PϺPPϺPTTȭzzȭTTTTȭzzȭTTTT)XUXU)TTTT)XUXU)TTTPxh??tth??xPTTPxh??tth??xPTTOlM#xxxwwxxx#MlOTTOlM#xxxwwxxx#MlOTTPtW^^^kk^^^WtPTTPtW^^^kk^^^WtPT`Hk_TTTppTTT_k`H`Hk_TTTppTTT_k`HfZUUUUUUZffZUUUUUUZfddssssssddddssssssddbbb؁bbbbbb؁bbbiiiiiiiiiiiippppppppppppzzzzzzzzzzzz܄܄ȍȍŊŊwwwwwwwwwwww____________////atanks-6.6/stock/50.bmp0000644000175000017500000001136612636021030013035 0ustar apoapoBM6(((   SSSbbbrrrmmm]]]PPPLLLLL(((SSSbbbrrrLmmm]]]PPP$XLLLL~~~~0c(((SSSbbbrrr~mmm]]]PPP!!!z~~~ !!!666PPPkkkwwwgggXXXFFFBBBZ !!!666PPPkkkwwwgggXXXFFFBBBZ666---UUUcccdddkkk___RRR&&&@@@*ooosssoooooo[[[cccsssooo___[[[UUUcccsssooo___RRRUUUcccsssooo___RRR&&&UUUcccsssooo___RRR&&&1UUUcccsssooo___RRR&&&%UUUcccsssRRR&&&gUUUcccRRR&&&lllUUUcccsssooo___RRR&&&lll888UUUcccsssooo___RRR&&&888 UUUcccsss___RRR&&& UUUcccsssRRR&&&UUUcccsssoooRRR&&&UUUcccsssooo___RRR&&&UUUcccsssooo___RRR&&&UUUcccsssooo___RRRsssooonnnatanks-6.6/stock/52.bmp0000644000175000017500000001136613006377360013053 0ustar apoapoBM6(((  ~ԕ]jĀjj7KUjWW.||AMaSS-tt=I]PP+gg7FZOO)aa3ECFF'llZOO*ZZ0D33]bbJZZENN)WW.}}BY{ OO)WW.}}BUv[// OO*WW.||BQ`G33҈NN*VV.yy@^^2 mm9wOO*UU.yy@PUU-xxAY{SS,pp<00>> i怭o<<(PP)aa4CCC#  QQ4OO)^^1HSkTT,XX/HRcSS+vv?PZuNN)aa4OXqPP*ZZ0Rcڍ__2gg7GlCC$WW/O^^3^^1Saa3XX-vv?dXX/UU-ll:Yq}RR+QQ+atanks-6.6/stock/27.bmp0000644000175000017500000001136612636021030013041 0ustar apoapoBM6(((  e6vGhe6(eZzcXK@*TmsRkIa(?&+Kz2A 9Pc+O:) h/Ez=2p88A{(w?LQi12POF HHHHatanks-6.6/stock/53.bmp0000644000175000017500000001136613006377360013054 0ustar apoapoBM6(((  "&-BpO#)09\yd,41:`ze,KY1:c`":E&AM_c1:/P_jy^1:5[khvQ%,?k~spU%,\ b=gzsuH{!';D?k~puK WinRoundBonus divided instead of applied full. It is just extremely unfair that the teams get much more money for winning a round when it is easier for them to do so. -- 75% was too much, thus jedi now only pay 50% into the team account. -- Bots try to save up money to get better equipment -- Bots look at basic equipment first before heading for the weapons-shop. -- Parachutes (if gravity is on) -- Basic weapons (aka 5 medium and 3 large missiles -- Armor/Amps -- "Tools" to free themselves like Riot Blasts -- Shields, if enough money is there -- if all is set, look for dimpled/slick projectiles! Armor/Amps (aka "Boost-Items"), however, are limited, so they will only buy them, if someone has a higher value in boost-items. As these items can be bought randomly as well, they won't neccessarily wait for the human player(s) to go ahead! -- Buying is no longer purely random but takes the bots weapon preferences into account. -- The amount of money a bot wants to save up is used for the target-finding- system as well: If a bot has less money, it is more likely to target weak opponents to fetch the kill-bonus. If it has enough money, it will more likely chose the biggest threat. -- Money-saving is now limited, so that no bot tries to sum up millions. Right now the highest maximum, depending on type and weapon preferences, is 1M. (Deadly(=5) * 2 * Armageddon cost) -- Teams are now handled differently in alot of places: -- Prior the shopping tour, every jedi adds 75%, and every sith 25% of their money to the "team-account". The team-money is reduced by a "transaction fee" (jedi: 5%, sith: 10%) and then divided onto all team-members to help each other out. -- While searching for a target jedi try not to hit their team mates, while sith do not care so much. -- While searching for a target jedi give alot less than neutrals about revenge, while sith can become furious (even against team members!) -- jedi *can* become "super-defensive" (defensive > 1.0) while sith *can* become "super-offensive (defensive < -1.0). By this jedi can be extremely cautious every now and then, while sith like to throw caution out of the window. :) -- Riot blasts/bombs are no longer chosen to be shot onto enemies! -- fixed a bug with the rating of buried targets while searching for a target/chosing an apropriate weapon -- target selection and weapon selection now work together: A bot choses a weapon and tries to find the best target for it. Then the bot decides whether another weapon would be better for that target and switches to that. But they value weapons higher they like more, now. -- corrected the _targetX modification for shaped charges and napalm: Bots trie to aim shaped charges so that they do not directly hit, for aiming napalm they try to take wind into account. -- added blast check, to avoid using weapons which blast hit self, depending on intelligence and defensiveness -- added laser check to see whether a laser can be fired or would hit solid rock only -- added check for buried targets and appropriate weapons (burrower, penetrator, tremor-tectonic) -- added a check to get more intelligent bots to do collateral damage when possible -- Added a custom Kamikaze text for the situation when bots decide to blow them selves up. -- Money interest was added right before entering the shop, resulting in interest added everytime a game was reloaded (and reloaded, and reloaded...). I changed that so that interest is added after leaving the shop, fixing the "Add-money-by-reload"-Bug. Further there is no more interest for money that is just earned in the last round. -- added offset if no human players left, raising the class of the bots to speed up the game without changing the difference in intelligence between bots too much. -- bots perform best on rubber and wrap walls. If no human players are left, the wall type is changed if steel/spring is chosen to speed up the accelerated game. -- calculation of the shaped charge type weapons was improved (and corrected). -- Added preference generation for bots that are set to "per play" when a game is loaded. The loading of the preferences is (unfortunately) disabled and I do not know why. As long as they *are* disabled, PerPlay-Config bots have to get a new config on game load, or they use the global config, rendering PerPlay- Config useless. -- For PhysObjects: reduced "virtual" height to 25 times screen height and changed velocity check for the real velocity and >200 x mass. -- Re-Added german language, it flew out of the release. ===================== Atanks-3.2 released ============================ September 25, 2008 -- Player references are now removed from dying tanks to void game crash. Setpember 20, 2008 -- Close button should now work on Windows. (Patch provided by sylikc.) -- Weapons should no longer bounce off repulse shields and fly up forever. (Patch from Yama.) -- Explosions on wrap-around walls appear on the far side of the screen too. (Patch from Yama.) -- Code clean up. (Patch from Yama.) -- Added fix to avoid skipping turns when spring walls are used. September 2, 2008 -- Credits and Help screens now ignore extra DOS return characters in the text file. (Submitted by sylikc) -- Added German language support. (Provided by Yama.) -- Changed formula for dealing damage with shaped charges. (Provided by Yama.) -- Added language support for instructions. (Provided by Yama.) -- Adjusted time clock to avoid skipping human player turns. -- Fixed typo which prevented penetrators from detonating when they hit the ground. (Provided by Yama.) August 28, 2008 -- Added patch from sylikc to prevent rounds ending before the winner gets credit. Changes atanks.cc -- Winners are now sorted by score at the end of the game. -- Added patch to make Atanks able to run in the background on Windows OS. (Provided by sylikc) -- Added custom data dir for Gentoo distro. (Provided by Yama) -- Fixed pointer warning in menucontent.h file. (Fix provided by Yama) -- Added advanced AI weapon and item preferences. (Provided by Yama.) -- Fixed potential crash in player menu. (Patch from Yama) August 11, 2008 -- Added Mac OS X makefile for compatibility on that platform. -- Patched files.cc and files.h to work with OS X. (Patch provided by ryandesign) -- Added Slovak language for tank dialog. (Provided by Jozef Riha) -- Applied item selection patch and loading patch from Yama. ===================== Atanks-3.1 released ============================ July 26, 2008 -- Removed strcasestr from Win32 build to avoid compiler error. -- Fixed error with time delay and simulanious firing. July 12, 2008 -- Corrected error where tanks firing chain missiles would be skipped a turn. July 1, 2008 -- Added time limit for shots. Can be changed in the Physics option screen. -- The timed shots limit is now saved in the game settings. -- Adjusted compile flags to avoid annoying messages from gcc-4.3.0 June 6, 2008 -- Fixed bug where if no saved game exists, atanks will crash. -- Added Windows compatibility code for saved game searches. Provided by Keilaron. -- Fixed Windows search for saved games. ===================== Atanks-3.0 released ==================== May 23, 2008 Jesse (jessefrgsmith@yahoo.ca) -- Added patch to avoid skipping turns when violent death is on. -- Adjusted final score layout. May 6, 2008 Jesse (jessefrgsmith@yahoo.ca) -- Introduced browsing option for saved games. -- Completed "select saved game to continue" feature. -- Fixed bug where a team would get credit for winning when all tanks were destroyed. -- Added kill/died ratio to end game stats. -- Fixed bug in detecting which player/team wins. April 15, 2008 Jesse (jessefrgsmith@yahoo.ca) -- Graphics should display properly if the game needs to recover graphic settings. -- When the player dies, the game will not skip ahead to the end of the round until violent deaths are finished. (Thanks to Scott for providing this patch.) -- Updated Portuguese language files to use latin1 encoding. Should display better than old files. -- Fixed floating point calculation bug in the interpolate() function. Thanks to pyeatt for providing this fix. March 25, 2008 Jesse (jessefrgsmith@yahoo.ca) -- Re-implemented fog. Made fog smoother, where tanks disappear and re-appear. -- Fixed medium napalm so it drops napalm, not tremors. -- The fog option no longer shows up as incomplete. -- Massive code clean up. Removed old versions of save/load, took out old aiming code. Breaks backward compatiblity with versions of Atanks prior to 2.4. -- Made the satellite slightly less violent. -- Tanks should no longer waste lasers trying to fire below their level. -- Updated gloat, revenge and suicide remarks. =============== Atanks-2.9 released ====================== March 18, 2008 Jesse (jessefrgsmith@yahoo.ca) -- Added text to buying screen to indicate arrows can be used to scroll through items. -- Re-wrote AI aiming. Target tanks, rather than areas. -- AI no longer shoots at steel walls. -- Added levels of violent tank deaths. -- Added dirt that randomly falls from the sky, similar to meteors. Option is in the Weather menu. -- Removed old satellite system -- Created new satellite object. -- Satellite now fires lasers. -- AI controlled tanks no longer adjust power for items. Saves time. March 2, 2008 Jesse (jessefrgsmith@yahoo.ca) -- Added command line option "--noconfig" which avoids loading game settings, but still loads players, to allow game settings to be reset. -- If no tanks fire a shot, natruals are paused until someone fires. This fixes two problems: A) If you leave the keyboard and come back 5 minutes later, there is still some dirt left. B) It is not possible to simply buy a lot of parachuts and armour and wait for enemy tanks to die from naturals. -- Added Physics option "Violent Death" which causes tanks to die in violent explosions when turned on. Is left off by default. -- Added Land Slide option called "Tank Only", which causes tanks to fall, but dirt hover in the air. -- Reworked loading players to make it more flexible. -- Attempted fix for start-up screen size. -- Added item called Armour Piercing. Makes a very small explosion but does a fairly large amount of damage. February 19, 2008 Jesse (jessefrgsmith@yahoo.ca) -- Fixed spelling error on desktop file. Thanks to Keilaron for pointing this out. -- Added French language files, menu option. Thanks to Olivier for providing the translation. -- Added command line option "-c" to specify where the config file should be created/used. -- Removed weapons.h from source tree. -- Avoid memory fault in moving config file. ========== Atanks-2.8 released ======================== February 11, 2008 Jesse (jessefrgsmith@yahoo.ca) -- Changed MIRV settings to cause wider spread of sub missiles. -- AI returns to regular difficulty level after each game when in campaign mode. -- Added land type None, which plays rounds with no land at all. Using Random land will not cause None to be used. January, 29, 2008 Jesse (jessefrgsmith@yahoo.ca) -- When a neutral player wins the same number of rounds as a team, the game is a draw. January 18, 2008 Jesse (jessefrgsmith@yahoo.ca) -- Weapon, naturals and items are now stored in a text file (weapons.txt). The data in weapons.h is no longer used. A) Created function to read in weapon/item data. B) Commented out weapons.h C) Implemented weapons.txt -- provided by action9000 D) Replaced named constants in weapons.txt E) Weapon, items and naturals declared in globals.h -- Re-wrote AI weapon selection system, hopefully this will be less CPU intensive. -- The icon for the current weapon is displayed on the top bar during rounds. -- If the AI does not have a fun weapon to use, it may select an item. -- AI does not select self-destructive items or teleports unless parachutes are in inventory. -- Created small MIRV missile. A device that releases payload while still above the ground. -- Created MIRV images. January 7, 2008 Jesse (jessefrgsmith@yahoo.ca) -- Introduced Campaign mode, which causes the AI to get progressively smarter each round. -- Removed liquid.cc from source tree. -- Removed list.cc and list.h from source tree. -- AI players randomly select weapons rather than using an item until they run out. December 28, 2007 Jesse (jessefrgsmith@yahoo.ca) -- Firing a chian missile no longer fires another shot, such as a death head. -- Dirt balls that explode above the screen no longer produce endless stream of dirt. -- Program should no longer crash when creating a new player. -- Fixed lightning sound. -- Created menu option for Laser Satellite. -- Added laser-armed satellite that randomly fires on the battle field. December 23, 2007 Jesse (jessefrgsmith@yahoo.ca) -- Put fan item picture back to fan. Had been accidently changed to fuel image. -- Fixed mkdir call for Windows. =============== Atanks-2.7 Released ====================== December 15, 2007 Jesse (jessefrgsmith@yahoo.ca) -- Fixed bug where the game would crash if two players on the same team have a duel. -- Added a new type of weapon, the Chain Missile. This weapon fires small missiles in vollies of three. -- Fixed bug that prevents the config file to be saved on systems without a previous version of Atanks installed. December 9, 2007 Jesse (jessefrgsmith@yahoo.ca) -- Added a .desktop file for atanks (atanks.desktop). -- Wrap around walls are now displayed using the colour yellow. November 29, 2007 Jesse (jessefrgsmith@yahoo.ca) -- Fixed bug where, if a tank shoots itself and falls and the money penalty for self-damage drops the player's money below $0, then the money is "corrected" to $1,000,000,000. Thanks to Andy for pointing this out. -- If both teams have the same number of wins, then the game is a draw. -- Game settings are saved along with the saved game. Settings are saved in the same directory as the saved game as a .txt (plain text) file. Replacing your atanks-config.txt file with this will give you the same game settings as you had while playing the original game. -- Display directions for saving game on buying screen. -- Added fuel item, which allows the player's tank to move using the < and > keys (or period and comma). -- Amount of fuel the tank has is displayed on the top bar. November 18, 2007 Jesse (jessefrgsmith@yahoo.ca) -- Added different settings on the Options menu for tech levels. One relating to weapons and the other for items. -- Keilaron added code for setting the window's title (caption) under Winodws. -- Added wrap-around walls. When missiles reach the side of the screen, they wrap around to the other side. -- Wind Strength is now saved in the settings file. -- Increased buffer size for options to avoid over-flow. November 15, 2007 Jesse (jessefrgsmith@yahoo.ca) -- Corrected timing bug that causes freeze on the buying screen. -- Games that are not given a name are given the default name of "unamed". -- Changed name of player type from "Range Finder" to "Ranger" to make it fit in the text box. -- Windows version now saves settings and saved games under user's AppData folder, rather than current working directory. -- Atanks will attempt to create a sub-directory in the user's HOME directory called .atanks. The config file will be copied there, if it exists. If the file does not yet exist, future config files will be saved there. Note: The game does not attempt to copy saved game files. -- Saved games are now saved and loaded from the player's HOME/.atanks/ directory. ============== Atanks-2.6 released ==================== November 3, 2007 Jesse (jessefrgsmith@yahoo.ca) -- Added Load Game option to the new game menu. -- Games can be loaded from the Select Players screen. -- Corrected minor load bugs and removed testing output. October 24, 2007 Jesse (jessefrgsmith@yahoo.ca) -- Player can now create a name for the game about to begin on the Select Players screen. -- Moved a few functions out of atanks.cc and into files.cc -- Moved some headers into files.h -- Games can now be saved from the buying screen by pressing F10. -- Tanks that have hit another tank now gloat when the target dies only. Tanks do not gloat for near-deaths. October 14, 2007 Jesse (jessefrgsmith@yahoo.ca) -- Game speed is now adjustable through the Graphics option menu. Adjusting the game speed may help avoid errors where the game would lockup before. -- Rollers now hit Steel walls and fall normally instead of instantly appearing at the bottom of the screen. -- When the player pressed a key in the range of 0-9 the tank's team name is displayed along with the health status. October 9, 2007 Jesse (jessefrgsmith@yahoo.ca) -- Added variable land slide option. Player can now control the delay in cartoon gravity. -- Tanks delay falling the same way land does on cartoon gravity. -- Added Portuguese text to menus. Many thanks to Fred Maranhão for the translation. September 29, 2007 Jesse (jessefrgsmith@yahoo.ca) -- Added more tank text (English) -- Which team a tank is on is now shown on the top menu bar. -- Changed default player names to ones more historical. -- Intelligent AI players now buy parachutes when gravity exists. -- When there is no gravity, tanks no longer fall. -- Introduced variable gravity delay for Cartoony gravity. August 17, 2007 Jesse (jessefrgsmith@yahoo.ca) -- Added Portuguese language files to the Makefile. ============== Atanks-2.5 released ==================== August 11, 2007 Jesse (jessefrgsmith@yahoo.ca) -- The Floattext class no longer frees up text passed to its constructor. Text is now allocated and freed outside of the class for easier debugging. -- Players now try to avoid shooting fellow team mates. Neutral players are not considered members of a team. -- When only the members of one team are alive, the round is over. Neutral players are not considered a team. -- At the end of the game, teams are credited with wins. -- Minor Makefile typo corrections. August 4, 2007 Jesse (jessefrgsmith@yahoo.ca) -- When tanks talk, the text is selected using Random_Line (new function) rather than the previously used LINESEQ for increased flexibility. -- Player can now switch languages without re-starting the game. -- Added new colour theme, provided by Jim of the FreeDOS project. The colour theme can be changed in the Graphics menu. The options are "Regular" for the original theme and "Crispy" for the new theme. Note: Sky and landscape change colour when the theme is changed. To see different explosions currently requires a game restart. -- Added Team option to the Player menu. Possible teams are Sith, Neutral and Jedi. Note: Teams do not have any effect on the game, yet. -- Updated the Help.txt file. Thanks to Fred for pointing out the incorrect text. -- Removed AutoPlay option from the main Options menu under Auto-Skip as it seems to be redundant. -- Fixed Cartoon gravity to make it more cartoony. -- When buying items, the AI now understands repair kits have cumlitive effect. July 29, 2007 Jesse (jessefrgsmith@yahoo.ca) -- Added a new gravity type (Cartoon) which causes the landscape to hover for a variable amount of time. -- Tanks now hover for a few seconds when using Cartoon gravity. -- Reduced CPU usage when displaying the main menu. -- Added Portuguese language files for gloat, revenge, suicide and Help. Added menu option called Languages to allow the player to switch between English and Portuguese. Thanks to Fred for the translations. July 25, 2007 Jesse (jessefrgsmith@yahoo.ca) -- When you drop a burrower or penterator onto a Steel floor, the game no longer hangs. -- Players can now buy and sell items in bulk by holding the CONTROL key while clicking on an item in the buying screen. Items are bought/sold in bulk 10 times their normal amount. -- Fixed bug that prevented most tanks from buying parachutes. -- Fixed bug in loading preferences from a text file. -- When starting the game in full screen mode, previous width and height settings are ignored. Fixes a weird display issue. -- Try to avoid pausing the game when user switches to a different window. (Windows only.) -- Fixed screen centring on higher resolution settings. -- Worked on text scrolling to make it more efficent. -- Money no longer over-flows to become negative. ================ Released Atomic Tanks 2.4 ======================== June 22, 2007 Jesse (jessefrgsmith@yahoo.ca) -- Fixed typo in Makefiles. -- Created spec file for Red Hat/Fedora Linux distros. -- Created .rpm file for Fedora (Linux distro). -- Fixed saving screen width and height. June 18, 2007 Jesse (jessefrgsmith@yahoo.ca) -- When turning the sound ON or OFF in the Options menu, the game no longer requires a restart for the setting to take effect. -- When switching between Default OS mouse cursor and the Custom Atanks cursor, the change no longer requires a game restart. -- If the constant "DOS" is defined, the background should not be cached. This should fix weird menu issue on DOS. -- When Steel walls are in effect, the computer usually avoids shooting them. -- When a new player is created, their default colour is a high contrast to avoid blending. -- Max missile age has been changed from 60 seconds to 20 seconds to speed up game play. June 10, 2007 Jesse (jessefrgsmith@yahoo.ca) -- In rest points, Linux uses usleep() and Windows now uses native Sleep() call to avoid high CPU usage. -- If there are no tanks alive at the end of a round the game annouces a "Draw" and no one gets credit for a win. -- Try to avoid sub-index in tank::draw function. -- Draw tank base _after_ the shield to avoid dis-colouration. June 6, 2007 Jesse (jessefrgsmith@yahoo.ca) -- Removed Windows version of LINUX_SLEEP to avoid very slow response from the game. -- Put set_display_switch_mode() call in init_game_settings() for Windows to avoid pausing the game when the window loses focus. -- Wall type indicator no longer appears across the top of the screen. On the walls and floor only, where wall type actually matters. June 2, 2007 Jesse (jessefrgsmith@yahoo.ca) -- Config settings are now stored in a text file called .atanks-config.txt The old config files can still be read for backward compatibility. -- A new wall type (random) has been added, which causes the type of wall to change each round. -- The side of the screen now shows a thin band of colour which indicates which wall type is being used. Red for Steel, Green for Rubber and Blue for Spring. May 14, 2007 Jesse (jessefrgsmith@yahoo.ca) -- Windows build now uses rest() calls where Linux uses usleep in the hope of reducing CPU usage on Win32 systems. -- Pressing the 0-9 keys will display the coresponding tank's name, health and shield status. This information is removed from the top bar when a weapon is fired. May 4, 2007 Jesse (jessefrgsmith@yahoo.ca) -- Created files.h to hold common file defines and data. -- Increased the delay in LINUX_SLEEP to 10000 (on Linux) to reduce CPU usage. -- When printing Credits and Help, we now use the Allegro rest() function to reduce CPU usage. Estimated 3x easier on CPU usage. April 22, 2007 Jesse (jessefrgsmith@yahoo.ca) -- Moved BUTTON code out of atanks.cc into its own source file (button.cc). -- Added checks at the top of header files weapons.h, player.h and menucontent.h to avoid duplicate defines. -- Removed extra calls of srand() from atanks.cc -- Tanks now make comments when they kill themselves. April 18, 2007 Jesse (jessefrgsmith@yahoo.ca) -- Moved VERSION definition to main.h from the Makefiles -- Fixed typo in Makefiles which caused Windows compile error. ================== Atanks-2.3 Released ======================== April 3, 2007 Jesse (jessefrgsmith@yahoo.ca) -- Changed title screen. Art provided by Keilaron. -- Settings are saved as soon as the player leaves the Option screen. This avoids losing settings if the game crashes or exits unexpectedly. March 27, 2007 Jesse (jessefrgsmith@yahoo.ca) -- Changed the Auto-repair kit from tech level 4 to tech level 2. March 21, 2007 Jesse (jessefrgsmith@yahoo.ca) -- The player can now select to use either the custom Atomic Tanks mouse cursor or the default OS cursor. Note: The OS cursor is probably faster. The option is located under the Graphics menu and may require the game be restarted to take effect. -- The ENTER key on the number pad can now be used to indicate you are done entering text on Options and Player editing screens. March 18, 2007 Jesse (jessefrgsmith@yahoo.ca) -- When the player presses TAB or BACKSPACE to change weapons, the weapon text no longer flickers. The text no longer flickers at the begining of new rounds. -- The CTRL key now works to more finely tune PGUP and PGDW commands. Of course, this still causes the power to vary a lot (100 points per tap). -- Created new device called "Fan" which changes the direction and strength of the wind. The change in wind depends on the direction of the player's turret and the power behind the "shot". This only really works well in high-wind environments. March 15, 2007 Jesse (jessefrgsmith@yahoo.ca) -- Changed drawing code so that different tank styles can have the turrent in different positions. See tank::draw() -- When exiting the game to the main menu, the next game no longer speeds up dramatically. -- Fixed bug on Windows where exiting the game causes all tanks to fire their weapons. See tank::activateSelection() March 12, 2007 Jesse (jessefrgsmith@yahoo.ca) -- The spelling of "lazer" has been changed to "laser". -- Items that are not weapons are no longer displayed left-aligned on the top bar. they are right-aligned like the other items. -- The Page Up and Page Down keys now cause the player's power to go up or down dramatically (100 points instead of 5). -- Players can now choose to make their tanks appear differently. The options are Normal or Classic. This is changed in the Players menu. -- Tank style preferences are now saved in the config file. March 6, 2007 Jesse (jessefrgsmith@yahoo.ca) -- Human players can now be put under temporary computer control (highest AI setting). This can be done during the player's turn by pressing F10. -- Repair kit's name changed to Auto-repair kit to reflect its ability to repair without user intervention. -- Text colour in Help and Credits changed to white from black to increase contrast. -- If a player is saved as a part time bot, then they are re-loaded as a human player. ================== Atanks-2.2 released =========================== Feb 27, 2007 Jesse (jessefrgsmith@yahoo.ca) -- We now save the Wind Strength option properly from the Weather menu. -- Avoid segfault when displaying gloating messages. -- Meteors only live for 5 seconds. This is to prevent loops where lots of meteors appear and don't self destruct, causing an endless loop. -- Meteors no longer fall while players are aiming in SIMUL turn mode. They will fall at any time in other turn modes. Meteors will also fall in SIMUL turn mode while weapons are in the air. Note: Lightning remains the same as before. Feb 24, 2007 Jesse (jessefrgsmith@yahoo.ca) -- Cleared up some compiler warnings we were getting from the Windows compiler. Shouldn't effect game play at all, but makes the build process nicer. -- Added a device called Swapper, which will cause the player's tank to switch places with another tank. The other tank is picked at random. -- Added a new wall type, Spring. The spring wall type causes missiles to bounce off the walls and floor with more speed (x1.25) than they had before. -- When one player kills another, the attacker gloats. Only one gloat message is displayed if multiple tanks are destroyed. Feb 21, 2007 Jesse (jessefrgsmith@yahoo.ca) -- Disabled window closing in Windows to prevent hangs. -- Added item: repair kit. A device which will slowly repair the player's tank each turn. -- The number of rounds of play remaining can be adjusted on the buying screen. This is performed using the "-" and "+" signs on the keyboard. Note, the "=" will also act like a "+" to add rounds. -- Clear key buffer before accepting input from each player to prevent accidently fireing a weapon. Feb 19, 2007 Jesse (jessefrgsmith@yahoo.ca) -- Expanded final score box to prevent money from running on to the background. -- The mouse wheel can now be used to scroll through items on the buying screen. Makes navigator quicker. -- Game now clears keybaord buffer at the end of each turn. Avoids weapons being un-intentionally activated. Feb 13, 2007 Jesse (jessefrgsmith@yahoo.ca) -- Permissions on title.dat changed to 644. Corrects bug where a system-wide install would run for root only. ==================== Atanks-2.1 released ========================== Feb 11, 2007 Jesse (jessefrgsmith@yahoo.ca) -- Added an option under the optins->Physics menu to change the type of wall being used during the game. The types are Rubber and Steel. Rubber acts as before, allowing missiles to bounce off the walls and bottom of the screen. The steel walls cause missiles to detonate on impact. -- Added the wall type option to the config file to allow the setting to be saved. -- When pressing the BACKSPACE key during the game, players can cycle backward through their weapon selections. -- Changed computer's targeting AI so the computer understands the difference between rubber walls and steel walls. This prevents the computer from shooting at steel walls repeatedly. Feb 9, 2007 Jesse (jessefrgsmith@yahoo.ca) -- Option to enable or disable sound is now on the main Options menu. At this time, changing the sound on/off will not take effect until the game is re-started. -- Changed config file to save the sound option. -- Made sure the command line option "--nosound" over-rides the sound setting in the config file. -- The width and height of the Atanks window can now be changed from the Options menu, under Graphics. Changes take effect after the game is exited and re-started. -- Added screen width and height to the config file. -- Made sure the command line given width or height takes priority over the width and height settings from the config file. -- Tank health is now printed in the same colour as the player's tank. Feb 5, 2007 Jesse (jessefrgsmith@yahoo.ca) -- Corrected bug where missles would not die from old age. Missles should now properly detonate after 60 seconds (MAX_MISSLE_AGE) whether they hit anything. This is to avoid infinate loops where missles bouce forever. -- Corrected problem with text lingering from the end of one round and showing up in the next. Insults should no longer carry over into the new round. Jan 31, 2007 Jesse (jessefrgsmith@yahoo.ca) -- The player's name now appears over their tank. Text colour matches the tank's colour. -- Changed money to signed int. Cleared up some type problems. Put in check to keep money from over-flowing. See Player::newRound() -- Command-line option "--noname" added to allow the player name above tank feature to be disabled. Jan 27, 2007 Jesse (jessefrgsmith@yahoo.ca) -- Allow player names to be more than 10 characters. Names should now be able to expand to 23. Changed some output code to allow for longer names without over-writing other text on the screen. Changed file format to allow longer names and backward compatibility. Jan 25, 2007 Mike (CaptainNeeda+atanks@gmail.com) -- Added feature to allow all tanks to fire at the same time. This is accessible by selecting "Simul" under Turn Order in the options menu. Jan 21, 2007 Jesse (jessefrgsmith@yahoo.ca) -- Floating text no longer carries over to the next round. Added newRound() function to FLOATTEXT object. -- When the window's "X" or close button is clicked, the game will exit immediately. =============== Atanks-2.0 Released =========================== Jan 10, 2007 Jesse (jessefrgsmith@yahoo.ca) -- Fixed serious bug which causes game to crash when there are more than two players. Jan 9, 2007 Jesse (jessefrgsmith@yahoo.ca) -- Corrected serious bug where tanks did not take damage when they free-fall. Jan 7, 2007 Jesse (jessefrgsmith@yahoo.ca) -- Removed custom my_abs() function. Replaced it with built-in fabs(). -- Where a char variable is used as a boolean, change the type to int or bool to avoid compiler warnings. -- Created a Debian spefic Makefile (Makefile.debian) to make Atanks more compatible with Debian's package. Dec 19, 2006 Jesse (jessefrgsmith@yahoo.ca) -- Version information is now displayed on the command line properly at start up. This should clear up some confusion about what version we have during debuging. Note: Version number is stored in Makefile -- Fixed command line option for height. "-h" was already being used for "help". Height can now be given using "-t" or "--tall". -- When one tank falls on another, the falling tank now rests on top of the other, rather than over-lapping on the screen. -- Added command line option "--nosound" to disable game sounds. -- Updated command line help. -- Re-wrote README file to be more up-to-date and organized. -- Updated Makefiles. Create new Makefile.windows for people compiling on Win32 systems. Use "make Makefile.windows" to compile. Dec 4, 2006 Jesse (jessefrgsmith@yahoo.ca) -- When a player runs out of ammo, the game switches to a different type of ammo. The new ammo is displayed in flashing RED instead of BLACK to warn the player. Nov 27, 2006 Jesse (jessefrgsmith@yahoo.ca) -- Made code compatible with gcc 4.1 -- Updated code to use current Allegro 4.2 API text output functions, set_clip and text_mode -- Made player money unsigned to avoid negative funds. -- When player runs out of a type of ammo, game automatically switches to a new ammo type. ================= Atanks-1.1.0 released =================================== 4. 9. 2002 Juraj Michalek (georgik@host.sk -- http://kota543.host.sk): -- added wind -- added indication bars -- added pay off functions -- added menu control by keyboard arrows 6. 9. 2002 -- I rewrite all code to C++ -> hard work there were a lot of bugs in type definition, it's mirracle that game worked! 7. 9. 2002 -- new structure of weapon record -- eek, many and many type mistakes -- added usleep for schedule optimization in Linux 8. 9. 2002 -- changed structure of ITEM -- added TANK method for boosting up shield -- automatic shield boost -- fixed buystuff algorithm -- fixed colors and information in credits -- speed up redrawing algorith -- new title screen -- new top-bar in game 15. 9. 2002 -- fixed bug with game engine (this bug came with conversion to C++ :() 2. 11. 2002 -- fixed some minor bugs -- code indent fix -- added command line functions -- implicit select of windowed mode 3. 11. 2002 -- back button in Option menu -- icons of weapons -- upgrade graphics -- release of 0.5 5. 01. 2003 - Tom Hudson (tom@singular.org.uk): -- Modified code to allow resizing of screen (currently only at compile time, positions now scale) 8. 01. 2003 - Tom Hudson (tom@singular.org.uk): -- some previously static graphics are now generated (scalable) -- modified way wind changes from turn to turn -- added wind options to options screen 12. 01. 2003 - Tom Hudson (tom@singular.org.uk): -- changed dirtfall routines -- missiles no longer have to pause while explosion happens -- combine nearby make_updates (one blit instead of n) 14. 01. 2003 - Tom Hudson (tom@singular.org.uk): -- Fixed bug, t[z].ni is ITEMS long but zero'd up to t[z].ni[WEAPONS] in newgame() -- topbar now generated to fit screen 15. 01. 2003 - Tom Hudson (tom@singular.org.uk): -- Fixed another bug, setting t[z] variables in z < MAX_MISSILES for-loop -- Added FLOATTEXT class -- Added permanent display of health and shields over tanks 22. 01. 2003 - Tom Hudson (tom@singular.org.uk): -- Modified missiles, more OO than before -- Modified funky-bomb delivery (slower delivery, needs tweaking) -- Added dirt-bombs 24. 01. 2003 - Juraj Michalek (georgik@host.sk): -- dirt ball explosion don't cover terrain -- changed some weapon's costs 26. 01 .2003 - Tom Hudson (tom@singular.org.uk): -- Missiles once again bounce off the bottom of the screen. -- Arrow no longer used to indicate current player, uses bouncing health text instead 28. 01 .2003 - Tom Hudson (tom@singular.org.uk): -- Replaced unneeded images in .dat files, reducing total download by 250k 29. 01 .2003 - Tom Hudson (tom@singular.org.uk): -- Explosion images are now generated at runtime, saves 1Mb of download -- Explosions now 'disperse' for 10 frames after initial explosion 31. 01 .2003 - Tom Hudson (tom@singular.org.uk): -- Change nature of land-slide to improve efficiency, reduces changes/frame, smoother. -- Fixed a bug in explosions (incomplete dispersal due to land-slide finishing first). 02. 02 .2003 - Tom Hudson (tom@singular.org.uk): -- Added earthquake range of weapons (tremor, shock-wave, tectonic-shift) -- Improved update method for explosions and land-slides. 06. 02 .2003 - Tom Hudson (tom@singular.org.uk): -- Added new screen fades -- Fixed bug in landslides where slide was calculated several times per frame, once per active missile -- Reorganised code, making it more OO, added VIRTUAL_OBJECT, PHYSICAL_OBJECT above MISSILE and TANK and FLOATTEXT 09. 04 .2003 - Tom Hudson (tom@singular.org.uk): -- Further large-scale reorganisation -- Landfall accelerates with gravity -- Improved graphics 'engine' (more efficient scheduling etc.) -- Hierarchical menu system -- Weather options (Meteor showers) -- Physics options -- Basic AI added -- Improved credit attribution for damage done -- EXPLOSION object added (explosions no longer part of missile) -- tech level added to restrict availability of weapons -- Added shaped-charge range of weapons -- Added repulsion shields -- Improved shield drawing routine -- Player colours randomly generated (needs refining) -- Bomblets for funky and cluster now separate weapons -- Weapon buying now displays a description of each weapon in a panel on the left of the screen 11. 04 .2003 - Tom Hudson (tom@singular.org.uk): -- Fixed bugs in AI that made the AI really useless. -- Added riot bomb and heavy riot bomb -- Added riot charge and riot blast -- Modified AI to choose riot gear if buried -- Added Page Up and Page Down functionality to buying screen 12. 04 .2003 - Tom Hudson (tom@singular.org.uk): -- Fixed bug where repulsion shields would continue to repulse if shield was reduced to exactly 0 -- Fixed bug where angle of drawn object set to 0 13. 04 .2003 - Tom Hudson (tom@singular.org.uk): -- Added teleport -- Added functionality to allow items to be selected and used -- Fixed bug where game would crash if everyone was dead at the end of a round -- Fixed bug where player would be incorrectly marked as COMPUTER_PLAYER -- Added self/auto-destruct items (vengeance, dying wrath, fatal fury) -- Added tech levels to items -- Modified AI to mostly avoid selecting self/auto-destruct items 14. 04 .2003 - Tom Hudson (tom@singular.org.uk): -- Changed landscape generation algorithm to use perlin noise 15. 04 .2003 - Tom Hudson (tom@singular.org.uk): -- Added new landscape-type option to menu 17. 04 .2003 - Tom Hudson (tom@singular.org.uk): -- Modifications to AI targetting -- Fix to self-destruct 18. 04 .2003 - Tom Hudson (tom@singular.org.uk): -- Implemented AI device preferences -- Improved AI purchasing routines -- AI now no longer uses teleport recreationally unless has parachute -- Improved AI device-selection routine 19. 04 .2003 - Tom Hudson (tom@singular.org.uk): -- Added landSlideType option to physics menu -- Separated floating text from tank, the better to display damage with 20. 04 .2003 - Tom Hudson (tom@singular.org.uk): -- Added permanent armour upgrades -- Added drag-reduction items -- Increased max number of each item to 999 from 99 21. 04 .2003 - Tom Hudson (tom@singular.org.uk): -- Animated shields -- Tidied in-game stats bar -- Fixed bug in Funky Death due to incorrect settings in weapons.h -- Modified AI item preference selection code to not favour the higher numbered items -- Balance changes, effectiveness of Vengeance decreased, prices of some items changed 26. 04 .2003 - Tom Hudson (tom@singular.org.uk): -- Added nicer/more complex looking landscape rendering -- Added nicer/more complex looking sky rendering -- Added graphics options to turn on nicer rendering as it's a lot slower to render -- Added moon to sky -- Fixed bug where ingamemenu wasn't being cleared from screen on return -- Fixed colorDistance () algorithm, should now have meaningful results -- Modified options menu to not need bitmap anymore, still not great (e.g. tiny title) but getting there 27. 04 .2003 - Tom Hudson (tom@singular.org.uk): -- Added config file (.atanks-config) which records settings 28. 04 .2003 - Tom Hudson (tom@singular.org.uk): -- Implemented Versioning system in config file 14. 06 .2003 - Tom Hudson (tom@singular.org.uk): -- Implemented player persistence between games -- Improvements to BUTTON class and usage on front menu -- Teleport sound-effect + visual effect -- Player selection before game -- a variety of other things 25. 06 .2003 - Tom Hudson (tom@singular.org.uk): -- Implemented new DECOR class (decorative) -- Implemented smoke trails on missiles -- Implemented new TELEPORT class 10. 07 .2003 - Tom Hudson (tom@singular.org.uk): -- Implemented new BEAM class -- Implemented new weather (lightning) -- Implemented new Lazer weapon 14. 07 .2003 - Tom Hudson (tom@singular.org.uk): -- Fixed bug with damage text displaying even if damage rounds to 0 15. 07 .2003 - Tom Hudson (tom@singular.org.uk): -- Implemented 3 difficulty levels for computer players -- Fixed TOGGLE options bounce-effect (select, deselect, select rapidly) 18. 07 .2003 - Tom Hudson (tom@singular.org.uk): -- Implemented numerical display of angle and power (suggested by krajzega, allegro.cc) -- Animated lightning a little -- AI will now not attempt to use a lazer on a target lower than itself 22. 07 .2003 - Tom Hudson (tom@singular.org.uk): -- Fixed bug due to number of weapons changing between versions 25. 07 .2003 - Tom Hudson (tom@singular.org.uk): -- Modified credits screen, broke it down into several functions to make it re-usable. 30. 07 .2003 - Tom Hudson (tom@singular.org.uk): -- Added instructions screen from new button on main menu 31. 07 .2003 - Tom Hudson (tom@singular.org.uk): -- Fixed bug where explosion constantly checked if it was causing fall damage. This would cause money to often not be awarded to the player that fired the weapon. -- Changed the money model slightly, now a player should not be able to go below 0 money. 31. 07 .2003 - Tom Hudson (tom@singular.org.uk): -- When entering text (such as the Name field when editing a player) the mouse now continues to be visible, also the typing cursor flashes. 01. 08 .2003 - Tom Hudson (tom@singular.org.uk): -- Added usleep under linux to try and prevent 100% cpu on instruction and credits screens. -- Modified Guesser, should now be slightly more random. Previously it would consistently overshoot (guaranteed to miss, rather than just unlikely to hit). -- If a config file doesn't already exist, 10 players are created. -- Also, it will create a new (human) player and have you edit it when you run it. 02. 08 .2003 - Tom Hudson (tom@singular.org.uk): -- Changes for easier packaging (thanks to Michael Sterrett) including -DDATA_DIR option to modify the built-in path to the data files. -- Checks on various initialisation return-codes to see if they were successful, and returning errors if not. Previously these were ignored. 03. 08 .2003 - Tom Hudson (tom@singular.org.uk): -- Initialisation of previously uninitialized variables (as reported by 'gcc -O2 -Wall'). 04. 08 .2003 - Tom Hudson (tom@singular.org.uk): -- Moved up/down arrows on buying screen to more logical location -- Added Fast up/down arrows to buying screen to provide GUI equivalent of existing page-up/page-down functionality -- Added new arrow images for above purpose -- Added Napalm weapons 07. 08 .2003 - Kalle Toivonen (kato@korpikuu.fi) -- Found and fixed bug with backspace in text entry fields 11. 08 .2003 - Tom Hudson (tom@singular.org.uk) -- Added new Burrower and Penetrator subterranean weapons 12. 08 .2003 - Tom Hudson (tom@singular.org.uk) -- Any remaining shields are now recharged at the end of a round. -- Fixed a bug where it didn't pick up on failure to open title.dat then went ahead and tried to use it anyway (bug #787283). -- Money is now no longer lost when you damage yourself. This is the default behaviour. -- Bonus money now awarded to the tank which wins the round. -- Added options for financial side of things (bounty, bonuses, penalties for self damage and interest rate). -- Rewrote High/Low player ordering routine (turn order). Previously I'm not sure it ever worked. 13. 08 .2003 - Tom Hudson (tom@singular.org.uk) -- Made 'action' options on menus possible to implement 14. 08 .2003 - Tom Hudson (tom@singular.org.uk) -- Player Deletion now possible -- Moved number of rounds selector to player selection screen 17. 08 .2003 - Tom Hudson (tom@singular.org.uk) -- Fixed 'pause' bug, it really does now. -- When all human players are out of the game and only computer players remain, goes into Accelerated AI mode (Doesn't draw anything, speeds up the game and ends the round quicker, less sitting around waiting). -- Added option for Accelerated AI -- Added incremental stepping of angle and power via ctrl being held down (Patrick Bogen's suggestion) 18. 08 .2003 - Patrick Bogen -- Fixed divide by zero bug in wind variation routine which would happen if windvariation == 0; 20. 08 .2003 - Tom Hudson (tom@singular.org.uk) -- Added display of AI difficulty on selection screen and player menu. -- Fixed bug in win32 version causing config to screw up, it was due to file read and write being non-binary. This was already fixed in an earlier version but apparently overwritten before it made it to CVS. 22. 08 .2003 - Tom Hudson (tom@singular.org.uk) -- Added checks for memory allocation failures and handle them more gracefully (print an error and exit). 23. 08 .2003 - Tom Hudson (tom@singular.org.uk) -- Added FRAMES_PER_SECOND define -- 15 second time limit on missiles before they just detonate -- Maximum altitude (-65535) on missiles before they just detonate 24. 08 .2003 - Tom Hudson (tom@singular.org.uk) -- Last words added, along with revenge memory (AI more likely to fire on last player to do significant damage to them). -- Dropped FRAMES_PER_SECOND to 60 from 100 -- Modified various things to cope with FRAMES_PER_SECOND changes 01. 09 .2003 - Tom Hudson (tom@singular.org.uk) -- Fixed AI targetting bug resulting from FRAME_RATE changes (thanks to vossman77) 02. 09 .2003 - Justin Ronco (jronco@umich.edu) -- Removed z, zz, zzz, z4, z5, z6 globals. -- fade.cc & lineseq.h should be complete 02. 09 .2003 - Tom Hudson (tom@singular.org.uk) -- Fixed bug in drawFracture which would cause a hang (Eugeni Andreechtchev) 06. 09 .2003 - Justin Ronco (jronco@umich.edu) -- Relocated Tom's Perlin Noise code to "perlin.cc". Documented. 07. 09 .2003 - Justin Ronco (jronco@umich.edu) -- Relocated Sky rendering code to sky.cc. Documented. -- Modified moon drawing system; some cleanup, some additions. -- Made global gradients constant. Changed functions appropriately. -- Changed interface to generate_sky, removed all other functions from external view -- set_level_settings modified to call new sky functionality 07. 09 .2003 - Tom Hudson (tom@singular.org.uk) -- Fixed tremor-freeze bug (I thought this was already fixed?) 08. 09 .2003 - Tom Hudson (tom@singular.org.uk) -- Bugfix (workaround) for objects carrying through from the end of one round to the beginning of the next. This is temporary until a better fix can be made. 09. 09 .2003 - Tom Hudson (tom@singular.org.uk) -- Added detect_digi_driver before install_sound to see if sound is possible 20. 11 .2003 - Eden (eden99_99@users.sourceforge.net) -- Fixed bug with funky bomblet leaving the top of the screen. -- Fixed problem with not frequent-enough position sampling for collision detection. 01. 12 .2003 - Eden (eden99_99@users.sourceforge.net) -- Fixed bug with burrower leaving the top of the screen. -- AI improved to buy more parachutes along with a new player option to change when CPU players generate their weapon preferences. 11. 12 .2003 - Tom Hudson (tom@singular.org.uk) -- Fixed bug introduced in earlier version which printed 'advice' type errors ("You must have at least 2 players") to the console, rather than the screen. 15. 12 .2003 - Tom Hudson (tom@singular.org.uk) -- Improvement to AI, targetting now based on optimum positioning for maximum damage, with weighting for revenge, avoiding damaging self and several other factors. 16. 12 .2003 - Tom Hudson (tom@singular.org.uk) -- Further improvement to AI, added wind factoring into targetting for 2 stage weapons, which should make cluster bombs etc. used more effectively. -- Added 'shopping trolley', allowing items to be put back. 04. 01. 2004 - Tom Hudson (tom@singular.org.uk) -- Improved shopping trolley to allow sell-back of previously bought items at a loss (adjustable via money menu). -- Changed money from int to long int as int is apparently too small 06. 01. 2004 - Tom Hudson (tom@singular.org.uk) -- Changes to missile-specific code, allowing a wide variety of definitions and tweaks via weapons.h and simplifying certain sections. 08. 01. 2004 - Tom Hudson (tom@singular.org.uk) -- Further improvements to AI to allow better targetting -- Changes to calculation of weapon damage 20. 01. 2004 - Tom Hudson (tom@singular.org.uk) -- Added new items Intensity Amplifier and Violent Force which increase the damage done by the player's explosive weapons. 28. 01. 2004 - Tom Hudson (tom@singular.org.uk) -- Fixed bug where failure to set_gfx_mode would report semi-random and unrelated system errors ("directory not found"). -- Attempted fix to lazer-only-sometimes-doing-damage bug by adding lazer radius to cause-damage area. 31. 01. 2004 - Tom Hudson (tom@singular.org.uk) -- Added command-line options to set screen/window width and height -- Added command-line option to set gfx depth (16 or 32) -- Added Valleys terrain type 02. 02. 2004 - Tom Hudson (tom@singular.org.uk) -- Changed AI purchasing algorithm to increase chances of purchasing 'cumulative' items. This is done by decreasing the chances of purchasing a given item in proportion to the number of items already purchased, unless it's a cumulative item. -- Right mouse-button for larger increase/decrease in values in menus. -- Added --datadir switch for specifying an alternative data directory 03. 02. 2004 - Tom Hudson (tom@singular.org.uk) -- Fixed lazer only sometimes causing damage bug atanks-6.6/tank/0000755000175000017500000000000012636021030011714 5ustar apoapoatanks-6.6/tank/10.bmp0000644000175000017500000000354612636021030012644 0ustar apoapoBMf6(0  (g](g]^Pw$lP@EaHHI(g]oC|@(g]-eh3LU~{9I9(g]nE2KUJIBSB(g])f`w{: X U 3C3,[,(g]%iW.IVBd O L 9&]'kj'!N!-H-(g](g]x  L X }2F_bgi*!N!r1g&Aw@g X S ,z95V5xy!N!+c4 K t!t~>C_'S)GIGKXKGhGBvB11vOKOLTL8i}E &0&!U!"["k{#+}2:;,, z Y\8F8=T==d==q='( VkV o}110055DD))--115599==AARxRQwQAA ^n^--,,atanks-6.6/tank/4.bmp0000644000175000017500000000354612636021030012567 0ustar apoapoBMf6(0  atanks-6.6/tank/9.bmp0000644000175000017500000000354612636021030012574 0ustar apoapoBMf6(0  ]F]MMM333333MMMMMMMMMGGG333333:1:>6>MMMMMMMMMMMM999333333919444;;;MMMMMMMMMMMM777333333333>7>...444424......444333(((MMMMMMMMMMMM---333333555ZZZDCD AAAMMMLLL###000<<<000888LLLMMMDDD&&&333<<5>eAqrr-j-;~b~1iKWKd(5D5B;w aNM"-;N;gavbYN<.-^k_o%?sBt j;Ef/v [;`LZZL(X'dp>`,Yvpl|HnAu5~{:>0ev`+VC  F\9W=dMK.; \URk)VZ4Ib&eW.LV9Xe+][7La5cn0Wm%8IZW2`^1Tk8LAqs'UY6N(EZTSuY))?JJ&)_]XW!a_OVRVUT >>^\!QT5:NT#&XX BA8=E"LSSU@ 999vvs*ZZ::1ooTTVVHHTT 23) 2  1!" ?B'^_UU"VVSSTEyy//FmmJJ,iiRRGH25  9Q<@AEGHD@^q6U[(LP>#28PQ3nnMM9ooP PP ..%UUNN&`` 68 /f(=\:b($&~a(w:41A~}!d("/5II,ff$\\K?xx??)ik!HE@B%0) ~x ~/!v 58"YY&LL&PP.ffBB11-,56:B# &% # "#. sG  !!,-2ZZ6WW1bb*aa''SogP.1\GYRQQRXXZ֊KwMXMfHe87G"''QQHHKK#XXJ::5)(_U׊q|eeZ]wxwnuso蘅75(9IF-JK$@@MMKK DD[oa&WO0??)&%'K=W;BU<]') f nN%p86;U)#0BRdS!W$!p""g((k\4|E&s#f#SH :0[aWO_M1M;,W.1N0XoWatanks-6.6/tank/7.bmp0000644000175000017500000000354612636021030012572 0ustar apoapoBMf6(0  atanks-6.6/tank/6.bmp0000644000175000017500000000354612636021030012571 0ustar apoapoBMf6(0  atanks-6.6/tank/15.bmp0000644000175000017500000000354612636021030012651 0ustar apoapoBMf6(0  ;;;;;;;;;D@D;;;;;;>=>;;;<;<Ⱦeee666;;;;;;;;;;;;;;;;;;666GDG===;;;yyyjjj<5<;;;555wwwzzz<4<;;;zzz<6<;;;777tttmmm<4<}}}ǽWWW777777;;;uuu:::<4<;;;}}}777vvvRPR;;;lllSSSEEEyyWWW===;;;666|||>>Auuu|||vvvggg:::99w퍍ZZZ===;;;888ppWW >>EgggpppnnnmmmZZZ===OOa99**WWW===;;;sss;;;00<===>>>;;;DDDAA{ BBWWW===;;;xxxRRREEE,,5544$$ ddt???===;;;{{{zzzjjj:::::g++AANNNNFF88**++ffy<<>CCOO ,$?1MM;;;???ZZZbbbaaa00j :8r7;;;>3>?6?^G^Q5+ fatanks-6.6/tank/2.bmp0000644000175000017500000001071212636021030012556 0ustar apoapoBM6(!-  ԺܽڹGGGfffbbbBBBeeeẺ‚ttt~~~]]]ijɏzzzvvvʀxxx^^^uuuʅǜnnnZZZuuummmòʇ}}}jjjKKKuuuʲ~~~򍍍```[[[uuuIJʮ```ggguuuvvvfff~~~Ͱ^^^ooo􆆆tttggg}}}^^^WWWSSSWWWOOO'''111RRR돏atanks-6.6/tank/11.bmp0000644000175000017500000000462612636021030012645 0ustar apoapoBM 6( `   [U iipn e``]&^_=WZ.JK)HH0Y[ghxwaaaa3WY*HHF]aI_c?WZ7QSI_cI_bcd~~\X(]^'HHD\_I_cWYI_cB\_ppRRZZ \]"kl{{ vvvxqrfg,lo4il'UVA`dI`dBY\7RSI_cI_c4OPD\_I_cH^b}}zzRRRRii'dgI_c8dh2WYH`cC[_7QSI_cG]a0KLI_cI_c.KLCZ]I_c\_7QS-JKC[^5QR(KK:Y[.UVQQ.Z\-\^\\de!jlpp ww|} ||ff\\RRRRee"~~zzttrrppppoommmmzzppllllllllllllgg^^[[YY]]nnllppttttttttttssttyynnlllllllllllldd__ss}}}}}}|||||| 7 7@>;77,= E_atanks-6.6/tank/14.bmp0000644000175000017500000000354612636021030012650 0ustar apoapoBMf6(0  =!^unre~rllXnse~e~e~gmmayle~e~wmmq{e~gm{ixmxxUmhs atanks-6.6/tank/12.bmp0000644000175000017500000000354612636021030012646 0ustar apoapoBMf6(0  ((;;===ZZZZZZ::000?8?444pppW02DDDooo~~~mbm*+,HHH҅$ $$ $))%%%iiiš*+,&'(--./00BBBdeeDDDdddffffff88,,,sss쫫())%&'/0189:?@AEFG223&&&\\\zzzFGGUVVl]]]uuu)*+567@ABJJKRSSYYZ^^_OPQCCCQQRZZ[VWXOOPڛ000000WWWQQR"#$)*+789DEFPQR[\\defllmqrsuuvuvvttuopqijjaab[[\&'(567DEFRST_`aklmvvw~||}rssghh02 !012@ABPQQ_``mno{{|vwxvwx45'()89:IJKZ[[jkkzz{uuaaMMs::c((P+02,-.:77H:;[>>o>><<55,, |p%%b//[0?02$ D_w **>>UUnnĻ!1>/0LCD`^_|}}ı!"#445FGHYYZklm~~Ƴ !233DEFWWXiij{||./0@ABRSSddeuvwĶ::>>,,,%%%SSS\\\lll***^^^___&&&+++zzz^^^{{{^^^ssseeePPPFFFCCCKKKQQQWWWAAA&&&"""+++]]]vvvzzznnnkkk{{{^^^\\\vvveeeNNN888!!! ,,,@@@---???SSSiii{{{cccĿYYYwwweeeNNN888!!! @@@yyy"""&&&===SSSiii{{{ooo\\\wwweeeNNN888!!! sss&&&===SSSiii{{{sss}}}nnnwwweeeNNN888%%%((( \\\ &&&***===SSSiii{{{ddd]]]wwweeeNNN888///|||+++444>>>SSSiii{{{___rrrwwweeeOOO;;;&&&EEE)))...===SSSiii{{{|||ҵiiiwwwgggKKK444###999AAA???NNNjjj{{{mmmhhhvvvTTTJJJ???ZZZbbb\\\PPPgggvvvoooeeeRRRgggbbbwwwfff\\\bbbmmmfff}}}{{{MMM&&&rrr|||kkkddd---zzzatanks-6.6/tank/1.bmp0000644000175000017500000001071212636021030012555 0ustar apoapoBM6(!-  }}}wwweeerrrssseee؍Ϫkkkjjj{{{}}}dddnnn{{{ggg~~~XXXsssatanks-6.6/tank/8.bmp0000644000175000017500000000354612636021030012573 0ustar apoapoBMf6(0  atanks-6.6/unicode.dat0000644000175000017500000001274412636021030013107 0ustar apoaposlh.ALL.propDATE5-27-2014, 17:44propNAMEsystempropORIG ./system.pcxFONT6S _'`U 6@@lJJpD-0 w"``00gl"c?p0p88 ~ = a1 51-3082a3-~c61c&784~84`Di?{=(?=g23-6Z8 ! Cx:clxp6@lW11 7>|pppy@o`o`f@?q@ym@gc@69T<8>V0c808RR>0"w[OP[H8!Þ9 s|l0`8!lf|%tA G5t|f vflxpCxlzIp4A@umx@y+ |h~dxnclx Ny]s`~(scRlUZ f#eA?203oT&ZYa(^v ^~|dGʟܟ$6HZl~Ưد 2DVhz¿Կ o^?0=/OLDOIs}IISIF(קf<6@gday^3Fw_i/]_H `Rb)o;fLJU1#3z!llx8 n0n4!nz^|?i?g|m?p`0f0o#r 8K9Kv`8 Ky3K3K{ JlaTNiNxvl 5r'x0 D$D$)DN!>C$T`x/Qd{nn~vvwQ1`6Y]4!Y]1s/ w_o_ oo0oBoToc(:o#voooooo"4F|5%E|PI:hF*V)|n߀& /gX߾߄$,&+$(Uxpst6>&2`8Pq&22l0 Ό@-?Qcu6H 2 tb +$tC@q6R(:L^ *8ZX*<N`rm=% !g !<<`/5 9I?&!+/ ?_f>z"S ~ 0`r///r/+(/_D?b|????????0OBOTOfOxOOOOOOOO_,_*_P_:_`____&<%__@_0oBoTofoxooooooo}o|P?+,>Pbtt]я -?Qcu Ƀ!!{!f@w!o>yzz__Z oF jDVhz¯ԯ tƟ؟bп 0g<.  2cz lxpzlz A*flxpxl3C=Ͻ'oٿ``'%_q߃ߕߧ%7I[m!3EWi{ /{|||00pp߈p ` e@@=@0 @GE'9K]o/#/5/G/Y/k/}//////// ??1?C?U?g?y???????? OO-O?OQOcOuOOOOOOOO__)_;_M___q_______O]__4oFoXojo|oooooooo 0BTfx,>PbtΏ(:L^pʟܟ$6HZl~Ưد 2DVhz¿Կ .@RdvπϚϬϾUL^p߂ߔߦp p5߽߫H(d Ap80o`0k05| 0BT$oΘpPpI 98gY$(pZ .@Rdv*<N`r//&/8/J/\/n/mT'0//!?/2?'G?k?A??q ߰???O O2ODOVOhOzOOOOOOOO __._@_R_d_v__~90p____o!o3oEoWoiooo{oyooo /ASew+=Oas͏ߏ'9K]oɟ۟#5GYk}ůׯ 1CUgyӿ -?πQcuχϙcϛ /ASew߉ߛ߭߿߀+4 e3a``gal3?;oeu /ASew>c`8 >P hg~gM_]3`!3}@Pe?ffsJt各x>6@ 𔰐 @>BBB""B-|}t xD۰8DD(Yw8H;6TI*FIjYp0pg;H0t(X4<۱D;ƪ *6͸ĸXDpfXysˈPPPp@@3gwTPPˈ̄|3kt ܽ@@@A.&yE.yȼpXxe4OPPpvPyO4<$D@p)ȐH(h% I@ -)peE@Dq  VX|p@pΆQxv 2DVhz .@Rdv//*/ (Запускает игру с указанной в пикселях шириной экрана.) ./atanks --tall (Запускает игру с указанной в пикселях высотой экрана.) ./atanks --datadir (Указывает директорию с данными для Atomic Tanks.) ./atanks --depth (Устанавливает глубину цвета. Допустимые значения: 16, 32) ./atanks --noconfig (Сбрасывает конфигурацию, использует настройки по умолчанию.) ./atanks --nonetwork (Не даёт Atanks подключаться к сети.) ./atanks --nobackground (Убирает зелёный фон в главном меню. Помогает от глюков на 64-битных системах.) Большинство этих опций могут использоваться вместе, за исключением "-fs" для включения полноэкранного режима. Простая команда "./atanks" запускает игру с теми же параметрами, что и команда: ./atanks --windowed --width 800 --tall 600 --datadir . depth 32 Как мне создать игрока для себя? ================================================ Сразу после запуска Atomic Tanks вам понадобится создать себе игрока. Для этого щёлкните по кнопке "Игроки" ("Players") и выберите пункт "Создать нового" ("Create new"). Введите желаемое имя для игрока (не забудьте нажать Enter) и выберите цвет для себя. Это все основные настройки; можно щёлкнуть кнопку "Okay". После этого щёлкните по кнопке "Назад" ("Back") и затем по желанной кнопке "Играть" ("Play")! Сразу после этого откроется меню новой игры, в которой вам будет предложено выбрать те танки, которые будут участвовать в сражениях. Не забудьте выбрать себя (рядом с вами есть фиолетовый кружок) и несколько танков противника! Если вы начинающий игрок, лучше выбирать себе противников меньшего уровня (чем меньше зелёных полос рядом с именем танка, тем проще будет его победить). После этого выберите количество раундов, имя игры (необязательно) и нажмите "Okay"! На следующем экране вам будет предложено купить себе оружие и снаряжение на следующий раунд. Этот экран будет появляться перед каждым новым раундом, так что у вас будет время хорошенько попрактиковаться и подобрать себе хорошую комбинацию оружия. Щёлкнув левой кнопкой мыши, вы покупаете оружие. Правая кнопка мыши продаёт оружие или отменяет покупку. После того, как вы закупились, нажмите "Готово". После этого начинается игра. Ваша задача: используя всё то вооружение, которое вы приобрели, уничтожить все танки противника и при этом уцелеть самому. Используйте стрелки влево и вправо для изменения угла выстрела, стрелки вверх и вниз для изменения силы (дальности) выстрела и стреляйте кнопкой "Пробел"! Если вы купили какое-нибудь оружие, используйте клавиши "Z" и "C" для выбора нужного типа снаряда или ракеты. В каждом раунде побеждает единственный уцелевший танк. За каждое попадание в противника вплоть до его уничтожения вы получаете дополнительные деньги, которые вы можете потратить после каждого раунда. Где можно сообщить об ошибке или посоветовать что-либо разработчикам? ========================================= Atomic Tanks - здоровская игра! ;) Но она не совершенна и находится в постоянной разработке. Мы, разработчики, всегда стремимся улучшить игру. Если у вас возникли проблемы с установкой или запуском Atomic Tanks, пожалуйста, сообщите нам на форуме: http://atanks.forumwise.com/ Мы благодарны каждому, кто сообщил об ошибке. Пожалуйста, сообщите как можно больше деталей (версия операционной системы, версия игры, особенности вашего компьютера, которые могли повлиять на работу игры) - это облегчит нам задачу и позволит исправить ошибку и помочь вам в кратчайшие сроки. Авторы перевода: MyO Sergi atanks-6.6/Makefile0000644000175000017500000002647314105065711012442 0ustar apoapo.PHONY: all install clean veryclean user winuser osxuser ubuntu \ dist tarball zipfile source-dist i686-dist win32-dist VERSION := 6.6 DEBUG ?= NO # Note: Submit as "YES" to enable debugging # Note: If any flag starting with -g is found in the CXXFLAGS, DEBUG is # switched to YES no matter whether set otherwise or not. # The following switches can be used to fine-tune the debugging output: # Note: DEBUG_AICORE can be used to enable both DEBUG_AIMING and DEBUG_EMOTION # together with a single flag. DEBUG_AICORE ?= NO DEBUG_AIMING ?= NO DEBUG_EMOTION ?= NO DEBUG_FINANCE ?= NO DEBUG_OBJECTS ?= NO DEBUG_PHYSICS ?= NO # If the debug output shall be written to atanks.log, set this to YES DEBUG_LOG_TO_FILE ?= NO # These three are mutually exclusive. If all are set to yes, # address-sanitizing has priority, followed by leak, thread # is last. SANITIZE_ADDRESS ?= NO SANITIZE_LEAK ?= NO SANITIZE_THREAD ?= NO # The following is only used on gcc-4.9+ and only without debugging enabled. USE_LTO ?= NO # ------------------------------------ # Install and target directories # ------------------------------------ PREFIX ?= /usr DESTDIR ?= BINPREFIX ?= $(PREFIX) BINDIR ?= ${BINPREFIX}/bin INSTALLDIR ?= ${PREFIX}/share/games/atanks # ------------------------------------ # Source files and objects # ------------------------------------ SOURCES := $(sort $(wildcard src/*.cpp)) MODULES := $(addprefix obj/,$(notdir $(SOURCES:.cpp=.o))) DEPENDS := $(addprefix dep/,$(notdir $(SOURCES:.cpp=.d))) # ------------------------------------- # Platform to build for (Can be forced) # ------------------------------------- PLATFORM ?= none ifeq (none,$(PLATFORM)) # The easiest way is to go through our make goals # I know this looks weird, but the following simply means: # "If the search for "win" in MAKECMDGOALS does not return an empty string" ifneq (,$(findstring win,$(MAKECMDGOALS))) PLATFORM := WIN32 else ifneq (,$(findstring osx,$(MAKECMDGOALS))) PLATFORM := MACOSX else PLATFORM := LINUX endif endif # If this is a user make goal, the install directory is forced to be local: ifneq (,$(findstring user,$(MAKECMDGOALS))) INSTALLDIR := . endif # -------------------------------------------- # Target executable and distribution file name # -------------------------------------------- TARGET := atanks FILENAME := $(TARGET)-$(VERSION) # ------------------------------------ # Tools to use # ------------------------------------ INSTALL := $(shell which install) RM := $(shell which rm) -f CXX ?= g++ SED := $(shell which sed) WINDRES := ifeq (,$(findstring /,$(CXX))) CXX := $(shell which $(CXX)) endif # if this is a Windows target, prefer mingw32-g++ over g++ # Further more the WIN32 Platform needs windres.exe to create src/atanks.res ifeq (WIN32,$(PLATFORM)) ifneq (,$(findstring /g++,$(CXX))) CXX := $(shell which mingw32-g++) endif WINDRES := $(shell which windres.exe) MODULES := ${MODULES} obj/atanks.res TARGET := ${TARGET}.exe RM := del /q endif # Use the compiler as the linker. LD := $(CXX) # -------------------------------------------------------------------------- # Determine proper C++11 standard flag, and if and how stack protector works # -------------------------------------------------------------------------- GCCVERSGTEQ47 := 0 GCCVERSGTEQ49 := 0 GCCUSESGOLD := 0 GCC_STACKPROT := GCC_CXXSTD := 0x PEDANDIC_FLAG := -pedantic # Note: It has to be evaluated which versions of clang and mingw # start using c++11 instead of c++0x. ifneq (,$(findstring /g++,$(CXX))) GCCVERSGTEQ47 := $(shell expr `$(CXX) -dumpversion | cut -f1,2 -d. | tr -d '.'` \>= 47) GCCVERSGTEQ49 := $(shell expr `$(CXX) -dumpversion | cut -f1,2 -d. | tr -d '.'` \>= 49) endif ifeq "$(GCCVERSGTEQ47)" "1" GCC_CXXSTD := 11 PEDANDIC_FLAG := -Wpedantic ifeq "$(GCCVERSGTEQ49)" "1" GCC_STACKPROT := -fstack-protector-strong GCCUSESGOLD := $(shell ld --version | head -n 1 | grep -c "GNU gold") else GCC_STACKPROT := -fstack-protector endif endif # ------------------------------------ # Flags for compiler and linker # ------------------------------------ CPPFLAGS += -DDATA_DIR=\"${INSTALLDIR}\" -D$(PLATFORM) -DVERSION=\"${VERSION}\" CXXFLAGS += -Wall -Wextra $(PEDANDIC_FLAG) -std=c++$(GCC_CXXSTD) LDFLAGS += # Depending on the platform, some values have to be appended: ifeq (MACOSX,$(PLATFORM)) CPPFLAGS := ${CPPFLAGS} -I/usr/local/include $(shell allegro-config --cppflags) LDFLAGS := ${LDFLAGS} $(shell allegro-config --libs) else ifeq (WIN32,$(PLATFORM)) CPPFLAGS := ${CPPFLAGS} -I/usr/local/include CXXFLAGS := ${CXXFLAGS} -mwindows LDFLAGS := ${LDFLAGS} -mwindows -L. -lalleg44 else ifneq (,$(findstring bsd,$(MAKECMDGOALS))) C_INCLUDE_PATH := /usr/local/include CPLUS_INCLUDE_PATH := /usr/local/include CXXFLAGS := ${CXXFLAGS} -Wno-c99-extensions export C_INCLUDE_PATH export CPLUS_INCLUDE_PATH endif CPPFLAGS := ${CPPFLAGS} -DNETWORK $(shell allegro-config --cppflags) CXXFLAGS := ${CXXFLAGS} -pthread LDFLAGS := ${LDFLAGS} $(shell allegro-config --libs) -lm -lpthread endif # If the make goal is "ubuntu", a special define is to be added: ifeq (UBUNTU,$(MAKECMDGOALS)) CPPFLAGS := ${CPPFLAGS} -DUBUNTU endif # ------------------------------------ # Debug Mode settings # ------------------------------------ HAS_DEBUG_FLAG := NO ifneq (,$(findstring -g,$(CXXFLAGS))) ifneq (,$(findstring -ggdb,$(CXXFLAGS))) HAS_DEBUG_FLAG := YES endif DEBUG := YES endif ifeq (YES,$(DEBUG)) ifeq (NO,$(HAS_DEBUG_FLAG)) CXXFLAGS := -ggdb ${CXXFLAGS} -O0 endif CPPFLAGS := ${CPPFLAGS} -DATANKS_DEBUG CXXFLAGS := ${CXXFLAGS} ${GCC_STACKPROT} -Wunused # LTO is hard blocked now: USE_LTO := NO # address / thread sanitizer activation ifeq (YES,$(SANITIZE_ADDRESS)) CXXFLAGS := ${CXXFLAGS} -fsanitize=address LDFLAGS := ${LDFLAGS} -fsanitize=address else ifeq (YES,$(SANITIZE_LEAK)) CXXFLAGS := ${CXXFLAGS} -fsanitize=leak LDFLAGS := ${LDFLAGS} -fsanitize=leak else ifeq (YES,$(SANITIZE_THREAD)) CPPFLAGS := ${CPPFLAGS} -DUSE_MUTEX_INSTEAD_OF_SPINLOCK CXXFLAGS := ${CXXFLAGS} -fsanitize=thread -fPIC -O2 -ggdb LDFLAGS := ${LDFLAGS} -fsanitize=thread -pie -O2 -ggdb endif # Add specific debug message flavours ifeq (YES,$(DEBUG_AICORE)) CPPFLAGS := ${CPPFLAGS} -DATANKS_DEBUG_AIMING -DATANKS_DEBUG_EMOTIONS endif ifeq (YES,$(DEBUG_AIMING)) CPPFLAGS := ${CPPFLAGS} -DATANKS_DEBUG_AIMING endif ifeq (YES,$(DEBUG_EMOTION)) CPPFLAGS := ${CPPFLAGS} -DATANKS_DEBUG_EMOTIONS endif ifeq (YES,$(DEBUG_FINANCE)) CPPFLAGS := ${CPPFLAGS} -DATANKS_DEBUG_FINANCE endif ifeq (YES,$(DEBUG_OBJECTS)) CPPFLAGS := ${CPPFLAGS} -DATANKS_DEBUG_OBJECTS endif ifeq (YES,$(DEBUG_PHYSICS)) CPPFLAGS := ${CPPFLAGS} -DATANKS_DEBUG_PHYSICS endif ifeq (YES,$(DEBUG_LOG_TO_FILE)) CPPFLAGS := ${CPPFLAGS} -DATANKS_DEBUG_LOGTOFILE endif else CXXFLAGS := -march=native ${CXXFLAGS} -O2 endif # Potentially enable LTO if this is gcc-4.9 and greater ifeq (YES,$(USE_LTO)) ifeq "$(GCCVERSGTEQ49)" "1" CXXFLAGS := ${CXXFLAGS} -flto endif ifeq "$(GCCUSESGOLD)" "1" CXXFLAGS := ${CXXFLAGS} -fuse-linker-plugin endif endif # ------------------------------------ # Distribution file lists # ------------------------------------ DISTCOMMON := \ atanks/*.dat atanks/COPYING atanks/README atanks/TODO \ atanks/Changelog atanks/BUGS atanks/*.txt INCOMMON := COPYING README TODO Changelog *.txt unicode.dat # ------------------------------------ # Default target # ------------------------------------ all: $(TARGET) # ------------------------------------ # Create dependencies # This is the standard as described # on the GNU make info manual. # (See Chapter 4.14) # ------------------------------------ dep/%.d: src/%.cpp @set -e; $(RM) $@; \ $(CXX) -MM $(CPPFLAGS) $(CXXFLAGS) $< > $@.$$$$; \ $(SED) 's,\($*\)\.o[ :]*,obj/\1.o $@ : ,g' < $@.$$$$ > $@; \ $(RM) $@.$$$$ # ------------------------------------ # Compile modules # ------------------------------------ obj/%.o: src/%.cpp @echo "Compiling $@" $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ -c $< # ------------------------------------ # Build windows res file # ------------------------------------ obj/atanks.res: ifeq (WIN32,$(PLATFORM)) $(WINDRES) -i src/atanks.rc --input-format=rc -o obj/atanks.res -O coff else @echo "This is no WIN32 platform, so why?" endif # ------------------------------------ # Regular targets # ------------------------------------ install: $(TARGET) $(INSTALL) -d $(DESTDIR)${BINDIR} $(INSTALL) -m 755 atanks $(DESTDIR)${BINDIR} $(INSTALL) -d $(DESTDIR)$(PREFIX)/share/metainfo $(INSTALL) -m 644 io.sourceforge.atanks.metainfo.xml $(DESTDIR)$(PREFIX)/share/metainfo $(INSTALL) -d $(DESTDIR)$(PREFIX)/share/applications $(INSTALL) -m 644 atanks.desktop $(DESTDIR)$(PREFIX)/share/applications $(INSTALL) -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps $(INSTALL) -m 644 atanks.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps $(INSTALL) -d $(DESTDIR)${INSTALLDIR} $(INSTALL) -d $(DESTDIR)${INSTALLDIR}/button $(INSTALL) -d $(DESTDIR)${INSTALLDIR}/misc $(INSTALL) -d $(DESTDIR)${INSTALLDIR}/missile $(INSTALL) -d $(DESTDIR)${INSTALLDIR}/sound $(INSTALL) -d $(DESTDIR)${INSTALLDIR}/stock $(INSTALL) -d $(DESTDIR)${INSTALLDIR}/tank $(INSTALL) -d $(DESTDIR)${INSTALLDIR}/tankgun $(INSTALL) -d $(DESTDIR)${INSTALLDIR}/title $(INSTALL) -d $(DESTDIR)${INSTALLDIR}/text $(INSTALL) -m 644 $(INCOMMON) $(DESTDIR)${INSTALLDIR} $(INSTALL) -m 644 button/* $(DESTDIR)${INSTALLDIR}/button $(INSTALL) -m 644 misc/* $(DESTDIR)${INSTALLDIR}/misc $(INSTALL) -m 644 missile/* $(DESTDIR)${INSTALLDIR}/missile $(INSTALL) -m 644 sound/* $(DESTDIR)${INSTALLDIR}/sound $(INSTALL) -m 644 stock/* $(DESTDIR)${INSTALLDIR}/stock $(INSTALL) -m 644 tank/* $(DESTDIR)${INSTALLDIR}/tank $(INSTALL) -m 644 tankgun/* $(DESTDIR)${INSTALLDIR}/tankgun $(INSTALL) -m 644 title/* $(DESTDIR)${INSTALLDIR}/title $(INSTALL) -m 644 text/* $(DESTDIR)${INSTALLDIR}/text $(TARGET): $(MODULES) $(LD) -o $@ $(MODULES) $(CPPFLAGS) $(LDFLAGS) $(CXXFLAGS) clean: $(RM) obj/* atanks veryclean: clean ifeq (WIN32,$(PLATFORM)) $(RM) $(TARGET).exe else $(RM) $(TARGET) endif # ------------------------------------ # User (local) targets # ------------------------------------ user: $(TARGET) winuser: $(TARGET) osxuser: $(TARGET) bsduser: $(TARGET) ubuntu: $(TARGET) # ------------------------------------ # Distribution targets # ------------------------------------ dist: source-dist i686-dist win32-dist tarball: veryclean cd .. && tar --create --file $(FILENAME).tar.gz --auto-compress --exclude-vcs $(FILENAME) zipfile: veryclean cd .. && zip -r $(FILENAME)-source.zip $(FILENAME) -x '*.git*' source-dist: $(TARGET) cd ../; \ $(RM) $(FILENAME).tar.gz; \ tar czf $(FILENAME).tar.gz atanks/src/*.cpp atanks/src/*.h atanks/Makefile $(DISTCOMMON) i686-dist: $(TARGET) cd ../; \ $(RM) $(FILENAME)-i686-dist.tar.gz; \ strip atanks/atanks; \ tar czf $(FILENAME)-i686-dist.tar atanks/atanks $(DISTCOMMON) win32-dist: $(TARGET) cd ../; \ $(RM) $(FILENAME)-win32-dist.zip; \ zip -r $(FILENAME)-win32-dist.zip atanks/atanks.exe atanks/alleg40.dll $(DISTCOMMON) # ------------------------------------ # Include all dependency files # ------------------------------------ ifeq (,$(findstring clean,$(MAKECMDGOALS))) -include $(DEPENDS) endif atanks-6.6/cb/0000755000175000017500000000000013006377360011357 5ustar apoapoatanks-6.6/cb/atanks.workspace0000644000175000017500000000030612636021030014543 0ustar apoapo atanks-6.6/cb/atanks.cbp0000644000175000017500000005005613006377360013334 0ustar apoapo atanks-6.6/dep/0000755000175000017500000000000014105056650011540 5ustar apoapoatanks-6.6/dep/satellite.d0000644000175000017500000000036514066445401013701 0ustar apoapoobj/satellite.o dep/satellite.d : src/satellite.cpp src/environment.h src/main.h src/debug.h \ src/globaltypes.h src/externs.h src/globaldata.h src/text.h \ src/network.h src/gfxData.h src/satellite.h src/beam.h src/physobj.h \ src/virtobj.h atanks-6.6/dep/virtobj.d0000644000175000017500000000030314066445377013376 0ustar apoapoobj/virtobj.o dep/virtobj.d : src/virtobj.cpp src/virtobj.h src/main.h src/debug.h \ src/globaltypes.h src/externs.h src/globaldata.h src/text.h \ src/environment.h src/network.h src/gfxData.h atanks-6.6/dep/clock.d0000644000175000017500000000010014066445403012773 0ustar apoapoobj/clock.o dep/clock.d : src/clock.cpp src/clock.h src/debug.h atanks-6.6/dep/beam.d0000644000175000017500000000051614066445404012620 0ustar apoapoobj/beam.o dep/beam.d : src/beam.cpp src/environment.h src/main.h src/debug.h \ src/globaltypes.h src/externs.h src/globaldata.h src/text.h \ src/network.h src/gfxData.h src/physobj.h src/virtobj.h src/player.h \ src/player_types.h src/decor.h src/debris_pool.h src/tank.h \ src/floattext.h src/beam.h src/explosion.h src/sound.h atanks-6.6/dep/optiontypes.d0000644000175000017500000000011412636021300014265 0ustar apoapoobj/optiontypes.o dep/optiontypes.d : src/optiontypes.cpp src/optiontypes.h atanks-6.6/dep/update.d0000644000175000017500000000027714066445400013176 0ustar apoapoobj/update.o dep/update.d : src/update.cpp src/debug.h src/update.h src/network.h \ src/externs.h src/globaldata.h src/main.h src/globaltypes.h src/text.h \ src/environment.h src/gfxData.h atanks-6.6/dep/shop.d0000644000175000017500000000036514066445401012664 0ustar apoapoobj/shop.o dep/shop.d : src/shop.cpp src/shop.h src/player.h src/player_types.h \ src/main.h src/debug.h src/globaltypes.h src/externs.h src/globaldata.h \ src/text.h src/environment.h src/network.h src/gfxData.h src/files.h \ src/gameloop.h atanks-6.6/dep/debris_pool.d0000644000175000017500000000032314066445403014210 0ustar apoapoobj/debris_pool.o dep/debris_pool.d : src/debris_pool.cpp src/debris_pool.h src/main.h \ src/debug.h src/globaltypes.h src/externs.h src/globaldata.h src/text.h \ src/environment.h src/network.h src/gfxData.h atanks-6.6/dep/globaldata.d0000644000175000017500000000050514066445402014002 0ustar apoapoobj/globaldata.o dep/globaldata.d : src/globaldata.cpp src/player.h src/player_types.h \ src/main.h src/debug.h src/globaltypes.h src/externs.h src/globaldata.h \ src/text.h src/environment.h src/network.h src/gfxData.h src/files.h \ src/tank.h src/physobj.h src/virtobj.h src/floattext.h src/sound.h \ src/debris_pool.h atanks-6.6/dep/aicore.d0000644000175000017500000000050514105056650013147 0ustar apoapoobj/aicore.o dep/aicore.d : src/aicore.cpp src/aicore.h src/player_types.h src/main.h \ src/debug.h src/globaltypes.h src/externs.h src/globaldata.h src/text.h \ src/environment.h src/network.h src/gfxData.h src/floattext.h \ src/virtobj.h src/player.h src/tank.h src/physobj.h src/missile.h \ src/beam.h src/explosion.h atanks-6.6/dep/gfxData.d0000644000175000017500000000026714066453316013276 0ustar apoapoobj/gfxData.o dep/gfxData.d : src/gfxData.cpp src/main.h src/debug.h src/globaltypes.h \ src/externs.h src/globaldata.h src/text.h src/environment.h \ src/network.h src/gfxData.h atanks-6.6/dep/optionitemplayer.d0000644000175000017500000000053714066447704015330 0ustar apoapoobj/optionitemplayer.o dep/optionitemplayer.d : src/optionitemplayer.cpp src/optionitemplayer.h \ src/optionitembase.h src/environment.h src/main.h src/debug.h \ src/globaltypes.h src/externs.h src/globaldata.h src/text.h \ src/network.h src/gfxData.h src/optiontypes.h src/button.h src/player.h \ src/player_types.h src/floattext.h src/virtobj.h atanks-6.6/dep/debug.d0000644000175000017500000000006414066445403012777 0ustar apoapoobj/debug.o dep/debug.d : src/debug.cpp src/debug.h atanks-6.6/dep/tank.d0000644000175000017500000000052114066454024012643 0ustar apoapoobj/tank.o dep/tank.d : src/tank.cpp src/floattext.h src/main.h src/debug.h \ src/globaltypes.h src/externs.h src/globaldata.h src/text.h \ src/environment.h src/network.h src/gfxData.h src/virtobj.h \ src/explosion.h src/physobj.h src/teleport.h src/missile.h \ src/player.h src/player_types.h src/beam.h src/tank.h src/sound.h atanks-6.6/dep/atanks.d0000644000175000017500000000102014066450555013167 0ustar apoapoobj/atanks.o dep/atanks.d : src/atanks.cpp src/debug.h src/globals.h src/globaldata.h \ src/main.h src/globaltypes.h src/externs.h src/environment.h \ src/network.h src/gfxData.h src/text.h src/optionscreens.h src/menu.h \ src/optionitem.h src/optionitembase.h src/optiontypes.h src/button.h \ src/optionitemmenu.h src/optionitemplayer.h src/player.h \ src/player_types.h src/files.h src/update.h src/tank.h src/physobj.h \ src/virtobj.h src/floattext.h src/beam.h src/missile.h src/gameloop.h \ src/clock.h src/client.h atanks-6.6/dep/sound.d0000644000175000017500000000027314066445400013040 0ustar apoapoobj/sound.o dep/sound.d : src/sound.cpp src/sound.h src/externs.h src/globaldata.h \ src/main.h src/debug.h src/globaltypes.h src/text.h src/environment.h \ src/network.h src/gfxData.h atanks-6.6/dep/player.d0000644000175000017500000000066514066447704013222 0ustar apoapoobj/player.o dep/player.d : src/player.cpp src/environment.h src/main.h src/debug.h \ src/globaltypes.h src/externs.h src/globaldata.h src/text.h \ src/network.h src/gfxData.h src/player.h src/player_types.h src/tank.h \ src/physobj.h src/virtobj.h src/floattext.h src/menu.h src/optionitem.h \ src/optionitembase.h src/optiontypes.h src/button.h src/optionitemmenu.h \ src/optionitemplayer.h src/files.h src/missile.h src/aicore.h atanks-6.6/dep/sky.d0000644000175000017500000000036114066445401012515 0ustar apoapoobj/sky.o dep/sky.d : src/sky.cpp src/externs.h src/globaldata.h src/main.h src/debug.h \ src/globaltypes.h src/text.h src/environment.h src/network.h \ src/gfxData.h src/sky.h src/files.h src/gameloop.h src/player.h \ src/player_types.h atanks-6.6/dep/floattext.d0000644000175000017500000000033114066445403013720 0ustar apoapoobj/floattext.o dep/floattext.d : src/floattext.cpp src/floattext.h src/main.h src/debug.h \ src/globaltypes.h src/externs.h src/globaldata.h src/text.h \ src/environment.h src/network.h src/gfxData.h src/virtobj.h atanks-6.6/dep/optionitembase.d0000644000175000017500000000055514066447705014747 0ustar apoapoobj/optionitembase.o dep/optionitembase.d : src/optionitembase.cpp src/button.h src/main.h \ src/debug.h src/globaltypes.h src/externs.h src/globaldata.h src/text.h \ src/environment.h src/network.h src/gfxData.h src/menu.h \ src/optionitem.h src/optionitembase.h src/optiontypes.h \ src/optionitemmenu.h src/optionitemplayer.h src/floattext.h \ src/virtobj.h atanks-6.6/dep/optionscreens.d0000644000175000017500000000063014066447704014611 0ustar apoapoobj/optionscreens.o dep/optionscreens.d : src/optionscreens.cpp src/optionscreens.h src/menu.h \ src/optionitem.h src/optionitembase.h src/environment.h src/main.h \ src/debug.h src/globaltypes.h src/externs.h src/globaldata.h src/text.h \ src/network.h src/gfxData.h src/optiontypes.h src/button.h \ src/optionitemmenu.h src/optionitemplayer.h src/player.h \ src/player_types.h src/files.h src/sound.h atanks-6.6/dep/physobj.d0000644000175000017500000000032114103343135013352 0ustar apoapoobj/physobj.o dep/physobj.d : src/physobj.cpp src/physobj.h src/globaltypes.h src/virtobj.h \ src/main.h src/debug.h src/externs.h src/globaldata.h src/text.h \ src/environment.h src/network.h src/gfxData.h atanks-6.6/dep/.keep_dir0000644000175000017500000000000012636021030013300 0ustar apoapoatanks-6.6/dep/explosion.d0000644000175000017500000000052414103343135013721 0ustar apoapoobj/explosion.o dep/explosion.d : src/explosion.cpp src/main.h src/debug.h src/globaltypes.h \ src/externs.h src/globaldata.h src/text.h src/environment.h \ src/network.h src/gfxData.h src/explosion.h src/physobj.h src/virtobj.h \ src/missile.h src/decor.h src/debris_pool.h src/tank.h src/floattext.h \ src/player.h src/player_types.h atanks-6.6/dep/gameloop.d0000644000175000017500000000075614066445403013524 0ustar apoapoobj/gameloop.o dep/gameloop.d : src/gameloop.cpp src/main.h src/debug.h src/globaltypes.h \ src/externs.h src/globaldata.h src/text.h src/environment.h \ src/network.h src/gfxData.h src/files.h src/satellite.h src/update.h \ src/land.h src/clock.h src/floattext.h src/virtobj.h src/tank.h \ src/physobj.h src/explosion.h src/beam.h src/missile.h src/decor.h \ src/debris_pool.h src/teleport.h src/sky.h src/sound.h src/gameloop.h \ src/player.h src/player_types.h src/aicore.h src/shop.h atanks-6.6/dep/button.d0000644000175000017500000000031314066445404013222 0ustar apoapoobj/button.o dep/button.d : src/button.cpp src/button.h src/main.h src/debug.h \ src/globaltypes.h src/externs.h src/globaldata.h src/text.h \ src/environment.h src/network.h src/gfxData.h src/sound.h atanks-6.6/dep/client.d0000644000175000017500000000062714066445403013174 0ustar apoapoobj/client.o dep/client.d : src/client.cpp src/button.h src/main.h src/debug.h \ src/globaltypes.h src/externs.h src/globaldata.h src/text.h \ src/environment.h src/network.h src/gfxData.h src/files.h \ src/satellite.h src/update.h src/client.h src/beam.h src/physobj.h \ src/virtobj.h src/explosion.h src/missile.h src/teleport.h \ src/floattext.h src/player.h src/player_types.h src/tank.h src/sky.h atanks-6.6/dep/optionitemmenu.d0000644000175000017500000000053014066447704014771 0ustar apoapoobj/optionitemmenu.o dep/optionitemmenu.d : src/optionitemmenu.cpp src/optionitemmenu.h \ src/optionitembase.h src/environment.h src/main.h src/debug.h \ src/globaltypes.h src/externs.h src/globaldata.h src/text.h \ src/network.h src/gfxData.h src/optiontypes.h src/button.h src/menu.h \ src/optionitem.h src/optionitemplayer.h src/clock.h atanks-6.6/dep/decor.d0000644000175000017500000000042314066445403013004 0ustar apoapoobj/decor.o dep/decor.d : src/decor.cpp src/decor.h src/physobj.h src/globaltypes.h \ src/virtobj.h src/main.h src/debug.h src/externs.h src/globaldata.h \ src/text.h src/environment.h src/network.h src/gfxData.h \ src/debris_pool.h src/sound.h src/tank.h src/floattext.h atanks-6.6/dep/missile.d0000644000175000017500000000056514066445402013363 0ustar apoapoobj/missile.o dep/missile.d : src/missile.cpp src/explosion.h src/main.h src/debug.h \ src/globaltypes.h src/externs.h src/globaldata.h src/text.h \ src/environment.h src/network.h src/gfxData.h src/physobj.h \ src/virtobj.h src/missile.h src/decor.h src/debris_pool.h src/tank.h \ src/floattext.h src/player.h src/player_types.h src/beam.h src/sound.h \ src/aicore.h atanks-6.6/dep/player_types.d0000644000175000017500000000032714066445401014431 0ustar apoapoobj/player_types.o dep/player_types.d : src/player_types.cpp src/player_types.h src/main.h \ src/debug.h src/globaltypes.h src/externs.h src/globaldata.h src/text.h \ src/environment.h src/network.h src/gfxData.h atanks-6.6/dep/optionitemcolour.d0000644000175000017500000000043614066447705015336 0ustar apoapoobj/optionitemcolour.o dep/optionitemcolour.d : src/optionitemcolour.cpp src/optionitemcolour.h \ src/optionitembase.h src/environment.h src/main.h src/debug.h \ src/globaltypes.h src/externs.h src/globaldata.h src/text.h \ src/network.h src/gfxData.h src/optiontypes.h src/button.h atanks-6.6/dep/teleport.d0000644000175000017500000000046014066445400013544 0ustar apoapoobj/teleport.o dep/teleport.d : src/teleport.cpp src/environment.h src/main.h src/debug.h \ src/globaltypes.h src/externs.h src/globaldata.h src/text.h \ src/network.h src/gfxData.h src/teleport.h src/virtobj.h src/tank.h \ src/physobj.h src/floattext.h src/sound.h src/player.h \ src/player_types.h atanks-6.6/dep/main.d0000644000175000017500000000025414066445402012635 0ustar apoapoobj/main.o dep/main.d : src/main.cpp src/main.h src/debug.h src/globaltypes.h \ src/externs.h src/globaldata.h src/text.h src/environment.h \ src/network.h src/gfxData.h atanks-6.6/dep/network.d0000644000175000017500000000032514066445402013401 0ustar apoapoobj/network.o dep/network.d : src/network.cpp src/network.h src/player.h src/player_types.h \ src/main.h src/debug.h src/globaltypes.h src/externs.h src/globaldata.h \ src/text.h src/environment.h src/gfxData.h atanks-6.6/dep/perlin.d0000644000175000017500000000026214103343135013171 0ustar apoapoobj/perlin.o dep/perlin.d : src/perlin.cpp src/main.h src/debug.h src/globaltypes.h \ src/externs.h src/globaldata.h src/text.h src/environment.h \ src/network.h src/gfxData.h atanks-6.6/dep/globaltypes.d0000644000175000017500000000011414066445402014231 0ustar apoapoobj/globaltypes.o dep/globaltypes.d : src/globaltypes.cpp src/globaltypes.h atanks-6.6/dep/text.d0000644000175000017500000000025414066445400012673 0ustar apoapoobj/text.o dep/text.d : src/text.cpp src/text.h src/main.h src/debug.h src/globaltypes.h \ src/externs.h src/globaldata.h src/environment.h src/network.h \ src/gfxData.h atanks-6.6/dep/land.d0000644000175000017500000000036514066445402012632 0ustar apoapoobj/land.o dep/land.d : src/land.cpp src/land.h src/main.h src/debug.h src/globaltypes.h \ src/externs.h src/globaldata.h src/text.h src/environment.h \ src/network.h src/gfxData.h src/files.h src/gameloop.h src/player.h \ src/player_types.h atanks-6.6/dep/environment.d0000644000175000017500000000050414066445403014254 0ustar apoapoobj/environment.o dep/environment.d : src/environment.cpp src/main.h src/debug.h \ src/globaltypes.h src/externs.h src/globaldata.h src/text.h \ src/environment.h src/network.h src/gfxData.h src/missile.h \ src/physobj.h src/virtobj.h src/tank.h src/floattext.h src/files.h \ src/sound.h src/player.h src/player_types.h atanks-6.6/dep/files.d0000644000175000017500000000033314066445403013012 0ustar apoapoobj/files.o dep/files.d : src/files.cpp src/main.h src/debug.h src/globaltypes.h \ src/externs.h src/globaldata.h src/text.h src/environment.h \ src/network.h src/gfxData.h src/player.h src/player_types.h src/files.h atanks-6.6/dep/menu.d0000644000175000017500000000061014066447705012661 0ustar apoapoobj/menu.o dep/menu.d : src/menu.cpp src/optioncontent.h src/optiontypes.h \ src/globaltypes.h src/optionitemcolour.h src/optionitembase.h \ src/environment.h src/main.h src/debug.h src/externs.h src/globaldata.h \ src/text.h src/network.h src/gfxData.h src/button.h src/menu.h \ src/optionitem.h src/optionitemmenu.h src/optionitemplayer.h \ src/player.h src/player_types.h src/clock.h atanks-6.6/vs12/0000755000175000017500000000000013006377361011567 5ustar apoapoatanks-6.6/vs12/atanks.vcxproj.filters0000755000175000017500000002306212636021030016125 0ustar apoapo {4FC737F1-C7A5-4376-A066-2A32D752A2FF} cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx {93995380-89BD-4b04-88EB-625FBE52EBFB} h;hh;hpp;hxx;hm;inl;inc;xsd {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Headerdateien Quelldateien Quelldateien Quelldateien Quelldateien Quelldateien Quelldateien Quelldateien Quelldateien Quelldateien Quelldateien Quelldateien Quelldateien Quelldateien Quelldateien Quelldateien Quelldateien Quelldateien Quelldateien Quelldateien Quelldateien Quelldateien Quelldateien Quelldateien Quelldateien Quelldateien Quelldateien Quelldateien Quelldateien Quelldateien Quelldateien Quelldateien Quelldateien Quelldateien Quelldateien Quelldateien Quelldateien Quelldateien Quelldateien Quelldateien Quelldateien Quelldateien Quelldateien Ressourcendateien atanks-6.6/vs12/README_allegro.txt0000755000175000017500000000110113006377361014766 0ustar apoapoTo build atanks using Visual Studio 2012 you will need to adapt the include path settings to where your allegro includes are. Further replace alleg44.dll and alleg44_64.dll with the versions you want to use. Release 32bit uses alleg44.lib and alleg44.dll Release 64bit uses alleg44_64.lib and alleg44_64.dll Debug 32bit uses alleg44_d.lib and alleg44_d.dll Debug 64bit uses alleg44_64_d.lib and alleg44_64_d.dll As the windows build is originally not meant for debugging, only the release versions are included in git. You will need your own includes and libs! atanks-6.6/vs12/atanks.sln0000755000175000017500000000240312636021030013553 0ustar apoapo Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 VisualStudioVersion = 12.0.31206.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "atanks", "atanks.vcxproj", "{146B9823-15FD-45DC-8EA4-56670798D8D8}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Debug|x64 = Debug|x64 Release|Win32 = Release|Win32 Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {146B9823-15FD-45DC-8EA4-56670798D8D8}.Debug|Win32.ActiveCfg = Debug|Win32 {146B9823-15FD-45DC-8EA4-56670798D8D8}.Debug|Win32.Build.0 = Debug|Win32 {146B9823-15FD-45DC-8EA4-56670798D8D8}.Debug|x64.ActiveCfg = Debug|x64 {146B9823-15FD-45DC-8EA4-56670798D8D8}.Debug|x64.Build.0 = Debug|x64 {146B9823-15FD-45DC-8EA4-56670798D8D8}.Release|Win32.ActiveCfg = Release|Win32 {146B9823-15FD-45DC-8EA4-56670798D8D8}.Release|Win32.Build.0 = Release|Win32 {146B9823-15FD-45DC-8EA4-56670798D8D8}.Release|x64.ActiveCfg = Release|x64 {146B9823-15FD-45DC-8EA4-56670798D8D8}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal atanks-6.6/vs12/atanks.vcxproj0000755000175000017500000003502513006377361014475 0ustar apoapo Debug Win32 Debug x64 Release Win32 Release x64 {146B9823-15FD-45DC-8EA4-56670798D8D8} Win32Proj atanks Application true v120 Unicode Application true v120 Unicode Application false v120 true Unicode Application false v120 true Unicode true $(SolutionDir)../ $(Configuration)_x86\ $(ProjectName)_d true $(ProjectName)_64_d $(SolutionDir)../ $(Configuration)_x64\ false $(SolutionDir)../ $(Configuration)_x86\ false $(ProjectName)_64 $(SolutionDir)../ $(Configuration)_x64\ Level2 Disabled WIN32;_DEBUG;_WINDOWS;VERSION="6.5_rc1";ATANKS_DEBUG;%(PreprocessorDefinitions) false $(SolutionDir)..\..\allegro\include;$(SolutionDir)..\..\allegro\build_x86_d\include;$(SolutionDir)..\src;%(AdditionalIncludeDirectories) MultiThreadedDebug Windows true $(SolutionDir).. alleg44_d.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) Level2 Disabled WIN32;_DEBUG;_WINDOWS;VERSION="6.5_rc1";ATANKS_DEBUG;%(PreprocessorDefinitions) false $(SolutionDir)..\..\allegro\include;$(SolutionDir)..\..\allegro\build_x86_d\include;$(SolutionDir)..\src;%(AdditionalIncludeDirectories) MultiThreadedDebug Windows true $(SolutionDir).. alleg44_64_d.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) Level1 MaxSpeed true true WIN32;NDEBUG;_WINDOWS;VERSION="6.5_rc1";%(PreprocessorDefinitions) false $(SolutionDir)..\..\allegro\include;$(SolutionDir)..\..\allegro\build_x86\include;$(SolutionDir)..\src;%(AdditionalIncludeDirectories) MultiThreaded AnySuitable Speed true Windows true true true $(SolutionDir).. alleg44.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) Level1 MaxSpeed true true WIN32;NDEBUG;_WINDOWS;VERSION="6.5_rc1";%(PreprocessorDefinitions) false $(SolutionDir)..\..\allegro\include;$(SolutionDir)..\..\allegro\build_x86\include;$(SolutionDir)..\src;%(AdditionalIncludeDirectories) MultiThreaded AnySuitable Speed true Windows true true true $(SolutionDir).. alleg44_64.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) atanks-6.6/allegro.cfg0000644000175000017500000000003712636021030013065 0ustar apoapo[graphics] disable_vsync = yes atanks-6.6/io.sourceforge.atanks.metainfo.xml0000644000175000017500000000575514066454637017555 0ustar apoapo CC0-1.0GPL-2.0-or-later io.sourceforge.atanks Atomic Tanks

Multi-platform Scorched Earth clone similar to the Worms series of games

Annihilate the other tanks to earn money, then spend it on bigger and better shields and weapons to wipe out the opposition.

Features a wide array of weapons, AI players, destructible landscape, weather, parachutes, teleports and a wide range of other features.

Runs on any platform Allegro4 runs on, including Linux, Windows and Mac OS X.

https://atanks.sourceforge.io/Screenshots/scrnshot29.png https://atanks.sourceforge.io/Screenshots/scrnshot28.png https://atanks.sourceforge.io/Screenshots/scrnshot30.png https://atanks.sourceforge.io/Screenshots/scrnshot27.png https://atanks.sourceforge.io/Screenshots/scrnshot19.png https://atanks.sourceforge.io/Screenshots/scrnshot20.png https://atanks.sourceforge.io/Screenshots/scrnshot21.png https://atanks.sourceforge.io/Screenshots/scrnshot22.png https://atanks.sourceforge.io/Screenshots/scrnshot23.png https://atanks.sourceforge.io/Screenshots/scrnshot24.png https://atanks.sourceforge.io/Screenshots/scrnshot25.png https://atanks.sourceforge.io/Screenshots/scrnshot26.jpg https://atanks.sourceforge.io https://sourceforge.net/p/atanks/bugs/ ubr47k@users.sourceforge.net jessefrgsmith@yahoo.ca atanks.desktop atanks Game ArcadeGame mild mild atanks-6.6/TODO0000644000175000017500000000302313006377360011461 0ustar apoapoThere is now some small attempt at prioritisation in this file, higher priority stuff should be at the top of the file, lower priority at the bottom. Bugs: - Make sure network client doesn't get unlimited shots. Features: - Add scroll bar to buying screen. - Add randomize button to buying screen to have items automatically purchased. - Field repair kit: Spend a turn to repair your tank rather than fire. Limited uses, heals more than Auto Repair Kit. - Radar resistant missile: A missile designed to avoid the missile defence system by masking its heat signature. Yield: Large missile - Update client ground surface more often. - Client needs a buying screen. - Add rocks as semi-destructable items. =============================================== Items from here to the bottom of the file are under consideration by the development team and may (or may not) be implemented. =============================================== -- under ground mines -- rocket like fireworks -- Make it possible to shoot down the UFO -- Make main window scalable (Needs to wait until Allegro 5.x) -> Allegro 5 is a no-opt. And porting to SFML-2 or SDL2 would be a major rewrite of the game. But maybe one day. -- Harder ground -> What is that supposed to mean? -- High voltage missiles (discharge on impact or when within range) (Bharat Dhareshwar) -- Tornadoes (pick up tanks and objects) (Bharat Dhareshwar) -- Another level of armour improvement atanks-6.6/atanks.png0000644000175000017500000000610412636021030012747 0ustar apoapoPNG  IHDR00WbKGD pHYs 7˭tIME  v IDATh\ys33k׋67ĀkRZB@P#))BRPh4jJRE [BL 6b^̙۹̜K\TG|_}VYeUVY9ZpaW[fp&)z9?*K#=DJ #7^OO*-BVfD ߣ&f0dzysrFZN]v*R,XN ]Nm \  Mcj,TWgXHU3d"+{}vGV.J@ASB6XQ|%H$HEX"RI:_qb0:`@(hRG+ll  hR[ʿeՋ?Q@gw^fBXzWPAzL7,}CdSYsbPQnwi4liDDaa*Jܼyh4e>NDcF׈x?MQg! 2TnC>g~}OξǨIS ED1"QZmoZVXqDt:=, ~fl~umvs&.jjQk=b %pܷZ xEw??}ӳ~鋊cLN[l2GdUMMVs=$lj{HUB\@&pyE%(08&0P#_;ZǾjf|Sckw.]}OM^0}qms_U$dɘcQǵ,Hώʕ R:疑K&QL:N6`hЦq Tu\-fێ!;2GBH˲;7]SO~ivt>\Hd SW,R}jZEW<̅>k %& I#K j,.Ԩ la _K/r䓟ek9ufl:hL)1icmd)x2%M/%&$CY9Μ'O31˗X(V%}SXµHSO~ۆ1+(fd2ij&E"t[#cmֆZ* %yR-jDGLV(:2#Vp, ^IcA2m$ڌ &ut\fiآ3pwFAk҈͹T{߃݉IfVU@nzx8rfFAº lo$d$ݩ.l!s)\p}NT~ˆWD3$`fM#c͚T'Fر2L:;wv3h! Q Wr%) 1;%˱/В[6e* @`(Aڡ&lP,J]?e3jؿ{>J_8,D\\/@H21rrDQs˖e7sc r%tĉ]oNyWDmZ7ڶ24C<=̊BwyC"| =? wReZ%Vѩ6O_+-J?1_BP H]L+ȭ˝wǾOWOv˵̥]RyiLv8~7~icIV7P]EUzu?`9VYeUn}hgIENDB`atanks-6.6/text/0000755000175000017500000000000013006377361011760 5ustar apoapoatanks-6.6/text/ingame_de.txt0000644000175000017500000000216412636021030014417 0ustar apoapoSelect Players Rounds New Game Name or Load Game Load Game Campaign Okay Back You must select at least 2 players You can only have up to 10 players Player Money Round Score Press F10 to save your current game. Use the up and down arrows to scroll through the item list. Saved game Angle: Power: Team Fuel Wind: Return Main Menu Quit Skip AI Players Create New Name Colour Type Generate Pref Played Won Tank Type Delete This Player A new version is ready for download. Could not find a game by that name. Qty. in inventory Failed to save game. Choosing colours Rendering Sky Rendering Landscape Winner: Jedi Winner: Sith Winner Draw Player Scores Kill:Die Player Scores Accelerated AI Your Name unnamed Human Useless Guesser Range Targetter Deadly Per Game Only Once Normal Classic Big Grey T34 Sith Neutral Jedi Zuruck HauptMenu Verlassen Skip AI Heavy Future UFO Spider Server version did not match client version. Server screen size does not match ours. Client has become disconnected from the server. The server is full or the game has not started. The server closed our connection. The game is finished. atanks-6.6/text/gloat_fr.txt0000644000175000017500000000044512636021030014304 0ustar apoapoHa, ha A genoux devant moi ! Prends a ! Je suis trop sexy pour ce tank... Ouahhhhhh a fait mal ! Enfoir ! Grand ouvert Je plains ce gars ! w00t C'tait pas terrible ! Hasta la vista, baby ! Adorez-moi ! Appelez-moi votre hauteur ! Je suis le matre de tout ce que je vois... atanks-6.6/text/gloat.txt0000644000175000017500000000045012636021030013611 0ustar apoapoHa, ha You will kneel before me Take that! I'm too sexy for this tank Wohahaha That's gotta hurt Sucker! open wide I pity tha foo w00t That wasn't pretty Hasta la vista, baby! Worship me You may address me as Your Highness I am master of all I survey Better luck next time. NOT! Burn baby! Burn! atanks-6.6/text/war_quotes.txt0000644000175000017500000000476012636021030014704 0ustar apoapoMankind must put an end to war or war will put an end to mankind - John F. Kennedy War is fought by human beings. - Carl von Clausewitz War is something absurd, useless, that nothing can justify. - Louis de Cazenave Every gun that is made, every warship launched, every rocket fired, signifies, in the final sense, a theft from those who hunger and are not fed... - Dwight D. Eisenhower War cannot be a necessary evil, because non-violence is a necessary good. - John Lewis As long as war is regarded as wicked, it will always have its fascination. - Oscar Wilde Only the dead have seen the end of the war. (Plato) In war, truth is the first casualty. (Aeschylus) War is sweet to those who have never experienced it. (Pindar) War spares not the brave but the cowardly. (Anacreon) To lead untrained people to war is to throw them away. (Confucius) Laws are silent in times of war. (Cicero) War gives the right of the conquerors to impose any conditions they please upon the vanquished. (Gaius Julius Caesar) The true contempt of an invader is shown by deeds of valour in the field. (Hermocrates of Syracuse) In peace, sons bury their fathers; in war, fathers bury their sons. (Herodotus) A wise man in times of peace prepares for war. (Horace) The man who runs away will fight again. (Menander) A small country cannot contend with a great; the few cannot contend with the many; the weak cannot contend with the strong. (Mencius) To blunder twice is not allowed in war. (Latin proverbs) I am more afraid of our own mistakes than of our enemies'designs. (Pericles) He conquers who endures. (Persius) An alliance with the powerful is never to be trusted. (Fedrus) A good general not only sees the way to victory, he also knows when victory is impossible. (Polybius) Pardon one offence and you encourage the commission of many. (Publilius Syrus) The cruelty of war makes for peace. (Publius Statius) Wars are the dread of mothers. (Horace) The fortunes of war are always doubtful. (Seneca) The blade itself incites to violence. (Homer) Arms keep peace. (Latin proverbs) All warfare is based on deception. (Sun Tzu) He who knows when he can fight and when he cannot will be victorious. (Sun Tzu) In war, numbers alone confer no advantage. Do not advance relying on sheer military power. (Sun Tzu) Now in place of the young men urns and ashes are carried home to houses of the fighters. (Aeschylus). Beware lest in your anxiety to avoid war you obtain a master. (Demosthenes.) A sword is never a killer, it's a tool in the killer's hands. (Seneca) atanks-6.6/text/ingame.txt0000644000175000017500000000215712636021030013751 0ustar apoapoSelect Players Rounds New Game Name or Load Game Load Game Campaign Okay Back You must select at least 2 players You can only have up to 10 players Player Money Round Score Press F10 to save your current game. Use the up and down arrows to scroll through the item list. Saved game Angle: Power: Team Fuel Wind: Return Main Menu Quit Skip AI Players Create New Name Colour Type Generate Pref Played Won Tank Type Delete This Player A new version is ready for download. Could not find a game by that name. Qty. in inventory Failed to save game. Choosing colours Rendering Sky Rendering Landscape Winner: Jedi Winner: Sith Winner Draw Player Scores Kill:Die Player Scores Accelerated AI Your Name unnamed Human Useless Guesser Range Targetter Deadly Per Game Only Once Normal Classic Big Grey T34 Sith Neutral Jedi Return Main Menu Quit Skip AI Heavy Future UFO Spider Server version did not match client version. Server screen size does not match ours. Client has become disconnected from the server. The server is full or the game has not started. The server closed our connection. The game is finished. atanks-6.6/text/retaliation_it.txt0000644000175000017500000000023112636021030015507 0ustar apoapoMUORI, TU SEI MORTO, TU SEI LA STORIA, A FONDO CON TE, TI PRENDERO', CHI SEI, SEI FUORI, LA RIVINCITA E' DOLCE, SEI PERDUTO, QUESTA E' LA FINE, atanks-6.6/text/suicide.pt_BR.txt0000644000175000017500000000023612636021030015137 0ustar apoapoUi, como dói! Eu, bem, estava querendo fazer isto Ôpa Eu me odeio Olha o que você me fez fazer! Agora é atirar no próprio pé Isto não me parece certo atanks-6.6/text/weapons_ru.txt0000644000175000017500000003632013006377361014707 0ustar apoapo*WEAPONS* Ракета Слабый взрыв, малая мощность. Достаточно для того, чтобы добить танк противника. Средняя ракета Небольшая мощность, небольшая площадь поражения. Разумное качество по разумной цене. Большая ракета Средняя мощность, средняя площадь поражения. Способна серьёзно задеть противника. Малая ядерная бомба Мощный взрыв, большая площадь поражения. Неприятный сюрприз для большинства танков. Ядерная бомба Очень мощный взрыв, огромная площадь поражения. Кто там не надел очки? Ядрен-батон (Death Head) Офигенно мощный бабах. Достанет кого угодно. Малый веер 5 малых ракет за один выстрел. Удобно, если нужно накрыть нескольких раненых противников за раз. Средний веер 5 средних ракет за один выстрел. Уже повод для беспокойства. Большой веер 5 больших ракет за один выстрел. Опасное оружие в руках умелого танкиста. Супер-веер 4 малых ядерных бомбы за один выстрел. Смех злого гения прилагается. Смертельный веер 3 ядерных бомбы за один выстрел. Не забудьте надеть очки. Армагеддон 3 ядрен-батона за один выстрел. Гарантированное избавление от тараканов и клопов на поле боя! Очередь Выстреливает 3 ракеты одну за другой. Для тех, кто хочет пощекотать противнику нервы. Пулемет Выстреливает 5 ракет одну за другой. Способен продолбить яму в грунте. Молотилка Выстреливает 8 ракет одну за другой. Начинающий набор танкиста-дятла. Резачок Мощный горизонтальный взрыв. Вся энергия фокусируется по сторонам, что увеличивает мощность, но уменьшает площадь поражения. Резак Опустошительный горизонтальный взрыв. Вся энергия фокусируется по сторонам, что позволяет пробить любой щит, но уменьшает шансы зацепить врага. Потрошитель Горизонтальный взрыв, сметающий всё на своем пути. Вся энергия фокусируется по сторонам, прорезая любую броню, бетон и грунт. Каток Заряд средней мощности, который катится под горку, пока не столкнется с препятствием. Полезен против противника, который расположился на склоне. Большой каток Заряд большой мощности, который катится под горку, пока не столкнется с препятствием. Многие танкисты предпочитают встречу с лавиной. Танкоукладчик Заряд огромной мощности, способный укатать любой танк в прямом смысле этого слова. РГЧ-ИН "Рогач" Ракета с Разделяющейся Головной Частью. Обрушивает с высоты на наземную цель группу больших ракет. Превращает точку попадания в подобие лунной поверхности. Бронебойный снаряд Небольшой, но очень мощный снаряд - сила взрыва концентрируется в одной точке, что позволяет пробить любую защиту. Кассетная бомба При срабатывании выбрасывает 5 средних ракет. Эффективна против врагов, собравшихся в группы. Супер-кассетная бомба При срабатывании выбрасывает 5 больших ракет. Разрушительный фейерверк в тылу врага. Шариковая бомба Экспериментальная бомба, сделанная на заводе по производству шариков для пинг-понга. Непредсказуема и смертельна. Шариковая смерть Улучшенная версия шариковой бомбы, сделанная на заводе по производству баскетбольных мячей. Непредсказуема и офигенно разрушительна. Воздушный шарик Летающая боеголовка средней мощности. Бомбаэростат Летающая боеголовка большой мощности. Бомбочка Боеголовка средней мощности. Для использования в кассетных бомбах, авиаударах и фейерверках. Супер-бомбочка Боеголовка большой мощности. Руками не трогать. Крот Вонзается в поверхность и проходит некоторый путь под землёй по параболе, прежде чем взорваться, что удобно против закопанных танков. Крот предназначен для движения под землей и не слишком-то хорошо летает в воздухе. Большой крот Движется под землей до выхода на поверхность или до попадания в зарытый танк. Большой крот расчитан на движение под землей, поэтому страдает от сильного сопротивления воздуха. Малый напалм Снаряд с горючими веществами. При срабатывании разбрызгивает немного горящего напалма. Напалм почти не разрушает грунт, но подвержен влиянию ветра. Средний напалм Снаряд с горючими веществами. Разбрызгивает горящий напалм при срабатывании. Более мощная и более эффективная модификация. Большой напалм Снаряд с горючими веществами. Заливает напалмом всё в округе. Проверьте направление ветра перед выстрелом. Липкий напалм Горючее искуственное желе. Ямокопатель При попадании снаряд создает глубокий вертикальный тоннель, почти не нанося повреждений. Первоначально использовался компаниями при поиске нефти и газа на планетах. Дрожь земли При срабатывании вызывает слабое землетрясение. Малоэффективный, но назойливый снаряд. Ударная волна Вызывает большое землетрясение. Опасен для неподготовленных танков. Тектонический сдвиг Вызывает кошмарное землетрясение. Не кантовать. Уборщик (Riot Bomb) Убирает немного грунта, не повреждая броню и технику. Используется для раскопок на поле боевых действий. Heavy Riot Bomb Убирает уйму грунта, не повреждая броню и технику. Используется для обнаружения подземных вражеских лагерей. Малый дворник Очищает от грязи небольшой просвет перед дулом пушки. Предмет первой необходимости на поле боя. Большой дворник Очищает от грязи большую площадь перед дулом пушки. Улучшенная и в разы более эффективная модификация дворника. Комок грязи Небольшой шар из грунта, способный закопать оппонента. Грязь легко уничтожается и расчищается. Большой комок грязи Большой грунтовый шар для закапывания оппонентов. Полезен против тех, кто умеет откапывать танки только ракетами. Говномет Уйма грязи на голову врага. Для полноты ощущений ещё и воняет. Small Dirt Spread Drop little piles of dirt on your enemies Cluster MIRV Releases a cluster of small missiles on its way down Per Cent Bomb Destroys half of the target's armour Reducer Lowers the explosive power of an enemy's missiles. Theft Bomb Steals 5k from opponent on impact. Малый лазер Луч мощностью 50КВт. Способен прожечь лист железа или грунт. Средний лазер Луч мощностью 100КВт. Отличный способ прожечь броню врага. Большой лазер 200-киловаттный прожигатель. Злые гении, это ваш выбор! *NATURALS* Метеорит Камешек с небес. Лучше его не ловить. Метеор Осколок небесной тверди. Несовместим с целым танком. Большой метеор Обломок небесной тверди. Гнев небес вобьет в грунт любого грешника. Малая молния Слабенький разряд. Мешает радиосвязи, добивает больных и ослабевших. Молния Обычный разряд молнии. Выжигает бортовую электронику. Не лови - убьет! Большая молния Убийственный разряд. Кто сказал, что бывают тугоплавкие металлы? *ITEMS* Телепорт Перебрасывает танк в случайную точку под землёй или в воздухе. Обменник Меняет танк местами с другим танком. Миксер Телепортирует в случайные точки все танки на поле боя. Ветродуй Меняет направление и силу ветра. Завещание Небольшой самоликвидатор или автоликвидатор: если уж тебя попросили на выход, почему бы не прихватить кого-нибудь с собой? Месть покойника Большой набор самоликвидации. Ты мне - я тебе. Убийственная ярость Закончим всё это красиво. Малый щит Противопульная дополнительная броня. Для тех, кому нужна дополнительная защита. Средний щит Хорошая дополнительная броня. Нужна защита от мощных ракет? Возьми этот модуль! Тяжелый щит Особо прочная дополнительная броня. Способна выдержать даже авиаудар. Слабое силовое поле Отталкивает вражеские снаряды. Не защищает от взрывной волны. Силовое поле Хорошо отталкивает вражеские снаряды, плохо защищает от взрывов. Мощное силовое поле Отлично отталкивает вражеские снаряды, направленные точно в танк. Навесная броня Усиливает броню танка до конца игры. Каждая новая пластина дает чуть меньший эффект, нежели предыдущая. Эгида Особо прочная навесная броня. Усиливает броню танка до конца игры. Каждая новая пластина дает чуть меньший эффект, нежели предыдущая. Усилитель боевой мощи До конца игры немного увеличивает убойную силу ваших снарядов. Каждый новый усилитель оказывает немного меньший эффект по сравнению с предыдущим. Убийственный усилитель До конца игры существенно увеличивает убойную силу ваших снарядов. Каждый новый усилитель оказывает немного меньший эффект по сравнению с предыдущим. Тефлоновое покрытие Тефлоновая оболочка зарядов уменьшает влияние ветра на траекторию выстрела. Сверлёные снаряды Небольшие отверстия в боеголовках существенно повышают их устойчивость к воздействию ветра. Парашют Оказавшись в воздухе или потеряв почву под ногами, танк не падает, а плавно опускается на землю. В полете можно управлять направлением, расходуя ТОПЛИВО, если оно есть. Авторемонтник С каждым ходом устраняет часть полученных повреждений. Каждый новый ремонтник работает чуть менее эффективно, чем предыдущий. Топливо Позволяет танку двигаться по ровной местности и планировать в сторону при парашютировании. Двигатель "ВВП" Поднимает танк в воздух, что позволяет перелетать с места на место. SDI Missile Defense Offers some protection against incoming missiles. atanks-6.6/text/revenge_ru.txt0000644000175000017500000000221112636021030014641 0ustar apoapoР-р-р-р! И на твой танк напалм приземлится... Даже злость на тебя тратить не буду... А вне танка разобраться силенок хватит? Я до тебя доберусь! Мы ещё это обсудим... Я тебе это ещё припомню... У меня память плохая, поэтому мстить буду долго!!! Ах ты крыса бронированная! Взял пукалку и давай стрелять, да!? Даже начинку не зацепил, мазила! Не для моей брони твои ракеты! У-у-у-у... Ненавижу! Долг платежом красен. Ракеты верну с процентами, соседушка... И тебе дам того же попробовать. Ты об этом пожалеешь! Ха! Я ещё тут! Зачем в меня? Это было подло. Даже слов нет. Ага. Так стра-а-ашно! Что это? Вспышка? Мда... Уничтожить? Только через мой раздолбанный танк! atanks-6.6/text/revenge.pt_BR.txt0000644000175000017500000000052212636021030015143 0ustar apoapoGrr! Vou esmagar você Você é um ser vil e desprezível Seu pai é um hamster! Sua mãe cheira a azedo! Maldito seja! Te pego na saída! Vou te pegar! SEU PORCO! Ei, cabeça de abóbora! Foi só um arranhãozinho! Je ne suis pas un poisson Te odeio, te odeio, te odeio! Eu vou voltar! Você vai pagar por isto! Vai se arrepender disto! atanks-6.6/text/ingame_ru.txt0000644000175000017500000000467312636021030014464 0ustar apoapoВыберите игроков Кол-во раундов Имя для игры или имя прошлой игры Загрузить игру Кампания ОК Назад Нужно хотя бы 2 танкиста! В игре могут участвовать самое большее 10 танкистов одновременно! Танкист Деньги Раунд Очки Нажмите F10, чтобы сохранить игру. Чтобы просмотреть список оружия, используйте стрелки вверх и вниз. Сохранённая игра Угол прицела: Сила выстрела: Команда Топливо Ветер: Назад в игру В главное меню Выйти, надоело! Пропустить игру ИИ Танкисты Завербовать нового Имя танкиста Цвет Тип танкиста Сгенерировать настройки Провёл сражений Выиграл Тип танка Уволить танкиста Новая версия игры уже доступна! Не удалось найти сохранённую игру с таким именем. Кол-во зарядов Не удалось сохранить игру. Выбираем цвета... Смотрим на Яндекс и определяем погоду... Рисуем ландшафт... Джедаи - игры победители, сторона светлая победу празднует! В игре победили Ситхи! Мву-ха-ха-ха-ха-ха-а-а-а! Победитель Ничья Игрок Очки Убил:Погиб Игрок Очки Быстрая игра компьютеров Ваше имя Танкист Человек Ноль Слабый ИИ Средний ИИ Сильный ИИ Терминатор Каждую игру заново Только один раз Обычный В старом стиле Большой Серый Танк Т-34 Ситх Нейтральный Джедай Назад в игру Главное меню Выйти, надоело! Пропустить игру ИИ Heavy Future UFO Spider Server version did not match client version. Server screen size does not match ours. Client has become disconnected from the server. The server is full or the game has not started. The server closed our connection. The game is finished. atanks-6.6/text/ingame_it.txt0000644000175000017500000000240312636021030014437 0ustar apoapoSeleziona i giocatori Round Nome del Nuovo Gioco o Carica Gioco Carica Gioco Campagna Okay Indietro Devi selezionare almeno due giocatori Puoi avere soltanto dieci giocatori Giocatori Soldi Round Score Premi F10 per salvare il gioco corrente. Usa le frecce su e giu' per scorrere attraverso gli item della lista. Gioco Salvato Angolo: Potenza: Team Carburante Vento: Return Menu Pricipale Esci Salta AI Giocatori Crea Nuovo Nome Colore Tipo Genera Pref Giocato Vinto Tipo di Tank Cancella questo Giocatore Una nuova versione e' pronta per il download. Non trovo il Gioco con questo nome. Qta. in inventario Salvataggio gioco fallito. Scegli i colori Rendering Cielo Rendering Panorama Vincitore: Jedi Vincitore: Sith Vincitore Draw Punteggio Giocatore Ucciso:Morto Punteggio Giocatori Accelerazione AI Tuo Nome senza nome Umano Sottodotato Mediocre Medio Elevato Mortale Per Gioco Only Once Normale Classico Big Grey T34 Sith Neutrale Jedi Return Menu Pricipale Esci Salta AI Pesante Futuro UFO Spider Versione Server non coincide con versione client. Dimensioni del video Server non coincide con la nostra. Client disconnesso dal server. Il server e' completo o il gioco non e' partito. Il server ha chiuso la nostra connessione. Il gioco e' finito. atanks-6.6/text/panic_it.txt0000644000175000017500000000024512636021030014273 0ustar apoapo%s WANTS ME DEAD! %s IS COMING FOR ME! HELP ME AGAINST %s! NO, %s, NO! %s ONLY AIMS AT ME! %s IS TAKING ME DOWN! %s IS RIPPING ME APART! NOW YOU SHOOT ME, %s, YEAH? atanks-6.6/text/revenge_it.txt0000644000175000017500000000107112636021030014632 0ustar apoapoGrr! Benedico la terra che attende il vostro cadavere Non siete degni neppure del mio disprezzo Vostro padre era un criceto! Tua madre puzza di fiori di barbabietola! Siate maledetti! Sarai al mio posto, la prossima volta! Ti prendero'! SEI UN TOPO DI FOGNA! Hey, testa di gomma! E' solo carne da cannone! Sono mica un pesce Ti mangio! Ritornero'! Soffrirai per questo! Questo lo rimpiangerai! Io sono morto... adesso perche' io? Quello era basso Sono... senza parole Oh, come sono sfigato! Io posso vedere la luce Oh pooh Mi prenderai solo passando sopra al mio tank atanks-6.6/text/weapons.pt_BR.txt0000644000175000017500000001362612636021030015175 0ustar apoapo*WEAPONS* Míssil Pequeno Produces a low impact explosion Míssil Médio Low yield, small area explosion Míssil Grande Medium yield, medium area explosion Small Nuke High yield, large area explosion Nuke Very high yield, huge explosion Death Head Massive, deadly explosion Small Spread 5 Small missiles in a single shot Medium Spread 5 Medium missiles in a single shot Large Spread 5 Large missiles in a single shot Super Spread 4 Small Nukes in a single shot Death Spread 3 Nukes in a single shot Armageddon 3 Death Heads in a single shot Chain Missile Fires a volly of three small missiles Chain Gun Fires a volly of five small missiles Jack Hammer Fires a volly of eight small missiles Shaped Charge High yield horizontal explosion. All of the energy is focused out to the sides, increasing the damage done but reducing the overall area of the explosion. Wide Boy Devastating horizontal explosion. All of the energy is focused out to the sides, increasing the damage done but reducing the overall area of the explosion. Cutter Horizontal explosion that will obliterate anything that gets in the way. All of the energy is focused out to the sides, increasing the damage done but reducing the overall area of the explosion in comparison to a similar sized uncontrolled blast. Small Roller Medium explosive which rolls downhill until it hits something Large Roller Large explosive which rolls downhill until it hits something Death Roller Huge explosive which rolls downhill until it hits something Small MIRV Drops a group of large missiles on the ground from above Armour Piercing A small, powerful shell that knocks out tanks Cluster Bomb Scatters medium yield bomblets on impact Super Cluster Scatters high yield bomblets on impact Funky Bomb Unpredictable and highly destructive Funky Death Unpredictable and extremely destructive Funky Bomblet Medium yield explosive warhead Funky Deathlet High yield explosive warhead Bomblet Medium yield explosive warhead Super Bomblet High yield explosive warhead Burrower Burrows back up to the surface before exploding, good against buried tanks. The Burrower is designed for below-ground use and suffers from high air-resistance. Penetrator Penetrates below ground before rising to the surface. The Penetrator will either explode on exit from the ground or on contact with buried objects. This missile is designed for burrowing and as a result suffers from high air-resistance. Small Napalm Bomb Scatters small quantities of intensely burning napalm on impact Medium Napalm Bomb Scatters intensely burning napalm on impact Large Napalm Bomb Covers the surrounding area with intensely burning napalm on impact Napalm Jelly Intensely burning chemical jelly Driller Vertical explosion that will do little damage, but create a deep hole in the ground. Tremor Produce a small earthquake on impact Shock Wave Produce a large earthquake on impact Tectonic Shift Produce a huge earthquake on impact Riot Bomb Destroy a small volume of dirt without damaging anything else Heavy Riot Bomb Destroy a large volume of dirt without damaging anything else Riot Charge Cuts through a cone of dirt directly in front of the gun Riot Blast Cuts through a large cone of dirt directly in front of the gun Dirt Ball Produce a small sphere of material to bury your opponents Large Dirt Ball Produce a large sphere of material to bury your opponents Super Dirt Ball Produce a huge ball of material to bury your opponents Small Dirt Spread Drop little piles of dirt on your enemies Cluster MIRV Releases a cluster of small missiles on its way down Per Cent Bomb Destroys half of the target's armour Reducer Lowers the explosive power of an enemy's missiles. Small Laser A 50kW laser beam. Medium Laser A 100kW laser beam Large Laser A powerful 200kW laser beam *NATURALS* Small Meteor A small chunk of rock from the skies Medium Meteor A medium chunk of rock from the skies Large Meteor A large chunk of rock from the skies Small Lightning Bolt A weak bolt of lightning. Medium Lightning Bolt A bolt of lightning Large Lightning Bolt A powerful bolt of lightning *ITEMS* Teleport Teleports the tank to a random location Swapper Swap places with another tank Mass Teleport Teleports all tanks on the screen Fan Change the wind strength and direction Vengeance A small self-destruct or auto-destruct device, if you've got to go, why not take someone with you? Dying Wrath A large self/auto-destruct device. Mutually Assured Destruction. Fatal Fury End it all in style Light Shield A small amount of protection from damage Medium Shield Protects against damage Heavy Shield A large amount of protection from damage Light Repulsor Shield Lightly repels enemy missiles Medium Repulsor Shield Repels enemy missiles Heavy Repulsor Shield Strongly repels enemy missiles Armour Plating Permanently add a small increase to the damage your tanks can take. Each additional purchase adds a slightly smaller amount to your tank's armour. Plasteel Plating Permanently increase the damage your tanks can take. Each additional purchase adds a slightly smaller amount to your tank's armour. Intensity Amplifier A small permanent increase to the damage done by your weapons. The efficiency decreases and therefore each additional purchase has a reduced affect. Violent Force Permanently increase the damage done by your weapons. The efficiency decreases and as a result each additional purchase provides a smaller increase. Slick Projectiles A Teflon coating for projectiles to reduce drag and the affect of the wind Dimpled Projectiles Small dimples in the skin of projectiles for massive reduction in drag Parachute Allows the tank to float gently to the ground Auto-repair kit Repairs the tank a little each turn. Each additional kit provides a slightly smaller increase to your armour. Fuel Allows the tank to move across level terran. Rocket Launches the tank into the air. SDI Missile Defense Offers some protection against incoming missiles. atanks-6.6/text/suicide_ru.txt0000644000175000017500000000151512636021030014641 0ustar apoapoОу-у-у-у-у... Я... э... не туда попал. Честно. Ой. А у танка документация есть? Наверное, за эту ручку не стоило дергать... Смотри, что ты со мной сделал!! Теперь я понял, какие повреждения от этого снаряда. Опять не так вставил, да что ж такое... Какой я умны-ы-ы-ый... В кавычках. Блин! Видел? Вот это и с тобой будет, когда попаду! Блин, сколько можно? Испытывал снаряд, ничего такого... А, вот для чего эта кнопка... Где тут медики? Преле-е-естно... Надо было в другую сторону. Запомним. atanks-6.6/text/ingame_fr.txt0000644000175000017500000000215712636021030014440 0ustar apoapoSelect Players Rounds New Game Name or Load Game Load Game Campaign Okay Back You must select at least 2 players You can only have up to 10 players Player Money Round Score Press F10 to save your current game. Use the up and down arrows to scroll through the item list. Saved game Angle: Power: Team Fuel Wind: Return Main Menu Quit Skip AI Players Create New Name Colour Type Generate Pref Played Won Tank Type Delete This Player A new version is ready for download. Could not find a game by that name. Qty. in inventory Failed to save game. Choosing colours Rendering Sky Rendering Landscape Winner: Jedi Winner: Sith Winner Draw Player Scores Kill:Die Player Scores Accelerated AI Your Name unnamed Human Useless Guesser Range Targetter Deadly Per Game Only Once Normal Classic Big Grey T34 Sith Neutral Jedi Return Main Menu Quit Skip AI Heavy Future UFO Spider Server version did not match client version. Server screen size does not match ours. Client has become disconnected from the server. The server is full or the game has not started. The server closed our connection. The game is finished. atanks-6.6/text/Help_it.txt0000644000175000017500000001547612636021030014105 0ustar apoapoAtomic Tanks : istruzioni Sommario : Istruzioni di base Obiettivi Iniziare un Gioco Come giocare Personalizzazione del gioco les caractristiques gnrales Modificare le caratteristiche fisiche Modificare il meteo del gioco Modificare le finaze Gestire e Modificare i giocatori Caratteristiche Grafiche ----------------------------- Istruzioni di base : Obiettivi : Obiettivo Primario: Distruggere tutti i tank nel panorama! Obiettivo Secondario: Upgradare il vostro tank con le migliori armi ed equipaggiamenti usando il denaro preso dai tank uccisi. Partenza del Gioco: 1. Cliccare 'Play' sul main menu. 2. Sul menu 'Characters', settare la lunghezza dei round, scegliere i giocatori (10 max.) e cliccare `Ok'. Note : I giocatori Human hanno dei cerchi viola, mentre i giocatori computer hanno delle barre verticali verdi; quante piu' barre sono indicate, tanto piu' bravi sono i giocatori. 3. Sul menu 'Weapon', pagate le armi per il vostro tank e cliccate `Done' per iniziare a giocare. Giocare un Gioco: 1. Premere Tab per selezionare un'arma. 2. Usare i tasti con le frecce sinistra/destra per puntare le armi (chiamato Angolo). 3. Usare i tasti con le frecce su/giu' per settare il range delle armi (chiamato Potenza). Voi potete anche controllare la direzione e la forza del vento nella parte superiore dello schermo, poiche' essi possono avere effetto sull'Angolo e la Potenza di tiro. TIP: Premere CTRL mentre si usa un tasto freccia per cambiare Angolo o Potenza piu' lentamente. 4. Premere la Barra Spaziatrice per far fuoco con le armi. 5. Se avete del Carburante, voi potete muovere il vostro tank usando i tasti < oppure >. Il Menu delle Armi riappare dopo ogni round. Usare il denaro guadagnato durante il round per upgradare il vostro tank, quindi cliccare 'Done' per iniziare il round. Il vincitore del gioco e' quello che vince piu' round. Personnalizzazione del gioco (Conferma giocatori) : Voi avete la possibilita' di personalizzare Atomic Tanks per rendere il gioco piu' interessante. Quanto segue vi indica come procedere. Modifica delle caratteristiche generali : 1. Cliccare 'Opzions' nel menu principale per visualizzare le Opzioni del gioco. 2. Regolare il 'Tech Level' delle armi per determinare le armi e gli equipaggiamenti disponibili nello schermo 'armi' ; i livelli piu' alti rendono disponibili una maggior variet di armi. 3. Le Opzioni 'Landscape' permettono di disporre d'altri tipi d'ambiente ad ogni round. 4. Il 'Turn Order' determina se l'ordine del giocatore per round dato dal punteggio piu' alto (High+), dal punteggio piu' basso (Low+), o in ordine aleatorio. 5. Selezionare 'Skip AI-only Play' permette all'Intelligenza Artificiale (IA) di continuare a giocare anche quando tutti i giocatori umani sono stati eliminati; mettere ad on 'Skip AI-only Play' per accellerare il gioco. 6. Cliccare 'Back' per applicare le modifiche al prossimo gioco. Modificare le caratteristiche fisiche : 1. Cliccare 'Opzions' nel menu principal, poi 'Physics' nel menu 'Opzions'. 2. Aumentate o diminuute la forza di gravita'. Una gravita' elevata riduce la portata delle armi balitiche (missili). 3. La viscosita' influenza lo sfregamento subito dai missili nell'aria. Una viscosita' importante riduce la portata di tutti i proietti. 4. Settare 'Land Slide' determina se il fatto di toccare il suolo causa uno scivolamento del terreno. 5. Cliccare 'Back' due volte per applicare le modifiche al prossimo gioco. Modificare il meteo del gioco 1. Cliccare 'Opzions' nel menu principale, poi 'Weather' nel menu 'Opzions'. 2. Settare 'Meteor Showers' determina la probabilita' e la potenza di pioggia di meteoriti che appariranno aleatoriamente nel corso del gioco. 3. Settare 'Lightning' fa lo stesso per quello che concerne i fulmini. 4. Settare 'Fog' permette di limitare la visibilita' tra giocatori. NOTA : Questa caratteristica e' ancora in fase di sviluppo. 5. Settare 'Max Wind Strength' determina la forza del vento che soffia durante il gioco. 6. Settare 'Wind Variation' permette di fissare i limiti di variazione del vento durante il gioco. 7. Doppio clic sul tasto 'Back' per applicare le modifiche al prossimo gioco. Modificare le finanze NOTA: Modificare le finanze puo' fortemente variare lo svolgimento del gioco. 1. Cliccare 'Opzions' nel menu principale, poi 'Money' nel menu 'Opzions'. 2. Settare 'Starting Money' serve a fissare il montante che ogni giocatore (computer o umano) dispone all'inizio del gioco per comprare le sue armi. 4. Settare 'Interest Rate' per determinare quale rateo e' applicato al denaro salvato ad ogni round. 5. Cambiare 'Round Win Bonus' determina il montante guadagnato ad ogni vittoria. 6. Settare 'Damage Bounty' determina il montante guadagnato ad ogni distruzione inflitta all'avversario. 7. Settare 'Self-Damage Penalty' determina il montante perso ad ogni distruzione che voi infliggete a voi stessi. 8. Cambiare 'Tank Destruction Bonus' e' il montante guadagnato ad ogni distruzione di tank avversario. 9. Settare 'Tank Self-Destruction Penalty' e' il montante perso ad ogni distruzione di uno dei vostri tank da parte di voi stessi. 10. Cliccare 'Back' per applicare le modifiche al prossimo gioco. Gestire e Modificare i giocatori 1. Cliccare 'Players' nel menu principal per accedere a quanto segue. 2. Voi potete... -creare un nuovo giocatore : cliccare 'Create New', poi completare i passi da 3 a 5. -modificare un giocatore : cliccare il suo nome, poi completare i passi seguenti. -cancellare un giocatore : cliccare il suo nome, poi cliccare 'Delete This Player' e confermare la cancellazione. NOTA: Voi non potete recuperare un giocatore cancellato. 3. 'Change Name' serve a rinominare un giocatore (ma va' ?). 4. Selezionare un colore nella palette per assegnarla al giocatore. 5. Settare 'Type' per determinare se il giocatore e' umano o gestito dall'IA (programma). I livelli possibili per i giocatori sono : -sotto-dotato (Useless) : (il piu' basso !) : raramente uccide qualcuno, a parte se stesso -mediocre (Guesser) : puo' colpire fortunosamente qualcuno ! -medio (Range Finder) : colpisce il suo obiettivo per meta' delle volte -elevato (Targetter) : colpisce il suo obiettivo la maggior parte delle volte -mortale (Deadly) : (il piu' alto !) colpisce il suo obiettivo quasi sempre, come Robin Hood Caratteristiche Grafiche: NOTE: Le modifiche possono rallentare la partenza del gioco o del cambio di round. 1. Cliccare 'Options' nel menu principale, poi 'Grafica' nel menu 'Options'. 2. 'Dithering' : Dithering ON migliora la grafica. 3. 'Detailed Land' : migliora il suolo. 4. 'Detailed Sky' : migliora i dettagli dello sfondo. 5. Doppio clic sul tasto 'Back' per applicare le modifiche al prossimo gioco. -------------------------------------- Se non potete trovare delle risposte alle vostre domande, consultate il sito (in Inglese) http://atanks.sourceforge.net, o contattatemi per mail (in Inglese) : jessefrgsmith@yahoo.ca atanks-6.6/text/kamikaze.txt0000644000175000017500000000036512636021030014304 0ustar apoapoBANZAAAAAIIII!!! GERONIMO!!! TIIIIIIMBEEEEEER!!! YOU'LL NEVER GET ME! HA HA HA!!! Fasten your seat belt, 'cause Kansas is going bye-bye! Never send a human to do a machine's job. BOOM CHICKA WAH-WAH!!! Here we go, here we go, here we go, NOW!!! atanks-6.6/text/Help_ru.txt0000644000175000017500000003341312636021030014106 0ustar apoapoAtomic Tanks: Описание Оглавление: Базовый инструктаж Задачи Как начать игру Как играть Настройки в игре Изменяем базовые характеристики Изменяем физику игры Изменяем настройки погоды Изменяем экономику игры Изменяем настройки графики Редактируем игроков ----------------------------- Базовый инструктаж Задачи: Первичное задание: уничтожить все вражеские танки на поле боя, уцелев самому! Вторичное задание: заработать на этом побольше денег и усилить свой танк, закупившись оружием и дополнительным снаряжением. Как начать игру: 1. Щёлкнуть по кнопке "Играть" в главном меню; 2. В меню "игроки" выставить нужное количество раундов, выбрать танки для игры (до 10 боевых единиц включительно) и щёлкнуть по кнопке "ОК". 3. Откроется меню "Вооружение". Закупитесь оружием перед первым раундом и нажмите "Готово", чтобы начать игру! На заметку: танк, управляемый игроком, отмечен фиолетовым кружком. Танки под управлением компьютера отмечены зелёными полосами. Чем больше зелёных полос, тем сложнее будет победить этот танк. Как играть: 1. Чтобы сменить тип оружия, которым вы будете стрелять, нажмите Z или C (в русской раскладке "Я" и "С"). 2. Стрелки влево-вправо изменяют угол стрельбы. Стрелки вверх-вниз меняют силу выстрела. Не забывайте следить за мощностью ветра на поле боя! Указатель силы ветра находится в верху экрана (зелёная или красная полоса под надписью "Ветер"). Чем сильнее полоса вытянута влево или вправо, тем сильнее ветер будет сносить ваши ракеты в сторону! На заметку: используйте Ctrl+(клавиши-стрелки) для тонкой настройки силы и угла удара. 3. Клавиши "<" и ">" ("Б" и "Ю") позволяют танку передвигаться влево и вправо, если у вас есть достаточно топлива. 4. Чтобы выстрелить, нажмите Пробел. После каждого раунда появляется меню "Вооружение". В нём вы можете потратить деньги, заработанные в бою, на оружие или снаряжение. Для этого курсором щёлкните на те товары, которые хотите купить. Правая кнопка мыши продаёт уже купленное или отменяет покупку. После того, как вы закупились оружием, нажмите "Готово", чтобы начать следующий раунд! В игре побеждает тот, кто выиграл больше всего раундов. Настройки в игре: Кнопка "Опции", как вы уже догадались, открывает меню настроек игры. Изменяем базовые характеристики: 1. Пункты "Уровень оружия" и "Уровень снаряжения" определяют, насколько мощное оружие или снаряжение может приобрести игрок или компьютер перед каждым новым раундом. Полезно для тех, кто считает атомные ракеты нечестными. 2. Настройки ландшафта определяют, на какой местности будет проводиться игра. 3. Настройки порядка хода определяют, кто будет стрелять раньше - игроки с большим количеством очков (Сильные +), игроки с меньшим количеством очков (Слабые +), случайный танк (Случайно) или все танки одновременно (Все сразу). 4. Настройка "Пропускать игру компьютеров" позволяет пропустить перестрелку танков компьютера, если на поле боя не осталось танков игрока. Если эта опция выключена, танки будут продолжать перестрелку как обычно в любом случае. 5. Кнопка "Назад" сохраняет изменения и открывает главное меню. Изменяем физику игры: Чтобы изменить настройки физики в игре, щёлкните по кнопке "Опции" и выберите пункт "Физика". 1. Пункт "Гравитация" изменяет силу тяжести в игре. Эта настройка влияет на все снаряды и ракеты, которыми вооружены танки. 2. Пункт "Сила трения" определяет трение воздуха о снаряды. Чем выше этот параметр, тем труднее будут лететь в воздухе ракеты и снаряды. 3. Пункт "Падение земли" определяет, будет ли опускаться ландшафт, если под ним образовалась воронка, и как именно он будет опускаться. Изменяем настройки погоды 1. Опция "Метеоритный дождь" определяет, будут ли во время раунда падать на землю метеориты и другие космические объекты, и смогут ли они уничтожить треть ландшафта с пары попаданий. 2. Опция "Молнии" определяет вероятность появления молний, которые будут бить по ландшафту, и силу ударов молнии. 3. Опция "Туман" ограничивает пространство, на котором игрок может что-либо внятно рассмотреть. ПРЕДУПРЕЖДЕНИЕ: опция "Туман" находится в разработке. 4. Настройка "Макс. сила ветра" определяет, насколько сильно на поле боя будет дуть ветер. 5. Настройка "Изменения силы ветра" определяет, насколько сильно ветер будет меняться каждый ход. Изменяем экономику игры ВНИМАНИЕ: изменение этих настроек может СИЛЬНО повлиять на ход игры. 1. Опция "Начальные деньги" определяет, сколько денег у вас будет перед началом первого раунда игры. 2. Опция "Банковский процент" определяет, как будет увеличиваться ваша сумма денег на счету. Помимо денег за победу и успешные попадания, вы будете получать дополнительные проценты с суммы на вашем счету каждый раунд. Пример: у вас на счету осталось $10000, банковский процент выставлен на значение "1.25". Даже если вы проиграли следующий раунд, сумма на вашем счету увеличится на 25% и составит $12500 (10000 * 1.25). 3. Опция "Бонус за победу" определяет награду за победу в раунде. 4. Опция "Бонус за попадание" определяет размер награды за каждую единицу повреждений, нанесённых любому танку оппонента. 5. Опция "Штраф за попадание в себя" определяет сумму, которая будет списываться с вашего счёта за каждое очко повреждения, которое вы нанесли самому себе (к примеру, попав в свой танк ракетой). 6. Опция "Бонус за уничтожение" определяет размер награды за каждый уничтоженный вражеский танк. 7. Опция "Штраф за самоуничтожение" определяет размер штрафа за уничтожение собственного танка. 8. Опция "Коэфф. продажи снаряжения" определяет, по какой цене можно будет продать уже купленные боеприпасы или улучшения. Изменяем настройки графики ВНИМАНИЕ: эти настройки могут повлиять на скорость загрузки игры и смены раунда. Опция "Сглаживание" улучшает внешний вид игры. Настройки "Детализированное небо", "Детализированный ландшафт" и другие отвечают за внешний вид игры во время раунда. Настройка "Цветовая тема" определяет стиль прорисовки сражения. Опция "Курсор в игре" позволяет заменить традиционный курсор вашей операционной системы собственным курсором игры. Опция "Скорость игры" отвечает за то, как быстро будут стрелять танки, летать снаряды и т.д. Опция "Собственный фон" позволяет использовать в игре фон, установленный игроком. Фон должен быть в формате BMP (точечный рисунок) и иметь тот же размер, что и окно игры (по умолчанию 800*600 пикселей). Картинку нужно поместить в папку, в которой находится файл "atanks-config" (по умолчанию это папка ".atanks"). Редактируем игроков Нажмите на кнопку "Игроки" в главном меню, чтобы открыть соответствующее меню. В нём можно: - создавать новых игроков: нажмите "Создать нового"; - редактировать игроков: щёлкните по имени нужного игрока; - удалять игроков: щёлкните по имени нужного игрока и выберите пункт "Удалить игрока". ВНИМАНИЕ: удалённого игрока восстановить нельзя! Цените своих бойцов. При создании или редактировании данных об игроке открывается его личное меню. Чтобы переименовать игрока, щёлкните по полю с его именем, внесите нужные изменения и нажмите "Enter". Чтобы изменить цвет, присвоенный игроку, щёлкните по нужному оттенку в радужной полоске. Опция "Тип" определяет, кто управляет этим игроком (сам игрок или компьютер), а также поведение и интеллект игрока-компьютера. Типы искусственного интеллекта: -Ноль: самый слабый ИИ. Вряд ли попадёт в кого-нибудь, кроме себя. -Слабый: ИИ начальной стадии. При достаточном везении может быстро уничтожить вражеский танк. -Средний: ИИ среднего уровня. С этим врагом уже стоит считаться. -Сильный: Улучшенный ИИ. Способен попадать во врага почти всегда. -Терминатор: Этот уровень ИИ был специально создан для уничтожения вышедших из-под контроля танков с ИИ. Фиг сбежишь. -------------------------------------- Не можете найти ответа на свой вопрос? Посетите http://atanks.sourceforge.net (английский) или отправьте e-mail по адресу: jessefrgsmith@yahoo.ca (английский) или myothehedgefox@gmail.com (русский) atanks-6.6/text/kamikaze.pt_BR.txt0000644000175000017500000000036512636021030015311 0ustar apoapoBANZAAAAAIIII!!! GERONIMO!!! TIIIIIIMBEEEEEER!!! YOU'LL NEVER GET ME! HA HA HA!!! Fasten your seat belt, 'cause Kansas is going bye-bye! Never send a human to do a machine's job. BOOM CHICKA WAH-WAH!!! Here we go, here we go, here we go, NOW!!! atanks-6.6/text/panic_de.txt0000644000175000017500000000027412636021030014251 0ustar apoapo%s WILL MICH TOT SEHEN! %s IST HINTER MIR HER! HELFT MIR GEGEN %s! NEIN, %s, OH NEIN! %s ZIELT NUR AUF MICH! %s NIMMT MICH AUSEINANDER! %s ZERFETZT MICH GERADE! JETZT SCHIESST DU, %s, JA? atanks-6.6/text/kamikaze_de.txt0000644000175000017500000000037012636021030014750 0ustar apoapoBANZAAAAAIIII!!! GERONIMO!!! TIIIIIIMBEEEEEER!!! DU KRIEGST MICH NIE! HA HA HA!!! Schnall dich an, denn Kansas geht bye bye! Schicke niemals einen Menschen für einen Maschinen-Job. BOOM CHICKA WAH-WAH!!! Here we go, here we go, here we go, NOW!!! atanks-6.6/text/instr_sk.txt0000644000175000017500000000265212636021030014345 0ustar apoapoBasic Instructions Objectives Primary Objective: Destroy all other tanks on the landscape! Secondary Objective: Upgrade your own tank with better weapons and equipment using money earned from tank kills. Starting a Game: 1. Click 'Play' on the main menu. 2. On the Characters menu, set game length in rounds, choose players (10 max.) and click `Okay'. Human players have purple circles, while computer players have green skill bars; more skill bars indicate better computer players. 3. On the Weapons menu, buy weapons for your tank and click `Done' to start the game. Playing a Game: 1. Press Tab to select a weapon. 2. Use the left/right arrow keys to aim the weapon (called Angle). 3. Use the up/down keys to set the range of the weapon (called Power). You should also check the wind direction and strength at the top of the screen, as these may affect the Angle and Power required to hit your opponent. TIP: Press CTRL while using an arrow key to change Angle or Power more slowly. 4. Press Space to fire the weapon. 5. If you have bought fuel, you may move your tank using the < and > keys. The weapons menu reappears after each round. Use money earned during the round to upgrade your tank, then click 'Done' to begin the next round. The winner of the game is the player who wins the most rounds. More Information There are more detailed instructions about using the menu options in the file "Help.txt" which comes with this distribution. atanks-6.6/text/gloat_sk.txt0000644000175000017500000000042112636021030014304 0ustar apoapoHa, ha Poklaknes predo mnou Tu mas! Som prilis sexy na tento tank Buhehe To musi boliet Cucak! rozotriet Je mi luto tej potravy Fuuu To nebolo pekne Asta la vista, bejby! Uctievaj ma Oslovuj ma Vasa Vysost Som skvely vo vsetkom, na co siahnem Vela stastia nabuduce. April! atanks-6.6/text/weapons_fr.txt0000644000175000017500000001370213006377361014667 0ustar apoapo*WEAPONS* Small Missile Produces a low impact explosion Medium Missile Low yield, small area explosion Large Missile Medium yield, medium area explosion Small Nuke High yield, large area explosion Nuke Very high yield, huge explosion Death Head Massive, deadly explosion Small Spread 5 Small missiles in a single shot Medium Spread 5 Medium missiles in a single shot Large Spread 5 Large missiles in a single shot Super Spread 4 Small Nukes in a single shot Death Spread 3 Nukes in a single shot Armageddon 3 Death Heads in a single shot Chain Missile Fires a volly of three small missiles Chain Gun Fires a volly of five small missiles Jack Hammer Fires a volly of eight small missiles Shaped Charge High yield horizontal explosion. All of the energy is focused out to the sides, increasing the damage done but reducing the overall area of the explosion. Wide Boy Devastating horizontal explosion. All of the energy is focused out to the sides, increasing the damage done but reducing the overall area of the explosion. Cutter Horizontal explosion that will obliterate anything that gets in the way. All of the energy is focused out to the sides, increasing the damage done but reducing the overall area of the explosion in comparison to a similar sized uncontrolled blast. Small Roller Medium explosive which rolls downhill until it hits something Large Roller Large explosive which rolls downhill until it hits something Death Roller Huge explosive which rolls downhill until it hits something Small MIRV Drops a group of large missiles on the ground from above Armour Piercing A small, powerful shell that knocks out tanks Cluster Bomb Scatters medium yield bomblets on impact Super Cluster Scatters high yield bomblets on impact Funky Bomb Unpredictable and highly destructive Funky Death Unpredictable and extremely destructive Funky Bomblet Medium yield explosive warhead Funky Deathlet High yield explosive warhead Bomblet Medium yield explosive warhead Super Bomblet High yield explosive warhead Burrower Burrows back up to the surface before exploding, good against buried tanks. The Burrower is designed for below-ground use and suffers from high air-resistance. Penetrator Penetrates below ground before rising to the surface. The Penetrator will either explode on exit from the ground or on contact with buried objects. This missile is designed for burrowing and as a result suffers from high air-resistance. Small Napalm Bomb Scatters small quantities of intensely burning napalm on impact Medium Napalm Bomb Scatters intensely burning napalm on impact Large Napalm Bomb Covers the surrounding area with intensely burning napalm on impact Napalm Jelly Intensely burning chemical jelly Driller Vertical explosion that will do little damage, but create a deep hole in the ground. Tremor Produce a small earthquake on impact Shock Wave Produce a large earthquake on impact Tectonic Shift Produce a huge earthquake on impact Riot Bomb Destroy a small volume of dirt without damaging anything else Heavy Riot Bomb Destroy a large volume of dirt without damaging anything else Riot Charge Cuts through a cone of dirt directly in front of the gun Riot Blast Cuts through a large cone of dirt directly in front of the gun Dirt Ball Produce a small sphere of material to bury your opponents Large Dirt Ball Produce a large sphere of material to bury your opponents Super Dirt Ball Produce a huge ball of material to bury your opponents Small Dirt Spread Drop little piles of dirt on your enemies Cluster MIRV Releases a cluster of small missiles on its way down Per Cent Bomb Destroys half of the target's armour Reducer Lowers the explosive power of an enemy's missiles. Theft Bomb Steals 5k from opponent on impact. Small Laser A 50kW laser beam. Medium Laser A 100kW laser beam Large Laser A powerful 200kW laser beam *NATURALS* Small Meteor A small chunk of rock from the skies Medium Meteor A medium chunk of rock from the skies Large Meteor A large chunk of rock from the skies Small Lightning Bolt A weak bolt of lightning. Medium Lightning Bolt A bolt of lightning Large Lightning Bolt A powerful bolt of lightning *ITEMS* Teleport Teleports the tank to a random location Swapper Swap places with another tank Mass Teleport Teleports all tanks on the screen Fan Change the wind strength and direction Vengeance A small self-destruct or auto-destruct device, if you've got to go, why not take someone with you? Dying Wrath A large self/auto-destruct device. Mutually Assured Destruction. Fatal Fury End it all in style Light Shield A small amount of protection from damage Medium Shield Protects against damage Heavy Shield A large amount of protection from damage Light Repulsor Shield Lightly repels enemy missiles Medium Repulsor Shield Repels enemy missiles Heavy Repulsor Shield Strongly repels enemy missiles Armour Plating Permanently add a small increase to the damage your tanks can take. Each additional purchase adds a slightly smaller amount to your tank's armour. Plasteel Plating Permanently increase the damage your tanks can take. Each additional purchase adds a slightly smaller amount to your tank's armour. Intensity Amplifier A small permanent increase to the damage done by your weapons. The efficiency decreases and therefore each additional purchase has a reduced affect. Violent Force Permanently increase the damage done by your weapons. The efficiency decreases and as a result each additional purchase provides a smaller increase. Slick Projectiles A Teflon coating for projectiles to reduce drag and the affect of the wind Dimpled Projectiles Small dimples in the skin of projectiles for massive reduction in drag Parachute Allows the tank to float gently to the ground Auto-repair kit Repairs the tank a little each turn. Each additional kit provides a slightly smaller increase to your armour. Fuel Allows the tank to move across level terran. Rocket Launches the tank into the air. SDI Missile Defense Offers some protection against incoming missiles. atanks-6.6/text/ingame.pt_BR.txt0000644000175000017500000000230013006377361014761 0ustar apoapoEscolher Jogadores Voltas Nome do Novo Jogo ou Carregar Jogo Carregar Jogo Campanha Ok Voltar Deve escolher pelos menos 2 jogadores You can only have up to 10 players Jogador Dinheiro Volta Pontuação Carregue em F10 para gravar o jogo atual Utilize as teclas subir e descer para navegar pela lista. Jogo gravado Ângulo: Força: Equipa Gasóleo Vento: Voltar Menu Principal Saír Saltar IA Jogadores Criar Novo Nome Cor Tipo Generate Pref Jogado Ganho Tipo de Tanque Apagar Este Jogador A new version is ready for download. Could not find a game by that name. Quantia no inventário Erro ao gravar o jogo. Escolha de Cores Desenho do Céu Desenho das Paisagem Ganhou: Jedi Ganhou: Sith Ganhou Igualidade Pontuações Jogadores Ganhos:Percas Puntuações IA accelerada O seu Nome semNome Human Useless Guesser Range Targetter Mortal Por Jogo Only Once Normal Clássico Big Grey T34 Sith Neutral Jedi Voltar Menu Principal Saír Saltar IA Pesado Futuro UFO Aranha A versão do servidor é diferente da sua. O tamanho do ecrã do servidor é diferente do seu. O cliente foi desligado do servidor. O servidor está cheio ou o jogo não começou. O servidor fechou a ligação. O jogo acabou. atanks-6.6/text/gloat_ru.txt0000644000175000017500000000132012636021030014314 0ustar apoapoХа, ха, ха. Склонись передо мной!!! Вот тебе получай! Надо взять танк получше. Я слишком хорош для своего. Мухахаха! Должно быть, было больно. Салага! В яблочко!! Мне его даже жаль... Ы! Эт надо отметить... Мог бы и получше попасть, к слову... До следующего раунда! Ну и кто теперь царь горы? Зови меня просто: мой Генерал. Мухахаха! Сегодня явно мой день. Прикупи оружие получше. Если деньги будут... Зажигаем! atanks-6.6/text/weapons_de.txt0000644000175000017500000001553413006377361014655 0ustar apoapo*WEAPONS* Kleine Rakete Kleine Explosion beim Einschlag. Mittlere Rakete Kleine Wirkung, kleinflächige Explosion. Große Rakete Mittlere Wirkung, mittelflächige Explosion. Kleine Atombombe Große Wirkung, großflächige Explosion. Atombombe Sehr große Wirkung, riesige Explosion. Totenkopf Massive, tödliche Explosion. Kleiner Streuer 5 Kleine Raketen mit einem Schuss. Mittlerer Streuer 5 Mittlere Raketen mit einem Schuss. Großer Streuer 5 Große Raketen mit einem Schuss. Super Streuer 4 Kleine Atombomben mit einem Schuss. Todesstreuer 3 Atombomben mit einem Schuss. Armageddon 3 Totenköpfe mit einem Schuss. Kleine Raketenkette Feuert drei kleine Raketen nacheinander ab. Raketenkette Feuert fünf kleine Raketen nacheinander ab. Jack Hammer Feuert acht kleine Raketen nacheinander ab. Shaped Charge Hoch wirksame horizontale Explosion. Die gesamte Energie ist zu den Seiten fokusiert und erhöht den Schaden und verdampft die gesamte Umgebung im Bereich der Explosion. Wide Boy Verheerende horizontale Explosion. Die gesamte Energie ist zu den Seiten fokusiert und erhöht den Schaden und verdampft die gesamte Umgebung im Bereich der Explosion. Cutter Horizontale Explosion die alles auslöscht, was in ihren Weg kommt. Die gesamte Energie ist zu den Seiten fokusiert und erhöht den Schaden und verdampft die gesamte Umgebung im Bereich der Explosion, vergleichbar mit einer ebensogrßen unkontrollierten Sprengung. Kleiner Roller Mittel explosiver Sprengsatz, der den Berg hinunter rollt bis er etwas trifft. Großer Roller Großer explosiver Sprengsatz, der den Berg hinunter rollt bis er etwas trifft. Todesroller Riesiger explosiver Sprengsatz, der den Berg hinunter rollt bis er etwas trifft. Kleiner MIRV Wirft eine Gruppe großer Raketen von oben auf das Zielgebiet. Rüstungsknacker Eine kleine, wirksame Granatedie die Panzer zerstören kann. Cluster Bombe Streut einen mittelwirksamen Bombentepich, der beim Aufschlag explodiert. Super Cluster Streut einen hochwirksamen Bombentepich, der beim Aufschlag explodiert. Funky Bombe Unberechenbar und hoch zerstörerisch. Funky Tod Unberechenbar und extrem zerstörerisch. Funky Bombenteppich Mittel wirksamer explosiver Sprengkopf. Funky Todesteppich Hoch wirksamer explosiver Sprengkopf. Bombenteppich Mittel wirksamer explosiver Sprengkopf. Super Bombenteppich Hoch wirksamer explosiver Sprengkopf. Erdfresser Bohrt sich zurück zur Oberfläche bevor er explodiert. Gut gegen unterirdische Panzer. Der Erdfresser ist für unterirdische Einsätze entwickelt und leidet unter hohem Luftwiderstand. Penetrator Bohrt sich unter die Oberfläche bevor er wieder zur Oberfläche kommt. The Penetrator explodiert entweder beim erreichen der Oberfläche oder bei Kontakt mit einem verschütteten Objekt. Diese Rakete ist für unterirdische Einsätze entwickelt und leidet unter hohem Luftwiderstand. Kleine Napalmbombe Streut beim Einschlag kleine Mengen intensiv brennenden Napalms. Mittlere Napalmbombe Streut beim Einschlag intensiv brennendes Napalm. Große Napalmbombe Überzieht die Umgebung beim Einschlag mit intensiv brennendem Napalm. Napalmgel Intensiv brennendes chemisches Gel. Bohrer Vertikale Explosion, die kleinen Schaden anrichtet, aber ein tiefes Loch in die Oberfläche macht. Tremor Erzeugt beim Einschlag ein kleines Erdbeben. Schockwelle Erzeugt beim Einschlag ein großes Erdbeben. Tektonische Bombe Erzeugt beim Einschlag ein riesiges Erdbeben. Rebellenbombe Zerstört eine kleine Menge Erde ohne etwas anderes zu zerstören. Große Rebellenbombe Zerstört eine große Menge Erde ohne etwas anderes zu zerstören. Kleiner Unruhestifter Schneidet einen Kegel aus dem Untergrund, direkt vor der Mündung. Großer Unruhestifter Schneidet einen großen Kegel aus dem Untergrund, direkt vor der Mündung. Dreckball Erzeugt einen kleinen Hügel um den Gegner zu verschütten. Großer Dreckball Erzeugt einen großen Hügel um den Gegner zu verschütten. Super Dreckball Erzeugt einen riesen Hügel um den Gegner zu verschütten. Kleiner Dreckball Drop little piles of dirt on your enemies Cluster MIRV Wirft eine Gruppe kleiner Raketen von oben auf das Zielgebiet. Prozent Bombe Zerstört die Hälfte der gegnerischen Panzerung. Reduzierer Vermindert die Kraft der gegnerischen Waffen um ein Drittel. Diebstahlbombe Stiehlt dem Gegner 5k beim Einschlag. Kleiner Laser Ein 50kW Laserstrahl. Mittlerer Laser Ein 100kW Laserstrahl. Großer Laser Ein kraftvoller 200kW Laserstrahl. *NATURALS* Kleiner Meteor Ein kleiner Felsbrocken vom Himmel. Mittlerer Meteor Ein mittlerer Felsbrocken vom Himmel. Großer Meteor Ein großer Felsbrocken vom Himmel. Kleiner Blitz Ein schwacher Blitz. Mittlerer Blitz Ein Blitz. Großer Blitz - Kugelbllitz Ein starker Blitz. *ITEMS* Teleport Teleportiert den Panzer an einen zufälligen Ort. Tausch Tauscht mit einem anderen Panzer den Platz. Massenteleportation Teleportiert alle Panzer auf dem Bildschirm. Ventilator Ändert Windstärke und -richtung. Vengeance Ein kleiner Selbstzerstörer. Wenn Du gehen musst, warum nicht noch jemanden mitnehmen? Todeswut Ein großer Selbstzerstörer. Gleichgewicht des Schreckens. Tödliche Raserei Beendet jedes Laben. Schwaches Schild Ein kleiner Schutz. Mittleres Schild Schutz gegen Schaden. Schweres Schild EIn starker Schutz. Kleines Kraftfeld Lässt feindliche Raketen leicht abprallen. Mittleres Kraftfeld Lässt feindliche Raketen abprallen. Starkes Kraftfeld Lässt feindliche Raketen stark abprallen. Verstärkte Rüstung Erhöht die Treffer, die Dein Panzer einstecken kann ein wenig. Jeder weitere Kauf verstärkt die Rüstung Deines Panzers ein wenig. Plastahl Rüstung Erhöht die Treffer, die Dein Panzer einstecken kann ein wenig. Jeder weitere Kauf verstärkt die Rüstung Deines Panzers ein wenig. Intensiver Verstärker Eine kleine permanente Erhöhung des Schadens, den Deine Waffe anrichtet. Mit jedem Kauf zeigt der Verstärker weniger Wirkung, so dass weiter Käufe weniger zusätzlichen Schaden bringen. Brutaler Verstärker Eine permanente Erhöhung des Schadens, den Deine Waffe anrichtet. Mit jedem Kauf zeigt der Verstärker weniger Wirkung, so dass weiter Käufe weniger zusätzlichen Schaden bringen. Glatte Projektile Eine Teflonbeschichtung reduziert den Luftwiderstand und den Effekt des Windes. Genoppte Projektile Kleine Noppen auf der Oberfläche der Projektile sorgen für eine massive Reduzierung des Luftwiderstandes. Fallschirm Erlaubt es dem Panzer sanft auf dem Boden zu landen. Reparatursatz Repariert den Panzer jede Runde ein wenig. Jeder weitere Reparatursatz unterstützt die Reparatur ein bisschen weniger. Benzin Erlaubt es dem Panzer, sich auf ebenem Gelände zu bewegen. Rakete Schießt den Panzer in die Luft. SDI Missile Defense System Bietet etwas Schutz gegen ankommende Geschosse. Weiter Käufe erhöhen die Reichweite des SDI Systems. Es besteht eine Chance von 1% dass ein SDI Laser bei Gebrauch ausbrennt. atanks-6.6/text/suicide.txt0000644000175000017500000000051312636021030014130 0ustar apoapoOooo that hurt! I, ah, meant to do that Oops I hate myself Look what you made me do! Now that is shooting yourself in the foot This doesn't feel right I am so smart, s-m-r-t D-OH! Next time, it'll be you! Gosh darn it al to heck That was a practice shot What's this red button do? Medic! Now that was brillant What was I thinking? atanks-6.6/text/revenge_de.txt0000644000175000017500000000074212636021030014612 0ustar apoapoGrr! Ich bete den Boden an, der deine Leiche erwartet! Ich verspüre nur Verachtung für dich! Ich verfluche dich! Nächstes Mal kriege ich dich! Ich kriege dich! DU RATTE! Hey, Matschbirne! Ist nur 'ne Fleischwunde! Ich hasse dich! Ich komme wieder! Das wirst du mir büßen! Das wirst du bereuen! Ich bin nicht tot...noch nicht! Warum ICH? Das war schwach... Ich bin ... sprachlos! Oh... Ich hab ja sooo dolle Angst... Ich kann ein Licht sehen! Oh verdammt... Ist das dein Ernst? atanks-6.6/text/gloat_ES.txt0000644000175000017500000000047112636021030014203 0ustar apoapoHa, ha Te arrodillars ante mi Toma esto! Soy demasiado sexy para este tanque Wohahaha Eso te doler Perro! abierto ancho I pity tha foo w00t Eso no fu lindo Hasta la vista, baby! Adorame Puedes dirigirte a mi como tu Superior Soy el maestro de todo Soy experto Mejor suerte la prxima vez. NO! Arde baby! ARDE! atanks-6.6/text/weapons.txt0000644000175000017500000002450013006377361014176 0ustar apoapo# Cost Amount Mass Drag Radius Sound Etime Damage Picpoint Spread Delay Noimpact # TechLevel Warhead NumSubmunitions Submunition ImpartVelocity Divergence # SpreadVariation LaunchSpeed SpeedVariation CountDown CountVariation # *WEAPONS* Small Missile Produces a low impact explosion 1500 10 10 0.2 25 0 2 30 0 1 0 0 0 0 0 -1 0 0 0 0 0 -1 0 Medium Missile Low yield, small area explosion 2000 5 15 0.2 40 1 2 40 1 1 0 0 0 0 0 -1 0 0 0 0 0 -1 0 Large Missile Medium yield, medium area explosion 4000 3 20 0.2 60 2 3 60 2 1 0 0 1 0 0 -1 0 0 0 0 0 -1 0 Small Nuke High yield, large area explosion 16000 2 40 0.2 100 3 4 100 3 1 0 0 2 0 0 -1 0 0 0 0 0 -1 0 Nuke Very high yield, huge explosion 22000 1 60 0.2 150 3 5 150 4 1 0 0 3 0 0 -1 0 0 0 0 0 -1 0 Death Head Massive, deadly explosion 30000 1 80 0.2 200 4 6 200 5 1 0 0 4 0 0 -1 0 0 0 0 0 -1 0 Small Spread 5 Small missiles in a single shot 5000 3 10 0.2 25 0 2 30 0 5 0 0 1 0 0 -1 0 0 0 0 0 -1 0 Medium Spread 5 Medium missiles in a single shot 11000 2 15 0.2 40 1 2 40 1 5 0 0 1 0 0 -1 0 0 0 0 0 -1 0 Large Spread 5 Large missiles in a single shot 17000 1 20 0.2 60 2 3 60 2 5 0 0 2 0 0 -1 0 0 0 0 0 -1 0 Super Spread 4 Small Nukes in a single shot 25000 1 40 0.2 100 3 4 100 3 4 0 0 3 0 0 -1 0 0 0 0 0 -1 0 Death Spread 3 Nukes in a single shot 50000 1 60 0.2 150 3 5 150 4 3 0 0 4 0 0 -1 0 0 0 0 0 -1 0 Armageddon 3 Death Heads in a single shot 100000 1 80 0.2 200 4 6 200 5 3 0 0 5 0 0 -1 0 0 0 0 0 -1 0 Chain Missile Fires a volly of three small missiles 4000 12 10 0.2 25 0 2 30 0 1 3 0 0 0 0 -1 0 0 0 0 0 -1 0 Chain Gun Fires a volly of five small missiles 6000 15 10 0.2 25 0 2 30 0 1 5 0 0 0 0 -1 0 0 0 0 0 -1 0 Jack Hammer Fires a volly of eight small missiles 8000 16 10 0.2 25 0 2 30 0 1 8 0 0 0 0 -1 0 0 0 0 0 -1 0 Shaped Charge High yield horizontal explosion. All of the energy is focused out to the sides, increasing the damage done but reducing the overall area of the explosion. 10000 5 10 0.2 100 3 3 100 17 1 0 0 2 0 0 -1 0 0 0 0 0 -1 0 Wide Boy Devastating horizontal explosion. All of the energy is focused out to the sides, increasing the damage done but reducing the overall area of the explosion. 15000 2 10 0.2 200 3 4 200 18 1 0 0 3 0 0 -1 0 0 0 0 0 -1 0 Cutter Horizontal explosion that will obliterate anything that gets in the way. All of the energy is focused out to the sides, increasing the damage done but reducing the overall area of the explosion in comparison to a similar sized uncontrolled blast. 20000 1 10 0.2 300 4 5 300 19 1 0 0 5 0 0 -1 0 0 0 0 0 -1 0 Small Roller Medium explosive which rolls downhill until it hits something 2000 3 20 0.2 40 1 2 40 6 1 0 0 1 0 0 -1 0 0 0 0 0 -1 0 Large Roller Large explosive which rolls downhill until it hits something 8000 1 30 0.2 60 2 3 60 6 1 0 0 2 0 0 -1 0 0 0 0 0 -1 0 Death Roller Huge explosive which rolls downhill until it hits something 14000 1 40 0.2 100 3 4 100 6 1 0 0 4 0 0 -1 0 0 0 0 0 -1 0 Small MIRV Drops a group of large missiles on the ground from above 16000 2 200 0.2 250 2 2 300 7 1 0 0 4 0 5 2 1.0 120 0.0 1.0 0 -1 0 Armour Piercing A small, powerful shell that knocks out tanks 2500 5 30 0.2 15 1 2 80 27 1 0 0 2 0 0 -1 0 0 0 0 0 -1 0 Cluster Bomb Scatters medium yield bomblets on impact 10000 3 100 0.2 150 1 2 200 7 1 0 0 2 0 5 29 0.0 60 0 3.5 0 -1 0 Super Cluster Scatters high yield bomblets on impact 20000 2 200 0.2 250 2 2 300 7 1 0 0 4 0 5 30 0.0 60 0 3.5 0 -1 0 Funky Bomb Unpredictable and highly destructive 30000 3 50 0.2 200 2 0 200 9 1 0 0 3 0 10 27 0.0 360 1.0 0.5 0.1 -1 0 Funky Death Unpredictable and extremely destructive 50000 1 90 0.2 300 3 1 300 9 1 0 0 4 0 10 28 0.0 360 1.0 0.5 0.1 -1 0 Funky Bomblet Medium yield explosive warhead 7000 3 5 0.01 40 1 0 50 10 1 0 1 1 1 0 -1 0 0 0 0 0 125 1.0 Funky Deathlet High yield explosive warhead 9000 2 9 0.01 100 3 1 90 10 1 0 1 3 1 0 -1 0 0 0 0 0 175 1.0 Bomblet Medium yield explosive warhead 3500 3 20 0.2 40 1 2 40 8 1 0 0 1 1 0 -1 0 0 0 0 0 -1 0 Super Bomblet High yield explosive warhead 5000 2 40 0.2 60 2 2 65 8 1 0 0 3 1 0 -1 0 0 0 0 0 -1 0 Burrower Burrows back up to the surface before exploding, good against buried tanks. The Burrower is designed for below-ground use and suffers from high air-resistance. 7500 3 100 0.4 50 1 2 50 25 1 0 0 3 0 0 -1 0 0 0 0 0 -1 0 Penetrator Penetrates below ground before rising to the surface. The Penetrator will either explode on exit from the ground or on contact with buried objects. This missile is designed for burrowing and as a result suffers from high air-resistance. 20000 2 150 0.4 80 2 2 100 26 1 0 0 4 0 0 -1 0 0 0 0 0 -1 0 Small Napalm Bomb Scatters small quantities of intensely burning napalm on impact 6000 3 80 0.2 80 1 1 80 9 1 0 0 3 0 10 36 0.0 90 0.2 2.5 1.0 -1 0 Medium Napalm Bomb Scatters intensely burning napalm on impact 14000 2 200 0.2 150 2 1 200 9 1 0 0 4 0 25 36 0.0 90 0.2 3 1.0 -1 0 Large Napalm Bomb Covers the surrounding area with intensely burning napalm on impact 22000 1 400 0.2 200 3 2 500 9 1 0 0 5 0 60 36 0.0 90 0.2 5 1.0 -1 0 Napalm Jelly Intensely burning chemical jelly 2000 5 5 0.5 10 20 10 10 0 1 0 0 2 1 0 -1 0 0 0 0 0 -1 0 Driller Vertical explosion that will do little damage, but create a deep hole in the ground. 5000 2 10 0.2 300 3 5 10 28 1 0 0 3 0 0 -1 0 0 0 0 0 -1 0 Tremor Produce a small earthquake on impact 3000 5 30 0.2 40 1 2 10 14 1 0 0 1 0 0 -1 0 0 0 0 0 -1 0 Shock Wave Produce a large earthquake on impact 8000 2 60 0.2 100 2 3 20 15 1 0 0 3 0 0 -1 0 0 0 0 0 -1 0 Tectonic Shift Produce a huge earthquake on impact 16000 1 100 0.2 150 3 4 30 16 1 0 0 5 0 0 -1 0 0 0 0 0 -1 0 Riot Bomb Destroy a small volume of dirt without damaging anything else 2000 5 15 0.2 50 0 2 0 23 1 0 0 1 0 0 -1 0 0 0 0 0 -1 0 Heavy Riot Bomb Destroy a large volume of dirt without damaging anything else 3000 2 30 0.2 125 1 2 0 24 1 0 0 3 0 0 -1 0 0 0 0 0 -1 0 Riot Charge Cuts through a cone of dirt directly in front of the gun 1000 5 15 0.2 75 0 2 0 11 1 0 1 1 0 0 -1 0 0 0 0 0 0 0 Riot Blast Cuts through a large cone of dirt directly in front of the gun 2000 2 30 0.2 200 1 2 0 12 1 0 1 3 0 0 -1 0 0 0 0 0 0 0 Dirt Ball Produce a small sphere of material to bury your opponents 2000 5 15 0.2 40 0 2 0 11 1 0 0 1 0 0 -1 0 0 0 0 0 -1 0 Large Dirt Ball Produce a large sphere of material to bury your opponents 4000 2 30 0.2 70 1 2 0 12 1 0 0 3 0 0 -1 0 0 0 0 0 -1 0 Super Dirt Ball Produce a huge ball of material to bury your opponents 7000 1 60 0.2 120 2 2 0 13 1 0 0 4 0 0 -1 0 0 0 0 0 -1 0 Small Dirt Spread Drop little piles of dirt on your enemies 4000 2 30 0.2 70 1 2 0 12 4 0 0 3 0 0 -1 0 0 0 0 0 -1 0 Cluster MIRV Releases a cluster of small missiles on its way down 10000 2 100 0.2 150 0 2 200 7 1 0 0 2 0 5 29 0.0 45 0 2.0 0 -1 0 Per Cent Bomb Destroys half of the target's armour 12000 2 30 0.2 30 3 4 0 29 1 0 0 3 0 0 -1 0 0 0 0 0 -1 0 Reducer Lowers the explosive power of an enemy's missiles by one third. 6000 3 25 0.3 30 3 4 0 30 1 0 0 4 0 0 -1 0 0 0 0 0 -1 0 Theft Bomb Steals 5k from opponent on impact. 3000 3 25 0.3 40 3 4 0 31 1 0 0 4 0 0 -1 0 0 0 0 0 -1 0 Small Laser A 50kW laser beam. 4000 5 1 0.0 2 5 5 30 13 1 0 0 4 0 0 -1 0 0 0 0 0 -1 0 Medium Laser A 100kW laser beam 8000 3 1 0.0 5 5 5 65 13 1 0 0 4 0 0 -1 0 0 0 0 0 -1 0 Large Laser A powerful 200kW laser beam 12000 2 1 0.0 9 5 5 150 13 1 0 0 4 0 0 -1 0 0 0 0 0 -1 0 *NATURALS* Small Meteor A small chunk of rock from the skies 0 1 15 0.2 25 10 0 5 20 1 0 0 0 0 0 -1 0 0 0 0 0 -1 0 Medium Meteor A medium chunk of rock from the skies 0 1 20 0.2 40 11 0 10 21 1 0 0 0 0 0 -1 0 0 0 0 0 -1 0 Large Meteor A large chunk of rock from the skies 0 1 25 0.2 60 12 1 20 22 1 0 0 0 0 0 -1 0 0 0 0 0 -1 0 Small Lightning Bolt A weak bolt of lightning. 0 1 1 0.0 1 30 0 5 0 1 0 0 0 0 0 -1 0 0 0 0 0 -1 0 Medium Lightning Bolt A bolt of lightning 0 1 1 0.0 4 30 0 15 0 1 0 0 0 0 0 -1 0 0 0 0 0 -1 0 Large Lightning Bolt A powerful bolt of lightning 0 1 1 0.0 7 31 0 35 0 1 0 0 0 0 0 -1 0 0 0 0 0 -1 0 *ITEMS* Teleport Teleports the tank to a random location 2000 2 1 3 6 Swapper Swap places with another tank 40000 2 1 4 6 Mass Teleport Teleports all tanks on the screen 8000 2 1 4 6 Fan Change the wind strength and direction 500 3 1 3 7 Vengeance A small self-destruct or auto-destruct device, if you've got to go, why not take someone with you? 10000 1 1 2 2 1 21 Dying Wrath A large self/auto-destruct device. Mutually Assured Destruction. 20000 1 1 3 3 21 3 Fatal Fury End it all in style 30000 1 1 4 4 24 5 Light Shield A small amount of protection from damage 10000 3 0 1 0 50 0 0 255 0 1 Medium Shield Protects against damage 20000 2 0 2 0 100 0 64 255 0 3 Heavy Shield A large amount of protection from damage 30000 2 0 4 0 150 0 128 255 64 6 Light Repulsor Shield Lightly repels enemy missiles 10000 3 0 2 0 10 250 128 0 255 1 Medium Repulsor Shield Repels enemy missiles 20000 2 0 3 0 20 500 192 64 255 3 Heavy Repulsor Shield Strongly repels enemy missiles 40000 1 0 5 0 40 1000 255 128 255 6 Armour Plating Permanently add a small increase to the damage your tanks can take. Each additional purchase adds a slightly smaller amount to your tank's armour. 20000 1 0 2 0 300 Plasteel Plating Permanently increase the damage your tanks can take. Each additional purchase adds a slightly smaller amount to your tank's armour. 40000 1 0 4 0 2155 Intensity Amplifier A small permanent increase to the damage done by your weapons. The efficiency decreases and therefore each additional purchase has a reduced affect. 21000 1 0 3 0 0.10 Violent Force Permanently increase the damage done by your weapons. The efficiency decreases and as a result each additional purchase provides a smaller increase. 50000 1 0 3 0 0.30 Slick Projectiles A Teflon coating for projectiles to reduce drag and the affect of the wind 1000 50 0 3 0 0.5 Dimpled Projectiles Small dimples in the skin of projectiles for massive reduction in drag 2000 50 0 4 0 0.1 Parachute Allows the tank to float gently to the ground 5000 10 0 0 0 0 0 Auto-repair kit Repairs the tank a little each turn. Each additional kit provides a slightly smaller increase to your armour. 10000 1 0 2 0 0 0 Fuel Allows the tank to move across level terran. 200 10 0 2 0 0 0 Rocket Launches the tank into the air. 1000 2 1 4 0 0 0 SDI Missile Defense Offers some protection against incoming missiles. Additional purchases increase the range of defense. There is a 1% chance on each use that an item will burn out. 20000 1 0 5 5 0 atanks-6.6/text/instr_de.txt0000644000175000017500000000241512636021030014315 0ustar apoapoBasisinstruktionen Ziele Hauptziel: Zerstöre alle anderen Panzer! Nebenziel: Rüste deinen panzer mit verdientem Geld auf. Ein Spiel starten: 1. Klicke 'Play' im Hauptmenü. 2. Im Spielermenü wählst du die Anzahl der Runden, einen Namen für das Spiel und die Teilnehmer (max. 10) aus. Klicke dann auf 'Okay' um das Spiel zu starten. Menschliche Spieler haben einen violetten Kreis, Computer- gesteuerte Spieler habe grüne Balken, die die Schwierig- keitsstufe anzeigen. 3. Im Waffenmenü kannst du Waffen und Asurüstung kaufen. lcike auf 'Done' um die erste Runde zu starten. Spielsteuerung: 1. Wähle die gewünschte Waffe mit der 'Tab'-Taste aus. 2. Mit den Pfeiltasten nach links/rechts stellst du den Winkel ein. 3. Mit den Pfeiltasten nach oben/unten stellst du die Schussstärke ein. Am oberen Bildschirmrand werden Windrichtung und Stärke angezeigt, diese solltest du bei deinen Schusseinstellungen beachten. TIPP: Halte die STRG-Taste gedrückt, um Winkel und Schussstärke langsamer einzustellen! 4. Drücke die Leertaste um den Schuss abzufeuern. Das Waffenmenü erscheint nach jeder Runde. Rüste hier deinen Panzer weiter mit dem verdienten Geld auf. Um die nächste Runde zu starten, klicke auf 'Done'. Das Spiel gewinnt derjenige, der die meisten Runden gewinnt. atanks-6.6/text/revenge_sk.txt0000644000175000017500000000062612636021030014640 0ustar apoapoGrr! Velebim zem, ktora caka na tvoju mrtvolu Nie si hoden ani mojho pohrdania Tvoj otec bol skrecok! Tvoja mama smrdi po ciernej baze! Preklinam ta! Nabuduce ta dostanem! TY KRYSA! Hej, rozvareny mozocek! Je to len zranenie! Neznasam ta! Vratim sa! Za toto budes trpiet! Toto olutujes! Nie som mrtvy.. zatial! preco ja? To bolo podle Ja.. nemam slov Vidim svetlo Do pekla Dostanes ma len cez moju mrtvolu atanks-6.6/text/suicide_ES.txt0000644000175000017500000000051512636021030014521 0ustar apoapoOooo eso duele! Yo, ah, cruel para hacer eso Oops Me odio Mira lo que me hiciste! Ahora eso te est disparando en el pie Esto no me hace sentir bien Soy tan inteligente, s-m-r-t D-OH! Prxima vez, sers t! Vaya condenado Eso era una prctica de tiro Qu hace este botn rojo? Mdico! Ahora eso fue brillante En qu estaba pensando? atanks-6.6/text/retaliation_ES.txt0000644000175000017500000000023412636021030015405 0ustar apoapoMUERTO, ESTAS MUERTO, ERES HISTORIA, ABAJO CONTIGO, TE ATRAPARE, ESO ES TODO, SE ACABO, VENGANZA ES DULCE, PIERDETE, ES LA GOTA QUE COLMO EL VASO, atanks-6.6/text/panic_sk.txt0000644000175000017500000000024512636021030014274 0ustar apoapo%s WANTS ME DEAD! %s IS COMING FOR ME! HELP ME AGAINST %s! NO, %s, NO! %s ONLY AIMS AT ME! %s IS TAKING ME DOWN! %s IS RIPPING ME APART! NOW YOU SHOOT ME, %s, YEAH? atanks-6.6/text/ingame_sk.txt0000644000175000017500000000247712636021030014453 0ustar apoapoVýber hráčov Kolá Názov novej hry alebo načítať hru Načítať hru Kampaň OK Späť Musíte vybrať aspoň 2 hráčov Môžete vybrať najviac 10 hráčov Hráč Peniaze Kolo Skóre Stlačte F10 pre uloženie aktuálnej hry. Použite šípky hore/dole na skrolovanie v zozname položiek. Uložená hra Uhol: Sila: Team Palivo Vietor: Návrat Hlavné menu Ukončiť Preskočiť AI Hráči Vytvoriť nového Meno Farba Typ Generovať pref Odohrané Vyhrané Typ tanku Vymazať tohto hráča Nová verzia je dostupná na stiahnutie. Nepodarilo sa nájsť hru s týmto názvom. Množstvo v inventári Nepodarilo sa uložiť hru. Výber farieb Renderujem oblohu Renderujem krajinku Víťaz: Jedi Víťaz: Sith Víťaz Remíza Hráčske skóre Výhry:Prehry Skóre hráčov Zrýchlené AI Vaše meno bezmena Človek Nepoužiteľný Ten, čo háda Ten, čo hľadá správnu silu Ten, čo mieri Ten, čo prináša smrť Na hru Iba raz Bežný Klasický Veľký šedý T34 Sith Neutrálny Jedi Návrat Hlavné menu Ukončiť Preskočiť AI Ťažký Futuristický UFO Spider Server version did not match client version. Server screen size does not match ours. Client has become disconnected from the server. The server is full or the game has not started. The server closed our connection. The game is finished. atanks-6.6/text/war_quotes_ru.txt0000644000175000017500000000607112636021030015407 0ustar apoapoВторжение в соседнюю страну обычно совершается во благо ее граждан. (Борис Кригер) Кто говорит, что на войне не страшно, тот ничего не знает о войне. (Юлия Друнина) Бряцая оружием, умей им пользоваться. (Борис Кригер) Война — это психоз, порожденный чьим-то неумением прозревать взаимоотношения вещей. Наши взаимоотношения с ближними своими. С экономикой, историей. Но прежде всего — с ничто. Со смертью. (Джон Фаулз «Волхв») В любой войне, кто бы ни победил, дети побежденных будут плакать. И считать отцов погибшими за правое дело. (Виктор Точинов) Неправда, что война - продолжение политики. Она ее придаток, жалкий и беспомощный. (Сергей Лукьяненко "Осенние визиты") Война. Война никогда не меняется. (Отто фон Бисмарк) Когда объявлена война, первой ее жертвой становится правда. (Артур Понсонби) Война — способ развязывания зубами политического узла, который не поддается языку. (Амброуз Бирс) Война — это зло, позорящее человеческий род. (Франсуа Фенелон) Война превращает в диких зверей людей, рождённых, чтобы жить братьями. (Вольтер) Война - это всего лишь трусливое бегство от проблем мирного времени. (Томас Манн) Если хочешь мира, готовься к войне. (Латинская пословица) Затевающие войну сами попадают в свои сети. (Иоанн Дамаскин) Терпение и смирение нужно иметь и для мира и для войны. (Иоанн Дамаскин) Выиграна война, но не мир. (Альберт Эйнштейн) Либо человечество покончит с войной, либо война покончит с человечеством. (Д. Кеннеди) Война заканчивается тогда, когда не остается никого в живых. (Платон) Никогда не знать поражения означает никогда не вступать в борьбу. (Морихэй Уэсиба) Побеждают лишь те, кто сражается. (Луи Антуан Сен-Жюст) Единство — вот залог победы, в войне иль мире — все равно. (Георг Ролленгаген) atanks-6.6/text/instr_ru.txt0000644000175000017500000000635312636021030014360 0ustar apoapoБазовый инструктаж Цели Главная цель: уничтожить все танки противника! Второстепенная цель: улучшать свой танк и приобретать новые виды вооружения на деньги, полученные за уничтожение противника. Как начать игру: 1. Щелкнуть по кнопке "Играть" в главном меню; 2. В меню "игроки" выставить нужное количество раундов, выбрать танки для игры (до 10 боевых единиц включительно) и щёлкнуть по кнопке "ОК". 3. Откроется меню "Вооружение". Закупитесь оружием перед первым раундом и нажмите "Готово", чтобы начать игру! На заметку: танк, управляемый игроком, отмечен фиолетовым кружком. Танки под управлением компьютера отмечены зелёными полосами. Чем больше зелёных полос, тем сложнее будет победить этот танк. Как играть: 1. Чтобы сменить тип оружия, которым вы будете стрелять, нажмите Tab или Backspace. 2. Стрелки влево-вправо изменяют угол стрельбы. Стрелки вверх-вниз меняют силу выстрела. Удерживайте Ctrl для тонкой настройки угла и силы выстрела. Не забывайте следить за мощностью ветра на поле боя! Указатель силы ветра находится в верху экрана (зелёная или красная полоса под надписью "Ветер"). Чем сильнее полоса вытянута влево или вправо, тем сильнее ветер будет сносить ваши ракеты в сторону! 3. Клавиши "<" и ">" ("Б" и "Ю") позволяют танку передвигаться влево и вправо, если у вас есть достаточно топлива. 4. Чтобы выстрелить, нажмите Пробел. После каждого раунда появляется меню "Вооружение". В нём вы можете потратить деньги, заработанные в бою, на оружие или снаряжение. Для этого курсором щёлкните на те товары, которые хотите купить. Правая кнопка мыши продаёт уже купленное или отменяет покупку. После того, как вы закупились оружием, нажмите "Готово", чтобы начать следующий раунд! В игре побеждает тот, кто выиграл больше всего раундов. Дополнительную информацию можно найти в файле "Help.txt", который идёт в комплекте с игрой. atanks-6.6/text/retaliation_sk.txt0000644000175000017500000000022712636021030015515 0ustar apoapoPADNI, JE PO TEBE, SI MINULOSŤOU, KONČÍŠ, DOSTANEM ŤA, A JE TO, JE KONIEC, POMSTA JE SLADKÁ, PADAJ, ZAČNI SI PÍSAŤ ZÁVEŤ, atanks-6.6/text/suicide_de.txt0000644000175000017500000000065112636021030014603 0ustar apoapoOooh das tat weh! Ich, ähh... das war Absicht! Oops Ich hasse mich. Sieh nur wozu du mich gezwungen hast! Toll... Schieß ich mir selbst ins Bein. Das fühlt sich aber *nicht* richtig an! Ich bin ja sooo schlau... D-OH! Nächstes Mal bist du's! Verdammt! Fahrt doch alle zur Hölle! Das war nur ein Übungsschuss! Wofür ist denn der rote Knopf da? SANNIIIIIEHHH! Na das war ja brillant. Was hab' ich mir nur dabei gedacht? atanks-6.6/text/suicide_fr.txt0000644000175000017500000000054412636021030014623 0ustar apoapoAhhh j'ai mal ! j'tait ... arrrghhll ... prdestin... Oups ! Je me has Regarde ce que tu m'as fait ! Maintenant, tu te tires dans le pied ! a m'a l'air louche ! Je suis tellement malin : m-a-l-n D-OH ! Le prochain coup, ce sera toi ! m... a m'nerve ! C'tait un tir d'entranement ! C'est quoi le gros bouton rouge, l ? Chissetraque ! atanks-6.6/text/gloat_it.txt0000644000175000017500000000054412636021030014311 0ustar apoapoHa, ha In ginocchio davanti a me ! Prendi questo! Sono troppo sexi per questo tank Uuhahaha Questo fa male! Cane! grandi spazi Piango per questi ragazzi w00t Questo non e' bello Hasta la vista, ragazzo! Adoratemi ! Rivolgetevi a me come Sua Maesta' Io sono il padrone di ogni cosa e persona ! Miglior fortuna la prossima volta. NO! Brucia ragazzo! Brucia! atanks-6.6/text/Help_ES.txt0000644000175000017500000001607412636021030013773 0ustar apoapoInstrucciones para Atomic Tanks Contenidos: Instrucciones Bsicas Objetivos Comenzando un juego Jugando un juego Personalizando el juego Cambiando las caractersticas generales del juego Cambiando fsicas del juego Cambiando tiempo del juego Cambiando finanzas del juego Dirigiendo y personalizando jugadores Cambiando grficos del juego ----------------------------- Instrucciones Bsicas: Objetivos: Objetivo primario: Destruir los otros tanques del paisaje! Objetivo secundario: Actualizar tu tanque con mejores armas y equipamento usando dinero ganado por tanques destruidos. Iniciando un juego: 1. Clic en 'Jugar' del men principal. 2. En Jugadores del men, configurar las rondas, escoger jugadores (10 max.) y clic `Aceptar'. Nota: Jugadores Humanos son marcados con circulo purpura. AI tanques son indicados por barras verdes. Las dems barras, las inteligentes la AI. 3. En armas del men, comprar armas para tu tanque y clic `Hecho' para iniciar el juego. Jugando un juego: 1. Presiona Tab para seleccionar un arma. 2. Usa las teclas inzquierda/derecha para apuntar (llamado ngulo). 3. Usa las teclas arriba/abajo para definir el rango del arma (llamado Potencia). Debes chequear tambin la direccin del viento y fuerza arriba de la pantalla, como estos pueden afectar el ngulo y potencia requerido para acertar a tu oponente. Consejo: Presiona CTRL mientras usas una tecla para cambiar ngulo o potencia ms lento. 4. Presiona espacio para disparar. El men de armas reaparecen despus de cada ronda. Usa el dinero ganado durante la ronda para actualizar tu tanque, entonces haz clic en 'Hecho' para iniciar la prxima ronda. El ganador del juego es el jugador que gana ms rondas. Personalizando el juego (para avanzados jugadores): Puedes personalizar Atomic Tanks para hacer el juego ms estimulante. Lee lo siguiente para aprender como personalizarlo. Cambiando caractersticas generales del juego: 1. Clic en 'Opciones' del men principal para ver las opciones. 2. Definir el Nivel para determinar las armas y equipar disponible para adquirir en la pantalla de armas; Altos niveles ofrecen una larga variedad de armas y equipamente. 3. Definir paisaje para determinar el tipo en cada ronda jugada. 4. Definir orden de turnos para determinar el orden por ronda de jugadores es definirda de acuerdo a la puntuacin ms alta (High+), la menor puntuacin (Low+), o es escogida aleatoriamente. 5. Definir saltos AI-solo Jugar para determinar si los jugadores de la computadora completan una ronda en tiempo-real despus de que los jugadores Humanos son eliminados; turno saltar AI-slo Jugar para acelerar juegos. 6. Clic en 'Atrs' para aplicar cambios en el prximo juego. Cambiando fsicas del juego 1. Clic en 'Opciones' del men principal, entonces clic en Fsicas del menu Opciones. 2. Aumentar o Disminuir la Gravedad para definir la fuerza total; alta gravedad reduce el rango de la mayora de armas, especialmente proyectiles como misiles. 3. Aumentar o disminuir Viscosidad para definir el factor arrastra aplicado para proyectiles como misiles; alta viscosidad reduce el rango de proyectiles. 4. Definir el desplazamiento de caida para determinar si una arma golpea las causas de corrimiento del suelo, como bien es severidad. 5. Clic en 'Atrs' dos veces para aplicar cambios en el prximo juego. Cambiando tiempo del juego 1. Clic en 'Opciones' del menu principal, entonces clic en 'Tiempo' de las opciones del menu. 2. Definirt mostrador de Meteoros para determinar la probabilidad y severidad de meteoros aleatorios durante el juego. 3. Configura Relmpagos para determinar la probabilidad y severidad de relmpagos ocurridos aleatoriamente durante el juego. 4. Define Niebla para limitar la cantidad de paisajes que un jugador puede ver alrededor. NOTA: Esta caracterstica est actualmente bajo desarrollo. 5. Configura Max fuerza de Viento para determinar cuan fuerte puede golpear el viento durante un juego. 6. Configura la variacin del viento para limitar cunto el viento puede cambiar durante una ronda. 7. Clic 'Atrs' dos veces para aplicar los cambios en el prximo juego. Cambiando Finanzas del juego NOTA: Cambiar las finanzas puede afectar significativamente el Juego. 1. Clic en 'Opciones' del menu principal, luego clic en 'Dinero' de las opciones del menu. 2. Define Inicio de Dinero para determinar el monto de cada jugador (computador y humano) para comprar armas al comenzar un juego. 4. Define el tipo de Interes para cambiar el tipo de interes aplicado al dinero guardado entre rondas. 5. Cambia Bonus de ganador de Ronda para definir cuanto dinero puede conseguir por ronda un jugador ganador. 6. Define gratificacin de Daos para determinar cunto de dinero puede conseguir un jugador por punto de daos a oponentes. 7. Define Penalidad de Auto-Dao para determinar cuanto de dinero pierde un jugador por punto de dao Auto-Infligido (golpearte a t mismo con un misil, por ejemplo). 8. Cambiar Bonus de destruccin de Tanques para definir cunto consigue un jugador por tanque destruido. 9. Define Penalidad de Auto-Destruccin de Tanques para determinar cuanto de dinero pierde un jugador por destruir su propio Tanque. 10. Clic en 'Atrs' dos veces para aplicar los cambios en el prximo juego. Administrando y Personalizando Jugadores 1. Clic en 'Jugadores' del menu principal para mostrar el menu de jugadores. 2. Hacer lo siguiente: -para crear un nuevo jugador, clic en `Crear Nuevo' y luego completa los pasos 3 al 5. -para personalizar un jugador, clic en su nombre y luego completar cualquiera de los siguientes pasos. -para eliminar un jugadorr, clic en su nombre, luego clic en `Eliminar este Jugador' y confirma la eliminacin. NOTA: No puedes restaurar un jugador eliminado. 3. Cambiar nombre para renombrar un jugador. 4. Escoge un color para el jugador de la paleta de colores. 5. Definir el Tipo para determinar si un jugador es Humano u Computador; Jugador de computadora pueden definir la habilidad de los siguientes niveles: -Inservible (mas bajo nivel de habilidad): raramente disparos de alguien pero aislado -Adivinador: suerte si encuentra el objetivo -Encontrador de Rango: encuentra el objetivo cerca de la mitad de tiempo -Apuntador: Encuentra el objetivo casi en todo el tiempo -Mortal (mas alta habilidad de nivel): este tanque dispara como Robbin Hood 6. Clic en 'Aceptar' para aplicar los cambios en el proximo juego. Cambiando Grficos del Juego NOTA: Cambiar los grficos del juego pueden afectar el tiempo requerido para iniciar un juego o ronda. 1. Clic en 'Opciones' del menu principal, luego clic en 'Graficos' del menu de opciones. 2. Define vacilando para determinar si los grficos son vacilados; activa Vacilando para mejores grficos. 3. Define Tierra Detallada para determinar el detalle del paisaje; activa Tierra Detallada para mejores grficos. 4. Define Cielo Detallado para determinar el detalle del fondo; activa detallado para mejores grficos. 5. Click en 'Atrs' dos veces para aplicar los cambios al prximo juego. -------------------------------------- Si tu no puedes encontrar la respuesta aqu, visita http://atanks.sourceforge.net, email jessefrgsmith@yahoo.ca atanks-6.6/text/retaliation_ru.txt0000644000175000017500000000042112636021030015522 0ustar apoapoПолучай, Держи подарочек, Мы помним про тебя, А теперь твоя очередь, Я доберусь до тебя, Хватит, Довольно, Месть, Не мозоль мне глаза, И тебе достанется, atanks-6.6/text/revenge_ES.txt0000644000175000017500000000023412636021030014525 0ustar apoapoMUERTO, ESTAS MUERTO, ERES HISTORIA, ABAJO CONTIGO, TE ATRAPARE, ESO ES TODO, SE ACABO, VENGANZA ES DULCE, PIERDETE, ES LA GOTA QUE COLMO EL VASO, atanks-6.6/text/gloat_de.txt0000644000175000017500000000056612636021030014271 0ustar apoapoHa, ha Knie nieder! Nimm das! Ich bin sooo guuut! Wohahaha Das schmerzt, nicht wahr? Verlierer! Öffne dich für die Macht! Der Dummkopf tut mir leid! w00t Das war nicht schön... Hasta la vista, baby! Verehre mich! Du darfst mich mit Hoheit anreden Ich bin der Herr über euch! Mehr Glück nächstes Mal...NICHT! Burn baby! BURN! The roof, the roof, the roof is on fire... atanks-6.6/text/gloat.pt_BR.txt0000644000175000017500000000010112636021030014607 0ustar apoapoHa, ha Ajoelhe-se perante mim Toma isto! Eu sou demais Uahahahahaatanks-6.6/text/suicide_sk.txt0000644000175000017500000000046712636021030014635 0ustar apoapoAuuu, to boli! Ja, uuh, to bolo schvalne Ups Neznasam sa Pozri, k comu si ma donutil! Tomu sa hovori strielat si do paty Toto nie je celkom ok Som taky sikovny, s-i-k-o-v-n-y D-OH! Nabuduce to budes ty! Oh, do pekla To bolo prakticke Co urobi tento cerveny gombik? Doktora! Tak to bolo krasne Co som si myslel? atanks-6.6/text/kamikaze_sk.txt0000644000175000017500000000037012636021030014775 0ustar apoapoBANZAAAAAIIII!!! GERONIMO!!! VVVAAARRRÚÚÚJJJ!!! NIKDY MA NEDOSTANEŠ! HA HA HA!!! Pripútaj sa, pretože Kansas hovorí bye-bye! Nikdy neposielaj človeka robiť prácu stroja. BOOM CHICKA WAH-WAH!!! Tak sme tu, tak sme tu, tak sme tu, TERAZ!!! atanks-6.6/text/revenge_fr.txt0000644000175000017500000000101412636021030014622 0ustar apoapoGrr! Je bnis la terre qui accueillera ton cadavre Tu es en-dessous du niveau de mon mpris Ton pre tait un hamster ! Ta mre ... devant le prisu ! Sois maudit ! Je t'aurai la prochaine fois ! Je t'aurai, je t'aurai ! T'es un rat ! He ! T'as un poi-chiche dans la tte ? Juste une gratignure ! Je ne suis pas un poisson J'te dteste ! Je reviendrai ! Tu le paieras ! Tu le regretteras ! Je ne suis pas encore mort ! Pourquoi moi ? C'tait bas de faire a ! Je reste sans voix... Ah, mes cicatrices ! atanks-6.6/text/Help_fr.txt0000644000175000017500000001545112636021030014071 0ustar apoapoAtomic Tanks : instructions Sommaire : Instructions de base Objectifs Dmarrer un jeu Comment jouer Personnalisations du jeu Modifier les caractristiques gnrales Modifier les caractristiques physiques Modifier la mto du jeu Modifier les finances Grer et modifier les joueurs Caractristiques graphiques ----------------------------- Instructions de base : Objectifs : Objectif basique : liminer tous les autres tanks du paysage ! Objectif secondaire : gagner de l'argent en dtruisant les autres tanks pour amliorer votre tank avec de meilleures armes et quipements. Dmarrer un jeu : 1. Cliquer 'jouer' dans le menu principal. 2. Dans le menu 'joueurs', modifier le nombre de tours, choisir des joueurs (10 maxi.) et cliquer 'OK'. Note : le joueur humain est marqu d'un cercle violet. Les tanks grs par l'ordinateur sont indiqus par une barre verte. La taille de la barre reflte l'intelligence des adversaires. 3. Dans le menu 'armes', achetez des armes et cliquer 'termin' pour dmarrer le jeu. Comment jouer : 1. Appuyer sur Tabulation pour slectionner une arme. 2. Rgler l'angle de tir par les touches gauche/droite. 3. Rgler la porte par les touches haut/bas (puissance du tir). Pensez vrifier la force et la direction du vent en haut de l'cran, elles ont une influence sur l'angle et la puissance de tir ncessaires atteindre votre adversaire. Astuce : la touche CTRL permet d'obtenir des rglages plus fins lors de l'utilisation des touches de direction (angle, porte) 4. Pressez la touche Espace pour lancer l'arme. Le menu 'armes' rapparat chaque tour de jeu. Utilisez l'argent gagn pour amliorer votre tank, puis cliquez 'Termin' pour passer au tour suivant. Le vainqueur est le joueur qui a remport le plus de jeux. Personnalisations du jeu (joueurs confirms) : Vous avez la possibilit de personnaliser Atomic Tanks pour rendre le jeu plus intressant. Ce qui suit vous indique comment procder. Modification des caractristiques gnrales : 1. Cliquer 'Options' dans le menu principal pour afficher les options du jeu. 2. Rglez le niveau technique armes pour dterminer les armes et quipements disponibles dans l'cran 'armes' ; les niveaux les plus hauts rendent disponibles une plus grande varit d'armes et d'quipements. 3. Les options de paysage permettent de disposer d'autres types d'environnement chaque tour. 4. L'ordre de passage peut tre rgl : le score le plus haut en premier (plus fort +), le plus bas (moins fort+), ou ordre alatoire. 5. La slection de 'Jeu IA seule' permet l'Intelligence Artificielle (IA) de continuer jouer en temps rel une fois tous les joueurs humains limins, alors que 'viter IA seule' acclre le jeu. 6. Le bouton 'Prcdent' applique les modifications au prochain jeu. Modifier les caractristiques physiques : 1. Cliquer 'Options' dans le menu principal, puis 'Physique' dans le menu 'Options'. 2. Augmentez ou diminuez la force de gravit. Une gravit leve rduit la port de la pluspart des armes, en particulier celle des projectiles de type missiles. 3. La viscosit influence les frottements subis par les projectile de type missiles. Une viscosit importante rduit la porte de tous les projectiles. 4. Le facteur 'glissements de terrain' dtermine si le fait de toucher le sol cause un glissement de terrain, ainsi que l'importance de ce dernier. 5. Le bouton 'Prcdent' applique les modifications au prochain jeu. Modifier la mto du jeu 1. Cliquer 'Options' dans le menu principal, puis 'Mto' dans le menu 'Options'. 2. 'Orages de mtorites' dtermine la probabilit et l svrit des orages de mtorites qui apparaissent alatoirement au cours du jeu. 3. 'clairs' fait de mme en ce qui concerne les clairs. 4. 'Brouillard' permet de limiter l'environnement visible par les joueurs. NOTE : Cette caractriqtique est encore l'tat de dveloppement. 5. 'Force maxi du vent' dtermine la force du vent qui pourra souffler au cours du jeu. 6. 'Variation du vent' affecte les changements du vent au cours du jeu. 7. Deux clics sur Le bouton 'Prcdent' appliquent les modifications au prochain jeu. Modifier les finances NOTE: Modifier les finances peut fortement affecter le droulement d'une partie. 1. Cliquer 'Options' dans le menu principal, puis 'Finances' dans le menu 'Options'. 2. 'Somme de dpart' sert fixer le montant dont chaque joueur dispose en dbut de partie pour acheter ses armes. 4. Le 'Taux d'intrt' est appliqu la somme restante entre les tours. 5. 'Gains par victoire' dtermine le montant gagn chaque victoire. 6. 'Bonus dommages' dtermine le montant gagn chaque point de dommages inflig l'adversaire. 7. 'Pnalit auto-dommages' dtermine le montant perdu chaque point de dommages que vous vous infligez vous-mme (en vous touchant avec un de vos missiles par exemple). 8. 'Bonus destruction tank' est le montant gagn chaque destruction de tank adverse. 9. 'Pnalit autodestruction tank' est le montant perdu chaque destruction d'un de vos propres tanks par vous-mme. 10. Le bouton 'Prcdent' applique les modifications au prochain jeu. Grer et modifier les joueurs 1. Cliquer 'Joueurs' dans le menu principal pour accder ce qui suit. 2. Vous pouvez... -crer un nouveau joueur : cliquez 'crer nouveau', puis complter les tapes 3 5. -modifier un joueur : cliquez son nom, puis suivez les tapes suivantes. -effacer un joueur : cliquez son nom, puis cliquez 'Effacer ce joueur' et confirmez l'effacement. NOTE: Vous ne pouvez pas restaurer un joueur dtruit. 3. 'Renommer' sert renommer un joueur (mais si !). 4. Slectionnez une couleur dans la palette pour l'affecter au joueur. 5. 'Type' dtermine si le joueur est humain ou gr par l'IA (programme). Les niveaux possibles pour les joueurs sont : -sous-dou : (le plus bas !) : atteint rarement autre chose que lui-mme -mdiocre : peut atteindre sa cible avec de la chance ! -moyen : atteint sa cible la moiti du temps -lev : atteint sa cible la pluspart du temps -mortel : (le plus haut) un vrai tireur d'lite ! 6. Cliquez 'OK' pour appliquer les modifications la prochaine partie. Caractristiques graphiques NOTE: Les modifications peuvent affecter la dure du dmarrage ou du changement de tour. 1. Cliquer 'Options' dans le menu principal, puis 'Graphismes' dans le menu 'Options'. 2. 'Tramage' : le tramage amliore les graphismes. 3. 'Dtails du terrain' : amliore le sol. 4. 'Ciel dtaill' : amliore les dtails de l'arrire-plan. 5. Deux clics sur Le bouton 'Prcdent' appliquent les modifications au prochain jeu. -------------------------------------- Si vous ne pouvez trouver de rponses vos questions, consultez le site (en Anglais) http://atanks.sourceforge.net, ou contactez par ml (en Anglais) : jessefrgsmith@yahoo.ca atanks-6.6/text/weapons_ES.txt0000644000175000017500000001452613006377361014574 0ustar apoapo*WEAPONS* Misil pequeo Produce un bajo impacto de explosin Misil medio Bajo rendimiento, pequea rea de explosin Misil largo Rendimiento medio, re media de explosin Pequea arma nuclear Alto rendimiento, rea larga de explosin Arma nuclear Muy alto rendimiento, enorme explosin Cabeza de muerte Masiva, explosin mortal Pequea propagacin 5 Pequeos misiles en un nico tiro Media propagacin 5 Misiles medios en un nico disparo Larga propagacin 5 Largos misiles en un solo dispao Super propagacin 4 Pequeas armas nucleares en un solo disparo Propagacin de muerte 3 Armas nucleares en un solo disparo Armagedon 3 Cabezas de muerte en un solo disparo Cadena de misiles Disparos de tres pequeos misiles Caon de cadenas Dispara 5 pequeos misiles Jack Hammer Disparo de 8 pequeos misiles Carga formada Alto rendimiento de explosin horizontal. Toda la energa es enfocada fuera de los lados, aumentado el dao hecho pero reduciendo el area total de explosin. Chico amplio Explosin devastadora horizontal. Toda la energa es enfocada fuera de los lados, aumentado el dao hecho pero reduciendo el area total de explosin. Cutter Explosin Horizontal que arrasar con algo del camino. Toda la energa es enfocada fuera de los lados, aumentado el dao hecho pero reduciendo el area total de explosin en comparacin de una descontrolada explosin. Pequa apisonadora Explosin media cuando la rueda golpee algo Larga Apisonadora Larga explosin cuando la rueda golpee algo Apisonadora de muerte Enorme explosin cuando la rueda golpee algo Pequea MIRV Caida de un grupo de misiles largos desde el suelo Armadura penetrante Un pequeo, poderoso proyectil que noquea tanques Grupo de Bombas Medio rendimiento de impacto y dispersacin de Bombas Super Bombas Alto rendimiento de impacto y dispersacin de Bombas Bomba divertida Impredecible y altamente destructiva Muerte divertida Impredecible y extremadamente destructiva Divertido bombazo Rendimiento medio de explosin de ojiva Mortalmente Divertido Alto rendimiento de explosin de ojiva Bombazo Medio rendimiento de explosin de ojiva Super Bombazo Alto rendimiento de explosin de ojiva Burrower Burrows llegan a la superficie antes de explotar, bien contra tanques. El Burrower est diseado para estar abajo y salir a la superficie con alta resistencia. Penetrador Penetradores van abajo antes de ascender a la superficie. El Penetrador explotar al salir y tener contacto con cualquier objeto. Pequea Bomba Napalm Pequeas cantidades de dispersacin de Napales de intensamente impacto Media Bomba Napalm Quemadura intensa de impacto de Napalm Larga Bomba Napalm Cobertura circundante del area con intensamente ardimiento al impacto Pasta Napalm Ardimiento Intensamente qumico Taladror Explosin vertical que hace un pequeo dao, pero crea un profundo hoyo en el suelo. Temblor Produce un pequeo terremoto al impacto Ola de impresin Produce un largo temblor de impacto Cambio Tectnico Produce un enorme temblor al impacto Boma Disturbios Destruye un pequeo volumen de suciedad sin perjudicar algo ms Pesada Bomba de Disturbios Destruye un largo volumen de suciedad sin perjudicar algo ms Carga de Disturbios Cortes a travs de un cono que va directamente al frente del arma Explosin de Disturbios Cortes a travs de un largo cono que va directamente al frente del arma Bola de suciedad PProduce una pequea esfera de material que daa a tus oponentes Larga Bola de Suciedad Dirt Ball Produce una larga esfera de material que daa a tus oponentes Super Bola de Suciedad Produce una enorme esfera de material que daa a tus oponentes Pequea propagacin de Suciedad Pequea gota de suciedad en tus enemigos Grupo MIRV Lanzamiento de pequeos misiles en caidas Bomba Por Ciento Destruye la mitad de proteccin de las armaduras Theft Bomb Steals 5k from opponent on impact. Reductor Baja el poder de explosion de los misiles enemigos. Pequeo Laser Emite 50kW de laser. Laser Medio Emite 100kW de laser Laser Largo Emite poderosos 200kW de laser *NATURALS* Pequeo Meteoro Un pequeo trozo de roca de los cielos Meteoro Medio Un trozo mediano de roca de los cielos Meteoro Largo Un trozo largo de roca de los cielos Pequeo rayo relmpago Un dbil rayo de relmpago. Medio rayo relmpago Un rayo de relmpago Largo rayo relmpago Un poderoso rayo de relmpago *ITEMS* Teletransportador Tele transporta el tanque a un lugar aleatorio Cambiador Cambia lugares con otro tanque Gran Teletransportador Tele transporta todos los tanques de la pantalla Ventilador Cambia la fuerza y direccin del viento Venganza Un pequeo dispositivo auto-destructor, si tienes que irte, por qu no llevarte a alguien contigo? Ira Moribunda Un dispositivo largo de auto-destruccin. Destruccin Mutuamente Segura. Furia Fatal Acabalo todo con Estilo Luz Protectora Una pequea cantidad de proteccin de daos Escudo Medio Proteccin contra daos Escudo Pesado Una larga cantidad de proteccin de daos Escudo Repulsor de Luz Repele ligeramente los misiles enemigos Escudo Repulsor Medio Repele los misiles enemigos Pesado Escudo Repulsor Repele fuertemente los misiles enemigos Armadura Blindada Permanentemente aade un pequeo incremento al dao que tus tanques pueden llevar. Cada compra adicional aade un pequeo monto a la armadura de tu tanque. Plasteel Plating Permanentemente aade un pequeo incremento al dao que tus tanques pueden llevar. Cada compra adicional aade un pequeo monto a la armadura de tu tanque. Amplifcador de Intensidad Un permanemte pequeo incremento al dao hecho por tus armas. La eficiencia disminuye y por tanto cada compra adicional tiene un afecto reducido. Fuerza Violenta Un permanemte pequeo incremento al dao hecho por tus armas. La eficiencia disminuye y como un resultado de compra adicional provee un pequeo incremento. Proyectiles Mejorados Una capa de Teflon para proyectiles que reduce el arrastre y afecta al viento Proyectiles Perforados Pequeos hoyuelos en la piel de los proyectiles para la reduccin masica en el arrastre Paracadas Permite al tanque flotar con delicadeza al suelo Kit de Auto-Reparacin Repara un poco el tanque en cada turno. Cada kit adicional provee un pequeo increment a tu armadura. Combustible Permite al tanque moverse en el terreno. Cohete Lanzamientos del tanque al aire. SDI Missile Defensa Ofrcece alguna proteccin contra la llegada de misiles. atanks-6.6/text/kamikaze_it.txt0000644000175000017500000000043612636021030014777 0ustar apoapoBANZAAAAAIIII!!! GERONIMO!!! SAVOIAAAA!!! TU NON MI PRENDERAI MAI! HA HA HA!!! Allacciate la vostra cintura di sicurezza, qui non siamo piu' nel Kansas ! Mai mandare un umano a fare un lavoro da macchina. BOOM UGA-UGA CHAKA!!! Adesso andiamo, adesso andiamo, adesso andiamo, ... ORA!!! atanks-6.6/text/Help.pt_BR.txt0000644000175000017500000001635312636021030014411 0ustar apoapoInstruções de Tanques Atômicos (Atomic Tanks) Índice: Instruções Básicas Objetivos Iniciando um Jogo Jogando Configurando o Jogo Alterando as Características Gerais do Jogo Alterando a Física do Jogo Alterando as Condições Meteorológicas do Jogo Alterando a Economia do Jogo Gerenciando e Configurando os Jogadores Alterando os Gráficos do jogo ----------------------------- Instruções Básicas Objetivos: Objetivo Primário: Destruir todos os outros tanques do cenário! Objetivo Secundário: Incrementar seu próprio tanque com armas e equipamentos melhores usando o dinheiro que conseguiu destruindo tanques. Iniciando um Jogo: 1. Clique em 'Jogar' no menu principal. 2. No menu 'Personagens', ajuste a duração do jogo em rodadas, Escolha os jogadores (máximo de 10) e clique em `Okay'. Jogadores humanos tem círculos púrpura, enquanto robôs tem barras de habilidade verdes; quanto mais barras, melhor o robô. 3. No menu Armas, compre armas para seu tanque e clique `terminei' para começar o jogo. Jogando: 1. Pressione Tab para selecionar uma arma. 2. Use as teclas de seta esquerda/direita para apontar a arma (ângulo). 3. Use as teclas de seta para cima/para baixo para ajustar o alcance da arma (potência). Você também tem que verificar a direção e força do vento no topo da tela, já que eles influem no ângulo e potência certos para atingir seus adversários. DICA: Pressione CTRL enquanto estiver usando uma seta para mudar o ângulo ou a potência lentamente. 4. Pressione Espaço para atirar. O menu Armas reaparece após cada rodada. Use o dinheiro ganho durannte a rodada para incrementar seu tanque, então clique em 'Terminei' para começar a próxima rodada. O vencedor do jogo é o jogador que ganhar o maior número de rodadas. Configurando o Jogo (para jogadores experientes): Você pode configurar Tanques Atômicos para tornar o jogo mais desafiador. Leia o que segue para aprender como configurar o jogo. Alterando as Características Gerais do Jogo: 1. Clique em 'Opções' no menu principal para ver o menu Opções. 2. Ajuste o nível Tecnológico para determinar as armas e equipamentos à venda na tela de armas; níveis tecnológicos mais altos oferecem maior variedade de armas e equipamentos. 3. Ajuste o cenário para determinar o tipo de cenário no qual o as rodadas se realizarão. 4. Ajuste a Ordem de Jogadas para determinar se a ordem dos jogadores numa rodada será pela maior pontuação (melhores+), a menor pontuação (Piores+), ou aleatoriamente. 5. Ajuste Pular Jogo Só com Robôs para determinar se os robôs devem terminar o jogo em tempo real depois de todos os humanos terem sidos eliminados; desligue a opção Pular Jogo Só com Robôs para acelerar o jogo. 6. Clique 'Voltar' para aplicar as alterações no próximo jogo. Alterando a Física do Jogo: 1. Clique em 'Opções' no menu principal, então clique em Física no menu Opções. 2. Aumente ou diminua a Gravidade para ajustar a força da gravidade; Gravidada alta reduz o alcance da maioria das armas, especialmente de projéteis como mísseis. 3. Aumente ou diminua a Viscosidade para ajustas o fator de arrasto aplicado a armas de projéteis como mísseis; viscosidade alta reduz o alcance de todas as armas de projéteis. 4. Ajuste o desabamento de Terra para determinar se uma arma ao atingir a terra causa um desabamento, assim como sua severidade. 5. Clique duas vezes em 'Voltar' para aplicar as alterações no próximo jogo. Alterando as Condições Meteorológicas do Jogo: 1. Clique em 'Opções' no menu principal, então clique em 'Condições Meteorológicas' no menu Opções. 2. Ajuste Chuva de Meteoros para determinar a probabilidade e severidade das ocorrências de chuvas de meteoros aleatórias ao longo do jogo. 3. Ajuste Relâmpagos para determinar a probabilidade e severidade de relâmpagos ocorrerem aleatóriamente ao longo do jogo. 4. Ajuste Neblina para limitar a quantidade de terreno que um jogador pode ver ao seu redor. OBSERVAÇÃO: este recurso está atualmente em desenvolvimento. 5. Ajuste Força Máxima do Vento para determinar quão forte o vento pode soprar durante o jogo. 6. Ajuste a variação do vento para limitar quanto o vento muda numa rodada. 7. Clique duas vezes em 'Voltar' para aplicar as alterações no próximo jogo. Alterando a Economia do Jogo OBSERVAÇÃO: Mudanças na economia do jogo pode afetar significativamente a forma de jogar. 1. Clique em 'Opções' no menu principal, então clique em 'Dinheiro' no menu opções. 2. Ajuste Dinheiro Inicial para determinar qual o valor que cada jogador (humano ou robô) recebe para comprar armas no começo do jogo. 4. Ajuste Taxa de Juros para alterar a taxa de juros aplicada ao dinheiro entre uma rodada e outra. 5. Altere Bônus por Vitória para definir quanto dinheiro um jogador ganha por vencer uma rodada. 6. Ajuste Bônus por Estrago para determinar quanto dinheiro um jogador ganha por ponto de estrago que ele faça num adversário. 7. Ajuste Penalidade por Auto-Estrago para determinar quanto dinheiro um jogador perde por ponto de estrago feito em si mesmo (Ser atingido por seu próprio míssil, por exemplo). 8. Altere Bônus por Tanque Destruído para definir quanto dinheiro um jogador ganhar ao destruir um tanque. 9. Ajuste Penalidade por Auto-Destruição para determinar quanto dinheiro um jogador perde por destruir seu próprio tanque. 10. Clique duas vezes em 'Voltar' para aplicar as alterações no próximo jogo. Gerenciando e Configurando os Jogadores 1. Clique em 'Jogadores' no menu principal para mostrar o menu Jogadores. 2. Faça uma das seguintes ações: -para criar um novo jogador, clique em `Criar Novo' e então complete os passos 3 a 5. -para configurar um jogador, clique no seu nome e então complete qualquer um dos passos seguintes. -para apagar um jogador, clique em seu nome e então clique `Apagar Este Jogador' e confirme. OBSERVAÇÃO: Não há como recuperar um jogador apagado. 3. Mude o Nome para renomear o jogador. 4. Mude a cor para o jogador na paleta de cores. 5. Ajuste o tipo para determinar se um jogador é humano ou robô; robôs podem ter os seguintes níveis de habilidade: -Chutador (pior nível de habilidade): se acertar algo foi por sorte -"Range Finder": acerta o alvo em mais ou menos metade das vezes -Mirador (melhor nível de habilidade): acerta quase sempre 6. Clique em 'OK' para aplicar as alterações no próximo jogo. Alterando os Gráficos do jogo OBSERVAÇÃO: Alterações nos gráficos do jogo podem afetar o tempo necessário para iniciar um jogo ou uma rodada. 1. Clique em 'Opções' no menu principal, então clique em 'Gráficos' no menu Opções. 2. Ajuste Pontilhamento para determinar se os gráficos serão pontilhados; desligue Pontilhamento para melhores gráficos. 3. Ajuste Detalhes do Terreno para determinar os detalhes do cenário; ligue Detalhes do Terreno para gráficos melhores. 4. Ajuste Detalhes do Céu para determinar os detalhes do fundo; ligue Detalhes do Céu para gráficos melhores. 5. Clique duas vezes em 'Voltar' para aplicar suas alterações no próximo jogo. -------------------------------------- Se você não encontrou a resposta para sua pergunta aqui, nem em http://sourceforge.net/projects/atanks e nem em http://atanks.sourceforge.net, mande e-mail (em inglês) para atanks@singular.org.uk atanks-6.6/text/instr_ES.txt0000644000175000017500000000306212636021030014233 0ustar apoapoInstrucciones Bsicas Objetivos Objetivo Primario: Destruir los otros Tanques del paisaje! Objetivo Secundario: Actualizar tu propio Tanque con mejores armas y equipamento usando el dinero ganado. Iniciando un Juego: 1. Clic en 'jugar' del menu principal. 2. En el menu de caracteres, definir la duracin del juego en rondas, escoger jugadores (10 max.) y clic en `Aceptar'. Jugadores Humanos tienen un circulo prpura, mientras que los jugadores computadora tienen barras verdes de destreza; mas barras indica mejor jugadores de computadora. 3. En el menu de Armas, compra armas para tu Tanque y clic en `Hecho' para iniciar el juego. Jugando: 1. Presiona Tab para seleccionar un arma. 2. Usa las teclas izquierda/derecha para apuntar (llamado Angulo). 3. Usa las teclas arriba/abajo para definir el rango del arma (llamado Potencia). Debes chequear tambin la direccin del viento y fuerza arriba de la pantalla, como estos pueden afectar el ngulo y potencia requerido para acertar a tu oponente. TIP: Consejo: Presiona CTRL mientras usas una tecla para cambiar ngulo o potencia ms lento. 4. Presiona espacio para disparar. 5. Si tu compraste combustible, puedes mover tu tanque usando las < y > teclas. El men de armas reaparecen despus de cada ronda. Usa el dinero ganado durante la ronda para actualizar tu tanque, entonces haz clic en 'Hecho' para iniciar la prxima ronda. El ganador del juego es el jugador que gana ms rondas. Mas informacin Hay instrucciones ms detalladas acerca del uso de menu de opciones en el archivo "Help.txt" que viene con la distribucin. atanks-6.6/text/ingame_ES.txt0000644000175000017500000000231412636021030014333 0ustar apoapoSeleccionar jugadores Rondas Nuevo nombre de juego o cargar Juego Cargar Juego Campaa Acpetar Atrs Debes seleccionar al menos dos jugadores Puedes solo tener arriba de 10 jugadores Jugador Dinero Ronda Puntuacin Presiona F10 para guardar el juego actual. Usa las teclas de arriba y abajo para deslizarte a travs de la lista de artculos. Juego guardado ngulo: Potencia: Equipo Combustible Viento: Retornar Menu principal Salir Saltar AI Jugadores Crear Nuevo Nombre Color Tipo Generar Pref Jugado Ganaste Tipo de Tanque Eliminar este jugador Una nueva versin est disponible para descargar. No se puede encontrar un juego con ese nombre. Qty. en inventario Guardar juego fallado. Escogiendo colores Mostrando Cielo Mostrando Paisaje Ganador: Jedi Ganador: Sith Ganador Draw Puntuacin Jugador Matar:Morir Puntuacin jugador Acelerado AI Tu nombre sin nombre Humano Inservible Guesser Rango Targetter Mortal Por Juego Solo una vez Normal Clasico Big Grey T34 Sith Neutral Jedi Retornar Menu Principal Salir Saltar AI Pesado Futuro UFO Araa Versin servidor no coincide cliente versin. Tamao de pantalla Servidor no coincide con la nuestra. Cliente ha sido desconectado desde el servidor. atanks-6.6/text/revenge.txt0000644000175000017500000000074712636021030014147 0ustar apoapoGrr! I worship the ground that awaits your corpse You are not even beneath my contempt Your father was a hamster! Your mother smells of elderberries! Curse you! I'll get you next time! I'll get you! YOU RAT! Hey, mush-brain! It's only a flesh-wound! Je ne suis pas un poisson I hate you! I'll be back! You'll suffer for this! You'll regret that! I'm not dead... yet why me? That was low I'm... speechless Oh, I'm so scared! I can see a light Oh pooh You'll only get me over my dead tank atanks-6.6/text/instr.txt0000644000175000017500000000265212636021030013650 0ustar apoapoBasic Instructions Objectives Primary Objective: Destroy all other tanks on the landscape! Secondary Objective: Upgrade your own tank with better weapons and equipment using money earned from tank kills. Starting a Game: 1. Click 'Play' on the main menu. 2. On the Characters menu, set game length in rounds, choose players (10 max.) and click `Okay'. Human players have purple circles, while computer players have green skill bars; more skill bars indicate better computer players. 3. On the Weapons menu, buy weapons for your tank and click `Done' to start the game. Playing a Game: 1. Press Tab to select a weapon. 2. Use the left/right arrow keys to aim the weapon (called Angle). 3. Use the up/down keys to set the range of the weapon (called Power). You should also check the wind direction and strength at the top of the screen, as these may affect the Angle and Power required to hit your opponent. TIP: Press CTRL while using an arrow key to change Angle or Power more slowly. 4. Press Space to fire the weapon. 5. If you have bought fuel, you may move your tank using the < and > keys. The weapons menu reappears after each round. Use money earned during the round to upgrade your tank, then click 'Done' to begin the next round. The winner of the game is the player who wins the most rounds. More Information There are more detailed instructions about using the menu options in the file "Help.txt" which comes with this distribution. atanks-6.6/text/war_quotes_ES.txt0000644000175000017500000000540012636021030015263 0ustar apoapoLa Humanidad debe poner un fin a la guerra o la guerra pondr un fin a la Humanidad - John F. Kennedy La guerra es peleada por criaturas humanas. - Carl von Clausewitz La guerra es algo absurdo, usualmente, nada puede justificarla. - Louis de Cazenave Cada arma est hecha, cada buque lanzado, cada cohete disparado, significa, en el sentido final, un robo de algunos quienes son colgados y no alimentados... - Dwight D. Eisenhower La guerra no puede ser necesariamente mala, porque la no-violencia es un bien necesario. - John Lewis Tan larga como estimada es la guerra es como perversa, siempre tendr fascinacin. - Oscar Wilde Solo la muerte ha visto el fin de la guerra. (Plato) En guerra, la verdad es la primera vctima. (Aeschylus) La guerra es dulce para esos que nunca la han experimentado. (Pindar) La guerra no le sobra al valiente, pero si al cobarde. (Anacreon) Para dirigir gente no entrenada a la guerra es para tirarlos lejos. (Confucius) Las leyes son silenciosas en tiempo de guerra. (Cicero) War gives the right of the conquerors to impose any conditions they please upon the vanquished. (Gaius Julius Caesar) El verdadero desprecio de un invasor es mostrado por la accin de valor en el campo. (Hermocrates of Syracuse) En paz, los hijos sepultan a sus padres; en guerra, los padres sepultan a sus hijos. (Herodotus) Un hombre sabio en tiempos de paz se prepara para la guerra. (Horace) El hombre que huye luchar de nuevo. (Menander) Un pueblo pequeo no puede enfrentarse a uno grande; los pocos no pueden enfrentarse a los muchos; el dbil no puede enfrentarse al fuerte. (Mencius) Meter la pata dos veces no est permitido en la guerra. (Latin proverbs) Estoy mas asustado de nuestros propios errores que de nuestros diseos de enemigos. (Pericles) Vencer quien resiste. (Persius) Una alianza con el poderoso nunca puede ser de confianza. (Fedrus) Un buen general no solo ve el camino a la victoria, el tambin sabe cuando la victoria es imposible. (Polybius) Perdona una ofensa y tu animars la comisin de muchos. (Publilius Syrus) La crueldad de la guerra hace la paz. (Publius Statius) Las guerras son el pavor de las madres. (Horace) Las fortunas de la guerra son siempre dudosas. (Seneca) La espada misma incita a la violencia. (Homer) Las armas mantienen la paz. (Latin proverbs) Todas las guerras estn basadas en el engao. (Sun Tzu) Quien conoce cuando puede luchar y cuando no puede ser victorioso. (Sun Tzu) In war, numbers alone confer no advantage. Do not advance relying on sheer military power. (Sun Tzu) Now in place of the young men urns and ashes are carried home to houses of the fighters. (Aeschylus). Beware lest in your anxiety to avoid war you obtain a master. (Demosthenes.) Una espada nunca es una asesina, es una herramienta en las manos del asesino. (Seneca) atanks-6.6/text/panic_ru.txt0000644000175000017500000000024512636021030014305 0ustar apoapo%s WANTS ME DEAD! %s IS COMING FOR ME! HELP ME AGAINST %s! NO, %s, NO! %s ONLY AIMS AT ME! %s IS TAKING ME DOWN! %s IS RIPPING ME APART! NOW YOU SHOOT ME, %s, YEAH? atanks-6.6/text/Help.txt0000644000175000017500000001443212636021030013400 0ustar apoapoInstructions for Atomic Tanks Contents: Basic Instructions Objectives Starting a Game Playing a Game Customising the Game Changing General Game Characteristics Changing Game Physics Changing Game Weather Changing Game Finances Managing and Customizing Game Players Changing Game Graphics ----------------------------- Basic Instructions: Objectives: Primary Objective: Destroy all other tanks on the landscape! Secondary Objective: Upgrade your own tank with better weapons and equipment using money earned from tank kills. Starting a Game: 1. Click 'Play' on the main menu. 2. On the Players menu, set game length in rounds, choose players (10 max.) and click `Okay'. Note: Human player tanks are marked with a purple circle. AI tanks are indicated by green bars. The more bars, the smarter the AI. 3. On the Weapons menu, buy weapons for your tank and click `Done' to start the game. Playing a Game: 1. Press Tab to select a weapon. 2. Use the left/right arrow keys to aim the weapon (called Angle). 3. Use the up/down arrow keys to set the range of the weapon (called Power). You should also check the wind direction and strength at the top of the screen, as these may affect the Angle and Power required to hit your opponent. TIP: Press CTRL while using an arrow key to change Angle or Power more slowly. 4. Press Space to fire the weapon. The weapons menu reappears after each round. Use money earned during the round to upgrade your tank, then click 'Done' to begin the next round. The winner of the game is the player who wins the most rounds. Customizing the Game (for advanced players): You can customize Atomic Tanks to make the game more challenging. Read the following to learn how to customize the game. Changing General Game Characteristics: 1. Click 'Options' on the main menu to view the Options menu. 2. Set Tech Level to determine the weapons and equipment available for purchase on the weapons screen; higher Tech Levels offer a larger variety of weapons and equipment. 3. Set Landscape to determine the type of landscape on which each round is played. 4. Set Turn Order to determine if player order per round is set according to highest score (High+), the lowest score (Low+), or is chosen at random. 5. Set Skip AI-only Play to determine if computer players complete a round in real-time after all human players are eliminated; turn on Skip AI-only Play to speed up games. 6. Click 'Back' to apply your changes to the next game. Changing Game Physics 1. Click 'Options' on the main menu, then click Physics on the Options menu. 2. Increase or decrease Gravity to set the overall force of gravity; higher Gravity reduces the range of most weapons, especially projectile weapons like missiles. 3. Increase or decrease Viscosity to set the drag factor applied to projectile weapons like missiles; higher Viscosity reduces the range of all projectile weapons. 4. Set Land Slide to determine if a weapon hitting the ground causes a landslide, as well as its severity. 5. Click 'Back' twice to apply your changes to the next game. Changing Game Weather 1. Click 'Options' on the main menu, then click 'Weather' on the Options menu. 2. Set Meteor Showers to determine the probability and severity of meteor showers occurring at random during a game. 3. Set Lightning to determine the probability and severity of lightning occurring at random during a game. 4. Set Fog to limit the amount of landscape that a player can see around them. NOTE: This feature is currently under development. 5. Set Max Wind Strength to determine how strong the wind can blow during a game. 6. Set Wind Variation to limit how much the wind can change during a round. 7. Click 'Back' twice to apply your changes to the next game. Changing Game Finances NOTE: Changing game finances can affect game play significantly. 1. Click 'Options' on the main menu, then click 'Money' on the Options menu. 2. Set Starting Money to determine the amount each player (computer and human) gets to buy weapons at the start of a game. 4. Set Interest Rate to change the interest rate applied to money saved between rounds. 5. Change Round Win Bonus to set how much money a player gets per round win. 6. Set Damage Bounty to determine how much money a player gets per point of opponent damage inflicted by the player. 7. Set Self-Damage Penalty to determine how much money a player loses per point of self-inflicted damage (hitting yourself with a missile, for example). 8. Change Tank Destruction Bonus to set how much a player gets per tank kill. 9. Set Tank Self-Destruction Penalty to determine how much money a player loses for destroying their own tank. 10. Click 'Back' twice to apply your changes to the next game. Managing and Customizing Game Players 1. Click 'Players' on the main menu to show the Players menu. 2. Do one of the following: -to create a new player, click `Create New' and then complete steps 3 to 5. -to customize a player, click their name and then complete any of the following steps. -to delete a player, click their name, then click `Delete This Player' and confirm the deletion. NOTE: You cannot restore a deleted player. 3. Change Name to rename the player. 4. Choose a color for the player from the color palette. 5. Set Type to determine if a player is a human or a computer; computer players may be set to the following skill levels: -Useless (lowest skill level): rarely shoots anyone but itself -Guesser: lucky if it finds its target -Range Finder: finds its target about half of the time -Targetter: finds its target almost all of the time -Deadly (highest skill level): this tank shoots like Robbin Hood 6. Click 'OK' to apply your changes to the next game. Changing Game Graphics NOTE: Changing game graphics may affect the time required to start a game or round. 1. Click 'Options' on the main menu, then click 'Graphics' on the Options menu. 2. Set Dithering to determine if graphics are dithered; turn on Dithering for better graphics. 3. Set Detailed Land to determine the detail of the landscape; turn on Detailed Land for better graphics. 4. Set Detailed Sky to determine the detail of background; turn on Detailed Sky for better graphics. 5. Click 'Back' twice to apply your changes to the next game. -------------------------------------- If you can't find the answer to your question here, at http://atanks.sourceforge.net, email jessefrgsmith@yahoo.ca atanks-6.6/text/instr_fr.txt0000644000175000017500000000265212636021030014337 0ustar apoapoBasic Instructions Objectives Primary Objective: Destroy all other tanks on the landscape! Secondary Objective: Upgrade your own tank with better weapons and equipment using money earned from tank kills. Starting a Game: 1. Click 'Play' on the main menu. 2. On the Characters menu, set game length in rounds, choose players (10 max.) and click `Okay'. Human players have purple circles, while computer players have green skill bars; more skill bars indicate better computer players. 3. On the Weapons menu, buy weapons for your tank and click `Done' to start the game. Playing a Game: 1. Press Tab to select a weapon. 2. Use the left/right arrow keys to aim the weapon (called Angle). 3. Use the up/down keys to set the range of the weapon (called Power). You should also check the wind direction and strength at the top of the screen, as these may affect the Angle and Power required to hit your opponent. TIP: Press CTRL while using an arrow key to change Angle or Power more slowly. 4. Press Space to fire the weapon. 5. If you have bought fuel, you may move your tank using the < and > keys. The weapons menu reappears after each round. Use money earned during the round to upgrade your tank, then click 'Done' to begin the next round. The winner of the game is the player who wins the most rounds. More Information There are more detailed instructions about using the menu options in the file "Help.txt" which comes with this distribution. atanks-6.6/text/panic_fr.txt0000644000175000017500000000024512636021030014266 0ustar apoapo%s WANTS ME DEAD! %s IS COMING FOR ME! HELP ME AGAINST %s! NO, %s, NO! %s ONLY AIMS AT ME! %s IS TAKING ME DOWN! %s IS RIPPING ME APART! NOW YOU SHOOT ME, %s, YEAH? atanks-6.6/text/retaliation.pt_BR.txt0000644000175000017500000000022212636021030016020 0ustar apoapoDIE, YOU ARE DEAD, YOU ARE HISTORY, DOWN WITH YOU, I'LL GET YOU, THAT'S IT, IT'S OVER, REVENGE IS SWEET, GET LOST, WRITE YOUR LAST WILL, atanks-6.6/text/suicide_it.txt0000644000175000017500000000056412636021030014632 0ustar apoapoOooo che male! Io, ah, volevo fare cosi' Oops Mi odio Guardate cosa lo avete incitato a fare! Adesso vi sparerei in un piede Questo non e' fare qualcosa di bello Sono cos astuto, s-t-t D-OH! La volta prossima, tocchera' a voi! Gosh , andate all'inferno Questo e' un colpo basso Cos'e' che fa questo pulsante rosso? Dottore! Adesso e' tutto chiaro A cosa stavo pensando? atanks-6.6/text/war_quotes_it.txt0000644000175000017500000000536612636021030015403 0ustar apoapoL'umanit deve mettere un termine alla guerra o la guerra metter un termine all'umanit - John F. Kennedy La guerra combattuta dagli esseri umani. - Carl von Clausewitz La guerra qualche cosa di irragionevole, inutile, che niente pu giustificare. - Louis de Cazenave Ogni cannone forgiato, ogni nave da guerra varata, ogni razzo lanciato, indica, alla fine, che un furto e' stato fatto a coloro che hanno fame e non hanno da sfamarsi... - Dwight D. Eisenhower La guerra non pu essere una malvagit necessaria, perch la non-violenza un bene necessario. - John Lewis Finch la guerra considerata cattiva, avr sempre relativo fascino. - Oscar Wilde Soltanto i morti hanno visto la conclusione della guerra. (Platone) Nella guerra, la verit il primo incidente. (Eschilo) La guerra dolce per coloro che non l'hanno mai subita. (Pindaro) La guerra risparmia non il coraggioso ma il codardo. (Anacreonte) Condurre la gente non addestrata alla guerra buttarla via. (Confucio) Le leggi sono silenziose in tempo della guerra. (Cicerone) La guerra d diritto ai conquistatori di imporre ogni condizione ai vinti.(Caio Giulio Cesare) The true contempt of an invader is shown by deeds of valour in the field. (Ermocrate di Siracusa) Nella pace, i figli seppelliscono i loro padri; con la guerra, i padri seppelliscono i loro figli. (Erodoto) Un uomo saggio in tempo di pace prepara la guerra. (Orazio) The man who runs away will fight again. (Menander) Un piccolo paese non pu contendersi con uno grande; i pochi non possono contendersi con i molti; il debole non pu contendersi con il forte. (Mencio) Indugiare due volte non permesso in guerra. (Proverbio Latino) Sono pi impaurito dei nostri errori che dei progetti dei nostri nemici. (Pericle) Conquista chi resiste. (Persio) Un'alleanza con il potente non deve dare fiducia. (Fedro) Un buon Generale non solo vede la via alla vittoria, ma sa anche quando la vittoria impossibile. (Polibio) Perdonare un'offesa incoraggia il commetterne altre. (Publio Siro) La crudelt della guerra porta alla pace. (Publio Stazio) Le guerre sono il terrore delle madri. (Orazio) Le fortune della guerra sono sempre dubbiose. (Seneca) La spada in se' esorta alla violenza. (Omero) La pace si conserva con le armi. (Proverbio Latino) Tutta la guerra basata su inganno. (Sun Tzu) Lui sa quando pu combattere e quando non pu potr essere vittorioso. (Sun Tzu) Nella guerra, i numeri da soli conferiscono nessun vantaggio. Non contare sul potere militare puro. (Sun Tzu) Ora al posto dei giovani uomini, le urne e le ceneri sono trasportate in Patria alle case dei combattenti. (Eschilo). Beware lest in your anxiety to avoid war you obtain a master. (Demostene.) Una spada non mai un assassino, e' solo un attrezzo nelle mani di un assassino. (Seneca) atanks-6.6/text/panic_ES.txt0000644000175000017500000000024512636021030014166 0ustar apoapo%s WANTS ME DEAD! %s IS COMING FOR ME! HELP ME AGAINST %s! NO, %s, NO! %s ONLY AIMS AT ME! %s IS TAKING ME DOWN! %s IS RIPPING ME APART! NOW YOU SHOOT ME, %s, YEAH? atanks-6.6/text/weapons_it.txt0000644000175000017500000001545513006377361014703 0ustar apoapo*WEAPONS* Missile Piccolo Produce una piccola esplosione all'impatto Missile Medio Basso rendimento, piccola area esplosione Missile Grande Medio rendimento, media area esplosione Bomba Nucleare Piccola Alto rendimento, larga area esplosione Bomba Nucleare Altissimo rendimento, enorme area esplosione Testata della Morte Massivo, esplosione mortale Piccola Diffusione 5 Piccoli missili in un sigolo colpo Media Diffusione 5 Medio missili in un sigolo colpo Grande Diffusione 5 Grandi missili in un sigolo colpo Super Diffusione 4 Piccole Bombe Nucleari in un sigolo colpo Mortale Diffusione 3 Bombe Nucleari in un sigolo colpo Armageddon 3 Testate della Morte in un sigolo colpo Missile Concatenato Fuoco con un colpo di tre piccoli missili Cannone Concatenato Fuoco con un colpo di cinque piccoli missili Jack Hammer Fuoco con un colpo di otto piccoli missili Shaped Charge Esplosione orizzontale ad alto rendimento. Tutta l'energia e' focalizzata sui lati, incrementando la distruzione, ma riducendo l'area dell'esplosione. Wide Boy Esplosione orizzontale devastante. Tutta l'energia e' focalizzata sui lati, incrementando la distruzione, ma riducendo l'area dell'esplosione. Cutter Esplosione orizzontale che cancellera' tutto quello che trovera' per la strada. Tutta l'energia e' focalizzata sui lati, incrementando la distruzione, ma riducendo l'area dell'esplosione similarmente a quanto ottenuto con uno scoppio incontrollato. Roller Piccolo Esplosione Media con dispositivo rotolante che esplodera' quando tocchera' qualcosa. Roller Grande Esplosione Grande con dispositivo rotolante che esplodera' quando tocchera' qualcosa. Roller della Morte Esplosione Enorme con dispositivo rotolante che esplodera' quando tocchera' qualcosa. MIRV Piccolo Caduta un gruppo di grandi missili. Perforatore di Corazza Un piccolo, potentissimo perforatore di corazza dei tank Bomba Cluster Spargimenti a Medio rendimento di mazzi di bombe a impatto Super Cluster Spargimenti ad Alto rendimento di mazzi di bombe a impatto Bomba Funky Imprevedibile ed altamente distruttivo Funky Mortale Imprevedibile ed estremamente distruttivo Proietto Funky Testata esplosiva a medio rendimento Funky Quasi Mortale Testata esplosiva ad alto rendimento Proietto Testata esplosiva a medio rendimento Super Proietto Testata esplosiva ad alto rendimento Scavatore Scava nel terreno fino alla superficie prima dell'esplosione, buono contro i carri armati sepolti. Lo Scavatore progettato per uso sotterraneo e soffre di conseguenza all'esposiizone all'aria. Penetratore Penetra sepolto prima di sorgere alla superficie. Il Penetratore esploder sia all'uscita dal suolo, sia al contatto con gli oggetti sepolti. Questo missile disegnato per scavare e soffre di conseguenza all'esposiizone all'aria. Piccola Bomba al Napalm Copre l'area circostante con piccole quantita' di napalm intensamente in fiamme dopo l'impatto Media Bomba al Napalm Copre l'area circostante con napalm intensamente in fiamme dopo l'impatto Grande Bomba al Napalm Copre l'area circostante con grandi quantita' di napalm intensamente in fiamme dopo l'impatto Napalm Gelatina Gelatina chimica intensamente combustibile Perforatrice Esplosione Verticale che provoca un piccolo danno, ma crea un profondo buco nel terreno. Tremor Produce un piccolo terremoto all'impatto Onda d'urto Produce un grande terremoto all'impatto Spostamento tettonico Produce un enorme terremoto all'impatto Bomba Anti-Sommossa Distrugge un piccolo volume di sporcizia senza danneggiare nulla Pesante Bomba Anti-Sommossa Distrugge un grande volume di sporcizia senza danneggiare nulla Multi Bomba Anti-Sommossa Taglia un cono di sporcizia direttamente davanti al cannone Bomba Anti-Sommossa Esplodente Taglia un grande cono di sporcizia direttamente davanti al cannone Palla Sporca Produce una piccola sfera di materiale per seppellire i vostri avversari Grande Palla Sporca Produce una grande sfera di materiale per seppellire i vostri avversari Super Palla Sporca Produce una enorme sfera di materiale per seppellire i vostri avversari Sporcizia a Piccola Diffusione Fa cadere dei piccoli mucchi di sporcizia sui vostri nemici Cluster MIRV Libera un mazzo di piccoli missili su quello che trova Bomba Percentuale Distrugge meta' della corazza dell'obiettivo Riduttore Abbassa la potenza esplosiva dei missili nemici. Theft Bomb Steals 5k from opponent on impact. Laser Piccolo Raggio Laser a 50kW. Laser Medio Raggio Laser a 100kW. Laser Grande Raggio Laser a 200kW. *NATURALS* Meteorite Piccolo Un piccolo pezzo di roccia dallo spazio Meteorite Medio Un pezzo medio di roccia dallo spazio Meteorite Grande Un grande pezzo di roccia dallo spazio Lampo Piccolo Un piccolo fulmine dal cielo. Lampo Medio Un fulmine medio dal cielo. Lampo Grande Un gran fulmine dal cielo. *ITEMS* Teletrasporto Teletrasporta il tank in una posizione random. Swapper Scambia il posto con un altro tank Teletrasporto Massiccio Teletrasporta tutti i tank sullo schermo. Fan Cambia il vento in forza e direzione Vendetta Un piccolo dispositivo di auto-distruzione, se avete deciso di andarvene, perche' non prenderne qualcuno con voi? Rabbia di Morte Un gran dispositivo di auto-distruzione. Distruzione reciprocamente assicurata. Furia Fatale Fa finire tutto in grande stile Scudo Leggero Da una piccola protezione dalla distruzione Scudo Medio Protegge dalla distruzione Scudo Pesante Da una grande protezione dalla distruzione Schermo di Repulsione Leggero Respinge leggermente i missili nemici Schermo di Repulsione Medio Respinge i missili nemici Schermo di Repulsione Pesante Respinge pesantemente i missili nemici Rinforzo Corazzatura Aggiunge permanentemente un piccolo aumento di resistenza alla corazza del tank diminuendo cosi' il danno inferto ai vostri tank. Rinforzo Corazzatura in Acciaio Aggiunge permanentemente un aumento di resistenza alla corazza del tank diminuendo cosi' il danno inferto ai vostri tank. Amplificatore di Intensita' Permette un piccolo e permanente incremento ai danni fatti dalle vostre armi. L'efficienza diminuisce e quindi ogni acquisto supplementare ha un'influenza riduttrice. Forza Violenta Permette un permanente incremento ai danni fatti dalle vostre armi. L'efficienza diminuisce e quindi ogni acquisto supplementare ha un'influenza riduttrice. Proiettili Lucidi Un rivestimento di Teflon riduce la resistenza e l'influenza del vento sui vostri proiettili Proiettili Scanalati Piccole fossette nella superficie dei proiettili per una riduzione voluminosa della resistenza all'aria Paracadute Permette al tank di fluttuare lentamente a terra Kit Auto-Riparazione Ripara il tank un poco ogni volta. Ogni volta fornisce un piccolo aumento alla vostra corazza. Benzina Permette al tank di muoversi sul terreno. Razzo Solleva il tank nell'aria. Difesa anti missile - SDI Offre una certa protezione contro i missili ricevuti. atanks-6.6/text/retaliation_de.txt0000644000175000017500000000024312636021030015466 0ustar apoapoSTIRB, DU BIST TOT, DU BIST GESCHICHTE, NIEDER MIT DIR, ICH KRIEG DICH, DAS WARS, DAS MAß IST VOLL, RACHE IST BLUTWURST, GEH UNTER, MACH DEIN TESTAMENT, atanks-6.6/text/Help_sk.txt0000644000175000017500000001533312636021030014076 0ustar apoapoManuál k Atomic Tanks Obsah: Zakladné inštrukcie Ciele Spustenie hry Priebeh hry Úprava hry Zmena všeobecných herných charakteristík Zmena fyziky Zmena počasia Zmena financovania Správa a úprava hráčov Zmena grafiky v hre ----------------------------- Základné inštrukcie: Ciele: Primárny cieľ: Zničiť všetky okolité tanky v krajinke! Sekundárny cieľ: Vylepšiť tank dokupením lepších zbraní a vybavenia s využitím peňazí získaných za zničené tanky. Spustenie hry: 1. V hlavnom menu kliknite na tlačidlo 'Play' 2. V menu pre výber hráčov nastavte počet kôl, vyberte hráčov (max. 10) a kliknite na `Okay'. Poznámka: Hráči ovládaní človekom sú označení fialovým kruhom. Počítačoví hráči sú označení zelenými paličkami. Čím viac paličiek, tým lepšiu majú umelú inteligenciu. 3. V menu pre výber zbraní si zakúpte zbrane pre váš tank a kliknite na `Done'. Tým hru spustíte. Priebeh hry: 1. Stlačte Tab pre výber zbrane. 2. Použite pravé/ľavé kurzorové šípky na mierenie (uhol) 3. Použite kurzorové šipky hore/dole na nastavenie dosahu zbrane (sila) Na vrchu obrazovky by ste mali kontrolovať smer a silu vetra, pretože tieto dva faktory môžu ovplyvniť uhol a silu potrebnú na zasiahnutie súpera. TIP: Stlačte CTRL počas stlačenia kurzorových kláves na jemnejšiu zmenu uhla alebo sily. 4. Stlačte medzerník pre vypustenie zbrane. Menu s výberom zbraní sa objaví po každom kole. Použite peniaze získané počas kola na vylepšenie vášho tanku, potom kliknite na 'Done' a spustite ďalšie kolo. Výťazom je ten hráč, ktorý vyhrá väčšinu kôl. Úprava hry (pre pokročilých hráčov): Atomic Tanks môžete upraviť tak, aby bola hra náročnejšia. Nasledujúci text popisuje, ako možno hru upraviť. Zmena všeobecných herných charakteristík: 1. V hlavnom menu kliknite na 'Options' a zobrazí sa menu s voľbami. 2. Tech Level určuje zbrane a výbavu, ktorá sa dá zakúpiť v menu s výberom zbraní; vyššie Tech Levely ponúkajú vyššiu rozmanitosť zbraní a vybavenia. 3. Landscape určuje typ krajinky, na ktorej sa odohráva každé kolo. 4. Turn Order určuje, či je poradie hráčov pri začiatku každého kola určené najvyšším skóre (High+), najnižším skóre (Low+) alebo je stanovené náhodne. 5. Skip AI-only Play určuje, či počítačoví hráči dokončia kolo v reálnom čase po tom, ako sú všetci ľudskí hráči eliminovaní; zapnite túto voľbu, ak chcete urýchliť hru. 6. Kliknite na 'Back' pre použitie vašich zmien v ďalšej hre. Zmena fyziky 1. V hlavnom menu kliknite na 'Options', potom kliknite na Physics. 2. Zväčšite alebo zmenšite hodnotu Gravity a tým zmeňte celkovú silu gravitácie; väčšia gravitácia znižuje dosah väčšiny zbraní, predovšetkým zbraní s projektilom ako sú strely. 3. Zväčšite alebo zmenšite hodnotu Viscosity a tým zmeňte faktor odporu pre zbrane s projektilom ako sú napr. strely; vyššia viskozita zmenšuje dosah všetkých zbraní s projektilom. 4. Nastavením Land Slide určíte, či má zbraň, ktorá narazí do zeme spôsobiť zosun pôdy a jeho rozsah. 5. Kliknite na 'Back' pre použitie vašich zmien v ďalšej hre. Zmena počasia 1. V hlavnom menu kliknite na 'Options', potom kliknite na 'Weather'. 2. Nastavenie Meteor Showers určuje pravdepodobnosť a škodu spôsobenú meteoritovými prehánkami, ktoré sa vyskytujú náhodne počas hry. 3. Nastavenie Lightning určuje pravdepodobnosť a škodu spôsobenú bleskami, ktoré sa vyskytujú náhodne počas hry. 4. Nastavenie Fog určuje množstvo krajiny, ktoré vidí hráč okolo seba. POZNÁMKA: Táto vlastnosť je momentálne vo vývoji. 5. Nastavenie Max Wind Strength určuje aký silný vietor môže počas hry fúkať. 6. Nastavenie Wind Variation stanovuje mieru, s akou sa môže vietor meniť počas kola. 7. Kliknite na 'Back' pre použitie vašich zmien v ďalšej hre. Zmena financovania POZNÁMKA: Zmena financovania v hre môže významne ovplyvniť hru. 1. V hlavnom menu kliknite na 'Options', potom kliknite na 'Money'. 2. Starting Money určuje množstvo peňazí, ktoré každý (počítačový aj ľudský) hráč dostane na nákup zbraní na začiatku hry. 3. Interest rate mení úrokovú mieru použitú na peniaze, ktoré hráč usporil medzi kolami. 4. Change Round Win Bonus určuje to, koľko peňazí dostane hráč pri vyhraní kola. 5. Nastavenie Damage Bounty určuje koľko peňazí dostane hráč za každý bod, ktorý súperovi vzal. 6. Self-Damage Penalty určuje koľko peňazí hráč stráca pri každom stratenom bode, ak si spôsobil vlastnú škodu (napr. zásahom vlastnej strely). 7. Tank Destruction Bonus určuje koľko dostane hráč za zničenie jednoho tanku. 8. Tank Self-Destruction Penalty určuje koľko peňazí hráč stráca, ak si zničí vlastný tank. 9. Kliknite na 'Back' pre použitie vašich zmien v ďalšej hre. Správa a úprava hráčov 1. V hlavnom menu kliknite na 'Players' pre zobrazenie menu s výberom hráčov. 2. Vyberte jednu z nasledujúcich možností: - pre vytvorenie nového hráča kliknite na `Create New' a potom pokračujte krokmi 3 až 5. - pre úpravu hráča kliknite na jeho meno a potom pokračujte ktorýmkoľvek z nasledujúcich bodov. - pre vymazanie hráča kliknite na jeho meno, potom kliknite na `Delete This Player' a potvrďte vymazanie. POZNÁMKA: Vymazaného hráča nemôžete obnoviť. 3. Kliknutím na Change Name premenujete hráča. 4. Kliknutím na farebnú paletu môžete zmeniť farbu hráča. 5. Nastavením Type určíte, či má za hráča hrať človek alebo počítač; počítačom ovládaným hráčom môžete vybrať jeden z nasledujucich levelov: - Slepúch (najnižší level): málokedy zasiahne iného než seba - Tipovač: je šťastný, ak nájde cieľ - Junior: nájde cieľ zhruba v jednom z dvoch prípadov - Ostreľovač: nájde cieľ takmer vždy - Profík (najvyšší level): tento tank strieľa ako Robin Hood 6. Kliknite na 'OK' pre použitie vašich zmien v ďalšej hre. Zmena grafiky POZNÁMKA: Zmena grafiky v hre môže ovplyvniť čas potrebný na spustenie hry alebo kola. 1. V hlavnom menu kliknite na 'Options', potom kliknite na 'Graphics'. 2. Nastavením Dithering určíte, či má grafika používať dithering; zapnite túto voľbu pre krajšiu grafiku. 3. Nastavenie Detailed Land určuje detaily krajinky; zapnite túto voľbu pre krajšiu grafiku. 4. Nastavenie Detailed Sky určuje detaily pozadia; zapnite túto voľbu pre krajšiu grafiku. 5. Kliknite dvakrát na 'Back' pre použitie vašich zmien v ďalšej hre. -------------------------------------- Ak ste nenašli odpoveď na svoju otázku tu, na http://atanks.sourceforge.net, pošlite e-mail na jessefrgsmith@yahoo.ca atanks-6.6/text/retaliation.txt0000644000175000017500000000022412636021030015015 0ustar apoapoDIE, YOU ARE DEAD, YOU ARE HISTORY, DOWN WITH YOU, I'LL GET YOU, THAT'S IT, IT'S OVER, REVENGE IS SWEET, GET LOST, THAT'S THE FINAL STRAW, atanks-6.6/text/retaliation_fr.txt0000644000175000017500000000022212636021030015502 0ustar apoapoDIE, YOU ARE DEAD, YOU ARE HISTORY, DOWN WITH YOU, I'LL GET YOU, THAT'S IT, IT'S OVER, REVENGE IS SWEET, GET LOST, WRITE YOUR LAST WILL, atanks-6.6/text/kamikaze_ru.txt0000644000175000017500000000062712636021030015013 0ustar apoapoБАНЗА-А-А-А-АЙ! А теперь сюрприз вечера. ПОЛУЧАЙТЕ!! Я так легко не сдамся! Ха-ха-ха! Вы ещё пожалеете!!! А теперь - праздничный фейерверк!!! Самое время оживить атмосферу ВЕСЁЛЫМ ВЗРЫВОМ!!! Сделаем этот раунд заметнее!! Я отомщу!!! atanks-6.6/text/panic.pt_BR.txt0000644000175000017500000000024512636021030014604 0ustar apoapo%s WANTS ME DEAD! %s IS COMING FOR ME! HELP ME AGAINST %s! NO, %s, NO! %s ONLY AIMS AT ME! %s IS TAKING ME DOWN! %s IS RIPPING ME APART! NOW YOU SHOOT ME, %s, YEAH? atanks-6.6/text/kamikaze_ES.txt0000644000175000017500000000041512636021030014667 0ustar apoapoBANZAAAAAIIII!!! GERONIMO!!! TIIIIIIMBEEEEEER!!! NUNCA ME ACERTARAS! HA HA HA!!! Ajusta tu cinturn, 'porque Kansas se est yendo Chau-Chau! Nunca enves a un humano a hacer el trabajo de una mquina. BOOM CHICKA WAH-WAH!!! Aqu vamos, aqu vamos, aqu vamos, AHORA!!! atanks-6.6/text/panic.txt0000644000175000017500000000024512636021030013577 0ustar apoapo%s WANTS ME DEAD! %s IS COMING FOR ME! HELP ME AGAINST %s! NO, %s, NO! %s ONLY AIMS AT ME! %s IS TAKING ME DOWN! %s IS RIPPING ME APART! NOW YOU SHOOT ME, %s, YEAH? atanks-6.6/text/weapons_sk.txt0000644000175000017500000001513513006377361014677 0ustar apoapo*WEAPONS* Malá strela Pri kontakte spôsobí malú explóziu Stredná strela Malá ráž, malá veľkosť explózie Veľká strela Stredná ráž, stredná veľkosť explózie Malá jadrová bomba Veľká ráž, veľká explózia Jadrová bomba Veľmi veľká ráž, obrovská explózia Vraždiaca bomba Obrovská smrtiaca explózia Ľahké kobercové bombardovanie 5 malý striel v jednom výstrele Stredné kobercové bombardovanie 5 stredných striel v jednom výstrele Ťažké kobercové bombardovanie 5 veľkých striel v jednom výstrele Superkobercové bombardovanie 4 malé jadrové bomby v jednom výstrele Smrtiace kobercové bombardovanie 3 jadrové bomby v jednom výstrele Armagedon 3 smrtiace hlavice v jednom výstrele Reťazové strely Vypáli skupinku troch malých striel Samopal Vypáli skupinku piatich malých striel Pneumatické kladivo Vypáli skupinku ôsmych malých striel Kumulatívna nálož Veľká horizontálna explózia. Všetka energia je rozprestrená do strán, čím sa zvyšuje škoda, no zmenšuje oblasť, na ktorú explózia pôsobí. Wide Boy Zničujúca horizontálna explózia. Všetka energia je rozprestrená do strán, čím sa zvyšuje škoda, no zmenšuje oblasť, na ktorú explózia pôsobí. Orezávač Horizontálna explózia, ktorá vyhladí všetko, čo jej príde do cesty. Všetka energia je rozprestrená do strán, čím sa zvyšuje škoda, no zmenšuje oblasť, na ktorú explózia pôsobí v porovnaní s neriadenou detonáciou podobnej sily. Malý valcovač Stredná trhavina, ktorá sa valí z kopca až kým do niečo nenarazí Veľký valcovač Silná trhavina, ktorá sa valí z kopca až kým do niečo nenarazí Smrtiaci valcovač Veľmi silná trhavina, ktorá sa valí z kopca až kým do niečo nenarazí Malá MIRV Spustí z neba skupinu veľkých striel Trhač brnenia Malý silný náboj, ktorý dokáže zničiť tank Trieštivá bomba Rozhodí bombičky o strednej ráži, ktoré vybuchujú pri kontakte Supertrieštivá bomba Rozhodí bombičky o veľkej ráži, ktoré vybuchujú pri kontakte Podivná bomba Nepredvídateľná a vysoko deštruktívna Podivná smrť Nepredvídateľná a extrémne deštruktívna Podivná bombička Výbušná hlavica o strednej ráži Podivná smrtiaca bombička Výbušná hlavica o veľkej ráži Bombička Výbušná hlavica o strednej ráži Superbombička Výbušná hlavica o veľkej ráži Zavŕtavač Najprv sa zavŕta do povrchu, dobrá zbraň na zahrabané tanky. Zavŕtavač je určený pre použitie pod povrchom a nemá rád veľký odpor vzduchu. Prenikač Podpovrchová zbraň, ktoré po čase začne stúpať na povrch. Prenikač exploduje buď pri kontakte s povrchom alebo pri kontakte so zahrabanými objektami. Táto strela je určená pre hrabanie a preto nemá rada veľký odpor vzduchu. Malá napalmová bomba Rozhodí malé množstvo napalmu, ktorý pri kontakte intenzívne horí Stredná napalmová bomba Rozhodí napalm, ktorý pri kontakte intenzívne horí Veľká napalmová bomba Pokryje okolitú oblasť napalmom, ktorý pri kontakte intenzívne horí Napalmové želé Intenzívne horiace chemické želé Vŕtač Vertikálna explózia, ktorý urobí malú škodu, ale vytvorí hlbokú dieru v zemi. Otras Pri kontakte spôsobí malé zemetrasenie Tlaková vlna Pri kontakte spôsobí veľké zemetrasenie Tektonický posun Pri kontakte spôsobí obrovské zemetrasenie Hlučná bomba Zničí malé množstvo zeme bez toho, aby poškodila čokoľvek iné Veľká hlučná bomba Zničí veľké množstvo zeminy bez toho, aby poškodila čokoľvek iné Hlučná nálož Priamo pred zbraňou vyreže do zeminy kužeľ Hlučná detonácia Priamo pred zbraňou vyreže do zeminy veľký kužeľ Guľa so zeminou Vytvorí malú guľku materiálu pre pochovanie vašich súperov Veľká guľa so zeminou Vytvorí veľkú guľu materiálu pre pochovanie vašich súperov Superguľa so zeminou Vytvorí obrovskú guľu materiálu pre pochovanie vašich súperov Slabý nános zeminy Zhodí malé kôpky zeminy na vašich nepriateľov Trieštivé MIRV Vypustí skupinku malých striel smerom dolu Percentuálna bomba Zničí polovicu brnenia cieľa Redukovač Znižuje explozívnu silu nepriateľských striel. Theft Bomb Steals 5k from opponent on impact. Malý laser 50kW laserový lúč Stredný laser 100kW laserový lúč Veľký laser Silný 200kW laserový lúč *NATURALS* Malý meteorit Malé kusy skál z oblohy Stredný meteorit Stredne veľké kusy skál z oblohy Veľký meteorit Veľké kusy skál z oblohy Slabý blesk Slabý blesk Stredný blesk Stredne silný blesk Silný blesk Silný blesk *ITEMS* Teleport Teleportuje tank na náhodné miesto Výmena Výmena miesta s iným tankom Hromadný teleport Teleportuje všetky tanky na obrazovke Ventilátor Zmení silu a smer vetra Pomsta Malé samo a autodeštrukčné zariadenie. Keď už musíte skončiť, tak prečo nevziať niekoho so sebou? Smrteľný hnev Veľké samo/autodeštrukčné zariadenie. Vzájomne zaistená deštrukcia. Osudové zúrenie Štýlové zakončenie Ľahký štít Malé množstvo ochrany pred poškodením Stredný štít Chráni pred poškodením Ťažký štít Veľké množstvo ochrany pred poškodením Ľahký odkloňovač striel Jemne odkloní nepriateľské strely Stredný odkloňovač striel Odkloní nepriateľské strely Ťažký odkloňovač striel Výrazne odkloní nepriateľské strely Bežné opancierovanie Permanentne zvýši množstvo škody, ktorému váš tank dokáže odolať. Každý dodatočný nákup pridá o niečo menšie množstvo pancieru vášmu tanku. Plasteelové opancierovanie Permanentne zvýši množstvo škody, ktorému váš tank dokáže odolať. Každý dodatočný nákup pridá o niečo menšie množstvo pancieru vášmu tanku. Zosilnenie intenzity Malé permanentné zvýšenie účinnosti vašich zbraní. Účinnosť má klesajúcu tendenciu a tak každý dodatočný nákup má stále slabší efekt. Mohutná sila Permanentné zvýšenie účinnosti vašich zbraní. Účinnosť má klesajúcu tendenciu a tak každý dodatočný nákup má stále slabší efekt. Klzké projektily Teflónová vrstva pre projektily, ktoré znížia odpor a účinok vetra Dierkované projektily Malé dierky v plášti projektilov pre veľké zníženie odporu Padák Umožní tanku pomaly klesať k zemi Súprava pre opravu Po každom ťahu opravuje tank. Každá ďalšia súprava poskytuje o niečo menšie brnenie. Palivo Umožňuje tanku pohybovať sa po vodorovnom teréne. Raketa Vypustí tank do vzduchu. SDI raketová obrana Poskytuje určitú ochranu proti prichádzajúcim strelám. atanks-6.6/text/instr.pt_BR.txt0000644000175000017500000000265212636021030014655 0ustar apoapoBasic Instructions Objectives Primary Objective: Destroy all other tanks on the landscape! Secondary Objective: Upgrade your own tank with better weapons and equipment using money earned from tank kills. Starting a Game: 1. Click 'Play' on the main menu. 2. On the Characters menu, set game length in rounds, choose players (10 max.) and click `Okay'. Human players have purple circles, while computer players have green skill bars; more skill bars indicate better computer players. 3. On the Weapons menu, buy weapons for your tank and click `Done' to start the game. Playing a Game: 1. Press Tab to select a weapon. 2. Use the left/right arrow keys to aim the weapon (called Angle). 3. Use the up/down keys to set the range of the weapon (called Power). You should also check the wind direction and strength at the top of the screen, as these may affect the Angle and Power required to hit your opponent. TIP: Press CTRL while using an arrow key to change Angle or Power more slowly. 4. Press Space to fire the weapon. 5. If you have bought fuel, you may move your tank using the < and > keys. The weapons menu reappears after each round. Use money earned during the round to upgrade your tank, then click 'Done' to begin the next round. The winner of the game is the player who wins the most rounds. More Information There are more detailed instructions about using the menu options in the file "Help.txt" which comes with this distribution. atanks-6.6/text/kamikaze_fr.txt0000644000175000017500000000036512636021030014773 0ustar apoapoBANZAAAAAIIII!!! GERONIMO!!! TIIIIIIMBEEEEEER!!! YOU'LL NEVER GET ME! HA HA HA!!! Fasten your seat belt, 'cause Kansas is going bye-bye! Never send a human to do a machine's job. BOOM CHICKA WAH-WAH!!! Here we go, here we go, here we go, NOW!!! atanks-6.6/text/instr_it.txt0000644000175000017500000000317312636021030014343 0ustar apoapoIstruzioni di Base Obiettivi Obiettivo Primario: Distruggere tutti i tank nel panorama! Obiettivo Secondario: Upgradare il vostro tank con le migliori armi ed equipaggiamenti usando il denaro preso dai tank uccisi. Partenza del Gioco: 1. Cliccare 'Play' sul main menu. 2. Sul Characters menu, settare la lunghezza dei round, scegliere i giocatori (10 max.) e cliccare `Okay'. I giocatori Human hanno dei cerchi viola, mentre i giocatori computer hanno delle barre verticali verdi; quante piu' barre sono indicate, tanto piu' bravi sono i giocatori. 3. Sul menu Weapon, pagate le armi per il vostro tank e cliccare `Done' per iniziare a giocare. Giocare un Gioco: 1. Premere Tab per selezionare un'arma. 2. Usare i tasti con le frecce sinistra/destra per puntare le armi (chiamato Angolo). 3. Usare i tasti con le frecce su/giu' per settare il range delle armi (chiamato Potenza). Voi potete anche controllare la direzione e la forza del vento nella parte superiore dello schermo, poiche' essi possono avere effetto sull'Angolo e la Potenza di tiro. TIP: Premere CTRL mentre si usa un tasto freccia per cambiare Angolo o Potenza piu' lentamente. 4. Premere la Barra Spaziatrice per far fuoco con le armi. 5. Se avete del Carburante, voi potete muovere il vostro tank usando i tasti < oppure >. Il Menu delle Armi riappare dopo ogni round. Usare il denaro guadagnato durante il round per upgradare il vostro tank, quindi cliccare 'Done' per iniziare il round. Il vincitore del gioco e' quello che vince piu' round. Altre Informazioni Altre e piu' dettagliate istruzioni sull'uso del Menu Opzioni sono nel file "Help.txt" presente in questa distribuzione. atanks-6.6/Makefile.bsd0000644000175000017500000004325313006377361013212 0ustar apoapo.PHONY: all clean veryclean HERE := ${.CURDIR} MAKEOBJDIRPREFIX := obj MODULES := network.o aicore.o debris_pool.o sky.o \ teleport.o gfxData.o land.o atanks.o text.o \ floattext.o files.o virtobj.o player_types.o \ shop.o perlin.o player.o beam.o \ optionitemplayer.o satellite.o physobj.o \ globaldata.o optionitemcolour.o clock.o menu.o \ client.o optiontypes.o tank.o environment.o \ decor.o debug.o globaltypes.o missile.o \ optionitemmenu.o gameloop.o main.o sound.o \ optionitembase.o optionscreens.o button.o \ explosion.o update.o VERSION := 6.5 PREFIX := . INSTALLDIR := ${PREFIX}/ CXX ?= clang++ LD ?= $(CXX) LIB := ar ALLEGLD != allegro-config --libs CXXFLAGS += -g -std=c++0x -Wall -Wextra -pedantic -Wno-c99-extensions -I../src -I/usr/local/include -pthread CPPFLAGS += -DNETWORK -DDATA_DIR=\"${INSTALLDIR}\" -DVERSION=\"${VERSION}\" LDFLAGS := $(ALLEGLD) -lm -lpthread OUTPUT := $(HERE)/atanks all: $(OUTPUT) clean: rm -f $(MODULES) atanks veryclean: clean rm $(OUTPUT) network.o: ../src/network.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o network.o -c ../src/network.cpp aicore.o: ../src/aicore.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o aicore.o -c ../src/aicore.cpp debris_pool.o: ../src/debris_pool.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o debris_pool.o -c ../src/debris_pool.cpp sky.o: ../src/sky.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o sky.o -c ../src/sky.cpp teleport.o: ../src/teleport.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o teleport.o -c ../src/teleport.cpp gfxData.o: ../src/gfxData.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o gfxData.o -c ../src/gfxData.cpp land.o: ../src/land.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o land.o -c ../src/land.cpp atanks.o: ../src/atanks.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o atanks.o -c ../src/atanks.cpp text.o: ../src/text.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o text.o -c ../src/text.cpp floattext.o: ../src/floattext.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o floattext.o -c ../src/floattext.cpp files.o: ../src/files.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o files.o -c ../src/files.cpp virtobj.o: ../src/virtobj.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o virtobj.o -c ../src/virtobj.cpp player_types.o: ../src/player_types.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o player_types.o -c ../src/player_types.cpp shop.o: ../src/shop.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o shop.o -c ../src/shop.cpp perlin.o: ../src/perlin.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o perlin.o -c ../src/perlin.cpp player.o: ../src/player.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o player.o -c ../src/player.cpp beam.o: ../src/beam.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o beam.o -c ../src/beam.cpp optionitemplayer.o: ../src/optionitemplayer.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o optionitemplayer.o -c ../src/optionitemplayer.cpp satellite.o: ../src/satellite.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o satellite.o -c ../src/satellite.cpp physobj.o: ../src/physobj.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o physobj.o -c ../src/physobj.cpp globaldata.o: ../src/globaldata.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o globaldata.o -c ../src/globaldata.cpp optionitemcolour.o: ../src/optionitemcolour.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o optionitemcolour.o -c ../src/optionitemcolour.cpp clock.o: ../src/clock.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o clock.o -c ../src/clock.cpp menu.o: ../src/menu.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o menu.o -c ../src/menu.cpp client.o: ../src/client.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o client.o -c ../src/client.cpp optiontypes.o: ../src/optiontypes.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o optiontypes.o -c ../src/optiontypes.cpp tank.o: ../src/tank.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o tank.o -c ../src/tank.cpp environment.o: ../src/environment.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o environment.o -c ../src/environment.cpp decor.o: ../src/decor.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o decor.o -c ../src/decor.cpp debug.o: ../src/debug.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o debug.o -c ../src/debug.cpp globaltypes.o: ../src/globaltypes.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o globaltypes.o -c ../src/globaltypes.cpp missile.o: ../src/missile.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o missile.o -c ../src/missile.cpp optionitemmenu.o: ../src/optionitemmenu.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o optionitemmenu.o -c ../src/optionitemmenu.cpp gameloop.o: ../src/gameloop.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o gameloop.o -c ../src/gameloop.cpp main.o: ../src/main.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o main.o -c ../src/main.cpp sound.o: ../src/sound.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o sound.o -c ../src/sound.cpp optionitembase.o: ../src/optionitembase.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o optionitembase.o -c ../src/optionitembase.cpp optionscreens.o: ../src/optionscreens.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o optionscreens.o -c ../src/optionscreens.cpp button.o: ../src/button.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o button.o -c ../src/button.cpp explosion.o: ../src/explosion.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o explosion.o -c ../src/explosion.cpp update.o: ../src/update.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o update.o -c ../src/update.cpp $(OUTPUT): $(MODULES) $(CXX) $(MODULES) -o $(OUTPUT) $(CPPFLAGS) $(LDFLAGS) $(CXXFLAGS) # Dependencies: aicore.o : ../src/aicore.cpp ../src/aicore.h ../src/player_types.h ../src/main.h \ ../src/debug.h ../src/imagedefs.h ../src/globaltypes.h ../src/externs.h \ ../src/globaldata.h ../src/text.h ../src/environment.h ../src/network.h \ ../src/gfxData.h ../src/floattext.h ../src/virtobj.h ../src/player.h ../src/tank.h \ ../src/physobj.h ../src/missile.h ../src/beam.h ../src/explosion.h atanks.o : ../src/atanks.cpp ../src/debug.h ../src/globals.h ../src/globaldata.h \ ../src/main.h ../src/imagedefs.h ../src/globaltypes.h ../src/externs.h \ ../src/environment.h ../src/network.h ../src/gfxData.h ../src/text.h \ ../src/optionscreens.h ../src/menu.h ../src/optionitem.h ../src/optionitembase.h \ ../src/optiontypes.h ../src/optionitemmenu.h ../src/optionitemplayer.h \ ../src/button.h ../src/player.h ../src/player_types.h ../src/files.h ../src/update.h \ ../src/tank.h ../src/physobj.h ../src/virtobj.h ../src/floattext.h ../src/beam.h \ ../src/missile.h ../src/gameloop.h ../src/clock.h ../src/client.h beam.o : ../src/beam.cpp ../src/environment.h ../src/main.h ../src/debug.h \ ../src/imagedefs.h ../src/globaltypes.h ../src/externs.h ../src/globaldata.h \ ../src/text.h ../src/network.h ../src/gfxData.h ../src/physobj.h ../src/virtobj.h \ ../src/player.h ../src/player_types.h ../src/decor.h ../src/debris_pool.h ../src/tank.h \ ../src/floattext.h ../src/beam.h ../src/explosion.h ../src/sound.h button.o : ../src/button.cpp ../src/button.h ../src/main.h ../src/debug.h \ ../src/imagedefs.h ../src/globaltypes.h ../src/externs.h ../src/globaldata.h \ ../src/text.h ../src/environment.h ../src/network.h ../src/gfxData.h ../src/sound.h client.o : ../src/client.cpp ../src/button.h ../src/main.h ../src/debug.h \ ../src/imagedefs.h ../src/globaltypes.h ../src/externs.h ../src/globaldata.h \ ../src/text.h ../src/environment.h ../src/network.h ../src/gfxData.h ../src/files.h \ ../src/satellite.h ../src/update.h ../src/client.h ../src/beam.h ../src/physobj.h \ ../src/virtobj.h ../src/explosion.h ../src/missile.h ../src/teleport.h \ ../src/floattext.h ../src/player.h ../src/player_types.h ../src/tank.h ../src/sky.h clock.o : ../src/clock.cpp ../src/clock.h ../src/debug.h debris_pool.o : ../src/debris_pool.cpp ../src/debris_pool.h ../src/main.h \ ../src/debug.h ../src/imagedefs.h ../src/globaltypes.h ../src/externs.h \ ../src/globaldata.h ../src/text.h ../src/environment.h ../src/network.h \ ../src/gfxData.h debug.o : ../src/debug.cpp ../src/debug.h decor.o : ../src/decor.cpp ../src/decor.h ../src/physobj.h ../src/globaltypes.h \ ../src/virtobj.h ../src/main.h ../src/debug.h ../src/imagedefs.h ../src/externs.h \ ../src/globaldata.h ../src/text.h ../src/environment.h ../src/network.h \ ../src/gfxData.h ../src/debris_pool.h ../src/sound.h ../src/tank.h ../src/floattext.h environment.o : ../src/environment.cpp ../src/main.h ../src/debug.h ../src/imagedefs.h \ ../src/globaltypes.h ../src/externs.h ../src/globaldata.h ../src/text.h \ ../src/environment.h ../src/network.h ../src/gfxData.h ../src/missile.h \ ../src/physobj.h ../src/virtobj.h ../src/tank.h ../src/floattext.h ../src/files.h \ ../src/sound.h ../src/player.h ../src/player_types.h explosion.o : ../src/explosion.cpp ../src/main.h ../src/debug.h ../src/imagedefs.h \ ../src/globaltypes.h ../src/externs.h ../src/globaldata.h ../src/text.h \ ../src/environment.h ../src/network.h ../src/gfxData.h ../src/explosion.h \ ../src/physobj.h ../src/virtobj.h ../src/missile.h ../src/decor.h ../src/debris_pool.h \ ../src/tank.h ../src/floattext.h ../src/player.h ../src/player_types.h files.o : ../src/files.cpp ../src/main.h ../src/debug.h ../src/imagedefs.h \ ../src/globaltypes.h ../src/externs.h ../src/globaldata.h ../src/text.h \ ../src/environment.h ../src/network.h ../src/gfxData.h ../src/player.h \ ../src/player_types.h ../src/files.h floattext.o : ../src/floattext.cpp ../src/floattext.h ../src/main.h ../src/debug.h \ ../src/imagedefs.h ../src/globaltypes.h ../src/externs.h ../src/globaldata.h \ ../src/text.h ../src/environment.h ../src/network.h ../src/gfxData.h ../src/virtobj.h gameloop.o : ../src/gameloop.cpp ../src/main.h ../src/debug.h ../src/imagedefs.h \ ../src/globaltypes.h ../src/externs.h ../src/globaldata.h ../src/text.h \ ../src/environment.h ../src/network.h ../src/gfxData.h ../src/files.h \ ../src/satellite.h ../src/update.h ../src/land.h ../src/clock.h ../src/floattext.h \ ../src/virtobj.h ../src/tank.h ../src/physobj.h ../src/explosion.h ../src/beam.h \ ../src/missile.h ../src/decor.h ../src/debris_pool.h ../src/teleport.h ../src/sky.h \ ../src/sound.h ../src/gameloop.h ../src/player.h ../src/player_types.h ../src/aicore.h \ ../src/shop.h gfxData.o : ../src/gfxData.cpp ../src/main.h ../src/debug.h ../src/imagedefs.h \ ../src/globaltypes.h ../src/externs.h ../src/globaldata.h ../src/text.h \ ../src/environment.h ../src/network.h ../src/gfxData.h globaldata.o : ../src/globaldata.cpp ../src/player.h ../src/player_types.h \ ../src/main.h ../src/debug.h ../src/imagedefs.h ../src/globaltypes.h ../src/externs.h \ ../src/globaldata.h ../src/text.h ../src/environment.h ../src/network.h \ ../src/gfxData.h ../src/files.h ../src/tank.h ../src/physobj.h ../src/virtobj.h \ ../src/floattext.h ../src/sound.h ../src/debris_pool.h globaltypes.o : ../src/globaltypes.cpp ../src/globaltypes.h land.o : ../src/land.cpp ../src/land.h ../src/main.h ../src/debug.h ../src/imagedefs.h \ ../src/globaltypes.h ../src/externs.h ../src/globaldata.h ../src/text.h \ ../src/environment.h ../src/network.h ../src/gfxData.h ../src/files.h ../src/gameloop.h \ ../src/player.h ../src/player_types.h main.o : ../src/main.cpp ../src/main.h ../src/debug.h ../src/imagedefs.h \ ../src/globaltypes.h ../src/externs.h ../src/globaldata.h ../src/text.h \ ../src/environment.h ../src/network.h ../src/gfxData.h menu.o : ../src/menu.cpp ../src/optioncontent.h ../src/optiontypes.h \ ../src/globaltypes.h ../src/optionitemcolour.h ../src/optionitembase.h \ ../src/environment.h ../src/main.h ../src/debug.h ../src/imagedefs.h ../src/externs.h \ ../src/globaldata.h ../src/text.h ../src/network.h ../src/gfxData.h ../src/button.h \ ../src/menu.h ../src/optionitem.h ../src/optionitemmenu.h ../src/optionitemplayer.h \ ../src/player.h ../src/player_types.h ../src/clock.h missile.o : ../src/missile.cpp ../src/explosion.h ../src/main.h ../src/debug.h \ ../src/imagedefs.h ../src/globaltypes.h ../src/externs.h ../src/globaldata.h \ ../src/text.h ../src/environment.h ../src/network.h ../src/gfxData.h ../src/physobj.h \ ../src/virtobj.h ../src/missile.h ../src/decor.h ../src/debris_pool.h ../src/tank.h \ ../src/floattext.h ../src/player.h ../src/player_types.h ../src/beam.h ../src/sound.h \ ../src/aicore.h network.o : ../src/network.cpp ../src/network.h ../src/player.h ../src/player_types.h \ ../src/main.h ../src/debug.h ../src/imagedefs.h ../src/globaltypes.h ../src/externs.h \ ../src/globaldata.h ../src/text.h ../src/environment.h ../src/gfxData.h optionitembase.o : ../src/optionitembase.cpp ../src/button.h ../src/main.h \ ../src/debug.h ../src/imagedefs.h ../src/globaltypes.h ../src/externs.h \ ../src/globaldata.h ../src/text.h ../src/environment.h ../src/network.h \ ../src/gfxData.h ../src/menu.h ../src/optionitem.h ../src/optionitembase.h \ ../src/optiontypes.h ../src/optionitemmenu.h ../src/optionitemplayer.h \ ../src/floattext.h ../src/virtobj.h optionitemcolour.o : ../src/optionitemcolour.cpp ../src/optionitemcolour.h \ ../src/optionitembase.h ../src/environment.h ../src/main.h ../src/debug.h \ ../src/imagedefs.h ../src/globaltypes.h ../src/externs.h ../src/globaldata.h \ ../src/text.h ../src/network.h ../src/gfxData.h ../src/optiontypes.h optionitemmenu.o : ../src/optionitemmenu.cpp ../src/optionitemmenu.h \ ../src/optionitembase.h ../src/environment.h ../src/main.h ../src/debug.h \ ../src/imagedefs.h ../src/globaltypes.h ../src/externs.h ../src/globaldata.h \ ../src/text.h ../src/network.h ../src/gfxData.h ../src/optiontypes.h ../src/menu.h \ ../src/optionitem.h ../src/optionitemplayer.h ../src/button.h ../src/clock.h optionitemplayer.o : ../src/optionitemplayer.cpp ../src/optionitemplayer.h \ ../src/optionitembase.h ../src/environment.h ../src/main.h ../src/debug.h \ ../src/imagedefs.h ../src/globaltypes.h ../src/externs.h ../src/globaldata.h \ ../src/text.h ../src/network.h ../src/gfxData.h ../src/optiontypes.h ../src/player.h \ ../src/player_types.h ../src/floattext.h ../src/virtobj.h optionscreens.o : ../src/optionscreens.cpp ../src/optionscreens.h ../src/menu.h \ ../src/optionitem.h ../src/optionitembase.h ../src/environment.h ../src/main.h \ ../src/debug.h ../src/imagedefs.h ../src/globaltypes.h ../src/externs.h \ ../src/globaldata.h ../src/text.h ../src/network.h ../src/gfxData.h \ ../src/optiontypes.h ../src/optionitemmenu.h ../src/optionitemplayer.h \ ../src/button.h ../src/player.h ../src/player_types.h ../src/files.h ../src/sound.h optiontypes.o : ../src/optiontypes.cpp ../src/optiontypes.h perlin.o : ../src/perlin.cpp ../src/main.h ../src/debug.h ../src/imagedefs.h \ ../src/globaltypes.h ../src/externs.h ../src/globaldata.h ../src/text.h \ ../src/environment.h ../src/network.h ../src/gfxData.h physobj.o : ../src/physobj.cpp ../src/physobj.h ../src/globaltypes.h ../src/virtobj.h \ ../src/main.h ../src/debug.h ../src/imagedefs.h ../src/externs.h ../src/globaldata.h \ ../src/text.h ../src/environment.h ../src/network.h ../src/gfxData.h player.o : ../src/player.cpp ../src/environment.h ../src/main.h ../src/debug.h \ ../src/imagedefs.h ../src/globaltypes.h ../src/externs.h ../src/globaldata.h \ ../src/text.h ../src/network.h ../src/gfxData.h ../src/player.h ../src/player_types.h \ ../src/tank.h ../src/physobj.h ../src/virtobj.h ../src/floattext.h ../src/menu.h \ ../src/optionitem.h ../src/optionitembase.h ../src/optiontypes.h \ ../src/optionitemmenu.h ../src/optionitemplayer.h ../src/button.h ../src/files.h \ ../src/missile.h ../src/aicore.h player_types.o : ../src/player_types.cpp ../src/player_types.h ../src/main.h \ ../src/debug.h ../src/imagedefs.h ../src/globaltypes.h ../src/externs.h \ ../src/globaldata.h ../src/text.h ../src/environment.h ../src/network.h \ ../src/gfxData.h satellite.o : ../src/satellite.cpp ../src/environment.h ../src/main.h ../src/debug.h \ ../src/imagedefs.h ../src/globaltypes.h ../src/externs.h ../src/globaldata.h \ ../src/text.h ../src/network.h ../src/gfxData.h ../src/satellite.h ../src/beam.h \ ../src/physobj.h ../src/virtobj.h shop.o : ../src/shop.cpp ../src/shop.h ../src/player.h ../src/player_types.h \ ../src/main.h ../src/debug.h ../src/imagedefs.h ../src/globaltypes.h ../src/externs.h \ ../src/globaldata.h ../src/text.h ../src/environment.h ../src/network.h \ ../src/gfxData.h ../src/files.h ../src/gameloop.h sky.o : ../src/sky.cpp ../src/externs.h ../src/globaldata.h ../src/main.h ../src/debug.h \ ../src/imagedefs.h ../src/globaltypes.h ../src/text.h ../src/environment.h \ ../src/network.h ../src/gfxData.h ../src/sky.h ../src/files.h ../src/gameloop.h \ ../src/player.h ../src/player_types.h sound.o : ../src/sound.cpp ../src/sound.h ../src/externs.h ../src/globaldata.h \ ../src/main.h ../src/debug.h ../src/imagedefs.h ../src/globaltypes.h ../src/text.h \ ../src/environment.h ../src/network.h ../src/gfxData.h tank.o : ../src/tank.cpp ../src/floattext.h ../src/main.h ../src/debug.h \ ../src/imagedefs.h ../src/globaltypes.h ../src/externs.h ../src/globaldata.h \ ../src/text.h ../src/environment.h ../src/network.h ../src/gfxData.h ../src/virtobj.h \ ../src/explosion.h ../src/physobj.h ../src/teleport.h ../src/missile.h ../src/player.h \ ../src/player_types.h ../src/beam.h ../src/tank.h ../src/sound.h teleport.o : ../src/teleport.cpp ../src/environment.h ../src/main.h ../src/debug.h \ ../src/imagedefs.h ../src/globaltypes.h ../src/externs.h ../src/globaldata.h \ ../src/text.h ../src/network.h ../src/gfxData.h ../src/teleport.h ../src/virtobj.h \ ../src/tank.h ../src/physobj.h ../src/floattext.h ../src/sound.h ../src/player.h \ ../src/player_types.h text.o : ../src/text.cpp ../src/text.h ../src/main.h ../src/debug.h ../src/imagedefs.h \ ../src/globaltypes.h ../src/externs.h ../src/globaldata.h ../src/environment.h \ ../src/network.h ../src/gfxData.h update.o : ../src/update.cpp ../src/debug.h ../src/update.h ../src/network.h \ ../src/externs.h ../src/globaldata.h ../src/main.h ../src/imagedefs.h \ ../src/globaltypes.h ../src/text.h ../src/environment.h ../src/gfxData.h virtobj.o : ../src/virtobj.cpp ../src/virtobj.h ../src/main.h ../src/debug.h \ ../src/imagedefs.h ../src/globaltypes.h ../src/externs.h ../src/globaldata.h \ ../src/text.h ../src/environment.h ../src/network.h ../src/gfxData.h atanks-6.6/title/0000755000175000017500000000000012636021030012100 5ustar apoapoatanks-6.6/title/0.bmp0000644000175000017500000341006612636021030012751 0ustar apoapoBM66(  㖖WWWdddllltttyyyzzzsssqqqttt|||שּׁrrrFFF000DDDLLLLLLLLLOOORRRQQQNNNMMMHHHDDDNNNeeeooo{{{۠aaa===888HHH^^^ggg^^^VVV[[[aaa]]]RRRHHH=N=3F3;Q;P~PRRZZXXCqC2`26c6]q]ooç̐]]]QQQJJJFFFSSSgggpppeeeXXXYYYW\WReRHmHAqA88.y.66??2288<<..""%%&r&$o$^._.@a@rrw{w׼lllfffZZZOOO@@@===JJJVVVYYYPPPjjj~~~xxx[[[^^^^^^RRRLLLRRR```aaaRRRFPF?\?>k>;;889933--7744""##$$""&&$$xYD6P6X_X~~~ȷsssjjjWWWOOOPPPLLLEEECCCEEEJJJIIIEEE<<<333 aaaႂ```dddiiicccRRRPPPPPPSSSCKC3G3(\(%%))((%%))&&!!""&&3`3>Q>>D>@@@cccxxxײDMDF>/_/%%((++## }z{|||}~ ""**..**1l1;G;EEEQQQaaa___kkktttxxxQQQWWWVVVXXXNNNLLLDDD8y85500 zvuuohfd_YY[ZXXUUU[eiijnx**$$((338e8___|||gggaaavvv~~~xxxnnn]]]III>M><^<9f90r0]Q O 7 =.>.HHHkkkɶ[[[RRRVVV___ooossshhhooo~~~T^T5m5&&"" |zxsonoqqsuwyy~ ""''""##(g(8J8III_________iiipppdddXXXVVVZZZfffWWW;;;&?&**00((zyyupjjg\OLWYWVVPNMS\cfafpx} $$##..J\Jtttwww```\\\vvvpppYZYFTF0T0&j&$$,,..{m P /  :;:Ӽkkk[[[LLL]]]iiiiii```bbbrrrrrrppppypLL11  |xusnmkheegegikrvw} .s.AMA[[[eeeVVVWWWZZZaaa```bbbaaaRRR[[[mmmZZZ*-*g""++ }yyyrkkk^LBJVUQROJEEMOZb]`kqz}{ **??bbbwwwcccZZZqqqoooX\XBZB3p3"" V7R7]c]sss```QQQWWWۡMOM&(&GGG]]]```aaaiiiuuusssvvvnnnnnnxxxzzz}}}zzzwwwyyylmlUUHH'' !!~wtolhabdebbdceebjvwxy} ,,:u:QUQgggWWWLLLMMMWWWWWWHHH]]]IIIYYYhhhPPP5##''|wywmggbNB;ILIHGDA?DFHTZ\[fnuz~))99V]VtttfffWWWhhhyyymmmJNJ7W7-- }zwtsv| 22HlHW\WVVVVVVWWWQQQEEEFFFRRRxxx岲MOM$)$ %5%:A:GLGNPNZZZhhhwwwxxxzzzuuudddmmmjjj@K@==11##,,**|rnljf_XXWXYZ\\bgccitvutz##3388?]?UUUTTTJJJQQQTTTWWWQQQGHH???OOO???XXX___BBBe""##""||{twtibcVD0;?D@>;=CBABDQXZZ`or}{x%%00..HvHdddfffYYYeeegggPQP0K0..{tqooonptsw~440O0676NNN___\\\HHHLLLGGGNNN[[[sssβCCC * U k**==77.r.,J,666PPPdddxxxwww\\\```www}}}QQQ00((%%((~|ridfgcVQQRXWYYVOVeigjsvyyz--2200222DDDSSS___XXXXXXRRR+>>555CCCEEEZZZTTT111,,** {|xpsrcf`P838;C<:;9?>DI=LRR]^rqx|vy 22&&55RRRnnnjjj```TTT3D3%%$$wsl`^ejiiooqu}'')>)LLLaaakkk[[[QQQMMMMMMVVVdddrrrvvvjjjoooyyy㪪pppcccqqqjjj8<84j !!*}*;[;LOLfff|||ttt[[[bbbwwwiiiBjB,,##}|smc^e^TPHINTUUYYKGQdmlmtzyy~ ""--$$S111\\\mmm[[[UUU```rrrZtt3LL>>>HHHHHHYYYKKK#*#))$${ytsvm^fYF==69EEJ+A+%9%6<;GFEDCZbtopzvv..(())HLH}}}ZZZ353cxok\NNTRRPR[^cq{ $$)x)7;7XXXiiihhh\\\UUU___XXXPPP]]]jjjaaajjjnnngggIII888$$$***ZZZǠ{{{kkk[[[```VVVVVV^^^fffQ`Q6z6 |xz} **6t6DPDZZZ{{{lllXXXeeewww\\\<<))z~xoh]\]VKID@DHLLNQK>GUfiipxyx| ))##~","VVVjjjZZZMMM```RRR=nn>XXLLLTTTSSSZZZAAA:##zwtwyj]gOEFB82A(L(R]RSWSY\YLTL89=IG@8Sdrlkzxv2200))BRBNNN< xpl`MGHJDBDAKPRbp}''"G"999YYYcccZZZ___pppjjjWWW[[[```PPPIIIDED:F:*R*A:7(+++AAAyyyı{{{```LLLJJJFFFWWW\\\RRRDDDAQA==((|wurpstvwz%%33?5;IMV`q u"""III[[[SSSbbb|||dddZZZNNN5=5(P(/~/++}x}}sj; 555TTTgggoootttԸ}}}|||kkkXXXMMMJJJOOORRRddd```MMM/;/,w,%%ztqqmkljfhpw))*q*AJA]]]bbbbbbjjjZZZ>>**11"" ~w|zqq_\VUN@FC@A;;<>C=92=Sadfsury|{  &&&&999YYYYYYBBBHHH:::8CC4``3ssI``[[[[[[eeehhhDDD9 |zxyzk_^FEGA9- ? dfdfff}}}HJH=:BC79R^lllxzy++--**$8$^^^```-@-!!slhZLC>3:I>G51BGOSbx#:#EEE___SSScccgggNPN:S:#h#r  y"j"/Q/?A?OOOPPP>>>YYYXXXxxxؽjjjsssaaauuuqqqkkkdddooofffYYYWWWVVVQQQWWWbbbkkk\\\ACA(\(%%wlgd`\]^\VVdor &S&BDB]]]wwwvvvMNM..''00xv{tps`\JKHAH?= ; 9>BAD:78:K\f`otqvz{ ''++)-)OOOZZZFFFEEE999/DDs#^^WW;PPQQQPPP]]]dddAAA 8  |zyy{k\]F@BA9/ A ikinnn@C@=8@;4>R]lmnvyz%%++))$8$WWWVVV*U*ql`VJC85B(R(/J/#M# 3 6>@LLVq-a-FFFhhhXXXbbb}}}`c`GpG'x'|xzyy| --BrBTYTcccUUUGGGGGG???333:::zzzÑoooFGF,4,   16H6PUP[[[[[[YYYdddZZZQQQ```hhhZZZ\\\gggbbbIII+?+((uiZVRHIIJNJITemr y'5'TTTENE((++//vwzmnscW=AEHC9 : -C-?I?AKA9T9IC67@ADTf]kwusx{ &&0FFFZZZMMMNNNEEE9RREkk/UUTT 22/HHGGGGGGSSSYYY<<<7$$ |zyx|nY^J?BD<3BQaQmnmrrr|||ggg-=-A6:35AO_pnptxz$$//((->-XXXTTT,n,|pk[UL?1 A DPDWWW___ZZZ)6)AA=HJOn{2~2EEElll]]][[[kkk{{{[v[EEz|wolnlknsx77RwR]^]XXXKKKTTTRRR===;;;ZZZiii]]]NNNZZZgggˬmmmDDD ( > Z\[e,U,3Q36D6BEBXXX[[[]]]tttyyybbbWWW___PPP***Z##wh[NLC:A>ADCEHYioqPDDD~~~|||;O;**2222vxzjkqcQ6>HH:<+<+eeeooobbbbbb=Q=@.9CIFKf^jzxuwz >???^^^[[[ZZZTTTD^^9ssPP BB -UU?AACCCNNNTTTEEE"3"//"" }zyx|t]^MAGE@== L K\KNZNISI8G8;41017CPdsossz|##44++5=5XXXQQQ00yrkZUM8+%K%dddaaarrr}}}SSS ; G>DJNit11BBBmmmcccTTTaaaipi^^33{{ule]]ZX[bkq}OOQ\QPPPEEEVVV]]]NNNHHH]]]jjjaaaPPPCCC>>>CCCYYYhhhɶooonnn000@@@GGG>?>*2*8a %%''`(B(BHBVWViiibbbPPPYYYCCC"|jXQLF41@>A76ADN]llu!!040hhhfff';'++////xzzklm`P89FC<EILI|||rrrccc]a]@+;BKHH``jzywy{ ;BBBffffff```^^^Nff:zz?^^-LLMM.. ..1ll9CCBBBMMM[[[[[[88855##{zxzyg`PDKDBHCEQ S KC;4/)7=JVjrrvt~ ""66))888YYYLLL22zujZUK82>Q>nnnoooeee2BC;EQhp %%<<-:N?Q>0;CIVdlr !!*L*WWWVVV 4 ****&&zzwmlk\S;4?A85GGGiiilll>/8@CBE\^kzyyz|  8 EEEjjjcccVVVWWWCZZ+kk(bb׋II << GG:zz2KK888OOOfffpppQQQ77&&""z{yvzpdXJLGBEIB<??9=@11FNQ\mnvyx$$00O;;;[[[MMM99zrfWVJ>;>\>yyyyyy]]]/>G6?Wlp ((===ccceeelll^`^cc11vpiZ== M > L M<BMdSSGMGOOOZZZmmmmmmSSSIIIAAA>>>GGGCDC9;99N95I52F27K78F9?9xxx~~~tttfjfD0;C@>H^Yl|xyz| 9<<<]]]VVVJJJKKK3FFAA[[C^^5PP EE**&&[[3ss1\\+++HHHfffrrr```9]911  }||xxsi`SQIFDDH?;?@B=6ATXVclk{yz %% )BBB```XXX??$$~qbXVJ@@!S!iiijjjrrrrrrEFE?<C4B\mq88BBBTTTYYYppp`n`ZZ}qocJI.J.QWQUXUSYS2C2<7ETw ==IiIWWWccchhhbbbVVVDDD9991112P23t3&~&t.g.L`LYYYRRRǸvvvWWWEEEFFFMMMcccooo___CCCFFFYYYVVVGGGRRRRSRSS##xrjc`cggkqx|>>]]pppeeeUUU```mmmDDD44wjNKG=F?CFCmmmggg[[[Y\YG+:MUZkqz//SSSXXX3?3**22##{ysqoraNA61438<OQO```aaaaca5S5>8>EE@L^Zr|xyz} !!**3>>>TTTOOODDDCCC-MM !!KKRRΗ ;;::!! ??$dd)iiVV%%888RRRcccbbbCIC11$$}}}xureZSPLJJD=>A><CEHW_bhioy{}##h$&$KKKggg___AA22ucUTLECH/M/DPDMMM7>Lq&&FF^^^eee[[[UUUGGG444,9,-x- te\PQRTa}GGffNYNCCC{{{uuummm\\\XXXMMMJJJOOOWWWXXXZZZUUUKKKZZZaaaSSSEEEOOOVwVDD xjcWROOMN\gqw{$$__bwb^^^XXXggglll>>>**qhOG?AD6___iiiiii5N5/7LUZktz11NNNYYY696++66""~}ttprgSG:4+03;E/O/4W4&W& H @DADJBN_bw{xz{~##33.4.QQQWWWMMMCCCIKM]dceitz 4555TTTiii___@o@66}iXPMJH@ C F=E;?E:9Rfkx33UUTTTPPPXXXeeeaa66}|pmT< E kkkdddooo+9+;9Lq~>>ZZZdddRRRGGG777*=*-- t aPMF:FDNb AAOO6?6<<<کlllTTTCCCHPHCNC@K@CNCDODCCCKKKOOOFFFGGGLLLQQQhhhiiiWWWKKKJMJVV''kWMDMK A I@G^krx DDaa^_^eeegggfff==='' pjTB8E@0aaauuuttt?W?7;JVXhsz66MMMZZZ999#h#33##vwtpkYNF?-0:<= E HFCFFBFLGTblzxy{z %%66FFFfffaaaNNN<<<5GG6tt <<&& DDJJȴ::**CC$dd"bb ==##QQ!)),,,HHHYYYSSS:>:$p$ {y}ujcc_VRRICHHLVTYeefgmv $$""T.0.HHHZZZccc]]]>M>22seXLIJFDB789DE=G^hpLLViV^^^VVV]]]ggg]]22{{onP4$K$wwwnnnooo&6&@:Qr::TTTdddOOOAAA-9-22 tbLH.L.@T@JQJI[I)C)DKd--GG./.[[[dddJUJ8V8*Z**l*(n($h$$j$,s,.^.:^:?JVXdr|""<@=?=>FFDDHOO\frywz|| !!,,8n8YYYqqqfffKKK1112TT6vvRR$$22 GG]mmx 33!!""YY*jjZZ** 11.nn:]]+00<<Tr!!77PPPdddPPP@@@0T066`X@JYZY^^^iiiuuuTTTFDNdNN;H;DDD]]]KPK^^JJ s nqs o o |u"w"(l(.S.282<<@??@=>GGGIMRWcmtxz||""22>R>aaakkk]]]@@@$(('ZZ.nn!`` 22$$ @@BBò/GG11 66%ee)iiKK!!OOGZAWW111DDD\\\XXX=?=O((.."" yxpjfggdccca`cdejntxx%%))!!%%$J$>?>UUU___YYYRRRXXXGGG.L.##zr`SRIHMPRROKTaex>>IoI___cccSSSSSS___XwXVVwnrX1:BVBU_UZ[ZT\T4D4:=DUp((3d3MMM```VVVIII>}>11rZR@*N*mmmeeeiii)D)EF`}<>>NNNVVVddd]]]BB ~pK;8$<$hhhqqqaaafffH?Wlo|<C@?FLLPUV]jvwx~~ %%1s1HHH```\\\GGG///**FF!__%eeKK##4466oxx˿..--OO*jj __ 33++3ssakW(33455SSSaaaRRR121T##44**  }yupjedegijgggkouz!!&&))!!G111TTTeeehhh^^^PPPUUUOOO8<8+s+%%znc`[QMONGNWblt!!</ > 'L'1E1$G$ = ;CMZs115H5LLLXXX\\\WWWLL++iXSH6T6vvvoookkk+;+GKg~++N{Nlll~~~***;Z;DD))sRGC)M)1>1#K#MIVf**+X+030BBBPPPcccWWW;;~qN9=,6,rrriiiqqq%F%8Qmp||11^^eee[[[RRRYYYYY@@ mgY?9F<8B8CC@IJMR]n66?`?^^^gggXXX???#'#x!! |ukddfaRONCCGBFOPRZ^^et|xy !! $$3;3PPPZZZNNN333 ##@@$$HH%ee__ 44&&00&??ʳ8GG00%%((!``)iiMM!!JJWsvHAA(00@@@[[[fffUUU8;8O''**&&$$!! ~zwqljkklmprx} ''""((}<%&%JJJaaakkkooohhhXXXUUUVVVFFF0C033## yokndXUNJXclv ))B[BZZZccciiiXXXSSSeeejjj[[@@oknZ==C@HCBWai--66BBBPPPPPP\\\___NN00k[VM!]!vvvqqqYYYA@Tt 88OfOsss;;;373RRiVE B FFFjjjccc\\\LMLGB^d88,B,???OOOdddRRR::sS<C6iiirrrzzz!N!1Oon{{55]]hhh^^^YYYbbbTTTVV""uibOBEK=28BEJKGL_mx//===\\\^^^\\\RRR:::2##'' xpkieia[]VNKGNWU[ehhow}z~ ""%N%AAAWWWVVVAAA&''%77%dd$$11__(hhQQ$$ 44Đ ,,&& >>,kk__ <<))1ppus QQ %%.XX5::EFFfffrrrgggBBBB~##!!""$$}zywx{}~ ..00##z'$$$FFF[[[bbbhhhwwwtttaaaWWW^^^[[[???'D'%%{vqliiggnty  ?b?___gggbbbccc]]]\\\ppp}}}`l`OO44 ~ inobP>7@O\jq{;;8N8WWWRRRFFFQQQTTTFYFBB } ebPUT]T]a]\]\SVS.3.AJc ++^^TVTOOOD\DHH~^EB"L"dddppp___hhhM<R[y555i5BBBRRRcccNNN4t4## pUB= : KKKllljjjiiibeb B /Sqnx RRZZaaaVVVSSSccc^^^KK>> o_[LEQWRPOGBJKZnv~*X*DDDZZZTTTWWWZZZLLL343 a ##%% ))$$ wttngebcb]^^_adjkghoxy| ''((k494RRR^^^KKK5551::Q:yy ??!!UU+kk"bb**22M[[̻COO--TT)iiEE""AAZLjO ..88[n8CCEEEffftttjjjNON,8,k!!,,--))""  ''88CC55T 010QQQ```\\\VVV```tttnnnaaa___eeelllWWW3332y&& }{||~ 4U4\]\nnnmmmYYYRRRWWWXXXqqq|||ddd>i>KK**ygmuk`]dhlqx++-i-HHHiiiSSS@@@GGGNNN<=3KKKVVVOOOZZZddd___LLL(0(`$$##((''  |~{vpifdceiieedbelrxz''66))j#.#GHG___ZZZ<<<+,,TzzdW$aa"" >>&ff)iiEE//22Ş ,,0055!``VV %%,hht~#]] &&A||tS6OO222XXXhhhaaaOPO>G>/N/&t&""%%::JJ==** !!%%00<<11\ % !)!=>=ZZZlllkkkXXXLLLVVVhhhaaabbbfffooonnn\\\>>>"&",W V,A,LPLeeejjj___NNNOOOOOOTTTfffooo```@E@:p:DD..toolnqnt ((,n,8@8hhhuuu]]]JJJPPPRRRJJJ9=9&T&!!_VWNP_ { ..<<;Y;?A?GffoooNpN..nOB?eeerrrzzz,\,KTYh,,OO^^^]]]TTTOOO;A;44&&zbXN<@ J D G ;3Mknm44ZZbebaaaPPPVVVhhhbbbSVS;j;$$}pg\QEKPR]gfit00,S,?@?SSSUUUTTTccckkkiii]]]???,X**$$$$~|xrmkiihhfgkqvz|""%%----g&<&EEE___```III+,,$AASskG ;;&&VV+kkYY""**11V__̽X``0011''NN"bb AA::VÑY99NNzhV,``&&*99BDDNNNQQQNNNJNJ>N>'H'U446600//''!!&&6699))$$pM )   &&&EEE```hhhbbbOOOMMMRRRUUUQQQ\\\dddfff```TTTCCC666+-+& & O v''((**'' c&D&6D6UWUiiikkk^^^]]]ccc[[[UUU[[[```[[[XXXRRRITI:]:6600(( ..//6a6FSFWWWmmmjjjZZZQQQYYYSSSQQQSSS;C;5Pw$$*~**^*,C,-62+FF:ZZyyyR]RPP}[D @ BBBmmmppphhhfhfYN]_t<FRfoiu%%II^}^uuulllXXX\\\fffcccbbbR]R4w4rldZ\`ahoqu %%+h+8?8QQQZZZVVV]]]oootttjjjbbbTTT787+J"" !!,,'' }ywurqssuy|~ ""##$$c1E1STSggghhhOOO777)DD//2hhv{h#^^%% DD$dd(gg 44++77æ::22(( <<^^YY 55 0kkqϊ-ii ..KԁaKBB ##"SSAdd8HH577???HHHAAA()(%>Q]$$((,,,,mL 3 222AAAFFFFFFAAADDDCCC<<<<<DDSmmF||//>>`~G 66..QQ*jjJJ!! --gmmɼgnn 4400%%KK'ggMM''>>Sn==FFzn\2qq %% ..<{{P8gg%HH"66/EE5FF#++  :?RUURMLVAC!3    ""''"**"''(--/77088.55+333;;5==/33.66.66-55.55(,,""     !" -55CJJCCCOOOYYYWWWKKKIII[[[ccc[[[OOOJJJHHH@@@???TTTmmmdddEEE ( 28NOPM< / %%%IIIZZZRRR>>>111,,,888===;;;OOOmmmkkkHHH+++222AAAGRGD>YYYjjjeeeKKK=JJFggrq+\\ ))8ttËhVV 44"__[[((//&<<$<<77**//WW*jj ==(``m͕>tt##UU0<<1HHBZZF^^7OO8FFRbbc||`xx4LL'' 225500**-EEIbbHaa3II%33*BB:SSAZZ?WW5KK=HH[qqmXppLddJccPhhMee8OO)88/HHAffDuu;qq)ffII?__򨭭Abb5AA3A56t6//##w k j sqqz e /F/EEENNNRRRUUUNNN\\\qqqmmmGGG8]800&& y{ !!55AA?\?HHH\\\eeebbbWWWQQQUUUWWW]]]dddhhh[[[@F@#I#i~w];"&",,,AAAXXXhhhkkkfff___YYY^^^SSSLLLSSSggglll```CCC$$$  3 l**%%""##""**%% ))//==CC//$w$2_2=I=HHHSSSZZZWWWAHH ))0XXWo_88IIl}A ))KK"bb CC11++|Ⱥ{~~//77%% @@%ee'gg++##?}}}u99))jt^3pp // 993qqS;{{ XX""&& __3ssKB/oo$dd 99##XXCQ8xx%aa 44&&!^^9yyVgF3ss-llFF++SS6vvcP+kk&ee>> 886vv`T3ss"__ ;;==?:yyMM ((@@1qqIS@.nn \\ ..--$ddBfS>4ll[P?ww*UU(==;mm]\_SO;qq"LL!LLC||YD+iiBB KKWnnFF'::(21&=&*_*'v' ~!!**++(v("`"2"$"JJJ```UUUOOOWWWOOOQQQ^^^hhhbbbTTT?N?1p1//&&$$(($$##--117p7AJAXXXZZZTTTSSS]]]]]]YYYbbblllaaaXXXjjjqqqdddHHH464'N'dr$$''&&%%jR+111<<<@@@JJJSSS[[[]]]TTTGGGHHHLLLJJJHHHVVVZZZTTT>>>""" ! F j&&9988** !!%%--**''"{"R2(,(DDDNNNKKKFFFAHH;II>> $$"XXRcˍ3kk 00BΉgSS 99__XX11..226GG6EE3300++PP.nnYY CCZȓ>xx -ZZЎkNJJ..SSHE+jj 44<<+kkD\?*iiOO'' 33&ffTL*jj<<---llCri:zz,llRR)) ;;$ddHf9yy&ffOO RRPo@&ff AA(("YYE"\\QQ;{{XS8xx#cc>> <<-mmLZ8xx,llBB DD7wwX?RR)) 22*hhT8vv88 FFNHVV-- 119yy_N2rrNN((YYGENN''DD5uu]?%bb11** XXASL8xx2qqGG(($ccOP1qqJJ --jww羾"IIVV)NN%11%,,$))!5#!9!,D,;S;CZC;;;***!!!@@@fffpppWWW@@@EEE@@@666AAAQQQbbbcccNNN(((&[ u **..--++lW,>>>bbbqqq^^^KKKKKKTTTWWWZZZgggrrrhhhQQQ]]]llllllZZZHHH<>>&(( '! " #  0118::133244577>??EGG>@@2441339;;<>>788344144,..$&&  Fd! e""$_^-&((=AA>DD166&222QQH}}+jj %% --A^ve33OO{D ,,..SS$dd FF##11 11ͺ ++,, ==^^*iiBB''3ppor55++l|b/nn 00 @@3rrK2rrOOWW4ttVP4tt ^^ 55!!MM<||_9yyWWQQ<||XnK2rr ^^33&&XX8xxZT,ll\\ 22>>0ool_/ooYY,,88=||;zz88 00/ooJdE(hhOO%%--VV:zzXE/ooRR$$ 11$bbOI\\22##MMCCPP ,,1mmK"__ 11$$!\\VV9yy]]..44'ggO,ll22--QQBI"aa ::$$ ;;!aa>~~R8xx(hhXX,, >>:zzU9yyZZ 11/GG뛠KKNN8xx?mm?dd.>>#&&.//=@@KMMHJJ;==8::PRRoqqikkFGG577799255$&&!##*++?AAPRRDGG#%%  %((OQQfhhfggGII3667::<>><>>BCCMOOSUUOQQADD799?@@DFFBEE>@@L[[7GG//  ####!!))(("00(88,<<'77((#33'77%55,<<)88"33""!!"" **%%  ##&&   ""##!!    **!11.MM HH55"^^=}}VM99!^^Yf͐']]((X܈dRR FF*jjRR''//77;IIƴ;HH11!!GG#bbPP!!CCT{:vv*[[ڌqMHH..[[H@^^ 00??,llDQ7ww2rrLL 22!``XQ)ii 99 550ppMgU9yy.nnGGCC/ooH[;{{)iiDD 44^^Hh=}}&ff CC$$)ffJ"^^%%##!__8xx`]8xx]]55##II,llPR/oo!^^ --RR@T(hh GG ::7wwJ#aa..## ZZR4ss << <> ++juu CCRR7uuJW>&VV1bb:ll4ff??DDEvvs`:[[&CC:llVJ{{%TT44.]]Izz[Izz(YY..??7hhArr_f>{{\\'' 88&cc/ll>{{MA~~-jj::44)bbB~~9vv33FF,ii7ttYS,ii --II+hh*ggVY-jjII$$PP2oo2ooG\C4qqSS&&@@.kk:wwM9vvOO >>)ff.jj?||>{{-kkXX 11+iiAW&bb// 66CbyT MM̓w3oo 22+kk^^99&&88 --Ѿ **&&..[[TT )eegwCC **nށd)gg (( BB2rrH.nnGG(( ^^9yyWI7ww&ff 55!!VV>~~^:zzMM&&#``;{{deA1qqZZ++$$YY.nnS@&ffYY++""NN(hhSE(hhHH))>>B+jj 55JJ+kk6vv_@)iiHH"" @@"aa>~~a?(hh == 66/ooO:zzUU--..#aaO.nn ??!!JJGLPP&& (eeX@)ii FF## CC.nnU.nn 3366RRF8xxXX,, 77WW-mmB@.nn\\ 99!!JJ.nnP.nnFF 22lxx?WW 00XX:zzWJYY-- YY>||BUUJ(\\,,??2ppJ`2pp@@ ..[[MBPP**YY6uuOZ*hh$$ 55(eeZQ@@JJEV"^^ ,,44$bbMX.ll 99""PP5ssAbF(hh33MM*jj>~~VP5uuFF,,-llEJJ,,NN,llImBEE ++[[)iiBi?[[11 33!``0pp?ok<||'ee $$ MM1qqQL^^))..ZZ-mmCZ;{{'ff 00CC4ttLAFF ++ ZZYoׅ;; &&WڃO 11"""aa,llII&&6633R[[˺joo++OO#cc33 ##It7oo (ZZՒvKAA++ ]]F>~~\\ 44MM2rrKZ@3ssRR ::1qq[P'ee 00FF8xxLhN/oo#cc @@ <~~;{{LL!! 553rrQ1qq 33CCBM'ggLL(( 77*iiK:zzKK11HH7ww?!aa CC++RR,llDE0pp&ee== 22$ccB7wwQQ ..DSS22 ;;&ffDT/oo 33 55%dd0ppAU>~~ \\ 22 &&KK.nnS<||II** ==8xxM^^-- ::(hhC[KHH%%@@2rrO$[[!! %%%bbL9yy??##@@+kkRFTT(( //"__4ttOT3ssJJ## ..YY/ooK`B&cc""GGA2mm -- 44 ``6vvib%bb //??#bb1qq]S/ooKK$$@@&ff5uuXrN5ttAA **#aaB\1qqBB!!AA%dd8xxWP0ppKK %%\\;{{K'dd 6699=}}gĘP ""!PPČf%\\""NN.nnXX55##0044Ʋ-CC-- //"aa[[ ##!PPaj<< ""[܃g*jj ++HH:yyN3ssJJ!!00"aa>~~XJ9yy'gg <<!!VVLZ8xxJJ$$ (('eeB^Y8xx(hhNN$$))RR!aa2rr6vv__II&&%%JJYY\\#cc#aa<< 88[[UU)) AAWWWWXXYYKK ** AA __,llE:zz%bb // JJ2rrJ8xxLL,,&ee4ttWW 11!!TTMBQQ!!***hhK3ssKK **((WWDCWW77HH(ggH1qqII,,CC'gg<||M>~~1qqXX##SS6vvB]] 44$99v,,KK-mmPGNN..FF __1qqFF*iiHH00,,UU:zzH!__66++ ]]L9yy BB))KK,llJW5rr 00''LL?CEE>>2qqH(dd//''QQ7wwR3rrCC >>(ff9yyUF#bb <<## AA"bb>~~aV4ttJJ --.llEQQ''MM*jjMk=||PP((%%OO+kkF[@&ee 66''RR0ppA``E&bb &&GG1qqXLWW))((TT3ssBS=}}$bb 00>>(ggF?~~NN ..YYWvӆDD $$TvE 66 00\\!aa BB&&..^ffć55,, NN%eeGG99Fp~?~~ ((.^^ȔyOFF 44(ggLG%dd 88GG)iiMV;{{0ppRR'' ::2rr]J!]] ..LL4ttJlA*jj\\ 66 <<YYZZ^^ZZKK **22 LLOOOOPPBB "" DDLL 88)) GG LL LL LL FF ++$$LLYY]]&ff]]77--%ccEC)ii 22!!LL2rrWW 44 ==9xxJ'ff 44 JJB8xxRR 33 <<6vvA)hh 77 >>$ccCA^^..22YY:zzPB5uu*jjEE 88/nnE2rrAA $${?TT 88SS;{{P%ee >>++GG#cc4ttE:zz#bbJJ-- ::#bbA:zzHH..AA:zzO!__ 66..RR3ssJORR 00$aaO5rr88''OO;{{DOO'' 99^^FH$bb ++!!MM+kkHY5uuVV 33++RR0ppM_7ww'ee 88 HH9yy7uu 22 55VV2rrVN$ddBB 66!aa0ppLN.nnOO!! 88%dd4ttKfZ6vvLL //ZZD[1ppEE ??,ll7wwLN3ssPP%%QQ7wwH(hh 88 77:yyjƜO !!'ZZÁ^UU66[[QQ##++"88о?TT44&& 11#bb\\ ..-hhaxaLL66]ڈi-ii//MM;{{P8xxNN"" //[[4ttUC0pp]] 88**UUDR6vvAA ..(gg3ssIZ'gg[[DD FFTTQQNN II 66>> HH HH HH DD''-- FF 99""88FFEEDDBB..44 KKNNOOOO66 ::^^3ss+kkLL$$::/mm$cc ;;((&ccI3ssFF!! 44,jjBUU 55$$ ..$__@/ooFF00RR@L.mmCC''HH'ggHQ6vv.nnUU00 44YY@=}}XX ,,MXX𥫫'BB 99!^^D9yyXX))**LL)ii8xxD9yy#ccEE**MM,llC'ee @@11 [[H>~~WW,, 66YY2rrS6uu 11AA?~~N$__** // \\F1qq <<&&FF.nnK9yyGG ..[[9yyZI(hhJJ&& 77[[3ssH/oo(hhUU&&''VV>}}NN'' ;; ^^<||M)iiWW//%%MM#cc5uuR3ss^^00##MM)ii8xxYgD/mm 33>>/nnWM&dd --))[[5uuDYC*ii;; ==%eeC=}}PP((SSW{؄CC,,Vn:xxCC ``??!!**Θ::11!!HH)iiGG55Jmp5mm (()]]{MBB33(ffFG(hh 44JJ+kkGM1qq$ddGG((BB+kkE7ww!^^ **NN0pp*jj3ss/ooSSII%% %% DD KK KK HH ==%%//AADDDDEE;;;;AA)),,>>AAAA??66??FF GG FF << AAMMSSII (($$PP0ppKK))CCA?TT++$$WW=}}+jj ::$$((SS<||5uuXX.. ??-llO=}}SS,, 99^^4ttTB-mm ^^ 77))PP2rrA&dd ;;(77w~~00AA*iiD.nnBB //!^^/ooBJ5uu^^ 5577UU8xxBXX ;; >>*hhK9yyHH$$ ::XXAIWW((#``LBEE ==*ii=}}XX$$**WW>~~F'ee 99>>,kkFO.nnZZ 66 <<YY"bb__^^\\ :: 44)gg^^//%%II,kk5uu$dd^^ EE"" 44VV%eeE7ww!aaHH 11XX*jjBbV>~~XX((WWD^?IIFF-mm<||SS9yyZZ##**RR8xxL-ll 88 44:zznʜAzz !QQyzW88 ))!aa[["",,KXXScc??++''ZZ'ee ))%[[atS55 ((Oωj+gg++NN:zzJ7wwWW ""]]7wwU9yy(hhRR22//YY?9yy%ddCC,,$cc)ii]]TT LL FF33 ++@@FF II BB..$$99>>::<<>>003311**22103377** ,,??BBAA==$$ //BBDD>>&&,,NNPP 99 ++%bbI(ee 66??8xx8xxPP,, CC3ss>~~!`` <<11XXDG"bb 77++TT.nnFU5uu"bbAA 77!aa8xx.mmGG..wzzHUU))NN<||>~~%cc ))OO/oo9yyKE1qqPP)) ;;(hhH7wwVV66EE7wwH)hh 00 >>$bbF8xx ::AA4ttQ)gg ,,&&DD)gg/oo:: ??0ppI>~~ZZ%% PP,kk7ww&ff__II ::OOQQQQQQ FF CCUU @@ ..RRUUTTTTMM++ 99VV&ff)ii^^XX 33AA#cc/ooMgF/oo99 ;;+jjSW'ee**00]]5uuAZE'gg == @@,kkMEZZ++WW\}u:: ,,Uj3kk RR%ee??--66ί?? >> 99&ffRRBlt,dd !NNx{NAA11)hhFB)hhAA 55)iiFQ*jj^^ <<JJ*jjO0pp[[ --FF]]TTNN JJEE;;66AA DD DD99 ))//22&&&&)) )&"  0.54779944 <<??<<&&  ;; ??,, KK=}};zzHH"" --(ggC$cc AA%%(()hh>~~(ggGG''LL8xxJ+jjGG((DD*jj<||VE*jjQQ&&&&NN/oo/nnNN 11MUU믯** 33&ffH:zzII"" ::#bb1qq:zzWB"bb <<##QQ8wwN2rr HH,,WW8xxBLL(( AA(ggI\\&&''UUAHQQ##FF2qq$__ **&&!^^9yyF)ii 55 LLUUTTSSMM,,  ;; FF FF GG HH22++ CC HH## 11 JJ JJ JJ JJ 99 ??NNRRVVYY DD((RR$dd3sslL7ww"`` !!OO?_>~~JJ!!EE)ii4ttOT-mmRR!!--[[?R5uu @@ 55?~~sΘH (((ccvuYUU ;;$cc]]%%**55enngpp CC44II,ll99 ??\sd99 Jчf'aa##MM;{{J.nnTT((&&PP9yyYA#ccNN((((^^CL*jjLL JJNN JJ HH HHCC..  ..AA@@;:7641     " &$++,,5599))  ,, DD88 ''%dd;{{!]] ,,VVE7wwOO88IIA7wwOO$$ 99%eeQ8wwGG(( 66]]7wwSJ0pp]] ::!!JJ3rr:yyTT ..(88苍$$II1qqG,llHH$$ GG*jj1qqIO-mmVV++33"aaJO^^55 33$dd>~~6uu@@'' AA9yy;{{EE 55#ccJ8xx 55..RR<||MM"" 88ZZ\\RR ?? GG II II HH====AACCEE??''..EE99>>FFFFFFCC((++ CC JJ KKNN GG## 44QQZZEF/oo0pp>> 11,kkCJ!aa 55**PP+kk6vvV=}}&ff ?? ??/ooNB\\''RR]uFF 11J{j>~~$$TT(hh >>!!3366ҹ;;99&&,,\\#cc((2ppixF!!FF~y>}} **''$ccD<||!aa ;; ==&ffPN,ll\\ ::FF8xxP5uu$dd @@%%EE II IIGG HH?? ##>>==..'$!" $            3 > A F L M C 2 '   ,,1133==@@** ;;&ff#cc ;; 994ssJ,ll BB)) 66*jjE&ff 99""SSLGNN$$RR+kkM]9yy,llKK%% ??1qqE$bb 44FLL ++TT:zz9yyZZ00$$PP(hh:zzY;{{(hhII$$ CC-mmP=||JJ((KK*jjC+ii 33!!11ZZ?.ll //BB3rrKSS$$ DD!aaSS&& 66 HH GGCC&& //BBDDDDAA%%..<<>><<==11##==== 77DDBBAA??8866 FF JJ GGAA''  ?? LLUU^^$dd1qq#``""NN*jj>~~6vvQQ&& ==\\+kkBR2rrWW''!``>~~J3rr AA //:yytϊ>t{{syy99''HH(hhQQ55Mpi OO>yy҃bBBGG9yyH.nnHH!!##TT3ssT:zz%eeMM** 22%ddMC/ooVV((::DDFF HH JJ DD44((55)% 0 8 ; < 7 - #*FPSSTXZYSE6-      009955 ++ EENN 33,,$aaA?UU))OO?1qqII!!@@AW$aa ''AA%ee3ssZH.nn^^66 77$bbF/nn 88 ##krr𸹹)88 88]]5uu(hhAA 00ZZ/ooMS3ss"aa 88**UU8xxK*ii @@++UU2rr;{{XX ))GG-mmBUU""**VVD6uu ==,, :: DD 5511AAAA9988>>>>==44((22$$! "!!!""((662222<<88**&&== GG FFAA00$$AA HHMMSS\\"bb == 66!aa4ttJ!aa >>$$FF$dd/ooU>~~#cc**LL0ppHB]]**RR]’g99 =yyvh5qq "\\!aa11$$@@-IIӽ(@@00'']]*jj>>PP]o7pp !!==jt>||-kkLCYY 00@@%dd<||O2rr\\ 77##QQ?N9yy!__ ::66CCEEDD FF HH FF..%+/ 2 6 < AFB82'7: ;B 9? 46,*(%% %&!-!L!\" _#"`$"`$#a%#b&$b&"a%]"XSNA+    11))<< HH 22@@-ll5uu)hh AA 33*ii8xxVV&& ''#^^MEII))WW+kkGP8xx$ddEE55VV7ww8xxJJ--3@@판//<<#aa7ww&cc 99 DD#cc9yyPI1qqRR// 55WWBHXX00 22ZZ;{{8ww 99 ==XX<||9xxDD 88,kk>~~ZZ""""<< AA$$ 22<<88&&11//++#           !!77 >>@@BB==## 44DD II JJNNUUII%%SS-mmO8xxTT""00VV&ffIR1qqDD 33^^7wwJ3ss @@ ..8vvq̇6mm LLmpQ// DD*jj AA99BB| 22$$AA&ffZZ ##4qqj^<< @yyǁd YYBB?N2rr<< 00 ^^5uuKK,llHH ..(ggQD*jjFF##00CCFFCC==@@CC <8. 7 ; < 96=JRV K "D+%HF'JR(KV(KU(HR)FN(DJ(>@)60,7,,I-*i,+r.-w0/z10z21y42w53t50q3/n1,j/)g,%b("[%!N#"7"!(!$!++ @@ AA FF^^$ddKK(($$ ZZ7ww#bb ==DD8wwC*ii ::))SS)hhAV<||&ffMM//MM+kk3ss[[ ::::ckk&&CC.mm=||#__11//SS.nnAXC%ddEE## 44&aaL:zzGG##CC.nnC[[++00HH1qqG)ff ++!!KK.nn&ee 2211BB55 6633,,  & . 4 4 /+)"             *+&0.66??66 &&AA HHGG II LL HH EE'gg@J,ll 88!!CC__6vvSE\\ 22GG'ggC@YY%%CCQf33 ,,Tuc%YY 00'ggSS&&-->>~~"aa //CC5uuP0ppSS --!! BB GGDD<<991/8$ EJPMGCD!L!#V#$[$%V%&L&)O@,VZ.S^.R^/S_0T_1Va3Wa4W]6SN:N=9e:688::<;=A=@:u=<[==D=5;6/50)/*"("$    >>DD FF .. ++(dd0ppPP((&&$``C:zzSS00 88!``2rrHS6vv]] ==11WW4tt%ddII<<[rr00 00 [[A.nnGG44QQ)ii?V=}})iiNNTTOIPP"" 77$cc<||!]]'' JJ4tt<||*ii 77 ?? GG44//55)(    "1>EPZ^ _!] [ZZYS<$!  !#'%**,,)'+4=B@ ; 3' *1%("11 EE II GGEEDD??**""HH(gg>~~O3ssBB&& BB!``5uuR8xx]] 11 ;;%ccFD ZZ --O{U,,66PpVDDGG)iiTT  55KZZѼFSS00'' AA]]II**QnA 00IIzvSCC""#^^N@!^^++PPA_P2rrYY 66 II'gg,llXX ??"" ;; FF EE946$ 8 T`c$b&*_,+Y+&T&&R&'S')Y)*Y*,U,.O.0L03\X6_f9^i;*2,"("! --AACC @@ <<*jj\\ 66 AA=}}C&ee ::$$SS-mm;{{O>~~(ggHH//FF1qq7wwQQ88'JJjqq11 >>+jj8xx#cc >> 99ZZ/ooFP4tt"aa>> @@7wwJ.ll44HH.nn2rrFF55YY,ll(hhEE $$ EE@@## %#   !);P ["!_##b&&e))h,,j.+l.*l-)l+)l+'j*&h)%\'':(&.&$-'#1.#56$9<%@F%EN%FQ#CJ!=7?#GMHA9 7 4 0 -(.% BA EE DDAADDEE??$$--SS1qqJJ ^^''++SS.nnMC-mmPP$$KK<||O8xx //-iik|(ZZ "SShd'aa 00%dd$dd 44**33ƥ--22!!**PP[[ 88!UUgf!XX $$A{{˃h3pp %% 777wwM1qqHH ++&ffMg?'ggCC$$ 00^^ ``WW EE++++;;::95. < T`b %g.,j:.e;+]1'U(*W*-X-/W/2X26U68R8]b6QT2A?*1+"("!   $$99AA66<<UUEE%% 66,hhI0ooJJ** ::'gg5uuHC-mmRR22 88__;{{)gg 88//?TT 77NN+kk0pp[[-- ??\\2rrUN1qq%ee 7733ZZ9yy@WW''00TT7ww-ll 22 ==XXUU FF&& 99 >>--   !$&!(!&,&)2)(H)(`*)f,-k01p44s77x98{;9~<:=8;7957461}4/w22Y33B40C>.LR.Q[-R],P[,P[+P[+PZ)RT&J6#N##Z#"Z""R"C:?EH G 7 <,>9::::@@EEFF ;; 88!__;{{T0pp 88 ;;(ggFQ?,llCC ..&eeKEVVHHYzZ** **PnD 00KK'ggMM11U]]Ӿfhh44-- ??XXWW## 66BqM99BBlxPDD !!YYMC!aa 44JJ3ssSZ.nn\\ 11MM^^QQ HH995576/)(<NY_%f/-rK0tY-nV,fG0`93Z36X6:Y:>Z>BZBCZDGXGF`_FktFnvHrxGvwG{wGwFvHwJsRYSTIKHKILHJGJGIHKJLIKHKGJGIGJHJDGCFFQNsM|Ett:hj5WX1>7,4,#)#%&#   88&&((?? <<**$$WWE>~~TT22))]]4ttCJ0ppWW 33&&RR2rr3ssII ((ANN@@ @@RR+kk.nnHH))HH&ff<||]@/ooVV** ??"aaC=}}OO 33^^:zz YY%% :: IIEE<<!!.. $$$*$)/)/5/5;57K85k76s99x;<{>>~@?B@B@CADBEADAD@B?B>@<>@rAC\G>c`:bj8^g6\f4Yd3Wc1Va1Va/Z_,TK)K)'R'%[%%Z%&T&&N&!H! I RZ^P4*#7588BB HH HH&&""EE$ddH:zzQQ""XX5uuNVA'eeJJ=}}L5tt 55 ,,@nƊ2kk &&,hhjb SS $$"bbZZ""--00ǰ.==++!!""MM__EE!!!^^bo+jj --FɅj-kk##;;;{{V7wwMM## 22!aa:zzU@$ddCC"" 77 ``[[PP DD//++<;*&& 5 F PX#]&+jH0u^/x_0w`3ra9iT>\BC\CFcFBlC?vA?|A@uBDmQDsoDxtD{tB~rBrBr@pApCfHJII?B?B?B>A>A=@?A@C@CADADADCEEHCFBECVEtIyIyB|r;ni5TF0@0-8-#>$GF7  ));; CC$$ 770ppH(gg ::!!GG-mm@J4tt$dd ??!! ;;%ee9yy\\ 33#9966 ??]]:zz)hh ::00SS/ooFQ5uu*jjII CC1qqI4ss //@@&ff1qq<<  CCCCAA++ $&,&/505<7;B=ENEAlC@CADADCFEHGJGJHJHKFIEGEHGIFIDGCEJuKLdVEorAkq?en>cm=bm;`k8^h4Zd1\a.[S+K++N+)U)(Y('Z'$P$%P%(T(*X*(\(!_!b^ J )65 CC HH JJ 99++JJ#cc5uu'gg ;; ??%dd8xxXX:zzDD 33*iiFKSSUUa|n44>>RnDPP^^ 99))..hmmLJ++!!--QQQQ"" 55ErcPP@@x{L==##%bbTF#bb 11NN+kkCL,llSS--PP__[[PP::88&#2; ? LS%Y--rX1ya2yb4xdQQ66  88 II **GGPl<{{ 44>xxЇd YY AACX8xxOO ..$cc:zzS?%ee @@..WWZZTT BB%%00%" /44AJ S (b6.u\2xb6{f=zmAwqDwrDug>|C683614.1+.+}.+v2,kA+nT*uY(vX'|W%U%U$~R r1oysu x!"##$'),,3378888P;k:j9h9h<~k?t^AbA;m<4x63v6.m1(d*V 3   <; //!``)ii^^ 99((UU-mmCD-mm\\ ::&&JJ-mm6vvQQ--lww44 ,,VV8xx+kkGG((@@"bb8xxL=}}.nnOO&& <<#``DU>9W95W52W2/Y/,[0+b<-jL.pN*n>"d&`W H 6 ,43::00## >>MMVV^^@@ 99"bb5uubP.nn== ==(hhHDII XX\}Y00FFZn3nn '' ++ZZTT6600 33У<<00** II FF!ZZLRLL 22Tr6tt 11 ((.jjYJ,kk <<JJ,llLT5uu$dd 00DD[[SSLL22 $!(00 @ T^"_")e70x^7zf=|mA|qB|r@~o:}f1>*-*,(*$'!~#z"vh!\+lFtLxJxHvGuFn1 d i u { y q lloruwy | $$++//1L2b4d6f7g9h:~V:y;8:8::<;=7v:0m2$Y&6   ##NN(hhZZ??''DD*jj=}}J3ss!aaDD"" ;;%dd:zz\\ ;;0EE.. <<(gg7ww]]11((JJ*jj>~~G:zz&ff 99''FF2rrG'ee//// BB22!!%%  &682(1(.:.3I?9db?snHxK{ItDTBECFFIEHDGDGDGDGEHDFBECFCFDGCFDGNNMQFlDsCsEuEuE{uFwvEtuEprEgXChEAmB@iA@cAA]A>Z>9[;5dG0mU/s\/v]/tV)h=!^"XO B / )0.99$$44 FFPP\\XX++((OO)iiLU7wwWW''**VV=}}S.ll .. 11=||q}2dd 22:zzpTKK!!NN]]GG''00GPPWee55'' 99NN << 77+jj;{{(bb **DDXkEHH##II?~~V;{{XX)) 44 __8xx\B,llVV!!))SSRR GG >>"" !,/ E `ot!u#+s45{`<~k?o?o;k6f1_(<"%!# ~|t`m*zBzAz?y?x? t1fgmooo o p rtvxz|!!&&*L-\.^3b8h;k:O7957588;>@?B=|@8t:,b.>    99"aa"bbEE'' 33"aa5uuL<||(hhDD%% //YY3ss(ff BB 00Zhh11LL3ss.nnLL(( 44\\-mmAG2rrVV,,00YY=}}3ss@@99 AA00 *FQ U#'P(1I16L6:`Q>slA~qEuDtBrDXACADBD>@<>:=9<7:7957364647475869>>=@;b:i:j;k;k;=@BrCEcEBcM=na7vf2xb1ya1w`,nQ$[)UN B 8-'0,22&& ??PP[[__DD 77[[5uuQ>~~&ffAA>>,llMHPP##RRZa77\\hk4ss ,, 22WWOO((&&33ѩ??.. DD II++%%PP1qq!]]44 ))"__MBOO '' 11\\3ss<||'ff CC&&QQ,llLZ.nn ``>> ==TT DD77,,+1 Ffv{$&-17Y~~)iiFF'' BB(hh/ooUU!! && AA&% $J \#'e*-l00m28d8?]??p]>|m=m=mU<=<=9:24/0+-*+()&'$%"# "!#!$"%$&(z()x4+W,\-]-].|^0{_2v^4pT4wB140335687::=CsEEo_Bup?xo8yh4zd1ya-t[&^1SK@83)".-((//IIXX\\TT%%!!II(hhEK3ssZZ%%((XX>~~V5tt 22 --5qqo̅,]]AAOpK??<<MM33 00akkhtt66&&.. II 99 11$cc3ssDD??-mm9yy \\ .. BBWWYYZZEE.. ::$dd4ttUG&ffPP))++ HH II::(('3Jgy|} #'*,/3H7e3c,\'W$S G'    ~! 6 < < 5zsttuwy { { {|~~A%T)X+[.^4_5?79;==@>@=??BCFIKJNDF3g52 (DA ;; 44__9yyM<||!aa 33BB0oo2rrMM ::J``66DD+jj4ttXX//,,PP'gg;{{G5uu"aa 55//NN!aa&ff@@+*  #G&b)0n25w87}:79:x> JJ >>11  .Elz|| #&'*),+4,Q'U#S OG1    ! - -!} {{{{|~ /I"Q&U)W,M,10268>ADFDGBEDGLNPSNPDF2Y3&   "((!!MM*jjDI/ooSS ///nn<||YY 55&GGboo 33MM5uu.nnJJ"" 44UU,llFF1qqUU((11PP'ggZZ 00   & M".j08v;<~?>@:<7968899R9i7g5d1a.^-K**%%zwutspm k l qrndc p1uAvBxBxDvFk9Ylx{!"%%'%(+=5c;k?oA~q?}o:|i2y_*j6"i"jbN7 0+ )) FFMMXXMM((!__0ppNU1qqWW$$22#bbB\:yy77&&![[^{Y9977>||E'cc '' BBNN44++ 77} ==00'' DD FF &&UU5uu'ee ++66*jj.nnXX EE))11;;66""..OOQQYY#cc&eeNN))44MM DD77** %;c|}| #"%$'#&#1BFA0~  7DG!E#3#%$&+.58@CFIGJKNMORTSULOAxC0>1 77\\6vvS:zz'ggAA ##%^^A1pp >>22~$?? 88VV5uu)hh?? 00!__2rrP;{{,ll @@ 99ZZ$dd ><  &#W&8u;A~CBEAD=?7:585769;L~< p j ~"%:,Z0`6fn=m8}_,}3"$~zrV4 -)55?? JJWW66KK&ff6vv`@'ggEE""LL2rrL?ZZ %% 33*ggWVRR!!FF.mm/ooGG44MM @@!!33.GG+GG>>--:: EE66""KK7ww?~~JJ%%YY.nn#bbII >>..77//44'' >> FF FF IINNMM** EEPP7711&&   . Qx~~}! "" |#&~ { | +.%~!$'36@CHKPRMPMOSUPSJLGZH"("  GG&ffJK0ppYY++II>~~:zzSS**>\\<||&ee )) >>(hhEJ6vvXX&&%% DDXX )#)X+>|AGJGJEH>A9;9;;><>:<9F8f0`-\,\)Y#I~~}}~}{yx w y wtrqqoy' ~< = = = ~/x /$P(W+[1a9i;j6R-0&) {|wZ 7 .$ ""//>>PP DD""00YY&ffSY1qq __,,88WW)ii%ee__ ?? 55*iiC-mm 33 LL2rr[[++!! CC JJ%%))55͐;;:://AA7711+jjH-ll .. 88*ii'gg DD44%%::8866::,, !!66;;;;?? EE 33 ""PP II11++""  * ;f~~{~zzyx~  ""!! .0CELOMOJLJMPRMOPmQ9?9  EE7wwP4tt]] 33 ,,1qqA(gg .. ))55 <<(ff<||#__ %%ZZ3ssO;{{&ffDD11 .(&*H+>y@JLNQKMAD@CADCE@C:<57070X,\)Y&U O9~  ~ |yxxxx{ . : : /} >O"R&V,\2_0=+-(+"%{|v` 8 ) 55 BB KK55"" FF%ee9yyP6vv)iiJJ## 00HH KKNN DD%%MM-mm-mmMM ;;5uu,ll 88-- HH 77##77;PP>NN:zz1qq88 Qbb00JJ8xx=||JJKK+kk@P/ooVV--  &2';l13)+(+(?%Q!PMB$  !>L O"M$?$*'*&)#&"}||wV 4 " --:: HHHH,,00ZZ-mm0pp"bbXXPP(( )) >> AA66## GG__0pp%dd (( 00.nn1qqHH JJ AA11??ϗ9911##OOTT''((NN3ss&ee 55 ==.nn.nnKK77##2211--**&&!!((..,,--0055$$  "" 5588.. **(-Svq/ nD lI pIx9}   w ~   ! ""$#%$&$'#&%&&&%%&&))**))((''$%%'13EGJMIKEHACBCBVC4;5   F~}8xxVV''44 ^^*iiHH V\\;; 22$aa>~~4rr77 33"bb6vvPB!aa AA   !>N?FHORTVOQMPNQHKDG:=+.$&!~%296& } ~-50~# !$!$ # }~}oG )  ((44 <<PP ==##::YYWWPP KK JJ99!!,,66//22'' CCQQ)ii-mmJJ&&WW=}}*ii:: ?? FF22//>>M__JZZ77**22RRKK ;;VV ``GG))WW6vv&ee ??++..33**$$&&""0033552200'' ""4433)),,   %1Yn*hF!kOkNoJn?z(    !!""$$$$"#"##%%'&)(**,+.,/,.+-+-........,,++((''&'''&(35BEEGAD:=9yB~~M/ooFF  /5/LdMKMPRNQKMMONQEH69&)! "%# ~} {||{! ~|~{\5&""..44LLKK!! ?? II CC @@@@:: **7733884400 >>QQ*jj$bb //;;6uu@!\\**'' ==>>((%%<<AAҝ::99(( >>JJ..**TT"bbQQ -- 77)ii2rrOO ,,3377,,((##""4466::66--++++4400 "6We?fOiOmJmBo?3!!""$$"$ # "!#!#!#!#"$"%#%$&$'%'()+++,*,+,++,,--..--(+(*)+*,+--/.1/2/2/1.0.133443300..**&&####$$"$$'46>@;>7@5uO3dX.TS%@C!  %"^^(( @@^^^^ 77&&K]] $$NN8xx6vv>>''LL.mmLF62   & >E>NzPKNKNHLJLLNHL7:&( " "$$$$$$         |xvz"z(x&z"~m@- ""**33 FFLL&& %%>><<6622,,$$,,//116666&&,, <<^^+jjGG **XXD1pp 9944 GG8822>>cppNZZ6666$$33 GG <<!!PP:xx+jj ==""OO4tt'gg 5566@@8800(( 22 77 8822""  ** @@8822    3S)cLeNkJmCn>x@3##))..//0022-.*-*,*-+-+-+.,..0-.,.,./001272B3F2D2922222200*-*,*-,.,..0.2/2/2.1.0.134554400--(($$ !$03474F3xZ-e\(WV HM48 66 11VV!aaNN**dnn/;; **"\\3rrWW'' 11 ^^@M!  060CPDGIEHFIHJJMHJ;>(*!#$%''(())((%%""""!"!!!         }xx {/s<q=r5w&uL. %  ""$$11 >> ??%% //7711++''** &&%%++0022--##66PP-mm$bb 11 <<3rr5uuGG,,QQ HH$$99#BBٕ..33))## HHJJ,,88F_'ff ,,993rrC"bb&& &&LLVVII44 66GGNN >>55 %%FFUU FF''    ,S7eOgLkDl>v>>&$$++11777799994502/2/20202032456552324484?5K5Y5^4Z3K382222./*-*-*-+-+.-0.0-0-0,.,.-/0111..++**&&"""+-/G/{[)iY#WSJLAE 5-+ **TT#ccYY <<:GG)) 66\\#bb BB&&JJ2rr5db  (#5B=?\G=A=@DGHJGJoL jO!kMl;s#W.( --++5522!!..00001111--$$))))..33((22 EE+jj4ttJJ ..UU+kkSS33!!QQRR**--66qxxWcc22((++RRBB !!+ddxtYY ++1jj]V%dd%%HH3ss1qqTT00 99RR1pp2qqLL AA####HH&ee*jjQQ ++  )YCgMkHj> p=|?4 !"'',,238:;<<<<<781303/203031367888866484G4V3_3b4c3c2\1?1111-/*-*-*-+-+.-0.0-0,/+-,.+.-.++%%""#$")($ &;)yV$mT[NLIDDF><EA.nn#ccHH<<]bb !!AA"bbYY 55 22)hh.&'991PN7eS6tF8=>BBD;>),#%''&&%%''++--//222222-0-/.0.1.1-0,.*,)+'*&('(****((''&&%&%%&&%%"#""! |0l?nFlM jP fNh5Y4#  ((%%1155%% 0055995533$$##))4433## 66\\5uu#bb ++ 88VV[[GG >>PP99))88'AA'AA::  66PP 00..NlII::UqVYY%% BB.nnM-mmDD%% II]]=}}+jj KK :: <<#cc<||3ssLL//    0aGkIlA o= v=> #  !!&&+-186B:F;C;?8913/2/2/2.113788:796:5C4\3b3c3c6f7g6e5J555502,/-/.0.0/21314140203/2+.+,((& :B<*'"vI nOcKTFKBM? N*?0,kkPP::bnn#55 --XX"bbMM!!OO +,#GL*XX/c\5vW6D7:8;*- ! !!%%))..11556645/2/1/20303/2/1,/,.+-*,*-001111000105050401..+-),)+)+),)+(*(*(*(*')'*)+--++**''##6s?l>oFiMfObIU"7!,,441188**66;; 7755(( --11<<33 BB-mm0ppEE""II)ii&dd :: DD DD''''9933|00== AA >>![[yI 11WWcg2pp 55))VVDEUU**11JJ*ff3rrPP >>&&&&NN7ww>~~$bb .. 9955..    ;!fFpDq> v=z=:  $$)*-92U7c=i=b=S=@>A?BBE?A57.1346633*-*E*W)Y)Y'S"=$t6rMmJbET@ O= W5<*OO ))8KK&& CC ``!aaCC# *!@DJN%VU+g[1{]3J13'*$$((,,//224423-0-/-0.1.1.1-0+.+-*-*-*-/03344454B4T6Z5Q5>444402/1233402/2/1/1.1.1/1237777555500))""/~@r>k?mHdMdOQ1.    //?? JJ66,, 5577 00''33@@ DD99 '' ``8xxZZ ## 00-llP*hh$$44 KK @@!!338800 33 77--KK####Ds%bb 33=}}jNEE ==-llX*jj ?? ::QQ:ss[[ ??)) 77&ddA)iiDD))VV 99..   A!mBs> y=|>C: "#!#!$&(,-339;<_=l@pDtCsCnEaEH?A;>;=>@DKE`EoEtEtFvEuEuK{OPрPрP|V_WWUUKMILIKHKJMLONQORQTTVLODG>@?@DDGGBH X7 6% )) foo44QQ&ff)hhAA4A:BEJJ XP'lW,zZ+C$' $$''''**...0,.+-*,,/,/-/-/*-*,*,*-*--.00001;2V3`4b4a4Z5M5>466688885624141403141467;;;;::8833,,&& !;{? n=j@jJfNU?)  && NN"bbWW 99$$ ??HH/jj'ccII .. 66UU,kk$bb 66&&%ddPM!SS(( __pgQQ""HHPP&&--//qww::,,FF AABB_xG44XX^a'cc''))YYES^^ 66 44II7oo;wwXX BB((RRB4ttPP!!DD__ <<-- ! Ds< |=>F!O(<46??CCCDABDDGGJSLyOPрON~OOzR_TTQQPQQXOqP|PON}M|M}PрV׆Zۊ[܊]݋dkmiiffXZPSSUSVVXZ\[^^`^a_b\^VXOQTUZZZZTZKuL|L|HxAq9i2a*V D)yv7oFgC]@R> S/10AAfii9NN ==[[0ppB6G"J?GCOG_L!mQ%wP 0060!''*+*--0,/,..1/1.1,/,.+.*-*-.022222D3`4d3c2a2a3]3S3;5566775602.1/2.1/20277;;;<:=7;12++&&!!  +}? s= l=kDiK^F,    .. RR2rr4ttWW11 ?? MM1pp:zzXX DD ''LL2rrE#^^ 44$$$bb[lG 11QQsn7f/_'U!I"8 #p"e7]@R> M5F6L9񦫫!??:: ]]>, S0N>PA\EiJpNu?- A"L$N%J$7#%**00/0,/248;9<8;8;7:585747361467<<;;m:i7f7f8d9U;I;D<@<=572524141435:>~~.nnEE""// DD[[8xx$bbII++ 66!``I:zzMM&&EEBl]II;;YgFF $$GG <<<<77~ccc+++*?./u7AnC>e>?c?=a>DcDivijwjmymp}pp~prrssZ^^ ..[[ZZ&& 77B^M:: 99?M!^^%%##!]]8xx\9yyPP%%CC __9yy[.nnNN$$--VV;{{4ssAA**UU*jj!`` //%%25=V{-@-KW@eDpIuKr*~'#<*P0]3c3c3a3U7<====9:79=@FHKNHKGJFIDGCEADBD@CDELLMMM[JwK{JzHwCs@oApBmBfBcB]CS?D:<8:8:9<>AAT@b@k@o u=rAjD>!    .. 77II!! RR2rr<||ZZ//22 GG)ee3mmNN 66 II6vvN#bb33(( YYYf/ll 226tt}~4pp 00 FF## :: 22wdbW VZ YQ JPLLLKJG )N+?_?>`>@d@AfA@f@>e>+R+3J4=-1"%XD3gR(YH +'<82d_,^Y@< -("VQ8ssJ0kkAA--SS(ddAJ(hh DD""FF"bb0pp\\ ((EE&ee+kkRR ?."=| ,1;CEYYoouututvx|쥋xtvvyzxwxy{}ꬃsupsorqssvtvuxuxsvtwuxvxtnldYډPCs8h3c-]*Y'O"<j+K/*, .w}w:CC553" U3R>[@hDqGw?u0$F.Z5e>8946353412)+!;IB |=x>p? C .. ::[[ 77 11[[:zz5ttEE!! AAYY:uu+aa BB(( ::#ccU9yyLL## 559wweNFFII\}S33FF ::1177Z|ux,~7|4 pb [TSPM NQQ LJOQRUXLH =0:A I B 7 ?K'E =0 ?L$Y=$`CU9 ;!8N1U6*dQ+dUUF8,*G9QDRECBJJ%ZZ%ZZ @@&&% .Z ./EE``xxyyxyz}}뭎~z{z}}}{zz|ꮅuwloknkmlomoprprnqmooruwwpmh^ߍRӂEu>YY:xxKVVAA22[[MQ%ee 66LLQa'ff ++2nnmd!WW 99OO--''.GGϼ̺˻ѾةΘҎٜ[[[?$1F!HF-skf e b ` h%q8r8k'dh jlu}zmd`_ ^_ Z V SSQQSXYP W WN LPQ P O NEEMLLG"38H,N1N1 B%+6'-  % m ((CC``yytuttvyy{ꩇ{wvvwwxvurtv|좋uvgiad_b_a`cbedgdgbdbemn|||}qgb_W؇K{Br>n;j4d*Z%T#~S,q[0XZ'97& ,GYG@ E)G4Q6],l"-%F&T*Z1a:iBrL|V؆_bfqsvv{{rsehjmprnpnrnpnploilgjgjfjrsolkhd`ސ_ݎaސ`ސ`ސ_ޏ^ݎbklllmnf_ޏ`ސ^ގ^ގabahvllmmppssrrhhXXEH7P)QD6z!P4,*(( 66"bb'ggHH++QQ@:zzLL""..VV4ttb0ppWW 66**VV@`5uuPP **/nnY:zz ..EEVb;zz ****ZZKK&&T]]ʼ|y{XKhEjm˘(C!M!KH,|{{{yw>!I!J@"!"&,.-(.2'zwursokjmmp t15w"pnnnopz|zyzxtneb a a [HED H $  , x 99UUmm||~~~~{{nefeefhjluxxwxlfggghhffdddhrrrrrrrsorkn^`SUORNPORPTRUSUSUTVddjjjjiiggbiUtOzL|HxBrCsAq{zA? 0/>zuQ?{w =9!SN"_Z 4-R\Rvvzz{{zzwwvwI\I6N76P75O74P72M7/M70N;>@DD!E"H"Q)h91C>c+y +M!P!NF%#'*+)*H"S"TI 0..5999 <P#YO832 1 3 3.('' +C!U"UD ) ' ( ( & '.0//011/)# $:<{.u|z& 2 1 **@@PPWW]]__``\\XXTiQOOORӁTՄUօXz_e__``\nVׂW؇YډYډ[ۊ[܊ZۉYډV׆UօTՄXw]]]]]^[dVeSaPUGIBD>A>A?B?B?BADGITTTTSSUUSSOOHOA_?nAqFvK{HxAp9i/_)X6{f;nk2[b.GM*3,%5%qvq㍍' ( %*J'm:$N(W*Z/_7g;kFvSԃ^ߍiprw힊z|twrtrutwuwrtqtoqnqortv}{zz|}}y{x|먓|{yyxyyꨇuu^^EE12 y&#C"GG*ii*iiRRQQ&ed$cbQP'& ?>&ed?~}@}{(a^VT 53:8*c`=ur4ljH= 1& 3)A7#K@9. '8? 3& ) 5 4IIHGD@>B A DGIK L RXe$p;sA l9m2w=dD&M ]}Momynnr q(Q#U#UC+134432BQP? 345 < > ?@C(^,e*`L@<@BB>856E(_-f-f%Y>::;;<CGHJJJJIHD?!Q.f(`!W: 14q, 7))2288>>CCEEAA??>Hn>n@pBqGYJKKKJJIMFcGuGwIyKzK{JyIyFvEuCqBVDDDDBM@_>h=d=T=A;<475869685869=?CCAA????==<<<<nCsQҁ^ߎgjnwprilikjnlnjlhjfigjgjikwx}zx{|~~}||}ꭁ묕~|yyyyꩅ{{bbFF++ 7( 44 77JJJJAA"" 40 <" =" <-/B$F(H G D <<F H D POFHHK G J N UQPMT]g k c^][V\d/d0 ZU X [ ]dl z=W]\ }KI[K+TbF^eum^^cek~r&K"Y WC6889 ; : ;:>>@=88?BC@A*`.g-f(^#SDDGHGEAA'W2j4n3l-bHCE"I$K)O&O#R R R R R RQP!O+X5k7p1j-eD741   ;!!**114422//,,,..H0_1a0`/_0`0]2<56664422193Q6b7g9h:h9h8g6f6f5Z3:11354N1]/^-\-V-;--)+(+(+(+)++.121122222211114479BUJwO~L|Gw?o5e.]6sf9ji6_e6QU2E9/Q/WkW!1!#"*#)@B4\a3pb$zT$S+[5e;k?oAqDtN~UօW׆]݅jwpqssuuttjj[][]\^[^Y\WZVXVYZ\cessyy{{zz{{}}qlkjlmonnnnns옂~trqommomxvv\\??$$ E  //35D RVUTV Y beeff e bb a aaa fq%o ee b ` ][] b c g j m pt v$&#~yxu~6 D Cy7lmmnq$t+}C`dh_P ?>;>"R)^*^!N?ADC@C.d3l3l2j.d!PJKKLMK#J1b:s;u;t7l'P#M"N"M#J#I"I HLMLMLML"P0c4l3l/h$T "|"R " N lw""))%%!!"" !> O POL9 *13 2"=$K$N#E . ENMNM5 ! ""#%%''&&%%$$$$&&((018=>WDmCr?o:i3c2sa9ki6_f6W\8OC6Y74^4T]T"."(0*-FL3\c:oj0{`'V.^8h?oEuHxCsBrDtGlN^XZ]]^^]]^^\\MOIKHJGJFIEHDGGJLNWY^ebjfjgggggg`\܌\݌]ލ_ߏ`aa``_ߏ^ތd}jkjjisa_ݏ]܍[ۋY؉Y؉YىZڊ_yggkknnnnmmhh^^JJ11N   Xg` dl* u'rqu}"$$#""#"~|}}|}6GF2}|||"&' % ' ( ,?JC 4444/)) +H"R"QH))-02}5 }@ainlV9B+K=gUmtgR^osrhg` 4:9 ; >@ABCEFB!M.e2k2k,_DBCBAE0f5n5o7p5m'YMMOPQ!Q&P3d;tOADEEGGIIHHJJKKBD<>:=:=:=9<9???>==9212225 P(^(^ R9 / . 1 7 ;<:8:C$X(`$X@ = < < 9 2 1 2D T TH47;?ACEaqssW0@.I:\FoYdcL\kpneaxdddJ57:@DEFFGHHD'V3k3m3m0gFAABC!I4j8q9r:t:r.aPPQPPOL+Z5m6o5n/dHHHHEBAABCA:4 + $ ~#3p91pI8lIKkQ_u_vw%@& "  ,Pg0k9j:#j4'q+++**$$!"     @EEFF2!#&',|.0|62{@7tN>j^<_^3RT1JG2L83V39^9CZC.F/1E?4TY6be:oj3wc.^6f@pIyN}O~JxB^9=776677888899::7803/1/1/2.1.1445>5U5`6b8^;N;<:::Gn@pApBqBq@p>l=b;M<>>>@@?@769AHJB >ADGKNPcvysX-A3K?\JlZzV_FP^cc[[tPPP A:>?EHHHGHHHE)Y3l4m3m2j!IDEH I%N8m;t;u;t:r0cOOMLKJG!M-b2k2k*^EFFFB><95/ ' ~sf \#b):mC`lzp{p8 .  @3%_L'oS%pQ%jG(h5*s,+,*+&($% } zyxwxy  CFFFF4!#%'*|+.q.3k4<]A?WJ9QF3G?0F5/P0-X-bxb񄐄1X14O87PK6[`7dg8nh0y_4d=lCsGwJuDg=H44..++****++,,++++&($&#%"%"$"#$$%8%Q%U&U(V)I'*&&(,*C,U,Y-Y-R-L,M*K)F&7%(%%&&''''%+%K'U'W(X(W&N#4$$&&(()),,--&&wB   k& + )4)]0i6o5m._"POPPPOPO"N%L'M$K#L!J I$M3h7p8q7o-] FGIJJIGJ)\.d0i0i,bB@CC@<COPIA@ E H J MQUYbqulY2E:PHdUtfP[DDNRTOYrPPP C?BBGHHHIJJJG+[6n6o6p4k$K"H!JMM"N4h8r8r8q6n-`JJJIGGEB#Q,b,c#TACB?70 + $xmY V"[$7d8OnPtuʻNeN ) " ?G)RX-c]-m],qX+kC+w.+-+.+-*,''!!}yv t t ssz HHHHH7wz||} ##&%'')*|+,f,3Z39N9;O;7L75I51O1.X.BeBAeA6^68Q<5RS4Zb8eh6ne4c7e:f=c=Y7E13*+"#!"  !!!" 4JJIIB197*  (=EE>, %%(("#nfX : 3bhi?)Z-a.c,^KGJIJJJHDE F HL N!M&P7l!nJ#qM#hCC&! ! 0 2DYDwwxUhZGiS%c8p) lny% /9=??@ADHGGG,a3l3l1h%SILNOPQ Q1d ? < 9 7 95 '{vpjc [ S?7S7lvl၄'7."<@$EP(JW1Q\6OU6X>5w769:<6924246u64y?3N0R,G$r0l$ky"!#!#!{ v*#~N#zS"vR sOrNqNsNo:dgiq ! "!$#&&))+),),*-(*'*)+.18m9_ja=V>FPZf p~ *27:?EFFC([1j2j)[FFHHIJLL/b8p;t;u;t9n'Q"N"N"I!G#K3l3n3o2o(^MSV[_chlnmrwpl[qq 1Nkv}~yqjcgtTTTG!G"H"H JLKJGFD=;=;p@6zX3b3c3b1~Z.zM(s>w' ##&%'%'$'(~((|9*X(}X'zW&xU$vS"uR!uQ q=lo n } "!$"%$&&)(+*,,/-0021347698:=a>;N;5?53D32U2-a-MqM^s^-]-3V36O68N88R84J42O2*_*(y)&(')')')"%vssqp{9IIIIJ*    r srqru{$$)),.,.-0-0,/,0.pJ3v`1fa/X_*OZ!BL'&%ǻs{sF\FD>Yc p{% - 8>@?K'Z%XF>DEFHIHH+^4l5n5n5o.aJKL L#J%L6m:t8t8t,cRW\_cgjnoou zyh} .Ie{vkioTTT D>CDDFFECB@;;E$V%XMDCCCC@9 16HK? %o hr+r1b? /S/gxhipk*($ (#!("%/&,J-0g34q67x:>|@HtHDqR$*!$! ##&#&$'%')u)*y<*Y)yX(vX(tX'rV$qT!pQj<bh!m!#%')')(*)+-0032525478::=:<9<60;0.H.*Y*@e@InI3c36Y67Q76S65T54R42X2'q("%%'&)*,),&)#%" yhhfer8wIvIwIxI}K~C|+x| vponpz!()..22/1.1.11425258rQ8de4\d1U`(LX!CM+*"ZcZųPdP9X:JP^ m|#' -6@A<;@CDDDFE(Z1j3l3l2l'XGIIHG!G3i9s8t8u.f!U[adjmpstw} v%DaywllxUUU C;<=ACCCC@=:;=@BBAA? = 82'#6I G?q cd ` WI /^:HnUt{㾿twu".#%%"("&1&*?+2L38S9?X@C`CBnZ>wn;wk7tg2ub2yb2yb3x`/zM(0&)%'!#! !"!##$&m&(s:({W'tV&qV&pV&nU&oV&qU%nC&i&*q**++--/.00225478:9<8:8:9<:=9;7u::Q;4=4,6,'>'$M$avaDlD3d34X45O56O67S7:Y:2n3),&(%((**,),(+&)$&!$"!mgeco9tLrLrLsLwO {O|Du#{ xlkp$%z7,B0B3}85{50202368:69478bE8V]3Vb,O[&IT"?F-&X^XžcxcDeEOE^ hry ~ # & .8< = >@BA O,c/h/h,bJDEEDC@)]2l3o4q,f SY_bhnruw{ 3WsqjrUUU A8:;@BA@>97>GC74 6 7431.&{t}0 C!~@y<gR F .X.EfEz{徾y~y5@5. ) $*$'/',5,0:07B8>N>>eZ;qk9ri7qg3rc1sa3tc3ub/wN(0')&($&#&"%#%#%#&$&()*|+-v-.z@,\+|Z)wY)tY*tZ+v[,x\/vM1q12y2.00224478:;>=@@B=@:<9<7~94u60n3.U/,6,'2'#<#'I'k}k¾𢲢BmB0^03R34G46G6;S;:f;3602.1-/-/+.+.*,'*%(#%!$ #!x kkhp< tP sP!tP#uR$xT%|U'S$y2$}$!$#%#%!$!x!"o/&s:+yF0U2[3Y5zL8s;7979:<8:4z73o54N81BC+EL&CL">E 74Wb[ƵnnGgH$V%SW d ms |$45 +/5 8 8;N$Y$WN?ACCCC?O-e.j.k%^LQY_dkptuy ?ewilzzzR 1 35 ; = = : 4 1 4IRK0$),*(&!|m h q"v8j97qN@mHaaƏ>M>0 / $+$'-'*1*.6.2>26WO7ig7ig6ke5pe3pc4pd5p`1oF)}.'|)%|(%}'%(&)(*(+)+,.012}23{33|A1`/_-{]-y].z^/{_1}`3zO5r5230325588;;>>A@C?A:<7~:4v7/n2(c+$Q#"0" 8 3P3zz¿쑤7c7.W.0F02=28E8=X>:{;7:7:684614/2.1,/*-')%($'#&!# n kg m=!rQ#sS%tT'vV'xW({X*X){:(y($'%'$'#& #  $%y3,vK0|W2}^3b3}c5|e9zb@pJB{C=?:<6u81k4.X0+:,&.*#0/!120,FSLƟ~~mnOrP9j:[T k x3x.r$'' +@MJ<6<BCCCAG$W(a'aRGKU[aglpqw #Fm{ifvh!-. /4650*( 2O"RM*v|te ] V/k6I{Xl{ٓ`n`)>)2!/!&1&)2))5),D;/YX1_a4bd5he4id4i`5dS3b;*v-'w)%u(%w(%y((}**,+./04x57z78}86{65z@4b2~b/{_.y^/x_/v_1v^1nI2f2/}11435587:9;:=;>7y93r50k2+c.&Z( N";1";"TiTxxDgD(K(+<+0908F8;`<8~;:<;>9;6958694714.0,.+-*,')&v&$l$!e!"k?#pS%pU'pV'rW'sW(vW)}X)v;(q($&"%!$!$" "$$'&-.{G2y\3|a3zc2xb4ud:wj=xmDpWFiF>j@7f93_4-T/)<)#*# & & *"ENFʵmmQqR@rJ/oB"g2Xb otp x"?IH5* 0 9>@ABCHPPHFJRY_dimot $Ho|g`lq$----,($ ~.!K"J Fu"h d g l l^ a*e+3Q4,l.)s+'r*'t*'t*)v++t-.r/3k38m89u9:{:8x87xC6e4{d0x`.t],o\+kZ+dQ*V9+T++r-.y0/w1/v20v32v43v62n4/_1,X.)T*$M& E!?7;R;ataڏ>a>&C&'7'-6-4A53f55v88~:8;9;9<;><>9;7:461402.0-//v/,m,*rH)tX(rX(pW'qW'sW(wW)}Y*u<(o(%|&#% #"!!!!$$&&('*)00yO3wb3vc2vb2sb8rg;uk=tm@jZ@V@0(3($*$ ( )%0%EOEТw_yf2_4ZXSYk}>!D G4z+2 7 : ; >=<>FKKMV] c h m os "CjzdZczr$-+(%!|ws x#B!C ~>jYT S _'d(:e:nnߧdsd;U;'C'><;!@,"H7%H<)C;+;2.9.1=1-V/*g,)j+)l+*i,+e-,[.0W02Y25e55l56t67r77tF6|e4yd0s`+n[)fX%\O#J8!=%$C$'a('k*'j*'h*(h+*i,+g-+W,)A*';'$<$ > =/N/NcN㛠?`?%D%"2"%.%(C)*a,/l14t68~;9<=@AD@C>A:<694613.14|45t52yP/{_-y],x\+w[,z\.^0_1}C2{2/}0,-(*')')&)%(%'%'&(')(/0sK3rb4rd1qa3qc7of8mh9mi:^V9E92:2+2+(.(%,%"+",$:$W`WԸxx[n[1V1[g)&u@ v=}>x+nt (*,.12 09OXQ I N V _ g l r w  ;`}v_SZrx&+$~ne j{8 |>r9b YX>_>wwଭUhU*U*"N"BEDB;!6!%5%(5(*:*'L)'W))W*+O,.C.0@00H02R23^34g45n55l55l@4u_2sa-n])gX$[S D;0 )"1"#E#!X$"^$!_$!^$"\$"U#%@%%9%!8!#>#(J(>Z>~~帼JdJ%D%4+A"Y%)e,/m23s66{8;=?B>@<>9<693614135p53xN2}a0{`/{_.z^/|_1a3a4z@5{55}54{41}2,-*-),')%|(%y'%w('x)*x-3i@6m]4nd4nd6nf5fe5de4cb1NF+7+*1*(/($,$","5$<$_g_ܦj{nRud'e?!q7kaeo  #&'${2U _\ GFMYdjqw/QqmUFMd )~uzh ]_ n+$q<#[7FfL圡^r^J[YULE@;31!2!%4&(1(*2*,;,,A,.J./S/0^02b22b22^71fP.i\*eY&ZS GF'"$&+=KPMF?=!B!#>#BUB{{Ҋ%B%75@!L#&X(+c-.i12p45x86}95}74}73~62~413-w//[//aD/o[.q].s^/w^0y`3|c5d6yA8z8;~;;y;9r93v4-/+}-)y+&u)&u)&s)(u**s-3[64ZG4d\4cc4bd2]b,Z[)NK'8-'2''4'$3$496G6ںx~RjSHTZd rzxrkoz+R W[ E~<EP^kt{#@`|xcKLW\~+++!vk` h |^ N(S*n|r᎖8_8YX_XRF>734 6 #;#%B%%I%%O%&T&(X(*X*+T,)Q3&VA#SFE;-"#"#$+5>A7'E'[h[ѯgsg:@=#A$'B')B*+J,-c//n1.n0+m.*n-*p-*r-)l+&K&%H-&WE(dV+jZ,q\1va5ze7~f8vF8u88v87p76h62_2/a/+i-*r,)r,)r+)p+*p--c03E31?40C=.KJ*OL&NF"C9 ;*!8"#:#!=!84H4||ʸ\t\;^;EZ]\[_ m"GOS z=w3x<zHVhw /Kk{jUEP\_~qqq;_OLY puh6{Dvy߳a|a&V&J[MC?<;>AEHIIIF@A92 %%)136981E[EaraĢUfU!A!?!;!$9$';'(H)&^'&c(%d($d($d($b'$R#0;)"PE&aV*kY.p^3vc5zb6pC6p66q64j44b42U20N0/J/.Q.*\,)c+(b*)X,,D-,7,)5)%6("<) B(C$A @DD3K3||øf~fJjJJMS dxC}J}J n.i(p4zGZhs ò"Ľ7Yl|xl^L=JV`߾½PT@9&O(GqLzŬʽȱ{{h~h3X32T2D A B I R R QPNLHIE <27=,L,:T:JbJxxẾSgS.E.6 = > I OUWT J !7!!+!&&4-"PM'`V+i[0n_3nW4d<4g44h42b21X10M0.D..=.,9,*>*'C($B%"<##5#"7" : =DMPP@?^?h}hĵjlOqQ+_8_8rCq:c"`!j0{H[kv°EVH#&LYfptrmf]TMGM\t߷հЭϱѿߵө͢ȞƠǤʮϽ))) G4X4[r[uuҷ·nnJnJJoJKmKKlKMkMNkNOkOOkONkNYsYļ亿vv@V@"A";CEB:0'$#"92"OF&[O*_N-[A/Y1.].-]-+Y+*Q**I*)B)(;(%4%"3"358=GMSSW)\)W{Wɱy[uCs[X-Vb-zH~\n{ \>*K*#C#>3. * 5<BBGJKKLJE@>@IN7d7@s@Y}Yoo賻ʒY-IكS8XTPKLOV_juἶׯТɛؕŰо۴ө̬βҶԺÿ݌RE/ #~ }||||||||| |#~0 QExɱqq_x_>d>>_>5&4&3$1"00 2"3$4%5&6&5&5%5&:,=.:*4%0 ,)&$"~!} } }|||||#~zp侺ٮΜĕ¢ȯвҮЫͨ̐OC:+:+9*6&4$4$6'8*:,<.>.0B3E7F7E8D6D6K=OBI;@19*3#-)&#"~ } } |||||&}޻ת͡Ȫͺ۾ٺַԲҝ^SG8G8D6>.;.=.A2E6I/6&0 +'$"~!} } |||||)ڳҫθþܾٻ׶եj_NAN@I;A2?2B4F8L>PDUHZL\P[O[NbVeXZMN@B39*2",(%#~!} } |||| |0 Ŀܽغ۽ٺ׬wnWJRDK>C5B4E7J=QDWJ]QeYj_i^j]odocbURFE7;-4$.*&#~!~ } }||| |<.ڼزч_SSFJ/>0A4D7J?0;-<->0E6K=OAM@J0:+7(4%2".,*)().>/bVᰩЊmbWJI:@1:+6&2#1"2#5&;-I:bW䶰Ԕ|qlacW[OWKXL_Sl_~uļÿִܺӮϭϮϳҽ¿ÿ¿˾˿ʽʾʼ¾ÿǾɽɻƽȻɹ̿ƻȻɸȻƹȺɷŷɺɶ˹ŶɹɵʵƷŴɸɳòɸųɸѹɲɹ¿̾ŲɷеʱȮ˼űɷдʰ¾Ǽ¾̹ưʶ¿̮¾Ʊ¿¾ÿ¿ÿÿÿÿÿĿĿÿĿ˸ͷÿþƯ˶ÿÿÿĿĿÿͮƿĿū̽ĺ¿̶̵Ʈ˶»ͬƿϻ̶ǻǾɿ̳½ƭ̴úΪȿǺ̵ǽ߻Ƚɿ̲øƬ̳˱λ¼ϩò̳ȾϫȿɿεͰƷǪͳˮͳϨIJϾ̳ìҷͯȷǩͲ˳ʻĶЭЦ¿ձͲʾ̼̼ͭ͸ȨβĸѲңէαϽҸҶοάҺɧϱ̻̩Ԣ˽դҿӾϱӰҭҲϪЩɦаЬʝѲ՟ŵբɳϱѷүѫӰϨʥЯѫʜӯ՝ïԠϱѰźүϪӯϧ˭ʤЮѩʜӭ՝ưͺӧֹʽϰѮƭЮ̨ҭЦǥɢЭЧʜѪ՛ȱ˾ѳѹʷϮ˳ǭͬɦЫХ̾ɡϫϥțϨӚɾμԾʾȵ̬Ѻ˷ɩȾƼĤ̨УμŻĻ®Ƞ̩Σƛˤϙ˾·ɽźЧϿ̻ȸƵijɩϤġ˹ȹǹƺƻŽťʼǸŵ´˿ǤϡѾ͹ƶĶîƟɦֹ˹ʼ˿ˠн˿ɿȿšٺʹȹǹƻƽƿǡʝθƷƷŷŸƴȻŹĸĸùĺĸ±ںмο;Ƣ̾˺ɶdzıðɾťˡŚ߶ʴƴŴĵöø¢;ɺǷijðɺźá͠ξ׼Ѳ׿Ýƣε˶˹зγdzŵƷǸǷǼµǞθɺȼȻƺĽź׵ɴǴƴŶŸĹßξǧֻʹijòòòóä˿ƻĶ߷ѷ͹̺˸ʼ̨˶ķɵdzưįîª̽ȽƸãѷɟǹ˽×ി˱DZƱIJñݺ˸ǵŲİ®ʿɺƴô˞ͺʷʾָЩԺƺàݹлѹұ̮ƮƯƯƮįðòijñõĺǺǽͱǾŜϴɴǵƴĴ·ôسʱȲƲŲijóϾʷƮԸ˲ݯ¯¯ðŸϻķʵɲ߶Եε̵ʴɷɹȜ沺ôʲȰǮŭĭīпʼȼǷͳ־¤ȿŝԴǷ̯ȯǯŮįݵɳƱưŮĭ«ͼɹƸŵݯԽ˿ʾǜ̵ȳȷѲˠ¤еµ޴ӬȬŮȭȬƬƬĬĬ쬭ô·ûƽǼƿDzøвʲDZŰð²ڲ̰ɰȰƯŰĮζŲű±Ųưî­­íîĮâʰ¾Ͽӿӿտ߸ڵյӶӳͱȳɵǝϲ˰ʳϲήǬĭĨ͹ȶƶŲ±ϴʚΫıϰ˯ʮȬŭì޲ʰǯǮǮǭūĚںʶǴijðííҷɺȹǸŻƼƽĚ̱ȱɴѯʜţͰӮήͬǫƬǬǬǬǫūĪê·öùżǾǽŹԱ̰ɯƮĮîݲϱ̰˯ɮǮŬϾ̿ջͯðíì««ëĬŬŭŦƪ¦ڴַڸڲϬıʱǤ̶̰ܲڶحȩȪ˜ʴƲŲį­Ѻʼɿ̾˯²νʽξʧӰΰήˬȬŪ̯߰ɯʮʮʮɬƚڴȲƱİîĬĬ˜ӳȴƴĴĵĶöΰɰ̴԰͜Ȥ̼ɼʺʬܶذԬ˭̬ȬȬɬɬȫǪƪĩ¨رа̮ȮƬĬӲаϰ̮ʮƫ˜м̸ɸλӵʦìĪªªª«ĬƬƬǭǪ¨⸼Ʊͱ߷ݺөȮǩȻӾؾٿڿۿۿ޴ԳֻޫťʬǠ˱ȯǯĮūª›ѵɵǷʷɩͶȶǹ˶ǣײұѰϮ˭ȫěѰͰΰΰίͮʚ۱ʰȰǮŭǮȬŘֱʰưůݱ°Ӱͱϵٱћ̤ոʵǶɴʩذӰӮήϭ̭˭˫ȧ»ͻͼ̶̼̼̽ܲӱϯˮʭȫħسղӱЯͮʬƗζʳɲ˳̫ŬƦʨĭɭɭʭȪìڴǻ˧ŪȪDZ̼ؿ֦ŭǭȭʮ̯ίϯϰϯаѱұӱԲղֳֳֳֳճִ׶ڵٹߺܨȮ̪įͯˮʭǮɫƫƛԱ˯ȱʱȤαɰƳʰƟ¨ܴ׳ֲӰЯ̭ɛײӲӲӲҰЯΛްί̯̭ʯ˯ͮʘܰϮɮȭǬĬ«ٲӳԸ޳֛ХԲɰȱ˰̧×۲ײճֱұүЮέʦ嶿ȫسԱаϯͭȧݶڴسղҰϮʗϱ˰ˮʫĢȪÜݬʮ̮̮ͮʬȱվ춻¦èǪɫʭ̰ҲղݫȞˮˬʬʭ˭˭˭˭̮ͮίϰѰұӲղԲղԲճֳֳֹծͥϯΜѯϯϭ̮άˬ˛ׯέʮ̮ʢ©”Ю˭ȯ̬ȝŧߵٴسձҰϮ̛ܳس׳ֳձҰЛӯѰѮϰаЯΘԮέͭ˫ǪĨݳ״ع؛ѥ֮˭ʯίϦŪǖڳسشزղԯЭ˦ҩ©’۴زձӰЮ̨ܵڴ׳ԱүΖѮͯέ̩ ȟӦŮͯίίίήέʨϢçŨǩɫˬήаӱԱԱҭުƜɭ̬ʬˬˬˬʬˬˬ̭ͮίЯѰҲԱӱԱԲղֲֳմخ̣ϯϤӰҰүϯЮͭ͛ڰѮͮϭ͡ũēӮέʯϬ˜ǧڴسֲӰѮΚ޵ڴٴسֱӰњֱӱӰҰұҰЗ֯ѯϮͬɪƨÐߴٵںښҥخέ̯аҦǫɖܴڴڴٲֲԩŤԪŨ訨èéđݴٳײձҮΩÐݵ۴زֱӯЖԯϯѮϫʨ§ˡͩĮͯϯϯЯЯЯЬʜƾ¾¾˰ĪʫˬήЯұԲֲճְѬ۬ʞɬ̫ʫʬʫʫʫʫʬˬ̭ͭϯѰҰӰӰӱԱԱղֱԮϨßЮΪƙزְֲӰӮЮϛ߱կѯѬ͠ɪȑدѮϯѫʚʧËڳسֲ԰ѮϚܴڳزֱӰљڲײױձԱӰіٱ԰ӯѭͫʩƏ۵۸՘ӤݯӮбԲ֧ʬ˖޵ܵ۵ڲ֬˚ثʩǩǩƩƩƩǐݴڳزֱӮϩŐݵ۴زֱԯѕذ԰ԱհԯҰҫʏʬ˯ϯЯаѰаѰѣլūˮЯӰղֲױֲֲ֯Ыحͥά̫ˬ̫˪ɪɫɫɪɫɫʫ˫̬ͬέϮЯүҰӰӰӱԱձԱӰҮЬ̧ĠЮϭ͖۲سױձկҮљذԭϨĜ̫ˑܰկҬΥ̧Ŋ߳ٲײֱԯѮϙܴڳײկҮЗݳٳزײձԯѕ۱ױְӮЬͪȎ۴۲֨ĕӣְԲسڧĎ̬̕ߵݴ۴ڲ֜ܭΫʫʪʪɪɫɏݳڳٲְԮѩǎܴ۳ٲֱԯѓܱױֲױְԯҫʊӨìˮϯЯѯѯҰҪȬ蟦«̯ӱֲײزײֱֲԮ޴ڱծѬήѭϬͫ˪ʪȪȪȪȩȪȪɫʫ˫̬ͬͭϮЭЮѯүүӯӯӯӰӯӯҭϫ˪ʭϬέΜݳڳٲױհӮјڲ׭ЦÝά߲͐ذի̣ͩʼn߲رְկӭЬΗܳٲر֮ѭϖߴڳٲرְԮєܲٱװծҭϪʍܳڭϤҡڲ׳۴ܨŎͫ̔ߴܳڲذՒҬάΫ̬ͫ˫ˏܳڲٱְӮѨƌ۳ڲرկӯђ߲ٲزرְԯӪʇ̮ЮѮѯүҮѪȱįҲززױְԯӮߴ޴ܲٱ֯ԨȚĬέѭЬϬΫͬͣ߳۲ڱװկӮїݰձׯլΨƦ®ѭϘڱ׮Ѫʥ¨ƛޱװ֯ԮҭЬΗܲٱװխЬΕ۳ڲذ֯ӭѓݲڱذ֯Ӯѫٰ̌ղٯԫͧêʮѤݲڴݵިōͫ̓޳۲ٱՠ֮ҭѬЬάͫ̎۲ٱذկӮѨƋ߳ڲٱװԮҮёڲٱذ֯ԯҪɆ䯼ĦīͭѭҮүӯӮЩȸ۾կӱررְ֯ԮҮܱڱدծҬТ˰ɩɪ̫ΫΪ̨̪ͪǞ۱ڰدծӭіܲڱٰׯԮҮӭѣ۰دծҬϫͤۯծԮҬЬϫ͖ڱدծҫΪ̔۲ٱׯԭѬВݱٰذ֯ԭҪ͌رد֮ԮѭѭШȨܴ߳ߴߧċͪ̑ڬϰخҐٰկԮҭЫϪٰ͍د֯ԮҭЧŋݰذ֯ԮҭЬϐ۱ٰׯծӮѩȅڽ׬ЬѭѮҮҮӬά˼ްְذ׶ڬϫܰد֭ӬѪΥřͧȪ̩̪̩ͩͩʟ۱ٰخծӭѕݲڱٰׯծӭҩ̝߲۰دծӭЫΡ٭ӬҬЪΪͩ˕ްد֭ҬЩͨʒ߲ڱذ֭ҫϫΑٰܱد֮ԭҪ͌ޯ֮խԭҬЫϩ˥ܴߴߦĊͪ̐諿Π֫Ј۰ׯծӭѫЪ͌ׯ֮ԭҬЫΦŊڮ֮ԭҬЫΪ͏۱ٰׯծӬШȅ㫾ΪάЭҭҭӭҬѬ˻ׯװػߦŦ׭լҪЩͧʝڧʨ̨̨˨˨˨ˣ߰ٯد׭ӭҫϓ۱ڰٯׯ֮ԬҫГ۱ٯ֭ӬѫΨɜ׫ѪЩΨ̨˧ɓۮ֭ӫЩΨ˦ȑްٯ֮ԬѪΩ̐گ׮֮ԭӬѩ̊ܬҬӫҫЪϩΩ̤Ú߲ܳ߳ߥĘ̀ˏ߶⤴Ӫ͆ܰׯծӭѫΩ̋ޭխӬҪЪΩ̤ÈجԫҫЪΩͩ̎ۯ׮խӬѪΦƄЦƪͫЬѫѬҭӪͪƾۭծֻݝܬԪѩϨ̦ɥƗ䩾Φ˧˧ʧʧʧʥƖޯخ֮֬ҬЪΒ֮֯خ׮խԫҪϘگخԬҪϪ̢֪ШΨ̦ʦɦȑڬԬҪΨ̦ɤƐܮحԬҪШ̨ʎخ֬ԬҬҫЩ̈ب̪ЪШϨΨ̥ͨƞްڲ޲ޤ†ʦɎ޳ܞҨ̅ܯخ֭ӬЪͨʊܬԪҪШΨ̨ʢ‡֪ҪЪΨ̨ͨʍڮ֬ԬҪШ̤ăި¦ƩΪЪЪЬҫШʦܬԬԶԒܫժҨϧ̦ʥǢÓ橽ͣƦʦɦɦɦɥȘݮ֭լԪѪϩ͑׬Ӯ׭֭ԬӪЪϠح֬ӫЩͨ˜ԨΧͦ˥ɥǤƐثӪШͦʥǣŎۭ֫ӪѩΧ˦ɍ׬ԫӪѪЪϨˇॹɩϨΧΧ̦ͦ˥Ƞݯٱܰܢɥnjްܱޯڝѧ˄ۮ׭լҪϩ̧ɉ۪ҩЩϧͦ˦ɡթѨϨ̧ͧʦɌ٭իҪЩΧˣÃңȨͩΩϪЪѩΥȡ۫ҫѱާ̋ߩҨϥ̤ɣǢĝ谿̠¤ȤȤȤǤǣƜ۬իӪҨϨΧ̐ԬլԫӫѩϨΤƕիөШΧ˦ɘҦ̥ˤȣƣƣď֩ѨΦˣȢšÍ٫өѨϦ̥ȤNjժҩШΨ̥ͨɆΧ̥ͧͦ˥ʤɤȣŖۭׯڮ٠ƣŋܯڮګӚϥɇڬիӪШͦʥȈ٨ЧΧͦ˥ȤǠӧΦ̥˥ʤǤƊ׫өШͧ˥ɡɠɧ̨ΨϩϩϨΤƞ٩ШέעÉۦΤ̣ɢŠß⡵ŢǢǢƢƢƢşتөѨЧΧͥʑڪҪҩЩϧΦ̥ʛԩѧϦ̥ɤǡš䦽ϣɣȢơġġԦϥˣȢŠß֨ѧϥ̤ɢƢŊީӨЧΦ̥ͥʣƆܦ̤ʤʣȣǣǢơŞتԬ׬מġŠݭ׬֨ѣƖ̤ȓګԫӧΥɣǢņإΥ̤ʣǢƢĞߦФ̤ɣǢơšĈԨЦΥˤȢƞ£ȥ̦ͧΧΧΧ΢àئͥ˥șإ΢ɡǠĞꤺ͠ŠŠĠĠğÞէϧΦ̥ͥˣȜ঻̧ϦΧ̤ͥʣɢš੿ѧͥˣɣǢĠ“⤺͡ǡŠğŸ㧽ФˢȡƠÝԦΤˣɢƠßܧХͥˤɣǣơÄȢơǡơơŠğĠĚؿըѪԩԛХ˨ѧѫج٥̠ĢȠž٨ѮܰߧΟğԣʢǡƠĠߜݤ͢ȢǡŠğŸިѦ̤ʣȢƠÜ͠¢Ƥˤ˥˥̥̤ʤȣ孽ݣʣȡÜեΤϦԢ˛栴Ɯޞž᣹ʢǤˤˣɢɢǟÏᢷǢǤˤˣɣɢȢǝڤˣɢǡƠßᢸ˟ĞÝ᥻΢ȠƞÜ⧽ѣˢɡǠĝڥͣʣɢǡšğȝžĞĞÞÞÞÝࡶȮҦΧҧљ쨻̦ΦΩթעɛǡƗئЫٲݞҡȠşĞžۢ˟ƞНۦϤʢȡƠĞÜŢɣɣɣʣʣʝܠƺܡǠĞ⤻ϠȢͤҞēԚҠŢɢɡǠǠŞÐԟĢɢɡǡǠƠŞ›ݥСȠƟğž࠵ɝœࢹ̟ƞÜऺΡȠƟĝעʡǠƟğߝ⤵ܜԥΛޥУ˥ϥϗ}Ӥͣˢʣ̠ƖÚکؤΣ̪׮ॼϓОŞĝœٟȝÜ٣̡ȠŞÝસÜĠǡǡȡȡȟĝءɣʣɻަОĝࢹΞŝŜ•术࠶ǟƟƞĞĝÜ➲ÞğƟŞĝÞĝ›ۤРǞĝœߞƛߠɝÛޢ̟Ɲĝ›ՠǞŝÝʚ㧾ӠȝÖܣ͡Ȣ̣͕{}ҡȠǞğǢ˛ޮ̢̡֢ۧʠȣ̣̘ΜÛ~םśסɞŝœ~۩ŸşƟƟşĝՠɟǝĢǨʷݤПŜ؟ʝśÖ윱Ę埵ǜÝĜœ›못əÜ››Ȯީ٢ΞǜœޜęݞǛݠʝۛԞŜÛמܧ՟Ǜڡ˟Ơʡ˓{|~ءĝĝĞŠʟȘǶ߬ڣѡ͡˞ƞƞƞŜ™̚~֛Ù՟ǜÛ~ؤÝĝĝÝݚӞǝśÛÛ įͱݣНś̛֟ĝǝȕƕ棶ƙйߨƿܟʹߣՠ˞ɛĚܙ–ۜĘܞǚқÚșӾۻ߻ޣҟɞǙٟɝĞȞȑy{}ț›ϼ׼ؼٽٽٽھܿ᥿֠͠˝ǜĜě™~ɗ~ԙӜĚ}ԙЛ̙ҽھܼܢϜęӚ×ŜȔ֓Ӛ楼қśƑЗޡўʝəۗڙڛĘЙ⬷ĖܠΝǞɜǙ؝ƚĜďxz|ОÚĜɝʚ™}ǖ~ӗњ|睰͘ÛŘ䢽ԝȟ̟͛Ø뢸Ζ}˕ǚĔƷ͛ǜʚŔڕؙؗΗ~޶ȪŽŚƚƚƛƚƞ˟̚Ė֛˜x{}޺ѥ•ά|Ĕ}ѕϘ|Ӵ˖ǕŚƚƚƚƚƝʟϝ˘Œ~뙥גՓՕʓҗ|֖Д|}Α˕|ď~ɑz򐠱슙}y}֐Ԓӓȑ~~Д֋{wyzϑ||͏~ɒ|~{~Ֆŏz䊔೹}w|֏Ӑё~Ə~变}~{Β~̀|uwz͏||̎~ǐ|៧y~쑤w}Ι}˷Ā~~w|Έ}ˇ|Lj{{ʥ~ˆ{̅~|y}x~zÆ{{╢ɱy˰ʯά~{魲|ݲï۱®ٲ¯б٬|ձ򳷼zѮ˰ֱϱˮ䭲{ڜ본柦Ǜ뵺Ǿľþþ¾¼¼»þ¼¾öôø¿ɼȻǻŸɾȻŸ»ŹȼƹĻ¿þø}}}{{{}}}ŲͽξνͽʺƶͽǶ|||~~~¾˺ξ˻¸¶οvvvjjjbbb```ccclllzzzмrrriiigggkkkuuuxxxmmmgggfffiiiqqq|||ʹzzzuuuuuu|||ʸzzztttuuu|||ʷyyytttvvv}}}ƴxxxuuuwww˷tttkkkffffffkkkuuu½ʸvvvnnnkkknnnxxxѾzzzpppiiigggiiinnnwwwxxxqqqooorrr|||ǵyyyuuuwwwʹzzztttuuu|||ȵyyyuuuvvv~~~ȾƺȽqqq___QQQJJJIIINNNZZZkkkͷssscccXXXUUUXXXbbbpppɴssscccWWWQQQPPPUUU___nnnſʷ}}}nnneeecccgggsss˷{{{mmmeeecccgggsssʶzzzmmmeeeccchhhtttDzxxxkkkddddddjjjwww~~~kkk^^^TTTPPPQQQYYYeeeuuu˶yyyjjj___YYYZZZbbbnnnκ~~~oooddd]]]YYY[[[aaakkkwwwvvvkkkbbb]]]^^^eeerrrdzxxxkkkddddddjjjvvv̸{{{mmmeeecccgggsssȴyyyllleeedddiiiuuuɿ}}}yyywwwyyy~~~ý|||uuuqqqrrrwww¶~~~qqq\\\JJJ>>>777888???MMMaaazzzͷnnn[[[MMMHHHJJJRRRaaatttìzzzeeeRRRFFF@@@@@@GGGSSSdddxxxü~~~xxxuuutttxxx̺|||jjj]]]WWWXXX```nnnκyyyhhh\\\UUUVVV___nnn͹xxxggg[[[UUUVVV```oooʵvvveee[[[WWWZZZcccsssкppp\\\MMMCCC???BBBKKKZZZlllκxxxeeeVVVMMMKKKOOOYYYjjj}}}ϻ~~~nnnbbbYYYUUUVVV[[[eeeqqqssseeeYYYQQQOOORRR]]]nnnʶwwwfff[[[WWWZZZcccsssϻzzzhhh\\\UUUVVV___nnn˷wwwfff\\\VVVYYYaaapppŽzzztttooooooqqqvvv~~~vvvlllggggggjjjqqq|||·ttt___KKK:::///***,,,666FFF]]]yyyѺpppZZZJJJAAA@@@GGGUUUggg}}}sss]]]JJJ===666666>>>KKK^^^sss»zzznnngggbbbbbbgggppp}}}mmm\\\RRRNNNSSS]]]nnn}}}iiiYYYNNNJJJPPP[[[mmm|||hhhXXXNNNJJJPPP\\\nnnнzzzgggYYYQQQOOOTTTaaasssͷiiiTTTDDD:::666999BBBRRRfff}}}«~~~hhhVVVIIICCCCCCJJJWWWiii~~~uuuiii```[[[ZZZ^^^gggrrrttteeeVVVKKKFFFEEEMMM[[[lllо|||hhhYYYQQQOOOTTTaaarrr¬~~~iiiYYYNNNJJJPPP[[[lllҿ|||hhhZZZPPPNNNRRR]]]lll|||vvvoookkkhhhhhhkkkrrryyy¿uuukkkeeebbbeeelllvvvƼ~~~~~~~~~xxxdddOOO<<<---###!!!%%%222EEE^^^|||ªwww```MMMAAA<<>>NNNbbbyyy˷rrr]]]LLLAAA===???HHHVVViiiɸxxxooohhhgggiiipppyyyzzzjjjYYYLLLBBB>>>AAAKKKZZZmmmȴqqq___QQQKKKKKKSSSaaatttɵppp\\\LLLDDDDDDLLLYYYlllȵqqq___RRRJJJIIIOOOYYYfffuuuxxxooohhhdddbbbcccgggmmmvvvýzzzqqqjjjgggiiioooxxxú{{{xxxtttqqqnnnllllllkkknnnrrrxxx~~~lllVVVBBB000######222HHHccc˵kkkUUUFFF===<<>>999888???MMM___uuuįjjjUUUGGG===999===GGGWWWkkkƶ}}}zzzzzzrrraaaQQQDDD===;;;@@@KKK\\\qqq¬jjjYYYMMMGGGJJJTTTcccvvvпyyycccOOOBBB>>>@@@JJJ[[[ppp­kkkYYYLLLEEEEEEKKKTTT___lllxxxvvvmmmeee```___```dddjjjrrr}}}ù|||uuurrrtttyyyļzzzrrrlllfffaaa^^^]]]^^^bbbhhhoooxxxxxxbbbLLL888((($$$666NNNkkk«zzzaaaOOOBBB<<<>>>FFFVVVjjjȳppp]]]NNNDDDAAACCCJJJXXXiii~~~ppp[[[JJJ>>>888999AAAPPPddd|||jjjYYYMMMHHHJJJSSSbbbuuuƲjjjTTTDDD:::999???LLL^^^tttƱjjjTTTCCC:::999???MMM```wwwμyyydddUUUJJJGGGLLLVVVggg|||ŰjjjXXXKKKDDDAAAEEEPPP^^^qqqҿ{{{dddQQQCCC:::888<<>>===@@@EEEOOOZZZfffooowwwzzzzzzwwwsssoookkkjjjjjjmmmssszzzξ|||pppgggbbbaaaeeellluuu}}}rrrhhh```[[[WWWVVVZZZ```hhhrrr{{{rrrZZZBBB... ---DDD```űjjjVVVGGG>>><<>>666666===JJJ\\\qqq˻xxxaaaLLL===666666>>>LLL```xxxʶtttaaaTTTMMMMMMTTTbbbuuu˻wwwkkkccc___```fffooo{{{ɶqqq\\\JJJ<<<555555<<>>===BBBNNN```wwwʷuuubbbTTTNNNMMMUUUbbbsssʻ{{{cccNNN@@@888888>>>LLL___vvv˸ttt___NNN@@@:::888:::BBBLLLYYYfffpppxxx|||}}}}}}|||zzzyyyzzz|||μtttggg^^^YYYXXX\\\dddooo{{{{{{ppphhhbbb___```ccchhhnnnvvv~~~oooVVV>>>+++###444MMMkkkϼyyydddRRRFFF???>>>DDDOOO___sssɾ|||vvvssssssvvv|||lllXXXIIIAAA>>>CCCNNN```xxxͺ{{{iii\\\VVVWWW^^^iiizzzƹ~~~hhhTTTFFF>>><<>>:::<<36:LNOiiiwxxǀ{y}x{w{~wz}wz~x{z}{~|y{|̿ߧ}y|w{vz~vy~vz~w{x|z~||pppbbbVVVNNNIIIIIIMMMUUU```nnn}}}ty~swzvy|x{z}{|||xz{ÿϼ|||iiiZZZRRRPPPWWWccctttڍ|y}vz}sw{qvyquxruysw{stv¸~~~zzztttlllfffUY]GMSEHKIMPRUX_beoru洷Y\_beioru}ѷ&6!.!. - - , ,,,,, |ߵî޵®¶[gr'5"0"0#0#0#0#1#1#0#0 *%¼sssiiibbb^^^]]]___dddlllwww{%4+**)))*( վġ̿۴ͻ~~~mmmaaa\\\___gggvvv๽нő'7"0"/!/!.!.!/!/!.!.!/"/ cfii.E[&8I#2C!/? ,;+8)6)6)5#.sy~¸|||N]n%9N&4%2$1%1&2'4)7,:+8NV_鲷+8 *%6H(?X*Fb,Ge,Gd+Fc+Fc+Fc+Fc+Fc 4I'6%1&3(4%.]gq%/*8(!.=!/> -;=FP3Mg#4D!1A />.<.<.<+9@JS3Lf$5F"2A /? .=.<-<)6IQY/F^$4C#2A!0?"0?"1?#3A .;xĺ(4A!*"2A*BX.Jf1Nl2Ol2Pm2Qn3Qo3Qo3Pn2Pl2Ok,E_(7",!+ý{1I`!1A /=,:+7)6)6*7'49@H{{{wwwvvvwwwzzz\ck#-#.#6J'@Z+Gc+Fc*Eb*Eb+Eb+Eb*Eb)D_%3&㓟)=Q( )!*"+#-%0!+\`f-BY"2B!0?!0>!/>!/>"/?+7󥰼0Ic#4D"1@ />-<-;-;)6U\d0H^$4D#2A!0?!0?!0>"/?+8ͺvvvooommmsss~~~$4D,8*7)6(5(4(4(5)4(5*7.9EKVa&1!,,9)?T+Ea.Kj.Lj0Mk/Lj/Lj1Nk1Nl1Nk0Mj1Nk1Nk!4G#- ' 469p?f7Wy0Mj.Jg-Hd,Fb+D_*C](AZ+(2<4;D29@[`c>b4Ro2Nk1Lh.Id,F`+E_+D]"6K8BKMV^4BO.CW(A[+E`-Ie.Jg.Kh-Ig,If,If-Hf,Hf,Hf-Hf*C_)B\'7")0-/2hhhퟰ9Z{+D\+C[*C[*CZ*BY)AX.?[bh5Vw.Ie,Gc+Fa*D`+E_+E_/A8[~/Kh.Ie-Gc,Fb+E`+D_ 4IU]f;^1Nk0Lh-Ie-Id,F`,E`1C̼Jg/Je1Mi0Lg/Kf/Je.Id.Hc-Hd,Gc)B\'>U;EP6=DDTd0G`,Gb,He.Jh0Nl1Po2Oo2Qq4Ss4Sr4Ss5Tt5Uu5Tt4Tt5Ut5Us2Pl/Jd.Ga%:O#-05:)+,q>c5Uw4Tt2Rq1Nm/Kj.If,Gc.@otyĿh|4Tt1On0Nl/Lj/Ki0Mi/Lh/Li,F_UfwQdw.F^1Mh1Nl2Qo2Po1Nm0Ml/Mk.Lk.Lk.Kj.Lj.Lj/Mk0Mk0Mk0Mk1Om-Ie'4kt}m{.DX0Jd1Nj2Pn2Qp2Qp2Pp1Po1Oo1Oo0Oo0Oo1Op1Oo1Po1Po2Pn0Nl0Nk1Ol-Ga'>T"5G"*[_cYZ\=a2Oo1Nm0Mk/Ki.Kh.Jg'>V6?J>c3St2Qp1Nm0Lj/Jg.He%;R?IS@g7Ww4Ts3Sq2Pn0Mk/Ki%:QJS[=`5Uu5Ut3Sq4Rp3Qn3Qn$9Mt|Sew)>T*BY1Lf1Ol3Ro5Ts6Vu7Wv8Xw9Yy9Zz:[z;\{;\{;[{:[z9Yy7Ww6Vt4Sq4Sp-Ga+BZ*@W%7J,8Cdks`gmɎDk:[{8Yx6Vt4Sq2Ol1Mj/Kh%:P;DLiw4I]-F^0Lh1Nm1On1On0Nl0Mk/Lj.Ki.Ki.Ki.Ki.Ki/Kj/Lj1Nk*C]'>U.?*07^`bccc@d2Oj1Ni1Mh0Mg/Ke.Id 2D]ch9Z~2Po1Om0Nl.Ki/Lh/Lh1C;_2Pq2Oo1Ml0Lj/Lj/Kh#8MW^g@e7Ww5Ts3Qp2Qn1Nk0Mj 3F򚪺;[z6Vt7Xv7Wu6Vs6Ur5Tq4Sq3Rp0Lj>Ulmx_o+C[,D\2Mi2Om2Rq3Ss4Tu4Tu5Tu4St5Uu7Ww7Ww7Wx8Xy9Yz8Xy8Yy9Yy9Yx8Xw7Wt6Tr2Nj*AX';O&QVZZ\_@f8Y{7Wx5Uu3Qp1Nm/Ki-If1DBIPɓQi2Qo3Rq3Qo1Om2Nl2Pl2Ok2Ol'>Teqz`t7Tm5Sp6Us4Ts5Ts5Sr3Qp2Oo1On0Nm0Nm0Nm0Nm0Nm1On3Qo3Po3Po4Sq0Lh(4{2GZ:Sk2Ok5Ts6Uu5Uu5Ut5Uu4Tt3Ss3Rs3Rs2Rs2Rs3Rs3St3St4Tu5Uu4Ss3Sr4Sr4Ro1Ok.Jc$8L+;L%-hil=c3Rr2Po1Om0Nl0Mj0Li(?W4=H@f6Vw4Ss3Qo1Nl/Li.Jf$:Q?GQCk:[{7Wv6Vt5Sq2Pn1Nl%;QJRZ@d8Xx8Xw6Vt6Us6Tq6Tq$8Kszas4Oh0Mj2Pn5Ts6Vu6Vu8Xw9Zz9[{:[{;\};]~<^=_=_=`<_;^~:\|9[{7Xx7Ww5Sr4Ro2Pm.Hc(>T/BU%3A~זGn=_;\{3Pl+D\"5H*B[2Nk&Vm3Ql4Sq5Ts4Tt4Rr4Rr2Qp2Po1On0Nm0Nm0Nm0Nm1Om1Oo2Qp4Sq2Po2Pn-Ga(;O)8G %*Ch5So4Qm4Pl3Pj2Nh1Lg 2D]bg:\3Rr3Rp3Qo1Nl1Nk1Ok0B;`3Rs3Qp2On1Nm1Nl1Mk#8MW^eCh:Zz8Wv6Ts5Tq3Qn2Pm2Dȿi9Yw:[{:[z:Zy9Yx9Xw8Wv7Vt2PmG_xh{6Md9Tp2Qq4Ut6Uw5Uv5Uv6Vw7Wy7Xz7Xz6Wz7Y{:\}9\}:\~;^;^:]~;^<];^;^~;\|9Zy8Wv5Sp2Nj$8M*;K(2WZ]Em>b9[|6Ww1Nk,E`%;R*D^%;R!,8cehx>\{3Qq4Ss4Sq2Po3Qo3Ro3Qn3Pm%9Ngovi}=Yt8Xv:[z8Xy7Ww7Xw6Uu5Tt4Ss3Rr2Rq3Rq3Rq3Rq3Rq4Sr5Us5Ts5Ts7Wu2Pl(4㊙BZq3Pl8Xv8Xx9Zz9Zz8Yy8Yx8Yy7Xx6Ww6Vw6Vw5Vw6Vw6Vx7Wy7Xy8Yz9Z{8Xy7Wx8Xx8Wv7Vu5Ur2Pj/Je!3E&-5wy{>d4St3Rr2Po1On1Nl1Mj(@X3FOFn<_8Zz8Yx6Us3Ro2Pm&a>b>b?c>b=a=`=_;\}:[|9Yy8Yx7Wv4Sq1Mj/Kf%FL֗CZq7Vr8Yy6Vt3Pm.Id.Id6Vv5Ut4Ts4Sr3Rq3Rq3Rq4Rr4Ss5Tt6Uv7Ww7Ww8Xx7Wv5Sq0Ke 1B',1ڪ@e7Ws6Uq6Tp4Rm3Pk2Ni 2C]af;^4Tt4Ss4Sq2Pn2Pm2Pm0A=b4Uu4Rr3Qp2Pn2Om2Nl#8MW]dEl<^}9[z7Xv6Wt4Sp3Rn1C~sB_x;\z<_<_~<^}<]|;\{9Yx5SpIbzFe6Ts8Yz8Y{8Z{9Z}8Y{8Y{8Z{9Z}:\~:\:[~;^=`=`=`>b?b>a=b>a?b?b>`=^~<\{:Zx8Wu3Oj/Jc"6I#-6cfh]En<`9[{2Om(@X*9'>V-Gb->MQUr:\~6Uv6Vv6Vt5Sr5Tr6Ur5Tq1Ni9L]}Da}:Zy<_<_;[|:Zz:[{8Xx7Wx6Uu5Tt6Vw8Yz8Y{8Y{9Y{:Z|<_<_:\}:[z5Sp)5铢Lf{7Vr;]|=_;]}<^~;]~:\|:\};\}:[|8Yy8Zz:]:^:^;^<_=`?d@e<^;]~;]~;\}:[z9[y9Zx7Vt1Mg 1A/6=@g6Vw5Uu4Sr3Rq3Qo2Pm)AY2:BEl;]~9Yz6Vu4Sr2Pn0Nk&EMHq?b;]~;\{8Xv6Ur5Sp'=SIOWDj=_<_~;\{:[y:Zw9Yv$8Kqx}bu6Oh3Ol6Ut7Wx8Yy8Xx:[{<]~;]}=_>a>a>`?bAgAgAhAhBhBhBhDjCi>a=`<^;]}:[{8Xw7Vt6Ut1Nj,;KtBf@c9Xv(?T  3E4So'=R@FL䪵Tj6Tr<^~;]|5Tq,E^#8L'=S9Yy8Xx7Ww6Vv6Uv6Uv6Vv7Ww7Xx8Yy9Z|:\}:\|;]~<_=_;]}3Ql+:@JSAEI<]{:[x9Yv9Ws7Up5Sn4Ql 3D\`d=a7Ww7Vv6Vt5Sq5Sp5So0@?e7Xx6Uu4Ts4Sq4Rp4Qo$9NV\bHo>a<^}:[z9Zw7Vs6Tq 1B~zFbz;\y?a?b?b?a?`>_8WsF_wAg<_<_:]:\;];];];^<_=`=`<^>aAfAgBgBhCiBiBhEkEmBh@d@c?a=_};\z9Xv6Tr1Lg"4F(19lno숧Jt>d=a>b2Ol0B)BZ1Nk!5HGLQl;]~9Zz8Yz8Yx7Vu7Wt8Wu7Vr-F^huTs>a?b?c>b=_<]~<^9[{9Z{6Uu@^{NmStSuSuTuUvY}QxCj>b:[y!/<򝩵Sl9Yu=`?b?b=a>a=`<^<_<_;^9YyLkTuTwTwUwVxW{\MxChAf@d>b=`=_=_~:[z:Zx1Me.>5DKJtAe>a=_:[z8Wv7Us'=SIOUFn?c>b=_<^|<]{;\y$8Kqw|q7Sn7Vv:Z{:\}:\|:\|:\|<_>a<_>a@e?bDdUuZZ~Z[[[\]NzChChAf?c=_;\}9Zz9Zy7Wv0AMwEjChEk7Vr!4E6Uq'=R@FLk9Xu>`?b:Zx5Sp)@V 3E*AX;]}:\|9[{7Xx7Xx8Z{9\}:\~:]=_>a?c?cAeAe@d@e@d5Rm.H`*8KYeZq:Zw<_|;[x9Ws5Rl6To6To 3D\_b?d9Z{9Zy8Yx7Vt6Us6Uq0@Ah9[|8Yy6Wv6Ut6Ts6Tr$9NV\aJr@d>a<^~;]{9Xv8Vs 1B~󎣶If<^{@dBfAfAeAeAd?a2MgrEm?d>b=a=`=`=a=`=a?cAe@e<_QpY|[[[[[\bTHpDjEjDi@c>`;]{9Xw7Wt0Kc1A)17vwyKvBiBhNzBh-Ga.Je3Pm%:O.5`=`8Yx>_~?^|o¤ˤˣˤˤ̨~S|MsJo,?QVm;[x@cAeAeAe@dAd?c>a=`>`CeGeʤ̤̤̥̦Ф^T|NyHoBhAfAd@d>`>_}<\z1Ld-:5;?En;]~:Z|8Yx8Xv7Vt7Ur+D[18?Ir@d=`:\|8Yx6Ut4Rp'>T=CIMwChAd@c=^~:Zy9Xv(>THNSHqBfAf@b?b>`~=_|%9Kqvz႒3Pk9Yx;\};]~<^=_=_=_?b?d<]}BdJoImc~ŨѨѨѨѨѨѩԜ]PwS{NwFmAe>b<^<^~:[z 2DPzHnFlNxCh%#6G9Xt(>SAGKCfAeCh>`9Xu9Yw1Lf+D\4Ql>`<^~<^~7Wv<\zCeFkGkHlJnKpLrOwOxIrEjEkDkFlDj4Rl3Oh:Zv>`~?b:Yt1Jb'`~;[y:Yv1A}Xx@cBgDiEiDiDhDhBf>`/FZHrAhAf@e@d@d@e>bBdImMsLrHhΨѨѨѨѨѨҮmU~S|T~MwDiBe>b<]|:Zx8Xs/Ja.=$)/OzJsElP}El2Oj*CZ/Kd-E^$1)*,e<]~;]|>`=`=_;\{;\z<]{2MgM\kJrAeDjEjDjDiBf?c<_}3Pji|⊩ƊĀ=ZuRk=]zCgEjDhChChBgCg?c>b=`Pn}ΏhRLvIrDjDiBeAd?a>^{2Lc*5.14Gq=`<^;\|:[z9Zx9Xv,E]07=KuBg?c=_:\|8Xx6Us(@V`=_=_>`?b?b?b@d?b7Uph͊ÎgQ}JsEk?b?b=`#6HS}KqIpQ{Fk&$8I;[x)@TAFJꎤDiHnElAdChAe=^~:[y<^}?b;\{<^}7Utb|~qTNyMwHpIrHoGnGnGmDj?a~3Og-< .F];Zv#5FZ]`Dk>a>`=`;\{:[z:[x/?Fn>b=`<^~;\{:[z:Zx&S-04jCh?c?b?a>a=_~>_~>_~(=RR~IqHpFnElEkCh@d5TnF[oc[}CfFkGnFmEkDjFkCiDi<]{KiZxrjWKtInEjEiCfAc?`|2Nd&1#$$Is?b>a<_;]}:\{:Zx-F^06b<^~:[z8Xw)AW;AFQ}HpEjDjAe>a<^|)AVGLQMwGmFmDiCgBfAd%:KotxEg<]|@c?a?b?b?b@c@d@d@c:XtH_srfR}DjAg@d%:MTLuKsSGn'%9J=^z*AUAEIJpDjJqGmP|VFm=^|>aAe>`5RmToWsqmZMxP{KuJsKsJrGm?a2Ne -EY=^{$6HZ\_Fn@e?d?b<^~=^|;]z0?HqAe?c>a<_<^};\{'=PTY]Q|GnEkCgBe?a=^|1A{;Wn=_|EjHnHoHoHoHoFk<\yIbxNyFoFmElElAeVw]|p[JrEjBf@c=^|:Zv7Vq-F]#(WIpFlKt@e,E\/Ja9Yu*AW,/2_|AeAeAeAd@d@b@b@b*7JqJsKsIqHoGnEk@c&;LUxJqKrJqIpHnGmHnFl?a:Umf[MvHpHnFlDhBe?`|0H]"(+LvBeAd?b>`=_~<]{.H_/5:P{FnDjAe>a<^};[z+CY;@ESKsHmGmDhAc?a+CWGLOOzIpHpFlFjEiCg&:LoswBfAeAeAdAdAeBeBfCgAc:[v:Si`Q}ElDh(>RWOxMvUIq(&;L?`}+BWAEIR~LuKrAeS@a<]zAfDi@c9Vq;PedfbR~NyOyMwP{VR~-CW 0H]?a~%8IZ\^HqBhBgBf?a?a>`}0?JtChAfAd?b>a=_~(>RTY\SJrHoEjDh@c?a 2A{~Oh~?`|EkIoJqJqJrKrIo?a~=XpQ}IrHpFjNsLri^JrEkCg@b=]{:Yv2Mf#.%&(ULuIrWO|;]{8Vr;\z.H_!(TTTGfAdCgBgCgCgAdAd=]z-;}FjLuMvLtKsIqGm>_} 󁞴KnMuNvLuKsJqIoIpAd6Tle^LvLtJqHnFjDg8Um%-NNNNyDjCgAe@c?b>`~0Ja/49RJrGnDjAe>a=^|,DZ;@EVNwJqIoFkCgAd,EYFKOR}LtKsIoHmGlFj';Morvd@cDhChChChCgChDiCf;Zw`>_~7Uo$6G]DhDgEjEjEjEiCgCg3Ner}[LtOxPyNwMuKsGm;ZuT{MuPxPyOxMvLtKrIp3PggP{OxMuKrIoGlAb},BTP|GmFjDhCfAe@c2Md.49UMuIqFmChAd>`-F\;@DYPzLtLrInEjCg-F[FKNTOwNvLrJpInHm(^{LasbYValS~7Uk@b|Dg';MZ\]NwHoGmGlDhCfCe!2AO{HoFlEiDhCgBe*AUTX[XPyMuKqIoFjCg!2Az|偘DdGmLvMuNvOwOwNxHoE`wR~l̲nP{IpFjBe@a~=^z6Sm(knp`OyNxKtFmCgAd=^|0Kb [HoFlFlFlFlFkDiDh#6E\R~Q|R{PyNvLtFj^vLWajXUS|PxMtKqEh"5B/35TKsIpGnFlEjDh4Pg.48XP{MwJrGmDiBf0I`;@D]UQ|PyLtIoFl0I^FJMXS~R}PyOwMuLs)>OnqtY~HoJrIpHpIoHnHnFl8Uo_o|􁜴`XW_R}%0,CVFk0H]?CF\YVJqCd+BUEjMuCe@Ug|進gXYTNuKrIo*?PZ\^Q}LuKsJrHmFlFj"4CTLvKsIpGnFmFk,CWTWZ\TQ{OwMuIpGl!3By{}ꐦKqLtPxQzPyQzQzOxJpHe}it}kS~OwHm;Ys(=N0>?`|8Vo%vbTOyLuJqGlDh;[t!*GHIOtHpIpIpIpIoIoFk>^z1=FcXVVS~Q{Px>^y07>\VYWVT~R{PyGm5L^r_YVS}PyNuJo<[r VMuKsJqIoGmFk5Qh.48[S~PzLuIpFlDh1Kb;?D_WTR|OwKrIo1J`FJM[UTR|QzPxNv+?PnqsPzLtLuKsJrJqJpIpCf;Sgwb[YbU'2.EXHn1J^?CFb]YMu>]w$/CgOx9WobozlYWT~QzNvKr+ARZ\^TNxMvLuJpInHm#5DVOyNvKsJqIpHn.EXTWZ_VS~QzOxKrIo"3Byz|񡰻_|KqOxRzS}R|R|QzLsLnojUQzMu?`z#5D$BdAc~!*iWR}OyLuJpGlBe.EY 󔬿EhHoJqJqJqJqJpFk0I^eZXXUS}Qz<\u(+/\[[YWUS}OwBb}4BNzl^YVS~QyNuLr#XNwMvLsKqIoHm7Sj.48]UR|NxKsHnFj2Lb;?DaYVTQzMuKq2LaFJM]WVS~R}R{Py+ARnqsR|OyNwMuLtJrJqJp;Zt_o|d][dW(3/GZJp2L`?CFd_^YKq%CfQz-EXqvzi[YVS}PxMt,BTZ\^VQ{OyNxLsKpJo#5DXQ|PyMvLtKrJp.GZTWZaXUS}Q{MuKq"3Byz{_zFjNuQzR|TT~S}NvIlllWS}VMu*@RDgCf!*fYUR}OyMuJqHmCf S~EjJrKsLsLsKrKrFi+7g\ZZWTS|>]w)-0V]\ZYVTLrD]qz~d\YVT}QyNu%.uwy[PzOyNvMtKrJp8Ul.48_WTQ{NvKqHm3Nd;@Dc\XWS}PxMt3NdFKN_YYUTT~R|+BSnqsoOxQ|PzOxNvLtLsHm1J^f`^gY*50J\Ls3Nb?CFfbbdY&EhR|&:Ihiie^[YVR{Ov-CUZ\^YT~R|Q{NvMsLr$6EZSR|PyOwMuLs0H]TXZc[XUS~OxMt"3Axyz\vFiOvS|R|TVUQ{HlenZU]Y4NdFjEi",c_YUS}PyMuKpGj YNwMuLtMtMtLsLsCe h^\[XUT}?^x).1[W_][ZWTEhKZef^[XUS|Py+AR \S}QzOxNvLtKq9Vn.48bYVS~OxLtIo4Pf;@De]ZYUQzNv4OeFJNa[[XVUS},CTnqszPxQyS~R|PzOxMvNtAb~@Saga_hZ+61K_Nv4Oc?CEgcce['FjS~';Jijjf_]ZWS}Px.DVZ\^ZUTR|PyOvMt%7F\US~Q}PzOwMu1I^TWZd\YWUQ{Ow"3AwxyUoEhNvS}TTVWT~JpXto[Wa_:Wo!*HnHm#-yp_XVR~PzNuJo'2"JrNvNvMuMuMuMuKp>\t*4^u8<@d`]ZWT~R{Jp$-^TS|QzOxNvMs;Xp/49d[YUQzMvKq6Qh;@Dg_\[WS|Px6QgFKNc\\ZXVT,CTnqsZVUT~Q{PzOxOv4Nchbai[,72L_Ow5Pe?CEiefi_%/HnU(Mijjf^\YWTR{/GYZ]_^XXVS}S{Py&9HaZWUT~R|Qz3M`TX[e_]ZYTR|"4@vvvU|QyR|TVWWXX>\sd\ZloV?_xLtLr'2|c_]ZXURzOvRxKqPyPxPxPxPxPxCe,6=ka_^[YVAb{+04ba_][YWR{:Wm}le_]ZWTR|"+hijLrRzR{QzQzPyPyNv>^u&-3ja_^[YVAb{+14씰Z_][YWUKoNdui^\YVT~R{ 1]u/59ja_[XT~Qy:Wm^vmz~kc`^[WU+@P2>G;EM:EL:DK9CJ9CJ9CJ9DK:EL;FNJS>KT?LU?LV?MV@MW@MV?LU?KT>JT>IS=IQ=HP=HPFVcOkLsT}S}R{R{QzPyJpC]p`gli`_][XUAbz,15iX]WR{KpQzT~@`w]kuf]YS}MtEhOw1J\'/4f[ZYVT~R{>^v/59ja_\YURz;Xo]t>^v@`xAay@ayAbz@azBbzAczAbzAbzEgMsR|S}QzMtPyQzPyDe~L]jf^^\ZWUAaz,25_ZYNvAc}.EXDhQz5PcY_baZTJo^u/59ja_]ZVS|;Yp\tNtPyNvNtMtKqJpJpJpJoJoJpKrLsMuNwPxQzS~T~TVUWXWVVT~Q{NtDf8TjJoQzPx;XnGOUb[\ZXVT~@`y,26`XUJp9Wn$.:WnMt/GYSUW\VQ{Fj2K_DhNt!2?h\\ZXUR|>^t/59ja_]ZVS~;Yp\t,4:zz{TMtLsKrKqJqJq+ARZ\]f_]\XTRz&:Hi`_][XU5PcTXZ\YZZVVT~#4BpppiBd|NuS|T~T~TTPyLpfx^r:XpHnTZ\ZZYXT~Kp,:FrmfaV@`x 0=3Ma9Vk;YpEgMuKqIoJpJpIoIoJpKqLrMtNwPyQ{S~TUVUWXWTNvCf~9Vk9Uj+@Q/;Cd}QzNs5OcAGK]WYVUT~Rz?_w,16[TQ|Nv@`{#4NcIn-CUSUWWR{PyLq7Sj Ab|Kp 0=h]\ZXUR{>]t/59h`_]ZVS~;Zp\vHl.;i]\ZWT~Py<[r/48f^][ZWT~<[q'2*AS8XsCgHoKtNxR|UWWWWR{Qs|pgktfFj(Zs ;WoDf+7h\\YVR|Nv:Xn/47cZZYXVS|;ZpTf5Sk8Ys;]y=a@dChFlIqMvQ|TTUQ{QuykgitndA`z6Rg=[tFiKpHlGjIoIoJoJpIpJqKsLuOwPzR}TSSUS~UVT_kmeMr"3?;ZpJpLs/FX`dhRvLpLqJmJmHkFh7Ti+05PtKkJiOoEa{ -@R@\t&8GRTVMnIhKjMm=Vn 9SjB`z)5fZZWT~PxLr8Uk.36_VWVUT}Qz:Xn<@ET}LrPvLqLrNtMs3M`FJLVLqIkIlFfCa{A\v"/=lmolWW^^?^v!)R|Ow&MnJhIhQuIk#,)=NCc}.EX>ACm[UUWUR~Q|MvKr?`z-:4:@CGJBFJACF\]]F_{?Xp@Wp>Wo=Wo>Xp=Yr#3BXY[aYVR{Q{LqFh 0>f_]YVR|Nu0H[TWZNoMoLpFh3K` )%7H=\uAb*@QLMMoz_xJqNuNuNuMtKqFhCavKS[FLRFMRUbn5J]0J`1Kb/H`0Kc7Up:Zv:[x:[y9[z:]|=`AfDkIqOyR}Q{OwMpxpkcffh;Xp@Cj_P|O|R~P{NxMvJqJpJp8Un,CV(]vHjEfCb|EfLqLsNuNxOzPzQ|R~STTUVVWWU~U[[T~UbgKp/;BeHn;XpScnWrMhIfHd|Fc|B_y@\u1I]*.2ToRiUj[pQbx3ANEZm)6ARSUXnUj~XlZnFXj >PbDZp&0]S~S|PyLsHmDf1K_,14ULqNtNuNuLsJp4Pe:>BPqKhJjFdEfFiDf,DVEIKOsJgIb|Hb|I`xI^sI\p&0;lmodNuNuVV9Vn&LsIn#ZpTiRh~WrKc| ((7F@Yp+=N>@BaQLxMxKtJrJqFlGlGmDg>^{:Yt8Wq0Lc$6G'3A'3@'3@'2?'1>'1>!)2,.1t|DRdKZmIZlHYkEWjCVi@Th#.:XXYYRzNsImImDd?\u*6^WVR{NvJpFi*@QRVXVnQjOkQqOm)3+66NdCd@a}5Ph 0>4GX5Oe?`yEiFlHmHmFjAb{7QftQ\g/>O3F[2Jb5Oh6Rl7Rm7Sl8Up6Uo4Qk4Oj4Rn2Qm1Pl0Nk0Nl1Po6Wv=a@dAeIpOzKsscYYcY>[tCb|Jh@ZqG\oyˆ‰ÉÉÉĉĉ‡qV~MrVbPx.FYBdEh-DVy`vRiKd|KcyH`wD\sAYp1EX)-1]r\n_phy\j| 9DPN^o-8BRSUct`pdsgvP]m DScI\o'/XNwNvKrHmEgA`z/FY,02QxIkKmJnInHmFj2K_9=@SnOgLgHayEbzDc~B`z*?PEHJQoNf~NdzLcyOcvQbtRar,3@BXNzKwGoDkEkBfDgDhDgBc?_}<]y8Xt4Oi1H_0H^1G]0F\1G\4G\.>N"+549@59?48>59>BHOKT`NZhTapP]lJVdAL[FTdEVg%/9XXYT~MsKmFgEfB^y?Xo(3XQ{PyMtKoHjCc}(@BzmWFmBgBf>`~@bAdBdAb?_}=\y;Zv9Wr9Ql8Qj:Qi9Ph:Qi>Sj?Qe9HZFO-3;FQ\MZi)1:XXYPwKlIgEb|C`{C\sBVk'1S|MsLqImGhEcB^v(9HRUWn|du`selCTg=RgB[rC^w@\u>Xq>Ys=Wp?[v?^y@`{Ab}Bc~?]w7ObO`n`gr5BP4EV3H^5Kc7Nf8Oh8Ph8Qk9Qi6Nf4Mg3Lf0Ha-E_-Fb/Jf0Mj0Nl0Pn/MjA]w\yaebYRuVwSpLiOhTj7DRMOROkLhKjKnEe>\v?]w8Sk'5@{gt\k}]l{VfwP`rL[m6ES),/ux}{$%(LQXemw:?GSST~kpzW`k[gu&+2OvGhFhEeCazC\uAXn0@Q+.0SoLd|Jc}Gc}Da|B_y?]v,AT7;=evapWh}VfxObuH^sDZo-\tӇ~x|er$)6=FP^n2>I?@B|TxMqBe;[x?^}@a@`~?_|>\z=Zw[u>\v?]x@^x:Tk1?Kx}@JX9I\8L`7Lc8Me:Of;Pf;Qg9Og:Of8Mc5Kc2Jb0F_+A[*AZHS,-.iwOdzPgJd|EayA\v@Zt>Xq.BTdmu芒t}hsit`n{[guUapWo+=N7:\x>[w>Yu=Xt>Vq?VpBWoFXoDWnHZoP`sUcvVduam|lugrmvu{z|=?APTZcjs5:?XXYNlKe~MczMavG[qL]oP^m%*1NnHfGdEa{F_wG]tG[p-8DRTVɌywxbqTfzK]pJ^tPhTiDYpBYq@Yp?Yq?Yr@ZsA[s6K^%*/ݎNU`HTd=Nb;Mb:NcQf@SgASgUl".;ꘝwwmwgp{ajuDLW*,.ʌɱklovx{}HKMTTUşWX[w{vz148RmHayH_xG^uH]rJ\oL[m;EQ,./dv^m~WgzPcvH^rDXm?Tj+;I79;ۃ{nxpxep|XfuSap8AKFHIw{zGHIqqqoar[mczc~Kby1@QBYo@Vkڤ(*-EHMgnwAFN@AB|zPpC_}A\xD_{E`|D^yBXrEZrI\rO_tM^sRbu[izbn~co~nyyu}znop011]`dosyOa@PdI789ᡣ~pvls{JNTIJJѕNMNrrrq}iw\k{R`pN[kR_n(.4./1޵001SSU}QSWBBC欸i|fwk{ryw~Ǩ}||IIJ[[[gvfslvpxfozls{sv|346btYi|YgyZgx\hw`jxenyAFMUVXԯ8vvvۑkwco}do|ep}is~mt~bdg''(JJJ̔zqykr}fnzdmydlyaitX^h`dk攝RPO}szls~fnx*.3cce,,-|zxDCB777KJJ免w}u|t{tzvzx{Z]`+,,䜞|sxkr{fluDIO677䲰ZZ]KKLثRPMssrɜw}]bi?BGkpylqy(),ݻ544[YY]]]DDDäQPO]]]ą888ւu}t{tzu{x||PRUYYYչ@@Bvvvסzszu|y~~a`a-,,\\\ᱰy~tzrxls|`eljns飨|ywx|mqy%&*fff+++俼b`^777877蕚bbc+++槦x{rv|LOS556䶲_^_MMMڳSPMsssƦ^`ez}z~,-/ܼ654\[Y`_^EEEſSRP^^^ȓ:99ّWVWZZZӻCCDvvvְ][[543ggf̧|knt|koumpsɱ夠gimOPR컵hge***ifc777ü986颥gfe***箬}TUX445丳caaNNN۸SPLtss˶|}667|||ۻ643][Xb`^EEEݸUSQ___͠:88ښ[ZY[[[һFEEvvvۿɬZWV:87llkϲlmpDDF|}_`cж/.+EED𹴰QQS빲jge)((ƾkhd665NLJ뭮igf(((氬ZZ[334ⶰecbOOOںSOKtss̺MLL==<ں642]ZWda]EEEٳWTQ```Ъ977Ζ^\[]\\ѺHFDvvvθVSQ:87pppѸono(((|}~NNNtttŹhd_ ../귰jgd'&&űrni//-rrr¾okf쵴khf&&&ߤ^]]222ڧgdaPPPٺRNJussywu321tttظ641]YVd`]EEEײXUQbbaұ875ܮ`^\^]]ϹHFDvvvѾ~zQNK321zzzк!!!HGFjjjþ~#""鵭ifb%%%ƽ}wHEAJGD컷lhf&&&a_]222鿻gdaQPPغRNIutsǾQNLUTTֶ641]YTd`\EEEѩYUQcbbӶ874ɠa^[eedͷHFDwwwϬztJGD%%#л##"JHGjjjѿЙrpn`__販hc_###wpjؗ20-콸plh$$$ўfca---̞gc_WVUֺSNHuusµkhc10.```Ե530\XRc_YEEE¼YUQhggҹ?<9eeeͫ~oli˶HFDxxxй{vpDB=! μľ542KIHjjjο=:500/੡[ZX籦}gb\"""Ƹ}t851000駠|tQOL쾸{vp20.@?>544ӧzfb_}zutol20.@?>444̦kgcwvuչRNGvusĻPMIQQQ닇Ӵ52/[WQb^XEEDƟ}vc_[ѺVRM864<;:]]]ÿsojɵIFCyyyȵwqi;73665̻üeb^LJHjjjuneާ{w998毤{faZ!!!οnf^ܔe`Y뾸nkfrmg}oid_YS'$!GGFǞrni}xmhc\VQ&#!KJI{vp|ӷSNGwutûhd^986rrr릡c^WѲ41-[UO}a\VEEDrleк}wb]X~vxpib\HD>,+(gggǡ\YTdzIFAzzyȿ{rlc63.JIGʽNKHgggޖǽ|" ۡupk432嬠|xe_X!!!˼Źw)'#ihhᨣx}rGC?꾶|wqDA>>;7wpi{a[S%#VVU̜~Ƽza[T%"\\[țzfa[~|Ѷ~TNFxvu}tOKE.-+ܥvjWQKϰ40,ZTMz`[TEDCļ~}[VOκje_*(%XSM}t~{siID>"!|{{zyyRNJ{zyűIE@{{zȿykdZ2.)XXVǾZVRBBAөb]VŽ}z.*&utt꿹zzqlh䪝}yvd^W!!!ɸ{XSJ)(%{zy⭩~vkxzwpf}{龵GC?)'$ic[~tXRJ,)&eedԘ~wlyZSM-+(nmmД~vix~ZVPvusе{UNFyxvû~wmJE@)('⧤le\yqgxlSMGͮ40+YSKw_YREDC훑]WOӨ{}|{|NIB̹|tC?9vl~wxodIC=@;7 ϡUPK~¯ID?|{{Żztc\Q84/edbʿztm?=8EDCqh`qj`]XQǻ{xNG@)'&̛t{tlifb⢕}{wte^U!!!ͼ~sPJB30.Ӱzor~}}}pgb\齴oibFA<|ukz{oSME?;7974WVUәwkv~sTOHEB=;:6a`_ӓ}thp{}}~{rkgaε}yVNEzywʽ|tjA=7-,*ӰwlzrewjznOJD˭3/*XQIt^WPDDCvk`qja[VPԚ|ow}|{zyyOJDʹ=93]WOtzsuhxnbB=6B?:420{{{ԑ~t|skgbHC>}||{x{m^VL=:4kjh´pja;83EDC֋slczrh|rgumaWSLȽzw|qd($Ȝx|}~~}ke]QOM͐t~~{yvsf^U ο}ykLE=FC?KJHtttꋈvpjyn}nz}~}|zw{shgd`輳ƶqjaz{xvirh\SLC840PNLOMK@@?jfbvqj}thq}¶~znwobVPG?<7USORQN@@?c_[wqjzpd{lw{|{|{|ph`ʹzvVOD{zwŶ|yod83-OLIFDC|wd`\tpi~vk|rfylyl|nMHAʬ~2.)WPGp]VMDCBﴥv~oh_Td_Wc_[}{yjfb{unwjpyzyyxv|p_ZSɹ±ijph^~ui|{wtqwn`mdXF?7A=9KIFkkja^Yzun~ujwpiaʾGB=}}|ȹ|ytwh[SH?<7nnlʻȽ~jcY41,FEEuqjyqulavl_~tgxkwnbTOIʾǹ~xup.*$vxwyzyytc]UTRP}yvsoqnkkigvso{yi||xvs~piaW\\\\\\\\\\\\\\\^^^aa`dcagfejignliqnlsqnvsqyvrzwrtro˼~z~tfjaVHB:;84fedfff}zwph_tj\|mx{{}{zzvzmx輱³±y}zvsufi_S_VK\SH($WVSecbecbecbdcajigcZOxm_p{|ukȸ}zzmneYd\P^WL)& ^\Zgfdfecedcecbnki|`VKwk\{jsxyzyzyzWQJ˳|wsWOD}{x˻yti]e]R72,LIGba`xvqqpmkaVc[OneX|qcxj{mzl|nKF?ȩ}|{2.(VOE|m[TKCBA~|p|rc_VKOJDwuqrpmqnlba`{xtg^R|pcpwyxwvv|nzqeǹŲʽx{}ywsp~nwk]e[NHA752.gedfecgecgecfecfecedcpnkzaYNzpcs~w\VPɼ}||GB;~}}}zuqscXPE>:4xvvxf_S'$^^\]\\xuqvsof]QqgZ}rdwiyjykwm`RMG˺}wto94,TSR٨whtsuvuuzrfqlfpk_R`VH[QEVMA_UHym]n{vxhoeYjbVyobxnbGB:;6/:5.:4-94-93-:4.=80@:2C=5F@7JC:MF=PI?TLBWOESL@1-(ϼǷ{yw}qcZRGA<4" VNDjaTwhty{zz{yyuzl{輰µxurqo~laXKNE;IA7IA7IA7IA8PG=odV|kv{}~ukƴ~}{xuqd\OQI>LE:KC:JB9JB8QI>pdUzhpstvxxwxwsOIBʳzurYPD|yȷķ|vtmcVRJ?3.'C@>QI=OH>h_Q}qayh{kzkzl{mzl|nJE>ƨyyw2.(UNCzj[SICBA~|{y|llbU[SHUMCTLB,("rpnYPEtj[mxyxwvutuuk^ǹõ}xurpnm{n^XOCJB8IB8JB9KC9KC:KC:KC:TLArgZoy}wpf~Ⱥ|}}yxxGB:~}}ʻ~{vqm}q`UMA73.t`XMKD;#kjhzQH=RJ?kaR~rbwhxiyjyjykwm`PLE{urmZPD%"uuuŽ~mudpoprqrg`Uxvr򮜅yvutuvwvzkf]O@:272,UNDzoavg|rczn`yn_xm^wl^wl^wm^yn_zn`zp`}qa~sctewgyhzo_;60ʶó|zyto~sdPH>GA:E@9E@8E@9F@9F@9NH@pgZtdpuwyzyxyxuzlx罰~|pɺ|tsqo~k|i|h|h}i~klquwz{}aZR¯~|zxvrmll~k~k~knoqrstuvtvrugvpiȲ}|xspZQE}zIJ}xvo{imbSLD;E@8D>6D>6D?7E@7F@8WODpeV|o]vdxfzi|j|l{l{l{m{l|mJD=Ŧ|vvt1-'TLAxgZRGCBA}{|zxurpobZNQJAKE=ID;IC;HC;HB;HB;HB:GB:FA:YRGwl^{jtuwwutsssq^ULŹ~oɼvrppm}i{h{h{j~k~lmmnsxz|~~z_YPƸ~xyyuttF@8~}ϽƷ~{vroj|p^TL@40+¯|un[RGGB9C>6B>6C=6C>6E?7E?7E@7F@8[SHqfW|o]ubwezhyiyhyizjzkwm_OKDȺyspkr_70)mmmpzg~l}k}lo}n{lVPFige򱟆}zyyyxvqwfdZL93+$ 73,g]P|lyiwfvfvfufvfvfvfvfxgyhyh{i|k~lsb>81î}{zxvryhrb~q`~q`~q`~qa~qasd~krvwwxywvxu{k~r潮tjc\ȷȸzusqoonopqrtvvyz|~qd^Xɺ{yxvsssrqppppprsstrrvf~sƱ~zyuqn[QD{˻~zxtp}isb{n]zl[xlYxlYylXylX}o[vazf}i~j}j}k|l|l|l}l|l|mNG?ãyrrq2-&SK?udXPDBA@|{|{zyvvu~lvesbrarararbsbsbsbsbxfmsutuutsrrpvgic\ørhZ˾ijvsrpooopqrsttvyxz|}}~}yymhd]Ķ{utuqppE?6~}ȵò|wspm}i|n\PHtbWNBA@?|{|{{zwwvtsrrqqqrrrsssttsttsrqrzjwj¸YPFëxurpppqrsstuvxwy{{{{yqynôwqrqmlkE>5~}xtpmk}h{n[PG;a\Vİ;Ǹ}{wsqolji~h~h}g}g}g|g|g|g|h}i|i{izi{j{jzo`UOHȳ{uomh{dI@4;97ydwbxdwcxeygwfj`Sytn򱝄|yxwwvvke[LaWH}q^}k{hzhyhxhxhyhyhzhzhzh{j{i|j~k~kraA;3λ}|zxxvvttttttuuvvuvvrlus廬vf<:7ϼòxurrqqqqqstuwxy|{r|rcͺij|{xuutrpooooopqqpzgxn_ïywuqok^TE}λŵ|yvsqpmkjiihhiijkkklm}k{jqtqkkyk1+$QI||}{{zxxwvuttssssssssstrrsssontvQH>̺urrrrsstttvwvxyzvsxx²tnonj~i|hD=4~}κ|tqnlk~hykXRH5Ǵ{yywwwvuuuuuuuutqppo仪xfC@<dzutrqqqrsttvvttundzyvutsqpoooopnlmm®xuspnk`VGʶð{wtrqolkjjijjjkll}ikqrx˾mggt~f0*#QG:~o[SJ=?>=zzxyxxwvuutttssssssrqrnnm}ú̾UL@ͼ|ttssssttuwvwxu}lwpkkj}f|eyeD<2}ɷyspmmjhxjXWM@~xrî}{xusqommlkjiiijkjj{h}jqp}˼zpkje{as[I?1MMM}nZwhTq[r]r\r^s`}o\C;1~򸤉}|{||vqs}fyc|gwcxd~klmnnnoooooopo|gTLAȵ®Ƴ}|~xwwvvvutqrvvpx侭}jVPJνz{zurrrsssrrowįο|}|wtsqpoomnkuò{xvtspmaPŲî­zzzvpnmlkkllkilo}hʼj~d~dq{c0*"PF8|mXQH:>=<ŮɼŲ}}{zxwvvuttrsssqpptukļξdYJ­ʹy|zussssuursxrtmhhg{cybvbB;0}ϼıwussqpm~o[i^OǴͽ~~{vrpoommlkjiimoo{gƾnjhd{`x]PE5FFEs[}lVoXpYoY~oZ~p\ocPPI?͹űnqokg~fwarfTqzlʷIJzxxxwwvui|ͽvȶ°~ttttstlu~Ƕò}vtsrqqit}Ŵw̺sqppooonl|g|żɻg{`|`oz`1+!OE7zkVPF8<<;̺ñŴ~zxxxvvutttspl¹ȸrIJųzttttuuj{̿kff~ezaw`t^B:/}ŲyxŴIJ|trqpoooonjk͹ligc|_x\XK:%# lll~nU~mU~mU~nW}mV|mW|nXZP@Ⱥljhhf~d}mX\TI¬~n}}||{|rϽ~}||{{p̹~|}{zz{{wuȺdy]z]kx^2+!OE6yiSOE7;;:Ǵ~~~}xƲ}}}|}~nǽ˾hc~b|aw^u\s[B9.}ʸ~}|{{{{{{tɭxjfeb|^x[saJ:1%...žvcvfN}kS|kS{kT{kSzjTykU?7,ݬsjhfed}bqcO;83øͿͿͿͿͿźͿͿͿͿŹͿͿͿͿͿʽȾǸaw[x[iw[2+!OD4xhPMC5999ʽͿͿøɼf~a|`z^u[sZqXA8,}ͿͿͿͿͿͿȼǬvneda|^x[tW\N;...zweNxfN}kR{jQzjQyiQxhRrdO2+"ۡjhgdcb}ak]I%$$Ǹ_vYvYhvY2+!OC4wfNMB3999ɼd}_|^y\uYrXpVA8,}udca}^z[wXaQ=...wlQ}jP}kQ{jPyhOxgNwgPbUCUOGڠgfeba}`{^j\G%$$Ʒ}]tVtVetW4,!OC4veMLA2999ɼb|]z\wZtWqVnT@8+}tcb`~^{[xYcS=+**i}jO~kP|jP{iOygNwfMvfNI?1ڠfdca~`|^z]k\F''%Ŷ|\sUsUdsV5-"PD3vdLLA1999ɻa{\y[vYsVpT~mS?7*}ժmcb`~]{[yYiY@$"mljxrcMxfK}jO|jNzhNxfMvdKudK.(ڡeba_}^{\y[k\E*)'ĵ{ZqSrSbqT6."QE3vdKLA1999ɻ_zZxYuXrToR~kQ@6)}Ԫkhb_~]|ZzXzgJH<+>3$TF3m\B{gK}jN|iMzgLxeLucJn]E% ١c``^}]z[xYl\E.,)ĴyXpQqRaqS80#RE3vdJLA0999ɺ^yYwXtVqSnQ}kP@7(}Įob^\}YzWwTpPmMlNlNlNkN|iLyfKweJsaGZM8]XP٢a^^~\{[yYvXl[D2/,ówUpOqQ_qQ;1$TG3wdIMA0999ȹ\yWvVtTpRmP}jN@6(}׳k`\Z|XxUqOjJ|gIzeHwcFuaFtaGwdHzfJxdIr_E=4&¿٢`\\}ZzYxXvVm[C41.tRoNqO]pP=3$VH4yeINA0999ȸ~ZwUuTsSoPlN|iL@6'}妉b_[ZxTiIbQ8D8'B7&@5%=3#;1#D9(aQ:{fIxdHp]Bأ_Z[|YyXwVuUn\B85/xfog[ldXiaVhaVg`Uh`UhaVc\RiIoMqN\pO>3%WI4zfIOB0887ȸ}XvTtSsRnOkM}iLA6'}媍dd\YxT}fGVF0*"*"(!&!NA-{fHvbFeT;آ]~W~Y{WxVvTtSo]B=82|gIjX>fU;cR9aQ9_O6_M5]M5G:'x~{y}x|v}zv{ytywsxvswurwtqusptsptsosqorpnqomonmomlmlkkkkjjj~zuraxbDpLqM[pN?4%YJ4}gIUG2"!jjjjjjjjjjjjjjjkkjllknmloomponrposposrotspvtpvtqwtryvrzws|yt~zu|v~xyzzȸ}VuRtRrQmMkL~iKB7'}μl\WXxRzdD[J2L>*L>*F:'&&QC.|fHs_CXJ6zvpآ\|U|VzTxTuRtQp]BA;4°zVpNmKjIiH|fFzdDxbCVF0zucHcT>_P<\N9XJ7TG5RF4PD2MB0J@0J>/H>.H=.F<-F<,F<,D:,D:+D9*D8*D8)B8(A6(@6(SE2lX>~fFoKmJzUp\@2*H<*r^BhV5(@6)@6)@8*B8*C9*D9,D9+E:*F;,H<-H>-J?.MB0PC0NB/:1%ȸ|UuPtPrPmLkJ~iJB8'~贘oZU[]Y|Sw`AwaAcQ79.=2"cQ8|gGn[?D;-עZzSzTyRwRtPrOq]AE?6°{UrOmJzdDp\?aP6u`AzcDWG0ztQkJ~iJ}hI|fHzdGxdGwcFubEtaDt`Ds`Cs_Cs`Cr_Bs_Bs`Ct`Cu`Bv`BxbBwbBxbBybB}fDjGlIkHycCiHSC/"+#TE0p\@r^Bn[?mZ?lY?jX>jX>iX>iX>jX>iX>jX>jX>jX>jX>jX>jX>jX>iVr]>q\>q\=hU77,ǶzQsMqMpLlIjH~gGE9'~ʴnUzOT[XxMwMpZ;_M2r\=iFs]>eVBעWwOwOuNtMrLpJu_@UL?¯yRqLvNXrKVF-s\;{b@YG.zzStOtPtPtQtQsQrPqOqNpMoLnKnKnKnJnKoJoInIoJpJpJpIpIpIwMVZU~RuMya@kW9va@nKlIlIkHkIkJkJkKkKjJkJjJiIiH~hG~gF}gF{dDybBybBwa@u_?t^>s]=s\|c?ZH.zzRuNvOuPuQuQuQtPsOrOrNqLpLqLpKoJoJpJpIoIpJpIqIqHpHpHvKSSyMxNxNoHhDiFoJnInJmImJmKmKnKnLmKmKmJlJkIjHjGiF~fD}eC|dCzcAya?w_>u^=t]w`=v_qZ9A4"ǴwIoFnFnEkChBgBN?(ѽ{Q{MyMyLxKvKuKsIrIlD~cưQyMxLwLuItIsIrHv^;ůS|P}R}R}S}T}S}R|R{QyOxOxMxNwMuLvLwLvKvKvKvKvKvKvJuJuJuJvJuJtIuItItJtJtJtKuLuJuKvMvMvNwOwNwOwOwNvMtLtKtLsIrHqHqHpGpGpFoFiB]K1ǴvHoEnEmDjBhBgAQ@)μʹɷȷȷǶƶƶƵŷμ˹˹ɹȷȷǶƶɿϽ̺̼̺˺˺˺˺˺ɺɹɸȷȷȷǶǶǷǷǶƶƶƶƶƶƶƵƶƶƵƵŵŵŵŵŵƵƶƶƶƶƶǷǷƷǷǷǷǷǶƶƶƶƶƶƶƶƶŶŶ²ǴvGoCmClBi@hAf@TC*ǴvGoCmBkAi?h@f@VD*ȵwHpCnBmAkAj@i@_K.Ѿ_ZZZZXXjLëϿοοͿ;atanks-6.6/title/2.bmp0000644000175000017500000000207212636021030012742 0ustar apoapoBM:6(  UUUUUUUUUUUUU ,,,888EEEQQQaaaqqqA}}AA}}AA}}A}}}}}}}}}}}}}}}}}}}}}}}}}}}۶Ƕ۶Ƕqqq8qUqqUq8qqqq8qUqqqqUq8qqq8qUqqqqUq8qq88q8Eq8Uq8aq8qa8qU8qE8q88q8Eq8Uq8aq8qq8qa8qU8qE8q8Eq8Uq8aq8qq8qa8qU8qE8qQQqQYqQaqQiqQqiQqaQqYQqQQqQYqQaqQiqQqqQqiQqaQqYQqQYqQaqQiqQqqQqiQqaQqYQAAA A0AA0A AAAA A0AAAA0A AAA A0AAAA0A AA A (A 0A 8A A8 A0 A( A A (A 0A 8A AA A8 A0 A( A (A 0A 8A AA A8 A0 A( A,,A,0A,4A,<A,A<,A4,A0,A,,A,0A,4A, #include /* * Compile with the line g++ -o Export export.cpp `allegro-config --libs` * * This program extracts all bitmaps from an Allegro datafile. */ int main(int argc, char *argv[]) { int counter = 0; char filename[256]; BITMAP *new_bitmap; DATAFILE *my_datafile; if (argc < 2) { printf("usage: export datafile\n"); return 0; } allegro_init(); set_color_depth(24); // load a datafile my_datafile = load_datafile(argv[1]); if (! my_datafile) { printf("Unable to open datafile.\n"); return 1; } // for each bitmap, save to a new file while (counter < 256) { new_bitmap = (BITMAP *) my_datafile[counter].dat; if (new_bitmap) { sprintf(filename, "%d.bmp", counter); save_bmp(filename, new_bitmap, NULL); } counter++; } unload_datafile(my_datafile); return 0; } atanks-6.6/exporter/move.cpp0000644000175000017500000000113712636021030014303 0ustar apoapo#include #include int main(int argc, char *argv[]) { int highest, lowest; int current; char command[256]; if (argc < 3) { printf("Usage: move highest_number lowest_number\n\n"); return 1; } sscanf(argv[1], "%d", &highest); sscanf(argv[2], "%d", &lowest); if (highest <= lowest) { printf("Values are not in right order.\n\n"); return 1; } current = highest; while (current >= lowest) { sprintf(command, "mv %d.bmp %d.bmp", current, current + 1); system(command); current--; } return 0; } atanks-6.6/do_helgrind.sh0000755000175000017500000000014612636021030013575 0ustar apoapo#!/bin/bash /usr/bin/valgrind -v --trace-children=yes --tool=helgrind --read-var-info=yes ./atanks