From b1c7c0af70d743f237d6d8aafdf07a8c20763069 Mon Sep 17 00:00:00 2001 From: chengke <404835780@qq.com> Date: Thu, 14 May 2026 22:39:54 +0800 Subject: [PATCH] docs: add performance benchmark section to README --- README.md | 16 + docs/agentic-rag-audit-20260513.md | 353 ---------------------- docs/assets/benchmark-performance.png | Bin 0 -> 1210122 bytes docs/assets/step-1-parse-build-memory.png | Bin 1160564 -> 831136 bytes docs/assets/step-2-agentic-retrieval.png | Bin 1097486 -> 935150 bytes 5 files changed, 16 insertions(+), 353 deletions(-) delete mode 100644 docs/agentic-rag-audit-20260513.md create mode 100644 docs/assets/benchmark-performance.png diff --git a/README.md b/README.md index 2b25fded4..7d3a27dab 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,22 @@ Agents retrieve by navigating memory instead of depending on a single flat vecto - **Navigate**: Walk section trees and graph links to drill into the most relevant document regions. - **Cite Evidence**: Return traceable results with source document, section, chunk, and linked image or table assets. +## Performance Benchmark + +Knowhere significantly enhances the efficiency and accuracy of AI agents when dealing with unstructured data. Compared to providing raw documents directly to agents or using generic parsers, Knowhere's navigable memory graph approach achieves higher success rates with fewer resources. + +
+
+
{jjKz?2SYLd;5JT%9&y<*5EVZ*r?+cb_d- zm)94Y&)t^R=-Tv}zr4_V-#U(=Zfv9!B*m2QAALK+wLtP?*cZdVG(SGz38~4Xg z?f+~V6AiVBG_4=kG_J|(If=Zp^^VN(e4y9yCo>kdFbRB6{mAPE5eVX9V`}b%Qfk)z zF-~mUPlLwRfzW@xii_)*&>lh(HChaWPRD9>_;frD2V#stk4p!4?2zE*6kZ1|rTuJ- zz^P&jVxpr82-9r(Hl_He7B4?OZSLEAZc*>n*tbSo^Am7`x!19`Uru}EzaO5``OybM z@^vyL>qCuTiK%txl)~lfpAG)<7Ik`TMecpu5Xa-*1E%$c?l*3bL9U41@0$7T8?5#+ zEd5+b{8$!k$ezu`ZDa@HvXkaGPd~mGnl&|ZE49%?OpPSWz&E6Y=xK-yn@C*8p2b>~ zbmYJYWy4xWuRfcb@o;}FVg ~f=LQ3|v)!_}GHp^Kn+K*s4$Ew33f!ViQ&qG 8%@_^n1c^X~3)?})kkF1jB+Pwu1ZU-Ya29^s!Jl zr|5=X{GK}X>89svPWEYDW7t4bUu V0Nr(@@QOrtu|v)zdS%A9l76-Cbn5@jT`0 z`HAN<(n$%ryhM5Kq{$mfXOE6)-hIQ)2lm(dDEIwcP0bd(x_4yEs3}b!H0+<0=4qdw znALW_){f{fWd4laOS&xl%6N41z4dO~=ib7Oc6ez)U*y|sn(_gt*sI(F3%hzC;Sj~7 zngzEWtXTV7{NR-;%!)+M^RziDg3E59pGejpnsK^wc^bZyzx2z|LCRU3?6jNf(rV3) z+g1Zolp-@=8Ha8iOq5 XFy8Mwre%yq{qW*=$VMP3p5t@Q`%yN?$qc=jxs-njYl*fi2*b?Xd9ym(t{ zpJ;pExF_L)4Ld)7YVe@b!Z8oNX ~lpn@kS2nzPp`h8- z(@hzaz^vbyDWgL3<`WmF_&GQDbs5uM<&iJ=vo;J~kb3oLt^Lk6XFc?>=S2tBZw$Yh z^s!y1b3 |d^_ZCm_nDWLTDciockte6?H+c>%DM& zsH3G;1@rrshRy}&9*y7K`oe&VTaTM}l(dQBO`>(1kr6t5B6{w;E?elAngq4bRJ3Sz z&LsP%yBM}IxVDR}?|_QD7E`*<2(;~gaUJ{d zt1}RCayEw6z;VQ!f|K+OuYh zaPPMb3%IdU`lc6K1e&`y(%zd(TFj0+w`o$; c`g?#P6@W@?#h7$wP5Z9=~4W z7WVgdG8KIkj;aV?FCHtsdErc#`|SNArK ?UEv^#^xo^3Q+K~GmEYt9`m z|1{{s?n`P*(<9ivC6nf_(U&8hKA(R7%b?B7H%m(0UnZ>_{OC7+vUimE9C_!*Va3A* ziASVsvob$i>!NQMI!u{6wPK`lYTM_hiu(TuOC2i%c%uj>SB9l{s3xFhU?6|x>FApO zXA$5Zqgo`@_{Sg L8S(D)h-;?e%xVKx^%d$;h8T_~# )6U<2lN;x0*WG%e?lxld(wbu@l~4GsfnU|*W?b>x_m@7?H8qwx9A`(-OV%RN zEV&E$mp`2Sa`e*t?u!Go7Ik)goW6;8 IjCW6kj=Nr=Ljfl1F+&Q9R%J#;+!Eh=lm`;M5p-%`hf zpMK2AG3JVz^uE$w{`r)ubmR4=GYz#joEnkwsn) qC{A zeO{l`Y1M<3d#Tp1wyBzofeM<8{3E-s6;o2sBnYZ}G11Y;29ZG1Zv-=19~&0~@?|K0 zWX-zO>wwyc(QzfgI6o9=`6H{^0f7Vz`M0m)U{1vA!)xXwwZ6OD@nZL}=A-9lI6n3o zRPz(_ wB(|G}A6BDM&PcAo&igS#qiarTPlJGivnMaqOBKcYN!2JI2=2z47mXvj1P#64mRF z_=Fe=3E32C5(%NT66#6R4jA17whheSs@i|F;7EY#L_VpT5G$3CkgcJXky30zQuXo! zRKi$ZZ=Ts<1OfQRLI(mN6@x?JB0&`o;UQvm5z70&DO~kpEH EwC4anR7B^$V@UKiq8@x>4 zSTGgVg43`*y-}a61x-d&aA*cX8K2kb@RZGY2}k)OE%SVPU`aKi+vnEXJE+f!Z>?Up zsXOIqRMGF<-;S7-)+nd``35adUOV)u-a+1;L&LI@SzYfCyv_TGE4a`0zuvgv;x)_S z B*S-TZpw*8n>;R()wV`nr$@WF;DcU z$+ #O2l z5c2 GMas+Fb7WcDgG5 zp6giQn`ewMOO8DGK6X%(oAirC_hwhLzJsBESDy}k7)T)A7C&u~Yk1(@8RhAAr+n%7 z5iQc@ >!mNd@b6BJ*+8biGE51k6E9J%=G`qjfMjvb@Yj?XNexwLF< z0kc*DeqW4MH0_FbfU~vnkU5@w?!?>A%Uk4(nRx3)e5iXyi^fAOa~D47K$ @s2R zra_^YnoHLy&hC10qE*eCefsNJt5P2GmM%EZsTY6Iy7d!I4A`@d@|*um4y1in-fRW7 zvro4)8+*GqBC`j-j`}>rqs;ow&)DB~Q;*E9uoMN9XBn^Kl%1@7s_BIiV@HzR_#xKi zujtTG{;{ZIr#&1N*sU1^n9oqnd~xIA4)5Prci-idRa;;38%|mHXlu&frVR@I-z1k7 zU};>*e2so0m+Ex~1gqNL`GfY78=#Pp4WB=W?|+n)|1 w^yQ%ARX`7u|cODnA|liU08u0iIp|SikJ)`P0iUNcP`OIiJB?Mp4v$IQbRh zqm4E?so%!;D-bzlSpIOraPvIOoRhqZl&oVI`xot`FK1j^*bn>
zx)Rs3b{ zVd2Kw3|i978tr7CRtucc=~Lbe-2B0GGqq*->gXcMn4}FEjVP-%Elai^Za+Tb`Hlsr zcn>OiB2RS8+7~5!^y*T3nC|I0@7xSmaLILf_ZlD14k>%EeC4~(<@5U-F)gKDfda4g zVtiJaegDYMuTb6Ry6e*#zkecZ@cG;MIAq5yC-?Hyx5!sk?twdU;VCWd-CFg0Tp#MO zHaoooCzL(hW-r* P$2{*5b1@ZU1vKN8%}xx8|BuafQzKfL^& zqr7P9_^AgsUb^!)SE|gYi=W{8T(>>eU0zYzur}mban%$5w%gVQ;jHufZzA3eMGt(? zM$s#o&z-TvdUnR8CS$Hx&vQQ VDJ>!NX*Y`6{`1J2? HI_+3bzi+s8~R+Iipj?dqaBuNTrA zt`)T$+~~x(mASW*4_5TrzwP$N^Bng{UEjO9-JG2{fm2xrde2Qd(f{k@$@il<@uJJ0 zb#In7e1V<(^4<19@cP%*%*+yA6YiO+8*g8l;GNgGX1BP&$!SlWG{I_gMlSvF&<%^# zZMI%0Sn*+qbN6j?5_Hc#Ad^}QuQ@$^ KoCMJZQvhktr`@6?6Ezdc(w?_Jwqm;4vEUCKao;)n&AoM}Vp4=(Sv_zx{^bfj&| z2DI(^)g>b`hHO=Fc(W*N?CUNJyYc14xr6G7^(f;TTjuO}*|z(zzBRvfJAbhqkybai zmAl?2)Yp g0&QFr(FzTV=G^o)4(LKHo+b^Nxo>)}{i&BWpb-K>^5o4@YtR%^C@ zcfz@3;$YV0+ml=N5XM_BaBmf==RALWV&9%#4p*1}82BDw;N#T{+*sJnRyg)W`&e|> z3GW5tKMyQ;(&BGs^ZyJ3W3&Ipz}W2nLD~MZ-Jf^G4^KDQynOD>=F9TR Qc^!6Wi>} 3C 7RF zdr_zC=(R~vl4b3-6%2>1e!l%_tI|N!vrIa=Z0?hl4{IU~>kQ5{g_BAKO{w3Y?QznF zoEPIC9^16@9J+7t
2xQcK zSM%!h4RdP8W`2Fsy!L?!x!Df~G3(WauWvniXp6X4y_33kO^jVxR5pjSQEWO@uVM3) z9jkU;7WCWptjm(8BgeV>bRIiy)cg)jw6u#gzVug5u+gR6lKUK5Rj_jC!PV`0ww%|z z_p`DK()DSQ6 JDvb~yE#=U-Ve|hSwxjTAuyB?{c ze*>iZ2l|ixmz|$KH}wCJ$p256Uil%vC}H|5oBG?q5v|Vm9@c8n`Rx^p`X=;c9jPeo zax8sLh4SNzVTD=UKRC}>+N?_}lNG-(=FiAkFHQJ7lRo5jj3`R7vwrNZQHtx&3uJ?C zzZsbPxIxD+L%+8z-?i-el@^nhrW`v7`I9pz%{jir7+a6nJY$IOcl(P$js1v+kA$Q# zge=?L8$F&OuIQw=oQB&qv<;`)t{c*QZ1UsFv(K{^pOfl)TTdwm?PQI7{FswloX~CZ zg_$GXm8y<2UJ#b;Sv5G;r#rP%+^uwV|IXH%_07{h#3UzlZq}{S_Z15g=f2k;DS7i~ z)3(XSskf%DuER7vlPzw$u-}AlhtCf@)qezRcKz4o!IS$h_sTe!U!!gxO?ld`&+_}p zp<3e`u6%O$${E);`cZAU?q&CfD;Mgv=Ij_ApWb@a@!OluENFN^yu~$U#GKC=JL NL*8xxGpVRPzk#t3)?X99>rjsD<-3~uMeP*M z=Oec_fzd +*SZ_w*sZE`8fc7jloS zlRfwArjN8xEm!NCme}?9spFMjX*;AH#tx0mYH+C|y4^`-U{M9KAl3w!UI%tLp!`YD z|75Nj)8yanas0GLQ&JG!0c!rohEDBRWWB%a*+7Ut-^C$Q<6z5(W!ts2zomDaXnd7- zCH;Ku2RmjLuT3IMJF~S#!i_Q~lz;B04q_0<{C!aVZYX~Tl)p6&woR~U%|vcK&N#~P zoOILvE$&iktvNe-7qd^6?d?ZT4MX|Upur0U{y&P_PiNY31<^yeTZFi{JH0L*xOYYV z2%3e<$Iow_Nw_$275(A%MqN8+9^Ig7H<{JF<)F#8W$fmJ550JQsiFY zc>2uSc}6p@MypoW?w{C5+A008SVCo{3{3gheB9LL+zAvXW7*=O$KpY)9xg_8UvEbB zyv7~&_;<@umbnA9^R6u`iW*J6xSYly9$QdCXuticX-YZwH|VA9Nc7%GhrW-%jrvx* z{n@4p>*F5Ba)QYh*Nz#q3YE1Se=uwP^pOo_Z|SyY-Bje5ul&zzro(pQTT@?T^6oCI zXg=i#^*DCjhTNl%?r!^bs(-!Q_H&8fUmcxub5#jl30uebz`I{7XL_feckqSv^FvXc z;q%8DQ&o5lx#-@^TTfDMpO|#@&dS~kTXY> V};ew_()fLvd|#Y`kY(nylW( zy(QbiA9}Gbtl7}Aqs9Z9&uI_V_O5@}MDL0GYGvskzhs%Os&xS>sCA}JbW}+}t)t+_ zgO%s3;FuX~G{zOw+61cBL-`NOz!9$Yb;Gip`p1s#OB8SF`T7jjU_UqrWI9#5iQt#C zQQ%KBWJCGWq5LTj3tT{`0k0n$)4WDhT$A4m@RA(KMfB<$aarxLFZ1r*tdkP=kH_5q zdNX23)W3{T((p$W7(6m8A-gp4w^3UEDSOSh$~MTzMklsfw9vpo(|yJ((-Nx)XC>jocJJYFf`uo9-qp-MrxbxUmxmFXQ%} z*^6>xj~}@6W;y&Db@s)&xwHHC^$2E=-fpsXEQY%6-!;6P{pj#X&TqG`N>Xb*Pby6A zJ_W-&*mL^RwY|<`6K0J$q?>XoyyKp$V$G<+?<+4;9;8FphxtDhzn}PU@YqhnPZlnl z>b;PxJvw6KvJH56x6zM&J3r{R58N+zb|0Cter&xq^R~^VzN@{uPru*W9$!9tAZ*8h zZflAkx4X5EbOgJi_3EJ;b73z(-k(2x2fB}^f%m{o)S@LfCm~DFF=6;s*MwKO>BE*D zpL(X=7*UN=TNWN31Upf9eDkxthm-F~4kt8dy &pT4LzyN)n^#LNTsote-M)Rj zw8IZ)e!50d)pOgwGgjAPwYhvbhF`k!Y{U56-uCRPO}~lK)TgG!Mk6M_;1;jjD@vLZ zb-{VC$;YNf+|unkmmR2$Dk-Re1nYrx@UIJq6b-A^1c`{+^=CcU%WPgw (sv- zAXne#5l|#Tm{{+1flF)PhQ@!kXR`19hZ%=H-c3JY3OqCy39l|LYSc%tbLpuWU2adk z^ilP`g<;6()>G%EEnPI?qs}U?;7{E9D4{F0_msM>K82jEv+qwKeUL}hI|J(|b!0W# zzjodRU-pM9*11B{#5pamW>1`6fAJW~^@2HbQ%;2YJ&qrhL9Oe2%`#=M58ek=Dc@zGzb zhYYVChhHoiLJd;p9bT$=d3qxkDPGi``nBD8)alT!%geeNo;(;;Oc~Y?VedL+QhxWB zh0CHljXBFYW7X_8rFC9(uw{yOVJlnRf`_)VtLhwX_4>CCHr4KmHS?Ny9GF{4En3u@ zAB^pWj&gT6ynJEwrbE3qCR6xjXL=WW(dGEM_1~NMT(WfP=chy6v;E!Y?RLc4pQv=t z+r$!=CVWa9JFnOGP2E?=9~H#@&g+0#d9?2)@^CAz_spA+_rk09J#Wl8I`Y(};uAy9 z?(Jjv+ ^FN=>iBK T{f|^^HJMZMT zd1I`7;&OcRge_jy=#r8&TX;BTul&P@+6#k$hHLK>jlO$0ZNtqq`&PHzRyKSDVg9m; z%ot)+gPiloCL6wO&RkNm`Gti4>UEmnqHcIWlTh|m!Qe4xCA+i2J2x!aHZ1LNGUiD! z>T}e3^X=T`nX4y>4k^Xcr<}yKUODrc&N8BIj#jm +YTa?#;_ zw3U?J<}d7q-I4DGbZanVPSVcaIWNkSU>$0_eM ar zzcS#c{w;EytWZ|KKj=8L=Zc_cOU?zFMA~|wiTl1!%;hfE*898S8idC*WQ={Py)l0& z=2G*0t7w}x&%U?N6L)PxMceBW4;UlYdsV3)eq8VU_56jvF9d!e@C$)o2>e3e7XrT! z_=UhP1b!j#3xQt<{6gRt0>2RWg}^Taej)G+fnNyxLf{tyzYzF^z%K-TA@B= eF5cq|_|4#_KQ$ UuEF5*}u)y$v^6ARsc &u0_* zPJ1)#`25lCRhCSQXU~Ratx}5Kv`&bQ9zOS*e9qlH4*Sr1ZDq%N^!yaV~XY&_i*vLsFo})W?kyD;7`HE3!W}UT@zpQ)e!J_~p{qnD+Ex zHD;ZDwWIcKOE=}RfziwyLs{DnEgtT=dZYcQ#r;r^#hqInTmN!rNmEm2HK%-^q&aro zxtdG%8V7Ccc1@eWde*0%EO*Xs$F{RqZgZ+Hf0KlvKCnsGqXX|&>4_Y*Ay zr-`RUYiugMXZJzT@!Fln?%I#T)%0H)eyxAL{=%vqeFv!4-Wgsa<7(aMrj@%mxZ{_K zZN!7c>8kq0^L22>V`irv&p&rR;rsgSfmGHv3;n!kTHR&6+sp~fo$>6^qi1z~U-EFq zu674-JM*Z$MhzJ?YJ9&Q&+qlc&qLfp-;W;^)iQcwyO>@vF}=t)YD6bSB{qCD&($_* z^!LPW6JTAUqZ03q*4OT &mfNC?% zD8;ytBHNm$GHt?Z+3_!943i1B;G-WQS~PC~mrq@Nc D0#cnpM1Mn&8@#xK~`fZpQJLw7Mw_4eZutvu9gwzk0`J z3^jcrCF8gCFm%(sN{FJW?hN4#*hSp 1(WvC5Z zufVhI^OG~^ohxn$M~!uiSeEke(tUKh=_k^QSh1|4gW*wISr5mE5w;nlyR5!Av6B!n z>fD66T`n=+L4}F#8NEbn`Q^K y8 zBP}WMDLK?hjp`NHI>4qK+hk_0eR@lZ`FuKO>gn6FyYG6FiciWMX5J>AXN%^HI+hIS zvBjNo)-F4GuhCu)mEL6)iEWzxaFj!ykgh1uwVLiI!Spa+TLbO2idni3?f1`@_2Nw$ z%N@p@Tr+xH?W9Te5fa@Je{|QzZ90xD?)R;QF?Ox~JS@If=OO9=O_qtYv8~HZ1@ie@ z=`{Pmezh0V53n~kVhp&I$|~sUzWkoNx+42aaG>V ^tfZ{m(E!OKGgnfq3xySOmC4Z3yj{(em1TaY;x$v@^xDj z*B7r!Su#VeUz|bKe^|2CFd9K3eQa~Qkor6880%20c{v*rhi@uhF<3S9bJDpj%XVgW zSUP%>T3kal@fCOPj_D01OC{NTI3I=I&aV}OKVt7MGM;Vu@n!85aYJ5++YpY*)96JD zn9;5|ZC4nRyEe!1)^6>t%I$l7b*4GyRj0vI;-eB9v>}q4SQ_sfaC3v<+P(8-v%1+_ znKLlFGaH!W;}7Q5Pb`cV*2TPfnKtL UUr=8$tcgE2d>O_f$Me|o3 z9lPMw@!=Mzbz*aU$1$qa >x80(9 z= 05rd_@V9L)+z5bg=-5q8x9xVp8wEmWWTfyU7eYDDV2xr zzjE||^21|&GbiXIbsD9$&3?-8bhtWuvjv; E&A%KiQ`85>+L)>R8;;&|0?6`POoTj!i?bya&4dVlaJgOFVr3Dv#>?RfkkIh zbLJ-(4=jA2T+u{qTpEvyIyt%diG*{wtj04rZCBJjx-6^h(nD^uIKF5}*QbNq!v~wY z&*y*Ugf^W?Q{2qokag*eIl5L =REyt>|)gv!a!)aq|m;>^#jR-c9*b z` unzN~3kZ^%5G2K?#oLgc0=(wC}b%X_q))I-=Jw@bVIQ)`+}EQqO- zuNmLNnzaadsNvqJanYt1JA3cLT2i^#uJ_W%r!Qz5SGeSH yTli3unNl zE{b=Z?U+#12Q{Vct?P4k*IRS4)yJoOvH5FDhGp*ClJ<7fhNw%iYge6FV(WjT Xj-dgcy%p+4b zL;3E}_9oIDnxciPnO#N+(JfJe7Lzs&^jMBAvLp5@uUk5px4BjgnweTUWYEWRhm$@_ zse@`Y%r7xd9M$ra?Rs9{` @Xdv=09iZ+GfjRI@Xe#I5A(0U>vP4o#|@3G*%U(6~U#dC5ZQQ3~d;`@n2 zaZ)8om^{dXpvzp5S({9r*-b-}rBI=u&xjdZ2*gpOCY0EqIH;R5K4W5Cu-- ;E;1naF*7d@_2Y!<8!w3H~Wtr`4DTdu}cVZiLm z?p)UHAGoFvg$C8hIt}fil<7?lL3vxoY-t#)tHkZw5L3o7mA4Ut%y9QsxDHXXS}db8 zX5A`;2CFLdsTD)2mCl)n#4ztD8WbklVnwReKxMo11D< kk&%>^s-iJ*9;Z1IS01>h;}7HHvk^1qy}LUa6EAs#YLTK~kj399OtX Q|^Iwssy;Ghhz~|d~5VpqU)UIC@SYe&Z g_yF40qG$WjMs6-Ad{hHI+sl}2T@ciS~iKnwV3XXtF-A< zvNbOqNm(<_g<4P56gm9k&QI&M?l+E0{LYeMvrd8p 5z z0RZ?XKa2keikU$9$6EduE&2diBjNbX=HOnGF>~@yLRos4{0HX$pTu 1*jxj!qj*cE*96G$QxjCP22X5XH*J-b($@<~LiV;DE~e**ULf3xz>z#aS}9KyHc{9EN) _?FZEM^gUTi{C$R z`QJ*gPuRRu{y*&M-`wi%zGw5u(POJC&FTAhw`~iE6GU8e?(oqqa YhC-;UxxS zZwKJ7Jg+?Rlmwp2YpEgI7_Z1yo=Ga6UDZUblcw%*0V43Pl<~XC)%!oeGObVyoK3Sh zXS9pN*}#jf+>8pu=Obiu&OuxzK1GsV+E>l@l@ou+o}CA47rlIKHL8Wn9onzR1;FqE zqReRRIgCP}*i@3bCSFflOnH*M`1a{UCcl_D4?y=|j3@VCJ^|s|v)2zAyX`Hif`8QO zXuM0Sx~I%i%>4BLIRyh-eZ(W d%DfFUsXLN QE3bOd?X{kOF zEni=Q$Y-ipz1|{Jj*Vlq4^^KbFde$&hP}>62jPY=q)SlFcFjkCWQ{Xaf9-*^D577` z-+#$A5!Kq2R5M$Joyk@@RWD9TuaSpX7Qy-G?U(k;ztS8_IkQ#RrW@$kqEFFe_ccxp z`oviI3{13n9X^}Zdxy#o0g#&cijq I 6){n$ pDW{by6!lYh$h8U@8*);oLAKEwv_!9z13`m1*HI)%A 5_O5v=uhp3s2r0zmAxSL~6$`exZ-;b88l`7o27=fs% zE)}L&nq})dIvg4H;uBsWQ>(m-M(UtxPuMk+h&^DoRtf8X`u-?t&p7OuvcX{&2St{B z9HfMEoIY@CLz%@qF6MS(D?U~ZHf&H~t8nu8Tw-DPO&{@ciY;pEA*D~wv^H+pK7-9{ zswlKnRS~|%|7GiF%u%mWNM*$+O-jKFL8{3{WfcT>gK{Nck~T+i_?76Y@D#vSzxaY$ zqExg0kyr)?klcPzUk*@3pnap2BQSh7RnBYEBFrjTZL}5Ain*=gUtY%MG`hjkPpBet zNWJ|sXI8xD8S>9aHW3|!$`u|FQCgm%+(t I>$ptQbOJS_Cc&J&|pqV20V-U@i&5 zkYY(sA6ps5)9|2)vSD0?phgBw{sr$Nb*qLWd)rXrH1?O}RkIDzjamjhHpw<;-0BC? z 7jOs@vDVI-&(D>DUZL4jQ!HwKkW$_SlxUM{EI zDh|zVB_>`+r&ZzMuBrx-n2V|