From 3ca750372d43da3f90017c8ee6b04f0743ab6782 Mon Sep 17 00:00:00 2001 From: Yann Collet Date: Mon, 1 Aug 2016 02:26:20 +0200 Subject: [PATCH] updated doc (#269) --- NEWS | 2 +- images/Cspeed4.png | Bin 47294 -> 35361 bytes lib/dictBuilder/zdict.c | 2 +- lib/zstd.h | 26 +++++++++++++++++--------- 4 files changed, 19 insertions(+), 11 deletions(-) diff --git a/NEWS b/NEWS index 16a4fb8ff..56c46fef1 100644 --- a/NEWS +++ b/NEWS @@ -4,7 +4,7 @@ New : Build on FreeBSD and DragonFly, thanks to JrMarino Changed : modified API : ZSTD_compressEnd() Fixed : legacy mode with ZSTD_HEAPMODE=0, by Christopher Bergqvist Fixed : premature end of frame when zero-sized raw block, reported by Eric Biggers -Fixed : statistics for large dictionaries (> 256 KB), reported by Ilona Papava +Fixed : large dictionaries (> 384 KB), reported by Ilona Papava Fixed : checksum correctly checked in single-pass mode Fixed : combined --test amd --rm, reported by Andreas M. Nilsson Modified : minor compression level adaptations diff --git a/images/Cspeed4.png b/images/Cspeed4.png index d5219d7264977bcdc9e3daa5f5193ca6abbe3030..f0ca0ffba9c4413cc2a8a19dd5768e03e236c095 100644 GIT binary patch literal 35361 zcmeAS@N?(olHy`uVBq!ia0y~yV5wwaU|Pw+#K6F?{6YFG1_lPk;vjb?hIQv;UNSH+ zu%tWsIx;Y9?C1WI$jZRLz**oCSR|DNig)Whh9@ z%q!8$OD$0_(KFC9G+4{Ub%24PbE2nZdd|5^WkgYEq{DeBgL|DL;P zcYF8Tyngte`8uxuBCufcf;%swS(I}^b08G zIJamtvoi5ao0!_jvuVPKeHVW(etmkayw=tJ@X*>YSaO@7}#DD=S;KXLsJ+UH|_5>+I~@AenmN zY0a6sOnP4+^&pzoT8 zvD!aBK3#php5x@_t-pC!Gc3@(xRv2Z&fQ(5b!V<$zC2kbfRB%_iZQ$M@E5g*?&o{8 zR_u()`*?iEt-6Af%p2ODsQcG!oN4NRo$GY>f9Xa0_umgMD=TZ;s-5!l_Sv`hH|#l5 z_HOyawTkVb3>T)oh+2D z*Z)%e#=~H^Fq^SsvOM>#i7^pzeX`1G?H46a8m{|%ILx~3+y9mG)2cTtKKAFUnMLh_ z_v}0BHoRlL)OC06N5*4$ucLFfpR9_`{1bU&|I5ekpWKX8Fgw;?a`~Z-wSuJv|7q_x z7k~ZgIm2wQ@7}TBvP*B;wmG`qSXZ;e_U4&9Jdca8Z}N`1-_?{&&Kb$$P%s6|^Q>_4VbGD%yWfO2u!f_Ia0jbKTSK zna`s?u)hCulhGmNMHIuMC+r>H@+0(4@|jF7GqkXHq5XD+q2&Ufuvt$$uH0a-|K+1+ z{Gk2l&)2zWAFuIOhM1IQgV0bryAp$ zhP$ps`f8PP%ADhqC;glD^WqKO+|*z00sl^@EPWz)Yt|CJnL_@TzdcSi@;_TAu$(>|)eLX_cyjU9=Fc@cXOirL88Tu^bQuc0`d%F>@;te*;@`!2^1jQW-HTdg*%g@E zZMyO6i?V0miM6*?+|Qirx4x{ax^s7lVA08g+0PPh+wEn$(YR*)$Kw-po<)~Ae426i zlhXd_XFi*rd{Dyw(X?!`kM@V=A7>ucIett2R9*6I#^?IDeJ8)oyg4Ogt4hK8=|B1J zG5i1L2(vQ!n^jmA9i4yauJU~Q-6e~S>ux`}_t(#OZhGX&)f$K2ZJhI@_r2m@BeQ>- zPOd5G-d+FVrx>?-<<4j7JPd35Kv}Tcz3OS1u6>G5#fs_m+Z6wE+@2aYzfQ$d^rVRH z?tX>b~-B`^WnqwpT?UQ_q}M}`R&H1@<-ETC*0pU$@FLI@rq_I_gBrIU(YG; zG^!8!_Ti1^Qt9wr=Op82*6Vxf`}X}a?(Y1P{;KYk0)`f0RxT}zX`S^Z4WKR0#X{ag6_b@r#jhX0Oy&X!=j9sU+gxW^Xd9?`Nis!d}n5bf9Sm7bvvc~uG!>=>@UiqEU^4}nlAG6PS^1bwbvs&^$CI5Z$GGb#S z&ztOR$IO4OJtd!MZxnxK|MwJiR{01e$!UMS?0vP|dE4`Och)+mc zGn$?rzcKG^*u#~2wJqn<4n1?-He>%K-FLrVKc8*0_0RNaC;!LuFbJ@NJrKA+c52(x zNq;QX-zY3d%ifq5@bA}?9mYD#Rc24yYyJ5A#+H)mEy;JjRLnjv^L3isg#R4 zQt4@Dv&71Ye+z0;pG|$gUVDAP()f0}O%Kk$J6IQd-rRG+gW`vK#2O;NWxwTzt;t6= ztg`sO|A(!r{d&=9-Q~@nuB#uPn`n8IeL1(!#=BDXditO5#Lkj+_-(lBt<9RMh<^=# zj_0sH+NZXE!^}T_e?R!MDew`e-f92$OY(PDs4uw-=)d)Hl< z$?$jo#4~%R?09{&*5*qMcU$tCtFP^kr_R@8*dnt_tRdrO<39PrlGYkNeZO;${kN~W zv~|*ATWc8~zxW#l)_O5}zB%1C%#<% z%*);}o&S7Y%C{wxm=Zq!yVHAr>u1wra?SP?yF2f1@;TxL%GHnq8KKb3Ru zx!+p+wLR;+dF33n|1Y0^HosE&+U#X|dQN`Xa!)?9$G`PsS>LMd+rDAWqw*{rMj%7FUVt;YoGThENYtS6a)nBX@o}caJNA~0Q z@88wkmmYhT>${9o!n$Bf^1&w(x6*P9{|j96w@%@+^8NYx@?O>2x?{&~Eb8|Zxt)7x zUWcsSa_fHHZHJ$JQ9f^DDxI^N_qLd>^#Q)t+TaMkjY^5%UqttwP5;&Z+4);itah=G z&f&b&^BT4K-#CoVU;G&+ozHJ!>7UVT+^dnOoIAtbESd90(!t~L|2%fDSMij7?0@t6 zl$#op{3iXcI`L;m?)GWU|GF&?$Gd)eaJZ-|^@YFI-r4zL z%)7)GR$Scr>Ui_gY(|DzjIrDdS6)PYeSGlJRtAQ%4eMALvQ*a@H)@IQR$+!{W?*0# z$esYPwlB~uDJ@+acj@wF;cH?>1_lDh*2dkvc~kP5-l?ZWiH8?$C=2ZLb+Ekv>grsm z*t>VH=YA#BkIS_0tA%DaSSUYnTH@cC7$?W!XuR}0NP#1z23Yn`ZAfWOOHms?&-be*qw zEm`YwYwFDS9ruf0cm-|Axp%E4_h{(-tv&PCY894gKeRpNE~XRmukA3zm#(cVrg}to zZb|Kk>fAEbV>i>xMOVN7`nn;}()48%Gk^Szy)4-QCnYzq=X2>4Z9IroQ}t3Uy{KiI z)}^{?+^t!|p~`!zI{aYV6wAL;B{QovwoU$`w!rU2RG?y(>ZLHHT**aYO1Y|+;wENw zODBvPyXZNI)+C#r27tHrLc5Qs0M+aR7ko%nRsuSKaZq8b*Xn^+zB za?#eGTeTB&U9m~;-coY$mF9cyZtn%zjD71wMIoM=2Jz!tp{(dFJh9vbC2Lm*Y!%AX zp16%CPLv2}i^*2>VI!M0t~7GnA&>-?7KUDs}w?Eh8fKVxO^MWYhk z0~fcV#!K#uZ=Dxk9`*ZLaM8LmK=PPZQ`oHB4@v`f+F9eN$V3C)%HvYOGSU0xRpx&yc zD?6FttLybHE=a7L21nA?#9Qy5Ec^dxzMIist(n)}%dWo6dY>0F7K3&#{d@0d^lG!| zT2aBq-w$1|!jcBER&O~U`}fnuwa@p2*8oG=gc@QC^hw{2e7PgM`&{+KO_Hx;6Pv}b7-hZ0*0lKj z%6;5%TjcImy*t!vo!E@c$}gGs=SKgy*Dby`W9==QqIa*RCps%%*vjCJ7C=Yme*1Ii zZ~FImudZv>J6~>C=!hk2Jo2kPJ#ls1mK>|HG_5tcGFXyA$K`vUkM%Cecw1eqv?f;r zi;9TLb~RZ>no-vMaopL`y_k7d^VF96CwU{mF~A z*1f-RcW3K{g`8Nt6P=5(L}{1i+u7Tn&%052uY1~A zAD{EByuQs?TsCVdmzKQ2nW+pu6@ z5?G?3ZFy}{$*omaZr!zx6CSX>mJrg+a$$SV(oovv9sUBmt#qrnV0sJrq_Mn=pU9V=XvYOhjvE zH)a2(-nstn+{I0wusAw&&bPJJpZ8b2e|G)8*B+DF|4;k3I5Ot-)?Ff z&yL?csdD#&RcDoF^YzW&{VP?X#R*HAKIOmrM&}w+Yq#%v3LpQv5}qj2g{4iQrT(@_ zeN#?V+Wn=%i!aw`tj6XK)k}J{O0Qo%$&qN^gvAr0KC^`*OPw&9m$CNOrkKgf#P7CF zpL|xv+IXs8b=I?ctJUqRKehH7iFOM|ZVf8D{_54MsJ%;;FIQi4_VUe}l59)AeEat6 zT8y4}nC_>k>yD@`kV9?2y{(!tbMAY~64l^EIZ^*V?F^QmXK!0}d)4(-XKxBe+E+Y1 z$a=?eVyO1iQeACtST|=;-qN25zs+aLOGte1jk{N~?+8Yl`)yT(R#f`s&{wx@`TzYr z=O2_Uw*2_^Uc3LdUq3dtoEVxswRCOIxpRK2of8+TNT)SV{`qAsQg;ZY#hv}`$cryY zomD$BL}!7DpX29z3YAv-O^MYm-gfHQWOHGw+x_$9wKsCE5Jqiu?|x<`D|5bN)tN8T zXSAFZsDeLVM)Oe46hungF1DuUhTfU zS^mf=pZ>pJ_!Bi=t$eiZ>Cux@gSQy*u6lslms*g`$j~6M$JXYT{3pAKQ)m8Dj`d#j zXx-EgSyy&`(Oi?XCiSL)^qcOPubx`0Z)JOA+k)IPc^hSETUPz}fYE!oFQEMR&}_x> zSG%Wulned!W*YB_ng^>A7Jf2RHDfGwLM@EKU%tC@XyWC`{$FEHh-mG9m2mLohm|J_ zlCK2&?z(p1fWymmp&NR1_i1nVaFoqEhv`)dYNuh{jjt=$|BBoH@5i=_CH+xbD^o5X z{3yTAXjr_?oa^J|4%+q#Bh>Fj>dg->i-?(H_(yW)X0gRye1&&Ih+%rRZG z;K6OywIz{XXU&+mnK9V-`@FmLn#Kpzw4;{WspL*PwQJh^46h~CAFnLz^_}Ol{0;DgGp1Jm&l7H@8{m-zcs7zkB}OUB>dq)(T)#n;tX&*Qy7% zS?fQXI9?-rr$M>pq-1KC>%z>FHJBtl{E1@zTrgI-nQ7SHd#=ea`Q-`SNm>?9JD4 zHa`!!gNoTRIjtZa(M#_ZVCYcG{9USV6hAq2^4cxFi2;ANdfxKIsMjCC3bEHUdec`% z_`k9G|LMYV;mgH|bG+_knoFbC6=5cQj1IT;&=S_%d0xvczR}6 z>gDh8|9-q+pMQUDG>5aaR^OIrR`kf(T6If2@6OBWzg7R1vgZ04&pB}_ z67|_;d_DeW?`&o)e=c@U=I5bXA!!Z1VQ1<-hB52u?ojfbTJ{CK23xuE5~!VZSrt+q z&$bmemzAkc@&2}}X@kmBqZwVAkd8@jo)|-xl`$7k4memipT=2lNEE^s?S_BT-XBW9$8C zzkm9yJ>_%%rje0Zq4}K!rc?c-x4NQhIC?4Wn~`YfF6-?D?_N!B_xH`SEGoTwo;$|R zpdQqTzq2D%)LZ&1hDAp&=@riG0`=D&Pj5VAW@tP8_mguswT+LT_j_Aiopk%b*7R?& zQM;|bU&uQ>`_%sX%R+T>uP~!Wp{P&w&C?-Y@)wwrP2@=YhdUH%#KZf5QDH7;*$s&fDDp1;@fQ|sIR&)yyi7o0O|XZVNeuC*Cg zpExJ+PWO~9#R%W$Zs+Bz%S&9Zuh@`z^%?tpg+G7t*T1i>e)Qv}=4`*X9i`t+_4o>3 zE;c)R=3KjV#7^bq>T74Oy=jntpH9#naC7*WI_? z_DlVyTAMiPnnZuV47#QTmF1ukGVE)qVYRVYz+9)5oE+yT7egFPnS+&#kG8 z{^=8S2 z7fUriEnogi?~UEJ&a0b~?hD2+fd&&%Dh;uCIFYZJv2v&HJO>GyOtyAi32lcSafWM6^WU^V`MNtnmBQ z$@6V@@4xbuxf?Wu#aF%3@As0sJm@v~vd~3w7tP~U)s{W)n?Lu~pIcMa%jTZHvOMM2 zy>9XOf1e+Hzb$GHv~{%M_^T~mw+a<G=5fZOmAFuyWa1AJm zik`gsxH(w(GV40|jID2P{_RfRE;nyYMrfsN&z5KY)@m5x^dwOK_u25U30_}TyKkR& z+rpsk$(NMQ_u_t=Cz{or?F*c}=7g-BY2<3-sC6eV_wk@dxk=>}?O)Hd=ZEFWMeZ-p zxqn;u`MSEu+si`ss`*yNWH&E5BHxc24EKkxp0>9ZxP{=Bq~c0U(4GxJ&9)N47J$9uO-MXh_J zq`$7U{(Nl;-~3s3YTrzLzyHt2#nIDM!YRmH;9_qC| ze$MCX-nzS1muAVHp1-Z?%ku8GtN-1vS-Q|i8r?&|*H`4&Eqq#nC7OSx3YY47w@zCdewU8OWXWA6=naI7WqZn zZhCsqR2S51_;KY)`}Fj@yPWrR<}Ca9OuP5ivffMR$v{o^Yv;w6zU;@ZzdQHy&b(-Az;ZI{uE&9BZz4{-h!cg6OyKV23h4=2)ES=~l{nZUUkmbHYhE8V2rA)p$ z`^?V8(dEzl<92`wfb(y5Z+Wv+=g*d_pZD+0^VR%*Qg-+B4b#h>X123lkwi}p6<54n zU+3)7{3)twCbOfawCLKYOVgCY=hr-3+|KsI7gQMWUHks)tGW9=iT#$hyOz&;b?P!7 z_X=b5$k;fizVgof-`@)^YUM|5PA++T;Kyla{(Hg|wXarh2o^cW9o>l@=Q_{#S68ZB zUf|`^pJ)61%s%hxdpjn^s0%!O+zOgFLTxil`&@r(o6q%M-Sxi?Pg4%>pEFNp_KwrH znO0*lnKke3O#8C5tiPw9|5I8Yle)~*+U;;|fNb0i&_on+b0OB=Jpa6`o$1dv|GZb5 zP5*uEAgKD6UTn2z184>cxjV4?S>D~5+q<^by^mPtUTdoxSGwUriaAfUV`)VqXc`5% z9ZKI!JH^zZSn{(gONl3y;y+hDWl%r)~qO0JE1i0RL(()%rU zKkt?He`7WOrC)!JTTEAGw0<0KKKmEuFFhsemS$x`}ldkyP(FY_|nC8MOBxwZp@NhY?fn?zpm%51Pno*ta`JZb{bf%l>fZd$weIfR+uy$(Ia2cQ{UIgDq!~&9`S#P@J+|qg zr?^6wB}KlxRrKUl`}FifJCr)WQ+TL7tLn(l+~4n?^v$;@u>8MB{Pp)fS?kHQ>k|wi z(`2X>aO|P4E7!-#{WAH#NIbjzdELir%eR^KX!Ap6Nl+`O=d*X0|Nn7wW%{?&^EAc{%iXQgyS&M2 z{^`9{pEhf)KY7nC(3}}GQHbp4taeyq`wFePFZ*%h)>RKcC2@XVjbZtE zP?KEq*NWL(=ymqdx!X#Y|KFlqee~OzFLT!_o9CZzmA(>uC(v9P-Q28aTTbsRO4#>0 zIQ}N@@3{T{n#1kR{Z|P4w*7cP1~~H;qUL> z`EzUP`@I#0|BK$9_LJs|;rqR6^RphSFwk5va-DKzPUiF-MGxx#KKBk=7bo}YO4W7Y z-P0=T7x-q^PpdZATyeYU^26ZC59401v0U6IitaDd#9P|CiW2@k$+x)k|6Tg~*gdAk zzaK1md+n4_@+45t_h+kB9KZ5f&c%HaAiY6HV^^5a?M-hsMm z&)Uo)FP_??ym8$ugI68kHdW}gtyR_4lTVqLn54w6h`9S{UFuOyo#j7xa~t%lDnI{3 zp3h#%c{y%(^~c!yqs#Z-`P07d`uhEoXUpxkl+FuoQ(mra&eyXZ+OS?b`{cQdooYQ+ zpr+L=FT}vv!$j3x)9$L&YTHkI`gaxb7+lu8Eo*<)R8*!tznESB)BkjgO+eYx1Glo~ zt+>qy4hrVo)7HL!`<9oxJIB7R4m1)2pEJ*D+fqFLPUXMt*Vj6xT7_=(1nX>Dahn~i z6Eb$Tc;Ui@8~zx)kK$bIv+tgN=u>g6*Ey{Z?2Fv|9@Pz|Fb>5@6YMz#j*OLe`l@P|5Do0{VLOibz1MDI!l_Prp|7Lf|n=@DL?rb&q zlE}NiC?S_~ky{feAFou4)wYZlo!0$1Y+Cf5kYkT_GjYe~Y(S2WRq?m3b>BPb8|{AT zi}vh!uXbF!=3&3y;i;1s4hs` z(sru-rXzlnzzabjv*98ATh{xXdsq3`?O!QqKx*Inudl`P?r=W7zRFTp05eZmAhH+;FI;vm(%Ll z6TW6im`-!O<+WsONaS^LT$hHL(x_VEAi_fF4?Z+dgD`~9=^@N%{MyEFN> zyL-J{5f}~jK2jqiMCq;Y;>+Ee}EFGtpW*5|K1rM~G@piiVw&VhI z-9w1M+dJyzX0kH>yZ1n6o$?xtM0%u3oj`FTQht5YqNlp2|Gka6a`9qfx3jZzBFhHY zXzx;=Tk86EqV|`+S?IU5;_5+2ahj&#td?~JT$~2oiCw*a|NT>;zg(tmT|aN$ymRNy zZQ#*?t#~IQYft5>h2BqTVv zHLq>0P**g9%`jB`fAiw}zo&PEcgwvBS#8#zBfZD0uDC4g*}cub^_QCeOmRJJ)*8FO z2GS(kGIi1WDAxOW5jnQEB%wJ_Dr_34Sp6YJ@$J2!6u-<}*3x!oVL}b4OJpXq zqvppImGmuI2f*!6k7&(z>#p9td-wi*d9fgi^{q9~0pjbok9>)_|N6T8%})WRtCFr) zY6lu`{+uX~)hiC_Jx|;gbSE}DAz{Jd#mco@r|s9LY9BU&h2z^_JMF$+-F7g0wVC~u zP1oK@S(c@B<)2z*4rzAY@+vIXO+K6T_0`p|b#gJS8&;ow=6jI8aN$|#;+0tbWZ`mi zSsDLuo!R@oKROyOCvR)+b&Cth-^XT671zCd_wHHstpNg1&u=aLcFO19SKWCx%R%GV z+or;nO+~Mi-6a;l2c7H4J{mQxbd}HPTNVa+uMcxv62ol7t&4j%*?Q)*ty!Nv&M(wX z7A`;Bp$cEU<@K?2?Y(>V)~#C?qc{DG_!H&^7N`TRp7SF*OluJb+p4*6=@&6 zzIE5`-Qnxw-cB#s?)Oyu@QLHgw@q+_ln`a9VYfEPWS#~ua+$a-s3tZ$DXHoGIVVsxmG9MrKF?IH4P??u<`nv9EHR+hh(?z-Swh2KSuSaif^@?e{5W&vHu?OuL7ul;t&^0}AAlpzh_r4hTQy?*!Z+1@4%VQ@TNIhUEPr!~XAHvRO@ z$Lah3y$Snz%QDvxvV<(GYj-x|Q^Tb6IP?k)z+ZC`sM!Rws81j$fvL3QN70f!3q zM6T;K?rbolFK<Y+t){LKexVpV$A=&%aGjINUUSDlnZ2P_G@~^$g zpSiyuKAW}V?xj2hnD_T(tG*Z2xv?9X=&yujf_hlTxA!jNzB=vtx<7aCZTuoNe@zBx zd58Jxx!b&UZ-jPyG~cazI{l!>v)#LQ=N>zsU8q};0x7g}Cw=>I_NM%vPZySN&N2L% z_XxE)$3K78nxB%o*VQu3nPINjo&B_E=ecu!^}83GT_3mime|^ioBQn;JRk;MTy9(b z{@-cm`OEH`{5Z1ibADfqpjo!-{Ibu`&d<^vyQfLY$@$sMGPSU{arNp^ahb&m;4svD zx5dBz?z@_Iueot_XE!*5P$iPe1+j`}f=X8+ddUfkSzb&+i{MSAH=ykh@#8u1@}7 z)I^QTd4ACTo=EC-DLJ`!@7}$Oni5lefrp3ZM%BL460DGdapKb2&)@DGYy7w*_2!nB z4|c5OnJulmY0GR$SSGr@wPE& zgBH?VUcMRBsVn~&cH^2%lGpB&f{>MvK{c_fw{O256;@=+6YaCk_Qw7D=ffoyOF%*g zyecZiZtm9KH`KQo<>W~fF1afNi{E|gu3o)rYG5EBCKh?xYrFmeXplB-Ij;83?&l$Q z&(l%6cfa&YS5@-Z9SSS&ro?K0j$CtQ`L>3p7ob(BOT+wsgKE%CPhY=3_sX*5>9x6S zv6pHi*Ul^BhOFPrU266+Du$E!G$cTy%-^2*%_e`h>fMc*D>tl-+?sbww;i&Abn2ov zQLnG9-CQp$D=RzGv~9hy8#E&>%8Z{oC-(biZqJLLk7W%Tw(WAe+IIW&`5=6d)r_kau+JsM@UTMi(e|PTbDXY(bdbtv}vSt~) zjlg1??{%lIQ1@#7T4!o#c=7)I`?J-jpKcXApaf1&pg!F<+ZIrl*E!l(c$us=G~;yb z&W>F8>cxwQ*b^5n1W2$z^Uf@Tw~OWL{w)Yzy3T6GOuqTEcrdhm{qki^^!B`h0s|f9 zqmXQKb{c45WYhgMQ+-~4@4Gp}VAoZX=v#uY@_)zfu<&qkSMF3ua+;;}wy5jcl{0${ zcCng<-YP^==I;;c1V=DiyT(?tcDxG7|Bdldmk}W!ICpGrhSheM?O6 zQdx6^k9hg{%gf6Ae0*9`7eH1!udKYZt!S!VRAO$-EcLf9pkWAUStZ=vRT{Q^*QWwm zCulk8JE_cCME9~v=60lVFmgH9blEe9OF1S&+7qVEw_YyV`uWAy4Q6g^ykz;JthI8XFnymbE59(mNX{ZCPnXoqw}ir1qi_ug~tgFg;&lPyY&acX$6W;o72i z@AB69bU@meL5nZdshjW3`rIMD_G|U=cjt6lcmuOTZsm5sveUaLXJ_ZQb!_bHx%a+& z`xf=}*1pph$=9UYA_i?}*WL;Pt++kceeKrWo!>O0+~$|vhPDBhf)m5_fQ8w+#iRS7E8052 z%g)k{uMl6WUN(38(G3f2J1*y?L$ifQ?R6;`86IxU65S_|cEJ?TDz50=*3S`3Omm%Q zmd!?_q-)>a-mc_Vgw`S_FYUA5{vqT(tA12}j-+Mz*V7vo&OLF74OXh(g_P><;o;%+ z_5Yi-lX-X}e}6KC_ggM40abUu_9n-H)@@d*o6DMQk@US~0CQmZb)&))VEIP2N!8VOKkTS?0d16|?7SLj<^5rb?5RzD}Gb|-@mSe`@gYz?|M2d$1sOseJ-qtv1(s-B_Wx+`Le!U*Iv#4^YDfB;zVW!2Hh3lC0tNvL_)@w7Uq-*=a*kwlQZA*z1KBn zPRL->s?b~I&&962m;JnGYu4uzprz`Jnp?f3Ps8%ytKHK!#-;c!oAYgwT;zs;uUEc& zj=H@)|NXmn+jeiht(LE5^7`7^#qj9yyd|>M=&DNYlxAprWL?_I#>RH)P1MVYvE4O$ zJ@=PxII>K1qjc2KO}A$)*>iL6ZLj(4&`!$N%=7wp?w1tY>7M56?&sgedm^~@mWD7i zS%*SbbeT%lr!V+uHZ@1Le#u(>^vhn6cVE4K@BiIFJN9Ke3$!dhwPh`6?e!#)wTG8$ zL@f=OX?DsT+L}NbT3RBc+{<6~G@t2JBREg3Qp@eS<`p{GEUX3Ue680}x>+6XuR9e& zQqR%M^sa03%=21!HP$`avM~sjoyxC2`n?rarf=F}?7I5>*Vl>6UaNF+LmHrFJ$e^a zvtR5KWCcX%1T)vwNuo=7Pr-`jJF%;~-(PpS2`R&;F7v&(>X_GMx1-R!r}=K((eK#{ zA;tBju1m`@LNi@67fT^r(DmT=R=*y!se=r@*zQA4-H^htYw6tozhA$*a|oOjR|V?i zUV#-FNAGU+d0n^v+L<>szv};~T|U9^}YZSiN9rjwQV!A zoWQkf+SP?A^RHERZ&lWhI(gGWJ8E0RhP?9{rU^ugmasHee1%Aoj$i#$iqzEogKM6 zYJ1*X+3wr>L8ol&TD*V%{@uH8vzx31OI^I`I(=L>4`zvcg{*d4$BIM061O_R?gE&3y?*9}f*ryLCb3;n6YgYHnRgdLF7F?;iz3{vIZ*${&)^QOPGwijb^Z8GvO>&>QZISFW z$ZGJ^OL4ocr~fpaG85cK-dKd@fW;pU9z2+0_cH2brRr+ina+G?Q@%^fIeP6{x@31) z)Uxc#=bro5pZ_-Djf$@ErEiaYH8(p4zgai;{qY;ThgY?)EooPUbopj(c^OqY)l>Sb zGc?OxEMMF7cU9p1^;ai+234y!zn6VenI}G}Bs(g{e0xcn{KU8a#UOjjwC70b| zVfDqG*wd$+-QC+|yMME9f3x8Jt?6qw9{y;ss54hap7il4c) zjYEI_=Jvd`0;v%@^Wnop>mS<=e{?A?FaI3>`L55|JJn_Xm!1ji@-15sbhcdbxB3F3 z{9~KLCa>|lu0GrIy0rbrsV0)Qv$|)xO-b8+wq)TMxtwESxvBru_9uQ?aVfg{?CdXm z;a%WV`e{r5oOv}Vr#(Kce)V7D%g-xX_4NlUZY45)g>}p>mg}bXp6LImGNF(6TI(F=gj^bHTmOg^_+{> z)7`{wKlFk`?)&+&e|JycpBD+5fq!;FeA~Wf`}ZeQ)>L# z_`5}MX#AdS(0!fAgRl*gKxyDr)$W4F=f21Pv&fA6|8aS}Mdib=8*NpOw!(H!f<})X zK782M$M;I?6u9Ys{rugXt^2O8U+$m&*Z2O3ll(ubk_6*!L$_yw+QXpc^Yg>viars% z+|3QHAeWWSowKJP`|Z1!OPl0w8g2T2_x!ouN!!jn@}9j#6jlrTT6Z;+C6-$ftp4oX zJ+|9lK5)MO>-(F3-gS~ZpmBNVrctE9vFwbxhyNZ1PwvmNoxWv_skPhRRqy&hlRwbC zo$v{SY}I03p4nw`d(Dik<<0a#dr#qE2p&Xh*+049?yk~r`TqXrFI)(K4fS6=y`Sw^ zaIN^c*uO?OexS)IxV9a;!}O-Ve(@q=Z&hh}`twK2x9s|JNP?M}8P;N6cd7H@%Rku( zXY@t>z0*PSK<@p0wRd-wUfXf#)1%CF^XAEECnQQnfR~ep=j1$kXZ%}FRrmC=CsGne zK{MG%=>s%b3hH+*iC}y@7doh>ZD3lQ|NLV1OLN||b&Y{MpeYepum9*>(6I2!D9E_u zUZvvi??4^1d9=kCPfrJ$K7SdM{?fZQ^Eg>Afg_2kXcd@+98*Qm$;cro`*$&Hw~-+Xol zdcd|8gQiZJo15?6y&GHE*4}=YBSA1$TkEYDbTQFOt*4;YNcQ~mp#2v!`_n*+A9hwx ztua}>pv-&sMua(!-bICN30og`_u@rCt}rf0F4+thMy(V+W>GZCzPoJz~_P>>4oEW;6bJw)LIyvD>>t*)t-D`HN6m-~C z<)1*+tWegMQGuDOSD4GnoWHW_%oq7>^Q$iJN3t69aVe6txVS$&o-r~wc%5m9ANsD&xzRh>`vuXX^Q~FVMp^@A7 z99G%2YgbO{u3*tQ-^&@KXO*4D`H2+u@v?k+c$mGq@FQ)}wmqQ8GcyVW24&S zEsHP3YHLOvtM-fV_;@S%aqY#jc`F^XUq$WP{^f7l4~F11{h*6r`^-0 z&w0|8IWs!-*p&NQ|2$(oKhN@YxS4`&{J)o*gkD4icACD5E`Jtp`}3yo?sLm;gLc_{ z-&6Pa{rBFb;lEN`S3kSIY^wgXEwhD@BkXin*stDP-s=-SN7>)`ceeiT-OmpNbv_wQ zwtN31d)1q$YkfAkw~OoEq?YOKKQ3f%`d=nIA|j3do?YjkkclK1vE&u`*i3F=(A2yFejVzGS9zmWT_KBs>j)Rx~rdG@tA8?=I1GPesL z=bURFK5USkB7Wu1^Q|$v@sl9@7oOfKrSCM;uzp+-@yezg{R-TT55=>zOxy_H9>}yKgpYUBqg${x34SCjEZmCvn9m%IfVjXXK>c z)%Q?vEHhzXL0vmUpJONwdqo-w)(Q?hZa1$yeMfc5VqD{ z-&A+?;zhxGx!YFk-n~2Yo&$&KuCS0OjaNIXzklCr`|-uK;+NC5zI!g-H-B!{D*n`| z7o0NP8;}#U>6Qvxw*S*~|IY}^&tD(9{_XAU(CM)#rL5IKVJnQ{r-9mQ^Y#>I_hbm_ zPAoG)DN${0ZNs)4IyC9w!$j?bIk%iZvju16zuq_!yE+tNb=11lo#55T$PKY|>((uF zx?ZNgP3~>aI?<_VeN}Z256)%_&;9pnF?ciQ8=upAk`3aGm&?i{!s^BDYY!eIM0hOB zR+Nv`*5d8|g>*24Zdn-oJJsobdHH70PNi`5^uuSPBAGAeIU}c4$kgM-t5>hyzyJTiDG6ui zYx`<^A%m++8w2%4*KYP)US;rg$un{P^uMq6&R+X_*})#RWp~?90xYefV#nsqpAT-m zH$CFwqa|XWE^b|PX~hcv9zXqUE8DxT9lrc)Z*t+Bb6zG|Z@(e6MQX1X)dii7_{z1q zp&g<(q|iy>{CorqE#nj9!ZufjX3$;WIPO_FXhEQGzSGs`55E z-tV2&hb6vd!eI+1%v#cGboBaGH8nLWE32ZNF%jo3U%q_#_HAh~@C37oR@N@DSG`+O zJE~k)y|KKyJoo$W#nbnFj^Fl=-|Qw&>FSnOm)(9odL8xm@84_74ml~-9qie_02+E; z8W;#a%|b9UDuV+ef)W# zd8DasuC;H@Txs_E`XQA4^5uuYg8$y;!;J7TeQ9}h$=v@8HH-2@gMDvBto*Sn%<_Kl znQ}>GPy*@g`gN$+xTk76N)QBH5fcby=;)wG<^Q-@TI@Md8Jin&kef|v6mJKM6~7uPO@%#)bt z@p|sgow&_swtH>*w{OocU(fxt>B~d+)t z;wLtj`u@(XTlV5*?)?*2rcRqzcjteE2cvh^r(13_AH9xBySwO*ad_B)U%!8^%_x+0 z0*&6g%9QTPSbKMF_nXyS(^dU;pPjhP=WF2d`|;to%{Sj%x5h4ZU){A=mp{B%aCQ0p zId8n@=2cyIx5q+t>SD#<>*wlU^FRC9T>thx|CW<-OU!L&-;;Rv-CRuW-&=08pMTor zWxr3(WL@5QUjHYj`TTWvEWY3W_9yjO-Q>>i0%9S5v!$PQZ_4K7=a0S~wYO^P)m7_6 zqLaPimkQ*9MsQNE96#@;>iT-+KJJbC0ynUv-crb&skPWod~H$R@AqfxQ_nuUm2SCO zIBfo(E0-s3FORaUeCaX$>eTsrE+yX0{Ch5c>G#O}FWYbLf0>(m{GZ?M@3!l0-};`k zzO*|%Zfnq&-xKS99^d!hw)k*LRN(oQYH$Cns9lr+Nrf7_r%6jlc>J2G{d{puMs&&A z6(<(i)nr|Y4!bR;tL!b^wk35{=dK$U>%VjVe|_=3ZF;O~W`O;>`ZK?L_TJz2oquor zv@OfxWope<`sCMcxUY5j_s-Y;S@k?*^0t%p5+ZAbR{2P43l&~x z3Ii?4^1bpBdgpd0+nj|E1%9 zx6Zxx{?9bgrpl1Gadrw#%IYJ@SDi@O^c)QtTG+WYk;t31&h|VztY3@?wuJOJaY@x_F=Y|EpWi z7s=O^{4rPm{q29+6Pv^H;{W$h4eg5xwBj!mfH(j>7h`bdcX#Wb$ zsGqNYfE=#Zf_I_=oY-RQHc6r(Tg`bmd1WJB--@Pc5Nk2#RQrN0B*-L9}q@S3xgo7PRec=KjvsfLb?PNwg@9fxkY zmQ6<8fWP!v;QPwQY_6+k%v#W)tRcq$MS{g=X4m0$OIQmz}lWolyL#J9)K_fG{MfTpdrwb$yeZIsB`nytRlODC4i ze0R3K^xvo5?)UEfoE&at)Vk`%6ifKP*wu2~)ed33ZEbCbiUen_dkUTjD%~aoJ%z0G z+NIyGFD}Wjy=-5UXR?OZq|Di`hS(D68x!ihp?@zdV@Be=nW=EU7jhve2`|_pw z`VyJS>gPXCzkgOATwoc#7B=AxI~E{pS@z7P)~@r}3j<$71+KJvwK+U(5_r%qXp7eh zyWA=3&tCrb=-ZK#_A;-mzidCck2U-8`TsTdH}bxJ-ltow%OxG~Yn5oO+*Zh%cwg{w z0j#mvA7dL^_01xnvwR_vUw5vKx7+n~jyPyG+6Q#FO@PPL%w*SF#&2iG$NW5da$i#T z&JFjrKHs|h{;!1pN1jhV#GAFyc5$8vXaEX*F>{^%srOMcCvIy`vi8geA4f1XYtg=f z$9%5YuB$wywXcR{PG1*cU-i;@{oEVhF8+8gF81s&Z`P`{i}EaB=7G)+IPaL6HK~4o znA@hS$VayY6sBWw zmfVGJ!dSU!9qWzAvqj@WPU>&?yX{Acm2V>M^3h(_L>xyIzxzU%9&FK&AI zf_;AbR*mysm)%U2Jbr)rx;boV-HyMr&qi((5_Gxi1R8XLj#j3+2Flx+&Jh4 zaA(6d3Z0cHtwD0i(laa0$Nnw4`b{V?kUlc{(9xi-mSZf)pBf-#_D1 zPKBm{YT(2Y@62s09)s6fL)R>+F1lCrWR!kPy1dYQd&;_p z|C)3EtL=Re{8~)+GEd-keo)?n?u^ou`1)~ku;;~Fm0zMFx>t$%NS9u^vBiG=zIpdI z)qV0h{^7*~@$KqH;U_X)E=rY>F5L|p#D-;#KPxWBFWvg^K`S z%X1E2zP)c^Uhr-{8%v{aVGU;4%uhqwlG8eD= zlIdSlw=&`Mu8LBN9*>Q6TT9=U*WdXcv07YrasRHl6G1Dxp>buEl^u3%{ho}-$D8gw zeI2O%a!X+TsV)0=*ap^}?&>$n0*!q`*R6R8ef@LjZ!hy>@cI+W@~__V4N_j0+8Wf} z&fFdUq+V}zZPc{OF1+rb)$h<4@w}qXUt9aoaovYFbnZq;vjeQO1VsZoiqE*Kj}-?|9k#&+SbhTt2T?@=TW{D1mFJwX)qPN zI{aDo_94l&%YW_okWl;aP}r)XOq{Y2WAb?A`zUp3VQ0HUWoMYy?j` zKvIhC8>D{!%&*nQ;fdUUqx3L$^h&kN_}@C;H#aW7q?`TsT>jtJ@8|6|uD0%B(9h9D zBsks7G|)B?(fqKVm)GChEqQF=yoyBa(3#)P>aW{VvPAptCQz}~e(#RZ!EpZTF;fGR zT@hZ`x@761QnT2N`|f^zaNqRye*w0I=RmsWd+s^{{}+Czd!F8uc|O}e{jlkmgI60$@H+?k@7XXlY}U7_{^#G`xIZ&5GWvU6`J2i7htfp0Us@5!i}3H- z^tbO~;G0CQ2-Os71x@|sb8Ysr*{W+|t_bhJNr^Rkxk?fS)6*l=n z>)MdCTkq#pew}%@e$p15?3nd)ZyZZy3tw_(MWFB!_|Ds?^PAo)-YIxcBmwr-mYiF{ z^W#tL$^7uMx&ADxf!2ncD=QR{-1Yp%%$4kOvp%kBW?g=G`Hr5gO!_%Xg);BY{-5>X z?);_qO@1t%zOVS-r`?IhVJl!;TcAnd<@)b2XTGdX`89jr#GkFd6J=g?if;?rxJ5rs zc3aw1kQ=Y56xRWdGr6o(>r~RemdE8Z6$waREzkwpt@Ve<@;}x z=Qv;5lyht2{^CcUy%UYKrplYXYDbiD-818N{NF2n*mLdvTebh><7JVSF;?bHSy3t$ ze|?GWB+uWAKi*%y-vU&v6@B7wKV%l7E^PX$3(26D)qi)1uXW$n({q0gZ}xQXG80vh z$6sv~zCCGL>Sg^tJL}@_-12R&R0Exnidk(-+p^o>B{Dob+vyEFD1U+)oL+spho@$F&ogr&}_@c*U1`M1{_YerSa zRnNK{`Sk#Ft4k+%7xU>2bx&PSOHKc}Zo{`k&{~MnqSvQS#!dGXe+@4IW93u95WG96QUXSXT!NO#!%*Vhl7gB*#b#=mv34ayaSKneCA%dZ>NQPp!USFwJPuBYQClauY2}RJn`*e5BMA=lhp!`4!iz@}I;Xx@Cjzs}pD5{Fx=YIBv_l|8Ku; zC{qO|G^L+nkDv4ZD~$-{fX~Q48q{i=azD%xU%Pd8@wMHDZcPQJlzUHKr|-=GjRx4y z*ZcZk9NksjkknH0>CoB@Wvw6!R)4=VQSW^ed*6SJHCj#ZL3xPBgJ3vz z?DN_F?V(4}V}H-a&fTlc`YW!3&$eC50SYTqF|lX!V}G4{ls*6Hp<9p8y>a8up}+Eb zK5Z0VoBl19D_h$Ylwf-MkJZ0-&AvP@G%?f@%~?`!Ua-%vz6jdqeD&nb4cmf19=Uqs z|Lop-TS3)iM5qv2=(^3Cwe$OrZ68{re&7GAvt}(5$XQ1(&3}_TlAHGZ@pNUZaZ4o9$vCP;Pv6t#)-M5pfJ)dd-8Vf zy{&xvKKdtKEkgJ3u|J3YF8`%haq-rlsHgEOrh@hb#cq`UZvQOy^`EEZhgUtFuno38 z0g|VB!u{)>xvoB?f8`W7Wt5lr?VU%-!)S`3ie}9zC`16=IqSoFk^4Gybht zc`<5#xz3tZrXUYbwfc9jJ8sLizn|70TD1u+Z3|TvKjGGoT5Z-3u358tS4{P&b`=wQ z_J85`^Lw)Q&bJo3HVrhHfpo^iv_og!`~jUoeZ8vk#pMm#_(0)wx)55|y(~{Zd_4=) zx)(K@j-m5i^8AX6QM;|n%kvc1tOad1c$*q|@z+J~`yac$HZS$hlC6J#bVH>oTJpLY z`);!JNmWC?xE-R`uDQ>4*LAzKbZK{(5vWU8p8l;&VxtfuLy4BJUAJ!CRqv{*szbM& z*x1+(?YO$y+S>Z?Emy<}Z_X9$yTWSE>fiZ)4|D={u0?_6nzggb`l9-`cxyy#$@#VZ z{Qs4?T+LyKB4_2MbysiSp8Z98ebCWY)AD7dq&~UM-ahHs=WUn7a*+=fxO#p4z1=Te zL33=N6ZCTLZYjP}wItSOWfj|KXZe&-rcIoy1hcWX-oIbjr)y**BM>z|1Hn$ zd>S!j8d7`x)31;<98dE<$vxeEN?Nni8t4?UDF1apu}<3ogZKf8KWBXgOcoy3hj9@tzIq zLdDYBFka z?AgLM?aBto0Tovdz)v!|IYmVGtaw(ci+pLY;@h4-i$u+?Fd-YYTKlWunwIdzKE9v$ zGgKirDs<`uCkY4em#kfN20V%T=&6?R-l9jB4Lmd+t(Yy4x%}$Z3`uxBvGmj~F#-8q zVWHEyuH7s-{j2PJbN%lBk$>5ogbT0uc5D&;s)y0=0G&CkKW%k;cUYFyuY=DMS9q-n zG*`b=wte56KZXC3OLZ}IfKGx1t&J&6u;B^qG=25V+k>6)sHg!{LuaD-`TgGWom<( zV(`<1PU-%ZbJ`cLo%eRmx8FOH{qujj1#LNI_fsKf#q2V_=pN{DcW{d-6toWz(f?ZY z>(e!^BT}WsS+}?J@BhANyUy%g^Z#F#HrH?C{d#3v=4%v-R^`ZORAqtAaR&9i=6D?m zG+$`uQ=ORj?}7CHDI#m-_kNkHpXc9_TY9Z6(;Rw10c0Fx)u}6I_NIT2Kea_?_L_{F z%OJ5AuzTs>t9RzwuD6{lvR3xD_4_mT_-?;ikF=#0TnUCUW9%SXX}|dCqW)bgw}gU5 z7=7xaKYF|G5)*rN*sK$2S1q_U0o|Ojvi8!sn$Bz4>f2g*o!(9^JB;G56#`p>W-qDz z`RnGF=^0nw-|q6xp1fr?BXpkwxTXhPx3JauR=WPam4AfR3f)qCs|IQvz`MbqlQb?a zpZiZ}Eod5sHGWa3)0a$h{zXW=BT>;sVO`d57k>Xdl$N0jEiEtg$a|G!?Z|8Lu)OOL#FXJVL= zlDWM5nz#F|S*tQ;p172k25Q(LACh(DQs(_%MMc*e)pI|+jx(veXrw#0EF0AN2L%9R z5>GK}={4Wm;3ac?=GwC@YaT84joae$dfD9~bQi63z3eBx_RN(nuBW$T+*%9U^9D}A zAa6$*z7=xKzTWu%4oF4PE%+u=gbKa4LawKm{r~q!`QOd8&#n|@Zr4MPjI5no%4I8z zF0VHN&$~O%_CLM!?k)_sJiT-exrV{1O7E|n)9oYG9Elhvh+f`i1{zfJIlXD+$?j>H zN4G?aU?i@LTh{-6{?FODC>43DEx0EJN?dDaeA}HKmwR+kYLwwyF;G(+CGF`>|2FsL z?elN`39pY>zwh2==-8#Vi0)+^UgwwjKT&*bul@he)t}>Ax9To>dMPg!BVMDxqif*) zl$2z(_L^MTwNuNym9xOt;XoSYfuM->vi@1L)^@$EY}nQ**SvNw#YjQiOKZP9nholE z{<$W;UH#ClX_uTbw_9Pv$-*u5pS;@3*MgR0B!;feT(~7#HV{_oo1R2Dr^5d{FYyJ{a41H?}@puv(If=3>vFI3Hh@# zzwQ6`u2MhBzH+JZnl7i}WwNRmQE+I>`?K|+G03XxQgX69*^4jW*lj(z-r|YtX{qan z4%I|Rx2pMAhhYSMPGXX0->u6Bv{n8aYLYMxnEJC_F z&D%N&i(&ttOyzqYwSMjmu`t&qSdDT91q66n%dhv}EpQxN4r@CrnAx`FHVcNuHo31u zKrMr~jl0VJM9;S@_~V{f93wTa>^DYQIks%BUew7iU$*7n`SZw2LU8)AWp~3cl15{u zxK5PW-@EJT#h*%Z_%dJ4Gsp18iY?uuy7O~_r$*0 znXm7?Z(9gjs|DX%3{MqOQ@{27ojbE=>P*n`APK37ZcFdBVK^r+^Rt}O6;TX-8@x>_ z)xNeURcc1rZj7qn*s{6t+m-a9mTk=34mo5C=^VJMid!#tiI!h9;`QHMi;+c*m*oD< zdVTNxza9TK?&zL|HPAs*9k8{~kbxYu+pG|!$v`O$y|Z=Ku3cgJFJHdo%>G-1NUd6vom!&D#jP5d?d5iB&&SHg>YMh&!`4zjQV)F5=Bag4Eu&LEpPbD(_w5nH ziVHMVSIc$nUxxSzZZb5x^!#tw&(>9|SFZ;5Y#LW&|Ew=!U|`4)e(114>E41h3aw9- zjCfCp8|QP!)I3jk5yff_I^9hq_H@htXABGs7uXIdCb+Hx zY;=hQUGN<-O?<77rq(gHw0r3h8v=gLfb=XF85kC5{%F-Zr4wa#hVA##d&1rCxt>_H zWQc*U2{)N1zP3qy7T3Pj8z5H=^n8S#nFrGNag9Z!_^A(BQ&xJa)%zYY-{~U>32-q6 z1_lON-z*+_duvryRhWHFLV`k0H0Xps?cKX}9r`3B|HjDN(NHc;Y5M6_-ugeu>FMba zyH)mHUBZ6DUw6&XBAe|#GhR-weYSP(Psy7}HyT8_IQ2liQQ z|2e_iPbE64vj3gQm(YE*&-$-_^~SXtYCo+LFU6j|roKM?|L?hxK5=L2o*a??I`xyp z=ii}+%x-e;JCZGz>a~ByUvbw>5symyx_;ibPF{a+LssX}?AM2xvbye{sXF;yIPR*0 z?Cxp*tv3I^_r~5#_}a6DoFT{l zH{a$$+pFrh(>Lpj)O4OK%nm*F-%Pz;*Gs1SllxMs({ju=v#ozdKWd)*KXz86i{&IO z(P^I}9{dYho_%#rs`quF6aRN-W_$ga>N54mS)FH`w|Qc@4NU*-2|MU4|64fd(fW@6 z=9&N7Ql}iB>~GcZ_i5Z8P8QF3-<}^4GqzW|-%|AB^=6mro7TRZzTG|d|F8QJaW}M| zHZG6f_;PX3{a2q$*51OK_3A6nmc>r=(s_&Q^570%0B z8G>`Kdwo8<;LqauM^}Y@>EH6V_vD|e2RC`m=lNo<^>4P`%cy-P1%7n>SiLLa`X_sp zng8uyY4aXmCi>xk?%@r8J_PPN`9vv>WxMN9(r!{2`>y8*rg{TgWE;n_=hg z><;^tU-t4-Lyu5l<+g9zRdn<>nV#%F_KY`hy+_@Hlku;=%r8i`ygh3}LsUe~!L<5D z@tV1drM~St`-ka#z2W4_+{k%<(!@T*i+gS>(LHcwN4Dsn_gNdWL|;V3ZMkI1@N|Q{ z#OZ&Zyo|ob*S!26>w7(FVp3t{hM9+zPuu(#I8`s8F`0edzpWGggnbOJv#V>r($zly zUuocn(mpNGH&HX=MZ~OQSBL#LtMhpOy3Zf2S>CQW7OVZ=eAdRPKlfkxWADK?DeTmw zEq4w%6~2tmHJkr$_FS2ri)2`LPt#o{?02Kve)FaW-SVmx+g=|2`-eGr`h2rhPtIy_ z?!WO`CiGOjXZp1#|HB)yKFr=3XmO9hCp7l-Ke;9UZGO~;{H&MzRKHSGy7Q8b+v&4O z{HMKjPJWS}bjINJ6rEr5Ka_lR%AA&~R(#&z^Q5wuD|+R3PWtBcll#VVWB31=C2L41h@M@hRzO=q{O5NPWO#kfjj3!MluhJIX{_MxuI|86c`C;1vD)tzh zuQM?)Ff`m+47x&;!Qt&i(ET+G3%= z^nBet{nE6zQQr<+>OZ@x&;G%NImfpz%TM~e&nR%w&YRbS_>bMVcBz_yVZq6ZTNy-B z-FMA2=HHf6b!dt;;s83rntldN)PHDY^Tfl*SLE4O4$c z8+ZS^!@ZAx!wuwC?As&V3&iqUiVoL*Ut-_b|s$gfwQ zA9KoHWBb86f%lh=KRRi+J>N@y-*2huD_P3K_u2j57xT;TcG5CY6?5~Mwl@~>`q|$S z+Ixjvgy(YEqyB|AoJ~EG)IM|gzFhnA?ytqV*9vlipFP`lOfLFhaqzYm{g?lJm7E@_ zb8Y3H@7ml9{iS9$xyOIK`L-E#72C|C zg~g_cO?H3Hzdl0s1AE#f>yonmeXE~rGn@bBT18%>;`_j<_h!|dIhpKHcy>3I ze&N%x-Uj_SyW^^ZF?pv&ost z-TZGC?)JNHGyndbrO6+yy{4PgFWYy_**o8NedNn)O_Em9)Apad_QUyW?9KiA?tM=_ zf8v?3<&8bLUZ>9=d9QtQ_Qq<@^hwWlPUR3|Xh?Gd#k%b8TZVZN8cQAs7F4CCIs6mc zmb=xo?nK_F@)>dy?DqMK?Cw1OJNU$Uv3u;7`j0IAo|gQn|KDZp&+Jd^XEf!^@XVWC zcR(+;x-0i9d;HC7e;j=N`5(VA>q+6V=f;*2^UY_v=6k&~Rr}xgliz&ua!>}2l8WVa zV61bP^U{pdp6Q%@mcP7MI^V?4{m+ccCral35xB#?%Y>(9SY3TE@``t)Q&{$1NLHSeqK^cPVxeYdGq zx}9t|lPA7Abmh9KH#h&+$yutO_T%-bmegHh3=58e@^aeo9Wx(4+wx~|mVJ-kt&nE| zH~V)^UVE(n*5z33&Cbz2eP8#^PuVps_w1b|Gm?}qmrtxauQhZvH#Dm+4WvW=^^H>i5a}#h*kj?YWd{k1{YJ+SV zTgs1SpSlY(Z!j`s=$7a*wEj%Ydv?OYGVfdRizRb@9IX0v!DjE(ANM9D=RG!6wp_KX za`K(I^2O?pjoTlb`#y7@xb(B`vcpaMYLW>?tjc?}?-!@>ztqUF+j}+Tn0n6tm(o>v zC+FU>y|rj#^_HW5B;Ib@rlzCA%fWp*ck9n5>)y)cUQ{Wcn>gFcUb+5>+TY*}f7Qzq zjk=E=Q_nVP+AIq*>ikb4G>*l^3=$ zn6T~&Oa3W&=u7AETc_+d?$oLGIO=zVk>SFh7f}qem||Byd{rg1vMK$PGzTNY+P-zH z3p6iml{)8dYwExK<(oG-ho`eJD5%k{qGDiR*y>KxYBIb2&*T5xjix_Nt;k$z0IGOB MUHx3vIVCg!02^b&<^TWy literal 47294 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 VXIU8^zXXtDJYD@<);T3K0RWcjfA|0Z diff --git a/lib/dictBuilder/zdict.c b/lib/dictBuilder/zdict.c index e1bece3a7..6c2277be8 100644 --- a/lib/dictBuilder/zdict.c +++ b/lib/dictBuilder/zdict.c @@ -879,7 +879,7 @@ size_t ZDICT_trainFromBuffer_unsafe( U32 const dictListSize = MAX(MAX(DICTLISTSIZE, nbSamples), (U32)(maxDictSize/16)); dictItem* const dictList = (dictItem*)malloc(dictListSize * sizeof(*dictList)); unsigned const selectivity = params.selectivityLevel == 0 ? g_selectivity_default : params.selectivityLevel; - unsigned const minRep = (selectivity > 30) ? 1 : nbSamples >> selectivity; + unsigned const minRep = (selectivity > 30) ? MINRATIO : nbSamples >> selectivity; size_t const targetDictSize = maxDictSize; size_t const samplesBuffSize = ZDICT_totalSampleSize(samplesSizes, nbSamples); size_t dictSize = 0; diff --git a/lib/zstd.h b/lib/zstd.h index 6b9ed463d..cb33b5588 100644 --- a/lib/zstd.h +++ b/lib/zstd.h @@ -79,20 +79,28 @@ ZSTDLIB_API size_t ZSTD_compress( void* dst, size_t dstCapacity, int compressionLevel); /*! ZSTD_getDecompressedSize() : -* @return : decompressed size if known, 0 otherwise. -* note 1 : decompressed size could be wrong or intentionally modified ! -* Always ensure result fits within application's authorized limits ! -* Each application can set its own limit, depending on local restrictions. -* For extended interoperability, it is recommended to support at least 8 MB. -* note 2 : when `0`, if precise failure cause is needed, use ZSTD_getFrameParams() to know more. -* note 3 : when `0`, and if no external guarantee about maximum possible decompressed size, -* it's necessary to use "streaming mode" to decompress data. */ +* @return : decompressed size as a 64-bits value _if known_, 0 otherwise. +* note 1 : decompressed size can be very large (64-bits value), +* potentially larger than what local system can handle as a single memory segment. +* In which case, it's necessary to use streaming mode to decompress data. +* note 2 : decompressed size is an optional field, that may not be present. +* When `return==0`, consider data to decompress could have any size. +* In which case, it's necessary to use streaming mode to decompress data, +* or rely on application's implied limits. +* (For example, it may know that its own data is necessarily cut into blocks <= 16 KB). +* note 3 : decompressed size could be wrong or intentionally modified ! +* Always ensure result fits within application's authorized limits ! +* Each application can have its own set of conditions. +* If the intention is to decompress public data compressed by zstd command line utility, +* it is recommended to support at least 8 MB for extended compatibility. +* note 4 : when `return==0`, if precise failure cause is needed, use ZSTD_getFrameParams() to know more. */ unsigned long long ZSTD_getDecompressedSize(const void* src, size_t srcSize); /*! ZSTD_decompress() : `compressedSize` : must be the _exact_ size of compressed input, otherwise decompression will fail. `dstCapacity` must be equal or larger than originalSize (see ZSTD_getDecompressedSize() ). - If maximum possible content size is unknown, use streaming mode to decompress data. + If originalSize is unknown, and if there is no implied application-specific limitations, + it's necessary to use streaming mode to decompress data. @return : the number of bytes decompressed into `dst` (<= `dstCapacity`), or an errorCode if it fails (which can be tested using ZSTD_isError()) */ ZSTDLIB_API size_t ZSTD_decompress( void* dst, size_t dstCapacity,