From 7a54b5f41f8317069107cb6e92cbeaeb1b341967 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BD=97=E7=A5=A5?= <1366971433@qq.com> Date: Fri, 15 Mar 2019 17:49:13 +0800 Subject: [PATCH] add hive note --- notes/Hive.md | 64 ++++++++++++++++++++++++++++++++++ pictures/hive体系架构.png | Bin 0 -> 45276 bytes 2 files changed, 64 insertions(+) create mode 100644 notes/Hive.md create mode 100644 pictures/hive体系架构.png diff --git a/notes/Hive.md b/notes/Hive.md new file mode 100644 index 0000000..33687f0 --- /dev/null +++ b/notes/Hive.md @@ -0,0 +1,64 @@ +# 数据仓库——Hive + + + + + + +## 一、简介 + +Hive构建在Hadoop之上的,可以将结构化的数据文件映射成表,并提供类SQL查询功能,分析查询SQL语句被转化为MapReduce任务在Hadoop框架中运行。 + +**特点**: + +1. 简单、容易上手(提供了类似sql查询语言hql),使得精通sql 但是不了解 Java 编程的人也能很好的进行大数据分析; + +2. 其执行延迟高,不适合做实时数据的处理,但其适合做海量数据的离线处理; +3. 灵活性高,可以自定义用户函数(UDF)和自定义存储格式; +4. 为超大的数据集设计的计算/存储扩展能力(基于Hadoop,MR计算,HDFS存储),集群扩展容易; +5. 统一的元数据管理(可与presto/impala/sparksql等共享数据,详见下文)。 + + + +## 二、Hive的体系架构 + +
@p5hd3U04xwbXQF`m>>=RM8Hq*(fLV3G_2dXZRL%O>b z5;`r)BedGfh;R)(-GKb1hW88Z7Bha^gnTvi310~@2T5bP*KU5^58m0~Jat!MzT1Lh z9atVEc7WA+8fd<5x2>5A>5L>^0=?Lv!C~+8`Muj^G)KYsfYiB7>)&30#m?HDYS>`r zV;8JMk=sYu9gWYeUT~Wi*g*7C!hi zvV{A!-5yWVO()<)5NaLs^p8ao5s#Ve;XOTEHD+;=Q=uIlU2h@M^&t29T&56J;i`tr zg&`Bn-h2re(5MbA)T{s%3;>L;cJs{xW>6fz^H;N;TSY)&nQQiuEdWb{$izw?VSxle z#8}}&`g|(g554<7%G!}F !t2j6RGzh-uIL zsq~dij@KqKxNv$3%eHh$DMv!5ZqHm~aR26Q$_!!m{oI|9o3R+iq7)B$_{;`V!-@6W z5dd-RR=*Oe3Or0*Zp}xO_a)%V3#Zj-;vZetRxJsOd}TbRc`Cs;hN>Ivtn60y @<*bl!!(N0 z-3tHvMTt-}+MzUC3tVm7V$dEAb4}^xrvTDPL?*o)f#+$#uvxg)vwQ04i3~nyWDDgR z=U~Oen(MHGE**TUt0M(pYM=`WDK@C3v$HzOtE-vcztiNoW`llrSb6yd29}NP7rEX< zmqMkHEAtTP^N9J5iNBZrN?2JF{o$9Nrfhd59_T-9@dsLse zWlLyzQ&H%QsG+V*+d!;!G`mmE0B{o<1e=WXSU#z9lRmy`@4+;aE z{1#~9v(+)wqM-f$vgk)3>88GG7OS`Y_>>?n?ujWPGNwOlM@mhN=)T?e{<|Vr`@otQ zwEMmcME*Aq(q7>Q hQW* zSe!g7Z2SEyOnKy!dl9#{&Ko*~*! &uUjM>ew&7^Q6w)gTZ{eP?rrB #zCwRZ5e4etu}&1OlOEmSCRbU8D#-j9eDNuL-=Z}B$czab!nTYjn;5Bo#LDu1ju zp!}ufo-<;Y(ok}oh(e|UOMLfyCxpbRWT~`(Zd!fX{3HWO_dBW6vumsd?Y*t_<_PkQ zry0|Z-bQE7{1cbnqxD*eUuaS8SzJyDv6)uR* NkeE;g=B+Oj*i<#vwuM zrMA*bETz{YuI#AevER7OHji3EWI5ejJ{V3X=WvSp-e_L*yM7p ppboX_3W y2ysUHCnD5&6-i6Z5}o@5X>(FRqv3VokNQS;H;QJ5&nrX2j$dF(IW@amlNuc7JZvj=MueM{C^ zqbqP@T+%!t2XAR+%Sx(=sg|q|oz(p%m!T@IOLEdqyDEtg(FgK8fE--s1nSbrT1F)B z$?yXezUa0ZKdBE}bHd^JhHmO`iB`_?q&TF-#{qTV*+#!$_?rD4#;xK*2wmB68@o+D zSA%HV4g*Z-Aw)kdCY`m{3O_ByY{(6m5-^d2fwj(7^X)-OQDD1?v_Zt`(&m>cV< o||&oPY663>x;=r@ff*?@OCi zF{6Gx?t3A(OA=Bs7bee}iiABXa>O H4;eFGaRIMIU*_ zd tfgpAF$h&m^S~h_=Tfhd(|+|YD9psDMgzOb?8S<0W4AFu*j8X z;*0QTBIZDmvy|0wUwZq=2+u1^jzxDmBr|lucVD0^WGh63<1N=W+}kX!D07Sv=Idz4 zzu>u(H_MKWLYIOUlg^LI-`yN?pwV+=sQRnF3)+S1)DnfT^h kLT5yp^Bgf`U} zQ@zX`TGJdxUOK)0ghP3A-^Cl_7BUKt2UXhSz+98SQ$Sh&yMF;Q$`73x`GjmZMic7$ z04nfKt5@6G-qgMhy{zyYhoCp}uE-v~=k#1bA_9?;ZyI0!Fd22+pQMgD@yALlageMK zhsf<$BLj726|=up=_BOysx8&% )|nDB(DlsibvA=sD2JhU9i{5z|wz z9D9w*Q1K)6drkAXvlY|Xk7Hh*HiVbpjr@5gP-}F`=g#k9KDb2A|0R#-@!@ktw8_Nk z{5$1UkIn}2`M(-PEk<_O+U3=*QUx6M&hc QYja;##g#Hied?rV zIU|BeGy0v)-x-no3VgI&&rlI@&EIf+7B=FLHRbSFSH>-#!*4nxcM8j|f0^h>5s3VY zCPRV5ihabip9I?_1DlBwBtlvSbikd#wQipc;`R*;PMCkg#@ZGw?^SO~NUL?R(jsrE ztB0{)Hn(I%y+f2h`K-88_nGKAy@ly2HHS3g=Kw~5g@#?HKcY;=Oj?QD% 0U2kC+?6g|{r5HBhMRdLO$zYj%VRLL_-x=4MTxBZ0&my? zM0e4gzm86u3$10f=}}Z!u;OXCJn>4MO!g9}jI6 J(A~L1?dP=F>lSK(S6$e9np_hPB+_9>Md11V%H>$ z^?Eo=w?9RXR;?C#eK(zsj(y(Eza6c1Gos?>_78C>woV_d(bN28Cj)^1Bx%`hWb^bZ zfc%~m`UsO*z7os~KndAWK92UGb#@J3Y^@$`wU?J|isKL~J>8C;_Kl(o+ey+J>%fuO z^xMH5FyOx!pnQ&~t-q^37;pAeV2XHw=}J_$xLJ!rBX_92=bFh33pLD`qh!IB6qj#8 zO7%%hZG*F6N1bMa!wr%9K@T-?rsXT_z3#>Y p9Bgky!)&w(jPRpghB zUBAOQ==GNWCZS^y`$ggHZVHPEaZ+rC3>v_Uk&3sLNs(b#TaOl@RVk8cM)yIfi!)!@ zKS6Lhl}5JDT`{ ktZ%OIk<~bzEp*{RG3v+`R)zGJ9G@;6}R;h zgvjHlx{T8epI}*jZK)Q4p0FsA^#-1oNe*ck-oAJ$N8<_dOK4X4ON@5M`v CNQ9Dm(9q&1J mamAh^{dRjfT&ES+74 k41<|ti&>!Pjnnr%?n z%y@!Pa&XzC{aOrJkwYD= vPs?2nq)jNyadGA=&H=Pfu6G6%vGAGeiD=VZ`tweV1co*smJ*4L0nH`CgmXg|< zDa+1e2Yqs~ k>$SbK)ukj;oIykB5Upa +V-_c|gRO zj9aP|j2gb5K%+5Syn@j4AdIBtok%>d*zeZpT&AFGJl;}|Cq=H;87i{EqDpAG+2}iW zUqT|Xs9lZ9c7FSJ^*nf3V$u3!^Ws^PO`=eQXH-ojQlvSF*Cy2gs>;Bdjm0zhMH=L- z9;U^*xZZ^?ldG`JzyUr>{Z6ZT|I<0vOOD(o1+~*e1oztXWwy)DArZSq^2_pE1aLr2 z;529X*3lL5I=i{l>7%@?EJvkI&77>1ROqtAy^ru8>xFlWj8trFu4reVq_Z_sPd9wS zEmaX_%;|aAvP#3_LPOpx-82asNZ4-t&0lGaK&;`goW!TX>7ejJ{phCtH_{&!z@x6- zbBh9$f`Bl_`rxxO`|sbs6Q*gCddGeLu1lkn&@X0cT9^rshaO5mAgOYC#21ky0#bmw zfu3`G?S8Ta{ar19zj$xQX{CH*@prheTt;)(cbIxy++HvCW!4}}MOjtOX6rDUPH?U3 zsNzLj-$;dvPDq%aa1C (5*gm2?G$Z$EPY(5T1S}j&*{#*dw}!+k z22wzv=>Yv~x-|mpc+-p-dAT?=yd%y&b9d@qI?_&+X-p+$^^JlEGi@5k&MeK3^f)u$7?quv0A4 zox;aiId3IPqF3-%sZkr1D=YZ`G y?-9U5g* zTldzXt2r>JYsOr?oC@dZcDz5f2tH1#pVMbWJkhu8&y+B17e`{Ehl!V(qyn_84mP-j z4dqWtBGag9q|L~<4JHj*u2{mTQ_Og7j@oZq$(Z(a4R4`UnXQ_g18!V6`BOB;bSEUu zA&o(WSB`TnYW$mMf>+wDHCA~2LPX$FNGdMP#GFv}P7%B3iHeR53A)cVzN(K_X^7?w z{gmc 8!_7Y=RGF3ZU}FBs^3S=ipspIf8*D*FXb`4zLJ>1X4TZTeI&4mbS%}K7HQ4Be! zui5wQTt|8EitR-7*5+j3nTxF9d-g ^ZKM&638b&*s`zbIvN$ zTBEQwhlZ+ZD#zbU;?7g0Mnz1d b*#ZsPr)TR^qwi%Y-X={hkeOI zq+_U1ALZQnLlsco{z{2P*c7ea$$r8`pvnW8cswfyqmZ6 QSMUs8wSIa1&khI3yQK8O0)OQfp{Wz_k88>6(Qon!M^$1AjEawf zCF|N1X~fd<-QIX4_xwSKwjS1^y?@w9ntE{ecc=m5gn098STL!zsLnWl$A;I%Kh)} z=fqpIRn)uDcS7`vcoetBn$lnL7e84TS7$erkD!@Qo1Z2K2ANCC+(2pr%+^YLEU~xW zJUJIfdxyDESC09&i^tc)F9@%b^Y0ss>0~Fd>+B6V1cYh%%lUS89h85MA#LRQe9Is1 zo=Z?@LN{1DUL15vDlK!L7m!IbSia>wEm1D5BGL3MKX&Q6q+xvQ+GxOz`H+I8XN>NH zuEvO5#NTfG=kjPj@d`8dvvSyCkbPS){kao%__)rMAr$Pg?YrlkjbDq|4e3fpPdIYg zsuE6Boh1i9(d~SjBal1)oCtgI4T^|SIww0oN$xhG?$vPdBI;{ZLLyFtA~P-f^}U(G zqe0JBhj}}v-xl@@KLgATpOsXl3j{%<4kQN2YFzJ;?rkK~4y)@tqq^UPI zi}!EtXAuguX{1mWqozL~Hm9}NfMy2 t5hYRXHyvX|=-C8I|9W*iF^ zqacUb^`Uu$eXNGi=^ssWj9-5&?pORvt3ON~S ~Fe6f#QI6jc}u{1^F$m}}> ZzC)n0!HK(j2=SZg5fA@BB4Bz( jBz}}GlAvL;$A;~Hp-82 zsz Y_;aoDP`cmbF2^L; z$`()ivLOhU{z^^UcGYy{((Cf*%m`9yQ3hKIS#Gl7#Tx6a56!Lgx*HB&Vt9CXE~ALZ zci}36!ueZbjVOdC8u&tA$dQogjkFQ1*W5VwrxNntfiN-vz4ioR>2}bt#rOA?5^Leg z$+GcSZxO}Ut})*32g`ljRo0 _`cczZyi!nri#(OQVmiR?;%`0^ZKPI9K$h^DabIP#so^|+=oi62WMZyqhTum= zw>NsGOgng}a);Ut8qE?mttNBTEHCA?oqtA|@)xUjd(WcCyxkj8yw1i)i}k8aCmo*e z-%h=|IS=WvkgM3K!%A$@&b*vRaq*Z?s3t}Dv^~q#700)<`k^4~bK_%b<#%f>U0wsQ zE*x4b?rS@E;uZahh@xs^%u@FKQvP96h2@hU)6qQh0uE{st*o#CgjPfjJ%S<2H$kee z4qVfk{v_V%y^gkX$mmWywF*Sudz$T7aTfRKewn;NgkkBq6)8Nl=|5REsTN!CAVHI# zMT{uiId@71(N)El=}vNa%QKUd0&Gwl@)+T&q+a~LK`Hfz2HVYAjTa_|N4x38bBQgB zXbf()!~4Xv8Z`{;m6^m%^$=^aH-eVNVszFcr#p;mA7*oHp {iS9t zxm6l+<6^r o{kQR4EgNv$g35z& zM0gF<4jlnc!>M|GOt9D8K>j_SR%gBZ8F@V={Y|eeuJ|6qVF4+du9sj2F+Ez2P*)+f zpzb}yLPVqT%N7!a3%3;WCuXa<$AxX)3&M=(b!p4){cR&(-X->AL@+w29buYzvyAIH z;pI!JuMEYpjI)bdwxo(?7qx_uWE-&bt{V<7-?_G|ddk2?KWMA|{-sRD8(qMm z{uONX6%oTxLRG&0J^y>q=w-h*Gx{mHOXf-lbmaUQ?uv-P*oV89?HmUTlw8ibBVXPd zVQSn#l`lXi)L}uHy;gN7WtA(reapRVJ;Q7(tgAAgb6n!SJ&*zU`%JBk-o#}}yZ=4t zA_A)2;vQB2jSi_3Y-C<@y621h9uu_IVBSTd&g~spT;IcAnDrjUUs&3Bf{LeQ{~YLc z+oT)`ad2=jzPuw9aE+Bq<0X)yczMUANZ}>m)9+dG8Mckbf1J>s`uNAImv_v*uU)xK zlJwV??n?}xA*4C4-FtR4skO$BWYE)g+jx-JbyHQidSPZ)^vzTjq)LtT5U2H0E)YLP z8Gy~Sn2^F#c0^Gh;xMwPyVZ@`S+C6&A)yKn&Fg+Qm$MaHWg$3isZ~+i=I`Yr+N=DP zTb?2pt^x`t`Ig|@LrCCfXBr`7{nl2|bp-o^`4`56gHe%d8@>$TP$fCaeFAuQbolyf z5--AsE9FmqriCb1b~9Q )m_;uwJPlm z$Apifx30T1ma{6)1}+p7s#B6G1Pv;%h%6dTt|*FKHhUjoB5V_2@&`r!Ufb@GeB3|V zqT@6F88a|hqQN2Lt|w6nFR1DK;!#2Ge%8;i(LX CIf2WfiOdMyrhH;X5R8$3mX 8RK-L#bC z++|Rb%V>Z=AV47;aLRGS-Ydkq!u2H-6%@YKx{ExGzB==+cX>Qwl+wQZ$Fyq2p0{l7 z_5B}>|I{kEiwg_;lu~oSO2KhEnh(2HF5!M2O2t#K%^N`C4eJyUofFezkMNA)ic!gW z?S4&W8~H!I0ML)f5;qNB7Hy|+5$re8@x)nizf9JD`ax(m;qhuN3S$kiG|mbN3x!;- zfBPHFN4h0hWYui&dRx=Y1DV3r{_9re?M(}GZ{sRZ^w-X+A)0W5oaPjk?oa~k*2GsD z=`s8l@|?EE-kg2nZQQq{6j93$e&&bx5fy{)A4;v0uFxp4QVQ`$kP4S1Sqgvbb9uz+ zj !Sl6?}vxCE({N&4g07(lv4cLT18*A3eDw=m5gr7 zm6`PBCTE{7P&QthOP;qh=*SJt`E5h{ Uky)-^b2vND(HaJ%-GvzmN$0vTWlaGC8Z1p>Q^7+|mMDIfSnBlJ zWIj951 eyjj@2533kEpKd)~HOo*Wk?j1zn7|GhNxxtwFgM6y>< z6Y_lU`}%*pcT9dw4NvK4^sE*Q-7tfkD7X|LE9j|&u)`!H+Q)(NccI&}2>q(Hj$A}8 z@zg3f*n91SsGrfOSeV~@d@|Fp@_os+MwprT7s1bTHi`800~!y@Y5LzEV)OpOODE{3 zlb>X+dx%w#`IyernyXj(4GJQ>7A@HkzipC2y)I>uCUEU<;J+k4YZ+);e1wItUp_Z- zdqPxFN%~dRhxFrWByB l#FYLjfX3R=Gw;i3_<@YKvj1Hp5;SO}b3Nw9qLH-GH(iA~+|$uznM+Dyu=l8kyVK>KAL(Wf(Fe4YzOM3f82w%hmx%r9w&4$cEqU z)p)vvX4}r>tNpq51-I2n>i!~oJHZof+%LE?U6g%p`I2t)F!}FOEI%A(cqUr3ZY8BI zTKo?5^q3-Ih72?wJK&*Wi##3W?{MEsYls!XQtQ%7NhmX9`vy{(AkvCMJ)Ny|Y;6}A zl{1L7d3*FD1lNcZwI*B5sc<`HGE=UgGl?sqLQH)(5Fs`x ?~rz?<&32wfrxU3Z&Grx6xmj5Vq*eTaKSn;MI-n07S`U{eQf`> zrUk>ukShCt@T2XN3ccs8u>%<@k@KklReF7B#wB+T=>}=m0Ny~Jfi%;rSE%qs^?m_3 z pGFD?;JmhCet8M*3UZ7Mo33E5#v^^jlB<;$bo~LJvkokch;2{mw zyBX`b Rfl88&BS(u&uQHhWl&J#+jds$}f6Y}}~N7 jLo*bd^A4A+FQ1KtAs}Ty zo6)EY@5Y4=Rrl(V7jg0Y(blc$!PSoLM-zL}Dsh-ygrdVB!09Jh$Fru7B=)4S#f&Sa z9QMAIk4l5Ho7MK|uUT}nyJPyxO=JxSno|?W4yHBNwC0y_^|V9qEYPT@1#AQ^y-wxh zi5!{jVfY*KlO>kWiPnUZevL3^Ls=e6o%8<42}~JRLuS7;PSyjH;T^nwlUcqL8>dU7 zlfivI4_Q*eKQOGmZI7lHC#u^R${@wMyXovijuK)y-sAZfeDXrIuRMADcT;Icx)I^N zNtHySaRpHqt>vpok 1CQYFw IL&`2Bg?E_ySkJ&b#?S?7rcXgmIF{RpeYmO9Ra^KAA> zx#kGVC5q c`xXyaJt+tl}aa+4nHIz^3Nmh56 zi2jG9b}6Y18pJVtO%)qA3XK3`UmgI$S5Kt=7gS(J>-fve@2}n&5wDrNXT3VrxXfpC z$wDGtbBTNCKp^}iSOo 7c*Iu>6++-YyV5NG5` zRMacNj?w~$+Qg>vzl9pGU5vDWw Jo3Ns}+ujtq Y5E1j >`c3H(<(wiXt8op!Rdl-8GiF8guv4mAj+8mlrC@+$IidiBLt2jH$BjH zqQ-SuQWBaRcBjrQjjN*yr+0HQJ*KA;1q;PtpFtV8Q#ZuLk~2uKkR+ zKkLN^AX7N#)5^KIOwQnXC_BOLIy}{Qn@L{equP)Vuo QuBp #(Cw6VW`Nx4(LD>
RdhUkcml69mtLnluBUKlJV&F5&ki1VsCU>>$Lxu!;lxi<4=5| zT?mRbENkYDu;d_+GFAHA$cE7=4YqC|w3KO*y!?Y(yIV^L8nL!+Ti52$|4~42+)SN+ z2ONu oH0 z3@#+wCCNhJ+?hY{RO$>D64nW1ZUV=Xt|JF4^G%Zj=k_@r1ap4=OjQWm@j*fX{qYh_ z9;fuUXl|DWIabhS8xw`%{Cs8y`mCya&bQhQ(h4|$uvn0X*xTD{Q=nlO`Q-7iPWJY| znn5n*ocY4oZgBLeq(ZE98hhKoIO;!xVN 281~myzhXA|2fIk{2a41De_3kqzdieK>^^=3XW(Dr z_`m;>{w4hO+!7E!3k%0a9IH%{4Y?zL{Lk34uSy`77-v`9{E^<(^F7vZ7q^4ai#{|f zQObxa0whKC=5HgCR)O{xXyst+UfAQ1)w!Ri0S~Z;Wx8{>)+||hwf40d;iNHGd$*9J z! o+YrSr={ zZG;F*t22G YQTP-t z)|+p@*6evPa-KbYlsiOSI&H=sLGqZ2l9E8mXoIM7*8D9cB}bxVdmzRGM mZ;fWlB(YNN7_r*Tw_dp* zw(^>s)pi$IZWn(xEHMF2GH^FO$+>l)46s*Ji>GSWz{oT({$s>uT7xcPBWL<6#b(T6 zpUDP3VUraYiUoR_`aPuOr?0XZfpy1c_JG-^dt9giiVy+6Gc$#FI2i>+b{D4~GDc|f zMQ(~^7O<)u+H_1zM&Rn*VcU6tY2&j!o|jQkjz<2%@87;23IV;v$1{3SEP$L)Z3UH+ zlfwjGQ26rKRD!mOw)Rk89NjG7XwJ^g@&o9T#ZMCix}xH@XaLux2Imn81ylcTr3t84 zMb|(*Q{w1UrkrD;_^)2Q`lVU-{oy6R>;`j_y8iee$ztig5Md`B%L2}6B~?;NN_XVP z`~1Q_pxM+nXVnssYcg*)Ebx|^nk#W}_4sH?!|Hg5@9 As9-DLpdQLqHgJ~b6*CFdU3wA@C3tN9)m*BMKzh|m1R zd-=VENbtr(NgL!{spH!}z3%UR=Hxuw_yYrVcyrZA2(C6UI^iSiji=)t?F98m0OZrt zij3QE(1o7#N<0`X{7m5$fM)S9gZxPEj)M3vX7nnppy})V32au2jYnrDycxrIn1*we zChfrD_C0j|Kl>a|i}26;zOe+(D?!_pw&niz&}6!V81VS??{2P@AP~e>m(QES8N*<; zAKs7`IL85hSdhs>AAr4y^-L)MTcjgy(v*^#I_UazbG$&2TDe5C7x2tJfV0HZboK z)lbDdxq%F!3=#oX{A7FWr#7C^8Tr66C4T@N YZGcxchEIiq-ft~=)pWS+#${3(PQMt@BITT%U zXY2yaI{w4@22j^Z2F((RCi@tGZ2ts|$IA~%q5z_c?E$6(A=Gry!E6R)s=DbZ00TRA zM%S4DM;)Biz@cGbGGQ`oX3ZKvHfVC_-*>D4TLuh@>Hv(TW7np@3#byiEFaTuP111O zR`-f#{9&5YA`dm(BK(8Ufni!{MiEcN-2TIp2E0Fi6cT4|psz}XkCKy{OQ=2~qJRUU zx`!X?18kL#pk>6~^6KHZa_}eE7#QR%Cq8uAm8t%W0@2OO7U(dL=a_A2!A= D0}+ zp3g{@eUHI !YPh99)tWu#Z-9611~aO0{LRe*HH@O3?94 zYHRb;v>%0N+H^7*PZpv%HvC!v<)x4h5Tw`y(xs(VuQIz$vj?8X10Sm(EbiOePp?+^ z%fGfGrw+xVliUFQ=^DF(4KO7izE=G;nY++cuc{AjYx62|IW+{9EV*9w+4jv&F J-OQV9L}+)A1~;w?_JJxrE|3t+ zgp2SWYD9#9=pD4=Dt`XFv+(I5ZxZV5?V`di&CmY ``lg(WRsF(sE6trdm*TS0? zc)|+^D$8IjrXW3T*guQ(@IlFcmJOr_4-fhwBEf$4zx`70)!zv46(86fSC05_R3255 zWy3M-zXvS(e^kXlE= h2EzY9v R6iBD&)c zYf9`_- 1t4^NMw_bG=6>I `=^Yl>*nLEF8=-RD;$UTix|F43dwBHPlsF;B91eRarxd@eLi9FA ze=HYjRqNor*fQOJ>@}<>eJ4aK2zmc!@w>7`>3Vq)=`zaxI3YKt$kPX>yYlE85aLF; zYz~S_Bchq_$AVv?HY=PV!ut^GW5z46f L&<9HUNiCHgwtTD _TsNj-~S--<`M+Klv=)FNnv+8&*D^SsD$O4{M` z>4y-`)0e~3cCw`IWxx=P-9E?aW;pX)l-nE5i{(;Y8ObD)FQm&$c~M8p2f?h5-*H1u z7&Css{8zqOSzDB Ege6IAUvc)HLisgkK zHRUejiKSZaPugplwDL%nI-b_it3`*sYpT9lk4r(hDtzfh1}nDZ_ R8<~E$X-krC>rHeKE5W@?+Y?1tTDrtM8vaDPY(ZG=HL)>)G{_#VH1n z269+--apbDwsFiP@Ud!rgxZSyWmnUmI021J{MUIe0utIHq5}MsG+-Q>={4V;y^Loy z+|ts|c|7MG+ZJFBzHjKDWqk--WD w%@$=~*hg!cHX(7c|t$44FjvH=cYs=((a1kKL|dF#?nKl}>LP4%^X5+$r|Yt_up4 z%Z$9ltS=Y5I(wS6$`EPs7KS>BbvDDk?|8UjdSavh@sU&EA3oAnL(tdcN)YbUG8ZsB zIuZ+|L5a-N^yt^wdTmNR)U$=RqyDLj%WZ1;$?tU*{WWg&S?}1QtJcnhvfZ$>PjzwG zIo}q@)u}|DetU?G8S!VePCm|^BgYYa(OJetZkRr{;`(D?e>jT9&+-V;RJu9jrQlfT z`}gIzQYzykTeIewa;AL>(nBN1OpeD5SW38xE3x>ZdZO>z=3m>^t=PL(BhjB|P=R zxhgsJnbDTmsmto27e>pgk&HeSTt!KO62)#&Ci^_SpkKjhXKy$#xMPGl%8AlW+uobX zLO+olr2h_JTC9z>SZ)jS)eJ58 XZ|Ga#qd8N9n zocs>2t_5s=?v{TcI$pS@tu3rvZ d$+}8ikH@pJP!}(Wp9Nyy2B}Gl?hg zT-@Q+6o4ScO+)OEecIigmQsIPjE*lGn}xACZ@tAV^-Ovh8uk6ANzkY`oVOOuDC+(a-Y|6vYm0uHJgbU=qUuwS|VbH11LkJrLrE=B}Z8;U_afvkJF2 z&G| _&3PinlciE&N&Fz~Ro*!Lk@RbWuxvj6rzDaNHjTjvjQ+S LWR^; |ewuH?K(;wgD>NT&QHeC$rm*T}{wUnC-TU&1N zB}${Lm0hl$JI8t8{Ax}wRa9U7jhxqif?RKRJ@b0|QRTiHo`92JrzaB)b$q$&G4SZ1 z<^9Kne_3$@dbZx3oD|Nd(Dcp01TgrN)JS^AQZTVqWwEc>t4TU;WwqlVi5{wTYuUA4 zI@W}yuLHwgxE$K>p6(9u%_u+Ht$xdAj-CH!{rsEFb&=+Lj*lpL#}m1K_v$+qpK2-U z8+9m|EiwH1_hiHE7i1m20LM(j2=5x43=d`%j25 BBDqVAQ?m7#R{%d zorvH2{)!EjRJ5?@t#{`{;+5zv-CxjTbEctvZcqXE_KnY1gR76Si@OhN_v_)kmI`jq z*7Uy P+t%%oOi`23ETqf%imnmC0ON0;y9z>4l|Gw9k4DqjZ6Fn?)>w0*Ag~@7?fD0p z=r|;zMm>tW(68i9p<{6=;B|N`pN~|KE#{>DfkElqv8*O!i7s<~9obA;z1nn67@JgT zh1a{E-Y|^we|iB_ym)YKx&QER<7V-|kJ^)Pa6LPK;LgVy%Y~1Uk|F&9H0hVcKxc)O zl@&b)fCQi}xv-qyG6k3tSu~&tgk5|b2p_S_Qqa=&T5F5oKL_9eUFN9W^y=}q*jWEg zT@!n7fBm{;iG@)jsn0bu)D7@;#Cqe$0>WYSxQQEYb0C+l$UX!Mj2)xV=zf#^qgi~B z#)Bo#hZbzGH^YAZeEUn84ituF_9G6HKwro WvONffyRppLcNanKD2ZONU{VI;iMAl$Sa*qg^=T z7yAgJPH014@RJ0BC=X<6PoGn>?tnsQhZ<|Vf?_wP19)-sxyeJJ WHtxhfTq&-LJhN>CXy;&d(g~jS=$9b` z>6v=*Op~_Ne-i-$S#Wc~396eLN$H2;bngHC;07Q|LSBKs817FI(;m`H2}y3>k`h5S zwg*Dy|22G9QX2Wc3g6K)8Z2v4Vq =d)aqw4TW+9;M@K%J zQjZ`KTw&A~OKU#!+vgT8wAvHxPLE56ykU#`us2$BJ|q3ir8@1`xf>hlfa85P#LLgk z%L9Eo;s!ZUmF#M*Qta9WIamNsn`Lb(2(ujmNlKaXv2HwrMi;33al4)wSEyM+#w$-x zL@YM!C}CwE&rXskGo(Ah7A*5T;1`; Gas`@FMMcH+PSL9SIfPa; zP@l`e<^$Wwq)JYHp}6D4wZ|gJd04@ul3ckoLeD`^-^JHXuPrbC4hCR|ngAFQ2-Y?< z9Vg&HAhdLJ+29ufPe5-~8%V4{DF83#{{$uK@+A7dLy1boEDe*o0ovH!|B^0L*Ey*h zNQ#YtDx9dvnE^=z$))oHAOy4u^MK%9;0eegK^3z*$1;fr7l@9_j-%(X#eliRorV (sq+=hCPFz42KzQca+82e>C+t`Y#EM@!6W&m1c* zRQDRj{7~~Wn=Zj1)ucdC({w&VwJKA^7jR_<8i0{?0N?~EZ#%;yL-mV+YFKK2JtSpr zpNfNH@)IFjF;-~SgSzbBY6~+OCXmvDi<{rk+eqH{4-##U1S}~i(kT{;iEHS(3+h}2 zPO5^Z07`^4w(0yX-ya? xBjb6npVVbxC4(Nmw1L{5K>#q*$4bD`7jE)jS;BZG7sEa+Il|$4O471?V0AKk} z<0YX~wovhJF8dcd9vb0yrYtdCrd3%c>VDgXgUOu$E9e~_&I2QJ68a7DS457oOn`mA zoCAEXz!oy_kP_s_*+EG$bx1}VI0S&o>C78?=A;N57z!pp54#O3qLY)QfF&Sc{(_*Q z =qwGuTBQT!|(DLvR zG^)+Nf_nMQ3SP?(jT*~b%MMV`mo>e00V2DAAlEl8FEj`)cDBk4??J0hB8nu=^0`Q` ze{SJB_~oGy7*w%0Q|1S>f`KYdFL=hi{r!4C!;xOSGWZsL`Fbae-k)3O z8peM%BD%J|ehgHR%k_I-T TY;A=kH~#Y*>Y+=-0WL
E9`7-uXaykBKSmz7N5PTNh$Jf`_^xBPy zZEYeh=2ZU1wqReb)@`Qi%~e~VlM1FjTm*1t61U_QRqEUGb!^}&NZW(3jKKT+m-BW+ ze2%}KNiq5db3Ic^N$QDzD)7-FpHc)%SqDr$X@(#05qzQaH)aJwl>Yz>A)$;+(V&y@ zjJwLN)jQ)eQmD}Fw*14!1J}WSy%v+o@4^~Mi6_GT#N`Y+u*LAa!Es-AttWaOU_2~L zC(#VgL$i)XB}k6}0ChYEy_-7nKL%+Q=RhKhA5c_9P%hOT+?gzDKa@@7jt1p_GXDJq z0HnD9phC6UTrKT(ZF7@NuL~UvX34q2(R@1k_U$JN@w52g(w4jAXbOpkON#|~1A9Fs zfYgs4ehElD5+)mgWPK<;UBJ!u=IWTR6clvjQn}xM{Yp*}MNO3N%1?rdh6Zdk5a7!l zO6>u7O}Iu~0Jf~?qe;UL>Tmq92h*DQO@D&dnVk;i6HQ CIcELC^r8zR#Di_}l$G`OmW(fc_A5bk?H1T%>5lp3 z14xw6aznY{>3VrESn7FB2maUE6!3ro#%7NPJMcP|oJ?%5wB_-lP^~s{v-70S$i(H% z-e#~pOAHU* P Wi7U5b&{UcZ`j7Ywn$e(n-_KW$TFs(x#K7>*nxWVAcVQ0FEVkj$NH5=(hkq%U*E1 z1vg@2-Lc`pKU>ZNw(&%rS*|767T&cJ54CCl8)()5i9}hiZgJpV?WPBK@=?YBkPifv zizbst9Qt?9#RqrIHM`$Dd4z}~*1B!aS?^x&tTjH6dT6*4pG5 58$d%qc1{Ff&Lcf9p005NUHU~ddH?Ynn{ z$A5v5v}srXtu${;32WvCfhO`U|BJz)q4-&8f9~P`f}T|J=>uR_nKkALQCWbkIl&H8 zAzOetn$Zq_)*e970d~o6WbjIaT>zZ+=O!TlJaPg`ppC~}ufZC*UhGK%vjBo`gn9SV z!AjG~ca0WB%Eb=?Z*8~d0A{~BUIped%Y+boNcM!lAN!aB7{WIU!1Qle!p^p5_8lMK zVF1lMNR0wZAI0n3v26V z$fek;sIUQcL=dD|f nt$;iuGv-AA@Wo~ zMO~e6wL5AvlJDTh&!7GeAfd%v_3|aWeGcG})fRJISz=){jEo!L555441F&0;ue|}- z$8W)UWdo0q$m}yV_8FH!y#riU`^$QX2Y 5_!J1Oa>HL1uRzXqd7-RRWMXKg=rdEdFWH e_Hs%fs}cJkWNNe8B?(sgO(vLo#O!(F%r3h+$OT;kYTN4oqJI1!@d+?zYq0*T z;9YglHPVsuN~9wNEOG4O3&h_*A$kMg=RoV`p(jANmNM(t|54d@N5dI??UJaGAcztz zM2i|m?@^M7nrIOQA$l2gl+lCef<$Mcjvk{$C(#Ll=!{78E_xgH$oIS7TKE3*t -1JG!}h{#BF z{qIDO14tU@NNOI5!I;q=XbZ9nEQ0@n>8cIxHZ0t8tq?`a$ha73a?VO7cka|V7c$v| zsC1w0Um7{OKd%3{HqpXjuh9}w!@ =kXFS 68sA6$QBM3UCu2{ylzl_zq&VAD2efb)@GoWtvk`nH-x zBqeQYpC}1*Wv{ku3R5YwFpz?5$f_U!`1Jwdz^z5%cWu_GqUK}E_MKgz*R2iV+ed)O zf}hRMe*_$!r>FR4YThcCoJRaKdh0Xq@OUB=xTsRKc@*xE0}A^s1K7j;HWjkSO-_3C zfgx<_fyeUE8F L+$N&`1tst7(+|?8Ug}>-(Qc7 zR(HR}ubsBIty0KgcVi{|&c)xpeM@K6K;j8v-PMD-;jTp6qRaE=w}?z64EKn`5$= zykGC+&RLcRkF=pp(Nf#zlI-kaW|eej^0z?>;!tQC92X~hdK$AkW+<0kUHuV-^z%j+ ze@sYJ`{aG{*8;vd)$!xUS;;Hi)@U(mQ#7sJ>joyHrn@+%9XHHN-Nvu0j}V3U02x3F z$T6J#cHT0V+m04>l#K;l$z}QVi9IkU?lW5lkx)heSUh-H3ZL0Zd%)iu2eI;NOM^A{ zba!`~>GN>%rN~#8g2we Gwtm6@8F znrK2Cnd#d-@&$Uj348VrA7*MNbivmVBx#U|&Cb42X5 6|^TH{#~D zsvKI3w6v}B Wf1k1ffaMDB>Q?!`D!%k9G3x*K)ElJ3Qe{z5L6NOzsGA$jJ##NA zW!(3Z6RdXe+al^CYO@Wg`L{{m-C7hpvk#QMuRw&JQDVIfW+O%TC!4ACJ+QVVHTuR7 zefDbBKo6p<8x~@=@YdqN2O!*FJzIeIMdaH|WN27*Dn(?IlfFygg9?Guv$&=>!(*VU zJW0&R B;$w6yW=hUYPUW z<_*5S%YRFVIVWivt_1}P=HfV}9_i$%O!RHlYe@dSJSs;aq@r O^;Z4 z10(cIrI#>D@r(*~QyPJ97pK7OHC^w&Gvv0+k461M7Hbc4mEGeGs$`SMbFUp+Pb02v zM+HNrCHbD>?^Jx*BHHY+k;;CwrY1WD=fEpOSH;$lUK6pm31h6TjLr0{^L6vaoe>sO zd4HvJ4%>*6cYl81Qr=H RBbQ@#Us&6t&Mmypj|kG$c$IZm^Lh zSBH!W-Q~%z6HIK0v((&2c$-d5RMC+Ie2L9LKdoN2HmNewyklrljdO+Jy@|ssiY&AW z-b4F~3XkS=1?~n2ZgKm1^H@LObay{1ES_eDi5wh4GyG;kr$=}nEoMDns@3~3ocp8* z?fp{^-GBX8&fdzshuuROb5W=NQmHpUd^e8H#OC6Nv3MT94~ItlghbU^+Y&qN$2G1d z?YLBmT6MCmY9T?Rd>7i-Iw}U&K`vSPu{*wQruDZ~$_xs2k4qE zG z`jOTin%dDgW$EGDONHe^Cf13UP4f@9yZSS&LQj`Um-Bo1X588w7N& ymbyhjnSu;Y|oEaMmL1)HitIvh`df?54%sF)?oz_}mZ+6+^*N$I` zAg2zAiYczu75>Q+(hU{b@ijglm2;MePhV2x@YejprAbpjAaQm$vY$yuxNM?zp+aQz z5RsX(j#wI;>q@+&+dBK^kIEOHl^|xRP^rh#82o9@?a|KcXPEe-66Yi}OBml(Ce$S2 zrUzDln%v{IOz4Jcgp1u5J@q^lDU2==T3W(+;d55G)2)yYcI{HSUbf~VY#@z4rZ*s7 z5;dE*Jkp}~yXsnRF~dc_&U;&dQk3PMN#$aurEQTTY9j8nowC1F({d*+SN-PROk+T4 zhVmkrQy(9A)TcSO#}pr%%pW~LwzW8Q5V0(Ml@(8}>zlBw1SW2E-XdPo=9WPHJ&m@~ z>2&NeLxcEnYteA+?$KuI5bIP%QFv8NX4~w6P0Wi&ee=+&Twc?&sz24j`BI%~w+s`H z;&pnC3OdZbF1iSUJ$*$S bQqc6d&^lra6v^=HiY3qu)k z+P2SwB5$-3h|Y)}4VKltgzhoQG8TV!Ih5N=&^O`0 nKZKaZ<3)PGL( zZT=w;wrk-kDk^?RN}}(jBz*@IStv-G$@uTo$k@08`+S=eG7a_SOWmuaq1>z^LRjKO zT6%hJRn^ZQ?^M|+SSZ5FT`cMYy$WxUk`5GnAs>%&rKFcT7^IS5o?p~{D<771 D5pJ~IZJ)BQ7JhD~BWZFZ8{){4d(sGET$gkOlEPm*0{v6df zP$+jvvdq8l;{IDPC{EfaM7LzNHWDG%9NliqbDwd)5$o@X_!Jv%ij$TT)fkUB7CX8e zFLbW=X+7gaE>%-z7#(N^ i~-DMwV8$ zQ@W_2;3F@ux~wBTu$$=Wwr!UN2I7L>T3mp(iW4kSNUAcwQ^EF;Ts7tH;rw1dLloV! z5eH;SWN-cF@~xk;{MU{#^YP5wOH&KAa7sIS0cFF-iUK3MBdSKt+i5dstfi2MDwmai zH3(>)5z(zWsdqkr#Jcl#y4YoO?Bd*z|MO;U8@a=-O {(0u z;o$Zgbu4KO=7=zJd*dDv7gkJSx0e+Ap(Q+a=7eu+vi5;;tE3ui8%B&v<(p{;)0mwS zNAB&z$Ix=J@2Uf`d%NnEw?3mW8Cr?eQS`E7YP0zWE&)E^$b#`)g{{<4uzDWidv7-* z)lYu-FLk_p|4L~z5xJ8RtvjKh=;MU-!24@v<@UG14a$I@UQ%+w6zwsG-)wa<8+rM* zSxW%sF4xsLxb>ceP=W1zj}9w`WT)=j!LuM8mUcH$-pWQn)~{qK$xn~}YJTeU(=*y5 z^LdSch%IP_ #zY&Yi`uCKMDi5{YI*%h6KbH=9`3j^mL@bF}K}FD?x&sV9C1%bT zG0ks&2lN``FKL!!eR8vm&;CnT@RXs-;1`PkmYF6mlUjEBggXgyaT`dJE7O_755oxw zu{15~Q{9wD8tRGlo~QWyxD#7THMby~jvbN7U0!+^*W?D+wd6N5XTmMMf82xOWWA-Z znelhze#Z!9C-fLkcd2YQMB!amdE$vgKmT;i(YPh!kCh4Q(=Z+se9s<+yOox?!0)?J zc*)Sb`?3a&+*`{s>4?n^&Bm4JC8yNKHCJ2+c{%n^mtxVqSO(1RQgXf{1pElq@QTb~ zEq57_H-2GS*QhQ=!Yfxsc+3t;`J|oJ^}Q|+{JZ*Oth54lvEy{LUoxw4dT(Q77&BNl zjOL!Ihc@q=q@(&*A0hpJ!!Pe2Fk||LWaTA#@>E+R^jD83zj%rfP4vFhu8#h=6-{+Q z`qy&K;$HAwJE5A=OR45^-#aar{(~;gtmM#v^{WLie@E2+kn^V@KO~EWfzE<8-qs>c zP@xB1PChR2Pb&U~%KOs)?|NC;guO54x~Pxy76glX&irtxG4QvI-6v{i^8?=x`{`c^ zAIi4UmQ(K>)wuHG{d)bUbMuW=PJuIPPaD}lbMK^SRT;C*F*`CMI)QP+TadbdBcg`Z ze{4_WJZWyBiE?g{%xdn*^MM_d_U9M={_H&Wyvr6Z1G|{8MZ)Pf1PS}(v>ZTsiupPH zo=ub1cCHE8#8^m{VC(YybYG=GnSGRHQ7P{#p_Qn1w{=O)99y24Ol)*CD1sJxPeR94 zo@~&nUxc5`2s2Lzy5e5i9H=I6 dIjxC|FwG@9lLm@X^S2L_uV#MfR zrlYpCQ*u-$&v>Zr5;z8+^*yCJ#`NA=nS6tfEWg}zi)&e S$2x_aQKB(6RhlF zBAqnzRj3?ZzRHbuO0Vgu!u52z_xU5WFq#d_Af^Tm*Y9l?V4)tfIK`Zk`a+twbB~u= zED(zKE#Wky=cpCmO}XK-S4GG~r}fR)Cx)QAYmf*3qkQ&4>SvdBvBPpXvKo4hSb}N` z(>+*rSV9y;V{S-bXbc*5m-caoid)C%1N}iPjikv1tk$f-t1zn=JzE;Fqk|#*@O*E# z%M0--nx~fwlN0-6tePN6CQ+2(TctXXF2_TkRAOZ|!uzc?XCkWpyo5#Mrb&E4Z93*k zG$RX=ni?P|xgRA0wTO?{%mueC>pF~VjK 0rZ-GnF?im-8!?SG+oVo^!z+L zhR2HKHP?r%< sp@9?@5=yX>wP-dHi ^V@`HSpbxrF1=eZ!-@)zp nO%t)Bzh~0LmNRlky$4n)|Zmwwb2&yu(CiX5o}`x%>OaGEfJZv;DpCK{D%!1mTiT z&Qge&)$tl6+;-`Q8KaD!b{p{_JpGp`LZ*7Sh#T+D!MjP3KK>k$>4uaO;^(RtF^=Eu zwNg(#RrGvfLK%@ckLWDlxCuAE`B?cw@%8U(MOe7^pfak{>Q#L2xz_-?*_nR~bD*6n zH#KN2kGpI;6QbOjbkaRLqKz4LiZYZH42H4R(3DgM#}8M~ef4s7Cqb4vvIx&xu#R!r z^*00#`%Hd(7N%2{Lp_QY9yr2qQ~{gG{vvj|B8A*n+$M&PZKBE?{oRZ#+C=NM;pRyd z7KT+FqtlZ#Fyfzv?DRD{1H8305f0&e^=KC+2lXk4KFmv%s8s3ih#UQlk;lcV--? z;~U4+)TMpRpr}`#Ik>w&-NW7I$H5zKbyw+4x9g4bJ-F6eXs+~jrEYjH&;AaL!UB^a zU7jP^)`b4+VeU(i6SLMMMtN0VSfuf_2)$bVmi?VLV{zBj6-D#{#m<*rPfC${BQ8^h z_NJxUzXCxa!}>QM-yO)|dM3U7Et0?sLD~Gr#<5ZK551IRA;OJqF}ZIoaoWauJ-2PT zYbev(*3KNdjlQ=vfmwLVUcItrl^|ROk?pLm7v2;f?9A_H*booYht;XwbS%z-Ku 2t=)MH{c1_at;m=MlHzQV2YI!1Q!FK0PsW` 4w~pT#VU~(HC7bkDNf>1MMVIw)A60Hlt|ugXkS6}eV4M970ep7 ztQ4G1>M% K=nJ}x z2_=NTTaAyRMJNAur>}~+q`3uynr+~|js@)k6)YnfKC=D@Wo4+lc26KvR#NA65kB?Z zREnUTDR0t2+QBrl^8%0Hy~17zIWy^}_yy7U&8sm|ge30Usa}tTX16W-D9j#2ei0fN zzWbov zJzq7Le`P&zXf=MMn!uUZ9GiLkKKv*2*n1u36R*!3P*OI`nVh#Zg> X{$B*cOlSmlSpoyJ5@f0+p {Y74xp1ruYR9F?MHQh@AoM|XLD-kK;L9c(0X-+gR*sg0O(xCe)k=>>^#Mc7=Qrex z)DO>U=YykfM8()$L3{1-&d`|W(B}NkpsiA=YaFlcqSTN|1S+a8_;Ncp-RKJnFfQqE zqv9)cH4&d!Cn*gqN{_TjBEd@h?Z3!(Q;CdjUwGksU;+_2mjWPiIIJw3d-v1T>!~B7 z{v%A3_-}n-!bW9@MhJFqa@eBRj;#sHt|ZDfXE)h6x16Avd7CBpW#;$JM|I~IAy*A= z?=#>qnN9&jT(tpp3{tvztZ`vkJ_^Yn*O){Q+ou LmbB-_s@w4h_hjarH~y2@(<#2#0XPugl|O@k&N1gM9o;@YHkNTP<=5e$C%;DVI(z z0Q8$vUhdQ>Q%^;G&P-1aIkyM+U$+AQR{*F2njR+323_Xl^bOoK>IQC-fh(=hC!4i@sCGL;fo+x8q%Bm4#XyfQCBNs2Cqy9~ z7ZG!a3_|8}B9EEpfqm6)iUeHbAJWd3ej)HYS%d&q;MZ;!v(W}OU+rkIK1A}arTxbB zXU`H%?ty~hzUVo*oAL$*ldR)xVtgr2x6xfpImN}1Wo7){-l64_OBfyC;QU;e_4dcp zQ*S232D+ncAZWV$^>t9r%3SL-FCyx2I&7x@1eA>tpfp?BM~jyW3kt$SgroT3A6*9G ziFJTC12Am(XXz0whB0+=dauQWr_^Ny#zL`6`$}zVW^ErT8!*v55qI(-4``gqZ~#ob zI3(P^BO>fNdqC{^xC}p8>hn{!AW)8<1S){RC;S4vD1SqcCsFf)qN-oVTd?k+o9ttc zBfkOUWee4vkLHzh^w)U+i#zpVl*sSWA~Y1McJJXg6X2c#KZ_^ssjyXnegrCyE1e8@ zWZBFyGc%(K3c7!w0poC0j~$&=#NF1`R$|;VrDXuB@PI;#>qqa>FYA^$u(I=WbKA8H z%+1Y#c#6I^hb%_)?uMqC8ZA@U=H3agj!=`3fYsG6CK`gGDds`xy_+aa4?ej26|(#b z{y8^q5#|NNKr{{95_T&1MG9e)4wDrjV2JsR8@qq}AkWg`YW@&5)G~2BFkoJn7;s_W zlC -^AiBEYO01!m0fMf4;JSh03;Px{Q>PyQh!;@Nh9V@s zr;mfV3g%wu7AIhZ-nHeIH30qUzLee-8*uCL(Z=2h=usB>7jPE5)T(-A4JlTty1G}y zotP5n&knj$4agb>%Hy=^$mV!`mo@}s$4!EfM2pHvE*>89i_?R?3J=(o(@47zD5*DS z@sn8}|4bN0mLPa~O>o5UHW6O=^rpnD;cLqt8A$1ALP7!;Scl7B)nLjGY1?h9m+WC7 zMMZdTzn1J%D6`%MWCjDy&6_vN;hV1%y}ln(SgcRJpuz{Fd691M&5t4=4jLO916&d^ zZf0h74M-E0`}D|4n#&4#*~R@UsDrKo#{b0V0LKM7N>IyJRP;TOUl)8Y9g+IYoNO+G z2dd1+4!I1FaiDy<28P~Ur{CDaS9HNBM1cidnGv<=sYl76f>`|EcXu*^w_r>w$DsgM z8;6?kcu2?^f*asnvtRAwdNC=K%1L!2g`4ENj3HoUb}B6n>p_qa+DploGd%T$Db>i1 zRGirNFGKkBk)=-J>7#?1IlDoV75i3w-4|6 `_IAeHw~1ZCj*m^sY>9so{^p|d|;na7di r zpl!#sd|GJ%T88i? Fr% 9tr|9UP zAGmA9lQ!rlZT#>9sMH0^D~uPwga7_oVEc!QfXJlr&pZJ9^MC!+>17C8at(x0Xa@)U Ns3>bFl_{78{U4YWF~0x+ literal 0 HcmV?d00001