From 45616c7f7539fcb60547ae95b06dd4fd421ff453 Mon Sep 17 00:00:00 2001 From: drh Date: Thu, 28 Feb 2019 13:21:36 +0000 Subject: [PATCH] Add an "|| CORRUPT_DB" term to an assert() statement in the btree defragmenter. FossilOrigin-Name: 6bfd8655f006e031c0d4c988356c4b9206efa6bfdb034fde8ffa3361521a4844 --- manifest | 14 +++++++------- manifest.uuid | 2 +- src/btree.c | 2 +- test/fuzzdata8.db | Bin 1010688 -> 1013760 bytes 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/manifest b/manifest index c9649035b7..2d22cfef55 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Enable\sthe\sLIKE\soptimization\swhen\sthe\sESCAPE\skeyword\sis\spresent\sand\sthe\nPRAGMA\scase_sensitive_like\spragma\sis\sON. -D 2019-02-27T23:05:14.316 +C Add\san\s"||\sCORRUPT_DB"\sterm\sto\san\sassert()\sstatement\sin\sthe\sbtree\sdefragmenter. +D 2019-02-28T13:21:36.882 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F Makefile.in 1ad7263f38329c0ecea543c80f30af839ee714ea77fc391bf1a3fbb919a5b6b5 @@ -456,7 +456,7 @@ F src/auth.c 0fac71038875693a937e506bceb492c5f136dd7b1249fbd4ae70b4e8da14f9df F src/backup.c 78d3cecfbe28230a3a9a1793e2ead609f469be43e8f486ca996006be551857ab F src/bitvec.c 17ea48eff8ba979f1f5b04cc484c7bb2be632f33 F src/btmutex.c 8acc2f464ee76324bf13310df5692a262b801808984c1b79defb2503bbafadb6 -F src/btree.c f85f8abe99ec3e72671f0fc9b09114188974fe0b9a3ea9edc77977e853ff75e9 +F src/btree.c 59695c6e5eb527bfefc2b3d8ffebd178ad8686eaeb810c9f57719d6d2b72822e F src/btree.h 63b94fb38ce571c15eb6a3661815561b501d23d5948b2d1e951fbd7a2d04e8d3 F src/btreeInt.h 6111c15868b90669f79081039d19e7ea8674013f907710baa3c814dc3f8bfd3f F src/build.c 3acec29b23948042173301a8befebae01a98344debf66cbd4467c8b9077707b8 @@ -993,7 +993,7 @@ F test/fuzzdata4.db b502c7d5498261715812dd8b3c2005bad08b3a26e6489414bd13926cd3e4 F test/fuzzdata5.db e35f64af17ec48926481cfaf3b3855e436bd40d1cfe2d59a9474cb4b748a52a5 F test/fuzzdata6.db 92a80e4afc172c24f662a10a612d188fb272de4a9bd19e017927c95f737de6d7 F test/fuzzdata7.db 3fc78e65dfe0be9df9e262075d5a335f18f627da47dfc691d1a7b822f34d4b99 -F test/fuzzdata8.db 2328494c8c0c18d95e5e04b05cc6dd94bc6b5baf9641fc36b1e881619b897b54 +F test/fuzzdata8.db 91d6b30312ae7661d8b772314f51759a8a4c565957b25e16cdb9109f89624423 F test/fuzzer1.test 3d4c4b7e547aba5e5511a2991e3e3d07166cfbb8 F test/fuzzer2.test a85ef814ce071293bce1ad8dffa217cbbaad4c14 F test/fuzzerfault.test 8792cd77fd5bce765b05d0c8e01b9edcf8af8536 @@ -1805,7 +1805,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 0edad5339e36d69aed9289bb3e60d35f9930386d76a62bb0194c4fdf420d16fb -R 5105eecccd0b13c8698eaccb6e160d90 +P 6ae4b8c525f446ddb0e0bdd5e4e01e06e2ab975e3effa42fce6a1102b3a39830 +R 4025c666f5821a2daa8fcb5b9013eca1 U drh -Z 96b31332bdac2a0724df8a5af90860de +Z a4ece4dce331064a24f4679f8d9a11f2 diff --git a/manifest.uuid b/manifest.uuid index f38f308993..65fb11bfb3 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -6ae4b8c525f446ddb0e0bdd5e4e01e06e2ab975e3effa42fce6a1102b3a39830 \ No newline at end of file +6bfd8655f006e031c0d4c988356c4b9206efa6bfdb034fde8ffa3361521a4844 \ No newline at end of file diff --git a/src/btree.c b/src/btree.c index 9e7a9c0426..d133395659 100644 --- a/src/btree.c +++ b/src/btree.c @@ -1421,7 +1421,7 @@ static int defragmentPage(MemPage *pPage, int nMaxFrag){ hdr = pPage->hdrOffset; cellOffset = pPage->cellOffset; nCell = pPage->nCell; - assert( nCell==get2byte(&data[hdr+3]) ); + assert( nCell==get2byte(&data[hdr+3]) || CORRUPT_DB ); iCellFirst = cellOffset + 2*nCell; usableSize = pPage->pBt->usableSize; diff --git a/test/fuzzdata8.db b/test/fuzzdata8.db index 8ebedd1d765978c511fcf38d6c4f6727bdc928b7..8b1cf405720ed53761b5d0251da7d810a84c5406 100644 GIT binary patch delta 15350 zc-oD72V7Ux`~T;;=k9wy3|)6 z<^rF8mO4_7U_HFKP zuq%$gfBaH|8$4^FOi=j2KkPQK{O$$OnRIoO_)tVm9FMR2k;oRigUIa$<(lf+h>#JA*RC|5VU z7{*CVQ%<@y;iOe#P8v7j#O>y!UMMHk8*)-5n3D<(>v8H|mlLxNCu%Kjq=z**`K>x9 zKUd@A#~@CAaB*_2>im_~D=RJFL!y-yn>-%9H?o<~42y@!mGM|Qt3vr3Su4OnpRmZY!&m@-f9APsMhSzA~DW~H(qaHG$4D+nul$wAz3j$#bk%KAu6+?Y{aZibsz zvM-?t=HF#iuxNqol$tcgooTEeCI-s^)OI`T2y&ya5hF43T~;4guV(%jeSnQKg^vvn z6+f8dqg2A8$w~lL*vZPVVZlSuy_1#4)HQ6H)TlOQtv0J+QM%-hEgLKTn5oF!a3eA= zWn|p=$s;iREf$EOi{&bK=M%*XkG;hzu-X$3BHXgeW63&OGwZrqnO%GI?%1mj7CUVh zmU*2e)@alCf0M4RJ^J)?O>sXT`CQ+Qz3aGx-NF1{?WnpgEPjhsk@)A{J**~XzQI(e zjU{ie=Wu>AsDLxpu_&cS&pxi{X^~AU`L;3}HEzaZ!689_gK?7WYx@G*)vYR3UCxR@ zzyA8T0NIf}0DU*Gakyv$Tg)TGag~p+u*%EMFlsrSeaPTzEFS25g_h1{(;0k&SH?Iy zQTRfZFJb0O&T(tLmMn~ZmDR&t^I3oRmiEnN4FEF-JH0%sRAHp=(H$f|GAnVjmSu2* zg0{1vKqFVPqpISP9mnem7*jER6tgjD3m8~(n+4&)4XiPbSjWu`!ve{ zVM2~vml~wA3k+_f=_N-}$F1xbgFAR`iyVSO_R2Pe?_lp~P>L}rTwMj9Gk!(^ zcbwf*pRwIA+Vc+UB`GC*hr5(;fi2~Nbdg`DI>)$I!95J>E;plAd2F4bRFfSCn>~Za z0vh}&D+@xCKk@M^=BKa_y4po<1~m2~R;()3WyjvW|8-}Er2N8f`vVhBvj7UZ$gVNC zk6B-`TI6$bgYr9%X262=@*s*UVHwK!A3Hxot0DXZ0Bb|n+Op$t`Dfxnj%zb!X4vI0u!TIITMoF#fsMuMx!WY& zVqX&1#(1Fks&X2D6MZYo$+XZV&t>3+z7JR+^}NIaC2Cho&IjlEd@Y2h zfsJAE06Jbrj$q(}=gzW|PuP&S4Sxdg#RGNZniSDRb}?MxEjLhl%bSRwIn_0&gAv2!H)!KBc?5&H;$#|v+-6O2{94c{Jw^UQS3-H}jS+kH!Mm@^ z8?^dw3)8mM5W+(d#@(st!gPjfcvg0o$>p8r2=+8EgyvD6tz{601qBlx=@dg8w%NHb7VlDZ+Sq4Q}Q+8lUFvY641gM@?3xjO#X)Z*26DU9(CK*MUb62FB;PF z;-?Bek=c9e^@6l3w~pb}L*Sb|=V&&h&23mmTx*B%ep>nLl*REZZNq)f^7h#YXI=yv z{F}T@f(|6#mmf0dhy@$<3J0nv-!kZgF~9T3t1K(uG3bn0meLawml%au;H500lv>Vk zz^LlZVDz(;JJ1DvE*kskpsjRg&=q|f@RKiOmfZl`9F+ZNq>qxPt4$O~@{Kl_(NyV= z(W9XT?Wm~qla$sR&2t!;tsKVqu~tj^t%_nYh{D{@lt^rITt1H6N+03Dd%T`WKdi)J zkN4#Xlv_>d0MG+-zZ9!Zh*jxIc?ztld?i6o%)QE|^QtR4h2B@L0M)OjTm*>5-0Na_ zf!qmmUsHzB?O&_lB1QTh8o6&d$qF=Zt|LHl7jK0p$vWaf)XYvy*S%}m~N`OXx~7k4}(FJUsd79 ziBFuuy>Kw*S5tn$k_C!Q+6d*o1VbplmJ;Ie!DcjMiLyo#7K_FFddfTuKg*BvzzIUk zILvRzWe#{tNd}6L)vcUPRtBluTQ|;7nt(R!kl9Rj+{K{fJf9aeRhoF9g|_D@zUpOp z9`2f{R1~RU03XB2d!SOvFzJF~iS0&^cdYU%(DGzusstm^ccXHXI7nXlj3V#Ro~73w zEgj8IZsj?OUZ!L-7(>2qDX;y72RWWR44I->Ija;N&f~CjidCIba+G+$9{KVTa=oEk z2N+MeE`^_rl{P5fOE3X*YbedBH4jGy6DhZjG6ZPYHYHtxNthd~e1Z`tINKiQ0lxU2NQ(7Pwy&{e~F0ZDXLrN6D6igkaR3X<9B6r{0|pBysE%SvIAp1kLHiyk zeE=3xP_U8!|Fl>ZhKDHI=_FIzD@q&L@z9eMhKaN6mHlH|%Z~3~_&2s+L`e!sd@RO{ zo^}N+JOj44&{QIyu~s8Mj?{CYFTqUWHst>G-zF8>{aq}66(ff!<0;-xO=GYW^Dis+ zo-}HUO6nfET2A(jtUQPW2 zU^zxk7JgGhy{K!h%(vA6QR6m8{-0EftR$@e+I*a1Bs~vz& zyr!;%v=ujZ3AAZxSvy)&M052xgH;r9Qk?_YDf!!gYK5yCHMy_7sZ+pHXY6NoWh}~;T#v6JzgkJ4dL8qk)Lyiw0_)8%?{_%}y{k&q@m6oO z9K1mTs<0BEyM0w}3D#k5q>@B?#;BKoVqa9Z0IXk~VfUwj1JySfY`~-)b~{XBwi{i! zoMcwAyVFmxst<#WBo9}4#@$5nXz`hj!L?Wr)f}&0VUU4sV$?UW;WyHfL+M0<+FF9m7}Of7V_p}#h_tCHPqJGu^t8>B%yjjJu7-P#rnIb)$)a3Q@q9Et zmv1E7zSwh~s*^cSy$8w~F6s7c_h?ZuEL3^L@FtaJsP6-PxI}F!!44|jrXKg$i*L9S zOLwXf$Sq}3j}-L)gSW7Bk9z#g6RT8HiQsl>lbtm()Z^3J_}G&jF*c9Kc8Kbxh$HG9 zNb6a%iqP#|^lqfSlzq8obt!Gq#6R(SFKw)t--q5|YDsp>^P1+4}q1P_fkVo zL6?c{vRbXQR>!h%NIdi70U$^JuLgKa%E?p@%1Wf{xHODPeSsIS@#ig_3UkyDP+HH6X2Ix=jrZs=PtnpB?$#AV>?HdzM0uspkO>q`7Jn9nMp`Fvv-B)jv-c-&5-| zpfp!V5f=DsYTCYmpU}|{)q|?iUUqyw43kG|L+JBDwYns~lQq2Enorb+>f3y?L&LB% zSas0=Rolj^)l4`{3ood=-Z_j#o7IY#_%>9b78li1Og%C@%pE!mXL@OaF_fSXcX(^9 zY4T+?MUsv-PRk0eh9!q!6INWQy0Bka?KPTQtfr`ti$m+C-a|xqm4`JewLgTK z@-Q__E5wJJoxQ2{E%lNF`Iu3KS9Xb|>ZequR4tX@T}-~A4xk}-)vXMUV`(>d9+M8} zFVg;B)rY#$Np=*^60)rjE!XMH${n$Xq>a_zf4fcxZsfimu`!ToManV0-~%iTlKiNG zto^{?L|Xo=0F26nU35m*nlU(;meGs1=eBl|!G~%2@s+5mkM=c#Q?#O3O^|46Ic>QD zXQ;RoDoYeUR~rGiAW%z$k8p@T+!F#K7jP`aFVa$YKCB435c4bs{S23=sD@UZK>;S{ zUQMY*9qkl@LW=b93go@WLFWx}Hq?Gr;A2dv@4W&`!1)E1RMl2t{10jhMmN%WW9B&K zk12z+B{;8{mJFX@LL;rwcR-z`x`H-UEQ^=c&Ce|V99wXgR@>>^~GJEr=_mwkW)q)3Yd3G zH2ys_US+)3OLJ*zXCCu7hPZvoNFoZ)@o@>;mM3~l&AF5lNZt6Bzdk5e$ z7QgQthAFi*ohHR^k8{DWHfPo2f%rUo46tV!Bp zC`R`x?IoHPuWiwk?%YcnU}UmB0_RWHK9GONeW@Ep&EPI{eSOoevg6<+0kMr_^F6Ne z@l`=V!C8!)rMR$&X;nO)z0&_a9Zu1{^u+$xR9Z(X3wUa=))pVu(01j_)0hO`P|R#? zAM?nDMfaeESo?iKJ zK|xEzx(qk5_)~2GEnct9VsHyHM(drad%AW|Jll$k)@x#DeZz%4inUtX z%j>+FXvTYApJSSeffMz3EV-ujqjuZ1e1JO`l&@8wym&ndXv|LS4GBs}-mN{<;75uH z*3%hoC2a`&L@}W{7pKPqElOazOEFD!705iQ{U*UZifOLDBhk@!wN3y(Q$%Y$kKvvm zy|q~T3q?eDey{oH_g^uhgWi~$ozceV(1SA0YvmTO7p__O8P^Zk*@`K);y%d0NoF0?|a&JVnT9IVvzovMA5gkw?X2K zD70fdIK1@HRPT&7p5@%tczMkztE=8q!j!qHk(NGQrr6)PJ-Od!Md@7Y(agxiiH-G@ z#I<%nJoUFR!QZT4B;Q?GubA!w(BJ z!@{CU&We}``UH#}V@(p*O#b}4$QklUuL6kTT+I90zZes@yVD!nG) z*iUp5kCo^Kt_ar?h+8&Wg&2&hqfgSy9qbe>J4$_pwM0!Rc^|0Olh?alDfNgRBw<8b z&4r=AYE!upMdV99f7O%o^n`x9ie*+Cizm(CG9FhpQbE8{9cBFinQMF z4@Z6x3$|&K|DW;&i+jsb&{vwu@XA20)MHijJ7Urg_XOzQ2xFIH{1lP=TZ9hBn3I}6 z`DEz>B|2v7iy^0j&MjOX-JRu%lv%|{2ah1c1*z_VSpoA$>EXC>k$#0fKgi=#OjgAF zaeOlVxT#Zg6FrlyPPY_sp%S`Jn3ah8-nY_YG#(XK#{9{G&q{qWa!9?%wOf;T2Jkil zF!p8L8#4`komf}}^Iz7(sr^7bPlKxe)Z8Z$1Y)VLUWgN4;r>=~P4@xZyG8GXuCsZ zj(0DNnXm6v0{9KJ(u&8F$M{{&D2#rn?_Sxn4BgqFg#h(kr0)gsrNuS<3>7Zc8#8`L z#e8K42tQAGLX4x!^iJZ@S;-CkDo(VF@|50Ej|JkU9s>AIn%)iSVaaVhMTAvzo|oIO z@)%gg@VHogD*2IXY>iW2OS@m!`>Cu!*f4T$)YkFHI;fSU{TV#Yp&{iS(joyT7HRL( zz;ATka3}TBWsKI0KukHNg$Q0D2$S>xEd1K`7p@tKg-gxKm{`s7#i(2@l|s(wcL2-m z(n}$f3g6Xu=fl(GTNHX*kLLVz{bRw!jfEd*J@J+|w_bR-&ND(=X5)zxJ(RX(>Vp|H zqQX=BUW&NLQw_Dw(XT1c7Xy#zW925tdiSB%j_5BjC782nig8s8e;V+oo+16E*d`vE zhKWF{1{nW`HW8!8a6vNDwHGPkzUJj|=4K-B%D_{SX8u#4kz!?Y4erwW?H2H;Nf_!HKQ7>K-eRxDwk+ zT32^yqtH;dz}Aj&Pu(w=cEjRRS|sjkug8ev^(E5%jcS_0%Z3M&L_Ut^jj8_F^vF%W zS!Cc2d_-YJj^a-nF51Hw##cA|F*L%MB$)P~%%Ns9khfv-^JR1`V;w+G${fk(Ft(~S zkTUBUy(NgItcp$*&_^>&bXBu1(8O=-mAoQeXeotUv}JnSs?09 z);+sa!XZA+1p>-*eDt9>m-9oekgtsIXyX@lcaOsQVpg~jOdQoGj5h%;%Up<8&lpqD zdz4w~0fHPzGn&`QNCxPKkuiE0r4$;w00VdEe9@?RBfhF3@{wsQ+YNn zJZ6f-VVOL2Wth`=8StlRc!V5*u}*UwO-eFWF&K%d9~=D4SYRyGVIUPOGe&?uIy-oP z?D%F7W^Ci0cW1g;lXfgO`hg-|DHucUE5>QSl0}w|A%0dBia2N{0k*nlz9!g@rH8Va z3pm%bW>Q|Vc@Vstg$mbf6xuj6j4v36sZ*u07<+Q5W4Z>D@Z3OU3S~|)q8UG4jpky9c#8YN-UJ?>6xKfjm_FZ(#iF)`=+LDEjQib; zraqa*J_avQ+%>V-RmZG^>0xXo^~^E$1575@GIJr&Rj?WX6-JpIVfzt7g+T=G8V^93 z$Qeze+(Blfgm>B)AK;)QvpP0BVSEZNQ*Ioe7Vdx8qtWRYGmTdg@iz?K=5zrdvBWg1LgNsjCHG=5?bt%%ud`cm{r9l%Q2&tQI_^~Fk=|r*>9{BlPfT`z7a+(>zE%hNFkqzW(hY{EvqK(tOBf+KXf*m}@moKK z87~lzs_hK6V}4EJO>{MO+H0msRVey(L+3$t$*k$o(wmgL-uM|P{41MBS=(asf|%Vw z3FFPGyo=ps_Qvp2=29`a6Z75NQ_829H#OLGpww&#V#BkZYGXH^YhyH_qo11XB`Qhg z=}64(p;F!4FFiWS0@oQWkZ=5kxUv_|b>zoY>#gPq2Kz9pIrAePzjFW!Pne;98}uE4 z;d#i!b5X`d&)yRHROKy2PMX;bV{e!Nn6f~Ub2800Rb_;eMlsxSm50#vTIR*``$?S98`9 z@P!lRTR;RYStp=wADZhmh1Z8aBtGR<6R`0o<{9N}&g2l4%rSkqD^2ItnQ*~e18`XA zY9-K`&&>%E9KoQ*&YBo8%;-(CFPX0}I7%^f%$7jhFz-unjADY#M)24y8>#j;<|Tk! z@_p4P3snAlv!Vv0$X#NdWy(8z%XcZ^J>w0DHvVjm062~bCykY~=2vq9gZD7ujB)*+ z1;!4#^niO6ywAgzB?8R{D@lS62pU@bxMlJ!o4h5n6g+vH=R1#IoWRgTp2&FKi37S~ zSYvc$wCwn~>ErCV2P4W_xk^4?dkRxCEnYnPS-f~Yjq$&jDNmn$v zi5%cXU8-1z8GMAHUChnI&%U}q1wmF53C?0_yxxG^HLS`yjK!#6Yo}g#VC)!fiWeRu zFsMfZD@#&7lIYZGcax z^p@o<(VrJB8z``q^_2{t(wt-~@o6S)1(OSuJXKtZ|HLeht^%nDU8f{Ndk74 zH{{$xseLyqNR`LSj?<6cY)A>Vh6#8bC6h1xJi~vS?06S5W+{E+hsMt zlKGbX1Onm+7I=d3ODa4o@o*L!^FH4??wP%Wg&#{@(Y4>IOVb8guW4|F-_4JYXYk4P z7~m=f4O09ub~tY?3Rh^ADEzFH|2NwoA!oc*tSA#?$H5?s3AQ#1>{C2pcbSiCl)uOd z_wdW&0-u#^!Sp)izshH^aE@}1{s2}Vu*Pz0L(Xh#jI8iVFt4Lv<$1XB^~MSlWyg`G zk9j9cN->}R=7}%q;!jE`yr!RFRYcbw%hQ#9i|$;jfU54bt^x6F89X+D$IRcM`?ytr znQN6=j{pz{a8-dD|76=-qS!Uo7JwfFKVHPHwfHe~Q`~%v-d%4+il>q86ILB;sIXZW zIN0h-_tUKzn)s&hjQ?ZMF91z_%c=tUogE?ZvZHXAM?RsX@A)VpcOR>OA-7lq0j?C? z{Vf-&?^?06Ak#`@@FT{3ZtbK!`>p3SxQkx%tPkka5vv7*dswg=D$uPzr4~Sa^R2xS z{ETqVEQfi66(1qn5TGURTQfCfGB1L=dmtf)v=UpNwHE2WZm#u`?07Hc@qCIv^%Ebz zq5CbX0}YO}HcL1u*GfgM&4mKr@0c;l8bS|0l0bUw327d8`2#b?iA(3CN+8_qHFR~i zig4};YaV*%SgXXE`;`8vG=!)26l*Td`Ao9u)@7@l1b<@IK-rB$)|g&Aax{&)6W9t|PMuu3ZRqk;*-?OT%k3^S)yIC7iHBaiDw6%|hYT!AYG7Xh96!ss z3X2kL7bQMt*W{^fw%SpwvoXnS_rsDpTyw*#*qazQF{!ED2;=8Do8czI?m>rLc4HH! z(Vcp>4=CdGY#)p(YnR8A<_a+GPrNJb0l(vydha@ zC*z7&oUt^xsl82tvY6H0?n%9y+nEgfFmIJyi(KvOBHnnkvd7c3w)UTj^0Mr>HG+!! z+m=N0JK3|rDc&0|?|JVxw2>QQ%G$dyqMU6|UKhJPlPZK^LM6K#?hUb{Jm08NW+mGK z+8SjKk)WdI+b9f0Tc#?}cAgH?>2iO&8dJ(~u2nF4s~tj(2ik=U0x-Y39gZt@*p0>4 zv$bhMtUZ!JRm|_nr+o&i<*9PCT^V@9+HQ|n$i?dOSYz|aZXS@{xGq&2*F>|Z!6yF4o zC)#Gq+|9e$!C2v_Jq?RAP;pX2yB-}oYA+D+!s<~*C3^_0sV12iq1eyUA9?mE-spCg zW#j_4z{9)kFtM;cmF~8qdCIKIUG-{=y`P+K*j-h5mh3nyPKR(zUv77!x(983uEi(V zl`(XH8iGYDoHFj)Vn-`=IFp8$Fu-0)E4JEG7=)1fn9UC@Zn6F}d#C-1cmdAU*d9o+ zyY1I?d5-Y#jGN5Exu*C#fkxZp*|Ou56S;mDi>-8zk{j^R7?Zm>Yl^uq7&O6i&pTaI z=_y~$C%}kKemmNX3)wrc6mddD?4_I zSBl!w51-n8lG2Q`Z$(3VoNxdA#Do_ztwkYoKj*T|7_@m*$MEX16;&&?izR4F35CX~ zXFM5M4N`a$3JNxtGxTn3Oc1(_z=VsuD+|?`Oocb?D;gxyzPolbgO)kJ+N!KBb4by! zEZf&k0y!f%88G!vJJ;y2v_`T+cC3j?%NiLqwE6BwqO2;QU2`PMAE` ztbuvOFa?j9&R!VbT&qjv73WQf7bf|^S|Od+ogo@@#f)F<0YcEN47y=Zb)!GUhB`L_ zmi%n`kXIw;kK9Ov2?&oL|uJiq1_EJV(W~tU&H_(Pm{K-WDnj za8{Fm2dAH?xm?bRy3Q+sAKEm1Q$qJ=T0imBry0&-%NMJ#a7zAgn)zb?+*;uScb zGIo9OIEOuq&-|)dtjPxbqydhBRx^qDhmc!$RGmnCkYfhdWon zxHUc0^%OqF`JM!^B#(DaFjSu1e~W91zGJ-G{qxP!cp5j&xeAmQxnRREvWrl|UkQ3Q zm7C$bCBbmd2_O>6X}UAp>BnFMM$UKUV$uwCB*rgvHmA5`=VtK^Ttr%22-H7>v8EG|0~M>-*Px2RSRXVV@v zr~}ToC1o_{G&wEVZ!ir#=*(c;_mdZEyzumLRuiyRF@AvM*V1@p81cIEsHjcZw6w_T zwI1Wi5pTDZ257UeB-Pmk*Z1*$onkYbTg2OKPhgtyFHAF^#B|>Iqps?TBYABb%2&Kv zNyc!#(@T8JLEqy>=o8AL^h3^J;)S-SfhHmc`Z-MB9af=FZSN9n@UvP&$m02)nytp5P0k>!*W3F7hMsgHrr%IU&@Yi*wghX?w=7R1 z|9i`<26E{>!pttvh+;bmgDFD97lA(R>gASTEyg^rO~dpo=Xm4}+y_^*7q4dQ z;VzsL?Zsqx<3HSF-M`#q{nP%u;b~iJe6}q%J!y;d$F|U^+jy^c#H(jd*kY|$GfR1$ zGvE3jxVHTZ*Y>Azz4nEKKf9TagQnv6d_WlRDeg8t2 z`82w$r_sIrY;@UAqTBy3bO)Y9_npw%9?tyWf8cuOU$_oEjqC8!xQ;v<*U=|&9s5_{ z=l(13z5fb);+wqtpBer5zcc!K|H|m^KRcs;@MK0m@g%;J|I*usPvZ0OF40vV5$%zW zqTL$atO;kB&&L@movHCkKPAFzlz{oF2j)izUd~7XvzkPss(G&mIE%%1)W9`8v>v={ z^==`cBG92IZ#S=I9za{ntnJ;K6}anS&}V8ORgL!kQasjWg_!)4S{tKJI{Q#!us1Ki z&tXglugmmhfA2ugijOI#i`N98af7^9cx?2^WAL@9dvou02KdtQNbdwmInA$LNOSw2 zf2`J>;4!y&Ij@tr_cILo$ng6sy%u%#t}ekv%3ABp@nG#L!RL7HOD*7$VzF?crenki zt%kVu3(QD$PC*XxC^hZteO7`mso_@V$4qFqo>*~-8vg3s1+;IFcOMBZqpzD)dJOX@ gkTld=*3>dw)9Y#?*YpMoZRdRkRwp`N5x0N(fBb@~ delta 14994 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 -- 2.47.3