From 05e8c5407f5d774c7c7947936a3a44f332fdcf81 Mon Sep 17 00:00:00 2001 From: drh Date: Tue, 14 Jan 2020 16:39:54 +0000 Subject: [PATCH] Remove an ALWAYS on a branch for improved database corruption detection in btree.c:freeSpace(). Test case found by dbsqlfuzz. FossilOrigin-Name: 54bf04811951db6c894f272f870e3e41f8f5e05a25c1115efbbdbd0d8bba54be --- manifest | 14 +++++++------- manifest.uuid | 2 +- src/btree.c | 2 +- test/fuzzdata8.db | Bin 1738752 -> 1741824 bytes 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/manifest b/manifest index 0f4f8c637e..0a231134a2 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Add\sthe\snew\snoop_nd()\sdebugging\sfunction\sto\sthe\snoop.c\sextension. -D 2020-01-14T16:33:07.991 +C Remove\san\sALWAYS\son\sa\sbranch\sfor\simproved\sdatabase\scorruption\sdetection\s\nin\sbtree.c:freeSpace().\s\sTest\scase\sfound\sby\sdbsqlfuzz. +D 2020-01-14T16:39:54.639 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -472,7 +472,7 @@ F src/auth.c a3d5bfdba83d25abed1013a8c7a5f204e2e29b0c25242a56bc02bb0c07bf1e06 F src/backup.c f70077d40c08b7787bfe934e4d1da8030cb0cc57d46b345fba2294b7d1be23ab F src/bitvec.c 17ea48eff8ba979f1f5b04cc484c7bb2be632f33 F src/btmutex.c 8acc2f464ee76324bf13310df5692a262b801808984c1b79defb2503bbafadb6 -F src/btree.c d70000b51523138582663b578b7f8a13e5d03c73c7c7ef18fdeafe1c234bbc3c +F src/btree.c 7af5ff0f88ba856c2681f6eeb457590b24f787e994f18cbdb44c2de2d33f757e F src/btree.h 6111552f19ed7a40f029cf4b33badc6fef9880314fffd80a945f0b7f43ab7471 F src/btreeInt.h 6794084fad08c9750b45145743c0e3e5c27c94dee89f26dd8df7073314934fd2 F src/build.c bd2f382562b08f14748d54402220be1082c2f8ff8973fad47e45a381c438f9bf @@ -1021,7 +1021,7 @@ F test/fuzzdata4.db b502c7d5498261715812dd8b3c2005bad08b3a26e6489414bd13926cd3e4 F test/fuzzdata5.db e35f64af17ec48926481cfaf3b3855e436bd40d1cfe2d59a9474cb4b748a52a5 F test/fuzzdata6.db 92a80e4afc172c24f662a10a612d188fb272de4a9bd19e017927c95f737de6d7 F test/fuzzdata7.db e7a86fd83dda151d160445d542e32e5c6019c541b3a74c2a525b6ac640639711 -F test/fuzzdata8.db 7816165a0e5d5deec593a519cd1f527a2a9efd0a3f7d00c232d8e9f29a2c0acd +F test/fuzzdata8.db 8bd41f8e1b9c61af011bf5cf16a85fb7f718fdd3348e476b78ba36adab872653 F test/fuzzer1.test 3d4c4b7e547aba5e5511a2991e3e3d07166cfbb8 F test/fuzzer2.test a85ef814ce071293bce1ad8dffa217cbbaad4c14 F test/fuzzerfault.test 8792cd77fd5bce765b05d0c8e01b9edcf8af8536 @@ -1857,7 +1857,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P 9ce2192b81a81bb8928e3184664694ed2f863ce41c2777cdc35e6b61486aea46 -R 73abdccaa3b4b3bfc8d9b17374783df8 +P 72911fb1b010ae093a161b9c0d21cbdedcbc1f924a55f12227fbe342bd978e08 +R 2396ea5cb54c667d853921c6ec996dd6 U drh -Z 526da08fbb1bfa4a7cd4a8e449cd134a +Z 190afd1fe5730a422de834b7bdd5d831 diff --git a/manifest.uuid b/manifest.uuid index 02ee03a9d7..e10fd712ef 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -72911fb1b010ae093a161b9c0d21cbdedcbc1f924a55f12227fbe342bd978e08 \ No newline at end of file +54bf04811951db6c894f272f870e3e41f8f5e05a25c1115efbbdbd0d8bba54be \ No newline at end of file diff --git a/src/btree.c b/src/btree.c index 8b229ed5eb..be5d639baa 100644 --- a/src/btree.c +++ b/src/btree.c @@ -1731,7 +1731,7 @@ static int freeSpace(MemPage *pPage, u16 iStart, u16 iSize){ }else{ while( (iFreeBlk = get2byte(&data[iPtr])) z$1Wr$mKcS^B*s`E)tDkAF{W7FGix*^&-1*W-#_o~uh)-vmYuzK=FB-~&Ybz4GdCk^ zV#c@)TeyU5P6x7l%qtdQ+sTi6En3d>>3*$Yf%^Vm!_l}%tNYy=y`5?K${iM3-f ztSM{6>aa-aRXm_}p>l)Tk;>Q9cq&1Sqf%AdQ8`mhZ$lqb)K*lES7WG5R$EfpQ*A+I ztlFH)Xf;4(9o0`|sM?rHo7#{{o!Wp(rqn44uFhX;>v&gf^%691AIE zIakt@&CDsB(hhu+yfyI$Rp$wV&#$WwNq3nJlC+{bgl^N&KTz*7 z4`gXYIV9lsk8UzX5B_DkD9AXa)q?3`-5mJxcefR;EN1oKuy(cH1Va*ZwT02m zAb*6eIb@twWHuU-m+QRH=m;}|FGN)2lx9t0V!*sw*Ng?g@*DFwTW~@j|I-Km2ta(c zE=;Fy)JQ+5TmP;(`B1w~hxmT|>(2JY_w&sdJ9|dG1_58^zI}T6QUbm~T|4#dolI@Z#X;9a897%q~y_KC)LyU>(sMThyFeqm%qX6 z2J}&X&it5$zS;D@L7*YT`CD729(xhHP-yEv)rB0hLWyZL=b?WfD=G1%KGry&^ zp45ueIzb~eWG7ex+S&;1SxDB<1(GH|25gnOj_^~4u6jtLEbV+rlLwWNrZ^a;>gwnk zd2j?q_BbANR7 z*ywT5O``)XnnLMSvlC7hSbD*peU@tA8{_dn=s?K;SMQq@JW{0VCbDR#d_H6lBqW7s zAz`#B0y9qO7Ky9{Ot`=X;?Og??II~>vPr5370-L#&sD<`!9PB<7N)+h%Mn-%WKS~% zpqf=k!ZjtjDI#kHBY$NBVOS^Ai_mzW?&aKouJ+%$2n+ABFs_3}X!||u4e85tp&0kE z?rp|eL-8NpDj0ED_oc|%!0txM0332v_r6ZMP}ZooVmaRjga7l8dSE>sqQ#`I_01TZ z*r|&F-#5A&Eb8D*T|36oG45O4yV|gD4O28^PX75Xe}Kv$vO;%Lj$i()szFnw?k7Pe zJ1Df@mzaYi?UrkTkm(uNi?JlX6oqb)p}-1t$PaT1cyw%J2A&PoJTvOeA%m`OVO1)6>@ygyP z)#RUjVD3=&5-2(6w!r;JPhb45uHq#K=tFusj)LX;DU-T`2qrp&|iIAyU&O3#xif*)X{Nytgy9 z8=({nP_V-LZ0-P^f%H$Q4?Bh_gV}K0(_d-CpkS`o%$}Qy82OyCg>3bO4oVXsCiI7_&y`ge zK1caRU}K>4J$)3c^y^o`@)Z3*m>Q$Fq3jK%3U*td9MQ6IpjMIV!ycEziftDw3v{v~ zX?D)!B>jN9mMeV)c`Okz0n^@8meEMV^{-&vRmx|KO@zn@J=uWO%4>?Omo$f3AU$Me zIC8t<2wINu^x$MD9-~Czjc|Pnh7}mhl-gmmeas?#a;()hnYxornnO!%PqHsq*?Ca zIPQS5PGHl49q@$0sFTWIoOwv8qhlsqSELj%-OL?Y)hKB`4w^(PD^dmp37$%=&I0Rc zApt5f^d?L`rEC=0bC|bSzgxh)=afX5&4JRUVgoEHQ`|(9tS?6G2g-d$t8;b>C4kK@ zDM>n+=sO<6hj^G|^jC9HVE9_ zp#Q2Tgke&pvPoc>V7slT`1~)*LXj;3+XqTS?jC&zURh*TaH*MWR7O=si(zq4Wwu2M_^o~;%Aupj#8V!sFC_(P;^2t!0mo| z8(6jaG~Qz_s#<+I!%?A*t^&jj);B-cRo_r%E^O3G-%Gg13!4gt-fSR6G_zgcFlV|G3LRDtubBfotN zR2ike$<~4Tx#9)uGs;%Xu<4I6OdqX(SC&1J=3p{s;X%f^y5Y6)s$0@vZ~{Nl?iQS( zuhEr!aebD4tjOMk{JY91AkAwI z=c7W*(0GoLh<8`(jRv+0*be12+>oc=tCPbe&6~kxbP~RMKp#!K{#cOs*mu%Z0L8;; ze01js@nC^|fGk&~+vB-525*lM|DZo3 zuwv{r-*}q(5{!`y_8c{Kfp6Ctz0l)l{UP=ijGQN~g*@3f5e{uIcE#Rz^alj?HuPF- z^kL24^fyFy3Rb=*)`QgE#%@q|tMMXsy07mQB3G9*_ait#arlX3s4L1Rh@jILa2fw# z_&_np0y_hHLX9pAH5zV->@4i5YD~cXR>K~Vox?qmMwy}FGW;R1_n=^nAqmHL4I4yu z9?D-a#ABy$!|f2chNO8g4DxNpM0}~HVW!C5Jy_RJBD0!U+Q`sYkS|c5rR01VbOIWi z7>0$&wMf2I`4fX7;brE6UGFd*md6;X333VDdHKa=z*EzLF(=w(r6TiPn)m zhM(D|sCGAyg}9z;5*R+;*RYVWE1>o^tb~UbOx4l)s%Z(^SMX8-%PE>YlehEPzTHjw zvYhL8PQZ=p%(idAJNsD9!sxpEx2uq4rX#UTiIai?a+%Fsr?{9fMx&ybZxQ z-Efl2~j8AjUcv6@5FJl4MjR_okyPYV_w$8ZK`3AAb(6G zehsB9j18cowKoJK-Zhl7gKpzs22)=!tY+W94`&UTxMZnefyiz`PqU#KY`7!1uyMGt zLV#+ehEMq@zlEN5!v}cw149c2E9%SLq4y=jaNM`bkigh2jI3$w$DsEohP^PtOFL(4 zF7cUt2Mwa+PS|a&;fTn-$3L%;nxV4Z@CRc*;Gg9NH^Z=e!?yza5lX)@ASUcLBrzDi z!_XTiykU5ivD+|eui-LY-DapGvI@vQVTcFoc0&fvK4!4cDzn!>bGcx%7aJA?DZBfG;n_&+b_?t`SW#VW2Fs0x?wEPrpo;8wc=)-lHMT1; zoD$g|K^`OV_<+d%L?zd7m*JnEQXlLdG^}r2jLTm&OsA@AR3+c{2bu)X-`H5fa;qDR z@a+bJhx1pbWeR^3i>Y_uQP0*HC|>c1Wumh&)n5_hLaPFDfpw#xLd~> z;5wTzSw?OH9U(`y~fodGv;0}xL~5$poi^u z1Or#wk3?q5{lIV*syPhxbF+yd%j?M|v_=}qY7FOjb}!1x06DK=E+ z;&yWBi-btg=xrnA9k{2ZvA@WiSp0{<$j}L z-vURCHRcBS>49RcF%#PTN*jfUZk&r=DApT2Sapd}Wf)gx+)QO3<8UpZ3F`(Jn=xJ3 z5xv?-()%-DO6$FxL1Y6igH2@!|+0 zEo@c6HrMz)5^)ZZRYOb1;6o=KJw$6qrm-g`j5qERnGbDCjLZL`1Bi|yh)OUT4yGDu z$*hj0OT_`y{I~kk=$mEyg0UK4ds$oq3E%6#gLV%LbMXEgqgG%w!ImYq#5T0xiL4gd zR*Q8RHdKwD2&^`o)EPgdIZ93U{$1Y&OESdq3>r@+Jz4*Pae+kWN%+ggqe|U_IyFkt zeD6Y%hQc7}MahhJmm6tT5b!A0!@$?ZdJG$78$T9UeX#8{KExeqVl@WOey3l92Xl?R z7;6C8?To~hwZ<<*)(~t*j9V~jjM2|vUO&=0T7bg@)(En@7#--zGk!0!#$bEP_ye^5 zLmvYLlZ-3y&=zA4fki=JIvJhtZN_gxKwW8^$LCN2UMMg&7g>`h(`N+^IAGi@5WMqb z#vsj@{S0W?uZstdaH5()?9Y5U{k7sRgY*INPk8l&u?}O+|DHBL)211g7a3>hy8ZWXKjJ#(kW%yC4v9Z8ft%)># zfFEBnHWFEDjFgOe0jbwe264aYm%^UUjQv>~jMN#^sOGU~Aa1j<5K@QA&%uwAj8S;z zhH;EU6gK+OI8o`kaxjk0##r{0+;tC(e=^ny;`4u3hOk{hj$_&behfc)Q zx#lGd?>S5%QV`-Xy{Tg@aF5T_ipjlJYt?A{G16ocZdEB2m;dktq5=aciL- z#Pu)~0r@O5Fu9&-qd-tk+P38w2I}d{AC9xGcl*Ipbf_PO>c{=FUB1+ zEnxey&Te5?yM^hRB=iq}ag1Rn7Pc|<71@BCK({0)IZY_5K?S&ffLl={q4Z>kB z>na%j(#>QM*kCwW)tG_1MwqVBKC`!J6JtXlzpi^Q4o@&`<$zIQJ2&Bh{Y_sIV1&|O z6ZuQSQ5w!aM}WV*gOIr-)7K(FLq+!l4+qb?!-HGw!oTqEe`1cc@$^_z8v>3X%_K&_ z#W5@w_SAK^#gGXmvb{;Pee;n0nPj@9)3yw{Po$(UI?7P_x+Ho)*%rZ1S> zj|QBwFOW(IOzSx&^3=y*pF49_kwwG!A^tbE1vc2Ew~;W(&VXNm)ofF64Wu-rjn8sYx%#NSZHW_Z3d@^DUV;ny!ia;-(eR?5|@AU|fOeHp}VLh;~XE@ma9c zH%;4jtx*jjXX>o`@U38;$m=J8rLn1EU&UKi@=*)khCbJsVPDbQ#@yQwCqp2_Tsx=r zyM-|7p3Vsc!wd0<(t_Qh9>U^)IJ7cgqC=@Mhpa(q#UNB5h$ifnq0ujwVce8|*5WHWMnEz01c zV%FyD8S^0?KW;*;+(y!TngWTxnnvN}Q>Ge%Jgabw+B)~N>7kaOBJsHtsH|!7;jlkU zTL_c5#E#7}MD zL73Y#r?6RdsJPBHKbGJ6rrT|yNBQ>U57GFa>|r?Zz}R1CZG52KSs7BiL+NU9N+L1dV470bNl z8X|icl1IwTF(%x6PGrk5zF}wtfpM3-x6oAG{Hx4XVz$lnEIH3M?+7UBVQ@pn32!?1 z>X>!8ea)ee*}$x_EJ&+uZUO~&buP$CH1EJ)8=6fb%LcWJ5P>!P<}#50oyZQB=8$kv zSCEr1SO;0pn(EWZ+YZ%Lc{O?S)ps1-3hrMeGCJ`#S zv$_yhT^P*=u^LJ{nJe&@HfD>+)?gsUd{Ka+UTiGvt}4WWubsIY+-_r*q2f1Yhk2js z8t|ubbF!i1!DxZ-<06|NVL^K{Z9h(RHv2-faWwZ~0+JZ*K`(9v-Tw;2PdA^0yfdN` z;&4(FbL*?b(6v(P#*5TCtW|NM^=Ren{~dw6uQ z`Lm!^*oc+kW(R|F^UZDHq1U|Q;4HH!uuYhlYThFT2MT4O0vRWbxET{?mXm2PK*esL5*UA$MsUM16t$~6m$uqU}P8lhF^dFIz@a7*RY? z98fz`RpwY;H5c-7Jqo11Ywjr@-0M_3VadB@vatkViHM1DmOK&CKb3}a)*ZscjutKj zF!$o$4`X6ii>}feH;PH>mof$g{r6WCQkg>?x z0P`-JQ$%(Qmi@V78?Gi>yVAfT@7pk`D>vEmkP{(-sLy zGd+zVtFh$3#>;57O`hNtR6^>@*gRu=EiiYnn-cf-X{fT(7r`W$X+VCR=n25+bYx zaI(9!8I#Nw@-ogs;aJNqh{&|0(!S4f53AZOUo&x- zwnE)Ff$R4mEUs;7&)7vM+-xDf&#`74h_i+ZkYussK~@Kw4N@Cea%dfkTVTxt%RzHf zh`U931OKV;i!oub&kwXv?r8* z&hWh!mK^dpVN@H-RNb{hoz?D=rt*=UsTOOAP(D6TUF}9Yhi*vYiX_OqiP;B!orNP= z;`_O4E${q)oVCKH{r_1j!v8_m3TC}(nZYP#O{q4NW<>c!b<$rG*N7{{7sW;50`WO9 zO?*}yD~=L}i2cM~Viz%9Y%Mkyqr`e*4Y8`|5pAMDl!b@F@50Z*55hM>x$v3rk#JEs zE4(cnrzldPutV4)Y!F@%a)jl=3xX=l6J`oig$Y86FhUq4Bnmx*PC`2&MrbND66y$% z{mK1s2^K*SM0TIur8JrE*jMZZ`;>ji-e;#-F+0i*usv)$+r-u}VA*ULd!D7UIcz$c z%${M%Y#1BB`mk=S1B+!XSb#NPwQ|zDk?GpkGHC;^&Cc{u`9fv{l?yVfQ8_)6(ucGY zGAZ7#9hgb!L)xC1p;Wfd^itU}lTwMajWgX;*3G1ZB5jpSCzY;DfUuokitq>P#xvs57WsrB0`^jyg@Fkv>vWsVq^+Z+u zPNK3;7m0i^#RJK+JQ&~qHNTpAuEsGSY_NCIUQmkLns|hrt|4{o-`JLK}$`92ZRGwG6 zQu)u+vGjPV`e*J~8>;!gmO4fZ|99>f)%@Q}9drC=?pQE&tT+4QFH{074e`Nl0%ZTr z+<7Tzp)X_P_vRZSlr4}be5DaT#mEYCKlVlg3n4G4(}MK_^H9iJV2%4SqG@3tG4(b6h39K_c3;$m7 zftLLHPiPOWRG))Qln%nl1j_Q9L-z(0*aSe z+F^%O3uUZ)1=&XFccg`uoR6%g<|>$ePMjU&_SaBZ%TfX>cZ+83Pfo#v1(tmR`vxoP zSu7M@-x{w+t zHHET2%;)~w;!4{Ab8t^}3oDyju8`~Tz&sF}t+0fI$mGJ^eTJ{5N^m>z{b7sR6B5C) zTmF(p_Crp2ng>#scq*O@C5qvIjh5Yv0wEO-Ea$Ogv!$s>(T~Jwp2K*2o24_4ek9KF z5JtJv@`cDMA^)KkCP9@?m*(7Vk}ey?A4**PcZ?eTr{tOyrzP#X%qKMOU_!F^1w%avWK9a^A>`7e#esQW#|9PUH z+8dW&woDV{pQ-D6z!n3)ao-$+!ys*BA&#*N6`xv5(Y%kLE*>rVpQZ>);#3x(eQ@XT66} zKUzLyfveLqOCw0UU;mR1%k>H^m4 zA#x&xn5S|FJT<3ciVlZ`TJyO&0I9=9TEiv6lO-qQ_tzeQh%M4E*l^t9f`~t?-{YQv zT5{`??pfFHE?kfur!9h13PFG`Q(g!`K6sTP z`;gSvJ{$`=S^EjhgN4n#v^^_XKuS;9nU`?NInOG>d5>Ec^VYqPyh$bqw5RoAh}>7w z{P-Lvc`zD2^;8NFQB%8^)9RqB3MRMlo~0S$wcX?-_6Tw{9Mn-#L-Y@~ekf90#@EjF z{F)oKnP7R%RvDxNvN~y7VCHD6$_QABA8U!mEXlTmLBuJG2l7tZ5+P%P)RL1mFW6!P zk7A2QW#y;LEWsYj(dKRdXaJ$>T2UFGp!Q^Rs-^@ zT1lF-xio7+;HF5R)O;&}QnjG+mP}EP4C^-{MQ&mxnuE<2TRZFIfs*Fy5s-hDb%7su z+G^oIrjO{x}OnR<}0#2&+tZbisxX7YU{)f{$i!zVTb?98j{JEFk-*01~mTD`Vs4h zC)e2Gh2XqJnzuEAT<-+=DUt(ItJ$(>I(qh~cw3ar4_wvrkp+VAcS*UHcKsmdKBdmj9=Kz}y&kV4I33&T`tDnKH2-`r`3lfv9 zOF2oU3~qPUF2b_vwi=9bqZ7wkS3jX^2`R`%ISYTNZF4i$2h+OpuAeo#32v|rI@r*5 zNGlDKG!=j4Ap9k=aN5pDiHBRNLkUKt+|$1%-HUu)ccZIsa4I29rSA!XXl4J6ORFE0 z9{2vGfW+nZ;Mxhv4_PCn58z_D9DtHhQWdbAv;N9&?hmY&w;HBa+OlY}EYoJd$^`p# zICn}K971W&bjJXA-*2CT3*u}`cs8-Rz(!dRMYrTQ(&Y0V!oxMvAXHVVg*}B7^7X%C z8_W*&B)^d2L5c5)k&y9Rm>!dkN#v^deze`<^f>TzUt1eSL88(I_NYfXS2n}u6T!Me znhOhO+p6(~he0CAAL33)pF`a1as$ZNN7?9k9j(=Y=xK{@4zUdp*l;LbFL%MHGafo) zlef^8M4Ed`UdtO80mU0-nr$0x8D#8-+H1k?*K~TUHqrVr#phFO{VDiVI>WFG%8a&I zu;27gB$mIykhJJnP`6Vc`)z3|r0!G-U8E(BW|2dr4`!iSRxNqq=*D!O7#MjFhr z5P5{8`GYbFNpT*T2=MK+{=(IVZ#*YpyxkVYuv)h5D}haf@>p#EeM7BfG^p0LGDuh% zQUF=?w4|6C=~*a`*TNI))D?eRYjcToS|#$3Tnh@eSX`L2Mk1H5^E%scflUV1!h0AK zifkW{YOXhH;r3CT4TxycWsNlDZ)pHY<1!ky*dRn6MP9by3Aw;@sYeE?BPGop$nQkC zJY_U5_&DnDD4R5%t~AL1K%(6E0^4wrO@rcC>kuTX@&*O5pg7*T6?}cXl*RhCRF7Nq z8Whh$wZ!@>!**vpG=>qP-W@1{Nt(pkCZrJ)!I)iN)ubc(Ny{wcSaLV?52%C+S z&1{Vs@99F&Cz}J=Tcl=qT(Nf$u;KujKK{&HtZZZ3F9cWih>O-3xNWt+%72&#rO8$b zOkTE~7Abm_{g7f1WV9BL!||uh|F>KZa~cM+1yDM{x<1&q09HD^0tZjqxk4(zaDACsA_9BeTG{q6E3}9CelfNy`Xw{l{vQh($lxItWaKj2CE{lNAX2+suCk zMUCx8Ih~nM`KsIqZnU+%`%m`-Q%kH}f@55S?4a%;O|k`6+PoanwPG;jPurVpF|s4N z&J4TXx4j-BCrg^|(w~TOHL282>ttveVm~hv5FovP6@@k{sm3{Z2u{}9a~UN*6B}1C z%r)633zYaA*~eQ8;$E}%!}(VG3nF_76NlScF(jc;O7SvGOtMktz+;iE$2wv5tBk#j zwzsSfhMubS&=58n12ydzM0p8yxf0WUv%X4ZYM^!vG;LrnVHD}QXI+K44egUDzO^RJ z_Qg}~7`cVp@M;q~#_C;Iypts{M!79A>RdYUF;`iicLuXk*CRs_2_D+pv78H2Wiuh9NPsP z4Uk>|b(ppzc1^G!6)8|ve3;VAeBa1xv82D9HkGeY2vBN-fx-4LoitX`y!B|dtW2_x z)2%x&Q5{2~c$A3YPqtqaW|*r!I?0BnOju&RL( zGmhCWF?3C||HxP#Rz^B30^T<|DEBF1s{KoeZNvo!>}2@=*+^U7$R<>`^PlqGl|AI_ z>dGK*lsp`g;&k=-&zm2$2Gp7#J1n&OwDL2O=DpVBKDGlQJcX0jiATbuH}YNTI2u&c zr}@=>mnUO4{qXf$yfh9?r_L zQ|{jmd>Er+1Pc81=;uMr-U*R0Mi(TlwcDU%kvR<8wbd2>)e=#@fgQ}Vm&@{a3e`nE zrY1-!LAXTEn{@5L;v@EU42hYA0^Dz_qvI4BsQ`;lP%V@UpN88=4$dG?_KXzCr}n&^T)NpPEz>v>yUL z+b?3Z&+QZ^p#H@m{S@TTNCzNr*M1QSW*BQfA_9qs8x%tSXNxT>ypoF|gErQ3R42-=s??An>x?2ijllNx1k+d%DO@(g8NdcHDK- zJ}`t8gZZHST|8G|j}a+ImHdv$i$6@(#Sq+b$4&`YZ$t8N$qhxVj8;C#Q4C-F-99Ho zoG`*QH5+sk0#pY}|!+_JCc z&z{A+PDC5{PuUm3)TyF^w``73fudN2UG)JNbQk32!sy;xenS;`EKBN;G{PPk@Z5-DWDOJ*(32r8^R%gc* zrYog;KN;JsIi$bn=twrpK{o3$%wO)H?PE^|Z67~{`Pq(^kb1^pz%B`nVnf;g9h5RX+;LN6*I<4=Zy|}da2;4*{$&h(5pOgNK*V^57pslu zzfq#~vrambX>^8SV3Oklo^4$@*+Gj@Dm5y6P8+E!4hMQ?IKJbl)#cM1kyvZC{2gO7)9F!6AH5ATrQ0o0+#|@D%M`BEeDzK%mqZJNY?bs$#e)Q6Tj{4Ymt>Yt6{=TVyoE}~t zN=)kcx&uY_17r=L!AImd2r2s!mX3DBKtiHJiyby|Vs4|fjrUT4(oW8-O4>LEM^eB? z@)MmPrCR0Zmi}aaO3P+`D13uhRQr(Qn#g{k@HKz*4oXG*^H-Ek@z1-Ec9!>ehI*8L zqo-OtdaC+)2W=;R$J&z|S16Bkk|P|5ds?pbfB47wV<734!-;KE9d8jD`5{l{$Z*&o zbcVyk)%QnMwzDpjxt$J-|AlB|BCxxT2zV{rSr2>u#(6CP`@<0hMU@US z%yl?T*!!M?vbN*{l9TwN1yyj?#`==;Q!yl@rQRQC?uSyz*$mt2obQOVWzN6vaATO! z`7H<3k{UUwd#m$`$n?;=(m}@}olZIyX@KmX9F1ZA9Y=NS?{(7t*oaa%@4y7*Va^EN zvl#2J;vLQyi2IGW*<(0qV2_$knm87e>hcGy5MRYf2@egOl<;5!TavR5Ht;(y zi_A{blHcK=X~{pG5E*cWL0ku?8=JLpUKA+_xv+zi^gqt|g{Zh&v~1CmFogi5#yDfJ zQ%C0skxq^m_Hfei@pkk~perZG3*{}H1o8BA62udVQUY(94!sX>)`qroom%wwcan6g zz@8D##!xcAX~&L(ohL;W4s4i{Pg*BU+Nw}Ej+oXm$@v~-7{jE1lcvrX=M9lXpfsL0 z>4W0#&MHv$EOpjmlJmSMM*5pT!hLF?l);;?4aIYuq>7831|97H+Pv&6GSq#3S+tra zYhKFbcvL&Ej@BvIXSuT=cy>arhf)@Qv_49!`DX(>x7Qg>4(%Jx6_8ixY=VEh;#33z zoeDQNBQS23tBA1YKCbytw1K$nU+)Y$`*I^p>*(4q;GvDq9*lsfxV6sVn6%lsNd$4f zGYS&cI%9F_HYY(wehlc`w8%xRcQ(pB=9Ez`a6S+rf333vzpdw!ZnflB0(DBAc(_j@ zH|0bSA~VocLg(yCoF4AvkpD-uP5E6tD34*Ivnx5mxlZe&wupo){3dcVHxLjA2|JxD z1^noovoWJ1@P1jlO#mcQPP(sSeThsFU z>*Rh(bC~|fhwfH)%}30oChrDE*al0tISq8c@S5`%fyJUKxYJ2QoDzD3ys|wRuARKu zwtNiHNZq^}?4}(CzU18y8x`JqO@31xr=<>may_AXS{H3`ACp1wvqp}`QlHC6*~mXR z>5xl%-lUg5Oebviy7ZWJ$CXNJe4;B4lJ7b?VJ(8}tmgD5=)! z+A7ka^74DGh~U^lIeDk}9X&A7>aI!yDsv^`v`|+zhpcS#U1vC54UqVx1nKI zP1k$D@4Yecl5>m*#10OY$bI;zt8+QONI1+-&LCqFAo4TkGZ0~Ll|uoiF13*>M_`E% zZ*q-=sutH5Nc5pVNy(Axos>ySTJ%m(fckn9GE_Te$`>)}Pnc;N1|v ziMaQJV;_K#-CUGtMpBcxn7qN-ft(~KC;1U8d2~)5#4DTd;ZJ)?l>DJ-!G{Jz`A+9| zT$B|-DL*AhsA%N6#M>AG@jp9jK!({BfhSC^_5$bfWW3YYW#*_9Q5eA~>`$)nA?J(1 zW{2_FzVa{i<-CSl!(5?+6vh4KEE1t-RTrhjYUC0B)^c7sl9ODMkK=NX^`p3Qm;GB4 zdFWM6;+?yA=k}m#d=%_F8RLvD-b>(7FQXxDjf+lI&v0E3SqjFVah(iOX6J0-$&vCH z-X$TR>s%B~Tj2U!;O%-aPIeaw=-=+F9c*_TzpEK1>`aibXE5=mGn{l{nd=KSokO$mokLphbOnbr_0d3|=!~3u$Q8pMkL8+f#sxa}d@=W!%Ls>GcNPNK7cXxis3lAJ zxXk#;2d;Vy+VydDr1NMl2W3aYZj-Av6zzBIN*~3F^*~AWbtcP3NYm_IRxQq?s{+CYXKC*+=}>@HnM>i!9ILo5F7Ht`IXz9 z!9iLn+Wj*vAT$|h^YkC%Y|7ZYMFN>Gw8GVH1D^TG+4A2L zm|J4n&@Y1GU!8dn*VlCbhy3n(leA3dCSUI_F|OjOR#VJ1x@FkQiF~4IeKA3B6X%wo zZ@rTa$&mdC9(R*p;1o6HpuD7|?WIUQ0-~Z;Cf@{Ov&vL9PxxZ@zne%)n0ks-=ITv{Y zPAw%!ldg2cj2iAm5?cv@OYWHvHI|}Hbl9Q4$g(hS+0C)CMsC8&vU4J9JHe!Sb?EcE z6`eF)(p-e(58PdGW=r==B1f3y)wG#&I~92bo&D!HOIs*-*=@r~o!mKsoI^JNN?qNw zsIA3}WcPIjH(Zojn)HdgSMDNr4>0}Uo(ldg?)RbSeRt5pyaE|x-GiX)fui7;1os9G zO=V1QH=zSk-WISS;O>n_`@5U!*-X4W(rslNcaqmZa%(sFp?g^i$V#H0PA9qBh?F!v zdA0j<{CbSLsz~YndosM^fQCY+4zIdZSh>lYgd-=o>Evx56h7zf17YDN6DCb^ZxUHP z6s^@0)Hcgai+bu*_avM(&3#{%XGxkL#`19@jq`m1@8-JaGnw+L<;`&McXzFWbKG<; zyvQSZaq2izHo+ug*bXj*El@hmdlui%a7WV#dMLc?u7PzHyF2R$1fKG;ySk{`wqc<9 zoTNF)akh4xjkT=w+$OrVKYCY8lK>>PcJF|=?rsH(vfLd+;mv4B>+N>K?i6<~@QI!P z7W8(Lf3tawdz3)A(uo%+Um$#~`2ZHF#hbUf}Lq^~CO?;m#$0RK07I=Fet zy;vmds3IwZ4pE+QTlH)%j{Lx#&kTjs#SzYl<}D!qrn?3d+;p3O_%I3aTQ^UzSVfb^ z%RIB7%tBkSsiWQX@dWcM4$hdPnBUt?*obce?X`*)yAg-Wo(Tk=CDL>z4z+}%74G0# zc?>Hn+zIr{D>@l&yyD)Ert9u*T6vzNxxnGVpo(|LdiUIfbfz9~S0Q_8q8#BJUJ3Sm z<4%wd6QL&|u+V*qfA0lx4v&PP-@0$nIerWX9zsP)N`rC!5AGM}AV2t?ag&E%;jX8X z7fPBvEgtt#4Q~DB)+=YWrl|{P>OJ$gz80Z*^4nV^mEx%9Opj}W6a|kK^CSE6DI|4l zL?~)E_blA{z&)I?ceo1r4%GDApab_5XduR=N}e2%ordh~ZWmmrbf@75^tUhjQBDceOlDI{BYl z*V93psgX1*<`I1@QLXFwQDXEug+?Co^Gb7U(?~7-9@-;*fJ3Kv=*+Z;acmjDn zjBDeeecwkobT0h@8KIQEQV{RyC$NvPC`~4dnzfS7 zzlFd)gZNVOr(m8=$tzFD1S0bWBoFg!BxoxCbBaCw*xEx`Y0 zg&s=-NSf;zfQyqn>4aDzYiy0@DLqY0-OdQXO5000+F4gAB%5*3oDodFfr2+It6=0H&qmJfT2NAH-p?t% zLvIgwLNjOWCYl3((Kss;sVmKx)^h9fA ziR@&Mw~({dLuWS@dt_0*LCpLHS&X&Mql`nIJpL-0Uh@1(`F5bj>*_$lKAq*i4G3sJ zwQ$68&l>`x+`EAu3;QSa|Kc}K&5&OAi@bpeJXU!z`^}%f(3Ttz8&O@g`e}eLl zyks8tdni8m3kI&rZ7Esjzhx*6D!%Y+;Y>n05@stacSeGW* z&i%J^pEXSQtrYzYZARD75VvRGYJ=5HjFbF zyD{$(dPe}pw-qQHY?Qrs1&Uu5J4~(lxwEA?MZN^|DBkaR{#vomT!NR3-dH1lt(4qJRGbPipitGzLI`vVzav%0+BLn`LI`5Z|I9-t{~CG;=e5zoY8{M8J-zE`?T^=5 z(cIhn6Tu)U5={w>)(+}HnSiBcUP8efSU%JqL6dumbb?-H;;k+a3YWG_S_XOF+gd>S zRk`9R(VH53U&K9ay@RzndS}UZvCX#%5WmJUh$oBD7I|G~?`S4ls1JH6z&g7J{cXGy zD%*2iHsTxIy(1W5bNLM@GmU5?2PYI#cStYciUjXW4$!qb=ZSihnpvVsrDz@CeK~}P zSvTA}Q4ZfVJkx>35#FB#*-hYWhLI|r;ETr zW4t>#Sf|=NHOWdHaED;j1n(t*aJzCHy)!avh;9I`nB<)qLKxk9TN#}$oZ%%zt_Gy8 zBvjFuteX!J1C{GIbB=cfe*r-Db}Kn2^Sw7kp_VVFOYKJ3B*R-O8fv#_7SpU*^AyT? zg6v*l^)rX_7#K= z`0J?Y!6oJtZez6pNY)DDaq4Anwiq%xI)E zR0DgJdH0DS(M_W1#%5si3S)5mG4E?49jq^3tRoDy$V(V%H26}yZ6P6r9Na#qyyWz? zfW-C|A0#w2Z^kocyo+^|tJtg5yH}8-sHIjpYWPSTeaV|o2mC>uPbVdPc5ih~)@phY zBNm65X&V-Iz#H6#X=8KZ8`OS6&q0w+L|59(^Ppmvw=2A!8ukh%9rtb$Si7fbiu(_m z;-99e!uyj>>!m|-Yh$rEGPJdzj3L4}KRQC;M$!Ki^DysYZwfzL|8GJ&0}=WuUXwy= zi>%APiR}6xM4Cd0$Zk&)+5KrEouS0I9#0eL4gFb1F!!;@&<=v!foSW!PYqxEw@j0R zGVKFt-NR1dhBjem2yLw&I-Su8`S_us7l6dM0+Sl?ZWI4aUf=&9FUZ4wPm|aGY4U<{ zrE|o8%QY^PCRi10+ck7H(+@gdH8bqr{G`Jj+QAU05&GV~jPU3GBAm`W^W0bM5GX$G z-3AE_b(EBMf_5*#5de)~Gyi!g6ieP7knx!}1LB5;UgXL-nlG=~VPNeLRsoG}nQC$c z4W8c94u{C2-bkoFHSA;Xf9VCtyKWkbcSnR81vUa~i^zaHex*Q7Ahms;UYJ2II893C z+!+bkcPPzcIl$O-w|Dh+N z|3gnw{;kks{w<8L|6Lg4o)*S4PlTbv?n^@ti-dJOC5-){EetYcNNJz_A9PLn54tA* zo31JUrfcedrz`boy3(G|^?346dz!A7Nr&<1SD_sRna&t#XZ{cBX8i|s&;6Ua+5e_) z&VQ$F?$gxG`w!~oKTVw!MqK-U2HYjZR*%D74H)ifM0Zycy1SaOyQ>A+U9HIO0_XfT zWOspczC1MN1NVEeb>b}2yD*FNZj2(m2YZp;i(I7lA-k_1*?r)wKLOc&I#M4v*c3q7 z-4RlJa;Jb!d}iwa;>p`L3V=?e02a@{#Zm!wjOw6FJ7qefkc1f60Tq?|Yz6}R`rN)LLL|Kd5|@C(*2xl}-Wl8C?Rp}TtAWFNl~N&0j7z2iH}FbZDlM e*_41`K3jD>I3eBbBy&-?r9<$3Oey?gJ>nKNh3ocWy3Z2CLn z(=*3sRjWhdBs>>%6A^4Vs#o~>c4*b26UEnw;FMK+C1W@Fh%Hk9>e39Kt?&swwQ ztP!ivYO)B8Mm(u@qH?F&k;*sKc2urX8k&c}lHH<$G!*l?PN3PS~f0Ytl4Afm($=Y*)jm+@e;ZGFJ_y@(tBPuoY_AGb#;O`BTh5`P z#cV1f*(})8$J%38reQK;U(bDLeEFe~(IwC&(k0O))1{?LhYyWx-z2gokZhLfKzWw; z!nDq>84Ul4^@kye=0(u3zkW$hKwlG* zer9?|(uy9K^D_&DOs!~w*0)(tNL#EA!MHEF#Lx8hR9-IdyLW#2i??v zsMpSxHR`QcuGN9y|3X&>Y=?AOOuB1`W^j0)J_aIw&|hQq_ukXDVQdb@{ir{ttyEdV z44TR`%76ct*H6_z#C`ousrAwcX=r|+zbnYC$O78zN>0rXaDkxAW-JaRNg-XwXO}!5 zf|d2kS31@Xl4~2n;oMe3Htw}4nL4dNa%FY_`)p+-x4sTJtyLyzwlRKZ7n0|qy2AEexe()Qve7=MpN!snX|&YT7MXS3T}Yk+r_F+GEvaAgwfgsGYA z9K(+z6~Dkbqg0(s)CJ-i>t|tlZG}duD@yhG&2A|9`QPsF;uy~YD8Asa!h;6h-uP{_ z;uBd9$h_cr3pX}bhU!=^D7hqfpgctx0x`W5Bc{hGg*ql;d}rmbDEB0JdxK?;@)D+X zSLTVV54MU|jtbD`uwsYrrztODpFYZInaLPFNGW4Vzt<+HlBC%+g!g&^uZWFhAJmTHUP@z`Ci7wNy-e74TP&%zK+;toKhq}{_DO8IsNoTvOlFRYf9j}~4S@hNJO{;%#rlxhQ`v;wQk8uI8;X$&l#vXUwpUui@;-_d zH&0h)Xl0$GdA|joj7b2Ss1@9^~(Y9S##4z&{ zr7DBWmzAnuvlxB{{rieVqBo|1{VPW;xKq=d0GTg(5+Tzgw}zw)&rlpwq^uTL3a}z? z2#h$b48-Y2m0Egc!qsP#LZ*Lii&iyCnhQ|Tz#NCAXOsa!fhSU}Q^9szNPzMs1~VoX zE9*oy4RbRM+XdWtK}nR^^H9=QtcQiS6%PqzHx!}vs`7xb7a*&h62K;v3wEnCv3XB(ocfgNI23O8>x?Y5d~M@wNpx-SauhT zYGCL|ru6qgZ2W`LP?oKd=58lGWc&G4pS`+^N(y?{`wsz5@MdSyH3w|RgnsD1>D4hz zdZ4@|ur#p$uBdzF8|H{C9qd#; zF$}@?^@cc+WkAVx<-}7Xg)~w>Fg6$V=nXY6uC^gUgynaXMmdL+`FmXkQDXDaHq`Kk zfI=k$V{8GWiiYLrKd5XHuvNHWp-#3*n%zTq7a9l0W*!N?2=kg6MlkSKG89AcT0q6rG}+tNP+w*)Y%s{skjbyUVN;!$G}y3~$yxM#4i0#+D~)ofq{*5JRObu4%6DELqJ~JCJuUg2Z{W*C zhS|!7b#~P!X^z(7EmsZ>f8N5esuwaB8>Yx>>8*934l&Rwu*5*Cz+0HQO{p#XWqy@l zT(;qLwjRn387O?XEa+g~N<%2lT4{J$$KHnAGs5e*=1s#hBHIXgqG1G(;WdFXQ927W zoUbI}&$$MZk!=Qs${V9KrB4wWMzu7{G03yvDn^l}wioDzBP&=-b(Xjm=p%$}xJ z-h0;YkjXpfgPhLGemw8f64hTe)CE@}2R=Itip_um-o0^76qw&A=iM@X7g z-T3`(SpBZyb0+U6DGowWjNpQVF{WS8_M_nkfgOV3Q^j>~XP)U*Z27CJ$&7mhRtP;ZO%YgKGF}r| z5iEa0tOF^7OLAe;*nho9PvwMF?|66h!fB2B+B{KIXO1@-~# zs9|zrh|hRSWXE7f9a94K4KwZ#*>T*_z$DWkMjC$;*a^tbGbZ8a>c+JqI|*eQjPcl^ zw(*Wmt}1E%7y@~fO^Nu5-#A@l@9&K^7R#&}mc$qv3i4@c^DM<6M!kTh*2W<^xjGGR zW&XxMNLa$$ucGmS_7fqjlrije}h%W&?P z)rVozj9-iF3M5t$s8chHH$`?83et?dAnik2F`UaVF2Ky5zBUYcbo12*SDNt-y9PF& zeK+n)H+B{aBaP@tvi{0fPK7iFh4K+L`J> zc_*I^!#^^XvAtDI0~t)oHm+nh;JZ(Z8Mt7jakj|5gzllnDzNrP!Ho@To5}^Ka>e)= z@8ws}y^8T8JbBgFjKQ+Ha#!eCY8;BY))*6LD}|AMQy&IBuN!y5u>K?38!|IgHXDCq>=yq1ozcTEber)Tfqe@l6-LB_LSqtxp=j)h<8~Tf zXY4kNIBdL#mvga2S!zZgagKDK<^BJ^m5}$-k)-a+hGicH+LH?&~1m&#s3!v{(QQZP$n37 zD;*$ik1+w;ePCRwW3{2=jPWhy?)^?`EmHKa!H5S+E1PP}Qe-|&-Bb2s({T|eLf zzcEd~*E5Z?gOc5QqVOyvb$bN%BP^>bN5fK|u`6a=G^!%|2_Am0Z;5R#8;^?Y=b(;} zbi7Aozo4?t_%p-bzoa(UuTa0KX&x?p+c=eOeM7h8-~53_0ra;p6|>~=o18CD$u7P!aF>cYzbtKI}S~4n|=HgIhdP|Uhr+vN# z;@>d63n`l&E$~;#WDpsHBS%c}5c{*?{U4S|Vp&RxbH87FOH9~rQIRgJEBg2J_)r^CNi?k*aLt7W#xC4p|rk|mFqRE819;W*Ob7GOj6czOJ&2U7j zDJQ5;7Zf>68PG;BzJ}rbxE9?|ZGrjkKL9H)o z?m_&Ux;Q9JHeKiP5O^Z`(AwTqAwv3L6UFKpF$5#J$~2-R(jv%zPK?KM<4m-$g@S#7 z={AyZPLWkYYeMj)Q;%K>1N$;lcTAXO+9k5eXkTGk`llQ~auh<;P?K@*EEBDm;aIXz z>_^rAXgH1$8K&!uMSy*Y_$nm)V)z!?7)&$q!F-ceplz`|Q*4f{Xu%U%RkW`ZYcs6B z)by#qs=*PL>0_FsRCQ0;*b0l&#jy+;&LlfolWm$Uu_y>zWqMbsu~)A)lr*>9NTZ=J zNLnOW@aNY|G%E;b5^G}MuBi^g2CGdM1Xc^|hfNQ0OR89f!Gxa;uj1ZyrXGwYcUCtO zp)Ko8*F{zb?8i(SFe=65XYf)VvN~FTLj_hBvig{u=-q0%Ei#Ia&zio2mRe&BMNpboSc=n*FiAXX(oEOi>_a}G{#^4HLs~!iE?z!ms>N8Nza|dQ#EHhTGp1>J*)M5sMgFOZ zT)XiTX#T0`xXcl}CdgiMq%bV*$ooaMkO|SBo6fPO7^x?N$4{=98VUsLM4C(=;e}FD z1CceyNSnzZAT=ApAWkqYgdJa-`mz{|beU4=&g0R6xO`Iqg>=@cj%^6rT9jG+H8f zsX@7EywYL$B(<@mSv!J2F*3|@Q%$Aak)diMN%Jt4JDyQSlCI_M@oGTQd;_dPYK-|6 zre1=~k;qnmZ7#5i-PlAx+h#{22Gk24>Wi_Ezt)rhJ%2PjJ*-b$)Ik1BYl!b=nusa) zP1z!A14SR0etdd#V+8Xl0)rrb3$KV7E5pfI;wU`JjEw{so+c`g(BD)S(lbrRd2R7n z^r0!1JvH=tgZX#H+CuygZbK&XbscMulFLkcmX4Sh!$h{Tvdo}#Y{+;_SzuYf@P4>i zCk4?S^JYDbz>fOn7EJECQmZz>?;Duyg3N*3ZcwquOk?3U(^zzeqLxA(h#O!m1d3ax zVR94mI)PB1xI*(wnDVx{J;UQm%_~^;@_SpjoISG(@>^kCEA#sz>xFSA%(L09%##}! z)@*0KA_<8BFr^r`VnJtfZ;|!R4s=O^;^WK**E00UQ0$>4FyRMXKKWlMXBjhM{(Sx0 z1Y7*T5+JFv(iP}4?LRbPA1Lf$?v2|P>idXLIN2Bp*0w@5_^yxH!}{WoCHiuP_xhQw z0_z7y>X_1T+c@)O+G!3pzr_ea%!~F6#GymY8##8A*v&)GV3PR;VMi#9HdD+r2&J+7 z?_luvbP`B6(fpN2C{f{k!3z!g>bt@px7b;@@7LG;U+`m1Jf3Q9MHmvKn#CwMH=5&{~bm=9)@L@uQNG;I-ImC zkU|hl%lT%C)|0U!&-?+ylZ(tP1U3>YHkjWJjsrC~3Mw|4)Bm#&lS@AZ)^@=+(GjlmffoX?S3@kSg@S?>s9Q>cNVtB`DX@yg-m@@_8g~r(h z(N&@RDq9O7E6fovz-d{EQ_IYmS~e4=#IP^a3dFr=@xdU`^0qvK9!`fqF{3S) zWT7pWnq4%vGW0mlw%{4Pr5T|?*?EHr7&KWZO)xjRXhtYjv01(p**sicW=<7wy2r9i zW(%;)EmRUPWsc<;2J^x#Y3yYf5yO7`o7c%CpBc*tlhlX{Au?3BjHT5r)kL-kl84Jp zFs8QUl*nGe_~s$u1jm*7ZlSrMu=0Y(p`pYo+aL}QCSXSgK< zGMZUbwiHquSsFpUsJJ0>m}Lw8)ZAhg*)mW&3E^0+m8Dc9Oeb=HwFxAAuFua-7^sKL z7tD3=`z{s(gEfmn+dy1rrv%%~iVi2YwYWxT?ZP z-ia(INwk#Xz0MY^$W~yWgXNq+u82JY+bavP5Yf%j1@3gV$WZ!^NoVcS{6M{NwS#rlu?*H){-I0uhOfpL)LstCyaZ>(v3{|TXQia zG_v%0qN5a8o5*6}r74z$>Wmg8D_4-vzb~%Vt{M zV))7`5*MPDTh0?$6gl5=P2g5_jMq4TzqKAC7x9~u`i8_}1X!+1gc2q9wf4sTZ(6o- zlqh+iwKL2~mThqL7t1q{;L+$dX1C~fNt zf&9wWNf6P|8w)8Pi=AzOnCPZWqMI~s9NmN`F*m)cTB~F2cPyWaY%?Z(V$CJdzOr0{ zxjQWBG^6}CEzt~{7g$bf*)}NaYn_J+_gP*N*>=dww06R72QB+VwgXCDwnahG1F;9D z7h2|uEFU7r$r~WEn^u8RhYfMu2bR|bR)Eq8%UngqlElUsn zc`qgowQ3psG27dSVnW*`O#g#A0+}(^pz}veOtS75@X!~Qj*RVtlJVYDNMCNNhq*T_ zqeQkJKu`fq*B9~ zEv(m|HHw|Eu*`BHXoQ7euPjZ2+ymBJ+iDU2FxZOU+8Eo(!q+)2`WoyLdvZHRlrb`TQGQVX6oozA`g`*fW~`yu@p zfgAV$ENWzJ%h(wx$hVT>=iAaT&SVP{AgPiy7czUJ!nwV0gNn zHCtj`VMJ%^6#d109n~(9rs9#CsnW$7u9WPls&=NmLl>luMG|P<+7bbNmo?a_Q`E#q ze+J@Pto8Aa0|Z0-m9~B*DAUIn`HSV6ND7rIbD7R#5dgk(pOy;{(;E4p#)K^E zE`fc46-}&Gg4DUb^P5P|60sdEMs5i2c?%!P;(MMJ)e1 zrM9&;q{K;$p;T)<^&Ckzr^HGA!=QsPU zYBxySV%^TJ<#e}x@c%9Mg-!kcxi9}m+!unD$s+W#7%_Q>tVFD&8fm%W>*7jrnYd8Q z5NC(cu|-pOcurpBZZ+te<4BWDzq0`3(bW_ zLVclTUm-#W6=wJhuCj~lBX))zV}=ibT z&0#axb8I3T!;;uw)|d5UompGfiZx|^R+p$cwbQh#G9sv#%QC{LoR>j>koLt4qKjx# zGKhbq9g{))BW<4y;vZ?dWca9Tli{VZNd|F|wDmIFRMyBKMv~T-;iS@$VW(1;LA)d_ z%b@jM{w;&R3;E{^a{cnH3}PY4Ut|#fNIsuI{3AK-Oa>`gKCPxvc}gW7l6*uZB9eSS zeUZvNDkYKSZ7OX9{+L7lz5;MGnF72~k7uolacTr5jgzDC@gt^2? z(R}H+19_JzXfB*U5odlSTS879>nhw@WF4RtE1HhNzyZq}gpOXcIC1w$3ZK|rNc^4P zv+`I+RmlHcOn}LsTUJ1BV@bhWvn`2M$eXeR2~oCi@HdsBcoRPWdrfKt#Zfjt6rZ+N zg4|N62^8<4cq9K6n+eimtOGIXp7jm`$H&$Rb`SH$dGlyl@C)UP1?U6UhOCZlh zD}g*eVeu`CpY4gW=^3`VYAutAELP=)b-et`;XY~)TzbR$oG6!5%fA8>EG`^e!?sRX zF~GqW!sy`A^&5{mh}FUuL5j~MKc;6{Z&D1ww^udR{sC$ zLIeKJeMsyj)#IJ{SQNwuJOEh@U%PE9;DaW%`xy0`^hBn!Maiq zA3}1W=)t7Qwp;-Z2(~U9X^$J`rEJPnYvz-nHGv>gnbzp8Mk30^>wQ?N*s2LkfcUQo zpHGjrwh_3z8yTfflGD6ZVR96;{r{%)#XQ=PB-sA3wKtTe6LpKirzH$Y=rDoFQ1F=; zfZ5G#b7AuDRxKX(**b^>aTQz~Oq}2`KTKjF>(O*jueUje(DsRI9S#jDzNO{Yi2@x6c zDoAPJn1y3|+TLKy30dv6ts#9vh!�a2W89w<)g=Ny8mOF+b7PM<5q-`Fr-3`fa$pdi6K-)Q;oG59&Cr;B1ni|G0y%hq4SJ%$ta?&b7 zTb|_3zLPXVs@rdJ5xWJ|8UpGFsXqG0+CCO3D-+SpJ|C``?9;)z(OwZ01Ts5ln_!o0oVUV}PewT}65ckfoeIUubDQOb_ zM6OFbW|L^~lfpsG*H^_IccmVLTO88Y#Me~Yc!5PgUL6~a=R7{1kr22k5*)SAMsQSB zsJJCl(qoB@^4irPR-#!LooVZ+m-|VYuZBV1N!AIz-)FCZ->$L^U`l;W(XPWb({6(BRFW-awk-mmebe@)NXeYQ zGq#5t#XOrxxKLmm?akj^ZzD9a4g@CIXnX&Tjkfo7A&_e8hP}4hcJr)FV7l!^oRe>x z&sn(kPffM56Z&?FeaK(7GZ3pDwv{o;h?~`e8F7v@@1{G~N3A5Bj1ZIL|zU~$r0;C~W$+GkNgi*{Q z#q8{=_LnqY{+TX3Nl8`u{v>Sw)|MzYq6b<)Nqf^Y%-?5A5Ody^2(Q*iEiw6&cP;tQ z7bG_~&oi`HPnKr!uUbKJ3kUHqw$(R4q3=PE%7*=Sn1`T!gPgp!2$+O1`!TE|bU#kU`-WKvkNlr|u zYbS&={W^`HZMLMxD2x3(BQ|eYj&ul9#@b(GusYJw248g87ctfzn5caSrEf?Pkd!Dz zLjGHF7$&*xlXaANI2UI3i*g(46tQ#T?90hB(O~6Qv-hEtO=^2P;d!~I|yY9qEwuM}z5(alVYUg5ULwhyGXm^xq zTlqw;1!N!VbbwU zI*4#XqMQCX*B0^V+>x$c!5M@!gKiV((9!V=AFKo@IqCb;{z%KG;mTpj51GTIkKkOI z9Dw2xQYElnu>HgzP6Rf{R|QiZ*fVL4EY_yO@}Z8YaO$WuP)C$!dZIUc*vc^zXLq+R z;8bFDk)5~?g}3B5GUSWiSYAnARF~3S*ik@~9e;^^Alo~Tk9>bfJS|2-`rJ?hCLNS0 zM2Yy#ev8ZF#N)&5tr(?+N}4&M9+_Nex;;V!+ZO3Xm^05#oG*@Q+zF%3dk-n1#VZ&LMeAgmY}@VW z5+}IyMBeX4of-GLMso zXGgx(H0PAh1xZsSGhEJ=BcON_tsPYkN>~2sQ&7jjC1M0*9g%9llmXg0f2kZv`2 zD>@jo?Ig&0Uz!4GTO=b=f9H!V87daYEueUev=WZIEZhI;(J017LW#~1g>lI~;uH9f z>x*&DXWp~Hnnn?WSMJ2SlL$#e2xuz&%9f1OnZ-Jp;K$#HMo5P9$U{KHKHEKRKEvo5 zgYi}Dp$x06wtp!QRkX;CwnO*EZ5~jW*zMiuFA1c7O#aT&Z#qgzuxW^ z**J*YC)a@d0;?O7UX>`;>$u5&NMPfEwe#)AgfsS!$TT-wv~cIR-VP)*nYl)y%=zQd z02+;pXe_XUP99D$gYk*D!1R+2^jC*T8j36viNRA!^Md!I7SF3m#GIBUL*7Rc5#tZq zhl*?p6m_u;Lh>qaQ`!oOde}BX#1J1bSKpWFaEDGQkyKPK+kRr$=De4taO+6N1uo8W zn7Y+oMTBkN+WQcR!LgX%oC-yQY{UsDw%^vV=~xkGZ^(E{XM@4m^N_VcipE23M>_$_ zi^%iwcV57X&i38HqZK{;b6X7D33I&8znK9glWdfWykRFk#7xL~NLdH+TC*wA&^i2n z4eWj{M1S@oluWm+2{tZ(tt|m&dq1{!g`~QU%8)rjC+#h_Z`8^oh!gV2FL1ReLAB8S zQko4(iwS4_+iH}Eg}>U{32Y9ezfAL-+(77GZvJy9Y~gs9%b5lhugeYKT37qAf5au2 za@p1?*voWe@97`XG+Sh&ZOc)83kHL9j?GL(c1+)qVOPcRrcO?hG~cE@8O)VrRQqg` zps~|&MxI3t&BO9Tb{iSTDR~f1@;GuB(Va<=D;Va4I3@{f0Ynb*)quE-wmvv3%<;0w zUdF_+_7)6j*oa8H5ECcbi7xPX(AHqBnvTniEkgTQo0Flpjw3|Jk}=?SoE7D{)Z`LO zmF%yRqw24H6&g2l6!YYk-o65JnmZ=(lvb+Ae*LLHj3UB!@N#PhQ8JcevMLd+aBjRK zU0|75QX*9%g79t!QH~Z%mH)2lp!sA$a=u&>$>ptLysh2| zaU78;A4Ri1@;LdiZhak;taugF0opXAn07WtM5P?!@@m^-=b?^wMM_Q;?I(U&#MkmF zEKYLJesUG1{iFsM80`qvOQR*tdygi}@`;Wy`q%f2S4YuUJfdItCppduayC`@2F@vR z%pt7(ds{e`9&?-^T-6%CwL0U!9BM0yH; z$#FwsYjJjwgM9zrE1|5ZM#@EX5C1CnnCyj!Hu_S?9U%|pl$pBx>%2#`0oCTmcCR=h zwDK59bGju3j%|PhAH~J%z_VY{TX}Bv8R}Hjk{HKUBDb4knlnJ8#)2_2Avocb_9}3%s%{X zl0Jrz7Um@0RUsrFk~~n@(PZPD9Kmpr?3}5SC((|j+vCPZ0h!kdXlZdSP~KZtQ=Ldu z`ozC|naRaFMA!RZ-{o*)lG3ODQInl9%nmBS3%wu zem`CxN^b9-V<|)|c9g;#oihWhKRH(NcaLFi2a=7L1CBW`Ws0cat;)_2fpS*`eGLH^ zaluaT{|^=&c8zfE*RhkBc+9aQI7Q3g%Zm;bc5HMc0yW(ecGq+EVy7_il!F)$N(1L_ z0y_lA(avsqd9tLr^u*wZof+#SUeXDY>KsaOPU7Sg z)4>e>w*;lm&MS&U`=%4Y?F827?YzYFXX)AV&qOzYv{#+&$!9sqXMF;*UUSmMaiEhn zju&9oYG-puIqx)Lr=iY+BKs7jB&t%l7=VhQ&Po_D+DUlVXP~Zk5?6Yx^QOoy!K`h( zhKam}&w&l+A5!Rpc)4)^!lyZXSY;ajju_T2xLlCpbA@1FhVvs%v#yxwq}6B^RVrL- z4kceXo#;zsTqXtuKn_+NG!u-!sup~${~t9P7Li5cvqROk{X z(Lk<4L57n!_nFRXBD;aoO0J17QCh|Segz8$)044pI**Cs*M2{YC~#JS4a1!+a7eE6 z9g&F93r9NZV#D>$Pel2f#{Mw|STcr`)cqYNitH9-CR69bw>k+V`xX{XcE&)$FsByV z<#SRpu1@V`HxRLuY0gVaxWi|46D`A2%I*`v3rUUbri@+Yi0!+D7aq%)jhK-$xCtN+=`k9YWHbW^TT}K=PMP!ZB_*3CH*qYtG}9T>aKrgZ&11 z>CVbrxrapX-*KAY)*WXE`yC2ib`k};+<8D0Jp^K=+xaCeO_=+z2WRme=ETXC~o z?~5!PHZ5_HnWnpFVi2i#w5tJZJwYBTW}b`aOOe3t(mbOV{Mc)uivXXhC@tZ&SA(MY zF0#Z-mr>7Bq17r^p|QsN#ZA=|S@TK`2cp`5ZKPhoUaz_GgJ&ivER){kuhv2-m;bGe zrw+TCQb4=YwG46(xf`pnxG&em)CBi# z0rzcpbz_7;#jSS{lOf;rmPl;j#Py`Kg!QgioU+?Rs1b!{E)T78QJY7SOgEx1 zYNQnxsoK7QY zzp@n{! zI~S5g_d4Q)Ns^oFCms?nxgvN~Rk;8Mf&#RCq#*iS8tk!-H_(pXY|ORxO;CXA1XyvU zj0(2-T2R>?pp3bzqm6m!j1Dz+lfT#zy2rYSP8;UlDAI1eOz#N~_AP{qca%TT856@i zm8nCw-HG^I4R;oYuIvllC%9bokkq6E7m-<23KG(N=D9eMR{M0}~d5rr!ucJT2KXg@t z^iX#=9u9H06}Xls;g7@J7LHDlgyCGmz7!81bu9{3JCM)$<$u~R*EQUF)*V7*<~Ye+ zC_?u-ZlZ;1O;85)p&8y+wYV8Ym0eZ)eCq?N)Hi zX7_4FP?CKXX*uDvs{=+%bB|@*$4~^fncNxuuMQvaIV@+r+k^go?&7~}#~rMDBA3(q zm+f$7kURdpeiq zb`nDxwuiWDLSdnM7oQI~@a=UHxcCb zfaM%?n{cMfGn9tvwmaC@KGJhBfkv36clQ$i(LLVLx;aPPHFy_34+=UBOCsG-!H!nO zgbVInoJ{?cayPr^2+X6t?RM1;j>+>+G)$1?|L9?TMhEmO_PBz5v=RU3A+01dD`+eA zuWmMGY{sLGhTU*~O^euNci>S+lSaFpVos@BhwD4I4Gityx$hG38jHSn(WaOdkV8Vw zO?L$E4Tb-+xm+#y$e$wg-{IyEwmb*pBi!ABrdGf|r(w|_^zxHI`O6#A&ORNA1oFpm z!`*vuknGtkFcnJ5To?I_tuC(g80j=EtqV_Vt2ZWCJfyL?7_r$!XJg3q)Dv>_o}lrc z6?04;85_AgXa8EL7d*1`^g-_0*e%RM0o%(ExyQBiKV1uwYiSfTyoHco=zgDDNBX0= za9i?B##J>v6F5edoaA0h4t$$ySWbi|ii<}qXflWPm>%VsE3qXIDD_N-sAu>Ql4ws~ zkuAl*4G%}hVmyS7Eh8qd3(QM>dW>l0QS{PtlI9#FU-fjx>FqtQh#XRqvuO9`aVhdt zI^*Ax0-@HBzsh6BiHV+ULC&NHR-)9`Lkrlem_EsKmBF=0qL3zC_w>kF?&${RUp-U6 zU*P!=3P1A%y-5zFr+Nl}->xV)dZ=eD$D-1wdm7PkLSHjj8|&$b?IoR9L>l zmxRNod+3bqYABfN=>?&+&1OuR;i2Ga4HT|75Vn@#p#?nUCC@~BevapXEYtbi@1EiP zMC#{oYsabuLfmy>?<<9K9DgU9jfd*2gW4fkWkeNO_RXRqmHxVFKw8_l;oU9|FxlIAQ&1%rm&73=7|1Zbud zc`A`RG!p?BeG=^W!IL2GB|#5D;1$nN{+Uizg?l9o`O!l^|8fWe7HJUYyeWJnXUtyxL3iEy|D#!i)ra@{2WNq`rVfP3x5-5t(qojmc2ysHAgkt`@O_86v=rhk~^Die~!$um6x`H=Wy_g zUOEwQCfOS;z~}9}wOKKw^3%G+XU=@YKux(OWkOt2;zMjo^A3QNQfU(;RIwUxSV!;M zjFmv@G@Fyt!|PyNXYczW`v?awpl=|(1~F9fdwBZ@>|-oUmE#CJev8iAtm*AND9f~1 z{S-^$HNlkwy%|jTyf;d2#Ox=y}<}y%DW_y zHN`cO`oW;f1Obrz%>;H4;;&df14|n5Q=W(kB<3|pe%8B=5U9K_D9iYLCod6pnUx6P zoxQ09seUDKoLasF1=XzeAZdZOAI_WTO(S3mSqmE-N44#=EX0&VZz@CWRPO_cU3vRc z3;CmWEd%)}2sgxy@Mc1;*DAr5HuN?rbrU0?D)lh&uQM-8eTkJ|Ne?n?Ab+QI1q>hM zUB}g31BxG5c5{h;q+bVkA~RR*TQmp$lyQ7;l_|yaNaC17Y&Y*TE^|L5NeQ_v!*i3o z0n+UeF$@!5@ix`U6gzwu)GcK1^3utSOs_1;m#K?4kae*2BF+6t41XQXIo_Wb{bGO` zudf9ONA%YJ>JU(eYT&Tfyl)HaE36plwX(lU{||k0?uGm{RE+VaK&wvPqfdIWBp9OH zgo^QA;@8OD8?=Kv|iO++(4aGJzEo*vqYnjq_g|B+9DUc`xtsywd%>A9_W?;U1-xC>z)k ztCo1n1me!6+U%$Pi_r5b6Ml@w$cgr4BJ{e%5o?Y76Qug=Cm?AGQC7~W#&DFccsJ=N z6T0JuH$gO&(<8q&YuY%_sCjdUJ0?&H{-*b#o{n|;EBI{Dyi+a10Ht@mj!VX@fUjQejq@Y*BH2Zz)P6dJ?~LbkRPD*i}w%u&mSn=5B}%j9?93;MA%fK$#+B% z=1<6=e8%D-T+7(S>^nd|0)X+Y199_2uJ|q39_sZ_epF{fp^lH~2wV&MQL2hH{k|(Y5;yN_FCFV^?jtSAdz!%>{4NBlcyn zDwUuu*|$VT6t>l4edFbjZ9_90Xd37HL6DtPe<&p9(GTktzUP~Yxf6Y(I22cMO;0~- zHjk8lt&ct&2c-D6a!^jK?5$32s>q|msOi4*0^xIIdVLef9Hj3D*WT98KKA7$!{4D}fmXk=PWc@4%AE{i$>GOTd_%Z*iJvIta7W!_ALe+@uPBj}~qb0r) z(O9inbWC(~lTk!*f~-NIbz##!HX)~{`Auw-V&KNCMjB%r1>?u3D~nj+XDT_ zShwJ>>*cKVJ>(=YZ7o{DJW)?#$F1ne^L-}}C#>|GCxQnmr}55upNkX2;AGc z7)aUXYmUjAeCznZ{ya2=LTR$6JHI^)k8kyD(;3{7=E{U759uGIR!9NdvD=p*$~CFM z29SKg)L>VBSie6HlkQz%8O1%Vwjm^Ig|Rs0hA&Ihjcgi2x1u09-xTO9l|9=_hkF>~Y(-OVl-OMAR;A0PH?tG>$#tdqbq-{blp?1el)j5n$RFBBuCS zL&6jaZhIB`DD;bl#QxR@NN8hOk0;Li=INOSdtCAD6r}o86C`h@bZYudb7ve`>dT{p z{GcwR^NmSnR(9YyGrf_kDNuS}z@kTNR5%4MJK9%4lkd_cb00)`|Y7G>Exh z_(t(V^#2sJ9gv`(;T2m*O_8<#r;r`~C1gkl3EA;!Av--SWJCyQuk+JFRuB0>&wO~W zK}b76jw9K+?NY<${WY-3!GY}#sr^Hb;@ZxkCkR<>8Zwp9(fjx@A!mWcbQvba@Me4d zQ@mdP5-+I3gr~(zd|JHV;P!r6yzU{>bu1KH_YIlB41Ld3&ItLZK8by=?FWIVkkh-; z!{+}fI2~{1L|1KpC_3qT2NLS*iHLWKHZs8;0QF!!|9Suv*?ip~{cB%3#El6#$1QYZ z&>jYYtygF{H2BF}om*+}n4WeJ(GPr)Q1_+K3*ayJ0p#8?KZ8Gy3o!|FLf<}@T*>2K z4yX=fyB|XSMAitCCUNZyfvg{C&qoGKzl`)zYDj>e$xrNWc^+~<^GyUYQCjFJC67^9vZjL}a9LyuiohU^y!*LrHEt>U&) z=}%iBdX#qT|B#Ok>i%QGjsK^76aFdR#Q&CW($n%yej?vvPcY^0@-;KcbPPoM-2aek z>c8Zg_D{K{|5L8#|68sXo|bFIzvP zrAz;B>C~sC%XnJ4pa+=yv~)K^NNX>VTnqlEUw`@EetqG;{Q9E*_Uo@a?bjDSE!UE# zIHeshGoPvhuj^qVN!`E+GsK^Xtx33AUiI-K8{@id7x3s@Cj zJa_R`1$?$^=$nkKfU-O0@SL8Oo^WkuXbhj=!0^EI&;adbs|vI!?iJcc%nsBcjDjMg z;DQ9j^DTOylk5B-r*405H^_|dR8FnQNuI7 zj|ifk;^P}NZ7w#92-!k_-u%$M0?PwBs2j>x(V&<_4HaGqm2}!j()k-TfONhZ{o_N4 O<(y{oz0BW#?f(H_Cp8xU