From a5b643f3922f1d5362c0afc94ed5bd19bb739bb1 Mon Sep 17 00:00:00 2001 From: Dan <46821332+nsadeveloper789@users.noreply.github.com> Date: Tue, 25 Jan 2022 11:21:51 -0500 Subject: [PATCH] GP-1684: Add 'Patch Data' action and fix encoders. --- Ghidra/Features/Base/certification.manifest | 1 - .../help/topics/AssemblerPlugin/Assembler.htm | 158 ++++--- .../AssemblerPlugin/images/Assembler.png | Bin 66780 -> 77981 bytes .../core/assembler/AbstractPatchAction.java | 384 +++++++++++++++++ .../core/assembler/AssembleDockingAction.java | 403 ------------------ .../core/assembler/AssemblerPlugin.java | 44 +- .../core/assembler/AssemblyDualTextField.java | 64 ++- .../core/assembler/PatchDataAction.java | 153 +++++++ .../assembler/PatchInstructionAction.java | 290 +++++++++++++ .../core/assembler/AssemblerPluginTest.java | 258 +++++++++++ .../autocomplete/TextFieldAutocompleter.java | 158 ++++--- .../widgets/textfield/TextFieldLinker.java | 9 + .../settings/FormatSettingsDefinition.java | 17 +- .../model/data/AbstractIntegerDataType.java | 78 +++- .../model/data/DataTypeEncodeException.java | 25 +- .../model/data/IntegerDataTypeTest.java | 224 ++++++++++ .../assembler/AssemblerPluginScreenShots.java | 44 ++ .../AssemblerPluginScreenShots.java | 66 --- 18 files changed, 1721 insertions(+), 655 deletions(-) create mode 100644 Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/assembler/AbstractPatchAction.java delete mode 100644 Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/assembler/AssembleDockingAction.java create mode 100644 Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/assembler/PatchDataAction.java create mode 100644 Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/assembler/PatchInstructionAction.java create mode 100644 Ghidra/Features/Base/src/test/java/ghidra/app/plugin/core/assembler/AssemblerPluginTest.java create mode 100644 Ghidra/Framework/SoftwareModeling/src/test/java/ghidra/program/model/data/IntegerDataTypeTest.java create mode 100644 Ghidra/Test/IntegrationTest/src/screen/java/ghidra/app/plugin/core/assembler/AssemblerPluginScreenShots.java delete mode 100644 Ghidra/Test/IntegrationTest/src/screen/java/help/screenshot/AssemblerPluginScreenShots.java diff --git a/Ghidra/Features/Base/certification.manifest b/Ghidra/Features/Base/certification.manifest index 916c438c64..ec24544237 100644 --- a/Ghidra/Features/Base/certification.manifest +++ b/Ghidra/Features/Base/certification.manifest @@ -899,7 +899,6 @@ src/main/resources/help/Dummy_HelpSet.hs||GHIDRA||reviewed||END| src/main/resources/help/empty.htm||GHIDRA||||END| src/main/resources/images/2leftarrow.png||Nuvola Icons - LGPL 2.1|||Nuvola icon set|END| src/main/resources/images/2rightarrow.png||Nuvola Icons - LGPL 2.1|||Nuvola icon set|END| -src/main/resources/images/ArmedMarkSelection.png||GHIDRA||||END| src/main/resources/images/Array.png||GHIDRA||||END| src/main/resources/images/B.gif||GHIDRA||||END| src/main/resources/images/BookShelf.png||GHIDRA||||END| diff --git a/Ghidra/Features/Base/src/main/help/help/topics/AssemblerPlugin/Assembler.htm b/Ghidra/Features/Base/src/main/help/help/topics/AssemblerPlugin/Assembler.htm index 48fd5e2aff..17f0f8e132 100644 --- a/Ghidra/Features/Base/src/main/help/help/topics/AssemblerPlugin/Assembler.htm +++ b/Ghidra/Features/Base/src/main/help/help/topics/AssemblerPlugin/Assembler.htm @@ -9,109 +9,99 @@
The Patch Instruction action will allow you to edit - the current assembly instruction in the listing. The first time you use the action, it may take - a moment to prepare the assembler for your processor. You can then edit the text of the - instruction, optionally replacing it altogether. As you edit, a content assists will provide - completion suggestions. It will present a list of byte sequences when the text comprises a - complete instruction. Activating a completion suggestion will input that text at your cursor. - Activating a byte sequence will complete the action, replacing the instruction at your cursor. - Pressing ESC or clicking outside of the assembly editor will cancel the action.
- -

Assembly Editor
--+To edit assembly, select Patch Instruction from the - Listing View context menu or - press CTRL-SHIFT-G on the instruction to modify. Click the plus button below the content - assist to exhaust the undefined bits.
-
The Assembler plugin provides actions for modifying program bytes by inputing mnemonic + assembly and data values.
+ +There are two actions: One for instructions and one for data.
+ +This action is available at any initialized memory address. It allows you to edit the + current assembly instruction in the listing. The first time you use the action, it may take a + moment to prepare the assembler for the current program's processor language. You can then edit + the text of the instruction, optionally replacing it altogether. As you edit, a content assist + will provide completion suggestions. When the text comprises a valid instruction, it will also + display assembled byte sequences. Activating a suggestion will input that text at your cursor. + Activating a byte sequence will finish the action, replacing the instruction at the current + address. Pressing ESC or clicking outside of the assembly editor will cancel the action.
+ +At times, the assembler will generate undefined bits. Typically, these bits are actually + reserved, and so by default, the assembler fills them with 0s. The toggle below the content + assist will cause the assembler to fill them will all possible patterns of 1s and 0s. This + toggle should be used with care, since some languages may generate many undefined bits, and + each bit grows the list by a factor of 2.
Ghidra's assembler is based on the same SLEIGH modeling that powers the disassembler. This offers some nice benefits:
- +Keep in mind, the above list is in an ideal world. We are in the process of improving the - assembly engine and processor modules to eventually support assembly for all of Ghidra's - processors. In the meantime, we test several popular processors and assign a performance rating - to each. The possible ratings are:
- + +Keep in mind, the above list is in an ideal world. The assembler essentially "solves" the + disassembly routine for its input given a desired output. While the process works well in + general, some languages require special attention. Thus, we periodically test our processor + languages for assembly support and assign each a performance rating. The possible ratings + are:
+ - -As of this release, our tested processors fall under Platinum, Gold, or Poor.
- -If the current processor scored anything less than Platinum you will receive a + friendly warning reminding you what to expect.
+ +This action is available at initialized memory addresses having a data unit with a type that + provides an encoder. It allows you to edit the current data unit by typing its string + representation. There is (currently) no content assist, and generally only primitive types and + strings are supported. NOTE: Strings must be enclosed in double quotes, since that is + how they are displayed in the listing. Pressing ENTER attempts to encode the data and place it + at the current address. If this fails, the error is displayed in Ghidra's status bar, and the + input fields remain on screen.
Provided by: Assembler plugin
diff --git a/Ghidra/Features/Base/src/main/help/help/topics/AssemblerPlugin/images/Assembler.png b/Ghidra/Features/Base/src/main/help/help/topics/AssemblerPlugin/images/Assembler.png index c7720e756e8dafe583573afff105e18aaec6f968..7e05dfe03ad8a5ffc37fff823286642e63c525d6 100644 GIT binary patch literal 77981 zcmb5W1yodR*Z+@5%Mb$6ji7@9(v2{LBFF$kNq2`J-7$kG5+Wkah{7-+-5nw!DcvAl z(p|p;df(4|zt8*r*ZQw@)>3B8%sJO}c6|3|?=xZ0rwSkf8UhRq4AA38vT7I@*I^hK zm?d~Pz$@KEd0iM70T_>ErC}ZhYst7C8gj=M6n+;|m;|UNloao#R)Q*DlHXOMT;_U( zO@aLx{EGa0Ngzri z8gu1gi2dq%ry;jVfsVp|_Z@qQ%RZCh3&D*Hl09*@AF0f|Ff&vuG#beQkwd&9q@V_0 zzVPdnW)2b8JH*XoWq}&hP1LeXSMIEIZ;iA6LA&dRXpX$tzux(uj}Azfp#&W#+9cHj z*IaHvAJLZCS?;OaLYvAxI3a56&r-i({Vkjt-u^7M=;>;W6-v}~W$u0d>{&Fgi@(>i z!j8DTzEo4+rDq8?{iudo-9~~~0am`Dt+Tq`aiFr0q~H+%MOlCSgyZHe^Y{dt|CT zEZ_ccmS}WOH(REK6WyU_tNM>6{B>a~47@O_j9mRH93jWa7f@;GYbQQflq0b9Niy8; zS~+tI%Vkr3!4#aD^>1%KDR=Td-dz^&9&!Yo(Eqvzn+i{IeWn4~>wyqI&zkR8ai9iM zyH4S;LIkWQM5q>13DdPw5v18q8#m24rsGP&;O$7kmW;+%^g8)WEH`{g%^H)Gk`l4@83P%apqVy~)O)bO@D4rP1P;sTMbQIihEL{Z(m&$K9X=L5RSwQ! zOLQ`nFi @9LH^lSX;AeZEc;l*2*(5PYvE1hh^>QS?{lj zXYwi*zf@GLP<{+zi1-B!!J}N0x;RM&0T@-743}Pc zy;KXTqeCfocb8B&?kz!Pe7vG~d Qr?I#JJ2-;z#uAlQ*o`AK>n<(Gg8{qioow$2!%sv1N_! $qF$!SpI<9d@v ~V4ALPz{8lQB9! z=l80UsllJ_WGJR(+z_cE(pe#q%vOu!;P)GPL{)R9KviH*b(%jf=J2*Q#k(9T(trAe z(&N1F&@+Fj=icUsV^?cJg_J}rr&h$Cuc3u+W>=2kj^wJAPy2Cg2~zE|BD_5zI)0Ue z6wI$C=C&4)EavXKK3a0aZ6gBlp{9VueVWJn>CKA3%KC8F&u LRuOc9!Wgst~w@{}r}_=w~d{HsjgU~rn}>PA{KZE)HYx|}sNqFPzI9s7eiVy_7e6UtV zW0c<^Gv?Ej4utKHLt~b@NKSA$gb&6W$3^k5|Ch_=a^@;O -*Mgppb8-@nghtkefyC%JVCM^#mIP0RvQNJDc$6ZyDtiHrt)w6kb?b3xH+Fh@s^ z&$257`vzsfs+8)IcGp}^pN$!cB)torf@M<~RkRuf&v- X0L;3sZ9DD}{-}CxrMl4g!eUB{Doafu2^KIbG-98oRF*kd<_L`GPvCTuW zNEdbZJX$NSYZcwn7jtzNM0nx7V3_EWCnBleSYa(2vM3_1BMv&^>}!jrq31IQ#SIs$ zcN}Ivpl{$wYjh6i5TwoIIiJ;!6+WxsWm>Br^G}veQp0*Srqa_c%9^J4-a9_r;AVd& z2(w^?y|h7{=im*5Q?Es?ps_lkzJq)rhEtZQ*tUrF?hQQ7vLWXXf} `pkq}^0Z;m*ux 5{&>9Pd(k|%P+BI7cl?@?y z^X{b*zHx}nMy>EmF%sfXV8eOIG8+qeXri`pX~6GNp8t5#7h?@6aka$~(|-Qw@#EP9 zQAgH8hsW?<7n5lzm$C-;BEkAr_zaJ!IbL=DwCmEz0NZy20Vx9AlF1wu<#cU(B$Onb zZOX4oj!&J}ixg}&%%l4PdzDc*s!MdjRsf=rSKB!^H%DGS;!?rmw#H?Uc?Yr5DRjof zxe69~Y=z2r`o`GMt<0$Xoy0g4soHqz@4C-Pj+Bv)81G7#@< 6dsKddj>VRmZiF zvv81RiGps_mLV3!_+VBk@43XVmY21rx94s1t^4j;ycl$5E%EoKIsF=*%mZr*b%fV= zcTYV~%QilG)fAQT96ML90!Ozr$;6^1^`G(Ii-|DS4$Z>KI+36YM-Wh^_3*)lm*tA! zjl9Bnil4T&Z``^invw!!x=t$aSB(~pNB@p-#iHO&KS+4TlcS!qA*%cS_AfB1`RZ6t zi;tvu1h+Ys#6L?2skNf%t>F<@_OSh(yQpscOvmtOqbFT~`0(fJ?wN_)jfS4yS)+b# z_34&gQ)G9XA!PBON;>Xf3cgQ2R&Z`lzh8EgSY?Bf4N-ja)ZE;>pxcrCQ f>G4|sDt=hu%yV;}4!vxzds;2zyymFdwF^Fft1^cPf<^VdilDM} z#Pz!)`4%mH+EsfbSoWr`gfYbS*&e13iSd?+P27jXMn~fs`qxA&M2o)I433H-Ly&@H z1!0LosTTAXu|8a6^3gwk{@{lQSU#n5S+R`wG{X7$hN6Qxb=EZmDbqm%CZ{P4ye{Mn znB*$8cG1F}6VC)%G&4kS%jLBQ?4=#5)c%P@h7m|eWM^SLG#Iz #v&6NH7zbP z&nHE+&-f@<(l@Ar`PEBd(6zvpawHAEFx}f2?gp_AaiprEVmpGnZoD2e5Cq5dNc25# z_OdX*tRN*M5S9ODIF{f+5Wus~jo(Sje%b|MZ+@ Rm{5f{-IaoDC`@>shUj zh>AkI{-;Kr%z+$W#V?Go|BAb z@q{g}&G zQ$A>_{=`KL(x(ba>+Jqg@2(}9BQIx84wzZT_|%jwFYBJQJ4$DDBS+;K@uaE6${3?U zV*vA1qc@`u-o?r`(dp_JuAXzl i2t#TV;j0vl>Ea26JlG)xsA{UCU@y6 zmVw )yuYFz|aV2>c2p(Z9i$UFma%3O$S^fD=D zq)846N=!hCdJ9sDx*L1}9j*Q_2j!{5AOe0eDv(uCM>7P4^)KY``JT%LENYc;6ZNs3?l#;vu` zBc=0e3MI_`i(T`DT^Bg^<%TM5AnnM1g@PzT3ZlKH88zpxiXC4H&oZZOW%1eqIpJpG zQ*JKpz_;nJ@`u<&XM86SV9R7pK191BhvuJXAdkR*(C%)IGP|kH)len15fm$SmbSB2 zx~bnf)MKMZw)uK9^l_l&%#VT9d_mFRIMB;lZ^X*cVydO@TZeI|fL(t;e8%MF!q`TA zmA+H}rGXE1${j5R^w1$~@#-+Xfp-mc^_hW|=AxrG+EoY?Tiwo>fQpUwW?sE{@>IC` z`g;dSoK-i5(3id(%*WG@9ny&I* zu@EK^nO3()BYE`COtm4II>nC0C_J??d2_U8iBnu2~UZQQYJG z38OY>mJ5o+7)6jfF}I*V1r9f1mZRPdZM-uS%Q-YN8#&Z4bExDe9zHlNNo439JP!ox z6*}-Sj9}@E6^(3Wq8AYZuGyP$0>!kLL9gQY0`baVmx=I>t(UZ3p{%IMkewAZ*sk zlRIAM2X%Ca4~`HI5XKgH{j&}m2sT3Xh$DNTGf8A3`m*S+n^JrT0?=EV3>f5gB6uqT ztU?9Wc{$R>`9B0{2;!AOmRn}Svy9qo?}u?m^l6K)9C)ns{jIiKSS>Q_>M{##yB`v* zLULcX1*FvoW?f32lNiu|?Hhw&_YcwNooA3k+am&Kh7z^M;Y=t}yTAmR>*MKhG*Bs? zx6heZpP9N}o_(o8LXb34wxICTnp^B0TcOKElnvVh(j*L|An#vP= $i%gcHqPV_&RiMtBE6gk0{!Jl}{3wGJRBtq(> zf61Y~ek2#L?F#fe6U>j;)#!v8XO7TA=D{-N1JIemWij`Z;13^mfO>`50p)Z^_selA zWi8)M)L95bK?L`%%dVT3yQ?RMa$2J6x_*)lR6hw`dqi%Pcd)rU9+=7#cI<=&cP6S> zBfz(B$N72;^?fA&&mC9^1X4_3 c#nsBWt*qmgfwV>t+8?-`>= zYU#(OvSjH4z3wqv4s9vi5$C$@oHwfVYqj (-0VFn9DJ?% zi>X&r(~xNBl7| iO&N#!`K-5Zm9lNX^J9AR=f4^Zd)^~5 zuvQ~JCORCs4=J(Uu^zNGXi_Go0n>fEO-RA@u_r6WFd8&4UU9Mkm^(l0;>?jPFLbB& z(ni5paSR8akO`6!2=1QE#|N$*yE#VofKyKB04Z*{uqna?_4CJYT&6D(MecU!`soyD zw2w4MZ=Soc4eT%X;4)z@biJN`t+Knp*xuPCG-da*39nb_jK_ylNKe0VIQ&PJ`UsB| zR9FZmxpS~1VrS@2{|(fAa54Ec+>YQkwD?`|yH3%7^|WQ~g>r>F`7{gMuHMF0iUhD8 zsxch-tlSA19G@WJEqD=zAXrptyP45W=7NH?se)U7<>g8BKr3F!P~SB(L (FSbeh!0<9E(RCFIW=9xsOft?(@VwMCN) zcYlDNVFVvP42(t|Z)ZCRd-a#LGv@9Or7PrHpxBj$I~V7ffV~wScidY^KRtUqteVPi zEi_*K{QG^#K+cGoWObg-&SxMrTS{%wJlAnip#k$Nt7opyxMUF!IBW{i?x*6#AqYZG zj!qb7Gw|VKRsl(Mq2NT +7R zJEQ!U&4ZVFo4$s#-!|C(g_m?8@SEIg6piyey|65VA|WpM_pB;j*o|BFoOsmDP`mRH z$Y*5cuLbcV*cTrjJgx$m0!X+0*d*toeBOwiyK1jzLI}oP3nNPqbZiF=sCUC=A!i2O z>jHxp$yj6@PtDGnZ{=(Z2GXLB-_R8K^?Hljd}dHlvB-tUqI#f6E`#dUP}E0Wz9Oc1 zA5pesN!*s3_SvWFhCKvCU(66TPx7S3p;^loJId7PN>|H=b+u<{CmgAT5znL!KUoqV zE)_X!KCk<=X*}i7Q*)8oQ*xlNxg1wB-RCEPRLJYrwzLaUhur?CZWGeJ=8Y 8XQ491_neRttF4>0Oz=uOQNUpb7dxQFDVZRO z_8z4(X@p`jhX%PR97l10gUtOFIP}=9m$bG0en5DVk8r9h#aq5ya`0uftd%Yg8th*A zdJNgf_k&q_tR}ms4NBQSMheZ3Zus{)mDrEHKkH<`N}lq&QCWQ;S!_L(vL|9_c{ZbU zgZ|I%?$*0f7jhW{72RDPEnK$7o5IH*sH4gh9JxOQ^6j$1$W9{~ zrz=8{QytfPT%O(Y;T<`z1q$qnIzzu^EvkX(1$>QMJrRb_X!Sfv#{H|>*3XJ{usgTy zc+TJS?06-I_<~O8nYNY$AZ7JhqL`<)yGi8H{i)2%t2%YlV#EGCDQ91fJ8vNqrU;1c z`6dt!oEf2 YO3ZoJ+ewOTTi)AMe@oGOw?-X7}%obnEioH3dcWv z^D>H7T7m}7((aEPkSjvYdJ*j-uHttpwSH|FR1ooP&z1ZS$nZPv&Z~xXElkKu5Qptr zzWkpHyaLOS1Y(IP53k $v~(MF;V+{^x-Lup5+Iuo%LEXOm!O+APGYzq(kq zSb4;7`!V;2&{nTp*9H`c@5Eg)@|y(GIVmf~Ij;y~i8R0K$~my|!my-CE{_=oE7XrZ zKBmPV=B*v=h@EB1>9wO5!Y*8~tFUd)N1`!}KX{q$^U-oG=mmcF9Ae6wmS-k5)i6W7 z$iF%_0M&o7ANKmLJqQRb&irt79X}gzK^o7zMETSynQsdu$7i}Yt<6~rzx{xP-=fku zlg=@1)cE|p8_v_zC&9%xMxuO=z;gyQnypRR0Gg-Id0+NwTz=99 CmbzMk>|;&*o*(Ae~Uz 5+g&UX8@bh4 %*rJ%H LpI z&=1vkG8K}v)~BZIn<1AMSm|=?+!XW9mtm#j7l_Xkv)_b^x_n0Hkp0xXcEZWP|M2;$ zPwU N+os;Tu}I@X8cDvynDEY1cyFaO)E!5}6Y-*<;S|HZk#r zMz$urwe`_o8}s3AOw%|d?B?ym(%z%+I~oMj+vX>dRrDTnq$joEswv?#kKZ~rw;v@v z-(smJQ^81*upO(TZK 0QF33M@Rqu158+{olcx*YrwVZX_nn7KDvU^@_YGu zZ~}@nv$nU;Y|Z;0#65Y(t3A~@Ior!wczB`|zL5Y9v$a2l!K#3%S7}D(P gzo 5ZW`tD^#KZM0AeJMY$xBH}L{ zt=|!aruH)ibd?8 TBOgRRK~`O8+h43}G#Ss8$~k2*Mcycz+H>Xa z03z7e)L=dc1qnH3Ufm?Q&(L8E(ixW*cEHg5iXwP*C~s$-h+cGa{b%#*s*cxh-oSwd zmG#aCvr8X=LZKJ{$u*@P&EO$#>3dwx3&Y39hZdN~F@(uS*^7-y@|<#CZ@)sBZ^sBF9_t&ISU7vM^;4>#)QNuvlV4d!M+^C^ zEdZ|Zl&R$_pC-3!Mr=-}cO|PWLci$jF?`CTHxX?uor<#=-8?wy=^wu Iza~3XMdTY#sdilYC=_CwA{%vsPQ7IQz;?^$Ii`}S= i|)m65f_5)S?7Zf2dud) zut%Xp-_slo$Dq75c(FpJ }eoBS(+vgT2C)HQm z^WPy(PWh0^*qyd__pB3L*y`<*Vm{##WxBl244u5MEs{#W_3ZF;2V<;MB%{iu<0MvS zO3zq0R1r=X%PNmpk^PB~iO!A*+dm4EK2O~`JA~9`q{D A-WdB~p;G64Pn2 zi^iQ1CxM4_1m)|y*FtySrjKoUs$-6S^VGO9$;cGsvGJilJ>dW@qZ=zk1C~Pr{wsik z^_cVg&W?TH;^evSIr6p_@2SXLy60$_BQek}ii(TF4GRnF$x`Q#q vF_e zstreKPUv7++c$D_-NW;?Ltm@BSg%Z2T#jewg+)+NgY{ng+-#s2Jx5;uZtVT_PHnQY z1M%T~e_h>q$N9GrQSU1aIbSbHRF$_Io>iP3g8lF4ZK>pJmr1Q-^(XbxJB(Mh`Twj9 zzldHRkII_f;sL{Z?}n>^rg#m@=m2f8)sjwwURUh}ie&~O#L9ryYU60V5id-x;U6Kp z(Onp1=5Q^v73n16tmG1#$>RPgeC6oqNE&DkB4Jr-&>AmSDnUD{xy41>7U*T)rZ7H+ z2gqU_-CN8q!lESbu@8vp-5hphJI)1-9K4<{wDNs)tF*|zJbv+1PN%!O0=E6Ig9uNl zB2Sl_{C2{Tb)hR2iy5NTzwf#YmSPH|#Mzpowf4iO*v?vyx0%e+*J_xy4!!Pg3`b+s z-b^!UiJ ~{dsgaoUDWNEvU+C{ zw`YBpp{MF#adSREdh;xQhR6N@QH~-7djIm%RfFNfmpsavj)=9(GllnVZj_NvBfoS ze>dald%WAb9bVsuG6{80u*C5>qo{Iqn-VP0#qBj)UIrxF@Q+jvOpGZ@pPdX--$wC6 zgS*Tk>&fmupVcBZkUwI|j2BY2=ndb{90`AFv)>=8iwNyX)&knWBShxA<*uuO-t2<; z-DkqN%#g-n%f_p#{7f`t4^ufiYv0@bfi*M3G2-4KvroUt=l}f0#^mboL90dy)ur4H zig0v8L{{zv)Ta952jlqTUK|-?h12jcus=<}tn1dnc%qeqi1j;nT6)Biq*C_~(GJ!G z#SUz1Mvt}Xf(DAM`_ceioMZZe;O*PDX-|_yd0ZBh;yf`84GmE`MeMEYt*Dd~9kpK0 zzE6+I@bK^g!ovw2-fzy=(2Kdvd3GiU0DT~m6u+59Y%0+gcU~;@NQ(s7;t*jSE_8Xz zxpFm-uMLjWT(5FBIv`q`ye1n{bHMPhJEcCCl<7Vw%~mTQjEo*lCiifiM=M(pJA%F{ zEs?t~&ydIG*g7ELw0<^60;{58Xu4Oyf1%MnP>-7 QXF_WeS*b>GJkz6YU+ zd7nPn?JIRybjyZ+7Z1#H6hDcGpK 5E?4|hm$!P@bmUxNVIy>QLjcge+vrobJyy#5J_ppw4ZEbCV zH*YJV+UTlt6&O5al?CU1%IWqmt?7)_hCS(lPl!G$>-t51G3Ge-Z8kmrrqNe|PRbbu zfKTlW-LcTS?z)4WD0sV}PvxThO<);vh=EsHx+P5`TdwD0vkV@QWbWteJubsqoZC+# z+#dC%O9xl1#S0_XLlNxTcptLGu|WC*=or9!s6%&X2h{V_iTTVoi&Q^`te*qDPa;O& zVuV7IfxoY0l9a#BU1cC7;7Ok45DTf-DII|pI&`tVYvu+9xY9BK_405nACAdBeMot* zf>GZfJxQ&|P2QqH=0!zGYH-m%w? NFOY*Wvb>zW`oI>qYU8d zxDH0$5Vmjz`nJ#k{5da5?uDk8q@+X(E!5`i;pW}4DW#F5X@%x3l^qZqLcD>F0w2J7 zv~y+PVdHB9Xn|mfD%G_SS2~3yG$;xvR>XM`(@~8EHG>VGpJ4OY^a~yy&Xy=z1K~{u z=;KTC%*5TzcWP7ArX|5lEL{sgEeTtEB9dM^#~SwEyhA7Klf-G_&A%GVQ9oae$qTb6 zu!(x5X7EU^i|p;CQ)(2LG*2Jzt@_Z0w#~S0{cP4>X#V!C@Tu)>``ov7LE$U-1Ox;| zQ? env@YD1% zxYh<|y1rbG5dCWZe08Iac=KpcP#tcu5~H%_Dch?GqS#Kouv GlV(4Y?uPrd6UZjsTK(!n6|Nl< zQ}v1mw{||vtqP(!?%XMFOPSbN8_};%nNTM3%pGN7W{&Y~QJRb9#sZb|EKyaU^*rC| zB?0Ln>hRZ;R6Sj)+;klmd8431a4Ws{3(x>Ege?D}=fN-q{S9ks${Aj2u*(uPJ*&9B zfdebxhw{B_>D69)D GuVy`2RP5KnTLHuS^^9s@8QulnFpI(*Hr!t z7A#K^POP<~8Qy_aN-OWh^D(&5KKz`?S%MVVhz!i-dBsjWKaedH>f5q5v^{s}Xpf)P z!dfw?OQc`yid;%#lak`PQ*&}5JF7VcKM$;n$AG6T@$E`o2-u^3MzTwf2eOj*-^1rx zG~}N9O;%F4xGxKIaMDHy=MsLu2&`*cmj6*~wikG@J9QD~@wa$nquky0IBw#Gh6bDW z*W 9Znaz9Ah-mC2A)qsV_e;2ti5a_Qj_}tV^DlbVHzv?~IUUHip;~AcRMLFb z5c3>5g`mq_CYUXK@-+tK=ZCCZ-Sm(YUpKT?q7&c)K#+vtcPP!2t{A>z;f1+h%WjFg zv}=moR;@ZeUrAXac=k?P_NmBs^=RcN)tdeFF$fGsJ~uxvZDPX0N1lABcaK^EBH+3L zV`zI7_FV58A;2g=hE%hF9FIy!Ah?c8H1{MYv0-Y;A_z8YUbu?omRz6PXW{eidq1|; zk!cx`@J|x>>!&Z-S9`Bd&pjT)q{`MDAsp>WcD8RMyd*4VCw;>k3!;Vrn3O6ct@QI> zzuudSzGXd8b<(6|_+@CjhQiVUvtcHxJSYViUYYPYa+1vr-RW_1_`#Xi@#9BQU`w{4 zKiBjtpF4WVDhBi2Iw`L%BgXm|_iPiz)=pq*;M3&yI~CfzUiLh$D-M^-c&u79U9} kdDYFdH%ad$egnwm8KI z7WKf+&Q36(Np|qm_ErXtHmgrheb%Yaz+@K*(N+^46<2ly=gG`C8c63`t#Q;e0+`xG z^2*JZn}b2MWD?hwOE%qQP7_oX_C0TwM~b}4H3e}`JHX|E-3@(yhj7kL5!h{|LbJAO zwZrwSk>P V%pk9LT^3Sb+uW1 ziUPP|y(P@hxxZ!iMee2SZZ5KPzvb=LvT4gGXvgR6=4kata~JJYh^+Q;;I+plVhGqM z1tpdtha{y2%g8TkXkVS2B;>}Qi@p2+Kuq8pp)~wfB;xzSrg{(rVc=L ;@B3XnQz@x=5*wY_OSwX{3k=m)h>DDnCu-o(*igw0YK~hUv%TB!_=eR zy~A={=??_j36&jWhsVdjBM1WYO5v&!d=?6Mgtg^DOiUQOyu9Vnjd9rSvO-wL^PN5U z%=M8{m~(T(A!COh4L`jM<^M|7vMb*sE?~u@HP&KpjAB egDm+ISDaefl!8QZHd||J`CJB3}a(s z0HImk;iCZovZbP;0$O6D@iIL81&@IIUdIPUK6B>}*TJeEv8Dvo4I %V2||W=`1tYS z?fn^@H#?yNU&L^M>M3<|MZjkOuiU^5v zJ!2BiCuU2X{1ru6;mXFwaATqOF2Aq^P`@UG;y5(Wjk&`ULJ>EV87?D>Bjl>E6W1*8 z^0_JtWACct@baxUrSbeX(E}FvFQR85%-+ zp2XQTuDef_%+K5gh;CG}{fXzIpgyk`|HJR^F&;n0u(rmS^0n-4GA+E69&4iZ7T>>K zt^N{N?D;Ylwk?0sG;J>#R($DNg!Mn Fu51Ol$1H dRhJa{uDx78JY%) rz$GzeM=Oaa>_NPa4G5cQf(+_^m4!{)tWTLevEqhl> zEiBC47EuMJF)q P(M}fMeU~d!n6eAR@l>ro5un$iHbd z?{5{N)je}yDk$^$ZBh~;Fg^XZ5^6m x-Sxfx~5Ipf!T_cAg&i?&8dP zRXCe*b;GOFf$1bWI|DG^Ve_D{?`-5Do+~}Z)Vu4nb5Z+C>0PWaJTA2dey2oKLJqh- zXC>*(2e-_2J_SXm$?YU;d#c?T@2c}s{VwJ1CUp441NS|*&5d|!d^P1os$`WeGEy*| z18M(If}N|AY&dp>rqM30opiG_+lZA%Q`n0-fo6e(LEEWd<~I_1=B-Ioc+nqsy@n zNpn|{a9X18O1wEO*p)4_d9!OG{#7t38m+NDA6}2A5me#FUiEZLoU@UpQGEGx&GCv| zs0gh5{sNTw+BJolH$v|pt`5Ft=GjEO|D{Yt9ZMEQOCa~=Df{Rm #HqD0m+5&s+iYk(}ge0d>AZaRe oi-W6V)(RS*?F{Y0 CjjWaY=3OO@VxSw8L@O6BD&Up Zlg0cso2K7iPW8HaT%J_#aW;k^0FLyqscoC$T$mu1FrL=Ix=x5$1 z_{J5Jc%Llp@g3ly2;c#OhD()X?1wr(gA^YC1AQj96~0u11Tb%h $;u3QYWG`wbb Wd-HLtNV|~&Jwx9T18-uD z5*zjD)@Y?K20lJGK=~v$b|AQ$!e^&IUaJ57{cEEgixaUdED&v1u>2dJVqaASmE21d zc9J_>-wCp5jp89Od?4@1Yd^;2DjXN@r6P64>HS`f{>Rgl>eiIc^UrDkg 0;`UXOI1B_)0S?0a`-4Nj!w zF(0Kv_J;?mynPvRMH{a~#sk=Hn*;wDS*v3CW}Z?%B$VQN(cvVV7w-kkOU>m+rm3E8 zwR~9<0Z%vDj|hu4DM{3n3d#tmfQRxH8yYK=%bj$iT$xFI;#@6owr}yhA2J^JA;iov zc7DQ&_j7Uv$dhZ{{BajeB4T2+A3uInnx7#4Ez;j+e*bPi_XUBL4#okVTgd=$6rzww z1`_9qC%FdnPv IOi@|qyRArPAKw54jQxU%gv=}vt2% C zAYv_F7p}mds(!=tMaLi2l_ anH>nA$ Po0N+wU|vK5Kv7G(L4My!zBM^nAZ-EO#O z8Nkiv$Fj2GX0}>dwwR6Yj6Z!+^)Ytu(!~cz^vj(n&X0$-M$hX5X@~i4;ioGoY#Y0R zZG5$+H`w|57>wImTW6a<`ttx84B1ApvZM}aNXTx8PWgFLc>9$WETRH{j;!xc+@i$A z>5F~6RHN=a*L^*O=VXo IF*UrCZOcLv$@(`IIFZf>&Ev&!fCRqSVFa6leK z0Ey%wKol-oUU+#`E?0Zg{|?t%f709kFG&ccQ{k9F??gvMVE~^4*cG+7#e940%;roJ z(XvHrcbS|wOjh>g1lkzu3Gv>CtSq3Y9gYke`(Saa#^U*9vvZibtG%*)QFg{D572|p zaH&I`C*Ci7Pka70)E!`q*G){+jJi|EJ+|apX0j&%AJ3oxCHe15UGS-m`7eKt7sq@V zT^DC~t`D|`eAys4ozScEd+q4HlppR$$?b6BOFiHGEu+xV`Q`;3)3)cE75v>?GLZWl znm!K(APXyFOF2@--u#f2IW#Dba>)d6lC5S9?y`002cp9DgU< zk(@ fK3#>^BkX7C-9GP<}lA@O 8{`arYGYcL9c}eIh@i;jQisBJ(&ylU zPP(#y^0MJgRdHJ%RZig=5<+wI*xIrJqaR^kL2wo=4zi}=Q>KgVL%&mI!&hpgA)%_Q z>YA)DVxU(JbOM|HzWsktUM&kFf!1P-))CMRXK|+rUnv3R$yIVYfF~A_Yd|k)>ym&a zM`o#KZa>mg3ZJ#n$MpC2cbLn8=F-)Fdm~u1yIvN7z)lyBjxNP!bi$jc55(w99NS4Y zexWqTCLR e1*T(nogp;CQs^=LP1bg zLtV3|RLoim;(8d^1a1cVm$R?{t^N7|GVcR}%ym|;I$G9E4=a!7(YWMXV3yx~a!DW) z0=whNQyHSlUVSkG&<_{HJ5HfMi6M?7x-7>!kUPo|rjj-^h*=}f3IUiRon*PpnA8g+ z5xYpL<}&rJ^=ozWj<(sSU-W*E{!m+w77t?jbw9i#PIa<|=wAgWAf}z-pVPe!ZJcj? z(5aE~YWyw_dU0_Px5Rb`0bpBc0O}bJ=Nm^w#=QAO2Z?>COxZXu8!i8arXfMVws_k@ zyAUf)20NgIvE}K9bmN9)9p!{!&5mqs(llM6@QjhGO)J1;itv*K9zTwk%bc3uf3Tsj zE84`e{_TzKW-}$T&oCw0|AJ&)0*1MU@m-bEQ7(^_n?+*S?T`UXx58fU?l#l@3bW?G zWBJS>yk5kiya(>#I6U28EPi>tJ_dYyySeH)a~vzc37DU}rvrkrY;6=ijbKHsszjiH zF6-rExZmE;X1Bpvpxbol*e7Dr`*J56w@-dPPC;N{?*@IHT`j3LRlqz{3;-I`iB$3I z>3@ag|CF&Tc#UGJ7uM1qIO%Q YnDVIeK?jP-ZRpeap!b^}C;{6v~1a!+kIAN1M z#9SUd6n(O3l1Ml}f7NpM$E@QoDzG~+ipphl3CR9i=>JAbW~k~!K!;E5gyeP7@Z(Jv zwAj(`VojHxb2`!Spe^4iT#?KzCZIP9bm9NN8bAeb*VbYP*aEZ3K6f1_DlsyjUSqp` ztv~BJk4uKc6t( SnUD&jrzq22R}cowGn!e99`NyEw7)Oe5NkrEs9xeE z0ICFIT-o%WIRoIdj0FXkc+1RuWZxX3kwaC#w^|BJNZE}wzrJ*1SofXCE9Cl9x}F~L znJe;_(tkGdFZfy=>9x1XXEBv|$!)IgMY%1ipYjOJ0x|Dp^88(jRTJ|=y=0tf)ji5< zaz>7x{&V@`0x*kDUi1~j+@)>MiH1M$7LN}O0D6F^Y0g1rR(vcp=lK4y+0(g5HC8o% zx$E%%&2 -LasXfW>B550e0{_i5;ze_r&@6dIRfp@Sx)`OX5L25M16)XLR zDL4&5n-%U0l2e0U|DOfq7XSZZJ--Kh{#huxgJP+(3>1Dfy|xG1Du2(*{#9K9m(mON z&;2LXruM{l{at4^(p}x};JH7wZ>8(%EkeK=8NAmX0CNY3`t`9g{e??V{hpen>iPq8 z=sXPnYV=^Hr`pryj(#OSFgt?{sOro42%CZ`MAz*Pm{Xk1Kqt0Ld2LXdpPE6PLiGiM zmsJS6$ogNEq3x0L(e^yY!#J+&>5h21FF9pQWpR8of=Rf)ry FmrMdqD&?$n}l#%e=ifyYYMcrxqC8INKPUuR(LNh&FSlX$Y;K4 z6_x*(* }leDh2^RrBUAz&!@kD@8j!>wCGG=N@Pm+^0Ig=m!}lN zuFUiozNQiP;CZn&ta{&VsHXx;Jzv-Ia*`o%LM-1Kmqb~!-}L4;6#W7YXu;;B{Qma5 zv$eIB2S>GaANI3^vNTI}GiR5)hV;nu4)_>mg~8LO*OZdVV REKSx$$Vy@p-d^bHN eb>b7w> B5Rs7XlpGp{Zhm_PgZsXp=X>Ap zIKJOMcpS*gwfDZ(UVE+cJlEQ@W|d9w9Fd0L1j>%}`>N!`_M(FXc=D51ZvV-$-h(WQ zH$6o!h03V$M=40J{34t0G=h1r*#Go*zZjx)4#UR#Mn=iUBz_Zy#J`Ru=)5^Om L>muHxLiAw1)Qou2Oy1o**UG6wd0%#lp&pSGBh!kW?Uamm)`<9gT5M&rSp` z0(|t$h0{-s2i- 4Q-FU+DPEpHhCxP5F4r`oodixsY&>Q?$5TS-!N l<=tJu0RCO;}2mOd=<|_LV^i02)}Kx={0*@p{Jv04&;3PUdPBNwkR$rs6N&^ zmu>CcsWYPe`6S 1M9`ewq) rZUKGJDj(CC@eTiwRWE%v=2HxWDiiPJ@ zg#R0LD!*jvZ8O6# lSLeKJG8T1Y>L;Qz$(+s<`)x7G!NCMl{Z3R6Lu@2}Sr zeR`*yASp86lQp(J+j$Qts`_phzGb`HJ?G25QoV>(A8^Wc(X6#r_WHd(o@y}D_Rx={IdP>rzJ|{+i!&zIe%Cq_qI}U?JMxB56S8P+dpF$+MvYu zqzk{&DQg1gDw5^;@hY8jCI+nqbwW=e87o&CSy;c5zO2~YK(5kS|7U_f=>7Y;*!(FM zws1c^@*k%eOSaFE)pd0>xv-J4Js*c)PNHM-^k)zX9P>(yGFrF*f{PLgzU0zIjQBxN zSXek!x11*wqK1QRr}91UdUlFr`J_SmtZ09Kze@mdORdvfTFUlN`fO*4`G((pgEx|C zI(&ZCrnYTWgP@^&CUl!8Sq89~R?u#CMwsJdEVHNP$EVy$XGmXFe?7s(B!hW84sY z#wGWZj^Scq?=)ZYMEm?rpluiT-^Qlx&QKh?#enlXNnB2KeyluBt5~mjP50HZpXiy_ z=<#01#*7yRlib+fAMdx}@s)bFGVtOhRZ9{fpz}Z7Bw;%f7? I^h02oLNDmGAH73bPV`56m-@i28{o&puC2E?lOPn zm@PU=-1-?W|77L=4yTV{Kpv=ASh#c4&(3?|beiw9J!OzLs+?3R1BSdv27xg32Ra-A z(b}&%si6>%KnR)TB2ET|zkBrw1|2I9eq|lMn)*$~Vosz#GJ{`_v{qaqgK++N+@oL0 z+g}eXWda3^<#b|6zcZPCedo_`_Rl9ypjamgyq3I=$@-ru%CBOuU}w5xnj7s6L8A1J zulKC~zx?`NLHn<|GKMXXa-0+o|MS7eg+?HZ{pTtM|JPOg-wbK>ydc*&EgSdn1Bo=T z-H8qPJ{aPlqZlVCVciY37;Zmp*JbN)JhWf&{nds@5S@x6xYX?CTi<{JbDVBMr+sf! zTlR#^TRxXuC0#Y7jit!wA^C@A{V#OlU_|HB;5x_#vz^vsHExvxt+FD!youV6ize&4 zqA%Cm;}9xS`X96d?Vhj8=^?Da+`C*plixN)KC^%gZIZT`DLYrOUTUtTr}D%hy!Bc8 zme5}%YsQqT(9%Xim91_kvsmTIJrN}PuzS_~d6E9yz!$DmTxV5mtV)|hx~(5;d+mV; zsHjp0{nYNU+a{Bp6jYR|WDxoE)5AUMo(ZHRFJoaf5AE?5KdiSJz8tAH-!pL(mEzzS z%YC6}5=Y4CBP$J7!k`os=mBQ$cvql}rY8}ErZIQ*u>$X{0@7f jCn zeri?v9YTj%VZDgj@4c~NBx6aiX3rNPTP4kek>xYD_ZK}#(V-b~?l3y+v$JN&IQADN z-7(4ZQTXGwvc*-=DPSC?<{hVA+BY7FG$xTh=PAcZKiH*MxMvfJ^v374?;uD_zF+;} zb6a1EhgfW^-)eIxv)M>x=A9tbG3x4GkM}mxACW`SFHMaoE%kJ#E`A>_$2sJwOs+j3 z@8;}Oa55xowm6MDu}>=`7(-66A5*M16ollC?!6RFi9J1Q5`8|C8s|u->oej|@k;f5 z^=d_2%HFV#E#KZYcy#yzm-6qWU_}Yy %Ozt4wLAWEX}xJooQ7>&he<$E8{Cl%`t$Uxm}tC_ zTpRm@8WNq7W(anet?d?k?6gidLRybs@IYN)$eYCaL)VOy?b=h)sR(A(t_o*OJ0tGD z!n}A)_L>N?y~^^*K^PnJt?X aQj!_?Kgm>uatd3ip*^6 zWIdXF^+D7Sr6X!aW!7+L*Jk@!7&nOo6jh=@I}F>2c5#^vVG%QHb?2||PVj7Rtys8d z#OPHTG^me7A+#w$92&+ZNPJa6w;f&XmE5cWcTCkg5FM*kJiSwNEQi(E0diQuqb<^v z&OY6D!Hah gw1YHQkTlY;)W&rl1ESH~fSiC!X=3 zGznsJa3k#Ce6->@*7nq`Nz^eN{oYaHBXO)0j9wNu(T|-*=CQ3QRi3`^ywi7ZRgesX zzf+9Rzpf_8)~t1!qrP2{q@6P7=+yHaKmGEloP2$&_rBxh-TCd+=Qmjkl^kh}kze>V z)aBXJhweaug39lAS}vf0sf@sw{$!)ver1oGM)een`!fa4NcO`eB}L+vgaNX!hrslK zp!IdWChyLs@F2?sz%h;{Ijkl&*OU H)&F2j-=?!lZ^9}N;enfsG``inM-VpXT` z^XB_YH}xL_smR!&s-ohngL*cUg`bXECRdsg cZDStYFn&w<9t3J`R!9z z`HNKr7!FKFHD0-(nY}t`kkR|2p+Z=@FTmI)8)X631XOK7mcYZkU0n_%-|I7sCMXLc zCKp`n{VG=mDw18^#zrI4D~sX+yjBSzK>MpjfRX-A-P_N6Yu*u(Z!`Y9^N4r#h)4!3 z2sacpZ%lULEC%%-bebVS5qDiyIRe)oi345B^#kR3Z)_rbJZK=I5d)`}w}5);TMA8_ z tdPAk^sNOA*OmmK}dhwv6C zC@VCaK@AVxJ}8rgt)C~G&k^$?;uw?gSE7^?RJ;P=EK~pZN4xic!JLDGFn^kw<(hY7 z<&Srkg12l^fs`aSrv+gho}%aVF2gAuMABpoeDakfv^t^VIa7>xn<>QvRV^UZ`i1wr z#aH#lM9=0MJp5GhZIpuln;FtUe%~lnDCxYuuEO^a!%*X7Ipwt_!!Z{ouIwlJF=A6J z1k37ZyuapgjLEx6E@KOCUzHD~?NPWlaFJbM6uOPH-}@;bz#MfdgjZrC#3Zgj2!HG2 zIiL)|+ (CO4W=)@0rNCRGE@-qAuOt_xA!@KK<&w){H=AM21OogGg^ zSm@p{J-D(`!(FWsH&C6Wl6zCn?9M4_R%j?)!T60Q1Iaz+NqV=tZhbf}LHk-{Djpm9 zmVxZ{{gMk|AMT7ExgnqO+Aum#HyiQsk+&ch=hqseV`BOR32p30o0npz2BW$T*tWRI zU>i^Fa28uHT9WPg9&u@25PA2d0mf6IFpS%BIrs})*Om9kxnL!MD86NJ60X=st+__s z%P&yIA7b}JnPho|aHqxX(O)Iv0kvBh4T?Ly&=g6xz%u*&nZ3HG(PSUjI91ar;xZGx zfD)2hD*E isj5ANcy#VvH<%wGyOY3$O432SwR5C&Q;Az*hFK0y?&r en>hgjL1U%gcv@j^E)gXQ}*KIO QRPAbkzy4WU|n>NK<*mC4Xy*?@kLEO~@Xu&G4ORt`T~2K26 zx#Zq*r>j0c=6SgK f zQ$HNr{Na7&=rF=0fo+ShTGa4rx80=8%koPIvmYjzR=8nN8Vv?#5uz9fTO^=v1x|Rh zZB-e?5-33fy(38!X+q(@p@s;qlcA!=CVKsackYI@CA^asjaiPf-pl`{7{s#sTsovo z<4cZG8hktLl~O5oV8C?d@{QH&BB{q;d-;n#__Aca*OMe_@smPRcVxs7@yIw5WjOr< zB{7Qu8aCy6W|b~`^fcDu-KyyP`54{P ?qV2=nh0%hpLosuu3k_* zYmmoW $HckeEs=>{v)f#+`&@T{IzD^IoIeR$`qSbW;V{ z;yF2Y%Up|!?p9yB9RK)U*9)Ie8o#&$-jT>L164^$N#BY 1>siPpBjmKo+l{e1ZBKxsoTS+QMS-i7w+ zShrZ7@a3y?c8ho+tU=d1pH?PN9u7g_+`I?pFU#+oX%AoApwn53GaP}bsC3#LZ1xY( z;hs8ztrk}weBW_CoYy~^i+ 7}sO;M^?8rISZ)aqyO6urf85Uy?i2g*- z6&GojQ8V#Mmr}U+8z}ea1T9l*!*y-jCDwnuA>hx!#l%P4bLz6VJ?gTCH#IeN zQF=@+g2Q8Oe!jaq@`HIwMhNL0x^)6k9>zrg6-xpv0$01pZvG(|r;%SL8xxZhMRCI8 zjuwk%EUXtb6G+R%Oua2y*Sxh4+ZT|lt()yWVM&s9S+uW+AsZi%H$*;X&^YRj-dbg+ z3Gy&I#LeMvigj8toM#Z!4&B>q^3kZ@DVd|O6Uw?(xjko%I*O>&=~d8USCQ-K&vO-~ zgw `D`@mKdr@i#eu(ADitCViCZ+7c7 z^Zp)6{~Y1$^pviynS(W|#kbM=SOnIPOuP7xij~DZD+?!6PNVD2a@L Iz#1$DF6MK=GY3SYIv%#+5TN@7a=MxeV$?+S-Zu>mxY4 zAu3-*r*7oQr5$w;DV{LHWFIqQ(pIdbq$FSKa(mM&^LN#C1-#u3qAtd>$iB;_%yDQ; zqhuL-fS?jyl7Q_tRj&6R=G1OBiG!x_N3Y+LPH^a}yzD1ZSME2yFcYqA+;IaQV4hc{ z?Y1HopAwgo;-kCK V&H532*-l`O*Mu=Ba6lrb56TyPM}@St zp|sb5;Lc*8K)RU&k6LJm4>d_R4g^kouz4^(u1BA+l-*Vvm}Zf}N2RK~_6r(LyR#`V zy;(k 5J{4rGmAFF4s^|6NiqD&O(LT zRG7NE$?bd2Ypt+D)zBkUAnYwE1-Y((E@f?SU!l1=gqiu`Ad{}ZPM=vlBR6*#=u|LS zF?|R`fVUb!cTg_t$p 3s-a? z>pdsv<{=Xkqyn6Qih7R(G32mq+VHnIm)yuxvKVw0uc&&oZKAB8pg^3nqyLz`yK=LK zY_2Ug#D+SAMWoE$9^yb E>JMb|8nI6Hk`e5@~U$E-oac( zj?dP+xH$I7(L}J!o4{F!?hfe|J&Q2!Y8`ptXuQEsD?hl^ 1F8x zwdrux68jm3 -N^KwRirk*?_?Y{R z(qZVuc*;NvE3RI8O04l!*F6D$WW*f5Ws`0DMg#n`!j9OCTgvyrIp$>}>lh;6YsIc; zzu?Q63jD%QxkF9~lMnkKzsvSVoAHJtf^S=uAMZB6O@Sc6cf@&F&}nPfVYZpG)i%7C z|CeKEW#s`XO5%K%d*u#2n#O!h7TYR!W9?8rQ4}l7(-}EcSEm56;>&R)Ke%G}{9eAz z-eR#p({*60!=Qu-2tpLbkEkU_fU%MnZ+(gf1uzcA6s65g(Cs7D*s#1irpO{etozX> z+Z1ZT`cZ^2F0*s5V+|xzpGJ(IJ(u%((#|#Kn?dL|(K^Mpe0bWHl0>?yV$FiMd5Y(< z!xNEUc>h7_n3qa{@D$YP$>*AnQz@|Jy#hNa`H+o-Bw6)%skqD(3un EN zuC42;t6D{~+jqla&D>vx)^~y9t5Cya$cTA%DdRKJ(Jew#PoFU_D4-3!mMYd1%1~d) zW2UkKj<@pA*H(Ysa(i!0(kextTEp11T+O_v-tYQ46$Jbr=IF5&`UMQyCw#|oU2m6) zk8#Qg&yLB?h8-O~t|xJfvt4{PG;*dX$(6n9@L+GYN88HIC|(bCU`LxYy3^tyu3cJ* z-myPTNzFL9qD6@^19c0^sC*zL y8$j_a3 zc6J~J)_zl~V%;LWZ-Xzas@j8%EP{Ti&Zi3=qv`OSh*Pt!Y1Bext9&TRbicc|bGosz zz ~-BziAt zb)SDew+=2^;cL>?-9FG7Yci96lGAFjm}}hxB%x!`+k<1ytqZ&0>{73ozHoO%b+v1= zti%GoY~{Q&1&`@ G~?@bt1 zPjj@2zld1w*82G9l g^);WF=KNg^ zrYmV(i|cY_sASW1(+#)+wb|t1aGv9!5Uue uwSC8t2!_mm`AxMyMS#^S^J z!STJ^?Njs=#82EH^t~uUFBbx$QT;E%JB89 kvpl3I?8{0DXpvE`2>g;NnaX8^lnQb6F?wqo)SaGm9_=FU`6Es3_ zZ{;u5`g|y83}&sD{~Q&v8o6LDwqWsXOm-o=a#QO?DJ61uK8K{KBp`0`TVN@YLwG!P zIf=tGB}0{dIRwNnTc6-Ut9~iN0ZkQt^V_rTDbdzG+p)~V&gd;`>5TpQ3(w{YkH9;d zVg}oNwe>VY#Hc&of%178+*0WQb@x-B_^JQ2s@F=i4{kqc>e_VGZ!Z!o9RE<4f6FCq zNMxR-sCsNNSkYQDdRzZsM}JdzZ-Fxi2sW4$GIM`q?wLd>FKk4u+gz)ysT*BRWGgoC zjVhyfLGTq V z84Z-`TmvRWLMNc8KtX{zxRQGVbV?7k?JD$MjfdjL_M@$!F!_f<1*@;Zwz4v1KUGvc z$x=Q}^Ey{@-2<6jo{bq?qBh@tUt3QlbRL!aHc;B-8BR#LXVcMD*YL(1r3i65${mUk zHnCK)mE(;oju3tKp^g|*#ikpchNtb|!)}GXKx+KEA1UV-%zJ^Na&bkc^i#V?nYk}R z0)L)0Ajf^T?L{EExo}NCt_2QVsXo2>%9r|cYwGA0y001yE0Nm@J}wb@aT$!#GYyES z^A|KB*kQsTke%aS<*U&3RO0@DIk%3#D@PFdrk$z0>hjU})~KSrFFS1d3<<3Mx&d_? zI_+hkdW;x1xJn(heZ8(8B4mWh^$mRN?M592(lq15uKTI?FnJjr05TxCoC~j4mLt>o zl@xpT18xcmUYlPIvZr`9px_S<8T^Y9*xj*OFJ{jk`BLjE g~dH@ ztF<*#yIT3d1kZX)fc?-{Pc6iV%58{E8aE)OE??M7?V8Z0`wvDE_I{@%J(fRCa(z5w z ?}uC=6?DS!;HJyvar3sF4sUs)?t-Q2u!6Za99l(Yf|X?p zlqd&W3{auPpRR=2f-ZjJ=-0H}S66@g_(kpR<(@%UfBtEgVed=lwBq%T7#X jm+>=P(@fpI>cbr+ga|V~yhXKBxl%|pzD$h4R0?dNe|v)> zsiLSG&|58ceE#v6myU~BPIGNRGYN`fIfe)s8M=WYUTD>$m#NXw6uNG|Cl=+jqqR;T zJVMKs^b*9;1&Nb_PGezhpD+E#$6*ZSG6W`Cm}?u$bJCJ!D%NLZp)2<%%$t?!ga@}= ziJWL8ru4M*A4)8{m8j{cpjOF~))(TF#+NrWuB8i)IuaD-9~zr x}XNQ;RE zdH7V1zR8h?O)PGiqB@GRa&HmCirqYXlIqYn$F=IJXwOTOjEQeKZToiC2gt3sHQ818 z9cD#aD?e_hZZ?pvcdpfpAU%&PlWu)ge7;+;TCC2?_r6r3S3w CI00?1hnTW1c2?d}>A*OXqtkgQ`?Q;BLwNtlErCpwnOLeg6 zmMZ9E9ImhB0P6)17}5ksEiQkrW1~7sd^uB(y=E%EHDLc$4kI&jS_4NlXdHbsI(uOl zc70Rm=;iz+{ 2(dKX#Rzz%NOX8r>P Jqk&pa(x0dT^3#| ziKIRWIB_E6DWM!Br-AbsUVzN>8we{UrkL8EZ&@M&*A{sY! zY35IFn&u4Vsxs|vg-AShjok 5+GnS=G;`)gFUnbwcLq29zIUDh3&*_o zf1YFeHU;hw&b7Vq+Gybts|crCpgygnfnU! NUWp(0&j{WIQh62GqJolX~dhU;>*%$o0-t*YHdicv*~F87HVf)=MrzXFsNvajint zZx#5apb%FF-H@uCj+zbfCh?sL+FEfwKE6_EYBTh%1GZi-Lj#=#+m>_Sy2QajAAl!M z_;94j#qNY7r`JyFAWuA4wBjudZTXo^B>mNLps?(EzgG|TW VeORYWg1nlYg*{l zv5&&!a$q(^3u$BgRim?GQb&uK=1$ciXtytNc~aw|d*i*!>DMRJ-u>E**q}ay6~RB7 z7%~I&W|z094mQ)hvunnS q+N1m8LQ8P! z)X!rnYZ3Q?6#qW_zrTtg2o&qDa3n|r rLbxjwE 2ul^Mt7j16LEZ5QRC8$_Hz1*|-PQ>I27Hm7qzs;W zW5O{E2LNTPx584g7+87I &MHu(!x1_eKf;!lNJ$ z^m?~^?nz#TV2uZ=BTj=TMC&wm7~kJt7uFYQY$9;ACCzEf*ZwP@`T1n<;nUi-kp} zcu% hqG9&RU)yKU&%7)S?0fqPWTT_%f%3mXz>}XxPl^DcbOy0{^Tfyr z+`)~U_b>lil(GO9d@DFD6z?S(_dH&3FhMLV5n$#4{|;SnP7dSmJ_NI(zvlJN1^Zt= zHn9-9d(mn{K{)Qn#xC~*Uenu}z8wS8uXzd1_co4C ?rwu3ChuW)>>8?$3 z7Z@*7y|`q~S?T|dgpbFv=~-3Uk>{%3_XIxyPVwYxiU0@`4!ff0_uQfy*(7MY8XaQl z{N26~LN|zSNocX@R;r$5M!Zk8kJJ6N!*Sq#Dwp+yXYa=F4 U6zZ=8s)EO94! z#^{F;8>h};*=2io2$`iQbVcFRhVw^iwS}Ays|QnETXC*wE0r}L?R Uodz4;v6Ut(iaWeP$DLR zp)t>-1)@f`y8x84N%Sn6c1Q|Vl+_uGJKEkUFlnN*%e8;#r&;1it9yI-wB3vRA6r-m zpF8Po; #4((_@GvkZB)!~RI1SJfK54tFnuC`oT=xP z(kUz~6H_RH-*V{1`t&Mq-5s-Um0~j?jfyvS2pS#}B&B9$Byp>mo2(eTF`b)Nom$eF zVw_c!Uhn2b6eYw_ur@ZpWQcQmmo#K!mS!i1<|lg&wK=P&3LI*)@N5#7uw9*}i@VY9 z_YFH@+?DI?ukAr80rk$S{kc2%5d($uHZqDwxZT~|zRyd`c5#)FJYse5^Bnw$noDSp z^%8*-X6Y&8+NeMES!T{f5&6;3(mEjuF?aL`w%ZF(-FC~xC;_p;iMD_r%}U=t0TAy7 zw&;zY<~`#+H=82-jDwIHc6eSnrKnaA-1dw0IsgK7Ay7Ny+{xZjN)uJHOO ~t#wSpU)vB6xkLEV+X~KF(i#5z{?sQ7Hr;CM z$|9cyTINe_)Z4q&s~H-t1>AP^-Q1XCTsP04chO3yFnB6TlnCP1I2vfRll!u9G%8~> zF@K4_$+2 `0dPhqFE#(qIiw zTjbzaO2lQ41}tKX5=zAHw-JoT?F)i?2>F8s I2s+Bm07OoW#2j@X2(1V_|NDR-7Ddy!SSTqb=ziAvCCnKhn{b>IJk?*V zuV)dmFV$V`4Q|%pdGob}I)javAmh37%9qwyKqXIn1%>0Y{=6efBvQXKJ#b3=b^iFM z>(FwCT;2EhREg`H;cHOSAb7rG)|LH(4cqPw{~ge#c_U!Y $w3}<|t7bf@Ir_fC^xb*P zPD^W-R&ak|K9qOw)GmzhFfhA0N*d<;REX7a&BE!Z_WR}Z>C?a`%zVOFG)+gOM|x5O zsu$KNFkjrZ8z`KRWZpOvk+j?i3%B|J+czfFbsjvh9qtmCMZkomma_&YApoKMb*%nc zHH=%Pd3!d1uSlN@?RzY`s0DyI}voT5Dz6$!RG|zF>PeYke+KamH#*KjnoZ=WJ0q zj_L4jU`@<9PG~#&_1mJSjCJ-32pD|BD`of0s%(kUdq+kkZ$#O*zc!pV-47L*2^UyO z*@zOdv?az?v!#L3DE~O>=H%F}qA5H-^B3BYVAFv>M^Eoi4~o#*KnZE>ik$O5{O)ht zDm=~2@7pxxYI$<-3F1WQR#iKmtE;P-AxD>jm{pUNTwPte_#>{+OTOE$vnsQ%h$SO0 zHsskC;X#v4va$(mx@B!&yb0?rs2A{4Y8PMiCndZ}t)PIfEFqB^Ak3S^mL=3M7m_LD zeW}cLrpG^%pnt`%Y;pFZXD3 ^Zaek!;P ?!^tA>-RTG<#Q}2TDh7-niibIx9+m_Q_Cnb!4V_PQnDB)wx`EZGk@jy;f3|YU%cq z_y|sKe5y+xO>mv~Y@$f{yfTJ2Y?MPIuV*)*+j(N9=(P!U!#iEPSSU$@apUMvHAi$~ z7OCHk$GMc$e=ZQ*%!*zZP?=?YxU$2+2gr6NsVwbsdsfh8tf5q0I-EvVAZlPhODo?9 z50C1ehE6 edL4zKV$!@@oL4IJl~zh2cd6yrIwTAzX4xpueQ@T*zYSXE?z? z+;^9LT6ox)?XaHtS#(&0*?*=1O5e5j&-=Gl#@P3CkxTqS3$?Hv{XlANn=f5f2KX4S z10i|iR4C-utuz~C%i|_n(Yl4v>NwCSgpmqJQ8HA=)E1m0GmUKLv&3t?GR!@IvDED* zgQs^crakh+!91@D7zKD Q{qn#tDiLG}W?_``54zFQ-8@sun+ANt_y{ZUlegZ(>008!My#s+T}tm`gz z*u~4~KR%C=)}5{a>MGC$mL*&wLpA8egI-H;lW bKhgInuqU zRxGf@_b;5BQF`i*=#W^F+bA?KHJd)JcF+)84VM;;Mx0D-xTI3InPIi;d%A=#e6Ic0 zP|;#yKXmH&Gtr5j#_q1Dlb!V;w<5_))EiGZFM19P!Q{`zj--e7j@lD^uR2mjFCsWK z@sCeUbb^?nRC& }HFS%JIei{2ej*j^76sHQNNPq2fbTSx7W4cT%B-4NRV8E=)BN@deIy9L67A=< z )7D9kjyBz4m^lWW^xHaH;j+q(q8xKd2oNP=*B zT*uFkjMrC2<*CscN4z3UPX$ITbu2q+ n6&@)>ASlkE+&tYnK3 BrCN$^GI$%&4p#n~@IzZB%r`@9X3gz9)IPeSjm%2+USm|wD2Q;eB&u_KuTbw=j z=Pih*K6I@J)YC2wW83ZC;4)vL_iuU95c~&8KQ=GmPJDfQePep}PX&E9UQwQV9~ntD zH&A#hEHu>p=g{A0)(%<@7G>QGB<1u3wYs@0M3+9=ha?U&2 y4cl^uWsuaUtE)OWId$ UK<|7T;!O!x4!8zAG%ilj&d#o- zY?GfKpW^QQ&J@Lz$F-i`y )Zy;S z&KSuTGV|lJQpvN$fWP+gM#?ru8l0A&Ryxp4WtGRzhvd59b*-4MR8)(c`8|<{t(y5O z9%k(V)T)OSb+)t1$(;qlByHv9ydDBgmvmN1i2j@-SNZ>Ojs*Vu9H}~Sj(l6${2EBD zDB!SkZLfAqUDs(gX$(*IN7K$i>%A(ccTJ6!PQ;;<0&mM4tfITeIoLyTe-2r^QQJYH zH)X^8 =>FDy)MaE<kR`jb6T{S#R|VhbXk$E09AH!1xv>iw>m2WSw4`2 zSBVj@YKZpA$H|f$?w%)uO FnAD&@LfK@Z^i(}S^7*SeF zEVBw>R*a0ATG)GwU|?m wwXlMy$6HGM*B4~2yYNwuc0R40 z@*IBldZVXqL4^w_FAhtS3ejQqF&Gs+G@&zRzqw=E;sIA`G3@PR wgQlY8o>5g}_V&cQmd^R(AO>7B3#K8yOKbTXmR&g@H z5uR!tkVl0I;|rq{U7gv=<308!NEu?K$4QfBJH^JoYFG_pEH-b%c?N|%UUZ+{13a?d z{;Q=+ctn9fX!Wk(QO7Ol{(v<^6U7!*l^-yoy+)hm3L|uHWdC^>TL0I>upDz34*%mY z%%c{jJ2*ZIn|t+P^1MUO&tRlah-=l`b?kmrGM~$zE+&^W2O2CUYcNizDQSdmUll9| zO}aV0I?eYu6MSdWL{C5*&q~)fTahSdkDTlGVMOsay)QVcWT1%CG!On{9>*fFGYEiR zU~&EVb(OnW9iQaM%mI@u{z-cP-%KuxG_`34YS{-m_P%~vB&LGHWe~GU_{Kj^L<*p~ z82TdN)w^Nfe+-uX!Ttai`4&x;xMiYs%ovFES5ouO @YDuXBNM{K4Zs^rYA5z zvabC0GrwWy%aF@7!NJ>Sg`iY|{7_)`dMRQ6ugCo8CHwC&54LF7%NZkwpWpmnzCM5t zv5Lm71G&-o?p1=SBa?>Uuf21X(m`{!Xh r9{(9=pSV#!bJ?q{tHlMbq6m${mYx`T4r8eTW<>E)ycLzlmB5I zsD2I-p#J}5Gyuc+n_2#!lJ#R1P^5uEY6S)q_!CV1kH*&RW8)Y9x2XWo|BoGmnev3U zbp9*W1AGvMCOBT||3|a90rlSQvqfv@4m2=e*vU8*L*M@QF!nd2GI9Je|F(SS`U+r+ zC&J@@zrlY_`&eXw{?wV@LG}OcQ}xkGj%ZzfJsDc7a+0V3jNq03GCiQ07)MiK)aL(k zGyn8;{~%U=Q^z{T{^B&v;U9;GDIGX*Mgjui*MA4~&_Ro<9R&_t4qLnHUh}Zf;}{?V zlSrEamQY>CG!c43;ed3(z>CKs9)@LXEG&2Cg3#3>zrlXfQ8#>lN`W{CWYd@bpU_`* z#TLBFQbj XJN#M VC1-BI*Mph*V+P9l5`h#t=` z>{t`T+(SMc(90KmRvKV&q1c {;33_raO_i$DfW;PUiQAOB9$j_nk#x+g2=tHB|4r?|3`{$Iuh zdENKr>i ;54GOR?AN!ZNN5v#uo~EM>NnSX$DMuc zNRsLsh0&t_ijV;c{;Qe=YecE;!42LmwMfBoccbqRL`8*q%#?Mx>mI)Lg=E9=j{A~K z(6lrJ% iB7CcY`WAW`BX-G1Zoe6&+ Kr145a)kr26aQ55 ofNwzHFDyV+0hwinPLs)r!E|AGsi$_x{(nyMdXhFN91g|w8- zvmlva^hp224vVDqI(2=e{t*t;+coJNIh=WR%)HM~k y|ni+PD`%76O%{Ph@ e-HII^zs_^?W~U4J3e=r3+gLKnYxDc# z!(25AikDvn8ziv7=QWzQ^QzaY6MX?u->~8!jdGAdImiM=0qVjxF6|J@P*po;GNyhU zr>Fn*6BPlEK78l|4!dJ+(g!Wt%VXb}K zz!&*vmQ$c7VHV}z{62;=kRbO>b$D!L_d;&vr(##_(>qLL=yLIYOAefNhkQQ%%>L&S zsQ)Xa8`u8>pZ!bQXUQ$<;iZCw6~OpA& f~{r={Ni-Ti-E5zi) z(cvx= rhE&Iqak zA?7JDDm1bWIs(o0=1{9ap-RV9Ja8Ob+=QO~YeYoKt+9f&3=eu+ 45_a53Q%o^MtE z6E*=Zev9F;9J*c=f8nJKMTV@|j7r5w5i4{$E+u9<)6#vKwZxLZ{X|rX9X5JDb^Nb; zlHL$#SwDlW?$O~vt ~u_3F~id<-S(o2)GwdIdsR8)MTw)-d` z-n%@-%GG~zfx-D>#|Zfsx3KJ>1&SZmv?{$IDlvkpiHuqTVd?3RJA({_@~Q8^-N7nm zX6ZNAE_DM8J(Rn`z)l)Z7l$@ai2U3=vF<|i2`9$u6&@e|v63pw5h`a8IA9;5F)G5H z^OvsEu*FTRbnZ;1?1Ksr40;So{GeJ|5TWOdjg2<}hcM)OV}cP{>qS69P<_{S=JH}+ z?i*_x8`E#^Xycax1eQMFvRAwl+L vwYM~Yn&PozB-4<)%-{AgdK6$&-;MmU%l;4XD4H ?+RRN}qj;6ui{V@51(A-bG`ma9&x#u5k5}H1tfqqE(;XUkkX-g`DiT~t= zIF>J;_Qcrb{sHhdjy)IM{;yGHw;$hAO?%m_V=nI7Y4>Q8)O^Vu;ZGCm$s*UJ{xsHf zAN%C&{ysK9?fhg2p~}i4pboUF*h(M5!s4f8tO|vSgU)f6LIB;wtEuur8(Fc|l2GSM z;!BVLe*czzl@jCZ*sX26Ez6jp_WkGRGm9-N9r8v5G?!yCw-gdDk)i?P^ZqB_2fCOJ zz#T+XGVQw!C&)izW2r0yGc&VP^WJQzipo_+z`R-JB|gc+w<-r$RmSh{Amcg>;kt}Q zwQjqeaex#G%d@xLT%_mUc^YpqD4K(3|Cwk$D`dULoAMJC$C4@@_J7Z3ftQC=xm#{6 z4Y$nC&6&w4Dh6uR%SCc|Gs?ZEX+#?>%88QS76?PH&2?vxOd*k~y1Fs>*_8nSpmS9l z=*ndZ8q|(+gX+m{HT8CY^Ub0+(2I$$%&hU8&OGfz>ReURx*zR32Nd%*Loxw)Zr^!4 zx~we)2D}KG#z9$=Kk$;iXyG_T!f)2(%uqEMQQ=6F6J~z{CX^4h?Q)S49ug9g(37QG z9u8VIP7c*G0AMdh-ok=4OEcf|JOLF8+h|Dp#W2@EBC9BN=BHI#mCNnMajuMwEZQ*w z4&hqj^#erXjO0A2+z5U&qF*3HQ{&J{R2AKNNHKNmYH4PL9d_7H<-xJY&VnT-1*it; zbC>kdCnIF|S@3bCRyB1eDI^Ry7RJ+wgb*X(PPr@wxKQtKrne^oNou~*fkM1`?>N1e zE1%!(&wR93eW1>DTWpHpw 33hiyHU5y2x)eS%P)^H%JS{{TAxIPfl9`BDbM z(3soaF5m*j%kb70+p{jKs)uylY2N_J%xl(l6T-?$M12<&hlYlPfJ(677li3!wO+nn z`XBH9%~67QBzZokIu_j3CIzZ~lV#Z}p{A4($T$M&cRqztJ#N8;aZeYSH1`^|{L;+1 zJ>pi4EA4)wrj#7;;tOOa&ZXZ9DC>+X=^AGcK7#u($}CKv=>b4>8lGqt@ME}1Vit}2 z;Of;Y`LYoa5#t?|z=sRCrsj?jWP?iuyqWgw7W#tNs`sstrf&OVb)&L&jm#-Zz_@4A zQev$KBn*Dsk2j7}gRi2;CVuat(PA?A7q2|cW0X azCFGTo1SS-vLF+M& zAs%$07qC(W;@@5i=tO@7g(nyJBJg40Z~l(t$o&L*wEdOpc7rSa1IBVSoz&ugf`h7b zQh%A?zroW#DAoBV!_^pI%;Si+>DzNybZK^r`*e{k^v^E)ja)GF95nr}iM`S>LuW?Y zdC8s&@nu}@*)3;xvYu _oN~`?7vmeQCTQ2sZ_1$~L$3G?PLZ{TUr4Y ENyUU QXyziRrEA%z#yB%L-kwp-i z7BmP<)poT(e6T2u+Z*pcqf2-|a;m7MMYi~}?pJI6TR1WWxSD^v!QA#_2SciY-o0%KB zyIAm5Go?{xYqLi?r6tCj=b4f@*6+!kLCD<3!1Nv8mu4^|63?5yA<_hyCVu{W-3KKX zyW0n1$=RZ8+PX_oG0PvXxi?A$loZ2OM2Lm$m>>Ny8n6SNxJv5*Tpg_xSr+~i%~9g| zYsVL=rlqG} FF3E$XjR>F;X4tH|H zGHl)~BO>ob%zQc(Pj2;W090{mV%5T5osgIO2eTgwjf%R(7BnGO^z1J bKfJ zMqWM%w2(mGa7QWR(l;w6&mdQ9{Mv|ffS=cXiGhrtYdy4DV98{_4dYhu^w0k{9Q~EX z7JDFiW>_MBlC2Y4<=?;}hUNzc1NhuOWCQn8PfKQcq^}Qe{D0iNbySsG*FKDalu8LG zNSC01v=SRZLXc+D0tzb9qI4?K2uMkHZ9)*~7AXM%X(Xk)bCbVyZw&OD=Y5}djPI}S zjB(C5WADv `nro4P1BHF&m}fsO;AbzjP(zgENP>Jamp?&=vLu+=^A zX|aL$>bSqO7vNq03_{%H^YL(DJh3WS8jP#o^;&O?0eS%y?6;`mrJo*)^@qvKbswsZ z$NINe*Wrku9|f zqJa73TJM%=jwKn%eXY9)kEuF*`Pc$7``2h7bO#Ts{Ylz94)@hun>KCe1Lc8@RWLWt zS&I;&`tXe_p_84Po4fNz(*`gK{^)DpL^T-OH{s{itSmlZF#_Q6O@x%iwEUP+hP`1w z4}5ZQsfc#nZdyJ;tCX~-1H`($YSkj`@9}nDaz(v3I=Z0T 3hh14tH7kh(hR!{)7?`Q)Ahd)t?AQ4C!7PZM`p zvAWE+ii<^ew>+G9jJq!u4(7VMB|XTgbGt(-dkZCkRS@+b1%`y+ ;HGhS s-N<1!C#{RGqUkSE*A^5oWLzk=lj>8IZWzsO(u&0GZPZzG0@8)PnOBfycZ zj4{5D?ktFm;?(w{gF93b3emTULjm(K6-z)j#&CDmYJ7oxPu^QePB4U+MT0KCJt&Z% z#H`W1$w7yxT1zw5_hd{wAdZ*|65bnfDe{maB_6mvaq^f|z`mG6oL qU>IIf%r30JDJyh15?bB0+Yrk|6 ZYl=+@Mu!2K z(WMYbEjNrU)7IOfd_UkQ{P6waJ3HZxU%n)P`+wVjUm6Vq_)eBmfA6=}l%%TFo95pr zb*$<~IN0=x>|r`nse9+hh)V=oaZF2FZhyordS6(dK>XkaA@MK&`_CxV(^+WWg OoZX?a`;tXd*ELq?9o*k?;U?-ZIobo}hj)?soSkOEL6 z gmR?*Sq`F?32BLgmmRg{#J46B*$3;!&eWJzPfrV-7gLeg1ag7~5}U@kGe z@iktw)XFWJ49hf?fnas>Pc*^Ap;#V3y8v5;&^*9>vsxNjD9g&qN?BiDM_7JIk_>tR z`YC~KM6W?NqMrEM7*djw@t_$vz%F5+U;=^{i|`HX+h(P2Jbm$G$0FfDwMcfc&rcw+ zgomMz714i+`uCRpPR$J%x-xf%j@N>`C%`cR0|TRk_Ml!XfW7&wvjp5GqX (ZU{eR8$s8s(5AwCud zJ0HctQnLfa&wDw3JQKTBR3?(x4nT%ly|Eq=et6{04r3(@qW$QW_Ee{jX`|IUnQqKK zgOTH0BERHXmbSh$xU#a>H~LGw)QW|)W^!5#J+>p?g%dhE<-;S7>pE#3HnTs)>tBLi zx$$H8Ai8*u=|AwnLpnX0+a;EORbA~t7!r&}&L^6uCo!#^MtxhvasXVg`3wIuEsg8{ z1N($(oqs0FPyIv-K$+sbxi2wn4ZzQwe~I!l>A`z{uv-7c&y3Jyte%>Bb;d0wuP2AL zZ6b8-wK~GD^!u7+)) XkHU$+99AKb $bO7fiU9w=zCG6F>@naLVYNWh6aG=B z@KL$toTG @sJ(*Q>*76mO4UAQ1$>9mgk9ReGhn$paME8uEs7xP rL#hs%9lYP%USx!0p}51wu;0u{z%%jqrfTyA~ZX@gE+O Wi2n9P3_+Y%bs>(#xEucxrjG_QSp-}Yj(14mndNqi5!6*Y6W zCgaRILjD(A56{p3>#3yxCIvNLK=5u`94w9Q0jeiBCWa#4FPzJOKql fBN?msN@YtoKoZ>btDPqQ)IKsQ6ZF%xH0_PsT{70fqJ5`6i %PK40!Uu9<1J^u+AO Jbl~#`mZl;^CiY|X{;2@a^WO0yWNc3k)t>E?sO}@WTjvRd zz#^6qXV<{-mg`c=)$Xh}`!@~CEfrLTO04X?j))0Ri7FI eoky zu0U@K=mEF0pVzYb_9)M&hjl8jQU{P4+xr4+50Gz8r>T`1K!BYj3cGW_4J}bo0{LkG zq{|`4mI)8XseST}Cp(Uj(%y+9bRqZR2pt9bZeZY^`El^>e{tY;K|`GxcQVtsAXz?1 zf#6Y+%5Arm+e~N9)7fpRTQV*E8Wlhk6{<}QM+zJKZ%;Mt-2j7YGN$>%rvTI|KHB6n z5U%=v3cFD{2sMZQ0$%$Y;``AW26dK!i9S}M4T`L QP$0!$V8f5_1Z0Q)bz;Ae z>%XX!e~{n)!*hWMqfmmsED?Y=&H!Jy<~L4qOv*qfqCZ#iclkItf5%PN?-8H? Y zK3EoyM(C%GB z-Zb*$!C>(o0o!v6-%2GeSNBPq(T %xMHe0#E^0T4Y&-s+$%ODI5{l0oJ9;mxE@jNR%g<&|eSgP6{C+zPHNGv6bCB?er zC~ x_&wTX{cz`V$+X^pKFNX=8)rGvVi2zgAT5 zx^ns2o8J33j+gp{G9|QlY=|rEa+fP!qv$DTwDZ9jm&J4?=!D7A@+^Na{ 4YBk%}Y9MF*uFQvTxFein@k`uY zZ`Sx(w)Es~(bOT!^d}@(g(e&W?)?}b2(Kq6Dak`Yg{UR~MdtNwkxj!F>Jiji=i}v=h2qDB z=sX026AH54cEjJrSNWeyNz0ZCDSaLixrjb!ptm7znL`C?$GHyNRz#e(ol?DUfayIf z<}!{pYu+Pv+>jZ^&@D0vx~XXGS|PaBKRf!kYIo)b-v?rPfI Q* zQ*twAqxJGzR)jPye23LJJe8yNbD(!*QSr0A5V%Fw9XaAo=Xj@&o)^q+RVAu0hmgnf zDL$pM6G!k2k_OIbNI1HO)^m%?i)k#2mN?}5QX$aZSJNSgSqIb~&>6NRXnjhZswRb~ zRc(H(2%B@tpGHsjaKlUD8ks*67$v|5YR>t~FSLAn$B1L 5oy8UycyW*6X}CPK5C{&eTj^7jc)c&UG|X3$aaRnMP=q}~uVw9iIO z9pZ#+;;ku`lz$Kkm8*BTftQ9>9v ;;oAI5m(%@=}cV_B4 z(hgk?xGXllzE~ZoX)cnhQ)n#~oVhi0f;y%ylX7fJrjN^u!sZZM0KXIF+&H{{SfSG( zqnirrV0AX_c}StX`t;+Oi_D?-Mq?N+K3H1C5LVuRiy>1uI(b~;PJTS^cv_0I 5@*z(z}mGdv; z9JeoUNA%t?mSVqde&0=oN$trBfAaRAqG=HpbBy2TN2{KpEr4t?z1eTp6Xff<52_{8 z(^Hunr#M_f5>boX #xr2|$vJzl@$6Fz6A z8$>dTO$5xhK9!15@RnFF$&&FHe+?4EQk8epE$LQ>9hqQ1-GvL5Ls7mM>nch>5Kcf! z(9lF_xy9tsY1vr P*V=m)=B7*OD2Akr+--4f)#3{Ok^ofIofwNT@ylCayJiNJS zT`zuP(g9z4l>{}gE-4vexIov^PFhb#iQ}Awswn2~*P8p{!vpG6 `Zut5(Ou9Lz P44X4CAIkU)4WWF##t%_Hbc}%d!oA7+h%^IjP{G%I8XtSXX#= zpH{O(u3b+SSEJZEImY-)b!Km_i<971kKMCmAUiX(iY3DG>bja0CS^xLAcQ(13HVy_ zU5 y${9qE{>t%|<3QpA`($4Q|<1)tpmOAGQq2PE1Vo zpKWk*nV1lWDolS7_n}7RWADE{S!?HO^7;xRr4KB E-ef5sDw<*{UrV)M4CB$N4do{5&q%Z$-jU1V0s`ENeNpq@)`PhN zGo+$PXEIINa8oh&Mc(~U_q5FH543OzY(G(eA6!W>BHy^AP0@2vn8?5wJ@B8iUm;C* zt;NbRLRbigD8CVt(J>@_Lo7XTJ!Au2^EN%!TWe&@gxYN)?=JYi|2eBOz^)I8OZObh zHuOp!t+E_w9qfErxSfWfl=eR9O}l@p(jof3!SrnWi3xN YdXmV{aMQk=t5|d$LSUP{$2hTRz=HFW(ye%yewb^efdWRNv|{Oil}<-`Y4O z3>B)AwxJVkNe=KfFgXwCn-5R$Oe~3TSdFQXzJKx}<{D4N(|()LMK^070cFV|7v>8c z`F=ZR+5C-O$9*8WUeNp2jO@sUbm0O+g7)G`QVM4JeYzC-_GV7g?jTx`8!pWEUd27D zDsbqx`Ab!)%dfyI=Tf!h<~HATXyKm#hh6i8o{tH#VCB!VZulXt I-F!wD5)xv& z0|$50$^d(G_?&xk?8YFSse$Qq4`@3^2|ClaI+ueoevqNxZQ?xrvXX3fo!Z-n)^I55 z$!EN06=%yGLuw6(Q?)*)CALOArVgEaZD0&77TVMJmvO6ST$mf*6WxL4T$>&j0dwR7 z*PLr(zIpxntYJ?Ud2<+hbqAxQv~*JUJ53DC%Ste|oSHD*fvle5=lVPKLI=Wt;Pz>I zyP)4x=~?mfdUDYW6{M@8Y1SJ0^@uC5p?+2MsK@4gZl3uu9oJ+_@eGB~0|F7n=^+AYEm7&=J8aFeqq$Y7f2YWNlOZI3Q~I5VL@04fMCZhpmR! z1k$NVzn|-Rrx^;c_LHMoC9}+jwul?wuBh<@$xRI0Owf;^E?E&zNRja(AZT=y&3)5; zt!C$z0Z7=vp+)yGef9UWL7{RYAgdnQT3PV`2II$$`m^MG!Dr5q()lUB)N8Ca2c^>~ zfS@HG$zyW4D&Q8toDS43jfuaXgRUD`-�A0UbS60fmhUT_BM6@Z|a$5-oZBrN7 zcP;Atw`x}~JKGXP6U9SzZFb_?p@m>-#scOEEW!OY6Fm6P9}<+PMg-3{>{@kR9vd60 zH3xu=pd-{`4p?|^He7L{8z~Nfput98fe9JJD;8gK;6vvXepE6PKr4X&?fGeZef@8; zz>BW%P$;yAYKJ?R-Uv;};}Y!h=(t8#sb{-GMQPMbum%^GmywMTkJhgA&5G;|%erWd zuEn{cQL>SLKKT8j4p9Y8^8Q9zW!v}q14U|bXsFkNP}}v$>)nf-+M^={b}U>xNV)>F z<3F8eji80|0X|b_rh4uRE@(*Fu`tIyBZO>>fFx9i4!W*4E#aawlKEa5>-Q9?AMYq$ zl>$vm1iLWA5oKww<8~GX>}O_4vQsF`hQ; W&P@VgwbZTTxJ=5Ntp47;(XA0PU0JiI!_TZ^e~M5=j@ZT9q!;6m z5HG` r&A-?A%gesERzAOVwMITqXHGf)Va3l`ID+#rSUAOneU__fGvkj%q_qTBNHucv z1&DP~@-;$wI)wKR3wA{Xov4!2Ff5VSMv9^zbUhG_2$hq7#0un%K$=LC-KF!xqq`DM zU&kj vd9gIxN^X z)^$AE50aAC2O~C!R;!^un|y>iUw@dm*r%sM20TZnI-ICmEZMndb1DHA;XE>oBeYal znK-DtCw3m}?|YyAKeaRDy9z1OBP`f!JNBN%IA~y|MOE&FtlF<%sK=OOMaZ9r=5)X6 ztV<)=U)GM$FRt&y+|>vEf-9ov?6n8EyhEbN=g7Pi(q1QLxW@6BAD$v=d mB7@N{6eVTH35US;LlW5=C$h< KVJ z!P~K!Q!ej5o}!?RYZ+KQ^jtHmlwONIT Fuc6!+;<9A-~t zb9re-knL>HRORT2R_>DD++Zx(F{E+YdTNkH@kruP)3~+r&1R<6oSV&(t3CHuyF{6< zBBXVt`jB=Ti0w)z2EQ%SgL|0idpg6))aRkKdw(Cb$;X{rZ)IU_(38h-xI%CNG^XL; z-~gA(T5;*sot2BFV`mT0C^RLfdMb?+!52xnSU4x