**Astuce** : vous pouvez écrire les nombres avec des underscores pour mieux les lire : `1_000_000`
Sur un tableur, générez un tableau permettant de visualiser le temps d'éxécution en fonction de la taille de l'entrée.
-Comment vous semble évoluer la courbe ? Observez bien les différentes courbes du graphique ci-dessous. Quelle est la plus ressemblante à notre situation ? *Écrivez votre réponse ici*
+Comment vous semble évoluer la courbe ? Observez bien les différentes courbes du graphique ci-dessous. Quelle est la plus ressemblante à notre situation ?
+
+==> Un algorithme de complexité O(n)
@@ -75,20 +83,32 @@ Observez attentivement l'animation de tri par sélection ci-dessous pour en comp
-Écrivez en français classique ce que vous voyez. Quel est le fonctionnement ? Comment l'expliqueriez-vous à quelqu'un ? *Écrivez votre réponse ici*
+Écrivez en français classique ce que vous voyez. Quel est le fonctionnement ? Comment l'expliqueriez-vous à quelqu'un ?
+
+On a deux valeurs qui se comparent entre elles dans le tableau. Les deux le parcourent progressivement, une case à la fois. Quand la première valeur (en bleu) est plus grande que la seconde (en rouge) on stoppe la progression de la valeur rouge. Elle reprend et saute à la position derrière la valeur bleue dès que cette dernière devient plus petite. Quand la première valeur (en bleu) atteint la fin du tableau, on inverse la deuxième valeur en rouge avec la dernière valeur triée. On répète ce processus jusqu'à la fin du tableau.
Puis implémentez l'algorithme en python dans la fonction `sort` du fichier `sort/selection.py`. Vérifiez son bon fonctionnement en éxécutant le fichier `python3 -m unittest`. Le test correspondant au tri par sélection doit passer.
Mesurez le temps d'éxécution pour un tableau de :
-- 1000 entrées
-- 2000 entrées
-- ...
-- 10000 entrées
+Temps écoulé : 0.04999995231628418
+Temps écoulé : 0.2057938575744629
+Temps écoulé : 0.46288228034973145
+Temps écoulé : 0.8257730007171631
+Temps écoulé : 1.2953431606292725
+Temps écoulé : 1.8596084117889404
+Temps écoulé : 2.533503532409668
+Temps écoulé : 3.2937428951263428
+Temps écoulé : 4.1926844120025635
+Temps écoulé : 5.192129850387573
Tracez le graphique correspondant.
-Quelle semble être la complexité de notre fonction de tri ? Cela est-il logique par rapport au code que vous avez implémenté ? *Écrivez votre réponse ici*
+
+
+Quelle semble être la complexité de notre fonction de tri ? Cela est-il logique par rapport au code que vous avez implémenté ?
+
+==> complexité O(n²), la durée du processus (et la complexité) est décuplée du fait de la boucle imbriquée
### 2. Tri par insertion
@@ -96,7 +116,9 @@ Observez attentivement l'animation de tri par insertion ci-dessous pour en compr
-Écrivez en français classique ce que vous voyez. Quel est le fonctionnement ? Comment l'expliqueriez-vous à quelqu'un ? *Écrivez votre réponse ici*
+Écrivez en français classique ce que vous voyez. Quel est le fonctionnement ? Comment l'expliqueriez-vous à quelqu'un ?
+
+Dans un tableau à entiers mélangés, on va progressivement le parcourir en placant chaque entier plus ou moins en arrière ou pas en fonction de sa grandeur par rapport aux précédents entiers parcourus. On commence à l'index 1 et on continue jusqu'à la fin du tableau. On compare le dernier élément de la portion déjà triée/parcourue avec le suivant, si le suivant est plus petit, on va le placer dans la bonne position dans la portion déjà parcourue.
Puis implémentez l'algorithme en python dans la fonction `sort` du fichier `sort/insertion.py`. Utilisez les tests automatiques pour vérifier votre implémentation.
@@ -106,10 +128,24 @@ Mesurez le temps d'éxécution pour un tableau de :
- 2000 entrées
- ...
- 10000 entrées
+Temps écoulé : 0.037030696868896484
+Temps écoulé : 0.1215670108795166
+Temps écoulé : 0.2595536708831787
+Temps écoulé : 0.4952089786529541
+Temps écoulé : 0.7450480461120605
+Temps écoulé : 1.0163190364837646
+Temps écoulé : 1.4117050170898438
+Temps écoulé : 1.8339478969573975
+Temps écoulé : 2.30259108543396
+Temps écoulé : 2.8572349548339844
Tracez le graphique correspondant.
-Quelle semble être la complexité de notre fonction de tri ? Cela est-il logique par rapport au code que vous avez implémenté ? *Écrivez votre réponse ici*
+
+
+Quelle semble être la complexité de notre fonction de tri ? Cela est-il logique par rapport au code que vous avez implémenté ?
+
+==> complexité O(n²), la durée du processus (et la complexité) est décuplée du fait de la boucle imbriquée
### 3. Tri par fusion
@@ -154,7 +190,9 @@ Observez bien le schéma suivant : il représente le concept du tri par fusion.
Cet algorithme est de type "diviser pour régner".
-Écrivez en français classique ce que vous voyez. Quel est le fonctionnement ? Comment l'expliqueriez-vous à quelqu'un ? *Écrivez votre réponse ici*
+Écrivez en français classique ce que vous voyez. Quel est le fonctionnement ? Comment l'expliqueriez-vous à quelqu'un ?
+
+Dans un tableau à entiers mélangés, on va le diviser par deux plusieurs fois de manière à avoir plusieurs groupes jusqu'à ce qu'il ne reste que plusieurs petits morceaux de 1 entier. On va ensuite prendre par groupe de deux chaque petit morceau et trier, puis regrouper les groupes de deux en quatre, et re-trier, puis regrouper en huit, et ainsi de suite. À la fin, on se retrouve avec le tableau d'origine reconstitué et trié.
Complétez la fonction `sort` du fichier `sort/fusion.py` en suivant les instructions suivantes.
@@ -172,11 +210,26 @@ Mesurez le temps d'éxécution pour un tableau de :
- ...
- 10000 entrées
+Temps écoulé : 0.010993719100952148
+Temps écoulé : 0.020018577575683594
+Temps écoulé : 0.032997846603393555
+Temps écoulé : 0.019037485122680664
+Temps écoulé : 0.023550033569335938
+Temps écoulé : 0.02600574493408203
+Temps écoulé : 0.031022071838378906
+Temps écoulé : 0.03447532653808594
+Temps écoulé : 0.04099726676940918
+Temps écoulé : 0.0455470085144043
+
Tracez le graphique correspondant.
-Quelle semble être la complexité de notre fonction de tri ? Cela est-il logique par rapport au code que vous avez implémenté ? *Écrivez votre réponse ici*
+
+
+Quelle semble être la complexité de notre fonction de tri ? Cela est-il logique par rapport au code que vous avez implémenté ?
-Question bonus : Y a-t-il des tailles de tableaux pour lesquelles le tri par fusion n'est pas aussi rapide que les précédents tris abordés ? *Écrivez votre réponse ici*
+==> complexité O(n*log n)
+
+Question bonus : Y a-t-il des tailles de tableaux pour lesquelles le tri par fusion n'est pas aussi rapide que les précédents tris abordés ?
### 4. sort()
@@ -184,6 +237,19 @@ Bien que tout cela soit fascinant, Python possède sa propre méthode de tri : `
Une dernière fois, analysez le temps d'exécution et découvrez si python fait mieux que nos implémentations rudimentaires ;)
+Temps écoulé : 0.0010001659393310547
+Temps écoulé : 0.001971006393432617
+Temps écoulé : 0.0030002593994140625
+Temps écoulé : 0.0030336380004882812
+Temps écoulé : 0.003978252410888672
+Temps écoulé : 0.0049991607666015625
+Temps écoulé : 0.00602269172668457
+Temps écoulé : 0.005975008010864258
+Temps écoulé : 0.007005453109741211
+Temps écoulé : 0.007962942123413086
+
+La durée du processus est en effet inférieure à 0.01 seconde dans la plupart des cas.
+
## Pour rendre ce TP
Merci de faire une Pull Request vers ce repository.
diff --git a/__main__.py b/__main__.py
index 98a585e..ab7cad9 100644
--- a/__main__.py
+++ b/__main__.py
@@ -1,5 +1,9 @@
-def main():
- print("Hello world")
+from sort.range import generate_array_of_number
+from sort.selection import sort
+def main():
+ arr = generate_array_of_number(100)
+ sortarr = sort(arr)
+ print(sortarr)
main()
diff --git a/img/g1.png b/img/g1.png
new file mode 100644
index 0000000000000000000000000000000000000000..423acdb886572a3c76278231da428ad479c36085
GIT binary patch
literal 21786
zcmdSBc|4SD_&z*RmL%GUvLs8=P=qXlijXZ7F_vUY4B3~l#uFu3Q}*nsEDgpwlotD*
zb!^GLhOuw&dG~$4@B91n{rCOj`Sc9qzOVbb&g(pn<2aA&ett(&nej0DVH66*sH&o<
zgF+p^qfk`6bTsf2@w>ve;U6kz9pxLSyq2@m@Zq5Kb&cyN)aP)99kWC5nf{52fintq
z^c(UYRjtE&3l!>ZzN+H&yB;R5ix*fwo0SH$pj1ADkoi{wlk%TRCvaDcnmyVKz^wE)vl_VcP zg&elTa+j9*UR{81Rytf>Z-9a(yguL@Zi5}$y}vo=K3xCw5JS`auhHApM1w*rE5%o_ zA;FAitV+JWY%fLCFs9><9X=g4>x7VeP>xkVh;M%PGQVo8VL)g-n9Darzik`T)Jg}V z+-8!SGpHh1DpUZANR}N#(9?Hu)*_#aaAZBFi6%iXB_y+rIVP+pT`Et;kWB8da_w5& zfqnu=0zp^NnA_@OOg+a>*>rt)eOAu9x5x+DLd#%9 zNT~gssatB-U!+QN^z0+-!>sM;&~GJ=+Nk~SWc7@7eH7@(PdP#9FE)oHH)q7P235z3 zU#HtfuWDnILHF4`=mSSqNw3MrQj*J!E8Jc~g;D$Yk_~6u _U4>afqhw5Fu4iFr$N;8m9K?{JT1d4a7Q|Nw<4xeg*M6SVA zl`7CVCzkkfu?O3>7aqIkgRYT!Yk0570!Wjq!mU0+%OkQta)Atr?lFXg{N6@7z{~G> zN_9~2&Pq9b&ofSVHP+=f3ti)C!rdI5A4j^|YHd0)KI0E4Y=i*AT {pv0$T33(_?k) zlp;wHH5Sr*M%|xqa+m_0c`}JR)p e{rNsWJ4F^8r{}wns?Slb#(=h`2 zIujieOc8>P9KHNFMbN|DAMQ1(r= t$<7h&3w}g{Q3f{9ara3RB3!H&b4Shichm|Em}+Q=gZ$)vfKl( z@1~8spot|O4&5bNq#njx(7uuEyJh3d$c5q-Z6Km{%H-w-J^q9dAnobaBuP3XuQxYt zFO0iRG_mpDpz%k=;HVBd`Sjvva giSYR tXXaheeMI0f~c1q!~=#SiVo zbmdTs1`BtPU_eIlZ&VcTcl&cIua%lv9+<(CV~}5r&-qxAk8)ffA5b|BRjM>7->$+X zr_QzKxq9;4%hF6c2JUl4^6cv!nQEeDH3tof9z{a-xi4&5Wmj^IMa0C8iw|?_&jA%+ zLq5B%kyO-)LzT UjB3~1FKTJ(#;gj0wbWeDh#NDVy1oFl1Lrv$>W=% zQjyJD?CVsG5zvU|WjrHMgcb~jrF}k4c2MH<8(<4cwZx+Ph>tBL52#$F%#|4da?b=M z){PN(MJ&z~uaV*FBQOQ?3^b{YI^rbkX6S_;Vw3YOeUi?EO7$n8{l_M@MC}0;gP)5p zO3YeQP&ex(LRah^p`qCMKNyNv5om~jihW;){lN%}3xCRuV0|=3KHmEnTjs096btFf zp7o!o#1Df$3WIh&0qOdCSBjr>&nOx@@o9fjo@bF%JK(9{lx8iWvIEULg46iz!YOmq z6Np}@-mu^8WGr9Qz1Kd7LDe^|nk|9>3jr@`Ro 2E{$-*$v;w6{4)N_p|7Uf E{{fLqcN!u*1k 3*&Kp1SKF07gi=)B~PFQSfM4b18BbX ;Mjr zzVKWtGLrFJwm{NSlNY2i#I+YC7&j>b(R;^`INzf+mRkaWzk62N2XL%E_So7}?zuA1 zy!>NvtA>^1jY+GoIFeMO#H?JpsY;p5TK_Y1Xi1cE0wZL?_Q=eiw^twks)O|o!f;n= z6AwK-fqX**j1*2lA;m`ZxReC|F*vC@NXMzu;T1eUnA_f* S?;UMYewvA-u#-0Q@a*}0|T7s%wuc* zZ7a20Krn>#uFZmID;;zFw88~MXF%v6nV2i|l+(WrSknBDPJr3u99<>3orrg|+(k%v z$!LH&{@jhqzqEsZOOb;So>xx%QsQ{NXOfCeBTwW{OEN~L Yk2DCPXfwF z8jPY`_;Uc1Wi+#IsTGh05oz5lbx^#s>X8kBjp8(8qO%7IfhRw90L`!V)hV0qCi{cT zgi x+*BMR1}hf3B_7G5j U$_T8%zcKM#IbTG1NgKCx<&JkaritRTn#&262Hxh3?YfGRF5~F!k zI jcn8Bp@3@}fDc&w`58tq`$m%krb@(!>$|sUT|w*r0JQJNZGfXu zN1*@*P}AOC7%2On?O%tj63R25hL&Iy_;hbCjsD0)q@alehj{z~B=+tFD(=$|(c^EF zilR-F$&dSD+li==CqBL83itezf;xcTE WiKFZ~GDF7e=V?>%`SC;{1TY*r5A#Gc_{_YJ5eNwbr-9A?kIA-bldV zjZJZ4mXj?>RyyNBG?>h<+WF1YBfi7lCp?RCV{!Y7`*dC?W<;M#LH2CJ8xavibqW+4 zz1c`W9Dgfw)5ZAmDwk;;o5AwpL2CaqFe!{@UYx~1B|(kWK=y$ M38-3OXt=CZ_5>@TQDpPkfS+t)8^$>ui z7Jk@eEO+gTCFNt+RI!`kP*^B9I^#?rBR>9%Eq!wCI@6OYkg+13z`6o+TdOMDPZ@CS zF^*h_{7CZlnup|Y;yy9=?sHhL?{A>YnELHnPV_TmM4#IZmPe&tZzLAmD#zebe1LnP zc!L1sgU@ZuZ+|<*I9iCxVXpUc`_SeAg(uJ*($78K-gk^b?B(+2jye}O2(1}wxUJVd z8K$*Q-QRm@R0)9xzdq_~f#us_0ms0-VO+}H@v*1NlB~>C3`;xO3=fsx)hT20s7**e zFY(g-f-f HG Y)k#i(LfRVRerD#79O@}hSd@y%b?u)VR~`mY=K6HmCGG9_m4*tf z!`a@YQj15Our%T}L$Dk@Qc&Y<*C?9ofwWAqMK+!B6*hPCO$O~%<)HZa7TImjd^|?- zlqTMmnT7C+IE&=ZSJ1)+RRpoHG$67rpae0D7h+X~*hv74C7`-?h%}k(JkbtBUtt;c zxe%E8&q}+fNH`2#LM$$b(l)_a0<8Fh>^psT>L+MGKG!ai__gHKTi>2r-rH7>I)bXN z2Yn89Fu{A%3F!voj@b-VmVsGXsU=0;0s9Zdn0nQ-;qY^Bb%|Z=pw;wqfHc7Wexh$1 z@?Z1RKunD|{!1~)6iN))2mx42az`fE33(2e53j)zeG}3*caO1q(i}9-i)`8S8_Q4w zHyzA1Aod5K@;ZF+r$R8TCwMdYz}`>nDvLz|$&FFrHiQwE_vJLZ3QsYZ^C#4h7*(VB z>p@`nhe`M~*vS_WCWSziId=b;(KEQ&U0JJ*TjU|9(88lA6$2#VJ{E!frmvXJaESD7 zkRGM;(yvbfD-kJDg)B6plemMcsR8ujIm006`Ky55G|%oob`o}i&JUmrb>{)v``bc^ zB!Sgud9JWEzQX#E!w_uRW^cSh)n-;74Ywx%sS1~424zvOGfH32f(pg7{xQEQ3fcp= zV=oz~e<1_Sv4JhTJ!gW7x_Q@<{QDb-kp2mWx@7T!VV-Nuc~IlC!^KRYXOufcjvWGI z;_nHHD-9IBdqO-@0G0farU!FwnR60hK3*KaAoqP}zZij MiWi9s%4=wpnSFzRRk#e)tYV>j zb_}L?VhPwrnJ!Jl_q2 BWth)xNqi8a&Bx`0At-@>D$o(B&>-v1Q!=O+XjzySqquX7Wx*r5GF#Gc248Z(!k zq1=1(eLE<>L})VsQV3@S@xlI}KlAloXS3cF{cKH+I575Fv?dP{GtSm<-uMqnwl9*r zlUB(N?)<94I^PXw{qG!Km~`mTA|Xddgsy8j=QI`yj(8#I^4;VagrNAhojkcRrxAZu z6?%~ZV3iP6+gu(W2Sfa4EY)|t5#D++Yw2`cdKoVZiunM5KcwB4B<+gS-v%fs%^l!Z zp9Y3ZFv+JqD266iZKR3yuWdMHBhBYBIVRMN6o6bpu&FAcBiI3!djR}YXTet&Jy_vR zj?JhQ$J5<{Ng6V;m^ZX0VI{4L&?HY(&7q#TvH__6O}~T!iZn{7LWcBBrI1z+$i?Dn z$^`(9xDz21LB?o`v8RT$(0IWrV&8+>0OjwD_zNSV&xRS04Q{*As+Zev) (KxH|I6diwCXf$7k<|LRxUlMZ-Ujsz(e-DtA8%oankg>&&!;uLNZrxO< zzpPiy7NIlxuh#VyS~pAoxy}3vg77E@QZSh@kOn{^h?iQs9dp5KA$+#N_Ev@4{Mdi2 zCYQql?zrz&dYCT4-at7b?I~z8Akx>|V1>S@b&DN#)g-0a5<0+cjC96TfKWyRk-?Qh z62%rg2tb5|!z`B`Vb4O^z<9A7ywUs5!7(Te-BG**WFZAaib<05k=6-MZvAXti^#ih zEi}-xKR=;?UVap%U<6<3g3dC(M!ZFjqE6;*zBeMKh_Mbk^DD<38_;&_KGA2-6S?t* z^X`0y@7A;c(yGgVuOgtx=GXhk9q_hgSvz!nxTjO}NV~$i Iw zyVPYm%D93^!^o}@%7PwSBRjl-^G^+pBGq I%40J3{t!J$QUTwNwZTH|=nuh}*16iAJ?=eI$|LbmuPmS08 z{=~#~qYaok2ZR`M!Vfur*K<7FWV;8bM~-&-Gq$BOr$|4w rWlrO~#^o+ VYX97?iI@zF!v*+^Fe0sKT0Y-#m vsRYUVY0_-h$2S?8 zNd+GY_uj+Vi^QgQ@y3{Eu78z{nAe!G+F`^b35|>=X4V{F<$%DL2inwvZ;fwGkkoq8 zrVE@Q7UYGy;ML~=js7)&oA`0?@wqW^|1Pq_7FsE`K^9mZ2Yp4M0d^KbJ=HsfBNZ=$ z?IL;xNFy53Z3Th1yPByf*=O|;*?o8%n7BfNqYs MLBYJ0D&Lz7h4U?%FGHQqEaEF_fvkz BVK^e+czYo$r?ByHgU>g{ zzEDMaZzf8u6y;iLMgIPl qVrhpGKN!#bzQ 7@R7DBj=eG-f4QlzMqFaK z#GGR~ocH}f{qe~D;`zfU?hBU{zGar0Fx4y3no<^U`e~^mwKx7tw7Cy%DSkL}b3ftA zw>U(CiJZ-I?mr-Jz0n=a*eMv0SPQl&hMs36U{@6%f X9~7&6mDH9uAooMUQ?T z#LVYz@8Ka@xGBfhn3stTtYs^jk>PSqG+4^?dC2EoJrlrwz<@$$BTWy7hIz2Wkbx(G zb(Nkx)HI3+(N=g5QOo;JrnVh4982*_d>&D3hs{q0+T?%vdhg9TNWGDdyA*%Ef~CzT z@e`h;s_g9mE=ASQ!8r#d w<+GJV983T`pv+zt1izDTOsktO3EkN# zJh8xnK0Zx;1GOIo%;g{-x(g0O7e1obZ!89Ms$07N7RV#u#Bb4(mm+!ge|*!wec1O8 zqxGIFM+DgZc;N9KO&KSymdldl9LN$#l*^b^E+bS5l?DeJ@3cLSbj`?pRoX=#?doKK zCU<|Zbcbtd^UQr+b!m}Jl3DE3g2aw>c &TT!C3bNquZ@Mu zPGpvkgU(uS|BWW{_G?9}rY8-=o53%dlF?CO*$^uzUiKQ!sIXX^{Dwk?musYPh2mjW z7K1XK47_{f-JCg1@TF?Q?JsF2GJ8_ABZZ9>g^ifO9t*g&^An6c1J)u6TWyl@P$?38 zz8#q-*yIL06VC_#yEq$E=w@&*kZk3*n>M#cl_Jf)DK3<&jjazWy*PQyptxar5K*uc zmQ}`=2;q*5AWxTAG{$OZCd&%;nEH`$|8*pn=NT)lEtW8vu!%{p7vIxJc=3`$C<;>n zd`-a#v`R?~Uga{Qmlr14uT8h=T~8IMZW3CjV6mkKtPv7xU#u*WwfB2-MM>C{2v$38 z19%{AAw8qPbk;|Rkr;f!J9K!J2x{87K--XcU-*h6Y)l8(2 ~NkTv0UFU&@1Hq@l89h| du9l1quu(r6%PMc<*@-f^~O{@Ibq zV?YS;-uc`a`#({9kfX-rh^R#!H^huj2H(jfX})Ffr8LJsPrUZKDK$Hq-xfQ y{TOpr}1a&^WMdI~falv6catPlWIuBObpvOyuuP+SRc7J<* zwC40>g^XK_$PTeDuNNGCj0JEe09T~In=9u2M3nqWutLCk4-aA&;D6N9Ek5 W^C! z;8h|>iMhT|b13qSDNB1<+WNe+y>nK&Lor%|z2XFvacmHYn`j;^Hu7*pVbYM~Hm@k* zz>;Iwg=8}1mUK1+XCzzLf $-rsQ6 Vi4u$ONx}PV$i (pP~frc+TDWe}7M1lgwaL z&P#B~an5Fdw D^_hjdj~~qG`Qf+jiS2 ;PYn^O}OnUY`q)IYdUb8qa{g1CzHTPRYbaT4oQ^$8$5HF z5m#*#pE0>}($dHcZxxvRKUcdRF3Tfo{!As{0P$-Fr#!A_9xhA&HKV~X;%>C)%+*WM zGkUb 58JBrQ>THVMIqW^CnesWwL zRj?j{hEv5Hxg=cX5lj~^r>>bGc-AT z^$Vbiyr;YoPjrx&mpIGh{@bIJq4t~cHBQywe FC#RQkVghjAZ*LiU;{vL2O&1;|KkI*_4!*bBansx(vbz09}N;S z8LfW?4jmz;bmTZ!EQn%~KX;G0J4$ixWoafoUO2e&_Zt(Lh4)!0Clg8E8k!Qw>tv$N z-J}uJP7CthUF~rbI({*)*1WgCOow2him>&vgqx7`#(~!tV *qan@ovP{>TDx4 zCFVIJr$rt-icWC?A-5*jFYD@=Y+Cf5PSGI8{Pmcqwp0V=u~-+0$#swT!}Rp>Z)@ zwY?x#3x{{vmVvs*GpQUpe6j$~eQwlC7GaVkuT{})2QpFPXV@9*y)dLrun-V*4Gy77 z(Xf9pH;1QKhWB!)fDShXd+m+=V7V%s(X@nSy&Kc_cumrQ?|Lwi7+|MFTTbNdD6&IZ zHpx((`eWZ3S9-KZgU_!Oj%wi;j`PUX-VDDEFY~~F{=Et*zPq#3(Y)di{i&WmSAe9p z!pVZsrDt;Fr{7QZ{7K#J&c*iRNmZJ)>%yyNDxQ5$TQY}}TyE&cU?8W!IrE=+QgEDo zVTs1A;#qH+HPh!T67v~J`>UDvxk#x+dA9k+cF>``C2Um64adxi&>{I7oZ$!!gyY{C z;4~l}dVWr>)*R`QPbRs?i!Ovo4qdQpjQw| B*asb)7COSW9uFCypUk)v`)PGA1=KR0^>7PrmIE+E~jmb*-6 zK<{kA{%DM&?laEp_pgwHdT40S7NbKL0dY1%U$g0*KWw (XM7vnfTh&03%!D_Hh(7*xp@KFl+Qj@5<|ESHDEsLE$I6$h_jmt!mMdtP z6Y20F;*4}&!!@Ab^sxlzO*SX= z$M@(bR7|`Q)1-Y7w91AK>jmP{jhO1ZxLDAJ7TCmOdgGqiS7|FCVkKz(geQrH*ZB16 z@!mBGR|c!;SS^>|)%1REHRwF%y>#h}> 5eD# zVFwP8@Xb>cP>Q-&VEcJZv?R?UGJ-YWK{qB|MR)*cur@DkK!ZaT^wedf+olWJqgJ6+ zGi+))pW)$3&q9N%zDGEuf5{^4uD-n58{yBx|F25UJ{; uhYbQ_B@0Z@co6%w)V3r=*CQA~P5h>vb_| z3}a}{{cW#n&-wTK=`TNi-{12*-{=0^H#G%PNIWZH)~OTgNm~>)S!@eGm@HXW6ACIq zfryn@LS-4ej5?kIEKy`ZWgs`lEm=l9jLJgYBXak(X{KB7uzr@a_vT{D5P9Q)lq`dN zQAS*vBthtwk@9c7%R>>;=9LV%joj`$y0WdH7)o=F`ptY(4&n3YnQM^HlJ+WLaHr-X zpK8EawC4Ap%HEN*sM?ma6kE44;)i`|nO!gHu=eLifWZG>d1RR@$Q~D}DKBJKEE8+C z+VB`uo}szAClz1Yzm7hQ-|h7qRr)=s!nPY;)%W`X L4Y*hc+%?$sM_ lohaX>M!lw|fFtLd$xwOgialO>g z{7V;j9MxHB$73^h0A*R?sBWFK^VWa5%m8%5EH6@5sM{Pa12TPaV}EZnB*2ltOYmB3 zWYyos`DzVSfeygp$!4S~>HFzl8qSytavkSqEe}nJ`HU> ?7>A=wR`F z3veQhWPcx|!b-9bWilvRGY|FS0g#XmK}Na#;#dKJ&c*unh<*{Q3S{3TQ4+Vp`n?Gl z?=T9I+)tszf62XK5b--5g6}3qWidGW1}o-NOc C%pG22&{%c~mKc0dE-{k{I~eGj;y>)xl&th#e?ljoMYk=ZgP|1oN&Q76W% zW8JHbZH9@)5{yA2h;9z`&id;io%A2xez? S@&u$lPJw ziTSD>Q4-QOT1n1S>j!7)q*qK%0LRRMryveVZZkU&MAK_ul&hh=_D$0V$HB!ES;*!+ zI28>hjlZ$ )ACi=Yp-g zwK(~}VZ7^F2sTRJwF^6c?&)46c{2cZQuV`dV@o#6`zRdS16 7sCgDa(yD(Z7uMu(0O+EUG|CG^AE`CzyCs%Jj=FlL*Z>~J1*3A*+R7OyxM;A z=%b+d$o*`bRW6>w6 o`NyQWY6PR0z~;n+Wft?Y)JH#w7YRVPHZu#gJQI^n(T zujtcDGaR**N;PJE7aBo;cL4?0i@p9h8Iem15wBM phXM*nS=iO!U#z zlc8g2Zq5@E+DDA9D7~2OpiD6H{AS{Z?hl1fT#=kf@#i^+fW9xTjTX_hEN&s6Vkzt&&4|CDrtwJ?41XjVqg)>m=6rn ztRzk1pRm)$=ERMx>%>^lab{%TVz#mt2?jH>nywl1W@F@3EFY(Q%Q9bXQ5C&I`N%1L z8L0zd59=HCH&Ieefs;CXcmCmXy)v6%3Fpmg6TpU*aBi _i_?z!*lzOHjQ&f`2zZ?&JOTsVL2JOn`()KnkpKoBV$ zf=EWsQG!pHbdc@f4-!uu6=kTTk8KtFKyIg`r369cu{0-E6yRrSH&r7~2%>8t{zua8 z`o$K4O#RdzD(Sv7- l@-PCh}x)22ie8&=X7i9{<6n=7Ri>L2H(xVnbJ|`Okv60DOudnjA!4j zte>(KDFi7_vH!+^Ke_tOfmK7)p_X9Taa{j@{h?JArJn4yib^@IZnaTJCq&=-RiIZm zl&i&>EM%nPx3lo;cT*T4^YCaf#bT;o!eQtphT_&8hoKHR2&*ji0C{iuqo?ktht$6D znydW^XS(ARFz=mCe#iD0cEtK7mK! OMJXGH>%{@q! z@h&)1@W^#6ZP4Fpz-5Ae%40Tvsnq-7&TfDYu8E5C>ntuaU~}8V$LQP3@^_bS{UPNz z*lVFz_&Qoc(f84EOD^+FUQ}tqp5DRUlL~ z9 3zkDQ%K0LKVAB1B)d=QZ2gwdcQ*IdOa7a6%MA6X+n?KFIZLBN z>Q$fTYIauWmlT`S)|XP8zwBmFsY5v4-=B2F)Gb>zg;Erl)>X`s-MC8wSJd}g$&M6S ziJS@8lEd&`{&3F|ev?gAS$f(laW+8)f7VRWSGuT4uW(X^muqh7aa9xYK_qVX%d@RX zo=g~3JLr9R_?98N?L8}AIQwU}C 5el>bM^Hdb1Jlg0b7Gah_y49~`pdh@LF73bP=sU~Zx{>Y5pI7%gF! zS^M%?IbGV7j)337WY5RQig>kNQh6=qGPM$`p3xAW>+4RKi{w-eKY!)C_vX~NE45~p zd{FG)T9@g1ZSXhc#qJdPaD{kumi_k-lI)GiT09SFjr_~MzqP^9J^*`8n=GIw-~|jS zvhid`qc+%;*>DmuYUW!9!#k|s;*5{eFSq`oog!j3< NdqRL$<+ik8nJMpRf zy}g4;S9}8r`r-se(g!>ClYpD$6fh|Hh`-l=cRu=OC QGnUF)OE}RRF2&DIHZKLA z;Vp1%6a6oj((EFTB4*bn%579uz!7*W#LDqAo4P5z082YPn_0~8ouSU~nXu31e)R73 zyDNfBGPo(v2cFA)`vEwShFzO}wT1gC3In@)gHO@(kKbQgH0OtPB~fR*{PQ;8o76x> z;L*-cSc(~wfLVQ2fU{nyx!i4!1yzi6+{ik7=9^#kNU;fewllLGoSFPy8>{PK!>f)h zSn0ZBNnKk5AHB@Vf7-asX*0L7tnpLIcg&)j97K~2kpDEkwKHZDTbI?_7)vNRI4d A5`Gr`Mk;_dta+sA{%SV{d)3Z!lhkV|C_1 #PoxCNmAI-*98lnwDga8n%V(@;Pehcy1QB1 +FL4UQx z{^s;##$*!n{IAa{=nY^kp38&Ax*MOInPu=e93RheduV!w4gQ|6*yBDwf1%c)Qj1ye z+I>4qy{yN_>!pO5hRUq&W(4pWQ!#car&JnL{IVQ(_2_#F9U4O)`3+OU-*SY#!RdSN z5PdvK9eoWMX#T9g0SfU+IH$bO3b1tX+g>X_fBG$FEZ3+|-5LbZM!PZaNZG*DJv@Lg z8@St>{pnFu{oiWub^T!7zxDT*Qf;Q{YL m3*gaQw=&bZG{RuX%!iH}%hRP{^&xpz<;H? ZY(wXTg@u)UM3vLX#5BS}JDV~#_o7Itk|3HLy)3+-E^ksB%FlLdVg)W +9#e{}j_1%ruJ7fjvgcO(>+ zHhQ!p{x(s$O!sAFWF>KSaQF8IpYC$v@Q8MyGxF{LAbId9?d?%DlY5+b&aMoY!%##?+w~Sf##_ zO#0xGr{DWFQ}ZA4 rA5(}TK z9F*PqHt+J{T%;!E(RnH(@2#2X3x+l5-=EBU#$o6S2{p6*LdI1cLA@eUzh&9(o_z3` zS@hZd!7LaU@7~>3GikYL5lk2^p4^4|=0%9QpyjCMEU_^cEM8B$+jnA*I*a~N_$?pZ zUoWbh8r^$6D>?1Bbh6v;+x-h;aQ9&yIu>(!>=?YaIZ|R)_?L>L+IdocE~IYv%%l?j z9v|!+;=eHU==Fo&E~O7-T@Qks172r54cJh@&|&vo`_ra}E)gU-f={+L*>dmWh6@d5 zkNhR(#7b;p?(sb+Ep|Kfv6w~Rox{WGO=c|cyT shc!4yy8a`GuqRIo~BB_&2DF* z^R&Y(=I)etlQQx}V1AH!8>BPVcW?G3n@^;lYLzhn2Qe39PDZoh)B)u=H+1asms zDr0xu%>ujLZzG%_s9)qZhh6y`J9AW~ug=Jx!2QYOyN 6JJimI(HWxo=?0`7gR>9PCpB(K@8%$;;j@R8`x~LOCH&7U! zY_{B9e<=XBSqyBekK(OozuYLrJ~;B(>I&@p>KL|{zh8+Y xQF+0Qt66|K-aJk0D zS!E<)(x|DgA;_>iE_DK@R*3vPlY^V6L2}^(s*J;#LK@Fb1DNBiI~z+gg4esWj><%U zJq4Qq0C}Kdmsve#R5&SIJN3u-oJoz-syy^Kb25n-NR^j};1wYiuvu(!WsDWPG8_7( z@g)Ov>Wu$-amkm$YJ}nT&^f%WW7hBDYk}%aWlkR>%Y$3w!}Ij1<#$%6>S4uEd=etU z&Bn$$0>)Ke@E;^vQEjA6J!z8D{Ve6~^N&Zh;6Lo0r=C86&*x&N=yRZbc{=#X#{VXRK&;~7~;Hx>m?<-NmHsV0fh8(IfzK24{#Aq znhf~S`0ksz&S|5)772WdRf=xpJg13RCCe=*)-q{w$s0+;T-Wdx6==AgS}y%?ov&OZ z!m1^r&UwTbo@MMj6 Y}EwssvLCVEG!fW2QTW)wcG?M!uF#|)GDGGy1c+c|xe zzBf*!7nucS1@5T%Mz4+(r{k-fEjDJ?#>#C92Co|7-q&r^Oqw!hR$nztRec|{R^u*k z&=$0u;ak7uNH#6}lJ45=j`zV`okB_Dp0|UJy>O<6j_<++XdZ)*qIHK>r8{O<(s4ux z_w8V9*s(VKQCG6yay_Y8%9_Jr(%JaA6ugdbz#0%-~Z$ zU}NPDHBJ~@uk >Q@kSYVjJ)x4~d zS7cQ6qvZ{a#lzUarwaQj*v@)MXC!ri>t|L*76wEjR1rQ+Y4Q2-1q@O?;9l Z=0x*GDs5H`u&>DwUMzA97<|f@-sP7mK&_3tG }>T$e)6_zcVkj_nJ1%gaTdSMpX;!3a@m Qu3GZKtu=4?sdV&cAfU?=wz{FKS79It=+W77rUe;>z9r8%@}To;1T+T zUFt4|uZ#u5FVXRxzNyOM#Ag)cW)c(*&L$jxIK;o_RG8t6Kd6gNaxa@e{KD2%?ugwQ z@3-0i-ppw`wLYTmZOC5rm+ETp!@u=aq?NbEXH6HjM4BCvjCxDm6g?Fpf)B=`StO^%B+w)+lqY$5FR!Y;{r7R|^wpo0c29k!UG~`L z75!g`lR=Q`#i~>i2)c1Dlm+lRp 1fv7Vd%zwk_Qe&Ax>BBjmHfX;_ (|Mf#iQEd?Vws*na zPIr@miAp_@h~je8O6AfkxN*lt$Qye#u-bbvrhyy0RY;M|T%i`L{gDTz3BNyTDLdy> z`ajnj`ogm0bsPrWRBHA&G-{X3FZO_ikEF^6^&=}@F!dpYX<{A}{Li&ThI7mV@xSIh zt`qmG;~K2{INZy2@2lw>A{AEgIE+%~Xa~W2#cxOTiU4{0bv<%$9&vYemXhnecLi@5 z-jocZqWZrdBk)?+WNsUZ=-fEGW+iMt->y+?d~`weLK7_nVKL5=IR_i4;X>3zH7Z#U zb?bSKxJ_tj6f J)+C%!G!%3I++zN0 df_xyUPxsp=L% zyzHQajh9Q K8f27*>|+LMmwI*< zyYm2Dgbhp*(CgX)Mm4_l!7;}blT3H-;Wb(PuB_Ru?~Us3ENd*ANZEbHtYmgNcmQw3 zFKkvn^zZWKwuJX=EJOSON3eX;dl)i2Pdim5pf!v>KYl-uqn3EvX-rJm{F~v0Yqx)b zDtRMzY#J$SGL^yhiymw;b)}t#f!P(I*?`ia9JR7&0@7 NVnxS!PBaUBp0B?5W{uPsF9 zm^B3ed$*j~+F=7IKm>T$n4n{K-N_DD5 &Ue-&PGnX2c8Li`C_;(qOLEpeW|#Q@=c3Q`n?N7qB41 z*$=3KfxnHp>c8tMz_X^mIca4KgW2Y@arPiZEjE?M#M{|E1CA=9B|t3*6b&-1F4KS* z#`iB_oJOBaG@8vtl?+wp&AuvXGfh*Id3g~E5wfzv7FFiN$|n@)CBplX-d)+1osVof z1I~i0!*6mWT@e;&I51XzU19rJ40vLGz%u*lDL!n`E|c20C$5-i`j$^MkgCiUY(ls- z-fCA)As&-Uz)QYw);Lk~@mthBky*X5`b&jCXDdx~jIn9&Q8l9V1(w}*`FMq7Up8*~ z-(6C~ZE~_7ge@{#Bnjx#A}=u#{o~@{9M$SO!O+D?SNf&qhnmDYhxFRttacH0p15(x zo*}7Iv4{9!$41e}x9X(cEYV~^W-q&?-gRGYB=NorK2o{ZWP_Z*qnvUZ)BuV=*Ln>& zQOHzJu3`Pbgr(na#e4+8lEqyKydPJsapmLs6>j^<8p}YV*+vA_pKxL*a;dUW(H;+8 z)mdHnjIzs0-dWg|y(CIppvPw_jyOK8g!5Mt+G0~ck%=MOe)#WBM}HrzmY_oyty*#> zs>5Kd?Eju>d*qS-Ao9P5k85290Q=0YO8)OIG^`7=B^i6|oCD?U>VTN^<$6X8H66k( zjYh{<$<_bDLfv8EG KSN)K^ zgZkgiqwEKBOk6J@o$FEavGmAzn|}+Z6x3JUnADi8)yR<5m`3B-JJkN2sMp!4p!W(_ zvFWYhFV`=y@-24G`*QPNCq8&^+Fj-6d!wS%y$MI1U!M?E9@mIQcQ5V29;X ;%Wc)DI;Mw*6Y`!f#dywTY2O#iMaWH_VxC7 zk2=>(Ku`Uew8$5e2)0 G%OY-u{%Q{` 7%>adz-m-_L3=OT6Z(W2>UDdu!QiHbc(;q2u3 z*-?M+i9Q7Vv21?*pBr{(5fNth!=^aZ>HReX+5gECZ@()WrAq}wNK|?k?#;&{C_1Bw zJMqm3hpJ9O4Znp=rv%|C+pp&nckNB>>fm$NTTx}-Yn+VS*b@GE-b<76X3-p;&+XU$ zZTLmk|D7rCE*KKu`cJVES^i6ROu~6q8~tqM|NE^ EbpSBN)>raM5Mp1nMYGI}&M^SmTrHB# rA74 z4PrUuyner;IzAH&Aa0Ae-82#yc4?zP^36-HD+KgTp4dLDFvr+PwP8bPM6}U98@l;A zybWik_+wCPR>OO*30pKyReumREK{tVMWFefX0joi^?y-~d`wp(qomc&yze(OTEIgF z#eLcQ%5x5Ow5w5yd2+Mmi8u`$R1l+oenj1I`>lBA#n126NslT=Dn!icUx36Z@{!$5 zaS2fcQjN}2x&0*2$=Ij`88hVZ`vi_aF+&bmk4Bz_2&n%3#qW%}jP*wuzB$W5hpGOr1ie)|M$*q8w5WRruwn98QmcomAm99l@x z=Xjo;bjngg?VW{bxp6=XKc*_CGrXsj|K$#H3Vv-(~9VaFNk-BKvOczl!?nc<02r zm&?&_9S|${v-4L37HT)mFbKjFJ6n7tffcMT9fUfhFe;n|v=4LMGNLZe7rlD(m0VIV z`B|BzQtb)o@YKsnX#s+%nwwE_x&Ol*jY5Oc5%+fXJkaB)Yp=2&+&i3)MKAvA@A#H) zIo1w8RseyXNk6{8M0z#x>E*`Xs%Q8tua#^Be_0+d&1-iYUL5|N`yd}wFBtW!$Vjr5 z08HR{r{?9+N>=ivp0v-d7=q98{A Xzg1ymB%&ld!lypfT7ngiE zOLwKzJB=@1>FQAqr(qt+^J!N FAa#THPz8*^oaWw@Up}e+#H0=x<2nJfwAYTPtuJvG%Qdx?-{@}Lj z%>7#PV&gl~TQHM!cZG *o+)dqQ?#$~zybQdEPyo9DV0J3d9##!VC;klBMZ}Bt`q_Sy^ z_`q5>8=Zds_X ~syM51af4fXL7mqfmw(9dLQsH3c%GX*3}3%Qoj;!*QN VlRmh8F>{R0wUkNH>#k4!dk )laiqvSU;3E%W``TntKW8W-m{|kw1{Z3M3alP z6(zU}rB`qZEsjaxpE*q)Y)lf6*pwozY=D0)t+0E8D1dF84ttlgG=4 X4Sh$a=8mzm(dcMjPe9WUc`4jC^- zwD**zGmD`8 5oxOn(rxwDthMg?27i1jU_Y-WG #^D$XjJ_`N17ea*owMQ)pDBdM}-TN-8&uWla|cs%!`DGwoV zTwKhochu{#6=vNd9uaJ>#NkFAPd+7glyT`7>I>t_V3TnEYoK10_AVG|2q<$ZhQF4$ z5dz{ZFb}ji?ACi$>Anq65ttATKMxfoS2?F&2&7v}CZXmMX>tNk!C~raxy2+3#8MZK zxW<=a6>^q(QQqr0&!5C+28aaSiSAy!IQGEQ{4HQ`$M3BuOw|14PwDmP2C;SgdLY4F z7$((Nr^9Ri=b>Q9sxRp_bBd+UfExcQ;NuP)(PL&G+Bt*2S%4MLj5h#{fZAZ5iBj)> zLT%ZR#~F&&Z@SIW00)}?LCU#+@#+0%ARoI=0$5N)%;ccC*O*>$OaCh%hCJTlHxoC% zJ?~04@W+|0_DB-w79LK4qhA{>Ed|mQQxF+^$xdfM=#=(d0wh24pf-reyyl2|=V0&^ zZDke)ebe<+UQ%PQrJW#CdbP1M9agZq#Bm_TwiKT{jxu7ZY_1@p5*Z)t7tj_$J8w1O zOB!p_2qaL)`6wm|PfO#Q=)cPL-ysZ{swQw=P~3Vxf)(Fx0}7a2Vk>Q<(yo8R%y)Vb z3BHoFF&Xx$e8kz_Vzh|5%i7S77F~}0!5p>?QzVVj5JN8_O}x$sxb-l4dF@xE6es$Q z_VN!b0=L77n-#{Vd9KUC@O@7VdsyjWm)h>K#$vaIYvZje!fW)D3 z@S%y~k!I|Y9s)7#>MV`(y-tdJokgDEiP?LR-Nt$&;cEduG; zK*rM$#?#kikm6%Q93Y33-d9x7a 4;xv|Ny0 zNzf44Rskgdogh kgd{VFRXw1!^B%02lPKl_{kEV*K~lWI#KcsDSXz;{yai zg8G(5frLNXMLYLmn;M~$TWxLWMt2KMYD;3|k6&Q;eZJUGLibXqgY3x&gOad!Lto-8 zlq6I~)_s*Pr%pEpp=n-#W|i(+2HumAF;H$O(!p)oof42QeVmZ} z-HB;!vbOYb4BIMFIO&eln07n6@5l9tj}BP~usi3_Jf71sn1s-937fDpYFNj004In# z9)SM7!qWLYe|>uNK_R%Y1ds(p-GGZM1O?o2`8bpvR%H{}ob@*hS^lDiqjBboo*;%q zH4yBTeqoVjnuN;{ApW0C);Q~-)UObuV~GYJGaLLDlmCk=@`m}Wa%*J@5q31hkWM|R zzYD!B7`ozGT6t4J$(nr((3Yw65}<#)a 0Q&R+nx@DzWacxX!o+HvNZxFKF2n8%QV_y_edZNZcFD%R6U@oWqO j`s=$p zPYWbi%7DsiP#}fkc*d?)6qeE k*86$t0`B3j@?ECF|zjU6!oHawibo!Xlwsq*99 z70>6g`zya5fJ&ksAdgMlrb{ O`5?5MmV zx+mvHtl_ce0;~mfzbJ~4g%|=vzlt;oh0)mhPG1osV|ggnt*o!@v$yh#D8V8ii(tO+ z30hL7(}BdIr$W$;A}Y=#7qqZp4F|2GFqy 2XsDiCoBQPb6I1e{~~rKD^*AaxZJ%KA^G$`ly7DCuq_ zkp#piC7(%#fnG)jpO0U8NjDY8xe-pk8>wdu9i&yMurOdrW}wOUHegHw;!-obSt)KC zuPycBVm56DNcxiL601AiqP}-}o+uE!aCfm~EmKp-bSdW@5VSpR(7*`C6wd`&(y4YQ z9K&Exz!eY{0FPPMb>iBvk0k13I9$JNM@+(fok$@MkV>Q?dd_!z;LnWn$I&54as*u{ z;Ld9~fGs}~CP6>11T=y8#)xe+3uJo<{c-B0jo2CLXe$_H-Vh4oiUNq9#>jV(s23ac zxn)*=8|+COqtVUE&JLbzCt^x2qX*&liQK*}ScKUz=&PJC*#l>F@o=A{f;yChlJ++Q zFL1CG(Q}IIV?piKkp$p6=y@6tOQ>|sZ%;C0fbMI&QtylQb%W~JcYST=!86J@u?)c2 zizWx|6RNy^TxpVsdr!oqwKDJ#*bxw_*#k`G(qLTe;DYD|3Pbe1At2qp%U5)_4;xTT zBSB}Q|2~fyqHdPjRy5QIco+D`v2s91v_w#3J1wZLR&<{{;R0CtU@+aaG2gTAUVCqp zeRqIo69w}j3abJPTC+kM{%;A& PX?Y@`byBC3>v&Guow9{0K92ApvuQyiU=H^} zx@=ZCE$BO9jzXCw?#CY;5gXtvn=w5}z;o9QNFavjpck7Hdj1FFTuBXwpMbJ;mYS=u z74|n6aPR;Jyvq=Nafw)ROcDVpIRiCp#F+(gHliV_wlQ&(p%_TCS0S1S!-^y#EB^%8 zn-Z`$v@kfko~z)Q@2w}S^?{C#xuYnx=t_KVifGoXO)!44`sKFu9mf&P`L_4FCY7AR za40S!`0T=FO_dltn@C|xIfLD6B%a8iCH%R_qegSk y*_NetC{JJzxZ z0`RUH9$uj#5^s($ntS?dV60rHP#?j6F_^qkXb%X23eC_yF6VP!0}CJs ze7=)W`p>&BZdDQ=H*A2S5#6IAd;7`~nFGo+k7{bh9Qh!pxYF5+@aOZ+GeV2~oUbdG zgiq+W+;6P!%Zh}Z6@M?9PD>jh0}jm8< PbHV1pBsYwNAzH^1sZW10y*ga5=q6 zyiiuexv#rw?5-uN&B%YRW+5)7KN4+DLtmbuFPzq*Z`0pfxR?>R( ur@7w&bl|9iev+6;)9VLH149L z=S#YteW|D7C(xHH=i1b-e2O|jeh01Y0ucK1qx3$;Tnc3gF|}%^TU|;=sc=w_lzx*q zXRkl509y=RZ_IfJa4Mh==Ox;Tg3nHgDH~KKUaJHCKm 97)GMg!Xj> zvHlToSl`%K`D4|f j^=gZUSW&oEu z1SOOy4hCdjdZ5&kZW9^-2At6K=8{f-W>W?duvtUg^9>i&-k>Eam4MeYb1pd)8dbtU zuMUd4jg>rL_f?%nQ)Tyb(Gj+SUrTUBzSR(`G=>4E(F5frsN>&f_*$EL_TITBW*K5a z3EBP}DOS3OK0CD}^vM=m+PX3Gg|LCWDzd;JN@zR*(I%k#C2m##fK6SS_LzM~D8!3! zl;^csr^G^AsBq9DIUtAArX%af24S7=$;U5er#OtvM%AECy5yj7Kaukq1$Y`Zc+)8P zv@;Q9{UfJ#7FqAJFH5rU5EwD$>=a!HLk<9ayDyCc6mr{8xC4}-OFi*jN%8Whh7Kb= zTjX)ifAFSexHVHBXI)U==eEM8*=7F9*Y~A@;-nm}S0XDcf|EfLu<=m2z+@C$o(L`< z4@|9{@h|j0z~&Q~1tQCBWS6nXCmjsf>=ST+a$|-Pjx6|f(R{0x|J;OptI5=OfQ_^v zgYX-*B1uMs3fye)thX~!WG!=gI8QwEj3Ty(Ah(7EhVa?@yy?7)4Y(Xoosd8YN~SbD zxozt9hAi(5v%d?4ytY%q78Hj5DPPJ>&p9Qua2C(+j9*hdcR96J8PvPKN~NT@!_y?~ z)_}wt>?!0t#%1QFbg@h54FQK4ctC%tE9AzN6pT}$8T`r_&z)|k%pUYs 6wV)pXa-j)F z=aPC$cEtiBX;*Z=4NQRK0SQpPVYxNnY~v?g%+f|s)KFdX7RJP?9rTlhu11TZH)TK` zi~ b%(Ptie4c}q`m_fs|mQ*dk#5c;?N5yNppa}|F~EuL&p2|tOL%r85BoDfQSDZ zFv)!UJB+@{c~Z(Zav8V_;Sv;Q3Gaz}B6sJUU9td$uX(1=2axZj0nt#onkr!8oO!t@ zYA{p}uKD4%T8g=UzQfR$xzLR2Rv=B#t%UdPs6dLOe)AXd-ECF@1vDR =sEchn(Ho&8&=kNF0TQt Uj5Zj+{Kpm84Cp_NRn{p>^WgMqa!CVU}@F>(9dc%N|fgAlW{ylRpm{iN? zs}!%Jc%{ng>Qtk I=B(9-|6ckQsI6YoJ zCNk{Tx-`Lz&otvz0-#}QZPncJP~j2*S> |1KU{aUI1;p3k&4IMkJ5099=#2 z-byze$HZRT0>0XjlS&~8m{Q=bE`A^fq?P=ohp3zCMT=2Rt{E4inADyP_L3+*{!t`Y z3DknepfRRLB>XY32LFAZ^zZjSOq;O?f`YN*a^Z;Ua{-jy|HeC9g};*Pvao%fAex!* ze{>5qiS2Ptn;?T2kQes)-$ZjzLC^kp7{KTM=4lnm>VE^xR9*z=d&J%1MBIegMlcxn zgg89{yxj)|M9aI^65ZkM9T8BRpZ@IwprBU2R`fbnYafo1gt!v_=vxwNNg|VQo>>IT zQSCT7LL>U^H_;KxWyNFV^ogxd)p$#jE}3`n`%PgiC-jzCfS& `i#NsePc1o7;^-Up9keq6h2MTv60-lGVBs+O RQPY4bOjsX`GxopKA1*!skI9}BXOyN7t!d`~-2$AoIb6Jz@`wQiDKWOTO| z57?+49RebEVus&eAN8FqI>Z7nYG&y;UV)lqq5(>}vDNj`u#)bqV7mGnTMg1HjX41f zs&_$cdOe-O5)jHn*amX{3P;U-FocmBApyBzcUR-CH+@IY!1On*CvLA2SqsQoKtve+ z_BE3vS4!o*z~afB;@Z%C8quW3F-dgtcMYlH;=oad*xLB&PTY0_IDB*F>{R-T!DFye zeoz?H#U|I4RWM7z21+sNdIf-pC-=3=6}m BB< zAo(}d=@IKYd!b&$IduEeBWIVp_Cq)G4aI{YsMWwUY#d~WBHT>CQy^gWS+6^hCx^yi z>-wt^tT~?j$)|@rFW4&wuIiW4LJS~-jeoe~XnLU%yz$o~34<{&J}UsNhJgTj3rWJI zA!K|b!{@`^%IBuzJEN*u!5q 5)RwMmO ?1VgslwIxr)-DT89$oo=d>8!G^BoWg!Oa^D=UogpI$J^y(KIuYw}`t^G~1 zIC6L&E#;xf%}QkXD>9Vt%ykf);!|5c0voccC?Lej@lAU~?QLN|!*4*aRFyvqOAp2M z{44z}iMf9T1e!qrW~L7-UW`<;fclb)>X?AD6yPmfaGj{4ZcDi$%27n7>JQ3G+v+Zn zx&;P;)s?T$%UDTjCdpgGmBq+BuBJZ$G*ajJ=O%I$O<`dJS2gA776gb6+I_VW%<(-Y zs#^;WU5jDAVhw@u-+SY2Fwr`%^?^LQ$hg`vFzv!Ie-eo*v1TjOFCGBAM;-uLL#`wt z4Td$EGV{^@?S 0*9waUzMpPtuyj3=jp6jWi3V}{HGs4s0C%7<9xD!444tTW1n{7xi-u=2 zb(2|2(h$kTw%=z$#2G~*YY6hCPG aN#J>IwBwb3jg0Rk?yFkUZ!IZrq^6kb944k$S%o!cP31iM3?x;% zvLsyp1S&b7z}Q*=a1wWV81$!gv$4iKR}{k*SiKKQA3$@9G~PW2yTGbmX~) 7(4{tR$C6D>`)VZeQ%#a^F~8L?$n~~~ z0r1ItZRpv?L^bZ}iNcGYT$m&Rpg62Ml+*N9pRPOSJ)~aU9}OFkfW~OrQeoL`2h{g2 zNFAPij+Ni}$HcUPBQw?*2fCpL0!86YoeZ~J%`qg9j*6Iu4%m>#PD116@<|)E&qeMy zEEqss-r)4%dvYOTW%fxD#EM*z;hj;G5jfu4VBk8%!P(E1Z|rW;)$AX%Z(bFfpbASW zxFZlP=0B||xyW9KPd@e8;SRS2SJ6Xit)coEGOLji0l{Cil^lM42iaqaKi8&bvjJy5 z4MtN0baLLzG6aJ-JZ?KI5PtTXsE!!XNTDk@QrLc2#z7ciOe5HwymU0DN0L~Iz7X#w z1^j8Ol;NBz)Y-k+$R?vJvy=*e_)3LK&(SXG`h(EF$rbWOM?0@2pmS07pbvX&QRe|9 zGM F!#a+cKz0%F^nt-Te z(S-o-gKwIVcWUfjFQI8mVo8SssU=DR25?#jCDFP3#8~gYER&57u<^8S14@Q56@}BA z`)gNv?CqUOG+0eWfF70(8h>Mnq_}EBdE-@YItnnvlytOfiB|+}O#7sJ&A-=a3O(h5 zI?RdpTfHjTmO^rGN_I>2j)N+gA%0x}0(|3{c|E}gtk3pUDrMzWsXmep^=_nEv57`+ zx<(W;)uOO@fR;brnb F1q @m6) 7u#L t#3 z#CxX9Jt3wrzzja10*zx71x-!`3}s**KND 1{F;wPw!vXE51f9UZ^yJ_7(ezF_X>JAq^o<=1*#|W6A=*1mT*r3wG28bYY{2 zGvT8Ha9`Mj79=$j?V@!96!s_}p Oc^v$ zUW>`VaXXY=h=2Y;d+*0 PBWO1KOt%0KNO z5H7{i!QjIMAP{Ittk+bfTb=`)k pW_flw$*+)D1# z*-DfUZ=nIa9ei{feAH3nlH3-(Ex20d20HD(&cPMAC(4xkvE`Pb+n0Dw+Pn<)f+58i zAh>4eoTzR(NxmYeK5E8KICi}Fl}_g7h6ACdL75_7i3|kSxaY)YTasXp*HJC>DVvS5 z=UyZWf?xjNyc@07FVD)BBJuIj2o-& e3s%dStmGAgPj*=$ zXf=CBAtcBqD`>`#|HU-ub_1#W#nVB@S@{?D@Uv%NKcPrVN?Yc2pQ>_e?{#$$L9zlF zbeC$yVNy+BwH~_6cS6u#uxa{}6}(^Me0s!nBIyRO<3R2Ua JeRd%%<9yZD%D*G`x^HX96#Yo8S8Ji2yI$GA#$ZBlxr8T7cq zz>466y~Lqnlb -_lbx@rTUW{%Q%24(*VGhSW9;$QkDgJVfy7@j3eR# zN-Z(Rs4^!? )7-!kDz}3qB9H8W_?0 Ik} z{&Z~S);DUynoCCn4rT)8Fv!1I8tpLyzO!mT?U3PLpl}rowg6H4Cj!3oHe6Ht@Xmk$ zJn;=~<+`vTSHoU{ZXxpDCBT<9E%gqICw~=eOd6QP0>C%$cTVZq*pm#RmJD!>tgf{0 zngMZ4dq4$ov0mzlI{|c=fL_8iX}Wsujl$x|1I!tc17Rrh=Ul#B|9?G?@^uD+a1@WM zsOXY_g8b|vP`n8K&sa*QjI7*!8VeBWY}!7JTLw+)=csCLHtT-5c=^r7MDno>6!#n8 zPB4*@km7A{uv!W7U%WF@SJ6!@Xa@n)-QNTy7t{*oU^*R-_x_U!_K% r* z#pjz-wYXh&4JM9Peknm3_h34 rmH?z@j6LVzZ@Zhvm@QNR|89jH zwIIZl{q@WRHQq!`@&_rcvl#XDohtpBD}tfou#q4&4HgJUrz>wf64MZ4YJ>NjGj79P zn(l)2$A*hLvdHfC0K112OCAzoSS7ioXj7VG7*d?ZrW<+0ZbijGoE4~w&hTckqJ@56 z>`A!XB=iIe!!4#LU941u@9I1rTbN^ND}rIMl_=%#6FTsViT*t->Uuza?}zF_7&gV? zBt}fo(Y=X6sXH~iyg8fzE;{(1=Q+VeOG_~`SK63F4`iE#qBDXK7u!DE;fW@JB%=TI zmd3xE>&zlpUyBC_887(0zH*B@!`J*`Ti-o?Ltt--=iqAZERiwM$h5MQU)XW9aU0@v zeCu2#vTQ}Hrq gFPS`{0ha|HKL#yq0>#hb3w(Un$(|p~OnNa=aGD zt6wF9Y_I?8Orn~IGIpiIcT8zrU%c13lKxjEXC6-F{;u)WuDvM<4P;9SMH!;nXp7Z0 zM(s#t8MYx)63b48OpD48jmi`uN>Ymm8CKXdn5T*i3( $!cD}D%5Q}Is GH?5_$(6@X8s%KI3}5m3eHAL`zQ05oZybH9 zl`o!?SgAhw) nyoakO7{-__%$c#f8IdXs-PccnvI}4_9*rmGj~r{fcDV@$&P`$Z#bI6c zyjZ%=LzkvrU5gy6KLlX!D8-UBavoWe91}gG#u>e?doT0Ae1yDc-$P2jRv1d$9QI86 zEGI!1qr>)-b#iGdhtiD+N#>CDj8oI?J#V;CsuGvtY+nW`P(+qH*KCmS`63H@^4Ma8 zol}w~ q;0W7T+Z z>!0T{a^Vm=?B%V}Q|9x?r70;Br_@;`^NdkaF`C&lo|39lrYwuoP`ht2)}7J5q~HTy zZ&uq@MKIc}z!-gynKY}k#2V+4OuL>RhPcqGVZ-=*P5B(z2qW=k=~46BalhMRF|IRG zohB1gcP?k};@<5R0_NsV%+{N)z6-NmRYCmj`>M$H3XHjX!7|${GgjRbWO7kGCMf~8 zb~?{>a|jO{HRsA+45U9#Ic*lOQ}cKoyA9{;DoXNLGI&DLq_iPl0Ve#zpx@sSGOcKG zOJJlm8H&ezJjfM`)^^P(nv=k2uKU~lUs^X$8&7S)@W${ex4zI!9035W$PIXm*dA1v z)NZuq3~*xbm)3o)qT^f~@G-{F8)_gS1+{}kd}MTUEBmxAF37$NN8|gIH_jOI!LDQp zmGn$6L>v++DjMj(|C&(d6 QdNW2;Ld9-#iF+_nB_*BFy6h1<9Ol6vh$^>~cM zS?$#ae6^)S?G_ezo<9ta??XR|--;W(ApZJ9h(+Vo>l%28K#QTnz|4Ndy;8Sopmvf% zmk}N{_;UTZtHvAlB_Sk-$i2YV2GIltqlRSi$AV-<|NV+Rm;bf!Vto8R`e#4=1lPp7 zD7n;O7j=0gFDXA8)0xNpp?SWCL;CPz+j1fa3HabaOdmQh1D@;q2U2l6G^Tai%wEiE z5+O?q^HX+}>MA~8j!OD5Pj9!#yMt6II uJTJFt;((Ed`) zj@9fp@UJ!-{Jot*^E5p^*R07UGSqq(u*ThRHlcaiV-A7i*G+|tljB?fWXB}b+{Xf! zg6B^`a?Tx`h)Ugtm-4Ne2o&~!noNjaMBrA*c<|f9h9g8)Q;Y7h7Nf}-{6ju?UKr7{ zlYP5S59(FQ2{)WsMAp|sxAupe^*lxp*3De1tf+R?elPGbzQdSV3pAx@s!y jG30vN#Cdy5LO+sKE3XyTx7M_z1D46w^suhOYN6f5x!%Z7{o{IwOKVNm7Qmmw)icb7}!-$QH!Y6#4O;#jz7D!(CBmrv5$R6gk3 zil$U8O>dAiVb$rI3;oAk@Re_Y+M7ZJ(*Yi>aj%lK!{wDxcxjDz0Go0zRP?jM1+v z?C8w?LF7toSYh{8hj0Ore-aVeJGM`L!wp@+TjB};Hht{np0x|1tAE|;bdh|1NLI6p zSLadOE1HCOkSznPV8J+3%N%?- p7#xpTBwNE{RT)RIQteWH0oh@O{p;wK%5 zaK0h#1phk vk z%eD~!ees4ijM>Fj=4V0l*7OE*7pV;n&=hEx-!HpTuXUEe(4w1#0kU1s8%$w!h@3Hk z=%5`K+dynHHU}@;>}Ji(K-cXp^9S3hi?qMx^GFk-1|wH5ef1V&RuB>cxQMlR^>}jz z?oT?d4fFBO;GRAy4@L~h`m#0{@D*63^5C^Cd#6)K#H-;vNtrGBs7G;8b~+P(3lwH& za0(7cc**CayE62V>9OZR6b=3oAD&xN?SP2}wKr_X7 &cJ*sVs5&4eNi@*4u zu!-wfckA2juR$+52uNzpA&ozX(dg*vTtL4B=09b8No o&;=5c*d^A5pOrijeW|rj-JyNw=Qn>JeQ4SN+9Ayc18|T%&Z9@u6fVU zhT`TktI7F$r+g1iOsSR*XrV7_2qUvg@()7Gpg_OsRpZGNkXP|^qg}*;drq)UdGo8p ze4n_QpO=S)R{8U12#9TXy4kN5Ghd90SR-ZZHEthqdq%NZkKoJNfq`f(&W%$;J_g WC!eN#wuivDNf^#2F%5Y|at=Cd35xdFbFR9nh0(-F`4fmBZa!UqR z2uf))rOsJMs8etAcY+I zhMb}z+I&Fe7JI)X-P(?JNBY*Sw>06dXDHNgn1B3Jww?0WmR%hh99{SySC=zSuXbES z)AxiWBC6)C?qJ1maw%)}q-Ccx44?66Ik}sm+rc?_fD5y&qi~+)Wtkk1b^WDhPS`*| z(zH&L8M-tiJ1IT1MRZ6z$5EPhb6u697=O5q@_%GgrqXcRRr12wcQ*Epzf058`jro6 zr3O5-E`AKrsEd7#P4K^BGqw6nSEClxFH5eOQ5S~MFG@23BN}#d 8mZ+Vl?;S8?#5X^qZDq2_LDBjv~$J_?&$tE5e*^kv}d% z8y`1Z_DP%`W-xuNChi1( QO-25ZPvTXds2Jk=``A4jb zu26V07WCq3oMIgqIfb@7`>OM;NVNOd+(RT&UgNJ{x^{={ULp`M3>!X!2)8p+5;6r_ zNAdcA4>|3}G)Um%w|nrHe< zYO>}F6FDTjo*?uX%)n0A6!c41%JT7^8?%oWHA%CC zzC3)C>s7p?N6HY;u+7;^lh`l9i06uO>Q$dCnBrN}={HyVB@%Z!8xNyF5nLy4y2%@# z#+lT*{xr7g@{r6^#P=wPd9&jeQD!4jX|pF$rWWo=5oL`T{^IIMFeAe-giHi3CD22$ zjgN|*oevQGqu;qpF2AMGcf+43x|j7+q!zkSI}W!>`}W%HM{CP{b8^kSPyU>GljX>j z$hO&~sFIA03yN$wD$QWubNXBhU?Xy+od2i%#V`{MbVh@hfqDG@B3vzHVRuN Uwba?p*4=dzmAMvS k$K3xWlY6`d?SdVlPX;deXaK?X79vD700tZ*=xXJPX$LJH zt04E7Vx~2 c6#m_WZ^+qO$#zJRkHX%fzn+O=4rwprt@^(I(ro1L1B6&E)lU{KhN~^b_Nd zK02sH?IAfCfNRjXz$fI}FhE)j@%N}}ee5=BZ|9Tpa$+X$xjamF{{vW^Xi6TBu_Zrn zs=Gl`TAQTmXdv&|_beS7SX0hptD^0(JM1c2!KL>GxRrU23@)Voo!7(uivM9+=C2zo zi4aP>tsB L_&v5oi427f!h%ub0~E-t}b5(UQLh zS_8S|VpfR4)1-M;E)8Wy0w=%akYl*(MDtOAjLZOyP1!hWP#Z0c3F^YG`(>Hhky+IB z_IpNa04FyWseo9t9C)7r*|BuKqnCn)<(;v!Et;=mbc@3fXv?fkF8S!=7Zx+L0w#tB zrhbuD@_%JDMDOuN$)FwRHsfh!ppmnNAHRSXOwVlG*pV^=3Dy-IGqtPCAm 5lDuoBRlVcddYZhoE2Q@yJqBmuo}@7PS&@ej~Lm@6JuLdJnbFU!ILOpIK73a0Q6t z2oAsAybRA(!yP$2&H3&fSNyx26Eb_)C;A@&+hS-b3hOtdkt^+1bXJx+)~u?GfBKeI z?5bwaTy0%%KaFsxY&>4*nziTx1-9h@)J9u$xD#mVOM*#Wa-dXK7VJ|Cm~hns nPew(Q32u7(?1P^@#QM;{*sVQZ?>@PZc z6L$gAWc!}DUvoZMFg64|HX3i~^08`x>{a)RHD#=e+%gH9;fWL # zD*g?zo~K+3*tBU;faE3f<0`yw2XxkJ6(p^gNStywtDZMLz>q*8;VWD^rJ+;6>A_Sk z(6}5$VXLXn$eBhOaWA|~M`0K2-AHt>{mI%A2zvDB?#+zc81O(LCg!j??YY}CNnAB$ zQ>*t+()wQ|c4?^fkV6)N{QBr|t(;m``=f;1XWxt$caUnYeCw1X(ZorslZx&W4My&x zU9X$?Np)aHNXuI|&4rrcIa`y8 Dao*IG>dLRfv z_sJ9Rj=ninDf~y^q$Yb8$?v#02QP>%q?M!*q$q-X|1k-?KJ{Eq*9k$W8u9-Kn(e=s zA&AKt`FqkD?nc _?#j!TYXxT 2jI>y~BLcV6V?gBF>G$*98}F2l;ws)^5Nhsg(; zUmi(kzIS{b9UZ+t7Q6WJ?O0caA_GdxJ4wJIe0O6mjgnDlTf8W)uk4|9;w|g=BbJJ8 z-tv)8S?ZbDZp&jAB)q?Nh%Sqv*fZw3Gpp)w4Wuj^URyfFX0Kk;aZi7{w6%4B!&J?n zgZf9tD`rxhBFbuJkXNk6SAP`{sagoP>Xlh#Y368MxZ{|PVVv#DOEU6az3;R0FCkk! zGaQo?UBi~@vo$zBP?Ux#X}-~XF)c<#V$i;+fHT!w&27XXxQaeYu?cOD$tR+^Ek#03 zzv1OL7IOOXzMjcI;bXp89U6s>{5=@dBBA@lx1fWuku>j}HLJedK_isCUjEm=WHmd} zNxNIa_M_`u-z3s? **?doy zugcYpotf0&ZxdIXXOi7^#Vt#Y7^nh#x!pYfzTzCgoTl>dRq-xbND8s1o1i|K=)06_ zR3oBM={)y4(IRCI7kD@AL6~Fzzq!oREw4jSFRB3?MX*>MryHZFYwn)cH@42@SH__X z{H}Ei+pCi@!OWh|zNn;19JbVAM=Au)9$ud=SA%U5V@zZk5E=ZoM7VV_LQ=xHM^!cm zZ8v&h7l%Q~Y%cUu!*{+_>alK)(i&P+x|7DZ34dVWQcIWnA`?vIt75XXIOs*v3Rebu zZp@y}*2q%(^62B;B{$E-qUO6*uGlpTVjHh|KZ1|2v_WJHd>6UYKR=uuaq6V>S#4ri z+OD 8QG4|AmrHi3Mhv zJ*G~Hy~W?fPuuRw%gcX+`Di(i*m_%PGkCMqZdBx`4(E;=b(6_V_4WLsQ)K$_Z&PUS zJ7Iffy|2$dN> 3VK_-Rv1`V)-m~d3%0mkkQ7JHt!2F8o zcaH{(pN={$3_OXTtXccXefW&EW~Tkq{m{D!29B@xk`^7rCIZjgjk%( nTnJdary{1TG};BcbNQP z_o^j-X19@AaxuTaFel%z>SeZO&UD0L)c%fb|6I%E2 5r6Zs9cHyNm)BYCUa>su^E9y2oC6An&+eulx#}Dg*e)Slk4qV)9I^N&$rH;H4 zDE2)_Me?AhMt95yH_9hA$T$>xO@05*#-K;ChznVsVU=qE$4=&goTcv6k7uccy!C_a zHp6IJyHpYd@+8;pBFrQ#Bel!oz@NBnofXBU`J4h*%rYD$x4LCG@8_+0vo&Yo5I8go zFs?1OW9&|%JMAts22;B!rW3QewCI;v#Z^hiURAy1+$oL=+{G=k;KN6iYpXp~6r*vC z=cWN`;j%5q8Txn15<6xnt!XoksloR4{JaBS+?ZDZ`K` f_svlckdfRUd*5Bx`ieO8-4cv>Hc~FP@ zA3fHmchdIE>k@pPe=(>iCa(w}rFJC{Ui&JWzFA%L-1>2Qex@Ngd8fsDhnH0kT3OcR zz7$*A_uKvcAkEh^D6z--
@;j)m}H_T4I zZY-7UbSd&zH0PMNzgs$5QuJh7u9N7u?)fq?rua*i#b>HEv-c`HgNOHGQK6p&3xb{D zHLP@YYbklMWn=>PBYLt-9d_ZCV?>RQP9g5h9%5Q&%>Hax+sjwytxCJZ)W9BHVckiO z5XR9eH)=W_o!@aI14@Ddi%Pd@nzFku c>N2zBYzU|{ggLPIi_@7`d?Bq?vFkC0?Em)j)af9BCN1^kkACii7|cL zarc2EJq6Ef`dF%-c|k e8{QOA+>tQS*mW{lASkT`6PgTo-2syfoKv z6s#q)hM`|qXVW4oCwQoCk0U{nOnWuwOOzS=Zm@1TPA6LI3c$)zDi&FGU+LEw^ZcV* z@bip{*q>CkAbUA7)R1e9PowbUXy~mD>R_TE%$re p=;XCLfPsk+tfMSJhmbBla#S8wxTm-5{I#c6YS zH##o-*wUBT#h{KxZHFh#Yu+>p|2!KZecP B8sQt!8Gg#if~;Q>0#+ z1xDiPoq5kA-HbU^QgWZqx-A^_!a4*K<$hy9-0Ca_Hm!%zd1LOAl(-=kY_uYu1K@?O z`Cfnrs&!X_8Y`>v@iAjq`EWp=wD|cW7bdMske~9NUv(>BGC`eQqY+*_VI} Bx z@W?MR)L&O=p3Uf8uZu1{s&==7`D?fDHZ!@shqx<&VmA@~bxr;ASK;NUP#^v?hxf3x zhr0^}`J5S>JYnbz#e_=hSiSalw??%^Q${9&S(f?<=}p>qHy1|x-$(DxJRnRJN4MVJ zlJ#ZrqWA@Av8;dcy6sTuXoU2C6TCE9RYgr9d(k1#t_q8OND^CS-CsFwCElcdq(uMl zp(m=Jzi$68;X83{^&?D6@SC0^H&njQ+RO_>FY@ 1 zyGpmd%zz=k+4~@5) n-{P9a9X~LoVF1!sk=Rj{@KNcxk%28FZyvWKv9}8wReQ(z+0B zpr#hh-6Ust>74H3=UCmjxY-O%uE?0&?^k%~FFLAuN(!f8nwg0Nyth{bSpwu^u2f7G zUH9F0ui5O=_uQTcHk2= i#DbYV-`v|8WrDiRCBO3+`W%Nr`PT* zcb2IfiWR0lCE(9XecUEPEk4yrv7ay#Un7xQYPB>{!FOBVa;mJ~XhDIJ_mTO1Effp) zHNy(W402CMO~W-hb6N7tUoS-`{K|;$yRm1)U$YU-{jX#us)l-yRN;)ro6EU^%aDhA z02Ggq{)A*1t0rc4o{ie$$9kvavYnO|uZ?D)@W}H3N!r3_iK>QlzSD1bqM`{!JMVt- z5m8Y|Kg+g>G+V~8V^!!1;#d#1CnJ2VBUpU58+^(pD-sR$pFF;t*UXw$)aN+AtD`yB zE{w^A{ZaL(tJ=efVVA{Y>a_N53BQ(=`loxR7*@J>lWdCWgn4C|J<|8ACfPr49@!Kv zCo?S$4U@8vzqdSizwsk`B;ifUu-4tD1+t9f-QRlLFg`Qiv;+q`%NFc=d$Sm }*rq u74}-pn?Kh=c9(gL zxa#z z$(F!zWaf9);Kmjdyo}r@f<`$W5Rp E_ErCu`QYo3ytm4O>UkH=I7=Ha2y0xGL`)R=xO*9_}V&iA||KHX@s zsLaoPnNF9^qc;7}t2^mI=a_KrXdz{nEnBC#X_1eV7R_4Z!ofzj$`a*`P16k5A7ci2 zTrJtEC#abhw{)+i_`E~A-qhl<;33wN5389lhAf{ywVaii;wV6^Q&raz_H$^-dG@z7 z?3+?@x~<-^LhJ*HXTMq9!skXRO1Mc13$|+b>h{+JGYLz$xSTr0abK+zxLXTNqUpIQ z3th!s&wM>P+#BsIQ$9g&x`$g{9t! %H2>70qS(<#yLZ<~4G4{%Ahdv!Et_zPAP#7n}0wI3e2?`_SihS;@S8e_-Q9)t_%T z>_T5`CCM#q^XF3#_v1FcKIIN02A{nxmrm;{*R2vPu8j6K)DoD~L=XBAo~ez6ewBin zt#@8_`oj|X<#l`cRZEWj-;6Bs^vhi%>JAp46|I=F ssraW%iXRVd<@J)?wTwZ&=>9Vax?_bGNbsmUA g7SWe& bG@}V@{5|^_Y+v?>zZZsqmwKLOjph4_k7~@6qQcx2n>asTy9|7fBm5vVCWw4yG-a z^mbCZ5%~HQ#g?^9*Z^y>P@k4(09yo;Xy5Xw0bJREB_%dGC70r(Y5$dq4d2w3LYA!H zuEKTOt28h}!p!*8U~`vo{?g^d3W*=Sb`NB}3{2Wg)-kybJpKq#celoCz=1KL1BN}* zQ9Cg3d~4l?N09Ml(+PF-gz7i8=G3Ue$tS3ou)$|X&4&fz+BUgWPzLM>bk)U2eH6D@ zY?)dtDq#yyE5S7XNFqmFb?nq