From 476cefe1afc7c64e63af0ad40f1421ce7f4091bd Mon Sep 17 00:00:00 2001 From: luoxiang <2806718453@qq.com> Date: Sun, 4 Aug 2019 22:44:04 +0800 Subject: [PATCH] =?UTF-8?q?rabbitmq=20=E9=AB=98=E5=8F=AF=E7=94=A8=E9=9B=86?= =?UTF-8?q?=E7=BE=A4=E6=9E=B6=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- notes/RabbitMQ_高可用集群模式.md | 549 +++++++++++++++++++++++ pictures/rabbitmq-haproxy.png | Bin 0 -> 55802 bytes pictures/rabbitmq-keepalived-vip.png | Bin 0 -> 21668 bytes pictures/rabbitmq-keepalived-vip2.png | Bin 0 -> 21851 bytes pictures/rabbitmq-keepalived-vip3.png | Bin 0 -> 24560 bytes pictures/rabbitmq-镜像复制策略.png | Bin 0 -> 13524 bytes pictures/rabbitmq-镜像队列.png | Bin 0 -> 24645 bytes pictures/rabbitmq-集群架构.png | Bin 0 -> 65031 bytes pictures/rabbitmq-集群模式.png | Bin 0 -> 69213 bytes 9 files changed, 549 insertions(+) create mode 100644 notes/RabbitMQ_高可用集群模式.md create mode 100644 pictures/rabbitmq-haproxy.png create mode 100644 pictures/rabbitmq-keepalived-vip.png create mode 100644 pictures/rabbitmq-keepalived-vip2.png create mode 100644 pictures/rabbitmq-keepalived-vip3.png create mode 100644 pictures/rabbitmq-镜像复制策略.png create mode 100644 pictures/rabbitmq-镜像队列.png create mode 100644 pictures/rabbitmq-集群架构.png create mode 100644 pictures/rabbitmq-集群模式.png diff --git a/notes/RabbitMQ_高可用集群模式.md b/notes/RabbitMQ_高可用集群模式.md new file mode 100644 index 0000000..a20a62c --- /dev/null +++ b/notes/RabbitMQ_高可用集群模式.md @@ -0,0 +1,549 @@ +# RabbitMQ 集群模式搭建 + + + +## 一、集群简介 + +### 1.1 集群架构 + +当单台 RabbitMQ 服务器的处理消息的能力达到瓶颈时,此时可以通过 RabbitMQ 集群来进行扩展,从而达到提升吞吐量的目的。RabbitMQ 集群是一个或多个节点的逻辑分组,集群中的每个节点都是对等的,每个节点共享所有的用户,虚拟主机,队列,交换器,绑定关系,运行时参数和其他分布式状态等信息。一个高可用,负载均衡的 RabbitMQ 集群架构应类似下图: + + + +
rHAhEMWU# zZM9;SDw<+qDFS&mo*J$e1M2^4K-DTUbJo*md66DRv;;iA2_eq-y6RcrQZ(xR6;{hM zp6wx~7>^>qz{=#EpydiZ&M$P9#rF91rM6i>-K}=g5u=AsmSRtps_}O7O0<8y=JT?+ zQr*IuU>ex(RI0~{L0X#SclYLxn-g3lbB?3-g{dsXrNU?=ZIfnc<;e?v-^0p#5_IA0P0N+{sH*!1L z4e=C%-* 3NyH( `dTRv{4$lf7ae&i-P0bC!hNTj~?S4W=oa zIu9grygFPY)n|26HMCLy2Fm(%8(S%isOco*$A7+!LN*OGvU*Z`U6AQVrj1x`D2}x& zy-d$1+83dUI|boFd-j_9S(=qMnG$*7tbL1YS8BBg6q7muE>I5UK%u5!w?$G2e4`5C z_Oi+u=W#AV-kvyMx4C^JkQtUe;(2 h8h!-!DB0ee_rz~v6+_J`_&~g?ZSsI zf@W>uzX--OL&)hCPrV7n!!2gJx)Wwrek%3oWKo&yp|ztl(teWVTHX)b)Hh)G>^gsS zUHA{bPTKQ;X~AWBSH{;BFK(qF@?y#~rW7AU7(4}MUEm{`m@qcBR*b|aUUt5}a>AP* z8kM$v`mQz;z1b^dW#e^V>UF5H+;h2d5Dq==TY16RwYoCVpF3C~J@Oc*{#;}`kOl#a z;Qk@_AF{Q%`VK#mmTj0b)whJr(0uUcw-<)% -ki;OdaH+Qto zJ0h^+RmD~=ht^xc;cz4TDS!-TX#izwN)&s-c dOu?ITeC1j+R`mcc^f^j}**I9Gmf4`6-{ojQ4z5316GYAFF_vE38{R|C$BF9IY>f zOFy_gEE+3kWZ*xX 00fYVPk7+i{mY?GVr!7Wr{4bS6I4t=)lu zvTww`ImzDjq^Gof18e9BuZ~;nNO0J!rX@X1MQ$4ln0PzT=n40p{L883 zJD(nBUglXU;fxK_>dKaa9?$^A|8MhbiS(l>-ml&`gd(1sX5O?YAY9#`>Pt$II{@=O z>aZDRI>qdgN`CSc+Z^#YP6@2{Hd+Io!eC-m%QQ8aN6!+YVNeJaAvq8%1T#Hl$j5nP z#XpXz9plOb?B49d C=w0a>9HUyB1PAvb{pA$a(kzoBLA1ev2mX8LOq36W}p^QNU z)bpUt^NvjA1HeLOCo#F+R;9u^B}O5Zc4b6d!St0eI<|h{YFq2b>3@rH%?ExWYxz0M zY`?L7F`L9@&B2**9Ju82`N`~Wxskm`2Hdqx r8JWpSSzGGXNuiqi &= zCMZ;5jkrEYTRHKiemTK^7Jp>K{c%a p9Z;u=U=%X8>m;q=AoVc??GFcrMSjvDG~;@P?dN6nk|Rr?&%2{hYmsAZ$OJMgA^f zQW%o?+bU0&b_s)_K1!cE_8U3j;8;G{Wc;jYeeW8!eE-FeUqS7&zhD6rgNp<1GV{;L zVGU^;_K>eh`RDwK_R99kOquXk?w(jd^?@ru1)#!axyI+~{aVtW@9FA?@~~k1m7ten zvH!(o*lV#%@yYUc&FjZKZ7NoZGwq}|&F(LQR}!8lhmHV8+gWM32(KP^OnmD)x!*K` z$fi+OuqMM35fhQ#2sgi(w52qW(Xz%}wVMTW8|o;#YO2eVs^0v$w!j?T+)FdeE(W11 zK-D*)yQ-y6)rbAc5&BB&9s=x=HQ f~rB7@tf?A7sN^I#5y;QQ+P*; 7Le{TnVz(Ru2~!UE^C zbne)0V19cZ*06%0tb7CMyw@NYSSFJG0RwV*oxC?WZn8R1F#Wj8YhqyVt0*3~8PMuZ zJCG|_OjwQ(f6r?O(vq_4XMS^^T5o6LEc;F|rV+{t00)j(5EWH $>sR3c4m7`%N^3-fAu@@YpkBl+@xCJ&(^6E-TAaA?!f`qd;M+oiuY5_6^EEb7 z0;{xixHQa4YTw325DJc^pv?gGruoh_Bl9*yntl{pS-{2N*oxnu1ARMRrTA`?$nF}) zgjGV4lE^K@qFDH6&jNMQbkybIG#cHmU+5f?`pU_jL*InzJXyVoR0t0s-Zf~HtqI@A zshIB7zemp}=*`TF4A=^9dY# 03HJD+zV9z~YE+Mv z;TywDXwv?G)2>x{cI*lFQfWTiVP4wv$4z^goedyIdfvMG#w$^7bm*0x$xa*$@#DWc zUZ4Q)*h-IW43E^k%zdYQCPF5TW=R$s;ZhaYc91CELpW+MZMZ*(%FueZ6-8N1wLrYA zkjff Xj8co(W6$ph1x-9PPU{E)wP7<+hP(2=|oJw*(9({&Ly7SqQx1A z=ejR-R;?S%Vs2TG%;tSriY)7haRdQa+;HA=``)CX{|yB+#@tRV>F)hA?zQ~99|!we z4p+{GE~~opkEq7l|GhqN!7LH6Jo_d;DW6d{%ZeCw*H(7Ww26**ZkuHSu=5W-O*W9F zZz&Wm?woc|N1`YSfS5Y>&`>zrKHUXN2^E&jJYu>z=ehWMdSm#sQ$|xa0J({?PG}uL zq0}W{_sk13QmwzBfaSVi^}4WU!B1nUbn#Cc0so3R02&W7gQp_BqxyIgHig5*G~Uv> zSi;%{O8uY@z949}8jn(#Ow%O5)xG{G*kERS?$3X-3$IZ5Q8S7p2tOe=(u4Ez9eUrc z)$WEwq=*MIyr$D6zfDDu&!5T c3VAsE}7dE(n3EThD4y!+f023I_1^^Dr z)24rMWK)lATu*H|CFB&KF9w^>FfLV`AzitCUD%orX%;~jI{@yA(%%s@l#yhK2+}UY zX=%av`LOv@lTzdv w%1-2o!64lrK{3yDz?XNepi>-{3(YqcotVtv|s?;iCU_TV@+O zJtY_Z4E8ahJ6SLaY2blLB9iwcP@yw$uoagG6VJXfBD=*qI(>>uNCFUyO8a@o?C&>{ z-97&;2KcGb!q#QY`4FB79^#rnk4hFEjuPJ(cgsosABMfkv`cPrlALBPU_0*Tko+OT zdjljhgucr#-x?4uB*$}?jc^PjZq~(khaB!-*QoshRu`eELuUg!toySt&fRXauj!#d zrcs8~xiTmx1`U`54l+ji>;ITzW!AEttTNgsADwHme7s9<_AI0maj#y<0|K^;(Uz5A z%auWwF9h#dixt|}gj{^26Q8MK$4jQpaRa%x!dPhtQ?{)`Elt=ul-pokQn?ej8l#ux z4Z7BN4XBUI{V|k`J`+Z9EyCR=u0xe8K&)c;zO(-OKC Dsh$(C^afr5R5fNn 0g^chsbR5phV{qjX4 z(!t8sKohOADO;;04Uj^-;HA13+{#f1vTD12k9IV__pXdtJo %7744#?{JN@7G>q(m{+N}}i83 yaj(O %e{51zh<3HuNcVI60aPtr!0eeCAnbJtEB3 y9<$fQMjWAUg6^cNwMp=Qj-nI$X|jLwL-g_F{=9ASWdkwg1J@f23NltVS$mz za(k#?C8Sb(pX6wgo6+U3*Bv{!hkBc~fT{aR%Wfh&+1X~3v>9IwwU7%EP3p+5u2c$* znw~GJy1X*GtB2XP1G-E(v9%HJgrK`_{&{~oYn< *9oD=ViEkjw&3(s_w6|$d5K5TQ;)WTjjlzz_ zzR8X2PuAiG8SqVsN19Xb5bt8sBKBb0UZ0-9u98Ov`4 A+J4->IvI OE@BcY zA7FvO6K!CX64}JO84hVznXW!6m5?nY=e7x%K-K?noZJIrAYDI&^Bhx15csg^%(|<^ z0bg`ZQjse3ft9ErvXXM@&V&DU?MebW--`NQ^#cL%P}iUZ>-TEtp)r4gC!g^`otMj$ zep_?~i~o?Z2|4veg^K#qe(DF80qST(R1$p`NOz=A<-7}EH*lxuGe<84ZJ~i{0A(hp zU8Y69FexYzg)Ia{U}UVaWAxg&*A)6z(<4}mly8;mR?-l6-4WexIz2x13& uhwbO@WSjXRU=FB~Eqd>s?AKd=gY$E~u1iakgo`J*;vN&wdKOR;o#VBIp+p3#_ zXIltI`WGHrl?sbk9uIvfo z?#yME)T7QpA Ae pGnv+L@LO{ZJ)t!$lxYbCS%iSITz_N zePfvNo&`d`*2tmnA9bFUEZ7~!S3RGGHeWspR~;Pz>Gn{^(?2EC+0V);A_@q!oIeAP zS}Lte<;x%oEXPl%jtKgufGq>0Y{{Zb_Urldpyd;G$%2Fp2^3@tW6>5%A)L+DB;Gdr z&(_?@)aHt9I8pd>-uZxLbx04_^Gf{4m&tYJ4--Bh#Y&+-G=PtZVn1V-$06e|TP7 0@ccGrlsBxhoaE*%F1lSLZv*JHCzr$I&;eb&%AYl&!o}CC96ZbJ8@JG*E~Pu- zmCEy1WG&^{Svta~a$7ILsj~Vdh<)Mmx4ru3@G*hkiN5hV$<~Kpxp1l0!jV(Ly~r4@ zjx~S<;I5?rFb{PUA?IaS{PNc}%`vH}J|13&0=useJ)DEptC<-%eooCGt?6D8^X`O) z!i4>GcjErR1Y|JpHHEJ436D!=8#U#=0$&J$o+F?^NXo+km?Z1QgcvVS-_?Q;;_>2| z3jHuOn*`vtVr&Zr7C7;Lp^N_`ck-uOE(WL4R>^D-3y856d-OGtF^XD}_$*p70+zq= zMq7B6U=CUMB(g&}V#5Pb7+PJ_?3}m#+d3z*heZSQQ&yyTTHC+M%%ct}zw<%CS7&CrSsXAW` z@Ly+-)W=m;nFuBF6C&GtjF!0X=_7Qz0pEtNXzTHHBC S!QOBe>Uvyw);-~MV&w? zKKzn&({+VlQ6gXv7`&=a?^*2le_4PVA_K! Pcqz0`d`-p4)Vs0^R{j1bmpzjE6Ds!}z`*L0H|}Cq8`KH$ 79u*ka! z29jI_0dq^JS*cV8UDqwD(fujn#tq?%M>uJW_8%q3x(*l*Zx~bldkXhvLqYyXIk`;w z{loiNta88i5brV_K0BEJ3P!*QlXCAFuerGPL9F=z8;`u`;h~ 6daqMX=q%^%xyc98J!{h4s=g!*x*;OJipN?f_(6D;A9bMxyV&HAtJ z3Fd4s_NL`I)cu@vZ>{?hVn*mxh9p%y JTcB3iV3p0#EQWPSexmWh!q@Bp`6?9+p@bd#Gf zhi(m87AzN=EdfV7i?lz$Dk%BM(xt&Lk%&HN>;mhBiMqWbcysR&y}dbXSQ#UfoX#_0 zNPGHEYS_Aw4sl+&o>6vl3Lkt9<@43G+HNcwBpW1ziFg@j?8g5k6CC(`W6kmE#M-iu z5T%Y8*04WGIxrnFCBXp=+ KVq0`XH;Ss}H zZw7>=jPB_;Xv91v9h<&TkGu@Ob$<}_A}Z19=^?VKZ((bw0Dzg^4nBL{)XXi1Mi5BT zZPQ!%)P#)DJo ?j==TH*)8PtLZCf|~gzppagKPN)7U?4`TN&JO}tC*_b z>CupQHh5>B7gN1U=k4!w{|^Kq52k
m4R1gJa Ym<(5h%VP;T8KHzN}dHYXs)*FqVh#0@;wm$i$X-JTXiFr{!q;edx>v zuSLMz71FT5b}T9tCq1)IZ@-jzY!XX$z7k38wTY^y&oV4|*j``5kEkT?LtCOhoWZY7 z>hGTvVG0htJOJ^y)MR2=aG3ir6yQ|+h|#RZv_#eJ@O&0<=a5sK9-cd*fk1rT?o5MC zv1%GIq`bKX5@hVm8Ob`4Zzn+x*)0lkbonfBX;Qxnle|qYstVmaLyEbSmjR!*WO$WL znsm!#f1^3JIn@bQ{l*PNa|T$2a7JW{|I~Vtp=SZkpJdlW3;dqddQXBN$vGi6dgp zb5CdrdZf$gkAbQ~cW)CVbUV@%jl@ip<0+xrb_X_M`k7j z)X_9I!JdR_O(U~#2w?VFSl1YttCHzT(@_!_j%G7N|bYy}W zG|yyUxmbV)eBA|>#bxUpuG&Q%XGid5<6yY_&q#wj>k89-bqDHPb8k}tkH#Cpqm_0y zsHBHDKI9vw_J@}yspOLs@{jcY8@z_l*yEP%uR5gGI9MO6QvYdXf-9gp!$x%;K&%$j zb(}W_F|chtBGreLE~mYM$=b=YHSTWd*R~+eFGOQ9)xh&eOT>dz)uwW?KH) 2|gf;i!fScIYbCQz_*s2N$e=)}9*lw~#K~-7Fq}Z#V z1bJU}m2Tyn-GHQanB_$=(a+W+;1k|BjtQKo2il>UCVRvEAJ8_9?j(l-u;{xn;i%_0 zGhiE+1U;@!d1|yK)F6o1&d}w32WNx84BqOd*q5oj=b_v8Yji!n`!<88*Z(_OZ{)tl z)0M-( 797ju|03T+5L{093)BHR<-PS+azjH~A9Vl(FJY(QtbZsEwUwfro6K>FZ z=zCYiy!iZ#Am0Dpm;7HT7b4D-{g0oC50p3 `P1$}bfY^%N9W7cb_?iU zXppksxAFmVdCWiAuibV!Hs*|hvle9xPwsWa-}9GG@%SjBc10V= BHkr8J zbJNKUKZo<7_!dk3@EE%__eZGcm$GcSA2-v$eJqVz(GUcTg5tV~&}K%GAgbEzpc*5I z#fH| HpC@%UmEO=W5a<9MXikvOr5QMa>ek z$F=LIXT&2`>i<0@)MtY@*Q-#Mdn-e-dA2J4`ML&)c`T_8pMkWZ>A&cKarnGNAAlXx z@S`;b|ClUy>*4at+w-&1uB4c#C2kBRwjH0cuH|Q7fAfv`XaSE8b8uWDf|fQVmy+>L zb~fbC93-d-ev9zb>iLtizgP6G4_uaV$df(qhc77$ofOdflXcF*^R4wmZK)@k4eq!B zP>9sh8VThV(tP$1y16$4o9+I0$nLdWn}6b88a7&)uD>F1(Mo&~b}m#ll1BQO-(5)g z_}_M4oo{xY)=4;gkDRG{e(ZC2D};ksNrOyR$NWakVy{27Vg;RPWS8Ey=mThu#Oe9? z9&o#51q@EMM1d-;W1DU4If=Z`bgO1q57N3jc3ZzmX1 N5YwI*%FELN1gv 7uyAP zC=amEM47x~2xzuBB^`xWe8rL%DqB1-ri&1iKBq6i-?@Wo!r)w|L=GY@cKY7DfMVYA z-8% 9{@o%@Y2Y&+iCeD*-A32fJ{ zLE1A6xF40(j%{}OVY47tiFZlFenEAa)dBG(rbOmX+qs!lLmq$NUBgBqAoZG$-Pg5= z_(QCs+^% 6V7d@9xi(hjYu|k(yCw;z`ae>=&$XeGHc?VS4sI{-`thlI zXu7ZsRvW5mS+jF}-DI%}R%=Rsef9WO&5O4>U}b2lmPPZqZGMqH@BG r&Oz(qVN4daP?$dYw%ZQ|GegNmoAgbbO_2sQSuxgYt~}zM9$RsKF(vQxM(GEIgv= z*}P)Y!_!09 c~?8^14!Bhvowh`^Q{tRd+A8 z#YwCU&tK>KSf2~^w~MZ2S;Lv6t9%uuw>cuD4{V@g d2aF(bT@;dz3sX*QCk& z#GaEack{e^;a#zGmUG@7Pn03|kUz8Mg_;fv*8qp yKcoH&a{U< zH`GcMf+ZL|;6jC<{OUv212hW|y%NJ8Hc71PltQa1X#b>5JI!a{3cF9iAAa85F1(cG z-T+i^i!(bIZR@sHio hL4pW%oAb2hd&I;qi{+JLY!!I~s zqAMW~f+Av8QG?7(hKO=MG$oS*PrqZQ#m#nwcc-Pz^fRLVCPzAT0>0Dr7;~o&YW3;F z8jp5wbs |7eeswIigwc&?T|Da z$b+@*7Rk5r`ocKKGM @fo4@%p4(U2$ZhZl}lp zJClN(#cd;(0p(L9nBC^Re{wi`@^A3=KX>s?lisq3!%$dA`jRa#OxT)l-&?UHOl1)C z56zugef #hcm#x!h@@>FsgYRs@;WKO?Yc_P{Ytkmesv;+9^$S%g&e&NM5XTa3c7m@ zXR`Qkr$a8IwYFil?OYf7Hb7S~(b=z$o?UyAU3|4+!w8{Wh>j$Ys?`UJ>P1kS%LH@4 zhSW)OF1pM7Z~l2^qa^H()&Xo-^nTlC38>jJ&{9tna5M}-O61NmfPQcpKo^=xG>IuT zO`;`?qv#Gks!(MyWW+eGIbbScxt*fDAurEk!=IEjN*8@&kED|tWv@A-_M0FcA~=?6 z8c4nvyvRR4kRWgQcYnkW+S^@}ZSRO(Ve48mr?|$r&Pf5*o rDIQlYAASyTdH4y^lC8sZ z+6t_LLn_{21(XowN*30zyxvvM-7lRywnLpqq9Rcm2B=8G-dF8RYEZ *RGQgbW0K zIUWDRZNX1EvCZRE6U=ETC%#geM?J3Q)0B95*0B8Z;T4;y4bd^df-P0|fo&^mr?i)T zi@sA{H+L4vG+tP5_*=|z2k3%FZE5h#c3oY!?d~5~fenknmQ!t;@YOiA+oJH!gD%uE zN1FjF3SDdYx8db+i(K##JPKUy+j|$}|1~M_8`JBLmQlm6n^9k`{uJcWY>Q-vF62Rb zI{>iU6S$H>=Qis=RVAht-uD$nw<9RWXiHoh9Nl3{q4Mja1-+ in9A-!VXHKz_g)<@Z^6F(VlC=ls6`P0e40H4|= zwqQn>>-c5WVz|Qkd|GWJd8$R=OTrryBQ8N_VPO0yj7ta~hpaV+@@^z=i aoQ)>aW&IdRupLBNP>Q= z-HLh^I)5e|8`PfaEXE@^Byf^u;D)C|HIh*!e-8Yf8-6tH!(lbQK(~7ko@qT zS&4#R^N(Pct|rw?#IoO3B`BX@LD8g&Ik$v0mdTb_80M>h{KZ$YbY(B2?oCq$n$*lN-m2h|6%HBoCQ(}1S5Urxfdnx8WvkVtetiUL z*Ac;{-RFj?kL1^G>rzHXcQM}{FZ!z01jrih&A)#?rruUk)(u)f8x@Ec2K {6~8T(aG|UD) mMUTv(7f0>QFzt3`&~vHx|~ NsmiuD2=*}U;DXWA+|DZ z$8dXYLWl0A_rzh%dC!q1fW^TFT4g Dro10B+^Lc&_ zktVMN!Y-Q8g$SF#n7xJmY?z<7WoBNefnZ9)7*&;94Z_Q63wpfJ_YSrH#yam9S=&X6 zjUr9E`wHyX91%d ;HN+NEA_*7{@r!UH_ zZ8+Oil8YL+d+|)#YlqMWuHYn_HMZ#zKV!gGZjAfZenxTAy}McB { zg4pOzRWE{K<~|Dyxvk9_ O#6ZU~WHNu-d2f=vmYC#Ouc6q<9|V1mGYolBedFVk$!lRH?G|P~ z8bb~R$7Gi0UZ(Uu^&Pd~#8 8 an%VlK43S5JQGFT zwb_5r z%4e75*)C%h7WprNsh~s3EO)G7<`7iA$HyNAt3HrecK=v2vf=-qH4B?@qs=;UpJCO{ z!t`c^;lzuy%@+>;ke>gH&M`&7BZ|N0FWCk}o~CG0hTRQM*v-P&&Wq^giq{PXUDhsV z%>fk;4I0C!6@@Yqe=*iv=>yp;PE=?BZsz0eRr|#V%0tKOi^1Rv)T;9r& 5yGaoHQ_`3?HuZZDNvMil+O-ChA6LT@{h@94MSt}3=Xc*^ z5k7Rjs!N*BtXs^Ugk!0ba}-KaW(WOm{NW-_I!;AfGy9EH>4mjhYgO?vytZ*E^rukd z&w<-| nKc=&i*-wH<=`K60oDY;`rFM)K$)kY34fdJ>6Kl+W StAzwHj;zaK+=KoJtnLRi^9UZSZ@cj zsy<%M>FpZBujBOjfV3APVF5q2w8!gEZzGw{-Sc$ws|btB-8o?HL>#tYa4M4*?HD^~ z_`~!22ZMb84som4S``xUsq6Qze@0t5qHi4QC#Z@WAIh;N4o7n<8XqwE! {03X&}4+g@d zELa+m(t74#D2eh;CzzplCl84<)AG1or%!XIJH}QH``LD 20d}v5R8WoR!rkt zI(xmJX*bD>=3v%IdcWE1i(sAnx&5akrk%{Ye3=j3+&$au^ZcsVOL-C4r+VOV@2oeR zjfGP~(V9-mt4rn8%EpeU;Rez$${#eey+8~O%w7<^O6_1eM2qTC=BzPMLIuSo=_gka z U1P60q7W}U#{1j^EP~1MzCMiMkjScg*{r+m_r0DBUlmhSDwI7@&-n#mQ86b zYaPwYiU#G5#^KBl`4mzHi`-|j8CF4{PsTwOjpmudV=W6bq5?O;+;;Q&lgR1X(=o?9 zN2EYwmEF9BXd0ctjLDg8c(zTfT42OI3A7&IqF~&?QoAx2*^lawZx9})cP#pG+kFV6 z?Hnv3y}Cxu@l!dP|BB_i#+dQ%Zk|#0%dC$UG|WXc-HmC{t*X#0`q1GBzam^29AQlC zP~vl){e_pCcgGB5{xTfJ9_{CtyR4qBeG~*>-=VD7D4M_ u{F^Ld(mnb5n-if7#(et7RxuR{oo>E#UIM#lLLx^|PV@n8BhdW7usz2Xzbj zK*v9xT7RnCm7NB$=VXxm#W5n>Xojn`sO~dqRCxXwwhMOrk@>RehMNY&v207)=Cw${ zkVjA>QH*P~b)y?OJ@fk9^DyhA5;N77SJ|cUFfslVcA}%3;y~0FITO2jPZE9?h I$8R!*NSi>Tkn5QUWY8=wt5+gc|*#u0%~1KPcXqWQMc{^1->OP`(*~_5T-s+ z)+E;Ga|zqw?vbUIdnU1KGEa!i6w*TxqV%y{GfP9xwfMBx7Aqj`k+z+siV`v!wH%3E z_aMDFkO0W_u^br#)it2_q8A9v$){%uPzNhVSkFRiB;|C(46|> 5EhR3VTSr8oT0 zagnajlWHQi-n>QN|3i?Lqb2T(*4<`q0YCj J~sXeYFq98waY-AH0#Pc^X* zG8pHCQ|tL%`5T (e7_GG^>6&)8dSOC;!e7uxVqYa{JLc4i^v`Bg~s#G5G9okp8B?g80IbI(H1`9F= z3jqrmfbh!K)}uIoBE(e#tUb5&Byp?x>`V{dd>-G0uCxxRSF>~a)FZm!7Q?cDKB)WG zM$p eN+q~ES-maxk-4*B7;mC2sL{9$8hT{(^@y#rXscIWO*)kA)AN?Q%^Q6>>lWM zlGYfnfPfrJ`Wsp`NVjp9<2Uc&wD!a9^mJDV=%iAgYGDlKSISA5NwWfp-Szpk8U=4l zjL$Bus*m&*N8m}wM!}Pk7tVMaFd^R6UO4iDPUj%jztx0y|26ETa1qB$Z}L4BfQ9lw zbnor=o(!3SsW#i8A*5+e)B~l{rOMBfBA?sVxhS@U{U>+krW3UHeu&+UH{K(M6Mml! zV9$PzDr{MtWVAq1cl{ZLN{cvvBq%ElpS`vtU(!GMQ17SuyIMu@`*;`2W_Cq4=uhhz zyV2vwc p>Kw0YdJuhvj5s}eGWVpr$37=uD0{UK;_T}i)!wc;!0JCv{_ %x($_jVWc~1nkfF1KhQXRT2rfh|#2UcO`t=AN&bq2T*j{<4( zIu8B#eSAMyCH)-axjnPI-O_p$nBOxm3!5}7oN{ducn*%uEuKvwReDjAb@wS=9gz^H zeu9YtM^Jg~$rpQ69JX@}$gcN{G zE*F>fWc|b5ANllsQX{#IE`0)Wpjtc|YXellM;_{4?I&`)5B0B;UTEoHFmF7>GBT)x z*|$OXr@r|He!a@R2h~)P_kx61Oma4iV?4F}wTQOZ*88MSCFy#VT;i@5mAss`ApsEh zFOMa1@L9g=@Er31Vp*aebdezTnw)F&r2f4XgLTNZ)RWc=ro&3w{Y`Uc4Z&xR#!!Yz zRO*a#>dpRIFqV@^wcUS6$R`Jim RtqY4_`txySRp1dF-%(ApSl>AGI`U8gtjfd zXWmUwT~2+1X59wcX$VN7G6$CzL3^NjxEWqGsYvBB<_O`i<4#c6{m_sCiqd9Vzub>A z%9>_#rNHd9V1Pzxl7fUFUfx(0s8l&RzP(&KQH=(k8+q_zh8L0jB`_d#2R|HC{q#?$ zK)Q2)o3vJ#Nr5x1r%X=}$%4wcI+`v}9Uax`Fw-VflAe&l0eSbd_uYObl?xtxR~}dL znqJm4TcV|Hn^a!9AL*xGCVlf7bXw|`nbA>u9o60*`uQBKy2D*^jfQ4cnWkrN2nyU? zh4|o|!(QL(1xf|KF8$kQ!|=W9H+{=&8XcpIA;nD&>?EjTp6win1IC5qjGrr!-|KW3 zmz;OEIx*GfVZKuXgj(l;Nn$I*p~BiENmFaUJ}L+>5R6ft1oqN}NWAYp6Zwe3{psoMTIg1Y8JT2v;myBX0*@&*uVo$fbpW^En7kZDd0`R zJ_K<87u%d>1zsm_SMuMVVTm$cb`<|*A)rYxx%><{(+(5{3VMIQXr~4ZbmunnQlben zR&?PmMnl{z7(0c9g%F{k@T;e|?(p>H0BDPCzpViUF+6lppWG28l8N9?w@sd#*H2 <#7E6Vh5IQBR+3d9ec-sGmEE`Mg-KTvg;{@ZD6O8L 3y!)JG_Wqbgq%n zqVK`N_OVHiy8$8EihtEAfrVwyvzR+hFtBy(?U2O;4UGR15z|rJ>N5%0MXzpgO=hQ8 zzd}#g77}{3Aqe;D ++Sh{1oPP{O4`+L7Sbi_DtQ`D%m _{VeeHC7s@= zAa!;R`S=vAPS^f=R`}#qZi+bjDa2RufshP5``HrRouKbacWH%TC$j^AZAiNWxECN- z7SPfTUb(Eu@eTN`(GSRRu#;?Z%Mv4CN0MBZ>PHqv =n{@Xeu$M8rODqu5bx3 z`!?G;_h7^A_i(qIv*JAGPj`7tKKjF1@wMS!D`j4c>akuNnHaTs?TEO88{2r 5Mx6`EIm>N_3x-72N^FKmyJyxkU+D2`w(ztTcp?4$Kdkh=ZtM|7MT!RMU zz#m$|)@%k;ZIuufF&B)qyuX*jDhy_C`~E-P-U2ADZEF|BT?4@-KyY`LgaE+;gamgd zxI2xzgamg97J?+Wy9S5gPLN=Y)6hWQMYf!M?!W83SM_e)s;*VV0#?s8=9uIAhRyjY zN5HtEF);C?b)x-IKKJ(-NYYY3BMR!gjoPU%?Ffnn?R-8g=(%4~OpTh>q4N;ZtPS zWDh@V&qS$q3;0<`lVkG8nCmg=eua_6=WhO8B@WV$+wW`bJg?x@;+?UlGFcH?iwvY- z!}STbqztm(C6q$1qqlKDNC=`)fIAOH1{$kUzwWomDrfe4Xzn#pVwJWG?Du+Y=;#)| zHN%ZWPS#9NF51<9)7#%Q(~hy|u3(+90( U3Kx2W_X#CkXy|#gFFS#3i?cJP)vyQ~bq&JQ z%Z1s7wVtsv5N7qk6(@rFEslkP)|Zog=f^S-E{0pft;;ZaYss?`ri@MH>4!d*L1mHJ z3shh(sz(Cf8LyEk(U_L(N7nN6(fTP8d? JQZi*RRUS-sQA+(Nh!7?!!NNN5 z%w;4d$HrvE3@f#&aYL%j!=moc?!XMoj80K~HgsWT#eL0_9GT5QyiUK88raP~s;XD! zp?gj^OCX4S{0I5PFr!~sq*^s@XA*Y4a2`QUm(W{JQTw7A8+5H*rGrySNvmO!jS7bX z33DgqV~!X*MHhO(iGavHoQ#r$<`P}E!G06s*u!Iv_X8>m?b^>pPH)$MLy@Vj`&F4K zM?S+kUS!R>hz@<%_UC3iDK#!4(lc!~%dIXFw(j6a*3)ne2!LyhG7zP}>zR@zTI(wI zk;^tc*xIp6_WWe5bV@8UD+5eipn&}nk5g7n`GeK*S4B99$ve2yXmWIG&q#Ple)kYu zIuRW^M#j^So1@^ V zV*&B|_kJ<-?Q{Or?rAyHAk(-UQoGUP7c|9cQt%ntzdS&7# i z;dMykprNF_a>HFA9yMvrGLB%^dNOvqW|>ODABm*t<`Iq#iZsNCno*K4>iXHJaF${_ z63RX6z;8SP1kI3IZMbI@Ux4$6KB+a8VrX*+5{$39KyLHq-*vsdWjW`9VXo@IpP5R} zPd9sHcHme+GM_bTA=D|7Q9m)l6R#(5dwPlbh5;0cO!YEWlq*HS@eskW9O>%miy=Ay z g5t|&QD- GZ0<(vM@p% !6GJ0d3OB}~6f*V`0rJ^LYHA@;jq{&Ml>-O*_- z|5tyzhdL?DP-ex`AHxMq&}4<*@qjK`yM2@)o59d0oF%Fc@c?}w6z`{>$xVYwYZB=C zJ0yS>^)sve2bT3X$}A9*v&hS};?vIPNoNwTM{CwWE6gO#=vTFw==`LXi82&@YT@ya z7VG$w@Z=R5IKxRBZ->LCwl|nr5a;>tjN2-b&<8+9#=purWNh>ZIs`&|_g~H@aT;UJ z&EZrqZ=|W*U=b8p2&u0FKqie_6y;-C^{nezB$4Mv#G*_Re*~LvqvW+M+h|f%)smV) z#l#NoYQ;AD0d(vAw3!c+F;^$Y4B&&PnPJfz1+=hQDZTWcrafH?@Ua8J{Rg#=CiRJN zV0qjON<7OCVtUlY7Mpp^ec4>6_M&Xt2KS7J*Ic>q^~>0lgk`g2*}jlcS+S%c(|hO7 zX^vGCNVg @jpiT4vGuTPcmX*qE@s;2H~g|81YFc%K7p?KM{tuav#sZB zUS(S;wZ=>~EO1r7-EK)=kYA0es?tkQh4*D*EVSh@^?5ioVKv7J&%N#S)fCV$rCXy@ z?!A*g_qVU4ttk8Yy?!oH0UszYJc?+ >p1k$wl5dYX(^ zW|C&ff)zGT+9-Q2x6R2(BZi)hRgi|Y4%NwT%Z5J%zPiend? ={0gFX-)P6;4;5hrOS3>R!*rea(Y?qiOO3T_;J=SaE{< z+qF5!R^2-_zvg%q$0h#FlDPP#8Tc!ftAcZnGNR1(-{lL^IjD!~ !(`uZgvPC)0h#CE}VXPbqK(!6+- z_U3Cz*F @P(IgoS&1muJqAqJxMGNnH>5@VYqEP9=%PyK}9bCnWMI}!^P zh;8O_Gp)_h|Kj&iE|jq!=la#oL$dX_P8K}FlPVz2s$>kLf==}}5p-%0W&cQ1;}vJR z-1&pR4dhO$3jzeHvUYJ!pLZ*A{hK2&gu@5`BOUU*T%-Fp1K(M8$k+MtRQsW=_!Sm( zydfJd@rfdHa{Bf&A|3d1`(~~U@XccO7s%D28 z@aKzx#wukY5528LAm0Rijoh0aTBvpS5xp5Dk@(`uMrn?VM`~e!)`p_>eFETu){$Ff zh~U1lOB+udg5i#G!d2u@(j~aR8Z63tC-+vlQB1PX%T^FoW8HhJ#6_&hH?q7bzw|OY ztz6`F%6^IAj3H+VyG@&=hEFy_gZ+NC%=H54^dU)X%WNI#Qo|;QveYi+dt?*mt0}77 zw0P3`5_kNQ_iKQf0SZW(8=(+0K3mtHn)}e~ZQY%o-l-rMJ2^sRn`#Br11GNUC_9g2 zcu>LpRQpx!@@A4roBk90&vJ~PKYeA&kVT&t%&k-zy&}ec)X#%5%#S*fr<}5ArJ %&;@OWL=R;-o0vVfoVT z@;LUAr_1&F2}5runE;#7B-*(O&^n5k5+Cn_%C#O8dBm~A?+(7jd47fo_eHnEO`<*X zx(tzT^uYn?IOUiMnq?yl$!&St|KLF8(Ntb*pbq)ABWZp0c$eo3G^?i-#)hPxiUZC< z+FtHgx|->t8>|ZL4*rU)oTQ4?&!z{-gZ#JbX0>-ldAu}7 Ik(jP zhgEf;NH=qVR#GxP)Lgk4&cc{$u>)uqbhT4;C{}A4TufMNOXNmR?*+JECun7^;RHJ_ zZ&3#ArQ@GXmhWY)OW{L&74;iz_PqMcT$$S(1;S2sGW)onMQ`WxN1-yTeQffyWYgK4 zbDKzu6~LV7MtVXz*6&sful~pr3D_dw5nR8j!IT{y60m;?nU#hw5|XbTRPbV9_k4o&X2yXDpkDJ+65D#{pswrs|yvOd0B8TiX(gL({X3;Wgi@iHu&0$E&tEC8wrC znHan7wJscDmFK&QTPyNKc?XSIos3&RblANG`^mhk4+M%~lJ}$nC^>kBYA ltln;cQ?<`h z*{sl4>usF;izjydc;L6AMOsvU06816k9}MZ#iGME>61W7!z dwixaV$jtW8Y1Oq3uu7izo|3Icx%lHCS>BNdiKnBgVR=C zZnHNoO|8c8&j_3f?eUeO98RBF5$A>f396$cUT+Y{KD6|{u8(o5mh@4FR66B_$@z@{ z(MMZiu`>xa@M(t>>i4VkdL4L>Y%)(F@?fPi&>TXbRIrgNMwPJt_QWan5-9GNVscSM z*Z0ET{ BOdvMU6R-Txhyo$6SQZ(OiRDQAis9_#FOy*TkWS eiGRq->6JSAG%Rb z-6h?>jP>`M&@u1`O$|UE9$!z5u+oI 9bl@^V{lz8ys9_=Dp7T3SCo95YH(lal zr-$)tU+X1$942v{0xu {eD8`z9cdYcwjv02L4*mF}D4l-Ht35`^Y$Zq)I9H!Z7je@Pav_&wcJgGA!d zW)4S7IJI-&zR8WWEg%C)-*su TK6=XU;eihA$YST$;anGP za4+*9^c)BJp182{_A&ZtXP#Il{~HPaf$zQtirwifIo;DBzX ydykp_w z1Pa-j9oyt=bETrbKli&m?t(%_md_d>acwy-t^QU}J{Pl~{qQUaf9Cs>E!-373OB!3 zmiOLQ68?9TaJ!p_IhTR`W1AlhuW(`h(dZ`aEv~rjsK;6y>vk<}Io40>p%B$~Q(##A z)45iEs`x>-+c7AFOMbpGr{8pU^9W|9GoPc}7EaBg^OMH&mPV<~g{nQCc~c#BEk<>^ zx7b}N>bG`6I5p(l^T$>!589P!5!c&)p-xWS>2gKYDdXEw` zvX@H0Vc8NSagWCUmO=gOeW3Ch?lq*R{*V9oxuXs@x;{~9^Xhl5;Xwn1dMSd}ym4}d zivpUdO`u5WRrjZd0o41mW9tb$vxUb4KjF!bw{X+ED)DxyL1?fYSuG|Doec^9vo4=o zU-#GzOr<~l9wa9eA(T!xT=3;uTCM-P%^;H%3^?G;^n5Ad0Ij`FG!q&2v`x3B>8+*X zkGwne>%E0k8@?hL6m+DVVgZFfM-&{fkEB6eAroWUql&2NOe;P}V|K-G=M%oc)`qK? z7*lu*!^~p$Ib+5~WHf&-ANAp{sTi;WH>&r)R_Ic1#g5nY;eNTajk{e*aNVJ0H(%k4 zg+V=`n^%4?Ex2}YA=luDspRc1==wk_oPS*}A{Ta+WD;gfj>Yz{>C4^CD2a4V-w51m zw~sk0>sJoDe7Q?N55`r01GRRai`YxT=5~quL-yl+zyh?pP=jE7eh;d6vef#p!n^NY z{4EV4p;_>i^j-_l&ONpObHo}E4n&%o73;VizTtgS_G8l? XFz2TV`7sZHv3YExk2+_*I`% zeV~x-QTuh!`H?3)2y#L5_B?v_*YbJp$v*YEVBl)e`bt*uK4s6!BD8gu saPI&D!hW(DEeK_%Y`#Y6@*Vig5-T`Xj8pZMnic z4t*h~<5{|(WiBX~>-HWhKaZX4jwwwxJHT_B)hFp`E@Q>i 6mmS5AMQS)`kzD|Vr(TGRvjMexpELgMs zGk;W5oDj0_sk|>zM>FiS%nEzN10-=Sx@$HXIksjh2_dUGd33LTO-boI+HdtOAG(fw z3vH(u(a$#M0q^WXmIXa?V3JL%gSqBW=j0h{9v6WVM^To|*YORwYyLZoo|+WU9Ygt5 z@nE@Xl_&4+@I^TsZrVBh+dq@d{%oh_T=Q7P{$gV~W79JjfHbQ %JpU9 z_6|eO_Fn2_gRbV5oFH a6 z%YAz)^-wc}g2NqnOw!oe9athB_mlI>CQI@HwHAc=2rLup>D4 zqZp$Z` cL<%S-I*Zt8JqP5>cjdV-?} an2U8#*eYNTmV@aea0lJ`m zmp1qN^-9;{NJ~)Ys(JNp8%gzm7hFFyFhJK5&dBA>g0Vkn|1F$hH=PRnN>B(mo!3By z6Do2f4z;VRf_!>oKkRD>)OYxzfX+{OJ8UH16M2rUb%Brq7@gK%R~>bZVLLe+ffXxy zAsb~Kg%0cSIerK$E#8OJClWy}98y6Z +_6oVu5l|V-%hG zSttfFDko0ZwoL}!DDl3pTf1Ocgb1lZJAgfCFVS(m@NFE8xY{J`(@ej`xPplJ&FRM9 z6J6btW`8qZyOHMQ=<4yTa+Za$eYJe?rI F$pl?pj!0^V5 zwlwT&MnlstXgPY*t;F0KDq$c4ZkD{d6Eg70hA~ORH{*5D!4eR~Iy Fy^j*m5`zgmh8`v%gmL%b^k!JiOuVO#ab zOg}eG2pBEezCS&6iAp^~&mrIVdCWBXSue46-*;3j6G}FRz}Jw5|Ky0$m1Vo9y;nj# z1|IAcu+j^CuH_yv#ufCGpu-g-h$(+H-jZ6y`qX3CdxK6zf<{~87FQ)zTypqE8u*!E z`F)g6a(*2B?Hz60<41Zb{NJ=uI&P5-I;j0eJkVMxi%A+tKQ>jptkP{=-5-U+1%-09 z!PQxJ)Mi5Vu9Di0gUp>kT41uVm{?@O<6*O0K}C7{OYx^BJNH}ExHuaZaPe1&@Hqvx z>f7u~& J!ZEX;_jz2V2YCsG6jcX6~wz_P-BzGw5z4IbP* zYj6=dZ#+W{oNP%de+reMU Lh&Eq*9tv2isC5LOfk*O yd9bTT6B6HsLpejK;=w-i}zqT|qlXN5-Ddj@; zsqZ$(zFNJ7KiVMmz2&4M@|0H#318j7g&qD#b)l{~@#ivn#uBtS;9ii%5Q9pmzWtQ~ zZ4=$sHNl!V^^(uKtqfQUw-m7Z4V7CD4J>(Jf WHH(}bK z7`zM8^>$Gzc~E=A=1<7#eorUlXU--;7UN0t!I>wtcGu;;Ths74xR-P7kT|Dv)6frP z4i7b_Lk@NcZAkH>T0T&O(+a?>^IQVEStbB* RBN{&!g-=lgFec*wlZqo4NCSit|0lJ9S|R1 zMsKvJL58{7yP7#q>-0?!zM+}J9FJ@|Y%23p{E`Y4y>k1Yol?V#9*M#O{8B1@q-iOu zzz(;9Jvtk+VA(hg}`{)wVsa8&Ddtz);&5mK@cDZOln@WJIeY7{P6jzp-M}>=XKl ze}%*vkLP6+w@nqgqld1%y-YWKANBQu0>OGvmCegCqtYI7{?bC}e(%Gc)<*v3jH7dC z|5;{^i-i!ci^b?p$4(MnmN2j7${195M|kH 8OzKpKUH!99agiK{sVF^- zd5Qd;!sa ^PKk(?#j#!bIXOIU}ey=VICemO|3ptI5GMxXnM{&C5EaRn#-bd6|X_?VxF$bpm$>tjmylMe<8I?UGc zM4UFo5gUw>IN`v!{`k;fqgLS1Wk;9X-Kl6$>9OUIYrF~Jj6TQJPZ|64&HLVp;o1TY zMo@onW0^@WeQ hC> SYiWT7PH&r9#8z(gIymZrbv5CZFPbkZ#`s>};%jR@^rCDle@@w|CMVo4@ zIDIfLCTc|-4ab6s_MyBOuW+QLgg>g)mzVeOo7Q<^OB5Y~)esvZ&^(oi$t|x_PM`(Y z2Ly$zIx?=f08OU*LsWX2WYhaYJ&K|y!)6%qMBKg(7$6;}0F@B!OSZ1F;h#@W7kYzt zsYMy~UE(%bTQ?bXhwD#;wXaG|oQ_od1Nxgh=GvH*S9R|kR5k|nJMMJq?adIiZod}M zSBeLq#vYEMz{g4TRFB1Pe6MvtJPa0L*Kbh&>A3cj>8v@9cYcO_^2Zr3b$hT3@rvxz zkzClsEaQn13f0F=K9Cm(^{CPdIJ)wp*e84;;W*`r)p2a5I+MBP`f{z~2eX7^un)1) z_ji(NkvYn*Hb}1noJ_&7r5-w@zdT`93avvya75*So&mf8?aDaofxaqq24gY4hI?w> zuuL%Xj}%=f%;O#BO8a{An47rOXNl!23CSqcO}qe_CEbjnl1H;i;tdr@1|_TnHwo%n zFlzGsJ #(Gm+&uicZ=bfse;J-$pRMufX3U(FaL zE}Ia$Lrb5$7t(IW-ML2$pz#H1di8t8`~rPHT?(3UzyIa84;Bs-&Gw51dp8I0gFEUk zoi6n8BW{T#y`Fn9j(S;pwN6 f{M}`E?=hcgv zChG&iAd|URuO9yF{-aa&ws!QjF1-6&?BnBw)z4XDI&y&(-F?&Bn4D}2zAggUZv~PS zwI5S7i1ZltHN#DB_FGGYA4wSCi_4xCi3#7sOX^^VK`K>_1%0C>VY7HutN}9KSzvI7 zq4`+iS0IQ^6VU=9Oz6uy5Z45E;T Yh`Sw$!M{y^B~GG~;*HFNB{> z^4J^dxvO+O;hh(aJEDZF7Nho}5rsK|tFCEph5Vg&5yep8nk8NuPm2rJgm-*btHpGn zJHJodIw4ryXLDL_KN-j#L|REp7-Lz!2oyqz|FQYZG;}<3``Q@j9oQIEo*?HOUF2Bu z0%3I2LynFYJ)ijO)v6I#?i+xX#I3|keSRuuLgB@}_0$;4a}Yh-e;K8S(sFlSMgs>6 zkjoBea4I|eKqnro)l!7%k(e>>fP!aD@mem>Kc?awwA8a|0V7YBJnd5#+;eW%SSj)M zC-i7CM+w+^`G#0kjQRW8?QRKcw%-{#l^z_?-4rW&+%nQmVbHqwY$%K$xww>S(f!1X z@;lsHv&^UV-(wdjY++^^)A_|N@Jt19r#B`gmh&hqbOXJrIfrE3nN-cnwy4Y9HXzoD ztCIeYAKQCXvhlX=Cb;cB>Ba0aE^hZXyPKin=tZ7rIk5=NkV$e>q=<7?L+*pzH(11O zZl3zrxf6j{SU$8GiWn?J^x6cVF6(;+z!AZC#M$e#2|D6)0u~g*^eflYm|A09*8%&N z6k?{IrYeTlx(Uz5;!PpNL8bli*akRI4RjRd%?2L|X}*LT_ZxQR &Kf{s%LpL#Z|W)xCEQ`|Swq>~``ceK9NNf_?yb|IHIYYA9|z05lb!vh)YKS!#v zQzsIYCPPJ=)Q~3{X~kaiaz;_19t-*3s=%*xv9-m|qloF~fdhz~Og~$p^CLt{CKrSk zNgb}|!x53n?gc<=Wgt`f3FW7}%S@kUxFJIR-&(1{tnrzj4OSz~iEwV65bvZag6HbG zpl-GYwj4e29`Fsq8M)<(?WSaKRD2p%1$jI&dY(p2Z7t^*RKW+3*J5_7R&&V_5US?h zO~_!j$8_8|v^G*UxR p60(4gi=($guIMaddI^*0^h2sDc?k+G|D<>T z7Z;h$NT*PMVx(Elkrg(Grl+|QxX fKMkn=*UO6_?&{4CS!{<4C+O=)q{(JndRU zGiSOxlxzI8w4{xMC{M}xD?fG;4sPb>=P^9O0wtYX8WFV+gRjcr6!fofg<&VATMTcB zr&qIj5qIrZ%u#y{E!*EB@<^>rTZom%f3Q6H>SnN4qnohu)h={)U#qBm4`ESsSyhyg zCsH7a)1b_);EVi3t29a-Exo|6xXLd+nMf*cHY}UI(H&V;De)VMhR9Ic>~lX=aj&2} z0qii%3$RgBs}|02535!UO2g`MXzI$lS`TZkR| ?v@KzNdd zUnAUFBzGWIYfG!XINK5|R>tSmNRmP}{zw5tu+tXmaEh{Wol67Hc}U3YAp%MqM!qu< z8M>AK%C1pOC#HsO=mV#!-j;{r6^8t78lR?7E8Bj(>dU8##$Rc+mA&UUHcR51I~~<- zw?b6f7^%b#Ln~I90yibeh9fx8j #RhaF1Ibp zh6*A$o~$oWf?wYW?<<`Kyj{I