From 04797f28f7ff3cebab6ef90de9c45e2058ab7632 Mon Sep 17 00:00:00 2001 From: Kristian Rother Date: Wed, 3 Jan 2024 11:00:34 +0100 Subject: [PATCH] all challenges converted to rst --- challenges/{count_words => }/count_words.py | 0 challenges/count_words.rst | 178 ++++++++++ challenges/count_words/HintCards.odt | Bin 32941 -> 0 bytes challenges/count_words/HintCards.pdf | Bin 101890 -> 0 bytes challenges/count_words/README.md | 32 -- challenges/count_words/count_words_short.py | 15 - .../count_words/trainer_instructions.md | 29 -- .../{text_adventure => }/dragon_egg.png | Bin challenges/fibonacci.md | 19 - challenges/fibonacci.rst | 22 ++ challenges/minesweeper.md | 30 -- challenges/minesweeper.rst | 36 ++ challenges/{count_words => }/moby_dick.txt | 0 challenges/postcard.md | 69 ---- challenges/postcard.rst | 90 +++++ challenges/text_adventure.rst | 325 ++++++++++++++++++ challenges/text_adventure/README.md | 270 --------------- index.rst | 9 +- 18 files changed, 656 insertions(+), 468 deletions(-) rename challenges/{count_words => }/count_words.py (100%) create mode 100644 challenges/count_words.rst delete mode 100644 challenges/count_words/HintCards.odt delete mode 100644 challenges/count_words/HintCards.pdf delete mode 100644 challenges/count_words/README.md delete mode 100644 challenges/count_words/count_words_short.py delete mode 100644 challenges/count_words/trainer_instructions.md rename challenges/{text_adventure => }/dragon_egg.png (100%) delete mode 100644 challenges/fibonacci.md create mode 100644 challenges/fibonacci.rst delete mode 100644 challenges/minesweeper.md create mode 100644 challenges/minesweeper.rst rename challenges/{count_words => }/moby_dick.txt (100%) delete mode 100644 challenges/postcard.md create mode 100644 challenges/postcard.rst create mode 100644 challenges/text_adventure.rst delete mode 100644 challenges/text_adventure/README.md diff --git a/challenges/count_words/count_words.py b/challenges/count_words.py similarity index 100% rename from challenges/count_words/count_words.py rename to challenges/count_words.py diff --git a/challenges/count_words.rst b/challenges/count_words.rst new file mode 100644 index 0000000..01a1de4 --- /dev/null +++ b/challenges/count_words.rst @@ -0,0 +1,178 @@ +Count Words +=========== + +In this challenge you can learn: +-------------------------------- + +==== ================================== +area topic +==== ================================== +🔀 use a counter variable +💡 read a text file +💡 split strings +⚙ use comparison operators +🔧 define absolute and relative paths +🐞 check file names +==== ================================== + +The Challenge +------------- + +The book *“Moby Dick”* by Herman Melville describes an epic battle of a +gloomy captain against his personal nemesis, the white whale. Who of +them is mentioned in the book more often? + +.. figure:: ../images/mobydick_count.png + :alt: Moby Dick word count + +Write a program that counts how often each word occurs in the book. +Determine how often the words ``captain`` and ``whale`` occur. You will +need different data structures for counting words and for sorting them. + +When you know whether ``whale`` or ``captain`` occurs more often, you +have mastered this challenge. + +The Data +-------- + +You can find the full text for Herman Melville’s “Moby Dick” in the text +file :download:`mobydick.txt` and on +`www.gutenberg.org `__. + +Hints +----- + +Hint 1: What output do you expect? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +How should the output of the program look like? Write down a few sample lines of output . + + +.. hint:: + + Output example + + :: + + 2307 is + 228 through + 5 tobacco + + +Hint 2: Find a program structure +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Which steps should the program execute, and in which order? Draw a small flowchart. + +.. hint:: + + Program structure + + * Read the file. + * Split it into words. + * Count each word. + * Sort the words by counts. + * Output the words and counts + + +Hint 3: Finding the right data type +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Which data type in Python is suited well to count things? +Which operations on this data type will be necessary to + +* initialize the data type? +* count a word? +* Processing text data + +.. hint:: + + Dictionaries can be used to count things. + + .. code:: python3 + + counter = {} + counter.setdefault(‘fish’, 0) + counter[‘fish’] += 1 + + +Hint 4: Functions +~~~~~~~~~~~~~~~~~ +Which Python functions can be used to + +* Read a text file? +* Separate a string into words? + +.. hint:: + + Reading a text file: + + .. code:: python3 + + text = open(filename).read() + + chopping up a string: + + .. code:: python3 + + list = string.split() + + +Hint 5: Sorting +~~~~~~~~~~~~~~~ + +Which data type in Python can be used to sort things? +How would you want to represent words and counts in this data structure? + +.. hint:: + + In Python, lists can be sorted. + Lists can contain tuples, e.g. + + .. code:: python3 + + my_list = [ (12, 34), (56, 78) ] + my_list.sort() + + +Hint 6: Sorting by word counts +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +How does Python sort integers, strings, tuples, and other lists? + + +.. hint:: + + Sorting by word count, not words: + Try to sort on the command line these lists: + + :: + + [ ( "aaa", 100), ( "bbb", 20) ] + + and + + :: + + [ ( 100, "aaa"), ( 20, "bbb") ] + +Hint 7: Did it work? +~~~~~~~~~~~~~~~~~~~~ +Where would you expect words like ‘is’, ‘the’, ‘sea’, and ‘cerebellum’ to occur? +Check whether the output of the program corresponds to your expectations. +Does ‘captain’ or ‘whale’ occur more often in the text? + +.. hint:: + + The first five places should be taken by of (6614), and (6433), a (4726), to (4625), and in (4173). + You have to check yourself whether ‘whale’ or ‘captain’ is first. + + +Hint 8: Special characters +~~~~~~~~~~~~~~~~~~~~~~~~~~ +Special and uppercase characters may be a problem when separating words. +How can you remove all special characters before starting counting? + +.. hint:: + + Special characters can be removed by the str.replace() function – or more comfortably using the re module. + diff --git a/challenges/count_words/HintCards.odt b/challenges/count_words/HintCards.odt deleted file mode 100644 index 0f9a8348e298f3b566302007fa58988fdebab28a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32941 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 ah5aSU%SwQP{XPuo^H=(bTxTA?_x>NlUxOV0 diff --git a/challenges/count_words/HintCards.pdf b/challenges/count_words/HintCards.pdf deleted file mode 100644 index b67934ad145ac98d93e16c38ac92269926a0849b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101890 zcma&MQ>-vd&~CYH+qP}nwr$(iyKURHZQHhOW4{07WHQN_N#?Fn-Ra9`WmPq)f`}L` zBOMDA=}_@d_fYFl9uyM+1A)Df6%-E-y^N`yxr+q>^M4&BdNE5I7gHyCF&je{QxQ{R zdlOSWJ}74wCsRXPD39zDjfqGSc7&ca^<&Tct<4ljQ9)DJ*MYV`Fnq8*9%ExKnA|A; zJ$fM}s$w0iJlUm`64F<6=~S=PA^x;Ja8?SRrzC&2q4Vb_j_-G`kCUbQHBtEIx1%>{ zl{rHQvcs?kw7kuYGsw3v`#ic;jrnEeoouEG?3*TDlA1E^;#Ilz^5R;;nzBw#Qzc$Z zLRKU3#MS?<{N~xH&K0RIaXib1@F0pY;D_IJLv=q6eFcn>pcC#Lg$@Y`&vHlL|Xb~r<2b-*8D4LLjLTwe>=t>@X zvDG9{7?I44qL83r3l)1Uj(o_`ad1XqQX)%}{O@;>d!dJf%0)?#3>O9?Bv1fT^w9_! zU%yJ`&QRa7q8*sjtxDNh^B?Ii=E*fdO`uiC0k2o9Et1Q(k>$L%>m)V|#wA@kP>Y2^ zC%gK~z)fKdur=1i`tr*a1^Y`=S6avaY1LOC7XrARc$781lGf1*Fd1*@+)fE|P-t_H zl+z**rLlREA+=K*WkoKdN3;2o?rzDPCsE^&{McbzZ9&#VB5y`+t6bIk-ZU5Vijs_$ zEH5>+3$D)CipGFnUMJrVHz%8Ep|Url)>OFZUhJVf^!B5*E>RU92UT-zd7;238xr!Q z9>OP$f4gDgaw=CH+_W8(sq@MVZMD&>m!v4Fah|9uD8{fC)me2~I*-^5-{Q_`^4|Z1 z^4DlBSE*grzTB*}<fqpraJDd{Fbh$(z4goZ3>P0*nO2F zCau2yvsn}5e4iaibAIHy0D%>+#+?d#o!rZn$R<8|cV@*sevoKxAx0f!8&t;-4x$Y@ zZ4RFg_(Ml3BIXOmYsf|M^|#=8z}!D<IU$P$X#?HOEJzThIj^9I$5E+6 zl-6K%3J`zgHZial>>LKpV>04_inc#;vp*EeYbYh5@mYDs_2w#}8(|eHN*g*Sl_czM z4Bi)f_~)#R3bOkGte8IG80{-|56woY5w<<~mR~mKE>V$8?2vqPIY1{FZlZcB3P-fQ zBMD;-P_!@No~gad-5hNE16$QqkDAItG7?fMiDGZ2T#|C_sHRTee9BXB{G42A@KtUz z9QoOlPnMdjL%teMc1FbzFT~jxvVujXWx6oM6he^$~95 zSX>IHP}AVzxYu&xtyuwmp2V6P|lKwZcJF0V6h|nHmM(OV1gOVR)Q! zSc&rtpERYZD??}KUs4Y&*;Lx^)IT=~Es|GyCO3VdtEB zbpxw) zc9YEW(oPc3G0y5NxXU_c7s^)-(vdsv#A(jMDG2gd&-%*FX=#>^H2?B#E;xY(9*kbq z7V(t_RiTu|v;Ut~mV*Wq1QHl%4B6_5*)*zYvj(gMM&{l=v=`aY zzH|E526UnZ`J}S<&+AJ`#_*Fy!*S#5J{|AM8d~if<#Dtcq7`QvZr>ycE6q>yo{*hf zMhy-qKsVlSf)he**~8+)7j;D#HqYsj0AE`fDa^d$(++2!m7;JRGHpw)E5%gLZ+p*i zvudezegq9EPG??5`j+CC49s-<+Wm&7rB3mNW{HxJu!|k4QyjEBR?viKE;(5dwX7dG z;LSLw-NCqIt;T&Z_1og{%J}UulbAysS-}uKcw@$b4Z)}Z`CpW~JH2_1ignf#*ZMH) z3q?+OAz`b7_mj4O7w?r{phdQ}=XK}BHU)o6fN2?^I;e5(Lm!Itu}kd}^$sV84m(F3 z|6a0Uh1(ksi)^-4W1c_WFQ_N~{UMa8oyq^^?0?n&pc(3ai2OeVBL@fT{~Z6XChPwJ zZnpnF;8vHd+hRlL{!%~3A)xD+f`{~AAlP^;Xaj&hCp@o_4a9?DN&Eeor4jWVN&T9Q zL6DR`rb}aPnrh+xI?Y?!i?PPpHA0_TY#zwlI{msU)8}LL&+!?$`ob@}p4CkfnQKTW zPd^jpBcHbJ_2sGnS*I`ZW40Vp9rSNA2ONfr z;AP8>$NCr1)#cJ2p8QA*?l!^EgD@z1oD$BEw!&QQ*kMCRS2 zzp@>Ca_$g~qi_ij=BGQeub=C zCFGK3UWDnso;BwqYN!z6V{HZ?5&1lNmda6xs7;{OC3AlxUcTe3Vjn^;|KS0wz zo4D9horvcZAls{&k`EB2Kd{}Hw7can;L}tzI0~KyRpqJEpt@2z@Tt6Cc0d5FQ83v% z$X43(J<|I1hSBd5E*k?C$O`0bmocH1WCUco<_#dgs=cQW^1DqOItDwk)mYtrHvgNTO)b+g0P{)O%4c%1Ai_YW&i)TC-Iq4qG!wR+SOLmyE)qL%Je0c~uw z@{3Qh=Y#>6kX`1P)7U)7PvUj*x1Vk@^vDK|?`EoQa`#0?MMj=C$$1gA%2ayceYcat z?pgF_zIIFfSTXTfSC=hyI2gQfUP`^gFwStV)~PzfvO~>k@6Ca;isfINI(bU5MwNpp zI(Ul9=nS)6l&J;2+i|e@Bj=hP-xx%|&A`&!B`3F0BS&Lp-54|}lhLoUZBwk3(w>e^UA<8MvAEM9Y*9?`FP;ugle3cAq8k0wl5CSFLtEPvI2mrK!D2 zEY{C1vg{`5=#HE;%8?h0+4HwawmwMBP4qss+VvJg0zyksV(?4Dk-B#xrqsHup^9Zp zxd-?3#UpAzMNxO4WuJx{eW2rJEC-zNN#slC-`CPmYv5Ord+=A}l`dP6y; zh<}GPNVw+IG6+yH6EmmWGbZAu~z8u!%)x)HtZszc4l-H&#djqgu7uX=gw~~@HL_rjUZg@$v%2~ z7k2mh7+KH{xe*unfh;lb9s~L6Glwx#l`B}aa&`?^GHAP1>o;)a(zcFXNJ+ndjTlhm zBxR-N#-}4q&hr28{o3dHcOrZcJ~z;g#VPz$9P!8KlAer<9yp%ZQ1q%fKAJFcwafc3 z=2C>0!(#L4T!24Gi%}2M=YJ%G&?NYSGzfl}RQ}lsVb5n-NPc5Wz!r8bs8e946uo-D zXfBYU45bxzF$QCltA_0gC^qL*m=JHH_qWkx&+$e0hdJe^jGU_-3xyYqRJY?Dc4e59 zB3aRj(Kk}JY&?9wx4k30`E-N+ps6$2JH`bJ$L=G98>tVsjk*utiI}+r$>RMecN6S_ zwxs5(THtnqFsw)W#psR3$e=ni{6hCzV(!;N^2X{7Bf>dW#Rs4XUE~#Q&GS8jyI}ML z^9^8VJAmy*@AZqTSUg{>FFj~JqE=Z(v2!Ngwzef zGhT7JJzJ)y;Wz<+nk!xI1-Jpo-igK)mMv7Bvsyf1=Tk=Uas;LAqrNNokoLmuMc<9U zABf+hM@M>wn{G^Xn0L?{*^j(Da38)2_wgl%h$KU1Qwo~{^6QJ`4ZSxyu+uo3GvO)p5$ffBtMOS9qEl6If5SrKk|?46Zzl< z{j30nV=2&Emgj6m|MUdI75|Ir4dz?s0BD~bb~fm46Z{f?kVGJ-b;f)`KsK*hzqx+O z4)3C6qhCesqHX2Y!^wkg93et|%s28V4Pv1cjG2F(3&?aY0uNyB67<>?@*lFh9{cb> z;{&H3s&e4I9q93(?ZwasQt83J8vwu8e)s)m4>Mkl20lkI)XK0 zZ#;Yk31Q@G)5n8 z9nFpGLH**ei@=Ze4_c;$+0E)YzH(0rs1zqDCi1nHxn+LXMkL#s7SXLvz40;Jqbxx_wP&?uI1N{ulf{JU* z_08Ovs5fx8V{};kux*3*5RC`-inLUsssi2Z^IQ50a9$N}Q5OrPrgBwW8B5<+w#})+ zd~u%*P-#%<_njXg^!hmhwNR&BDPSD&;siLL&Gx$pKECdiR7P=)>rBms#Q)mz|V^c?{Lbjqp*4kTP&tvB0t@(Tr~c$N~OzLA97zDaWn>o%y1EM%Vs44IB#~5-byYPT zS$=F>Ogt_|fCdpena^u8x%Q85jHA`B^U$bPjLLFnm zFl7%Zt3v``QiFA}Jjh^nmf+cjft*1`QiF|*XYqB)5OhSPC6lA06r5NoOHMvcT-1=9 zj!G$KBGLsZ0$&RHjEMIdkL zrH`{5S{Az1mfZ)XakRq}fo2B-=h?H^`_6c5i_k`+hXx0?`aT#l^CH=GZ80?%)5V*3 zo{^oD)DzV<8M0&AN)fQYf*28dq8NcjKA#eU5H9w+Y*L4B#x>Z}4FMPrPYbZg#x6Gl{0JT#GN2t!x(t*s zFk?=ibVOwJ082#!E<))oc0e^TaB_gr^!P}W|kg%N;zLpdxvRti~`}v*pd$7B(hXjN#GZO#eD| z`bb`77PlsQ%wL}~4ZlW&HKizJ81)#uM$nqd0|VwJiOBoBxLAmvAc0%NEs1?J&Iz^N ze^P8tnv(y$e&Xzf@$LNW@~_-q*k7kk%f5HgC+dUmsVS@t#wrcX`jt730Pal^j&{tl znQ(f`6^?qteNz?B_>`enyYZ7+Nr?p&gSdt9oN>JlkmoM#dSgQ?CmqcPjr2j%NXdS2 zfJAkX;c4PFyE=Ra@%O9rD8Po)|B#~+v!dcyoa$o%v1*?ReX>E7Lj2nzMIrZW^xK_0 zmu|dniz1_kuV-L?1vGxw9EJd8AYqDL+&YWl8x-0wLoqy9t*fcrLFyuz2x+Z+B} zUy8?wa%5x#_=N|*-|XGXr?KhPDxGKRvfbeh*#o|{y_X5N6v+3_fZxax;&l#APPfp;J&)TP*eCN(z`()#62mgiTtL4E* z@!5~n4YOJu1yOX(gkV}2v=;2>$Zli~#2e6G*aLYYHHq4OWRBamF~0@B4Zqddb*{mx z@U3CCFKI$lX^XSCSiqpQIEABlK)ispUoipx3?>U*CUZJaBj0gzm7&`8!v?UQ8ON_F z<_Ak*X$!`0(5y1#KdDGXMZ(46l2BnQ*#CyOS0nK@9OS<9i8Kc4O$PZS7RpeRNuxA_*XPq$6{@v8Y&T?TvZC_ zr^1GO5M&T=Xy{>{f#{9}xJQGBT!IM01`WIzG-d%BsZhN__EiW}L8wNdZTW@uL?uKz z39L1RwS~on?S(>>RaKPKRgmFJ&dy8LSgIpK9PV)%?&7fg(Q%S|(W;{c^Oh`?@yOgc z6Yp?QmEt4i-LRqYecV3codQ#!cM|r^Bxj^^@_HHDN!3!X%U3UYzNwu;KNo)0f_8%h zD!}+M>nv~WXCdChL&4xn?Gwyz?bsSCCbV-;0Zm9B;oC>Mi0uB^B#9uT&qVC}KzYhM zD=Qs{3K3uN2>ym`W%XhhvG^M|lY|GtT{oB{-+pZfWCvqiGjvG5rsL|GxCMEmRrJ1} zmpbg0f>2M&`Fwe>DV~s4k6z`YUj=Y??3~u`^BS~TGeCJkKIu^e0w{rn?_-H_49gln zUy9+W_m>>sedr-S)LA^?Dz@XES0>~l9YM*tCotBt{_z8v;iWAAB=0(G*w7sUU%U6NR3-d_)DM^79tgQ>K!VWuc*3?>YKiIfM zxjoyq6(vEwr!Fl4-38sw!1>G$!1j;5}K{=;Ax!9L-njMu+ zCsW1-%Pps8fZdO3`gDTzSHfTHtMXKT)BEfK&8y^Ju;#U4^KLlRdUbmxRJ#dz`9hr7 zpOAj_NK6!#3lAL)J(~_PU<}8p07R;TJ^2tW2;fhSl+Ex=g%Vc+m0@<)o6nzvIn3gK zg;FW5Tna*?UG<7;OwfGRMhTrD^@f`3vh%?u27_yG$UFrC7pJn0jT>(Tf=?Cl{18C~ z{IM{3EKD<;-hocY@e@@_IrI2KROoGlCyi zF_BG<{I4n>x#}ovsLrnMU}dOY%59KJ(nCFryJV4l#oj8TY(?HWqpL;ul90Abtx0pJ z*=n=dmd`ExPLI{u(SUt-s9rMg2^eM&XXw2pD9a(FjROd7lyT?Cp`DkIkU6fA)?3ui z%}vjbV#$iYk(tT($)#t*WpHKy5Z>U#wR1)9y=UdG(9_oO*X*VwxhkX7sB z{c?0Jz-n$rsO%q^n-y9M%1tjxidvDXHKuFgBz8ZatrGyUHzPF6C}(hQ2o1<}y}`F> z+MJyE=Vr@rs?OH(G70l8Xtq29Z^3g-@M0V5gY`wY(vs@(YAU16}rSl z#wbm$V#hRF&%R2PYWI|-v&xo=vn$t@oHLXVkBq1MBJ@`SR5WZHPt<8_E`c+cjo>;# z{6ArsYbOn$Oos-7XiU%OA-eYScA*PP8LTCh4}s1F8V{D8vz)b>2M9Cc%RACR+o*ga=^n|IHm-Al%h`)iEx>n(z&GoaRyb5TlFCOQRMHC@B*Zi6z%@pkgZ zvGIh6-IA8`=(z_U3H5AfsS1Pi13Y1hNWK0<`2?X8_PP-Pl zDtOoHu!xX#4u7_qn| zM`Aw^lM{&&95&Jb;*>`^V(LR+WnS(8qFxzIE4n@$2vgYHjFZRO!4sMJm~)_TrPPTb zm%}(E()&Z>VgKubD>fb7V~4GlR{d6Y`~JTCMFXrH#*CY+*}kO;SE!&US64Qh!XSWX zUnGkw6-`4z8KJD=>iDvGVox+LEneW5(-9i|j26Bja1J4X&7$!q3m zhTe|`l9q{b@pk|{$QMiowHcf;B;2PP12fXR9?QXDoRl-unK$Aj3DyK90YvfkVK*q% zAjnFFE&7cRbL08*XbH&i5hfz!pe@I!6)Y!W1keys>bbcy_(z(%2btkqf?xakU&Uzq^ys@b5dGUG z{7$5Hrxi##8*uA0ocT#i3n;sUSw8`1`Tam0HrXVs@_jHH?CvYytQ&PN`{unvUxlV6 zzqq%A?w(BY>8@+P z(o;$)b&1vvrZSL)WSMC+OxF$NalRuRA6c+PbkG3@s6rdQF7~XM*=hzX=4 z20}#`DT4~_AP#yBy;i+h863kB@w)Q;LYaBiqa?`8KuL|2uW3f>Y;@X<9r zoDA+yN=X(bR4$!T5kRZskR_A9ECn$eESco= zBPG|3WBNZQz+=0)UNhe_S=w&@xOPj}+jcwlYYX%S&&;X(_^uvUpV*#VaV>T{#%_4g zdCd;$EH!j%-G_k89?X6!U7sNgd4FqC^7I?-t6xi~|7CLt$iV~Ml`&gYEGk)1GN);m zYEjXuqD?57Th2pTj#7^D_7>RC;mQw8Cl;g0N-qYO5lFI%DyJ{!TS{mZDxO$NSDi|$_S6(Vq*hqhf0@5Ssp~gb$L*pQM2m&GdeUdyyiWBk;hm=yYttR_$Hbl@H zMV6kSqMn?Emdd0_7(H9y)@JD`tCO#UI6W@^Hg9J~ACs`InxsgfT6A(zk9!4k;Z{-R zFp;vZ6tHKArYS=uA9J&FW1dYkoAjmUiXB>J8S-*y#yk#ZS`jgoe;T|TSha342jiTK z4;Io~Buq9CG&C!F*OVsW-6CirPA>R2x8@;PYk7~3=uMBict4BDnM%wYF9K_nyq@a< zW*1CC8MG}(t8kn<^fCc?;iUeRmO`Ql)Zkql`3vK4$bRz{gM}a2Qz&(yO<`-oUW;Y# zTD{cc1WhV^RE~dC9vKpGFH*`=YqcC4sPF_-QWXPH~ll5N2jTpm+N8{C#<&H7mb)e7r09He` z5u$j*R6~9{eH)_{*&CE)kz72)ulDyC-=}xI8uoS1F8K-y`dyMVGD#~xaTOz(jIGaa-OKzyd3@cV~pesy{^ht3AohhV4rH(4rK7`cYvL5BkoGFU*87o6?W zIY6|qv11p`dmL4qi1fsKT4G{STpB_I)|9hrS;0bPBkaapCofqefY{O-25!8rcmSyYi?@sU%T*2M-6&p%t>1C_kjDlnd$xGN#3VH96xbNj z{y0rZ|Mws}dr`SoIsUGfwR4S@& zZ;fznq%J^iM|Rg>a6KajYgY<((9%V$nT1RaV0}@ssnr;MOg&M7U0#%Mbnkw+ca2w} zm%)6lGTydTjoKXIcH}+oOF{j65^o{D2XC#V_1&~%Xd7w%-ECkKx#TL%Cr;%;YGIYt zo@9Ppay}aOskhbs(DDm!SMspyZrAaW<8Ie;k`war&~?U!x8-oK5S2T0hnSh`V|NCQ zf8BjG1TR<$KNi=>s1bMhz`n@(npvzR#sSS*82cGM94_Ur{F-?4Vd>w{bK+C=`D3ZS z9*h3xx+%H!@6cZk8HTMzS+yn$t)4SG)@rZ0ra(IqUIRwj_AJ#kIY-}7al;g~kK#*o zr012e>$fwq2k_L!mV`N5jX+fu&3gx}Y1EKLd?fV4kj_1F#Kz<$qQ#443!m@m+ z{*uLa-XV8z2vWR++`%LSpO@|`Zvj!nOcL3nNUdJNMA*b8&@p9-3{sb1QmPEnNU4%` zMfC`VawF8MQayN3au|FB0aZT%DP;ixgLwOeQ0*r~V zP1q1m|wW|J*^xsq;OMDDwafecCxtf;R&SPewA&ZrI_Zoq&OI~c@Rzylatoz z2`(Z~T|PGa@s*k|N@(G$`z=9`}>reatd_@R+hcM6QIQe*8wt zQs$bLOTtCsbc^VknH}Ay>M5)!yxA?y<{dk;Rw1!g`R06uik5DK;IBlW_OWi^%4F6L zJ1U5%FG+-*)RF}?2CLdpvT~bJba($OVn0t&;4MlEj`oRj^N99@5oZ)+|++|Yv;3C zUA>v~#jx9jUbLQ_rSJ7onx*fTQJs=iE!&iOeFwm%mOue2x2kH&%a zP4x2QA{$A(qe(w2o0HWmVk5=N{^K+CksG_L?;+qk)|c{W`zp4@84InXUgm$NTG4~I zdoXj%9IA4M<_GRy^@VoV6YE`I!y#L*#p8xAR=s*H>7*%>uMTsLWzC>$ygpNry4Fl`j3bA00Hrp9t!;|m*5m=qdOX> zZBh$pNfg(_*Z08gI^H|Y)?`K;-h*#yZDJx4Td*JnS@o_GH7 zPzc=KRrJp9c4QrX{r*t7n(`mT8$U=l-Cp!e-rwUbF*EwQ?&^3mG{e^!I-_R~IxV;r zdm}9a_hF*q+>I*}rrh<4mdi2|LYh>teQu*lDYzsLc*%b9g^`q$0!)c< z*$5pNwL<6aNiD?t4_ZxaP+R#;JtK-}h>n~STiMicP2p=jn043#dKa@9OB`;FGI4L> zrpGcIA(cX}E}!h-Uk)bFW*WLpwpNPOQ8ge*`ORZbO|_WqB#S2!r+_cl5k4{DZ$l$t zaaQj$WLn#^S(^(_=K7QF%e*tXbksTH6!XoKo?pD)p`R%1anxP4c5CdzQq{IC^qjvC z*vS&OkSz-K$Xk%EQh?poSLwZ3!~)FN-(!2K9<@H9&|kWrtdzIc??ji4ttQ zN4n#kXrWsN2sT?Aibx@P3H}5t-hm1wTh>nmJ3Tuo21*mFigt?BKyL zwQW7FaN``etfZ6E&} zW#`D9p$Fnb%z$GA55U8YaX&~Q1q^?}f+PeMh=4qmeUPqxg+(ou-;UW1iDdv++I1pj z_C_5dm()blODd9=Sj3G(SOCX7gZ~um7{Cv4;SCa{b8_HfIMg9TfkSY=bXW=M${Aly zTEWd`j%X<-UYGD@y#Sb$`!upzz*5ot(E|--uAKU@L#Ox95}oeRBl;7hq^Zi$d&4Gn zB?DwYS7i^aD@JM4tSmWp2Q0Z2QVh2WsIjgh13Y=OXqxTSF25O0HU-BL;}7RrTkZ*C zu#Q>2ppO_A%oG88k+>OOo;bYQfY>m;=BQ|Ff)jng@HrGBi-_I>1)9Cy&^|Km%jP*x zESOtI;=KdpRY-SU8dHzzWc&6<(1hc<-}ch=^5)&ljJ!7-bGQrhr|0sE#aqRjbAMb^6_7NbzexsPXL#nQJn?M`j6bmJ~4E=Y6maZP2+xYQNR)% zA{t%0rRNmATDCY{w6T7I=utQIYEAjfRklZz04rYob9f0eR&5^tXWWB!$O-yM1h!Zo z&&xK_DMJ(NUYSHHHMTC$X?mD9%vG+@Ji>2RC?o?6b99&c6=SD4zMPtfb@K%X1{Z;L zqs2y$Mg~Nif%Ubm{(mM2gms4!#_QD>b|7&L@q{%SsuxM}hQDxij`4}*c+Lp-hYRxV z8bt<>bwGY^D-qXeL4GVtfUw(*=oP}S%EQO9$~TK^ohO(#%y0HrNp#nHb`b6k9nIIx z|4VB$kUP0xwt5LL3s6MO`wOq3_zOrq#g8Y=bTzHTEbM0O^SxDI;tW@j0BR=5p`2m@ zmo6-nwwgzhuajNN6gqfnkP@$3f}}!~)CL91OwX$puVngq{Ab3mHf8TH9}NEcHC)5A zQ!s@V(tW~_HgU4Fjh8ld;plOVm%=rXcK!4P#3z@No0^cCk(x4E0V~#{XugcaDwdKd z3$3Y4LbBP76kD!LnmlwO$zcO2wSERjKa);dpaaHJSzo?6862;qCBGu|0RGdIhiVlF*MJ-?jYK6gTU*m>&2V<`zay-NYUZ*HSsnAHu!&)RT)R~=W zWcoMQZx=@ACK@UP`L#Ax$X0Q09@i)v%6%;}iesL}h) z8z#ynYyZ6_=rmCEslykX6(HC`k{bzVkKpo&q62(_}xew8L}9Vi+VHAD?!gN zyv~TkS6N9~deN6n*Ku}J9$R&IS_q&;hw70E-jBDm=|4t)=2zB2vv$!eiJyO>wdPc{ z(vyAG;?W^i^h2;05re1LweO?=;mKh*9)16u!`nzM&hy`bnwO4RKYeV{$`ZHBG+`zg z#4{cHT$bHe9t<7<10EqAa#(G?*&Cwc-kuV1u82MZ;C2kr=x_1|`D4D8Q1B|aC&{Ft zGC}Pu$p<~G0dOC9~ zL8^?^3*!s$)M-B=%2RZ)h*gbRFW6(6f8x22g?BSO_Rr~Cj9FRo_ciI-|fQTdYQY{PNp-{*>G#M(&!V%E!r? zT528oX#VyMZ}}rfGPeeSj5~>U+q|JkS1g<#*uNYgVB%|fEL(h_SS+X_n3Gvhh~MD7 z>xGiog-#R40^m>g3FQed|KSWA^*=0tDCU!s6)3WlevK8}+>P$Kf8qM!HXZJ)gXfx* z>BC2aFn_xxLGxDvnCOlN_ADv&lR%p8C+m`7x3ItSaL;XB6DlVr4cq4OgpVD$gd~1r zpf=d^e; zk@pr8?fK%!cb5WT4G!VE1OMY4+Zj7K+QM%WBg4gzh?-kF@DcW#jE;6@+GM(g-^qI9 z*fsYU{L}bcszh%QZ-;LlQ_Zukk*ftjudIY|_2@NB{ln=NSt+(;YCc%0lpEqYHToI( zjS19$e*@2jxsi1}Ja}Id2IDj4`2C>U5GbIZVG9aWQi(WD)5a;=6_@d=I%#bSZ{T{3 z>%rfCo(@^l^!wS3Veb{kss6L)!T!39lOOB#d);-+Iy!cC_kBOmedIg|7FcOBT#3#1 zzX=ZgpjT?8FYzcnA$n51P&d^{@zfvn%>a+~ZtRy^<(7^%)zmTLn8I%;`(hpx>k6b{ zFP#fTJnIWlBu^`lmAQh)Q#Wh5l=Q(dnGcXP2&CC7TDpkYHT>rHzE&kfG*Ttm7g$p zmTioUdpUNi27QwbM%TEDta-!qZFKlIcWKmTVVmQ5#f$ zyl*4!r!D;ZS796-N*pSGJa^m2>+>oRCbXjiG_*jXK$aZ;qe`W13jCKVy4x+$#Py`B zo_g-oX~UMVu7-g+wAihr>@0L?NqMlK+F@KxgCb1$)q%qV6$H_c8_5O&T`0_8MB+*v zlB*bA_1)(csxGZ=o*C6EhpU9BDj#T?g!z&Fp1J4O__uCi!}$RSRg6lHw9-p;OhvzH znMz)9)elET!)+{U^)ZjF2DdAs0;gaK=X-^sOjO<4nYdEg^Rtu&#I6`OYku!|;5iq; zmW%Y)c;g?1zm;W7YTdHhBCjq2dGWEhzF5xpr#5^Az9kZv zj+Xjr_;OZ|ddkk=j*64@Mi1#*%1zUadyj?p!f)f1?^bv%z3rdV$WwLkuAVnUb3_Ub z&42K$Xu%-DRAYlL4aKe)lpH@oXI^aN9rF0FQ$%SDe`wvYR24OYc!N^CbXZ9?v`Ku9 zrDCJ3$bONV*@FKh_}B667+lsZQNrfifp3rJZJLF_=NuQD`iIgETqu}IrvO_t272-f z$OiCeSO`s^DUOm>T)cUmP1V9dW0>{dvN}1D1#*j1Q0O@zd{1t2>02Xd@9JS%$9oAkji!e& zs|~CAwgmgG{i+1*bl|Xuw(r|Ul#l-2PWtbt$GMfh(4Nai({J~6(x_{8#9W1z^ZjY0 zZLsnaZDFgvlB|fpOO}Zc?O*hNKZM{&I0LKm_)@dK!OKPnVUAQ24cPt$2*HA_F;?MD zA&_Ar1m4FqQZ8*8@q(5p%9Z&?KC>)(uagCW2H?Stlj{O&*Nrr+$BA z*r5(j5&==TUPCx$4MTp`uKHt>8QrRLxTRuGsV^$98id3l?%BDtCsOcPX~wZ1TvBt5 zTD74b*A5LJ>9G2W_+5qVV2x98eS!NP&RssK@L!DQ5dYLS8cIA&nX~*JNrk%B-66SQ z>r7%}!31aX$eiGkr^NgdguwFXD2u0_Wn8PAnC2#RGB$ENwNIaN-*)udTkwd6pIxTG z0_0(=Z@SYDVLTiOI3sdFgh~=cVapwL7D?3|v++twHp3qLCArj7cC|;W$K73OMKWa0 z^e8&WSWPkf-#P9kBu}0p5%J0}({GQn2#RDI-xHsYsEn^g@u+(2+!LkJii2<~ zw83-bb7&0XR$1vf7($5?N?Rrc!<~3MBag}SRwdK>JeIDlEB$^>*Sy(W=8_h-yH{SP z3bNpK+CCzwMUwVS%%-+VG*}Scr*_YNH50Y4T%hm_x1RdCZV$kAZ%mxd;UWis6xN`% zNTMGffD;+nP2?%zK8Szw`EC8by&shk5<5bw=2sn^o2A>GTP{_cU?87SQy4^s92}uI zJC>1e09%xs$sR>RWpTzVZ?bi>MoTQ4Y?KXcb?mtJS{K}6ZYGm~TYD()Fn5uA88%=v zN>(B+S>i}VWnjfdR`*BuN27nccfWTEfHmzg`B(j|P-a&K*>c;U3TN;f-g74C;P2Q% z6(T3ntt6I?zIn*lv1Kx4WJ#n?l(J+gK^eqvce0d68oBluexr_IR5nyERJoGAh+R=9 z51WRoziH^MBu`CMBx1i45<2c46jXaLvv@(l9WZ-+uH%8O6&Xy#vc%%z`np|p_<&OE zrA=8=GHJm$vF#hQK%lGGGGWNXa%M~=HJU@i9)uHtOD>d2k~0$vLWd)$#0LeX1CB8q zDk*h^GBRDL(EhR85@~9R)YX)%!teY|xha6idwl>rtFsEnX(8Xq6+Tc)QE|09@AfQI z>HQ4db>?O(sVDV4%}ArAb>yfe#cRHltqaO;?(p`w-$b+JX-}+wcE#;FU;XK{yd13g z`^t{#F2s)zw?DtG*Ukmi@w%NAt?50?7b>Nv*bf_DYco*eT0GI=N>@v;meOJv=F3DN0XPU1G^NGuin~Bgjp8kE%>-%BxRx$hI()yVt-~OJULCoO3W@wBr9T0XK$IecD1$J zkGfmjF>ELMsUOc~e?9D6cxMEE{*3-4q`lCK*kC{O2$uHe0-L=mD6RA3{5eqYXLs@c z5;_h4b&OTcj7tz&YGM}rJkTpzeLodEE5xrK3y}yfhE*{!uS}@2sp_R{qTr3*N%@$S zCdpSB@jt4qaGd?OEn>h+fDtu9{Zn*HnN{|f6vWy{V2hb=gM8wX_0hKti8S+*3#2!2 zb+t+-`j6@>uqh- zZdZ5JNhj%4cb$_?a*|&@wC%-T*Qhn&@VDmc_0D`2=qhD@E zn#2*~Qt+I26nKJWb||Z-%M}g!0QMI3Bp<@li{7B)rqSw^tZuE`Vwssv#dK}4z5M62 zX62f>k{L`2d-9&zVj}T_sA5@zFbU$a-@4hm*>_FyvW2ZPCOO74^RpW0nc+D&`!$=k zi_WR@TlInydIdjlrhv~K8|8EkfU6&qQCN} z*?MlTg%OK(UN2VTs8b-2W&D(rmcO&y5k6Gq2wH=LKdf2A5YJPjvT({8l$F6ulU8}J zNfK2jY^q+2+@_hLyqYkZL4$&t^gus-f?ymd7YaO{O63Wl4Jt%}}G ze3z)dzv$C3>Q9)rytkM5o%bi|pq7&EX0%TBCn`qBeJ6e&925+%jT;Jv%R#s7C($$d zj|jCPtj~?9%2#bkV2H?!!jj-LC#=sHJb*%`dqfxMj?xVHJM3=tvT@Q2iqnj9g7Tv9 z6kTpr@Z2W1HZ~>RUb5KOCeO~VzbDTQiu#)_xPijUubBrM5BBccar!n;dcuORaa zG5D}9DtE|?_zaZ04vV=!1wz<~w{@sAtKU%`{tS#YHwj4|ckm5>%!jeibry-J&`ID^ z%kRwGWJUuPS7j!M8BW(WfwZtmv>F+K=S`eV*(PR50l(sN5RiI=`S5U|y`}`xyt3 zFnP8J*bY0F4FM_wf!tWb9BS8-NQUk#1O>Cg2V>}zdz|aaUqw8&%WqAD33(5jV!H5= zUCss|TV~yd+dAB?QS-Db?JikNGk*!TaRe~9c;BHbJtk6YnyHsW6Z2Z=%~nq1yx{OJ zg$(wI*=S7+Vwy!kQHJ@tlb>;#7US~DAYRyp2<2846eEKv!h7dXY` zIw6Zp8Vkh|R8u=aO-6Hk+=3Q|#{9j~ES~$%=|Da!Hq7!TrU_ai?oNBw0`CP_t~jk( z!r;@ah^PJiYuWVBP}kQgW;UB)CoSb_!jxJUgxApqg*v@27BaT*q6m~q-`bd zWW!l00?E;gxX2=3mSOJ^*=dYJLp7xUgr{E1dG3yZ%&6H_AuVivi9q6KD!EF&VFJHV ztNdvd?%m3Q1Gk^3fF!BW`v_&?>{2~X#60_Kp5C%(QC(nhivny@{J1Cn;a=LwQbANj zs72JR3JZmGc3BUL@HP^=Ri2~7aJ%rXRLlHb8e5W#D07-Z{T93SFPZB$L#c-95=UFy ztePySrgw8oVBU3CnkD?rMlW7#^L_KqxK}23(s*WR#-Y+b3eABQ1IyoG$N5B&n@Utp zf>xcn^;pgF5)*F%%jDk37l9Xb^WMk@DtOzy-zf?p9W=u5G3S%FPe^Z7z6r}%D{=dz zo=M7~C$nhlHoTYGc(G9{LZ@U@T=8IOUw4&f$_K=RMJ402J=k-tUX%HTyjhMx{e_=R zad<`6!r{_`6#CCFz3Yi)`j98S z2BHT929_!Quv$=0MG!uKgQK=+Xn_-=Mxl)$R=?Vecn;8Jx5<)s6_h|?7SjVHdK1WE z8ozv-mp`{_qQW~n6-!y0@o2VIv9&ihuu!kj(OX1^+PF8lf#XP)A0Hl{9+=^s9-Jb( zvZ~q)yzlw$zl-JY%%!vz7usS9A0ivt^K|&#-F@KPhT06QO-ov94W-}tdRpn$@h>&; ztt-yeS5^=&k&lI0e@9iTudHqSG4nbLsw_J%@ct}J?BA#tpf|J;wbYgMojLQLgfyN` zlM@mTSp$9Jb8`MO6;VpS4~&R>fCZ`mb%#r#q#ePM|#K5sW;ykb76`WzZS}6R5K7%6;WI) z0Z~L#;bYA5k&M0bNbsz_?FgS`$EwKt3|a?7KKG_PLlmsMfM;D>hxEm@l}(;>W%2&` zsZI0~9G{`&TVAj~9{oCKB}SNxP^al8-*r1+gt#tB81rlnH5^k5LP|KchhK5wroWk` zC#!IARf)5x59-cMk)~5QH#EGX2Ohqjlu_IV(P9sGi=^chdN|(1fd44@LBE%CdW(UEQpd9|? zilDE(z0p?PR)jozbsY;QRhdOab9xo^^t{lwAm5vsBn~97@cZdmM3Yk`&?%e60kL$I zdv>lXWZBxr@|?f{&|zNmk)K8Us-Q9W3rt41yrH1NkS|3_BW6^y=eLFufw=*^RMwU= zbr$aDWg)(qB$=z~y$IqBxXPmqNf36)>_H3#w@DQqzLw*&i2Y@|8SiDtbbPmsF^D(R zR->J-=S=%FODgI)XFhf*OeT+)0vsFWB|sLrV^k70HgPT}E(}u(T-1FkOr?6C$75PX z5k;)B8EEtzk~EW$(@d|Dg5FrZ2EFJc1r^N{iX`;7!(HV4y>mOMBLRI+Zf+~a$9%p* zos)#PyLg-UH*v$&wu}hUgyL+$Jpzjaw^Jm)lt4ZIYM6BGMJD{jjPHUlReVbrO}|m3 zKrHzx=c@Ka;sw9m`|9U~ATMt5r&H?Ffn&B^?5DC3xoTrQ#qPr7j%l{dUN3l z^Bo}Kp!MmTPSZd9Bt(Ih{p#TlpXq)fe43q2ATq}YC}Uc+mZ98`5(o?r5p2&-U*~#4 zI0JpAXdT#LYef2xmVk-`+F9`M4J$?~upA8QAKz5#~30=OWcA3tACO1>JQa-59pPEr(FEa7Gw8 zp}N`M!NB;NCCGS$epSF{P73NmqTq57lEhaP+J#)({-5U?low3ZmEQwyTsQE%>+AzA z#6odEnuH>h-ErJdSs{R2g(>!$qux8J-XF?cg{REC{@%WIEd0WX22o=HvB!3%#rE* zT`d%!`M-H$ES0+MhLRc)*|W4<5aFcy{IB zMDa=IeU~7vNyU{QzQ{kHQB4D>;qhj%PjO;d02XpRjzCo4H&ve^uq?ACEW5H?Gn7|& zRiR;JkV5jTBI#`TPa6f~NeRgFSA0knh^~>O91k1h29RAvZ&_}ZRp}pCH)BEgH7hs? z|K@TVL{*yTp%Y@3<4K!SUlXISSVnz;HQ&@g!F_rC=FZ;D4|5?6Zs$c zxphE0cVrF1GR(LHz&e=HL_lLkf=7y%)MbKK=w5C3tK0-n>ZT&T=hq#A#5J(R4KSy_A|yeCiEQu=7D-4efu1Ot5u4z$WL&2= zM!m=Z=^ngDGy0M|Jv?@>I6|qxD+!u zx~ZE=0~K+P1E&B1lu8X->KQvTP=;M!`EUKRXL;THZppi9I$T|S51ZiAC)8q1mDH3f zx+zWl^zQzomVTxvO%m0?2cN-4ZUYW-gLEYNWFaYGL`9Q9CCi~`H_FO5-`p>zGjs)B zp--bur_mrM*|-`tGyXmMx9pumf7yTm96Ts3M4V-T8%FkKEx2D|dxriWJL!DQnF(az zlzrsvW`NXv@Px22Vr%Kg%v8(?#af9KV{=Ak^UV6ve1PELe?oj;ZXC#k=f*p&E0UX!bYn!n^vF zyzd+Q%5GSAC`Y;MktJ>5lEjW7%(uaT#_{Zd?VuBXF8g2FMZ#biR$vSp-PY)05(}xk z4|s(x1u;x@+ono_qN59^>$P#VnyV1mS5{grgDfmxAKn<jKe0M{6MGX0v&9!Qf&dp9T_Hu7dC>PC~2Xv61cH1OTb*JF)fVH4n9 zG%F8SRbYz!cOm}f3Gbs|501YP_|#*~z(WZ;fZSj)z91P>AVh)#@rf^>L6%w2f5AQZ z2Wavy?g=Y1Gu{6HpU~6&n|z|=Zf8s@Vr%0hWbA0@U~cDR`-7DH3CieO8`BE&|8r0Y z+B!R!8#~AtyUHm_D?$B(oHTVLVEz$)5()^|x@l4~&=XLzu(A`dFtQNP(=pI#(~3Lk zTbUd3+n8Dz6VO4?@;e$D+c*)hF)~2W{!`RH0cu9NpBO=XJ27K(Q!}T3WrU(tbTYP9 zAz=H7`RDOJluKg*3C-&Lw(IJFfyF=l3 zg#NlsB~cQHhe8P-XkME4_KSmIQm`jNhU@%%%dvMY;`ZbDyFbR7DBith`|Oi?|4ios zo;_uLIf8#Z;}L{za9oeQd`HKlAB! zfUo|A<^dPTn-RL5A*h9Kv+yv4{?tHOUrf)PW00M5`LM3T_D3`Jod*y8{*zwk75&CO zXEm;}s@%zNW~Jb0|`bGR&BHMJcrq}Y2{6@qbc94Z8=jf;Q73zLEk_%FB!uTMj+FBuPh9i`P43GU_x8sPz3>Z;IpJwLkNih?{1JAw zHmk!^rOnE=0;9t zj+!iVbOiq&7u5ep-haydf6lM{->v1}M*L$;|FRicC0k`1^MB~D1pl&`|J92AlUw(1 zwk$oI3ziHrXII|68&EH|HVkKtEtX)X~U5ZEGMyuE4foV^GRsHm1`l52>*2>s@B z*_jN)S?6=t^ZVC}&-RQ>`5C*jh4)j*^y%#KJe~kpBal6X+$Mrmcf;+MGelksLjUra zu=RSEuQ?~^4Q9|_X4}*~Rx$7Tc0gPu5sA}eg)YZ)xUa1nCgDC}P(g0TT;;wI)`8WV&T? zsC(-c;EIM}Eg{qH(tgXpqa}oK_vXgpdNbx@EJ5Q7p+`>}>Eg%DylAH#tRcmwTdXt*9OX$MkliR-6Eo8Wcf`f!bIxlyD?)PLRAaH{t*x}J3 zIt-1_ch4(CXdHNgsvDBK8?OT~$}7%1dLzt=aCh#rxp;TLuy$S0ELN}l!!9Y@5B zV9n+U!I@AEAv#t#p1{Ox&71~Fewv&kXF7;3;F)hUcf3qebTc5WwcyV*6elNWj-bp{ z+*c%O(TX&Eh;57xvPPU9IJgHo zkxsqtCSgB#ju$ zy#)+TIQWEVbRH1iF`I6ftUw~}zvmIz!K%DUk(Tno=Log@L=#E$RSJJQ;IQk*kkXw2 zo6&LrY|}gtaRkHmzm7hQx*zbXo55U^Ab;ZF@Ahv}4UnSD`4#z;LR>NBZRe}biDw4r z5=jT}kD>zgN5{LyNm*>%*@>Mj8fldPj~glMrZ{}`TgmjY@WNG9a)WRuxHN} zd5b5zgIEbLO0`GuvXsN!dH2EiB+d+nM*wE;;~wUn(nZ=IFeM_(4a5Hg!BViM$?$-`Rg5 z`3is`R~!YpqgI`uKF~R+@xM0ePVSLbBep{5ftZ27hwj1sQYB%n2a^WzQG=}LLFWeI zsx(&x(iOn-eSdxO~PSY4~W zN_2scjTQrSEF9=m5p~ew<5t<>`z)%DqJ#dkj0O8D$}0+oPmorR5D|6YEbt}^{$UFS zrvW z;reG{=-h`@cb0F^cjmWNDrqOB*RNj&fvqAJNZ*oJzqP5QG>`PmX~M}Re=6Dxo?e#K1e zGPbeKQC=~nyjY(A>-5oh#c+*D1JJm|_h_X0C$xsnHf#uZF|Nx>@EhtTuma)7j>!7! zqy{+N_OwCljk@jR3tS;PVQcVxMNRwT)CfNBV)@{;BOmS>pEy2%hzaxN$zRZN+?*H2 z=*n8PA|v{cUsOYs7|7HXD7Pkf%6+7C#;(sn>hR;+&-9+j#+kM;e09=6t^|N={5Z^l za|0uQt?l-dIyM*(-ILSgOk zzih#K1c1Yp17qgEXzBmpGcBjS-q5s?SU#{(L1yXQ!eWz-bX>T$yUaM*6V(V_)Zp=Syn zKXPV`l#tdiUWx5o!OT{{XK|cxIiNc}z)V_GI0Nqb_s6nFDXKA_Jh7ysxG=>Bp~|Bd z3mj_uVkLo~B+~qM2Y^Xcb(OiS%;w_$h5F%VUjqg=GJd-L6MrQuDJ?EDkA%GEZLbsi z_t0t8S|!qg1rydom|QZy*Ab+kaz063StGQkJn*?h%kvVzBMT`gLN6zx91gZzM0>4R zu)<)fkxCOR_izKh2}Vd0%tO;anMz~`xV~{7rE33W6r~D!CX)?#hf}0j$qe@xLu+_P z8ioZZGYJH@QNi_6tO{7wya=}dZK;~J3JY@Ja*m2vK_n;%P~9vxA6yPzE|jXs9o|Jd z8k0|}Nbnhf1Y2JocPlBr2sb+^-U$>}OT)aj*sy;Pvxs;kL8k@F7X5~U-D+&DAt zk<>CswBCYK7%>M4OSFopYaol6XMIfN_G(c+yK-7cdQ$pMB_^&`ZNRktSdhD@OREjn zdAAp2pr+`g+TUjzoR;oI?UK2P$MY2nTut)n6HnIgBUDs6um@7}g7W3qfHGDfq!F2A zJ(l`*0}*f?SVapbawpZf&tL@!bLl0oD#1Sv(h`?%ugZK_*Kcr4=H~M{HLP}Y4q)z* zO^=Eug(S{NgGEXpqHj;Db8q63&+b6!$K#y9^-rZK6b8?!lk~lM7tlc-*Ysh`C9|vI zU8zG(!jy)7gdB|)uqq71pifLeCV7Nr-j4`oU^!4QT^tsEM9#SFh|1?nd5zgm*9h~A zDAu36h<1GAZ8bHOki!;(OpiHX0ZFnR>abVOy|`&XGeY z5)uvN{D3Ed$N(*U5qWEVUxg$RJFwb-OyD#eDpHwTgzui;Y04#4jV@;3E?=xIf^+YNpu+?cKjZ{?;j0 zw?=H?&wJ8>Ij@RL?(B)d5ZU8&KufV#w9t2@>YwZ^?BtB5wiin#_*1FFE{iyqDzAv# zLy=OR`mUByIb=T>3?16k8N0wtb>4ZbqOPd^o~g|a1Pw&Q;WR#admKl7_FKwFjtNKY zy)_$;BC!?%PlrlK1N&|#5)GMELR>)vNQ%yd_503OuA8938Xnq#dXc-riDQOB*?fB} zP-v7tuUH1}Afh@dG_x3g3p}7;Z|`nvEDyDBCkka5bdFkA18glH5(Fm*NV}&bxG^Dh zk|ysn6)ub9LZ~J5=ba!F-kUKvh!@`dy{iLIPz{W3OWN_;bBN`(dlA8@d>h0ndMNRYUW19p_ zCl-rfmVph!T^O8B`Ffq%8AMX@)vSw-goK5Q*eHKu|NQ3Z+RFYl7rm;maOX%8^@AxQ zk->7}fE$_fkQI>df$J?+Lh&ODF9ktk9nH`ctJ6+%m(fmDcdtVNP;#g~z_GH?C)I$E z!kd*wBRfBWaCG9TuB{_23Qy)W*uX2a!i zwYy$t_I$3==|IoSdEi73=Dp(iYSFX@V(ET7(zN})nqmbwMF51J;a@Z*^#m$ki+R8Q zL~+PE^q9y(n+7sKo+TwatmuAu@WSm{Pfksri3H1%j#_Z91d4T&uUW`2s)(@4)V>?D ze{);aNMF>QW;!eYGB4$tWJ@Uj233gWnrT<+l($HPj|iOv zulz=#J!N=Efl1PrVl_@(s9Jj>ES+sv(;?oT*)(-Sx+dU!ki~c^0Nx{9u>A1cdvB+G zp`Fapqz&6X_fnBT2%``WkdZg)>dP%fi)^D}aLMtj)KE2&(yKOLF{jle+2M>_N~aWa z;g6Gw=!-L9T8kD*w4%>oL|ud1M65N#5^;fX5Ue#iG;SEuWB7#@d|W9K$e%(Qj__M! z$|Mnz@+q<$QSpb;a1f>aGUk_`Ow}r`4mY_aTny%Ph_+#*ZbOLXQKSm0Mal$C1tQ}& z{C+F^cc|@3Dvm*REqGkQ)%8%|<@nJF_yhB%4Qks=rbk5;u~{uLVkal~&~gIIq`K>M zb>06e2Q4iv%~JY|eyk8}K}bJ+*o8zUd(M0j2Fo2Viax|BBJ)Cs-DGMV^=BAxkO$R} z^NxImE$m=)j9UTD1XVn7#O1)hys*jiNlc@08LA1g5)F()Z~0`^LG|E3hcYy#6&;o^ zG@tPiZtL&N(3?7u=@TVZ4WS2cD;`@m+|w1HCE|F%BC5MJ!+7b?;xSv59Se zWa5qAec1pvbdg>I{sL*xt7={pCLDwG{iWFWKEpA z97auf%#aSomj#u!soBpYn4X$YHas-IG(_DWzP7)PdwqHhco~-TFm7gE$x6#!va&fB zE9BMOt{62IH5OHieJ0<4*I!MoRbMc1rF3%}=6t*Qn0l!m6!dCRZUrc*xfFVhxctwFvN7TfU-|~bGzJr}1cdcfeL9TARX45!)>QFZEHhN8~ zI@R-DT~8HteVl&YS2)BTBqVI0wvng~VU!S2FJ*dR?IJ-yK-|IPdqAtTIOwkhJD#HtPWgN8;?vbtn8{6t75VeM`30f$WgoVb zsw@>d7}U#03bw;g!a)NQNY)M*Cs2~Yk(OY!v^g9~fH>}rrvxWA3z#Z#7r!qM0?puSv0*rsESx5MDCu)t(2#o}iz%hONj|09 z_L#3F1T^Y)-SNHN5Pn`~d)-GeQsag!w;SJQO<%MshhAr>JdaP2Z;hzFqBRDI=p^sS zOyD*+e4G?vhNrD;G0kwBFBkTs=ypnrPhodkEl*M};fRS7EFF%yj-dq(O+#X&dFSRoL=Z}&k78%y&+QU(RAOHj2H79NPhZ<* zyC#?%tC)r|?j2+eW}`9Y&c1Lx?lCzbWdXi(ZP9xGHBdt{rhRIqLN4YX6=9Sb0#XN5 z$qS?kB_^35!P>7Vj5?{UyzD$2%{Lu!X{JrJ6Q#%a+q13M z_L+CJX7qPGgKXQ~@%g?s^MSJZDf3>I z5*?w4p^;PhY{scegAA8lVwwxAYh&z!jHm491e0qO+fdfM!!Ey!E$VZ+dGq$fc18{z z)~$t(L&qq>wXGQi7myl%O1Wl3+M4tz6XH}@b&${?WaTY{(5QM+xVg>e>mDR!g%F8f zxly~a&*%U|e%chAu*Gz$^%t?MTq@OPoR2BP;mFrG%dc|BO|XZcRR`Hu-mWlM-1c|c z=VEh3iYVy4Ai;dTaMoO5AaPUugs(u!a~}a_X^a#aWF>VBabT?s(Bb`PyN$hn1YLA? zkkU58Ah>2#3AK_AoJd4GY<2j*(1K!f?+McXoX$KG06&<}J7-Do^@uc?kr7{7XZ7b@ zi}L5l^VKZ;fD9u0(HWhUK5=yHCfN z_PO>;_Kv5oZ$T3ya5Keg(&aN{Y1QNQ0PyUN^^;8KOUll~p;f2>C6kSVgIgNa72zex z3l|iG_K=H^%5b=-WCgy0@Nk{rn561F;BbUQtj2eTQiw!sa!DQw4GMpcwkU+S^j+EG zABSTjaWsF#UfyqaRarPbb=zE~JqgENx0;VNGsjwWKCGfmR^_l|ruG&!c0UeF)?|8| zW6Ux$-?`4~x&gG!Mg)ohS`@zAW2(Y|>ji@oThaYW6_io_W3D1ZZZ%y=R$ye+Sd3{W zlpyK+(*$W~6j&#@h431xQV4Yt;-CzlCuG2HyWQb-EI8<}Q{fgReYprWXl}Dv#X6bq zgwmSqI^&b({HCsa)}NxotZ!DYn`y+{N)gQMMIU z^mc=b-Qla8atKNsFdPt@39vj1`0!03ml);+$BD^FYUErSka#Equ2KeE2y{zm{IB`fPyM=A_BS&OIm_Lm97XIh zXFK$R9yv*U+1rJybw>UjnBt5_(*Z6DJ_r^%(ohCj809bs?ZP0tL0EW4MDs!c3E3hO zL_p?sCqz(v8|Q=JgSz?qFm^S__eEf>qus;snUZ0S&S?E|!e!6AdW6HC=%^OZG>8|< zx5T0YereBhC92drz`((}HAWUlN<$uq1JP|G7f!B5VWiwEd^s;(s49n$lxHO#+gIAF zp;p zF^YA!suehA#EXcg@30n9cJD-hH3mvv(mrk7+aJ@Ck4QP~__r`UWI%^m9xNM`1wXEf z06WcQ|6_b!)8Ei7#g40kkEaFJsZPt>!*F5AY@hlnXW3R6H~Y`QaBSjdUbOB;{f*fx z$&IJ|k*$yY4BHRL!cj0WO~OuKg+|&qy%qfi^1q4ukZ$SRJ@i~g8|Fz}!!U-S$6=w* zayFwkWJeRPtHVvyQGS5HRHv9v=& zPJWz;)>KoqeT7uiw3)2JK7nlYSnoCo=1AddD=f`_(i}cm_9M5|=zT(#@^avp&Y$-s zFO;l}oJwBi(`+H<6g~fKP>6U4yj(dIT`Li1d}w;RPWI)H0#>Y_uaRlv@YZ@OuB=j@ z-zn_-l&BXu6(vo6%1B@;(#=xJQrfKfWhuN|_CTA^E&j@~x#tiOLsMVEIAEGcr;Jk` z;vk1=Awo5axJti7#tI$+&6A@}DgA_rQbJ5iEi3NWA=_Si2Gv@wMWxkQF%`8S=U{NA ze-C+Y?l?F}o-R3gXfk~+>s?T7wB71;W#fGn)||1@ChaCa0)C9W-Mt@-ode-r``Dt(eKR;U z;d0S#KNf?z6>i?f%m~fNva<(&J>s_iN#&FJeT^)cee~AjeQ={m+jGaT^Ug6l$J6Ty z_G|FgpVL`H+c$RZZ%EuDp6HMAei^>0Vo|-%ur5E=jH}yfEnM>-+jeqB$B=W$ z8spq><=9U;679ps!2fK%C6jp~;bdy^I77P^SwDQUVj`VL#c(|CoE8aV30s5R&FJ&T zoN|&?UuQ~Y%Jq`H}e3Ypob*LA#i`I81!iVBPv{c`!|iXIeOX&uQE8`IST| zz4{=a?i^hykb;^L)ga0*9gojvspi%3qvJEcR}Rs5U8sC5G6p5SO1O12`ABA3hWmFm zf_T0f5D=>w#G#G^)X_**hup^JY02V;yv3{<5%v{L)G!J+zwqQ@2|boy5Bx!%E*5}X zu}n`o-ShUT-D*}f3NN_?ncY``)9;-KOStLn&;FBTOK7yr^w4{W6>43q?Ohu#_xJV^ zvQiG!J7}JjOhf4g2kbKo{Kt`P7U#uD%!d}OM7M{1aJNUlqbo7V(71qdaYX!@xAI_l~;xj zJ6>6l;k(IRV6riu*ZIA5+i*O|*7(ln%HiJX^EB((;<_#RM5E5I+t<;t4Q^Ex*m}DC zz=YU?dLyyNWM3S^i2Y5dh0<2GVGyh)Je86}E67zhgT-BN7Bv5>Hlpw(Z|PSlqPxz{ zkie#yju^UkHJi#EszFSJ;42fKvKzlE)LZzU zPObW_;9uIfqEEW0%73eV6iRfouiWl1aaWR4QvJMD17qhY;0orB!rzMt;)i;(q}e^4Gq;f z4ShW_-v$pD3D;ss0P*C=LxY&ZImRTv{D}zK`LWyEA%ma3QrE4pTxW->;ZSxV5gM?P z()>cwj}x{*5uM(_$W{SSs8IBY!~Awmr%5ad?P9z)g8R+vcoGVWaIUNp|4yx$Q=g@y zE7f@Rd{2k<^5ZeP)yz>#z3&48%XNnwoGR0!OkbbMjw_b(I9rOuQ=bBnKFTAfvX^n`jIx8=#iVCy^%km z84)9_qLfjsd13gVyOG`Fl2aro=KGpGP-@kte^TK=;hqp_9UHqkm5hW0A1evdFV@zh zl5$ovg57(?;u)g~&Jvx%b%cBzI;mWU$fd}k$tiA2`#R%(aAg$(-bYcW8Z!BF;vz-B zLtK~ga}u~G|L-W|%s_=4{CaQu^T4aXY~QX|@+gxn7Q@;41O*)3vYlgu$}L zG{n8k_Ak~nQ7h?KdOv)hdSIsV5Tcq0$Y;fH5=mTx;TW$8%F4TFFS z>}^wSzywhy13_+Cf@1sAmCL%c%fW^CK>~aLCk9Be6AsPoK;K!+(Rk-_uI^2|SM$?O?Up8^Mgo3|v z8DM|CHxwuc;X~!s;d+$P^H1>z@<9m6N^7phQ=IGyP*h%+p^!}Gz!d}YB6XiGEtG8$ zLb-T9hTfrU`_1UUvGU;iFlsxj4b%j#CU3Z2Z!5ILws-B;eAneAdOp3&dmV~UGri3l zav!Va_%Au+w*ayDBU>AVt{3_Ad)si%Xg7v)Ej0x8#!)NZex8XxW4aDbS=MhFxoUU= zMN33Q%o))Yovro7;0^G8y0LOL=Yn%y-P_DxY@J=%;oINa#2m0^(w8j1A(t#KIi@=2 zwH`Zx5BhN<=T}?LxTh#Ko}j45qsSZ|AvnVCwX+p8ioU_#TY`=YAGM5Wmv0+n9b{Q= zU0*S-a`*=O3j3UE-_gEl85fOb%u}|11bqqi7PbpH;Ij#6+|#$iR7vk8z@~U-<(TNs z{!%kZj+Y4B$>r}pwD^|8e;f~&Hsv8Fr;?-NAeei}Xy{l@$sUufbHa$sU+s53@`6)F zPLetLdm*>=Lu~`#thk=^$?bulKk0G0Nh=KZGGMt5#ke9FK|Qm`W<`L{LRJr#Q}2}B zuxJZawUhkouc>VC_tM?rWye=S>)!^iqxO>Knsi@solB1^keHEi#?;Dt#ZP<;ibwN?0?L6X(LFObW_J#6+V!rgMMgr=_AkqCP~#l$wi~ii(XO?o;UvFTiAO z>g}N5vRNUJVMT)hD~wmIatymg5~|aK3vW^b7D112qa%=qQ3=Uh5D^2BMRx>~{234# zQA-h~_u0kqegNh;&U`EL*xfKqR;9qPxT7*$FGTvylmBbPN{5Q^5OFFmSJu)FSW}qBp~lm1V27iY6J{8x)=@-EVZco?pg#$qw);Nu>dLOLw>!qqes0fjfaP% z@YwXE#;*T9a`7=5>`@H9Zfl?J5u`%SE@DtnnqJl<1>QxSuH+!Gk**ieDnMkqo=E*f z&1vm)21bntKDR0vOvccxEc_~sf_)J=z{M$pSwf$d)En|cNwBPDXAuk%3Po>R zWoJ5z@~fObqFwQIakl~^uYA1Z%-6gh_g#axk>J?(My4Qh*q)5oIvGX>(pK zbU%?Pd=d%XzQ7I!B3G^$-)qwp+&gM026(1AHFtrA0q81I;uCA;r5H{sWeWbLSIe>% zVuNFYVM9y7t36;Y!~AWUhO!K<>X$dIYFJ`ViHMAnq-I^Wb*f~kZn0{#Y238w(Ot{) z<@erl82w7VYx~R@wt3|A9Q>mPiVbJ7Qcf^!*s?ZX8G%bP3Dz(aSFC#B(FFvyr8gUy zIb$fovm{#Y9qK)}A}sNgVGU^6`!mW7@<6)mmps{w*NkL|-hJeUNnS9|7Q9uT&g@N) zi|GJ!2xb#NXg~mFR!58Ngb_7|Swao0i|V%yH|O6^MA}w6x`_H}&{Hs) za6u6f4(&+-d1oLQ3ziT(3C3B#qLx&upk;%fqU=>Qv4{S!8&ZI8LPl=lGmlw~pPk-d zrQzeYCBsb2Y~#wQ=+Y}8k@;-afak170`b`9pkLd2SmM**RZwmPQfT>0to z=)qaTN-}#qOT&6-OQQK%uX=Cra_o$4cyZY_xrHF5q*HiYkkrK=D5{$WkP}}=;SD2_ zknkJe*@67jRaX6z8+AKK7rthIwd+Rgu$8}}zXdu}YI)W_hX|4zMyJ*sw| z`Nzv7q*gYbP001*wPRPNK#%~CDS3Hh{=wngv$}Xmfe`B#46LigeuaKHJfOMro8%oZ z#2utX7=u{lyTO)NB$tpFo8gaY)CokOOD~9xl4{iGO-Dco+nK}fA97>P|H~oy%6P_H z$LcO&W`xfPGZS>lN2dvp&J?S4hVwO@^!}B;IlS%kSU+eg+C!gVk!HLbUI>+sjjD}G zXA}pMe1d{XTu}{ue5u%MhcWJlX}xPhmw_Zb_z?BD8y&UTPCIWG+*K(^-caPH8wV$q zoGtoEo$OQt0-NTg{1*KKJyLfe;zG>n!|$=PyMIgbZC&&}%edJdV3^DXWu-20jmbi#UGnBt`Ke&!weLSm%qc%ZsUNKB~&~} zYlpPpt|nW$^V*bdmF^b*+4dmCcEvlCb~bl1_I)g^o#@s6RaPxO<(7RZUbencm;)jO z_;i^_D&!0Wh~F2B3?T-=ifN1p5-N>gOJX)GDvd0d&u^P@B7tBYx#l+sDRxUb9RsM8 zaxrT0Jz3vkNRlSqR^Y6k>&Dt(2u_~M5y-0NxEzPbw;F7zD_sQG8oE#Z>x4q$1q zVcNq|iIfLW7A9=p^YegD8qaHNzHqTvKt;if{DT}$U5J}LXtmLs6c~Q5lq)(_w;K&y zzN_hm^24H0O{B^vXD(YLgwW&QdFKW00jeH7X&J$oe^H;icnnN^m$OJ~X2q#bnfa;L zM~f$$dZ(%VGc4<=5AXvO*d{5UD|zk=a9}9pz~FK4z~23Q#oalNc~l-y{~l-v)#&~nM_SN8N*mB-}sdkufJ@!92_wnayw)m?yL=JCIV8%kHR(T*d!#zz&Wm2({ z+$~p+>OQM?y{dTJC1+;a=B?bGzFJf=jYzb9AA8?^op_to3`=fjVa)9}U)5wZN{e zBO5RgoRE;l?a=Y#4b9wPK<^m zmv0sFM6nFo>+#@jdJ*_*jsFi09eUbQ9@@E_3q=#%6WE+6U=8?1W63Dg7zj;ux>aZr z#F+fz#Ejn6$^LKo{F;DOg;sx%-?~r@0Z}31e@EX8Z8u+rIgK$DM}%o`vewzW`Q}$+ zZ=07gMz){T*hJZszSieMw<2XFakuew!oaK6*@S4FTO8ekB}G@N^EjMT4jjL1a|Ipc z*ly&QRi|1UthsVhbb3)=MeGafIkRQjGV4~imbI4F9H?5^w$ZZf7Szu2&|K#po;sR} z32IbIl&2-}KgK4PB!Z8Jl#!GU;gA;#!?r_rgE-DK^NV2S0#w~Ksf{E$xr^aj_X`3c zCntfK9eV9rIsGWbzdD|hzSFGR<_JcbW-NVsqu3pvt_L2^z84RJ;&+!nclVEgoQ=Yr z9GN~e_cNoCB5-e`-)3droRK;4ec*w+HdqA6pGr=zl~$Kia%| z*5!TL#M+H>Uzv`v78bmDXH?l}J(?e=3HiPS_)1)N8+owQ5KWnuv5-?Rp?7wGfw7V2TRloz#dM5d7NzT)S;-YWV$Blw>0x6DJxZ_y6g zytpQ%$K8XfkTnAqfBzd{?*L>;u(j>BZM%Egn6_<9bK16T+qP}nwr$%sr+ItM{~dgB z&;4)2u3am0Wvi0ee%R0+M4Z>tY18B7zc6Gs);iIEBQRi}Ua zF%7Mv0eq&xMuccs5kTZTI%}6ayY69Ve*;s6Sb`|`hp$M$^IR)5>1n(u9GEz-2Sc}c z@74|NCw;=c%-~MFd)XK{?j!6m;W~p-P>la`D<}?=0anXQlo%BZ0df#;SxKJW!oOOck`NV$UhcU-}~ri<{gY`$VN(!Hn#jh5OL3Q{%J$@GqD5 z{lEmi|9*{obq3z>j`CIRq1&Or%X7)o~>phP+@-YhZ)5L6x`sN7|Wg@19k+66QvUfwkX>- z;65lDc|fQWCZwLx*XmEcNvntVd?bO^`ovmRO?PU)!r`~j%pxFvIq#!7YMmp3Q@fqO zY}nIxp>TMWG0Vd$ALk%CK~~L7vsBCU)3nR1qfET!-bVmgZb%$s zshM*eFR8vbXJM`=*0`_sC?R@17saug~;XI zUh6$s8RsB)93DiThJ9w7uVQ$cjXB!uPtO;b1K158d>$;XciQ59_2=#&<4>0N>Kn+6 z==~?%kLtc`xzP-?KM~G;@JXRtkOmMU#kC79LnFy*Me1mSw(%K{XCCg6^_wjVT|+Hf zUhW(FBEmB(oS|;7=_Xoz6e7SyRf+&$?s)UrwOF?N#l1T_o53Sa2R|Bp6-51Hc935& zD=X_8Nh3|D3Y2&so9y0Gc%Dc;rGPgyT}HH~IbRU)1g2|&-C8Ph0cP~%mC(D$j$91q z$Z#%Ho&^k1WM)M>CmJ-oTv2eUPS&|PtzCfX3i`%tRVJ>(u$)GIsNBn(OLjQ--fc#2 zWw1_JEjBw%+a;NaKw&$&B+FvqUzle?@VO8F4GfQmx zT6A?cH{xZY+a2VL4*2?mS>Zyd;sCvqAky~6DLk3~TCy(5^kLnr=qOMpzyOSNe6y!k zC*3{u-u7$emm4cZW2C*tF(xAGAj|kSL7BqJw}DUFvfTOSjlv)`N%)}fEB2)M;9KG3 z+4+_H0rxHU2e?r+t1tQmq)2|b;&6@lwu=IP5(|l%nykzVx}Z^CId@9LUM+1sy>X&z zIZGn$97iQWm~W-j^SVM9SGf2sxwPiZ)RM6KdR6MzRFiY^mZ!~eogt_5R^3IL_#NEQ zt>W~=7J5_$RB%7-b=w#FyUk0N_4K|P*H=2n(IrUlu``qmA(0teN)#qN{8z}tIU7;l zl?z;N$CQr6A)7$6+!T&Yl*^=D`IU7E&h$_{q%sgFa|72?ie5)A(8FFGv_jy#ic%!5 z{!Ft@D4_jf=Aqx}rV&IO$-I zau^0eoioZR72mrAkM*jb=_o?IPLL%V5Ez50up%EIK>gCXuFGtkjI)6w|4cq+ES9#;bl2{#&_CA- zA&7|HctpyQYd>pRT{KtzK%iJx_#6mR&t3!E;3pybZR);y zleO#5rfO`T{_4)I85NUX+>NyZ5LhNGr^_Ms;wfk#C%u_Dvvf#g~0dO!Ko4_Qto#G3Fg&XM-bkkWD~I{68Z;h zw9vME>TBM<@2fhevt>pXz5a3L!N=9{nDVA4$hf7mhD#-O_3veCwx<(+_i>4ggYGOy z+BDRzm#1>)Yi_~H6@G*k<{jmk<9$IOELsBDImFtOHJ)GW+z~ zfw%T~LBCiI6(XMZPh`GzW;}L$Pg02-=@+l+6SGS%h`S4p$qWceexd0>58t2n+xpoq zS6zScI}YoPDAgT*bZ^N_GeWvkyNxK$F6ZChboc-wXGtK$Ow0&m!K4uP4en{wPVa+0i50iAu_(mp z-^<>CV_f04dpXP%75Fp!u8gZFd&q#bq#u3Am?X5M-}GTioM(%2AG*6Ivs{t+$y6|c zO!A7B9d>)_?yb#oADAdHUoAd5kh&X6yW_1t&sy9@n^~dK{pSyQf2gjC$pQE~*tSp= zxB)T91OeIr72R{-wzK{Nj_e1FVX`mDu8#}XcGz~yo7I@VA;B!%Ozv$7?;5t4_D(NR zp^tunaRCc5&=9Cbqyo`&^OA|BUAuK-$Ix@ud(}Lluib^@vRngk83{EeB;Y;>5k1zW z?MvorM5q}s2ZTc40Z2QdUgZx!@U`rvGKN2jfUITW3sS03s4E~ED8I!u>NTaR4r#U) zh2@?NhnNmp@k}FIkrHQ@ho&AwNF9F=KW))+XXN7fGe5O+K))qsB0nnzZxni7RnS8h z!De#=!+7gz89(pEm-E17d%ir;I(e>Ws(2m0Bwa>tIqb{78_d6F)Mb=+|B-N1e9`t+ z@xDUiLZj{H)LyfF2!^N1E<15M_}px#I3l3jQQRQ_wKxpy(K&|^tlZ`Am+n6Y)5T$( zdNI$c*CQnIANl2%cT8+RhY@LQ(~-IFQd2abb3k(CddC%q*sBffVl1x@ z=~3Wza4!p8WLZR;gCTvAJ6bpbAyhRy;vq&MTX}#4o_z1+Fa$O_^l9EOS% z1rz9#P_Pbu46rsix`eRD^}^C|%5U`OO7UR#dq1DJaSOn-R|e-zzhiW8Gh)`pdMCk? z`Jk*1HSiQK!FiC~JDsNT!M*2f|IRcpDS!*S0nVhuL&5l@bkG+L1}H!_VCv%ZbNn0C zDrpzma#-VQv``k$Evn%!vM`R=dDF11Dss12WJji~=6Qml9CZ2;o{DS2EFWp#m>?e` zhHs!YpYebKcbL-I;Ex^^;8;VZ&+L7#ZKQrk#rpwFrCy$|+?i3JR4VX$i0YQDQ<8kNxySz{^Ey(Skl@d8cfH9h3c?4RxrZ z2454&6{rO40b6iBP@F?8aGrC?(UL{62^dDXc7?DY<6{8!LV@vx=o24c`nxHQIYzpl zZ9Intct@|L8}@3_&sK@AEcm?DW||5u*Q|vXc1}TzUo4&iMj!8hm!JJNUeNiZMa9wx zJU}x4U7yOswK%K@Rc)*VF?MV6i|)IGpVSJ;+5nBIpMwS-fp?j^aOuK!&NbZwBPnJ! zOP5ueAq~s-=AFu{S`-y&7350Rm8vFBJ@3)lt=n40Y1f6u-pCCZ*C3axho~nn6#F_yNVuGAt2L0sQ9*$tNfz32X)$11#mnzj|m zkmK|zf~-2mFh{X|>v}al8!t&1KLy?<=~V=VZ=NuI67iNs_Hs02ZD9JNev%(Y^|~>M za-jOdnpA1v_($p$znj3YoVdMY;kfLib<1BRbeUOApGJ7RHua#x?$t_Z0q_ z6`$EKPcvPZDZRE0QX&qPx8L7{{>YdaqdN*qT`|2Mm>Od{fC>x@r1C08=h3|uRS~Nw zEJEk#bSal4`t)gjNqI&n0`@=FDud(%Ie$p;H^R^eN|hkWsaGU|t<^v_0!ZEyEG*Ze zVJ$2Oe)$4K8a(!X1rr%QS4j%S?@DuUxf%@B^5=O{vNzzayY8RJdJ!Yfnrs$S0UP&eW?;)WH~BC5MP^C{DT z*ufh1h&k3wp|#9InbJh8R8OmXl^!3W8Ttf|D^D{-$ayUCO@py~0hQzveQocn`Kz_% zbEy2nR!1C+1Y2&9Qny$r=wJ}?wEwJDE3=%fxqv`8;)`SGir z1%q**Mh@K2;o?k1inE{TuwIv4J=PLKt9jI|81jKa9{OMnF79q!5s=9s1#r$P!~)eAkBN^0=zPUGf0=e2jd5Ar=*(SA%oY|(v( zza^-9$VY~2U*$?tVb~8RXLTUOch!f?iV27~lYghsl!lKEM|Wmry_RGM(XZk3|1re- z$X2Z#PdJ?&;daRCzoH3zy6m)9dOm9+=hbc!^=vd$u-911m;F;2emb#~A~~&}AK>Ol zn79QW@^b@r9gbPOoKgk-zSC zRG3x}q}x^%jcR(jPh|YqWOdr#oNW2*9Zk{J2FBtAug$DUzojSg1saj&`7wj{;nHe| z+z{zjatX8V@V>V7A+)@h+>Wh>#T@okqQE@-vR`-985jK7j;nbTO>c3{Tc{CzEo>=G zev~WhjQsdqhN+0{E##kszx#GKQaPbsi1$ls0*+d*YgTVzx&3upzT3DXDdkHUJ>1c2 zD*TNCH-Dw=qE@M%-kWlm8wL6kV%h#HTFD)AoHuh<+}-;yOn{!Y3D!bp8iI)jGb%5Z z5A5aUPYHq^HS8U~4Ko1YfQQ&OR2xZBSYMyoeq}p-D%cu@M#weBq`J2RKo2nOFR5X;b~+16Y}av6(JWq|GB-&$H*J^N zvG?^?uIuGvZ&H?SaGf}{5~qV&NnxUN45y7)Rg$cd^5)#a8dGy6zWL%aX*qd%Ul{IM zLXwVD$&ZyfKJ&D*tyrCIse3iQ$wrAcrND+*>fS-e$a|A*4!%nOOSyR*3^xx=M@xCn8s_k* zEjeXP^aWDzb!>ATc%Pyltwd>9>jJP2medlBO9VOyF$%28<&cd_ljak1c`l_vO1&H{ zt1}Bob7t$L>Ke;R<1;fe3krhn@)${*V9=#t1x-&2jnr_=O^bm!j?4g;)Dqxk zF!NI30@VCDj_MNRD@y>)Cc$S;InGp>5puK(eMxl9on3f*O-dL3PN> z44agc8=qK)L&}<4beWydlNB^J14+l>wznj~q>x|P8T9j2r-a%S)l7Ki^ z11|wEGy;ubxc34$8lJn+no=hZ0fC;EVg;$#448QgghyK)9#>(vpvpoQi#=SanQnvO z^m8`v>>TUtBuEEo$;wuK+;53Ip25o?Q7W82w`sbx+Pt#xzDGsYffXRX@6}gfQlgRk zeu&QDPzVNJ|43^KXHg4!U9i#uYsP&sH)&`EPEGIJC{o=#eeK+wF9>Zh5KVM(QKm^| z9gsvY2hfbByk(2KuP#Ne(yCojzpYlsV$t5)OQq>x3y!`u8W!XpWIbpOOr8uLoG6B# zxVt7>iOpohC*wT>C)4UorDOt=iJTYzuCGI&(#D2gmj9dL4=?w;4Mo&B7DXLB`XiuB z>gPzlG&}5Uk{%Jp=bs$_kI{{wEcf_SY$1Q4vxY?*csutN^w$0uIJ@8$V=wl(uR}5X z54(b|@z_sV(bsOA)35();;WbFgNpEL+$N^+tJNL7`j1ka@@&!28eu1OEP*!yLga4Tt4aus^jh333tiKAzCoBj6Awedzn8&)vCo%jC0$OW3p zj{b@!2Z9ug^kX_m0nU`Apq;?dm$=TUp$Kx$PAvFGrm-_nhWRzOt1k^XOO4+4`>Tc% zW`x#MnL+Yfk+RTuUFfXcL5fLz?yQmjUH&3)b!gJ5>g-%vQoCPL82$5z4cV~}8T;#< zA>%;`j-XM5EaBQ1`)_dKzR=ni%jXZ{hYIxIqK4-F?sccl2t~Q#0Lc;I5Db)G=^^9Dt|lVub9# z+w(UcAs!%=JVL86;sldH4WM(nV%q|7Bf&A{2ec2CI!W>^AV@#FeKkn%dzyHBHYBA1 z9l|pF3OnnYYskM}%VMb4=hIVzu^Ai$C}(UAf7iWs{y=IUA$x0>7^v*GA89WEM)Doq z3hdn$#wvh}DI;JOL;`e!&v~AK5=$qr3|s*G6~J@NpZ%OOjUBV)_kcI%i{irs7$+%x z6=>Qv659D`jugx}dOcb`0xHHWt)+jcet@df^~-B`Y&lob=MMI6Y%4&BNdx{F@j*6M zA$KC^4an70yNsEhVM728*zF%b6i_M7oQ0S(KhmgfTt_qMER;W2^i~XF!$x?Q!6EXA zEGFm?8Q43K&oEQkpI|Le1OxR3YA>W4YcBvA)1&TtJRg%I?M6g`v_IAwkO-6SkKq7$ zsoh3Ad`$P#8L;0Ohw=cg+L4(uk~oSOJ=?794E2Qxpj4XU7gImStCCE^`OoI842_pH zOQ!&#RxT9gJ;4xKk?O;>j%a?sTZ*>V2)K}$M1>2K;= zXr?{m=4R7tmfZgxJ*4cr4a@`ePWAnu>At5Lh!^r5#|F3siVJW9qzerAK^ls#+mqCN zBLZ+6zze+vm2z8#r=1rA+U04FA}UZ%3=E6d=S}iG}}+Lf?z;p;>C) zO9RhdW;9pZ1$~Ji>0>+JVH@Yex&*Kn`oxe&t^1Hnyvn&OFE?g#v$Q{|X@YtyS*U9& z{4Dy&bweWcR$gw(}sR`jX1v2ZvR=XM)Lq<@iU!6TPOd=#6n} z15mob#hADW0$!r%C_dKD)uzK<%wBq2me_vGdI~m@UWdJuDq@eTr0K$1F1t;Gm~bH# zHJej0AsbzSsw0PFiN-6dUYs6LnO-*VhvL*oCWg}n9S*j2gb5LFvLRfQkTSx!-=IL? zsgww)a8L&m$OWu?XihPpvvLqwbY;^GTq{Oucm(?I+xcotFe+oK^T-Y07Y1b-!l@3t zU3T-^dU{dO3T9AL zYu1u4PQT2y{O=v>7){YR^RD5;M$;vRjyRQXeGgd7SuC8b%TAhdexHc#iunq-$jF-D zTRvb1=-sy(98+$<3CKD$7luuwq&ga@R=jJCe%apeEl>P}ZK;Mm?uLs<)VvoMP1T*S zb07N2>iud_NIHI!Ss-sGWAT=jKCZRjb?cz>a7|KL2bvoSFL86_Qcz(l}6$H4jxmt$o8|3W;n(|zOg{)KpCpr`-eh(|`& z|BiU1|I4EL-*h^be|P_%j7Ju>|AMCbPZ*tMyi|1hU&iA*6n=9ss!N0}k+9gR0ny?+DjJNidt0~nZ!h;J2{4`sZgZm2ZtChI-KrVaGXhwTi0q?PMGX>AYd=aknu0)(yv}K5&NA$jNOOO|Xs+?jG>~ZVVvfI0owqRL%7X0OVTRPtKeUdlibu>N3Y-6D~W5X`X zl2nMJH{>YCIA#6Tbvg0FrT2BmangM2pOXCyv*U%IKcjAe-iKOzo+J8)jSQfRyla7JKdW_K(W&S@ za9`^lp4E(Ry@BVo6VSaMOis1)L?yiWwUa*C-D<$A9HyZM9`tQN;KfZtD|1hf1%g*!< zAHlz3{q=p<`A0i{v6C$SC-&d^|A_NH?fv!t_5F?W_xNXd*1vuFpSJ(={2ddD<(vNa z&%XUnpZ-<$Z>;}n!@7Zn}q<;TUu1VG8_i1sVe5;ikK_yz69gEoY&{eBwW?RYkh6xa)!KwrYq6slz> znJlURC7Hnc1Zw#bOZUpSBSAs6DEW1K(r-ceqdo9Qh{P#B7Sd+EUgp?y(3Wk8=TT}) zZskkIPY3)BUZ`hqWk)8KiO_7U;F*Z=-OsS5pmL5c6AuZ%=jp!Am8}`HGRMpy_mGje^H@idGxlVpB&H!G$ArGT-}m8jUDBNLU8bV<5W})Cq+*v&Amv2u zju>^61b&Ws1D{YlxMu_jGlhJG;+)_(?P@S#+n$)uBz2mAY(`d?Ahv<0%QDpE51OzX z0g(Av^}-7+3-Jo0=Vs@K=E>}z=gaVYT%M3Pz=_<5!sQDvq2HkABfKVjU@VGUi;6cu zn$9pa0IbUbyMgm)_hMWLIp=EcndcqnC{wlJtx<^-mN30~JaCQiHQTKJ(Juo&fqQ^a z62i`}Bu6C4t&}8qm3|OB5N$j$KB2&n2f*Jo`a!D}Y9;WjhyI4d=bSGp3u2zi(G=kg z=av?kl;gAz+>}Q)V_k!(d_Vj$KU5IKXnODX57%c??0Fu%s5cYJI%5>E6W`@eN<+ zo!}c=(g}|#k4cJF>=x@*#4UVwygw`)tgoncgsg2Km4etl&AfvCCcLlK4=k@pAHbP| zB3z)&JHfUX_`}(Zl%%1l!wwA3bkX#@#>aKeHPhc}129%3&sfiR-i+N+CJ2Pb&cas_ z?_75x52q*CIh<}L+tHN1`OCgaTtQia)&l3(dGIr$Lf$zarY;m+KyIf)>9?9M$1lq- zu2bZ|67cV;#dDJ@1Ks!VXu7ofz8FJX2un1utZu zXftB(?Nv2sSfka)g!vg<-zB|%bO(FKdHeEKk}EM$aG+*GEJL$Wewh>NA4DUfn1%)r z`RBBY&lEWJgl6Z7@?Ags!*~JXd{|@L+B$$0>RbR8C8&-t(fv3QF+#Sds>kOEPEk&EPSKyBz-aY z3H!4R-Wr|I)_oIz z?rEH3Edv?>>wUM2J*WE1cWVq8SLrz6!POfKL{A*?yx`|Ue#~Y7RQAv(Z&D#Dog6C0*gD*8J$@B(9Z^rn(S#_J zMfT@2rVp^M3A`X!%)mcSN5!a~<*%k^`%FkH=u`|%;49kEn2?nwhI2@Qce6G$;ixoW zn~33+9GTU^(q%#94ox(xW`Pr*5C^(UlOR9pZQLnZemY)S zR?<#NM+JN$Zfa$`B&*2>sNA8Dx3*Tv^SaHd)JE~MIm@QZW{GmYZ*azSm`eMURcV7h z9(AX#)0wH_H{P&va&!gwJyino#-MHc^tgqQX$KMj>i=-2$ic{C^$&>DVxSsJBT;$i zy)@covjrqiRRg{(*=bi|@Cfg+qijj*;`V6KB7~q$CE3wOoDYWC9Hu2zqCOtZZ16<3 zO(>(u8A}ViEnopK0|erBO?j@+dQT5Sivt#n7NR^tHKq*gG zmy$={yO}eR1=_0STf1WXF$#bM4D%Z^Vbv8@Rms^5sWf0QNpG>9i>+*i!JNH&^=TSi zUa)bMO0g^<@k{}lv36aly$Y~@N5f)GUbIM4!5+4%v}p=Ea5`U-(t828iet#XcQ(_XlHVtY`9&`eWy>)KCZ+qD*S_u{G4;MlvypG@3FQ!$#+Fl`b>@07ho z0IaqtM8KpZ`Xfv_rwmj-W6(gTYc&T!w^lYFcHu=wT7HCt3DnXu1IXk?Ioy|W0|dzw zwtVcY8LK$XP5}Q%K7z;gTp5C?$NB6YS_10;NjU75N{BCyOur25G2ey_0m9e-0TpqK zuZV8w^r4HuelG2YQC;;sxd7OO;9}2u&|2wgk5_dvgv)wNKvKVy%l>=XN@qyYFf0KD z=WlGIvtN_3vsmkTa`mZ{4MEgJDOpu+uhF4wwrr4Ld8!AeZcbcPW}-gk1L20@t)Zb;brhnJ&iWPi zWrh9NINAlqQ{rQMVr0uh2ueX3^>d-=BW&yurn93!^$5_-9`q{k>zND90Nh{Qi`{D- zVjQ#=3Ht_64&B>~PTr<<6rr@}*eo3je}kh#MYjoKIR%`&qxo39J|X0CN#e{%?3wE$ zbuq0Vis5PY>3IhF^*Ld`qsV1P^A|!1D!rLT~LB;Q4J&r5l>VsRj|dXWQjhk_&IKh z^0OQ?a=+nc^%6iksyP3SYm`35gvp{=A{50VTrj74XrdsSs9bnhe_FpBOSr0CIqK+B zNH5JMY9u|VP5V*ALTe@wk=3$TroEML$vbThtkBO|sy{mMttAkjsVAtZIKt^K?5e&} z%b#ZQN%wE61PBC#f!&LMufZdRj+yB0)HRVcd{Ojp!g#%__&U@os_$eOh^};Zat9wH z;P1Kjq)*}ZIe)$?4vaiGLF7Img;pC03^}o4fWR(%rNnsRtuuU$Q$9nwdntXJ??)vg zO9uz^CsZm(>jN7ZR_F#E#2_njO^MV+c28_oM zuGmtkC@_mWt1-3n(jwINC&7Jq^ZW$`3V0iz4$sQPM*G7~F2h^a(B12R*xTe_KeL{L zb(_ZyJiguCl>bjsx+qWZuYRa3+z${Z$M2g@dhoG0wVyiXG}+1~`tW2}cIF-UelY2x zfpX!woOiu>;Fr;tjD~ZYb8GOvmQy!Uu_CzxOM9Q8jAFsMnWpE&=298H!0{j4uG(qM`Kz*dxFoQ+nqu0dKGA7MR z(RTT9mj<@7LA77j@MfF$erzi6cHPwA3&gye?GwJd4&Q^xFbWR*+~%-3X-L7@aXCZY zSSh;%b4>>I)7R77Lbr;z{~=28Y{#UCAN5f*Bp?}`z7ujw0ATfnoLkZ5+n!}ieI;W?fyQ;#10Tn7`WU0V>OqOg@)uVb%?yC z9+W2ljI#`Fmx|OoNkc{6>z8nsY`;f>y^0?}zB zmSPhJcCJMSOay?An5p#AH63kJqKdQHv)ZcLxyZTGx$L{U=YFj4GWg#9*7!)acC0(A*T+kG zv`CXseo3;XAO1dk9ncH!0C#`_)6%ctP0n2{YXc14pi#K)10V5H*^ywHDDHd7w4@)0J!4FLV-q@Sh1rynP}vNNx^^#D%-iOhv2M;m;x$TYnD>lr zx*y|P(VoW+#_=epZG&wwS5}j7_g4kFmA}v8ZpPJoKb;$9tKB_AN{!Hm$AFpIxKpY z!vUajbg`2&oa=0BkMl}=P>SnIFIcqA!0u(>*$IQr^N>VqAgTwsyU7vf&fFp^1o=fn z(z5Rl!4(-$POluzx;LL9T$5S}W1DDZ?Uavcro6VBxNQf-A+hSMdQn7=u(yq_(9Db0QKn8;2-{ZKh2`<;gl@F!Ge| zR#(9hZtEuCcq+=7PLKpKwfKPW@Rm@`sWl3N;LM=;TJWqFQ{-u(fCDv}IA)RrRuztd z^3$p25a`tOM6kQ;>4wzWt+3abl1Wg5w@+S1S_V=mtzV4DCs%r3?>}#ehkID6Db2?c zeM5rp8<~x}T%19S!O?z7hfkwfD#mRZHO15PU{&_QZC*jJ)gi)!nJ8D zb?14CdP=%Wzo-?5vkt5mv;^cx&87Q+t=l&(TUJEg@ze$!xq%-{RK_jkuqvOQKSpes zlB(GwEC3&;mwF%#5KP9;>AMmzCUNeY(qQ)ddPLsW3DBiwOb`8Wz+^;5A25mq=xWXOpiQFpWuS{_Y!(T|n|3pt)H%724Pe46-mM~XAB26(1fNo)Awuz({pisE&l!2AQ{KL)uDCjmt04Q$FK2c%4Tvag*sA%86UNM0=qgp zzeX{el=R)pFL9?syAf&&x_HKpZVhjBAv#q!$K4U2Det(Gb@ziJMN z85kHf_cc(BGMp|W2I}T zXJ|dkXT^z*2*vgMpW~_Yv>l@0=%uu%3gsNricM&4ei5Z8y$eDPmTw>Dc z#oAH~nTW8)6o@7RrXaAyEO%Cid$BUByS-%iSQ{TB(lNK0 z1SiD=7e=#vx&!_MbG`6l9?a7g2mRkqiO9b|r`=!NynwgiLAfqIbp5Amym0K%whV00 zGJe+Fb^Capl#D6s=neghM1$=}hLY+yD*-}`fG|H!};K<`BdleXTS9mOg zE%PGZQ4REQiDD-BnVWyY_Is%p0Hs40X-%8`B?JG3n#YD9pA zs8$v*T4RHMLU_vCo&FeHvBv~@KxJGf0PCSxcR+*}V5cLaeUVYQ92Doj~$r%cp`808>DIA0dZOsR6oMo=>S z;HW-P7!MHo2X6lDek6puP7jUc=%QVT_|YXpmgXhMycA2V{&)d~#x3b#We>hY%!mcGLW&=k+!fc zg7g-FA$f$GL<}p|WN+zIDNU%hg}DNv-#+&Sly0` zBNt{fen-NXc|*9<(A5)GM~!#{&223MI~Sd7jY$EqFr%kWhxsX&7&>CiZqw>S(9FU9nBwQQ3fXhScmgG#)Oi@kI z&9S zoj&AS8DjED17ix(?`7s+E%dtXeVmZuZI=z|mc1ZDCCtPaKU9pxI%s_BkY&u8{N0W5 z@C<5}=mL_(c%oU<$4yAcm#^w>%JiK$v%m$N++l_zJR_)XC(-rr_F;DS&i3}$4>nAR zYhFPrz(c0PdTaf?c`;D`jwM}$uoB!(S?QM ziQdK_8I zmUASvk~Ao)gAWn$_XETJKfI z>O=@wLXm-R3OmlgqWF}Uh|9)GhrErb3|k7#n#G0&=%G!!zsDJ%<{0`QTt@iQEa%ZAb-huRT0SomT*5BoG=2^guxOY8$`MNr zQ<1$)8nxKYn(ms3aeM-M!hKS7GGjI5{lEb!4=89gD}f0+#Q+X>DZ;B>0!LIxhT%rIv?-%G9Ia5xy0f+ zZj)pt+LO_g!O!b_Tb@QUH)PlsaOO1?I8KMOH#t4m|A(`)fQ>BH(sY=anVFfPl607p z4pWCY=`b@hGc!{MI?T-JFf%iAvgtSP&CY1w>`E(@kI%8sy{fXVuT-}6{WeTZWs1u? zM>9(-*`;wqu~IA@JPBqAgA`mk;gOC}gbPSNmG|vi)_))FXe(3_OGe!!beO13rpjf- zHHI@i_M3IH+ZS6pf<}xaqsJxa#etOJ5>d%T3U{V-yHxfIid#f+Si%gzo`P9 zP}*|ieUbT3uydd;Mp%div?8RFpv|RMV3p}w@5MJ-oVf?5-rY$tid_U8Jod(7CN~wj zcA6&W^KfaDOO{YN9<(>n5&4|99)8zBwE1{HKBr9)wEl8^;^24a+ePGmn;m)~1WB$G zm#||TW<;0A6+7;(;0Z1I@mSDEeYQdb%Q1|7m&A%b3S-(LPy1{67*^%}7Zf94|mm&5t>i?A zBOV#-;5G)B>gPZ|yq=x30Xdkgo9#Oz?~zw)1B1L8lKKE zOLN<>EgCwn#vORr(-5|_KgKl#4vz%RJY>rs}uzvgraCE;+GTH^Z)|<4p_~-|2b9IG>EAjI8if~vI_~4ZzNp-5c6C`kCLG~ z7b>qrw)XHC1x|8k)>zb=$|hIM{R%v7MTYef4%h8UNnDq~YZ<11iNKUr^HDS?L+9b! z7olIPPOVA=&sqIUH)gU_1##O*lKj|ak(md-2~l5+#g%RuV^Fx4YOI=z;Ld&on3U2U zZe3|li1|0I3g!X7xDySA zqmZu4C|F$}o@*RzOA(A&J`L8ZI45~-NZoE#Y8evDxuM^jBLp4HHzogdg4LO+9x(@ot4EJo$G@a{J5^Si~V82YuSzD2VCBo_Q40{Rrlio zcG>#`n-#a^s0t3jP5j3**(q^3AGo)t6+*x8ZOf19sTXb+kzjC=?r1`&HiMZAnEnqn=zp#<5*jwFmB=bq- zhp2uKdG#7a%fqeUA#keoOUbGI1oe_hp((?1hZMqXVcjJm8<0mB%;!kCSGzIy{4p5{ zTYWXfEljuu4pPx}fHmdIE~t`%@8KCDjx9sD3GHq%FhWi8Hm?#CwZ&HAKZ~~&d8Ba1 z7Wkv&u}+LHsQ(um(Lq6ug!|IHMkEHN_V^@w%6G{z~`KBqCpuXkn5X*D@AI@oV*ZnJuv zVW|s8!AIEyflw;@9?1hd(Wqq-*2AHhw3U(e~ z^G2R^q>rGzXnq=FZ2A&IC%6(Z|3cn;UKq})Ew;kIAFiK5{dNG~;GYxTAI|Km38FtZ zV0eQL!Bl_ZN~OZX^)=sxT#>tCz<-mgq>#olFf~&+hdn zMD?y8@2F!g;~h8ihlI;*#b@Cf;O}q5ZI1yR8Nr&eO>vtJjNeY`lT%cGAI;U~H!$V6 zt1IHPE3PC{wD&SU!t_0Py*2&R9HIs1JpA6xfGn#x+1vPpvqoF`&P60Ms2n8aS@*N% zAaf@(S8DrBIGATxRwc#GVV==`RC+F=Sm)ewX=LOfxLm8LS1gM}aI z)B>?GNm9IV-oX!d6DFx-aw6=r5ut^t(n`339dw*1Z7mU{4gl$8)GpQ3oa^S--dL6B>3DN?Cj$Q_gV;0xJ!}w2sO!ay(#V-c5 zNZMjLhMurEZUp3_OT{+2>q+HNKkc!fQb4>h&z_@{T9p_rU?`ODVgUfE?k$eq2fN zP|>sko83;}L`T&ClU>y#md`V>veF4kkXl2QB8GW&*a%lT@;0(EE*D2q4ZCx-gZh=HKMCly4znMH|8?N?Snv% zcFp=2fwkMO_01sdi>_@wb1l8AS>DI}|l0v~}G+?J-25#zQwL;jJ^0``T zNt#=oGT7&ZlLd0?8Ee^V6&}&}-b1A}#|JXvk&*==s=9vami`|hs4iSC zJlKcC6oET{pPDXlln6t{ni^~o0??V~7y)&MzW2G{?_7~F-2}I`nR^T@_Nimz3fx_x z{%c?2ZbzjkO79nR@)ljpRz{I3Pp}DRw=6!Ct2O08?60wGMajWvM8dx2GHOTS3i&7&d%;Rqkap@GG)S!Chl_+X0l+||fscOsKJH=-B*koI%s_5#Q{k)n^2vcEU&X2^TCyXI|I zt_F6O!tsUoQukLZYcjI<&0!F_Haw)!_%Wa9ZV*0*KB6Zq4JYXW0In;oeum*B4Q5SIE7q-U$=?r1ovU7DS5+md2Vb86vE z5z`U0qEmH$A6dN_DYw{Vy#w9y?kZMX!MWoP6E`@fN7)(Rp^AfHLQ2!wqzD~en|NR| zYW&>Li9ac&DK}6NaoyO`g^C}MlD_%5Tw6@unrqG1@8cCVbkNhZn6<-a;!GYh;BQZc z#p}hZ?9z1c{f85D;f#(%mgf>-M8Zfo%Pf(6bUbDDg+uVL`F;Mcm5Qh;#Ne)|Opo`N zxR{@Vo6ev5d)xQ7hfR(Q>6;_;GTPtQ1?^?`#4>^+|G2L1BS4k@6FmJqTvy@fMTY9Bh`BaRPMMT)iG_nA zv7nAhm28gZPSM4zjc`Vb?3>BF$vwq++mX(N^@sI*+sW_7oV=-K z)HmpP(-YJc+iA`YY8$N{mn&iBv1_M zyt_hmTJ_)!UB*XZA5ZocPYi75=ieb~=4Vns70#Fiy;cxcUB1Z`KU$LMAdere`Bp;} zJ6z;eOOTpNjvNEiQxm88FR{Y6@Cv-N0yQccskoJWQW67w18U|#87xl884UL78fY3$ zh-1vzK-7PxGYKuU-89U`(|G&rU1duVZa)eP6$!8*5W{P()?O;8V7Hn0ZWHc~(e>>% z@E|39k?qoAPB*k!9oUU+8HYkkIX|sLpS>T*9D(_rD54}AqRh@;sUq;on<*o3M5d$A z^gsyja3QYb+b=~L3VAT1V#2(<+G{j;(5q5<62u`Zm|#2CiGyD0<-^xW-4IeAOu3GJ z{>bOglPGPxx^`cO)QV2OMlZ~M&%JL;P;kpcUxIDsCuz}0n161tqe+J7JgPbdCNa4w zhOEQeV!FipJY=Y`m@yo}drBR>7~_9i-5JbefI2T4VZ@n@1KUdUx?cA(b=uHH6XwOe zm9pOSQlxcCR1gv7U}oIh!j!Q7V35G`!A!Vve0LJLPYarGuu=aw8qVN453qzWrKe@k zZT$HH{GrhP88kfdDezOo$516W#ADmjZ=-#0QJ&APcDa($mWwfvY5-VwFf3jX;elXS zk;2vAds?y#(KkhwQOkSkQ+LY>CuGB$j||HZBN!A&)`E5UVWQ=mrtyaE;kT8HFgEFex9?!b-6SeI1PzX@m_{TC38NIOPp3vDLm%A>dy2d_L$X6hw&rNsczZ%Id zCAkg7=PdB|T+8-;n%GNq6mmk|tBk>=GJXHW9k2yGTS(?moX+lvi55C^hHx zCyl+FxG90IkSkfx2Q%vBuKX@Z4uOd*e6(RvAqFXX{SgEddv`I4))I)z!&?7&sw9i5 z!C>piG^dKS6SBlIH;n>timc>6DBpgjw-1JEr=un2LFbpH%R+I4S;&D31asl~s)+6d zD%lT~fV1<&Fo;tgbKyVX7qoukm!BvPNyU@wV;04!4$K&;TO+1`+&&T;$)yLVlktA( z3T}!({5Vv18Rb$s41XrJC#-k5V#d^efy1srhy{&E-6Wpu71H%3=N&8|jre&&tBeoR zam~4e3mhEj>6qJ_oi;+|{Yr2Ipf_8ToMy1MxDIV_h3pb>t9j7nFX{K!HAl)Uo2>Zm zWs*1Lm~?Jp6Ja0mVDc_|K)*22G!Z>9nX#_fQ`rDxld){=#A|KS6JMs>!UDdK-KrK9 zw^E969B3QYp9v-@uzn=35DHy_nhIuUA=ujwxgT57m&<*9s)sj=XF+(X8q+}*IFj(e zBV8NIM=_Ox4xwM+X0<<`y#MYwkSwGfZ5v)0gBJ}azOcL2b+-C=h?wpD!gafF?ZFEP zqD*=o_ezQ=$^)?0>Fmro&#4X`vVVD1?ls%&-5bDQA&6!r@)l)6r+v_ z)rZuv(jQx0ft$mfKTYli@upjPl$o1g~x(MvMu(cj(gNwJ3_ouGg4V=?NW z%}_^zz#0fnFhtTpB@sua7=>I!s)HP{yD>$)skdyD(1?@PHjBO_?iq$Lg*Sj&AWkgw zWoV&uwryEXM5gjhuXQOhWc3kiy9}moJHji_Kao_S2x)f{D-t(LdFH`SaOV!$veIK3 z7>@|%O8Wa~KZSGD;Pf^NfO{ z1?rRz2EU_yON671%Q;TeM_(CTBki-e09Q@ahu38ABxh-5WN1x=V{=;Ql?QxmTb-px5$>zj=Gd#n~kBT{d) z7Dgr26Lb!yv^B=sJAJ8#3-DZT`|Enker4IEd?lzk zj(nMR&98VT#|UdL!<{o|K2WX9Cq;it#lk9juVFRwAYLDVycnFSlH5TugT9aHqv08C z0d+zic7!QpXV#tCs_=Y`xUVoPM{!BmHT$6*4s>c(x41Sb^6O6&cJOs!R$(ptXw|WL zFgIE8DwP%G(=j*;+|#i!nzP~?4>rY91vQ?yBhfnoHUz$ek8dxu5#RBv5!PVB2U`$7 z+Na7_hOH7;+7aNTgawW#_5(eL70QRjkp=E;Bs7XOLES&n5&J+)pM3ul3vPER_obll zb~Kf-uh0|QuaWt!kws>dQ!#avd{-Zv;$0vbBd@U(HAsQg0uU7&abzbEp#U3nn2Run zP$oWz((~ey%iufG2t2Aq9SlWY;VS@}Yp=O+<+H5xur&Ow0m(u&Z-Y70hAIQzt+Gq| zJ6H~0BDIKHLjxL>s!%78nQAwdJJmdhSq-idrY7hjMfZvS3q*IO(5u>)K7V%!<3 z%=5IZd}m~Ea6K@q%!|@nk*Yf!=a|F#8^VY4BclsL?A;P=b(k=aYjKQpBF(?k?t7um zGvzy+H`IjL+a|7B~v1usEjSX(e0;Q(Rr)=fG52 z6kEl$4Oogux-r8w`ruTmpd77mOf;2kxI}MY6O&g}ub}J0XuaSu#y|F@)tIp~vKi9E z`uza^U6uJ9i5d}i|M|C4Syet)mgD(ALtU2Apb3j&o7NCpMCDtB(MZG04AQzbX-!q? zx&}K(G>1E9bqD|EwZ!^nnqI-$ko}4<I86yth8iuhTdnsSz_1Y?K-nHd21PGEYsH< zqc9YSX)Ap{id%H3uZ$7w zubEMi;KE3s9(|(u@b;1Y1xbd}oT)juRGKmtZ=Ry{K@45=M?+`0ELHTQQ`NKUP;phP zQXMo(6gPKKh2?jfG44&x3&olq9Qm%Z^ZBC@a(qE#7_-{AJLfdAlhS0M*aliMfR%CMYm2*_Fzge8eGiHn$&L$JW_2&x;g&#u2OX>J$mnv2@-qiv(A6Q}8|; zM?JC$!*@Cvhp>JRk}im?96T;wm-gdy_MIMl&X^6gyuA}J+&yAOQ;~_+@o#yEX%W39 zD50%F7Ye}fs;i;`Xhk|nG*x+&ph*MvfnO~lnpPpTrVQ{Xt z7)Keyb;tSOlvplgw$mRf*H!vMKWPKmy7mRGl4;&E4lAlq4TIHGYq)cafE8ZPt7gwD z{!_gWtisBp${y9kos=9}Xm%2>pvGy=!)Pg$oyt+tSXWWdR?tG}g=b6xK|fJwO`m^7 zV5g`iqFh>)XIZo~^JXi~;2fmd;QScaDlBVY*|r2)8i5%;56_>kr_Cmwxww`|&e6ab zmZ!3w*NFib!?A=uSgXsg$g4L#@6V4_-4lk@Z>7+1eHVUyY#_>Q;$!YF!sq-|#N9SvxxX!~ zlO?#<>nP^tfo?92Vc72)gwTo2&cM@L5++0OM06aXCORrqfhC4u)_*$zD67t8JJ$If z%h&lW)q*JO{mm>nkICoe7gpq$TX|H4>*1L`26d09D7uRmg3<8{J8QsQ8JYrBoj}BS z`q8T_h0*-Vy#ktHmWZ2zd|l3~qI@@|m$5-OnmB`V6R_H}pzHgmRhZJ6rpp^i#;b50 zP0`H@s+`b`ZDZPFTlYV3{0!VA&dwo{^4H+1F31DUt;yanGkAZDPLs%#mxLTa%XH9! z*+j+MIiT5I)%2Rl`rPdk>D*eOMt12*PX)?3Q;>5u&teuuoY^5XL7oB93$ z6FDF;ShVquOfr(B87sE_EHhY>e)JsTx|uiuwKfcv)(jM9D%K zW+RZ6c#D|2j1dTE5cZuy^hY;JK>~5O%t56PmKL0z!EKk)FEu zx$j18J}nwadMfz>h=w$1snC%9uSnlthyFcC=Vzo}l0H2_P$g}`QT#-QCR@8t&7n}d zs)1B6=+{{Ip%4u&ZnlVQ@O@{#=XiC@a&>Ku?b{SR_%#?J$gL zwYGM#ma0@)R~ZRULl2yu9%(M)D=U@9G}IO#!dYD2s8p@f7ZRG$4qk95e8&U<`h`@{0(O(yH@Y_Y>Z~6*OkNb*j=l7bkw1 zKj5&~cy7z3tIkxQ>WQ21pJPLG5Zy@jqGBllotf4kyh4N2@HmlfxOrVD07iZ5AAx*U z)Ry9Iu_^U7H(E))3%t28_p`jQ$#H7sCS&T9qRh2CwPFOSBQT(D1lQQA{&7-g2SQ1~ zk+!$KGs!Ng9bxFP=(QXm$$f@gDRWGo4y0W>-r4@&fHP{l1!OFQ}_6)(KUDh8{N zxx_~`{!!x2rCK8tM7VoNRy)2E4tv-Sa^VlCe_-x7y#Q(Qzl5>`E+xvs$u}XO>VE?d z*%owI6W+;>h!lBq!0!VLe9LfwNc7G)erW-(z!U-luRv@cnpXI1|(aR@4E(;@*usWZ8xd z5d}2h65EmMmM2@E_2@eVJkKta(4nssY^6iL5pbY0NkE?!UxoyC9Do~%;l7(+3}PXG z>Glikv5jy`amx|M_#E?T_Mye?BRl!Yn=Br~Bo3K}X&(BFKN6EN$hxN%mCQ_-n+3!? z&N?2kWyUw|F^+@{e#^ibDMcg*@hBUMD3Xo%oCkbKn@wzDhQxyP3JS`@n?`rL10d3Z z;G<^Q3QYj6=dWQ4a`ST|7!X123gN@PIZPv^g1$M#x^YrObO<~assVWWQUhj*HW?4Q z46@02Cio`sz+#T|At3LJptgbij65LG$X*A4!q-(yJ+h6xd-%fEd|z&XyKto*;a(E> zgH3b!$N2{D;K*FZi!2WGwF9PrlmvOi?2Swau&KzRtO#9I@8DQh)6V1T6{O-=igc{x zq~uH{8B}GESqFseQq(PsY()5&5HaZL;j6c@u%`(mPzuk-lYy(5w0S@rNNx?L#hM?K zO9`s8(1d@oN6%*$D?mG-rbCALaV&_e0GX2(o+3dmI>lB8JHi)QnoA-U>PmS15a994 zN2U5Q2}+J2qLd1MP0>+d$D=R_+C4xK@vo7mKJm*Zp!zb|O0m}qprZUmr4Zp3xqpq6 zB0SnW;IB!{$Du0s%THI501yKQfuW%k#rg_^z(7-xN&Pb(1`fx|{cEJ+K+(7Xe@!9@ zB$d4{Nr+M?fEXkQ3XP-)$xj#z2AS%c)IVb;kRW8LNPvDJnpp0C_=&v|`?IiN3V4v= zy8t^ps%YhZ)}RA+Qh(#Gy4aS`qv385V2>sd4Knhj`1c<*5x11&-=cl z1JN9`Fe(=6966UCq(R*G0jh{!c)kJ?B@Z4{6pN}CfLx5Gp9}R5Kam9Pudf{LoqGiN z*OZ{W17;Ba8hPrMvYm&oG5d5VdLxVoZb4Y2>SC#^CrGp;BNX(s>*I>a8oAh_-T zr<5n?#G_ukir{^51@}bh5qwo&N2db=_~0(|iggxhB~T(R+6y9!XZVsyu8UeOObo`x-(Y{T#8-;*R+{y_Nb{S+8xDq0Iuv@i1Dx2)m%$Kz zD7;FAWj{_v&5|J4mB&-q~r5T{nih_;-D9#%Fg-&2?G1fF6Wj)&kA1=9*s3frm! zG5)iC9V;=3(CgcYHOP*a%$BX3&C8zy`mE1py*>stXm%R4h+}9{b|b+^!U;7> z4*8p?vcWlqiGVbh?~Or+JjjPhAsjNko;FvYtWxk#%_RnHigBc3XaQnL2{aV2ia(WX zH1|?fN>$%!(52)?sN()ed4tjbIN0^zfFl^(dPyhN-?JzR73h%u+L=p!x4SIFEZPxk-blw(y&w=FxoPCqY2;@ zngL|o`vxmXLYR$WOOToUkT*eMi&cc1LfrE`B*)$=a~hVvezU+I*k$Tjb&;v0+N2Ce zqXf@0L_1W6N%sZC0d3fSee(|AN410R>17v)L!isz*t-UjDh|o-?wk<8z4@`C!R3KR zE-FTiB|@F+Rp*K~gxXhE9JQl93q*P4^Ng8}+#S%;ajHl5DQVVGLjqPN(EfE0o3-7p zh3Z0UllJp6@8e}Zik{3CD#*ht@8-%~ucevsae%PYJMR18%jjbsCN0MNnTH}w65^gz z3wmep%}P)FPWm6%mlc);HQ8%KHdPs%3SzIM#1DWIbs58#7vCu*sYk8^eO{5DbmZkU zAwZrk;n);`JMoy~TQxLv%OMYwK+)9@_C9Z86!%RmSHfk9hSj+_$ zbAI@O{S)LPKUd4u||P0 zo%Gm4*>`l28BzsoU!g66Klpwisc#Qov}>J|?mOBS@L(%+cZhXpH~f&E09#+MSFU1P zqKu1_w9cMFv|m2Q*y9YL`?Z4P&%Ub};@OpmXsq51fe0{`T3A?0K6BJ03rq4qhdiHzs|9fx*S88 zNY*ATo5l=|O;(y%bvMp%;vpK)j!#P_*&+q{A0tY&7(}Q*g^{Q>|Bj>em)`UbZX6dE zGt+-^<5-yfH|Oa;@ml|m8z=l}6Flw<8As2``NgneVrBV)$FcqY!sFQf zCwSanGSz=$Rk1Mt@89q*cpMA!{}UcJX0yu#C;IpSL(d!0jj=Bd0|xPj&zJ7NulN=? zdZG{lXIUXr^uzm`t~{)x{;mW`8L6KXXUKWaqw)(S+<6?O!-W^-6UUm!*g=2F24%9$ z;_q3$KRzDTgJe-HLqpa(r#(3#^E8rryDQc(h_?+F!Kj}Se>U@Wr(Yx7UfQ?^udfB7 z2|bMk)9A`9XRo;zo|hxL(rHW58@U|qT5<>?Qg6_|G&7cCqv^k|Z{z+7xN;_l^xG zYE<1ux>2@^c@n>YY{1$g72ImoUbKmfi@72ur*nXIK}~%q4fSruF}>X?VSVh&xjtaZ z!+uKbZtIO=pQE&+2m4TeV0_47ey7AWJn?dq_H@Pau)Ri5_H>~U z`umUzfceCG5Iyl`h4?VMqP%6DiC#@Let3Rr5`MI-q4(slc|Yh`_Kjx|SCMwScah6_ zAQCqf2mqan9CvTr9^zt$DE_*8g-rhb2mRkX#a~Rc|HP90=i~Z+p~3z8r}p0>;n=8NuYJbsce{pVqF>C*|?OzzSzwQ4je{;XeKag<$%Kum2-ii`!{&&pV7x(f1fq7%&X5l7c{EwN&Ld43#@-pmi+B$hmY+LwjiGJ%|Hf!b>` zK{BrhiR64Qy-+_PKION3^2#ZuKe-2=hl<;?g7^Vjwx8Q!uX=DmxvQJ-5I;Wj0_uP+ ztbu`OR@(p*L_i0hde%2SmBY=wKYYN)-dt)w)q46dU~b<&zt8x;HNw}Y!?uT0$Q^u& z3vCR5L9nC#t`B@ig}VI+mMyk!96#L0u+qd-9IwYj|$t#3)Q&??Aqtk$BVUd zttJTKi|72na1{fDP|eT@^t9dmq65RgG`-vdmTk!O!r2WTSkWhA^+~h_P~$zi)J*IC z@Z|&Ws%gz`f;Tk02Hf-t2J^Ia$6(!6vk*=L?-)Ude*)eBs9GVL9NWzAurNSbIun)J zl`#NP2ux~+f|fS9*qM+r zA3%HntD~jk@L^y!3jvm;54pH=265uf3D?E4OpP_^N+%~5Y(fc5Ajh@kXChW zp^M?3pV9VCFZBl?n%xd>rW5dv!8!XrDSQCaP~1KFVz;fdPE0;T!f6EeMPP5&Sf*EA zz3v3qx}Xh6H*UY$P56gP9I!yH)(vWWMl7@Ej8S4A?frd_Uc}B@J?mG-2i_v*r+(KL5 zuS=@Hnm=Ybd>+7>eR8lMxkQ8}wDl=`T19;!CkcKEJ8-m_24fx>fvB2^U~fy!QT(*UuxDSIMOQcl0=_H`ekA>HIy`Em6CLOk^Bfax#q;X)H|p;}CXAfXz& zAg?|+fLlSYfUPf_;6oD#q1rY%u1266-jyYgLQ&!Tj6Yhm?^PH`m=E zw;_1e%?Xe~4=+`l1Fk@HWG-y_ARXUr#Q<+tRomzGlti)Jo703~n zF7@D)f=@;JT?khn*@_CBTrNv#>ng#sA)srpF`p;5pu|jAXdB!vB*Dr%de8xSmf9Bz zNKlheKHI8SFCOctzP=_uq38NhvXL>>N_fqKQOVaZLwN54>kIkXm#wrfWL%LlN%Y?I zVj+(Z{CbaP21fQK@gRDj|G=FXK?J;QYWJDn*v@oF!$Zj>BWXcm${)6I2eDGT2_SGH zwroCKLC#)Euk-I+qVziH_d0OetbMM$#P}ZSNq-`D zN5CLHT-*c0Q7&)Je+n|aojfhFzarkWscr9mF`qJRvbHYa4!iPQ{599&x}~3|`nJ1B zp2h>T{Fl{yZCbr97o@o^%28bcy%Y>-C{Ld?fGM1ig~<>T+tiXou3i=pO)o z3E1Rr`N42SxONv^p{?yw!~aNUx0$q7Kj5HdKZSFdbL}#Pu}Qdw;a)O&g*n~j?-304 zF?eYM>vQ>*box05`?2-x)w9q3*dbA0-z|ZRG z0`>@Zy@|ZWO8)b5&~*{(EzVKRaS;#kDEp{d=xO$N3VkP=yPDVEqvc?`lk_>K$^+4y zRgJRwlELR45&R9|b!r6!rUcuSoXA9-A)ojgrAe*9dS-_7eCxtcro1B?2DYjkSSE6C zH4HU}e$A2v?r`*Gx#;o(U_%bbndWP1B8%Z;a~>J6pDfdoEqmqLiT0qe!Gb2*ysJ>h8zJeS(E&{F`lq( zX))}A$Y_=ni^csIC@vA#Vq_`WGx>X8cPm9U1Ze!Q@xCd*5_7z|%Q&8B9$?~k_Ux&p!qf;O%p3#7 z;jiX+-&wjIgfU`vclL!qv>EEg35>(D9w34Ccbt;R;k=eD-$lMtMwu_bt;2r1m6&6O zOuK5Li{KMffg)*D%`HEsJlx!7o?4|vrRnp7flZ&ALt8nEcgWg!uh#|svP-4Bd~oZL zH=htJCF`L=dj6+V)R0ciz{}N_kk@Zzu{PZ|oec~lp-&Wr2Udeca?}ilF40t8Yn;f zg(u0qa|>vwmI>~3bCwN&)DKsN5iOA5ugGw0~e|6j8la+99hdkpzHJ*w#iq2@_i%vi~;6jpros|$wEn_;|y za9tgV@j^?&;jK(yJd?e#r`0&vJQ$-3q44-rmdG59Prg4{vU&b0710TOLgHCnpiOSP z9#>(33tjXLt$U(s_ws9hW(06g$05BMLPmtRl8P=*5+jEveBPGhb623hT>(XTv!gUo zq;XO*)gavc$5nBqLF6oJbe~&L^97a^iio&|eKjB?_y0Ig%^itF`o3n(DTG z_>{hMVjF=~=A1@c&TS&8`?`f$wzr&#rRODH{!j={`7c6}m%(ji-QTWx$F9s5X1{EH zfH2*K6_|+ay}*{X1oNpp#w0r1P)reDM`6CLii-{oNVQWk_Z);xn>ltM8o1R&Z>Z4x zFp6`t_?gu3aOCjR$^1-$PX}W`#gUAfw>fz+J%SNTZLB6y7IVujxi}Wp%*x|IoK>qZ zwHTN*vAxId6Mw7jUjgy_2Y;)MEMF?9Q-LDfBY)bp+@FG^TJC2^WY&It~b;uzRSzKwS z!~s#+t-y<7&LME}qpEi0h0i7E1MWsF z!R!JOh&Fg;)|xO|2y8tQxC%-)&hEID!Mnvw!?n5fFAP{Y3P|UUs^tj9$e=CLwodk7 zduy~{c3Y1iIR^`^GHrv$>^ zlVO!kGm@|uuP5d8j5Kr;1;({4Yi8_F9EjbDs&VcndAG{hxw;W zRd7A{A~`lYRTI_*bWjDe6uWlK*smM6lyl-xJePU15-|Mk;=Y4gEvFDG7BLxx_2+{U zzhz;pB!qQ`r)(JM>2L;wm2YN~kM3OOVN5(kLR@Ef&A(&nEz4vH4pV2gy%7W6ors7- zvpf>sD@o#LWU;+Sl^^OI2I0!LYB2U1@~H@8(_avE>E^1`OGXG#fY-hkT{d%{+nu{W`04SoVsVVAHXwAv`2Cd|Ii76Nr2`q7Woc(^+ut9*nN0YL zpYS!zFf{HRE^38`m%|!+6=;ai$H=5NBjUytyy!VTz@7OSJx2tPn2BTmL08eG_v3_; z{<~>J*7J~gL`?uQWU~>W9`DDGr~8Vl(4Jo_pcN1U1~v6{SEUUUEW78wD@xeNbim97 zD|f0DDc9ADZ>?ls_8L<7P9Oxf$fX+HgSH6pqHZ8}MhbdR80l2dbV`!X*UqRUUVbCz z1lSIiCh^g*T&<(_7Hl%6;lLBLVCnUR!=3LDmD#>Z9Hm>;%hN@jSWC7V5_0Fpw=cK? zzG>w5p*<`W1gQm{7Qj}vf5t}pGNmYGNP|1Y9$XfdsXi>lL!>r94M}uh}~9T`gr>iHPNr+)%;e+{=jZg zR4Jx~qEQcJMhiQk&LH+(0=&=DEHL{dyiD$>JUrR%DP4=`fqi)#^MFv)9#u#eOC6ju zMcxAn52t$Ga&yS?DEIvNLZK>}{6yKHI=H<+3$^Z;|JGp-hUK>u1L`Ua@569cJKXJo z2Pk&h?^1wjf8#u;^LWJ{f7qR(WV>dg9st$SBCF>4_2a(F%M(mhCES*CPJjoqM8)Bjcg&#z>v_F_&LpGj%3&*Ih`wZO zVcd{Q6qa@M2A!UsH`jkM3!pbj?XKACC zg>N=b7kiC}5K8M+>O4WVRB6i@`{DX_CL7m|VH;I3LUyyCEE;$8lDxjmIeD?|F}r$_ zcd`#Ph#sv(f;6TQM4|6Pq)Jksik7L@y=y}Wdd!i4C z_JE1`GP$a6DUjB4s>J1dBzBO1n)V~&OOki{{k^-w2A^|$%#UHFQb7}tRD^) zWkCzl+3}`iV$motnU2pFD_Y3F`h&UjM|CuVe192z3_?n9PNV+gXOH&KS%1xI#0|^K zGJg-wS7mapD0__DH0et~8bQBQ>76ZgM3bw2c_S@({q6Ka8@J_1&u6%r{YEx3w@$6v8VJIbsB{hZiAhS?7mzB{= z{3T+|0fW^# zM>&L#dY@bd3-@5jgm-*q9vwI`pGW?Z;kt9J&(-xtTo+fh)lSH+*d6&gu|fEhE>C(z3e(QnjOT%Um$7hu*%2VO>Y&k8 zcX#B{RVM!16L6%!*Szmt`NpG-E7PwZ75jZYokCCkx@_|T=>(OvU3Ooa$(4=uTbV*t z)3`ugtnlW8`){HQxU!2ws}fynec zzF5Gv0sb`E7dmH&39n1_Z(dv&BWCwx>E1V>}CQ=~Xh!0tpf4oLXDH%8BpXAQR?&OtF)HGdXPG z>B2U%rVwAcC#@NfU%zTz6v>B=q_E~D8d{O)AYC~Gv?xN{)$h{I>wY`s+k#n+N=!6J zDabW{6NJ#Y+TxRubkN*qFp--y-LvZijkpE*gNgE)jP9bf7>jFnq-b; zDmOJA%P7XHzkN+JPks`PW;`fH)*r;h7@euvo|Z`L)RgnQF0>IVflSnx&o!Kz5wYYn z^=P%yL=7Z9%UV2&;b`+p83W9z$kY4jM+V(_Lyuy3uzXtD^Cy?_MnR9u)a~ZqhRvGJ zcUiB#NQx`Sm1?A$udL#tGpDdViwW%-`SvA^9=300F{#|=?pj^7ay2bOFUS0a=%t`^ z-&STE>wyIh5)Hpl7|8UCPNWeo;K!%!5&15w%G<>}ol5er%e2f9 zFW2kDYYJ+fbN9}4;k`7}!E!=Ud*z)SA)4)|qlUy5JHZjRyKNdrgPebeS>2h3d0d}a zgB}+NL(VK6Mp{8k-1MVMlEC*fz#wT`Tb1K~%S|0x)py8Pj2{8kibtFFV10dT9*XFZ zaPa2os$5VRuc%vHXPDPYuGeYYaK#U+i^R^0AZzIi{09U|SJUWS!0@3g2a#7RtsDI< zx9(hkPz2FjVl)y@Eo0vRpaQ$!-8&h**GW+PAYy@li2fh&8I z6B*xrNQ-T-)^=L(e&;91U-(c(66t$ngtTgGYrOGln~QL_vVZgh`a@oU}Gl(Zjec9$$%f<+m+f7L1L`?{hEi%!Bu}y;U1aiWhJtDuzd? zR!oH3?UrVBpZ!9Ag4UqmNV&PlDPF;ZuBu=6f(C--s)}Pe$Mns41X8NSjQiv9I5CAC zmcAAd+J)R}n2WUHk6N|U*EjPptxSh%n{0Oi@NP7EgEs%Wg~r$|u9SKohKa|--GV!u zMJ4UfSPDlg{{0pwe7%50#MD^1WzfTg#Iy8USSJ$qzo!cx_)rNF3Et^a%LlIQ~X zJQk^On~>#!kXUPEE};%dB~4pZUY_*xGxu8WQI=&n8;o*5tt3lyN(0&qfIm&AWq*1nZN}SBG zLA5bbyDvMV??LoDCCj>#jHHTYuQ(@JPal54%c#q1iO8}ZeXsYi2GvADL?c=UiN!2J zGP2H0jd@om-~m>c8Q!KftUanl;~0oml-m3NA=~3Yr|t4<<}a_mFOE6#U>n$5oAAV$ zeMQ|aAku!513nUYHRF;K%UYj}J<4>HXh9S?{wZvf(?JF28{mM76<^SK>+(?zek#)5 z3-+$yya&DLVC$RNlZpmz`yT@}^i7{_?Jj<}^390g_LSlhy`@lmQt`D|04fF4la3=( zq91XU)+s7ypsFR396(je;>NT;(R7l+NX zH=C((3AE;mD@%rV>Yd@pmMv@BKOQ;aFO?q_j8T?TY3lRTruCr@Xn>D=%xt_8kaxDb&X}&Ia=5eaSLZQ2!Gu@WirBk=$`Ok@uosemD2m|`RJHd_%vW%*^Gr%+%9|Lrx zE#w-~^FR;eY;EQ?u+6|+{;`~r*~5A&$3{*FVtQ-Nn_~;%r?%GZT?s71SE2=Wp{a%{ zeg(cJXoNYceS{8bssu5nlBsB)zuGuaA?x;J*EdibOo*eUjIsmwv#x&Gh14&y$L#nlX-K?cFc>Dv8e>JIMUKOX) zUQ4+FI=B72v@R!OkMxZ8wYI#Mh3$g(sIij!GoFthKjlWrH==}jGvzXPJ&8h=a9%c+ z3?u>;1_e^j`|hBl7CVpLByjD8E+-cq z3tl`q(7ut&L0INnso6?0SoN)rm54Rpu8{ z|CBTHwU1m<7K|ssGeY1Rw2T|e$I%|(^VhwH3!iEbjbzk zX7f$Ew5AY}M7&bW)>Vvn(dgQBm^V}~aDj=99Wp}}>5>)yjRKbPEeNm9FI`dmqcRsy zRTa+Gha*-Ax0i&M_CDoNp`$%Wi0Hc$Y%V`(O!5Vs3Ia8a)5;h)zMMK87UR^Q0YORX z7f8aQGpQkE`Pre`gw7fM7Rl@~EsL`_x6IC(!bSm)!zKY6ZlxsR#r9_Xl>lhMG^kvOE5DEenLi5JIS>dNT5`2#T&|@J?KsT4A=aCt>Mx%J#@T3+zT8Qr zEPf!YW}tnOA;^8@!FcZD_wE6=SZ>x-?uNh=wlT7*Yc14 zHnJ@`>?A*)zaVi?Ut`Wd7G-o3-xnxohsE|_q9Hk-b&PfC6k(I8VKp|?Bu(>bMc;N< z6{5xT+$PGRs;|ikDWh$xzp1$Gk`Gj`e?~fOSBL0BP{f6B*#OOq;&s|7O*Fci*C9Y3 zL=B#G#ZwL=xc#4l=zJQe6q7}28{8@3o)&XKYlU@6U zA>5L8hyX3au38>ZLDH1$s~M`-#sTA(t-NSdCXl{zjPqRUj!9$iD)TUPoX_PHW^)X< z5#@OnHbaWk?PzKk3H^@sF;&*&V<`-+lziK%lUrM_Q7pf5hsx`)%+peYqa` zE(~wfuv65_0Qgewkre{kwtX~c@g3B5SsNJz%b7J?xL)NT&T!b&TMeWH^l-=zj!GeQZqe{%e^~c0-C32>P)7&HMP`_XA#uC-LH@Q$* zMN%C)^K_Tn7MjONhNxd-{HPC4>O}9;2sRJ53~&IORAn4%$s00sn6aC`LCvxD<%?b? z2%x~Rc{GLP4I8R%Ypami4zR-}SUo5iPRDt@xlX#@uzw%`+Hti>d-#Licg%gYVB*(P zM257}BNQ%e0X{`B0>z+@>V7Z}$AaaIZ;lf}$ur60qP=O?0cH<5_5(;y}AV-@Ew9x5Cj}V@`D2)Q;2eW{244VOkRmqB={C#< zc}M{{DbzTqWSM?xTL32vb@wg1Z3UZ<>3AOH*6Wq7^EHe0;A<4(1rtx={cIXaK6Tgb z52^!_DO1Yobn{P&&%$$Bd*xUrCeFj+bylczz66fcp1JK}We@}1TY(S-T>H>tvA?u4-wB6pMlw9HA^eS?A{oH~tt>G$wb8rTgK{<&zn0`l z#+TY^C6b3B%eS<#H+rDOqY)xHwW=)7uAgYbN+=3_u`j^}`3JMC4aer;zT}&wMk;CS zk`}RV(y>mOb^WORqGj%2^%=mx(JYbAY&$s#Q+_G&vjK(^f1 zxf&MMQT%D*;VHMs8+MPSS^Pt9Ru+mCV=wD=zH#j{00KLC%B*B_OO+qxv2nQqe=-%K zES8sLiKf)|Yd_T9LqmgC$muG`nJj$=o0Kx!{Ci$T7>4KgP4lylU~ylBJ^}GACk#X4 zQPLXp8n=hlufN)n4vS@5W z>f$Jq$tPi+-fiT1KW!gAjwcQrcV|gSmBZCImo=;$0`N%<>Ae=Tp+Qvi7o{3o)M9~# z$zdITc`D(j?unp(yO9{?)>Pw)jexHIm=2(h9{gHIt!C?`uP~Ztu7`X#eOC!R!#?&SktTOkuKwU;AqvM%jO9J%okGNGzQn+R85 z?ZI1g!Y!cl`m_ke&iM0@yeN+MoZWT8s>#+K<8Acn6yE>LBt^Wx{1JKb;4Pc@YnR2=TG|9vzf4KlTb2IVDJV|HoH0~0v z`qd3gRh*k)(G4BoY4}IJ8VHS}v!ab6NFsOtayZ54MXwFon~_R=@CMV5@5VET^>cx6C0`io zgVq{sg%psgPfGLX+>fb2in;Dss{PgEVsE~4ZoxY@vFWK9mW}x6jUH29N^DX>fx>o{K|`FJUB{p3^u&J=Y%*(#4Ew~t zratuLSOPo1VVY!$VNcgX53=4@_$gvK;8@66H|$Mp`SdXL51A}OXjK%& z#5XeTMirFLq}ysyPPx6^+^Y~Fk4W_3US_0v+P7?&8orvu@7Av7KH=FUnV-jZ!mhf=e5<1XVRo9a08dW2vWf{g+Bj)rLMT+l|D{2Q&%$Y4404-)=17uChM=X+AM_{8F}GSka$$ zm+jUt_$`a&bo zEk*)V)Aho|q;&x|8`R6O4NJ#8%v)UxN|`Ilc6azxgtRmLprg^ zk*|4(@U5I)(M`gk|2@OeX7#27mG|Y-3M3DfFdv6d@!%tM&RYaihL^m~y2qxlC&q$U znH}LXUrccPzE2!t=lzVHlBWKq(N8k<-L1Fe>bb?Jhxc_lueA6lHD$cZ|az>k;?66h8i0($6D^pllD?*1=5jemSnMXM3t~@5lE(Je-o6Ne9IPjEb`KG{jBNb;#I;YWwbwUaeLHoxj%l+;$W4UuJEa#%E0XF$hJtiRM22K;$^tRW z6>KYa)xOb~P{}#kvWz@f3*ioa?V}q2zFI+Y%Di^wOMkE>@G2>3hj>f(-9z;sQxEYU zv0gC@jj^`gR=XBkL~F(E?uRG0V9=A-Wg&{PfnrI|YVyQ70n)5Dd*e5A=4Ev;l3UgLc8V;m z<6?NXvK|UV$hF1^CinZ#c8<%=8J)3*Oj{7$#>!NOaBqm159%hih6aVWG;P@%pQY z%x7i5Z;?tL9zF2oU?WMk(wvp~$ZX>|h7p8|UM=MDga>aQZIs&qJ>{uX7ueTXmex3n z3$w;Rl=LZ$t*VF9_tA7*d%WDdKD!zrEB;{_#dqtCh3FSyO_Nok$YxoiPkuoj=1mg{ zjgFPJP?$saFi*URCs}I=eSIy%n3whs5V)JoCj1S3l@a%1t3qQIvTmP`&GELKPRo$Y@ap(<{HzEt6c!1F3aJevAMWmo%XUS?^mRY}gqT0e^Fxi{M6#UtHxS3g#DvgE#r z!EWCR?i(2|2)|buQ0K@8gPeYpz~HA3wQS+ft{Sy3-w6AkHzkOyI}E-5DeQwA?R+e; z!vBp=jsPF!Z4vg-?Do(Jfz|Czii9nL#P`R_+f2`?P(JK0yhTOVh#`|kygsZFGBpHf zh!aPH=rW(^BE!^9Lc=38Y0;l7k6`J|gVv)a2-zFu#)pF^3ha*yi^^}X48kIFLvTAC z;(Qyyd?T0fq`~yg*U%cX_dGb zG829iT>CA^B0cUULyPskNnQJ1Vf!{72aQP2CJ?GI$_Uk@fpO}ra zI~jQuZusWu@Fm-b3At+PZwYP^{cv@7D##b78hDHBDAl9*IldO-+7r$2V+~>Aupw`4 zB;6w=Msd|dgaR)yjw~3G!PsE3+W~JsUsT4Lq`p0UR`Z&FWJ_HLK5T-?DA^CNjn;<2 z>?hhK&N3{!Mw<5Y=9gWKteYd9*%$OR9(BI==fn&6L2)=T(E{H&nJQe$l(d|8?5}|w zjY$+)k$l?~?^Z<$9$q4owoYRa8yr0OY!f4yJpYdMGVh9VMS&Zgz{;}m{hvcazp#M_LBhN-vZmF{# zAK5oCZ^X|0jBLj#H^0PJsB9U>7SQDL#+K#zOr-S?9RfULOJyounC6Uf;~jU2dG>^< zYsT)Y-xQ+L7gNpirKB?);zy63eEL0^;`N8Co1xLUL4y@Ugb(ybdN za){@|7oGhN+{-Ohei{ln_&#w+EN{%=duOEVMP%@cV7KM@H{hOl<++D!(JQ*Ji z7-6a;2!~%}`~=%p`iDC!F&cG=5-{TxU;msGnw0_ILewQw+H9}B5ntMjI*)Ocs(m$4 zo1pYq$5X}Jv>I>4Ia6U;&PT6jI;}XB^)UZ^_YhUpslfkWlwrL4kJtM6FH6J>X+IB+l7`fMGRUhTe^wIOyv|Di+n=XNTCO z1=2|YRa;H3B1384HB5weX-chWwgOG(Itv8C>+Tr|-sQV#^c6E$Q`a8fUCF2zmx~55 zC+Qe%pm}6xWpdckEwb{IulX^vJI^FS2InQ9@|&<3epxmZoB07N=hUI=#!u_qbUs31 zxDZ7omjvte9(x|^*wm74Tls!17f75hXDH*RZgkOHg)kAFs!m&^Zp`UwZvlMrBCAzV zv)t+Iz)x0QwNgk-6eSxK6xpZ6&R3`YS;OP4d@J^%uW@giItB0(x{q5J>I=yVC*CH|(v(iLX<2uG=8fe4u%5t&Pi<^RnI}siJshY4B-oi>ZY=KiP|&ncm=V z7?nZY^4yIPbM>ze)W#2U@gxya!6|&fX>mj;8v(kqgN#um#je9v3UqH>2OM^j#1Q!M zdK#WLg&OC0L}sF=sH;q4(@IjlX>KGtznQs2R~iyX$RGE3>j~>pEI$j6 z>r!By^UQS*cjrI#jIX>d&s!~UA2!4hkDRjDL@aEK`ASS#Po=`p3RTld=IIVldc7wY zZzAffK?G82w0z*1M@$yYsS&E?qgIzRe3j0sC#t7mU9a4U#jZ`&U5fENH-_p-#Wlb( zz}$o00*s)88l?%aSfr=up01?C)gSdH9*?lm!;Sg^9!6>^IrJ~<;v!F;8jlbQ@f!qt}} z8}(7~L_8GHsApZ(?Tx7qg2aai8HoIT!G-FffeiNB{G6fV=tBC{pa-rM(Tu23J^nbD zxRNU!Il}0cD(mMI0rT#r{6sg=Tod^UDD5TtXOpbqD{Jq;qdT{AgXoG~q&VCtTg}o5%0HL#V^3q!l7CZ(iM~mlaLO z7Hd2XAwPu_6zqBuUzmrczXs!u<2V>id{?kDmUzqf1XV9E89mX$p-+8EePBc_$>pl! zpg|`7>P=HHE-3-fv9E2_TO&DxD9l!kOvliX=YPkP#0 zg&kU;ln;vG87WD(Aoi(osl5tJkEN5;YoNyRoIkA1t_EXNx9)&LcZ|zQ?j|Oyb?}&B zW@W9KT&o-AHD3_nEST|7w&jZF5yLdk_mMy??MSko!7rU0T|rEx zCLqw*QNdhvWJ-xnE2!#M5$;v@u$v!3ZpQ|pQf=38dHap~)`Wp9)Hz3P%Ya?B4NK6+ zpz+g#IdOT4pYF#^7P)v~6GPIMbL z3S#V$d;ERhJCBP@oB7A*fg=<~=21CHiMXlFn&xmu2RSNVr4(+{k=ziuO)xVqOm;rZlP7N4svCdN zRe4ZzI4jLumb!E0=L5AZcy2R8(pPnX8FfOHEtMC@2ahJzzoSca z#C%q4-M<*Laxr!6ld|jgV`ayyJDs2p!|OTP^@Z+=+B=hl9jd(jmjQ3kojO#qYxcKt zWPW0k>h3AJkJM4TTRqHG=f&K8(h(dIIE@nlj7^Q6E3v}NE9pgiBat>pDnpBCR00i) zw0)kN`o?H^;0Kl4!F;u{ApVAH&I=y=az|~gpqnq;>pfpvnq;>Z!M1(Wq}7-9-E-}0 zM)K}Q`{-i_eN+e7kp2(Zq#ANzH?!jXA?aZJk!SDawlu`Fen=>U#Yt>>`$mK^YxGr% zt_BIR?s}g78dY*LYe3Ua>8k!HBdN2fK-BcuRSLATpw30@e?(t(89K>H{=LfCoLpH# zRYale?2BNtyBuC*PdI13_xk}7N{^Ti3p0niwqCdWK?H8zb@hdl3WIa%@q3?I?we@&Sm7SWD> zBu0x11uoorf2)2P={mPa1ns2L_fIapI0@(W4s-=9D21Jw7S>{ui3=CZnW`l;TE^R> z=byQ1P)+296+6`Z`eEAOS=LwTlue01Wa9Cqe8*)5QM*}93zA_R2Trq;M|?u^K$fm@ znT*5kczP=S`4rWfE9bQ1*GW!-XwGZ>7mtez<{br#!KP>WKuhUNk`y_bibJy(l5_oT zq12gc*KBUgl=?FWk^4=?3?qA-QRq*}o6L-Ip5z7q=Xi40&r*R*Pg({sH}ytQQ{P#O z6=P=Tr-p<_yuxfYe#6=YMPg-t7i8Q33V)n2AvUK4EihSj)vB!UO9pJxVde{-mVRfQ z{?4l)c+F;#z~Ldn$kDH%)lqjgO+eeyxlRw+J@0huKvtuIpm{}I|G!cH@0Qkk?m^@Tn+58Vk1hzHF@TFuvU&jrqdg&6Gt<5^fXfi6`QK=^| zMTEOv5ik4_sqH&P3OAH}E|X@qs-WNabgpuW@AZ3<5MU(jhZBtW(S-9~7C4{X#b z((P~%q{2MhiB4qQEzMPY_Dq4EB+SV1Q6A$QGg){Q^&~cI*I&%p!PLJknyH=dbe$8@ zN=3(hswS@U{u$033rl(a1D~4SXIZhHZ;c)3)Hg4Wc;tndSO!%Sr&R zmNI4hm7t^==wb{125m#pJPmzX`8DYE+ZS_!*4O*mD>;g$KpJ;a=kd9&DayA#X3}`;6&NZyZEcWQmzP(w|tPH_t zD#H~(!0iR3bEvF6Spl}u;H*kdh zVuK+J%&tLt(-8n_&?TnOPhS>c_(++*WFlMCI*g-)1=$}e$Pw2|bf+}u;)jO*1W;m$ z4iWVc6u6)+rIbE+M?2=hp^EaD@Toq3!Kz?RvNORD0k-y6RPju*4?02{q*rIO+Bjhv zz~r=4yeh|bvfO;Dhppyv^yWPo5(_Dz!#=*!V>!}Cf}w$$Aqyu~4AGiYFj8X`FE+%| zpHc!S75y9)13{l}s|sbzGIvnIUvmiTW~7upg|TNG2@DhDfkvI%-4Gw=o4wl_I-mHE ziu?8G-9sVJi?7F&P>O+ltsl&t4kaBA1}-wvrQ>nEHf4goWt*}y_^PTFHDM-S!_EpG zi+%apyeIhs)7cTbU8C-2aD~ooO&@y)#a2g(8hOA&H^GmsPI|7Vw`?+E5XQ8CH1Y|c zK#lU!cT9JaTHMF2X6+1R6p-xKqPfls-VodcER zVsK@jt|l$q7!wJM8-F8NRG|-kb#)tC@QuyyNLQK1qdhGBF`3$NZR$n{SwV;06&l|_ z`8SRq--K9~ai^Hi#kZGslvH%yqFh@fH~$!U?=Q-{i}wL<>@ZRZ{VSv*@#W?RCBYKT za|8nHe#bflGU6a%y2N+KMFQMo5mg^Pk@p9Y7gzT$Nl!PDXJkfeAr|BOY!5zc|0b^g zem>Rw%#PfFrrQZW&#_TxQq0!om6hx};;TJxh+;J1tV2zaSeASMIpkYVJ!F1+)86r$Um&A zk`f{(s5>Q!;ZyMMQ^LW{+}H_MH+Jq|jP<{r&|hLHm#yL}s8lI4=^s~@d?}o{DMSK5 zh9<_L6e-YDY@HI^@(fSYnC)~AXLwIcfi%%|byBzhJ_Bu`5G*aU*i!cI$u`i9Sx8E% zXWF0yeZ|P3AzttIbsW9{B!B*z@=jF^!?vo6)W9KW;997`9VT~PJ?+@x60foAK}X|h zDSY6sqC_&q#Xcl!sodx#w|{d<0cJ*7g=4yMPK#?-UBQRxe&y2wFCWe(#wh= z2smC84aSjOjWANv4oOpRHzwlI@5S3!z}OX3$}RjdJoqvYneTB<3U(R4GcX|PC4x$h zoRQKbJ5@ihKdQo0K?2#0$u~p-PS(Yt>%^{*(4Z;$;C(W?4v&xk&izL4BXF~<4kmh! zotjItE|2%r9CZu)HJV_%0o;XPVJ4kY=&#)=+z0}=m5S^Q)F{nTS7AST&h-?lQYy8D z1s}Oxt{;YIQ{TbhU&}$fy1errB4`x|tMsD*4*buexvI=ct!^Tv-g?QyJq29h_$+)n z1~Q)EH{#c{Hv2_(P>n4Su`qbPC)51;!Br@EnC~=sQaF*GDNGf6^@qRPzmDsx|D`vn_&iyYImrHP$yk!jXQEdNCC*dkp}K;o0QL zKFnvrXvyq7mzK94NmL6o2uQxj1=~Lh0T)Cte`?! zcL=3cCOjD(JBR_aqO;lvVXsgTC*O<4WTu{>On8XEK0VwY=aXqcOoTOtf`IUvfxB$y zA#NVHqOxNNM+Za&b0o7y0wR-=UVOh6hn#vDv%@o0jX%-_Kqj%|%UiHJoNfme1ie_e z2LxOhgTS^{@c?QmpAsmZM9nyV^hxysWzEsc3lY&(J^b(H>Q;8-4QK@&(AR! zadIH*3o@ol5pfLH{DJlmFN%uS=#3+Xmgc zz^C`}gIlzy($kQuJeoa^m2n$2l#EpX&uR?sIh%kw0Nyd+O#b*#D*+zAtnVSQOT^)A zBjWbDtD`H5DFQU%!W)b!N$bO)#A!uKbUYRcP&~vCRMulS z^n}342dOKv$LD1~Kzhpk|4+o#@Gru7x-4`JfNz^mY7c8r1Gx1Q9u`=6-bil#td=@8 z8}$xM@m_sB3EVpJeHQ&zOe(_U+*qwYL~>o!h`F6}Xhdri_G<=~d|c|nS0NrX>@VEV z%p5g?qq()SOXM}&iZZ;54Fwx&s1MN5YZ{Vphe6OmRa4vCRdYcT3s7ZGKCkMQmHA!r zbO4AjLIyz`$q%(9P||5=iyC1O1}CH4W}-n#&-Z1xNbT{7?o4zs z`QFr$`eSQ5v7juJJ{V*lN1)viq_$KiP6)GKXLBJ^IC=OwyBH;sF^{eb=l9XG?--bV zH_Lgeh^Q{y{G&OOqo=Fx2}lLQW&^gBX|Y6mZcJyBS-4 zi#d>zd)KdEU0sGlStA=4BXz>FTF%so6pLtA-1I4rs>{uKOwfx%ys6VC&UAy}4R9B; z!7&H3H}$f+L-?QuJ{Y>je_WTTNYBFMA4)YJoc=&7; zMV_O`*+vzJB0=#6UlrlBoc3eK!D~~0O=uyt6HGAeac20}0)r;q-y$4^zf*$wSrq6o z*8yR2=snc~3GLYQkNS|ORRTg+O z#TY0-Z%OO&h24RY)CKc;KKJWna&l};^N#Dv2{x>po%w@8!go9~qPyX5<31C_uvb30 zCsdKcW<_6O(PPAN8iVCXW9;a|2vValtvEaq69;)crMEI^IX@3f=b0ceoQoQ-shEa>9iC4{ z-g2yq50i@^@eOn_@YSAw;+@J*G(}}N5%8Pui!Zr~$^_|abrd1s*!tbPR6F?;5;TkB zWoz@jL?3YRT(E1KIn|IuAq5SY-;%7I&7`(qTMjz#RSt(58;Ug2fyX}`sPP|_LeA1W zfD;ETfhX6cR7~a%rJ%YVjJRUcWZyiYL-$D7%m){XJl;aleik}pl~)t7Ro0(bEr`H1 zB0g5qAgZell6rfrr_X}4l_X;wKc|CLT_pOXjfk-_b1Y#ycTE@e@ap@Iz}xoKaz*?C zG2ct?-Rlag8V)+ddkkv}pm7Iu<47gP7i;h=Fdr>+I&i3A;<<30Ts0b4$~Bn$F-flkS9e~ZndK6Q-+dRzpIjWTzjlyL;3wWC3oMx82{i?@=F)Qy2oy8q~)lVl-)n*$wT#bw($ z5wE606pqDv*0NGBfOQZD%yIIiBgvi)Hxbd~R`_R5!PxA9acNPd73X@|H>1Q%?tzuH zX3+zTj3k%>%vFT5*yi>IQumEvGO63k;~+u&;mFk;8{!7+13aIWK4uop&(4YuN#W2E zQj(vYOV@W4O~Gom^fc9D8Eh~IZKyL>Q#}()B@NjeObHLgMNI$i`UI%%N{5Xww9ZbN zT~oNXF%Tny@2C1v$g+A)x4=dU*m;xgJ$h}JJehTYl7CV zv?GG<|HNOsdW7bs!?7(bEijQ=cfZH$+h2TZkAU7)jV1?CI>IQdGzkdh212QMYa9_XpRH$_lg~7iMQprkT$FEbcHY zT|5dE@47&P;-%P^Gx;2rybbtOZ6-86XR}s`OzBss+>*Wneo|B(@zT(8XK+W0x!8*W zW;0P**GrXCNeq3!pzFh9d;rxgM)RyMqG}nTL|$Pk?aJzE(&0&qe7;(fc7v9|*zk>q z`y3E(CJS35)v%?-uUqL15)hA0q*E1zh9sqGAps4+riP1C3vw4X`Hr7?OXqtF53JE%I{bu3>A-=Vd-MB;n;%%^gS$@x9Hj@6(xo1$9 zC^hfKhU?8uuR0n*WJ*MKipmL1@(Z)NG@Wz0xfh-CoBbdpAqxsyrlG!o?YA#j;=4(= zn`uygK6QpXz0cVmV6|!hrsK)4;Re-(=F#v(Q_I8yyZ(q~9#m^NY0QyGBR1y3PsHI0 z9y8%`7|-}X!b*6RA*adr-N~UM>M-$kzZe0CqkffN_~{{x-VzeQa)*lGKH-zPkv2wk z1F(I!%8G9U-&d+)a%5H8b%y*#i$RU^ij7!tUBKad^y`S!je10D!bG{>6xe!aU{{1{ zGF`*Hz)5zbR`9OeCdq!5KkRw1Ka68We35f$z&`J4ZyAH995oY0bX~d@;|(?73p2Ly zQ}H!eNk7G13Eyym-S#kpL(S7*%fkK5tEWAac7kLp%Z#%SL5ZM*VIIaU3b~$=(1CcE4JV8f zX99|l@kpeY-tVC^Wvk*)}j0i!e)Dh+s0m3TvE}osPitOn{4Hu+?jj zWiQKD^?8v1nS5BzhU-2^Jad1%-&zu_y}fl@9Lv%$9NaAg*Wd(M+=2vm2~KcX+%*LE z;10pvEx5b8y9IZ5f0vwd?mhQB&v&2yzS&=I_mp*Y)pT_Y%S@vRq-HH8g6V9E_iI0v z-%dC9r2p!`JF?2;`PnAC8Z^=-TLj(_BF8{3={maH-hqN(SG#i~mRDq##)*)d^$kKh3MPD&z;&1G!50D~OIAX^kk}G2qUNnnC0+Se zh~~-5$=YWLv8Jbc0rA`w@;C$C%5!9(*KO45;eFr@p|8M~;roe3sgE{s+qKN`7J;vD z_Psl0U0{b}QC>#lrw0j6H+4Cm4+nT)rbPF!^xt>KcT353cS*4yk`Al#9rRFj7Fkl z7ARx|b*X@6DfE4cJpFGFLyUHUw9WL;iWiVPNY zhf~X;>`xvtW&Vw?%&XHz)j7+WERUzT{q0!cr{n!FA8Fh#DvrzjkF4N^v%e}%eX5uD z)~A&cxx=p*4!o&}H?dj=vpEVTJ%o^rSuu|EZBjjUp(3355?odTMnigBnmN_ff{xp< z+U^egg_o;>*az7xp6C;Fu;Q`wpy!e9hfXWx;JFH?r;RHQ%$o^~{~c0lL?tObwzs7#bal+-m+ z$=gaL+2xu&(SmiuV#R%n#+uBOo&5b1W2}91I}?b` zV3x-AknUqR;ILRYwpcRC<*V}Wh1_!^9ZcCs+AsU zkj+4?$IGQ(7y)#ynIY7Xias=Ruivj>n36LfQDdr|Nffeq+HElm>O1=oJSTE0JHU|B z^#}fB^t-B%@ixG{F99?5$3O7#JNuzLeQSJ!aYAl(p6Hx|L%PjM{Uyr(Xr{mvIqe(* zh1~h48%07Fl4S(UOIf+j`OS_+n7VF9Q78;Iq|--fLU9ur_e)^kc2jp4COzxQo1=2K z@gfhQzT&}UaRuX`z&N@C8ElruSZ85O@L5&m(w(zctZnE=%(5A~VKwBSorkFy8kzMH{ zhE<3$(tFkBz&qcT!jZAl6T=S@Bo&5tX)pzYnb9bH0lHmJl0UDi=m{`Pa~18uD}&6U z79^o#cBGc2Z5=E=67d}sGEw*?x^jdnUnRqYG+}bjr=gQ^VU+Ty@ zm?PoH6IN=0`u8Lyb=R7`YN?{`Cbw_L#6w4o1lx|3YznVESt{m7qwH3-?i0m}mEf2K zL%B{?zs7fcC#2@2LM5p{^@|nd930UzFgHrilapX(4?d~hZe?kB6VflEH;bY5o@j|d zXX}1hZsxh(?I(`wGI9;|wzW~l#I(n=mT ztDX*+J&0O8h(F6Iv|aClG@0K=L3_X=q7T#p4SN;5hZ zv}X)1|F}K8$F`m_%MuUpw$dUX}B%CD&(xNQQGP{^KB!$uE&8h}diq`fDspTi> zB1xvwJnxNRc&%*5A$@Q zdxx4>t0#P*h9-_tsp5jr@cp~xb~k(gpS#B=&AnVH=v=u zw)#L1KISoRXuMITHy)y=2qsJllgXSjfd34;CusG}uhMwHKHV25bw&I9Hrv=(8@e*E#1RChU9o4% zd}?B;AM#=cN@4A}r(XKs=0|@Dh`2lbQol8B?DU{BjukmVeDi+kc2iDc&Te&Z(Oc(bN9BgZKyNw6e0e zO*cu#2EwXdRgUe(yZ|NS z+}vHak(Gp)lSMtvXj^G`&>llWPIc9`#B%|WXm(Sn;uik3>i#{KR7yXQZelE}0ZE7( z*rsf%QlyK3dVg8m$D+-3Xjv5F44Faey|gmgRufZF;!O&7^khNl(B7{Z>!BI42Jrn* zIkKNnuH?^S_4!(Ya`>=JMS6=pu&jGS%Pt0W0ATC{!fU014k z{Q9P}*)NNlYU-RXN#+Y8jzSMzF=O6nMU`IguH-bKB_csG|44=RfaPDJtDg%K|EggN zI5A@=*-Oz%2W7o<6U@A+@2Y+Y=2tP)P;FTi3_X8mRTCtrJg4)Fr>pbD=z{sS)lx( z9*M64VNPasiOqp?P|bbVc_(5l^)D z6x|9Q9|^=MCJe~BBg(F<*-$UzdPHYQCecCvmZ?{OQZ|}f`@=dx_Jholgc$BeNZk~< z5;>1-D=6zs2mu>d21|O9hqy=FkGAya9h^2B{MMS8ABgi0yY96ZyWFSeOrGCA*6xsO zd_kJ>+Kt;4N_kQ1nVG2!z6dsqL=}v`>eUqq1~ZkAQ|rIdL`T}nVy-GCk#{by17`oXX zuzlDgTrVY2$DD{|49YANDpFZFoK02psCN|n~_os7@bM7E3D4*TKqC9W>^mz(_fGXPfTW2cE56^aPp$;kZ*F_ za|B7gUx>PlcBW-tpTKrAWt9g3i5x*DF&CeS&xpF zQmwl{mRvZ*1otpxj<=uthDIpUXwx6u(--UgefGB{u&u5&$wq~#g@0W+pS*F+#8Da9 zj8t?SmxynOC#@iE4dgkvTm)9O*6V#tm<@DW39Dj*89N&5Yfo{r<(A6Kf@$o@aVKto zKqaWm$2DjihKtC)NRm~w{i*dfqQ;neZG}bU;SPeu32zoXB6M~=wi7v-=;!+W=Tbs zUB3}nbDvH)M!T6KgUiJ+hoO-a6TE47i)Ia-JPId$3r-hzVF&Bl9FjdB z_?C{qI0sgS3Gh(BEN(ybdteEHP;e91$7k^QMJ7a~9m#aV>WqdKK_IR7Bspmsh zRW$v*+YkaVCHS%ZLF;dx=+A@HgC+%0%-M3+bgC>P6jT(SYeN+Bab@Ns6few?PU}r44(mUB$db2-*e5pkaQYY58m#(@eN zxIJ>94c3FqByZ%sU?|2$a=#_~P$H5b=ZEetf}+q$MuP?Lo) zuEt#b%Q%l?x*}t9uzbU05u@Jq(TqZ44zD{uVWT1inu`a7|1`c&f?A52Ag%H3)SmCtX6FK#e0_T#v2Ku!z@M}?L;rJ7TPlqrwnXlkC1UZKR?Kw96+&i|?x5qf-1((C2Qg?YwhC0QfpyUYo)3U8V1sGj0OzVqA9i=;42!!B(;y>|VF2MM=XuF>9a1^VmV zTIv+JRU}rS>hjRK+Acy^@@vL|<_ZVuEUMdJceZgS61rA3zS+2a>Kur5!j6be>zRP> zpKTHAa9J!0MQ72yD&c4>7Zg>$mEhMz>J+%$EZnvF`P^lzS0>>0BN5Wtt*V)D1oy`%Rtg#d#Jv%=5u1 z?j_OT7}GrCu~?YS`Cg2c=|5m9+}ri z&vS0=B$?Ukk9ZZ>J-{~UH@y>I0?b`ha7w!@5ovC&5wORJj^|m((f4eXe-ai$eV1w5 zY0Sa38i~?|vovZ2yt{V4`asc|c~p|7t(Gh|0s$rGKW(EAJx-vrGa(}OD}93ic@S3P zbKVeb?B^rq!u_EUzTVB` zFHm|o)Y0kZk?>n0!|N+n7LR-`p=@NRpBmvm_RD?2kgm2Uh-F;W6w*ywrzxFuB(1Ix z`f&O*RS}Yn)iZ1$OBcgT{K27}9)-XYu6H;G4<6}y+l=vmo?yF&7(XY+0GU-j`CW|= zzc{~gC>=DyPwBuItM7od{qoznlhXC=7rfcEwe0YN&Q?x)g{zzg^qrJ5)phriNciht zgkLn`$4pVcOQ6vVY$mYvfag_y?rDh?lX@IIpFa=mWi^psGf8nZCv17jaw3~c&@`v{ zpd-M@>3Oey{%GtoET$Or;)UK(q+=WFW_%Ff&R(h3V7T?3A>Io{_9{V=zD=T^ENmgB z75m)@jLT*a@7ecG-u(;nfUX2d9BeSshFM&V4PmdK;hDvmOe`91+-c!yGdyb;?2}RH zf~sZ+R$5kPN5#ST_bT54i1x}WZo&e zPXq7(=QZ|WLU4Kw2`9Vu zeDVeJT0p|e{s|bHcA_Xge$Lbno1hnb&tt}~dbRa^+wIiqqxPCBxy?}wT+W~uTEq0l z!D)$lHMxwUUYyADYFP2dhy55l?Z-KWPHePbQ%j2xlJbk@7U1UDiw|b6F|5(3IeqgL ze72c(Qb>k=qQsk@tVifMr^BD5y}Fk#csBENKGKA=NwwuOl87sFaQop@gpvaNS(Ct> z!>zl_j$XjB8J5Xspq*!R$+BP<(++as$f0lU{Bn@pcu}ywFjbcJB2JfW$7_x^OVl%N_&n z^?PENVR5TA+KWsqlw2>>UDXG|iQY%H&<0=XZL*?;-(fUV(o;4*1`5xP|LR186YC9b zj^$X_*(`^#T^=Z^%I1lZGH|JcG)Xk$&(4W+hFrao%3QuO~-i+9YVSA zi2JphV;!UB1ojiH&wPzY`mwNnuz+qiC6}~n9IQ&C^&|=gL+@1Sdi7rDxw{M^WRVk` zUV^J~^wrs{0%#*j$k}wY1hT3<0~=&lat6y-sZJfJ&6RhQy18DhRO^oVYM%Du7T`7X zadg2P^*#j_ddh3zw1IX9zM|g--p%0EVlTH{`|x3JKogKG1m2$e88<5{xXa0jiCM(8 zVi7xFzVMO?kre} zN@-LVj0Jq2QzOOUO!0>Aw#084h*bgSK0f$TuCbidm48cvm?_P@XB_#+KO>PeVY9g; zq>!1~be>2T*XGbPJHam4x6&H|>r!SSL*G6rkOD`pA#IQ%R3f8ySNu ziv@Uc%n&}~OIPW9ve!%f<{fEgji0GrNMQ9utQavW@~w3&D70On&h&Ot+6yx&WQOoMr9F7(PcrjLyTq8Z@J2s~H1aa@ z8*Sp|xzcK?Aa(jyI^N_VJ8^zwy^gP0$#Vcm3>@(KxdM_YTR= z-E;LVABn&hg3>w<+Tgac2tDDFv9GRGg5NmmD3-0IN;;7>uyt#9#LNb5>Rs<3Th6~{ zOywD#v5#0HT%W>ZtHe`~5G5l&rR>CeS?MWjmc0)?L}A4jzU$|mx)H8W!H`%@a2Z=z z-yHab2PX?#EYWSc!7mI=*C1A>h>uzzpocfX@;cj-X_2DP zj?c>3ZV`z~P*R+*;L=$2kV?*Qq9;V9eO^^Y;PS$f&)AAIHih-l)#6O+Dhu+PzfL@) zVDxcI5Ng-e^-}XdEb=K3KP_1pvqMAA*{_g14nhVDOl$W!9+ty%REEjgU27wfMP@liI z+(k`3f%vZ12YGg9a;sGG4&#;p0jHQ=Gc;DfH`w#eL+DLAlG((aUUEsJ@%Qofpv_+% zO-l~pK^rBw3;LT^26>PUP5aws;$xpb%poSfc(xL*QCE5_YYJz$u+xrUFXC7(z=S#d zG{5QZ+v(m~4n6fIphYdo@(q%*FiF64JUOeOCFe+V`+D}|u$M9g$kl@0bikOG5pe9rG1I z9##%39IES>Hn?OcmM5SOhH4lIvzD7DtZ~Atc6+qi>0;K! zT=k5`_+>kBZYY%p6Di)V)*UA$JkjwHx@vc3KRaIZDyqfCU7gevH7f`sS&^W5wck^m zJxMj*Dh7rxR7rNQy_R*~AXk&bq+cb-Pp=)vMpYSouZx;;G(xDGr&VIE zkqFWm;N<<0!c#a9oOP%bzMj5e<4b_rXx2-Y@J80#{*p2YIxG=c@99d;0}Veuh}-K_ z=ja3Hmv&SH=iP6UD)XJcVo#nCVdXZ zM|tRF8@e`SJwiP|!u#u(49^xA6etY}O!}ZZrKK+saQSs#9UEo|H zqcvFiF?#w8*0Gv(cjW_hN0X42oRI=9HcYy#1{_vRi%fc=-S-6ho(-h?tPu7JN$Ncb@C^Fr1)Uhjj=MI9(Q6&W!#?m=|CW+_u1h?mZtVj+yEAj%2Fcu74E~) zu^6Yane|LX0N;yY(6)|t*U_NSq^CtqZ${pTlPKpC$5!Cm`*b#q45oB<#U@){0=b6Y$Z4$#=W6NXxl{=fdJkFHMj>n%rAH;q zJjbfScH@THt}Eg(t8}4`JS;t-Vu8sFGul*SB+C*?eLeO~Y#CY)_v$-!tOVU%s~W#Q z;dt-K9p2iT6k=lV6Q0+sfS^@I$KCIZzm#F@R2Oa+$uC;cg^OOTJ2kJw<@1anNpl`) zvbT=F?-r(n)M5&8R+%RZUEm{1{9oI(+0m0aqQ9NfqYP0%{W9Dy1G*Ca;8@u^iQ^@M z2<#u!1s{4p6c>lkPXMq-wMW?}Nc+ZsdOg>=Y_2>|0T<(7{d{z5Pf;+9!W~ zrn+{7*?Dj=Gfv&iB-gk79JS7XAC2bLEJ26jveY5w8Bl9POhUrfjg8sMVl9>AGQ8b<)*&r&Yh!TQuY{E7gH_B#LWVYKzMP zuo$>L+r;V0hJ*fznpxmSCh)YRBrs_=jO$PR`4uN7;NJAztXH>pu2{aoGgD*_TJ*jo zlXVbIs3y$4gG}$wgrzg#9TtvLz8lDQt)!1GDtdjHLt9Vg!^w!}0cO5&23k{U*Y-~M zTV<75V2*n}et#o{E6S=m85vskMGUiQBwcK*nEyo8Ad|jvzn=eFFoERoHwTpIXE)E= z9*QlU!*k^?%)|j-mg5z#FkqHh>Y%o#`8FJ6)H$)HS*1QB_9Uc7Y$JZMzTguBcu>)w z1_B^5-x|}5cIFD*kUqzPDTRD%aMx@4E+AAZ>A&nYadYz$PwGHqg-#{$u_--&BIG^S zM$&w9gnrG*M4+Dpe_ZyZ_$~t0shX?M%Q`;Z{8i&#t@p;MdwTP?Dj_n_Aay5yCp69G6Wm zBBr{!XCe9}4fE+ZwxDhMVlL*^dB5L&!)na%P;{#vpdrqx1O+NbPs29$+ z$wj}cyL@x=DvQ`5u}9KWMI(HjlqJw0ccp&%9N?}~F-NJ0-BIrbBX2TNtw z;?ayE78N>98lVHchZPr=8P63=z4!d{1=-+&cjqcvDhX&u48ABT8WA$7o0Ccd7wIBe z>kU7|)h@Gzh;*F>9Vi*S_tAsT7NqB&@k{RwD}i6x8&BJJ!}XnUP$s-mi%#fRl(pq{%`?S`otofnVI`!t3Qr~(nf($QlGiCT74|AKbcJJEl(wJ%a&iB^D zTSp4ycs{)%h%YSsqUxcD?G|8Q=0A4hiN3bMAlFKuGj$Ky43Q*>S|+_4<1Fn?VK=qV zmrqx?Wk`pYoE;Yd+q~G`gi~OH@$3orIFiABnG^1M5;$ z%@0QexS}FKBhL0zOF>#@>wTl{!9qd)TPT%;$e^3tkj_z6XQcKG6=#4@-KFNR7YFeN{+ z49PfGg(Wv&glpl^VqnFw3S3n$hrO(6O7N^EZBLu$La*l6-p8G6X;_}9wG@0Zo1$N( zd(6X@YQw>Q?C+itY;DjVxpJ5nh7l~K{5F*=+$4H7e#jq#%g?zykZEQmRA6e_o}C`v z5e)V6OQ#OoF4t;It$XT176Mx-gk_!bK5S(5R%}TtQDJqj-kbAQNlv$7==uj)^-=;U zPx^B>{Ak~&1*Va9qZI^18jH5U7#rvp)LWKd$vKPF70mAB=p3Q6iKQ(j`8%%$gB6)u<3huzT^q42si6XeVJ*yfB_L z=Kv$!2MG*Eo9J*`5bVJZ+>1yf&^p!1x{n)q`=M=G+mkzLx}1(_kp0&}8)~xXdAng` zP-Y@!!Wi5uDjgmsAlw#Sg$(ZD;zsp?nd%7aVy;eSntiU?gYu_k%Gc%D~m$ov6 z;FfLOKiFZak(d6~M=OXY!e>|d!1nC&zFL+*YOXk@FHSHT2~o583^Q(fFYGxNstUU9 zq{IHLX<3Dq32~XSxo(uZz>|f=p!arLo-PkrgpBK)b}NFek#mG*nD=?Edlk7^*)Mp< zgQW3B#&CSbFS{QX)lNd3=`{$%6M4K3AST!RT=FZ1k~;|KuuGL%Kf!I_^Uxd&_AlnR z<$2Y@DRCGpX`Ext+YtECXztLpg%3$CyCs+y%l}fDaCqzKj@yqFpysTSlS}1)g)mZ0 zskc&)DL2s>l=uC~5qgKzKfO!h#6dtDqR;wmY1ij%%VB*&fXn$Y$B5Dg9J*)%7Ix_$ zU)aK9Y+L|k4sP?;htEf%?)7j6Z>1ZzvH~i(jFyYaARGX4vE}|v-@N)Vi+HQbuuuA! zRXvf@!Kn65xl7EvlqMGdqwfHvkwPZXhi06n*P1$JZPVi)51^}`MMx~rQz5&vd>5*Y zRgJvILMmUZ3OG-{dOw+fk>X6V5XV<^ch+!~Kj4<%o1-(IdRpctWiyT4e)8uoKUs>= zGSwq8^bXuANQCXpsHaz`)-_9d&l3)AM1GXK%O{bxbHj!7nQ+mpO>O2Y!s&-MiiQe3 z3XDCZ!q5(E8T`^6icDS0-(gUv8mMk0C5P*mbEj7h^n|ELNN3bdJ2uUpCxonr1< zOE15ofTvJU*l!`fhnp=f(mB_qU>HO-mEtVNn8uRMZGE5UvTUl2W??!!KrdT_JP{1ehg@+xMeEfTPCmoDKo~SM4xxjl=3tn?fq$=Y zg&)0>)nExuVRbizb>7i%uncKT&c}tMc77_F)&xh2qk|W$|11C4#hER0x&*&2fw}gB zU`zJmh;!EY=*9<1yYF5zIiYV4)OZqq)+UURk+IpZ^CF2ox4~Anos_!Y9}K@s<1lKl zD#yL0v_ZKFojS9BdXz7}LN1QQA{Fu19epD}v`1BQo;dx{^~TJIO0%_th0Z~}N)HQv zyl<0}(~=RLSsuG$a(5!HFHvj?&p8mvBK+&PX(png{I@-iNaxBBPTnjdbcqo}sGFk~ z3u{?&9Tr$;M`U28Nq=uJbqwkj9OV?s&}MaZ+;oqAGu`IXV)G?T51J094g5h6r2%B3GRD5ni%qJ)leRG=t#j9iiV=@ z%w`JG0+(xA!u#qGucC6L!v+g_m|0+_ZWYksf|A_RLT!kJZ-xMsAe-P)dEo5F6spGu zd-eM=_M6ESeBO(2ZRF#R?*QHK_cj>X;H;2(Z_EY66ap68dwW$q)T5LZQ!4iM z5y0CzMNoLG&de#XJvUdWDfBQ%TRwd_PMt5O zLMK^7mxa2;l5wzoLv5;z=jljLGk+|`oE2(YvrvGh{d0n&kK4fds3#@jVv?-xDpjq= zdfu^uFzqmNy43Qb1Ke;@&pgJE6KSog!7mX?LZswN0z(r=sEFXP2?<8{FfODFp?LK> zmKT(T*Vh)~Tl|+KKDf!A&Z}HfRV% zgSJMb+iPoTYl>>kYa_vn)tlL@U~R^YhF(+|7)T;3Z$Y(6*mhDt7T&enk&pyxB}C?E z)RI?))Pi5-in34R%d~&1T1Zj6cX!}14!tofF?aRID;mpAOP2POjs&LduzF(5fl>nS z90YR3(Srb(>rp4)op+01mJL6z+X9M2v!EI_VTTm>f+VQ&zjB*&@u_DOIGZM=UwI$c zCMu{EzpHzk*!?~L%&QX*l~9bg1sfA7?8eB}QO@BE(jTsLXp2Y(gM6Ux1q?=8u}b3YBRZW;?6u==yVrZ zW$CAX^x2I2I-BB*@tQG(s_D*rXS}o9=?7`;LAGW}Ym~0=w;vLM_sd-^dh?A|BgSe& z&tx3hzaDC^FuPMjK^uJ$`l(1Q_nf>RCGL;1{lc4d`;bO{ zu^$fL8hYVWIy`EGh(+ie0MI%Wj$QIS)uel$#hFMQCO;+R0{Lj43f~&GU5_bL($n(T zj&q4Ve1Czm$*ElBfal|wRw?eb+b{9F7Z%;pW`}(GGCQ1q+Sqda46imcXm0?i zS}zN4-r7_-&Srnr9Tl5HCr;CHq25Xh7r0Zzhpqv7JjZ4h<@0>RMYQR0CBoFIG4fOW zq275f)}mBnb6VpL?2KI=>(J&_^jw3z$4(C{Py0bUksT(!&Qb=K$&+Ok((3gSCTC?5 z9ow8!;y9wh*`TFDTA~o0nT~|ix5|yS)HqZ0ym|barb1R8nX;qeX8YZt?a2~&3(fsV zwU=j0lhalCWt)A@a6h%(t&9Ged8uak`FKb+SKSuJ%`olp!zArnwj^lgr~TBKvFp8S zZ>-i7D-KS&#YdlqiOHo5JMhbraG^7+o9=;x0zGaqg*iC4Fs;5ULB$!trDr;qQdx^0~aOlCgF7?7v%b5s=*%I!> z!-DR6X}iMXV<0RJV^WZF1T2Tkg^N*queV*uaxW*&Tl|jEpEQJ@)*xGwhO6 z8D3NO@q=;s0~~FNVuMul!%|V%V%$~zRq|tWh235`o%{fdL9O(_9m^G1Z$htTEJ4~m zyUb!KwFY2#^g&Un*LS*b=hvgqG%xS0c5tim)*&){@s8xKmVEPk{?7Fk0(!S0K5%{1 z{pChlRv>IKjYl_hFwC86{eY{${A`$Y1_`E&I_J=};sb+~kAk&m#bXywql2Lo2B&`O zhV{nO)j;&6i$@W?p>9S-x6Te;X~XKNrp z#LCiM2xzBoYhrD0W&8V7M%MxeP;j=;voePVh?wgd*%7mV8X!Ue0jsa-bc`Gf#B@xY z%*2cg9GsvpMg~oQxV^5qi9WxjkvWi<0Up3_rw_EW|BZtOyo!H4d*y)#2ebaCzrWuu3Qk*g0}6e{_33e&TXN)?QzGsl!NGSz-+H*x18hAw*wB5x|N8XEwR(O6<>9K;qr1$v z%0Himvhe_{CCXdgbI>qXDGJbCT?@`3vXSL7j6z>knowW78BD<}&YHv#(F@KH0jtZGI$djbHsI642WF2h!^b<;#mFUmwva%pJrtu}2%xCd#ePBbY}7 z-!GJNm`DES{~f6p#w0rQdHXx(06wE=0_pZ$_=<5Y`|S4f3!p+QA)hId=`)Z7m^mOc zAQT%I6Ziq08eNG(o}y4HTS_tE4}$XeHC-W|5TWvHy+A$j?zi1hLF7T?7?STKzhT39 zMDeZ3o>M-GKl}3ar=3#Xp+A#(bfj&{-bOzb{2YJy5xdmem9{y0Tlt9N5y!VNdT#Wn z_8h`Dn097#$NXGe&-A;{di11i{herr&+Li$Ag%ft#MSx>aE|pT{5 zvHjsT_z}t@@-LKkn$0OQuX|6I_9o!p7?nq*=b+XB?OATXusV|3g|g&K6NZOJq|)dM zFyD(-a5(~)e`A1SO6DYZWA%mIz?S`|N89bViso3-?&%&U$|HLSDM$FiJb%f zH~f|F|0p2ZSNh+)ul%otg@pzFwPt5xB4%S_|D$FEwHXcy=}pVs;irVpdi*Vph&Sc-c4^e(U~rs3#B}bpBiWKij`)UM=>D zf3@bTrYxY<>5m#D7qnb4fvogezsh>;`@eqvPdqytXuM1ysVwZjB{II+@J~Oovx02* zx5CK4!bHr;!Twv#KWliFKOO!$)W3%JDuCtH3~Ya>`4{}PW@G>{ynfhNIp8@!%j4_V zUak8o@V6&G7Jr5R)qWNB|55(%90>o1#8GkDEEmi&KbA0Q<_DEYsy`y3#^YZe1aS40?zLDwD# z4-jD@W_+FJpcXTzpFdhG#Gotqb@Kk5{Z-Y!*g-R%nCVp>XnxDtTInkQ?bQKtLLvY~ z;8%Oizq2v^o9lNBk<&E-0_1dUUz3x&lDaR@c(b`c;I!GeA%QloL6c=mX_N1pwm2_O=e7yagZ#QV`Sw zNaU-Ie;dVLncQC~+yBq%{L?4@jIgij*uew-X%hH<+XOV8e;I`s zs@fM~O9ylFKfV}1vZZt_ji{{6>ExuS|L$i{0Qy%4{0{cUR<_(C!XhFJ44`nqz#_oF zzz%AFf*J!mGpK+j?Q5G2G#S~1|Da)g#e?X7<2XQVP-J6g;sp%`l#7GX=|9D>vcG~s z=vPs%V*VlnU4{k@`oO>FSOou|0mYU-=s|QWAn|N$f0ozoL8`p+gGd;dL9&=Ysxben zOOO?WK)EoL5El~zBRhx)#L2?W#6iQrNXfuJN&PqLezgS}{+_DvAW457p!mYd%t~xX z{2K-uC^G}dKd%R|mV5a zCod~#CHWt8%>U$NVq{i{)3K%iGlf_ zydW6cKl^22VqyhN+<)-0|BrF7Ff+3KW4sI?e}h((|KtV1IQ}Oc6URUMWn*Gz{~x@} zpgXgF$m3+^WcjB}K`_v&{Ga`Daxk*|(*~TJOrVA8Kj=XIWqb|mug7240SLzQy1xDc z#s-Rp|AeuFGKPP_>}_>HcYU_6Fmqg%zHhTv%2F G{{I2=`__ diff --git a/challenges/count_words/moby_dick.txt b/challenges/moby_dick.txt similarity index 100% rename from challenges/count_words/moby_dick.txt rename to challenges/moby_dick.txt diff --git a/challenges/postcard.md b/challenges/postcard.md deleted file mode 100644 index c275558..0000000 --- a/challenges/postcard.md +++ /dev/null @@ -1,69 +0,0 @@ - -# Create a Postcard - -**🎯 Write a program that composes a postcard from your favorite city.** - -![Welcome to Poznan](images/poznan.png) - -## Step 1: Images - -Obtain 2-4 images that you would like to assemble into a postcard. - -## Step 2: Install Pillow - - pip install pillow - -(Pillow is already installed on Anaconda) - -## Step 3: Learn to know Pillow - -Execute the following program: - - from PIL import Image - - im = Image.open('image1.png') - small = im.resize((320, 240)) - result = small.rotate(180) - result.save('image2.png') - -Change the numbers to create a square image. - -## Step 4: Draw Shapes - -What does the following code do? - - from PIL import Image, ImageDraw - - white = Image.new('RGB', (320, 240), 'white') - - d = ImageDraw.Draw(white) - d.rectangle((10, 10, 80, 40), 'orange') - d.ellipse((100,100,180,140), 'red') - d.polygon((50,200, 90, 200, 70, 170), 'yellow') - - white.save('shapes.png') - -## Step 5: Drawing text - -Add some Text: - - from PIL import ImageFont - - font = ImageFont.load_default() - d.text((150, 150), 'Poznan', fill=('purple'), font=arial) - -If you find the TTF fonts on your system, it gets a lot prettier: - - font = ImageFont.truetype('arial.ttf', 40) - -## Step 6: Assemble the image - -Paste images with Pillow: - - image1.paste(image2, (0, 0)) - image1.save('postcard.png') - -* Create a postcard composed of smaller pictures -* Add the horizontal bar and some text on it. - -*Translated with [www.DeepL.com](www.DeepL.com/Translator)* diff --git a/challenges/postcard.rst b/challenges/postcard.rst new file mode 100644 index 0000000..cdc94de --- /dev/null +++ b/challenges/postcard.rst @@ -0,0 +1,90 @@ +Create a Postcard +================= + +**🎯 Write a program that composes a postcard from your favorite city.** + +.. figure:: images/poznan.png + :alt: Welcome to Poznan + + Welcome to Poznan + +Step 1: Images +-------------- + +Obtain 2-4 images that you would like to assemble into a postcard. + +Step 2: Install Pillow +---------------------- + +:: + + pip install pillow + +(Pillow is already installed on Anaconda) + +Step 3: Learn to know Pillow +---------------------------- + +Execute the following program: + +.. code:: python3 + + from PIL import Image + + im = Image.open('image1.png') + small = im.resize((320, 240)) + result = small.rotate(180) + result.save('image2.png') + +Change the numbers to create a square image. + +Step 4: Draw Shapes +------------------- + +What does the following code do? + +.. code:: python3 + + from PIL import Image, ImageDraw + + white = Image.new('RGB', (320, 240), 'white') + + d = ImageDraw.Draw(white) + d.rectangle((10, 10, 80, 40), 'orange') + d.ellipse((100,100,180,140), 'red') + d.polygon((50,200, 90, 200, 70, 170), 'yellow') + + white.save('shapes.png') + +Step 5: Drawing text +-------------------- + +Add some Text: + +.. code:: python3 + + from PIL import ImageFont + + font = ImageFont.load_default() + d.text((150, 150), 'Poznan', fill=('purple'), font=arial) + +If you find the TTF fonts on your system, it gets a lot prettier: + +.. code:: python3 + + font = ImageFont.truetype('arial.ttf', 40) + +Step 6: Assemble the image +-------------------------- + +Paste images with Pillow: + +.. code:: python3 + + image1.paste(image2, (0, 0)) + image1.save(‘postcard.png’) + +- Create a postcard composed of smaller pictures +- Add the horizontal bar and some text on it. + +*Translated with* `www.DeepL.com `__ diff --git a/challenges/text_adventure.rst b/challenges/text_adventure.rst new file mode 100644 index 0000000..40ddb40 --- /dev/null +++ b/challenges/text_adventure.rst @@ -0,0 +1,325 @@ +Quest for the Dragon Egg +======================== + +**🎯 Implement a text adventure.** + +|image0| + + +The Story +--------- + +Far, far away, in an hardly accessible landscape, the mystic dragon egg +lies hidden.. Will you find the egg and awaken the life within? + +- the dragon egg can be found on a lonely clearing +- to awaken the egg, you need a magic spell +- the spell is only known to a mage +- the mage lives in a tower behind the forest +- in the forest lives a bear that doesn’t let anyone pass +- the bear, however, loves honey. Fortunately there is a beekeeper nearby. + +.. hint:: + + I admit this is not the greatest plot ever written. + If you have a better one, program it! + +Requirements +------------ + +Write a game in which you can travel around between multiple rooms +(clearing, tower, forest etc.). + +- the world consists of at least four ‘rooms’ +- every room has a description +- you enter the room to which you want to go on the keyboard +- when you find the egg, the game ends with a final message + +The game is entirely text-based. + +Example Output +-------------- + +:: + + Find the Dragon Egg + =================== + + You are in your home town, + a little trading spot on the desert border. + + There are paths leading to: desert, forest + + Where do you want to go? desert + + + You are in the desert. The sun is burning. + + There are paths leading to: home, clearing, forest + + Where do you want to go? clearing + + + On a hidden clearing you discover the dragon egg. + + Your quest has been successful! + +Step by Step +------------ + +Step 1: Create a project folder +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- Create a new folder for this project +- Create a Python file ``adventure.py`` +- Open the file in an editor + +Step 2: The Basic Structure +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Make the program produce a welcoming message. You could use an output +with multiple lines: + +.. code:: python3 + + print(""" + Find the Dragon Egg + =================== + + Your quest starts. + """) + +At the end, the program congratulates the player to success: + +.. code:: python3 + + print(""" + On a hidden clearing you discover the dragon egg. + + Your quest has been successful! + """) + +During the project, you will insert more code between these two +instructions. + +**Execute the program and make sure it works.** + +Step 3: The Main Loop +~~~~~~~~~~~~~~~~~~~~~ + +The most important structural element of most games is the **main +loop**. In each round of the loop you can enter a command. The game +should end once you reach the final destination. + +At the beginning it is unknown how many instructions the player will +enter. Therefore the number of loops is unknown. In such situations a +**conditional loop** with ``while`` is a good choice. + +First you need to define a variable that contains the current location. +In Python you can use the name of the room as a string: + +.. code:: python3 + + room = "hometown" + +As soon as you reach the room *“clearing”*, the game ends. You can check +that in the condition of the ``while`` loop: + +.. code:: python3 + + while room != "clearing": + print(f"You are in {room}") + room = input("Where would you like to go? ") + +**Execute the program and make sure you can finish the game.** + +Step 4: Rooms +~~~~~~~~~~~~~ + +Your game does not have any rooms yet, so it is hard to tell where you +are. + +Write interesting descriptions of the rooms and print them by adding +``if`` instructions like the following to the main loop: + +.. code:: python3 + + if room == "hometown": + print(""" + You are in your home town. + A small trading spot at the desert border. + """) + +You can replace the ``print()`` statement from the previous step with +the ``if`` statement. + +**Execute the program and make sure it works.** + +Step 5: Data Structure +~~~~~~~~~~~~~~~~~~~~~~ + +Checking every room with a separate ``if`` statement is feasible if you +have 4 rooms. But imagine your game has 100 or more rooms – the program +would become quite messy. + +A better alternative is to **structure the room data**. We will use a +**dictionary** that contains descriptions of all rooms: + +.. code:: python3 + + descriptions = { + "hometown": """You are in your home town...""", + "desert": """...""", + } + +Define this dictionary at the beginning of the program. Now you can +replace all ``if`` statements by a single request to the dictionary. The +**key** is the ``room`` variable. + +Add these commands to the ``while`` loop: + +.. code:: python3 + + print(descriptions[room]) + +and remove the ``if`` statements from step 4. + +**Execute the program and make sure it works.** + +Step 6: Checks +~~~~~~~~~~~~~~ + +At the moment the program is not checking whether a room you entered +really exists. If you enter a wrong room (or make a typo), the program +stops with an error message. + +Let’s check the input to prevent that. + +The following code matches the users input with the keys of the +dictionary ``descriptions``: + +.. code:: python3 + + target = input("Where do you want to go? ") + if target in descriptions: + room = target + else: + print("Stop! There is no such place.") + +Find out where in the program these lines need to be inserted. + +**Execute the program and make sure it works.** + +Step 7: Paths +~~~~~~~~~~~~~ + +Until now you could teleport from one room to any other. That makes the +game a bit boring. + +- First, it is not clear which rooms you can go to. +- Second, you could enter “clearing”, and the game ends right away. + +The game would be a lot more interesting if only some rooms were +connected. For that, we need a second dictionary that contains the +connections. Each entry points from one starting room to one or more +targets: + +.. code:: python3 + + paths = { + "hometown": ["beekeeper", "forest"], + "forest": ["hometown", "deser"], + ... + } + +You need two entries to create paths in both directions. If you leave +one of them away, you also could create *one-way-streets*. + +The paths for the current room could be displayed with the following +line: + +.. code:: python3 + + print(paths[room]) + +or somewhat more nicely with: + +.. code:: python3 + + print(", ".join(paths[room])) + +If you would like to extend the plausibility check, so that only the +current paths are accessible, you need the following line: + +.. code:: python3 + + if target in paths[room]: + ... + +**Execute the program and make sure it works.** + +Step 8: Puzzles +~~~~~~~~~~~~~~~ + +An interesting adventure should also contain a few puzzles. Here is how +a puzzle could look like: + +:: + + Where would you like to go? forest + + There is a BEAR in the forest!!! You run away. + + ... + + Where would you like to go? beekeeper + + You buy a pot of honey at the beekeeper. + + ... + + Where would you like to go? forest + + You leave the honeypot to the bear and carefully sneak through. + +How to implement such a puzzle? + +First you need a **state variable** that you define before the main +loop, e.g.: + +.. code:: python3 + + honey = False + +Second, you need to check in the main loop whether the state should +change, and then change it, e.g.: + +.. code:: python3 + + if room == "beekeeper" and not honey: + print("You buy a pot of honey at the beekeeper.") + honey = True + +Finally you need to check the state variable in the main loop to allow +actions or prevent them: + +.. code:: python3 + + if target == "forest": + if honey: + print("You leave the honeypot to the bear and carefully sneak through.") + honey = False # you can use the honey only once + else: + print("There is a BEAR in the forest!!! You run away.") + target = room # player stays in the same place + +Final Remarks +~~~~~~~~~~~~~ + +It is not easy to place all statements in the right order. A good idea +is to run the program after each modification and to see what happens. + +For sure you have many ideas what to include in your adventure. + +.. |image0| image:: dragon_egg.png + diff --git a/challenges/text_adventure/README.md b/challenges/text_adventure/README.md deleted file mode 100644 index ee6470b..0000000 --- a/challenges/text_adventure/README.md +++ /dev/null @@ -1,270 +0,0 @@ - -# Quest for the Dragon Egg - -**🎯 Implement a text adventure.** - - -## The Story - -![](dragon_egg.png) - -Far, far away, in an hardly accessible landscape, the mystic dragon egg lies hidden.. -Will you find the egg and awaken the life within? - -* the dragon egg can be found on a lonely clearing -* to awaken the egg, you need a magic spell -* the spell is only known to a mage -* the mage lives in a tower behind the forest -* in the forest lives a bear that doesn't let anyone pass -* the bear, however, loves honey. Fortunately there is a beekeeper nearby. - -OK, this is not the greatest plot ever written. If you have a better one, program it! - - -## Requirements - -Write a game in which you can travel around between multiple rooms (clearing, tower, forest etc.). - -* the world consists of at least four 'rooms' -* every room has a description -* you enter the room to which you want to go on the keyboard -* when you find the egg, the game ends with a final message - -The game is entirely text-based. - - -## Example Output - - Find the Dragon Egg - =================== - - You are in your home town, - a little trading spot on the desert border. - - There are paths leading to: desert, forest - - Where do you want to go? desert - - - You are in the desert. The sun is burning. - - There are paths leading to: home, clearing, forest - - Where do you want to go? clearing - - - On a hidden clearing you discover the dragon egg. - - Your quest has been successful! - - -## Step by Step - -### Step 1: Create a project folder - -* Create a new folder for this project -* Create a Python file `adventure.py` -* Open the file in an editor - - -### Step 2: The Basic Structure - -Make the program produce a welcoming message. -You could use an output with multiple lines: - - print(""" - Find the Dragon Egg - =================== - - Your quest starts. - """) - -At the end, the program congratulates the player to success: - - print(""" - On a hidden clearing you discover the dragon egg. - - Your quest has been successful! - """) - -During the project, you will insert more code between these two instructions. - -**Execute the program and make sure it works.** - - -### Step 3: The Main Loop - -The most important structural element of most games is the **main loop**. -In each round of the loop you can enter a command. -The game should end once you reach the final destination. - -At the beginning it is unknown how many instructions the player will enter. -Therefore the number of loops is unknown. -In such situations a **conditional loop** with `while` is a good choice. - -First you need to define a variable that contains the current location. -In Python you can use the name of the room as a string: - - room = "hometown" - -As soon as you reach the room *"clearing"*, the game ends. -You can check that in the condition of the `while` loop: - - while room != "clearing": - print(f"You are in {room}") - room = input("Where would you like to go? ") - -**Execute the program and make sure you can finish the game.** - - -### Step 4: Rooms - -Your game does not have any rooms yet, so it is hard to tell where you are. - -Write interesting descriptions of the rooms and print them -by adding `if` instructions like the following to the main loop: - - if room == "hometown": - print(""" - You are in your home town. - A small trading spot at the desert border. - """) - -You can replace the `print()` statement from the previous step with the `if` statement. - -**Execute the program and make sure it works.** - - -### Step 5: Data Structure - -Checking every room with a separate `if` statement is feasible if you have 4 rooms. -But imagine your game has 100 or more rooms – the program would become quite messy. - -A better alternative is to **structure the room data**. -We will use a **dictionary** that contains descriptions of all rooms: - - descriptions = { - "hometown": """You are in your home town...""", - "desert": """...""", - } - -Define this dictionary at the beginning of the program. -Now you can replace all `if` statements by a single request to the dictionary. -The **key** is the `room` variable. - -Add these commands to the `while` loop: - - print(descriptions[room]) - -and remove the `if` statements from step 4. - -**Execute the program and make sure it works.** - - -### Step 6: Checks - -At the moment the program is not checking whether a room you entered really exists. -If you enter a wrong room (or make a typo), the program stops with an error message. - -Let's check the input to prevent that. - -The following code matches the users input with the keys of the dictionary `descriptions`: - - target = input("Where do you want to go? ") - if target in descriptions: - room = target - else: - print("Stop! There is no such place.") - -Find out where in the program these lines need to be inserted. - -**Execute the program and make sure it works.** - - -### Step 7: Paths - -Until now you could teleport from one room to any other. -That makes the game a bit boring. - -* First, it is not clear which rooms you can go to. -* Second, you could enter "clearing", and the game ends right away. - -The game would be a lot more interesting if only some rooms were connected. -For that, we need a second dictionary that contains the connections. -Each entry points from one starting room to one or more targets: - - paths = { - "hometown": ["beekeeper", "forest"], - "forest": ["hometown", "deser"], - ... - } - -You need two entries to create paths in both directions. -If you leave one of them away, you also could create *one-way-streets*. - -The paths for the current room could be displayed with the following line: - - print(paths[room]) - -or somewhat more nicely with: - - print(", ".join(paths[room])) - -If you would like to extend the plausibility check, so that only the current paths are accessible, you need the following line: - - if target in paths[room]: - ... - -**Execute the program and make sure it works.** - - -### Step 8: Puzzles - -An interesting adventure should also contain a few puzzles. -Here is how a puzzle could look like: - - Where would you like to go? forest - - There is a BEAR in the forest!!! You run away. - - ... - - Where would you like to go? beekeeper - - You buy a pot of honey at the beekeeper. - - ... - - Where would you like to go? forest - - You leave the honeypot to the bear and carefully sneak through. - -How to implement such a puzzle? - -First you need a **state variable** that you define before the main loop, e.g.: - - honey = False - -Second, you need to check in the main loop whether the state should change, and then change it, e.g.: - - if room == "beekeeper" and not honey: - print("You buy a pot of honey at the beekeeper.") - honey = True - -Finally you need to check the state variable in the main loop to allow actions or prevent them: - - if target == "forest": - if honey: - print("You leave the honeypot to the bear and carefully sneak through.") - honey = False # you can use the honey only once - else: - print("There is a BEAR in the forest!!! You run away.") - target = room # player stays in the same place - - -### Final Remarks - -It is not easy to place all statements in the right order. -A good idea is to run the program after each modification and to see what happens. - -For sure you have many ideas what to include in your adventure. diff --git a/index.rst b/index.rst index a79bace..f7b29ea 100644 --- a/index.rst +++ b/index.rst @@ -96,14 +96,15 @@ Challenges challenges/spiral.rst challenges/roman.rst challenges/encrypt.rst - challenges/minesweeper.md + challenges/minesweeper.rst challenges/gcd.rst - challenges/fibonacci.md + challenges/fibonacci.rst challenges/querprodukt.rst challenges/birthdays.rst challenges/seven_peaks.rst - challenges/count_words/README.md - challenges/text_adventure/README.md + challenges/count_words.rst + challenges/postcard.rst + challenges/text_adventure.rst --------------