From ec4e7131b747aecbb19f07f423cb8fda128fa1ed Mon Sep 17 00:00:00 2001 From: "max.mehl" Date: Tue, 28 Jul 2020 11:18:34 +0200 Subject: [PATCH] blog entry about git sed --- content/blog/2020-07-the-power-of-git-sed.md | 87 +++++++++++++++++++ static/img/blog/git-sed.png | Bin 0 -> 48505 bytes 2 files changed, 87 insertions(+) create mode 100644 content/blog/2020-07-the-power-of-git-sed.md create mode 100644 static/img/blog/git-sed.png diff --git a/content/blog/2020-07-the-power-of-git-sed.md b/content/blog/2020-07-the-power-of-git-sed.md new file mode 100644 index 0000000..118f109 --- /dev/null +++ b/content/blog/2020-07-the-power-of-git-sed.md @@ -0,0 +1,87 @@ +--- +title: "The power of git-sed" +date: 2020-07-28 +categories: + - english +tags: + - tools + - bash + - fsfe +headerimage: /blog/git-sed.png +headercredits: Replacing content in thousands of files? No problem! +--- + +In the recent weeks and months, the [FSFE Web Team](https://fsfe.org/contribute/web/) has been doing some heavy work on the [FSFE website](https://fsfe.org). We moved and replaced thousands of files and their respective links to improve the structure of a historically grown website (19+ years, 23243 files, almost 39k commits). But how to do that most efficiently in a version controlled system like Git? + +In our scenarios, the steps executed often looked like the following: + +1. Move/rename a directory full of XML files representing website pages +2. Find all links that pointed to this directory, and change them +3. Create a rewrite rule + +For the first step, using the included `git mv` is perfectly fine. + +For the second, we would usually need a combination of `grep` and `sed`, e.g.: + +```sh +grep -lr "/old/page.html" | xargs sed 's;/old/page.html;/new/page.html;g' +``` + +This has a few major flaws: + +* In a Git repository, this also greps inside the `.git` directory where we do not want to edit files directly +* The grep is slow in huge repositories +* The searched old link has to be mentioned two times, so hard for semi-manual replacement of a large number of links +* Depending on the Regex complexity we need, the command becomes long, and we need to take care of using the correct flags for grep and sed. + +## git-sed to the rescue + +After some research, I found `git-sed`, basically a [Bash file in the git-extras project](https://github.com/tj/git-extras/blob/master/bin/git-sed). With some modifications ([pull request pending](https://github.com/tj/git-extras/pull/859)) it's the perfect tool for mass search and replacement. + +It solves all of the above problems: + +* It uses `git grep` that ignores the `.git/` directory, and is much faster because it uses git's index. +* The command is much shorter and easier to understand and write +* Flags are easy to add, and this only has to be done once per command + +### Install + +You can just [install the git-extras package](https://github.com/tj/git-extras/blob/master/Installation.md) which also contains a few other scripts. + +I opted for using it standalone, so downloaded the shell file, put it in a directory which is in my `$PATH`, and removed one dependency on a script which is only available in git-extras (see my aforementioned [PR](https://github.com/tj/git-extras/pull/859)). So for instance, you could copy `git-sed.sh` in `/usr/local/bin/` and make it executable. To enable calling it via `git sed`, put in your `~/.gitconfig`: + +```ini +[alias] + sed = !sh git-sed.sh +``` + +### Usage + +After installing git-sed, the command above would become: + +```sh +git sed -f g "/old/page.html" "/new/page.html" +``` + +My modifications also allow people to use extended Regex, so things like reference captures, so I hope these will be merged soon. With this, some more advanced replacements are possible: + +```sh +# Use reference capture (save absolute link as \1) +git sed -f g "http://fsfe.org(/.*?\.html)" "https://fsfe.org\1" + +# Optional tokens (.html is optional here) +git sed -f g "/old/page(\.html)?" "/new/page.html" +``` + +And if you would like to limit git-sed to a certain directory, e.g. `news/`, that's also no big deal: + +```sh +git sed -f g "oldstring" "newstring" -- news/ +``` + +You may have notived the `-f` flag with the `g` argument. People used to sed know that `g` replaces all appearances of the searched pattern in a file, not only the first one. You could also make it `gi` if you want a case-insensitive search and replace. + + +## Conclusion + +As you can see, using git-sed is really a time and nerve saver when doing mass changes on your repositories. Of course, there is also room for improvement. For instance, it could be useful to use the Perl Regex library (PCRE) for the grep and sed to also allow for look-aheads or look-behinds. I encourage you to try git-sed and make suggestions to upstream directly to improve this handy tool. diff --git a/static/img/blog/git-sed.png b/static/img/blog/git-sed.png new file mode 100644 index 0000000000000000000000000000000000000000..6fbf26d78e7d144d44edbe0e0ef4aa7a9d790a75 GIT binary patch literal 48505 zcmd43byQUS+b%u^NMj%!Dqsix6(0S5`vT<-QCTgG}0g?(%lWe zd!FZe-gVAezqQUf?_cj)Pw33vd-ndseP8!=UH1-DcqUCsL`#G~AV{A+ky1n;&Y=;A zGfo8f@X1ikbteSk8se#xgtF7urBP>P3Zoj%gMtCk*%jAa?cF8&-TOwPixr(7oiDw* zxQo05zf}uf@)vAuG}iwXDEU=ifw@~SIN;kIvhFtpg8X;9m^;p0BOv-la^uI%O_81l zySpddR^rOr3ZtZ?><5RLD);g-$`{hIzol1ii){CLp1tmK@gc!=pZAu#actTM+#liZ z`xGyzng9LbB5^$O@xPy5r+k3I{B!ihhiq@^ssD4TI>MLhKj-BkKGhFaIIbGUzs0Bh z-~NMac)*AL&-L`rP+vHv*hzdAco16XH#o5?08#dF@(omZ; zqArCrvQG%+?-cmv_4lj(c*PC>D66UxVVkhnhqpdW4iy+Z?##){yEH#PAArF~X=-Yw zwDkY}jk%|mox5T1>Q%rqT{Sg-Do&ki+}xK@C=>x9p@fr@Afu>@Pi7|D9SS1vRyKC_ zM{aH+mcL8iwnlI=^YT($x^&6uXpbvDKfh~ucsRlSE*o2~(AwsOd-v`=`L2jz6s3g& zrKP0K|9$Q3AO477zw~#tI~@lHhqbM(q@v=-@4@I7zP`S>`T1v?ZQvL4>}-TsgoWwQ zSj^i`pRRPoiCgXLuZ~sGk&%%_@>|fRXJiPA#Jw{)m3{V%@_e32PcmwEWt4z~q;Ywq zq`g`MCfu#EjS?#(BXjN3&x^FQ=~q?ZcF%l~^J{C9>vk?IF1`VmCub6SRrmDPCwn2x zBWY>kncI|Dc!Z0WFW-pNu`RVCq@ z($dmZ&9<^UJEb-gwP*N8$4^fj3&JJRlJ(+x7wYN(DbM5n{Q52{ zrDYlL?85 zB_BRK3(x;PCMG0;Q}+fNn;deiHyGhTT~JceoTij=z9I0+?Ob>eHqAnU%Yi=fW=2N1 zm14K&xMa%Ys=hxs@NSFbX_Nf=_N?CHLJ`+Eun``Z$10^qyKw>0478Ng?axjVyHf{oc|6N z*Ne3>p$V;WyQi};iAP6nS-BK6G=Yb^tByh#K0ZFesM|rlT;CP%61*H58q(}3EGi;w z35$*8ppN_au^u~GW_zK%yw6;?=FI zWA?qxjH>@kVDsWY4r#IC-k_+*QRK0x$B*`Dx%-xXr>C#qz56rOa4Y#^>$KC!(S2BC zcA*0Nm@`bBCn;o`^vwyy#l@`=(*L=8by)VVxM^P7+Tz94cpTGme<9gj9Us^iwWqG| zI2QW&>C+1(rE~FB$yq!oIfjdpl9HFGsBY6@gMxwv_oUx3&c_&8Sg=R0%(O>)*-TDO zzW@0OwPkutVm;>RX~9C3Ew8u> z3k#{MbdvqJ;*aYgOnnt~Rb90sB_$Pn{gmJf&Za5jZoag&oBZ*CIa17B=xa>O^$$;wurHjPolO`V8O1#?O~F*SpNC}wm*3lH z<+M54v#E;tyH+Ck>=~J8-hm)BYI@oEN`Iq#Sl26_etF2goz^Pzk^4GoPy;(~8rRF_6d$a|9I z(Ib|%Z_Y%Dy7E7Z6B|vKJ-^>f?%wdHDR|rC6w=t*#zs9Zd=3r`)&2ZQh`V4(Nl9I3 z6XtlCf(Y;7!-q(-ezrQU<&tp^$;XfVo}w}nN8*`hI21)iyE`?LPZX{G{u?yp|R{J}K=@myhdPTfMH`U&6wCUnD*b^cWu-V}zL6 zU&g^eh`vD1D0O;ryd6u>PJ{jX`hI0)rBv%sg`?Hp{(c^DEIA8?<{$>6Elx#6)riFg zg+G;h@#0dleDtky638D~H6GflBBAv6Z#YpZ4j>(t)OQ@y0zJ9xca}6Hl$hHkZhV-4 zSnnPy0VjSj+MZ~RIh`sO7R?Tiap`NREhVFJhn-~|@2l?Fwa&ZEzy(6`-^G4E~l@%K8jcyK|KR$u{d_7F& zQR~dijGtPL&U}nN2LmZuUS580Izm^f20|UFuC8v?VIEhFw!A#4YxVPiu9W9Y^kQz2 z$1mA1_J(wkE+_Np%a5KsUw`4p<*_NXJ?bWjT7oBj?9c2mWGC8Y9-zfxB+5TlX4{;! z>Tnao{<0Y3KHK(%M{_Dp%)MoW;-!WLs{7j`*rFt`N+uQ;iH(emc8)kKsJH{HD2w$ceL3#BnVhW#ChZVoAlYAfB(LMC`-(7UQ1hhX!hsNpI!rq zHS&%A{{E$!m6a77LMgT!ZAs=cqJCLweLWfr>ywV(ytd4C)_VQVqfD)`kD?--HuMh5 z!+n$6i$O@kIY-4i6p_M?*%L`6MxBh1<_K>;`+9NfO@E1%Zl&|)<3g=+fN}bb0hi3h z8vM!qA?ConTW|b*+7`tpt1t#@%D8>1D?!qW_zWi}=T~u0M#vRwySr3h*KW&2z9}x| z&vIVlOzs_7TFj}zu8dZ!&&GM`FAo=a8CEH#eb#Q1xq10$XT%B@sgI72xjawYBnJ9D zJUld8r>rh)Z{Q-FxVZRvJUrC#!M0ZoC&W4t&l9a#E91~@0Xqpbb@e-u&tX~TS&j<9 zQFWc2eu4WQ92l{huGgyXBAstt=&YwT82M2l8+zy?}MK$2ZELIwK-{21k4km`t z@P!e_1xl~?bvE>H7xo>JJ*75NwKnwOoVwYLw6;h8EVst`!4Nuu!BY8X{(0?LSW*S^ z^$iVpQ+B?2uuE0LCnogxPyCrY^y17I?_mfjJdf5dL}Tmf&cGx*c=CjxBSzR?*Yo(Q z`@t4!%7FVz|1KlgVXC^iI>@eda0Hk2#Dlu~y^+ICMG&)!Esy9ZJ7Y!Bac0Gt zCKeV=u%7TduSD}()I;>PnQ5cRRL}E@@w7h{r8ykAOF<-Yv7o4^3HFrD-Wm$`)F(&# zUdJI*TmE?+mgkf@#I?(+2BBn(^&ZC_CfCsoYL>mR~{=)~a^XSaViV z`c!9N$BUW%`*-drHUXJz$!{!2{(ND3!T5^INjZERxuvbtpl)Jvm!6(}(2+N~vA4g! zzOU~peM&hG69YpQ-#ZAY7#beGcF6*Vzm0)c%zwjzDy+|Zm{1G5W{6iQS*}~tFR$}4 zEMYjQA$hf}-z%Vdemg@QQ=iaTjjTMb;Zg*OYC-GxvFMP6Xcnk2jLpp{Fg;hX zdl+}awyu+i_wQ@ZHl)5tTst{-%`ySJKqf3KOli(*rm}xV42e`&JhZpB-}@8HImlaG zUG36(4?Adt-4lHh$|TO%)YPQela!oHw37mB+e98cS2D#UuC1l@{^Q4QeC-)(IY_59 zy>6sosD)n3eo93#)paKB0ui2MGVZ8OkxG|snZivnE=U>>A~P5FgdJB1hMVb#&&w9-jq$%4pepxm!F7Rww{9=0cLQ zwDzCsE-^oz6WxiLDp^^X@>2&~47Er8dbwsYMC=0izqp+m^&!MLc)%#NyiGCB(;l~< z+wdqPeo0WvCWkn>UksINkfVWAgwi=|fnA9Qt0&g z#UFMWY@&DeYkH`K~f=ivqBd&5(D=Bi#dhWQ{i-vv zS5E)vvSDak&TyStDf2whuJMQoxw1%+@a>xygIc5MorQ&kLErVa=PpRK8j$3Tmsh-_ z^Q#{$FzOuK+g=g4_5UoX=)*f^u|NEV7}ODoTL2MacQtFxld*BTj$1f>(H*9C~?1rg@uK&rR8H=+k%PX7l647 z`U|msTqom0K7?1KB2FPsFOX6sFXg;r6xHwH&?;51(-c$c*Uc1x!qjLAKDbscXX~2> zsW9J!PxoqlPLYc4nyBYVWy5N>qQ5+pa1>Xs+8Z-sPx?pQea`+Zc(&TJgPx z+Sz-PgosGLXLY4@wX?gi!R<1--%cld(D9(! zpPZ?_wUs!|eTT-?Qer?a5Sd&S_a(n(W_mi$1R~!U%Oa;L<4FOI`JrGpQ}f}{7JZ5Z zqI5g|R+!BC)I0G%fIe=GZoLo){3>7-+dV!%XEi$7Oe%>YxhPiA=&AA(#(rq_z%t)X z8t&(i*MOQ!-$zf3ot@olrUSC)-TBGMw=g4r071C8;_>@(!T2umBp2jB z`u5Jq`b#G2bQP-qbL4pL)aGR7Z$1bPo2^)_Mo*DcRb*7uQ^zl`H8eL%ch#NojO0T5)iJvC z^z;mEVS5$qcK!*%FaqOS;hqUKW&<4FBUQrnk#TXl{-KW!JR*Mlc!Gnki?^;r`mTbH zQ*`>x<*1{1O)f`cBWLW7W|CUN*{@)(94^DsX~xEgxog_d=%d=SppxTEU0J}z+qS<* zN=C-9G|T0XDjrL7TovcGw|0GFbJL#ed7PL*kErVo#yvYbZ_?2sCns88+n{IZSf&RT zcM5?NW3bduG=v3eVuEUaCitvk{~hhA#2AZgxLvxI8*oMep`ni-JU|$>N3qN~x7XE4 z7BV66#0*-VJ3GP2a6} zS!{l$Ij!7Zz)rG@zQ*2>NdQBLe&D(sUr@kv$k59m9w2Jg3p@BUnudrXIW;r0u{~N~ za(OufYINeAFHol?0wW{2xx5g?)o#>=$)W*#6gS7+SRYwdECE?bQ_X_&q1Y=?G0eJI zp%6Eandgjiv_JiP_1OMhW~}Pc(7BV=1SWBh-}Be-smG)Lz~%9%q{`Fxd3bn+c*|EB zqh&QTzDzWw0Hb3#U)#_n;n5z&7ej_VG7@)K`EAlTykNL=ueB4>=ZAU$E0!1 z5uEU#{i15-8)^nGx~eHYhr@}7<2(+YB0IEj8`MKu#7~nz{RYOw)YP;do?@t-5u({E z0|OKJ+Yzlpu5}n^kJkST2n>EK9h0cb%~URm#oi?0dg>ap9k|cM7-^&L00DKxYV@0e z$l9ABhIxMX=USx@by$iVQ!rTKK}WUI@df&F*;;sa_;AV34D0x~{Sex2!=Y){4jCTf zRI@0OKKgmIId#SB=^%}Ib(p3@xdFl$PHygx@)3lT2V4~%SXSZwe`~F%U%he{D-y7*6G}9yM*1leF~gZFh@?JT$x#P zbabmnLuskt&OVT6Ln4i)11_&&3tSR%T8r2FT82v(*RNkU|C$gxUe1ishQbp5s>yk+ zzwuOfpzqx6(}#VL9Z7BLFCBMn8U~T7FJ9ES3~d9q5-aLDxZ46>wcl4(v;k@ z{q6Y!`v*$THz(@OdABpl1Iy_ObZd06ZjFafT*{Qd^vi0uvbm$6;NT(-J=@o>2X~t> zG|UI?9!8gNg%n2V4u$zw!-0LbWUb#P`?GQ8nt2sHI2MKuySGXVO!ws~L090TqdT!7 zbi#!mPoF+@X|0cli6IS?`ZbRXkBjRxr8Eadf}gq4Z9l&w_I}gf+1Y|C^Elw!($ehd z;p=JBVf8F+|Cf!J2TwFPJBC5X?#ZeMFm_yewFv&KnRX)EteQcO7pkgQj$Q_OdIeS0 zWXJnQ%e^Wn^SQ1B^RL+huT$5B8M?OVGRC8M(O8o1{M0Z1g4aA0i7|OJ6x(Qdil$h0 zd=h`I6XARz2-r0=%{GFrJDJ8`^wH>|Sepu`^=~gGr4tl#cXgnQ@1CAR%TeD0<`2jV zz`1JO0ipuoP{ruzW$*uTtzF|9ZD{Zgp)xaU^JMWhq~>YnMQjzU4Y|K6Szr-ew~ z`edT54g}O<78j4Iqdym7i9wJ1%S!g_%a<>0W;+=8L$ZbMFT7#>l&0fgVeZd@*kv9YcaR$Q&aCqSXq>x?ZVZcPUPg|F;srAn5cP;FIMcy$jdKx9sHbr zy~A-cv}g3Hn~qNGMB~U8BtAj3ZFyPQ{O{eXM0gc@^g?#2KXWoB1O_x9x_pc8}*Ab;I;CJwc0grySHt> zbezR8?pROHXcrtGJm*N_%jFT$lJxY`mV=^!@#&O6PxzCYr5?xS9s4*zEHpF}C}yvj zKG+vaZnr)>*{VMORhO8p-!_dJT~CduyC-o=J}PPRO9}=-fp zq3o{%>V_B_8wrfOi!enuJ%-dG*)Q+wS9*t%5m2g(I0K-XS@QCo zQsxX0vz|aeJ?RB1N<&Z2Ck7;N!ddnc?mJ6gCh&Sb-IA|o@;rK*n~OYu;Q|`6gBK&^ zc9qs1fMcq*skO-lr~uwg{53FrY3E_3`s~@W!E*b1KyTvMraEH&CU|Z(z`ko0uCA`k zH*cN?QoA9F&rHwEtQEVss5uz9eGUN?C4Wp<*i{ix(M!PFfi$MS{-?>y;0rURZ(x9! z!x*4;-s@=@94!U`0GH2+|Ijz17JAceIr3>~XaqvpnCpz8kiF_5p++Krh0^onIf~_~5W=V^D-)PD`;pLiF$gT2fh; z_^M=03@9XUX}so-x*q#@o+taa;o<#ZEKIhQQ*(O4|K++yi~b2Mf;fDeH<6&xny|8R z0t^8IMvQ4tEF(S#rwEQX8h{|l9KZ2pyg3gXN9piX9Tn#5OtR*DY1+@bLPP5jqeV{G@J3Kn~;5ZzRan zEFyvm(MK`u)h31OGhzi%{}P8~P283R<|4PCpaF>DT#FI@M4<;LbbiUE$Fm%?Ur05 z0wP^;&cVUKx6DiuT;|&BUNXl1uDS~p<{wyj>XlAhBStqb6Z(-eg&MSmPySO@H;q=g zMzoJaqTeNVob>l) zp%|Ch>w22hO2Hu^O>lEu;EC8;9-#srm72$pgx~UaYC#}tTplh`NI_tQI?5N+CQzwr zLGsK{&8mlr`V0ct6$(qu7)<0QUOikVpbTeN zde8Bzr+#p%`5ns4j2PJJ-rnB1uZBRqna6?!S)5M@UFWcv-gClY-I3 zX>0Do_h1=tHElWl=ZHome(KozHco~CBFoyw=50s_sg{-&(so7;1Qh$dZG4;`>e4sl z|AV>eziD;qnnbGVc47Q8#wIqBq|R3~{?co-c2>N>nC;?y;ALoQDfzDl>j`;p!aqk6 zGf%NITDmM)qh5*NasT_Jm<@=k~Bw>0cvTdUb&a5<%RAY>8)h8;0tl&Hn^F9p>r!Q zXT$VSwb-CuRi+mNJ#_Xz*E*7`So}NMR)-iH!*JQZ|1lmSp1)@3&m`+03uOeh23al= zS1#!|hT0w)aA|(N;Tq(hHa)8TEqe+CNZ6fo^lAzUZvbmPWDTo_1ql%94TP8}C?}9c z9rWO+(C!lw9|bRb|eF(5d;+j#~d#Wuvk$3 zqfZ9}5C{qjJ38qA|H}tkI~Y_-Sly8s0Y2(-s;ZP6+U2i$3jtX|(t*osYq7Ql2L!xH zOk{?2{NclgxAu$u60Bk0Du2J8y?|Rrw)6Q&2Mbkh&4uA>ITj7AwYxFoXqn|VpX`fB z_N4L7{(IB!KYTb7I;EgF?9o#PK^unjJOV^?GO)paiQ_S4$-siyP_XMiav)= zGS^+?<70Gk5`Fj$d*_G=LGI#BwxW{R__T*Y;gjcugTg&T7t%I^#*k1%y`g z7mQwn`d1oiVrTn%tcogen+?w!F%fs3X8JzNmO`5l$F8`lEJboNI`7`=?oWEqH-ev}dj}tJlc7b8y_JvhssCoT^4M8lt-x=kv_7668pC&c zg^A^_vKzCRNyu0ys5-YXU_FFB2E@DGUlR$#*o-7{?XKA-QT1QHS&Zm8np)e>P8oD% zz7n((ZdtmwC0Z>S`DR^Mf2}p`)vGXG1cEW?GwSz_F@;Lnm}|JE!Uf0GJC#4O`!y}) z9^)nNH(%#{R`eB)&s{a7lrfFUJ4#At+dQi~Vei3y_{=urtgF>4{i9H7xgmz&PwzI= z%g9EZ{Z))~uCM9v-&%1Cns=SD=1KE$SJS1=$jP|?#yK)FEXY*XK0H|)bsSFsW0Q`K zPA+)2Ko%~l?*s=I5;RTlOQ7~Qrc<+2!ZyK7Xl-r%rldpw!uq#w-@1PN@*<_<$H@Vp zHu%ZiI@fITqpj^c0t_rDpkr|dgHj7t5m>8(P!Wp~1H2%i7rZF!u+*i&h%h!YlXQ2l znkWD?I|0@=JOoHsM6edXAQEy4PLe#x&{@uB9)P6@z&fP;ch@ETa9lc^iJnSKOysis zEjTzl{0CONBv9>ivr|*v`h0j}aMhC|tlhBjX;Rb~3mj zu>Rm=N8ukZ@eRWXf1w+v|4;=ylWe@CYd=L$}OndJD z7Rs_$*7ZrhU?0D^zFr3xSOcJiGs*y@z!?>ecgH9H{ym?j90WrZUshJ8bok*uW`k4O zHenS`)kGOit!kT_FCe6LcUQVpMrOeI1hS9e zsVZw2n1xC`PpkV2A)QHETO$v5^9@=j=I4K&xc~ie$qguvrSXFf;y3Ap`;O!87Xqcc zJ}^t)0Ol%W%0KVp$IGQ>iu+y+FTx;0>f8F~n>i%ORGa3OwR?kp=)%ZhCqtp8^4M7|9S5SbLti(g1Z|Tm+oBY2*g}o(&Ej>V?w5+H%8mRt} zM=^xQ$zgBSq^LV`U9}=wTtgPoqusx)Un?R(STm=cS8{0n^T>fOC?k53F81vzd6Dk5 z9I->%mmFy;*&L!Lmq+UDYR<9WN<6zV_F}E#fKr2nv@}+o1oo@kIGuk*j?4!Qt#{*` zN%||3JI+=$8~7O=l@C>)p3`}yHkI+lsPtoe`t*IfS%%+LiPnET$ns@qFFJA3O%+Qg zCcm)%#Z7@teijo1WjXjeQ2^;-;-Kgy|MlxvE?|nm!NK@a^{bf%+%$kbFJ8Igy|rZr zv^X)$&AIsUIVc1HCOwpqAp!vncLId@DS-D+WMt}pm)YW>%%@wza5kx5Jw2D;Y}in_ zS6<1DGw%ttzwk^Ny>8?FNd$?L!9izd!czvilf# z#27|KhKF(0E6iU(w1N2X))k=02_GC)UIR`$PXG+bz%1ngTkdB7(qdHj*E-S+TPxv871~zkx)QD0O!#A(b*|&XUF^X>sM=#IT6dVALHY% zB_$=*4h+Dp<=KWLpoOj{8O?4lZSs_F|823=f(@DDKIW)ooOEkk#VaC~}O<{KfOLCX(G|Lg7s}+Y z8GHHCidzqZZed0kL(Y}tBY&>mWnHw_CBVK?*2{d(JM5%pMeKEX(o^))@u7hwDeT5; zRx0uF`Gkp;i3+MC9w}Q7+gy*_9&T6mBnYqO{#CzBH}E_CO@$+c&U9MrDHkZDj)5~& z>IRhDe`ug@D?Lx(v z0lcie0o@>VCneUmr$x!iN^>0N}>k&k4_ia+^?YrJn;fifys!gV7 z$;(k|_6jUBaoO1S3IdOOpuSnO8oKfTrfF{H>F)>EmvH@Q3!~6FL z1eBr@%E}ao_05N1mU|pR%M!T@ma$ydUCUzj|ImAr5SWYvd=V4DoYfcUQvkTxGfHZ{ zeEH$)S2lt$VoEj~s6_OYNo__h&&*)!BmXP@;7W=GVqbYGs4LVjFojud380nz^XB9= zo`_}$&HH+O@WK9~R8H!fYN6=U2Kex^LYGkcZ;=HX=I+SwfCNKq(3IJr5$8FTw;b~d zV%Z)snY)ew<6+)^ocerwLp-;(1{pdr$96X_86^&LmR_+(r-DaFwX{4F{=6cq!tKwBH z_^FCKyXOzF0=pW3YA9Xqj?7!7L5y}{LdGb4OXd3bc`2|ul}>eH!~_I-s3-F7le#J@ zc%f5W;NTn_8EF7a4Nhw)z5p?nI<7JTe{-mVMl%bBUg`ZoK}iY47N~sI^vyE{K!yQW z1HgR-fddXWg0|&GfAkFmFE8)4d-sS3a&(&ks10gE*NLVo-8QbDquef#?|ZM^=8Sx| zQ7-gQ1OO-`7CVG#;xcHVK%^sipq#C93Y|LN`m0j?@2MpM$1^zOolP}85Db-ku$2ZB7hl4<^1wY9lYs@Io;8;4zz zeN8DYZcnq;&MIXZE=3UYc_Hx;*6o(j(p_5b8_j1Zk5#|Z!JRDr+3m- zk2zA}`13b(-G?x5M_S`o6qIf6m-nY-K6?uR=tqkOTl$$E@{CYsFfu>ZW1+-XODvMV z`nuIg;(=~^q&jtvn%~b0_pBG03_R5O{X93>ytJe<_#{1b!46yZy70aarw38+V1GI z@qTkikaJ4<&o~PlPQF+7Q_D~K2vF-c1?g+jN&HWk3hS5IV>AOIOeW*{2TznwH9kh_3aCTLO zuCRWv?up8$I-bgX(}gG0bS0v+tM{VLdmroP|TM zARpoW)t?L9q5bfEHa%}s^{~9L+Dzh6)#Z0QfA?xUIrLj?hE(y@nEG~!GOq3|MqP%` z>`Rvu)tw9tWt^Df*8Cmfu?-=-KVyLdn4-IHPSH=V%b3{@G}_(7%(F^HpWPd$qRO{t z`1{hYCi||$Gw103$_gIL@giq>{xfl{K;g7@f>4XbU$)Cd?;$my;SpUd8IPZ>OP;uN$?r^nLtHl4O!;+uJ;(qLbqmD?#^E{t5Gi-|W) zcG9u`C?oXw-DX3a#8A3VzPw5U)zal)V&*@WimoduRIA515;z1tYK-8-o8G@zKe$Sz zXoK8fpo=)DR=tQFqZ~j3YJ8Q4x7Q}%=gT4w3TNfU<5E}Y>sj%~`f>@%eA4I3IWcE& zN%HKub9hsI?VfhpTOhnjb&=fS=%S*Osm4JSR4+0O)AKl}SBDNs zV3e7S7aYMD*e?PQi^tm0k;=^oT;w>TRDUIuPlZu8fuhG*-Vw^3Tx{Cq%4;z&js#J6 z9gL_eT(;A%VZcF$Yi?w7VhxjlrXJ%_8dV+&?CaOBYi+(x><2c_AuHkZvFVb_n%~ z8rfJCLCm7EYD(>Ck(}eQq`2th)3J1-rZCcSGxcKa0S4?=`*U3y%@O6+yF6V-WJq>Q zSXdY#Ac14;Pt{0O&5T-4Z5^LXMU^{38%Yuuu@o{Y$kWMJS5HPWsQ1H`7r&d0n3Lof zTz{_g=ORsM zX(>U}#f@_VAV*!ic=3&&A3l_$I3@}424oHBwjqoPwi?Vm153S+HKpA9mPaYDs~p5= zm`BZKa}SAat5GwHOhoZn28X&P9mO3N)pI~yezvInzRs!Mj^jSY{KCF* z)MzNgl3&L#lpmAv>^4vBSC}?dXEl=h>(-766E*d zBK6K-Xt6`6+lt|hGr5E&eWm>y&Znx&gQRu5zUU zlLior{UdLsp&tjIg!&Ee#Mgy|qwPN?R8N4N04LDlnpyw;{R_3w1!|-o0-S8ge4G#L z^Z0>HsDz$JFnUt+nNpnWO_3wg^0Lg$t0tGLM%660i`z+OARXLbA?^!+ijvJ!zcpwxLYxx=0hgwa0jnV+9-GvB>S7#J8B34TG3lYJuu z!^pcmGEs9q$L%YSkt6z+`Ou3wz4}XIM7?|&C%5>_bWifjsq;=#%eu`izTX3tGgrVv z7cZIdmt{~EC&t~jkVyE1i?e-tj_98g|7O2dwRFCx-mZL=vrx;U+ef0($ZM;c3d>5T zJjpGRCc2j)%$^Ab+AVvspLA(E!O?|jJy@m3h6!s7J5I)Gjq>@Bu>nC z%HlucA}XDCD4~+jSG!M)ZqIr!CEijxl4$n7yZ~d#2-x>T^%2)OYuyE?>CV0HnfXx&(4}GRapb3&LPT|emG28h2Q@zj_rwG4~iVEr!Kc$CGm|v_$ zj~?N{4*{(a2sVrQ@o^?#SPfCE{QQ(4SqM6B+{AHS=w>pB3yglD^FHrm6PhcxG#Icq zW;49J${R@9k(3a?*XEzz3CfUo`RVM&Fn?u*PI8GMY%A5iqT_Qa13O_fq)w;m_J5v= zMEdJd!3Uf>vk3|6WRHR`_k9U*%3onWtS&b@oM}<56nlYq6ujY0gtnKr7^ME_2V^_a z)>Gt0EY;+pWao#CYD%@sK}eL5YYGE^5@i2v+IKz5*Nr zZJ=O18^NJ(C?eM`Elw6wf4J7iSH$Le@oIVY{t)%31m%qLC-969CD&~12g4;|d$A=9dK;s<$BXV5#@6!NGe>FOH zxVJ|jbR{q}6x*AogfcR^05lK1p!I{U5HVfYhPcJfp98*Df@F6vuwg?Ph=EAJ&fyFdsgEs_&$IS_f9?7 zu{CT;?z5fJ%bi0k(mxNE9vMsDupr<>?G7RsFFvQ>e1jdx)CZ zzh}-ELs@@R5n<~7wIqzD&$p}^3XKnU+uvKVH;wm)$FE`)DIat;^8XpH3R>zfKVV_0-z;ar7!9D88w?FBthNEYSCbH$hx+w)3o<)Jm}J1sk=szybOjo zwbt`U6;qRCv05uRe$?2qR-8nN-c6tBb41@wo+s#iV}c?<9335jw4gq)qkmX&E6*?p zMx`Ein#W7o^;Tb6N-U0H=y-Ng{o{+GwL&Nq^_1jV`VAwwmkass zz1S^t8=4{Y* z=+)RL^~%U-3OpuFz+60X{len2C89n2R{A+jea(}HCz2{WO|aYlj%CyW(WqUmwJ{0Z z%C+e#8BhY@jF?AIAEjpYjur-hjLaqA`|vG@86*rs6kt-oA%=NpzVqug3jDIs>{*>skaT$$3QGopLuq%1T)N6|a*n%qvi5 za2h8M=RG5VlM}1oxJ)zuqg?-0>Q4Z*|LhQm;?~Z8h=cv3W4X0r_s)V^o^b6y^8UQj zf4$!1mkrJ%@Xx9LLtcPVn}pn185RED-`IkCflC`wq5c2&B`^O?AHx6r?J@t&3+uhc zIs5?-F^*OKtX&+q%iGnJ=qF&s{XRO{KRi4rT>%y`{Q=-|Cql8XiTfM z<{@v=Szb`8+rMdVYAqZYSSM^3ooQw91T;ZB@W;bYoR^8&<{MGvQ!~< z3XV&saSP+bV9H4$=f;H4@ZeXuY;y}@7=(*own$<=>9YIxtf(1^*9k9s^s(G_Btna- zsV$q0R*`GMTPCiMF^S2&&AhO%avXP}1Lm7WxA&+_Xl*n6vI5RX+`9?{L%kuDspjZ} zK)JKF>dZgH55L(Q#b!$Sw zGbu|IeD~fxZ)l_j^KOOReeJRw`&qHUFhD4F{eJ6aO>%^BbXzy|cn&@g`;d=vnd`43-LJcKu8fL~AkB$j38^xg3) zIF;C@6G_qVs+_%6-4m~xqiIf@O$469WqSb+q_`i`OalzU(7e61&<7Nb76O5T)H$BV z_nItgAxU=3VHwKOCa!sQ{dhT=b-I@7y3j- zQUl?127%L(K}3jh|F0)x6mfb33f>%jGdT*2&uvfby1j6SaMu@F!rp^t15bdbS(17c7(&bZN{mL#*UE~a^M`drk%OG%DCh`LEDIc^6% z!gJ#_;_yJeU`Iiu2RF|5q$I-BG5rqIOi-{}IE;eCDI+V}-PP4K^zBRI;HSdvotsPU zT0WJm_rK*YVoqYq?2V{1($gP;R}4&PlQ7`0tUj5UJdY9bg+h%`47vmwV7a}Ii?izZ z6D6^l-P~I2Y3`;hcDt9g_vh7Ab92dwp3A|@-r7&u zFlWlo4S{)Q`&kYd8oOeqeF-Pqz)OT~f$BjZMovhGYTkZ+9o{u?I_vfkd8EgB#B_C1 z`w`F5@vxP7X3&qO!v#uZzT!#chcpL!>0(UBMzpary$K1A-a1}we>~6z@2lc!`-75G zi(fFOcHLQ`!Hox$M#N$@HdFXGZWfRm=&$_nCK9kJz$2PDn5>{h8}dgr-w$(A9f58zf|EtD0j7ExPlG18Tx#)<202a*nmJZSiT z1g~s)F(T1ENIcv_Xke`L=hSGmddjT)R4{a0>auI&63gQy`My*|nVgGKnL#xA$vY(a zQnxO@yqFm9A$4C#rU|2xc1iJa#wFgH=ea)KP?Mb!@yU>KOa= zhx7QR=(y~}`iPx|?Y^!q?u7=;0F`ZQZIxOgPfkhMU*X*B6%|*mUfpiVhqfDief`g^ zH75u6V1R1DrVcGMpCThu*<+q zdxNFvMIAQOd|1g=%OKEgEnaxUpIbR2@?bvz_5^)U9|UsaB29xY2_ua#02==vd+!-l zRn~P4qLx}Jii#+xU?GB%lq7-#1A>9534078ZW~ z{CV1=-}mrB3R?+Ggt#MH+YH>1aZiD-F71vTJ6NX8f$ybJsOZfCG{)3<_@j4;@U|BJ zbd$qkGjse&drHcl)3)2}ljyRcHJENzD_9Sx-R1GH_mT6jj#FND!f!i{1v<4(yY9cL zD+hvD*2Qp4JigcsHGL#)*WVmHFO%2``LnKf;m^Y81^$*i zBKmudzfRzgp6RaDSpRfLlYAc<^3%Ppc&RWn!u#}y$KxJ!2a!ZV}%;H1;BhnbPPJD9ykm@iyk<3tQLTSU%!5RN2T?#aitY@aWrKF|(0;3N^feR(`onQUZ0Stjm$t_dUv^$@T`-1cbHCwd>a@DJcm8gYWwzxCubI36T;s4NjrRjKnzFtp_j!fsyKp8hsoIo1ujGPK3Y{9hUrJjL{*vWTK*9Y0CA8EPhXYq%*3G1{X%i_6j0xE6 z3%#h#79KjM5dzC(zJ7X+Q6J#_TQr%OnFD~W0f8Y?Y;OZg0*U)16O$OTDjA@0*OC>? zQ58m@IA8>bHGIu&z?828r{8CAxFNg}q96Pj+tWa`f#=yfVr7UbWIUVQ z+ETjN&&$&Q@73fi-J^M?_<~sjOhgnzNMAi+hNY#YKC~nengWK4Q^O@5X?cbvF4?)p z0fwKyl!Tk8FNI31UjB!nNGV0*LiW0AZ7=TU(IX%$;;%Wij2e*)aaG{xpQ*(&3#eab5^4XA_>Qhn*Gy{TxUevEg0^S z3~==TT|T}M;g@(F4~kV};L3%+9Pl*Oepj9V+KMQ|z_5J=ASxC7}}(g=@?s9<2sRV5pGv4 zO*k8-sSowudK_ls@YiD*jRPwC4wA%eVqC=|&UHy7Di zla|kwtUbk%1xnBk-*h5oR!H>y;SPVl!@}up>x1)XZQvx1sz&gqsakP4SC$7YH4=3M zK;~r7Xd+Iq#VJW8rGOdxX%*au$$JR$;8pPQW^UJZ1Q-=aKbY5)D-fEYb7G3w7>BjE zaZ3C)8g>J6-3-9bT)%YnLaQx-niX?M7!o9;>8Pof>b*Ona+Bp2-rOy9ALr40FEBRt z;rDK`PzCjS4dtuX`fS{?7w;#mjJmhg3F&vFbvk)TlLFosyM+o^yTb`by>eWlqt221 zFdCAMQ-Jd5(cMv+6;Gc%Q!cbhHakmFQtA-!O-JAqYct_rt90W=73=gYnCogE9vv_- zndVvi634ZWGr1{Asw3HTIR!HeWK9%5(#&5U>YMiRS#h&sJ$qDb2NJ8O=@ar5mldnN z7D|J=fkW;(_DfkZ*dRU!v+S46AaLml=o19K6qwo?{ezCYU@lH}3*|S5Yn6O;kP(M; z%}=_ORb+CCH2V-TMzcBPyAiUF&_DVyJRGam79L5Q^wAQd*6-&BZ{jHp5=Q?qkz|Nc zcum@k#=QqvZomHvY#d2$iQn2j>8V4ZBC9|7kJW$Es`8^gm@VCDHPu^E0FKF4ipTHX zy;FSs1^O|~6M{%tz55(jC6zaRR#PJ5X(pGgtK+f)>|ZKOFka1ZZlp=o`d8nnBBN-x zhWk^Dmj>(J=&Yo)OWu8pXAs2gbo#r#pmccI5^cM(1rOanUnI;o{X%Q!YFcY^YpcvF z5GragbFOH;n$D2?miO=(vuw=%6DPulR^Z-BEP2b1)CPEXNC#1z-$#2<$CRc!>%O;H zN^ozIa;6Vg4ivfu`+oTM#X1J`<8pmTF#eji|FtSfzn|U+6MQxwJIygQY#_Mvo7MU& z7{peOz8(MIntIwbVph9qTY_1K-9Q83)Perz!y7n@-u!2U-*4Wp}@JRC-fv-aBGHXMhBT_E@4j_3=De3|w^^w|dm2BE=y|JS-Yden^-?s^v zaT7W+EvqNB;?%NPO(J*W&R$2y3~|?8yca3GbKdZ5MJJtkT?a}Ed_;#^@f+eNRB_chYuHYxje!J zPqS#a4ro&Dmz#CHYxh%#PSCL;G-`9IW#L@kS%%sU$o2s3`U72NH0}Hw8)Zmh?bba^ zbKYMeBo-Ka!Nd&C#iB%SqMYmS{{0^jALK)Q6gWeP(2KrMsvsNnPbd8L)KoomAz!+> z+L5+;VApa3J%p>hj<^cJs6@E1`tnB;Buj`nfB*U+f~_Tf`SN9#y|VVr3!5=qx|0q; zP2DL6>@NAPcE$b`eoIDILc(TcEUoF`CCydE_2R$jujy9LamBo!yOGL%=V?RU&1*A0_~; zL15bN#NS~gg76pnXni6nQ(3hM(j0DAE>YnP;I1+hBSUf?nO%9ibhuSc>WUhTyge>-vq!XA06kC&`y?E0v?FHMSv zU&-ap)2Tj)!1ee1JPDak&FN`dPz~i{awy2jC1h8Gt!N4X{ly#0L6ps(f^Jz|_@xuL zmBZ{RpFuV1wGq;p%ULk#z!|nnus7BXnmr+KgWPB%5jhwF#-JZr*siEJW*{7ZQ}_-0 z0t@zjPUT#UlA2n`j6fDrFvO2_up(&c-Yg(VY^pfm7w6|8r0A%Hh$w{b;ZWnxTZqjfIuX~Qdro5p=;K!~Sz;7NiBV>C*T-R`O zbD{4D{qriea0wd9P5X9AS+1Xy-DBJ*^TPDkLTNk0HuJe2sIGQ&-xWi#%a)|yA3Rf_ ze6c(c0dPGEe}VkwOufCmP*$8t*1X_(TXWNS-rxudkh937&j-PV(yZzJS+J>7mt0)80NY?}`HF!-b|0(wBFfnWQUlPyJ z`%~NX42*JnwaL~QMo=Ho#qE${nQK!2ndjHf~xJc zlb%uj)-2lpwlMytcN3`z_^(cf&Q|9CyzIFvity8aZj0$H7t^1AJ>MUA`TvPuerkPI zo6hm9T#9%Hn;R59$QM8Q7L%#)VO_U8`4Ra ziQrPaon^)=cbKJ)U0$a;{-i1$)nOYsr3A@p`LE=ef-DkjaynlU-G$ay|HPgXc61Oqxcl_?9yBor;hT^XzC=U=3#1*!(!^^+A{XppE@{`UM} z_MW$lFJ23ZX1tBf;y>)C%+YZFs=K{1$Cs2+wihW$@pW=>8F3t(inn9Tn3)QtH{MZs zLftyw-1A|ZzsG;D062tZ;hD2klK*o9Cq3V_KCl6wFg^VOpY_?V`py%fHATZ-&A-fILuMjqGp|cYkupY1PvFiL2<{%*Lh})E_r!N5}Wkm#M34ox|j3?Tq^#@ z(6fRUy#l_RweOXy6_i9HygHfhFz@8Q6`&m^F531@H(;16@@Y@5PjY}qh^R#M?Hi&w zTUqMN6F6!U`fFo+s})OqxaM0Ao%Qx@xTP#ptZ^mDV35K3HaAm_boG?seOFY)oNW$_^GAa(0ykr06+Hvzhe*)(PRk7ZQH z1|wBB+gNj^7^AbDZn?YLKkbyBBPIU&=Y^$}9KU?Pu!5F6C&ioM^^kkf=66ODzuGID zJmOcL@wV{t;hCWe^w#uLp%-~cy?MotC?>1EJuC{CaS+gT8*|T8cPKcYd@cK&t4#5e zAj9&EcPSxz#%G+X)EnJCD0KSJzhW_`is6^2_7V|YDAf%ZRPbcXea+S>7vOl8M!;@C zEoSrX|G3a_#7hn`i;Z@%J7km8cz4^U#K?>aD*dc|YNJ8rCz|1%dreBEqa`X@(xJ=B z_zj7ka<_7zr-0L8p6puA7z1;c&I_eQnmd^m4Jwzyl1(Q&gPx#@7-4O&BP*%wV~*u$ zM;_OC)}hlcqIV71V8dNz44V+3!3q|wCc!e1JW(`txVXrw?6d`t>x+N9ZaNRR5hle zGcHR{R)0NxR58+V`+1`hHW7c51lba`Eh=rS(uGX&ODVTWDlIHeA|)j+Ix2^yvK;!X zeOX{ep-Lpjz98_h{1A&A6HCURtd^I$bIn!fn<*tszd2+hxLVg2MQ+e||Jn0|6}p^~ zMd4NJ1>eJ|ziQiohK!2P$(FnQ?m2(xs^vTT`Tl^zT#QcXf`^vaE}S1%c(3$n!l%YR z^bUXKFU!$2d*vK5(jMJdQAyS@|GMjg4H>`H2aa~Mu)Gp!KH73t`;~gKm&Ixf%i(;B z>mPQ@*GWD3s$9JoNYlwK$D9`$$1j|uU0*}S#wP#s%)8Q-tD+J2{Ic#Vd3yPEo(U`Ssir;F-yBIZnQ%C= zLa#H<=MrnStL}B#6ta2Oq5ed!?eUrkWXT4;QIfu;JaIBFw@e!~j4z80fX9eL7# zj*7`fUWfJW>zh(kOe?chbr#;wf3h=^B>u}mp7hkQ=ZbcVuN{n1n_oM`tS8mmAi>!X zfAabj^IJ}`du#g-+yAzq<LMJ70~Sr!{%$eH5dsi}k%}!3&Oo7hYu>KMUw7VP^<# z*DUKUFi)(K?|5z~Dp{qh+ca;fCt%2%!COOr1~kE`)H%Q#(FXm~jInajle zuRL?JWs7>FfQG7$TDa$GSucQyL%J)XrK=+qjqv6S?x(Cy(4(qkme_w3neyKEBnSWx~^x^E*`jmj0K;Nn3 zf!rbVIhx;v^0--AHD$Yo<(Or^1?wtC)Wiq3h>%VWyWRZHp7ZkXhZ({2%Kl=X8HovK zxEFEKj!xEW_={NB*8D2fGp7&p%V!zLZ7=MKR_gy6`pmVb^Fp7m=8^mZITpJs59gUZ znxb}JF5F+NfAEJZ(?MPn^3(njC)qywmYHAA_|oG!IAGV*p0f|mAmC>k)md*t7Bfej zx16#WI-7~lN$Z7g9bOWU`xOfL|E!m%{YrHRm)~{g{OH$)+vNh*Ea?>e3|TUUtDoLi zpz<42JH)1S#rKZQQo+?NLwlz`Z`$ujw`=3Lx~~4WD%X<%@zW2#_4#U>SMI-P#1SF9 zty4JuNXerG?H76{uEt!XBHezA{h7EA7&lj;1cAqg`6YwfO<#?d-NQ`g8y_l1#XJy&U zbm?D2^J~h>Hs{^BGDL3N;KB?L?**6UCv+i7Q}v&eBl&&`1$giI#wTojvQp1u=v&Qb zh^Ek+U(wz#mAHMAr-Z2ck~zawN$pg^<~?!?Oiq$RT7KfzrzE0R4DL|0uKIE^-%Hg6 zNJ*dPXnm;NI==;>r_6H{g<0*z=!V@nd!3w|aMy1~Q)eZK17vvI z{%1|BfF9d*W2#Q`gfm7)pOh+X4MTcdi&$OE`8u47CyT!aoB1VKj#u)Y(94lNRwJz; zqBPlm)62crFrr%#_kyXn-$iz{z(0Rd#< z;CTD}`*#VaqEzu1A5N2Y-Jk4n!M8aRqhEW;XLvQ-5}hh#+2N7o61#Ze(WCQPwQ(sH zae7}AN)8y#Z-gJCNLEcWmh!r87|FNt+GZv$KLM8AB~p=Vp&P(eCA5Wo2S98|MAA0lY-ti$m!bi2L;RB(dSj zP|FtnVhI(Td*~epZWL#$Fl+xCAi4QN@d^awDikf7ize~sE^_ji{;*v>&nEkB%V(D*3BykwWfz+hZ_`*UztLU)*~{0O{oW;- z`OB>%(N`k`f( zS?|YeMSgYS#`w3ar%VC5t-hSiAuPKUc*_J+wM-ZpUU#4v-K5Wh`5J*3B-E53&stzH zT8bhFnxRxi-8s=BFZLy==1S!^;59;r4%>|A*`R9e?c?(qKk1|7glgL9ix-1XaBfQ1 zzK$gplap&Rty(4nz?9|bHFb_vz}8V9sfospFjpWWLV zMl|2vzJ08)YE7eBWP2X6ji2x;re1i5gt#dLJJMjT!YN`#M(OiikQItu{yYGp5E}7> z(gA7+fA8HZ?-wfUa1^)_g0Y9z9_48%9lQhC!H?-_4^SF_H2sM>HX6tP13!HDke-Lf z2M>S~pMai@1o#W+*GU9$pfr`LSkpjkL{t&*g^*%;jr(M7xP;me(JJ=$KY~)VE}FIY zFyiZ6U0uD<+a$7%U*8GU{kve2V5W;RD#I+}HxpY?jJkp+K$Im={7H2XQc3m$Vgwb> zz@dU&luT)NKRs_z--rWn}0f#od{b0MXQN8L2DF4 zN1-xx^oe4^iY`v+r@OcSBOs7{w2ty25m|7OiV5?V-CPXqeDVq-H?pL$#EUC&nuXswI|JeV3Gmp- zlP9S!TATrw4;$_Yb^_X`l3-zC7R7B1aXbsOOxOXx*MZank4bL`PLg-6V>JN)Hb5tq z7#jwaGT3B3hL(XYp|`p)nPt%K4q%IykIyxI{WDky!1#X?isX=CHZ(LOw8pUM;BRIi z7DG_jq5ne7rSmtS=njJppocU^iyuMr00-HRj&yBsXvA!KK;*zbb^y3UT6={1^5ydD zUG@5NR(qw}v~yV@EE(LUnXHf)a!j|%GQ6uP9dRbZYD9x@U z!@Buqqvd4SE9jCs!hy&Iq{R#ziBW(lCAn9k3c; zn|!2ydmQI~Di%rb;PkT#L^9w7P^c!y_y^)y1J-2_u8LleNY|W4YreVOR9{I0>bP*C zd-1$sRIo*CB`DRrhJ`$w>^gs(mKF{OedO!R+AFiZb0kxkntry)Ic?P5Pn|h)BOk7; z4up)nN54-JHr?DT%glv!!i92Kj>%=IsM8$1Zh znhj|gM*-@<@@G#oGBP_~No?IqY5)6gLY{&~z={ph=ReW8C(ItGM$$6yCLP%ZM^q*g z%MO`*%lm}2e&y;aYg~c{fxf7RLLzB?tQFnblV4VBn$h;f5mbj?@-DZF<$HK| z+^P6#r}=NZ!NrT#Ct@e!4QI#oWabtZoyIM3WK3I3brd_S5@95Y`sl^P+ATZu+Qs;! z_gW2(G)D2!1|6ydAv5U0nw!b7g!^i#WN*f(-a8gOZAsOu7G9+PYu@Awo1Or#`*?NA zu5C-L28XT-UC%I?x$8*N7aS?fke~6*|M}z-!xMv5(vh_MT$VgL9bD48?f%go^QX7g zpk&(Fn*ht#%)>p{4VaJD1~^_{f@$Fq zLpRK~+hX+VcKjkBOiS=#&Ex`hoY3&I8w`O4Q%*#azK_>z4i_&*EM9PY0JxJM&-SZ{ zt&>rOd3mNF6Gpogg%XwY8O%E-bBP5Z%zdZ^XP~Mx;XcJQ4Fmwmukz+-DGdhD!3(NaBXzd7SSE zvA?qArl;T5NTeTj1Jdd>R5l`7A1s5>Hu5c>8^;yK6pkco#?etxmE+*|rGJAMO%JFr z1S#n0FV&0(2|E=04+C-whYDd7v&1>3qI(N7`$a`O+(uup99=nj!Kf?hL(Is?h{d^* z2HPs+8rfH+SQP6;%D*ZztJj3wX;Ws_Hj?^%@Nk@KfQ(Y8^SyFOn&$WeTO5K1+VZ#5 zzR1#RPBWf3-tAG8vaRD{66N@gEC%}(zO!s|LqjX&&m~sE?&_&7NLURWQ9RA-Zhp^L zTD7iD{%2Lq{7}e#A;Mz zsq{4UU??5hw0el<`DMx(GN-~5krIMTYa6#7i)WPalZ)+j0 zh2p_s_1X?Z0LWt%hbV7M&#Zn}#DSsNT3zOEIU`#rW}MJoEfQ+G94Etg+Bab+Mv7LP zMWI$C&`ddANmxMBUW05g=X_vmD!;33?md#Gs>1vO_r+Y_K<)Ooqsb4_-}~8d1;vf(%_iH+EZW3~2n6XNeLQO*xFStN}SR&Nn zf(TTXSY!k|eho(^xqk&=@xiP*LZ9A>p(N#Me_jJAc-H5M5 zFs4DXz^7IEoTuzipF#yjX7t9p8Fi#R!J)=nO9T@*teYi_-(!OSq)7z92bv#bBP=;X znsC}&JrR1*^44sz#_^bd|8<@(ztwt;k+e1g2Xc;-kg32qoGyCAQWyIcD)^?LFYSGBX}*mk+gxO=IMG9U z`CHOd_v_a6Zf=Fy?KzBQ+OjMs)(!j_(mdFurHSs{i zh~Z`;kxd+E^5Ss8DR~{i>hyH#@$;B?a~x+X4wv_EgQ3IL?Ap+NCuHp2h&==86bYYv zvA$B`dfJ}@6^vPaY_aroOjMd}0I1j;{8?f_koSPViV0S}NHKsmh>=+N#aYvVokB2D zLE|Fu7J$_d{6Juin%T9nx9-7pK6i0p8GgmCUT_EqD8yaFSlK5}p46OT!$1m5kUU67 zR}YZ~WN{7yf6?KK0TWL{sG#VcRrF|Is4$isD9!6|{JZw;8vv5NGxIch{eV&q3=D{144#I~38Z|8_%jeV5<+hH5W*?~Z-MU* zsS=29BV4XUGS@8e-SdCi#4f?PvIBj7M@(2LACWE4zHW|P9JcRE*U>+SVsp+uw|QLNT~kifXheolT?X*g*S$!G~`9`Y1p7-w&5w^Sf(u4|TIx zoY8!1<@=f=y3Ai|cGkAgbSybS8RyFw!{lWQ(!d%haPsVs7<( zlS}sYc6l>%J3_&#*zj%m${V)$+m{*yiXLho&cHxyLmc%MBaK^j?%avlaqifV2-h+7 zmY_sVOiTda0P^rFEEP5m9{CKC;b?v{Ukw^NwDnMZLCAP`0@RBhF28_)D#Ub;i>jjC<1p6aerwmfCsQZisFMA>k%e;gH&1nHK+3j;)UMJrbK!;Bnvykz|d}+~(e16fS z;ePw>_`le@{G%QoW9?c@xYg~>XgYTLja6v!{k8~d$%}rEQmOuNmN>c0Llk_V#)`@c zBl28K#KHuiNPGDw|8_*3bpI_2;*#mWJV1KtXg2(M)SH=<)EBifXOS!(JI(r?BaiJ1 zt!v}`yUKvrx&WWJ~rP4(f+frS=B& z6w!Z|L&U{92i2u0ZisX8Ry9( zpWNYJ+7!*Te!3-c@p}W!#q=!<--=`U^19}Ztx^eHZ;uEU7g~{uYp^aW`H10hL*#}c z&1TD{#!7C>ML`)xY7{vhljSb-w9EJ9tQQ_#BzK=HFtHS3WHU8_|2!GZN ztNLhM=l|A$y_}mmI?(laV_>XFPmX;@K5x`w+&R;u$|qiYvK$f4qwC&B%Oto#vs0Tc zbFtLHOzCh%q5t0I)$?WZh3A%Y?CFmB*14KB)YPlPSuaK=4piH3~cv3s9#=f;GCyr?R; zdXDM9L7U(tW%J)X{)04q#ln=d#rN*ICS;|`hQtic&PvjV2l-@2nHTlXtrcvYwGPvo zazAr;a`l;|)`bpp`d1=Or_5QVm@ymo$ImyX)ow|Ue!i?Af0$DK_K7@=P!tox3&&4s z^x6O0V>B<;tIOY^?c(qyfSH|ovdb%iq2$Nn^VkW&&ByEh-mmi3-Mk-4FVCy6te(5y zN$0q&neDLLIj`W29Ls=?=mR3E?NK5{ce0W+$R*34@}$a97Y3CFelKxWzT}*_(kSmY zQSx*##&pM*Zpn{fwG%~iZ@F{B&BlggOH+h~biPr(rxX0tP#O4XJ(1JKLWs#NY4!i2 zRa?NP%xR|N5M+H;d@({ZvtOSrLXnQrW}4aV-2K3uNx}8u$>G?{#SVub^v6n5yxB{r zsP+s-UN2*DyWjWnlhN4smZ*cY#aR_O4{mqaYdp;;7w6FJ6xKBoDw}CcOuA?vTI|>z zn78s*Z*W7J0GH?dk6jZb0iRRiUWDYYKTjK%<}+WV89pIA_$^sy$jxN&|KbW=7E`56 zVl(V7z2hxBNy%@|=zCu40?mm>J}35R40MFYKM!&G>}KSzf8o9mRmri}Wp_;y4zXXG zHZkC8DW-p>;&4+l_}oZu9!uy^xhNao_Y%7WpSQbE)^*y14Mr$-nyxWXwmT1$oDQ-n zJe$$qXsJM3^oiodrcQTf;Y88e%c9{EGvndX{Ft~`&nP@--``B3a^OE*BccRHz$kb> z^@Mpw9^=$8WY9I*3~epx(b*i7;|;&5vyme1reyXwKKSI{E9_yGl_t%#!%p@JsqC7( z(^9UVHr&P!^&6`CUr8QsN>yf8**B*T+$0jUafI-=2L^@{u+|&FLHJ#s2 zs2$hX!`{ZN9{-RuSk+p2e3jeR`$D+c+zRD_+Sd$*87z^>>?-?zdO^6lQv*1w47)4H zV%`{*Tlh~ana>^Fc{VofhtAgSlLtE&R@I-n_vuch%;xP3zuPs`x7@qvBxiEr^;b!| zd$-s292dI4Q4!BNRiyHxH<7W=;+SNoSZK9o=JsrXH#(#ds>9Q(&mONUc0OWx@+Q`J zwmGodP?$>Ev_rCuuCRKD+j@y{jJ~k`^l$MNh6N1?CZ3DVtk$xZ{&#mn{joRPFVnGX zQ|ZHLFU!;YO4j{{4Lm9jSj;e83d<|+qP(DNIma|Ba+dp{Jhgl8vHL;~==a*$$V4ks zNbHf*`JjE>Wpz5H>G6GByPH{%hTMa;J>w?FO_g)Pr!+pz{qDYH()Wh1;amMLQF^!a z9~`nz-MJma|B}rOBaLn(CS9@&emnb0tsr#f)BhRFpir@q9QD6i_yX5nhrTaw ziL?l_4)Kj>f3%=x9bP}{-u!v?7i(bty4OtJ&d7t*X%jrj4o)PsU;O>kmp1rJl>RKi zOOI~H~7=G{+Q>%%XZxcNVLo9mmde&9Fp+11D1>rbvG-l>=p zzBTAnY4U5BmYpI?`tL$}e+^fu3|tpkLs;w^-g%lyJ?8@tCxywh{HO0-8lXNMNtwTT z#+P5r zcyI>VXK}Kz`=Ff;$Tee)b_l<@3u;BTi)<~A@*2KOO`Sd#Zc^&ud3;mES_ceT?SgZB zzq`7N;@x_r9ZMr-txb3Hl}|g-F53pqW`IAD%&LM_!(wn;n2M(L<8xA+J68K&m$Z59 zPK6sALp@ERYHmt~nkJl&ROl@f3APY&R8ZupnIx3!&=dj*mdN8F+54IxXaAaS*CZ<2 zbe9|@fP4pw&1PWyq57gVjjOo5gopJRZSGvnJM}w*OIU*{rNfHMO3a;vKRQ-$-q}z& zY^Nwr*-(~Bep7AJfGx5;#9?6k&>!e+f4CTofz-mUZF}wy{gUV+LMaGMN_s}d?T=BH zkV#SFNA)N9TLToMZ+bIrkxA7M!W;=HlynMG_0|f^Ltbtay78YCT*fmQtx_6m9#;FX z{PM?>1F7t?biwtRhMI0>%PLp7Bn2r-?tJ5QF6ZLCp_}mU1#Hscc}!^Um2D9~K?9OZ z7ziVmKZVgek)X5c^91oUQCt@UaT&#j7+~=&#@pVYCi-DU&?SU>;r(1aP2ntuFH_iy zSK@1SOFt%eGV_Gn`lv3-`iy7AH|Y1<1Q_h9zCTs+sKJ*flYRFeF!68c(=b6{T^eF| zAKKj(V=b?+-oGaTr}V!f%K;xnqTqTl>LbeNw^OkyoML7k&CaDMnK}-;ezGXQ6|*?< zTQwm zS|Jz~#FrvNX3iZ)Aq2U%!fs{YNT7jG^A*)cur7XrtcmN(V|zB)D8_GqvYT?28wfwH1v|bFRm_S_C>BKNikF_zjzqwNKk7 zDF+t>q$``Joku4$bH*hEi?&HMRZLS;wqK9ofB!F-`*XRs_)5O?9_#6Z zE*FNHf~3Z^8vWAgB_!+n$H#*^&kbA}C|MIYdhD1un&<=t1=`HE)0HpYQ(wu zY~k|0Z0mK}rGRPrB8OIwe2+QK&9ktA3<~uKLhqrgYsGhMX~5&eTwdVq3X~=ZUyXW$ zSbiuc9HSeCXJi7xbh)OZ5R;Gpf}ViWzzq7N9!sX9>)-lxfB{KezaSY70ur?W8tf9dJiYFiDi_i57J*4yU?;B_2{z^Pg$0*LKwo^-;la)xNF9%u|QLW>G+>)2^~j;mo1e z7kD*_Tn8c&c{#kaS8h0S#yh^&nxK%tymG(}0vCoZ^@>qvN@ci=qjPveT-;kL^;;ze zuLYhQTF~!*Ef(@EePB1sd1f8D{?NJ-*ojl)JIXq`=XtwFZp;nWqsL2!g)CEf5qm{{ z^lP+Io@qqcET#+rU+`UZkB*7=aqUiG@(jeL0~bclul|{nP7Hl+GwQHCQYoTnboW%{ zoab)sJL`waI!<&1@6(3D^b3W=a@4U2)sYv?^XN`BKFF4dmm`L~Kx}o(hm`N=m&24q z;o=Fo2SipElllyKwXqSO~8%jb1Q~JkzpVKBS%BYv&@KFkU>+QXbOoqi5@)=K| z{R6duEiaG#0uCx2T*s!IjfLEjA7DAZUxW|?CG#}dSJaQ}yav^*CD?4~?rOP_t);S=62~^fUm_>mJ+V2 zRc7(sZCgZ#VKQFhw#ze&;1wWZdJWh|U8sO!OOv4e(*D4}Kw_{SK7$CGl-LeO*rUsz z23ZQ65AuOJBYtFNpy1LKMgo%(jLnxv`2IA)8vq_dU~}T+Sg7BK#Tv;Z z(DHR(vU`?&jx5i1o&~~6#CIa7iAYGe^(Yx5F>#ZSy}61;CD!2~6cOy#=i6^cNfA#R z3JwhRISUI`pDQZfzk5f9O9W4s7!FG4SmLV)0Y;1|iAzkR%=s~vS6BvRVc3VoMOrjG z2p#$Y!>W7f#E7~84y~>5$DYB#tP*G05AVTL^8-{=+kJ02!!qBer#B6n<%G08!*>x4 z5`d71H$eAe3mM1JH-v@-2>Af<0c`ruav-#cIE=b@AbBXY6soQs%MQ1Pt!TmHHI7GAPX<4O3WT4(uyfVi6VtCJ{)8^9U&JjcZ1M(^_d`m zj>NG6r%F3G!sL zZd?e7q`Mp+?{fU@t32lR*yywcP;CIeNR908>gsxTC;k^OQ34hU3w<*9T8zW_j&^ma zIr4#hZ`QG*FJHetxY3(+pAy97Yg^dCNrkfM;ToMdEus;=xmvR6IyGf%4>1~Ff0#;hSyS@_#;MYipISf;^a8VU31wS$c6Oz-yH6UMEUc~3oP3v;N3EMl1D&y# zZf>8^tPvfw8*5<>kYIugD>`^;)NXaU+;CgJ(6ueQm;N2RU6_RF-vYF>w7)Q(3aB4= zLv2VoK*E=*mpGdZdkUx?4_teYX415Q%R8p7uD)-TlnC*804vy4R8&mSzWg&^$p4)6 zqdqt|=+w!ms=97$IBGpMmG5nHAljX7Vhq4Dd7$@9*sO)YD$pOq07$5%Ij;;S?Y)(~ zO?s^C?<+k$>;mQwG3CV^7Z;n7c@X%y;12cKj-ka(VG0656M@ge3&9KL!V#u`7^Z zki+-Ex=Zyk{b~`OYjFk2$jWZRIGa$Z7m#VjN?_8qYgcjNz|=lHt%+w8!k0xvwq3k< zG40`i7zPLJ@z-<0*b{ujqu>48ajC*9BMgRcWFN;(8qnhW4KDrM{5*l6DP0L=*Q-?) zO7m+)oIu=r#JWAyJUa3oGT7SLH9;y3O?ptUKWX(~24|lAG8g%dZN}g7Ae6yw(;#kQ zat`SAhro4WRS3_Fcw*c4l_ku?yb{~|19~hR)Z|rPzLaD1nkis(aDBwu@$krXq|9@N z@;%&&1;z&xx^-x$p0@4bbsM#~$ivHf@%RZvZI?uokQdzzoo3l*KQ1e8vG(wFsESWa z6j4z*N|-$a2(I99!bU5h+y$N-A2BwGfkEVv6J|#MXtN)FAESN%>!pV{CzOt)%H%Mm z9td7Hz`KZ1#b{U(b4)S)`U<*|s*n1BT_BE|`g*C{vH$@GEk{RT@*U599xv@w(yf(u zNN2RvtrK>0#?r;a>|pZV1qE`X%RY_9gh&t~Sd4XzEG#@mMMVWj)e&c)NUk;grJB%i zqMlm2&o9I`GgJ6u&qJL&qmL>TVQ!;S_2}+j;Pd{U!0p>hLQ0*Y#dVPH!kW;w=Q|zXZqRwQ+F>JG2{uS z=n;+aiHYa4B5m*RToE(qHrQ zsw(lz&Sp_D?Tql7u-3A;=?kBZsC->`#xfr9$XXIV+aw+ zVI*~`qP+aB@aU+hzu;Nol9Q>5C(?07a_7u{R8eR%DcJHIyB7ZEK=FPu4JWN1_2;~) z4jsBtJY6_lT;{_pd&>Wz<=SNJG1Io46GQ8~JA~E0Z1`?A@H(Old1z z{>$_;YY*)dP*|Y9i7f?mB1iC-jza5mxYQw2-8x>kz4LWYsi45!6A=}3%MKu%zjpif zfiPi*-M}gc+RpurZHBsD1yRtk416!A$=5-gcSCLt4(Wqf$rG;LUS6h16Ub7>KR6Vo z7fCeT<+uwl#`^-s)?o@gw}+Om!j1R^#42o%!yYdU6x17J&prq5kJHlFNONpu{!`aK|Mcwp zmP}FKrHBD;xOUNo$-a^kKtFH&NB#8V^cx5m9u^Lk%ZEH8gi|gr6_%7}>aTw6-m6Xa zJTn_sPRL+NNVvtVVFKP3GJx4jOE%`u0q99YsLsyLu%@&AnS)7mH+-?+mRgB`9Mr5|2{l? zdbuETU>muxE?LTH{<6to!+ez^-|bJ1O{Hg0@DsO>1antrryHTVk09NKK?^*Y{jg5_ zN5sL!OZ|JamJ#aQ!`NYtKnX+`rEtlDyS2j>oO8_oR@4p@(wi@DlPL|*NIl}{ppwwj zvET}CyKnu8T==CB&Wa67y}^kD3RAt~G{(os1Wz>ggc{svr6j`~8OouQoWbe)MP3)J zfDkLCVk#SrO)^{+;^%a$o{)4&$0`xQkHvxk;_K3DGRX=Q7x~RDxShvjA%q)ql25Zs zdm%!J*vqRVjTHJkNP_7H|LP8iDY>D*5Rsp+Y;oxgraVeYQYH84aM9z|kQ!HF&pLA( zE=tnxICKw`vj41YIj4Y z6_2LFysrqqkH7z(*dBGux5y#)^(pL)iHzKKEBYWN0w8YM^0=M$5l%OEIw6+l`j>6* z7~5^WKJ6Xb-+wPEHg?Z^OiYY!BV5`B%7}MY=0?dv{Btce4V`XIpsY~Zc|Z|q{)LpT zcX9%zxx#z~n$XXyL~thBfPj0Kf2o@sb*9kN6!k6YZDc@#f!fqNxH63(2q9r)TwGP; zU`Xq>_zc^%B~D1PvM(DI7ZIS-v@{t$gIuWESMPFs`0)3;OBO%ImTC`FoYna75-C}A zdnggX@A#)DygS7tZ#{%vaeQlt^tB!#_&Yu9ily(*D2S8-c-6n*Q5?s$lHR}HN=)Q} zTX>9?_rfC+fiT_}7Z7s zQJ*M{{|Q}Xq)kxpaousMn=2o*4@BwD#jj3o=E!Sk?2Eqh3M(9$n|lQ21Gv@Uv!knk zLL>P#1x}uvocvv4qCq3KA81h`P#{OxcTqq9zMH{<2jMl5eiP&r1ho|vVuXAU-~4pK zGl0jgLH!dlB*fDwE*1vZ_|baH`23BVH?P1o|5Af6BLIhx89pnh*LUSh2tOsjM^DS| zJt@EUTYmEFo%uGoBl+Lzts_zs2k?TCyi z&b!fGv>?u7`1wbh>x<5Imj!oe*H@5VF1VDd-e(Nd5ZsuY46kVF{-6b#5vG6(`vCD8kVSug$iz4f~P z^;+!@*V2NjufFfzbNAW%oP8viNE`rR%yBNDsmj2M26ND;j_?8m%2EHhdzqJ)J0no~ z@fyiSLFd7ZR!qD$2X>p-WoLJax1h+u!+SN8y;9C4qT`pXpU?K#W^t;vD!~4&igEJB z+lvvs);T#{>b6S*b$7D=_kesik?b?Bz~7)?k(lJ{`BkO;=)LyQ@13NW5ppC~RUgbb ztcUo-&5jL6CXvL5D5c9AUEbh=CLMJ4$iwIiXCCH9QvECvaS2NR$_E9Q=m8W3)e$pK zhz17oU9reu{5Icp)Op7aHn24zJ8s^zx+{`+@uCN;zfvX6O$e9Gm&8Jl0AB&rJ8wXk zGBvJ_={0M@th^6ELz8K6g>0aP3fBdud$;Sr1tLuze8D8) z0upeNcRVQeARjrlW9!8W7u?~EnkumaI1EIy^^NDHQCN+Nz7A!WFIkn423x6e%m5*U zrX`{I-5KeQ$XUpgTKLoA%ODGwJ0?CWDlxy$TvLhfj zJ7MJm1wMK`IrnL%TC$g)soEm&__!1!~jRdrJ3Z|+M5#ocJT7rKFPi=xvWY9 z-I^vCYSW_dQf~wB7 z-xG27Vip$p$0IO+OIe7`%J6yw-~0eJtKSaH zn>gloT}z`NKH#=WZ&XK>{@d0HdL>=QorVNXFx=bU|K)r4&K}-qTEofiRxWbZSbYtR zR7N(sL*-?iubE{`{VFYA5=yJ|tfa%Q{XC zd-w06B{Vg!HO#{%CZZt~313z)GUeWrwNu(})+ed-50M|V?oh^kjeoxT6apYCF|i?s z+vs;`@$?7O;sU%^i=man0lmI$@zC;v{f7R7leLX!E?(Wy+4im=vk4kB{>E0+SQ->pR6haipCTfhE zG_gAt0B3c$;2tlJbvF!LXMOh06~*;UO%iCm1UtqWY3|phFsw`lA4f$({@~&o0O+`U z`JvYO9&4sTypy!3CzS+rR$~PteD6adl1ho1cR< zf}}x)pX+wY1=ARwKHUJ(0xV3@uX~WVxx*-rw9cYGR-aC9v+YrszA4z4o~v4BW!}CW z>6TpuwvIHzQsrnTByx=B?%nN>rMRKDxJlKX3U2Clv|-P2FsWha4)hJz12c&3CYou; zy$dQMa?R*Uh8~r?86)?#s@6YlWF_O{gCQh2vm1F~6Ilz>30K zLK=*pvH$Lce&7Z5A)0P+a^mjFr3RO=rFW03M|_gUCLk`y<>eHZre}?fOU4VX#^_T- zmclTZTf|RC@}R>%;~$>A@l$B7fSYfWPqVVa;DPL8mtKkf{@w(?bT(;CC(dx z=t1K^HM*NE^dYS@0H*ZciYy`&kYOen2ljqD5F5q#E>s)G!{8lY!4MclY+_UMG^(8sHuFPfH*x0xf2BZ%L0WTskAz~SPFCh8O%`OQWR{({8 z)+n?P%tl#*?mT9mVm~l0IeCcAi*9%Dpl=UNP>`>n#z_Kd0*R7@3mg`rg%N-hRIg_( zEmCohj&r$|V17XOdH{oXd3!5m@}U5tKS*)1AF&$l_}$GyY+y}H$)<>ASG?*1J#W{e zc@S1Ljg3{H+3}#mwtVfpeSVx6I_^P5NdZWkjdv*4b!6SSBZ-p)>P|GA-oZk=AL{(h zI1Bituq%3xoufB2mX^1&@e`rv68pGTx1_aTZ|IlmCS z)Q>I3o;?0%T6pzc^Z?C=KzhMW+ejt8`+>3U0bB_*q(4f=UPVo-zCY!x$jU?G3=8XI zk)fd?xEC@>5@$GOu81SGf^#lT;F~zJC@p^0oe9q37dlj1JCF6t)2G&C_U?wHNc4kN zAaDk|E=CW_=1rRxJ--Ns>kX)uBp7u9211@?7Zw_CE+7I04ijK42*F%{f*g3OqCHLn z10S`uwYkF9HT`+-ge+%X%FW&y z@$kPYZRJp1#3@44LZnBTfFzC!c$0{24FvqqfdxK6Fg{$TCsUvaU3=I+y^X^>(qK81|^LO#hF=Rr|MT6!K9sdF? z3Oh6Y_TZ(xbKk`iC%m-4v!b|WRmcY~XvyW!2I{CV zm(LfGVz8S^M==Lw?&~*2f|fk!fty@imw)mJZTcSf9C5C&s3@l4$`3zSCoqIhL~4^w zSTHG}%7M4R0g{S`_7QZ&Ycd$GJs4;cj<+`(w{D!m?IUF5)Z|#12!(ajh)6??@fzKQ zo$QfeJWEysgm@PAv~ls~-xfBfrFOCM9A1a<%ZecYSFjk4+LuBeIffJ<_+<5A2cimU zTBsi5t(YBo{P?W)0f_(PK`clQwG1>?1NkRvK1u(nfgi)k&1;cn<~>PEO9Rnrav?X| z^w0~Pt3FkZKrtFB|AE9cL3k|}p<4q17~~U0LIdl-yG%^}ZsYUgpfk6xvF9amMnogG zWq$dAB?B&alcS^d_)B<#k(rMmJl7Q0BPN2d?d{#S%q52^=da)Ycl0hXaM6(Mim?Ew z_wfz)-3~!3)d078BrS~`qK8JTq8L6f!A>p7a9loJm%e2MH}X4kpN~9kXQXDD_+q# zdW+i#iF%WZ%aW@%T638!D;g*B^X+xs86Jb+T;~t0$L+kN`9Ydid3VP$l)9XB*z7Px#55oiaIKnkZ*gtR}S#Cl_y$-DNXU9F71$={Y3gl38@a+Lh zpYcaNqK93Zk&j~$>>sASMR%dR0md0I!cOYFb+fTW{$$(niPw1xg-n`L)ueeUGs$bpJOa75jg?5Vgon*}K5w+!t`4n`xZSdjN95 z9Kgw(paC~j;M~m3l}CAmlHOOUC+RwYEk4pK*(0N)WFq$Mj0~lE{=Wa7_KBPF`$@n* zeP=rGoJZgp)j9gN_fUC(Vz|~FIR6Q8uJ?W`M!Wi*aX=u3kB%%*DCiN?2~^#rzuh;1 zx(dQP;xVH#jT~I{_2O+K9i}Ma08dP+P*BBt2D5QM;_prT= zL#K}hW8CgMKvkVQ?BVehjs_HfEgjEy3=K5_n+V4MOO&aBQhtMCa&G6DEVKMfqAw^Z z5!#f{(Ws^ajS(Flfhl$1(n$FlQb}01&E5Ox-I-(eTfD98feGrfT;nj&2_Xto4&NY6 zKi@gZ&o1M_-#%b|4{}fvqhjU=nXO;|Kz-w~J~c#4ByOL93c!n2w;WK;q)PC4SXi+Y zjnC&>9X`B@oFa(Vuo$V^eY9p8FElkZ0WDjDl>y?49tyl4o=)Fm`g<=h37$0>S*BF^ zZW?&v+-)fgl*Cy^3hW3`%}_B=@YvA%pjl-fP1J2F)f1Z?s~hZPd;Jg+5o@sehLJIznuQ zu~RW4WS@pW_y1<9+*HeW9rI|Ha!>0bTqRfs7nG&-x9&f?+f|A=wbOrC6ZV6gbFZYy zs~RD!iP2_5qi-1JXI{q7VtkJtybNN&WuAMb_W7qsX%&olK8|-4-R%^M)nACP@8x?m zI&@5B@OS$lB50cZ{V(!gegkfzKU`6-4tW#nu|XWN4i+;q=$VUR$i?a_Pp7ZoAJVX) y%4f(->ubmdMLzQnM^51v|KuN*{%?OFeQFM^snjZfb^APpKkIEaT4!0hAOBBnRqZMO literal 0 HcmV?d00001