From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 9E1B3A04B3; Tue, 28 Jan 2020 12:05:49 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id DDA1A1C22A; Tue, 28 Jan 2020 12:05:47 +0100 (CET) Received: from smtp2.iitb.ac.in (smtp7.iitb.ac.in [103.21.125.62]) by dpdk.org (Postfix) with ESMTP id A0EEE1BFEC for ; Tue, 28 Jan 2020 03:38:49 +0100 (CET) Received: from ldns4.iitb.ac.in (ldns4.iitb.ac.in [10.200.12.4]) by smtp2.iitb.ac.in (Postfix) with SMTP id 1B9B2104D0B6 for ; Tue, 28 Jan 2020 08:08:48 +0530 (IST) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.iitb.ac.in 1B9B2104D0B6 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iitb.ac.in; s=mail; t=1580179128; bh=oOaiPcZgS70eIvedmJHVPchkaYOK6Vvdqk804kotXq8=; h=From:To:Cc:Subject:Date:From; b=A6BQAz5Smog5HykS856PtbpGPotJGqc3iDc8+vlJpGADyNZfY6XyIXtBBYxY8DtYg pd7gUJNYpPK2FP8Gy7kfDGV9ymy6PV0F/pokk8GRnaN4trMQKGAYY+oHEViO6GJOoG ms4tJMvvwOQqcu7+LRVwFkAp+k30FEQAir1Vi+g4= Received: (qmail 3505 invoked by uid 510); 28 Jan 2020 08:08:48 +0530 X-Qmail-Scanner-Diagnostics: from 10.200.25.25 by ldns4 (envelope-from , uid 501) with qmail-scanner-2.11 spamassassin: 3.4.1. mhr: 1.0. {clamdscan: 0.100.0/25708} Clear:RC:1(10.200.25.25):SA:0(5.0/7.0):. Processed in 8.314566 secs; 28 Jan 2020 08:08:48 +0530 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on ldns4.iitb.ac.in X-Spam-Level: **** X-Spam-Status: No, score=5.0 required=7.0 tests=BAYES_99, BAYES_999, IITB_ORIG, NORMAL_HTTP_TO_IP,NUMERIC_HTTP_ADDR,PROPER_IITB_MSGID autolearn=disabled version=3.4.1 X-Spam-Pyzor: Reported 0 times. X-Envelope-From: prateekag@cse.iitb.ac.in X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received: from unknown (HELO ldns4.iitb.ac.in) (10.200.25.25) by ldns2.iitb.ac.in with SMTP; 28 Jan 2020 08:08:39 +0530 Received: from smtp-auth.iitb.ac.in (smtpauth2.iitb.ac.in [10.200.8.2]) by ldns4.iitb.ac.in (Postfix) with ESMTP id 4F010341A5B; Tue, 28 Jan 2020 08:08:39 +0530 (IST) Received: from prateek.domain.name (unknown [10.4.64.8]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: 193050006@iitb.ac.in) by smtp-auth.iitb.ac.in (Postfix) with ESMTPSA id 32CFA30BE06; Tue, 28 Jan 2020 08:08:39 +0530 (IST) From: prateekag@cse.iitb.ac.in To: dev@dpdk.org Cc: PRATEEK AGARWAL Date: Tue, 28 Jan 2020 08:08:33 +0530 Message-Id: <20200128023833.11762-1-prateekag@cse.iitb.ac.in> X-Mailer: git-send-email 2.17.1 X-Mailman-Approved-At: Tue, 28 Jan 2020 12:05:46 +0100 Subject: [dpdk-dev] [PATCH] Documentation errata:RCU_lib.rst and Ring fig 6.10 corrected X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: PRATEEK AGARWAL --- .../prog_guide/img/ring-mp-enqueue3.png | Bin 0 -> 52346 bytes .../prog_guide/img/ring-mp-enqueue3.svg | 785 ------------------ doc/guides/prog_guide/rcu_lib.rst | 2 +- 3 files changed, 1 insertion(+), 786 deletions(-) create mode 100644 doc/guides/prog_guide/img/ring-mp-enqueue3.png delete mode 100644 doc/guides/prog_guide/img/ring-mp-enqueue3.svg diff --git a/doc/guides/prog_guide/img/ring-mp-enqueue3.png b/doc/guides/prog_guide/img/ring-mp-enqueue3.png new file mode 100644 index 0000000000000000000000000000000000000000..757626b7881a07cf63ca7dbb2335a40da4636afc GIT binary patch literal 52346 zcmb??2{=^k-~W`Nvb8HhsYqF~@03VFw(N#v-Pob_QV>gGrXb z7~3$6G2?$!Pd(4`yWaQxzt{ioTrTFEbD#UWe7?(l?$5lqr>V+#g!Kpr1Y%UXt*iqA z(P2R#+K59mz?lG>b4kFT1GY*UN+3{C1pSWXLE!T~PaV}8pnSx+dEmo&tJ^vnAdnw7 z2=wSF2(%5HdNcJIt~P4aZ9SwmIW?U-Mg!IYj<}S_;+b(DLy{l#>Pfj zS^3zpV?I7U)z#J6+1dK~`dnOG*ji zBaoW1lAiAfnhf&KN_li$!_&f#?1&e$JhE$YJ)Jr%f6J8ar~9;G0VWYRG#d9P$5nV(yd*t|$HN zD~S%IC^XjTd)IW2^g{B@QiTJJmY9GG8pTo^o3jdPTBN}Zgsj*d@z5GsvaZ8U)An_! z=aHda1mr^V&>Uw^X;}8QRdK4>N#L)IXJm#)nU6AU)HMtldDB=10%Fi&Fyhb}zAR z2NfdKOPr%;zkk~O<}iG+?CP}kE`8n`v*vnBz8URQtB)G=&Qcij=VXs#ELr&~kU?IJ z1laM{X3{Y&GQ}31V|vLEwB_twA=XB=NQiU|Q-}jCNbB<9QSr{f&m#IS@Wu8+*rTC2 zr9%y=p>+j3ZzngOSY%S(U*9agf_2&6NVP1asu*>a$;;gzs1U=SVZE;X*1OY(PuF%p z05@7gOH7MJtbAuTD;)Zq#5v|2BEg52F3BI5ga{dmfPA^fk%sK);vb{AVEnxg^^dtm|D}Dmp(spDxs)ocj}Vq@0jPK2gHqAy`215+^N_6 zXL76s^+=Zrmh9KRo;9tRqKC6a5`xi)l@MzaKq&_!x?nMyM?5+iH)>bcg_;PDKB((Sliu2hJ=1c9k1ln~_L1!>qznXs?n1aCrvRkY;?c^A_I z>Ym4Rp|xh?W&CWz6|8XuGDaH=!^Q^LDW+5VW^Z1*I4TOfP$ zq`Bb3unmc9&Md7%nJqW6wVra8N~dqk-NIZ)U}1+gQp2L4Vp-Fk) zC+id*lTxU_Gq@VUAvR{2F%ThBz$qNn_rF9pf3dF5nLCxmBi=<@_A=pq_i!_!?S7k6 zS|B(%ZDM~xStV9{0TU~7Pf+(-^_S82PVVpz*c1_*t6rJI5h(KdRR@ZNVe;)clXlfI z9uxjg9`QWeHQAH1+zHWwuS}&WVLo>n7ymvv{MY3Ed6>w%1x?qkwn(tt;pNYngR^Rim<^mmFA`|dhJXv2;T74LK1kjpvtNCO)g zy%s2!?d?FHWTQ3RPoCVi9#oP5eQyxD9ysTU%&XVldG2jc&6*iveLB1yI>XZJ8@ZSb zYg_oTnzeHB%rg-AE9^Ni^zJ>G=CARE zzI609U8Keh@dwSUhI`TVOA+BDuGy@&*F%!aGg^5j6BOpX+q&|>TEo}Iq9dUARLVqL z;p7(86e}SeT(`aK!f@dv<7@!rSfG<1N3HZ)%IPrG7nO~4D{--ir!6vuLM8}i7nx?Z z80Tc8;VcL{!(JLxnJ`bG%S@=&pNX4y%l1(aUXKbRIgi#KcS(DQk*z9)5ku%c>Pd^R zZ?eTa65%h&o76hldC@Q;c}$yYRqvd|753qjC=O%kwA0IRPr^G$bu6g|kfuNTfy&=OQ<|SbT=^It7A|VZDN~2Km=gYrJxA zv0aJ70FZ0n_svK$mVl2=@HtS;gHcvYYKY8#a6npUwwY(yhF*rV%v zvZ0Xr9yBhB=RV%cS-Qx_?r&)tBG0(*24LB*@LZP6?ES>9bsk)Ef*zR{Npu9tk{H|lobH=AuWe~Neh-lEaUR_% zgL+GW)KNdvDym0fj>p8h>6#}2W>O#P6`5=D%y;M1eIllCI^dz9P3VVL!ZkrE5!f{) z*HD|JOA5lA_HXs`e>0>uPer9_B#-EOjqsRQ-5Y^5zawP%z1O|M+4;5PjaBoNQYyvijI`#E z-?Tb3)5lR&Aeq`CQ)Dq7&prfZ8}n{;GNkOG+!@zUw`Zs6~SrP*6+6}pd(sWDy>&F`3$jIKHCM1E;3f)xzwM9$^r}k^wLYm>On<@h@SWM!uqxN zia2AR==?6Im@Lx4uLb|`aE{FT^4bzX`YiVFsC3cS_tCKC7{V=c-dMPPdD$l4)c548 zqlN9};DwfptAj>QmC}v2F2-u^0vIa{EV*!Umg2t=>VyO06W?j16G+}bm49YKeo%fG^lb%5s~Sa zjH|z=QkGMmFWOi(A8_6Kr}xy?(`wAd@@M~~Zl;3ZV|!7f3^f+fEan!FQH)D5=T$tF)o9SZ)761CP}&y*(;hGd;_eOk&vp&HqZj*6brJ zQXttdB3a%8+nA*hyOy04;Sb{%m8}cROXe1z%_@2mxCsW#n?M-nJXe=_O-wG@T!w5~ zYla^qDN7lit@PSvSsr}Cj*c81&IO{^z{#-lXB+s#k)j{%d$PpK*j$@auh?5AVe$!9 znICQa7n1|EE|9fajA6|w1U#p#vB2yS^`VUCOT(8kspmp%t&I2T`Gdw$OXz~0ryDM= z#?pQdjiJMj1A&|{Fw%MxZ|T3FB-e%tFQ3$Uxm!@yM~5Hgq6~jGix#K!KIlneR?1GP)2`5G~arS+YG+_284SLYchFJOdw)7-Ssl%f9wBJg3v*))>_s9p z?CPaV1i_ie5Zlqywo@i3(O)yrCrZ?@d$(Q|sleYIDP;Jii8G*y$l)}|gbl}LrrW|G z??Q$oEMmlx^X#mTrnnJJt&!?LkdwjA_-BP0qJ%M_J*LBNT5QZx^h1C_OhES@m_<{4 z=s~_$p3G(Ze>(BMSS9}Z z)<>e%4^Pl3xs9cMRb>HI^?bZ{i(eHu!6O8iK_J6!O%2lBwYlT_K#!g&E45Mkt@ndK zVIv1=*XQasFf-MBUJAyBHC?2;K{z;(`x%IF{gGjNcD zr%v^BjweN8(&63&6kOh!5;2VlEZPrR@wN1@6Ht#hA*VuM7Tg_YZv|I!dQtwO54qMiIv#Ovy@NNRJa`$W*o%w-j1jBJTKOF z&UN(bVy+_jrUwUTC5oXk$1FZ&mpn*qs)B{Qung)LN$sMRxpJSR*%uO*>bJTh&Kcsn zUQ7%6hR8+`xU0PS2kdl-!-;Q++@n60-omCN$^;Vyp49A@6BH=3hFzcu_KN0qcNf(* z<%7jrkwy|L%)T7EJ3PA&bl&`JX=s&?X&orz#TVk))zaJJx)_GAjAmyTzg+OuU*1QvGUuh^ z++b|$Vl-3j2KLF4lJY1k39KKydt%~hYV737+%rZ{L-I_mGbOv~yOVEDXsz?E1{lHe zBKvh#Xy;C@g26dGJI}ie$(sYEOo8sEiavl%9yZB>OosD$Ixo9fuQ?bL;%PnPMNKcp z4kp`^d(Wy&Tj?6?^hupNbMM@p6<>c)LkTLrwPYg_HLgu~@GWSEVF2jvzq%_7%N>$cMiv8|P$8jjSB78sl*WC~*rf)t}PV78Ugmt7A*Oc0y$ zQAn!ixRL7OU)M%8!?JKE(>b#Jf2LLA-KPQ0{UIgwD!X!Y2l?{8snWl z$TqAa^$hU3Xe}1O2d%AzhD^coWpF#L`Rxm9M`|t#GlP7M*`_MIsq4OYDl`z#G@=3) zw1TZF5#J5hhaQ}8|B80p2RhoaV@#~|3*RnH8sNB#L76eH2-F5Wlfqu(WC;#U9Go=yGWBj0R9W%q9a0MRf8|4+6U8L{DQg{l%T1Pc4 z2qA<^o6IJy2#H>W&ED__fv#&~9m-ZdW4z>rv1thC>VuG$_Ua8RLy3S4*4{QI&|s2< zZr{FICNYzBZFO$VQk3TuM@IJ|-=N;7c#MB4qA;+BJV=I@><(UCr(l6TU%>63F_xm#Mcn4d`w z&)rev!r@4t5BO=b&j~{IEZ3I;(z0)LDFR1fK-ZhVAQ3c0_|UtqU9~6YM;>yTQrVok zc5N{2R5a-Z<|%@uc+@F`TW>dSc98VMz6tsNCWOVBfSyKNDg9ZWI_;s4*6)GCu+I9> z$F5zJbyj`h;_U}42Nrwwj_I8dhyLq*z%h0nTk06q$W->CcY#6Ii)^sre_V4KkyoFx@F6L*9rW8kZ7CX3n!J-Qp;09VKp=yTf@T?W z9jUsV%_R0S-Rj$Tc?FA+SSg@%ax4W%+cXo^gd|c*js-huY8PV0*Y5;@KtlbK@4kjE ziudPS^aH43)@q|mb81l?gtV;3+pEQ@W8A#rq| z21|P+FGg!8?Nf!90@utwklQG)Oox1tLaNy#7S9=W5C}mp7)Z$CnJb}RIUP921OipO zb(VKX&2RJRYnD9pdL2klD=oYn@nfV|Z&?;P5C}GXadq{1=F~Hii1+=lIy&Ign4ai$ zZ1Y7Ppwz4&F3&|=l%7vSF?RvY!6r+%v|Q@=vsjEYpkj?Dd}BxgNQ0mh={C3$NtAnU z#MjHSdE<}?4LZ=H)DW;*>KEL2n))FSC|}HX*pzs*=G)dB*M86=$7k-lJ*)mMS-@Lr zR~lPPM9n8a+I>2nqde{nBp@Bs#H74#%&7WW!6@tF`K2l`stPyqFG|PX6L$=Q)|dfL000* z7ZZ=5vGVcJhbf&l-#_wTC)qsA1L8Bqt(xBjTk>JTZz&p2;aM83xu!_ zG255MH7b2lk~lY=GsWYv*KPYtM!(VQ4aABxK?s^iX3`6?Niom2LszX+^yAWk9L-o4)9jhyz@Srz`KB%v#7*hF$Jw5m zJ!w~v5W#Kktc8f+Pa1d@8=e&EHC?lHz4z+fY_Mmn+z|pNzDWO}9(SuVdP z(Y311=~ZH+bc_QUEFe;IS8y}>nx}j>)_o3j5CJ*dZB+vgv{O0k3fFTEgS@@IDPd)G z+A-oXiv_$-Jd*k(iPHd3tNytgJ6+jLN5LZ{WU*`RA6>r<6{Ey3_F$2Bp9vHBD)geQ zUrlod5STMm1tFudeV2P?s~xoj+q4OCX*<4dunwoqp1R}aiG)t`A<7H8iUZB$zOmyI zHd)3jI4*U_`?G9@xh;Y?4Rn6Oi^{Xr6WnorMk({5{GoT7$LpxUUr>0Qpa?o#IhlYuUxEXMJrR_JDIG^-m5kSzN4WRcj3A(Eu&{w{gZ@~09; z*~pfvFFNdYt+XtTae{rpRj0r1q)j=*Ct>n3Wmz&aJs8m!2DV(lebTqjeV+PIog5uO zlzEj$l%ju;1mR-9|xXvX6g6N*Donm?H4;S1^)o&6f-D zH$ByT!_pnha@F~U9@}&m8{!cD{ILDz0p|Q~2_(VZir_j*GyG;oqYGw5>ANC3;kE)? zUN*bSS(!5*0vg$_)J|5UxaAc@#tCLNPR-zC3You#L#-pl#E*0qsTUQFg6+J~Jq4|eL;?CQDYFB=!B;Ty$3j*&vmvDJvXTZB%v<#ieafxYA7{;WC zQ+fQogz(uYkqNYs$~JVE!DMwzx=HVdLO_iy;Ndef0xSjPmfq4_NcgvG@x&`Vnt@SS z>=I%QF~gb^f?gstpwq@jo_!Q1*IpRxl#S_}OkKL^+&FP|x;g)Ifag&?{vL+`^)Qrvj!3Fe z;P>n#pHkMmvbnJ298`DL*`;tyeNg@W`x^9S$u0B}eqGv{0vQ=3ST4Cs$?@3NDl7T2 zd#jqMw{mPN3r<`e!(A?1x>=%Lv7=KafJ~2Z0E^gwb4?%@;5smG-B0=79&YEBg3H;j zGkTMA>0aDCCC0EP@YJ^3V{g!B%Gli51Mc1j&CSY7#B0qPo9Vngr3;yh951JPZ`f(G zK@>lZg|1ttA@9jW@f&>dDD<`4jeAx%p1XlTI1Pd?VvF8ieUlJwqM*rWY$Wsm_M%iV zd+LD)7q3+E!r9^N$J-J)PmA$43F;MFd*ZeH5^v^lgJ#yfUhA78dBIubL-AkxyxRu{ z@Ff5?^h;&j3YgFli_PM__{Dgid%L@X_tJ{*7h2cZaZ{Lkw?d*ElbJP3ce)hALyA^&8T}K z%M)d)pP`JFq378ULCcHQKMfPq$2~A}$Rdhc5nHl}lhp<@{1u=~jC=v5>ZiAt?HKQu ziu^;eWTnkRo{n*e_y!jjI^skVg4Wz+Fx2k>?n=63UsjBM(e&WFaZbPdQ~D{5;>49c zmB4DXl4|*ldKWVTb%d3$k`EY@b>S2HH``otn5Ao2zS<`$y8sizGPlB&XYj?F^igi} zdjVe#&IW{fH5OYw_zaH{EZMS|-T8boqs}F@Hcia1AJI@N?W9o5oXH8wR*>+Z^_zK} ze6f3N7tORddMbJJacz0B$8CMJ93gQHzG45N4|7YUwvc0AM3_AnWe!P2u<^2G2D!G=F#jld-#CMK0fxUh@?-IZ2TvGK1?#!A?vt6tzKRjBrAOs^D5jpcc?v3 z__|A_2-yLP_x7hid=1WB7aOlT#-7*s5>B^NmV;L%POi`C*9+~5RIV|!QHf$&G}ezF z10?$7fAV2s#eD@aCzgfpSK*|dp$PiorSn;q`mZS_7SBIe_ItlTz+K0|cfp3>x3{rN zs&@`czo=s$?brykd;AYcOmd-Eq5CdbA_&|O6dw<9(m!Y%NHin(62$oZ{rDvp~ zC3|e7%xD9UrE6wK45(%6uaR!IOd5kqcjB^`hhco;9<+HF+&RmuoXqSaJ@|$RbOu_^ zPD6AU&dSZ^;+@?k;n{ZWW1Z`*5cCz41VKC~HK~m+BqV)gOQO>Y@(}_P#yg`gdrr6+ zxN5Dh{{e{vINOTFF%Sn$GPYG{@sLtjcw-;n3z0T%J~c$UV6t0`7-bckvgylC@;d@1 z!8d+lme$~IA5g1=hUC9;28c;5FqSZDha^L>Trha?HyeD>Hq@^m`WekI|Rd|*_=&&h?-%^b6Mrg@CyuL7RXLL1t z;~O~y-?lzU3v+R!&6sLTgG$9mUwdE!L=7N8ud;gF0%sX#eQEqUs130=P-c&c;Aa&| zai?Lua|uU%kT?Z-=D^Z%`u0C(tpH|KT^hbGWeA8!3vm$d_wU&>yzD_8mUT{rn5y& zSjdk@kHBAQ)7MvT@yM>!ixm({VkI(5sEq3Uk5;*P-a%lMP_A&h)R4^&2k%s@>ug-X z=3rNn@g?=hV9$xK{l%2puc6BfXs!9?vkFxYXhl4N%zxPE74)O`sWiwWw#lv_KX?_L zC0~$yJuI+T#;4wr7qFB)jgABr;q^oM;@+-eX8wCk>9N_6qKSa4*U3hdrs}jn;&6h` zZh)3j2upesa&M~ROL$ANTA<{B>TtJ(CZcztVIpz+>C3k#c+6ZelBo%?jNuda%AnC{ z59shNnjRby4@ULq3K+_l04(tNS#LGMeNe=oiU6rSQBa@!poiC0Qa!gM^@f}R?4TpU zgejgC`8p==V~<6k|45KACt{^vU*w8_#&em0w*0~znZiw*dRSe_Z{H+G#UV5(`GLKd4~}hW8_OD&1PO(zt&>LFysP80Oij=Igq6XQcj;8ERUw5-kHDn{=j#+2y!1!Wxd_*o*n zxfJi^8!8g>UYGj#U%DG~`a4w>$$6}>df&K2>Fs$Z z3nb+-qqK}Nlyj-{#zv5rc$sz1T%i`+5|irq_XLm~Sae@q7E{H0zwA{qGC~r57(^1e*&|U0^Yw)}!{~mI$5s-%=wytQt#M`$HuMa%El{MVs z6H5F*x@;QoGamuCcbLpq4%%HT5EH~Yhu#g|t4sX;x4L2n;218))Qxo+jaMRl5?-?6`rwNT{|{e z<1wWJuP8(6cu5H1s5+&boz+^|iH|c*W$&haJYdWnvJh>F473Y6%mN0M6@G-hLO#RN zc?Y7hl-vQuT^O(^FG!5U?^&niTbHJpcaC-mM3V3G;ukxbq_8qQPXFCS3NU(<{akmW_IpLXr_Jhdd9GJYho#RvbEY#%=H z-fmmY+d;!=&t&rcs*YcDdTnEOBm9Ca9&qN9`$x`xW`h|)bSL@gyh{Ku8>Do;j0E@> zkVy;Z?cuu&B`;>&;yjY9P)eQFwJ(b650$G`qe^(;oom?6wtKlgMksh@)ia&^qnEKo zaejnRWqa=vp1DhBuTAYm*;fy4)VYBxX!h^+=q&!X*|BL$1hXYme6PMiTix&G+_er^ zwU!NOxI~OO_KbMVuiH+oBfkI@e-K~7dFi#`!bbDcQoWRsP+X9xH*IHZ=gqR(Rk{!$ z_xo6IzNfsO7=zk<^pLejDd`NP9hzE2I}s+{m&#*48sT{S1~KNPkR}4JII>Qzx#ls7 z7`wz0Q%jSZc>r=uWpQr_7QE+3px8Etm2HWo4+%2eUAUDkW;MX?15T#AvHy&=Rk(ew zXi&FVI(6))2=N-;n+@J(PEULK-ci^!65M+Vw^M6oW7IdC^bmZC!?HkSuh8w62K6v^=U~U zlkv(3@k8b1nvT7OK2dOp+G1>)nvQvv4nsP$X6SeZ&5}q%(>J*xRU7BsyLA-Kvb2=S zCrzdmiAXMh7ZjS3{Av~hy20>f<#BbSee>@~s_z|6#8!X% z*{3}wv*Px#Z1wMo6n#aJ3!(y9J#<;{*&Vv>U@%~(-rsCB= z2S6BNv9IEha@E1T8)Y#ZAPW_)@%`$M;`q&88c_G`PbL;wn&N~yY0#syFTCjahC14z zpo+uC=T94EM`lUEY#2DHhnzUf6lH7uT|;||vi_Mv}bZf0gj&Rh1)p+<>mSvSEo9c}aQ#dhdc zND|%BE%U3Lz_lMQy89-*r-;;Yy8Oy z7HHO$0+j)r7WwdSQS$yxF2PeXLv{&Q)Q-2MJO_EbA^i2sunHnm$_4CW|F^L(*Bli%5IoR!65Cuux5em&iLfdn1Z+IsX~PUlClSD2KB>wYtz zPXAcLs?kiq|6@1-zmM~eBvW7{CnzUM{=dQ_-guA8-+K} zOWVy#-Zk?P_~*n0^|5%{xQA!KC?`%cjCa z9~(_z6u<|_MFKumyaKKMUX^Ylf7}-U^mua!&KomnV(fmXfHBQ|3LQTkjj@`tA{&`L z%?!Wsln&7sHaq2gWJ_%i68-Dj;Gv+9erYn=H}Z^s|BQ%}IIevMJHP#|J27&U2MiEK z4jbHDLy(Pk`Fg2S&8IKAy!s1IdxQIfLL6tP8#iUTny35jhM(XsD~U)TfB$ZSQl-GG zu6Py>D5wWNXnphI_aHgtyv#wT^&pZ`s^7iP5rU-4Qdmv_oh;LihC21x;QC}*EWOLK zzixkPR*G`68IqbGtIij146z-#!cLVdMVtA1iaS zkdQcof~UQI_MCk;c47#Gk8giNH8GxmUOTt#$7VB(Xz{yh5V)ZcWllZj+$lIrL*96- zRCOn^q9P%`!kBu!ZLLzm9p|bdWR^%L^~X~^HL$uvGggo%vU~f?w+cBI5Wb|QcC7N|RO7ucdHA zTNHRuKOuyj!*>d@8+TU=qI<*Kd>0?IF#eW3!F<;qZ+k3jAVn##S__6KZ3|CcvSno4J58gg|e_6iQ#xe{1VUq4bc} z)X1h!csTw7Q`-E-rWm%XZR$8d>(O6;>=*4A^cggdBxK293$FN)I=8nLOb$#k|M4q2 zYj`4ysrA}IXeJZb6?UfPNxcEEKm9fiM*Bw~mq36uc;@@3v5Uh!q#k{%<(X5yZM=d7 z|4_aYx`Fa8+ionM9d1~TuAiUX(Jy!{SkN#PRK=t8m*_z9A`u2{zs&{`h$j})7McSb z#uls`1r8N(v@E zv7eKj*Z~*Z2~#4+vGmI`{?=*$r;tbK7EBzNPylm7CM#Z1j$qNd`U z9JC=by{2}%PQSgUQLtM|6j?|*!yM7m?mt*5ogZfmwzF*~75k)k+n_v81-UaE?MsAl z{WeR+Fzf-@=+k1=>$Np`qH?ld?oEG_fP1?k^Dd+Zw4t*P75xTxZ^xdY+rDu2x0e#p zr-vI_)MC2q_2i@SSvy=aLQsQi)?Phls(G=!GXu*+ZDN_HSl4+mYS75;_e51e*0Cdh zjlNiIv^kWwU@{B=_+>r#)mB+?ss=`GBXc5-2iwB+yOK#rU^R-)g(o{8taSS}$Jy$c z{p9>QzTf|?EUE`V8iI>?<%72;QvB{MH{m*_2p>+N+?P+R(M}lb&Rq^O`BVHPa8%Nb zxX1Gl~E+>A!PlkNa z#eMkwIMG^aX{sALn)g@L&lpZ6p2)Y7Iry{g_lx!?`SjEH-1rR{fl(*%-ut#&;lE)q zzC&JkME;|%>fXNJ?=E663A-a3@TXq7N7lW4nO<_DX5$%D(^7;_KT3 zK~0d~oz(v6-@batvdSR)58ZqJZs~vaYn#Be-w!DUxWQW?|M%^YzZ0;<`VR&E0PDZ+ zj^r&FIREY~jdz!H7XI1${ZBTRRAByFGp5_yOY_GC|5IDoTOP{%H*fcr1K48zud($n zu>Z^S#p;#+*DdM4LI00=A7+||s{XHV=NrNJx0ulkj9~nSLk#GE9rC{#=ZpV9n*)O9 z)nqfxp8$lby;HvPum1O6F#mT5GX6(*{r6tKqJZgdz4$*B2jb;#*D~cXDZ~@<7QeH} zzYP2zs|4jSD>~*snyHtg@udD|AnxBG_&@popMpCefKd9gC@I!0XiocI-~m_={UgBs zJH`K-;QJ3P|FstScRYB`n)~_wZW`W>r*}3I|7nDO*gRL~A8VtsArELX%T;gAup4%9FT5)IY2B`UWz-XMbPTLwYqAUO1`4u15#i!c4-SwVK zqd&;-C&zmpdCeoX(BWGV@w*K4q?}k=VftMh!-Qlw>yZj*j;}Zy+A+F6=gndWG8>UX z^9K~Zo&KF;PGhIf92n(6aUGiLYqtIkUX?!Aw65h`|0-)x!Eab3EFC=%I*>-ckKs2g zM6Za}*3U+*B%Q1HU6=abUy?k!u%bn*O6M8XdQA6j(?bL*#(KPUOqLn+NKb9~vQM>G z>=+H`Te;AS;E|R0XwP$Q%m8O>g8sx*^akC8F+jXAB+0FhnE?NkfBkS`rR`fGyBrS) z^erI}_pCI*vx#gE@N|Zy*%A~OV4?mv;DZjUkGbA(5z~Vw93T*<^(KN5BOSZ3b=VK! z;ds4{2*!R3<4`b|+6Vd;FT`1(U?Nb4mK!di0vzBAvb1F3*a6knP=JmE3QaD_9B-*U zh8eR-BTj}C0R+IBxAnE$XCevl>R1Ke6p1b18MSmcx4tt3 z88ZV!rqgs6HdmM&Uz-<}v;k{XUILg#nKN2-@d?9|(z{_A-9~^==kCjrYyyWcE`l&< zfEU0_dZe8YK5WZ_E(pLZ&MsU8xLIx{md6jE%Dk|?gESshYabph-m|QpbpZw^6^G?$ zZysj(Hs1s}YP&0Spb^+l+yHAI+9aInytOJ5xeFE<#Lo#mm=h6qRaDYVvlhLFPmrz&qkJ- zJx_iO983FT#;47$q`r@m*AP$CAU4W}%`DO<`o=dB?M_TjZEA~8ImHYqDk1wZxi4{R zG&A)%3p4OUB+IK4*;0_YKA8`cXWKj>+;-MN(G!x5#(s{ID*9c#bc9? zN;2^adZciNaY;$|n-J>WkKlMH<4HnWUjM+25HUiK*{Df1w zgytU~049hRve`4i-+eIWoR=a5W$EO(JMl~$ph7w{eKLC<^B6cLHTiG8Z7F}_v=%$P zGRMG?+?Xa}3iWE8b6CA}&6w7hR*L^7>w&h7uSTi&Z%O?Jxp47p1@s&iRr6F->Wjk$ zDsk^v-lHa#GVC4WUpa%n>lb6c`5JRAG((8=)x}p(4RQsaW}^p3516Y_3Jr833IK@w zAZGrgLsn>Yy|J;c0iUAV50wbWUu?KwSWv8f@ZI=>^HtDV9YcXDR|K?`uN(b}5?A(t z8W^9dQ3sRomQCqi+U{A@m?$9nA*c=F+PT)FE)ILzV)Asj(WQ{W-9snC}`#Qh`^?kIXE!k=^J$#Y#?ajZ=J-u{@IBU>f z&?dJQlf=1Uz4sl0LzaVyvs3xyJXqDh_#`?|g;mpl`}FM2M{Cc@MG$Dx+mV7nTkP}@ zrguIUSDJc*9@(M7aPUzc+&@k}wDj(vn3J!NABwE?c967xj_w!7o6Pj0==$61xv{Fz zJu}5LAZ4_5d7q=f1RlBi*>?Kj-Fy|75lr_XQ|@j-U%hwWeiMVg^O*>89C$?u-*plU<=OU&~=Rt;vPvgyLz%(Ubk z)G+-1qBU{HA-v({Y`_;%a@Z|wb#b8q(m_6+?9d> zwsw+eY7DEqOhgJ~^Z;~_QYmarZ!(`dmOpZpT&ht zYIyJa^0=km@MNWsQ^A__wN%N+8GS<+a^Ri!hrxR$8i>Y(s@BwZ_4FJ)_yyp9Xl zRC+1Fy6zJup!wqvcPA68_R|Y~;||)fY7q|Q-kG*jE#~um1sfc0HUp{A&dHDcAtOO! zxhAR-097mLvGHb^`27!vT*>|YA$Pg(LNg=A2SbSun$Mg_Jm*0L2(;h37WFJSv?7R3 zeb60@_g5jL<`RqT$F7tGb6lp)4ePZJkwGnw8!M8Qf3nnU*f)or#u(PC*oVCC+s4=> z`=oCC&d|MR}CRn2T3|iyn|6v>>PIZmGbvB_jHcWV-Fuo42Dd0D5 zPxNJ{9BH^`q8;p*C+AjR=B(g?%$pmk`j%$%emD?4Xqswt?z6#4G}E1^@@x+&*3nDV zhlf?TR1sF7JzHp=YIW`WICd}ubj@$Ex^8~n?P+)~l;T1n-th3U^4 zq_&A`EuUKIr0Zb~>QrR=>`K998!=OoptN~aS+*#*A?ld zBKGZ(jb-%D&|OOG$zUy;xQp{D_na8hmO~D-$);QxQ|YLK!jmR5@0M}|U}Spd zb#Aqh);+PiU>O|J)*z~<#_7qvAuv3Zv&Nkm4hdeq%o>!VZDi$Kx!_8wrb6UfTcl^i z)JmBm9*puK@q(pbX=~Wy7-~1(%2%K3SsU`MUW|{fk$64oa#E#X&kqWjVfIaphCUts z{8gljjX+AfpXply_v`7MjS5{tPCF#tF{lzRUtV!$y z$aeyh-7OBLzu3Jhuqgm;~cTwi2tOGSS5+{ZHFbiku&pi&%L|I|6S* z{V$K9n~B5S#^l9pz%3d=ilnL15_+>r4_Et@T4i`S>&&ifS>`p3-dDq+_M9UkCNFBLvC}N1=fY&=97iN9u|a$rv=m!Cqh{t&8M&p!c#*5S_>-j%<`nEv5l!$wrPZ=X+_ zj^|J%)Gu8Ub^Kgu+pJ-UUL>cBt;y%Ls9KzDUI4)R%fR8QH;336z<7wfSlh@_tr`@t z6SAB&dMI0~BE4mC!867aj7=*Td{LnG5#k%=;8}ne2$}I7q(0gH%8SkbSdRM3VtF#N zy6UHv*Nq12?ffO8A%sM;rueX-LOs>GSSP9u-g&>1df6g<6n#kPpEa+Q=IjXKDsFJdeR=CtAB))Np_&d zBS_YL)%`N*H>#0~vBr<~f5u`9>X}@f8PWo4vyqQ2ksHCTn;}_fdnvHo6m@JgGe5Cx z4b^_OwC)3PxGIkJlx-GMBz2Z41f%}YKS#SV(ns?nv98>10T-}dpSqQBDdD;5{3QqS zA;CE(I;4hkLEgN++<95Cx6-ja`p=5%ejr>BK=`Ox_SA$rykXBmx$643W}kviD;^}j zXDuZQ;uNE6?qU_-t)Ukf=c<^epqVifu;DR^ETlx2+?QvQ3QnVj8=^v-!_=&O?GeZp ze($Xx5RZ?Ezu;?IgHQ$AoB&5of8P&dQre7zW?J9tbD`uVCRnP6@6me0hqhg=cFmS6 z9<~)gB6MnJYaec!XJ50PuB%BGaOw@pI(Vhwx)j(e&BWDCEdjah)c)*yoLl|%{K&P^ zipfmBD8Wo;PMKf+I#fzA#07bu*7ZN88XBlmCn6-iXfEJV^fN8Di_(6?Gz)D) zZbA6CiG@--llTpiyZBEndI^Hr^-1H1x1*xA-5wij0mYNu-^DHiF8V?~UhTnTqSR!B zr?yC-d7#quw0e$PT$chQ;uIzhX?B2bo^ISs-itP^IMglbQI)NFobjqEw&fuVPV}vx zHUmi-y`9MCgPS2uyzmBb(m zVcQPH4}O8&1@&zkw9+fBv=IGg{zXxn%MXm{fe9$m&}cAYb&p~5X33RXHQJF`(nalc z1xYgv=S`#TH*$=l)P|FCouL3dd&y#*G?u>?&0l`3p04kmX6s=I!JcgXu8}~!qICtx zK^u5iu7W44wH(pK_%1`Z;J)-iR4ycrRx3h)!wHhDF}lvf7gR;UXpzX!&~ZJF?gjmSzi zb7!zQ#fUR^>U)EbnNODp5GAq;9=%eGkso;40^XVwCwuo+vouLB-ISipCu z70FzjlI$6;A6M9TYcC%GuEYVf*rf0(>FH{NX@kO~&-0b+!uY)0^celV;m9Y?k|^=r zY=tZJ$k;8qFWI=fw}nCet!ahYHYLzQ+BO=ZvXqp>99$RY1w%F`A{3E*{%Pv|)-h&E zhhQ1mUk+%lD=@V2)h(Dvaf@7C1LBM0o(?*O55LYy=Ea-mov(n|(U>}CJVOM0A`bl8 z_25Dnl}Yxp3ma}b^etuFDWKXgF7W9suIg*=mG{rkW!vd>7!I7yCONh~-LoLEgTQN^ zawSP>{*33Z*g*vzXn!;)+WzJlCcwA4tUfeifOSsI=(NwMYwgPZh z?|*!0KJMN3>Ei8sE5(=Ba^tDe918-d1}n98picuO;vBKYnJ-0{?e{ty!gn?wRhhlP zWsmHpUH;6lH&2jJz6=DAJ0;51sToA645v5hJ_(2Dx@ez+H^Sb-zu4sg7S`!;Es1dM z=$&bukzQvgu#oAs9xB$Fu=v*2+ewwf5|BdP~_U# zh6G!yz@jKeo(#NH#?tA~m2Gd9C~Txw@zP90SA(5{;P+LidB1d%UiH5OMS#U|Kv-Z} z*j9Fn6L<)I(0IR!iNeG`jF%QsW9w7s$&-NtguVVzKfK`0!avb&@gm@xv+)V4JFzt)SdxjgQ@ymfFN>#yF_)>E$CQ*W>d}w3>@vi#~t9rf8`VrcSchIRm`P zQl%cOm0_tyy!eF9J^DK%C7>$nnZvGSHqf(Co?58dQ73FAW(tc7em%72eS>PFVciSb`2ilKWNs5fB`cfswRNlG zwgt2+h;Pu7VQbdkWh5&}lB#sQUnTps>&FDM{OopoMSn?{4wq%z4$(5gv-fMhh_D78KaK#hbFQ$_ zlhpKQ)*=hZJPv=XbALF(H-}&RYeV(;Q}UFA_Er#uVvn(Sm9;}gD)X^X_U{HV6aSvv zx^YO;WA1A+;?pG{clQ+ME4ip2a{t;5E zDhmd0`r)s~MGi+P;56#gM9Qv84o!Y5{d?V$IBM0yj7AL-z-{|YaJiws_eu~fcahq1MGW+86Z7z2j0qh4Ab4_=OmqAuTog#SsL7(CcJQ17rXit4r)-BCMoZM^s&z+A|1&bx@0V(P~8=%%@qz60+ zy)co>eks%Z<=y2tvPZ8=%8V#t+P+$jrH`4|j`jjYD}#f#BHK+u{uv$`ZKTJA%bmUG|T} zbG(<&EZRzbiumGi<{+wODCSQUh$=@bs@m*wnJGUi-RJv~BXSY@A#Q7PjA!8=;3b&C z8UqDXhlC(uM27i$8DlZs2WNwK^4+nN*x<9jVIbm8y3hkK+By#zZG+sqLc$S?mn#;HzBu3&U*dEA+S1lZG&896^>o%bKnQuL)ZHI7$$hBH4LDO z0ha*C+GA>G*h{Y;d&xuE({HiBO@L%{R0g1Z{JCf|e@K!6&`Q}P^B<3`R;v}RwRH6V zNc8jnr}BT2sM@;=u;lglOzs^apQ1&C5`FyaZD$0nrE$ z2K@U`0HDjcUt#}8=D(ti|0pvldA*^7>Ng<&UDls-xCTn;kG*RD9}ort|I@?&84LR_ zgaiJdR<&{W9RS=v#@i?g{twgZUjvwRH8C1Dr(y<_xwhor>p%HyY{ z{?1ZiKC^s0tv9+h62Z40a6m|nFpm$<>5f}2{pslWX$vE!-W3#c+*rj{-a>I4y;liI zc9!b6P_fXnvaS)FUlZ-|oHn0qo$FVk0G8{cX><1g^NZq0E0^I?^gQJ_eaEpLDmlHZ z&lu;-5Tf)hzY7e_jCrsdHo6?U4;O9H!-)-DpYd$>7XU+x+V)st$`=2i%NuBGw(}g@ zu?G33Yz}8RGAu3FOCJc>ddwC&RtL$|o$Kzh`^q?e@}<3HcM^Cnp7AWja|E(ACi{tm zliXn@C(UwtY98uM-|ZfNWb_ER$<>MX|2e+q@M1oj<}{EQ={)<3X6D{7*S@NKpt!I3 z?hLNAsfoCIC#fg};2R9xqND0V@H~+8(gSXbtt4vV#OUh)Qi9;x{21@bXhT001qGs5 z1uQR$=T-n%Vk%psLvQ`nfqh66&z;|8w@S-gzye8>7TNwvi5eXUYxDHsF~`_YP{?Pw zWOVEfjo!|2EuUkl1(HQM`qw&Lg0_md0I8)+FPV57nu;FO0mO=5Lf_&N`fOkcjSA)SV$=mMt1Xv>V3yG%k-d)%IHjJ%X9dxd;5>W|#z0>K{Ux7xwnVreMG)*p$ zJ`Z03@bc5|LhjNGVa3>&1usl+_#)Z2^a6zVb zNj9aoO3Hji8r3>TYNG0Em({k=T zRx|}Jo`P#4uI?fy2|wWLN(O`qk~6e=b_@0MCA79mwUd09y6q^Jn+~{N`h#gGl3A6Z z7+@@w$HPSc4%hr&#sGy$xdiBqCa+S;F?q}I7C29_jMTVes|vdC5i$?>M#%GNXAbWz!FW^Q~YvlVEMEZbo(Jd$npBIv+*qKSL;W{EkUz}zX0})pjqW-IbY;Q z@U2_q!EXIB7ztn@orgk+tBdLn^GK&-$jqe&*y%6sTXQ~>qyGjZ33#V^I?%f4LU#Bqf#IaY*)d9r^p-y7u4QAeRIsz4Ny6TD;?8mo9Ys?k!Hk=zc@VPq%=N@fMj1!r zS0G1V-e_Cf-lv~obLrvQScIF!VJ1u{Ns)BLOVign9Z2FPlaa7Ezsa7~Uh@u@5NY-u zpeD5xft9EOg>A`bRHPZ;BxKqlZLKa=bkkwJJ>;*RyA;p!cHCXX(mTU9w|Ljdscv?p zvQa?@+?Jh=a1-3DKSdnwYUPl7nRljQa;n z9SI1C-YiFC87f0?W@=ehqm1ljLEoc4%fH)%Fe5MBB|__pn-I>QPQu{DO%j68WJpVr zSwn55P|X-6#D>3TeoZ2fvR9%`GSK6updiAT)Yrduu+!a9COe%0YcO(A*J1bl`33?r zc2oCoK1JHL{-&+Gx^|0gvm;vYuk`2RgZ%Bww=I(5hnnBsBy77ynZ;D_x)fN7QHx}iYdkur_gDE4 z0!HywoHU)5Pw?|aV-T{?#Ba-a3E^x-pfR=E5sv1hE{P^$w!5!+eE`ebF9S2vVg`xR z(NZbrLr!;mlvR5>&+D@LX#(Y(Y8F%xIZSffxmhXdJ=W6vu5>96$NzTl@OE+qwQ!DW zhaC)!iu3FbOojySb-dEuSB5-wMm543yg9b-5=FDG1rB$;@}|@IHD9lO@J@36l;Skw z{$~Gh{Sc;sq4k)mP3m9MV?AgNqTLSkKZW#>Xzvr8 zo|LcW?@49ckMZYq>1S#Wqup+M^=hA=ytL6j-tdvI&_KN9)5{z9d1nuU7KE5?u4DIL za%#pA?SUHO%HTi(23w;tTC|J9`deu?R;Tq}*38qJjqD>An)^6vCmx=i4il(cHBTMDIHvHI4j; z{BYi1DSpLXY8p2qmc#Zo?%i7tcl&+1cyqhIYDG(bR@e0IqR@HIh!?KXO&&&m=h3Tq=R-3DdpUQA6j0&84DaCTt!$z3k1n%}mF@u8vwwTB3 z7sT1NBh7k0O)LPJ2PINRRfxp_5r zsPbb>@DIU!Rr9T^79Ot-yWFqpc~ffF@dAvvs>ykvyK>>(mCyNFEn%&ds*NXAsLVat4o0R= zII2x2T=M<6WJ;sG!xb7iv}M0B8u@tHip^mfS135wEtg;14puoe$BO_24kO=6NoeN0 z6vWSta^Gxkbe_wBggr}I)$kZP!$)tK%F(YEfR~)RU-IxZj9_oxe#I^!n^CSxXgIMg zUsx>CIB^dC1nN^A=y6Z*+UJrUw<}PW-GQj|Vad8H{3^UMcK1Zcj43M|yIz%SCHu30 z)>Z6N?5-boD>8V0q55TKP+jv5K*xF_=`A~kx+<(QWTaHP3DQ!3L;Mn6B=u#qvlrmT zTXe#*6!}$WPEE;3WhcBxAgrJK%KG`J0c+3NxGyL0cQ=Dgh75~_eSoj@2Agx-g-8L+ zQ_jetLdNA$*X6bZ^=#y(UYIcZ&M6uzX*01&zzj=4Lj7>XDCEa9hk{+s=7q zGV6~Px~{TG&5))?``=8d_&;vgl;B$Btoks&?sn=R@q${U_mflc!kBsUo>4zl$7PFB z1X1mE_ZdEQ0oqC-FnM9cR;g4*i`CBD%x}8oVsI8^!Uvlo%>Ht0x?p`lDR~BmXpp_g zA5dA`_L(t|yzFLHw7f|gLiIFkc~xH52b8*4e-bsR_rx`IH!|avCP%>zN>Af#$G-PS z@z%^p-2U+7=693+ma{T^!+T6iX*s-69PK_ZdsE4=w@hhV>i7#^U}2*_IM^fg7T(xf zLD!2=_6Y5)jZOGvlOR$W&VeA&a1wG5cuD(8!OlB_i;dGY@Z7JXxBvDxPLw#R#91{% znS=;nr|&g1N<`c{JEfwiGO1+qZSZ{Fz}|-{gUYO#U9LNAPGf^T7t?aQBL(L9IKter z41%C^Eb;KOi(h$BmhdwN@blpfA-EfvAuB7q#3g@~EIV^QGwXx;Sf*Su((OFu9=`be zdeIyQlzzf^^an30vPuMn?|c4G@^O*WOE7r;4BxxKhAUWp!lg@}Zu-@y*9c+o^%r1x zSnBT18jMJNM~MbIf?--(t8c!R*C05DSKJ6|PyK7#i+c121eyUVYQV@+9^7qlofvg) zqzoI-f3i8I))zS#s>}xz5@}R?+~zs~jub$dkayWTUoD@GH+>D)X25+i+Fs5~w~-KX z5X`C&EobTur)M{9z>!v-Sx+q!ZUGvFlIc1HU zlY&o6nvkY~f=V9ocQ6rXBs9K%l4wK=Y7}zH%#eY<`C={i-k1L)&;HID`hz{+7HJ?m z#xGrsY~I6qEiK27zdAWd-@>SW>#S`(Vml^wzVZ&wL~jpjK<`OW63(>8)d*zK?__Is zW@Q~(Qg@+*X{qXEIQ<#aOtRZAeGq@o9x43!o6vTQ^cr2Gif~!TTNZKqPs2Tg8KzVLc+LKvxZiERS-E!3tP8|MwCifN(9pThYjpPQD*c)dm)$8i zrnsrW(-*(&#=q#kH#ESi$=?G`yH=$iO;<_FYU|3znH%y=g|8=)vMbjokUG##%5kLf zj)nL@R+1)t4fay(KvKS&hU^sdR=&i3m4o$6rG93jUam}Qk+_K9U$puG{E?NAD&tGS z9l{XU0{`33)Fi&!RJ5%5#pznY*DawB>Xia0*I7wlgZf+g-7|>AW<~jY;$socb@}?V;1;U0(u#J#{|GN} zjc2ks7Coarng^^Xce(l!*-Yf#B#^;&Osg`X1=v0RjxDV$eU0%(q=ayO!T$a;}DAvMJ` z)@9rKwpO9Ptc2~N#FMehS`76;di-x2<`XxROyUqZO9b_S_EdO$Z;x}A@@@3xyeZhj zFp_srhp>_eHo@)c?KR0Mlm5OXubv9?jCY}?!c>ov&YHxAZh*w)w1UyQe)#4Yt7`3~`&HeI9 z$3;augt#o1E9-Lol3OX_6nn?Tym&J?btF2{;QS^V&u~W_OCY~1Cx0D-5=^3=Fguvt zT~V9M!svU|=xry#l;hPKDd`N&WX&k*thOLkITvz5?HcS3Duq^*<9wipFVkK#u-91( zt+X5e#(G;+iAvTEzD|E{ zxO9MFp`mAHV6<$fDNsD0d(k)I4WJCyudU!RyTi(&9JS<%4gS~C=NywYKTv1kUJZuZ zjLC$h%j!^Qacl4MPf5bu2{PWo09=?7P&%$<{inLAGK7w|C?#os@If zU+LvhK|0y0%hYM#$ewe2OxxAxThN$O$Py=&uP2eM<^RZ2lOM>!ciHQ3F|py=~^?Wz@!ZCsPPtpO_0NoS{K%+w-|*?5rX zRLqcq)zZ(}P9+;HHVkb%k-f@^t*-m=_2t5RA|INZFxA~3&cHBWoJi&ZtPz>I#{t58 z*&EQGt>^jXTfpC=zrvaiR8~defqQHq49IQ9eW4+&)7QMyw=W8t9s>`G#>gx#nhe>8Kj|qjTo}R{mdu{SP2XlwNG`WSOzMh7vxD#1u5JI8}3F}#&rjuG zbdYN#k;=@$(O_+mbII&>rZ*qDB(8CTdAb+37aHNQMIVg?l5&N(N}&;fsg2vfW#`3A zVh0&&LfVAr4j1^YJ0TMo3EQM_EyOq45FQYuM9mdMrU!xFrZPWIg>2Yx3%354Y8Xlt zd{G9nBF<0iDl9u8nHdB2N(v#L#Peo!XCELD^?uUseCWxUXe_WB{X{2j5o*19hd@}V z3sstTKr&xxszJp@%9$~YA(sL)6>`k?<5k*+XnP}5VK8Fust>YHfc1Ei+qjdA2R+{O z;C@^dTld%j8goFxFditZx|}NEfuI|y`>opWdMY`fS89!L^=LQ~t=vh7)ekpOwBQ)Q zRt`+X+@v?ganv%f3~5%MfNhLR)#+}q;4qGZXK6MnAO*FXVN#3)uiiJc4}g=_TnpTZ z37*#=vh(iFig!>Y^ms&iUVzB!jcx*%L4VJCb#|t!G;30OS~W~=Vo%AKDc9Blr;b(ac5WCAE6%6<<^P5?YJfgHrd-fdqTpK;#_H zHl%S?AYc4k0{tp8i8z6KLF${GP8dg1Gb3@$4~^^#m~N2C>)`|J8Q5;!Un(QdM(&D& z-}*{_k`G4{+{B6(0%y9}7qpOqVxM=-cdM0-e5LiLR0)}FrDqmfFqnN+`D$kAH8eO- zLN(EDJe8yLV^w_GCDD?IuqDC^#-E1F9Eisi9!Nn*E8$zu_zIJa8x+}@Y_5_T5P2^T zy3hcmYch}T@>RqZSgVuzyw_K{BE6Cm3Vq#fq50z~M+WrX+Y9&^iK3m2ny=HB`N}oD z03iZs!|TCdq6-h&CZc%7>YJbtLG&O2zX~|?&{SsY52<9$bPd=ZabSkHZzdkwTkbgh zaY0=Tr_~70dG_3h2In|^+Vv*d@ksu;!75+zM@s}XUIUpPav_??pMaIfH~$nu+#60x z&5-z-jI+Bo(L{*e8mmDbQ8QUXfTk0Edelu;9sQOTVt$!hEw`z9n`mdNk?WKG&#w$s-h z(34Hze*gKDu{6jXw6kur-TVDkF)I^MK+O++iL>{ReOC+zyR`_8nfs!ilw4@pdq|p! z`$%Sb`DfG3+BbgIEZG>L_KP3yT}7`0mUJt>3YqA8eZ}TWD#Gy8+S~nK#I>h@UAM&e zNc*S{6O(+CEj{dpgI!ykLW#8(zWLHeVO#j3u{coI?(+(-YLHNXqW}9hc#v}$03pRw zw=7753+DZcZX`WMLhjSAVPWtDug%L$y{)x#$#UJ*LKP|_m7gy`(%4ju!;V*Jrf)bI zRcUt(jvU5I@DIee-?AuA-MTzq5SUX2Xj5`~AJ+=Tpb&!23(16&2VCyZmCMyLN(=JH zJ`O-Rt#w(Bijp;z9jCcx%-YAHg5eFcTA#}>=G*DBsD1UM4F%*R@3Rssm_k<~d2j70 zkQyAo4#L}e^;KIm2;o6X?oVi-1c6~s)p)z>M?M*Tq2sv{@mrJtT3R7nZifpJ3OUHb zM`MEl%YCi^ELY>L#y8>yf@Pmsf~QDzTRyC^MGES-!i;xZucA?`3BO{a#7g)wwiC;k z=05u0?fhfDC9aR~^qzg%9mPHO88ZMY_%mCm9bv>1B&z&Hj?ASUo0-T$lokl#KpURW z53lHj>U@Z|Ghd1U3S!QXyF{ z{LJ%AgI(~ch|i&m-L^0T8*r{h_!6NwO3c`hlvG#nC#Fg$T8I-iVA_1+kGx~H7y!K| zvhKKqTq1Nl?i)M&8rZY0&WU_oNh_=Ozk@KKg07=2E;ZWTa;7X5@uRmAaN0so+&(y^ zV6}Je85_b?O+$`H*C`PTb~v37xckh736j?5TLpN;%ee`HbSVM#hU+6BaLo%#XsaG# za)}Tp7BG;S(QxJ;kU2*vh^!W8g7=2U4~MSiDv$?EtzX!7`UC(jg!j@V>%GNK zAcQTgY!~hpr~Lxq-a-S#0^!oqUT%^85|zT9L|xytHQr2yV`#6xhz+SKr>IWO>hDM;%)n~Ng*WZNA z-iq%An&0mis;6&WP;>m23V|}(l};j=91n-L!0H?DiRGd2-HY9yb~w?pibt~-CcHT8 zUlsRvotpAYO_4w=_IUDY3EmgB1>!|r0;ywf%U6CdJ+#KOq0NEs(JUHg&|=uZ!ZI3 z<><#E*PH2Bbt%}JY&wzI#}WRw#snva+l(GCJ>y=)UbDSZq5=4#XhuTePnkF0YR(Cy zU};7*(07r2hYnKf>^D&~9t?3^3OV-UcR`Tp)1~&8V+a|T$-%g5CjZDHOtNC>dvIL5 ziMT0HViM`&bE`v#c7y^a^QCvdB)=7U@`X35g7Smluz7!_8voy&zCbR;mZzS^*U@UU zw)HqZD#nOGVyEvTU`5b5vlSTwLOeO;4w+en1WFKtrbftJWn}wv zB3(E){PpiR!vgp$R70a~OrAj~YG@Z5Gh((6d<6P%q;B0OmlGA;pRlY&jczbzY*0c<>$b8wWV$PloVCJj zV!-2`OwMGSw_jHb*6jEpv+M>4<4fxdyz&EouJ$oJ_S=%tSTN9IXRQYbZX_l~4_>sh zhGLlb_d3Z(eZOOLPEZ*fO$_%A*%!D`#KT$Y>=F%pJylCv1u*2Uqdmo7^jRrO$_ugJsMWPBr zog6ab7ODA;)sm4zr$`4_BkFsbqEZp2Tvxu~Qgpv3r6P1`r^n=ZyXg&%-L`K4ai@x}G<3EiaKmQ}+Xt(t!nf~`7 z|35$EFFkW3b!0zs<8;orfkqwuiZjn*l<05@8sMSew15{`B;=_GuCwCGCTI|{bvJ4@ zbGmRacGGCqZ*C-VY-;c@)d41(#*LFhz!Q)73;kp|W`AordaAvq*omy|qW_Cnu|RNs zvDZ>3eN&WsOK&M;w(*y#Az~H}G|KAh{fo>bb2Vld1N)o(J&tsizlVHI<|?-T-0SP^ zq^jAH?ZDxbbC(%#u04;MsqHul4^HXOf$* z*SMJ36G;uyiH?~ZfCVRShE^@obuQ@NK|tT6CZq&IK6c!LvT^#zb90Q47UQPadZ*z(N9A8z!&cmPMIRTtRX^!_%<8Q5P zz+^rz=_q}zB{bKY6D&!+wjBD!%T7fM$yivp zqjH7$dd3?XS|#ypobo}%l(i^^zY({X0M2=bX99k04odE{76qRR-06l`bOeS|_7mjQ z7P#aw;Ts#y7WEI?f|h|FJIAamm-&g;YgqUtv_ADN?^!fl=h$QP{b1yJ^)_&k{vOs9 z@;Z;Ih_WC2G5vB+=sJw31bo^<=3L;r)P%Y?s9@Qr_Y-fS1*MF{2g^Z5V)?r@-(CAx z<+r^HsO_A)ca>KQnzz0hx}JJHORMvC%1b&i{-Ou)y3mD)@79%eO?+iTwnQgLx1U-05sD{6?M~tu*02Nqt7^HsaTzU1- zQF)D0vmlRZt)l*}pbl>z?`v5x1CCd6N=O<<<)VsutrSfw&baZndW|`5Umr}R+4KhG zf4AONoHma34QWFIO)V8PI}evP4)O9OQ}*X|`X(7abMJoHV_nIv6XTb;TRmfBmG1kD z?w%EUKGD|VE>L{wXXz~Mwx@e0_r}l@_p1jNLFD?cL3rmbeg^OZHa&l1THqJ`{K_DF zUstA)*V1B4rS+1jm;*#Sdq6pLMgka|0)=P9X5fwJ4)Bfy!NuMg;6!&1fCsij$4CUL z`Nir-P7@oU)ZwGA$N`Xj0jtNNgI9YZf`!N)3Tctr_Vp(5EDmK>iU?xjC^cWRE_+)6 z(<=4jmCgoxKoTb!@=baQX$&w{^r-lrI_CJ=WXaWRE1QYL)Z7_vKd5N3UUC$Oko`4|yy zZw)V)#(hpY?`gLJ0bT=mEGsR}GFM4MOriwr@2g3_JC6ujqQ3LFJ)mm-((ohT{ncu> zuWQ(3#*SXDP&=r46i?~TvMhigA_+vu{Ry;R-mLS8OT=XA`;7_-iGUtP2@G%oPk zQP_|$q`s4;r#!~;bK?v_aU^QD-YenmnAn|?6N;{^w*E~TQ$ecsO&W1KNzp1cJAASd z7XURj(*2^U;;N+?29lGU&YqDDCVr~m>FR36tW!EZ%Zr!l5N<&RdP!&)GP`<4T3$Ak z%~ny_;p>=56-;Kic4cNSR9g^nW>qi{Wa{izv@bMwqHDUurev;UFu%_!_(k`tG2Zbc2gtmR2`8s{XThuHgm%W87LJ_OSC#oVoaE~9nY-P_2p@_xBu#8o@2~I1LT?2q#v2+bOmAi zPZCt!*6sN7;Q<-dr7@=Epw9CCa%NF{%;9HI z&c?7qx-W{7SEGN)AC?*b#u;w^<&T6gvlgHd=1TO|iZ94A#(rWVuS7JvJ)Ojo?m=vB zVT+!NWCo_?5bmoX&xq0$GE(132ikcz*ptR}Uhy$e_@?F8AO2*j+ZLS#2%f}l|3`D# z!G5{ZO}?kk=aq*6jeh!dpp}P_4W0mf^X&vC0NTKXVrDC1L;Ry zXSP3I;g3{=T{a48i^|Wlv{QO`_DY_v>1nWkgVjTVROQKV+U=4A-g23@EC6*RG*t%R zKH{IQowm-Ci##Ou+Vdy^V{bNWduVKTC$?V7Fiwozoy(OW5}=pN%q4u1+63Y3 zk)%sW7Z5`o*<>G2y6wra*2L~8AV1mi==(ObX5i_PD?5d0N#!StgvH9lzq_VQXNBDA zQ``59y-CtJM2!Kks9n+R} z&~Mw@ZVS+3>%Vs_5UXJi55PtZt>@b7xscEXz`vcWZY^sVeB; z{KaAOiNyXlSs}Q=GR1xvIO6_k&r_t;(KCE1gUak-2cs=IR}{KkZOwQQ5LwjNm~^OB z=l-b=Qv%xO8Z+ce+!HFAQiW9|6;C7BM@dWKURKh-{wSlR92YydBnaO0b zMG_ta<(O<~h#E>0>4d2-^|lkizClb_M?mdT&^>=VkMo z0egCY4+|?gcNUr)yM;SbOxj*o(T^O46ZbyN$n%J0B}v_U0dQI`hk!{XcU^v%PqblR zL#)gG`V!xrQ8vX*s8yyV4jbb{!G|;=i$eU)=7kDXv(tzTr%dt?|J!vTe%R{vT>nZ# zs;Ixc>60s2&-5&R?Kb+Sap%1LV!=UBqJ8t|(dtZS;nS~QOSN)NpW)HZ9QdmG^LAXa z0uN8*uz<>kUMg{%&^q&u#!#=NnB%E;9G~@#5}CWGR%bpXN1tcF*M%}JTU;#U?+M>j z+-+xSZ?mid!l75?)k1Aw}8mKdn1@Z)=f@ayWIcw!o~5> z17Zbd{g0YHa-)87;)-dG-zn0{(is8)*EsOigl@337$UM9d!?w6jH%!>C(mQO0mZY5 zbi`!4J}h&cArpT-G(K4Td@@efrDwfZ874i^LI4=z;l=WeA-K^vrX~B4mYe>wWuw(X zT~TlCS@SQSx0HI}YkYlH(5jd~oy}?E#{2r1;3Vsx^pjUplsA5uFy+)nm(Lyzpr&|?}6ZeZm@9NsG!lKwdq#iH9LLDb<@Da-A8L0 zqRy&U#wZg^g36@$d$J|I@1-#<74}z>826VCJdF~Ilm{QCF}07zh;*+z*!NGBd-?1c7Ll)Z?ETf$iBWfpbVJt~n0(5P(v zavB8`09$)=9^Q`tqB-W;5{|U)@NV^f>g<{yC;74v$?cbH2P@c`RbW~#ilca z`9mcaH}4U+8pcW3QJ1dEyouLq*a9{-$^iF-wpjl(lsb>=+q&R%~Qn0*OXp zLuKufvQohq;8RPOE(wN{6ti&$wAP=7@GBE7AN{muSpivBCm=h zgvnEK9f9YYTn{M_PRLl;Lgf=$X8&5JSxl{i6+G5B+<}F8xyziT2W&?II0mZa@p6~7 zfqhkQ%bL&p4WTmf3yiJv9d&$q21Yj_2uTI5d=s?ZGQkHuF^h0zFevQ zj!XWNT)CQGv39!D$+G5Mu<34iv(j$!BG@phdK^)~F>OLhiG^HB%?$jIs=X&Te0udy z&h3HQzf)|F4DeWF zP7M`OZTS$DBoxRzVOBxYf9E^!ZwhWDnXcCz{^EIK(&4{U4sHI!yv|0UtTkuXy2-CU z!}qQa1bR)Kvlfy2EOD6OIR?8R!%xZInr$4)_hbI*!G+48Y3Pzs9j zmqJ~GU!-7QQ;%B0GcOv*-7X+maxOuXh)YKFsE{Hf1;B?Hp=nDu`odhrw_(HAfW3aT z;p@VZPno}~Nk7PdGkinx}IR3rULanIVuD;j(HA z0?W;%AH0%5i2B8gp0xSpKU7%gn4 zu`F0+j^)qQlJ~=qs?Kw`eaoUa7yZQ3kaytNYr+K+c(YB&uG6zM*M5(&ptIqbFmTD$ zCDT*O4jcV&5i)vkqUuqsZCRvD1heIQT;b=Y5K%&T{xiR>_zi zLcA6yeMJ2!lBogT!!=!8XkVBt39a`mPZ@*1BJ8EL^O3uuG{%^KIQ8)?fTEJv?_@14 zHM$)aka873g22Cd(QnUyQf0*cx>%KYQ8cuIhOLGmeWdL%XrIu- z)!J0K;4RmV7KvN1_5@bys}+SZ{TxnviNhu5*Zp53it5M!7)oJsk0ldz{dsK}B{3-u z8oK4*O;>=-PHf>W!Roy&2Z}B%kcFja0Qx~0>Jom8RW;}5t&f6B4NBMX^lxSzW1mYO zS$<8}yE?M=v_nQ$w&bY)vu(twxV>PowlmtcZa*>G%%bw>uD-biz@gA=t57DW;GQ#C zYH;E=hJN^5ZHGwNbtCqMukUF20Zl-2AFq8$9g(XfR?55z;-fbNI3I6c`&_I3Hbjx> zz|`?CDPt!=!HzWuxhifyrB0)jPmSZ2l)wI)?38O#0Akt<^~lAK`bBCraRFR_lIK4V zVYRI&>!kBH6YsfD*~?YM1z7I<-pCf7dvSaF#_G1eJoT)#=Y9a_UcGqW!@s`kt5t6Q z9r8EeTp#Wa=ndlfD(T|iaz{bMulL36PX#QYqR)50u_ebhHnQ8Y@>9+VIjw*Xe z!ctTKwmlhPUgeunErBtA+Ghuj=`_2(IT6E1w3q=hfc;rxSs9KDP;A7{IoP z#69zmq>oT2^v@pw-5j^2q|O+tqlI?J2m&GP{`!ir=>Hp|t9TFvf@&9-YiuCZ(93^9 z?_H$d^#~wMY_)hRRdTdSU=Lt~J%ADXdjf&`{hnQ4k%9jj(Jlgz%BL^r7v2#oMAX$pMVp$Gap7Y_qI0n9Ojux)^gEB^)Q zKksDMub{sm&t&OAuHO^_!}}kMr>;)c{H_n%%szi~J$TJsNkLP2`2UEKP=PA>T}K8Go8!=^gp_zN z$nF9{`SrTgZ7z_g519eq!P$htVwweqR2r|CKJR|0y)yapFS1RFsLGk zB=g1p`NQQ=PD%rmS5>DHyoV10F-`5oy7+=0?}7ARJ8eTI#<$=QNE}sLAxN|G>ouAU zGM|BeyYO>u4`jfG+tCPUnZKG)b<1!Z_6U$ za=yYcJtkA}=nF5^64v@J_kX>ol#x_%(vZ{PjqrMX1jr&z5T8{~T|(eWs1vN6PhE&n z$$sM5DfHx|0(Bfc4Ei&9;K`d0&VBhQS$8#Id}?WJ=n0MO+8^K5F!p3(m+iP4EdJ}j zExp9*<5v61bUohq-aYmRcO64jagqEXpD`$78f74zTETJ)+A-Q*B63NSiw%u(mXRv3 zNQAM|sC)^1QqcM4cUOH+j!PfwU0ca(Y;k@rGxOBy!;#@EqILaZFcKOz7xmc)R{!LJ z0E57Ryhp)N3P=TMSttch@3#xruj{{jZQFHL3xTg? zdXIBc{i{v#?;o=q17aft)Y76hj+?{I))W+-h;my_K?w(ie9l-S$8fh^cIQ1V_#D4Q zQj7Awi^*2!y(1H1@VO;%RZbTv`nBA)&@nr z${Mb??~^ZlbX`ZtM4H?Xz!PD|Knz|x)+NsVQ^|Vv9*qj?@>^uaQz&2+NLF`MclgM{itwCA7;f& zb-qG}$u$ra!PD~#T~<(u*LwFOhl7(%>kr3F>#?6L;lzc-3U*f`Md$-b?5xqZQ~D#5 zhZWi{rx<;BUd5L`@81Dc;VUd<(09fwYnl5gNnSx9kFM0l$+!x=_+iMr-YO7Q#6+j5^yLz=e3TrFQow8BERr#54Fw0$EfT51gvDLOn!Eztca=+ zh(?H;SG1v(2&!PU&H9EpJbA+DUAPCvObMR!uxvPBD8|^fuvEAZm7b5)zHK+TbTMXV z)m4CX8fyKm*IVetoFOwFz+4VsRvM{2xcag{C;6ckVJOe#wf%5?Usq>gKx*!=S(0y_ z80OL)<)OGd-mG;^lt9+=+|R$H6KidcS32;|GWa<70Q7X{=Kc5+>LLBw9LB3HbO|yG zOEJbU@^FmFC2~!lLjZiXT)_Y8qqEBe%1Phe5+;XNvg3S3Zy8*|9r^y!jXg;u#gXO0 z`eYi1+kOHNTI6n%1~q7fHrz^o)~x_*F!S(Xi~};?=X>A4Bj_AE3uB&(UgdhNJO2x! zMI_D0A*uu63)d2+(U@%mqR$)a%Mn*pD<_K!H`${w+iuV`^yi`{y#j8J&SB&*W(|gT zC(D}207gJ_?c=Dx@rNQxSQam~^d*~g)A@2Sbl?25?BT=T!R;RZqjl0#!IXR-txF|x zZl(io2-9B1GkYo1u^xh+JEP#uc9(=TxZ8u(&Kq_Ut@nI8+rsZFn%y!4K%3j)YA#`% z`ciwBBCd=_GcJlMy~QK%qc$_v-s4_`eoldEY5o-x^)H~d7Z~Xf6wfXmGVf-MG@54daI^FoBs}m6 z8H;sUE*F@KF=6xJKYZrZ*wmnN`DXPOjx@Ag@^rJIgP%b7J?$5!`)TIV%`Cz292jh} zuv#w|n$O9Zm*M@9T3A1=DJw;$CD%lPfnK2ubikF0aeqo~3CvtUikG^mo49+(WLYtF z==h?M?9E7biyb~1i-lXzxjxZPgeSTeKIg*~>TRfnu8kFkl`>h3S}<#Edd~9+s8rBI zsRgEjV+1vWLR@avwuN1!S&kJZM#Y#%#S9x&U3LyrLnJXfDqyf`D%0%w?8wrn<+_rw zV(3?If}*?_ni;Q%p>kmeTv@Zs7If_yLNCW5)?raiLo#rVZzX4b3fL*;3*V_bp4U7Q zonHHMXL$W%aNc58Z-d&(=QgcwVSp3?OK1qMd-nWX8jV{CiK#XMpP_FV%-l)?=>#61 zSmS}0HrAhmkLU4^gwm})U?FY5KMzIcUOi@c7I$To1RGIZTXIMTk#EsrXpmTPyvaay z^?Vnbu6ZAN8D}x0Uczmdp@~uO^L4k#wZ*)@(B5XlRBPBf(ycBrPdwhjKYmI7M-*v7 zN-whkKDYe#3M@YM+z4uOrUN_r9Lc_cXl@mlkor>O9Hu2v|B#RK2tv1O8WQf1bU6tn zE}=7@m`XRAa>8abDUo_0;l^jF?~?W&WON$gcBp;}|2aqANlCr^Txuo56;3kR&@lG0 zN4287KRB@E0zEM%6n?y)|6b?&;@FKgpH8+Oub3ViL_2~ygXvB;$5SANS2T~!wDOjw z>A)Ej`aUbN-dml~G3@peD1Ba)(YFxKUNmGbasj6UFO+Hb*dH=hjQuso2vZ0X$fM{h zd9!Y9*k!l2)>j4AP}K0t*mybzLw^JI+V}hoG7Jm#n0UK#M@)RP+(Oc_Di{N z=-$SWit>TDnQ)zfuzm$<`&w5?rOi=&Fso5Pu*x*UCoa07LQ)<(82n;wjbk0xn(xIA zZzYj@U>RF39&0(|Zeqj-9yzO`IFBJO)t1)7Dq!qW5`(v6%mv9=AHSBiX}N-(XUHJ*aDD#jMC1lZBxv zr@od>$30aW;?b?NS&Wl>`)m0=yPBLaM0b1AvLFZul9NPgug##7U_IEpB$=|a8bK>4 ztI^<-Xq9f$&DSS=5W11vS5A7c=e`z&mJB~VR9RoA@mPg7F`pHun&LWulCfZN0=ZG; zgVFZHOCC;=H)YuDONY$68cJl&d~w(wJlc%0{|oE*hDl>7X~>t)K8jI~y`yJXn8P2o0Y)7LGmfh`XA z#JxSMJ2F3q^(l1ZkkI&!#H?dmF+SEik&scGWF9dDy-jEP{z*Sr1#XnHohz;8Tn}-K z$%E2gvW3Zd^S3)bS9dlZFa?Ok4larbhxjiI_qXMbkUm?x_r5vO_mxYkqs37xC zk$zvEJ_K>i3Mu;g87832L%w`)Ege!TGCK)@cwR3b-nuo3KJp@ePn8_lEYJas-S{l9 zl>rsG3V8R3KL>GUSw^?u;*Y^r1>&!jDSjZR-x~!^qQtA9Teq zt3S4w)q#4-{NnL=H3+__1Tsg%pjlTy101+LqXAYTOU7W^Gk7$ElZ_JgmL;+KskT=W zMxCu!lF&swdq6ZrW7GD%?f7i?q{K|jnE5j2&0N1ruL;)SwwFI07;oJQSKBnJIx`+c zdi5Bo7;i)5B=R1oDE#?RZfd6Z_QSkQCXDoiqoT2*>vt4aEq zZO{n#cna9$;UtR9~O;={sNAef`DbMD=VhdTBYzPJ*`IxieHEmBosM zs2A^k*mAOLjQrTRca7z{tpA<~spNyb$|>L54-%@KFlpukA|uxE!pdE62c0B9owKVm zLj@ed9m!(yi`TM;PMPWSbN9|!$G~BJqML?}R-2(q02pBI0@`|FPy6_d*5xrLOpf`t z==$&Q(Khl}ksxTrq_!v0a{a>Rw(hZsyD@R9syf!knOHZ|{3?UK+1|I(Vk_&xPEa-) zbQ)aYO4~8ZOg*Kuj>1FQ^_{P`#OnMY97}90efa@0L^FASYlmRI*EOfkdNs*n@6#+R z$w*5Eh6s|0c~QrD(~k*L8@-K`4P~E8UwB2^yz(l=xid;`PCMygdMov|QB#k%e+`~IdEi7NQ(M+r-b4t9v>Cv=d+o(!A`{a*}1cY%Z2QJ$` zJlpG*M&5(^v?X2|#^!(q0NpbupKmhKR^^|)Edn*-J@QVeI{akbr+^la$kR$H&;Mlj zG`Tg48FMgZdf-!HM;TH*S5kWgA*aW*m|Hu}GeacNwzX7$G2p$}tftyA&|e3`t7#KL zbG;(JNEDpH$gkI50ci&WNej0}dYO?ckLU@NN`Lr`G< z&e``+dj3}5iw6UBFcea!^y)(qIQEE67pn^ES8nb#*LA!(PD(S`VLe&2hnSK)jsN5# za{-qPSoZtL0G^P^`7b$PE}2d5ZsPY^H^!*neMw&fRMLPryUrR=JyH}CD`?nduo+W= z%M6}5;@&yL)bwaQ=+jK>srjaQ*~rQ^#*pj=_zTNZO}9`21)+a67293M6DO`VQU}^# zeyI`inj9)<5M$Hi2 zSs6u9jC$MQkZ#7nu({m*utcJQ?1dm+l*p)rkyPW|%6*(1lpWjWFPMka?giBKSVt~! zZcd5yfa&Y|=xhW5FB7;BzaZtddWW4QGE;J>wQ0(TNq1R z7uiP9dxNtP3G+}Uc=bPeu^<6rHMw}VAaj1E4KY90dw~b)(^5K;fs zTF$-^9{3QXQPvGp1_qzU^Ht@HT|?b|qPADf=O-0kTDSL)Hm@sizH9m!CdZsxySIq9 zQ^TC1jEUoHOfgw$y`!h^asYH?hFq?WRp(ewW~q0Lyn0pFbbqCn+ftO^VptjB%KimZ zM7_P}jt00@CZufc46H@ZmsDhqJ)%jU$NxRdn6c%VCdg2TBz zjiMOq=GC(PF8&A!57|>y0I)l+PueCn-^f;NLJ7;;dEp(JI_I2n%DwqQn>1I8DlQB2 zS-xq#5}M<~5m$8L1kLduhnssP(>?Ab6r@P}h)^-@Gj%%Q%tn9R3u>W##C#G>EO1iO z$HbRV?Oi9e9idP=_&J>(W^IK8Ha2a2Gmai9>g8GXTHEG&P%-PC0R?KnhIFv7i@~p( z-C}>>k_0!bS#Wu=@z8;5l|3%~H`YayK4>sJtdPxVMU5O?>8M)y-j(qg9eB;OCm@$ec}E=LR|F(9|)B8RiTO2DLNY z&Z~~|w-)*e*7^c_u33ImlMT=+OiVr$?>gz;@8aHF{3z|CZFXcRuz)s+hr`*T#Rsi# z%POn3C56>HyrC?h#a=O*vATXPaw9WPdUMI(QU`sdm{5CqwUOYN2mCKB+F~$a3NzW4 z^)LBLGM{eBd*PzzJS^Y{yD$kRZI%~t5~?jTo79n|dLYRyuA+Xk@uwK>e2n*fb+3F= zA+pxi@C3RdN}sgQ>gBy>kFm*I!Y#g_z^dZ0kFX$)gd2T=> z*;&=l!xVw+j3#8j>$QfJO9AQ2b;~_XDFQw!OmlyrAfQMOoQdPT&JhE_g9nA2+0m77=bCxjmn%-g%mNupk&abBcC(dJkX(xX@NGp=P$D__;943 zaq~pR1KTs$U+lI(Lnf39v2(>6+d$v?^C~>HgaP*6uj5{bKUQB*Ei>cSc@!`qW156q zewVM>w1eY7b&3(1OG*f6jhefx&=i}oC*A)9oO3_!6;isJ< zaOnRVWAIs6y-7h8*!}+wJr>-CSl$L){O2_o;6*u*X!zeS-Pzdz9y*uV2yP_(dW|OB z9;SpZ*9CKDhfU{ERJ#sJAaU}Ezc}k3?Oy^1s|zg@COrBKKlkfc;vamybB6hkq7aBZ z#~2czVG6?Q|BV@R(xf`$DAdeU0%oP(6^bgs9gXulOh^0c&Q4hyikx3j^6_+J7iVxZ`+AsRY^bMPw}sXla&lc}*95cq-q#D;eywbg!PMTdSe&d-Ad;L1>PInF41@3+zaAS_X&81o0(rr0?SBoDQfp;yNst*XhQ4V% zn^nCP{&Mw+^^ZM}(Hn2XKeI+N&zrjS8oL^a{Eg}^N-%jAOX=#zJ`p#|VU;M^!SuQx-VAsl?9(Te#;x#j z>U$Snu9eZD$@HY2Vy=S1jAbL_{%vDZF!7kVqStP%=h2(g3$Co))?E#;65+wURa3U# z?^pefka7IJX?_g4BhAP!wl$k|-~Q4^vXQ!AoNh#Wmv1J=82@mRGdj2s14Va7A{Xks zS6O-|y;0Q3x<~eI3i`ix6J?yX4PG4;SfrtErh-%{X}S2uSZa7T-JbI13CJ~T{_MpV zGR>np?zZ__Mr$)^oa?b?`H|d^&T&psX6x!*+M1j`JP4>(pIOFmW?q_0Mgt(;gnsNz zLghvK^~;OxATQ9(!1Q5cM)!<*GrH(Dz6wf5q1|R*z@OoS@d!4$9kF`Jw23wC8vdntMRsL%IitxJqXOx>~H1eJh=Sh=L0ay)}N{DQe6;h3G~?7Y!xGn`ek5L zDEu~W6#$NdKCMlVdV7ap>0Yu2yD^B1>NV&p{*^Y2#^a)>d*9n(Y$pvsx8DqMf`}EK zpZyfJdw=!I>x9rSu)H;9waA+h=6+3#bo+vCRuep*8i$E`dh45X39~-#O4t-j!|F6( zIOBBJaYB%AeE21N~|4>eZDDhGzrfdb?xlH;V_zrD(uPuouCFZ6|S=oA_WrWr1%K$OWk~pQJc_(it3$X+9Z*w6o=w zD`7(-3jKkM7@e#`#v7fKy9EzPYe%xDyO6ommKFya;Sm4kfmDw!qs}yMEoBU}yML{u zymk5(Sd6@n-$3NI>4lL%Fc+1cV(I$WuDb6M3u5~;|E|kTUm&q8! zWK!~4)ij7JVrNS(G=x!^ZpuAfY?t-2N9A6`bP+x04^_Kf$@_{$^8NtaIO zJJ|7!oTBHtxA>{sz_we-cb&;L7tep~OB=6KrtevS3fCS(+}+nrg?*VG_Z}5ewi2cL z^xY!$z_8RQKepbi>spy2O-?uy-e?mH9HY$E+w?tR-G)ykg_`_=QH%D4Y`Y({^b;oI z+_M0OEF$W_fZH$mS{Dt%$!D@CDNl%mx${e8C5PM9Po@$wtj??qR2s*`rc&1#vldO+ z6#*gUR_Vi2;XIpx{`zZLtl%b)P^#Cxt`;E})D`nKC*C%Rk%78$*^aG!*x45s1n!uA zAxr7v)Lx$}Us=kOV1|)5e#tEX%!xMiA$pPe@$04gGBHJ_Hzvc6#CTM)y4N{OS7y_# zQ^@KIp=q*<7JMqK>I)Y^j0-lhJ%^zV$^_ULXPKRsF(_{8k!t zzmXp2Rs($}+~B9Sw4;b$)nO(tpf@Od2DgYex`)zN!IJJ_+l@3zRR?M#WEguP@PmwO zC9UTm570Y>3tQq}a;X6e?#^qGTeHmG$SB^q8fYwnv$-Cr+}mpE^=Eut6M(*Uyyk=3 zBcHFVD-eiMM-WkM5ma-Cefvb_RwWluw~t=0H1RDA^F-}HcNvc$85G3|1E+`4IBxM% zG}B2x1>lCD9lpTX@ik0}2}v*p1e677Wh{bP$nBr{>#s0<2djMkEMrO4D_jss*$Y(t zWalhA#KT@!y(9&<0F@7=OmtiT(B>j-Ek~!nfh*xC?&mZ{I`o`-%0c-JS4?I;maINv zK_2W#0;ytDXjCvQCjFq*(0ZC9=U)he)NoG3EASeUpW zSSBP-1~a2twAj>YC`k}kyx960U;{3pcc79c8)+p|!Ll;pSNw(zmg)f!3KD&`=8L(-4Lz<6 zU2K3tUsj(r`3Y*KAW>UCZ4h(auB&6$OyTuFKP$>wxgQrP+Y+bk zRf2C+kDk^sSM(J85A^6rTqnldc^H3`$xU5x1Ht zyNoyiYkfQ)#peM_aS}-I-Ya&~(>-A#+JHO0imn;F@f~znLsCCe&Y@WX zu0NK^CvGU=65J+DsC7Sh2Z*)q{|DH5YiWl~h}Ai7HqXXyHr}y}K0*tScXwfyQYL=SrRsiY+ zR|Q?y2PUrO5@yck-~%EkASl2maD`7$?2e#-gn)>I$Q3>TQ3(Nose9t1f2&~U@W9#v z{;w-UQTyKq6}TupI6knDP_n*l?jq;lX8*w2-cruN6Cx}wa#>jPil?xE&}9K3UIAVK ueuWzqpbEq9DtFDDU927KAsW|j@LjnqeCD*GgeUkPa#KO=dZwK5 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - obj1 - obj2 - obj3 - - - cons_head - cons_tail - prod_head - prod_tail - - local variablescore 2 - - structure state - - - cons_tail - prod_head - prod_next - - - local variablescore 1 - - - cons_tail - prod_head - prod_next - - compare and swap succeedson core 2 - - obj4 - obj5 - - diff --git a/doc/guides/prog_guide/rcu_lib.rst b/doc/guides/prog_guide/rcu_lib.rst index 8d0dfcf29..9b0bf138f 100644 --- a/doc/guides/prog_guide/rcu_lib.rst +++ b/doc/guides/prog_guide/rcu_lib.rst @@ -61,7 +61,7 @@ wait till thread 2 enters quiescent state as well. However, the writer does not need to wait for reader thread 3 to enter quiescent state. Reader thread 3 was not accessing D1 when the delete -operation happened. So, reader thread 1 will not have a reference to the +operation happened. So, reader thread 3 will not have a reference to the deleted entry. It can be noted that, the critical sections for D2 is a quiescent state -- 2.17.1