From ce89ba9a288f8eeb8b8480d7620d77ea07c1ffb8 Mon Sep 17 00:00:00 2001 From: Daniel Schmidt Date: Mon, 5 Jun 2017 10:58:16 +0200 Subject: [PATCH] docs: architecture deep dive --- docs/Guide.Architecture.md | 17 +++++++++++++++++ docs/Guide.Contributing.md | 9 ++++++--- docs/img-src/action-sequence.mmd | 19 +++++++++++++++++++ docs/img-src/build.sh | 3 +++ docs/img/action-sequence.mmd.png | Bin 0 -> 54129 bytes 5 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 docs/Guide.Architecture.md create mode 100644 docs/img-src/action-sequence.mmd create mode 100755 docs/img-src/build.sh create mode 100644 docs/img/action-sequence.mmd.png diff --git a/docs/Guide.Architecture.md b/docs/Guide.Architecture.md new file mode 100644 index 0000000000..3f6f555bf2 --- /dev/null +++ b/docs/Guide.Architecture.md @@ -0,0 +1,17 @@ +# Architecture Deep Dive +To illustrate this, please see the sequence diagram below. It shows the general communication scheme between the software components. +![architecture overview](img/action-sequence.mmd.png) + +To understand this topic more thoroughly we need to have a look at different actions / assertions directly in the code. The numbers in the listings below corelate with the ones in the diagram. + +### Action (`element.tap`) + +1. `element.tap()` in your test case is invoked. +2. `TapAction` in [`expect.js`](https://github.com/wix/detox/blob/master/detox/src/ios/expect.js) gets invoked +3. `TapAction` instance gets passed to [`invoke.js`](https://github.com/wix/detox/blob/master/detox/src/invoke.js), where it gets transformed to JSON. The resulting JSON corelates more with the native code than with the JS code for better extensibility. +4. JSON gets send to detox-server by [`Client.js`](https://github.com/wix/detox/blob/master/detox/src/client/Client.js) +6. detox-server forwards it to the testee in [`DetoxServer.js`](https://github.com/wix/detox/blob/master/detox-server/src/DetoxServer.js) +7. [`DetoxManager.m`](https://github.com/wix/detox/blob/master/detox/ios/Detox/DetoxManager.m) invokes the [`TestRunner.m`](https://github.com/wix/detox/blob/master/detox/ios/Detox/TestRunner.m). `TestRunner.m` uses [`MethodInvocation.m`](https://github.com/wix/detox/blob/master/detox/ios/Detox/MethodInvocation.m) to map the JSON representation of the native commands into the actual native command and executes it. *(8)* + + +*NOTE: the images can be updated with [mermaid](http://knsv.github.io/mermaid/#mermaid). The files can be found under `img-src`* diff --git a/docs/Guide.Contributing.md b/docs/Guide.Contributing.md index 7ca7d46c99..df2852e4aa 100644 --- a/docs/Guide.Contributing.md +++ b/docs/Guide.Contributing.md @@ -1,6 +1,5 @@ # Contributing to detox - ### Clone detox and submodules ```sh @@ -26,7 +25,7 @@ npm install -g react-native-cli For all the internal projects (detox, detox-server, detox-cli, demos, test) `lerna` will create symbolic links in `node_modules` instead of `npm` copying the content of the projects. This way, any change you do on any code is there immediately. There is no need to update node modules or copy files between projects. -### Install `fbsimctl` +### Install `fbsimctl` ```sh brew tap facebook/fb @@ -58,7 +57,7 @@ lerna run test Detox JS code is 100% test covered and is set to break the build if coverage gets below, so make sure you run unit tests (`lerna run test`) locally before pushing. -Alternatively, to run only the JS tests, run the following from the `detox/detox` directory: +Alternatively, to run only the JS tests, run the following from the `detox/detox` directory: ```sh npm run unit @@ -94,4 +93,8 @@ To run the e2e tests, after the application was built. npm run e2e ``` +### Architecture + +For more details on how Detox works under the hood, please see [our Architecture Guide](Guide.Architecture.md) + **NOTE: The updated flow can always be found in [our CI build script](../scripts/ci.sh)** diff --git a/docs/img-src/action-sequence.mmd b/docs/img-src/action-sequence.mmd new file mode 100644 index 0000000000..4e431daf0b --- /dev/null +++ b/docs/img-src/action-sequence.mmd @@ -0,0 +1,19 @@ +sequenceDiagram + participant Test Runner(1) + participant Detox(3) + participant Detox Server(5) + participant Detox Client(7) + participant Earl Grey(9) + + %% Note over Test Runner(1),Detox Server(5): Runs on your computer + %% Note over Detox Client(7),Earl Grey(9): Runs on the device + + Test Runner(1)->>Detox(3): assertion / action (2) + Detox(3)->>Detox Server(5): native code as JSON (4) + Detox Server(5)->>Detox Client(7): Websocket connection (6) + Detox Client(7)-x+Earl Grey(9): native invocation (8) + Note left of Earl Grey(9): EarlGrey waits for device to become idle again + Earl Grey(9)->>-Detox Client(7): (10) + Detox Client(7)->>Detox Server(5): (11) + Detox Server(5)->>Detox(3): (12) + Detox(3)->>Test Runner(1): (13) diff --git a/docs/img-src/build.sh b/docs/img-src/build.sh new file mode 100755 index 0000000000..15bec021d6 --- /dev/null +++ b/docs/img-src/build.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +mermaid -o '../img' *.mmd diff --git a/docs/img/action-sequence.mmd.png b/docs/img/action-sequence.mmd.png new file mode 100644 index 0000000000000000000000000000000000000000..449451753b22fabd972d7ec087586ec9dead6313 GIT binary patch literal 54129 zcmd?Qbx@p3^fow1aEIWo!QC~4;F=KJ-8Hx+xD(thSa5e4+@0VSbZ{8l26l4q@7C5= zwfpB*eY^Ws4O7#+ZKqG4)92~uM5rpupra6@0001VIa#Ss004Xq003)_ga9oWg+;Z7 zejz)_YP$jesJMSWFo29KLI8jgASd-+-81WC-A_;5{N)wAm=s8tH*c1ikX9~TELWuF zTPs!1;y&?oQ?)eQ6?%rSUc0ib39-=GrEg$9l0RvS%!tf*GI#yZ*H7`WEyP0F3PHYM zZ+9Y(Pj&VAMW7FYh88(Vc@EmyqRDRE&pOW9=U#LZ1GQC|)~%kpOa1qB{5H?2`WF5_ zkL-t}ZXE3Yd8&)yQ~vvhCof&ie^vU+8Nbs}|IcHfgv|0^1+b00QN({WG(W>C{8ytR z14rw>3fuGlJ9beSQ^Nd*b#(MkKXT2oh(0cM&)K@ zDk8kcjLYQWs5~akj&(AN(*%5?t+FUpxRR{d`$hBp(``=G$bjoD3#qt6LzH`ai7kyu z%QgxPKIB=Algb@kPrt)m(k8t}Rr{;@G?Tgm@< zMz+epgG?`=v&7bQ%kL^?hK~t%bD$>?;P;pI^uYC5gn zZ|f#sTf13_GOR@%xg?K>2nedN?vHCJ*jSZu*)#(+>k|oYpAo;R$ZMsxeEaDz(;rv< zN)#`j^5HxYL|eSl1kC8}Ccm~q2JiAn+xe!nXRFA^?(Deo@^APvKy1jOOr(fiqD8ga z1>Ua@4u+KrxfSVND5Z(cAmy;zBDV^@n%$Kcs%pT9y<{KEJ5mNAuD}0Qa_nA})eqbo z24z(^eOf3H6>UTKdGFZD7Qr|6W-R}1xsf{#QnU&CXS0jDoj#nq?t6%2(C-@WK$4pwt!-aXbi zMDrA{T?z_&oNh}P$28S?yxY24J6&$tsC=;(fV8>)0#gm7HmkxO2MQ0)avIa7w0yp` zzSTa)cIadbyv|5VUp(D)yTD=+_8QpHoqjR~44Q=g z3Z1{dd-E&j`0A7JOGRt7)6<0@x&yPtgqi_q*}bj)TD!k()A3jv=d95dj>d#{Rtw#E zizg8Cs;Ofl(fB(^x7_tlpB8k;6wu|G0nczl61f6(GEA2|Q%;fS zOZrj4c{M#vbz1i{a&&8Z=FS(Ay%#vJ?SAL^RGJL^z_o}PLdzM?z0gKvxOR6R{~J{` zx3GEnp4G!b^Yaqg9qXL?2Ya)@&DHV7j(Zki11c(#K+~7%4a^_r=kh;8MQrqoH_(vAJ5gr-dP?6h*4K?@w z5W9!&;IQ4a9&>!9CN8a9d#x>V$>a$uS5L81R^WK`bpO$eA%>w#*D- z_0Nq1ub&dBI(AsOI=dMh4d%K{HA)3+NBFRef&cQr>Aw z+3)PCAfu^T(&FXKYKb-h1j>j{Bw}LZ`!G;+u@2KgZUoIzPZ*3n1vCRxyIaT!__5W2 ze#}&yWn5lwCo7VOt}QU-=JtPdnu!2AYr}T1-YW+%SXwjFg04~AyDZ|C+l zN@;l#(CTzlV6d>JC4vkc`g9Cp9VNoN`vm=bh2WmRV6aDd6C8Q8v5Qu=-^VEa^0Gc|Fw|Uch`PFo?dGt_@hO@6bxe+CdfVk3ZkDDQ^%gAawTb$i*Qyq1UG!v)fFj_dO?d z%puOm6*9LCLwW+PTqd!yuQcc3oW)hSF$r>cW{67z`n@}4p2Nw`Li3>%s72e#cWJk0}v$Zs;X!Msi%Y`-eQ@-B6V}e3si||PnT#znA!<1hH zPy4(`9wxRvBmweG_iL&1zjsA#13%iP+iUpwB;k&8Z2 zHZkD5dVS{G!I5d}RB7IsEP4c+Pw0O%A(s#+rP$;6$t*#8ca3f~+|6h<2<+dGBRK>` zZI3BfVS8ZydRP4%RUbl&mTOMW$=5G+cSd%&(Mhxa15tMJxln^>Y=b|7Y?Z(@mH7Z# ztUta^NbKY96bS++Z0m}W&x{9EWgeh9`B9CxTi@{VDfrC2CT$y8|;9#Chf zxK~fSc^(Q}MIUI45k20=Au{=?FfrxuqB-B>K^sd=TSyXL%gDREFu1RciABBTXoW}A)^8LlCu+T2tu23XGk8ME&5(?U z;=8;UYKLj@aB}Pposa+OBn{qlY3%1K?^4lv_*pw8C&$>BpqY#?FlotyMTiy#biv=G zW69P5<{m4*)`MRvj<2@M;&e0@Di~Q90g|8}q`JcS75BD&diub5&EB^DA!JO>nIZ+5 zHV+_deJhFSPNGeJW0dW$xT%&}$Y(qKM!>h}me=y^jxraT+A9LVNCHiL_O>>Mpuz1k zyyI;OO4>qp1>1%#fYv4hUk3@*R$Tqikw_O4DXX^AIGW7m=pUaeI5brFrT(Wk^FZuK z_NmXXW2mRvLh;|#R1)=Jzvt6LL?6J>onM&zu2fWVdKudIA{1_ zQa5MGW!5{U^={{&XSU2fMRnZTF6M0YVZ9dTB_Y8;AEDbN+=J`x^W{M43ISCLO^4={ z+ZfDCPHk>rw4h>yp%k(o5;{68rLetFpQXKv@8pEbSq{Y*%*M!)%6khG1ul0%vDVzk zCcdVwR=jTqh=_}mCr@tFF4v?@zSp87?8^C;a3IFKR|#o2Gd8M{hVOyYY-=KRIQam) zPum9`JTL3+WQ*EYpLT<`(SuUt6tks}JZlTpXfp|8{X zmg#l7WGEN?|{GxONq@xVNKSkc6NwtM7`Le#!G=d)X33 z5S;`3{=OtJWEln@XA<`2fK+*xOjWfm>YmZ{9_`yyI{&^}9qMggp(nYkbLzZ!O*=TX zBON|Wh1UMchm@)EM55VLYFm6{^G4<8li~4gEdcLqv^dX<;82e7i>>n8oSVI`$Y$(v zJCF>`-+Sj*sr^bxNfP~{9$AZGD6y~IKFX`ZrYGyR4Mh=sh`1(I9nK4>+Sb}PINFh~ z3UPN$+R91fy$9%_+%9QRrNdnwHRC1>0gKXu>nF5btUeDu(x?7a?U1R#r~0Z%1vtOo z#G{y@7594cu5jgyYM^0ik!>VD%=;P$%Brq zW47=3-HjnXnz>(U&70vHr8InULnTf zeQAw~*I-PIaVo6g@Hm<=*o9e@VK`U@2>Mu6K%Lz(REl>2(jaQ~>^RoN%iTzoC7b|p z0GM$z0r(T#+NO&?fJO4;IiFjqhKc3S^*tEP6lT0-IgVuY!g)OCOybmQ+Rd;UtQ9?d zppL?l`y*XjO8ICGkhFVN+`zcECL(@+ufC3s8LPZk&?mFpMwQA5VcR+WFd!lDq0h0x z?PUMOxk8ICv!?2_+odg@+YJ#@`VQvy$~j+``8w*i#o5Gq4}c-2C(XgHIeVz_HJ?B2 zhZ)bkbLrEtAu#@J`bRqz&TWRL0m~&{cvuJjthW(^`q$Ui^&@Ln^xP$d01n2(^Vmkf zsNSG#GL7SOk&lc61y{~E&Nr(URY&;Xe5h}I);B|w<`|vRZxJ~l78uJ|N&v+G7{-cy75 zKe`lSa>w@9rficvKw5bgiA!OHm0^tcl&O_b`=)xB9eu_6^Q)}u4<1}F)Z2t>HzIen ze+aa)1_BkD+Jy;l|p~5qP8CtqrK!Efadkb2(O|;d5iXcJES-(-ipQOV{4cZ>P9ektR6K_&My3=$#>*3mY9&~M2QOU*Px*qPJdR+9ZI3Vtrkk5-AaCqn_ygf14PND&a1vw5w7TEM#bDH&fPNe_| z0Q_XvTnNXiNZt1Wrc(N?04OQZ)b@_2)>=@T8I#(ijea=oi(13K=ed4*r%`rP&^{-_ z>K9c+G$28d^P~i63}Rx0#_=Zd@<*@Vj~HF{$j;4_jy7er>+@}N>|1XLEs-e+vwZoF z^**$!q1w)rNN2%sNS5gI(Zt0+s}7Yhe)|&87F`zaR0dR8i)knC^Bi|JJ*v!Nk5NkQ z8Y{E=W+jb@@|DPNzg#16m3mqWLmO)E;7Ps z&afT7;oVe)r2THfnhv1l>;XJ!CtSSiLvSyNYGt2d_e%Vkc!o~vMlWXJrsYlSEd7utXg=rX~}8_mFTEcmA7_Y&Pfl6dII=)=L%>xo-QP= z>|}Kajx9S<5uL<)I)$?OJla_m5cGwMvFGJalsFlACcU~R@S676=7!Q`?Y zM{ivC+U6F$Q{}wZ+&t*miTUkjGgfK>>+IJRlEfxkGa*6Z8$sWrv{-`a00fflNA={0 zv{W_F%x#rhm)E;m_9_d_uI#|L+gf@z&P3{H>ko89b6)O;z&ysG?Tafm&Bcu=RT&xK zC-e>0Hx+^vBkvHTxz4&srUEFcw#AL!9kXt_-d`|Cg?-s*b&%1zHo>8Z*QvKwZal_imt@qqSwGEP@3=K@>IRXVo^Mn-5*Lh7n|juiUvcq5l_V_f?HjEw zp^>e=n^zI>;gwIGdHYUz?aKr0y7v)OU8wR>3+!2!mE^KR zQvIqi1G_0<;ewDVh%ud`aT_HIZpGH)+HE6zdp)On65Jd=W1OtlCBRbhICOw_)iuF; zK8Wo0`gRq5dOrpmkngzZZG_V4-p7zvZ;x?b<4Lm5y&N6Gn8u!WidL2R_aS_>3Uh3Y zG0=Q~{oc`XOp95i+Z%avXl8bfc$-*jMo*-Wl92TIkBgPthw=3f2hR1J1o!*?cP_T6 zYG?{eQWn01^;N>-QSnuwJp9zx^lhzIidWL3tpWZ_&5PByx4w|*Mp$KGU5Wd(EE^+E ze{9WBppc13LQeg&sx!vsDY36_jPZJxm~u|%eoL*7d5kss-cV#|4(${66N>T-@KUn# zJ0T-9s*T1-v+Y-p8{Xt({tCms|Ms(%$#?P_8EYo#em_2pfUPugO*J)BAxW(Gg0SgY z<@)_&)IFGW{pdO;MLDFCKSx5uEp>xFCGP}vvV#Thoyj%MoVo^M3#!s1=H$FEa|~Y) zf=E$k(%Ns$trok`$T(x-M+yk9w&`#E-M?K%=JGyhIkYw^@5czIVG$@x&$4a!-{Csk zttygZkwTCle&6dNuU2J(?9GH>kFulP*Sw#UerS*Pu*U`_s;xlvC1|lpd-DE^vdm+! zqjJy{rPx4ODI|QX{d3`QDI6)omAvpK>AnTK_HVGEbO{Ymx|(MhD4aY} zo0K0V3@n}9B`RfiIA;6t(Vcmtk;}j{npt)Y09pE$8*Om0`h#cS%8&M$y2c?T@vrk( z3lMYGkQ5i+adA+p>7Z)DGb%mHatJW)3b*|J5{<5=L-FZW`dbowEUn-}yw17ytwmjV zf0&s5b1k`dZl$nz@thyG7M}yc*k~Mh`AJt!-ZLpW(8T5ChB48xt6=1*T6n(ZHE}Gh z*$)?axrX*gE|m0zA&69*#j@uxv2c>ltNP6K?zu(%))50H>10O%^;#fTO)GY@PS_iA zBEmVc`|1kF&c%EdCCQ!dWoX&%-rw`P905sOtX!q|*MkRRu(_s*aT{<+-X!)?wP&VZF zdYS4G_#ohc_`v`M4FVxitm56y3$B=WjcfW&#dA@PNvD0n9zxEmDfDt1UVGr*8>FVLPDUG_hl)f^SiTVC(Z?0W;dVv-%@|ctWz2B%cIUr$fc^sz$Ud zoN}@&{yX+&iOu8qi-MDBnYD+Orqk z5@9E{dqi2a2R!4)H=Ya!CVL%kR5xN|?bR!Zh}&cQNyG4B8`=&&pTNYTKrt(c&(TNg zQMpo`w@SKN3oF0BbJhcx(bjfpJOg`qhP*|Z=a2qCG5Cs<1q(qp*0>3MvlE&fwVyap z)Nx0_@xc!FbC|fzGXngSaY9r{^upH-$P|M5%?!z5flegpF-*vYTs4BsAoOMoFy9LNytCijAv^MBx)5p+fUJs+6gkJ^h}yi$;n%l@doo&yE#C@*U+L=0W*XuJ**C!7 zl4jO4nA0onFL|JrNhz*&+*xFq()b=dI$J2d)|7(sx=JSIVI&_l9HTwug(hGJ>3}g< zI+ohzL}F0-mX66@9IO9FyEm+=n(=OPs^UScmmLm1$j4p_6wl%=@}`&;qGqtJ1`Crf za^NXs(_7;&C5=HV@{Cf<;wk2%6Bu}(d1KuS0fSfo$u-*lV3M%^Po}CEKtW;_Kb9RyV;A>t2s`2ffsFky4wj)qCUY z@JPR`rBY0%I z`>8FF@!$O8;(3UT#ODxhX_##AOouRbZ;@RANU_@eE#$l)W=82km^Y{`>vlgCQkju3 z&SdZYkPzbY&dubLjfB$0%Gl1uIs^SejH0pCnnOjpfB!-xBq174;@LTDsmGz_g{9p+I;|P8Tx!xA6`bzW@hBq4{^bL8oKOT4a-Gh! z>m);9H#R}ojQFkF&>LP_CDelURuU>IdPzw|cudld(#YNL`(j>>bFoG5zdyT3ew_zW zGpPLZ&YOQY>-+e87ZB|gYi6|8?JuQ7_EBBk?OA605jUP!riJmZwk}!-5=@K7@;Yw; z%;;mc7ueR3FgcAe4mD`_f@JkbK?~czL7T4?)&3NnTVgf?L^SAF-gjg%zqP@OE9wLG z1fT%u3QOiX(Ksvid>tHAw%q8j3`aR1Zr~Ye)E!Y4V|VMsY<43XX+w9727-#PcngK~ zNmZoKI1PJF`=o1WS7p^@2I+pwVa(6;x1b(~C#037pKL`FX}Fp-MBSqh4hPQw+QZx2 z@@9ZBX!K0h1Xxm|fegp}ncHJ?N!^#UB~k7TQ0RwkVLXx^Yj{%YgZr&;5&%09Kfc}~ z6kAF^U?7w?DjX>|p+m{c;+$I8Q5=3lWjjUx3qgXP|HJW72zx#EeM>xAN_pes<3|Q! z58v;F!TdGTu?ONOltRB-<}y>8qXJ>mcx-ETz`F#InV=Gwd`t+=H+0)NlFm6LM9|J$ zr4Qc^b%0bfeM35aQ0f8|M-3)+K`y=9n6XCxhVBm89dPw#rwuMK^^~4>Lzc&~7-~$6 zMLybpeb#BBdqKI+Dg?!R%%ZWZqx{`5+MB6PoGZo|g5xk>;^gw*t6pLd zrJw)E)IZ5Dg z5GwMTP9t6jGq>~^c~nq2-^0G~PE3dkvgO)^(Ab+SkeJ@UYa%m7BH?NHYczB*h`|(z z4M8`J{$qHrsR=357Oh-7RAHy3sNrY`?~3!_okY@Eze0h{6K1EU_vjNduN7n36rK5E zN3{hX2Mvj}wRFJ@ZV!O{_dwGL7MlIKxzDolI#L$zDYkK5rS*d2RbQ5}GoKs|M6CG2 z#8-MM4&tR(55k2_kKaovX7pubIcmpWluK_HmpXgkVv1WtM_XK1x0Xx}W)Eo!(*xV$ zvr21#RTBovB-FWSW@pw%vO606W%8(K_9lu!@SY+0em*LT{SlX@q=Me0zP?s- zU~eHr0o|na(4uSG$rq#saDlC*Wx5dwz5KTsEFC;()!f1>Bj;3SW$!BNg|pJ|J#UaAe8%K0UiVwg zZ@G!Q`nqHurkmP&x^d3Ct2=+@a$*?jqCN&cCVWEJ zy8wyELVCZ{PA3L->@{{OiVQDLmr=UIn1y+ZrVjcA@5Hl9eGGIAC~mH;?_Ye7FdRDU z6u#)$J#TzHIXKMVfwM)H>4L!cuFTfj=8+WmPc1Ua$B}~UKE4qH;es3n*V~pH6cyO% z9s1O85auB-{G^7-KwL3RgVXJdmG-A*%Sj1sqBWPO5?dEz#_xL*$Skc!7?qim`g5Pc z(~`#?m)bLLjTPwQdw`Vep7a!_8F3^koMMjhMk50YvnIPHYOo4AK`B_T(1M~ex_(0? zD8mXwW_q6U!MEM4rM*26|C(ToBt&+x5X0m*5!BS{sjsx-xa!u-_FgfLh5#-*HV;WELKiU{J zd*1(lh-Uu_vF867x?JTvLk)C?=K5cLWtAenol|jo*vqLJ2yuJZgVLn@#UW-5B&l2j zKO5jH^Yzs!zUTxlU`5#w6wz6s`>CtKqKb?ErNE(LFP^yX2(NTOsbo;yg|f)L4F1f` z{rAV;cWalrI-RrrGTf-QGbRvTUjFt`q?MGC$J-E<2ams~kGQwzbXmxCyzTdLMR9*7 zY_*Cn=TPpPmWZ2t z?GhlYo7fuC7%j$IF- z+?JEmojx9a8@K{nlksaZH~#!!ub0VJc^vQ(V#4L8lF28g=T!t2i(tz4Bk$t1P$e&LK)T(zlR_t6b`b3%`zJ zVkN+jCy-@&Yg72}n`Z3U)~k<|F_n~Id+DnOZZ`)}HT>s7?#E~5{VY0Bj669HFoU+j zDWZL@V;&34K2x};UiL?n0AGQgCVSgu19wruD2ACc>ILn8sI|MFO0c!4H@Yu575K?^ zzm7O7Yj!O((Ewgf{n)(S#74&6{OQW~V}G9PI9gJ8xT;WBq~~_^7msz9IE;PxGE)9y z*qX)Hk7|zk17NB3S#aO-EgTky5fk#=z3G&0f1Tdg$ExOkCN^9IwOiJ2?6fL1>|(~H z>$NMjNEmmOiR?5gG?*8pErH8r&3lXF;sEjJS6JiP(v#)-Fi`KfvY3slD+S@+8l%>L zq{D)NVzEz4d9(0N_?j?~ZOm(?R@c44qHdI2mK1x^->F@vJ$W?o!LS#js|IeUguV(NhTg{Ts42F6?TA#2~kfZN7Vi-Ty z15J;nb7D1F?4W?s>=!|;6L*<(11T}0DOVcF3{`|0a--!eFP2U1?CAryDH_`Gh@xgw zCY{4rv!9^-X&)=hSi2SF`1MKN=C!^rh%WEyRyp5VUOM&jNq00v*1jc@5(lOrCNARY zrVlf&PxPkZ*YZ{0iftQ))Aj3_QcQuIHm`Qxt#$;D_i_OgUpmvcd|*B!zTx%VW}!&@ zjOGt_o`2_+Ygm)Ke_0X|U}8UU<+6!O+rg21wrNN2y{%y2a)Lkm`b-bl@#mceuULFn^SuZU1XM7SZ=u{)zt|dQ!Kdlx2!8BnETDRaB+wOfurovoq7)Je1n8Ioz)$`*&ngw`WgNHD}*F3}lQslE<2#P71kgG-dsA zMiq3aSh9^>cfZKB6GNhZl||5q5#h$|^ki=LaCC|uE=#F5Cjl&8w?-T}o4}w&ci?_g z%Df~NoB5Y}zRgEhvx{S9dVEO-NTb0W9@*&L9w@b2hv2IO-@~as&pYQOiLORMCmdl| zA2wearQJ!D`KF)^=EuWS+&T-K@XIxdm%H#w=U}~w4_|52=jDw03~=Xj?dp~1o{BKw z!kOjJj4R#CTMj{Yk%ejxQ?8>~G~Iw6x7cAv8z`K)#KA2l#=96$S9?|zGALW*P@olG zpZt5E)XdRP*^D38-ABxoz(VMDYiCJ@KgXahxsrtMM|ORnY&~-Odhhq%S%j&Lp;ZqP zu5==o%<>uevmC?W$3ENL)zh@Lk9EH71(S}Q^6ZJo?dGhG&3@5#?1Hy*LtVw=4h&XS z0;2jUT%=n3LCdSr70WGQ4%IgX=NI{DO7vZ0s|tOVI{#Aj*NWg%^b#HwGgO}Ez#V+9 z!C)SNOmu}qq7{Vug?Hw(!Y8*}vj*uCZ58Wyx<&`6)@EjQTb1b_)>%xAr(_1FbMjwB z<2S@&d20?v`d`UWB*2qvIwR4x-?iQAZ)alWkqS0*@GYv%!WXBrp55~!8EuTD`Cj8cByZc_D<^%uM z-zF=S5qatpZ)VjMC62#%x>}r~sRRQ>wcxEI@OgGgqmLmR?%3kW>L=%8*&+>UM3u18 zMVYc5`X9}Q(|Cp0b!VNb4;@?8+Pdv|pH&9+vAH-gw1TyK9+{ z<`})rd55ysgPrJUr)POLs)g#jTfKC@=ENsd`T0~`+6WZOw&|X6UE@CnglUOcJwn5@ zAs|#_PmBoK^y@Fdw>meW5P$yDVA8mR;XBONo^5~`x+N5_clIFqe%YEM-P`%|-HKe! z28~Ji;$m6tN-IMgWVIRyL)owy!zRBpEbpI^&Ky(vy>pP=$nAuZVUN_hWjk)k@%ww_ zg?xg4CKF!_jTPAB+EbONEWG^Zfsl#y7S?O`3Ss_uLyKzfPEdGjhtC+?v-v#2#zuNj z(RgeTM_h7*m)#3xPO~A&qGvjRkQz*y;>&gW6`u{dWN#Xu7WQcx9Dz+LE#bxoEoXwe;E%meVYDpaHOaGSI}Zs%3?0dtbcmg+Qp zr0|5N7(G-BEEH7|D#)n$`HjQw#J|ecj}DD$=neq3pYC9tHX9bbj7!#x?YHEb9^u+{mWlz=?!{4wBAbNU0OmG(WorOSfD0V>)#y&LW&nB%9;&(3?)Z2!p zpDK$Aq05YgHe+ zx8_IQu6}pxs5{D2+g-&qV%<#^tghRg-%RxHP8+hoIGSjQ7^GeUh?zSiZ3%f_-}X7M z)9`Xu4(cfK@lAzW?00yHh#ym&p-T$s_YhfDBd#e+iPx;M(gKr0i;iMGrF7N>bG4II z-HHQwQ!Adl&MBQN342b7-+|5^2I9!|$v|}0ZZSd>e%0H z=CmL9+iUHZuQV2TD6&`!vKx;mY;A?xuRXX5IA7YLM3F|sy{1cjFwOXN{~e{Cq>;^KGS_Q6$6)Eyd>6F$SzR3} zi;_jZx%*?=9V?Ipk$0@o`q9JM+yn)*39p9`Jp5$i%ku#m*H>vfEvSX*oRQpLB^0dj z)>&BXJ40<+bMW4rm8!^k+JB5gYekyLkrycGYxSm z7MGXBCW`CiTg~WVMXLYW$P9UCEEP{Igy|O=tVX3;le$gs%NAgZ;SV9-o)=e~-#-1f z$qB{JNFSwatcSu0J`v6ItAt1a$3qWLKT-Yb8#Gk@HiK^i-X6dsAaLFEyTc|YpG?*? zI6P$fH)Br^>n|A5pvspSo{tefM-x%>}^ zP*LqB+#Z(XYCt+WIy#ur=Zlp{+T2e^Zx#(z6cwWpZQuPfxLJ{;?gR_V`ej)amAkLJ zQaY6s0nhQ!@E1zSFjmeLn;>!Q*!piASp;-7h06~Q58zSe>gm$Y4FB}fAq~9I#VEniGW7f4ee%X-DC4Kf92mP@KF4%s_*}>xAt{T2_6B#yN!uDm8X6gjZm)K zAM)r7oi>zt^P_AL6$M2^Tl8PiSQJ3PCt1{aXrnm+FAq9$%>R}v#Q)7%Wc}TTDSmRu z^lx~lhnMQr2K%qXp?}e#9{1m6l9Kx0CdILl@1K0m2A2hsx{dXzMh^_CLRVpx#bRyJ z@rj=`+d83WDEWJ2@geKlUcReM3Z0Ls^amD_eNYw)-XCvUMArvU zdn;Z_%GU9*!c*>zQMY~&^0B?U4qx>JeD))nvBZyhZc8eD=D0{(M^jZ;}W%^{#4rT&yk;+)p~vHlw5D7m>x&-BtIG>qU(OsK-2} zCfq9WFbcEYjItZTQ|%D^cwCznI!{Uv+Y!XKXRf$QPiBlr`!INQX*-4eDfy}HVsUe@ zZoy<|H@ENTB=zvH&_QKFFDhUcmLEq;BSrM>*ovgEin!3`$P?c}=Y=hfN6P$i4km-x z%H&GpYD?D?8~u%g7o#jxL*f$9c6ddCec^fN5EL zvlj^__u`+T)s#}68%4kub~gTHmAPO;pJhG^wzaJ`n=X5j$}aPvTrC5uA=1`vYn(FA zD^lo41($QuOHp%%HqEH5H@J>UPX3WH?myYK&DxdFNL`nv=${CFGV-Bu2(ufLv=yb- z-b%g|&dao54+EtMiLJ?~#jG8CNvEi)%E` z=iN25PoO~@!LL{!XofiX-I!5_?qDe`uiDkgzxeA=lSG}QDOwbFc7@DWiw=dqHx5RR zq`lo!-%#=+t{(~RWSKMnS!Q+W$}%S2d<9?he4~=dkv{(HZnGY5EMZMQ)zz?mGZZw4 zEqprCq8*X353~`6vT- z*VyF(EYRSn>FXYhvac1a@jr)t#NxC=c!+JrFk>?{=?BPUBXCoiP>-Y|t_d)av>xMg zIWGZvnd2;%@KVgletogHYYT~v_{Flb^s@gfv|3l=wZ$!kMmYSZCx}SEh>#oK?vE{l zkLcZFN}aY~qS zRhZ25*rwuCZetN_cgoZy9R;kD<(jQj*nI900Tx$;_=`UhV8F4e`Y}Lf#O@Z6^5*cN zQQE3?ETcWA@uPdo6?W+F)y|Mz(7vi!^Bi+w>Xm;ggZ@e9W_!E8 z|9=;myYJRiJXoW}$(dQ^zex<>m;CU7BU3R+`%+uX74{I(K1)nPFL|kUb?ndAR#OUX ztrPRC(u<;kDeDvSkP7eP0-c-T%}4r&6fUIJs2}b%KFeRpvpchTxrATVC6Nxz2Msia zN0;NcL@ON{5^ko*` ze!_^W{oI$y+MvVnH7)q=U&Q90c4%M(T8_;52!c)}i0ipop-qZ_AMyDLi|eR-;Nk>g zTWwG_9)92b*_0dMFW#oBSRM%dJy2M+F`BYS!MX9ejWq;wtceIk-oQYHoONBzdQY%T z-DZXgeiSCiYZ92wds| zjRKjiNRyZR$s47MS0=X84M zYfo|#UvCf9O~hgjn*-Isbsw51@fW;rKb9C3?`&~JeTi{RKX51!a&`sqs zbrx!UP?qmSsJTA<($PtkeP7Sa?w-LLOVHeQWC6LRI zw`JD*4S>K)(EqO|q2H5x?IM zT70oohu#YjPXr%sH1F7}=mR9;blWw&g~DUwHG|gs&h!v5+~J(`7cU|wsv-*!YvxnQ z9v(@z(d(o+DH+q;#xyvD%n^NnZrk82u^g)`6!CqGgv#ppEtmLOGch8CZjOrUwjFor zjVFLHD5Dz|38mot0{NOu3}%h(68Ib)C$`jm$=|%qDcZr~&$QlDJTtMapwncpG9Rh^ z9n2>44s+5cqhj^-TVLWp!|zj;Q;JV_edY`TNYhQI{;hmm7S9nZaS=0?D8NG!X=JD8 z`%<2xk;|WVUp6(7DEzj+b=}m4|2+b`H2rgc6Vl(TG_AaIC5W?FOPFiSlC0Re4)4VF znAEuxv0zovc$K&3YS;MRoSuo{Dih2Zex;x5s=&9xYHky^Y@UecllA2in2W z6qFTP$m_lFtvv=zP&?8KRUARM@(L+~4!I5Td2X={vZfb(XnxD9j{|<1AY2%Y(o1g& zW@n!afWIJflC8M%sycb%W}?z_a{X*e!csM}48ldD306L>&Rc<~E_97&dm;8&nEmm+ zn(B~f@bJ*IXJLI{R8`eEY96Z&4_N73tsBpJpuNsA+=}nzojd5XApY=qk-O7z{^!+z z`TQvX-d`0(mHT^(R{B}HGN2oD6=Si z3Blc63wH@_0fKw55FCQL77oGP-3oW8E|PQJ_v;?F?~nd-dyP@RpsMy>d+oWWJoA}z z(L^ihjZj`U=tOEA^Hx)-PrC(QSoTzt@5EmvCEcK9-`it*ZAAtIwg`BIm%r-c7)2{T z`N3d^vw*>wD;uIZ<+8MP7wwm!I?OO!NS#%5EgYGlP8NBsTjl!;6;Z7u=fXR-4$XTe zGuBCP8DSdNaq|F9^q1aC3`Y#O%a?Xf0={&koNOhJ?jEPcck>EIumdJDo*RP)Um8#y z`xoyJ)Myn}d)9EWyFWZhg3s5R3oDxhts&N!RJq@aFCf1M+lE5^^keGWC(V3-%{%im)wwC^t6rM>D`wpf#R*q+$=Awrx5P$WDTr(sak#z|bbk5? z-%dnF;Ah_J3{Q}p*;QnJ^U)7sB10Qjbc*12r_)ITR@^YS#;r1{IU$B+v<9N-Jl%&u zc=Nb6dPBfgpnpflSV4YiZ zpG-^Q;(&W|)>4?d&G7oIyZ}e&V>%j%X58ZXc3E%`YlrSWWb!y_qtvKt;^2PK^sS6b#_lfp` zP@WybCMvWf&1o!0xGKu$>}S&XzKcxf3Y2QgP^&o(sgfAax7i9-?JcmObp_IV7zq%=QnE&*nbGdoOIWDy={K{FV3o$QA)f4d01N_ByP4SfxjSF78#O1qA1=W1`P zNyielkIVb|_`SQC>|7~c!kEy#fs>ng6@01P^<#%4tf*|T)pZQy7EdzK&HDZJ!}k@1 zAEEE$q_hVP83|;`NV}0LEA21nSMYIH+2kWnK0ff51$%tJ>Pktk|3;+2j2|Uy=xNP3 zEZf$VsrEv2y(Q3sd@4Asa!^D6x@K=8WNbWebCwkF<-#`rnN3xnvHGsuL?SW547Aw4 zeM816azo@2QvNhkB(Jjb(r%_c%|M=_zzXY4Jc&~c_fB#8bsz9H+5~@RjXq$r;~M*H zKHlvRwf?beSljH@AIGGJ7p28cy18biX6kyy7f_-dz+eW0EJX0Ro?xM+%yQzUc6onU%{CF_fDTUiNJiiT)P#4l5ez8VSS52PIpGxywG$2uwy z8K|)5DVHKyo98tz}-W10+f=X@bV3~>eLy=b2g zq&O{%|43YW_|qVg{8oC-+`%&>R1H>e4|5N+5v8Zn^NOH5KCS8RrvM$dvx>w|v z^30Z(=gY}O_i_qtZf)wjx`iH!d=plM@XMQ#m)C%)hAw;d`}z%sQ_)<=YzN0ql?h+% zc~h+`NMg+*o}Z=vejiNehH~Bq#Px_*qlk_4v_n+-*qt(pfV?C*Jo1%r%%w&3F8NW0PEMD9*T+y0 zXQjlIf#E)Jo_uIA?azJR1?&D8w#t~ATG}nc_&Y$wUa8Gi&zzNtyzlX%tNI2zg(0AF zK<^ow;^gh(9Ofu4WB3%Z)Z{wR=xoLBv^zGI6RJIabvP#;fzMPiXYI^WM)yI1j?Uk- z!{$Y`YN?l#OxVH)Hhj&XVAcESI=_T^dmkV!BYtX4LwLm)$L{b^=WWLI95=TXmvidF z0{q1GPgcwQ*6ySArd-K4x#(E6npLD`#N|ydc3kN?#v{3FEB1{pG5m^m1)@FM;H~{z zeJZ*?__LH1msL&iD)Ms8YRG;tw_x+x*7U7Q1Q~MU}Zw%jlN|YZdHWM&|F10 zj9IMTKyqq#BqM?NPMO)AAHXGS$`HKVl3XASWwMMEkwf)oP*4z5+m1H?cY-mVA;Mvv zl~tFfz43fm@eoP^B2p;$8S8;-G# zI(-@(Y)~wq2oG<7UOm+aS6Wa{2^-0<+K{=yu|pdW(n}M^B@&^gy2-9D=8U9bwKm_) zFc-pBB2MHU-Tw#0DpjmSFu^FZ8+I!_0nbW!TAnl$X*?*QpYHoILfoY{edA+6(pfp>-#)ulyE{h z&F$4j;yctRgXNzpJ9Mw1mK%%DYW`0@C`Sx@Ce8P4K99+KK-z^`n~lx>cy!V@s60r; z=aT+uh_=(Wae8vx1U`elu(7c_OY4?pAWx5BQBgL#W6$_aD*W@TQh!ucv2PEjNh&F| zG=ml2TiUO-`=ew%#%n+>^&lUlq+S?-qVtst70_{?sS$lWf8bu)0Z#d=(*i1$hR}P4 zR~8f!GSTMidv^_vF(6DXm=pc|N2a0KyXW7NaFDzNh(kw<=QX$f=jWA_5B%HhZRfSH zaHc;T($C(6=SjK$L2p9)_;#mDwZubSKc9N@F)!!OqCT%1R#DV{+r*9k_#aK?qW(w! zxc_5sMENiDCq|;xZt@p5sI?bFqOr4c$AaG$IX2PTp%M`hS@$#W2cDwL{$dVn{{Hik zi@vVfp?B&t*NMkYnUu-+zqsMwVslFk4dmc7Ln_* zVK0+<7?wZ~Utw$dcP6=4w@8kHra`s8uZPxy`upKw@T21rYT~R%r>wmlsNWHAT0*f1 z`oEGr{zAQ}7t5AVsX1+l86rS43lwI6d_M8d2v1XSsoY>Cl;EwquFdEO#RsJF2;3)+ z#&|>yUK080Xo;RaQQ^*ryArhQPv_2U0lvU%G263#Xnqi}APi1OiNU<4$vI1LD&%oD z`EtDzHuqcrT% zEibhZuPAKbsJ*2}HZmxv=wRcXk-!{Z>nbQwWw((8Tq@p7rVZvwQ7PVLtGCk&R`iK& z=wF_lZmr9Gxb4_@4w0L$IxU^zl-_TS|0Tdm%g`)OuNmqYJUPMhp^P6RxSvCD_;%5+vEXs5&wuryj1iTrd>y_+! zgQm*?Jgyo5$T)vSBF*L+o0>Ti`ORn91-T_`FR62#X@tX;pidhvMO^;i<1Z67X|~6= zW%5EJ)gH{M%}|z87dTpkOPYP68iw$(ZQ^7_mREn?@RPE#yXj_BA&UgHgCcx#G);4C zAr!3a%NKnPim+lOz5~;*>pyoyvkbT5XR(BRZA{wnj`J@t1e?OwuAiG<116EaZlpp z3cIH}2J-|pJAY!|$xA_IBnGn>+RM-5x%7ce$0VaNO>kWm*rderp>{)Tbur9f)N2>A z1|Td0@NLbYX6Ivz}^tuj!MwK{w(Bivj=f3vlus~XBQ;2bJS#CbU!r0b3!;=z<1PLg%ROELi z2OF3?$R21UBuZ>go1mfdu*xH`G&dvDug5de1!Hx7;}KrF{6*mIJ!QI$fsXWggFFj{ zCQl?qCdb0?3#Q53wA{F^oDuK}JFW{|jw42+hzMYPH^{LGMWo!=Wvjf8mVHvCy4sye zjf3=Dn0N_M#_8B>W9!@=$29C%t?WOy1Aq0(>jSTV?_VKG+z2%%G^HR2rh znqzmGOj`@n5=P(V@r|lSKh<51_>o?=>Wtp0!M*{dUxP1A;9j1lZ5+Ah$1+?qL}=F4 z5fQusb#WrT{WWJ%AC%128$BVRD^UEPUU-9wZmbrwrPHs1?7{*Scj2}kaI=qkCWqtE z(0FchN!0=E>?r@#u#@eg)g`PfKS~2pfW-!06 z4t0Q2h|${;aWBo$p;5p6BELkpC9|#&9niX-8xz46`O-(km4A!aQY<&+YR3V9yK|KH zfOrW7ay`^Y@%mHE^PxwEp< zdy3KyIut&9{LNYtnR@wlL3plre}@j+mM}S!(UfIbw=$Po%@IMgSo!`EDw1#hwSTe7 zVhwy{1QBP4UdK0xGnfrfS8dIE{iGndb9X@`fQy0DtFg(C3?zc|`e|Bsxvsu}^yZAT zBtglz@}2c-|xh!|lJ@SBm(8;_N zeDsDKxdOUfz`F!vTj~2nGvF)(u__)*twpKKtPTCKUuY=Y)`jMsMG*XKLG+!)4rYRj zQlG#KXy}0T*UjRjoLMG8ia0!6I%Na%T(>$OZMW(Sf?cB`f)X&UylWHW%eA4Xx9>~v}td->MNa-h0$(*yH=z&Atsvp>s40y$aVGs z``ENoVLcLX`xlK-Rv3G}b9YE7K}y@W!s&F(tg=Vab%&uqQ^ae^q4IO^l_zRQT}y1) zk-$k9y08n`cKdJa3d97SLB*_rF2#i~Ql6}LtyW<%EGEmV8*<^&6rdr4acJ4t$SZqQ zV2O8!z*uEjJsAn!EJ>;T{$s3(iN8slr47NZcHsP^P>92MimRF^MMjeQoxr7>?h_0l z$;U09-&V0ds_VI^w|AG*bdJd_ zh7?s~k91%1XJl4h?hWrX_o_IBTLxKpNTsz+maBe5J}40G`!!d6+XZP>Gl(A<*^-_8 zv|JI|Q>_P^ZDWmQV2h+U?3J373GG94yL@h@s)gI7+}u+Q!$`q1UM`Sa5V4b~y?;&H zL5VMNiA^@~g+Z)hEL>sc#?bT1xy|Laxq*{7X0OBJac@a*dXPyJej=-h0HD^(nYnPx zU(EMOyZ7|fjDTN#;|l&N$$?fjP^h}5)ImrL4yq93LC4E=7PUVs>;?w>C{6**JUi}Z z1E{qGl{YDzf(6nG#GdO}g>U&1W-YC@27r;$P-I@@=uanVi_ZbOzv*5%RsllyT{-ZI zUj;b=wQ(a3T>!R+Gx?p>T_Ab=y=gj!IRXc>HbxH}BuU>Je90UnKTil}m6&egSGd=>WKz~Wk&Kw5%f57Jo;o1Rm5l6J4ZlH7F4(0AY@j+ zREoVVyxOr{4Ze6NDWIxXel_fgI5}f$y#^Ur?|i`FKU#T6ZQ{45*;SEgMR@6D%4J81 zMqPHL?d<*1B<`XQ6&hkn>$Y-feOhgic7iy{260o(P{xIhsbSG4b3g`ERX-TlZfqDZJ zdr~=;ylk9u6^W}aGe{sKle;?r?&6RI>^bO<0$1rT^uN4kx126k!RC$izSC!LiA&l! zp%p0cPOi4JaDR8WnZm+Rph#V?M=_cyX^;b#WPv^BE9mQM%KJ`KX;O-PBJ=gMrGDdC zUw?nc8apyFxNAdJ*U0S)SSrnib#KtrV*zhF)~HT-m#tC))8w~S^@#|@PTQc_$qMWt;OrW@~sq&Tdt_Q3gB$M~1nFdaBpHlK5iqFA@= z+QDI%oy0uEP0R#-PrkllKMt!g^gwB8i)Y5^dNsH)_%z^$(zb8A>~6vYIE8C`j!m-+ zQVZtB-bqbVd0yLU*4fI3V36+HGE(jgX9{_m|Nf4^omP6>OX;|LxYR^2!MQhCG=V_A zpt8BS>rkPd>X5(`nVtHoF@pZ)m=|A`7|M{muKHH5HquV6Uw}Cpq|< zw;tWVfD1guH#LI2h^WPMw2$3KBD=^OUOD!b^Vc>PZ(u!ahLJbw#eInthJP98HoXwI z^f`EVq?6x?Ib{Ora|4*!@oedoeTC%bZH7}B)m|AL-=fP4J2M5k63d9UD5$7!n3(c` zJ0m;7Fi^~4#p@j1wl0lXr*U#gy*nlvN=|`VkB`%=TKba3VqKv>s6?=EEqm}aUF}r0 z^o|?OUlgQ(I9TlXswE@Xlk29# zu!O@`(8rjKpp==Qf8u+`jv(~pZXEGkgHeTavlDIIZBGA7#9-kN z(UjO_-{&F!C1`C5-jDh|b@@J>X9Z)3Z^o@UHbALpbV5R;(2qm$ncbB(ky5QX+h@pS zljLti>6n?Hm&fV!f-;FZX|PAjuI2fKAPPM=6l&ROJSekT?Sp<=?ynJZ%I zIA##a>8@34U3AshW4LxU$WmxFn(1^nd)kQzjZ-hh{)R8-hm|0*+-JOoG*~KrrrK=u zEUO$!SUlSZdZ!6>`~L0`ko)V`XRgZk@0maSbp@dCkrJOpzHvgR)I`od zm6M#v#5}gvyDypC zxEOEbm;&2VAq$hkMUj_=gn|N|Y-OkK$CNA=$dx~>7nBT% znVV0k;t%5ap+@83;3h5{UAf@B(sbQu>_xSY_NRAfdV~6!*{*4Srnp&N zsLUeUA>&pP_w<@z8fv?Icw9tpYkap!5%n+PW(bK%;n7~#!chx0Vw+97gwtMM9(Puu zn~6PqGTmV``)~{=7mB=kk86?l3+^w`aWlZ7>Sm2Pj!eO1X`JXHLXr9zXAts?V|RWt zf`X73E~S|9{!<&F$2Am}$l+mQdz4CPOn$)j!)D*kJK2>%0uaTlNRRLK)YBWDc1d3l zw-6H8s>(G+B>TK6VfgX6rN|s7H~#K7i^W^_R;^p2262I7D)V8xxQemT*_v0Nu~t;1q1pS~wA@V{WqL{rxj8VBSBz0})iyix zR@+*B!e>C0-{lJLJ_APJpKMKO*6?K@qT0AR*LYJ$62i7yMX0TndGr4Fk%>j^+0vf? zg*eQqv3q_*?D<6_C+g8y^4d%I<4|!5ky)=EV3rR#k2ykje`AS|m{c zx#tkFFXcYdgR3lqT<=o7x6y?QzE+Z;Ptpo!6T;B-^pp%zI%8j<9^LZaO$);aSnRij|oYd{`8``)6IW`?WCT2xFN~mT7LKo9Qng!EvQM9L3t z-g;8P)Zh1`TPvjbO^pv}6&B&C`*q(3!>tafE55tk{m`7$isRSOh235gRyZ!)%PLlH zHeGD3n;se)L({a2iWP~CkvTcka<=fXo7 z5*xb>@>;MzgB^NIG+}oIR(!v`8x%p&^)j{3_xVorbryfZsd6F*Em6DqU%lDj$LMFE zP9)$?t-4b4bHaEgbb8x!}a6i#cks4vRU8 zpbFk%^^w4Z9TdliAiSn_L7703Ot>chpTrw`zNfH3PPXr$^JKlIR!ljA$+4WsrfZ2I z5A6xj4HPG)pDKUpFt*df$>7IUzmr+vi!cnNcFuFR(*~x`!YOX~mneFS^7%up+TowO zb)HiWQ0{G0^dQ3~_FGz+fRc}BQYfZNRd|sKa~;ce8E%56x856(y(mT}KXgkp^v$~V zOXWhPw{xArFk_FIdirpVZHsVF7q>qhd&`iGYiJ3Wykd$z3a z5)9Y%!r%hPKuEkJ#Jan9M$$#gva>N`TKN>6Mnv|pM(#l}i#NNxX23Z%0@}v_>hVDb zL24-#sg);1`af)uqbj!l!4~L1ByoLQTG5|F7~EP zzJO|L5SNete@H41Xs+N%E)Zbda=L^DfG=x56{5J_WVW`81-|X=D%;?~RE@EEWv;yy z_7gDu9Yt2w2L<cblK)}DDpEx;jZCx)&@-=1TK)BWHM_Na= zzrY+64~gyf-2p>^uizRHMV3rCy@etjj)p@IyJo%N9{`OFqVZz9QJ-|hc|F~A4!`3r z>5~Li6bxGo(Nh&T_wAH5JTm7k8^Z;EQ>VSLeG*eA7l(|W+O`mL0<>Bcw~PDlb}+m1 z9B~+lf7u{3<}zm~9^kIoFq4O)%sZ_Kz(#H z>#IJkU?$kz3QIaSo*iyrS?K@#1H(fDk3O$|hzj3({!3K&HO`Swr#L-s^s?^pEz!iq z*Z9~#5NCstl;N#|fR-@|HDBhV9HFr5(G-t~v#CuyG(jgXy1`F3E!Ftz z^6@Y!shZPDRoKO&wdtWz!0t`aTnLOg@nM!VG;2PSE9gbak!%3 zj;R;W+skXR?q<{SxPWI{67*^MBb+GkRbP-%u?6dCmOyVF# z1M|FVCRYJ(yM_Y~&`Yq^1ptNnbZ#xxBWk^@i3(7$Zm`{^v<|KbXptBwBCq6&E*jBAU}l91oXaw=1s&JG9Oblj`I$lSUX< zQn%)gX3tUB&=|xEo4cDkYCUu(+Bf(KDy6*vvlr9cZ9J&KXZrICa?*cz0dv5Cc(vc+ zg%xW(u{SI^0@tL|^>U$vq9tc)j#wOW6PyROwAl6kyG%QN?78WGlGd;IabsmQ4Gbvq z^YfjKwI7f3BnEZ9oHxbmTSyRV5pvDIuyky_?H&J#m-9|#Mc7qBMw_>d4+S4}cwYO1 z`YzvTaD%_$|M*Z!?#hS67Ow*4mRrvhh2ozIg!@z z{S2|d9I7vWl_O=;=l}QQxVd7h_Tj(Q56j}0wVdV+@6tlzX}{S>J2`MCuB8dDe?vLN zD--1;LR;$Ju#Iv&6yXCJEz>y~YF9`vtKHPka~vg_^X=hW@eqveo*svzni<`%Y+K{c zwKso9dJU<7ONHgs+f45(jk4A|%k}m3`mIE*(6F$a4-xq2q?!LBp`m>=1~X+kBz%r} zIbAO;92L@eKR%t;t@sS?PZevlcyJ}@xDd_gxRQSS`0)X{^VQCNaryRGj<|gRr9NGD9oUCCQMy9ts7W0ETv8*d^+ z=`fT16Z1h6=odP9#N4xLBFj?|Xn zf46Q+uSvDkeB7iHph{|LnYhg|!-2|DTD zE##z>l|MNqD~fo>4KiE(hSCTo_d(=}WBG%;%x!{IIpSDF3I7`9%R}fpN}s=p&y3V@ zJJD0t%wKM)mNgx#`9a$c)&HCPcg%cfo?t>J4Uj5Dxdz)p16$#T^^K4{T)K&E578KG1>O=tCn*@f=Lu`Z&@boh2p zvHZJ^xj2Z*(c!-~=QwZ@f$-zTEFjvsR)7|LX>(-$W zWAh>CI^MyQq51j^mbZr3Qaz2(g2I5Ws@dkUS`trI4f2{-f7rKldmjTC-~8g>big90RS_U2~Z+^=E%R8Z@jM7OVPG6~xV5po^&~xF>0nWwjOxJ){M68Y>J8RPH z+e2#viay7WgwAkOjkT*0P6AESZQ}b(r)Z(g$LYN`jM2v|(7o~?E3FK4>QDD{^>!Qb zUhyJv7-mb=X=c70SvBpUAP~?D^!j^TT5oC?=N}@=vwO*mJuxlPliq#qi)iC(>fwH7 zIbVF9!ZDQO=Dzj9O7AAw>ez}uEZO#2akDtH%feab{>%zV*h%bU_)EGhh-T&MDaF?t zK)Ir#;0)^rX7_(}j$^F3ZPDHcGB=a#PHnOSVMiBh00>LO5P_V8S7Uh{qO1Gt%## zG_A@5xIZHQ%5JZHdwGMTdh%{fdKFMDA@_YDw8ra5#HnAH7CrTS9n$iaQvMGa7hh4Y z6V~97+h1ZO@rWaIUFD~hq$%ACKw(Dk{lVp4H%M^A zj;^56u#lLyKTSEyR8#nCTZ$fcN?u?o$eJBidN@4INV<*8Uk&7|2eU z>FZe8(0`4;HucqGwVz_3IK2R}i3#Mx=OO1`sIW3u@%&Hn+^{V;cB>)2-Xpb_R=Z8- z)OuTx)M(L^gO?+iB0HIw{#v%#*CAQJi6{}c))L;noIvYgB&p5HMi))e`O*CgA!{Sd z1;6D$Tm6MQCB)t@XU^LwWu)8kUoI6Q^G*6^tmX8?S1!Dkodp#_Ueh&=XEfWiMXi85 zB0%H=kD&;23f4yRV`bw?@6>b^Wc82Y`MlU3X&YfeYHiIrLR?T*7G=+?Tm?8 zIj+n|7UKK6Q0rj05ov4njjqTNg>TU?G%KAwT(9^rDwupR0X%q+7Y}J&pn(C9HIcDD zwZz~$(q(x?C@!Qi-3O=-W{WvHuC5!OzrG!t zmI>qxNd(lXH_+~0Y{kKOy5Hvps;BBm%=HiMCV1hHrs?$-UE?cwZn$rw@jIj0kz=B3 z!7a8Aj1~Z0^IRVklbF8m+*ofjG3XBmx{BYW3EuY-JP32+``HwWz^>L&d3?_BYN9`G z0n2c=HbzC3V*X}oML0;Zh1Wm&etmlud$2pCtIFsE8-^Bzna?HNd~a#yfq8J8VV9F} z!+bth>q2l}=(;oAk8?}WDwIUmyhlv^?UY3*+7nD)KuRigcSo^x@N18O0D!aN7GQ>` z1A}yRx+iT_v!dK|LxD>cP2GBwwR$Q!%ij`Vhjo3n>1Kz`Xmemq)>uiy8oCDu;<)bO zxm}p1?$z>INnna)B9Gje9!L?4mHj8V4vp@@DB?k^`@t{6Z?OgfLa!LcC;5s9Aax#0 zZw7_ei1oEAyvmy@?Y;Eim2?D8|$LuY^+<=?zCh*iRB=CK` zjp*!Yt}(((8dkCoZl(x{H_g~RdbvaIXfUIsj3)_+M=sRd+}6k{9^)45tdZ08_pI&C zEDh(qh8BsMpL(5qJO}3(QA9Zq1=-1}?O|A+juG4YyWb7owC%UWStgKP(_V?aJ%Yj* zLN2xM!nE1{d-pi&KKq7l>tzwZp0o!dJ6-53)IrosN57qu<}irt<2#XVWSvdtX|h^# zN7UZYRGyr8lQty*=AFTvqWUwPc#JFFck-d%NY)O-eX_bdS#8G>DxTzNndji@E~wsA zX(T*7&_sr^K-{~jkevXw$W~)=gnR!Dx|1vwlYGD} zgnC7UZ|f5> zk4EATS@w_JFOSTSRt>@5%JQ9s*hw&F_KSOef9;IP0dZwRvmUKnBCmYCDNF^i+WE?u^Lb~o4Z*qS-%V_|AdH_JvZNM#>*RAeM? zQI9$=GWB__r(>x8^#xA#qpQ76$E8sD7caUZFo`2xmy;@YVd9L2dlLW2VlZ1ur!FAqWsYQtoI)9H{T7-r6&{;rqfbAvB|QT0id8f4mjemRE)n%NI$@iM z!^;dudTE;Z=RCb$=&mr&i+BB@6bZ`zPk=Un3K*RC8W((F)&UEL5_@?6U)aJHUwQ0n(z`|}!W!=F)CC@lh(w#d$FMhByc5DuN~>W2*~TyAhkF&Dfc^(((^nfq7F2vwk(Q)2zTX z?sVy3&iCz|icURX=q@3T5$R8TTj>@xY%GK#) zH$Ryr7g%sRy&V5_xZIKkB@aWJPlWtome-n%l4<@j_a8R3+EsebYyr&+_HfGcJMTkr zP$;+lKPl4Gfxwya^>w@13WFDIGMPT_dIh#-bEw<~UgsU*{lb9d?avXXvzRH1?mPm} z(D82OSZdX!mB%~~r*h@0NWC}`vl3ZX(`mcMO!A|7VbzrQx&NA^VuHz0xCt?8ZN-jS zrA1FX3uL~Rw(*9JZ##HeWnG{@2aZgpArj-rn~3EaIXbAeWWy$sZqBzIE^)A;7WJ~n zIZix8@LQrzaE-UQe&uxck!jnGWCi?him%`u!MTbp6OY9kI-k3VdXJ-PXc75PDp$nh z)sO~^Cikp=G)20>8aqkNSCAXA8th>n+ewq z7ztUq&?Bj|x+IE;@7ZGvzI816PrD0d!BL-MPj(zXq^vs}UzwkU-CsjFrT>jo`+{be z14iqZv*in|e&I;J-~UVehN@{!Kc&W{A43VD@Dg_aO#6T4C}ShWD&dfBoIt`?O~m|h zh^p(`5v2Dwcc1i-Vrdorq)wq9j~D~7K!P$)aokPsV?7RlzE_%^fg!PH0lCX}f-4x_ zHyAwKipB;)Wr3lb!vD@m`wQc+7Tn9plBYYt#Hg3K^1gMSFI{z}rW`WzNOH?g?l)d_cTnwKoPBp7 z_x=^>f1ceJBnvh>IsWmi&=})=6qRl7j>`ODov-LXyTdYfM^~t?J_0#zCOp(6k5P9b zF|SQvw;^F1QA2m+T9RlUq&t`hi*Zk1QIIq08JR%H$2hwA8iFMM7F@lM{o#S>UKC)Y z3O=}G*uCE*1L&q)P@l5JOSv1k-afKSmv7bnFlc@1WplFR)8>rVq>pWCbI~#p8LhG}Nomf61xI}A-AHnW=Zn{s|Ie4$# z0UUVp=Ff#g&>=;oRwa;j+=9Ob4^=SOGgq(eco}MM z`GE*C7+P?m;BIxzM6coA3$6?K(H$L-oX_&p3a{REbioh03B|SqhTV|yQRjz}C5L1?Zj3^4CacY%S{(KtJaB<^m8V@c zi%Atx<M^Y-gN7t=!*AK&zj$Od!{;81gBj3g$o>;ULpHtL)@ zsy*YLHG0{A|Mg7xKR5dY#&k@!G5#pm$LyM$vCmQjd~|kkef-2QN2;V*^gBf1fx?*m0&3h87N&=p`ycYs?JM;%(jsQt2Ig zrq=C5ZEtw9u(vA0sh_d4r#7W2DM)HqeJ4g)oMy6@Q#&vP~Z8Z_C#&X|ebwiyBJkMmHJkL=$4GDph`IWL=v zP=kHxJAd7LtIa+)_mWgOu;#oL?rQ=Mwn7|CB2-|gKm1yPJOtpre(F8vYl8MNb=iuV zl-3(eMnV~h!b3{`gp@}PvFPwI)_MCFMTCO2bx8x4OUPsH z>Xs_q!|`S%wFZT;%+o_xNlolEzHWxdAzun&VTf<|{5ee#IK)>W^TgwZyYm5^CQxegb5^rhyN9vk^)*IhUaT$LXF29ST$qT9`r>`yVo&}pyJtK=Vo9XM> z>5TD2>#iRS_^PJXRiqE3sH<+RV@9VvaLK6OJN9u1aB~}_Jy9U>JLr7>f!WF~>_B$G zOk?X970Iv$Q=na_$%Wu!qZ1N)?&7?eqk)xreGW&FfW%2Pw9W3&mbB<8$fIPzrDC}m z#2TG?&A#E$O`@XnNo9vb{dpF+{ri~`;(qR^DXshWlo6A5E5W+$jUoy=HJ7)UfaI3= z;gnllNyxVj%na9)t&@9ZW|z1Vap#eB==)b`mrPm4$1L~45nl)WJ@GK3ihis-r8nOt zo*Z`+Wx1S<1AP&)t?H^}N;m{om|e?dwzjTeQpfXrIMGMor8Z)edA1e|MbdbV7&j`( zbQZ!V@>JXs?@!zGlvbr9n(Dk{O@F6JO(p(wTdR_}7lFPEuQL{)gb8%2csIuj<3^Fn zTG13FP$p6y@chHI{lcy>ZIowF+2wKeTzgxrZ~9mdkG6ysz=NaSbqV|06C#eZ-yB9P zLC0aS81YL0NMCBJb(VYOUJqn3hiSiQqB~ptLTy{`!%zO9W@n^n!;iBOqDHCM+UR$G zC)l0beA{Nb_fbsCKkSiwz1E>Wl9VrYqOnzqpY>u?Z9H1J9{8XHFcoACcd2Xb%-e}; zC><5z6o6ou+RW(%8woYmZn@eU6WWhlJ`#~3HH$=;mf{fIFRl=J+EEtP5Dlz~c`y`X^#@|#YYNN+!pb66flDXPnu>drdI79XqPc+a&+UuUvfz0nP9fxMfLoefD> zxvjMS-j7t>?yp&0k-7vx1-5$urPiH5cW2=WKO!96(FHp=MCW42#+7?=?^3z`x?c^N zqUPYuZ!3RQv_-hbOp>mlR2KWCFPswS@^INUS;aRK)o>9u3=L~JY7V6a^Ee^%tox&` zY-PS~UzDBF$gF*Ls1YG|8gcPY11Be>fftRp5~*35xpE*)%>|6e=b93| zwoIr?JXY_pF<=}1xzuK{J{DTJlu}<`KaMKii7!Vf6k1-W=AxWuX)~C}w7I!y zKf>43`x-R4+@g0jt@T(>yVhZ(Y3DM1{Sv{`Q8CBIL7CRXSFtzRIy9WN_UX-sk(7jt zgbxaz(VWB6m5THD6)9_d=bZ97J6SroxitHf9Vj<=$^qBUeZABVQ+?Ph-DM=+H%{7OL z>AoGg=?)S}Mw(!r6|b(@N~0831F@6=#dO}-L6)|3g$#bu36~%H_V9l+7%AO%qfUQm zCu!u57jHOiKRZH;ca-0=Dz78vPih2voajT*0^1%?3)~)&Dh>T4< zH7V-f@8IrL@i=H5Ji*^lS2oOwX~;F6k@35Dr+<@sZ6(B0OQZm@TBgih*YxOSPo$o> zn0#71SuB9wx4ajd%74XpeCsKqtq^Wc>xPzign1h)fUgj4k_P4V&Wac2SUn;a!;ch6 zBeh=qaTxX|l{xuXTz|BRXGQ*Iyyq94$z!z_&=PLs4Q+Ek{Ev8F9eLh-*i_Y$!wj!q zT&bv9iKTc)wnQTYq)18!g;4_y2654n%VPA;7BQCb9(cTe`4a9pWk@K7nSx{GC#I=f zp%wI66pj=p6nNOYkYAGdsx%Lcx;yr%!xoawGRI1z)+SbTTr+xbg$)Xz_b-^f&?(Ov zY0^7lQQFU)lfIoldzs|g5*WP$37+9T3K=SuBjby8aX)}71#i?kfXM|DhtK17=l3X% zNrV&jtf~OBEk4LP0`j!({Y{JZ`c2AUqr=0v`L{(s9sl0!4^@lSE+*E-2K-}v~S})An%Aed?oE0Gy`!|qF35U~(6kpzfyf0u2gsv2R<8({bZO+YI z$2OX94?cT4=qwzSif~ej8yT1P{*0yy$RTPtE4Oga!v(}Z958KQe0)%9{P=Y|&+9}) z23+qmw~yQvUuud3xV@%vCnaj{xyIaSaxG)3UupI?ZaF6JXj6^chB}cI*4Ac#Pa=1B zFP5dGK^*@$QF#mJU|1HB)T{yi>=iJ0vli9xEHSfJBZ|U~P!+36y@{gPafaX^h0{Q2 zPE_vV_{6;ELUHaZve^tv^A=wV%X;8k|KiEMOe_4SL~EqgbGs|iG&pjG(bb15_j8>Z zYdHb^CFV1U$eyob9EnN2EmGrEOzjGv016_U9bUFq%&VhOdQVafy|_D{8_*_ld59gA;A@Q6iH#qG%T5@`4xKSK zR*=j^+hELa$dTS41y;rX(8JVclCBosS=aIz*ru_P4hp2|t(sxUnfeglHK%!SUf+64 z)Lofzp_9)eKzFU=mXt=E>3Z;sovbSFXBR;B*;$C@@T@+gQ{Cpo}ctmzjr_ z>r{59(yd#3x2RKsVRrzcra5HM|9TP(^;yGdF8EF5qtmu9tJCk299@>HN{O1fnnF=x z!hX10>b{!36TEYdHX9?IVK=)Sj6D8G&_{dD;m2FHdp%*_a9HY<3Ul~>wfEIQbv4g| zHz7cR26qS++zDY@~>MQ*gd@>*+F_X5XXo??Y? zhh7xH_biwpXEINGH3gFlQxMYV#6&kfzXXwSEOgcH*xqb)(!sV zNL)*|8&i!y6T{I3^s;OCa=f;@|KHAl7a9{%h~s+Xr|aW09S%9~-<<=*fY>+BE} zE#G5yg#nJ?SuuF$w`SW|@V%&oZ(wS-a+qL+eQr5^mdTXsWk6u9VeSatCElEYC;m zzS+CK2`|)~`Q+66ol|LGJ)z{{d%HNhC8nqCYE#RDm1DPmnubctF6hH89O3-K(Nrfx zi~|3^5TH={zJ8ph>=W`1CoNxnzUO_tXk8lqcnL}Ir5_|UvmeH!a(^so&Xtq=HdMx0 z_X9pC92_E`&^)4h8^)deqgp~P{;&SJ{d?SE(f6vBU2c;>=c*A#Vh#7*Ib&cocQ$L% z+q@9wCjzG+inVjS)OR`bG_br5v2rx}IH<;Ma*83UEY4%}S1O8kf4a{J|GiXMu1=aq zdqU&?NSXhcVE>;jqf&H)dHi%<{>|1JZ0y2|yiabIuyhTt7h>|75bOX?ve#paLxn{bQeax=bhe!Y}p@i}sAfR?+NmD}d#yjC4KiZkTpUlp`}Q1kqyQ8~ z#21MtbIQ3azZ`1IsU6Flk0s;wxMMb;Y~Qy|_;AIs`u@t*EQHcM(B)aPF+x^$C_N|r|&k7%psq$Hgk>0dFJVIWwnQI;)^#swUkAL)+fH39kwa`9&wsnueM;x{%Aae6fi%(qxdK_6c5 zAW?2_>)Ibi|C#30TFK9O_96W;zKZ%@XQugM;1}N4%jXcIwG@B330?0eW=(7SJ_l-o z4T34&Pqez`$PqllG;#azLd|ilJgzEqnj>`M6pA9$V&-PIHPp^kTvrAUGNDOA!Lk}j z+Eo+!Iu<%WZJWU$-c9}&h2-k`9?mQ_JrR6nU)fuvKsQ^dhqzk!mBXFmHmvxhphL#k zWe$vPw(X~y4m>T(jVigE!LT}_v-l_r%(x$?{6j%v($c(LqGWmHe~~u2Z(?zvWCjBP zZHg@w8+NjTb!$71kLwrW$e)LMVJq#mQZH1?g-U)Ym}kEgtzCAnQaj+D?}@3mSL@q= zqG?n95_6u0#Zn`lcT)h_?{dU|>Z66`cI-)>*xwllX^Y|Pe%TP*osCYv=dCmMG@AE%AAhzIlqsCM)Gq8A@YO{*-4iER|c7(3@Kl`O*hu=xu%19|p_%Gn{GLEf8#Q4&mntnfcd~X zdySo~hJ2h3$e@M#O8Qb^$1bC0xZgMuz+r*%te5}Rri}%disSX0`=)nes^rloq{s#$9u$<6- zc0S|XJiQ3qlM5Baa&^=}?0PU{eZ=C~ih#;WcHi{ZWkkhmoj7n9^1sZ1Jx*>s?_&Nr z;!K$D3NzCAdvIcpWS3tbs9~p%Y9!DcKefqdth1Xc9JgZ&B`9ociKo@$Ww{8?o=f~xaY5Cr0`758tixfGC=9{EG;e;%ve1L>0P&f zE@icPkZQA0fhr!`_RpK7_!o_lK_xpNf~oIXDCZ?wrO9ghCF^;DNRB6tc_B6^Ppor7 z&C-%_cd{t+y&oLA<$P^LT(RRjIU2N z=+!EN$Hx_H?d)83@^S%*LGuCcNtMaRuC`q0>x-ommy$A^$XDE3YH9g%qr=<-Y){eU zImk^!CnWSf9ykN|cmC_Y_@Ou(LBt!+toxkA^Gf&Ih9~rPN%>1?)=s*3%-b*m&f-7i zU#LG(W3KvRAV~KTA;Hm=oA99g)7&WF+t|HdvozG~aXa1Y!8=!DMTLogMLSib&N;-h zTlo2Fy23f&>v^H;zg3hDVW$ z+759;N`c(6arCNftDQi?8`pP&cSkUwmb(q6y7g!Y+PZAH38exh1|ax4*X6t&T>}lz z&|k{WS97~0ovm<)R?pCp$1Ycf>K%W>`sWZD9F3@so+u0zS%rmYitXU1@#U%Y zs<8x+Vi=dZgA*!4Xc|2qu3Gs7Y{;yvW>xk0J7Yuja6)mw23x)y35m-AU6H_SZ^ymPIWMilb2EpMELqoI8$@HAZ(#|>4h60y{$xRG*EA^N%zic z3i15vfAI(`U8~Khy;lKWXaAk`!)xy^X=@-GGT=<|G*gwuJPbutzBA9HLY81;6p#MA z{PK|;6%pq+t>AQ+I){cl%~PH@{F{8e3uSi?saoMozeJGJzDxbA)itFn9kNN~GA z1=0>!KX_=L@HZbj zs+0iu8TAtpDk2)!SiuMtA>gCNrj#X=Jlp9U{q^Co>4|@uCN18-24qxLOHE)%e6%S< zc^epFaKkTh6hNii-ujCiuE7n#{j1(Yr!Hyu>Wb_*zPyLJmPE}OwM}Ezs z5T^}!;wJguo;c};bpA#TCzrD9`gtfEopSN|!vSSv5^b5r4KIZkg3ok8ZBEQu383Yv z{T&I%>dj)8VHM1tSgNq8()GUa%-Phdzz-VNNj~iKEem4N3KoC+f^X8wk9t9lsWv#~ zrKTj%FwK!h6*KmVz3E$nTURVt0GP7Bx~@VI`<@F4s`kV)j$+a#!X51<9qy`G?Ou5= z+`aYvXbK|oe{|HW5G<)B_}tN&WYa_DE%8M{1?gCcXayfamiE!$r44et@m2y()^yj|AMohpWt{0RBm_{qhOZV`Cn( z8kXsImz#{`p!W|Zb65DPQ7BqH#y|rMUEe8)NdJD_whPbrXj(tA?CS^_D=VuCz}0}$ z(NgKQP74k=kYqb)%E~YK0?qdq>KPdsv<-OCS>y(fc&9ML*s#Z%$Z3W02S?kzHA6U5 zrO}xs3Bc7~Qb`;d_9McvGoSMM=E@BvqH2ylM@OJOO%>K})e0jdV!rrRKlsy)pW4xh ziJzNX&uJS}0YUng*X2bgJ4~u-xb0WPE+9Sb!a05TN4*8mMoSQpjcr%Y>fK$hjB%@5PZ}}KSNSyxjg0)JW1%(uDuYXp??xRgL!uT($ z1lHf;iwbHRp3rBu_h1tdSu_CK}X?N&3aHNS7!Xwv!p=dI7QCEvS! zlX}hs~388Zr0$Bp%r7|_&^LYD;Wa`YAbuiB42eQE0w+honWC~ zFyOmG1vpCkT(>rzoQFd;`;@eLjMo% z1#WkSoeLyN4&ndo$}e`je6$KF20VR`HVM{h2=KQ75?OZF6vN{rUMf*=D3_O;Q7dZ#6OLSW)^F?B+N!5j+; zc5@XC2H-QJHtmlKr`X&*q|vedFO2zTWGgou%=L#v^otm&IJ{|Ci$jU2IlO@4>avH8V+W>~24R8e~CFz%sFV ztN!f5vnx)=Bp@`dN)LYu$s?6N{k0DY=kexf?zY_M*JAt?FEvgpYXjb=dSOpsN!3#y z%^}V@^d`smjcxLkg>Nt5y;{oiGl@@;a%?6W8M#igh#%aP(uNr>^?4%Ae7Hvr)2B#? zl7*#LYEEN9b3jpvdy$0=e!>Sn7lS_&?c=+Lp-#RooyjF!OvR`d} z-Y)5E+#4=Uoy_!t&Kk~tcKnc20%nFsiwj`mS+-NYbAe}XFlXEP#}I=Qx+SgAn3!hX zzqz1=yP)4t5(av?&7}u$MLF27EIKchJK?U*&cD&~w&kM58I6!Y|HOR>HY2(B>HxHJ zpmSND9~Z200l{m{f&!mzUF!<(L~qJU1k7M1Ca1`Bw_Y3^uC6Ns&F8Bn!$?HumjODk z4~FznLs$s9xo_y|TwZ+_L z(`*HP_v20+z}5p)TuTKoNKyBl>G&@oW{3U3d;*|pt+r%fMdOI*@;>WX}i~uDDzt zKt6f+2rr(qn~Y{XjfO(p(DwfhL8CzQLOy}{MBwd!rsn$2*?65~T7&N%*_2TQsRJ4y zV+K+hf+x0H+b6BaP1?lXQebJ;JkFuG=x$b@rFYgzT;~tBKo&ds;1$kDx<(!kM!z8b z)(Exx+AJ$7d~B7Puv<82+@){&^Q6kg9o-!M>7QRg8Pip!uh@(kHwUU|kj#lRJ%h*| zKbao~h#5tjRzvXdYR>DjS8Ip?60H;B8Xo5uz*_V-p0I*Xm8v8j7D~zUvJ^Z4&*%C< zZvo4U&RBA{i}g)lqiq=yF;v|Y{<);9J3>$-_z^8Aw!Z=@isCGXmJ4G7U{z{>zvQdr z;!Vl2aT>Y3_*CtGBBDIOV?K5U+gMBU>CJF-ZuCQt4}U`p^H=&3zHu0DFZasrFEh2z zkapD~hjXUlo5>2?Q6GC7t*{TMd5S7ZJKFJelrL}=K1I4;!odk9ORpxggX$^mGacW2 z`8v0UZ_IX=Q&4--rG8x!|FK_2kOAAfNp&e&Fu(rn#uL;iupt%pcRk(>ICdx)8dfY1 z)`8Bp@ML_F;AM(LgNCM#_x3PTiQV`gZ9w+z(ny3CZ}fxCDe!xS`p7)aH4X@P5xueZ z8Q*9Z3rpq>*`vJBkwWjUi5&yT2Iyx#C6&$3{K6*pCI==TA$ix1ZY&jyITL1i-i@Z0 z2XsyOXWJb>__`y*H^bq_?L0(EzhU^@#>p*gzQ0SVjv6i{eS#y=qn}cK{=dtanY!H3 zbVGQaN~9$LT!f}>D-ke*eSwbObiIpWT)Ny-(|v&1AV1%>1w!EMYSGi55}{%r+AQgz zPb%!*S3=%1EmiW3jn7bqUQDo`A7LbKg|VTd{$80A2gu*vk0C>zdKHXm#2E|wVkcO zLYp^SzXjv;@<7mBIQ&SkD2emx_(|4KW=mly%xdGWleZZG2108!GHU-pwBEv!_yzS#WR z=AM5682I$1vW1eB^4VVcYd7?MKbS35g;LD16i%f=>YTtpB*I&`d#{Rcrj`ZxPc}EI zHXR~3jCJmgte|_#drFq>9nce%x1p)XVf_bz6pEPl8HZ@>I}ks4_{mVzD%{v;01qsZ zaHlJNsAD}fe-njNnnhdO=}oGEMX)?JMOD7{GF3zcJM`fSzS{qT#_blAyx86G2|M$< z9^Yk(xP7>Ky}!FrenPU{-F#DsMX#zI>Yt8L+Y%b1{e(&p{E$C#0f=yZ6g0d#KXf+w8#nqJR+DUTEOd_PjPUU{U3xw&CYjvnDw=#mFKH+Sqp;#!)=@if;k&hCUC z95QXgJ1lZc-~Bn=Zj{^AG97I`$CJy>ofF5+!%(d%5+a~XzT$1NBYv`r(fM|0Lc(jL zS)52%pcn%SHaAVn;|6d)EB!!vwT^MM0w4U%2ScWC4_iEFZwa-*>0=7daF#gG{GG)t zrod)AF4s077Q^j(e414Xu#-I;A0K&K;29VP-Rgzo$1dP+f4{#ar9;ffOm{i$vy{4? zYs9-aK-Pwz#=#PQxIeVkE|i5)t1jG|{LxaRj;a|m_gH?KX06S)@`4MJoKK>scpDj< zkgx*X7Q7apfTk6#$tWmXk$KE<{8s0@TdB+EIoh{%xV{kT{`s4l>w5j@Wh)F$sp3Sj z=F$D-aA~@SY!nqOf;2a!yViUa-CdELVwD@`-VBBSQ|fXSNeJ^bIF#2BNMN9(=yusQ zl(KS~;YWn|EhBSf&Z>PzM6pHv*K8V!(;FDMxb(tf{)PEti|QQV?7>gE%rva zEZ|S!jt3f2Y0uz!WE9!bH>yCZq~CoPhc!&JCn?T)6KNQIrx_9ORH-WG5Qf3tGN4#7 zsCnyMegynPIuo$ov)8bu@PFi6c|4DcoJUNT`}F_L9dBMa!51O}kBevhf-~X@3gX$e z=^_~Q4lUmku_j90Kbz`@%kQ4VbPaOXh~I};skk6COX#hprT2dkIcq8%-YLqfaJF*8 zDBixUaEHpUihU*o$L09pviv&Y7=6|X7I;$>ETFhHUJuyWlQ+9RdeN3g8k~a1DczIH zVt)UwPxfdPu4J;Nzd(znh=~oAo9V$uU^TcjS;p;;MJr%#%DY5vbc?k8nnH0`d z6M4@f&y6)*mV8}et{18U%Rx@X5AZbNoEVxNHrxdk-L@P$Ie5IFX6=(;0mG#SYSVFQ z4SVQ=#tyrwXglt$wuAhQ@qqsA^~sTdTw?MvRpZa-wm_-tq3|MJjHP|!Shr%Pv2zQ) z{iN~Uny7m^Ib5CC21%{jdc<#dhBUm%Rjr67&PbQUcMy8dvGZq)TIGT7_jfVnX=896 z8W6t`NE8>?K)>BB{cwvkxupeLYT=HibYwGcPeN%LU3cj%x9o@r2qITUn+5xw2Hwro z>9KzM7GpAfpgr$wX}@AY$(o?_In6YgIV8^uSG0SY1V|2fb3Q_w5oxa3QA*&-a$mYu zzrL8z_;6I^g2Q%!hQ$=mldw1yNt6Cb{UGHI0hMH=Q}?YMNlO$<+C#{t7Ll56>qzx@ zFVdDBj#J7?Vq3?tO_X%^ajg|KbVQdMij;Uh5nO9-g`^yK^U3jWx9u5^I?j6KK?{ zci4B{XdVsB`$xNTq--wRWoDgA;gQWrS)`fv)~uU;R3J`}8c#T{Hh4nN zEU|_?DS1{i&mrux+45p-fGP#M;R4jD%|1S$?$G=F_--c|*A~^YJ+ZT^CWp;pn}^j1 z6%vt_3cf?bAz4#WYFsW~Iz5v6`flAS-~j|X)!4X+CH~P2#@HddsS))2){dKSYYXE^5NyNNBgD=?dp`<1FE#>${z)Rl<0e|D!y)rR)!CNIh6rPh;J8VH?+Ap0Vu zEwPFEmFaVLqp z?vMsbC)#{fm7UCRvLkIWswoVi?hUZfz|9rE+SfmXx*ngWFZ_%F)DxsDcFqTtL603n6V zy$MdA!`}vf9;5bI65uP>={b`m8-wd+({tn*3yRpBU9{V>bw-GFvixO4q=zENJzk9U z5ThBC!8Ca~6f11$=I^^3SBCj(f?6p%EVI`KYXJk-+5xrLH)_OnC*@%yXrS7F#A}CRx%5dXBGY{3{LD^tB z4I-{Sr{XL3gd^Z=ql~0q8-lqXcu;1*ny`|HiK$3RPEPFT_~C9zbA^|0KZkvPpyTXt zSYYPDMY{A;R?~IVX?T$0Eju|2LyC=;Yv{9Y_kE3E*2@MxtOIS;ypouBxYyuu#s2NN z7jJwl_wmOvclQTKj$fF;4W)ZX?P;U6iOJg+!0_7vr)ihH`Zqe^lK{EqhceXbafkBqdES3DnHIig1 zYIC-in00q;2RKC425jK@(Fl})ojd=I=lz_gZOe`wsKovACYK}WBPK2u$kv0wz2<}5 z3feP$vFGu!fh@*gg3RhuaouUbO^bEVHmIN8x( zlM+_-$ll!#Tq%X($0qxd~fQmnYX_}1%RvJVyz zPy5mX!*9wX=^y3M1Eq$htSS<2dp0_{IVnAl49b7?2t?b-*}dgw4Iz!3ZwH?QAmpY@ zg1o~Hn;D03_Q+{R4hRv_o)NHp?K6ja{(Yd}^yFR&d=rlos3~o}SeLGv33`N!*XF(L zhC4^78UDt?V%!Dm0#D^y!uY^Zp9RTxuB#J2NFU5xG57E*V0%CADyPF~tFJOP0p2O$ zbjC~rV<`fqY~NXT;~*n)?a%x1Z?C-AQnbxc;ZSyj*OZ!q`@AZ%2@(HP8_J+BrPH+& zw}kpn$CylR8PsdIkvH+asNIZGC3O7EH(e9d^e`g3PY#TWHH2H#^EeU^wxfr?2Hk-w5`Jd5iP11Z7LWobcYKt7tj2BxGj^uaUX-$iY&zSWu!R zmEpmI<^ccPI+VCB1;Y6}rTb{0)Yqr{zT}4H;8a}~kAiYh#61WUj{k@{R2T$vKg>iV z`=&}luaV9pJq&+)aUyDwpbA0Upi0b*JX_|0;YsnzeD}+c&Q*b$_a^t2oZ{q+xgUcZ z8^0eCq6kgGBZXRh4!W9CNl>(h_6_pJRN=F-GBqL;xEySpSt5NOfG0q`4=?pn6o4sw zS$Psbu;tos9cLu8Hgqpmo5f&2zh0(3q<>V|h;dteJwLj}lf$G5U*tN{;>Cm?Gc>xL zxn*-7^J1p`XPPCiiZR^w9%aM02hRPz3LKM6s^@Pcp(8fzA#KqvNCTqh%U6~g3wQl~ z1XsIz4(7@Hfpemg6n@qA2ZZo{MopYXAW`d$`+X|Kg@-cMFo?z_`fGQ+e1g1`R{aj^ zlRZYQg*YHw`_63Gn0qy3u`R(smx6~*w#WtPQ1r#z_z2ByRA#74oE2UAFNH8WH`FXP zP*P7%!vXcZQ^S>K)7Ek788J^_CDK=SaY1yR?tq%6Ch{r1ikIGqo(Ukl?JTL5(C+9q zst54qL*QJRc28HhHKfTeIDJb%u3`mTYctJ7Ob{m|)wUF2p~)87a7YC6hZ4u0kvXwT zAcNeF^!^|m{*8V==Zdf@33Kg?3m=~c>1)vsP|r#r1s;j;lo4ksE8>Ou(m*c!t{6lo zcQ#J4%|%lzx#{&+3E(aEp}A_&f&vxn7x-N<)}-bGV!9ps`d3t-w4C-an$8Nh)3tVjhuAI=0|tYMM|JFF;B5O~ z{-aJ+UgCu6-(S8PLQ7o9E&+wjA`Pt>KP*@KP|s4h*o9QymsBZtK=)6b@Y&%q{sT|L zGJxR#QwA{nz=LK5|6N)#SZlQgoC~s%Ogs`wZy?+AnvhlP65ThNWiV!8x4|c1`(@X5 zzOtk{s>)-*rFrPWa97hf4gO*{Ej+p8VkRKO_Ys~FQ@zmW*6n&V)T_+3uW4oO=<~Gk z_I)u5vR(@nxjqq7@Fh62NSH{QDCOZ?}bwGu%R#D?tm2TGedr0DEqp++Cvh5*m*haRZipJ z4;rfq*Zrk792}FeYtd2xr{)`$Q<1ahIvwl#g`QPsZVnJBKrZXn5ZzfFG5o|Jal=Lh zqsVx>9B$3EIegk!fY%K2y?js7%(tY^!h@RF*R|X|kk%5gAs+W$3aZz$(=Ys0!+<04vkADr!XuVfPbht4=les-gf$!@k;gZX^9`fG8 z$Kg(2KEY_~CqjtDAXx30I}UM}YR=Mr#;wCX0QVd56^w@_`Kj_7COc<`2kbaWl*_d2 z$c66tqStl@7LAFx57-_z!y^OQ+@Z2HGH^P}SuLA`u%)@v0=C1GKfjLeu`_Pj5S_At z;Esbn)clwhwKqsiS$gHYz`YU~-k(a;YX0k(QeWkv6F7y(8uX)tgLO5UO9w79P4koa zx&J-nYFd*b%hW$ZwQJgL#?l@;rpQ|dUcbCwe6g!UaKCDtr9A=b;cZ($s8zjN`r zzfWXI5XFc|NOML7L+&lXVvTvzk#O&lmO2`{+dV?U*>G*#oE~-?;W`|@b}yspCnVj7 z`-^+Z?ETcxc_6s{vRjk3h7<{ViFs%((kZ_`w_u*lQ2Ig~n!vMIrm zrIol=anx)IEHW2Sk2B(qO<(SbE2UKF(&@TiOZItYr1RPW1+eE5^G$~94kfrGUve*< zaxamPgB_#sop?tVQujaIjtx4wO)3*CMD8-3n|r#$O8-f%pY3+~b$8CrZPzSee}-k@ zXYc0P@#6aj*yh9ZjGO8iO9EtT1aAQ( zb466!i3vH#F$|-Au$$W)q1uk}LC(+vYTGm8hfpb0lV5Ry5CTZ(*?Q8;9HPuN%bNgs$4O20SkfwF%zEf8WGdvd7m zrfv-S1=%2r|I+c|z9q_bFPVUCNN-gZg~kz5!mdLg@9r_Nt-7E2cfXBk>U_U>HdKPG zoBTaP46HJ(AVlD?h8ji?Ub^`Wbnl{R+(Ht(x)K(Ego;dMwDZZl_;X(qQ~Ee?*w+!I z8kt3VmT1cT=bv3+YurE2B9talJIfZ5cTc9YVczg<7=qcRr=T1-WDyHcjWyRk4y8XUb@=1rErn zz9*V!EbFcvNvSX(&HOmf#gwU1y3PpdtB%D*<>Cw6Ab{Qkx8Nv&(AEpDkuw*9fL%-0 zG-f4YQ&%o@R-f(~yzr~&y_qZnf~KG4P7lr3hwkx}TP_!ei_%JJ<*MV)lHsWb)Q3DO z_C75g5Qn4er!5e8=8X@8}69W<4hu1oT6VoRG^ax77o zCs;`1FrDZxq$>nvTwO=b4H2#90GNfvm15!b%OyD3?9Vx-xpQC@ta@VLMEy=aw=lKi zk*#@keb9+M(@sRA@j8V&lApSLWTDX@159Edh~pk9Wnb3Xv_a}_P;*`K;2nu%Q{!#v zv65oRk;W?_T53*X`RPosMv_@2SWq=Xnz=5dZV!#XD0b$>4+@h0)XnW5c=%L+FL zWBFJjQ`lOJ=ZBqfSZF1xsf}9q&XeFXM>Vp>uDrHy(Pw7J|O_ z1Paod3m9KTMSbt#ovxj^#~i3lXYBX*ZV}XoDz7Ax#U|k1jvIo(YlM{UaCnMZ0h_>P ztP;wd(lyAEhTjmW6=~f?a1obdonE62JlO=Ba!sF85U4e3%R4q0=-4~f zC-0Jx`KZb4KHxrW{pWn#QG(+)j)E6>eGu5~V#I2!uW- z{^`BKPVFVP$`2@_zha51*0e}hJURM>-8!L^+}JgE*Q#O4k7R1eV@`|R^(SSP&8hWa z$#K@*Ig$wh(KsRRdl#3vG(-7tDmv2YGRYS1h~-GmXjUiIk&*XEL@e zsOjW`W(B7tT!P9@)Ns?DjR-(kkhjK{KCQm z8~$~YXKtBoeu;a4pC31k1hu1x{gq2>$)90bf9$c#=>BK=VTV6@ zd6cXiP6>r8bgvC^MaQv>h~9(;lCYV+y75>qt% zypK@Ro9EowHvqz|_KUZbx){*1uDmbTQ!dLW^hHg1_j;!KXAUdbLqYDHzMZqiN55`s z|Ci{|IV`^>3>he1Xrz<7pOrHQQTPX4*GIzLINudxLq;~q21KoX%67jvwA+inRZDL2 zuPSLP&rLPT=SB;+xKhbMCFwt#!-=Ui;;>V~EIVAjt;KI1+Xk~5X%zGkV2DXaW-{mg zXlXoQoH}>=#`-7q=A+&R?-*pwIgy5`o<;xaYgSjbgL>I78m*!vB(O|Pm9bDnKf@B$ z#WOopQP-a`Eucfv;*Gl7?iekOu(J)b-o}y3xz?FV!F%&d*PYVvo%ND{F6)I#7tUMG z-Kdi(a{n{H9e=`T_u@ONUNp-(;Tt~RX@3(*!Ut~dx}qSTu?yn95~6KmqY}*SGPRu9 zd2XVP(Lqs_*-9qfcwRj?%F6uP>RBUWTO5})zExET@#FqRMYhmUNQn2#=$N;h`$;A4 zGkVykLuDrBH)%LmrCq|M`?QuxZ19job@3sFY_HNwCZ%fxB&<^U94l?|H$z9CCJV21 zLzgD@=yJyKB*%vz#))Rzt6Q1|mk$LyZd_2y78M6u`R96i8twmtAYDcgbm_^Ec?iEVxh5lo8LAtoi)XG6mn~J1ie~F(xg4xNI?)!lqn$tWmnw< zNck)BmazcND8#gyP%ZxJNIW~0@82a0k)`c7ra3sv?yH=7nwt!xuCG`!ahV@(%m$z* zjCe6Whxtk~eZx!y4cp3c!zq0|46-(>L`%VHDB|ER70nwD0ku?&T>Bm^KhR9tyPI;& zw6(@g=4uuk`KJZ+Gl=>KneTtfRQwW-grVZqy5VhV%QS%$q7D%e{`M6ECqzUlU!bKEa?%m7DT;FzaZ<@O8 zT3U8Nsi6x}oDD`U82C~e^gn(OE&q(KfdYE>bbz=Nb8g?AD@OVEWYTdrE%$o!VS7@n%_DYUZK-2Ms>Cv z6p8TfimBUDCRU$r*RRVKBAf~%{Dj!2EM)RBy%UMVp=czaj5*1nD(Jg-MOA zb|2Ei)rzSm)lNk#b}t-9 zD+aJ==Vhvi3Z`c(8=d)?_#e#l8%raxx*PhI4!f!5-f2J%f)=wgTPx+{3%x*AZu*$gmfe@90nhX3Tk}36J`SxDDb!pO{ZRgD0z5 z$@YIc*dSQf?d0X&>igcykk;mvj~N2K3TGGs4&n&{#{IDAXl z5KJ5C*Sx8Nb_uSZybU})aMIPt}^fIVGdF5j<8!L-0RyHRJWMty5=sRfr-W*wA9KTQ*PFX#WW}(qdJ|!T;}c7+Bu77A{2 zF{zAHE-yIdIsrM3dmH>LtU(t&;aWr*z1*>ky^GJ2$Hu&7=)8C2H0f>gU_5vHk8DI$ zSEy82(m6=_4c|FzTo+P?X*ZKt@4F$i85#bb*KMj7KUfl~$PcBkysVEIO>>$#c_3Im;=`kfXrct}bXaEtd3s-s6Uw;hJ3R@8HM!V1*kaU?gAAVa- zIi;bNv^a3vYgMLy7L1SMfpM8T-!cD!_i_WTV9m&oiCyI7yZCma{h37#YiP+k_g zOu_Ks=ZLB-#F=*6i@CW>}_?ec@`4If7=GOxC-mVp&Y)7cB|&C+Cs$oin}bEDQw znJCb*O6MU*)2@DtXjENAa`KtMS~@zgDqCis>pDJFE*m@MV>t+kYDw!{-%aFm-Aw8F zRM){`rBtx}yuKD$`&zrQEO}3X4H_Vfi9>KL(?8R>i49@hfPNSyDpqZl1kVo+As2|1 z!YC|TKi}*#FB9*dsb5;T{D2I}xSvU^;c#`c7~jbh4fC>RE~`GFDuRWn&O?>^ZfHu1O>`$8#covr1}Rvlc7ML5MaI)ZaM4{zq%wuim=HE%K~gX@M#d&^ zWR9U}nL0u1Z4v*Jbh39Sqi=8oPRCX?AxiC)-WJ4AdWyJvY0s_SLGxW~x1is0Gg2*m z)A-{oa34GzBfU3328dQ)k1N$7AXc1uYf-@rGxtuY9CAQCspg8$&|aUNXD2?T7s zonJ8**m528tX%|_9_rw5bUtN$J^|U-XINQ_B&B}YHl$o~VMn<jy#=xnucE^V>$L91Sy;5?LRxuE2a<>6J;f}(JMO*0 z@sFX>9f%h??7hx@9v6$KV!KEze2%+6M5LIOIqsTkrg~(-zmLC0ag+c z)$`%Q58*O_Dp}#ebSe#;_ptPBZOh{{U(J!uQiGkHfOo55Aq*&CJH$7Gq8eyu8+u zGs)sqVsGo6(~Z%VGlUL>ej($(fZpIJC=*cSdfnCt9Y%>&jOC_RW5b~|9$6(aHI4VI z=BD9uQsSInRm7>_wWaa@^jwzcL} zkzPGZViOMM acp!;xRUD2p93}?=m$r{WJfzW)UfD~E>w literal 0 HcmV?d00001