From 8cce27c29597dc3480997aa5a8ce8f0f546f28a5 Mon Sep 17 00:00:00 2001 From: leclere Date: Wed, 21 Oct 2026 12:04:00 +0200 Subject: [PATCH] opti tri_par_montant --- banque.c | 51 ++++++++++--- banque_pg | Bin 28808 -> 29456 bytes compte_rendu.md | 54 ++++++++++--- gmon.out | Bin 5734 -> 6067 bytes gprof/1- Original.png | Bin 0 -> 49502 bytes gprof/2_modif_tri_par_montant.png | Bin 0 -> 61883 bytes profil_avant.txt | 121 +++++++++++++++--------------- 7 files changed, 146 insertions(+), 80 deletions(-) create mode 100644 gprof/1- Original.png create mode 100644 gprof/2_modif_tri_par_montant.png diff --git a/banque.c b/banque.c index 02b0e39..aff9e89 100644 --- a/banque.c +++ b/banque.c @@ -71,15 +71,48 @@ Transaction *generer_transactions(int n) /* ------------------------------------------------------------------ */ /* F1 : trie les transactions par montant croissant, puis par id */ -void trier_par_montant(Transaction *t, int n) -{ - for (int i = 0; i < n - 1; i++) { - for (int j = 0; j < n - 1 - i; j++) { - if (t[j].montant > t[j + 1].montant || - (t[j].montant == t[j + 1].montant && t[j].id > t[j + 1].id)) { - Transaction tmp = t[j]; - t[j] = t[j + 1]; - t[j + 1] = tmp; +static void fusionner(Transaction *t, int debut, int milieu, int fin) { + int n1 = milieu - debut + 1; + int n2 = fin - milieu; + + Transaction *gauche = malloc(n1 * sizeof(Transaction)); + Transaction *droite = malloc(n2 * sizeof(Transaction)); + + for (int i = 0; i < n1; i++) + gauche[i] = t[debut + i]; + for (int j = 0; j < n2; j++) + droite[j] = t[milieu + 1 + j]; + + int i = 0, j = 0, k = debut; + + while (i < n1 && j < n2) { + if (gauche[i].montant < droite[j].montant || + (gauche[i].montant == droite[j].montant && gauche[i].id <= droite[j].id)) { + t[k++] = gauche[i++]; + } else { + t[k++] = droite[j++]; + } + } + + while (i < n1) + t[k++] = gauche[i++]; + while (j < n2) + t[k++] = droite[j++]; + + free(gauche); + free(droite); +} + +void trier_par_montant(Transaction *t, int n) { + if (n <= 1) return; + + for (int taille = 1; taille < n; taille *= 2) { + for (int debut = 0; debut < n - 1; debut += 2 * taille) { + int milieu = debut + taille - 1; + int fin = (debut + 2 * taille - 1 < n - 1) ? (debut + 2 * taille - 1) : (n - 1); + + if (milieu < fin) { + fusionner(t, debut, milieu, fin); } } } diff --git a/banque_pg b/banque_pg index 863d807fcc33820276cce952e90623e5914a6438..ec537813659823a013aa09ed2711cf3ae5bb51d5 100644 GIT binary patch delta 10847 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 C%i2=_ delta 9935 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 diff --git a/compte_rendu.md b/compte_rendu.md index 261552d..9a7935d 100644 --- a/compte_rendu.md +++ b/compte_rendu.md @@ -1,13 +1,45 @@ -complexités Algorithmique : +# Compte rendu — TD3 Complexité algorithmique (R5.A.04) -F1 : O(n^2) -F2 : O(n^2) -F3 : O(n*c) -F4 : O(n*J) -F5 : O(J^3) -F6 : O(n) -F7: O(n^2) -F8 : O(2^S) -F9 : M=14 -F10 : O(L) +## 1. Complexités algorithmiques +| Fonction | Rôle | Avant | Après | +|---|---|---|---| +| F1 | `trier_par_montant` — tri par montant puis par id | O(n²) | **O(n log n)** (tri fusion) | +| F2 | `nb_clients_distincts` | O(n²) | | +| F3 | `total_par_client` | O(n·c) | | +| F4 | `total_par_jour` | O(n·J) | | +| F5 | `meilleure_periode` | O(J³) | | +| F6 | `rechercher_par_id` | O(n) | | +| F7 | `nb_paires_opposees` | O(n²) | | +| F8 | `nb_facons_rendre` | O(2^S) | | +| F9 | `categorie` | M = 14 | | +| F10 | `ajouter_ligne` | O(L) | | + +## 2. Profil gprof initial + +Programme d'origine compilé avec `gcc -O0 -g -pg`, temps total mesuré : **6,83 s**. + +![Profil gprof initial](gprof/1-%20Original.png) + +`trier_par_montant` représente à elle seule **48 %** du temps (3,28 s) : c'est la première fonction à optimiser. + +## 3. Optimisations + +### 3.1 F1 — `trier_par_montant` : tri à bulles → tri fusion + +**Avant :** tri à bulles, deux boucles imbriquées qui comparent et échangent les éléments voisins → O(n²). + +**Après :** tri fusion itératif (ascendant). On fusionne des sous-tableaux triés de taille 1, 2, 4, 8… jusqu'à couvrir tout le tableau. La fonction `fusionner` copie les deux moitiés dans des tableaux temporaires puis les recombine dans l'ordre → O(n log n). + +L'ordre de tri est conservé (montant croissant, puis id croissant en cas d'égalité), donc l'empreinte reste `ff68d260a7a58441`. + +**Profil gprof après modification :** + +![Profil gprof après tri fusion](gprof/2_modif_tri_par_montant.png) + +| | Avant | Après | +|---|---|---| +| Temps de `trier_par_montant` | 3,28 s | 0,01 s (via `fusionner`) | +| Temps total du programme | 6,83 s | 3,06 s | + +Le tri passe de 48 % du temps à un coût négligeable ; le temps total est divisé par plus de 2. Les fonctions les plus coûteuses sont maintenant `nb_facons_rendre` (30 %), `nb_paires_opposees` (24 %) et `rechercher_par_id` (22 %). diff --git a/gmon.out b/gmon.out index 80fa984bf2d1013e3a7b735c4883153d96ce066e..a75709ba11554bdeaeff8132e90df4d71ae60f29 100644 GIT binary patch literal 6067 zcmYe#&Cg?Gzy-7*5)E7o3@Ho@48^I*`FSbD5J3h8I0GgyN{@!XXb6mkz-S1JhQMeD zjE2By2#kinXb4a@1aLRjscX-uX#*PqOknFFvCYW9#K6SB3>G1ufS85Q&w^kQWPw~j zP!UcA5Wj$=85z)B0TQJhhS|)*z{bGFz`(#tmQ`$ESF?llGct%XfLQ1T@iD;cLYG1C z8NsfAgaH$S5Y#*d21W)J21W)}20^e=MwFOlV&H|E%)|hR1yD-hg1P~cCO}~dicJVl zl7SQKUXZyE9bjWe36v0EW#D80g%BH=X#&NtQO;-xjE2C73jxLiVThlPgUWIS1_pyt z1_s6j*aR6wP*v)KR2rZOHn1`j3{rbMx6mx2hMg-U|WRFH=V-j;*VXFq&m zXLP_OxIq!3A`?nCiZd`UZcu^<@ERegG32wk9_yL=sgBlhy7oZ99fa(_obySrX*g;W@CisGxfq^kV16Ab?ZUzR% O0!@gZHZ)p5jt2nhZ9KvN literal 5734 zcmYe#&Cg?GzyT(xLnNMXGBBhtFfbISCg)AuN#nAa^k`K;#%1*uX3nuu5jIJrHw1HiBHi$iT_K&cMpR0CfwJ)i{|T zyFmIu3P3c-E)bgmYzs&P!XuXinGfteaNl`*$)a+V)at44(3CUt-K7} zWE#i~4u5uV%4A>=Vo<~|hYcLl7{Vw55H+meG{?ojz`zPl(;ydu(h>s$FIY7@SQN|z z6QG;{N~ItUJBR>dm9Zd`u`_Ofa!>>nC!tFQ5tT;AUW8{GbL=IUC9G07!Q^oB#j- diff --git a/gprof/1- Original.png b/gprof/1- Original.png new file mode 100644 index 0000000000000000000000000000000000000000..d751ff3c7361705524fb217be7a6c4146f26bd9e GIT binary patch literal 49502 zcmeAS@N?(olHy`uVBq!ia0y~yV7|z}z<8O1iGhJ(Ju43z1H(a8PZ!6KiaBrg#`{P| zPWw@xzJK@Pl2%@6|Lbd<%2kDhmTj}*tUJ&ZyISx@($Z}cJ^WReFS;>a`|HsDt?d1w z=DA{-l~Xg40<+xh%oWoW3VqW}vSElKzj`EZjP zl*dw<2N7n`v{+HB%+aL4(WKy!=r~szteC}-i~H3bh$u%;M8I>Xz6pn#tjxh`IhsVo zuIv(Jfk)AJ`^I`H~y+u=mdNmW%<9jzV5AK&WF+g|WCTT~{WeEIUFi&9`mO~ka^+}u*DxdttZF24BlXHVr@2T+JEF?n;RYmrU; zznJomFE1}=T|H^(f_ycr=JKZ(?%qB7dCyT3*I!mzo|Dd|ZO$)xc&Ih!>O0xbg03G= zP1SDAWB~{0(j~?AH9rap3N~m=b(~=2AixqZ#ogUKJuU6Pw>L#QckSN2`O?nbC&96? zYgfJc^r^^3&c60n$)eU9~Rv3TFnBA)1bx~8`?j;y1Ke-_gsNRt5)fp{{H^Hyu7@>|Ff@EwRZ8bv9gB^ z7Gxbs+F0VNB*5{b#%@|_XlU(+2aYO2C%4(@oMvNcymc#TZD7FjhJDF%4~nK_Wu1Ee zUD!!4c2~)>Gm^XSuG2WxE?+mpYw3%9=Oc8!T@8=lx^=7L-09P&x3{$weTd~_VUp`- z|5KG385a?8BdEtZ$>rR_fD;c3Ht29q+FAUZFZB0{!_GQli(gB>w2sNVE$Vu6(|!fU zv&MTk|E{>poW5lL8L9SVQ$oYT-8mv7BNv8?xK2!+`TS>F8{6Y$dCEU$ykN=S@Yd~E z;=kma;~$wj7IA!+ol^Ak)6+S(TS4KKy1saS#Yd(xu3I@~b;8RpudIH++Uyt*=eT;o zy49wprn}U4-G5*I?afRTPn+|*@4h>s7I`(jqGCoC&#F~utV>^sytw0#o4fY>^U0}_uig~xY-?{nKi7JC=-h)V8{X}FQn_#Q z=FblfHs9QKw`0!MR6`!-v+Gx_I^}ru`qtRn@%r)mTDBF)95?9MreE|zUs>X1aPX;H zo74FfpPZbmu5-Gqq@?Ei-Ew1N+LHYjzbqN2plhLbU3hsOS@~)>8C-VUoS27PPp4rb0=@R0*94g z>Vb|q3w4}0?yg|hnsWdBdB^9^D(C%Ddi_g#Bd20YPEODBpVH=eIWJ`sH|+1(kUW1@ zgxH0P7a5tRr|uN_bh2UMHfhQBXMG!a9=8h=Jv$@WmUv(fZ)u;~V#_VuphD}^;rX*u zBmezZb$%40_4UO?Wv3Gl54XQO8ob<3&`C^Oe5?PRi4!O8+h=#zX^+ln6W$dW8!F~9 z%k{Hg+ghG-+UkAAyd@f4POs;9Eq(Uv*#U>VJ*#?qds`;#+-a%R8=_VE{aviniB4hl zp6AIf=K{ivW-bYLb8`y`O_ezI`s*Z}iK#QQwz$4t|L6CWHJi?CauYwaYOk#1t-KVO zS=Psl`sF|DojGsbvQuB4JW1hu3o3&qeA-Z){kLkniU7xj2L~VcuJ&eVdnm3S_hQ}h z+e^0<+Z&ww^JmZPw`DtH_Rc=B>Caj7`$rxZ&Yf6#+)CPA+~ecP$?7kwD$}yEvk$Ih z)9Hxf*~ca^-FV8@ZQGXlGT0rl`n^}M>sq|qjg9`kI@}WS^6~NU;i0AzJsKA6-2F4< z0657MACGwUk@?s5Z(D6@&mR9`=PJPBI6>&^^F9})4f1_f!MAd@&FP)HOn|T5H83Y9 zrzJO3=J?JSz3sPszkiq-HP_tC>_FL!b*Jv^tDPM&SN8X54z}M{rfgcUzfaEA%HH1I z$Y@ch$@S~kyXW^imgQ8>>~jwOB?5{muh{2ouI|-c?!R76&Cbp)+buh#^O3{c&Xx05 zoPH|gDyS#5a&uvh+3atRFD`ap`D+s2=}j-M)lT47R5@?)!tDu9^p}!nZa12i8T(|N zJjk++`N*W`ddY(o^Pk0EJ9Vn-ZXWx2_PIRMr%mHYOG>gkcJfY{^5YE!$vM_rqNP|I zPb`cDm4Qiff82Qxz<7JP4Bzo-ZbtK-J1-Q_w9=2?cV^+aV~qi+ANDJ7`1<Y;5e$FPUxoK=sRnpq^-^E|Heb28H;^lP7P|G3Gg3 z7^5ThIrmY4MO%BjaHosb)LFA;y?XQJ%g-8LUtbdoW*2tj?Y0R|7xA$Ls1{f*sOp($ zC9NMgNoD{2_a7@Bm>Uq_3=5tW~3#*|Ni|; zmzX{=%BrrGIPCUhj)#hvxOlAI^{Lw73VqTio?lxVZ8HD%_Iz_w(~max*4DrO{4DN! zJZ<`P%f4pqo2Q;XJ3Cw5f8G-dJ{CT0=IiTXnZKU)sFytGF@IKQnAX&$Gu74AvuDrF zHIsf(aD82@xBs0RH%{bSx^Q8^WsBY?%3Vq2<>r6*x7t>Jd-L-0a!y5IVc}z|bC-aE zDKhyC$K}hH1zHR8^7xvBmd!r7`PF5f+D1^hzI%P~=Gi&l-yS&NP+wnPTWfp%bJwB+ zZQc==(<8U-+9frqx4(b=+O-EQrAnsH);S${^pLTWuW#=njSqKNRXn3&W3RSF8bqW& z_VMxAvURKDnN4rc9g&ogsd+jz+~If2w(!u; zd-nGvEb%|9#a$H~DAIqNS@+hv26cm9W~QdL)!%Zw%O}cyUb$}FHCL`hU(c^n=Gk`l zgoR0JkEG&650}M(79Zz5uk@U>Z29tBv)S83Bfn-ogQSzDPqu5HwWqlLdf5X?a8@HK#kvJ{G zSM9%i_wL!xe`c8MT09{&@>ylvw5NZ#*Phu|@%?VOW#8n~o$J@@`=4cS-15Kz)#TsB z=H}+cJjJiCtvz_~ptO0OfK!ZK_(E>io(q>R3-`KxeDG_IW!W1E#V4E3+imVy)I3Gm zf=`ge@l;dO>pRuo->J6zdB|VCApF~#o6P@NnjHg0xMLYrn0Gvw!2iIyd!FTqcTJB4 z90iu>Xza*8xwrazja__p_Urop-|G**o2Mb$5N?x9s zX7(``j;BV=(virKd4L zrEY83`wrI_*!3TL^Qyq&!Bpo-DsRgQ9{)_47Y+&)&*y$BLfiB1e)|2_;Hj>j-oJHVFTUoPSQG+jUb&~};QhCIrrH?3L~{ml7$_{|)%ikQqm zk<`M%i%*M8&CRoCKPa){RQ&$_{_^le7d3WpI_|VNUtU%wXH#Jy)H&fU!?uZyY|gjW z-S!E~Lii;!^@IVBPiJUos6nIjdG*hGx)eBq(h9xZ+}z&X*;)MJ!ounL@$)Q;mu=r3 zKJBUZbiKFJTB8M60(LB4wroY4EDzgUzjVGXqln{=KmPdq{Jio+4-Jt=7VDNRJN6|j zd;akzg_;is*=^2m-@d&$Q+*?+Y4ZIYg~`_Y1!wW!cyL+x&olG=g*#*XmQUU%$l1gY zC}{WljqwhpE^rfT>bJ!T9L~$oE@%LYYrOyrI^DNgZaWqZ2Khxra z!pqmMH{X8yv7)A=WXrByR(DTC$@tB+VihZ2>sg(WvSj`G^J~~ezeef{tPFW|aj|>L zgv0Ipv*-OhbEXGWi*PnEgwL8in^W=h>C+*-896yBEoaW24eVSRv~qX(dm$&kITns( z{Qbu_-`!!f^xV~}R}**^&tv|geE##*t5?;wGHd1+$cTwdNHm(c#7IU`GB9*%qQv^^ z(X&2lH7R&ZJa?qiMJaE4bm-L#lUJXAu8Y~pbbafzXNwr!UVs}=(|@e{@1XFY#OkGT z+3ux5!3_B``}+6{m>QE$=GT3ep0!}xwrK)PZK`+k%bymS+S|V`+a0SH{$6d9PW|Vz z<{v9!vhNrzJ@EWys4aer%x3eJ)r&R7|9K>yw_Q4E zLSu60B8^)|ul4rwMreD~m+q|nZFZCQ(8CQHUA?`%8)|zWTTDOwv~2gwdn<+37$?~l z$V?M-1!bU>1zih^@84&6b8|z5m5Ip`jjp?S&n^5!jw-#r18GR`M8FNEJMmgCB^O?7%O0+%R5uwA@S^D#W zQ0CNOH>Rna{gcrI& zfBlcc)24~dKd*lJ(~B1`)~&e=ZM@91DEZ!_bJ`>oSgi{()WG`8ynlN-@jkKeqA{)T!fWxQzLtW z-uw_P*5#isEL*v1SN?swAJbAJ-v-JSqMM&(RxR@BvDFM0vN0%>K<`yV2 zL0ZA{(yLdi-ZAFvIVbsx$#EO=@r98o^Nt_Lw-e!#wXc)eH&x~3Wq*5LevTQI@{d1f zseWf|Qh1sLZ&-LO_V@@NIZC2z$Z6AQjwS;$v$C(RuHIeeA=zx?BCzC$=C_#^Z{NN> zd-iPkyE_LT@AhK%o|hcnv|x_ruFvt?rgTm;nYM8C>h9-1BXrX8wu!2yPf=`A5M5Z@ zy(l6!cJG!gTOKc*bocJvf+Kpb?r;Qc^q9o*|An9HS+ic#gvf3C_Qi#U-YuN^GuX1o zO;U*?NYkpkyxjc!=ZhI8e_zDPZqoT|qknpn=2In(puR6(zNA=uxKkmOEx^Gd(H0pK zbLV2(MBS;%U@MpUZ>;sMs;b%(_r7nHWs`zO>w^Ld4#mlnC-07(XvCJC zk2mN@bFgG(XK!6QS*26YRBHX^>#x85tSK!m|z(oplj$ouCUHYY8<8IH!8F&uCB8S1ps6(9pPusBN3HPZbw59;zL9-s(U&L@ zIW08wuF=!W%l#k9&pykx>ddqoZ@;ng%k8-PZr{Fr$NS|^Z#q+WXJzp67k}k@-D35` z?`}Tyxh6gR`N3xP(#yUVCFJCm84KoG=dSr^#op{VKf*+gc8lv9@h}S)`ud(daKIt&t(Ka`^GgRi zc;fd|Fz!v*eAA)9Z~0~iuY#2)4OaiE*c&%3H8s*N{;#&FrMU2vhkYsY>U*}Yelu?; zN6=2I@+9G`WBUppA1kX<{_>Bf)hS`}4WSJVM;?ECety2Y(!>CbBZV=(zPvR^11JIO z;1zt!qxD))2` z$2;%8zy7kx=6ru&UsJ4@j*`0nye0SNSr)e?N*L^Rn!EU71|QrzTfbZXdD6^p_n>m$ z-o1CfWVkL>JDl^n_}7yxM2 zUaj2X2HhcmDkDyLr=3U)|lQbNYVGXI~q+>r%gauSoWA>BsH4pnBm} zg~I%;Tep5W(0xUXG3WU`<^y}y)IM2qTdQZw>KO~>c(W@Tv9Jd$zw9};(D<~Lyq9lV zc7Z9vqz3tK|zy#))=MF03;G#ro3U#fSTfmS2txnC?}vv216|!GsA@R3O79 z6WX5t4A9sTJFEKpyMuDYfg%sR3?y1MNJQ!`R-f$Ybi(@mp2g8~&Tfm{&3&qJyMdDP zgOiihKlE#K6~vvK){u4S;>C%I+RB+;VQtaZ+EZ^XTc+l8qKxgV!*an-9)ROioT-utu8Sa*Ef| zWy_XXSzG_DtM~Ti7Ge2yVO>iZ(`)Y7J;@Sn$F^U3XK{1mIg{S=&$F|#noK@ySzvfh zxbw)PM~hBB-Bt9I>&S-YO?h{BO%0v9eED+4sB3rb$grIEGQTgC8E)ukIi1ffh2!Aq z1g!?Qqe+JM)%ex7!~wY+=Iy8Mb)4z&z-=?&TAk)|C2jv>#p=@Z!hE#}gbTE%CSi zYjS&UQm2cORPQ{yS}CP%UXx60ZF4u@+_Ki-#=1p~MS7ZLQy#(xOjxEgFmFhRot=8~ z)vK)ByyoWS^?N>X?b+yT7aAJ6OUQVMrm3XV8h#Ju&qqRoiuBYp4*xm1DmL}Y8P^F# z&#QMEDJyU^g{ZxK`*!c%y-VwFWoUw{WEsunJ5)KE6rP@Yc(^_BW6E~zpktu=OVj-V zeBx-yrSl72K$9sfjuSSq;TWmFK0o#E{P+F;|1yb#$ACOKFWtNM?_TwLL!Qq+K0dy? zj=L#BQaFiqlg{l67e0J?>TTgC=J)RE+^_@i!HOTAk<;XDt4u5`W;hqVefxIp+O-9z z!i{FmnK$p6Y_fLOqv-s-q4DwO4S1Gx9!4N7IF?SC>xxeCUu9U-~D>i3>Yx zqkeZ`%&+`90o4)@~YFKKk)587#fA3$vZrwDM zm;Uv?f^&1<-v4{|zUQPbzwiH-6JlX%{P*wQ_4xX~{q=tyzj~#$5)z#Aza@w_fcjhel|38kmOo-l|w{^>wjLQf3b@>k)e5{apa_8DL zvF@WBihj$DSNrswxUj}f*D;_i)ups_>#9}V-Q5>6LMEvsDHg~)<3Dvl!PeIHVn)br zlU@an&R2KLX7>tA@>;shn;|>5U*3LM)z33$c>dJCxS;r$)zsYl@UDAj&hW%YN=XHU zPJLbpD&8z)`rH;PD=U8q|5!0cASgWCea*QaKYslD{9Jh=$JAn@nJO)R9j$ zvga8E>r*fvx3ta`ER=cH|22i<_R<%}Kd60KeEV%%{jp=m5~`bZPCq|4x7!8OAV`sL zoA&hL#lT-{mYi&e(Al<>xk^FcLxs(U1^(YV%_F8ATy`{RIs`>w~c5d^&$ghp&t5>en+<)JnV`s_BOEZnr-<0iMq#MU_7&0Bw+ z`>~Gmte-zC!QJ5F$Bu=ChjS|OwL6DijozM@`t`(}&3NX-%6G>fw8`FBny%cj=*Hc< zYgfJc@}*>6cFG)Ylv}wft7_A7|M@~r74x23=m~J_ zxSQuWDaTCucwudAZEkMvt&|NByjsat7c;IrExP#alg<5`H!D9pa9njvQs=b7)~#FZ z=KD`e^_)~OuY70B;lqcYpPRdw6Er|&y76YtA2q+_!LLP=^J?Eg>XRjMKXQ zi!^q{=!J&r$L?Zz%GG3GV)CSHcj?SG5z`zi=FOiqi>X!g6w}q2t2S&oH{k)S0XcWp zw6kmZSypr+PZV0*IPCV+nWHg?L-An3h5em=&!1J+m6V8RaUOd%S=~SFD$K*biueEf z^}1!k`u+c`iZ^+v2=TR>o0%nTjIfd0ely3}*}2g{VY`!Y#MaV^y>auNhlcL0{H(T; z$0hK~@4p+ELW6^gUtL*gV|>T2?b)|X&qgB`FGiX6pUp-wk&%q1-hm<;3Z=>o^K)`q zJesbkDo^#gySI9}K+&TkoW-Y^L|hl%%F>!TYxZpBtCgpZAdPP2&s6yTD}pkRgoT?H+RNYzcqC_aqCu8o5{j}6K~7Z zC!hR&zg~Xb1|4fFt6Mj3?%cL*+TrYLKYsl9^=sFvRh=$OY=5V9Ec$V;`n{l&nwr|0 zEgrLGe)Nr)_O-%h?b@|=^WRSmkGr@}KK*E!k;z`9$egm!Od@96M9-}3Y)-|59an3& zE}b>oKk~rm=jSgQFR{|In0`6o&x4zD6u19*o$O*~^_TtIjKJs}6RV_-B;39jd*oDE z-i`3WUteBs{NKMh{rsV?ph@B#Ef&5Fi!}J-_BX z>({%EEYgVEQ!z1d#>$nNcTah%F3>o2=8R8#ynIg23Ej9*Hpy96moMcxC7{U)E@}uge=vS9~sE^Z)XQK~bheE%$<_k^aBu7nZkXR4+WvpR{SN^+b;ympj}R zZ)k2gHn;NQBi1I7ljiMqK}F z+{UAr*LeBm9ld)Unhl1xA;VoF5!06XeP~i>;3<75yYhI4Mi*au^BcME@9r|sZMh}i zd{E)A!Kziy9t5N;@jshYU3iQ?Xu^*>)<%|=k@4~Q+i$C@t1DjO;GI9yuHMwl%xJcW ziOCDMT&<~HN0aR4uiw6X`_7#++st>By`A;#`G;vc)6dU)=ldf34|6G7)c z&HnuP^R3xU_XPdt+g+{P*j&8f+O9VR76+84sQE1o3JwmQJ9lo~{{2grvT`xa6}q#S zcUr29=cGS%`;R|vy!`IL($>82)(7PmQrZ$N`k1F4c>dW^rtjgy#JfAM{JgGi-06}8 z9=DI(S;U&edMIFL>Fa4bYqOTTjr1*_dD`hz^mD(ZL4W`Ljg5_U?~_?*d~vaR|F$_j z@9yrte&x!SH#axy_6teK$b^U-ef-hE?qrIP(@zP*B8M9x+@J53-#?hkDIXeoR$=~` zqI-dDkzX?<8;x}ISFK)MYM1ljO!In=n@ylvLiaFed~C~=t5+R6SFLh-P;l4R@qNda zXD{B({la!g?aJ1zrt{Ccb1$0sqi6b5QDI@>+}vE5<4fmv8XFi~xPL!BKK}gYJ&QC7 zI{1HtZ_wf1zUSrFlRg$Qe63E$`{kD#D%t=2a`}$Qb)MR+4R6z?wu?t(kjN&AdzdK%kb(~PN6|!0@Xl9B9d)0B~uUZT3Jf1c{S7o&>x}tM@ zX_)+yq7&wJpfRH+(5&c8M-nFZ;A^=$Eq|`|Gc2f;`FA!fB(Ao$ru{(xdzsJK5Nb|V{zcKjf{btm#Cw_gFUvl*0r{_ ze);^Z=fs8?nWqFd-)c2-kyM)MR$gu{BWQ1Iy!m#iFF=NLDN#JE);SKaj^WUv)^Oc zTw~Gq`pugZiL{gy6>Ui|V_(apu-yS|8qQ0YKr5CiBd3+`R_a)}Pxb26tE*P&>FK#G zzWDZB*{_fN^*$UsOJ9e1dwcu)`$tFLe)LF5ktJ<~%#OmxZvAZ@Do*=fy?F7!!f)Es zZQHiZn>Vlc`8n6cfleKuB@`1Q=FXZW<>WEXYxYDt)75K&oCR1UrY&B)_}0c-ckj*( zwM%#xB+}Y<_~OMtiS{Oi7a_&-o{PH9oHZ*eJKMVaUCgetJC-C!sLAy^@4j{GR?defQOP8w3@TG5vXg~Zg!(^3d zbK~=X*jQP^*~0360#0ILVk`74?Ctq4$0sK%Z?uB8wz=*uPn#N=Wddqn8^rcYLt58A z*W9~#;QgbIkB^tgoI7*o!2fnW*+nOR{r+v)H(6!n_U+|0HG96qCmcI|{QP`-`A(ON z(8(uN6rZr$|8NX5(n*_DbYxB0LY}}jkE4@j%QFUD+Na94wMF;0T-b_YXMq;ycD}#w z%J<(6dLA7eeYvjY<0ICUJO^efp1Ncd ze1{T86KIiBX+pw+FI#iF-u2zyo%xHvf}sY`w@!`H{Lrbof1Z`UcGS>^w0-gez`_Rd8W&(27$2r`WOAL|B|PUdnRZ5;rTV6IRD5>OM9EEIQ+BH=Q#cNYt`q8StqB3`h0tH)0w04(-Y3q zn+_%jnANUdw@%3E+q=8jHuHb}{8?dh?(?4;HzG17U%VI?8k&E1m+SMS4ZXVh`tr6_ zUtV2ZU0htedGqFr86r7PQX4h8?%ut-YL%bAe>x)3T&Oat`SnH9XOGNrRwl;nw|Qqf zSoFPq{d)1qMHe&D)75nrdro5ctyi)u(?Ei!{czdt+S=OKNh+>^Z_27IWcXN^b~*j6 z`+w{hTaItx?z_8c%5+XA%=KPt$F_3q+P81tF8x{vZhPNi(U05HFl){F^`Ak_^p)Iu zlagu`v?tt~#_1Bcr{d$HyLs(@OHEBpnVFeynn~U~yF=BI;nuO|^Xuo`KCcQ|1afyj zbnS?^e%zZ^ubKqe)ZSjZ7WOJmh=Yae;gO&w8QZFm?TfESrM~5om6fgAFVDlj^Qi#5 zbsom9_UzZM zUcD)+Hk$e8=J~p9Pm3lCBFc$r6BS?dJ(%ygJ#&+ewYBx>O=}c5R)%w z;mPVKAthC``|bpWbq=AR`R1FZ5i(DVd#9u>Ikz-S{;}<% zwfs|9R~hHFhTRosc?fT>S1HYmkdG3(du8?GGc%2O4mVUv&okQaoOk1zxwl_`{baL# z)vL3!%{Tvjd*sNGpP!#sS5>jGvmbtFu;Lca;gXUPho+M!Jwrn+`)1FbySMJ|uRC|< z9Df`c7pEr5@S-5T{_obKr*4UU+V1D7G_k;9&&G{{-A5mN+;KKdT1x7YRL-~e_x(96 z%ii2@m#<~nt*#%lW5Ft|)0;|crmHQ|`1Q9gV%D0KD=kZ3g`7j=ZC%a7Q>TgsXp6cs zI&0>LH=gw_E-t>Js|ab$=T$1T9LU|hW5>{| zRqn={)Wo>zw_8i%%ebd()$ZxQ%EmREloYN^`Z|$tyRSS@Zwz_lH~(8?3FZ zuV1^iALX>m;YV8e&40u z_ea#eEWZBwsfAx?=;`+lTmLF8H@|oe6=$EwBB=M$Lp3q@RK&YT$;5iw)#+^g$uOHE8PygWrY zZ7X+b#7v`>Upjhv%T{mLo_}BO{-#qK?IwC0d0Uo!UUcKloS!Tc98S%8^zzP?-5#&k zP8HqoGkiP$_g?dRCmuwc+4Sb-=5$WQ4O>zYU$|ZRQfwvJ=D9yYFI9Br)TyGo@2)v+3fPfdAv>z33HvlNSq zVwVndJ1#tJG|&I#mE#ryX5rg!a)#79acJDRb$Q~p&s+4=qT~zTP894A{R3)N)cxHB zTJZbxP%HOL(Y!!dzd>#GFKV6$T4WM9yaJ&w1hq9l!Ehx<%+XJeeYbkvLsgP z@2AuHoQl4_zF%b9`qJlq++EVp(SA$&V1mH9fV+pl{+V=K@ze&RR1UV->8C|`*o>Dy zth5v165XZq_~#VA+8*XpY=87Qn9h8@bzovtzhIztD-rU^$Am6~yknyr_ax zne3mC&p0DQTwHwXJgtcyPi|~XE_u~+{IPufpTc=(x5!C8$ywsR)=LYylX5d{^FfDQ zWpAUxjONUlvu6GJ?YG}fo;+FLU_)E{Qs%mv8X2V%aXX7#&F6VvXJFfkD zS74!_r+BuYs_NFhlXvdS(K&54`|P3Ln{-wbhlhv1uHkg>ZeCwzGRcu8Soiz8yV+S; zRo~u3{+cvrkw$H8Ex0Kh!29gtVs|U)Z~y-O{{HSR_eYle`}=x-GjCIAp0oK?@M}X0 zixnDO#~(8)=9FtVr%5ggTKVtazjf=@DZBS&9AEX0ck}x7@9&o1w=H`k;amLwU+vq@ zwM&nc->+rw7x=Ma)vIZr43!QiEn9h`u)}D}44%@-#&c(0mXw!|kB)9;VE&>m(5qK0 z6*+A)@3iSV*Vw$?)BV-(+>s+L(b3XxWG>Hzc3}7mdqrItpGSPqO^g(iTbXvXJvH*~ zX6x9OUMfNtGroLzdHIjpBo$wO|Jylc!A~0AocO+K)v7W-@Tzl;Ajuc^{I_^aVo@vZ z;PbP8S5-UVQhNEhBcQ&G0E?!t(VR_tw5#uUueI~YgY6*s^glRj+T)mxAf^lm>@`{AtRd2M{BZ$8;>wHn?%A1{UAuR0-)&LH37>ipJs0K)pq|Ua zXtzsGgoWn`6#e^CX|d|mluf5Zrlm?tNyY7};Z)!9TxR3^)JTi>!hIWVecI!{`IMF; zWP8ZNm~|;embSKY4|jgoIsNVXcX`Vqm1dr^TB|2*{O}hv8XnNL6x)^pXlT>cznEh50*NZu^Y9?E1hF9d&p4Ru};9)Ku#}vpC$Ght|nx-tw z_e2bSm+UT{)U(9U@BIJMw{A%(rX(gV6iA&aYierRBH$YM>Ex2di<=)?L{7VX>sD1& z)w#LW;=OL1ih9$%MO=$dYnie*Hn2Z`@gf7>A-R#Z=@k2!*setZl6`%BO+2iQ2HV$o z9b5I?y6^BGN6BgMKEgtdP25)BFI@`q_V%`rIk#b6wu*1w2AyosAoBd$Z;=a6YjNk8 zNh`AW{Ie{6bcC~_cj2!ufBx9mI7vxMpVeJ`B_l7dtu%4hJ4+LjC9AZ~f4=p-SGLjg z#qoamU`bdH!3f1}9kJcff=ep)sk)t+lQz@o^4o~DYu6fFzNn;=R(4h_g26P^R9H+v zLqBehMoi>V=h#?T#gx?4*0?|sRxxL3DXAWFvzb1>YW6X+^Igz>qqb_5p04i9=rGmf ztG{KBC;p2FZQD?+Cf2Rl_2~1@1#0|qHXSZXFFTnV8}7ePmv9Tc`t<43g$oz1$&-w_ z25r5kE`477^;M`r-O5#3r$7Du{r&jyCivoS9!Ca+Dw;J=6P74@T@~2+(c%QT5{N$5Q^scVh@}X*P^uC!-j_s@cy+!`u zMLX}l+qiM# z)vKXS9fuzVgnqrYHo9b<>1v%LRiF{&?9&^zZM*jT^T|y*o_h*kJD5 zxu4WPdj{4$eE4wRzI{3OLrPN}?ck&1=b2`oJ(mBd#H#fC>*fCQv$iKJozBEr0Uv|^ z(DU44-TL+G*RJKAkN^3xJM-s6QPyr(xU zUc6Z5cxg#VPft%u^tCHjL^SG~6nJ=f8>4)#I<8%(#&L*UzUIK^n(FG^*L=J$UpTwW zN`cWueerGo$Z2!u&P|OB6KDz1QiUw({Ca7rcf!xMUpwyRc`#ghVBr^fb=|skHP;R< z0PUUOkmh0gJNre+JK3k3lckhXB{QcB{uBvr>sb1zI9S|DM)<(%_51xee*SvB{_~mi zqN1SC(7wlM>FMj^_uHA9KmS-UZTfWXz_62(_Lpi2b+#OS*xTD1p(ECRJlE{@g$n@+ z0vaxn9igCkscBOd>YNT)%=$f}EwLn1#dA@ni0jVk?|P-pC%Ie$S3H~U1==X{LaEpa zX^?z!Ok`vvV`)I3$cCd$uWfQPX3d_xc%9nH5UyLSwh^@{jy|Ha_6+`an-ta`K{S8+SfMHa&p(a zZm-$oHSOcak6*u*hK34vwv;_z;pnt*!tJ+yYLnmZ|8Ez=XdRrM{`}UhS$W)n^HLSX z*g!cqsI6q@eGC72HVg9%B0v85`T5LG7A8h11^ey0aw9_>UM~)cj`rqYWZv*jJ>=;8 z`SZ(n-_@JGx?DJN+Ww!?tEdwa}R!~1&=vwZE`5iH%P3I$4 zR@)Ug9^|z2sfq}kc*8IJ1)sXRyI)rS%D=zQ_dkF8;YAu|W@d-P96qF$@4kDh;?>g=eV|a~n*MNI z@H#7Vt7$J52(H|+yNB_{go(xHbWYE+t)3>pblRU)H~V^IWaP%%Z+ATnuQ<5Ckn7Y& zoh5q?fMzJ2Wgl2hIDE>WrS+~~IeTk#^{?|~a<_kO-nNbHpTx`dhBO1|#{JfF^b>8` zcyb!A&fK!lzm)CenNNn3j#Wg?yq)S|cXWzk5Zk{yi!{!iJsZ2f&UUl7pw+Y&9x6ib zOdjY+drnG-IumwIKsTePNT~0`!tEK`Ql|=*zq`X|zWdv^vK>O5E)s2lBC55EPAWJX zC_1R<&)TtarKj{gz15p0bTJ)I{I`HdQ|GkX;y}pwTw-bjY`e}B`4g|6ot^z9 zdfszK3!cLTGVF^!{Hy^lI03C*J-q$eqt^u%3-bKu+x5CA-IAVp@92lA+tgNuWMyTo z+PwMl`|sPgY;h=W$n%nwI;i9=8@s^kLVTnz2l5d6qwkJ(+w<<8^0ITgB%yiQV|UMq z$kVJ#jJCTjGLRAyB1a0$VqsdOfeGc&i(mox?|hQkX8Hl?_a(8^@)kfUpW81 zxTqXELGy8{Vsz3&aJ?F`hDX%3afP_aj)%|Z*Vlc1c6Lszp}Lydty{Me!u#LZOmA!i zEnxWdt7^mI!-?h(q7QA-xzna|`qjH&i|~xyAg{j!^|aTn{aLeb*DkAH!W{-2SFT*q z=vs7^Q7+}>^Fwbu;N$N}f4*Gy-~Q$@&nLqfX~#G5Y|D24DH7S%0Um{axn7Z@Nr59N zwxnu?Sk)bc8`f*fe=V4}P5NL*%^EG|C7ZrM+NYDGCH(}qeMn4qP~9$jGZwO0dcvti zlg_T2dZ#R{{8p2IC+^>4Q_Sdhfw#2f(cT9^j^Yim_b6bOVOgj1G z%a;;6_Iqg)7QQo__PI9jEu}Xa6zBn+O$4RDrS%Z-YD`a~Pk1I!BZ{Zrj zB`&3TRlA%19XH_FeiA%5IB!PUxU+td z+%k@!I;(Pb_x5*Xt(OC0^`>id9b0bS{PV&~|G+5`I^S-l&kwyNQ~3B;uZ`$^*;LR1 zn;8N{udl70I8kti5NO%x^z+ZPv*$(&uvB>T_w}7SbLK)>X?c12?>YAZ+Y;)6MV4;g zF1{}-KmYyPx1~E{niQ4OKIcU-l4b!cd8TwLGr$IJca`^7)e3qsVMFlK zzs`=cvf%s7o|>U_!9mND#nG#l|LLt;v%Wp<7T4#R*ss8$H{Cn*YGY%g*R^e|jus^^ zF1)Y%zFWpehb?u-(rL{5?mp$-W4s131b$-Ena?%O&dr6NX9!ASjDs)TGdoBy;;Y>8 z!Ws5qQx(^|JCZquC-85a?8!R&s*T-QLG;%7V^hBJNQ_SNik`0A+T`uyJZ{Q2LKeSLiuKQZ1u z_UY57i;Laa+1OsadUfsk_4?np?~7%u)AZdU*D^`P*T*Mi>$F+3c^1YeRQvwilzv{$ z>BMAp|A=XCU%dG7Zuk4Nw6w7B@XC4jcbBio#k2iR;I; zgeyl*%g)MTV`Jlrl0S0F%6!J6=;-K`(H;r{Ck}ER^soahx=>6>PJaC8X!q;aug}l3 zeQeQ}dh_DNz*m{+mEhHeXyfBX_rBdp;qYH}-v0lbh^D?iz6z%ko8}xo&wI*1sIy}4 zz3unwq*e>?rpUW9gg&h&pW^+E+zI4Nqc{Y_n)7u_f%wp3zQyAm!-hNHp zfEjt?($-}%Ywgq#ZD?!LK<*}nSOZg2SJ4*<1}{piR(7}qvZPMTD`GXh`~Lgul6Plv zzgO)Qh*w>`JkIKZ#)p|pqVu6GZLvFF7M@$RDsEQ^CuGn1gxhbg{rs4|?(3>0BNRf(h2SryJLLm?=N`sJ1;CcZ`JD62QT^9n!IqI_k8v0 z)!YAsYE7;B@) z=x&~5U}v{)-@bLA_UwtQp>Zo? z0~=_5s&uE}p+9PF=h8V@m`oi0O)F&b-Ew+U$2~ymiHTT|NO_A zDn=LfjM}sX=Ms9Z|8@C&YGd+T$N$&t_8H$^@_9XfQepkOBWf>K+uyv$#`d`}L2b(V zeZRV9X>0Lj?EYA37A+a%zGdY~P3|{Y_ix-#Xpyn4DygfRx9-3pmu>s@<*nmUyd9x4 z?O$KY_S?D(UMpBOLz?Y)qg3g4+U{^mpHW zYi1i}#Zg>XX!y7E(YLp^pG^zx`|9ZR=uP>w)bsOfy*V0H`HMd{E?hSI*}aO#yqHS(;+fCdh_kKAJR6-ZrB@|eyQ!>CCUApP0v3qlj{&%5ZfXU%qMeoR}6R4 zhSy&mPhFiKEq*W^)G*(6vnZltk%hT=`QKk(dFDk(e)+S+@8AaZ@2zF1HE)*Bj{2Y!QY2kxvvH6;8ZMscc<}rc6GINOs9(y&tZ+ONp_LX zHJvM_Ie*cZwQS|elZO;P2sDF+7N#h+rryjjIR#oo0U9V$>{@V-Z;^(TOrLJ=8k_U& zP7B`_?I?dQ_eFeav4KQOfLx`X$ex;?lSJ4urk{Sw#n$}u3A4V_`#qoe_FlSrb!+!m z$5Z#t$##P4=jV$nZ2o;bE}uVh)5eVxZ!TH5Q1P$dZNvE=KNfcQR6ac=Dy7Y?c3dd( zfwqi!{=E{bxiZIVKb=(HwQYHIZOVkrf|6!tW=*U~=jYkpoqb_`zWAK2Ivz`dHb$Iz z{`u>-Z)WD^w{y%Sa=_c$=Pc(@S66@i`t{qg-%p;XxP&Zt7=Aju!PQMVijnQf&CTil z^X=AluMQ}K`1yFDKqiaUVvSQDK5TgTo8#(?hwWphY}ERK$K%O>%8?JL^ab3WS;pSJrxir((%KQS-kGw&*$d(_jFn=)+Qt@ z*uP)?(Iu@ergOdEPQYH?VjJDpi?!t zSV&sXZV;vbvT;gkPG(h~a+AVR|Ba=2fg<;7KA&Y~=lfv8&mNZgwb)VM!5V#w-vQH} zg4e$+g$_xtSq2`Gj@`H1;eFSf-V+5mIX>kq3sU(+3{wAWfUSc6p*zQ8&E)=rA9Jo2 z?pQo05_YiBr9~H4ybIWM=K1Qm_Vsp$CvIQbANhI4#F{l$=~4b|CfiDWed$*4=nS@* zJ3IB}>FN5}{IzGl$=q^Kc<}wVWLsk;yPw-z(1I7YYMy)zk*4N!#opS<+~Rr>j|GER zEYnq;L5=^dml~PUdgnVRJox-GY2%GDdlQR!YpwXor)<{f3SSp<@?i`2?6b!!qEMptbPNEc{?C{HF^zgq$SWI>9qdhJR$1 zSuVfqSt{Zvknl)aR(9^pnT)q*oPPT1-8;SS&)qLRnKP9q|IUtu#VAEB$rEOK_tL4WtHUFw#YRLZEV*=iAvi!5@d&c4ykI-! z@87>N$2})qxqaK(&Tii9L$-Eyb^reS^iXlCpXZ~-sc8S>Ab-ZJXV21h@CnN+retJz zgoe(0?i#2Pc3i|Vd=rmv&hE2m$}K4dTcsq=hsn0PJ=wDbx=MU=)ym|^YkAv+oj}{Z zowRCYq)r}R_1*fEfa3(OD?3>o3wFk=TE)l1^JE!oP>Ix;eYL+i6t%Urzj(#Q&VARl zNMna>1PMTsD8xG*LQ?=al&7C&?=EtIy38)pIV$YmDqjl&G7$ zYL(VqvA4HwMS-^7Zi1fx^qiKGTFIZo@b=9cn~Dz!yQa-& zyrF;Ovkmwdq_<_4=Ndqkk6VWDIIdX+UDe#%+uJR!zi$0{`|58!k1eL9y1TnqS66Qi z-OcKlk(ak__3F*H-=0kQly3j~=Csq_Aqz~*@+Y1;5MwDlWuc1a>eZ`%e}BJz{rcyX z{~jIfj*X2?%}p{%{Uc*rb>%@{Q1j!Ps~%st^E*Us;&d zcZXWJSFLLDRJeTyyfFJi%3AOujw{nnp1S1}%mrF?DJ(4f{QUg)FJDT^$ndluUXW$X zGdVhPsoT8A>|f5U-~aE{8gPWYtM$5@rTgJp`nsAPP(iSnDfPyU8yx0Lv8AxX0V0|f zpV;J6dm-^Li%Za@UuQs@2c@%$ij1EBI&=2y#a~N;;0F&(jFt`$3sW$64Lnd*_u|6B zJDZ#YxQ}tw{P|&cmwT#*%Da1eUw{7TV0y9(ef_m({Cp|INlFKJ;}vJ9K9@~h@mVoY z1hf#uZa)9AmqqI5KYqTIy(>&>5mT&WsF$-<$mpFpZqA=Se>vmz2W|23@#>-u|BB8_$8dQ8x*n;9iUVqu$xuJ`^+SW(-!e~vrjnx=+UEY zas86`yZdUZr)#w;h<(*P@4O9PIko~fU?F5UNv7|gG5L$QmuYD4cGz}VsPAMGjH(o`=#x8Yd zdGRVa<)d%AncCEeKSFjDZEfXSHu2z&3G?`yrdS`nuyg;PPu@-*!NI~;U0niOdZnzA zC2C9|jnFSETkg74t4i=3617@?cV{vCyzeG@K`M}AmNxY*5A?B=o~US(EW^h>w<$9+ zzUCvVX7na0``afCU~9jhUU^$4jqJix7A7x`uMT1|M=m;J5#m8 zGv+8%Ff70Szqhydj2bU5@2>nrZwuR;Igc$O*3X|cYtgi|AzGr{M{Dfj^YinIi;d?n z`Eu+mdn>ikD(&RW4xW6Z#T6x~7iBG-5vC-xUrU6qMiDRjR#O zY1#7S4+Vbj+-cb%IwMbQf9>zG;9%kNpEqybe15+DbBnyn%9)QXb{N^%%<)hOT6yKl zm5}uG<@ev`XJ$4o(EGsWAp5rLOuK-SI*XOGP3^BMOuOSJoO<}b=Kt^e`c8)Xe_dT) z_v5hqySux;KRDP7+EAo(`u|7y{~y=?|F!<5=Kt^Y|G($||CYc1@3-5Xot$^S^~wKz z;r{#E+tq8=)|O7T|M#&!zUJf6BS((Bd9%js=KA`-ukC+tw%>d+XY1Cj)!*Ows!bLa z77nwTzvn`cnUZs8X#LmK@qeGj|9cw$_iFsbP5(aI|Nji)dCW|%`I9njVc%l+{(n!@ z?JK{%xp}_+-{&>QHisU6*jHp%_vZ&_+nm6;_&-PE4`hD$@bTf{_FJ+c0$1Mjn&0zK zoBaRZ`~QAAjggNpc-V!_HD0TGIR5{y>-N7c_Je$Q$oJ#h?f2KMUHkWX{a^8#->2jM zeFFLM`FTZM&%KYRpjU)+Ab?)1O-Z}-fX^%_V2 zslWC6b{C(C2H)klOFsVs_G}iu^^29GdKFjCiaZ0MyKayCw+ObB#xGf#vszWZflJG~ zQ|dYE8ljCjKeLi0Z+Nj3g=)S`T6c>>$h7rIo7=L5`}jC7zD@C*!g=y6_xVd;BDoe&)L z7RX3?XRFTXemUD;-)`rhpJTcBwd*~OO^pdQu!Zn1?CoL9CB{&*niM>W9B0GEi!AG(@r>u@UXqyxBjD2*Q0&4zl(~CE9ZUxS)=YZha>;=%MvkB(Sz@HPg1$NqfmK| zgOz}@U6ugL!wUj^j~&M!N4~X^KDhh+K4}h?j=Ys?*REZ)s_E{ezjgmF zTnISg_juL`fn_g2O`_H7_i^ps_xo?%{PXDzfBy$@p57E18XC4*v}{KC?z?S*3a=6$ zE#SF&;l>S)--q3AR31zausd*at5Vh}h0gP=NjyO*#nyBE+7Cbc{PSAj-tLCfo5{!f zE?$nFwB*AcSDn*k<>iM(%_Ml5-WADgFMWOOh0WqNm2EXw9+X(EUcLI^IYAyaUp3+5 zg}l7HJcqx0`Ld>BE31#1@aavHR9@bCke8cVY9UkdW?Jg4+qWMF#hMzGSk2|-h=&nXozi{3YcJ(+)qpaJ06{c*5MdYeD;(&Kx;%EUe;_ zw~Gl3T-d!%N^TB!@?@piw^NJ+orKEk&78E&k-Hfs=e&IR^3*A>AA9Qm z*CmO7gHu90<4LYufgX=fS56+sH;)TXL|G1|ZPx7Cw9Ikmh7AJ$zJ7dsT!lA4f4*sF zh1IQ1soaVwd3kwTR|q+IgocXV=`GpoDtSlwu)Ef2qdjl5b#!{X8?R4!m~}m@qPus6 z%Xd_eDFqy1OOYCW03Ao7ebVm-#)*;kDiT z_vhwXo0^*HoIa$zb=|sk9jE=?Yzz4o`7~zBwr!WTW*tm0s9L#HqiX?wfi-A1wAC}F zi`&n}1_o|iG zEU>q^YKFzJX$y}g?X3E`>TX_sX6DSfbEm3wKHgz|zh?5SI|6r{ejfl$mmEGf*E&{D zeC?Bad#fLM7f!ko`t@(5@C$?UpJk3)&h^`U*H8IPbW~JUR+dQ)_leV|i!Ed(sjxOX z&U>C~7F}LmUR%5OSK-Pxn`iCh$nQ>+sGGTFjZT(c_o5p&Z=N*hS)?&ZCHMZmy^9ws zm)UZjV!zpAR$fp!zI`(@HEoRK)O)*X zm6lW-Xvxi&CjFbA0{ay>o<4n=w)tk##vgzG`P=}*j5g=_d3YKE zxxY5NSHp2dwh_iPIf zi2eEZ`@Qg*^w-zcwoGVhY6@QNclFAZE7z}Y-@aYDiz$ysovHJ7b+_&H#avg zUc5LpHPzVIScNx0S^jGW=&T>!Xt9m!*Hn}IJ9GBz=36O|Z1r!~ z#qKuA_nwxTb&-v!5wxv3s9ZL8?X`4Mhv>Tf^S52Se0i}3*I@$zFNen~+uGV*^zPWd zzy4^IS%2OV>6IUf_y2g*ebMmR>$I}6X>R9y{ruwgR9t*m&=ARgi}_=2+Ga~-W#&ce zckSNIEAVYWXU&zzk!`6rH*MOqYL!;|;g4@NpI`Uw-N~%2Qa*>|`qf3aG`ox}Ejh(k zehpm|)V4@t-~WHVTLji$&z|vIOr;RyE#A}_)2F+0Fsf%9@vr{&#?Y-k@9wUxNoy8w z%eAfgqOmLRSB`Lg^y;sXycfb+WLaMezxd4?VJ{$eUGDAndpWx%<}Eq&tj*%@-_tGG zY~a1pAG7XVxf1f@x^?-x0C9bTojiY|0s{{g&RL|9xk;?T_vevTozsU8AAbD!v9hxA z>b=!MER4%;Ff^)qdwUD;nwpupU9LOmswKju>e*((k)M#j@ZHfNfZtScZYoFe{8_WQ z&dC?NyJMOB{rHO9rN#4mT`uM31&Ta$E_oFb!LneVR)AplQK3BB_jh-jyKS&Iy@{P) zPNn6*YT@L~d_PyX#I>c~jNM)4di#zWm(I-Dvo}ZR2y!z#=uE1rvXV4faIr($fflv22W;WQl zTkJn9&&ul9u|j=nt(%#`yy~K&OLDA7zOpwv?!GG*7$C*x4<3B6bhml_J(ZRz z)20Pk$B7($^ypE>bG^Ha`}Xgb-*&>2{cD%Eo#B%+dct)}cJ7qyTT`*#C@A4%E4TQA zolCcE6YJX%qt}+064~dcH*EorYoLsbOpEKsw{PDbGbj=8b+GlBQ!-7_LMPWOy100= znrM@xY;|lvkI}2&%=$_WZ&FiJrR~ZLR32BCGV)9J-Lda=7$e)+tAfA;Lz z35!~)Za&cabI$txg?d@55{*UkLcU4f-0dL8sRr+J3B933Yz!a-OWwTw(3aXoik^6 zju#fNh^4l2i=F%OV%@4tZ`*?j8+Ps5wPuY^pvaE-r#AUaKep~>*bi1MxA|Ak9DVZS z$(1Wp&Zag0wmxjIpeX(Pyro}xczGkINy^GjRXLer>XU?2SFtD(^oqwl{JO+!m;-MDlZ{pMIGo-T@vl=M(Ic4O#x_Y zT-g|!c(MA?kv#23Ok1Pohn{ndj*iaGetlYhKTm7(!3XK{YsJ>JPo6wEZ+rFse}5duR9ZMdxK$z=Pt>LWlP)xgF>BzNu4z?F*z~-=xwh@w-`VU!{E0 z5r$mIxwV&AOJbGX?zIbnb+I^JlI($>B=@AL4x&ha#ZwP^gZ}h>o6l#AJ@c4A+9&WX z*tYH4-|zR+CDO{u%8aixE4=jSx)#v2=*R8*|3Jsox5gGHzj?gW({}6Dt)Zcz8@^Av z|6X27>e73?3$L9;j@JJE_Vn4aPd4vA|MZ({^!oQ ze(BE6%x`8%gWA=TQze}|V$^1xs)~w^mgQr=p|{1Sy1IJSjJrCg<*dtkqKYP|to^N| z;W=rMhIXFVf~#}#oJ=mt2a5E|+t1rEN07x)$PsjWnX0E(mThluug&@OFCrZTRF;~3 zUtj+>+v&v3&FR%uRS!CDzuk5-hp%0E-REFm+a`sEgP_4{8yla~CT3>Knn7Kg@^bUz zg`0GK*X;ZJ{Ji?3(jQ+g`-jg~So^GG^TMhBQqt44yNryDjSUSq*8l&Pk-p6f&5-?YSdWrXw1YuBEY?Os{v#xZlo426~%XVcEU*3{Q;uV65k!J!x% z8{4($gN=TdlA)D*pUguGJqaE&Q`1VDc~AB}yPV}`E*a(bD%839#IZ z*s_c3;Z+{TFB`xA?s~3ugfTms|3*!5aq*W9ozowJ)@;~t;l{c=M}Zu(*^4w}Wo4rx zZ#OBtxwZ8*=wKY?Mu$nyN`e*%JO*x0+x?EG!*?a!Y-ubg-O%o&w7wwf)*#>PK?{*;xKP1|fK!gY6F?e5j9vuo8V zeq1${;HlbsPr_|^Sn;lnIUWCwsHU?xPB2|~+6mmDS}l4SxncOWY3li%w{kCMKA_0e;_ z`*4Q|tE1UmP>cH@Xks?~+#Jt1+qUmn?wdoR=DyS!Dl&bsXDn)O9p50ox5xZ9c(Iudj93U(Xu7#kQk%wM~8ZF**A zr@*B7^X<*d+-zGbD=S+j1ZcQiYFN2)<%jj<@9r$r`{2@0rEtemvUr#0je@_CzUM%T z_?lkK3VFiC5)~cYFK^FxZ07ODo&^87uw z*UYi0EJ{jRv~_Fg*{UtGE}wPQ`s%(HrZ2RQ-C3l1C`MZoTGvM~u3a_{JVhtN=N=p!Tv=)9n_u$lOJ-7u zjhugEq~!6!dM`92b<_VY>49nVH5%j~x4aew_K?A&(q=1sxhdz+u~+OKs6g_>4kq}iii!nF&pZJXzyQ1Io&MP_!s z8E4aebT87_kjdPnFlG6sO`HDRHwRa3X4=BS!mIy^@UZdA+s(Q4PJv_7%kPjqPbzUq zZ@zYCuNO?2+zhX}487JlfHexRc=}&>2D@tKNs}3Dv`R%BI>6;9pt5tpS=d!OCs~VG z!8@cDIqoaieb?_&TgCCX=;-LUxVndjSnp(7#;j1m4-6AD@?}cmA{8eEqfCzF*FIWB4jDa@&RtA5KnI-!Qq-)zvjR zdbXii>I%q^)Ldookd#1AVDVgW*N@NQ`B zGWqqwpNEvo*7&eLlC4foRz7SXb6oZ6vuj@F0()=WS)?InUuWZK%{0SDZCa|TCztt- z$Z4QWZMM8Bo?h}#FK4~UzV^7pN|vwv{PXDJwmHU^Z{2!TVBv7tM{RQI%x~Ym?Py!+ z_8d}==1h{gC#HBr;#uFjb-J^;Ku+1fBP}gmInVzOr}4+C6_ZuB1)rI4#JUVR>a=q2 zC5SU_-n`kh=**cjK0ZEg?(erhxcni9`KyzY)g!0L%F8czkC^uM-MeQNe$!ItpD+LS z=jRrq9j21IXH{*>zwgIkI3tJEv0-*ee!l(=r8{}s&!%PPl@Oh zr5>DK@b6D$)rS)km1T~zHXrQk<7pyMl(4S1wYzUE#I?8<{tOu^7`1= z*uQ`Og0B5p@h@zx+w)ZS5oQb)4czF2b<)%{0_SgRYwnNTlfp^Kzo3lQ% z{>{(GxUsWX-E?L6l>WPU<+{Sx=O{^c%*%Pl!Q$A#r*m^-GP`0*X6DMxn~g=dboKO# zWR7pj$q>z2*?^XJb8@6L}aR^}#_h$|k`&ur4MHZnQ{I>tcju_CJ@!`6j=84aV> zUaL^n%AEgl(LK@U-hopVyZ0a3bKu6?vTB$1%6ZFQ3m@1R8xzB0zjA(X3UlQxhKE%T zuRXc8HkwnBm6dh5-`rIzSFT*YK0iM{T!b}7_Q-_{(=yYq4YB|Je!nl=Jc-Faf<;tR z)aJZ)SJAUGGeyjMbD}`Kd|q(h)7)Lk>mqbm=0jIeEelg4_?idMaTt@DbxvP7z{|q4 zc=6&dt>3JE8JnB43r$FstU0i|>}}A^$)G_$0V7jW(RY{Ly?mLOnR(G>koxByPYxb@d>3=ijzK zE{o}uL1B!Z_?o?o4<1yToXIS^diGlTTd!VSxe~Ia6V%(~eI+tU$D5YgSw9j z$(`I%{yr|5T|V3To9SyoS3y3v<*QncTDfdLbM|bc&a@7m_zw++wzhM7#4=mrE3PO^ zdIs+7o)EZp)rHyHRXOIC!8g%(zja~!5<4F5=2$B>(I+v|Owiw8$%5V&5;K;(etmvd zWJJV<2%QfTmQ5<{m%XLblCdNDTUK#bj?QeodC{ua){O;uhCC@YyXlS68NRXAIBb6PsjY z4=)c24|f(hdhnoQM9aN<_wsn0*)Otys-tZ@2mdB+jS7GBVX61@gg0NL?%la_#-L}B zhT!X0N!Nu17bez;Ssx9iu&RK z8_(4jHh*{PoE8l1IqBV$ZSZKULHtq-ql;N9C?AhUhPjujeQcgj;Dm;Kyy z?G68%8o&3E7baJKf9INVC%E(S%bbji1v?KsR7iQzts$BGMxcT3r~~K9NiF3%yL4xW zRN2RVn11~Qk%R#F;&!^{H z>9^fB=W=A5y5F1$sXN!K;W;LkEZibt)Z_j9X6m8-Gw07|n@BYaPoMLZ^;O~{iHNpF zhX*e%E@tPGF_?Y!f~{+yf~LiVYuB#by7lYRY5l|N4<>xreBQ2GuKG=tm6cVWjOC|S ztJigi2_hwTd=9oc-|E;=U0r@Sw^CBmEa?jkw|9{v7Yg+zmH>H80_Zj*3juF`NCoV)IvaPkFQ0dqU9W zrlEwy`CiZ@EJu^VN!Gu2I6#XI6*wlv;An-Oi3Te;#<kR&jB2&$p>$iavMj+#-F%JZU@c zYL8nJPTWX-U;Fjl?)QhpVhYc;?t?ZrWsm*=&46C8DiaJ}`FYlsspm3Eb8ogRkW=G3 zWstgaopM=pOz*K{Za22suH3djqwD6)o0l(N*3Jvt8>nJe_Vuw>y5;iSpuXhC$Hz@q zo_bkgCBrxWy!h{^W1HS=Og?_dJlj{k^+MJg!QE`o_UEGNd#mPf&)wDGz@#?$iMWLZqkw^-&SqhIPv+?r*9?ORjzfwyJ1bG98jc5KJHxmhJ~tG8W}6FWtFHfC1H8(f6(|`ZT6s4Ac@Yh{3unEd5SDt*V;7JoXrskQP9(gTkqkz-7`S$YH zV_x)q`czb*?{oinX=$lu*P+jQG`eoR+7p($)L1Gm+DvpsduOxJoh=e?a_(+P_D{E5 zzIA@I^J;OYr%4rjERGv)=5#G8DJfYpb?e%PHg^MZ2P=9vOU zux8{-E^srl_s`ZW?YV}pEc>cvSh!79Tr=n6&l+$eZd$6SD`=kW^wTcAH{jW4$u`FD z+VJq}R(>)xSQwkRxaXu}$B)~} z_5a%F%ow#VSMrx>O{_AgKsDCa*WVNVI-*~t>ro>!`vLW*-+%YZT5sF8@%X#`UxjOL zPOJLcY50ES^v#JEg6~c0>gp2JJ(N*@7-M2F?*3M{_zcr;FD5s}1w5L?Z98e=L`TrM zZDOZ4m6n$B%h^cC$<3QT|9PdIv2pPJT*Y5ZUkwU-bPw;@W7B?E(KE{_(uh8Rm?Q>y>z3x2CyM2?<2=U1_0qDtoP zZ*OH~WnW8IzxlU9e)_C!S6=wPsr27Cr?+KZ&bvQ<{+Om`AMcZGnXq)}(sSp|1!!#9 zvExLc%;`;g_wM!e^*v^`d$LKHqrf6&?<;3o*R5Q=x>?(A)Aa>QcIdjqgW8LVsV6?$ z^vbd?PcAGhbdl_PoFTbGus|j}JpB6Q%ZoROItnCMFf%h>Ih2=|w=HVzM>o-+>OMWQ zUI!7^3jgXaF9Iu!6*!#2!>8ZP6K7G}vr{5@eoWi0YWu%mE{p#CC@Lx{b6m5l=*5MF zE^C^Y+4&53nBV2DIR3V5ee#>^Z|+ZbT-mbJt^V4a?;@vfdf2SBp8e_f`~CfaX*ebd z-?1lUOfo5xS|w3;ZpBRQ*vVe}^VjX|^az5q?E@yMNLlke<6~iH5$0jbl#HCFAGgQj za6-tZXS4H#oR%$Hb}06it*x!DuI?;$*{M^e2spX9yJwzlbYS@P=alyPBi3b8r%auC zw190rCr5EcM#nvw-@kufkBxrxH_$&vGRyA0ru6k^?*4V}#N%rw3V?3aN;`S;X5_Cc zrk0kKA0N54A7)Hj^zdTMo3PcUN*h$x?Yy9gG`DBYoV=wKQX4Pf39p_i-yFR?@1lXk zREMHf$NS~oW&GRD8|mx!3k2=;0Z;LH7Q7Mc0Ug_2Hv82}S5s4a#2dtJ zZF+|%Ha>`P?XSi2ZWvw3x)*G}?ri_OoV*UMTl;->94nT&e*L<*T&s<#sp!As*5&U4 z%r`u|SoWq#q2b11X75L{xNA3V*}^i>I5|1_3$M-{9;by9>TWxI0ac+3c$6C&9A3Oq zW3e(bH5JW$HP^b_@AI=;w{E!v>S$^D}f+BGx15CbZ+pRU~vu(0S?H7oP|su zXe6?Sb<=5Ak$q)vXB~dHV%@rJQER&v705jQT9vqP-sP7p-+Ax)tX;8!<5$`Hd$t~1 z9dEB%w+=Miu}y*ZzEzXx`8k%sF)?QfW9sYeLsE@q`pvhKofkJNZGEyt+q2ExuNN7b zn6OBGadUT9Tp0I7O5HR$928qYm#1y}JWt9}x>MxsUpc{ihNAZQN?h@~N>*;!Qc_r0 zcz6AiDEKH~M#!Wk+TrU~obOwbeWgFPcTPBuj-d^_9hf4K%-kVi6teR3tJ`2tgIc{ld-Ge828DXu0&YLe=jTHr(9Y8_c<;Hmi6F{`~F0bl&c_PDDb0nzlA~ zT~ef(Q`;M(tXs2Y%;?yDKEYJZw(84)M&>PAu7TTfZZhr9yT31XTB=pQ!lIu)f9^2q zJFFeQ{r2Aa|8;dU6AUa&Oj3+y9?A|gF8lho(^hY4(Y1nm!OH2%A4P1n!M7xMvM1fx z^m31{0_)S}C10hyz->Ac#bbJh+RmFVV4K1}iRS{mb(c8}vXfkZ#gT{Y7Qu!d(r{w} zba2w-M6&E&`=y2rx^niv-xxE$5p7-4dNwvXIyy9z)mrH1-+v1iE-cOYcXHF4iOTMA zRWDU7}S%JkVI*?nG;Sw_oe3#>i1bl*Id=h|}t&TI0NReoZ1{MFgxw)@SOGr;k?U%I{+ZUO=M?83{(UlZG zbH%7$?^N5)^Wj#?U5`FKKHez^D*TyGZvZ#xj?6a@Uf=%i#EyNwx4t&1c*-2Nt@~54 z*t+S(?2sFGniLMOuHL@AyrM#)CeUp5+Kn3x*JaD^kW7ip%gSoXj?B%?4Gx}sHcgmC zQGjEGPIAJEojRvCoquj!|L>2L-mk2b6<6ovnQf7peyYl3=K2yfYwPI1DKlrz?Ck6W zdGFZewyGHx8qO}xQBhG`+}syW_P$8qO|7i7+|%F8EvC3+^=j`x5zuCmka+$hmY@-Z z?3*7x7}VU`nmzrO5!*A^z~QoGYW>GI@9W+tC7ETqd^YdeV@o&5`99O0I}<$On3J7t zd}FTwcwn%j?Zl>>4c$CR5%$|}=BTxRR?sVN((#^jbb>S}2*$$J?{>?wH2RGSkJfBxiTbzL!TMVCMk&q?cIc0T%8G0EIy{`vCf z=jP6uCAH)6nKNffN=sY2OV0lL^7ZS%-+G>tUcG)Ds~28aXn5FQlFHX_-;R~$FEVtU zl3?JGoO$KM%rGIjoBYbW>%9)!DbJo0a^sGqq$K$6h>beY;o+d=$PXVr{Q0wT-g9GP z(VpI}t;=?UkW$R`$jIYzF5VLF_Q1|`0H z`+dT~#3EL_dR_VFhv5{HnLYuXSF?JzS#MRsH#m6VBy4c76=`tr#3rBcj#)lx8&*A@ zwAst#jq#?Fo|)?oK&ApKW<P=t0Xwjp$+wZrvA4)LzanW7g)g^PaX0k`wn;VWC zkx@~v-n`*yb?WZ!1|3d%`}S>b<;|gs;@UdTzkKGhy71@<_rpJ(dbmIxVb8Y7rvuKv zSU$gQSJHuIjjjZaORe+3>$DnlS8S5oA%5X}lS0jphwV1!uV1^?w!6r*1!XL-El9Ww zJQjGtbNVjmSYS@f>0LIb*F5_irkp-C<3@VQ3dRnPU0B+yJK7!x-_nB*SDjr>)#7#lhm{?tYLbHopGZvu6%WSCZGh-Lx*{gyqdz zw@W9^zx`O@v~a>AjmeWIFIZD}@z$-Z?YIBd{b!f2VQ@b%@xp}*8#ZiU=zp1YN@DiS zn~_#$PQnKF3J$MO(UVlOSUy{9?Xj(Cww>q2lM*1qkl-~~kr5Fb_8f*UZg0D_V$1-EbCe*OA2zkc!C zTU&3$MinkxSmmP@Typ%u#`N01o?0JINk(kvmN8^lxnZY%%npX@i*MbEvUpUqQ=)BR zs-+cYpGMc>#fzJpn=dZci@7et$Ntw-%Ag#)$fHi3(O{aeEDwWv*8+2FvYO`CdO z=xoxg(9+h{WGEGr!m*)|{l9)Xg}H!l0sA2{@#~q_Utj(D$p6)#kVoh6i`83BrdZYfGI<;1 z!e{+L+Lv?DCb<(?O!khdcJujN6i*kGmzV$0bX&^uTmdqmRwX=Z>#WB+jvjTrQOY5; zXlMMjH~eqX@IWs?3ptM;wRlrPZ9p4 zf8OS^57(@nH9tRH_P5V9n)&I|CnICyzjgbszmC0V@%!iV`SI0nxBmYAzIyMyj;DhB z@^*io&CV|>D%!MZQ`x&aGbc}0_PlgGzW#05?o3b9RGu^8@wH$7d z`ac_=74>ENeQj0SwQ7^x*UznMPMp@?|L0nC{!^XLtKtc3pDt>-WJg!2~-2D4-`T9L2FE4cps~>PUbLLEs#ZkTZeS50E zzk5EvUe52p@9*#Rb#!9(*Tp{V`1JX6eEr|AM~@yoZ}`1v{2{pB4K9U&VPCZue<`N?PXOa3*YjiE{fDG3P- z-DQ2D!eC^yuY{CIQ`s$gS{$z$DoU>6gvKWhA};?n$57xG9MAB zexv{%4a{)L&3*g({r>X?Ja^eR9L?-kMmtAB8-0s^{RKDr-kdqJDF?C>;=z9Hw2R@v z$3Ao{+L3>M-<>-#^PXRycx-;^O=b7KJzp+)Z#cbC#S=8&zQP535PR!%NqPDH8xax9 zGZwARdUbIzPw2PEUY_7cxBewQ{DEzm+RlL@n>TM>zI^%1xc;idk`j?^Yu2w>bLYiA zg%fI@i??sv_U~Q!{^q%X^*^6Z-?L{AD6l1X?(MBMUsv_-L%aQ-f8Y22f4O|VUi?0p zebG5T^j2n_l8~5|`v1#v`>R*4zP-0sdYi($xpPDJGwNTtaQAL(K){5VGbMT0{{K8* zUnG-mHoN}w?E5u8pH2@r_Oj&P$NqZI7p$nQm(2lPYOD$;j44a@l4cYin!JAxl4h{`?Sor_|BY)6>uI+@C)+v+mp!OrFqH zk>@BN!^f_;Wc&8-A08eyH8l+m4sMxn?AWo2)wlN5S}Ur26W%$?$c^<(>Ip3?1A~Cz z;NbXp`StfjVoW#bT)%Qf#;#_^zJ2?)Z=WuZwD~5BZolG z+aG#_hfiOm0h&*i2oF`8+$kVrZMt`sk=s+WRwX-shvba8bC=f3%gME!-(B{$Nm;J{ z`Q7sSr8{G`^nk7*&$+#=_l4xzl2BjUswoR+*{znW);j%SV#q7SQwATadbAGvp1X15 zhFdwKquKnkxn{FD6+!E{INrQ<;Q*~WU9H72wOdwY`LZ5GLCAIn&~)^qIAD)Xv z@nq!Y#s=DDf0K0N+5NrR&5cbFG;gVM`r6g2wiO=|Dk>`K>gGNFdFG7I*RKamRV8@T zB95(SSf84fre<%yfAQkOIcDun3vX}FFE1@Un%dOg+j}#|Z1>%J*RPw~+xv59YH0^XjY0T}jEwix+7)J3G6a&se(p^$PcXqnM57vyRO>WmKgywW`DD%3Pk=vuCef zy?SM8zR^sb(>eF|&28Dv)T>{^{dDHT==fcco%hW#9tPSHoY;a-enl(DN9)eEQ`wQLV zAO~90D15w7S6A26)b!!egqROrWwNzy0?N1VOxd-|YDZ85vqIdb&z}$b?<}2esAXOD zMxjMVSGTmRtj%fR(W9O`z=gpjL5ju7I|4;U}GxYKBZ`!qLpPcQffYkX{PZ&&1{o--zi$LlMaY?Qw245Z? zo`B}9J9pm9+S)e1?cukj3LKz~Y3Dz0-MUrauhCAP9le$F{(}}f_FNWl6}&fB&bCVA z6gTL;ztruwSsfdm@yS>mFzC7e-oEUO#GTYTdF3rNA$Y3bS@UK@Aqx|Ou?z@@98 z`DY2%wR?iIL3w-Co6S;^%Qp4MdCrtu#Pe0j+2Sr}d{X@Q_b*?zY}v9#EKrhzCGXA- zM-I?|BQd#Cr%Z7Ovx_QL5ZF=iQAzR1)bKdY{?(FFQj7BD{`>b&^!3Nzf49t=H&4zr zP@=7qqm%L3vu6vI=$wAAdYN~p$xGv=C9U&sBTY~r>F9Z}x4shG~dg$-zoc6aZLHANL8wdMJCNo>E(g3doESP%WiUXg81EOIq z^p`7W+S7**AAbD!apFY5z5DlH_6mQz7L@PSBIi4kc|5Ut)9>c7?-pB=JNYEb_Cq@w z3VnTjU1$Gzer~SvY$4lklAiKGiN)v7o{iKIt6+9zd~9LE@0Ro8RO+t>evPb>TBju> zb{uh;akTpTJ73?1-FtXWZ`xh<_SToy%nv0!FP?uW4OqR^l_RoP{c(Z0;}0`F1|9X@g3RU`lX}gy`_6MDovC=o zEw0y~>ru?S6S~u&&tBNIu%x7^V5?jOKiEe-{#f+^FV0vvYtlx47pu($D)Xs z7@4USF{~;m7`2vu8i-Soi+&tQV_Jf#TE@&9xloqUJph z_ns^+3!VP%N-+TSQO2sG)~?;Rg1Y*JHGWsb|**Ufq6 z!PIOWHOcVFo%{FyzgoRMN@v=?e{~VH{9ipLxrDzx@Tun4BOxKbgF#iX?-^E2UAJl_ zsDi(YT!p^!ZfkT%NJv<)aN)s+1yiO?yTqbtb3S-KcxFdV?*aI<&b!4HGOn(!ckkZ) z;`so!u<_#Ry(hs9eU8R$p|P>Ck&&FN2f~&$&T@8kp0Ki@q(r2M)ou4Wb#?XS%a-Ms zN#B{hz`F&sMX@bicIi`oIh!5z|NnvJ%hw1sDt!HL_I+1Z*RNl{9z0~^TK&?vDM#f0 zr!&Uqmn@ihdb&Pn@diD6ZL&Hzy9CPt=Hpr*Z<#l{dH{dP4~LG zf3Mf?-?wAOkDt%ys|Ou3sQG#|{Jj1DnzXcM=jK`$7Zs^^{(97{Z};!V;~h`_e0X>` zf8S3vb#--Z?e1%zzg~~ueK#+v==;07(c5xPo<4m#^4aqFb-&*2e!nN~{fQGC7cHY+ zzM2I}tXjX70>@)&03XK4OvBI&+50{>wReFmp^y@{AL~R z)m5-w!ketz)b#ZGI|`fgDvQ6ryZih5`^`Gs`|lyPH9K;AtlGQfe0<%{r`-B`CQO_- zar*S>bLYzPu>JpaegCD`$6$SwCr=JsfAi+eoH=tqb;YA~e?fcI&1Ul+Cw!kuGNC9Ki!G7;Q!gAPBNy>%*Jx#?gq54Lsr%l!E;<|Rp_@mu8O zqSwI(mUa|&-1yV_&c9Q^W7my4TOk`A9~+`}F5M z=bu{_K5~hvPmla|Vxlr=$MTy59nVX>(&kE9g5X`u4^u(AT%Uc|rIuSd6*}vG>a&gF zk+)^;`Ad$&dIt;UPteqn;Awlm`pl*^mtX2=X>~2MmzowC9A4^m>(#=xCCho54=U6& z2unIn_;Ty_-mP1|mhb;9`{u{5)B5|LJbk+N<1y)j2_N3w-9792;?QWT*3_H!e_#5S zmX_`=f8WO2m<~SYS}vUT?%lhrtgJI<&ODg#VgCO=>cLpuw~aQIhAv;SRxZoq)~OGl|8u|jF1L@}x=Dep z|G5~;!G{F`PF2;_{PK1&!NJC+rmh@~ryI9@&A2+vk5Rbgd1d4@b~d)GtgKhBUqAk8 z+q~Ls+S6IHW*u(lzkdDt_ix{XoN~-&D{yR)IBXy+EF7?G*|KBLKMOjo3Ddr4{Bq4| z@cLCBU*DZ~^IoZUr~Ur+c0xz_R;JR@Qqb8%E?(-i+1kcNM&7)3O-$Bb zs1LOMfQ6~?D%YM*r?gupeEe9rN;)|?IiYFFlqng}ZoTVXO)R({QT$7pZ{z#f9A}UxwcVTm%1OgZe(mc zdH($S7cVB7&30aR;qC41yLat+WOVTOv12)Av+w4;fBky){Q2rFBBG+2T}9vC+`Rfq z5OnrmVBnO63l$fo2ZSdF2L=l6bJAw}z#}F&aZ%;W(if}rKtoo{r$2mre7t~fmXBJU zx-*& zWj7`t=W{x7=~7U7db);4R7}hh&`F;6?%i9qY}pPUf$6710|P&PyPbb{(|72waJw)^ zQ$So?p4n_&vF`it|38`RpVT7rg8Rx<(Ua%TtGC?QU9RsYS>PHT8hUYq!1BwSeGX?& zuecsMw+XZ_dUE0pUmcD^?ecXeKG)>t>h|UYHfwZ!i2DK>#JuGt0N)dA+ia4_?Kpw= zhOql;^*Yn9FK#(+w%e9>*Na0_L&KusXzVZ?(N_*GwLe`rz1#fyPb>SB;Zo700bZiqE0NI!V~ z4ZiEda~GGECn&GJ19fz>AE>FT>&NYRQDAW(B*-&6d-dJC@4x@b*L+}+?oBr>9Mw8X6jEDbtrezt-%I{-XGR@bD)`#p8SWHufn9aL7QW1=BWLDk~?a zr7c^%diCzzv)kgcBi#0`dnE#z1e?b**H7Jdkv~VENUH4ACr_UWI<1=C`9t&0l50zJ zSsa7Xi}iJN4@SR)j01lVwiDsXj0WXjagR3+JBy$5l{T(sIl{X0KSSiS^|8C36^ZZdG*ln7$RjZIMbXZLcu&ts2bj!e`V>eVWBpPI+6D6V)6U}OTXMM_CtSIC2QoRY zBp{r3ukfi@KrqNnf;&pwW=K_ke-~@a5H9>AHDcP`t=ZG-a`UcSmAJ4b{o?G~hCG{Z z^_AhXohry9Da!>hk)lvrFDQ^#AIeJ3Q_swe#I#dk;PVwSaFdSCim5^wzTK`L}=n z>TcXhI~rZxlzQdGDml=!Ve;t-c>>zdHJlH0A_{H!EjB~<m74DN%b}d!aIlo+A#o;f9uv?-<`DO>3RGAe{N;3zq`Nw{_C%9`qu-3`+sfgIgS`J zes^c5vAVkZq$T?Memr{IZ{O#A4rRzW!#2MD@7CLIm#LP&zqdE_^t3&D_RL8Itxtcy z@AtXaU;BD`1m;fOwhOd0bN|n;U*`~P3B$H&LS{Q2|w z{L6!Xe}Dh~djG%IfByWb|M$GUth{`_ZM9jH-K;5ri&tBz=6(%u=FvQ?9lq|(ot>Xs z#p6z#J^T0Lae4jNT_vEqYNF18MwLVLkw%rDz(-N_D{q^_v_xaWDcIMvR_7r@y zP71hPnw*rBBnu8R|J2mfwXs~FO{$>D{n#gvRh}%46HH*ky14haaub@+e^Dj$^x3mdEAKu3JlCR7Y2E(KI@M23Oq?E9#aU)BP37gWUTMLp98Co; zE-d_D^!V}PUH1xRH|?4wWgAocMhCh(_Qu7#Z_C^zcm=;-=eSq<{jP(8LkTzd*cwhn zUS8e}tFu4l)s7MpMWnSKAyv(x(fTa5gcf9|jU^LUVxsOZ6o@c3HMjn_?boMm~~#1H>?Iz8UV*jUx`m;L|e{{`-X zsz(jy1$*|`SX=+Twl?|;(>lw!bLZyo{d(=spFeHy+5Z3h&#K24x8A($=cGxK=FFM% z^XJd=_Wx}{Yh5l)4>?lI-SnWqf;&o^@>AT+nGZSFTLC{dU>D)uNVv_JejHwDk1%3q#%Sl`)yu!_U#vaIc|LN zc5ljd^UK@qxhU&+sVU?Jq#fD2Z}-bruYyEcpH~KoY+dWVdRxhFa^sm7FEZle=U;x=qj&k%Evt|FU%q}Fz46A06CAn$(b3Ye zp4r*jwn2e`f^niXb7#zGc<^%DwrwB8lu-tfxBve2>xF-d!1U9mR#sf`lRw^Zn$3LZ zxQC$Y#I9ZI*YhvBd+0dp;r!g(QmeTN$1YwBoPJs~HuTL#<(JM{*82$ydbW);C)+}g~v{3KFCLeisUp3)9dwal(l+7y2 zQYF|{ojP?YNWKqrHDyNYV~eF)1%)T5Ig<{o4^4r#dtaeuwHx4K}?V~gdNGq>Mv zKDgjy$|H+)OP4NPwyZ6K%S7DSVv$B!S(y>fVvQ~pPqoP_SFYp~JK;8A`t;`o7Al@x zY|S?3Z@(?OZuIJS-x7Y!v!W5<;o-5dyq0>CVnI!f4m_KnkEWLGj#<~$)df19evkOU zgb$1R?YjIJ7176&FP6^gCLGd*0~7&aGQT z51l>%1)PvaoMX1$$@|`AW`6$j-o1Mj{&aP9 zZQHi((W6H@j)B79F3u)(R5pPowX7PbNo^Wod3$?){pYjhoq-OqzP)l;)@4#*t6v|O zQ~-*8^p^9qDN_!dbP|^O247Xtx@~UDHqaW_=thSJkB)Y?ObCywRNeLG&K;R4OYT+e znxc{Fu;;>s3j%v*eEI%;eMHbCm0w$!`(=0zuc?01vC(rS@|d!t;N);nO!nQp8Tl%6 z#+*5z3w#ehWVpWAD=IqrZQ1Vo@Bcq&=6}Fpp(!mTB_<|z=&r;Auf)i0Yu2n;wd&Nv z0-N7&HXo~qZv$08SIXW@Fmr$3sQM7pn*5l;QGMsapUbOTi;t**mdG-B)@e*q`DnAh z_IFut)vx`xnAEF|_-or~wW!P7S<$1EVBVe{5r0-)Hu~SkK3PMvl^Z}q$Q+74fBsBP zPPVnReb^`{xRqkmY8_^-s4#!!%9Wrsy?;vH-LXu{ zxK#P(#IYNYCN}H6D*+GQNz7w+o?Nvh%e()8rfi}Z=oFlqy&j(?Oizp~yS^^=*VdhZ zpk#bfV)sNQZ%|~eFk)$*&6aq)!=sN^=VMPnrt^H|IrkqPDQkTG{Q3Hdn#4p#CxORz z1uY9BrujZ;5_sptb$_0dt+Yj%iZ7&@{XJn;`-!JThCIrri@sdjf!MUJ8W!vylPlQ+ zU!0Mq8Yq%z=-zVKaNC@NX+;(?U(^FdyuG~-U*7Kc?ZAh6Q*-mfg0c6PqdD=0(UObe zi!{VUMb|EF^PaBfIR9nktvh#kGOd*2(wYv->HSVkP1U}})_*x{b?H$Vg$Eb5-po0B z_N+?ifxBAww)%+dn6&5fIqNSc7CN_I3q0S}BYSg;&D5z=r#7X%XtqfC-+1}b+cI}{ ztqYSj*7pX28=?;$C|GD^_$e8bEGk#%R!olw^(|JpSf%2*YW@0lqYa1V?z_|C64)}K zv9YmY``$Y_3)U@j!@pE3Xs_4;$K#^J`lXbqjL@4B4ehlh2WL88C0zD&d2+ zsP_N)bUJ_US22wn>+8O1-{6(o7q`1iw`QuS%C}p)%h%t3|Nnda|MDabP}-efw5RCl zsdIC!L90OS+_@uP|L5bSrQYg(a~PUUjg5_eT~TP+^Y7Q|w9P-||Nn4zso(eK(`oUz z3PojQWqo~pYinx>o_}B0*Yoagv#I%ojZ9B$Ly{8`o8}EZ%|Y6?zO}1 z{Li01kDPXQTW)k-UY?)dxnO@=Q4W^0^z?-XzP`Tx{{H^|cZ$znWV(6trg`2S2JWfz z-ULXT`yyZWnAgwmhlluPtetbm4j=H~AicjwUdwV~}Oj@Qr#CYb+nIEQ_ zRlx_T_wKF!{_g(2Z{`xaufJ|pL##{rPCy#tfzJmw3DFnwZZ=O^Up7Bmsqq- zlzMyg`kY(0ZY^7;<{GG_tv&gcKvF``ENuZ$*J8pI2G5U*Qb!mfjb5Caby3CCzd?ax zgCy&l4YT*O2^@wVNnpq)Am=;%rbO~m->$}pw;j!sRJLyU^Z)JLe2?hw|JXm|m)A?j zKGO2Gl|I#%Ypi;D*ISzv8Rs;lHs-h$lsuTfapBZAjpdGJY4S(nUU9tHl*(UHGR5Gb znM*Z$7MHl2XUkR-*}ElsOI2s=m_q^t>+RrDm-_QT|XoewEJ;#?~W(Ee4{!5pFW}ltrqm~*O7Z*2g#tegZzt*-k zq(y+{Q-y_vJ$5LHzj)5Zz`(#@@bA|h5Y1pMS(FE2H2iTo#|vTvh*UpfU|=}Fcm3i; z&?wk!AGOlmG7WQ+e?JQ-D=7h;H27}Q$BLSo8k^egsJ)L~gib5$Tm)KoG=2K?+d13V zZ*Vn&JLaIdl`YL1bxs!-7i&7cDf_)K`S_OSF}q4uT1;E)6m2Td_c$s#`t_?<8P{JZ z-Pjn@S~kP_O5(y!7o{zqe=@(iD|+hn>)v&@7O*QBSFK;KudN*&6I1h`_AWa+d%v9Rt{pof zWX_k|2;7!zv;A&f`OcW0jSdPIZr{Fr@1C8p@nMPAFJE4??Tbs56j^$Di_z;FHzKO5 ztHZ;?x7D7%5<1yO?e^{4)z#IzckNC&a(QyG5z{ipkFg|W<*!*>?)aR=w;ufPBP{CB&z4A$n)^RluQy}zZV zuKx1Gg$olFX_(FS6>+V7{33LkBWRNEd8Owh8##XiiJA@T?`5nx@#oK;Ums4M^!!zM ze_w5hiUiNTuh*jO=KI^K%k>){`}Xec=^mcks}X7G>CsV9Y;0^@X*QgW)@Nj2ZAcKk zxmk3INjJd6zs1DG zt&@9brrBj=ZM|B~=jM%^^Yd&qP4itcRv!ym!)$etuQ>cp>5H=6=jYi<-!A#~CUX1j zwSTo`%Xii%qSa<8;#IL(gJ$v>nLg(4nDr+mNLk|md#JXLS>h{n76?5Xm ziH<0id0qF!<)7kw^>xSHysuR?cJZe;H%9cN9NVtJNm2+`s?-x3{-9=@iR+Kc&4s zR3@K%Qee^6-hOqzp1%I&3A*#1-_6^8`Q?;U%b7l(Z0_H`KmY32 z01eMc+y2eT*&4Nb_wK8&3$5m6%>ivmVsQ=3xVCS}M~1J=8~*;wx8{ER=1op^_TqH! zeV`Q4X!G?-aL>lx-rj=;4}Sgnb?a8sdCx8TxIuS_sjrrEoPYlMojah_jY0iQDxUB6 zevk7yZuWJJxv6PrcsO^HK>u-2cK=e$!<8$_#ds_6UDp~u*T5z3jY0PoMTsBH+s@C+ z3qIg;T`g;$+u|#YMX#^v&OiVBYgOgE^($6faNB${CpkIU#x6Fy79ew)6JYlhlaKnCg$d#F8;M^m*y`s51hX9 zY})TPo6oU4G+jSFt;hENpU>ZGElN+Wo^*1F)k(XF9xh6PUh6N* z@7S=xK~-(C=d18#FKsR3{JA2hT{ZkTC1|$KvNcLCs%;tA-aY4IYkvLub=M-$5&go- z^@U%wP8U3T{`{){|I3#zPuGtx+Zl6(b)Mq->#s|!9)J8{{eF+L`-;tbcJHpv%=Emy zRp8E%!kFab8b~|*`DDtcTU)dBrh5ytd|Cf_(#a=Jo;+FVJ^j$b4Hx(C zcaCm#YABnrJ87-6R(4w2vu|&2Yu5kz^ZEQ&UGD45347*LCnh=yu*|x-cG1~gTV5x; z5OQC?siz|@Dd^Ip^!c^Zo~?hf`^yuxzQ^C*-cG+WM;ey4w(?D%HZ9|g`?lTO_a`4s zy7(_DG<4~*we=^yru6A;Em+6CAmCVW{GN)5MUJ!1`W|leRSPzn>2qHyT;!;S3TUe7 z%T+U@&dH&XuFsCk*QfNDnwYFuZPB^NLpUJFYXA0i>8I|->P`Qp9w;I$CAGzS^Tk(< zx7@#e{d!T*dB6YSwN8o-)@NcjUQ;Z+W+l_NZ{NNc|W?!x}vBPb#-t^OtKbn}DM(T)Ft(s$5toHZGuU}P{mpQld zE#*l*q2d>oDmpX4;Kq#`CqDmam#_0Ej>)(>apugKUl3d!|>!p#IS=tNL$rrDFIOrVwO`A4N znj~a;4z#lR`|qp9-{0TgpMG9$_0_0tFR#bf|9#jl@3b($LMDx^eOs2odE4)IE-rRo zDQNfS!{IH`Hh)2b-EY_EA9e(X#lx?!uZM?)$yLAE2x^E=pFVx+)Tz^^ojZGWW%S{I zbu~{nzd`^+SmX4@bK`}t5?4m_nx(=`SIb_ty}j0KJq&XXlZL_UN*6icbBOOb^iSMlV?5qgZ@pcmn?b0uPwvCz_3krZJn;CP*pu+S8*+*p(e{= zX%1?rIn*ga+HxoKdteN3JCK3li8%H~9fL#Tix)2{e!t!Bt2TMpTmg~uGN=0b`mS9I zyEWfZuD`#(-~PtAGc%7|T&?q1$o1pX>G68{`rB{jT+H~gxZm#7tB2s_L4RH@pTA7D zCpB{3?AhL&N!xGt%UUn9eST@F_p4_g+S;~dDaah(x^3IFt5+|cyIQw@KZjX>N=Exm zXW4f?i!`Q9n|AKpxl8kAS$jSEF4yVeqc(YwhOVye?b1@~yJlaDtM}f!9$&wA%a)Ky zOLmvPk6L?8*}czWQpx9MzIQNtqK!tYj5Y5 zv&k@Z_Kq(UwqVLD#~R6c+)O()O%d?`KKM-%5NJ&~AP0!Gi}E7rTp#i+4Z1s^I@UE*W5hoW5u`MmQ6o>RDzp@Y46^>Z{NN(Ha70rIB%XD#I=FDayH+b zbn*$68hdq~lOi@cfErx_3E6x1?ycLufBW|D{re`!rdSufTeeK?*Sg%IqDg%`yu6xS zNuVR(ub6{coL4?RK3+L*y2{DNA6c3Yvj2|iJ=S&R{Q1@V^XJT2GXMMA+wSg72OmV| z?|u6D=au3|A1#t|-rw7M=EQ}t-qfGPn?Wb!eiqCJCnDudx8L%$I|ojgtnUBJs6$t-e|OBfPoIju za%}euoO1JKo480_Hj>7&xH`K$Z5NG?W(bh z&&^$XGG$V#r2t39``Gms(FApDd)NJEDfW#Y9vd2Z_2gvr)vH%uzkdDy-}m+Wyu7JXXZiU0TFUS(zieq_v}wnV6B4Ue zt_&1;dS_?xesOn^qu>>&$BrMLIdLJpN?NGV)!f`{^3``*YWLAcA1gE_Uj6j@FJF7} zC+TA|&ZfP7_io*qH9nr5Yr{<8!=nUit33e#?U=sdOJb z^tq0h zs;cIEmXe*|pvntPPgmb65jpL%to!;+JWp0GpO@5=o0G%C$G2|%`t@tqeuP}*`k}%m za_L>W`RjM?{CU>={*v>{CaLWGey>_n_V$&{pfk2(V|6*4Y~(--l`o$+)IhX=YTjn9zAPmz9V~o*-#*ZV+`De^ypN5Z zcK!9zN)F8z|Bp&6o)vic@3w8*rp$?+UVT4sTdBXyUb~O!LdP%In(#mScw9ccN7km| z!(@NEg*PXw`^^auY26jK32QqxZ@cwVlR%N%w{E?V-q_XE6&_dFD$0!rn$yiMIw0!OBfU7rd{HUILYUUKz{Po7h#<$jd|MK$k-@ku%@y9Lt zA8sQTt~}qaHY!kL^2sZA?##JftzUKf)_GYTw(Hlgi@MI7H*Z;e)<4kT!b4CwH9v3p z^5y#R``#4oT)}PQ9Jl`Z%aUV{KbGICZ0`$5uPiVBe(BPrZ;OiygpU{Y_V%t_yH;=d z>x=I4zVdt-E*Yx>I4 z8C<0ihplT@&PRz)sNjJ!q>+9FACQ~Oo zubgGL^jzVUjcc5W?^oZ?+@}0IE+RsJrE#BN@Wmg-Z>=PDfhu|BMbkG=+4AFN`uw}| zG`Uau${c@td;9qvmgcaoYPoFIZnG`7)g~-msw(wq`dhvuta9qnp`oGtepD z?x{Q1Vs#@*_WPRx3zxtp%`>OCmU_rP`BeMfu$Sq;X=pXrebU5R@8>X$IHtae)(+zb8WWlB|nb(f1l@HRX*M) zyF2~)#={R^yncOp=^Cf*$(FCuR;^xrx=>=H)h8E`qqAm7#jbmMZmuU%r057-VV5$G!8j_4j?nIqqo9_m!tFqcz_DlpBLP6lxMYmtHNG zuluoZmz=QbotNh)>%OWiDf!YW9w)$(SW+@2?fz=-nX5LNXH@O`xm26FpkQdc5CP`KSmbCnw*% zdp9>XS65f}i;c9;2DTc0Wb6$MjDD?UFvJ9VmP-{VuKPoF+@D(~K&pWpZY|9fJh@)yfs+qb{I zzSh>(?zjDRcrlc>a8P#5ME#HNlaQKc7tYpEiB^f6zGkr_=iO zzg{S>lHYvOM_+&DmBiZGT31)rSmwK1RXqRyd2YY;{qmVpO3zy@DSr++Ep_$k)idu{ zC%;)bJq|QY6cLqnJjd+v`deN*3LYMs>~FWT`g`8$t6tatY~TOa_xHbb*Z00R+3n@! z_3uSC0|P??`^AeFAAYP5am~!kOmy}AdtgGIdVVek+orYItV|3H4SH|NtaB$hSPN`U za!*!!p9z+1ssr^ok{1|m(qvDKeE0sn`Ii`}hPe!XL4(J~Ci|%6-`(}~@Av!uK0XQ$ z*)(bhjxJA#Ke3Y$)O-2FjnRvF0y30=;b-d{X^;wq{S!c=+E{us!_1HapI-fElsl4t TL?kh!5#)1ES3j3^P6ntD%Znuh$#;wXduDErrfxpVKz*ehl0+7G>|CB3?U9=Ek*bD#)w^bSkUmi zvSM%C-<7J33LG1v);`(2NaMx3ch^oBNc0>z@YzO&kDaNJp{>3B>vFJlGt4~>%$+~K z|M~p-xcYekk&&IN!`Hv!zb~4bn|tEaDJMtA#(!5PIf%H*Se0-vOqevODZ!xQ(xsri zH#RL=zMOrNPV)JAw!ebCndUtY3=d}y6ggNZ^QX?fPu{+-vy*f0i!~Qs2(d7Vb+hud zGrxTKQbJbNwYGMz+xa3@V`JgBZ{MC#19^JKa~EDsNonck>#uu%o!GQSJoQY|{rB#f znVMeS-i1$3iT=$zCUoR&nXhmg?)FyN8|9LjwY6w>S5>xz_Fff35%DbT#Yf*VorO-(PT8 z?HwpmQd07u`u=Y@6;Gp-A1u9ZGi$FVZB)?L&v)DD5nHvNacTX^75~=6W$#i{HK|Mi zCDp?ki`u4a*|KH9{{8X#?gFlYdE29lb22hG+WF0LSA0Aw z-q@k2`uOo<0hY!SWu>JDAAiiKGnc*`>u=w4_-)x_1^$N(N1ql=%&WS}7rrjW(aVdg zV&3r|KP=?xek6Xd;h%n*b^m?;C+FtbcK`WP!_w@yWXTejm%*9Y+05rZU*^-ixwBY3 zD=W+7I8!4-j9&Piz1){?DqZ?!bN=w#GG_snqPRd28QZEUEb5a~94D!qEl~P;<6tv; z;kP%D3Ujt^&AzTAz@cDmJ^MxXo_%0x_V=4y`1NX` zb9+EU#0pEcglp-J{<*ojGJNb>T3P}eEDamxR##U){Qmo4(ataSGpFr*AtfofbM-^v zE!&oVy&6$AHC0k?diN8}Y3n|IEDQ+^o%r75A1i~btgHYFW7i^vhjPpI?6K+f&G>u* zREV@qbm7&!xvNy0bCrr`)8U5~=6wJCS3^U?!O@XXOI!Qm)vK+C4jt04G`*0SmF48< z$XI#u*sG}hRbREby1D{_f|w$weQedQanv``K6>=%0}DQN|9LK+o}8YG>(*>I{S>6b z%gbv+{r@^2U*Cr(CMruwGFTKp&2Gw`|$Mz+hx#WKz^`|Ib28ODiBM zs%vlc_ol}?cI^I9Iq&$pySoKBSONkA8=IP#WUR}0niL!+sqFo+=E9A8FH4*RSmxMN z3bC@X-q>Gn&)~vpzokH?{q^2BpQ z@GirQ0aC(p*te(>|2W$X%aA%8#D%4c>yUH!^5@9wUpKkcT!UfF1H{-X%jQCOtoc;s(ii&{UZoKBGN4LNZ4(j}*;+N7<2X85R;l$9l=q_Dhw z`}W1#w^!$|H#~Wg!f@d0>+4^aujn*iVNv*q<=FA#ik?EA;kmhM(@wB3T)BERF(H9r z@7}!``T6sMxrA{X_S?R!#HA0vy}j*lLw(n-T?RHbK5ci; zgk*NNPTZBTaHH+o^~XNx+it80otCQ6<@C0BRsGtSok9l_0*d|Cy0|(`b_drQJ!)DH z=J9U7-E05nA%8|@=0Q-#|M0+ZFNdP4s%yPQ;)>Y!Q>RYN$jx%x^QIobK;dS>~giu`hz)7IC=mlXVU@wOjFxqIJUZAe#iESAq)_%(F> z_3lrfigv{4efj#;QGn&jwQI*>C4-}DjE#*Seyq4~;|52|`=eK`O!2Eq>$&3UZL@9p z$51Kxmc}}d#p?5HAc;|=koC^bpFdOnB-hv5gUY(>>+4<~J+X1oqD7VUow0kXL~Cnn z3wFjx$jV+Vv3`GJBlE!o0l9wm=H})lM?d6kh|rn!-fT8+*PW@T~hE_>@#Rb>^nCZds7+HAqPb$tIn%KvY?awTL<#73t5f1c_W zK0d~~WZ5z$eSLoGvNs2AZOu+Jo1M5dYGc}2sZC2}D(}%rc;YuXY_({U!h-ed_0uj` z$xc#9e12}O01M+HjYAI$KsCF3{U5`9pXa`3VA!;2(}y3A`e;qV|_b-OtnUuR{G#KRrD?ack7X`SbbbJ>QsooX_U#mEa#g9`_f1d2w;Y zLIuC&!twuqUEf&uw`z`EZB%hz*!05>4_sRt-6_lXU}3wQ()l(2W*IvsS4YL~t@x-k zujZ4dh=_=Th^x(~6UqXvf|FDp_L|>Q*rg-J9cff>cUS3(HEUEVL)tqo{0P?&IV8US zhpWxE8_7@V-rw5Fy*hlon?h2g!z>%OPtEdw7+PCfCFJG%ck(EL8ov@IF06MpHsuD2 z6h1p68MD7mc6;94L(lELTY{QfKhC7vHH*jB2xewx{&} zS67EWesr|E;{D$54U%t4A0A>=az0(MODWgh(z4S*p+Pr#Tf*yWYgOK=`^{0v++X;Z zE${BG*7J4WHs9D&X{;Bwr(@$r!zWLlCf?muI%Ce9BS((7#C-p__xruW^8bIh=iJ)T z$yRpQ~=>v|WCw^4(R$wdTu3_ZM&8^jN;kGrL#yTK7@%>uYNd zudn;6UGsVN{T|6RwVx)>Z#kRReExa&ss)Wf;jyu@T-@A>ubOhd&NTfcd5Gtq=*!ih zq-z zKaO9ue%1Hi7v1GularO-l$UyrNSefH}YxF)&aaP48*k@j7D z+jj{+FKT@Lb4QZ}IL}M;JoSr7-XX~&mSYU6c@HKWLFpSg9V;+?^myOzcc2FK!|%Tz z&$*PU)aWC05`L zOZ}bQs(R+PZrz$Nb*k&W?OV2Fn9ZNb?YCUG{M{YL`1tw%LPV66l^GhE+4-e5{eBkY z9Lp4>D#5d8%a#!3#qG~4-`v|P9kyCj<~SomjGlP4m;`6*&n%OVQ(8ACwyblR@|}k* z`QhXVo|EPJ*>7*pKfbu%j%)d4P&)X2zdm077{}*_?edQfwQ^5Ll~kMDnX|6g+{Dbx zNq}Wl)1PZ=qd}?YL;e5v|F6zZYAIhkXU?1>JBy!Bm^+u3VRK&B=ePOw(v_8!KVJIR zcP(6~$il?9=j*lTKxrjI3AaNvrn4$e9lB}Y6s~ltnyq=`2g4eVPK~Y;=gzrhXKSB2 zeOmFf(VDQ;aXo^K=bt-+s*}0a%k53|=UA0;$@RO}&k%H*mip!U_r?47+ds=|sbX<- zC@V8NcI;Teg9D5ed*ilj+qTK{j3j6K&sT?@$4&pv!}j=ILdAi#?tvmf71lC*HNS7) zzt(-mIy5x&#mkomPn_Uzb8~x8wp)>d$-9hqK&j zuFBr5TVJMf&wGCH!Uczvs_N>E#n1hEeQa{>?U7`-!97(_{7iVS>(+-ksfr~}uOB$T zuxiyRlc(Zq^=28(I+&p2&%?jtZ=F3;BSThp_QjhwJHLD>>FMuZymO~yXlUq;f`?82 z)IXmB^#j7f+5$9K)?eq|f1f{4z>YsBYHU9(2#&+YwxrI{KT%HH4W4PNf&I4$)? zj@jN7ihurn->)8ha=v}NoZ4i~Rhuqcy3{mnnwUmc)5(*bpY|?Y%9@;_?4V#oo9(yGprDO-;-18Xu10l-yzvZz^|d zQ$TzjD-+|CsZ$p&Tc(y5Ym#cxd@y33gj|8L&BJ4lKPD6u2*k$5u2{K}@%-n4oiQJ( z_EvqYbQWL{5fe+w$>DkW^y!DHy#+gCGIDZUl9Lz5)r2)2RA6Ig7vx|m`1`ArhmTK5 zf=9{HGEzT_qtT&3n`>Y|WF%+)4)0s9zd8x9_-?SfpL1&qCrAJ8kjqcLR++AC zdnK@9-8wxJGc%$26H+Dl+LfJdzxndz%Yx<0+2eoTy58_XCFJXk7_E|?r_7&2A1~D9 zK7Hy`!-wkAufHx@wTkQUuqJY?HJOA3ofjcB$)ZTC<90Mpl+m?95K7T?^M4Y|g!HR&?fJ zfkU7O4?6E+_h^LsLyFz{Vn1AJliV6!=U_d=&)B&Q4s?}Y;3I5 z%m9rR>+*LKOkC@}BnLc~o`1gm*RQH6Q>GkvTBInz@nHS`U+Yh@1YT9&wR`vCOLad! zB+fNsQ!X@!-)r9Dq_`$_cUbY8kH_V&*DQY+Hx(3;g`kjp{PDqyi;E|u&fKGtcXyZT zIqfbXMcev0_Vx38vZknXvh24xpWU|W#HOC(a@9RDxA#_?TZ-#{d=V7gygl!(*QI5B zjeVjk-rwGy9~B+9yNow7GBV|i>9UK4(wjidYGrkG_R7l28FS|JNYxozSa8gH4k|e$ zH?NKVnzB!j#c?uQ1Nq7qpD?}<{eDXu@%~Oc?s9~&oAD* zIWpI}yy3%z=2fd!?bz+mdnm;S)bS5&O^%P3kBW|FWUwxOcjZigeeExkZFzUQrc4n5 zm3ymJapmUbKB$yix^!tqR+dv#l+?F3Hy2y_t=68@*T?7k0o3mK^r`5qbapsS3IVUbt~X!n7vOEcWA+ixWR- zO?+zGd@v$P#pZ$A4u@d%+dpgeRg2}U{$SHTXO7I0<;$5L9=iJedv;WwYha5;7pPtK z;DN%bRjUe~pOe+-YI^rB&q9VzMOAg-?%kl~!0NEIPVw>cpINM3=TR~5__o~J2R_?O z`5^V|6}Qo+7y}8H`g;2{VcMD-_U;l*PC@h#6vFe_E%kdKb z^8YS@Ehkfy^cSCaeV1EDjQeIT|HI!lbN^rb(b83AFL>^8E4R3bm9Lucr%#{Kwum+h za(=#g#3(p&#iD7Q#y90Qzt}a~C@TJ*u|&_(qkCB3Eu>>bs*0e77Npt5bL{^CqK2JM z>|p_QJ}`dMob@9rTBc~#oGqbV|otta@wOx{jE!j_{W~xvrZ~FfG{L@b_ zwLcr-u;O(1*RNkEo;8#B%)GfahsCksYL@E#WZk8m5~pMOdV7z?sO4)K85lG;C;1y*w>sBorj zj?~|zQfMLbz=ChN-`q>{cV$o8{Py&zQwElnnH3v&y{a$X0_6?4XCej14}bVzprx%{ z_~k|5Urn~=gEIv8-|xS4DQL>HX^&1#)&6z4g_)gi!Imu|=k5RR`FCZ~v6m&2c(?YX z?Ywm_ZFA%EpDTQ`dYX>KZP}J?Akp2vqixEH-P3%xTSulaE`4uy`F-4qvY9{s*3Ixy z19c?de?OeI`Qf>_)-PVaR^GH~&(S2t5sb*Kx!Gn%xw}$NQ>+NlPUYU}fetb%BYUpe} ze*Wb5_x9e{mMabN($`m^y)wRX&!umb7~Z~bts}(-lGGu2-k~yDfZo;n(f^|HN+Iy!qnw>*kXw;4!tI zofelWFfwP{@R{212OAD);oU7g+W6AMMXvyea;3FSLXEV2+W#2 zJJD=*=bINVG+w=aeX?@vhMh%Exq^a%4t%ybcKrCq4~O}ipI7dP(ff4a?VX*%rlzJ( zwsY+7h|#;grS(}&!HWxuB4T2%__MhJ<~@H{w)gvf!Nlc40 zvYPB>+1%sKxFmWyE@9hz^Q5Km(^5h1I8?g(Zp!PzmfWXBI~N_>(q!~uhHl5qcX8~^ z2PMCro4ReA*^(to6eM_*w6(b#9T>jfueZN+`SQd58P|=bmzbKHJBzrAh>E`S*Y&t9 z?P~MBFQV)K&-n=_Qx0_ss~7zF@o|OW<;!;$pD1z?aouq@@9fWo3l(MTY9fkx3U72D z`{w2lU3c-x#B1-9r>^b@bTgLlZrsr}rKG%k@s=$j_y4{tXJlBrcI}ee-tiJE?xvl$ z`P}nt$2{Zoa}VDCd-tA!VY%O2&;$X4g0eC*hy8@z zoMf`=nee>lfe{fNaY?MKte`PzPtVR}A4;r1<1BIOr_bSMVFEQ8+XQxj9g-nasp_T1asCVnn0Ee#N1 z6%`fL(A8}{{q)kF8bNn>8lK~)&c)4bXkyaR)x`y>>0f_U($wVi^z?M`I~(ok$@%U5 z{r;6JHDxS|To#}9=<4o1SSaH+&!%(IB%!41w$C>X9;*AZt`6eds`zq!y+_cH)(yG<%%jSIe{r8F0)TvWJ z^C*dlikTl{dCr8@U3@n2*!#@W8Ena#0^tYdayTsvIP*UgKFsTJ`pnAUBS*)-;Ty+vB$N@!Q+mP4&OH+$!B>#8>PwUBxp% zgq4|@`ByOawQp|5vtu9Ewp~#aJ$(3ZpwX76Epl6@)|{TE`zx4x+RRhyBYdVGzxj?| z0~7))3(hmYyXoQQ$Hs8w`t{_Ll$M%Jn>Kw}^!e1))!`4nR!y8Wi);Js-h21rcHDip zBC4*a$mr7L%chyv{ig+fuK4?_^lYK+$&)7ojb6Rd*A8EIMW(;?*P+1Fug*ME#(ozWt35WcA{ad$h3*XBweRPDgr@!BMlFF9t+ZS)&F1~f^*1*_XpM7m! z3LSdwiZH~cAA5hci#0id_{oaiyycSHXT%x&H zvS;a`CjK3vR#sL8A09ZKbbNnydZZDy~Inp#>)PW{%* z&JP;!l-ha1)AsU0u|IAOi@VMGKlA49n(_9%?B<(SUY0D{u|uM^wl*Ux>(Iew_T_UG zGDI3bR9!_IcfQ6V3UYCf`t4O~n>I#tY}+q>`mipsw-Ii_J zCVgy~csKw0x>)C`Dl5A`9}chhvik0{EV=Hku0?U{Ca&0}6utM#HK|Z`-Ymyy)2A=D z{P)toKI(I9>NcBu+G*b6oB!^8d~0j=gG#$+Ep}67t;-Z7ctD-_f&zi`^YgBDyEq01 zGPd5ix;p&g_3P}@Pq$vY82G`){_)@W`Wcs0J%x@PKfauoM|{`Y=hCy%PrNK?dTjCM zg}ePFnec_0>YqM;K56mi-@m#!w$;;CjHf_e)G^58q_y7OBKhbQq zp{Z%BY4)`R8#V|$KR5UAl`A4LeC(Ntf&KnIKA=fr4_{x^$wt@K#d@z3=V~o@e2h2t z)id^a&p-PA|KeZqX5;Y$v)PJWN}vusX!!5T%gaBW>eq8JfOb!&Zwv zKR1_|VbbwEdu-m^*yud@xM}va2cMpvcDV7*Y&P%h?fLFSMMiV{)Xj2kG%Q@GXvFCO z?o=O=-?&9cKJJ*NKwOfJ2$v&|{>KxaZGwV>6+MOIYQF@ksH;y_-JAi>-V1N-Td=?( zx!QBmhhx(D@BwXM>nT&GJ`A4!OC%^bxbee=*(Vm7M@B~8*iopgBgP#R9Q?4r0yH7* zD_QXSTke}%Te+ppauiZ0-_1MTU;igrL1xXnJ3ED&6dXicEoAtfJbU)&alies@_nCW z7aiA-;bWgPc`|6uef8C@(A8lJ_wSD{mML6v`eDI?PW5>W#~&Z8e!o||aH;*qfZTkM zSH)(xcPr0JfAQhrVGg$DiifS@O6$I;XPn|R{r~di%ZQChte`;Hwaes4v^^mRopC0H#VhmL;Fg5emJh<1czx2aaxh}^{8dNd8UVJ~h=NsqZ8qq1cdUT3=j-2>(`h?A;SBp0Ot+{mV z8r!_*fl*Pb>`TKVbi}S)xuRfeE6Z`8dHU(4;>ju#mMv2QRozpkPTf)Ub=5zU$9kRC z57w<()pYnF!|}pdkB|4s9$p!|{KWUU*5!+qEpt;Y{`KXhq&XU*t zX9g{15ZA2nQ4_wC_kGRFC_ahQ>K5}`8ag^xWG>&HcTHW)7_!8nnOnTAWr5Ma>xH*VmR=$=-}(GhhBf(lrVealMd?#b~Qf?_+%^?=AUP0 z`0%r4N8R6DZpV@~GB8+KSqX5kD4aH0xixBSSnr!0A0Ho3fAH?zyAx6+H|e;SGOoT` zbocJv6zhup_xmp|_h)9fwmyFS#Q0MZnZH3Z?KS5a9j2vL?2XgtTC`CU`TuZ+*0rP6dLf#Xww-(A?4Hh z%AY+}gBtpi=Fjh+I8o5%@0ZITDr_VqB@aRdvcD{H*fF&(A%Q_zS-D{MU4xlERf1V& z`S*Gf3_SkC`v(ULyScd;7#TI4J9jSga*EN+2Olduc2!kZn@-hkspgZClIrL={#fz5 z%hI)Ld2MZNXW3NQ%v)hI%SR0~T)BLC`;z>W6cw-gIa{`Fop}G*^XH4#t?P@~zHXhL za`x7!i#Kn2KDnE>{g`~l`^ES8e!V{Mpv3T*K*8&YDx8s#krhv;hM(BzJKKzr0ldD! zrea?E{rCM^FP=3iaQt``zQ4;sLE!795E0kUwjx}NiN~Y#Byy|w`U-A)?PJ#aRJeQQ znKM2GGVXtLjg5sF49v{f&TMpAzWsI1KC8+1ji<4>{b-rE&ujJR7e>cDzL*`A0SDLO z?rYyV6Rxj|T~cIZYTCMK)20<+f1W%^0nLDZsM>2$_s2p~$aHdSy0h#f;qLi=o~VDQ z+WX@5>%(iKw+DoUiHUw#nJK`+2w9xw@T2Zlj+xT+J9l_iU-e31aXc_l*DjsIWscp(8J$~JUViCPU2P3Y6}*o&X77Q8^RE_gIG->&?$M*Ozvql{uU^z` zb*BCI`Xes^echap7?(hovNE%__V!Mn~=AA8>!XU@|`&YN;%O!7yhMpcCg*oov`328)PkH$#U%J0|<~!x{pFxd= z8#g3CHr@yOD5I{QWofph@$v@ghlk!=-~Z24KrUPCbY$|?viHjt>?nCDq^71eVfys; zXV20W#ZOBuDJ^vrVA*ju@6z0d{O5mN6JK|lQ90*5Z~1<&NiFy8#r5>`C|Fubb}c%x z1zZ}uySA?Q~IZ))pCZB!Zzkkn;>ST3nxct&3H&=JotXUq} zB};NaMZn3Ep1!}7+g~dvIfPVm3Gitd`mR6dvn`;#bfxajty{OYu}sgZVtDZ8=4Mc* zzP{dG!0-QD>+%N$77Ct1DxON)K&v8t%BFelo)x~eCva!Q$3@SoRooyU6a9ACiuLQ= zJv})gGhe=Q{x|d6DQtTB^eJd*mV$soQBl#ISY6QENk(pN>*=S5{{8(uaqe8+<(ECr zRoln~owlj_W3g)0Dupg35!ZvD{>!duMsBy_rln4qK7I17tl(hbKXvvNeV_*2qLlPc zokx4Jg6BQ&oNsDoHfeg?p0eKK;pv~Nk6k*TG2h@)cxI_&%K#a*up=q$pJ0W#vg<;$)}mdI}X46-}5nP0aL4l^%Z&M@H?p8iOKi}Qel~u&`;+3-Gh2J}m`YiDkyr{K6@4T7#?sG@OmxDda0rhO` zGl|YXxMy3NW}Q2E((~`i-OJXj;o%7PJ9YZ>#`N=YMt0Vd0yJ9ItXU&@-!iLVXW84R zA|C;kP5-L)oY>@}3)!sa|^46!QEnWNPSG<)^!%}wF27q^F+@W(#h12T>9l?z#^QK6H)Zq92PIYuHMlfYu1t3+Ej6u}*RH^k(w37F-q&?9#mV2_ z|4L4hs9{prHU$ogk{1FD55)KXXm#s*UU?(O%*4cGLhAHsr;gZ0^=z{}^ez0jAXigE zcwD7x@a?4^JCC0G@WEiy=FOhwo6n{-U(GuD<447rYs;M5`4(>8Tzu=${A1ynf9Gv9 zF*v2(^CeU&_Tx0m&%J_A!}nCqSsAnRs%!G^)&}rY9fwMW)AoD%td19annD8C-@S8Z zjpQxCpZ|Y;e!ftH>(r@J3N6tK=hywpWaxPHb%Eli$|=&RdNmda7ugqnO&X-E?f|ZT%;)k znU?kO^INoMPfW3%y}dkW9Qm09Lr;JI;{%P%M>gh~N#8u+lzY&k>`lZWnR>omr)ezjhwwu|KOOqBmXp8OzMZM#ch}_GQbKt(Y#*yZ+KITV=bX zpQ}#oz4PXv2P8Ed4Sse;-ECU@$0vo`il(}WuYKF=^i{vqgZ&U=aCPi?FW{ZTwMqH<5sQ?8A&Z)}R);>)Bn ziVwtG1=S{V##Dr_OEBo*7S}scbHOE0W$WCJA3tX9{#Y@u{qVyBH*Q2snf%EHG=CG6 zq4n^j=r8eR1&$37I)>+U-Fr6J9(sJ~-;d+=e%1Yg%l&oID(0!{GIcFVC@3hnb>Mo| zRwYwY)3k#wk5_N0JKw?Iepv8o(lVpzPxtg3%9w9(DqOH#@0L-zo#C!Oi_SjId8(yR zdhymh4)DZAt9{b!N>lkphlY?49WidnTSjyF&wZJrcx>~t605@J=jP6Eb`?m}b`5;+ z{kNg1scV=^r_Xw=)%)kadSWMPx}GEa$TIK!QX7>1%;9KqxOA?)ddZd73T^97yguTz zHG9oGf!cjaGd26Sd=I?3_}10upBtZ7b}aJvl##MaqL>5RxjL9&une>uA#HPH{frIi z=jXMA%7_Uq(wLMOzY(;C*G8`YpFwgb%2tCTwwaSalRDrvG#3sNoDSNUBEZtPhT(96 zj!49Tv!E5pY|UKlhZ&b&UTME)LBa031-tL+yhzj0coetvNQ%+IHEVdpx>;q8J5Eal z4eE47-8z=E5!5rVIWN3Z{@;i8;#(Z9S4DR=9t5q2_gj7XWl7TUKG_GAa?|xS>Z@I~zrQJ}s-{NmpWpk^Oh2&m zj>h2==^Y>KSG5ne0jE6(~fYJL+U*rLPe!wZO$)Vw~lX-M$==9AAjp)?CWZ7 znXY)=93g$nWl`Rj!=G(HgE?!Xw@=dD_qWboN?O{~`?};z_o!HtZS(VQ-MV$)vyGRx z_t)iOJhHN~9=^V=p`oE?zFv{+sXnMKSM%Xu{RR0seDj_cK03m=Wcl*L&p$t0yZzpw zTU)ay&Y#cU!mY`$;r82%jEn=!{5A~-4?4!|tC3Wj%=z=@&kw)&=TGRRT+U?@;C2)Uh=}OexY3Y@mv^Esi-@bEn;TnP#Y0xm zuu7YqbC3PU-uxQorAwFoc(J&DL)F(;D|!{)vAX?k3EbCZQL^{TC2!E+%e}haxqE)U z+YQ=P;poVCZjR+*P4#EO?S~tmJW1K}>(%Nb%j)*at4-#Vulc~(2Uet0izBmsf0-)UI8-JYKIp{LmpcS2rp;dih;jgNsM9Iz?F+Wo2b&y*=Qo zCd`l#HQn0Udg7cpK6TmPCf|*F9#>?!jvqUA;Iqx9&6|_o<*mF`dVZd5%5vAOM#B1h z?aZE@o-f|LYrFiC<#=J>Zd0YC>FzDnHRtBr%U|sf$qsj~O%8s-H)Eo8dXY@~!-o%7 ze4l+bP1*MK<)?w*iN={<`V@|pW(HP2u;}aF`CFrRuhM&Eh9^&-PMoXq^{2CoT=Ly) z(OWi`ZfO^_9C`5~V~Si$>BoojY+T-)+Bu`Mn&-y=BUv;KtstWQmHxp0#Vbem&5?+R!g%dCY8gdGq0i2cA4p;gh$M`J8yvXoKzf z&r8D9Hzi2O%CgGeb#>r*fye$n-!DaWoH+`r)T3f&o8>Yw@bK_tqzLd$ z5fc*YX65+Zc&w`)%9DeO;Fmx8L5FeO<4@MsCsSef#XZrXPN&!0Yk#>(>`=-l&MG ziq3nUxczqG_S>Cn?Cy$nv-&L;o}_XxZS%p$A3>eT2`Zd&{p}|{+w}MK@m;xoT{t#x zyEJJ1#0%?^7XnsRRv+GMJ}+eHImu&vz0I3DJB4LsWml|Q*QVlWQS`*)$_GWM>XqL= zzFa>4Sf{Xh!uH#Nv9Y}U#}{v$Y1jX1@3r5?zH(o8E!#ZZu7B&+tp&U9&ib8VG}FMq zpyAiADkXJKp>J<*FTc1|qSN|8pKDQ(5ogcWC*ZC)pWkxf<9)K-zf+%o{|(wCvTBu< ziK*$qw`Gr|@Bd))n{T)F<)tDE84kAQABW}tHJm%=*VEIpVEcCSS8c{G0-0YLr=MG} za3LczGqZ%GWM`Gbv|VqnPMhkW0O~R>Tc*~rs6#t^9Rowyx|o%}kA9hBTP?=Q$~xhJGd9UU3>#OYh~9p09E+r&sy zQxmitIxr-pWzixf9$wys8#WkdMJ!fSRb>rdAE&zO*s)`v?Kvw$cEsq3h=?p$vV`UL z_xH!IToLJ$v0QZV@%P_>QBhr&E(HZOUMzlafYIjj8DobXMURVi21G@9eVRFWGIPs( zdq;r>U#m`*GB+~Jv~Mh!5E&7{5joBCS4d>-(F(I4A8eQ+rv(NEHbTa<6s@hL`P!Y8 zy_5ABD*k*t4wAWaDd^4J-QqIG7w+0MYfkv*ice2K>!lO^|NG0(Fl&~SlJji$sOq=( z_DVws&NMU*Y)n3`z`>;Ask94a(z5962|QmCvCW%=ckxq5NOajePrLpHx9|`4<2-!G{3Wx^T*%1jzudf*K2n$$ztdSEuwr@%r+LRz}})h`xMuA2g0 zRpuBdB4b(9Qu6ZRB0m|+@^>+2YoVuU)$~ zBPWOD-6DaAcLfgpb*lM>wy_ z5M*gAkv)E>BfVqejvdmFCjH8yO*)HLujW2{_^?Iww>55QiW8o;vqL_BG^?d4j3z5B|QkR5mPzI^+3=xv$%R*%aQ=FH(? z*irY_%2MsLk%(*O&Dn;t_X<3o_u}cK$&*d5J6F`$C~4Jfsa&#g`mE!>epU6(sZ(7j ztnQakQzJ7;1(f6W?%lg$?ON5ncHJ{A+3$p{7R}o(9UL5-vaMVvC9>`Qdv&9uM~_xb zl>GT=`u;U5TNPupXU&<@^XgepcAM6(u!3WEE^PmHWYg=QZF{4n&!0JS4b!FeavF-#$ANQ`3hJ4mN)_s>~}Y5&~@q`W3UQr1J#k zv~bxuQ6^K3x!k`Ps;!isW~_6c?JiZVxF=$OZT!O5U3#%->t82F z*>eJ`zc;jOKvlK0i7oKYju1*wqxOwBV<7ZR!MQi<6oK0(9q@nUROHR2qv z)AZBIy?aCE&YU?j&}ieI$hCiV#poGDM#z8HHG34*F3nI?Rkb1UFdGXKW6X{M#zh*F z`gKn4sQj$P;&{OR-(&kn8;{F1-^^({{LmpaRTZ>(=zZ<`>cGB-B~~B5uCJGUeSQ7$ zmzS5DKCk=#`+oB8Z*OmGOlH5fE|z=q&7S<4$I=mdt4yt|tv{ZQ|0l%oA-(=v`iZk= zk6v3F{qce`|G|d^ph=EH$K~sL7Q6SKs}{er*GYf{wE0)*`;&?8a*T(B6D#KRM~PRf z-LC)fupP3cnDzW;gV|?StX}OL6(v|w#zk1#I^s7`@KrgE^*2F zOD}fS{4`n&K6Uplz8moaNHB!ZS-R-ni${@}cU(zmBJODnQ+82Zbb0Gxv(jz5RB- zI2LI<+WCCm;Wl3B2Vbie*OZyb@UaI41%256|NDQpq9P-Zf$MAEW`i~oJ^WY!vNa_& z_2I|k^6ck7gZfO7k&>V}nTcM31`;j?5-n%bK!!mk(}RM87iw^U=CwcA^q)NGdE;%_ zjI(Jr|9(6U5NYL^eT9GGPUudfDO09Q_`X7;YeUppi}H6e0^82o|GjKK@p+(#D`
hSf)US3}And5Z0SK2&bW5k5nv$-7wHssy43JD7nnjdi4Jz4*&-M#w%e+_1z1x2`u z=b<)U=?~9l=TGvw`@ZhG^^F{}ocsG^Po6wkU^Vx~hD7GJwzd;39-xZi^|4-QkXI5D z6=nF?JD;x!({@@Y5NRAcN#)I*os(_)`P!Lx?%W9qf{%0G*Qn=gJnDIeal2J;NUf)9 z-Mz}^vN5~Mcwb*z+k7_7IWJGoB~V3rnTfgi@imO~h`l;lx)uNbei!6m*--e{ZIQkN z&!mmETA)o#lO|09)pc`3-Z%{B0dy4}al73+4)%#r76 z{cw5yKM_eu$s7A>tz80-xXahJoIB@N^Z)mK^`g@UzrEl8-wwPdsrFqlD2d5cJYf9t z<%^5%?IoXnp0AgaIsS0#^|-v7L+P_%uUV4Y4du;67G`IQ` z%d%%@X0Eul`sXp|806ls*P;z(p9NWaZEbXW{NGpMKc1QI-;8N^E+Hq^$F=0~$;UoVAp|2|FsctqI$K{LPIf$jUg>I$8S-B&a7hL?ydXiM|f>v4zs zWUUj-W()GLJ^cRrdIwLgT;`kB4!Jo!Jv>U2Cr)hS7T25b>D){3wzU|2qj?v?d&Hy*^J@-6 z#$XI(LF0^*A1Vc!CkH>}I%J)pXL`kV?K0(iz1uV1ERDM?z0pu1Iq?8&fTt~SW5kBE zvr>N(n{K`G6n4-{tC%;xPH67bv9oxksy8-NKRg6e{+Z90;p7itlW$3k-w&z2 zgYUU2KVAF%Zu{x!`tH38(~h(qi~D}JTt4sK9?t#u{neC=#MsufA{}K>xc)G7$mn2# z!HYyjbMU@C9=6BpZf?)NKk0_3k>Ht3k4^>9XdQf#{@Jgs6N_qVYYkH~HbkwRb$3F@ zv17*!3=J6_1y1;dZwwGg^?RM9mj;=cZ~SoWjdAbKS-i8)vdw#*zUTfHyNx$C-hS)h z>1k-v|B6jwd;a~tDD_xZ0hSryk)(qM9i7+B&R}so@a*jDlVw*f|6F)7rAedffkj@F zWWcR^9Z#UQl>^lWoqVq+fwn3!6nuDaFtVKW?3ptz z)z#H^PAlt$J>uKJFKg9u=#bM{L)XB7(9l)~1%{UChbkYoihDfl?kF{X?i3s>ye;?k zGW(us)5N}f|9*bgwWlvHFE0cwIDV+wc`~Kx_FFaUjFo4OvZ+nx+`4t^iF4z@?iPL&ZB(iKZE*!UH9)kyZEqR!KzhVcUDKV_9<|zShea>&d+M|^OtG@Lql2H z4+}nR$5>Xd_}bZmSkyt7&G z5M#xYpO26CGauNLb@$$uOksg_OQ4;wMhAwYM~?~|-u?P0D8m%|`B6A!$`nuradvhV zU}3bhv~-ZM+jwK;%9V`@93QIoYG`O2`1kksd#(Oyi7>&;938|K=m|R~AcguDk1#S4+v~K13=gs%uw`+72_J?kc z(9zJ*Idb8Gz^T)x4J|ArF1ue9Uw!)Np^J;%)8EdE_K>lwkznVOQHbvQU1Jxszb;le zd1C|v===x{7N!ZQGei26+dDwjIc7rMCH^!kI$9b!@&D&f4Roizva<4u)vGU`h*}#~ zQdTDP^X0KOVWFW5moIl$7QY$2XjAcXzariKzJB}W_A+|K%UQkKwwZnT^5sC*)=AlAWo2$JGqbXkuD^Zr#w9d# z>a#r;Uv^ztUT0)%{545x|IE{+;C0{MCp~$R0@_-%b}g^3ukS3Ucel1?f2i8KqvofP zWt!2<3G?Rl?b~Np)Kgf_(bTZM?(1p}7N#dpcgdVMbB5)3q00FzM@q)&l`%q;O~3LGcSojdm7gTcEyJDHbX=JcHOD9<-q!(&p*nl(Cm zKAqBjGUJw!l?7-!&cV+%f9mW-TouihZrwX^mzc5Jvx}hOLF)gaqaLwtpFW+|2lc}^ z`fon3lmjiQUR1{{uV23ux|HtZZFjqmyi3qqE9>mpvr?7}6|Yt< z?^yTdO-@L7c=kDSbMwPlTMs?|eDL+xN7vRyuUNTKvGBlB@9Ci3fes1`^PUF=2RHBA zXID~M+W5S(cVFu)y{Ji(CvU9&o>#FqPR71Yrl#UX_>-jh3AxBdKXoHcuIy)~f z?-Dgh4weUBt4yPpOq)8D@uAqvr{}J%jb5m6YEHDrTBP*^oS=nH7Y*jy8OkqNx^&|I zxqj-mZr{Fm;X*@z21^U~feO%u=ak4}jm+!;@$vkglLDfnS8JM>=ilRLDJ?H4S+HxD z)FhRIZ_Bcy0>q4Jc6?pFd9yHIJM;ff`u`WbRP5Z6ot~~|W2L5q81a&K+nWapD{sIRw=t9q%*;Na%QCQ!FstE=hM zDKE%=)(&4f)rGqAK%>b$ixw&Eh|${-qc>&xbmwVLC9~bL!e5k_*Y5`X?inELqatLD3m|GFj{pc zvg1f{`^}E<>owC>Pvi{+jbAt(nX|H|hv&}DVs^fEX7Fh`Ml#N_?-rR!yl7Y8kL^?ma1$R|sQ8S7?7?60#GalLrs%cG;+QZtvHi)Fn7st?M_%s}%8 zmW|$`FV#CwZtCe4*Y|sEV>X*Nrb6@3)1F(c!W=B`vV=f;d!nMF9~SKd1#(Jy`r(%) zuZ}iUe(C)Aq?zB2;ZW<;9$s^0QY%>qKo^XXyPqj3DGyFf)!tG2dz+izTV6w^$tRcW zOf!&}V>b7)YJ3`eZ+lN_0qsv)y7Z{bd^u00OQPJ$Z}&;e3_hUC!DMA+ zwW0KNn2DL0+f}jNBM%D}tX->{_2$*8(A6gQl>?^-M4vnCsp1LRIr8B9?{rxvA^ugq z%F}C(*!(_HvpDR>6;8QVRXbl5bxzld?V7O6`G3-^bMrHwiZR>G=a)G?vBCP%x=lLD z0vrwkECn*|IbPY-%B8w#J!g{l>=Funro)o)r+ZpOiSCgiQxPuEmZlq<)BUfwe-$*{ z@ay#cKi+rOKX$)*_3mBS(!Gb<`ClJRPg%H3J5EVD_DVw3SM5@Z+{#Kz$fAUKtQUV& z{Qj1EY4_?)Gw!DsE52*ky=qn0mY5wedd^&+k>`2y+k^qMg3W5=zW-iTxEpVtbTu~Pk8_PTIxnj$88TTVcY(n$QK+UU-!ufLPpCHQ*x&@>D2h9X6 zKG+&?I<$0CdU5gQWr{kVD(&n4*`!3OO+FNQKj^bG|EhJXKHT~@aaYpMH$FO7N{*g> zcX#*6|Ni!WO&Ai2iiA2YdTVho<(SQWc4M!@*Z9&KyoV+iPZuuCuQ3+7=c*z0>YS5t zu8VMXV=?L~13u#%h6kYiN3l0^%&uI&{`kko$EWig><+E<*~nGNu%qZH7kCS&+2ps& zclSSj{CL)MtzLhfvLBgd44qG#84L^z82TPxxN=3r^w}kovu=vc&d#%@O|1A+w{T&e zj9}*?4bV!yw7Wmt^4TFxOJu)`N`d{(x)hY?tE;LSKKv1M4HV#N1n@_55qsu03EPeP)I9UDv!1rgQbKf~GQ%H-xb?%t)TN{Br5~ z%dX9{^!DHPubOAkcNo6tKp^f3XySrFfQN13q)APn0ojyy{k!ZtC%&wD*ebrE>}`~S z4S(Zfi$~7(zi*yDu}6QaPM`=Y2m8aLM~@mlKD5;14&(O{R_#N_f_EQRn*O$1MS#QQ z>Xk~+pol{B*5ghhu0gZ;*qSY>zvY|>6AAV6Jzb=H$*(FUvhP*Ytdrkt&MT{{xAVvc zim-0dao;;7vnEONz-OCnxwqNoJwN$mX@p%z!NTdYW=VZcZI#$nV;ApZ?RxM0$&)8F zZtI6Yc7aaqf~vP?wXrf_!O5~zt z(UX?UD0~>C@~#2aw@c(Xd-kls?6bcPx7b#H%V2tUV%m2Xr`dXJvO2KS3nLz!DL-)5 zVA>9KU+{@W;6(>j5!~j`K49}i2UHGhb-}>|6#=s)EgMhes`tKyoLZK+HR@#3cVS`SjGUa9Aa6Fwr}1i&Ia5<> zu*eIGUA5@* zbxn5ps0p7*Gu9Noa<<^h_XNYkpKV^fdZo~%WYM>Kb38#vKRrGD`ow9|*dnKW zJSLrg;QjaGwesRdo1acR_HE|OnHE)FG%j7b1lmKbqOR_q8=%O+#Kp~RXlB;7aG~O( z<6VnDI}P>sd||hlsN>i%H_$K}=#;3&0#~)b*)5>S!QH#1_y7C4J}@Gp zqxktb*H8uto?~}BJ-D~u%{#vNyxr=XS`i|kZIl&z@2$AoleT#6T3(y;=Xbo#NKaR< znCD(uX{q_3y1JT?K~+`N>g7`I^Pe}|%$XJYc-5*^0byZg%ilI+=G?!0xj8^%Nv3Sc z?z;l6g(ugDXDz9Zge*>&E_wblXmih-I!tz#y8Zd#-FsK& zo=)1jZk6txU(3`bPE78Wl&Zeyw0br8EKcG7bKlA7gyon?zk2=p;?=9J zQQu|x*g*%B+`1)oJ#W^QU01$mr0kq~LM(6U%Xz}KX0v%;zI1O}=*BZDXlinDi0Vz7^bef8uwkhreshzgHGZ6?!obq9^Kd)A``(ag zT$`Uxy!H*GJKv}KXj12`u4`{Bn5$ePxP!mfdzZ9hf0xv^O;^PjHbS+M)=jh)5mSKg;xI{Mk>O_{Zd zXVc}EF0rw)S=reSORNH;qq|qF()tw5rYt8URPg(6T}f%_!d0ude0_ZjcHjMR%zR(t z<>mhFtj$}NELpN(`*v~ABrT{@bn&92oRp&g14E+&gW6gw6= z`p>2@A1?$g_mYy50<8>~I8kuN-Mrqn;>ISGCYQc}Tk4LD%dVaS@3iab?afRP*LJ(r z9Tx8A$0s1iyg#IKi)(18XjXQ%;%TF%g9$Nat}?rdii*UR_|ElHXK_4m60uvCAuB8E z%OcR&E_Bz%*Q$esbJF|*Vq;}RTpe9qS-rfy9~SL=wC=!)6)!)5$8SK#F@jFf$;x`9 zW&F3!-pkwD^QaI*S67#ZzW*9aUmiAIPR<>S2}wyzn{+_OVl2{l1Umfb%9SZ`Jzd_@ z^&bBC__$zaOu^2W7q4D5DR6)`VVCGneDo*@w6Es(x3|j2A64F%CS`Npd6G&`fB*3u z$2q+>bNCs8gM)Weebr)dbnx@zyL9=op{Z%Bb@{uD65TMNxACE&p${zh?0;SCKVcZU zJZeXId3kb8jm#pAtepKb7M@IAl>5HG!Xx~9&;gI?i?4$I>plIrZutC@IaW(&)m zS1z-QpPyT}Vg&~)E9;Mk{Pi53lb&6Xy?pCd*SmLlMslYge?0L1`{efD-`?JK`S#`I zVrx-xqkI`(=R%y zO#GK>H1k1$g@KvbGRbQT_%2#jf76kYmIfUg85-)!bZIGrubgmZwWGj^37t!uCVpFV zb?Wr#?5=^&LKepBtk^aoRWddJcJ9U}PoAtu?8@@C z@y*`<%P%1H>dEg~+w<;Ts#&gTX(wvNt#8M0sW8%%4A>-%;Sg)vK=WnsrXUc=3Yac;S-Wm4=fw{%?v} zTd@1?j9IflV{2cRH%hGbI`cJ(d*;kfGc;~1+muN^{Mt613!GE3va~GvF0)uoQekAc zb^CVmx!(~vF1HRn{*x3A!NKOh`QFp@Ub;&5RH`d7et&y=`@zDPknc0>3c8QvZJ)d`cVfq)j_331 z?X&{w-)ua7Vu?-Uw38pEp2%Kt_vkP2UqQzqXZtMDNP2&7@8)&2b>`c`qqDC>KGgDl zsJhxn{J+smpA9#2ejRrB5xHXZYURBSqN1X+JTp1sg&$T6crJM>Zf#OIr~7SYWY%F% z1NUm*=c~8uVq<4N`6~F8yY2RnX{;gPQJq^RAAZP?wqk=XXaacFtXW-~R$7H9O<0i1 z_|-?8BYt-os79H!XXVTO^m!AcSe`$9n%P(X>+<|-HQ|w4vqXQ!uhns1wCpu}I(RSt zxnhQ&zH&0%px#|&Oy0$-R`_IGt z_APhwjtl$SFwT3PXf``AJiL9&7LzYuzC4&)eowK;Y&LK7_PnFc{I(*&X_gO4tU$9n zik6m=|Np)J-*@FoNXNs}eip|APft%@{N(+yZ{~S-8m?v?ou(VD(4{0-`9#n{hVRDP zGL5dL!|nXpC3<0xzOI-5^MGALN2h1!yBdFge$dpWgF*vnHs-f-mr_dPv9q(yJKq); z7cbxXH>usM-(;IO3uFAROVc}K7q!Xjxar031MMfO`cwAiM&t5%Ra~G`D*NPY zrA*hPEGwGocD+~Hd{NG;@4pp2h3?gUkKOa<(`l)>ZbgXwyADxNQfJbP-;`O`{dp|U z%ux4z_x*!un-hP3d+Xun*LL~kkv3jw0}~S$H5KlMrthzoDBrp8puobT6?6pG^Qqu7 zFr6l;fF_W&!`55~xwh}eQT?RT({!IyfzG<|^5S~8`@J1#btiNoDs@PU zBtW~1A`hER@~`_edBe?|4?k-H*Rn1Q;IRMu(jT<7_wDWN&LXZge?A_6@%r`UH)Y@c z{eJ)W+S=$Jcb?m|gJuXD+2tJk{r#`>Wq8Y8y~n{WJ@H^nR#w)PU8~$~`~$7Xon@N6 zq4IOulV{JAbai<_aWZSxEYM7K@42I1d;Wbzn(*AzxGU_VGr#SUo%V|~9?dPk2ii-Y zbnD;Zemkf1boG7z|Gv-uq8pa+*(3RPueAB2o9Xja^`l&V{0GmyiXBv+Un8`0=T1Gr=PbMEbt1not>aYF($rJ8rwYSZ$AXJ?y# z{B}D(`R=Y#gPA^0VkKslNyVmZmb`lPYD$EET%6pePoEy$vu`bQ8CYajZ*p&J+@>uA)_`}ACb*&&ys}DP|-`5FQ?}oG&gcE3leWO6oyR@9@}#n zG_IgoUsEH)&L@-5XpnsJAbk3&hHVI%3=wea$+jC1hn|w+ZX#m`UIKYgnXvWv9T(Y{>CA{h8sRdKX_Gx##_+ z%sMD2=-sXT8MRl_K&SphK9%^mQK0rJc(Z`x%F`)Ejv}rFGUeA(`zBtP(hA*}eEZkS zCp~AB*Xl{#)=vQ+0S6j;x!KIX@agmCkAFU&pZxw{g22+HOP}oaijJ1vv}x0c@6)DD zTk%&#qWt)Y6C4Z=9vlRXIIQ{iWln(lk+86^Nq0l1TXS;m_{#60(zR&8s#RL+It4eT z899G{AZt~^(c0QN>vQqWYe~mbj1ImnYkq8T_T%N{{*PZ=Ts$k;q{2onB|Sa6kClmW zM~q(32XD}NSkHBqR#siVepQ{#7qbR$CC=8WEB>l46>mDzXT{pJbFY5u`4O>VUlw>f z?Ur3-@9uQYnkDr~wmk5e1Z!?&1Z3h-wfxNu!#P%^T{Y&QiM5Q}{TCiq%5B}c^~H-9 z7fdF6wCVrzr-tDGxK|1~X5b8{SD$cpmZ`z)vl@DOX^iDeH+B}Q2L%VG-@TwE7jZz= z_fXpumS#s05s?hLu0;o)e?A%;v1IAeqgR&OmDrqD*4E~R9{cU+$k-=q&DQrAG`|qO zeaTJG)MMGVrY5E-Q>G{ga4gudLn5hy-76}`OnTGi&4wl>E+unqDutR94y0`s-05HY zD)__CnvAThOMmJ#1A~K^!RtSv2i2TEx&P6}tDplMetdkap{eQU>B-sF)~3M0R8&-C zQp8gwwrIW7TVc1KS{kLCO`ye{EKH0cAt9i-&E(|dVy)tymTfvQ@cq;NpH@I8CzBzo zyz2}VP8+>?{d#fL*3?M1`g;3czkdtzu$ewr`uMZv#ryZybIzYLm=?U;Pf{w!IBD{R zhGi$dz=HxCc z+j)9ZkNN!?VFr`6j%UxF&B)17xgOIMp(6%rlfJF3wUhr-XYUd?r|`!Vxv2QLGiEqs zW@_%*y<73LQA%W-fwR1rG55vrUg(y19Wic(1&bFmH##tE(pkKFw=@So`=0O%(^}j4 zPhBW-IL*7AE%Z?frkejSdXE%ikYc8N6KK^rmI*myN;AD7*J%v{_xfdR1^H(mrN(&JEX- zloc7vgWBJC5!g%mF4B- zp-)H;(#$8=qpbk~h&VaZ$zQ}1Gr>?JY)%RMlcJ1EPVqcdw9ZhnKi(`g%X|4SJw;o#X9q*TKzyA8D{J#(EpyL>KU7aRe)3ff*?%JPcpRGojl9Vy#?OEC? zXeapkMojHgH}T#xdsDV;GJwxJ+RLtXJbnUHI82?bZ)9Wy8Z5Ms;oHR2dFz(t^~7$s z2`frm%|zba+}!T-CWQGqbTU!qd6jML;wLX&XjIHox0U($%rNNw&CThi#rHD;K1)dM zUTJkTPVDRYx~X%!#r3oHse^o7$+<(8?|6@X|IG{M3#O)mT0=dN0*W?|?X9h)-TUQQ z_wlrpC#tEcX70K=%?h-4NucgyrH$N<7|@}! zlcwLh`{PE=J}VoWo@>{_cEsp`PRF=;^Jan7+$zIkLXYyG+4~fuLuI9<7Wl4^33KMi zT>mO`GADJR&gl-PNn z*SgPXcY0heS-W3LZL(+a*#rZN*ZCQprSl)3Tpai^pgJrh$+zh0X&-l`w_7iGR)8i6 zFI~R8I4f_9g$&=8ty^77IoE>r?#e#QE-fhmol>5Wlhb3lFk`2Jr;y(q3&#ET?Vl%d zNJ>fuh`4?>IPvggR90@O<$|yuSHfzys;$>MU-t6SQjSckXOC9DGG4My^GrmP#6$3b zBI`UXBc};+uqbdaS@d*WIrH&Cl?P^!20^_(sOwPtoDaI8xagdEvG4T~ z-tx^0*=F3mdpGd9bYaHPvyF%A+2$*}RK1l4@$^oCpmKoj8qq z`f1m%o1(gA_^4Ib$azd^S+`Elh%d(~ZPVYS-qQ~h&N=pNl8U0Ot*p3S%!O|K%(nLS ziF4=r?wXm4IYp@DAlSa%ZJnC}2NR#H6$`_Uqxy9VC#UF?^?U)9ByQ7ZU3>K^>w^uy zqreH5^)pZXb#aas<7!$EITy5b=w*phpoq|mBeRdsJQWJsX}Di}#bn#rvuB&~CTqx3@h!JrzGTDR2b-TftTqy**F$xzc+7$$D4w{Ox|K2wc2nC4PnX!IjcGS4}=X z?A%a%Fm3Zhh1)4c6Q^c{WPHj{d36Xhk)aX`oi75e>f7dLE?&HJ(~DZ2=ohsHlMtJd7lxSZo3;LSt8Z#e zP0g(XjfU3TSHpY30TdR#rZ=Xot?garY0=zBiPP#Lt_QW(?=gCP%>44x!evFGQ+8$K z=8M1&r9?h(c3n_-c>AMANoU_H=gyixe|@BWOs-&PyV9S(_y6yG7P%RGN~6Mk!8rTa z_x-Z6vQpJA-dacR`eGI;!utPP{{J@6&Qmr9Q1)z60PW!dol|$bQ044Kv!{kLL6=T> zgdC8_KeN#8_Nz_(2NMJ|H8lf7SbKYWX9+TGe!6k_a(0f}G2oMH_kh|2tvU=3TE*iO zbgyT{h5nrX_f2|6ULM=Bk5}ja|MUFE?frkFKiLMk%}sgz`Den`DAT8_0>4GAQL%Y2 zO@(ulj=yyv>%;Z~4+|1<+H~)`2CA6uN-*fyoPIv5sqZCMSW7h5w9^s`J*;1Lmda=3 z$nP}$^yEoOh@wPf^wrDPuWwIja-R3xQ#WqzWP{jyYr?dHf`b=xSqA*lI{*2^$&-p@ z;ow=woAU(aK|v30t`)xM(y2an{P=U5o(mcor=0>t5{+gaX#Fn6!PdN^;Gxr*a<*K# z%u}JD?N{bZ?S~teEKw;bFF%~MHRA~lpA6EL;cJW-5l$K^bUTFCDm~~#ga%GWMe!hOiy!O*iyQ28=S0-+aQsi*D@~N8R_PTA`%+|$*y`T0p<#&Z=1o!r% zNsj61>TGOmpvLRHdvTkR!}ge%nkJ^CsJu$ve%rLDw6qj@em)!c`1|Ku)3yf`Sj`3P zLo6%WeK&Bo-NhuMnI_*iZr*JC%5E0;D4vXWTXz-T3ObavRp|e&**08F3wFBu`ubK0 zD(v}Jxg=J2>+BmvP1nAGP9V&vJ){xOx>V0@&+oaj*6r3T?r8xXS8Hz6zhzfOj{W@` zZ_7YO=+;{#M(Bv$cw1&M*Uw`T%jTPF#5+L?(o*KWbGdx^a`U!rW`7@69?sgDRo2}1 zG7A98A`0r@fF5z3X-|w=ozupbHXQ24p<9mCn zPukAvJ9Eb8%Ju7qlQx2yu)i+%SUM&Du4eSzl~D_Bc|R@NJ#qSU_W9@A_wC!4Sw3a9 zf5uza4RJuot|bFq8>D}Pm< zwBIj(9%<&c`@#RKx%~8zBP>k^754o+oB!y}&SKE61-l;)m_hrvK?es~W|vQxcj;0P zXug%5Pe#F7?dRXRO;5GXf3A49^SObUnOn-eipRVkZ2EPhw;g!@{W0hsyRF`nzTd0n zKbRoU&M)6~|NU{$MG;e`wA{H9^XHNH{sUXHuY;}~1NC^M&GU}ztNm?YV$xFl{M^Gc zGmUR-%@&uddZD=I<1uNDR;M3l^Xr=5y#w#)djI|L+U@t6?&cl;|118#_vXXblb(He zc(~$0BfEm95a_bF%gg-_KP)(qWA^y#_4w=E=Q|c@ym;~A!1sOMZ9OK5Y+XJ5)Ku;8 zf*&6eRn*mw-`UtLXuoCK{QQi|u8%=YgI>MaXW4e&?OV4_Z_Ab~5AN(N{;~f5Fa3zM zVW3s4mko^WUjQFn`)p#Ec<C>kP;5{E79=6M8t?MlK1-ZLt=M2M^S#^OTiDsZ< zgatWR7JXT<$=~khlP%YaEo4Be6YDGz{eJ)Yi3 z!^^+wPn}uQWEQJs{It-{(}UZ*VTFVD-D97@`=dV|_-ym(^XJ98Sg)^-=Wp4r-}~g$ zRBeWaD_26!eq7q4b2>2j^}6`|>wfy3{`K|sLXECv1(Q=H4<-a8Uw-)Tp~lPz{tHR1 z&nqE^4rIn%TfBJjgTuG4A3I!f`>UH!_UWW!cb%ch8`ARJnt54`;lP0d4Q^}?!){fx z_U?7atX9UeTiPu>efhGdu}gREl$@k;@MX!Nw`J#dEPmtzT1(~LC*xRJYO3N1T9bY2 z_H9LurnnNfih1pK^FT<&bHXyoG|+_`B_$;p>z2#ct$LM_m#0?b-Y0XB=VjpfqlGe) zCQUj~zWeSvNjb!x=0)C&p|Q}2_tHp@O}CabBb`Qq){qo2>)_ka6V zR#H+jVfL4U?D7nPj(fYTu4!9ZMi$rXT=>j>-nHD8x2Fo{JWCW{VLW;Au{gw-ZZaso5ulMrudhoSs;*=>ZOO~kY{n7K|Z{3t>(-v*nG9@J8%LkkOySvMk z1vnNgTExW4%4$*eMuNq$VTtsr!-X>I;`jGKhPfQ3rPe&;j#qeoHJi2BF=l_=+!}pd z-K!>5qT=Gsk1arZzEo9JLFYO-Ix>EHbJIB`W991A&5JZZhcjhnYR2e=pE)(%is$*v z^m!NOD_vLuPRZdj&+g9vrDT)JIsQUY1?Hxv4}U(N59KV?VY&JF?zy?T zDxOMfC5&%wS+$Bw=J-Q*`(G3PU0I~^>1kL@Oi%9ZZJAjoe%-QcE?f^j(`jXq&H2S^ z*6{GPGynYgQ)=eXzKM|2om?*5z3W@0bM=Ae{nb1Sh^@vAGY;POv5?_|%=LhlGlEaz z6A=|XDq~i({mGLj4Ua8A>E!!E=w9GU!Ez@b9&T^^@cZ4PqumcG?ecD~{siiM{V7{k zo}uFs$a1_8w6-^M{)`zNuWl|sx}xOh>70M5OZ@Mww()a!Vtxm|gu)TLU6@6z+g0C8 zd+pk_AZ^LpZRPm?)a`%vFfS`h>G&K!^^{08-8J4zmzL_ixxJlV=J>*`TSM!!!rI!~ zFJ8UM+9J<1`)u3w_Z(eOu&-QSn4C*R)Qe)9iv|M_kA-(TO8 zGwsp`$zzX>fya|ho!r#3Zk-+vKmX%5H#Z{%)lVn+lvSUXhdh%yprWpRzVgK5n1JfE z*RNk23T=E883wwcFY3#-8NFCG?Dkfl=!xRId^;|-Qzfp)Yr3Gztt%e$BRncy7BT0w z$h+*n@1J&3OkDi6YnqEd%M9-Aujl3@B{Atu=LQ`WuB8Rq^vwj`|8R0gblG&Knu?n% z4;^xnu`bhjH)~hEJb9U7}`XX0}Yc^=ek@?YGCST)DF6T$i88s{bizX+rj& zfB*IH^kii4@%4RKcQE0ObkCR2sMv``a{cVRy}b?vz*VsN z`@5qngO`6%l3KQTubk(kfUvN(j~@%qrl^4L(rs^RW1C}L&L=7=dimb-qaC2VA)t-> zv)V)6{_48AG~H-s!seS_+9i8hl9sH$^lDetS1o}!PK6-0%OPjPm5Wb4E_td2I&n{5 zyIS&+p=xG$EyRpKUaTybI|y_P4k^QF)U1sHIJq5Unt4^_T@{$ z;Wl0l7N#8q51Dq()99LzDrug7@5+mqo*K}8+?zSz4USbW7S6DfILTl4ff;mpQB94_ zsr#~m-exNgF9NlSIu>;}RA{OyCe2h06!~~Uxu4-7r}`h;s7o1|4$!I;+)}()`twt2 z#M-b+!aLEf(5p@hj;g+R!|tBVxsY|B^I`W+UWl)y949ai|6nCI?eC(8PLQXsEg0V#dX3~$Q62{-h~tQ_SH)7E_(~w zusUJdG*C3`zS}4N|HpBM9ZZ`O53|hx-}rasN{B{Rle>Jah|T%rq9P&lygLqASz27& z+z$&ZKxh_$o&$7)wFMc%&v|t!@A1lZq`}WyY*vKhOpF5Y=bCLj8 zE9ed|kmD@M-_3EmUgWUV@{qpRRmQ9B4*O#s`)qTs5d7^fSIGie^84Y{>h+73E>(T? zbkVsVq47Zz=a=8BOuzN3T(EG^BN>#(Ktbr|S0X3(fBXdOa;M$5Bj&sKD?@}gecH}U)RE>Ud*3yT$% z*IS$vL3ez;zP`R)qsw5X&yN59exI~{yYu-x=fXn6PoF+{^#3~6D?M@g^!6o7R3_DZ ztxHKsneaL_CFQ}PR&LNWbPX2F??4@l`ah55H)dW|3o4A>S)}SY{qjqfx;nd$E4OSh z`B7shV_RjCW%DiP&l7cf#X99KCD4V2paBm7%S}Qv~us;%)i=l z^JnPBetc4Bw*?!r zyV)f+`6LVITJ$?T-!JBES5{Shx^DgU3E+K&O7j<dzTR$`jIy0rv8Cf{VUvHZ z+`W3YijowSV3W^_G-k}0(J`|QcB=0q@BwnNU%q~Q>3_6WaMu^_XIr;y(K#JzjW%B_ zC20%Zcmujx>CNOD>I*E4Vboiatujl4k2L=Z(wp_NqA3QJY z+;QVrL?GyhY2BIZ=RsrkpDJwH?z$iQzv0GdPO13|zUoV5lwO=7%q_b5YS*q^yH6ciyjWl+1$YI8<#C(Yf=Cmal2pv!|(6!*&%08zlc5q?g^O9=Dm6Iri7G~ z()kM~C#x%RfOc=V$v4kC8sm527fWybMW@Bx+vY^9cyn*BG{c7S_i-X3A`?z^SIMwF z2ls!cgLdEi{rmTH(eoD`DX{tAmF1pOQYF8B{mRL|O|nEq1-95e!9e1_vlG+1;N^ax z)qTy)%?>-Jm415S$#4MFYq_*}@wFGRdg7p!M4NXn+PPD*x3~AntkY9FJ2^o;jNQAX zH|aP}durJqxHUqDp`ovjkA;cx#HOBi@A4Gx@Jef%TUv6izs}tftpc7FW;y@aCC@N9 zMegy%rT45Or+s`jJDS9LM*T<``ZK&HXFRmZg zvq_WZ6nGVc^hwAyk)TPvHEVP})uw=NfJB=3ZER!&CDThTtF?`dC(Fo7NHpAj+jcTV z>3Of3y}i7$vU0_*m&-5Sx#P1gIy`*&#KoTB(b3WqPeOWvkYP5VrTx=Zt)E+k4{oia7mGc5b&$KmI6C9TFNUC<&QVPM=>Z#_-|K=kwX?&i)YQ zTOx6_kW^ z+ApDB9O)YT41Ria#ojm;@U4!S$Cg}v_3Q8Zdj9p-xz}Is{`~y>t@ZK{dLjiPoOQZOP97T(HHym z`^NR_?13T=%XWWV1R7;ZiEO+6`skG_BBxHB^7wb`*s%+jE;-GcK3UyA>z(;y|1;4C z_Lja5)94b~Tw0}OmVb|j!Nbqb4YD>{(NpM7o_X}EG&ba8tHIk$XHMO+#pF{x(lo6A z=)l92IVgKh-``FG&m~Sum3;d2sQ?S(+qZ8)r=ZV1Yfb+cAh zRu)G|X{f5QGJx8HAt50XPAYdTdY~Quvny_n;K8Nd(+vy_8~5z7F)=qkzf;=i+WREY zA6tsLC6zy0OxCm8fvL|n}>A0?*_Gx{^!i%oTn+0y} zELKePeb;iPF+TbbOz<>aO@C_@?bY8XB^YQbmuW3|OR%Qle z%EJ#8PP4Dl{qbwz{)w48N?(f!Tzq|Kf%-$n?I%;5oSm7O8W})Gp_-V2_HmwIe)suj z!M{I0Gw06#XwRROovj_CCl0#M;LV#Hi@AP#Z}ilBILQ74bc{|&NQi;}2k40Iq6$u< z(6;B56*h7~+TrmWtDt!~C|m=yEdAX(HC;JRPfyV5-xn!5{24V(*Y;;Dxau10rxVih zp-b`b;lrTYQOnECqoSiPUcI_hQY;|_d^p;_xP{xctiG^r*23qgH*+$TDPOp4e6Pec z%1G?}@+vSS96JN+CTwN79>wVA5 z!0h|4(j>R6IITC!2kqEt5!L2`av_FIVH>o-dwjR-GBPq+pwYEVVfx|836Ec{O3{%; z@kGe(-v0jVzSWgosn>U(1usCk&+W8O;M%&_)t29WJnqllcX;at@`@P)^oa4#{Z}B|Cas>IRu^mJsJPR{i}J~MirF@X06xHPE+BG zjg3v|xl%I2NA1g(FD_?W+*}-kqocj$gl3;*3lv$*<$3JCfMqxGc1|aC%gt}EzFP~K zZB^X!Q$R`W{feTSH*coY%!Zv3{iEl5t)XDP9KWnp%eiysRy4^@*`*h|i>2?ef~U|$ zMNgqimoFDSJjB{-ckENcHT8@?+LLyF4F$E(7O}0Hxb|j~0%*{Up(FP3*~dwG;p<~} zyQxiFh)FwbDDcA576_v$`}f;=t;dfa8*1BazG-)@F9WoPlhgH&iS;7ad-IR_?WvTJ zkYG4on30v$HEV~{V(n=>hjeHC{{Ftd()ZXKoo7W&*VL0vzWfUgl7MN#+*2bm-FxQB zC!h44e*9?6I=6Lk3x$5(o2M7s+uIwMyg2>x)r%Jy9R)lLtW8Zp8+CJUZ*vS30c~Zv z?|N#rPx}3r0r&e~aVbD1Rs&xy_YC*<=NFilzD$G5X`uk{BZS%xx$Nk3e9eRsizW%F59*m)b@EQlo0PtfIgd?wQj5dxgcDi*-YHN>C^2bRV#PVjJZEI^|_LVDFGIqs)E;oGjD(h_ibmcAI79D+CrmU~e54lOiu>7!) ztKfON-*4u8(HFZicQ0steZ}6mKi{_Rca4mUJad*mtvM{bwA2)|ku9^&@Lk{0IKK-& zSk~5GbXeWJY)-_A3)AAEi-o3JfeyaN%*;F^J7v0--gItNRaHZC=OmptA)$iPn|eU~ zBT>=2rR5&=_4ZLwQ2`+#E!VDvePV3r>ETf-|Mev^BqZd>*0ZmJTCT;J+{iKGXlj7m zsSP@&P_DoI&7q}>UhS>>TXkgpbg|v#@7oq>K#rRP?I25uY&-n$0_Yl^bv->js=1e| z4<_lWL#vUCuF-xvAsMIiVSQXB(1FWNMMXwIK|v?VJtrlFx#gHigE!jstSY(i>QUu9 znR2VShU=46niL!+sm$;J-ELfT_r%*rjx+Vz4?Cu?I4bN-fAzg$W7JwHYfG8F8GGes z9R0RP!)elz6>b|(l&mZZSl`SsxAT*}8x!-ph}*p9MgLCQ^lIC3alIIY<6ojT>!oMB zaXq}ucQyk9Gc)s(8!ujH2jP956x`OFJ8Qu`RmuO z6I3{_UcLI_&6_JX8pFa<9)!on@`6qyKG#$3?dHa&;&})(EGn$-cOY;3;$6F>K>M^n zDN!ilc8*zvjU4E%wn-`zxk7AKIH#vc**Pcwp2?KAwdf>xui}z|3vuD$?YC}4SE?oiToXd}`|I%5^)pbZlupnF2b!$|dl~RPAsEhve>?3$9L`Jeirn`_{Ui9}8e@ z>0HZ=0Sh(v!xpG|W@c)7d3y`;uoeFORr+b~mMtQ8@7{Is%N4Y%{G`Ig#RWQygTcYq z*Z0n@KXvw8TwI`wo=%jBojX1`U+%uI3$K@2u*H_QZomA}rAwDEu`{^3 zx@zd_x9glP{C>;eMT7}sd2q1sy!wBYBI4qp1u55qu(HncycFU%+#B2Tvkg4BF_emv@S z*l|6hpg>>`qwf1GgMF!|#r|qKOUlTo@CFDA3xD|iSHQI}YWJlj-d`6!e3)3V_udZa z9T^@iZ!P#Jb~p1dnl4 z-`!U$&0*gH-HCU1-NFD4j`Gk#nRd{WL;iH3Rk8wd%x}K`_H1nDh`!*kT3cVAziW}o zk_%}%esDj48mt-c`;xvlJ$dqE#m9G9&3=1y->XgTTqAMi-o3ti_u}??ICaP@YcA;4 zSJE>2xJq_eE<6OcdGlCA#nK5e?6T^~a%a|Ts6?SuTJHh_&){eT&wMRXc$f9iY zV>lvaa^aPiuP^KILaEta53h3Gx_x``w8mteT3o*9dh#UY??TImWxGGN+y7zI)z!7A z_@KZiXR|_lX809{nuSZXg%;s9WVT{QLDw@w8Su89Zi#31)_ z?o!Lo`n5iGx0s^k=5>Gm)D+0HPgeI|w12;R`uTaiziM@QI4r*I-D@_Rw`-BZw5OKK zv+X*Le_I{4R_Xui&!=~o*E~ANF8_!9@4?-!&~+3VT>`Fx{WhOC7!Kr^HAA+jNmVYt z+_}E~?`zO5Bft4}Yc16|nEri~|1a2Y`%U6Znz0NYyOy>#=qkpV_tp26?`rb3GlSM5 zUT0|lP1-EdP!iy{b6Ic4&z5U(TE;j3eR_I&L)6+6=g+gB{|q`{6?FI-Xww$x005_j z0(p0KFz&xE|8=4Y=lgxX_2TM&ruLpYda7N%j$`)OHqbV%h3#@qv9Yq3E?v5C`Eqml zy-IieKKVc34S7d?{HU06HnZgA+n3*egC=JjL|kiLN8j&y6_#>g?d==0uj?&YzC8J8mni5k&{wZseUShEQQpJX_h^@>_J`B)|0cZ%dTO3?qhZSy zlNo2zZoDn~^W(VvwU}Zx7DtD~L`BfG!ZXgMf$l(@q>^~Jjkn_SS#v`(Gq<^VyYKRC zzS(nJzFwwlQNv>k1_uL)EAeJ|XVQ#6efm`J?vCZz3nEds>pynKADN~b-En4B=xWel z+3$C|`9Wc4WMnj9`gHa{k%_ZrbtM>ZY`!^XLZU&B{lp0k)sK($rYJX_NQf43t$8Fo zza#4_Xp|m4p#nM(^+t}_lV{JIL|m6FUFtY3)x_L9TdZ~c>ebGPiHTRdzx?0+{hwp* zobUVo|GsS{x!LdaNhhaE2mJ0dtNvNM&Bs}9f0nV6Us3IZSxm~s)-j7-XK#<0?P)sW z^6Og;eum5JmbV#M_I3BZUNt3HIB7@vfv4ZD95|saVVpZF@KWc&8=dE4Pd~qLJ!ARH zgOir;yj=5t#W%^dDi0>^EzDKKVNR zl+!-;hR@H>AI>mIIz3G{Vr!PD-JcK6d%oSu7BqiWAj9W=X-fe!XbF^oxp_P2jJOl$ z&mZ5EdKxssa_-!@f?$RN*Y|xh(~GE_C0Od|33fTp3a>+Eo+`?#~(b_D_!{Vk}Bwm z!UYQ$R)?)^y8gQLV#bkocX!{s{l2M*3ACN+kME1~|G(cz?yr^FH&KD3Nr6L2P(w#2 zra<-7$B%_3CME{EFRXL^*z$ePp_QvwH=j*QuKoUAJWxb zNV5V*Q-?DDS(`g7VD&5$djbymf^@P7wt@~6TfEqLGlQVx9qz)nK}iM@2}Uy&I1bf* zpSdYQN5ECENx>mdq^G~%-KSXDQ^+ju&WW&XyY45e8QJ`Ml)CY?Mwe3bTP>0O_xtzl z+xOutXYbW4*Q~5pwZBE?L}lH#a}*HD`d zdiUIlW@tI=9G3Ni{XKfT*ZbVHMr2 z>hmg?j`ztrM@CAXI(5px%8JW#(uB#A7jOJnVFPL`b#-@d%)f8<<8K{!xANMh4E_5n z9_;OV`SK-0!?tZ^BI4qk{Wq!HW(bIm=JuTQplD}A4QErsu3ftdF1tRw7!)5bXI-YF z82WpUf2Tqp5IlM0?ceagrH z*{mkwni$J{CarkJ*F$H{oLR7Ek4$ZCZGZ@C*CH2R2hd#5-{0RiKRvCku3q@~SZ~4R zCGFSaZC+H$3eVlM$EIR$oLTwnCr?ytT)gm|zpwAnS65fxEZ=^cxBc+Kji$5DzIgfaqKy8YnuTV}%*+N7JO#V&W@Kj0 zyq;H4Az^B2Dz$dqI=!+vhYmS`?p3d-kjUFE{q^hDGwU{N2q-?6w_Q3iGBRg>mqu4c zR#uV}Gc)sw6)QN*l{pmRIKQ{?N;8120~K%;T%>Ubd~8JW*;%F!pBXB83hn#*Hs5(# zYEMs3%lkA789q>zwcKwm*Zr+a9()ZqN!r`@^XJbOFJ3sfyR*M~^-4+Wtc$9)Hg}VP z!T*(_?~fc|VQ~3+wC2UisU9xBZ9g3mUk{3=lrK8U>&5!t3qvzX_1?^!9GBEoRVMIl zw%#A2qoZe@o&WEP`i>^<<9mL;+if7hBj{Nf9W8z9)~yHMe?R~j zX3bLIV2aTbXJcniG@5zg;>CkGJZ#LHEz90WR8?1BymIBpx797#CpYz+I_2eieJ%Vp_Y{uC%A3wiCPm2=s^7yuH-D+sx zBIw<`L*-7EI5PuiG4_E23@V;Z3ZUIuUB{-0Z@$^HZk=99S=pi2Uk|-3X`Ai9W0(8w z%a;Rbn;*Xa|L^_#ou%d%AAY=^bfijF)$`DuJ2ICpT}s$|bJ4aC6{UrB8*aa~sQjcd zYt}3Q4i*N5Rr=4I{nxh7JzCdq^YQ3wP>BLf&%a&V&l`Qp`1mW%U&YhO(~}dF-$FxK zr=MnBe!276vosTPb7SksX_1HSUbxV(YLym8(}K*KvQkoqE?f{`YGhz)WcY1oVzMOC zcH^c^LUsG)t;^rFoPO$5U2PqsC$8d|bTU6PQ7a=v`~ zwrJvOFA>a}tls7fwhlYlNF7wej4Z19~ zavIOnjT;TOY~K#LN&No4+7su_wcX9TenX?{(7auzPn}XYZB+K=Mxno`L;E0arG}(PCfA= z(k)I`?!LNJ)wGH3-PgZ=bjWp`-+%0wn~90Zfvl}cwzjreM$+7%)43B96@P<#4mw=2 z_&ML^$TxFB4!y0hoBym@o-WD5rqRU|IZe@1 zh{f^1l`A1TD$lI&U$!uKnJZ`|QImp->!ou055Kf!?!CTo^=j*}W5*`!XOXLZV|ezv zi`o@_j&tg~4ZeFNynSA;oSM<{U#{{|_x1RyELEebX%oY{kAH`ikbCE?IQgpnm;Zmw z8gb{hWtVQ>?*8p!}~FJ~i>=O^&dbH~;2Akcu6M%M%tPE%7;hZ76>19;e& zfBpWg?54lErSH@};MiNysd~Ws=IZS$4LzXWt0T+_=#&B|Uw!o}gGaYuaYX%a<<)M$ZP_3w!yp@Yh8B zu(d8N&%d9Lj<@-DDOmer=hmL@(yRCE^G`|AT`c!itN;DiCwI&5w=U9Hv%5oz|CQyc z|NQCa=h=Sv{rBN)MuzL_$mQ0QET7)2aVqg zurOACd&AgtT|r-;ziz+19{05s|AMZ|aC{9nu@^kT9Qz}!q{QUar4-2q>y3K-{4}ZuwTP`cOXQPRUNlSj+ ziU)r|rG5YY1)IZ^gtH~zn};2I`P)Su)@=6YVPgi}@iozakB<+u7nj2?UBgqzdsBLP zy5eag(1z3Rzc=RIHv3k-(71g?%+4a$%UW^q@#opx+%|K5ZLT_Vdb)lxD9S(2Iv;=b z?AbTE`Stbo3<{>EqIKY-ck}oCOgo}*=6Zbn+^y4=FInOsz>@ZV_x-(4!}wiR4_$Js`XU)%kK<b^mbLw=6L+I<{bIj?@G z+B;+JT+s1lvvpNPwr;)o{(Ev!QBd%6m+Hq4K2}707oB=R>~+DR*Y}V9aTU-i^o6vy z6}~K4wv27+)Tx2@PYE13%%uuxJKIcIk>%)g|X*YO1>)Bph%LH9>Sx(bknxT8RQBeaQb7p&r$ zw0WC=i;+{T7pPOwbV0#W=+mc9H$rNgo0|*Y8rvEeFa(M`EU{8v_ENbcMIn!KyGGZF z_3PVDrZg#Ve5kMi9p7Yo)_3Og>7ZfEjzt`f0t+;_>OOYIXNX-8a22#Jd*e`7XBQM4 z-1y+ntg~m&7Oqv1bF27s)O*eKi+S6VUte1*;3^m#9L)chNq1v{*=*32w@a2Sa|#ss z^XvM4xAgS%9g^ZUQDWV!tgNhWmTfP7ey%0b^lE~^f=!zy&HY`IY9he{YC>&%^|k7w z|Nk%kf*Yga=dSw;be?-IU;E|ae%|{l*pK(iAOH3BHR#Zl$DmV@ii(Rt z*9#RtKc^_b(K7pd_th-d;9%ity3uVDCkn>wtC3`DW^8S3{ZL`Eqw=#F!-D0@+0`a< zZqfm*>5kY}V|i_TJpba09iS5h9&YmFUcbNM;od&BX2#gqSkML+rbY(6*j+83pPzqx zYiqXDUYDaeW{X#@eV ztLB~@*RiNWSlv$nGIwuL|IcP#lbd{K0WVPu9@_! zSFbMIyVrN{;K2{}kpio)u8J)6x|*MzoqU^@jhP`MileHk3N(1~=~L0RT+IWI_2nwo zFV^UK@$w}j!^FeYhe3f!Hu^T9e&ubNJFr0f(oa! zd0tBXT)}Ims<*m!eKyr;DJ$&UX0-fl+Tl-6Pa7H;F?Ammy6R_p@5m7r@D1qSnzSpT zbi}qbEm6;LJ$2!#Mrizs=jLW+Zfn1|uoOy~>`Xk&#&F=n2ZP&Yc6NL$`A0Si%~M%r z-|+ojb${;cnKLh{+)nziwP?lJpvL3zHXq{Lw-$L{ONkb7y%r@MrP<%#?<{h32HUR> zS(;swF6@($mcIN)PSmwCgB5h5$?HpkSZcFa!ZyhVK{i--$aJb-DRdMAN!iH)oIbm$;!KS@7`GcKJHq^g93{i zv-Ma`XKsy3+!}SW&a{(v>7qqUckkZ4vA5b>hL0Uop~u{<%ZjD3oK+dMCiPD z^XAC6x3?b_SX{VyQ*x`!kxOcNoZD4A85km`flk}swacpPbM(d}*BzGTt*xz~66$W= z@r#Sy7uz{{O=9Uj+B8|+|Iz<{_y2blf2DAAJ7#;raT1##L2S z56X5M8W=2CIY($_fV~6{+mFJ=Xi;GY)gV>J#8I-!>&{s}R-N2)G9~Hur%#^_ofUTx zah)<{ibJ4?#aurTaq-1Fc1WbArp{th>_6W8=~K~^>C-p2_Z1v@@I%KnFd#Ozche@L zp1wXMYwOu-9abuFFy-CZajWGWaOKbB7sqxrU}{ni{iNl8ixVh9slM= zN2dsdGg-gYEUAa zGGz+G!N;p^|NCA4|NX;f+>7SjzjJ5Kv)_CF94jg+Qs7_$-9~WQNW}G^bp9U3GoQ;q z7s5Gwh?uSy+oaJY`0v&0*U9;ZuejK2Yj?lZ*U|zFzMX!`)D(5RU!L9R-jvqGuX=lX z4?ZnAdgp+vihZHyj`w$VGP5*q*}h#oIXM}$iGjgoPuR1i3l}n`rluBH&HeEEuSLy| zf+NA-udWUU)f98B%MU#*I+(T@v`Z*?bI5~_*ONZPxjPCda4>;x5#AA_w`Kcw&~b`4;40R4!QRju3a9sD8WD?Ve?JUn%bBCmS$#c_wL0h{FrtmY2$;l z=J#6^IA%@zFm0Mxg^k<{A2skHd56BO{{ITp50Q-D6Se273$!a%yIws@yCgbVn&H8L zM&_K^R_~gouMS^-=xLFnt}d^vtgM8DgoC@gyGyqT|Et-{rOop;~baP|7lV|>0#;U|4S>7w-yM5%ehebP;(&i|3>`=M$YI1B?n3$Edb>ye1 zvu1VOym`|gyH3Ql@%ZCJ>Nc4i0{}jOCzfj8I;w8f*8_L)%vRZ(C@-KVVIm_UrB2BwjsO zb~Mia<1JO|?w^Tv_dmzEy9O$FPFmKQ@b=bL28R9j&u>%J>RRLwDDvdVlZ;atn{Ph& z{(Es*tdRtd)c%!sy2F%|*q%$~Wn~>Y+ASU!8*7{YXQhP-#Po6(detHU2)&#y4nt6MB{^6vJ8;q`9zYdzh|NHlE#q+u4ht7WdJpaFp zs;cUYdGq={SoTj-@dTYg$vF8W%jAbaqxW;bTxce{OF$k-@kt&w&%&FL>{Yt zzxVj5M5CDtG`Q^k{YX}js0VGv0o{jo=T6LtO+EX6&fb6VNYBB91KR8NG}%^vdoVRT z?%=7Z+Mw&5eCrGLZWWT8_k-&xG|XWg!^e#mGh7@U8IK)1wn%NutM?I;RMtdo<%<9R z>pJN4deBCm?fLhQZOy)}(4|!Op;>;z?+GVU4)w`ee>kdNCzyVI-cfe>8U_~O=cTW& z8P49a#pK7|I-9>=E(^E{#;q4O&%fsq7bjO#Tzu28{N0_Cf1ZB++3?`7M^={B>+;?Q z(q^8MZiF;XQdziU3Cp|*n*Uq^Th696%NSjKxYT<(=rr3!Yu5B!-LE#8Gi@{Im>iZS z{t&mtg0szXo9@4F7l={uu$6D(P}k!$Z<>5Vy4Nk|<|fwFVQUYy%hz>WkE_;Q|rRin!Yd&#;f+MW$ zB+vT&A!46wE!ID_e!r*r>FMd9@yZkD&%0MuS*fY37d|;Lam96O!JTDqrJg-|_TlRK zI?nw|3`mDc6RrVy=m#`haVPz z4w75Goc;d?{{IK^susRjIrYScBjFm~rB^>#qb@Wz;?xTFy{BGR?~T-X`0s3f9rNOg z9e@7RELpnrA-nw##%(z_K@*T`;`htd*47$G^=`QR7Bu_%`|kgb{q-*X{{3lr@88$H zuh!7j1zmbvExfz#Z-jjWtWZ^w@YA)0>}5a z+;R6;ui&=2v$Od5!uk4EVPAUm<<>^j{$DUbg|o7ubF-)>Q3{ z0}T@kR!vd?odWOS>)U$&{qZwrd_v+sWUYL@Z$j9j!@}`Fe*m z1A~K^Bd6WmmU2A7V8Oa|d^d02ob`5-&f%9O$6_Ks|A;%9wt3;QWo>JBnA+L(wY9Ys zY;JKm|KrisuA|@ixdKH#{(8M$Sy{O`_x8?W_2_k0SJtgw&7HsRr&{z2(EYhbT#}QO zy}Z1f{uvpC@v<>TH`z{E?B4(A%uM4q*8S6N=D5|?{#_K+$&+96@xbb@2FF(2dlBgd z>LJ;CxCFW+CMq&K*#CF?|2BX7zf*+rnjWa=#d<+D*lP0;+`A`Q^_ zaiyiDmsDk*hXn?^`}+78z?U?Nh>IV7S>iM;^~$wtn?66hdTV2{d&{&%8adTQ2QVX0 z$~6#lh{eK%icyE=C?u)qahAu$$uTT|Y+MNxxppemZ1&+b;%(ueMJ;jbr|Z79vb5v` z-&uAf@054r%$br?rcYnIemy^^4xPd(ytuXF==ZEm!J(n86DLkQzlK#U?uBH$P1K%! z^%p?*D2IlEj=G8dAhr7GjF~ez?;q9B&|qKyT{6dU?@TQChT&^#BAFT9Os$TOm%sd} z!p5Tdn+}74wVdu$Y4f~{EqbxLL@qv>d*Z_paebR8{_HicIw4bTd+&id0B_3(Z00y92nbp~ENgUN;P8ASc$6)0%dz9fH&%Vkdh+zCqP8}-SU0PsrKN9-hBVhv-uB-b{be%bnM(|84?z@Xx~1&J3ZZ4=3ZvCcY#j( zg&g!=@%?UjF(~J_#W?#H|we{RNzlyza7IV)POm=!e*St$uEcLC?xM_>OQ_DV}r%e%8fa9?Dz&S?P_M!xpuqbKLtR!^8U>(rlx zYHt><2MsA~%fHXpqH@nBis8b|o1D{6w=P?z20B@RmzP&US~^+xaVH-*&rW@@@l-Qp zT5#_@9zMQ9Pm4fzUYnYlf=&wrEz|tE<7A3cS(zDV{_4&hp6REL?#jQJW0t0V+Q@r{ zw3JjpXeg_rfKt>UP9@0>??Y>a-nv(<7iC>9w*GEVLRJ=+v9U4eEQjpu?2!8(KvOBT zvu4fW3KTK4v^@Fi{Hnjly1Tke>ZiZZdDb2A;Nqi=l{W-j1y`qkFeKvOV)c(%L4<#tb~RfA!JU%gmmW61Lw4?T?){P3+nwnYS`xN}&0o4^Jlh zA9`4@Vf#FW4M|72de{C6+p=_NYwz}suN5p4IgY44+*kTq?00=A`0yXa)1XzM3v>)R zw4`jJR`qIhy?FDc6H;$q{~Q<7}cj10`o+P-}Qol*4W_ICc8H*apZ{q|uR_o2tt zpzOC{Ut8Cr2VY)Zc9;}02hv#ISAQcQzFeAzt!#5>{*p;58^ce5&&}lmZ4KHPlaZO( zc>Hmr0te`fp3A|1pA_vZcyq(>%9SezQj8A1|Gs(2Ja=!|HD+dJZO@*iefjzo6p?%P z?iFOdCM0_A$D_t@?TN`##UTpb{Lle%^T7Mv+3g1t96-}DKWglJ%{QaW z+T_Kiay&{@(Bs^0CY8+w?if?tE#I5^hhLx}0yfX8WPlre@j8f1mf@MCH}*K_9lNEK)J=^jh=r>Wv#6^XAQ4 zq5B8qzIut5uU|VC78V|1|9s|bp3%$*`%uqGpiQT~+7eB=wPM|@zP`RWUR#5g`(@^A z=$JNZNz1l0?@2AMUS%;HsD8g!e9@F0pq8AsWmskB)}E>>t8MmOpZwvqzNe6mSa({q zM)|utj#*h+vrAnksVrNlXAv44yjapfpN+i}I-wKDZZGU&^ua-VpQNm8ua(8gyzR-~ z-`xcr?6_(b*Zs3gRnKkqXt?|`rXXumigJyr!PJ*8GvD0bZ@*~KwZq@rD#g?|w|l1~ z^{#*TFp;CFVcN859XAszwpP^qUocaDpMk%Ttk;&-{Hm&|8?(jNU+)fH?&rECCR#`A zn|W6E*NcnYm6K+=YtQl*OuabKrOkX_$RyLSuWGQV82vM8#asGiO*)HLtl+5I zFMoSm?&Uwajw(jrS(V(N=t;|#FISEeUfr<>w1}^>v$IlLNKQ9UBrqg|B~awy_uqy_ zMnZ+beq}C!E`EM|-jGW*J9kW6b>#H-$&)7wuAS29S0O3hr4OD(F*(btB?1~8wf9)E zK~HhviNI;O{6_^-Gs|b61+{cU-tYZ>Z_h_1*6B&{8hr;>whGuP?$}~|G^^-Xmdyj* zt*_-?|DLxija^Z93RDPvi9Y_Gt&7e|G)zZPDF+8#(^Zo*6%D?Bv_p z+7irW-*j%X((6!|)VM)ggk-|SF>`h%K=(;5q$0LH!r7!VdFw$FMcXY2*`gRb4rW-|q)CL}N{ z(m3?8#LZ`;hl+in_YT)Um)crea2vYe_~U~claGt>p2+x+HS=uRo12^2SFT(cAi}!; z-`DjQZ{A$FF_P=a)29o!Z4+Ch;UvJK(bW|H=aINY@iU(tFBg6I6?YVQN`zalWl{#X zt+Vl$-9$qPo)v4>v>Z%m(C7jkSby`=wFh6OA58+y*w0R`etvGQRBx-;TgQTpb27T8 zs3_U|d(`Tlt$Ab>s4=rCYAxt?*4uKqA6J|gntZaQuaD2i-+%K}qsOlG_4XpJl^N6O z^K)}sFJ`!Sd2z8gIz&fHx3#q$I%`r=UaqXG%WGS_Mnext?w`Y#vV|C`k;mXoos zlX-o8{qfuR`+M*I|M&gG*|V;Ng@&L5$Q%>|^7bj%M7>%Sjx=vEM^}CClzA#^!?b73 znzbS4rcqB%&jZjvgai+0AmaFA(CPMv|ED-s)buADx^neu>)F}n$^sk@KxY=!|Fc;a zyL;J1?+|DUNZsn|*RMBrm+N1;e0iY;SKZgu@dqD&Jo4rCxl^YOO;mOVT|>LO{JoN@ zDr<9d^DI{81!}%e zKH2i@Sz65gI$6*WvIgfL1%;p0zt(GLY92h=Ev_s#maSVKK04a{ zqyPU8{uyV}?(8UJo~|Fy_kVKb!>d*m9~7qPMzggaZtNDY&B(y$PAxl zmBR1#?X&yx_3Or#-5WLtynOjGaQX{Bmx{kfnftE=b%cVJbWNQ-ySu50>Ca{RzryR{ z_w(5_wA{`yOFlhK*I=fPhqw1((7k>g?VN!k8*6`;Z9BE(Vn)lsgam%pg&vby#N%rO zckbK?niT_0)$Bj~utB41R(0#)hYc#8XZZQrn`K{LbeB)vpC7zIzog<**2ahpm7kxj z_?>Ge{ps^($S6o-BFBW^HH37btR*KYyjbJ*EYEtAF3CexJEbpRNDB;2IScM~CX_ z-%Z~6>fnJ#(7HF-*=O0-U+->a=Xa|;dg`@)>crIh;!67Z`mZ+K>f~6zzv98wD6WmG z(j_amhOLj|WdMyR-xkZyF_V_zW0&D$my(jYaQQNG^T7oh1ziQhR!^;!;bY&He}COZ z#)hsgu9EU{P{mbXAp@=t!d2Q23qG`OKg_uL>ZyIJj|;Leo}R9MUB>#$9hX3t@^W)2 zDX9oa&;?w9fd_LwefpHJ9W<$uurcDo&6}NXZ*M>RuwcRF&B94CZ1ruwylvNK91lEy zH*fpmWy{#Ue*G%=FVHk9I@+|3_x(BHcfWV-vMMPlak16=_@Kl4kglf?gTu7cD_5?7 zdf?#m{}YdPi9USBeQ2?0R^M7cXCC-hR8cv60c&b^3`H;F0Wo{wY`3w}Nh2TDg+*@ZrOt zJJzL{*YB?Yg<4m4w<-UUvfZ*x3JFO`PRX-Zym+Y}w|1$(YS8F{wz|4{*6CE6LaVtN zdU~Lhk>B3lZohdmQpT<(BDwhMt5DFCOaJ-jm*2P>oV>F!nO(#cbZ%aC_td#_d1s#$ z%iE{0@c7Qc$8FDU)YjIXIhVKHd6LSG7`-sI$Z0n#)EI8;ueS#c=PUducwAxy+E+gP zG^?Y)gvpZ+fBACg@y89HL*>^T3OxV!&CSg>w&hB1%e`%uU!((>$vL$GGLy3{{_9@I z(#^s`!#+7%F3(913M@>bjx?+4ac+;w>{!%s>Xg@w95WFyu}!%f4=fgq@|-$t+M*RJ zII6$BNxThea9_A|sR?ulz?Ll{#>U3qLkd6ti2GZwAaI~h)*5u8>A{1JI`R8tK#S&YF zu7L$FFR6AcI+5i5wYI$6T>Jb?0i^b+D0mG^ybJ&SG{BHs}0&{bR?D-N@b; z@mt_y#!54Wf^TmkD{SPxJ?7gQ?PX$OvS7^`9>3+nb^GPp`Q_c>;^KDPZ2Is+?x1>} zqX6inA!wiP?Afyp1rPieEl#ibnDz0O-9$kaMviSZ=H}*ypB8}zkyP(?9E|_oq~f{e zw9BRi%l9KHjNpQAlU}~eJbVAx>|ejCc=-820|e^+^Y%O!yEtWv2*ZJ1Y4aOqu7MA} z|4yz`KH%-;#bsn<^q_3_&Gdzlolf$bQX|_=KmBz^t{`kpgy6?z33+*bpKA@Tv_yZc zb#`t(CY~j(`e?JV9_RL7AycPL1@)V!)hu1MEUB!_>`YZ+#TKXBw6wGvGSgSCT6*XgC+>N(oph>}k0s&oJU5kPT2Wt7x zg-qVh-ik7V!Y^C(d)4mU)`$2P@}D`h+@!(!YY7*Y0r^eiZQT_;-$1UXzx5{CjI_HX}pb{`tAyA@5Z8@vt=? z%h%cy1zNUsrGlrPdsErlC^7Rr|8|K_T5HYu?qa;i>h5Cw)IIa7O3TW`^rmY+YEC#* zx4*N%1auw2{PXSS&iVE9^xV0g;9D9dx^*>+)3KZtze7L^iSgS8@!r?h zL1Ti71?uszH&u`#qq+G*7J71*BomTzq&s%GE%Uv5#B z>t5aO+&T93ahvroKKvN2A+ov~v|?;~+}_I1YBmQmwVmzx+L`zN|NH*qT}qcOT?&Yd?9{J)>AmLQvFD#%OR60T>T+7XTJEd-toG^CryEmBKobw= z=2}NehRS~ZzUo%Z-`DZ(US3>swO<17?5mCbyu0?(N%e`dXLs+}W3y!G(vAB=C!YY_ zE_hTt-X$_pay4kg`b?U!UfdoI7Wt+gH)XTjTP*wUpWn6BRa;!Y{N0^{-`?Kdn0MC- zbmVG=$)T*RkK+G5jc<6+d~8?g>jV?2L@vMWFTVf&_~o*{vxsX2`23YUUoLq^>@L#< zO=_))-VU0RZc@mQ+mK@>9TXgV^RReR?ITssq{|EL?Wq*b%*+IB?K_)x*!a8+^Wuvf zn{S>;>i&__;eDw00n2;0#e&h>at^KvT@5*9>i~{NpZP z+v0EkS47$@C!siVeZ_!FCU5Hiwm!71ZE7cI+7F zQn7E=xA#;U&#U{DSyEoUc*6#P&#GM6o|&1s zV&%$2=G@LBZO|oqJ6^ncl@xsD=ifRWK0db+L!~5TZEbFK|9Mw(KL7p;n*KgF$8zya zKNUUbOwhsBvuTHy&#&upP?%t{_SSsUMH-uCX4Tlq|1|SNnj!Ltc?O#o;&`MFb*0Ot z4e96QK<5IBzV@D|u+^fhtgI7MIJf8D?~9m_ zurgs|#D_b@=Qp;pzdJ6zXJ5Fcj!w(T6el+~wia4lUWB!SD{A~Rem>-{?*Ps0z2E=8?#QWWdn9<+BG!UVAu_bL1??JoeKLWor^m9`uNTU?W)^ff6{klvVlZEczFApH#uj^BBwnp zu}YqIf6DRiT4u9B9on3)>)1`>Up6~H2jf`e`P!MwcH3$uhqRjSL$u7dRMh&r1O)~* zZrQTs_bl6^SzAH(I)bY{-C}rjeO>ui0F^(=pgEn2X2DeKj%S3ReKTEaF_8-L7u@Z3B8mynve`o&9^g!XA?KIqhstJnhR zyMjh#gfChaKRZ*adYeU%A7iVHw(88Y&kSC-KD>JB^y%j7uT#C}`T6;Qwwk0E>8`Ac z0gYDc>$}It%Zs=+F4FkEho?YipT4H%!51$yR;^lPU}Q9@MAx9|m^f%}Pv?z{++5e< z;^H9xokzh_LXhSIXr1MC=|GW-SFW@?e3-c7ZXOR0&w@pZn%?T`=(OB^>sDK9+t%I= zTKLt~#RX|DHO!r!_5GCg`UP9Jiso&XK79D_iuLRJFBI**`{LEBrh^F%{{H;d>kcL) zZ0nvIzGL36lc!E~Wqk%|*t~i2+;CrC-pz#;G6lQu-q>BP&+y>FLT9P70Tt)E6+#|O zD#*XFfsw($$cQOWM6pZBMvnhao&B{nk;34iipa=F0hY$QE?4Dmf;PzlWAMn>{B_dhUqPJ9GBz!fo5k9xZedasBf3tK%el@Rd-TBr1<;bFE~T>f_s*77ob$dK zY$~4g``g<9(0MZ4n>TM>v1Uz5zPOs2+J$S^+AdxUWH=C=zxQa#?OV4@tZbfx)*BN$ zNyDqx`E|z0hMPHV;o;&|*47WdRy{1SI_xXfdi*;Bs2{D-)%5rG_r(hrGV--EmzI`# z8hgcn^3tQPwvH{3NhU~A01f+I7e?NKBB?jMyZ3jXcxvFzijPXijvr@aNKQ`vP+{XR z<@2uE-)6IB&o(qMY5Dv6yK|t(o)3q(85mqaQ;RH-(?A<(KYlC(4ef8>+8!IboMs9BJD`~k!e`8np2L}f$b}6Z;s|Uu!ta)i3 z7ZS4M=WdsD!}udi{bK#RjxNsUZ#=yCXrm`+n;U4V=kFr59iTH|W%$^ugE<+r!`5(Y zeg<0m{kax=VX<4uSBDvI*TwD*h>PPp@^TNTx&Ht8vu6zxwsY(`@_0|j6E!`~?`xyC z-}t|J)vAElSl-BKpgVI_k3||)YzYBnrkgi8Av=r0G>=xDNdX;L2bvhMntNk=zWk=m zn-jO+K73ZJ<@k3k^SnC=wY;LP2VY)Z-dLF@*4Z}iWf@k9Y2T)FqoOftvT*vc4b;~PfyQ>Snv!F=nm(7_TO$K&wAh4gVXl)>RIJe_wBO- zU25^!vf@L+4omTeym~qtM^W{OJtv+ZW1m|`u?PKrm?pEwlQt?b;R=wgV zzfgjQ?aTM?haVQSynl2}N?O{vtjtVWF=t~$g4t|CTid-4f=i8rth!<+shF6VF)`e$ z|Nqy(ySC;%XWyLgT76HUY~T6w=B1T&`oQNYI;8n5wpP^o3p@nPGC*3tUsr@z)~r_t z?dTS9b@cV^O}nsLLgq%LeuR$Lv=nI`HnY!OI!7MwsR$51^Yiuof7xdZL+w_7RuY=d zzU#x;7cVldsN3(p+jn<&`Qg`J7p+>QRbxJVn#Fk~M!)63m*cf>YU=15S?Jt;$UM2K zY8G!4rz`(`X&$zck`f0FJvF2Gu}Z?(HN5=%&H^l3wrp`Z!*>|GnbK_6u3a0dzP|c! zmZ4#;b@{O?pT2E4Bpt6MvbyF-keltR(75}rI}autczC#7S;(#QqxjcL*xqkWb<;rXUEAUQ9OiWO-PAbS! z+xolX{`>Yt8iM9QQ!9Sf6%`r1{I#)ldf~z!Mzha)czY**e%%HRmZtfw%T~+C$n;e4 z3JKo(!E`js=fgC^xUa8j_FbQx@m-+*c=ODelHe;-dOABf&zw7VC~fmbvFg&_XU_Df zZ490K?!#}VjGxYd!Ve3?tn_t0-JX^z32qnK%JIKmwm44vs@j|jpLy)nEWkC(EXYQT zjaxddP4W@&p1b1-FRqqs@d#|;4Q465wmSo z*MpSx_4#dWZO_CrGc)IG-4yZg>)x)rdG6ui;=g|X2Dcfk7hW_5tqu8VyV2s6)(Tr& z+k)M9J;fJmffoA12Y8P@u70$6>Hhulv9YlaXHS<2TMeq1TU%Qn?pB&Hdp2{!jBr`s z61)E|7WeP`Fd$Sg{2%zg6)4UF@Ep z&t_Nr`FK1qCWeP)x?H?g#M&?uQ`5won^HkHKt4S^J<&iSAR>aJ|9JCk^Zd5|C&5ED zqT4~~zVdS#3lk&gZp7#3=O5piechz0vkO$n9DQBgG#|9i&#|)7^52i+_K&*b|2*2$ z9jjur=i^ak*a+6*qpzzUZBG6D?JWljlZ2EMXbY`@RIi4H#(^6*B-X|6m)jS8cx(1` z13SCE&FSac-g{*|GV<;`n&jy0%nVuwaPuZ7OT6Nht5-o&%+1Zs59^Ke_e8-rDCDTF zYiwj>aEOeI>`3~Qyfwy=pWO91|6_{zu&6 z;^h8;?uy)`bNFqUd+a&Oix1IScE_2!k2dx6@PJP>bF`4@Tfx6h1x+~ zi#p!CdBYlhD#k;*gw^w_%%@ME6gZebn=Zplt_5c+%J8uZ)U2-l{w~&+XT|Z*zYGmO zjqmK&O4}?sNrmy?wEN}vYt0XZo6Y7uJzXDkr>%|{H;dzp@~J_dlR%aJl4Z*_ z&syERMO;CrDCO_}yUp$Q%=CGUCsUf9%SDw5&-|d8YMy@&w7l-zIlpJla-dnGrucw> z2GER$_oW9{u?Ectg}$otsrJmrge@H*fczuE)p#O5J;_zk~K-{r|fEU-%3kwI|P> zfkqkX|G)o#HtJ*Lmbl8NqM)m6&CSI@J?X~xb>DZdG5vZ}JU*qWD(mBg8#g!>U+kEw z9scODzx~na`~Rd$^tws(y4~4RDGZuy3R@f18oRq};erJWGiT2H@oD=0p8UGcvq4K- z&GPT{JUu=A@!axzj0`o;t?wW7*53(rl(7c)S&58c>W`Eu!WP-nXS=k)qS zD~^48?Ft{UY|FX1=;Le9F)Fw3{}Y>So(~#4H!?N`4?%Uu|55tfd@;iXw6?11>D2HW zmQSBO%X;Lc`p0Tj;b+iR>o>iY`8AR}Y=8bdw@<$wWBdQ>>+9L)UONg-x4ZKyc$UuT z6)RUd#>UEuxHg`Dez;3i`_NhO7I*C{#}W)cy&kp6oZ;(Y7#n8v&(skS6I--zpIq5) zS@(Xq-j^?B=j?O;u<|N&2ghsaYWu&(=bz4Z&r4;@|#{a<$Yh*=7ScQ>rLlwQdqEJg@)SNzrVjfz8W6S+O+n7 z-*VxnPoMhetE;=0>&l%veHt|0KmU9?XvzHhr%#{i%=}zoqoJ>V{KpRq>-OB++cs_& zTez>lYVMmo-{0PbPCLwa8!pJg2x_Hm>skc5m@eVBYoLp#C#Q&O;;dDy?gg+Xlf>|y{9EBE6dO@ZJL+}Y*k*^ynXxZrc9sy__+N)LxGypvah-WKxd?W z`czcLyJ%tD@$L7jxQ`w^3ThoPEZDZq>`uwWA6mM)tqL3!uh(u52n#!QYIpW^z20-p zN}wqQN%$1QwTX6r*mp|UL@k`^pP8xI)zt+W4cMl8Em@6OS6A1f+=yv1A}2rs>LY+oO{mw2(pq)z#tn%WJ@IUhOTpT598Cvy zC2DjrO+Rg#AHL)!Y(k=Ue+ZwP4F^jp=m^n3kw~8v|5q^!UwwaZS5(WQxYy6;*U!rh z-o185jNZ3zw;q37uxr<>xy|=PL`4t2|Ngkw{2l{?kDp&sN(##&4Yw!4-AAWKeFHUU z>x{d9D#d{oLKQ#f6VM5P%sdo4JjBZIpe}atp~XvYF&wzLIsM_siW^6{@J~K;xd^a; z_T&`ojLFE)cP}nB7I<@i>I*#KwJGT+m+yDh7M0wEOO`AF?eWXoKD(Ar)=DJLOn+gg z|C*?Uv0~tfge1=C^P)Z~eVGB8{$`)`3wcT+rS?c=;NPmRuR?dk=q*{g6tv}lnVI>; zix(XkJIy3`-t>MsIa&SYkA{GtpdbbY^SnD8_eITvf`XL#mYYd@+H;e$cRlEso2n`) zzV_y+8`rJt+v`|$0o1RWFSL2nrVBT3o}9G)%9W5a=gzf(w&#VdID6&{&m2E>8#(^h z59D7PPG)rt1Z{@xcFoMp+yScB?XH-8S!q~PuLPcYIr^x&DFCu74XM2Dot2;qI<6YA zRipdUhAdl;H)YnK#AspBF>RWdj75RMqWof=9Wi<#p`iy~mLwGv2uxC0xNe=_8vQHDmrW<&pRHq(pQvEb*K^8T6q?V;LYOpOO>)t5wX&ucyZ+&Mj6-ObJIhIIdL zM^3XHTeoiqUF)nTaOv)%4I3tW&6SgqI@HQ7zR2(C^1RvW?dvsOMNj|zwY5stx!(HK zd*xe}p9;Rd3I(lsd|9&T-T*X?r%gINUH@>7+2*Cz+w<;rO^>gWoL}>avrooS z=%dw{yzP&z@Bicj4V@V3E3d!y_V)I~jS&;(&+nhA9S$m>U%q?^x(B`Io^P3o=b`WW z|JSaG-7V&}SkP=XuXXvmBg*|YP4oYKSuR++^XrGd&`lxFs%M`SyQ(*_({$gJi5D+l zzAR|>{Nkgpwt~`Tvw461{F$@GieXL6P9gASTJ_fW%17EFU007H7JxY@G)#}H;>^Cj z?kLED(%07xJ}ht$U^$_<`6sBAsK4)r(y3FY5{zbkxDxDtFvaL#j@jc!N4p(9*o6cI zG5MePQkYaAwJT!lnlNp|q{6Z??)U!|Ef3SN`T1lrXo*W)oZO{Lmm=;y`dD!zq*84% zXJ%&Rho3bDQoVw);bH6JdVOb`IfBpYTDWPGQ2eh;(<72+o`2qa{(1A+G-uF;j^%w5 zUb0-({O=NY1a!g8H0BvTYHx0AWCpDTD*W~)5_GKfj^gKhpsrU>4^P?J*RNlHtp9iZ zzhhLC6li_|tf2C<8fda5AfN$s9vi4-bTOmlX3jBTf1AeB)Acuh{&86TAH(XaU7!}g z%a0==OKT6!_lOJ z({!UJOq#^B`)*(9>uZT6B~y5RJ?YhNKit^W#pN-HW%5au*=O7C+=&708T!#)|AW2k z9e>vjl{*Xt|Nc};5ZqvLE9$`F(zmxv&zwE`5Y*KB^!f9~oSQ~pzJK3b={KDVGXIen z{9wuQ<<5a3TefX;o4Y!g|Nj2Z=d3}4_t(}$HiPzREME>f@xr}Nrn73V@WhD6ue0NS zOR+c}czJob^0Fk*xkH)P&R0(+hun z$pl?uTxI`5xh7JH+i!2I`&$*Z{V!y%3IA(jISv++>%Tx35P)u)1a0`%j{nI8 z-Y|6K$JsMyQtZy2Idf$H-`o2$<^C`=GJuX-1GQ(@$jqEMbH>b>2SF1nUteDbjn;v- z(o3z0**WQ_%i8+AIL=1n{AO@UI=*bTY-?-l8UBSkPyV$@xvO0m`J)Ydn%I$JLNQC8 z-`JQOn6BgL2ATJm+0&gW$j{~lInN*=B{lWo&Gh-MrKP5zlo}j-n5_uZl@C4ob4Sh3 zBA4j`O%I@F5kx!!DSmQt@~qst{qoEG<{p}9oNjWPv#CQCVp>w?;%|+v1ry>F1TLJB z_7ynt7j_gGi{p`rJI);Tg?6ov#4mtseCgPs;3>3g*RFuTK*4?83e!XiXSYiq6g}hR zeCgyw1hNrQj))cYmMkMumex2a`5F0A0e9m-nvrchmLnTCes@2Nl9) zZ=-&^YXPm>z1Vg2JBz$nH!G+|s?i1SF^4TWuI29oJ^ST#=iR*Hp#AlkVx~Lg_kHZm zU$A5e3+R;8+5EFBEDR)gHbkur5K&Fy`&Y5Byhc^15bunJhvMnRUw{9pn$8t$vR{C5 z2$|&PLvl9z!Z+T`0ZkUIE?2!=vlKeJul@tHefsuWPsznv;I?p>(s8YPkP{)DAMnz@ zgX>~=t0LzuDS2Mp%V*=eZ)hBD+ zwrP{ml&Mn_OG-p0sVJ(etKTVctf=K@=sQVoY?b4ndpfI6VA`_1X5qjI(LW9+vF}oerlNzrrsuQ4w;x1<&@|y}y1{^b>;lrR^P*ZrV=7)!ei|^XC>%(ICzZ`knrA0+WK`Yy>k9^l!_)khs z&dt}i_gMVG)DY7UYti<@jN5Pb?ydgL#K0$Ob>!5evfVRf8MbWMvf-_*t*w;o)OG9h zzI^|_c+sM!p9?l`4t{JLn!NCbR~d1$D4{bVBO@6aIy*TTI)2VL*`nh4vw~8t*!uUJN+RI3`p^Ze7ax7y zJ8#R@tqa$#1)UTew|;sp=+ubgbMeiNe5w01dH#a6YkBwX-K*$+ankhZ?aP*_aWpYZ zKizuppyLc5wUUw&gV~_d$9xWFZFLfH1)T}nrgK^_pS5D+%^cA2MxfKpK2`)oMXmBw z`Tu3P{lTY22cH%_1RWA|Frnkcy~W=v*T(IY0?*)p4~=RxPCw@mC=#I~mL~j8KXO`N zWTfOpTTTYhP88R`2Sqy#tgX9Go$@O46BZWE$j(0e;)MpogSFf5U5a@h0J_|EL$-CSF_68I!;Nf_4ta=!xIDefwe2P6baP zZ$5Q(^_j=oc%?z7O!M&aJ_IceTVScCzdirHTXC^*TU#4QMx(1qJg%bg?ex@{s&{yK zc~`7j)ug~NYi8INJN^0R+b2G_{ZQIGFCis`#csZT@mg&x2c`AxxL#!=_vZfo`9DP& zKEFJ3hNrEq?ZL;28M!aM@}(9OOvt=)C>mP{&r8C zIkR(j`TIj@n-4xLIPkDwL)a5h?XZ^F*?r{?53!1fi@U3I*tEP-um}hfas8&ocrY?s zhL1feDk@@nd&YGpt9jQ!N2wip{WWV>&Z^^l^{)kI9XWUQETdw+SCZo-l^bu%KqHn* zm$t^v&)9e2^^B8VF+%U6x94sAA08UIaMv!WO*+b|s;pi;n^QhytTbDsv1s#V(Dk=x z&z@Zq)b(}7NzmvhDE3OMK*vRD$ROXFx}m7d$^Vw;(vSPrSFF z-ptHw(ZYp{VXH-7zI-WoGRNYh)%uJT`IaG|)6sU%li*=1DJwhlus}gwo&Dv@m$ULr zU2;IZ@~W>|0(&Ar$1SINOk!~qFfcV01yAuVG~?JO$9Q1bvF@)kPPYAGnKN;s;J$3f zikkI8ah7(3W~t`CU}0jsv$tA&ciG#nA1hM(*dOvbW(ie(eHH34sb$h6A<)@+d-lwk zd;YM4g1`ae^EQibZp*x^cDCF$aQB9g(9ngeR&jy$qCa?$utV~oC+L8Iu%5fS%bi7B zJtiGtQ*n7MlW!n#;r@O3(j{8!uidyIv1#+>NO|qYWo2c!eEISja0d!{;#uIv=HTw@-&q9t{A*gBHtw?6 zI4!WhYU=UtA0Pbs`WjS0&Guyt6bji3J9H#f7_ z?YFP_%$#0RBh#diaDJYx!-<{0|Ng6<<^KEE*VhaU`~SV(pZ1hbw|m>%xlx#dWu7-xaiT<>Mhc1^)dvQ{M; zHO9-9FTeR+eee{lzu2+XVFuxvbVQbci-)MdmD7+A8V7shIc#2xRP4ic{V;&m z4lP{2zW;AqS9kYJH*at5uC6YnS65pfY2WOOKGd7wz53S`D_dJx!vIHD5!V|zWhr(D7$1#y16B1uZQt*Pu_NeQNxcT`kapm`a8Goziz&nb1b>vw(a0S$Ftu8uFU8yd-uxF`Mhhd``3zxEpg%d@ALN`Kl~`{?()3( zbLY06O=EUCwR)a^hRlk8T>Gy@DD0aw7rry-FvbJ8l?cXusd!Lo2 zu|cQXCVsJb(K1`Xsq^##Pw0uo3jdh4Lgw;tPSFvwuO7>0BLxnnKIp0{@Jt|dITuG0 u((E5jqyOy})eifU`@;?9%r6iBv!7lfIQ6UDB0UBM1_n=8KbLh*2~7Yv^T3M$ literal 0 HcmV?d00001 diff --git a/profil_avant.txt b/profil_avant.txt index 1a943c5..62edb4b 100644 --- a/profil_avant.txt +++ b/profil_avant.txt @@ -2,82 +2,83 @@ Flat profile: Each sample counts as 0.01 seconds. % cumulative self self total - time seconds seconds calls s/call s/call name - 48.02 3.28 3.28 1 3.28 3.28 trier_par_montant - 12.59 4.14 0.86 30000 0.00 0.00 rechercher_par_id - 11.71 4.94 0.80 1 0.80 0.80 nb_paires_opposees - 9.96 5.62 0.68 1 0.68 0.68 nb_facons_rendre - 6.30 6.05 0.43 6017 0.00 0.00 longueur - 4.69 6.37 0.32 1 0.32 0.32 meilleure_periode - 2.20 6.52 0.15 _init - 1.76 6.64 0.12 1 0.12 0.12 total_par_client - 1.46 6.74 0.10 1 0.10 0.10 nb_clients_distincts - 0.88 6.80 0.06 1 0.06 0.06 total_par_jour - 0.44 6.83 0.03 30000 0.00 0.00 categorie - 0.00 6.83 0.00 149998 0.00 0.00 alea - 0.00 6.83 0.00 6017 0.00 0.00 ajouter_ligne - 0.00 6.83 0.00 1 0.00 0.00 empreinte - 0.00 6.83 0.00 1 0.00 0.00 generer_transactions + time seconds seconds calls ms/call ms/call name + 30.39 0.93 0.93 1 930.00 930.00 nb_facons_rendre + 23.86 1.66 0.73 1 730.00 730.00 nb_paires_opposees + 21.57 2.32 0.66 30000 0.02 0.02 rechercher_par_id + 8.50 2.58 0.26 6017 0.04 0.04 longueur + 7.52 2.81 0.23 1 230.00 230.00 meilleure_periode + 3.59 2.92 0.11 1 110.00 110.00 nb_clients_distincts + 2.61 3.00 0.08 1 80.00 80.00 total_par_client + 1.31 3.04 0.04 1 40.00 40.00 total_par_jour + 0.33 3.05 0.01 30000 0.00 0.00 categorie + 0.33 3.06 0.01 29999 0.00 0.00 fusionner + 0.00 3.06 0.00 149998 0.00 0.00 alea + 0.00 3.06 0.00 6017 0.00 0.04 ajouter_ligne + 0.00 3.06 0.00 1 0.00 0.00 empreinte + 0.00 3.06 0.00 1 0.00 0.00 generer_transactions + 0.00 3.06 0.00 1 0.00 10.00 trier_par_montant Call graph -granularity: each sample hit covers 4 byte(s) for 0.15% of 6.83 seconds +granularity: each sample hit covers 4 byte(s) for 0.33% of 3.06 seconds index % time self children called name -[1] 97.8 0.00 6.68 main [1] - 3.28 0.00 1/1 trier_par_montant [2] - 0.86 0.00 30000/30000 rechercher_par_id [3] - 0.80 0.00 1/1 nb_paires_opposees [4] - 0.68 0.00 1/1 nb_facons_rendre [5] - 0.00 0.43 6017/6017 ajouter_ligne [6] - 0.32 0.00 1/1 meilleure_periode [8] - 0.12 0.00 1/1 total_par_client [10] - 0.10 0.00 1/1 nb_clients_distincts [11] - 0.06 0.00 1/1 total_par_jour [12] - 0.03 0.00 30000/30000 categorie [13] +[1] 100.0 0.00 3.06 main [1] + 0.93 0.00 1/1 nb_facons_rendre [2] + 0.73 0.00 1/1 nb_paires_opposees [3] + 0.66 0.00 30000/30000 rechercher_par_id [4] + 0.00 0.26 6017/6017 ajouter_ligne [5] + 0.23 0.00 1/1 meilleure_periode [7] + 0.11 0.00 1/1 nb_clients_distincts [8] + 0.08 0.00 1/1 total_par_client [9] + 0.04 0.00 1/1 total_par_jour [10] + 0.01 0.00 30000/30000 categorie [11] + 0.00 0.01 1/1 trier_par_montant [13] 0.00 0.00 1/1 generer_transactions [16] 0.00 0.00 1/1 empreinte [15] ----------------------------------------------- - 3.28 0.00 1/1 main [1] -[2] 48.0 3.28 0.00 1 trier_par_montant [2] + 266723738 nb_facons_rendre [2] + 0.93 0.00 1/1 main [1] +[2] 30.4 0.93 0.00 1+266723738 nb_facons_rendre [2] + 266723738 nb_facons_rendre [2] ----------------------------------------------- - 0.86 0.00 30000/30000 main [1] -[3] 12.6 0.86 0.00 30000 rechercher_par_id [3] + 0.73 0.00 1/1 main [1] +[3] 23.9 0.73 0.00 1 nb_paires_opposees [3] ----------------------------------------------- - 0.80 0.00 1/1 main [1] -[4] 11.7 0.80 0.00 1 nb_paires_opposees [4] + 0.66 0.00 30000/30000 main [1] +[4] 21.6 0.66 0.00 30000 rechercher_par_id [4] ----------------------------------------------- - 266723738 nb_facons_rendre [5] - 0.68 0.00 1/1 main [1] -[5] 10.0 0.68 0.00 1+266723738 nb_facons_rendre [5] - 266723738 nb_facons_rendre [5] + 0.00 0.26 6017/6017 main [1] +[5] 8.5 0.00 0.26 6017 ajouter_ligne [5] + 0.26 0.00 6017/6017 longueur [6] ----------------------------------------------- - 0.00 0.43 6017/6017 main [1] -[6] 6.3 0.00 0.43 6017 ajouter_ligne [6] - 0.43 0.00 6017/6017 longueur [7] + 0.26 0.00 6017/6017 ajouter_ligne [5] +[6] 8.5 0.26 0.00 6017 longueur [6] ----------------------------------------------- - 0.43 0.00 6017/6017 ajouter_ligne [6] -[7] 6.3 0.43 0.00 6017 longueur [7] + 0.23 0.00 1/1 main [1] +[7] 7.5 0.23 0.00 1 meilleure_periode [7] ----------------------------------------------- - 0.32 0.00 1/1 main [1] -[8] 4.7 0.32 0.00 1 meilleure_periode [8] + 0.11 0.00 1/1 main [1] +[8] 3.6 0.11 0.00 1 nb_clients_distincts [8] ----------------------------------------------- - -[9] 2.2 0.15 0.00 _init [9] + 0.08 0.00 1/1 main [1] +[9] 2.6 0.08 0.00 1 total_par_client [9] ----------------------------------------------- - 0.12 0.00 1/1 main [1] -[10] 1.8 0.12 0.00 1 total_par_client [10] + 0.04 0.00 1/1 main [1] +[10] 1.3 0.04 0.00 1 total_par_jour [10] ----------------------------------------------- - 0.10 0.00 1/1 main [1] -[11] 1.5 0.10 0.00 1 nb_clients_distincts [11] + 0.01 0.00 30000/30000 main [1] +[11] 0.3 0.01 0.00 30000 categorie [11] ----------------------------------------------- - 0.06 0.00 1/1 main [1] -[12] 0.9 0.06 0.00 1 total_par_jour [12] + 0.01 0.00 29999/29999 trier_par_montant [13] +[12] 0.3 0.01 0.00 29999 fusionner [12] ----------------------------------------------- - 0.03 0.00 30000/30000 main [1] -[13] 0.4 0.03 0.00 30000 categorie [13] + 0.00 0.01 1/1 main [1] +[13] 0.3 0.00 0.01 1 trier_par_montant [13] + 0.01 0.00 29999/29999 fusionner [12] ----------------------------------------------- 0.00 0.00 149998/149998 generer_transactions [16] [14] 0.0 0.00 0.00 149998 alea [14] @@ -92,8 +93,8 @@ index % time self children called name Index by function name - [9] _init [16] generer_transactions [4] nb_paires_opposees - [6] ajouter_ligne [7] longueur [3] rechercher_par_id - [14] alea [8] meilleure_periode [10] total_par_client - [13] categorie [11] nb_clients_distincts [12] total_par_jour - [15] empreinte [5] nb_facons_rendre [2] trier_par_montant + [5] ajouter_ligne [16] generer_transactions [3] nb_paires_opposees + [14] alea [6] longueur [4] rechercher_par_id + [11] categorie [7] meilleure_periode [9] total_par_client + [15] empreinte [8] nb_clients_distincts [10] total_par_jour + [12] fusionner (banque.c) [2] nb_facons_rendre [13] trier_par_montant