From 66d63de8b875ff9be79763fb9bbed93f183403cb Mon Sep 17 00:00:00 2001 From: CyC2018 <1029579233@qq.com> Date: Fri, 9 Mar 2018 14:28:34 +0800 Subject: [PATCH] auto commit --- notes/数据库系统原理.md | 7 +++---- pics/923896c1-937e-4a38-b8a6-cec3040b4e2a.jpg | Bin 0 -> 22528 bytes 2 files changed, 3 insertions(+), 4 deletions(-) create mode 100644 pics/923896c1-937e-4a38-b8a6-cec3040b4e2a.jpg diff --git a/notes/数据库系统原理.md b/notes/数据库系统原理.md index 0fb4a9b1..d4e9586e 100644 --- a/notes/数据库系统原理.md +++ b/notes/数据库系统原理.md @@ -179,13 +179,13 @@ MySQL InnoDB 采用的是两阶段锁协议。在事务执行过程中,随时 # 范式 -记 A->B 表示 A 函数决定于 B,也就是 B 函数依赖于 A。 +记 A->B 表示 A 函数决定于 B,也可以说 B 函数依赖于 A。 如果 {A1,A2,... ,An} 是关系的一个或多个属性的集合,该集合决定了关系的其它所有属性并且是最小的,那么该集合就称为键码。 对于函数依赖 W->A,如果能找到 W 的真子集使得 A 依赖于这个真子集,那么就是部分依赖,否则就是完全依赖; -以下关系中,Sno 表示学号,Cname 表示课程名,Sname 表示学生姓名,Sdept 表示学院,Mname 表示院长姓名。函数依赖为 (Sno, Cname) -> (Sname, Sdept, Mname)。注:实际开发过程中,不会出现这种表,而是每个实体都放在单独一张表中,然后实体之间的联系表用实体 id 来表示。 +以下关系中,Sno 表示学号,Sname 表示学生姓名,Sdept 表示学院,Cname 表示课程名,Mname 表示院长姓名。函数依赖为 (Sno, Cname) -> (Sname, Sdept, Mname)。注:实际开发过程中,不会出现这种表,而是每个实体都放在单独一张表中,然后实体之间的联系表用实体 id 来表示。
2&!W{KK zcp^o;&Q$Hv%@Dux4f3`)^!^f+m)O>_s!JE*#!xSUrjP|Dg&Gl4x z*{4Ar)$PPYiqKU``aUI0X@1dwV%n3YrixgW4EpB4WfT)(e#?1bo{p5(A3QOafk9;} zb}(haU{}6vMWlY{(iF|}#h_M*lW`UB>>i~o$ISBZM-D$_-grhm`jE%XjBw#NY{%~a z&jH<1M7F-E#?cw=5` +7M7604U-v} z?;C3@Hn;Uw8v*nkQ2Pg7G5!YrGK_11O@@`;-X8p^G3qqenL)W>VQ??p GRDCzQUG_WczeWu2Dvjz)&xZt}bRO!Y?F z0 @rKn+RF;Mkm7J`e5 zu9)WM7bfo=C>y*E7gmUypP|JgliO}ptJ^GGb-0CBxp?~BuEQ_e JC^+y9yyr zFo^`;Ah`~%SleLiHdGN$ZDgu!?i qXO02QkQ;tdGb@{g+xQOPb`NK K2CB;2}nYskrKfB(|?F6ihDZqwdfx>0(=JnpZ|qxiJ*7k;BPq z2`8rx7HHmLK`sKSW&v`M ZE8kAe?T0 zrk2eosxO$?mUMjZofPg>6yALqIqR+(Q~3*?`pa`@_Ls2rp;*#1njN?bYG~@+f^~)0 z<(1&2m G<9vp+lBb-DQ!6pp{ $>(4L!K zgz-xFW;EbrzI+dW+E(?UF{T!o@$bOQ_60X3w%zx@c`%!d?@56Sc@rG$zm3#Todf); zLN5|PXsZr3FvqIkm2szJ%&uwNAiPlJ{$g?iF)prppRWqK5QeOtwVQF!d9UZ<&G`1a zxQxnuG{4nENA1Uqtia9=YPaqs#?G-(6Uk4%qJMakhDD}VOXFyAHKYDn3;sLrG;)`w z(H!3qI^+Jvkglx0{`kvhld-=Ro7nippDA;ULI!{TmUFy(d=D nY(JOk2H#t6D954_O1c;O%_VF^aFm%{ef?#GD+(etPe7(`!uDVe2Tb(GOVi)8Y zhQmy&tO%nDPfPp;m`P@Nigoq+;SG;RY%#x#9xiqEv)??7-yq)sg|_4c9O|W1a*2mi zi$JmEQBG3Hiz^XAjG~Vl_ppn{rnHj~Kp2?x2S1Vje0i)*O<*T>5>f}_%^ABs!2k7k z^Yq1S4Osc #hL)qG~@+P5N5i{wlea?5}cJ(8-T~G`aUyzBO0) z^kah7 +v{BIVMLNK<_W44+9VQKl?1Kupaq4Ppu zzl
r`{D9KF(OxaCt>Wgs3>FzQ+s?rY8&Q1g5VJSt WGvE3r+h;437_Pv1{Nr`VbQlJRm< z?h9q)kO0WMfz (i%7?T^z zdY-Te%e=ZM`UCaS80jJ!;VcgnOG2r;g;5eGQeyq#(vncKBosPSI7Qe%F_kSKcq$&Q zbkI2I$4t4=GXH{1TQ-WF&4)_dt*bi+*e*O1(5SO_*?Nu5j~C=2RKKfq2TOjMv{6v* zORuwgQ1p5p5S`qag+p gT9shS7<@Se9NxHJ)Eh4R|RzK#Y2t8SDK;k#`EG9K|n-R{}d!>9tN#B8KvZQLTc zBuUM9 qG&Lu+k>dV}HaD#kx4pc*ZY>cz}PU>NB=w+j5$; z^d!$uw)6KZx$uuPY3KlgI(i__TcABQ3KB2%^48Bz)2n56>=3mPH;R<8e$__k{905J zksjUXDAP8j;OZ|S&d~Uhq0o|Zp-gaMyH)RwS(BHRrl11R>mX oLj9H {qTFNMsMUM9@qw%-w^v{DR4i~5?cVBDA< zy&jr#(fE3nK0{|5mHQ8&lb*EV;`p04z&Jepz<>bn_Hy^|oa1$YSCj*SJsVJob!gqt zORy~bJ*+CkpoWkVyW{z=bwUdJs$t?7os{s?iTO?N)btw |Z$;`>A)5q{^ $=JUa+(~a(3Tz*ft!vp$A$>X zX3}9PDNr|Lr*^fmCDn1hTiGpLOYPo)D89YN6MK=pnOq`6+=iY9=3P6@l|gXe=mDd& zQEDM!ITHRzkKrmu^zE9)H)p@OS(PXYE^8`Oellezqtjdq=&oNDc+LjoDuydk*k)fx zzgpcmNPIe8li^+nLrQlYSpE!c=|+g|QDuHE@3kf1*u6dC^7<#X_j#uBP 10loyU;q4%$bAxqMJ|Ip0O$tfz|uVi}#jYiakwA3=c|5XQ3$Yb{rsXlG>Jx3r`$ zs4p7GwVWkN{Cr30&z`GH5djV&g98wfzQUJ5WTbT4{SQM=Ms(nhZ_et{YLYbSvakrQ zWA14<2&?zvDbjCxAHutC>Npg?bXol?%YpDwWHVE!#HL2UO(BL+5A%CiZ%vTO3Gg)A z55#x^A?QqgE|BU-@S9eWlgsJ3Y9c^}fGUpfpNLI>#SpU1V<#G3RG2#ZE)n^B3H=J; z#)~HsbBOwFm6G3M!=`Ha>WHf(fsZz%#$B|abSo<<0mf2hYp3fg@J7fP@J9@};AnwG z&UE18Vo)N&SN4;dV$ g&!fP%(@h z07vsRFQ^8akNkHOT*gxM!NZj0AGUn%rFK#a>>3;l=?oQaX>z)Lz^`s!ABa*ZQ$W98 z9Hwg3k |o@8K`qYrws1 zH@A|Og)D%>`;3ag3LVdaFKgV=Y%5QFLVQhsZe$#!X|s>%u%`*sd`xDq*%Pd17=2$p zyTLi7#Aa7KV&HvgppRUh?F)Q>d)}Ej42aZxv0D5W(=N`9C+`dr44zvL1t%NzC8Zmf zet%Z@mSWxzP^V+wF;P|DY9sAgmOOXiY%f)D7{ZHC`l?EMi$_`Q&Elny1VDp9LZNS! zo%QDNJ;JP4=!<22n%!xJefcKazJ~aeEjAs`M^2T?&Gsv$a+47<&J7$~Ie{LXgEx1~ zuhNSYKb`lt`DF4JUTt<*HU@4k+0`hgFcfEBe3J2> Th(>cXlDyLjm0Hvj!87 z?#Vie-mFiR?SDCugJrG)SYsHuckX51k8!qPczt+B_6ixK^<6XXf!Fm5%2vk}iGP74 zQA&=Oee7zn=o+N>2csyScpU8G3fxNvy`5Hf8l_KurpsIcFskRhIrm-(Xf2LSOUU#m z53+^mD &{+}oAi0;YM~ ze3JToGF;|@n@{lf+L~67VBVtV>({KMsA_nH_1mz4vbDJ_K&Z~fL5%g@)h|vUNP}lr z>MqDCK1X}`+NX5M(9FT>4oW{04PjHLt0VQs;vQ`GnvYW?oR>^Yfh%*>XQP5QMynt& zNc83uq5Ekb&QrZl^eXo4a)bu-Aa=aXua0DKoA8uXPp~TN!MMV;&cR{;tNz{(YF{Ye z#G~4nXor`H-1aw6Hz+2BDL-nQ;P-jrq;%Wbzq1b(HV)zwBKa1s9^EhbX{nn3;)>$% z{3po_;-$cE&(xUm7A?Ix=lS7$J;9DuxN`v2Vb+FQfSB31zjD##>e443Kl48758 47k<=TASV zKU9#YM9O?eFg!QQ`O^>U4O1k|cF)O #E?{G?md%Xuq=(5-K4jvLU1?D$bi1aqZnB?{n`0JujuUjaX_!F%Z zg=cg%f`>?$fW%V%^vfRG((L!7CMYT^q<%^vFbjj HpH*>JK)h z8JT^VmjdW`2eEVhHju33_fD+4*-1HvQYK9-sO4jf`suOZbnrK>j@)CSzdpcBf3OX{ z@)6OVUzb=136gYW_}~F6Mj1hciN6OtkLi!uR)fP72wYo$jt8W`h0v?BJ-p#@JAO*f zIUC=#E%33tV5U?d^XY*ki(^~YFsAWRl0T8nI%>>ubjD-M)P+VZeYM*9*+t}sk1_@0 zRqtCG(mkb0O^ILPgev$i!LU%e)ff1Aej5@KGtgDZU~zVC{f|XWs
2sArG*sEfl|_S9)$&8sj7)ebhw9SSNwIf=$=X^9+hy~T;+Fg znvXCF4}8=lL;d-&DC0L;`;e)ga{#NljvJnShicl*R=RgWkY_5ihtuJM<~;fvpBN=3 zYGe&cd3FU}>Ls}DJxfaR@UIHDN$0g|Hqd7G)TM#*&_my61%DN2bGyteq$w~JF_^56 z9QX^t#mx}s`;Eo!Ol&>)R8up)Bdv5=Ua7)#4!HJZGdw-4Z2FeeLNc}eb)owjx`2WV zXbE{C(9$2TPa2I7er IuIqW`kqxW#?0E&7I^#nG5}0-vNixP$G=-H$t}j{3rS0fs4Uod8Ra^BC_OP$2 z9r2QF8UpEk f(Z z5z3`b^fOAvOlR0FH+Tf?^lc2j@{ =y;8r-rCBnE6;!m=BDE(wJEuOto$u}_)DIj&!CFsWBRt%S;c9xMXOcVf z<|CV&2GYfizp+9K5i^UsYmQRHOdP6&$ahdcm{@tS+%kH(HK (6+Uj8;_IkB$JS(;ZHQkUV>f-6+*mxJ<|sYwYS{~ zc@egkf3ph`gZPXc6m+R0&3{lh!IU(VzHKpt+Vj7&@y!d_ MVHPu+AdZ}n%Oa|ZM*@jKM`_xG}2=CakdGD5$*&TAc1v7E5x;vKZx$WWb3Ca4X z0f6{S S!!Iulw$ieuE{x*C{fm8YY1)+Y Yam2_4#ubTM1ADfBH?t9EL zQ#zA-0x%pp0Y{jufWIt8KMLrq;O*Zys|zss(|(O|k9ATv3nR`Gpmx2+aoxnd>3-ES zLjQEXCd9 ?11U7Cu_Httjd)1IO8XQ7cm=I-8{=}^ED4*!6t({ohPuh3WEjO z4u##!trvxGn=_t`;P%CX#^BScLOVC!XQ@6~Lck$+8pMD%Q4SxTtPU)L%iW!*9|TL3 zrs?M?WwUk)f2(i(Iwa&mM7o})A{>acXnHR%aHW%<4AY&X#}l=Wi*u@P9M{cf9q#sF zAhFvGDKXDZz@uqUG9-KU>x1ppMOf@_AM6UscQB-EQv%PZ+V90Df541e^J;jUtO54j z)g`GwN25~e9_&$a$nKTD|7sst;VSeOU(H(JwI5B(p<$Kg`{ KoWsf2$x2jG_y;2rlzc|ol9de@qqT4#M3$ASB0-ML(S zwlXoo^~B^Vrn<`F=cga2=;+d3LFjfuiG#jin&EI97hx&+73O(Xr8Rn~;pY#YMezO@ z6M8a2z|7!Jd+Ydw`R?_S*v$x&0rGZ=gVAn5g=b$?j4k zM1U>tFd}S-9r1qc#`|9E>qe!kDED6j)T_JFp9}!Z10^9Ty)W5KQu5@8jmR>XB^YF^ z+@1MsR(kS5@=|-{_b?u~; 2!^zsbyt!zp-uCAulTa=rqoY5z$x%FXa7r^ z0l}*$D^b^%eG-Sp %3?_^ur~x4_Cqq>uQIYfY>2#rH#2G~`c~&{H zOf|@CF>2qcZ$YWQD2 j4S|D4XZh= z1jT)H9+zvr^C>ZUBj^4(fDO*oGj}6vG}OhQY5Yo~Xy;fj=mA<8-*PYMen8~i-%~1R zd7vTMq-m@$mfn@~f(W-Yp3f|tuEUt6yq{Y2@3h5BCZWdVR$Qq3D~|SyF&ft>Gl-3m zp?G7O<$knznoe_=&Z346Vh7(bogB_5@NmVF*mv@$rJ*gLi8VfRIf+Tnvtd8-1v9m; zUTXfY0_Ha-kYher7?*0+T0U!ogh~UKjZ1T~0vl_4UGiIGsk&V0K+)q>+2BT!%`Ju%%4KB9Ny$(2=MDW&!Yh J4z|9Kera=_5wt980hy XyZ3te2gCSR%^rI?t;5pOnr zXLG9*ahv2-OfoWd-OF|WFVE>?6nN-a#AtVs&!$mtqS) J z4Qr c0 zq8-lt#5{J$xMTcD)9~(DrVBmCvB|L*rd^ vkB!gylqyBK5l?#a$6(@TaDxA zZsrITeZ8~dB@bjQhB3Ce@;B>HdaH=deH@i^Zw5FEh>ru=6S(>Jkb mj%*GP4(+nFZxGxOp(kJz7+&hyC z`~GK6ePq**oQtz|x{nNX8|&5xY>P%0w(6frtok?ToPomX4`R44SqVp|Ab}(>x)aPY zCNH27fU)kbDesp{E^V )NGzwi+PI#y|>O)(34?>H8fbtHk# zTP8|3%SAr{{&soZYBH-$Wx}ey9#q;IK8#d)5dY&EMc>uyZ7nfvEbp$o6VX)S^Z`($ zPFd8qzqk^GS1CfIKXTF{t8VI&eU0udOnhAQsPN?jd)F)f2)%BDd=Tj?@*HZZOf~>< z@cyWE_SDxP{)12@TSG^?f`=(;I*Wh8AofI>eB72|$d>Ms u5ew2>Nb^m_J*jwoK z&%1!HA638#a8?Pw+%~)7c!yrsbAY?OoM2C0JrFZuk9-LhBYAa+m!N7Y^jx#vta-T) zj_N(6NI@%%>I5-NPvh#o{3*Ct{ izPP^R?7*sD^*7eJ$O@rDvv>6RD|9#1d?#Dp`d{$m^7HB_z4iNVAAa9! zXu8Ul2^s!#HY{&V_THW6Ts-^6l`#kPLXaZ %~-?bV~*4pUHq7P0rP7SSMK{fPfJBZaFyj z93=)G1*KzmE$S2cY)lHNEVugh6f=GsOFT`Gm;N3MP|X6==maf7>S-ffMxDl|dNUq& z!#X|{Zwb*o`PK9!)VD9N(w{wn$L^Vkhyc0@V63AAS5GF}1^
GiDrq?pB*?Ly6OB|hx~CIw55 zH4!SKQl)tt{lV&P%=2XHvbkO(8Cun#Ncb^=(0YKElASjlt2W>MhNF6I%=4`!4?A(% zO@2`S8~$mtK#* $08DxODQpa(Q0 zpC?Uf_y9k~Lb{)49qry7J29xxbE%xa-K}`fbY2`mY^B^ts3TSn-69(X5#FW7gjw6@ zzPj?7nzra6&Z(|94=ryBlzE1~9Bt{~g+uO;Ajirii=HfGjI_Gh`!4yL(BjL984*zk zEUk(~KY6)U!=6@kbkAet> $ zfs6cQ61~VxwZF8E6h -PhX 9ZGn*wxJ127>V^4zeho{^EG| znYX4u{+54*N#V?i ka9(lpU!3+U>^#AB!L!O8NY{svdWGqD3$G!t4Lj z&Uv*pp=Av?6phk3f^?#Ss30In7ZQ+eL=Xg&j*+1gP`Z?Wlp_XEuwdw2q=|%tn$W?6 z0+P@|O#( u^CrHf2YBDkW2p;WT&6yH07l>FAy zCN%^Cy86;_Zz>lIM@d8R*vq4(97+1#vb!8TtYMrm!zfDoiE7idzI7ngxt0xw*tWb? zUTRf|xH#KvaQxWg_^k%A6z@n9Hk!%qp8HAq)laiVf^9hO3g*g~YpxV%(ED2sjUz#w zH~}k8R?mRYy3m~8cjdAdrWH{)BVOsqJOm85p!Ni3pf18pN!)01`q3V%NW^@fSNA+` z;>qFBkj@=L*|o*+a9SL~CA+nI_L~8-X=B4xCKz;_X$4G+1FdEo!5?vU`HKi(pQD2$ zZX4-%y6*jpv_5&;BD_l8TU5zg`c4qnC1AA;FqJheRJ*XbLCNWco8Prbn7%nESP63% zHZECZ368~BQ4Rxxs6Dc}8A^d-mSeRmLO@G7dvm1%Gs>;l4YoHq6a5PcneOSu-8OlJ z d6qq;~K^lMR?|CZT;vjw%eIp_PG=#X{)9Z0H^a%F1F+48jsz5M A#f8pj zw*d|o(r!cV!NDNLb@442amatarQyZ?$^N~+mK?vhi|AXGF%GTi($N d( wGYR)$1tP(s~Q<%zN{Y zb2HPVfuTIb7sFaC&HbYhBX`l?fG%UEDI_&C|Frz$YdL$bSf5)P3$DtUq@QcZ;~2CN z<31b(CdWi;VZvFboc)KKzi1!c@9m3JQ903^#C-;Hzu#h4p+kFLrHQ`D7JJV^D~7zp z5{o+$;Ki*`PPRO{?n)1l50!>->XEk&?Pw!C(}9`>0xJ`-_xmTrcfYt%EO55()j&B8 zR}ojyJiqD};fXQOMUb?Mgo=i6nctvfD4Pjhp;$UH5HDufquSRgR#e>)oi#gl7Y*%+ z&D^ !(OKNx6W z8kg`TQ~BvCFb*QghNtt{NzHG7EaOd&9z3ZuyZ6^{LanLtQB!(Ll$@!D^JOyt+w+5% zUr3IzH`p!@qh_9(+Guq{VQHkBKL)#hNDrEgyo^teeRU|w_{U#|WL7Q}Galw@?mTg} zZ^La~qXCUr{8+^$qqOoHAmYTBq*Nkt=b5IoYnEg}x$lPO`C7`^j5R~>{Uts&CGs0^ zD9W@Rs{>0ioV%}ku}G(FU2nVx0HV_K62=hVVymu9-73GP_Gf1 )B9g-Dtv^BuM+8Gq0f;xOTJV`ewDz<1K)SJe z6J6oequ|R$PzkRzz%BJ=Zg0^|_eRxT*9e!RQf3sHN;NR=!^xt@ikh2Pqv<7KInPg$ zW~rjzKpz*<+KnriY7I~jTh $?FXO?bI=@%9upc-cCS$!n%*dJiHJn}7=%ba> z_H|N?Es=1|;(cVGh6Ls{zBoCy6P3n$u~D~mv=C+jSZebwk0BH@zFE8tV%oDG4^EA) z)<)R2r8>~huUUaF+KXp7a_3QzJo_UvP T? zNW*E J xaDr>j0W*CJjg4)b@+3} z_B<1{AD;-3*7v4oQ$&|1UX_}|X_#SQzK8=qlLK{xE)upqIZ}wekis;7$KWDcv6q@O zLA_{|`4v6K)80$!ij=`ZYaSn-a<^w>QWc)i7Tjo{ MQmEGIxJ0pto&7IT<1X%y5 zNdLBH$%dHTg(RjwMcJ+&Rnw-tMV>GTmkcp@@bU!$cwqD;rfcyH+vCWTj%0V*?IKw} z9L9>rOEVp?guP>!*6{~t6HszYFUx+N4R<$2V;Af4hunJ^peF^VabIzxlh;?a*F}Cr z$85b`oE!lkqXo6ljj7nQ9SGSaGQ!E4-_?{)GW3zru_koVX+EA8E7+k04US#>=9Bjf zpi_2l1X!qpev_2+J(XD7ZgsUyuAq5vV99@Ne1BEX5g8-&8<6~xRQcz5`ar6N)$x8u ze($3ka+w!^4=mX9*eu$H3(GS+!9Ow;1Rk{8l9C$wAt0iqBR`JusL>YwL}`#G>_9M* z6z9*R01stGmj=hrIm*d)^UBEF-iMLZ{lXi1 ljf<1dMx`|%IcnsbKin^U-d0ns-4y*=5^zZE4;zs z{P=upHkm3`ATfq6 C|<*Om&GQ5wK|)$`0UR2K_VL)(TTH-pHT2OkD5KIe?;H`3gE zI*$;I4*5^aKD%($zpd@3wVu9QImBjh{)`Zl*B?HYKS+OId&NG*h^gpwk@MnKNwPgG z{q`MCdow_VR-xYkC%Lv*o2#t+IGwRqEn>s1PBPXH$m-21ja?4o6I}F#HKmB!XUL~J zmb^y*$+lk&g_P6VA8Ax``zpn*i5kN8H1IIQ-czX~G76OjNV|6Te*fUO+UUj3mGb|q zvCP&8nx~HD$1h1#SW0+x2I5nExH1@TX;dhqoO}<>@1phrW%8oE@snZ~g4t(U#5_;K zCBS1vD_%$*;W&;FzkJTV=-PaN00>sXe2;z}!mx9i)e=}4Tr-q)rs4M^*%)g47Jido z>60V@-ezg(K`ne!FpJtv2SFRZ)=(NgV4&Ba!GGwKx+rEEDo#!l8+0`o)aeEAOTaIf z$}%P2aM1>+Oa-O7f#{0_JT|mC)@JR1_YwSCVoa4tqPWMNc%3%|xOupk`LuQAZS_X$ z ii zDF}V3-oggeZji7W+d@iCuGzVOavJtFlp^vig31G9z(=o{$7l<^S2mo?^23hGgW5b% zD{D(rf-amPZun){Ty_zspMCTjFoyVJR%`68$I|XEB08;k2Neb|miIkJPH~)XhKt82 zd~Ls1Hh0%7y;PZ)Tc<#{4U0+*-a
wr5@xo1b@zs62CvgvYrz!uOxYaX4+Aap` z;9-5+azE@y%}^Ah|E!7EthVKrj+|U=)Id_a_YM!kv3Jrh5AS9ZzekQV z!5IggdXByBe6Bu{#5k|?Vg12`!%pc0SC`k6n_d}eV|gEvdGxl{*au H!JhW`5JdQFt+as*oIkU>f<>k$m4okjhJgu&7^a<=^AyMs6JJ zG}gnAc?Eie_E+w0$-j620djs+Ia-yeCTwOwWBVll{rA*nthn(-9^qXP-xs(= {D^<8KI(6Q=I-p`6SEd zmR-7iXRy3j?(|9x0M6-WGG;l)qtGwgXSa+uV|N|kZ&r&$Qp-)%(`$+!T2!rTCs}l6 zBc(@yS!?XX8kbNy%|Ma5*T4T|E#w;eetiXaTVXTHP#$Cpku3K=REW9idV1$pD~;)t zJI4o&jqLjdFZE{YQy-ssCW>z}FU2Hmd}ohNLW=~iF`zV<5knhhkb;2o*HoSjs!&hf p=bkJbIPg=0H(Btb!#me(-;vZN{w _