From a6b0edaf6dd5f0e1c09b9ceeb387f84108f61fa4 Mon Sep 17 00:00:00 2001 From: scruel Date: Sun, 21 Jan 2018 23:48:08 +0800 Subject: [PATCH] optimize fix and optimize the derivation of the cost function of week3 --- image/20180120_105744.png | Bin 0 -> 73728 bytes image/20180121_110111.png | Bin 0 -> 76066 bytes index.html | 3 ++- week2.html | 4 ++-- week2.md | 4 ++-- week3.html | 21 ++++++++++----------- week3.md | 23 +++++++++++------------ week4.html | 2 +- week4.md | 2 +- 9 files changed, 29 insertions(+), 30 deletions(-) create mode 100644 image/20180120_105744.png create mode 100644 image/20180121_110111.png diff --git a/image/20180120_105744.png b/image/20180120_105744.png new file mode 100644 index 0000000000000000000000000000000000000000..097b24a104e41941f53a754fcc2368290945a727 GIT binary patch literal 73728 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
v^oB=Bl7a{2#?1jk&%&YZYLB9iJhHYv$d52 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

&#|zR28@3y!LLl8*;gvQ@B1Fx?4X&$LiYx z=f+bb&{;VPT{}(aZv6K zBSaz*L?RI&kh{&6Y(Bs9xMMVJDv|4dT*GFybiNl?`s5lJRa24)S#fC06ZQK8jU7u znVe8CUd?z!j~SzYYkpEJA#0b*1*K9MmHbCEoNNCSN7pFAF7oa#Kg79jK8N?jA$U(5 z!ntoghx^M9!!Gh2BWSUvgQ^Xk+G&n0B6KyMU4C=^C5b!4$v zAP@+mN^_~Lt%XP=V)I)C0s$&2DmdTEnADm`_W{NT?)y7oJc(MZmNgRR&z}!IpN~zO zHgSF*z(rAWCV#WOzMkC}Ii1dc2+ZjZ*ZLc3{jj0r%CVP}7w3|F^?;2dN&k>E8slK? zUv?yC0N~YEUqwbn2C}oWF?Q@&+ z*y7R$?eXA;s^0{72D|Fb@fip`9-P@z1;?`!{LX#iPxIprb28!FXns>nexgh!i>iZ< z+wF!#BJrCejHgnmR7Q+EFmg#;C3clgS_wiBMWvdPyog&1N$s5=mT(W^r+G#NvfuL=&=hI2;g* z#c}6iGWhQP6P7#H#v7QCc`ba+ybdoipt8$n2pC!8kGiv0VTu@+=wOU#4IiJr*c6K(_ty>rI-ojP8kxTw&PEJnH z-%Zy}li$7OQX6bNuH$~`H^~B+A16tpF%F)1!O9wGpa1jQfgTS2b-0rq&uGz4FlNjc z%$qk4n>TL`DU)-lC@U+AS!x5g*rF?zu}2fKW^$Hd=^WzA>FsO$7T}}L%i%q7D6Vt* z;yu;j7X~__%fzYoR>pL$NCMu##qKXTIXN+XhiliaMOIc8Qd3hgb?Q{k8;EF%a)4gr zSEti)dTm=<8^mHUh7KLdF8Vb!HPC1@$jZusR;!JvLsD&RE%c&oY+$%>a5l=qQ(6ES!5udFhH` zdOYY{KjWeoy!57iEv!m1a3qb!IM5WEStIRm#}5NN92`Ay8j1xk;X3Iwq@|@};>3xZ zWO6PQMMXssck|(hw?!A%kTqjC#lMBwjKH--#(;o#@NiGkPMq?b@zr@5EjYm(M9_Zl! z02B*eLfW7Vq@<)kB9TC=)uN)J0ydisO-)VxlDEhe#sd*cn3*9FExNdbteGO7XbTuT z9bft7Fdl#P!G2Fl_tixEZrQas_s!>=j^mOm$QaPk6bU(<6>PueaCkf( zl$Di1AP~TAx5qqAtJMmbOcvE#n>dCPQ9c9`t%Wj7B5ub~~DzoBLgin8|hW)%A-8 zhrLoxNaolf=jL-BXG>sGuGbT&gLs> zwOTYaHNoLMJVBKMwGj+;TNd`5zuR7mz9-4C={|CM zee*z>4N7%&HN;{uYgjS4#f621e)2`WqRozH#w9d|F%lQLU48~DmoT+&2bFNNw6s7j zmm@bfH?AJ=jC>QEsFbo!ra#)<=!%zp|{?8 z3nGyyruE$#qot)K zAtCN~E0s+qQ&5e)Scnv|uCA_zP$&$#5c2taKaYxg|N9p`eoIGQQc+vav4eiaF_9{& zBjpM*bB9X~X?=Y?G#U-t3C7o3rqyc0E~Ey7Awa{AOHmFNe1*R~9uIUn9i&oe$b3qb zN)=RdvM-EGkXo$>fr;BKGF#3$BXENt*opBpU;ojT!0HYoz73IurIzwqD&?OkH< zcmDN>0hRhma%o5!jd9>xJ^kOGwGQ-f{Hmv)c%e79&EarBqtQSjk#OFTyId|bH#fs> zx5H>OLa)~&FE5Y1@d^Y2wr_PwNeN6Q6KZN|(AL(*dDndS@Zq=$P813Srv;uX;X>BF z)!(J1rEKnzTCMgoG=05&CvD3UHa4#K7T<*PHb%-7EGsL6NF)kt2zfjnSglsb<#I@+ zQkYDpfDJ`MLj$Xu7mn)cYVdeGSglr0MLAqyys4{KuSQ;8Uc@4v=H_Nr5{N79?d>Qj zDS<#BfJ&u;)oKkn_PV+{HlJ?Wwr#lTs;jVi^=h=WwXu>!Om3yGmvJC<_k8Dcs0#g- zmX?T`orez}X2srP=@s9X#>Peng+jmY%H?vwZnp;*iAJN5HD-ftSbck1#}g_CF5cII zNk}pIn+q2%#MrT8<8FMwg)^U712kS8&x}LYPE*vL>z=bGdm9w=k!L#c)ChF#w)D>% zNOIYcG#caJa?@$t^ucHBcwTsYyWew+UZPH?i#r7EbUM-0)P(BlYE)EIK&R6oH#Zkj zsT5gRS*-SBK|ujZOG{xkn^9X^8xV$M7Moah+|03YY2WoBT*%sJG(swsV*mdAY-_Oc z@^aRT=Idqr{^`+|te>wh7tXu=Brk#$#e~Zh^msfdC@6qjE)V&+I-O2bR8&AH6b2a0 zeNiYBoaKw^>+3OcMMXuNtFL`wjA*8tQgLx{ z(D%{S)&_}0g5Uk_cbGC|3bM1aQBzX`rBaFi`mg_jOeO;Wzc!Ntxgeiy`rAe0wOkhP zJkvoXTq*%01aB}H5)z7KHUnm}88tOEC@Cp{LZJYk&kryXePKe#p(@y!?khz_MRDCD znau}tU-Ql1WQ@t0nwq$Z`l8|7H=l>>Aau-_gVP_bMfcaA;QaSrvfgCxsScd~{!4U! z{Rvz<*7a6K_Ysw6HZ zVKaTva+rvS%8F)@`tG0jJ%94#Nm{vbC2ifhl}siR<>u!0%Q!kZI_S`$L+sx--+aUV z`{2QYBoqosBodKGB%+j*6ngvZx5;EO(Y^QHOG2TL^L19PTuH61tyEoIozU?gJa~{6 zFJ4Rs4<4k-%1TnJ)kH+JeED+PwQCps^rt_iL4yX-tXZ?@<(FTknwlE=;SDXhKkpsK z@R`rhh+nQq=$N?DRrd!v^|#*>5z&xarV(GajeYLq$&+-~U3bxn6)Q-q)%qXT)kU*s z&n6y^M^#l-l$Dj`_x!cED;Iy{3(#)ANNu^TJjvYIwp`jt-{5pR8I8B%^ zf$Hn)Ng|QNeBIYyf1TcV;|-F_<@D&Ik5XP<9{YZ}y1HoY+_`k&!Ubw-Y9f!vLra$~ zr2_{JP)$t@o&4?~b*vcQd$QDYy6&a#C}l`im@D=l@N|=7`3;0~T|`7Q>e>IH^lNTp z-^Y|GQ)tedIkalks(@opo;*p9KmIr!IB^2#gp*=L_o zN=gbTl}ftrzWYd}QiVOg*XyNu^X3r|g}q;Nb#>A5<;!W?wrymwSV*N(#WdEBKmM2& zELcDrH*Tb|vN93~1Z1&Th|lMxLnQpfC^gY_OaGmK6`P%yWdNz+I zo<#ImIehpq>g(%KRaJ%Z@^ajF-+dS|WC(;pA=1;+Ar_0-?hNJS<*2HvLVbOGfcJ~3 zdW|=v6bdF}Es;ntfBt-UJRa!vdfa>Oy$}cl*uQ^2csw31oOkM*BheRTQPNxg-1l8BqBQGxxLZJ|4Wo4W^yDpatLZOgzMW}C4j??Lc zN~MZf50as-t`2-YpDp5vM)|f$jr>d%{SkStgI|#XJ_M^zh4YZcUI1ddmQoNE9=AvHZvVmLMb6IMPz!tK4x#4 z%jNR(B=UGXOq(_h!-o&Y=FOX<@>=TkdMK4j&SR;msfm01k3RY+($dnfcJ11r&nK#= zFDm}815jt>te~w)!~XfSJxyvb{`-ujvixaot>25cPf)$M1;v3Skf5ns=Q zVtqBs1`?yu$Vzpzx3{CNt_~K9g{}NnDwPllg~-UrfJ7pJTCGM=Q4tm`T7+w^xdtD7 z^ie`X)eKC&)1X0vaQ*ey%`ST%@$?)0M*Zf4h2O8hd=GndP00=GM z&E$spYQ*);S2UZ=Q7xP$B_&}C6#CM)D97XRK&#b4B9X)ts;;W43Yzx7RruTE@jxPx zBy=;<+}sSEPKS()45X%}V({R>&}y|NjtX{nuvuDr7 zuwlcHpP!Fc7F{&b;%(=b2z=WYIyXNRQo!48w?iNhu*FDDrxON)fm6O>D43!St_yUy zqMT0185aNmAOJ~3K~(bc@~E{k%gf6{7V$WpPKZPzP7*@3wY3n7#R-)|v0AODsHngr zk30e%kB5|$6bv0Y6gS>@BL)v1jP&$$q^73A^vGT8_vild!-QQwR?fA5>ZcW1R#q0& z5Nc{_f>bI+K|ukh@88!*WO70K8i~Hdk_X6Wa>jFSv)OE{GC-vH5G;RFuh;+o?VW#I zll9*JU;I!Ir%s(Ra~`QES3&o@&&pY|#tBb&oF}|n-|!YYc)}ANXW)@es2CY_u+#@P zH*v6o=S*+xVBrZ1&cPzXf&zmRBznLj9W19zL5FU-=?3rbADmq>*w}y#P(RPd!$+}Q zyFQ<>i(RkJkN4|Ek&%&3U)$5Wk--@4FwrbUFCOnb~Ys^Cv$c}d_LcyM`eG; z=dG=+l$V!B(b3Vwr1m{&7vRu=tmS36h#01=-q=(&+rE3e}2LB=Vm>FMbXMPl#Qx=M2D zO+`fo2?T;cMM3tarxCZK>s7DUQ*3N3iN#`v&#P1_JA?b4G&D4D#dQqEXorbL4{+$~ zCQh_PzK}Jnk%H$gT&AdBXLId;SpMyx&(+e>LXnY?B$LTJnouwhEEWs5^gIwW8VyOM zQkP=WR{332RK(c{^{o8n^Z5=vDjOOasI9GyN=r*=`SRuD@9)pu>mLo%X z`yRn^zL~V@AUgHyAd-l9eS8v=laom-7SrCndnr0PnuJ0jrKhJ4`KDD`TI$ju+r~f) zylv?`&SKVV2{X~r(QfU7bY}eB8(XHar?x$$rlwMAYAWUC=2CHSF@5pH7xd>p|Ctsq zUQB*|eguGge0=CXX56@*M$3|*Rvkope;za};#*rEdfh=M0$-_~Ek&(C*A=iR+~ zH(q+_C9GMq1}P~i2n-DLM0efBXfz@sA_9vSFLqd!>5PR77vjk$pG0zU@}S#pZ*S)+ zy-P|;uxHO6yXSp;d@y$GSor(<o|2K0G~B?SH2pJM#RO%p`oFHdk=|;iHM1b8S-arwOSD#9**qnY(z#za*ykD zI+)GoKF2@*{PUPLZ5p<2-O4?t)oNk2S{kPBm44qDgj*bqP&1P7wR&;fBp{uKlJI2Sy2SfxPA0PZ`-Xv_6UIzf& zvHjeLRZjQh%-ZqT^{o~EF(VMs?_B}_?Ao;p8#Zh}T3Q;^YBj7@D{5vO!&EO-)URh=@R4T^)o%q08fSIvwWEpN~zOHX%Mfe!%Uy zLaWtc_3G6)fBrne!ou*$C!ZicKi_4gwb5wA{Q2|o{PWKvDJjYBIkVY}`|i6Bd3kwu ze?JVyXoHDH4{`E`^LXL)0+`I*U-nUt+>f+`#a?YQ<4+&sqr*o50DgYH_}}0DKm6x? zvpjO{_V#wpE<>ZyKqixU3}@DkN8Dep;oEav2zfvXA0Hna zJ$e+^uV2UH$&(=xi7m z#bUv+W5?j<=ZByE^ryIb^(qb>I)n!vcmVg`f4|e$&7M8G&tq1r6&j5O_uY3NeZ{*xN#$rl9KG6^Y{06+a4+~Fc3na5WoA~?=W%VM9iK&8zCVfm_2(oCQh7) zzy0lRcP^naQ&mBB?5Np@2MMFcwun*K347VB4dCpsm(l3v5%fzx3 zZ_%r{B?I1H=nhtEC;je^2kqJ#%CdBS6c-nJ%oKc}G&VLmO;>P6dU`q+&*o`*TBwAC zgwVEa+eok1a}|eLbr4zgTCcP{5W36;(yD`~oRj}Oh9Ig|G6*+b>! z<$eCu)zwi;ON(3odS3^&J*Dmx8#pVN)tu4-MfILC({hKWH= zNTE=;eN8tuHuj0mv@w|Ka0X*IVWQE)ytBW;PRzw`*-PymMvt9efBC9i=Cz~r7f)j_ z7)Y&FlSm};nkS+&YHDhne!)7zVzE$ISlE!nL~l-?KFvkNMMg$aQBjfIP3-)3#i-oV zs8t71V#G}1@pu#+9ZjL3p@Xu}aYcN5yjwTA)2B~6EXo-uxw*MCapFXpI(4ectYcT$ z{P=qB$Loz$Ds`*s+7%{~i8LAw-FfGoGGm!n>GQRU={wURqk}@C()%RaI33 z&JcD+a&j{9csxo-NO1Z^-u{PYZ&;*!`_Yiw94fZz>6|A6Xv+Apb|S5)sEDiHb=R!B zKWb`f+{%~kY2ZB+Qc_Y#EEdzrlP5`|(GZ`{AM!vZEiKKZ@pnZ<1&KtWL5m<;?Buj* z(~U!+ngB_$NvfXl!gGnM_7XrP8hUSy)); zaKMtAn@cj8Y{-3fMb~u`nT~%#`uBfB?SFWd&Tm)P`81y2uAufmJWKlbe?z8kKVpX7 z3?gEMFka)Y6~~bAr;pLud1JHtT_OQqcv=qGgLh)=826%=Iy<{ibNqY!;V+e3!3)s6 zhjDF;0?$7AV~_W}Kg?z`wr<^uciwpi85tRU;^@4^-o1OVdGlseRaLpQ8GiNZ)c}Cp z+}t6xd+gXTh(sdr`Fy9xbQG?~l`nPz046;7GA1ft8B&`=#ds(Smkw;i!GCq)-UUx# zLCSl5j;XJ&M^;uA4jecDl}hC@7SI_B7A(LEFT8-**w}uLTfKTUPMtc1($dlaw*hot zcPm$}gjTCXQBe^W$9DMeVLbE9Gh8voU|FTgeYmzggaF_(CJ-|+z8|?_m@X^M z{&pr8BRG9y4aUrHzJIhgR;v~D_4TN%ti+KcM^IT=34eco$Ye6in>P;%g#uw=VSOSa ztE;QAbm>wwHa7PAw+D0=?rq+@88tOEZhbclg!cA!tXj1STCEoO`S~uRC9PH~wr<^u ztgI|#XJ;cOCZ^xxckbMYtgI|lRaM!&&-wG`;}^g91ribxJn}wzVm?}otKa+u=3}MY z=jskVV*(Ly-$Dfa=hGNBcPWbxyiH-E(TjZ3cp4dh`WV`Cdb`KR1&)PWau*(v+zrum zKBiBZfay~v007QkG~oP216tcJ>pO4(!T(1xyq~UxuX4lqj2qH1pr|3bALq8L(XqpI-L$VIXT$5b0?%yDH0PCxvXth?Ax~w zIXO9~sHo`oxZS&VW6PE;sH>}UDF7VN-rkO-OP4|<5+Of7zmLFZYHGrgB}<@GDzR)e5iOA;WW=JFw$mMd( zn>P=FK>K_%O=K%D4g;+hC%hp}}K9`1*HW;nIOk+;ue+#)uxor0Cxv zU`~Vwdd9e!V4~5>T(?+JSXPJKA63D4_1cimH7;;0RxExP%YXKe+cTBk#A>zT?YG~? zn{U2}mtTGvYPEV$H|&A1ZrwW6*4CoDyxe75`}gn1=FOYY(9q!3ev!qD)(x|{QTs^R z?sSyiHV4di*s7VX|o6^EG&dn zDs_6^`uch-T(}TrWo3{^Bm;gw&CShNvSbOOqoa|Lk>T_>olb{mo_PiWfdKjW`7Q?) z{q?oHyxi%m>#MK6iW4VJprD|j&vRz88T(h*RMxROpMcOZ|&N(=;-J`etv$R z=L}^#aQUO|8S61K?#J|$su7vlY5Sjrxc=Q&0K7MgZZsNETU*Ns$wP+@!OzbRF)=ZC z^wCEllgS(k!utApL_|cOxVYG^0^Sq-S+{N-4j(>@{QUeu4?3+@D>iJ{fW3S7A}=ow zN~O~2u`5@ugwbe3K|uj`y=>U90jEx#a(Jx`gwD(7(D7a(%twp+Jm(*LFUCohVvHyp ze*Br-zs`;`=FwrRX0_3G8==;%ORUf!UVIo-u-wPM+_ zWdLCJ1?!9@OO{~Xym?4XP4!xz0N_Gi4ELoxDf)NdJ(1|u_MCC$tKH}*SOWkEm=ghk zx@5rTC@CpHR#q13>+6w_kbpI7*7TX}*t~f&bUGdK^75RXr=z2Tn@JnYHipW|N-SHp z3~6a;ZrLuG&1S4vu>z+~okDSO@t|gCcJJPeH{N&yb#-+Pg{Ms{=jZ2hLZ!XE9XogK zL{3f)WHK2N6BAu}_H}f0V9}yQC@U*-*iM(}63(UFhb~jMC*tJTcMvqM|1AKX#(cCG z7xKDi`h3O&BKXyRz;9x(SKHKTwU|41F81u%gR^JP;>$0;M0IsFbUGar3I#V4IcwG| z$mMcmW@fsajT{Ko)zw(GY#E}WqOfh-wm}U(9G!FJ%9W7GWXR0SbU52?wOX-s=~9G* zgm7CVY}Z|N9}uZ`n&fPt3I|npyeE z|Iu&%r-=S^;4Av>^vx43rO{}(0t-)8=k~^8v5;IYr=+ALm&dlWw2(j`ppz$0daXZ1 zH!4iE>L5CsGHXPVJi4x%sP&cmJXU#IS64@IadE`w^C>Paj;mC*S=G2IhEgh(6dxZy zsJ3mH!Go!^PDx22kw`S?3e@=cc#4jWcKUolK>F7xnNUUgkJ(YZIIH!{^f+&nDps#GdUPfzdjxL&WPqM{;7Nl77@Oh&%GzFZ2+ zKnrXfVX;`a>&6=n5hjy~bD(f$@nkR$ z-}fR}FX;yTK8T1q4eiwNm*3KvbyK)=pIJABu6$iEr1LUv4wz_Uc$BubHj0UfA+cD@ zRfl>5gTX*yVPQ_A<$98tnMn$T!fSmYBBD+U>9&O5xXJ$Yb?>(4fSy&itsC$3ShZto zYb&LurgD};k3RaS%inu?dOAs^(m~zqY&qydvD3-R%OgIYKPb^@GMPv!l{(FxE-fvk z$&)A3%n2-+pvMEdF~Sd#(A)A@{#0*S`O|-Sw$e2QlGz z8^A;(!z&aQ7x(++=m}a|TS+7mx%AJo*}b@vb37ET)_q`iqqUrG_G)`QvFf#SHf7e0 zS;j9l9&f{BGEs7JG6e(#(40AQC^t9P;SGMU2HqBnh16;_g@uKAB=5Pbtc>`4zT4h; zJ?U-yZ8DiCFE5Y6!oo-@mD1L&TRmp$)E~WX{=+fjclqE}dm&Igbbm@$m`o-L2?=p& zw60RANTpIa6of4;EmTlYKx(y`BoYbncsx=l6qJ&ZLdC_!4nM2R%uEsp1YZAc=!wB# zpt!g=3JD2uIIy;b8rTLr1NCmae)?Ox8Ae^Yge5-BPAEW~6M! z>7}KmR9ad}QBhGO5C|wGC501tgEjCr7!0ITDk(BD(xZcn#>Pep2?-hSObt=@%-4(= zGicqqbtDprC^|aY&SXA5KAw`3lRef~XI%R0>-NI2c#GHC>Ma;MiZ*zyt)8T&rc!Kd zY`@1OCnu9!E_eI-Fc=I}R#rx7X=xM{6-9hLpTuG@#mC3fTW`HZ4?q0yfRbE1jcs6^ zoSfWe@MZhHvKgDZ>)mL*q_az?(xpqN)6njf{@ds>8|=RKS~uP~Dw44n-hqimhS#x~ zf_rQE$Cj?(DmfxKIoYcbV?=#N`4{*6(yQ$e5$XT@YrB0*=6`J?8U>f9NyU2NCJVN-`VBN%uEuC z#Y3KfuB)q~=bwL`#*G_C0)c?|d_F0aO3KK{pz`waVUJ4H>-D5ksYomq_t}nNODnSN zm6ge4l$+akpK@JY9rt(B^Ex@3GRtc-jJ>g5(%CIlw`Dy!EbTIeA0`?Z!-BY;!IKya28xc3CYemuukf(Vpo&ByZogtwRFu{QP{n*8HX2;L+227+rDw^tX1!F{XyU4Qu<1;em-p#;{_G+KP;f^!Tz+ zZf>s2*@)ueVhRln^=frD5z(dMEp|8I^V=0eu3GF#r=gwNvYxbSL;vSrd+hwZNk~ZO zcZpY{(NIW82Ztq`cXeec8XFL5}mzS3lpU?M5rn5U(EEY;mPNtBM5WB&J$z84*O}bSSU0!bjW$y?$UdyTB{DCb6aHtk9q5~km>j*bUrh( z&-prvHVj+AjYgyCciGjpiZIloI$IU8qov@Um`o5ac z-O~7QT}O=JgNa7Quw$`UC_6iwghC;0+qTW4U&3i=X(W|O`(0*IsZ^Ajn(DDOoze3P z)V9~hSdlm6FVZX3`F*Mu_4{7*+81;~Lj#FKBB#I8y1F_N2m}t7*OW>n@%enaeUC&$ z`T6-I5D4t{2o4vyxw#||25{ZNY0|U7No1&s3j~7GPtjl_SH>%ZY zQYw{XFc@g!#EGGA=HT{_t9&T``I$2dD#~^J)j3eQ5@(roM$?=H84E4^<2Z4p4_#K6o62GM>ub3F!#6h`_w~o5=r_QN7<}%sD;6$Xh~>+d zJ2dEa$H3c`zr1(vUPMPnWBmB>`1s?GQCeE+@#r^qsIRZbZ-4t+96EFek&%&j=bd-l zioxv9_wrQrcIliM%THE)oR5v&pZPj zkLNI=4FGoT+{xuwdz)(~E6`D}2G+Lk>>l?C;2|(<5dt5Gf**e-{HOj1zT>9?0J^SR zfc3%;=(?7Gr@m03xQ#ayw>;q`}bqVjvY>aPfM08flw&yHyOr; zPN&1qe)cmQJ9Z3n=g!534I7|TD!m>(X~ULu)7;#Q#Kc6*n>P>t^DDh zj#aBxp}oBwMMXt+k2f_nVZnk0Xl!ikH)q(>bY4D(D_^_=Q+*Mv=l(gM*ZNPp8{_^{ zh4GKQ;Ps@J-c(mt|`Sa%y5fOoR-+dP| zXU>Gbzdy!~@yCzNRao;M-M8}KSB?%S>BZA@UOorirn|a-@b$+XZ=Hcpz|fO*7^4Fw z8X2R4_V#uzS2`~*Z^&7)Mxzmn7A=BICd0OE+Z-M({SGbaXT)RCPKX7A;x?u~-a^M&t5* zn9XJ^Sg-(3Km9aPQc~=md+DW@xG2q$z}og5OyBH>Mccq-2ixM~{P;8BH!&E#{Fxa0 zqqzuta0$lDxPN5&X|-bR+_^|gOY0-(Y;k&gKHuqpuRofbo3UcW3J3%O+?Cha-(c_p*CaS2Ypp1+RijIyZfj~ea zk%&|(Rlfx`7K?@2+S;h8sfnagDf#&L(B#RJ>5e<@ppcLdnl^13-92M6{pR5@Uia`E z2tEBiy;-2g7=D;&WQ;lt1_LD}C3(aY+-5diSXk)r`P9@@QmIr!YGbfi&NtH^aQ@@~ z03S6;L_t*LgInpsuI1F0^(3{vavz;pKb_93pH8i>+(&I$Ptt{5%jxpLt#tkD@nP+o z?f2%W5`7>B-gR|#oPAAyG&VL;LP7%Zcsz=UiE-(<*Unat}M^PZ%! zv5_a%PBK6liqpf9SR5tARiwe8aHkn`T6;g zudfd$8n4!UFw$>}h=|Pp{KDSvlX1(yL?dI=QdLz&VPRoIHU)2JXdphH@32zWWHM1` zXsFi`Yi?FzV`Cj=FWVv+-7)YkE-vm@uscGp*HcDD1_^~ilFQ{(R8-{FtW!}@5h)Z3 z3JndV%*@O|n>5>ItK6yTPD@K8nM`KaKa0ge5{ZNg3Ru;sBch|D9bQ-Y`T0%ah;gC$hD=I38&*wX|Oerrf@7Gf1 zcB7)Af9o~c!5)#}pv(C-UC6P!pXiFW7#X|Y{`6Q7@oC-mc$wb-N*%TTYIv|1R zisIs8xBVj>8Go0Tms3bch}XS9Z#IgGiX2)K+59@)%~mG5k>4y9iw8X`J=!^a`ZR@v zgwT{JQ#f&G`{(cPZ}+oorXOk5L1evfYNWeOMBNrooYh$BJtN&6h6iDyk#SSt2~%)e zvV^18$Hm1_Qc}{;I(Z9Vn@Myu^J+8jcD2_uIXRicVzI}T3d_sODLOiu_Usp4#&WyifVqyjyr+6!4OJnLih_I~!48%jxCd$=n^=&20 zEfxz^RaMa|ue?G({_&6PgySQkZqYcJ=(!)8aqGZDBjcuGsHWh~GHl!0+T6;ozSYUg z%X2uB=*+;oCnl4LR4SF*1tkOJqmMqKIdkTakB<-Cd+)vU;fEi3yp5imK7E?P!onyn zF0S8e&5`kUOG^v!`TSumvKq~#q@?sIs%mX*C81F0b|R3;Wa1KihAV+*G*MSqN6E>_ zbl-jVk)NL*`T6+~09rI>0)4l-Tb%VYbRS8qmvnZa28>$=CK?$x9j8y9<~F_$rcyOI zIho{gd7tG@jYdNfiR7l=8#P#L)xW(9LG*e(g@%UqyFH+_wUy*@ImN`pcy#v1VzE$B zQ4z`Ia&DPgtJQM*9%V8a6&4nH?K3kN3=|a=MGA$Y-x*eoMnj>Yp?23)YHBLQ#>RT3 zUpEuB%;cT}34_5vVzJom%<;OqI+92vq*AFop1?9%X>4qy+}vDx;)y3{{P^({5D-9o zKA)naqv?YWJ|MYVPDx2gc5$NDzW@73cbkZM?P+{NI?~-?cn~HU88_cFcJ}6*tMJ!Xr^yJ8p*f7VOKq!_2fu*hv7k(Xk^^f==FMTL;OH) z&K8S>qN1Yuh@q1wPdc>(xs|cy{Pq@I>FMbtl}eq8@`{QI5{X2Vo15#Aew;pinv#=~ zNgxnVY;3ICGszVd6`cQFQc{vvKEG|-w)HClO(qjbrBb`QmK?uQ&a68Pft%LrBdmQZrWkJq$A^(8oHSOD{9ML zOuBRl=hLW5mrz^wV!D|BD>8nb>-D`#QBhHLvq40z4ZI5r3rQdlcw~QBO-&8O#Ke$5 zAfS|#lmT0>*f@FeBqb#!5ueW|l}hFDSw5S^i!&P`N52k3(n1=IWSN6zrM4{bhTee{T{{6_#&W2K{bom;cPKSty2qY#Za&dyTn6pirHX$a)v+-A5 zrc1b5oe$HuA968U?lLyyVFW&?#CUl;e8)}lSf5HtO0Z?i7F1PLaq)UutribG^bj-} z4Wgo=`n+cQ_U+iQV+Tr0OCga+2Gy?BYDGy&33lw*0i8~V#Kc6z$HxyjdmI2dIy$gx z*DhpbWkDzuV*UE{P^nZN$+@nsuEx@(OOcqE*e6O501h5Jh*hgrp{lA1B9RESwY6BX zWCAAhFT z`T_teSFVImDCF{^ckbMY9XocQqN2iSykC2JJ65k=jppWN&VIJA9FMMXs+Gc(ifIkK41`tnSW#S8!tZutlN zrp)%(`xq!)#tUfObQjQN1$_N6Z^9gTdh{CUAq>Qm6a$hErm!V8gQFNqY=Ay z?LtmY4n!gm5)%^<9UVQS_u&ky)r$T5_xBN|L;XxoojQd@ixxpHmm@bfw~rWo_0?DL z@y8#dqM`!+{{DRgl&2VtgAf3ytgOU}6)Vut&;TBfhXV%=VC~wqC@U+2SS)tDybJ&cxMu+bFCHARzA!uw6OD{p606mUty{MuCnpCP85xL+i|hAz z+iXx_VIe1;RVem?iu>eZ`p z>eMNemX_KbYcv|MY}qoH&1Mu86@ka&4XCYCr%oX&D+~Mf?L%Z_B-XEAKj>M?!BAOQ zi5)w3;PBzYh>MHEnl)<>8X7w2^BIjsEM2-3037~47A;zY(9lq1XJ0$Ut;-G&cb2`M1>*qtS>B8#bV%qy+i-`3{d6jcB!6eER99 zUJ;1{#q{?=T-+T8p!@R--qPstfq*;EH6zZw_8>Yhp928!pV@)&k0lIyKN#MFiAKgP zO;b}7R;^lvz`#J{<>mGJMSk$$L9AG@0u>b%5R1j==;%OrcsL3Q3I=^6GakyqrH@|e zUaI*w{?qOTFY-4C`mqW=0qzMex@LswXbFsEJ78)3huw37omtT7ba?2Yhqz@_0NA~I zH@0lqg1WjoyV*FMPKPB+mLM!F40(BZ1DXY@uCB(89Xn82S&8`gc&u5oWTxXe`S}7(7N$XGFIdfbq>K( zu+u_Us`IJ!mHX_@ePP#f>M{>31~D!!&dw*#nSr;hvf5owJ)-XF^uoeIlF4Kw7K@al)@pyr~gCR7bn_% z_PQ0BSK)_pLn?K6f4 zCK?&H4epwPZ`-zw#9}d5;i*(A2PBw?sE=T5%X*SJ4edkfe^0v125R5=v|StRJD+y@ z^;K0>6dD@J2{~s5-nLv|cRliY3bDw@$Wbc@deT$iibNvH$jBI!-(x{R0SN?xKAw_! zd3l`icX4s?EjtJy>i%2F$jIQl1ReQ)Ha0erR4OHlgVV_W>4I` zarE>k)2f3=zwgDN-PoPcX`xFWZXVPuku6EZh9d)SjYdNPfxxX?;FgvaN=iy1p-@P1 zadCr6>KP4GRaKEnr6L}WM{2ct!1>uW-^$(w@o{l+obh*LWF%#0XAkJSqkRxUL{wB% zL}6iJT%4pzrRsA`c6K%i1cFgvL8RB~si>%k)N1ujD-wHS)oZDB~8k1mW4DL4Mj%Ym2!9%c5}BGF84O@wpc6_8yibfsnn?e zv{)=uP*6Zpsg%OP!batOMNiRlxm_ZWP=0>CTT9D&y`B^b1u2zEZkvN`#=5MmjMQqi zTQPb!!ytsHduBd9KAzj!(erP~W&)p)kuj{f?!85#Z2*v&nQ3P@ek*e2>w-R88LprH z)}w7$bSLb-@3iWm?(GtcTN)-B8Mi$qlZld(lPM%5q|bgdgTX*yVPTY!kwG;zH542i zOeaosFTF%XMbX~9dnqI&r2E*kI$GHL-8?CLa)Y{t0?E}3T1|dY<1yn+zkpB3`KiUmI^m;wT#KcfoSlF;^ zSFr6FbtDpR*6k8Q;YxMB-GJlFx+!$&!_CxrwPQ%fOA{tcAdAI9si~>-`s=R~pU#k=q7wGYmqAy7$L! z+_;hWd_MOc%gf72Boa|lQj*tZp$!HDm6n!r(S!nl;IHJ>n&f~`OVs1KY3XW{DbcuuD8P&VVG!SFdWd- z)WjviXfzsxgoL27vJ%fc^9-JP>M8u`Pk+L(W5=*~@nSSLH{*O}Bp2hxUzUUMkHn2g zzfJW;xcJ9d0Dyn+y$DXN1JG?;zG1@#)YQ~q@7}$ffp=wPC04Ckh3xEXs8lMu*gdn^ zjKsu5#Ky*YBoF#lrDrT6kHJ~DJ~t@2z_Mk_P+ne+U;XM=2nq_qjvYIY zo15z}`NbW~W;3d*t8w`7VH`Si2*-{cV@{=PFTVZ=xO+av zNus-Fy;;)BZ3z>N3`RdRH#c)pgnGRm8#iu*Kp?>DufLA-=g;HOM<2!Uqu=1GXS*S}D-v({SCDwX2s(W3}|K#X_)qrUq@qi_)7KkaTDI&=t2mMlS3R1{iUTfyh^ zk(ZZe7o+Hko+9z{&p*epW5*zsN|{I;CT!89*PAO~ZTk*g#tZ1Wasi!}&%tkEFnq^P zg)eU^{HNWGv3Jc!-~)@`%bPmV-DZq1Of)hW{jhfJTI}7s7fPiPR;v{U4jjPv@#7H@ z5rN|3VvHL%4s_jwgDPLln&<=mGdnQ;v4j!r^VOPt(Es1_-T#00B0Toym#C_$!rHZK zF?H%xT)A=uCr+HetXZ@0%{SjToDpMq2AxiatgI~T+_@8Sxg3`+UBa9>b5LAdjG&+( z1O^7;U;p|Sf`fx`_Uu{s`1s(V`|rg23$y@6=OAR<6YC)m2rzl_WEhP`q@|@ntya4{ zPj8V}UtbT2M1m)tcmk1;kxV2q7&ie-G%^@2Xm4-FfddEd-h1z%rltl#K|#21;R5{q z{c-i`RRBQMbK@{;q7MY>5(LbN7}5S-KlL@*c69e4!0um@onJ=FP)bUwwtHt}b+Sb)mDf6G1^i z2%Q#);-6gsfKfLH87Enar*?mjBS(%PJUkrlzWc7znQ5!lirU&*96Wf?P9)l95@j+O zyY?82n+!IrV=$axG#asg|9JG?YGF!&qrNdU7y$Z@n?=ePaXH+ z==m;udEz{NzU~36T)7fvvl(~Zc_-d~|9z)bz6|dW7#N7q&`_kOr$evTBPS;ZpMLr& z#*7(*$&)9et*s3JU@#b9p5Vj1&Odn0NOk!}AEw>K{eQwc<*2MVix*ya0dK$kw%yF2 zO(fc85^HN~5f&DP#~*(jX=!OpBr+Jc08BJ87*1$vYQpEAe~ylh4s>*M0O+1|G#b12 zcLf9lz-%@n&>t{&5&$3g@$VSH9(Q9CjXRE55FF%(XPas_wXaR>BzJLlK_}Ux+{Iqn+X#Gd|)sbkeHZ=!oouEcq3EQ&0sJ_ z1|}LAj3MI3pV>n+o*6Zw@y&>_xLfil?tb~x5$zA7o1Hs%!r$K?B9Vyu$LI5L?AS4^ zUAq=$vl-dh*_d6v4%dJ92EgbVgcL3ffZvqa5N^pB(f%+PjFE$hMh0Vu^xSu5J$GWn ztEW3Jd=CJ4K;VmU0v7u>T1ZH+uY&IA=)mgLt5H%?g7oxsF0%4M%?&TS(KHAF0RO2! z8o{107>tp|cceSOVBGACnHkRgzxnvV5$s9dK8z8C_j4p;B(Peoc>C?QanC*XfXCyZ zp`n2ji~!&};YPl*_1uXO=%GEfK?nf&j%Qw;494vY6O9bU5E(c3M*ixxlNBRd6w_se z>F5nJ=)eb;j9gzBeW_%ks! zg=+i+uUD(6J2|FpX?X2$&^))z)!s;jG!o}P}fvNETp*lZBOU@%52Of)hW z9w6{RCHMcvvK>H|bwv7M_~b3_|Hu8OYDD_La87b^GNPlS`#pvYLKqCjXoZPJ2Ezl4 zm&e0*+#~>irS%`UTC;E1`(Qp=jO*Wh1px3F6NvGTy)f*3V0Z>L2w^Z7qY)+=84M5L zJ8lwq3)gc$8$Nz(SeF&aV#ei?*SMc~iZ$??7~Ib*7^4|B2w^Z7qY)+=84M56Q>a;e!eB5)BTO_h7#_lBOd$BrW^q58kCocpc)f+; z<2UVQq9#547B@@9xOriN5C(%W+F+uQ!SEn~4=%xkMH{)F4P`sLDjW?TziB@s^h6?p z=EZugJ;w0C1|bXvW3=J->Z`B5I?|nBFm5FR?s*KBGYwp{;PvmmgynP{#)bb3KK^4p z(gs<~=y>-97!T*%Xm?Horo_Gj_^`3yt%85>900)e=8EqB{;LY;>O{c3k9(y(M}v?F zk?XwD7K6dK`S2kk8tG0j7`Ga9&4`P;<6u5k%01>k?QTq5ycy$u{LGNfZ9ZCz%O$UI z%ZEU>V4S*YAAACMLpnEObaEjt2Iiy1+|Pkwi!dc_x5qwjvY63Pu*PnNFTq<0T&dcZQ9`_00Auwza0w0Ki|FpZ{ z$Dav5{!9QsXUCcDe;2-o`S?MYj+XSPp7k9!36q|Fi|t{&jbMWi27@t@Fww|h3eh4bY)!^&fNe2AOJ~3K~#90?45g9 zlULUE?<5GQ5m8a24N9k2QPHAe#fmMqFohA{fe~An7h4Zl_0twCI_g-Z*4mCm3RZnl z@j$CH*rJ0SbihIfEGSwOP_SUd5rxV@6p$!^9QOCeHi3`?5+EeN{#_SW4$o;lWGByh z)?Vvg96|^IgTY`h7z_rZN5M6=0SpF%!C){L4E{!3@2m=nifFc=I5gV6(FP8@^5U@#aAMh}EJaSR57!C){LJrL%^F&GR6 zgTY|*K$sK9U@#aA27}Q9VNM)_!C){L3`P%xIdKdIgTY`h7(Ec?#4#AXog+s8S63i4 zRrhVYya0cHptRI*b}<+X2BT9jCyv4B&G`FMCoV1yaCg^zyQCyw;zYpFQ9tL8!C){L z-3D{w7>wS^x^+N70g#yq*xEL~pPEXYyD?(`4u}4Ed8s>VTekwCp}^9mEF#BXFc>BX zbK)3`-bhXk5D@`v+orzE!-GcJjvN690ZyI-l9Q>k)|#zb0V^wD_in@6%rHGtQ>lX= z6{Y(&r%urb?vW#gvx~uC0020I5Mpd27z{=ivtk8x)b8C=U&i48hYzbdZLY4sg$vZF zYfV%X5Ecg1)fvuShUpO%1$_A>b;k6WiU;UT#5?a$XYRxa!`R1QFjypx!RRq4q9TeZ zP)A2PWvXeaGbxF#s|i9hN8PmX>Z`!x$27vi=o_3mMIHCkr&S%eoE+ejPpH$c7>8rV z&~ez3Y18N!ym*nW&tNbN0(0URjGjPF4zOSWeSYsA{d?;zI%TRUpRKeM7&J(?eV;l- zqj2xNr+N9bY4kBGt7En^dLC=n0?U^-fA$Lg@ek_Uxwz1qfqVCWNt5U}Y(3>_YYTk* zF_c~apVYfy8irU&C4fE0(R}9&uwjipdk9ZtW15~rAvXqgMp(*4Pz^V(Z^v< z9D~sl7(AFhwoVrR%U|fDqhs@Xy5_E>rqbx1tu3AUV)R~0OKC;&;K9vPp#J_e!rPi3 zexQz8>nI#Rowt@Z3_x>)R@+U(E3eRfG8l|5hdFT!Mo+-q9q{y|)1EDJjHXSa(^@U_ zmJ|+OTeNoIT1t>GdLLe1G(RmZjgFU(Kc=7i+_~yE24!V{wRQXZOiiV^aNm7L3uP43 z{jCuS>9}Pu7+nr?;uwsc!oh>o*$NA5TfRZz&}qwID=nqdT+D&%JKVTI9XUmGZRt`f zKlAvpdXy|bpXR)^g{v!-s)>l8Q9E6392g8nm&2Sm2BRmCnhFF2(C1cGH1S;1RG0!= zTg^F204-pst5bL2TwOI+pz4!j$1qK-tfH~oT$3)*7V~1ZbNsW0*dnq4YCvU4eY>9xae*iItV^`*n8*zWIheXHFc0(d{rNj=?ZxqM~Tj z?Y;M!D*_eOq!%t|SJGdxf<{PMN7mfkX#_>vpC(7`&><=}!RWbc-AZ#RlauM#Xp6~{ zflHS(FI%xfUH5JH@UF3u!C>eObK)2bQza*dI&ikO>hd3+p7inDInCQnn?|EAVPT!K zL2>5%$6%N$UwlCy6*^okQRFez*K6N?*Dm@) z;^oz`AIDEVp%?5UM_BPgPbD>#j)A&5Dh+b_baPInwlVSh-_vE9axT}drIH~_mo`h4 z)YZ}cyV{(%ix=rW8NDBWfBJh77pGsVwxlHbo95`KpYvyEqN3=y4h^L_q`Iih4#N5{_FZ)@My)|Qaa(9YWs8A)wmz_^y^jM2Xv#%<73?jw3bhdw1jNL2ooyYVz1DL8T^^c@t{rJA(;bj@!J38BuQrsno-aq1Lx{yzMW zYSS@#CW?f9g#?kKBkj1>JMT0*a;HwwyIm_Qrpv|9jzZ{p(j@g| zipZKSdT{RU^a8DKQg=at_Cg1S>64Sw996q_kN&;&7Io;oywsz!rKP~2LE86s`7(Wc z<(2l2t#F*Qb)4xaD^^hZBO~bq=&4i9Le=Zmsjk~z>$xLG==b8_LEVmRz}9ojiDNKK zm5>nHlM(=?Pp5Z}YuD0hr-B0gs=pWv1qu=9wjw8tzRjIGG#a*WA&oZK+R|z9x8J6c zF$D$9>*~_cB`JyCG#K+Y>&6XwQ=@QBTMAWw_nqpxZMB|LNI#iK)jo6L7z|Tp=~DWG zsYsu_cdt4Bgu&2;P)HwJPkoh^Qt@U0_{(3q*Cs~KLD37hb+lhGW*i-x->a)@dtW&@ zblm9@g)=0B22n?@<@D*aY1A=o9kFgJU-W|y=#8|d{J&2=QIF~w80N$=7z{>lBPfVQ zKElG9FItLXgVIturPN-6c}or*0tu+!)oS>1ymS{^gICYBtPYxbz&K30Yqs#pKIxnu?0hklV zVDx6##kX(b?oKZ_ue?GpE*uUpcP@>fq@?JVJsmIW61r*g)Gkb{%2eI$GE;X%d}QZL5cHTdn7`apOkY%M8?djyZ7* zh7J%>6(q^qAo=kNowt$QOhMy`<&a%ZFrZ~^pt$(53$Mu`yPkliQy)Nn_p;90NX~zS zro@eUZPO*VxBxabKyk6==mev85fue^c+k)N-aR_?{`fJ?1=EI?S98HkOJ>ie+dh8W zJpIVwP-jY8p~Jc|~Ds9naSt=4lbId!Ue z3Nz0o(v7hUl=LxaJo!G6*H`Mjt+eO|(s0PPLu0X1xVh1>l$O@L$7OUck&*Ose(yci_a{xF z??*;z-mbll4f>$1Q-Y!cNn3xd+YsKnM{RH2DdO;9y1uQg{&wh#fm_d+8OAkaFnR|> zRE4J0o#;1X5qML4Ro<5sr9gi7GUQb^0RSBS2yn;DK)=_T?^wAbC&1i$2bvN>AIsX;pwPmpIS5>5!-@Oc3@p;G}+ybeg(>RrZ?ZF*8vs>+F^kNj!8Md~x0=^}lo^(p^+&Rtpl+&is!hx``_PaK; zg`$WeI9Pp|zSElk7395fL%on^=~7_XG8%15P1PI`jEtn~{rS)O6#=!Rw3O!lg@zhT zQGiXSG8k_J`b!dssH*#n7m4U2Yt3a6$SVsW`{gXmroN@NOnT+-kp222%%;8t%T?!K{--EF zB8KF`e#k2eRo3N>oeAEHZ>Wtk2BTAa@hnv&C`f&oqSHcsz4q;Q?V{6`iVA3b`Q#Hi z&DvG^YdJZ++`ff@3}qvi$E2XK+jM@@Q2mpAR@Vbk8vvZ6Yg3q~m0~hsNc+7vE4W z08*=-FwS$F4|&zi?$3{7^j;J>ZJPAl+LIAcaN-0N2o4C)&++l{0)F|W zYemcz(k9yU>DubZpr8k|o@3Lg42BkDMYP`^&q4j7+j7cOSGdFNA-|vBX}ffyq=Y^? zI|Bki_Z*YaCi46F;EtZGahdsouhiZn)y07MKyaUXNo^T-0Vm zO)KjGbK)2bEhr*t9R3KM)|V9|0_FoXI(-0u{zD+YqoIP!5bWMfA1y7r=Xi{EA)+e4 zto_eJb~6RCUw;Gun7eP#I{r8VhEPYZJ75*geH(=aoH0`~UU@~cj7dwhIc%*-O{EpH zwzfUKeIaw=7z{0t$M?YSTphn=&@1YkLF42CwEp6axkBzYTTcP_$g#ye^S5Jo|v59jR6 zDpO4aB5tD>V+$--orC47bLcl?5oEtzL(`efYK0Bmjv}|o(UFa(-i*SbdFP#GeY8`j z=(M1fRoh(~Opyf(Xk_l&Z=0)LOG~NVTyiq)nQBa@w2NR)9D|_^^8xLy($ax5bN=6M zFiHoQAgjs2(KDjPo8k+zmlgm`Pn5ZtMnfTp>gL8GalM(45a94(`h5CyD$2WdEp>Xj zvf!Y*u(hSRc5lB;BX1lI&8w@cqvvVhf`jgYeIpqREpV(xL-xyAt;?lZF{bCh0aVKg z(A?67VH6a_2l9$Sjn%15r#=ABalXnjjt(~w21g{K7jS@H3>m$fjua)BGPbt8##z$_ zbK)3%3d#AeATQ5X3aWC2Q^6fI8M5MZm`#04^&&cO7yzp8)jH2je)lq@c_+b}I8Via zlif^#tRPWywV@t4cAY{jrjOlJ9o1JMqAEx;qalA#Op6wt<*{*W>><5&3YN?Msj@zY zKLTi|(YP;p)lHDx25_u};EtRCd1WD_zx=z+LK%5&8F=kTBWAq7#s0vMIHiOjMgPD^bc-}hz0FtyXA9-M@?S!E6gT(b;{A&9`edUNPhSX5y) zcw#V25caKP^a&*AKBW#^tEo@ki*G<)mJ801F=|o{9R3LKo_~d2Fk4NRn$Q26UdLCc z>+>f6v4dxzBMN;u7CA8(idJj@l>kvpl_~^!Wxt#SclbE9?Rbv!A^Y`5$Zn>nO{tnW z|F7B@YYSOnGPong8%`rmEC!Z8YZ142G2rcOnBy=Qj84G{8yLMF>6O1jUUd`P5#!Z! z*BWVSDz3FqSsFa;141H7*XYvop+b7>te*8w<>x3miIRY)gy|bK)4i9(mPG0Gcnl z@^YG^r0t>$Q0LFwHv;ne*CF}w3!RTEyO{z>+Lth!_y=W=RfD3C2XJ?%LcfeINB-M2 zpy>%XL&m7(su58Y_jOeH}60 zcn_`3&byqVBH;9C`uyE@yXTmF5P1a^-qkeyuF!Mi4%ZyjZ3%CRuinDY9qHGrH)3&f zVa$pZhCd#Ip${Sv;N?X-h*(-u4ZA)Li^MVd1e^gw)ZUZ+{54%>t)9QsqY#UMg$wC( zCnr|W&>i$w9Z!n9M*!dq9&HSZx`wrDX>p959pLF{Y-<<{RrcT^l6Vw%^n>cJOX0NB63ISD;7(%9DYYB=Wo>62D^Z<4exl{W*Np?2MD zRTpvkG#yK3X28*-bUZOk0wSt{Bzc=&=^R81{90s!O>is^Lxvx_Tt)a2%s8b!1K;nW8mDqb)O)z!eNRrLAipR;jfLdfr4 zMpHs4I5zg^_r_mz-j2f`0dwyiKtl~0Pb}{_V^I?o6~N@lGzZSi3 z&`|o^+Z*`$Yk({Bi;E^Ltp2kEVqAD~cZbH9l{xF;Rme%#;cQ2zcZW+ka8WjO( zj`=|F?A;*0a}n~AEbzwnu>PkCcI*IBQ)w%~?c0HA+6&S88XQ6hF}4v5218Hw?{AKr zczObfiR{A5=or=2z_@WV%5m%%i*lF{lH_e5PabM)fkZ{j?S1u#TZ zg~nrx(C_ti-B)bYRh&5k1O(8c1~xv`V7KiIMo%L)mWr_gz@9zKfn#)>+FGi&rI@C2 zbv3p{jAsy06=ZiVwyOsy&5Q9&4sEU;t={ZZrd>5m$7;20fc@80I3n4~0D?Po$LBx^M3TPl!V`8(tfieWZ$ zal8BD*w{l}mfKb486J^{R^5w4G+l%hZE1u#aSVnriH!wLoS=VgAret%Z^;t++S?l_ zEd{Kt4Q?W%7a|e?^XCIww$RssfmGa=VKR^>4*@`Ht3G*UA*9z%!R+OCbZY0v8AR9V z5ye|A_22{o=D@W9bK)2bW1>(VZ;Ru{Y0i?u(ew5O5)zmL$LJV&d2|Z(%o!TR4GIFH zqm6A9qZQ=weQ-yN*ScJi_9b}sZapu@tv#etVAG~%2QDp*wi0A$ggJ2xhOzkgV|qaa z)Ro7@Vjwx0M&DMgqSLO{*0h&pLIRsYWps>PyMU=vX@68pOCTi$h>2n2$rNdNs&$b< z`%P03gZ%DgG@a^(?jD9BDvD0?1GJFA!NIupm^kd4%V20g_P7$_f+RHkHw*G74)H;uC73Q zJiRkz^f(MYp4#Ke6)HiaxHvjG(xMoq2WPsN576q!$$mKt01!vNsrJ6?m$Pj~@Jtqw z2w1+ndB!0;oK5lT0FxMDFrGmgMR;;C77f?FN7L<#dTncN_cAP}cw?Yz5V-vZx4*&j z&(ros!-fG5A8KC5(vmuFD^}1(fESynHpR(~} z(n!vK1=%lWVY%vD`zwPwblN0F0GbOY`OhxXlo@H617~IitXoG#ry1?SzQqiNT#6@` zj-&qUCy+g^?9eWnN`6LD$%0F*X!etsRIX42aeANoSkWOWWj>w z_3Z3ewO~)AJIB+B6Vy?A;RQOb6jWCO@4w$1)es11Pu*q9sIDM$;EaOodIDs((jc$8 z2>{>>8AHW*%k#mp8m;1haRv?pKnobSBPZyzfAaXg_GOPs0KoJdIH{Bt*(h@0Qc~z| zAwwtFH<{6=X)5^{wciFqQg&T+0oM!`Xe9-=lr6r!IFU`W6|n7{Cf>V8k0Xr4w@U~5YsD=L^)R}ZJ#$5UgY zx)G;OH|J3Tv=Amfp7laCGLqzNklncm-t(`({7+Hfj+_9=`L7_&{ssWhZ?>u)9M8c6 z((G>_FU@JwiIZ0rLi+R9^m$n>nofP7Q5;xaeH&ci)Gj=uE}(T4YFZl0fzuNc^?MM zY#~rtR7887ipBH}^vV_byd|H14s6`mnNwpJ0i%p3#kBnD)%4=`?YH!T2+-GIVYE>= zi@X^X#ndS8`B%`-GfZWfBCpM2(J?it5M4Sp=z_em5KaFKF|Dao=D>9c%!y<4N$OJ~ z@c3U_m9M$|2ZQes3clNFaQbyHVj-78bbdeTlRksIp-%bspf@+b%6qHkZA2pK$caS2 zzJ1iO3kze>xE_X4#?y%tw0c<+etxu)nK^GpN8v!hd>|~|-ml`QDcWIi_#wZ&#wMawK47MJrEzd;lk>F0q5rG1`j4DT)m=EmI)Bdl{0S_QLF?Kk4nr5m6PSnbDBf zmciV6hfbov21g{KqU9$~0yZ{4Mh0`>Iswy(WArJ+1xYFwTuVnU3=d7~vI{N%@T^9{ z=7S{kpT1D}UVTago@Texm4VUYFy?q756bBaLTK;P+FIcLeIPd%IDekzUQV4#^Wzvs zgH#s-0Jx*4s4Y{p!Q$9x7qjJ#oe6W_2*~eWhvdgEbU&`B3QcD=1O11k~71f$RJDE3|D1=no&3mEdwVS`?90l@n0-H??30!i6* zkVX+|Vi#lNM>z&RF2nE`dpt?ap5oEXy%@Pr!+3IYqfw63RC>W=4xG_x?W9SwVn9Sy zfce1Q@4$)0v`_E;{q%KYBy-@p2sWL{=o5&qCn{whIQ=X!bomM0M0q<2$AXWcOOGp$ zC4F$4O{?|-dc=4#GozYtEGN#mm=6R%3mg>4?_P$ynpPfjt%XK0t6N#VoVI)esL*ul zHiL`~!<@Kw_^GfCo8#`_>+`yccAm|7g!hjWBmU9@16sz=hsQ~uDW4B~bp`s3n%Hf} zHXHr|_-_O&U)P`e0+36)?f8tYhm9wOuJE3F2>>7~N}-Q8Qy{(acko_(0{}oI4IrW_ zNX~zy?1|cIxN-%UGlvRN12h7+a;0%?>SZt|t_{9EUx{NsRpL#jp?LSTkveZTZ`x1< zy&=F)ztrKAlXnehAww5hMoqZ=2V>Bi8@k;F{_DZuS< zFmqi6?uhY_{c;xK!+(Ojq7dc_z5;K&2e>1~gVfwZQ$i?RcX}_0P}SDb4kB~sQXM!x zAK1Pf2njK^WxWoTn4^WWIgjvTehotB3-Que%_5y=a~|P81vMCBV}am5sD{K}8q3Ef z-!TaLt^@~C%dx_JRCk!o(7@B2Q_AN9-Bx$Yv{!35{Vc(E{}6Tmq!;|Bmyct>j9&7C z-N#_#iJ=c1{s^sNy`2^DHA&LbX$7k2ndr5H1CW%&S_m2l7Kzis>FjDu{~ceW19$DN z2%nt1i?7dDp!A`Jwl~ihJ;WTpe`yFV6xHE=O_L$bWoUsI!GDPIqC32b9+!!lq- zfHDES>AzVj%KnU=0UJ*Yh6Y3;ptzXozs;RXU)$RQM~?zoSVc#sCz1f z+aznXWoL69VQ=z%j2&)?g|mjYyRWo)Q}h4;AOJ~3K~#k)8 z`i+{{rTSg^!sQQx`SULWPEv_IQn7Wno4 z)2=p?p#u%q&nTZ;PML2+OP<*<$y52fu{hI+mM~i5=;(;$%aiTyBqq`V27$oXmi7sl6Q_Z?r&5@kakMTUJ;YqE{S6+# zYjfI_VL0TEo2!cZ2`3xT5{kLq%gW~}&CMA`$KBl>g@uKfG-(p1PMwNRKm8P9u~=mt z`IF{|IvY=nK1FRUZCF2dF4Z3d=rpOTD|OsTOX<|9x3^Kv>}xP5P6H1fOEAX9!q{do zx&T@2Z_4L9>*tJU$uk?QnyZ{!Is^>Uz|ztZAAR%@^7Hd?^X5%Vm@omSPoGvUmp`sh zK4;^J(I-$;nm+$Lkeo~_O+7tYbtEnvIPL}+;h)CC=@~{6e2P* z5=BKtSi5#D_U+q;J$v?GNbP;)Hf%gGdOfF41B(_lSDIQ{(y7v*AmiG_P{N!z4OsSL z0ZLOxBod*rvJ%&>T|-4h1xiXvP*FjnBnroF(4ax6x_T44JuDy`#4&0Tx&n>`&9j_v zumSZ=w}4NzPunw0i-{8_V)j@|obaZfnJJB@mtz|s$87{*3ue!r4Hp*|wHq1+Lnp*y z+8*otdFsRg)OlO82H3Cxu(2_&eGCVO>zLrX*$ji&a zxpU_b7Z-=~=g)%>0s!DW^OIz?zZrcBj7VsXmBTPDvdd+#w6uh$rze7ggW=}pW>ni4 zl(MoiT)A=ud3kyG_rL#*t5>f=E|-H4g5rl#0Q~@%)_8Ip!9~h{Wr&N5LrzW(0s;ac z6bj+$>WY~&XTrtB1r81lMzxh;A}A_Kj~!F*Uz(RkbKYueo8NPBp*nBurobfWGfv#@ zf0v=SLX65fs@FD7&>t_39)K&i>*47%6!WGHRjxaDfLXhR2={B6P*C~=08mvY!Tp*h ztpyKNbrRSPV>xzRO=@Z?e*E!AWM*dK%9Se^GGqv9Yil8w%faDrluq0zKK0^ck1LIS z(N*N=o$#^1OGm_z0=R$wK7xXRFlf*qgocK~-`^i*W_{+XX%d_`aRP@AA4XnY9spp} zs8J{`E=EH`1GwDg$h=_4000sIrZt`pdRpL>ze`bGUXG_vpCT?U4t92SxOC|fE?l^P zh=>SOR8%OPI#*X$I6FJT($dnX_A`vY_um60CA2uf)s;GIv9Z9pb2R4-ppmzgD}guO zVEJw)POqOgykFCV_m33g!p+BU95WD6i|rA$*d73IHs>KK>zXk2c~vQq3Bm!Wdn(1X zyPCx_--`SNA+g1{`rmp0z^#e~gv1u(t;kUEeE2ZLVlhUI z8U-^mGt|}9!NI`+W5p=sR+nCaLGUEbY2Tcc;%LSj$$BGpzuy5Z!`1|`KCME{?`T4kY>lT(RTZX#2I&9gp z1*1ld!i*U+uy*ZQoIH6FWo2bXJ{v~2pwMzlPX~q!p?_=FsycATj?vsV=D?Xez5aGT zBC!;ebxoKzZJ0{`(^tk1#;uA5j2vvP7C~F+G8{i#t3mpWT8&z9->ucX+4a}wX=45S z>BBmB1`JJ~q z)z#HFbLI@TZQBO9Tn;NMD-0bv6gDslkjHGjQzKF*rFn!P?py-rnBues*D2q#$HwX5!STQ&_upEzHc! z;Ns$fnKNg?&CLytj*cuUYy^lzjHdr)q2c-&$e%of{BZ?jwf8|}QgC=?;8~9b*Gd5H zz+teQ;0}xNbHVASLsYf4wt1@b{Q2hh`FvWe@aCJe@|4kI=+%+9ug_Pa^kE}xhgqmK zuz%Vl13>fNG~qMD23P+p(i)A^h5I#4$SkVEY=^;mYs)b-lbM+bUteF$nKK7gR#tfb z{rBeZ{^yi3JN5 zV9b~?m@r`i#*ZJ5=bn2G4<0)0` zg~7wa1G{$Zf>bJ1+1AX=49?EZ2nh*6TwEMVOG}ZFk%2${@sGHB_b!$%Uyk9!hhy&C zx!AI03(lN5!=l3mMtnUHk75_2eA8G|@Abx$pZ25SYCIZmWkCAiHe`?PLi*q~8gFHw z;c7gd{Inkr5BQ;c(^x!=@khhect9@IegH)j4gg+$8F=R%;KBvq!2=q3V-8%8qgOj| z*Pl6HQ#3@=?mwbAZ)1mRzI&NBZ7ANDJOqb+tiVr&b$TEB+FcPoPq+u$VHQ~7K1%QH z8O=zgQk*`08nb52!t&+IF>l^H+_`fHUw-)|!o$NM7K<@=?p(~AITN>T-9k`M5Ptpj zSBx7s4r9hSDl7OTW!F`7O~w5A^D%esT#Ow%7I*I4 z!Ja*Puxr;YeD>LAXlQ7_^y$-a?btyE|-bY|zhov`LRAKA(@hd-tNT zu@Px$X(%o(Ms98{&YnFB4-b!ar%Z)HA^iRQ5g8eY?CflmmX;zcEDRPF7C3O=0G@yT zc}$)>8OxV1M{H~?ii(Q5;Y@o!;_Hd1+Br+I-JXUgcnB-P>bei<800&BI&>&7`3(Fw zf{k%HcyciowQ;Kf02brt!e$L^;Z$8+jR_Mb;MG@Og_V^RmMvQbUteE@hK6F}#*NDD zrBW$QoH&7qhzN*8A_NBqBPb|{C8z6vSS-eg6DP2H_ig~tSU^%xPyjD4FNB7M;>?*d zxOC|f1`ZsEQKLq|*Vh-{efJ$+e)(nWdZodn#}fef`ugH`zxy5j@sEEXJUkqMfq~ey zYZoFSA`lrF34ee84j;Fmpg>tLap}?}R8&;J&CN|&1?%GC!p5YINGpHEqu6&LDZ8$= ztly}Ku$(d<{e+XjvwlwbC#(GpvfAGue_V;Cd$|zbNYcE$a0-U}?*a4^PHBF#wwB6= zh{Zr-BT!V-{HK7=2kPq$ak>lx&}*HzvpJ9O_4x`69$j#+(2YxB=Yj|P+VM$ZQHiN z)zuXvM~=kmxnuDtb}<0jG<@XNd~o{@?$&c65-}=2od(&Xy8r;|g%KF|>PqGEy?gf} zF)VR)5fBgnu~>|>v@~qlvIVD4pT^j+ zWAT4${$TRssjRFFQ>RYF!Gi~}bm>wgBqYGi%?){Zd04b)5gZ*I5gi@fC0cT|wY5l3 zPsioUmywy7iM+f#I5;@K)zww0Stk?$i7fzziLn_S94$GZS!h1pNH;Iv0lV=+)Dy0AST$y-EFd z7asrsMrg^0V;G0x;$po2{`(j=ZX6yye2BEPG$bS>XmsGx)6=nV;X>@$vj={DemHaH z45FfRX0-n@CJuC9iSjSc!w^@Z8+7XVOIdr{in?mjg<$vmXI;PR|SV!*7$ zD$7@{T#0-4?ja;31Y5RjL2Yd&b7 zDR6Rff{%|6N=r*IY#1$0>IvgXC=_Dz=FK>G@F0#JJqll6UlbJ;!O6)9+1c3;2n3iq zbt=-+(>ra8wY4>Te0=cv=bs}ZBLg)xHQ2Lf55|rii*LXE7BgndfUT`90s;aM6%~am zSFWh#=k+z}&+Wv+1Aa;ej?>Q){5OIza$6y+{;*kZA!(lVb9DQy`55H&SLKvHX%wO6 zn`L->=9Bh!;_gn{YcU6|N6~AYxIxdHx5o`KmG=*%mMfo+7|fhFQ{d92OUhz}VZ(-@ zu&@w&_UwVZy}icuPo6vpUteFu$H&9Z&kvh6ZGyeMJ%XOKf_d$=*AN&Oi0bNUI6684 zTr*hx&o<@uPtx~wYqM}!?Qf|6;S1&KLG!k%Rg#&RnPJbKJ^0(-{)X7tSOf$FKq{3Y zEiDZ;Ha3_wYnH}*CI<%x#Kgp)u&@wg$Bu=EhX=g8ypXJr3+Q7cCnv+p%L`s!UKl@q zJZ{~()#g~*vSkY*A|jBMmIfCW7c5$|2ySj}$jHb*aBwjG@P|KO!-fq2fbrwU(}-vf z7*7DOX3ZK@S64$U7GwMN?eOsMKt)9bEG;b&85xO~m>4WsvIOhbukTW)N>Sk&5)y*= z_;{3;mn#bf;+lj~j+S;joGfb0SJDmyu%MbjDx~EdS`}zJ7+0#NBWJLh~c4W$~#trA(!Go#9TBzlY%fC{sKmR zlml=z%QnoPKOe8X_8LSY5ze1KkCc=Yn30iaf&IyLZFV z(h|YJ!SMI@@6|aE-Wy=*^p9iE!!CC1hr1;_~IoxOC|f1OkDI7;$gxFwu~gfJcV|m9H%w zy)fjR!v>j-CygT1#I2zftIrq`cmM-t2DY&kqsKvdG3S4&B|-adl7(O1AVK?YlJByr z2qA>zmDDTWUvu~tiA}FCvZZ~8hK2?b6B9!m92|(VvolFZNFWl4M5k>dBO{4GARvW> zg@h179z1wJ?Ck7FT3VV;+c%Y7Bfo`?AZ2R?kg_!c$fK{9cJwrKrsg02PkFqu53Gpz z*Pq&4|JJQr#Ky*kJb3Vcczb)3b?eqCmmNKNlvrC^lZ1o>osONDm`L2*+=xIRAfJE! zIjO0s>D0NH8s+8XBrGh92!%r8-#M9GL?K>9}6GLolY{;HHdkkW?F68Fs zlIZAYvUu@gVsCFxtgWqyx3@R>{PWLAT3Q;Zudg?nZCyd*oy#iYrF#DYLS(xA_H~9w zUoX{r%rJTmz1oRmm<}~HHDvqt?L;6D5FZ~OogFU)>(;F!4h{~ayu4ibo{x_Y*|>3| zUi*3Sb6oQe+OrFDAtB_}ty}t@jY*N8pHG5V&H#Lx|U2e)_S8SVXm@&#Q3e1UP7?fMLZjq3X5Mpg@ zO@e}glu!hpQ&U5PLLte`%_aHy`9vTPko^37(&t)8ymeMSEfQzQWEj>^dv%|kc5Ya>m6Cl%E}@_p^(JH#3DB*_nieg^>pj z9uONF8@Q!ot+nlSm}Wn=M@#8X8D+bTn~ra3C%& zE+j54u0ysaBqS)KZ7o^3a-}lz78DeuGJUNNraqnsp^@v)KmVK%LZfa1fq)!6dQ{`O zSy@@i8wFFI#=Ldw7CCn87+JY;C2?|cB9@kx#Ldl(Y}~k!BqSu5L<)giT(9yOKK@~s zQS1<9#HcuuvifSH*um&pm=nk7QWSYuc6N3oGBUEm7l8WudgAHnN&Ni$RQ4f}NQje@ zlS(wDqdd8EjFf#~rE-C++~G_buKi2D=?0mEG~D=sRDI#9vahlatVsQTI-X+9>u%9SgLy}f;>{{P)cO-&6+N=hPOVPVAG-JS6HeB$8X zKo&1vOk!eU)W$$}Q2(Dj&CdPS3C5eslu1bC4riq;b&1=IV+W&4>DAS#jP609h940T z0W&i*Y}l}&-Ri)$5Q#+a^74XED8#X2$5i&Se*Josl$0PoKE91T=uYFU4AjQ0R+EU} zSny%#=mpD3o-iB!JEdAW0HtEO?BQLAZzQAP`Wdx0IXvsBs$jr>d;>C**8X9U8@!-6?JnY`R z8_CJZ@b~veaBwi}?Cd(UFR4_D_3PIoH8m9}DJd%Flb4qV4-XHe7TlaUbMWrF?RE|djr%#{8s#UA7di82-+_zu+d=Vo*$~BrTjIMz>af}XATU(3$`}bq_?%i;5a>9lU8#Ick>O)0E1w1@F;O_2@ z$jC^QWo^lcbOs_3h3 z2o)6-m@#7pjvhS zix(^9NwTuCy2L>-xw%>$_lk-NELpMywY9Z~i;L^9 zV{HmlR8$}{GgH|%OwnPYW$Q3~&QB_pD!Y5c#l@+NHQD1zRBZkoeZe)u=r4XVybMhn z5Q!M&o5m_{5=L<`x3j^h}r&$IzRSk`nCRy&JKyvGDQnL2z(zmt5#eN=o46<%PH3 zej6Wu{ISZi+S*!7ojMgqj~?x`qo@tJ=pjVu`_Pb=0BPl~dTnbq`~~!%=7)i=t^m(U zw;sE?P*zrk$&)7|KR+Krp-|asEGsKZ?LwpIVi6V=hBa%}bn3V*9dt)WM+654cgi`` zL`zLOYiny|Z`{s0QWX^y@b&doww7wWzxng$Lm&_!CME`Au^8jVjYC{q99&&pJ9XUF znBsT>RJG$2j=*!gA^rO6 zuaS|Fp(f(1Xw&8G?Tzs8@J>5KQmIrKsS=CD2n`KIU|?XU#Dgm;DwHCWbgUIhkw)rJ-qPXdrfWb}Et}fq{V7?o2n0$=4t-GQ)!EqCkag?UDHH6wij0g5Vq;^YbsQ-KeHF*O zbLS4Rv9ak{dShLLLOZVIn36~&#Ldl(1O^7SyS+prA?wzyBX)LnS_>n36E!t8Br!3O zeDu*r#Ldl(@cDf5!V52ug$oyw=;&ybf{E?hw-W~k2XgDyEmFOIfwGXG;l>X}JcDM$ zzy74O>A~(djcpF2lQ1Wap%IBhLXI9iN}QaWh?A2OIePS{L7b?Jj0_?W2vh`ZTXO5x zEtM_}eU-SlIO6Q=tbAQxU*BexZhd_{@$>Uj)7R??6k@y9*4AX@%9ZU(y(A0G%S65dRr%mDDW@l$>-Dcy)jT+@Ox&nm^h(bKLWfzWyh6b`{&mLlL zZ%T>G_5uWcReM`O-3 zd;IBjC-4VY7|24yQ&CZYojZ5p`0?X#cX!8z4I2zvl^7cvi!EEWC>z;pV$-HgC@LyK zLPCPU?C444<>g`i{P`*g>B-5-SiXEYa&vRF<|Z9FbO`I$uSZ;596UWeyWB2CfkH$? z1S~8pU~g}a3l}cH-Q69bp`lto-_D{)CNC%`Kte)-*8I#>t5%_;q(mvJA(cuob?Q`v zg@wV-&(9#X^%Tm=$}n~6RAgmk!QS3p`F=q`0p`q^qt}=@apDBlu3d}J&`_*fx6V)| zn=DtaUd6$K2l20e{R>r9RglZ&u(IUA`vnfZm}`#FyDE)ZnW}(D#JKL>thi0_y6eazyUx(@qI*p_Y-_S zJb-V`Tt<^bY5+?OM_yhYmMmF<2@@s&0J5{Q5f>L{PzNq5Dhiu6Z9+;)iq;E!dU`re zoH&7)m>7fE(bI5pa)PI)CwA`KseI4V(-X^@s;Vk*I2-`LW3dc39>@UzvfBH`G+Bwf zzEb&|JE&_bpBddxpN+(2-?)n}VpC97S)=kkkH^I{2V1;4%^t#$Loj0KAdDC~2s|za zRW%}1J*vmu`wwy9+JBK#SgPi<4I4ZVo0h$a*-oady_1@niin5^yj#8sZ@$HXU-rZA_5f^6AH5Gw@ zft?cVZB0up!L}-JTMPOEbZm_qHx6lOXJh z2!%qO_ZJlvg`GQhB04&{S31i%IXU?ApZ|>e_wPd{lVSMq;dt)3=TKf=j`H$yh{a;% zy04Gr;hXsuuvv2k7USm{(P~Q5?TdI2R&D`}?<N^(FKV_LhSAB)ubJAb8~g7 z^eLKlai8%Kp@a*TW@b~H3^pd{CusB3WN6N z)h1gL6cj{UU0wD5UN$r|kTq-8s7d6QI+~oel`B`0xVSjwcP2YKo2*&0hV0+JpG=)P zm2kOSGIZ!rGG)pXGHB2sGJ5oAVq?uGAHGbTxa$A=qmj>w^62ZON+<4d^52YY4x^Lw zDJQPA1NZ+viz79UpLW^)pEfj-(1=qi#|Vu$)n)tFm-6y*vT@@^W%XcZqaYojzP_IL z`1t4)`7tFq5ouio5nVV+9vyp+RPSFvs=ja~ePsR`}Xa`+1Xibziw`BtkSs+G-<~vkVquN z)6heJO6@Ix|r(gdXw_uJZ`L@qXRL{cUpzlDx4IoT6N$LTXUaex1JHuj!K zSHAXr-3g(K-T;r+wY42GnH&dCW#XGNmzD1=^L+(DzO%dZIBii-P=JVt2%J8BTA7bz zs08!2XseNZYZQ4o%a$#}%9X}ZH7AWCJh>Q)hHKv|8&>Ozx!udKoZ^jvu0i1TA8a5C zRq^uj!n}F&)LLx4|Ni@^sHi}Ee0;n6P*kqQ$H%MWAGXeS3l0uOP*6~(IyJN=Gcywr z5fRAD%*4u-E3ta@YK?i4iag51#Kd;TacXKR7A;z&)|Tw#$&=WzV+XRcvyIZgUG}&V z;({bJ{WlBpCl4WiTnU+oRt56-!@%Va19#9!n2(tX%PI50vwp7IZ3Jku`%RlRAwNG~ z?f)bai7;o*9C&(qwwZgWjq2)ZEMLAHWo2bJcI+4&92~mJY`rNdDM5OAI?kUzkM#6( z0JKQxwbx#Qo12?XooLe2)A7zb@8Gr9Uc=8n|BM%2cmcV&xv;RXz=#ne@X|{!p|rFV zQ^-vOzgPtT81l|x44C0>$Wv<*@h>TO80`aqwssr2^}5k)VRQ|B!imeiaTjZMorFwA ztAu=Ccfwy5dl>YX2Tx_<==WL5*E`<-AG|(eyg`qdo}P|~hzMM{as?|^tiYNzYmC+s zr=p?)US3{sb8}N`WUmRM%8AIOcyj4D>d$@x+2hLg*KY$Ze;BO1{)&OFK>*jV&O%X9 z5$4R9gTlf>mCso!m154EIash@flg8n$;rtG2naxUcsTt1{c-5fA?(|?4?>|3!NI}s z@$oU_X`r~c7`u1x#_{9F;pgXv;NW05Iyyosl`307B_<}eTX<7eR)!ffX5i@2qbjl( zVzC$#CQLAB-(5|}8|v`%(y<?Ku zvIUzrZ|-!DUtQ7Uw7I#tDV;Wb8{Ti)vK(>({Tx)~#D{ z?b0S;1V9=WzVCB8lD0VQqj$ZG? zHA$rS-@nExt5By+u*Fw@d8^AKaGF^6kO$ehxhA(EzAafUNd6NGoqbd?Oi+w=zH^VwKI!M!tw40sCP7!Yc-~fBpLP z5Q#)8Jum@!u~j%Ux>Wf7@WT&SuwVfQA@KF}MQCWKL1kt%QCnM!y?gg!-@bjAIB_DX zs;c1V=-6%)7if;;&YL$+ZOnc8>8H4H1{b&gVDLRc z!FO8?PQUK?PHWSSQ=qtcIC}IbyuH0Ubd2KSVk}y;2sSo0IC}JGmw)fe%F2+Mn%X5! zTT2v@OfCDyD*hiwjvT?e@4kzP6DJ}yH5G#f4Z_=Rzm3;knF;UGaOGGqRu9#umye_7 z_zD03$AXWMTd#v>#Uw_0I=$YB`}W*bME(6g0H`B%{Ieyn9@M{Ej@=+`!aG~OQ96)a zIjt%di?M(Ie(c`88v=m<8#Zi!x3{-Zrixn9UL*U~7*kH9Auj*Z0oM#e{=5$ZW(I2CxRcb@)?&hh2}nsvQIpI_ zPfu4)Eozg8xOC}~a!S+R-ydmdY09XTv2Fxz+_(V`4-d%Ya*P@^N-2HO*4S<>=&PWt ztPGPUPeyKTZkI`%v_<31G}L|@tU3+=m74;d%?sf2hk?hZf~zvoL&!xBA*;Tv^`?Ml zH4@eV`(WwlW$<$VsFvf|vuBZ#lA>{W=Kp8!{NtM{&;EZ=3KXaiN`RnIgG7xpxZuJJ z8Z@~0ShS2X<17#DV+%ow6e%NYMT&)|x}pUOt1e>H$jS^_X4Il#)>*V@(c-sd#T6~C zxS}bvkYWM}B=GtE(dQg;()>=^BKG}y@p@@&NHXyO(Cqo=p~ug%k=! zRAYEN9$LSCJ-zhOOJpz@qBaPLx;HJ}o;H`u6&It;n~fVc(xy$DsI;_{m11EwOU1>- z^wn2i(Y9^d=)L#eBag>JIXO8bm&@s{yY8X~uX9mX-!sgIVkMFwyFqwib7ykFPMj;~(41)W`vn9j$v zI^ywoNKa3{q$gs|vviC=S$%*{%{zf*r_h{Y-e7|ZUet3T)E}V-&a^<`m_7BVP z{i=zabDyeOAHRwF!C){ztycSet*opJa=Dz7OwJS+C=?1vBogTLdbS9FDMV2!m2vO6 z8V<}o#I$^}SS(0QO@%-pKuJl7-^x;>(Fl=9!6521g>^S|o3CEt2bIx@%Zv;-g`(!VEf{QS%$|@=<0v=;BnII4dLiWxLMO|GT zL?RLL^76u#BC%SnFqurq&CP{GB7s04Kt@Iej7B3`TU%qAk1wsQtx%~{P^naCYincw z&h#%XE-pq>Qxo`nKKq-gt*u2-Q4zFSZMW>tc{kdNW$bl4{*1EkiX6_n(Xr*;i~Ujy zuaE6HH^3#uWo^Xm*u9^l0~d>oNGxQnd6k{V)}7HAUCqtSY}0YAR(nZQaC#G}k-b0q zOHSm6-5WRy<;Z-f z)oN5#RRuhsPNxgnkF+|}rKYAPU_wsw(l(% z9m7y_V?5CUfdKd4e?NpmVGluH;G!of60dNy_!@8>TkgeqduQCvf5Bx(=L-+?xNrM{ zVA^pEd3kwIDwT0DmKj67sHg}#ckV=9US6LXZ44b99nferkjZ3dYHI57dUkd;Qd3jm zcDrFP7@$xn!rF|U-dDl7jwiP*=skn{yqjyl<&A*-!}8u4Yk+>^vNhs5yBw_HbVv5a zeihw4d(MrSi#D_KX=^_j^muPAEs;osva+&1>#Ptd6%`c_3WX7A&@l^aUu$-`+rQ#y zBz3;Y1=O@FDk_3pE{EN2M@L5o1Oh=szpGPK>$#DD4GOrAACBiofX8;U zM>N2;r9&gYf4KJ|Ny)9FNcc{#*lF=R3s zOeWJMDU8WbR#q03H?6R+ut(ddzTnsf1t(YO{F$y^AM=9C-ecU}G8|i5Tfyh^q1Wpn zm&+lQN;&y%%;FSj=!k)555{QUfg$Lcb#?wOOjdqd2*Y8TEqyYq4juI3tW zuRYr98`c5(hs)N8^X|@2`F`(tKf=ZG$(NjVT;5o%RumN#fzRh7EiJ82!dJ0USXc;& zL=tg$x3;zxLZL9`9GXaR9(d=XM{Gq(pDLBRk00g~JDlDZ|3%4Wv!S%K6r)Cs!j)HE z={K(o=)P`D7$_2~Rx9LkIWjXd$9;F$4#c>UoB_<-~RV!h%R{Ia_+;257UYjE9m;`ucxoR`iegM z@Iy*SNC+s5TU1m;L`3V?ua9UPfj~etH8tdLIB4d~nbg_Y8TFhG9XiBnx)}_Hh-7h& z9z9A~Sy^N>8hgk_$mMb>Dk`F+q$K*~FMml>rc9xnoE&OwY>axYfjGVQC00gc@Tdut zvf!_MCg7Tq{VFAnn@mLAognQ0*wX7`mY0{)mMvT8@ZrM&j}Zt2R8>_)Pe1)MZQs6~ zcJJOzt5>h4>C>mvq)C(L<(FTkYp=bQj7B5bY&J5R&6J;?A5@P}DwR@weLaapBAPN~ z3aj}RFFYO(ty{N_=FXiH~xu>+y{{8zYD=UjCD=SGNk&wsZp+$=pQCV4; z-{Zq!#Iy|J=U21WlBoN7c2%w<>zeDRWAi;^uiivwTWZPE@eM15gtHFvbbLc+TWZPi zk1f>sr&O{QTti)^rF8z}x9qtR$4w@F-Yyz>dv;Xw8{kJme_N5gg?9aR*7NnRfA@be z!1om)6>~7r}sTnQBeVfLJ{!29UUDIi9`XbQ-i_eut_A6sB)ERYHFem zkukZH!NR(!si~|dh^fXE3WY(das3gj%KH47E>5`0QELeMyz%19{x>-HwC7ZNua8+) zRu)jo#%{O6VzHp0pa3`Dd@~Xf5^($Nw}iTu88UE_<>b&l?SWDC{rc!Dl?&eBy^T}2|1h(sb0B_$=%Raad_$;rvY=ktlr z=TmZWG6{u3N=ix!DAd}QI2;bj$;lxiBBRk5@$Pf`_U*K3(U!N2lKG7T6qi<4oe`?TYCAOm~h=n>LZlebf$g>ovGhJ=l)&SL-08$ zUSiTCrf2tAcaH)3pUc*Wo0Inmfuen?7#O zuD+HHMF`gaiw37$8`n96%LT^?vaY#~=z@m^4N0PjCEteC6{4%Fi(Yu)1$zGZ=SeD+ z((>iYIlV#sv48)5nmv0qwY0PZG`L@V^;OoejwU3uYu7Hy%F3eh@^Zh%jyF#}`6Rvk z^2=ngSfX0gUw!peTEBihH8eE%4HdgwE}AlB3hDLwpq)SV?Ab$Gwrrt&`}Wb&rAsL{ zH`i}yzp=5AX3m`HccJdsd=J|Tl{fGCehXJQ8_jg`Xxp}JG<^7Qnm&CxYqZJb@*dBH&6_vV)~#D3PP+()?c2B0s#UAP?hM0l^ypDq zv}h4^b#;-+WD5F>bh%t~&pr2$TrTJIf1W*iHr;mHZGL;p#tWQvkn5m@&K}-No?~Bi zxBC0x7~!mg1`SK5!J{V7VBVFKIBqfx70;j~>8w8Qu{*$}!DVa2Ehws>=GJy1B6?+g z7Tq){z7LT|v38!K-~8@H0xrBD2{X)nd+g4XdlG1LjX{ z*sy^<`|L9^o6TXJ)BC&4%*>?a%a`}?NN(P|nO=YWb*incWq%Lne>g_%Yp&})AR&>i zeCE5b+q1963T+Sy_~nltf0OF=WJI=gyt9WXTd*xpF1xbh?n6(FY&w{%x8}Cid93 z-g=8xuU<_}O-=pY;&6Zgh%RFzZpFr(wC|s-L_}1k(~#npN&PyX179Dd+$XyiO5rFs zRd0WW#*ZIQix)4Z&6_t+R!armD9XWD@TrL;2x3^PQR~L14bx>?m3K9YKiwy&!qHly+xsDZ*QlmQ>RjGZEe7iDH9@_ zKYxBi9u41dX3d&KGMS81sNiroXztv(l$@MQ6%`dxE#h5WT{LalG+MJ}O~BA_dwV-g znKC7+&~RsGC+p=LH*Op~{P4rHa^*_)^;xrKkz6ik4dK(DzDixDr9>26NIc$nrwYW< z57XCZYiw*JnM_8%`qi&UtyXh9Z4QTnZo26vGMP*v!{Q!~hvvC|-Cx9@@BZ zBW>BTh04pzNu$y9IHs$siVI2}54h~~_hLn4ug zh7B9Wz9tX|dUyb1!Q=7J=FOYw>8GEj($Z3P!9V$OCOI3sy)!8bx6^Rh+*rSwm^j-~ zOPzn}4uyIf0UnQscI?KACBBJHXms3VYM$Gwx8#Zj9FTVJKDl01k9&_~QQJOw| zI#pCuL|qx}a5!k*ym{nsILK@^vmtnuN=0R5Wl`VHvuDpHfj~e8gCXEC;dmTF;c~fX z&6+jz+;h*-$dMyy{rdH^WXTfh?ChkeQ>U`If41$5>C9)_iHL~z;3gV*XKvJE#)C8U zJIMBzg+xR&TsD_d7H$vgeIAd8_V3?MyLa#A7;Q{=RH0A=z4s#VNCgT@#*@azMw&No z9w`(GDlac*pC^0v?4hizEYfH+R8mqB*6)c41J~BpayCyZR;-||t}ZefjlJ?21{fe3 zE?Xn+^}l~XoB#SD5fLeFnM7r}o;$R@Wc>^8((X_HMMOl8JfNfpe>H`sOqoJ=-E|jz z^UXJ8u~?|Ry`7dVTSiBY9HFwZvXFUCy~Y0h``MEFjEszk-{0QePREZQr+e?cmzFMF zN%4QdU+L357z^>-9A3^(;Dfcg0 zeSLk@`AZ&;hgPguLA!SCBA3e*alVo-Pd@o1z5VvvR9jmcaPi%@Zy!DQ;DglM+#Hv1 zoy+B-#fulyYp=aV$;ru7P*6ZuU3C?$UAvYV8XD;Q>soRh>@KX}=k20lH_nWC%vd;g zfqpU;Qkfr}!$ z9^28FK2ton;IiXr-U#fOpM(X|c;NAP$j!~|)z(5)RaKBmr6EOiOG`_`?g1GHi^YOb zqefxu*s&4y()A^fpsz0qg`!s!{oC5waR2@HW8}z@7(IG4l9Q8>k&(e^W#n%ED(>S( zipO^JqO`;lH?eBHx8spXTPQ+Ex;&nG0}?z``XTrS7x(W9YIC{R#P0E@-aYrn-{+HwAT;}5sn zjgpcQ@cDea^2#enOG|@7p$N;!Y;JCbKp^m|C8*cygX%60FhGBDSsQWNs`jzQ(|@mi z1s>1&ewoMO;@8-DY~9Iycv-Dh2m}HgJa`ZqjRsn+mh*Z?M+b6qb0HK8VK5kat(U6F zWQw?vy+4@#olO73zQE~pqQ1T!Yu2p6HP>9jdgzD*K!vA%3*~Yff0Vv&+%r7`}I4Z`o#*RqT5+1Af` zeO{q(A3w~_Xa2PD7(IG4e)-E^V#bUatk*SE2r*jn^76v+vN2wXaFq6)PAA*N!(ZsC zt*s4GsWj{!skyniVJYDk6cqH>@WhL@wlFFpbDM4**ZQQ(b_4V}-2m}#D3-o$D z#A0z=y44sA2Jrd(fX^MKGedfMdXIb5Znr}&m!q(-(C>RQGc%#n>0+Ma00ZFJQmi5(pZ7d#NUhxTw>}H2uG8;g$5k)h0{dxKz+;=6o5APv(b3TXtJMmL zM1r!iGQY<K%1{em>-Kd0ZC5+S*zOg~EsuiKD^ocB8Vg5~-=F z7&U4XX3m_6#>Pef-QLQvW5;6T$dMO~kT-tEE^?=;*7xe%!omK*W_CWd*B*t{YK2fJ z#Qgd5ArJ^qS62tS-H!6|a!938h(sckmX^ltd)4dpVdpRv6chyXinX+~Kq8T#pr9bE zbGhAa$)uDId~RIZwJv1jT>p>qs-8}A;fCtjM5l9CckojMgWX3T&>p$KZ+ zxZQ5l*Vm)0tPB|$84wDE>;{qPc^Yo|hTU$5P$-NzN|2F}f%NqBh|@%vkZfULVMOn( zt*wPfBtl+Z9&&PWpjNB>zTfS3Ln4vDY&J(UuXu6coDs`6*^yh2(~wV2j_uzaN%6<-{daR4`@8OkFTFJ5`;Q_h&-gmMcD z3z3nL0iZiiLnIOft>kKJYeQycCWJy^Lw;P$6nNc^g_r+$jK_n7|Ohk``wzf7D z6%|1!6hfg;z+^IUj8}`rg0W-AV%)fKFqup!EG$G}VIiDN@3D*Au?_v7oZPYHqG#~* z=iS$gY3#ja%N8UjC&Oqovd7od)Ig)rAUQc1+1c4K=PbJ2Zb+rlu)KV3w;O7;x<|u# z#$b=8TCcRUlr4T>u-R-7i^ZJJ9SEj!J6^e=%%(u4QXw%h5rYR0#-vG;uxHO6Xti2Q zm@omuh7H5isZ%k2{CFIwc!IrtoqwJampR13$!!bR`TVeZ1Ay+$Sz1~ewrtq~fk5Eb zD;J2iwlji@-Mbe8fdB;s z1)RmuYPF)Ms0adq0CKq;Mx!xm4{UXHHN;|ZSnu!X=zvftWba9)f;kq0-E1~7_!Au8sEWvN3-s^U2E`>2>K~wQ_{kV?0Py?GW{z>Sa?{`9nj?4ioSPFuRb)Mb zWgA|PD17UihruM7hZCkS8jTPL1kh@=enX^oyFIKNrbsZEOmUYJ@%6d|Ggt}>3n3PZ zv2^KDR^zOpp#fsCm_4TR#fR7joc)8%ahqqPI6g75^XMqQzsKv0yoc3lgwoyeAHptp2=|=#-g__Pa(P(yPibjsSVa%PsH>|(Mn(p! z&*%GDtX3;zG8wd5Ek=wOf$7tyqpYk9zy9^FArgrIfV0>#-qilU`Q`iUJlfY!;lB2N zMN&+{zR_r8(=THE?Kd?w!C){TJ3AW^i3B_zk1d#Z4U`#VZaO%40E5i6ck?VRV6_rLaH8BSHL$C-vV zaklj{b_43M9mUz!&)_`p4o+3A$FU6xzwht-^PEefB7cD1U|X$LC=`mg zddyl|TjREFj5cEh+jLMP8bXZ$mMc~#bT6}mii3~HZ?UtC=_DTrcJp1`soS&hzv=jn?0Lzvw z3riR~9-M1Cz~;Gmdv{M&t%v(~WWO`di6c1m?vwa_)kMzutdCE+B&zZU=skW?MjV50 zXjPH*46@d|ijVexjkD*%|M7Y}=TUdy-y9t{?+|LV1r!|}9X*UAi^T$=P#AVdq@|?= z>FMcg)uu!u>5g@eXT+^13nDY&NJ=Dx{~U`wgowp;VUhZnUqTa&f_X z_sN*%91Zpl%Q+9$K#9mrO-&F81grtegiwQdV!aC?f*C2k6c!c+tjzO1cUoE+)M_;z ze)wTzW@d&wZ#XcXmp9*h6RD}GNKH)*8Y0tbwP6=gFtoO|LZ{P#&*z6Ua+wYhX0sV) zvl&TANoZ(jV7n4**|LSr+d6-yi?djs-WUIl5utD%c!#s_drr0cJ&q}y@y@MfJofSM z%K4p}(}|mIx(V~=&xb~%fj}UDP$*;zChF_!1CDF4Sl9|`M(jMCT**)b^Yk%%{PD*a zGGqvT^{Zd?y12UYz&qT$x5q}ow&SsY*D+kq+dI+qx8LKt6)Bwiqdz^y1N1IGNh1yb z{_*)CPSq;&Z|0)SSo{1tuzd0*np(cYu@gVA?>Tnj2Q;;OhxhB6u};5>(@M*`3N;>j zbVj4GM+>CN%1Q`@!icI#UwP#f3>h*6H{5VTT*Wnui;H6lZCNZ9Xf&Fzyl&pKwzjgZ z$^tC}{<MHc1d<7nEnwZD-hqnRFLsR8)jjMR$jt8cjVYp^1fMk&$~JO zHrv-v2`l`TpP$dEj$=N%Z^1(#ybB?i{-XZAYi6_HOLKEGL?Tg-Bz4B45p8845LnQc z32FHn6-uQtqycNQ*-%zi28l!hnM?+~ULV%IRajUEiA2I0dcH*#4Gj%wX=#B@r{fe< zTsY_CERvlsJkV!hRqu+_?^jI>D?NazDE8gRF@-8Roi6UJxq@lO+3j{zS68E`s0gX4 zso?Q=kVqt$IddjPj~S~BYBItCwxOywkwH@Gi z;M$92y(Sv%u^r_Y``@id83?UjhWwgtF+!VIAVeHo*IsmQLVs0iA(vZ<*Fxw*OE@p#C{$Ov1f%v)xMnM-kTao9x`Ku?cK zD34e?_+j@3u6HGZP;O;qrQa?Ij8{$~k;G)2`@(3)h2zn(*=$g&)es7W`1P-U4Y62^ zp+kpa+_-Ug>ZzwtQ&SU_K^Kk=9n)#XccWml*;sF7Jfaw$Q|+7_xb|Wh&f7aGF>}#o+_~Uc%w4e+kN(kw z$N%&;UU}2xA9Gc#zxLm-$!2p*4z zw6rwVvs71C2cb|1r_+gwii)rrlouBlL#0whv=Inb(3hFdv(G-;LsJgm8m3HcS0n}{ zQ>@@!rOo8TMf#nddiP1LA=it7(!K^=O`;HgH$T@``lozz`F|d z`+}?ctZkd;R6ECO+_B}}J{fm_zG1+KyToC{S^asS^78VKmX_u>Z!VlX7pAL$MxzO< z>d#~{K`NC7eIVD=)NmvmV$HWHC@6qfERJhF->ItgoW=0?MpeuS#onB^cXC91kLGoE zXNU$y2-tVQVmfw2legoq5aPGL{Vndi^G=9FqOiZ~^z`(wtDPee^aZ+esK$;RiyLpe zkyByqtL+x4H<`()^sZiJLd4PP&-qG3biVLFTtoF2&N(?DR92!U%J8jDrweF++iW&g zIwW2_n$y$M{T5X@olfNCXmruX`E`~iB8 z0VD250OOhP4M8!Yo*In?Znqm{Wn~dnumar=(vp%AHs31Ht~HpPNJmEpN=r*2kw_qy z%c0lnt^?oBK-r9n;9gl@IUcB*s=Cv2g20A-jCJY#H zKN50tbNz-fnI_J6+;K-tjqI&fE3&h*ArJ_9cuNAwi7;L_KA#^KuNwms?g}I!5-(2g ztGL)f!K>gQ;$DR3-Ee;SKBs_z*>T%Hj4cGizz6~R!W6IM=jTVAUY7($Wcw>CF7gU92A zoQK6?!I&{)*uJRA$;qs-XfPN!_bF4n5NYVRzP=t}u^3vdw#W0yX0w6E<8dMz;mX1E zHa(wZO+V$Hpcg0rBU9lB8Py7Y>rIjdt@jX<& z{{=^Wq_<)Elln_MUb=KCl9Q9MWXY14$EmNcheDx%LZM*C@|F|n4X>Lw;Yf(Y6W7-t zb2Q}GhwaMoIAMGkr$0Br_4UW_oH&9DE;}x`?C_j80@v3c(;FcS_t6_lQ8ek>k(kA{x##yxGGO8;|?x`&AR;u19CL+aZ(5LTWuSIcu?a z<=k#JWHK2hPo9jlw6v%;n@qt?ph!cYHiZoh4Ja=!M`mUwL?RJ*JRa`5?>?lYq~MQ# z{9{y~$!@nJH#Zkzv6$7vW1d$!osQEB_Jr}_KFOI32XDPfe_dk+`0+6a0O%)<({+yC z`KXC%>c6G~UmuO=y;AX&G~-q={pM~NC65@^OEc_d=gyt9e*JoCXlS6s#6{qa_^|NUvY;5-%6xdshOrYr9G z9VOqroCXa^iqj0cIe73O-E+@9R9#(7QmK^ln#<*)B}k+Jsmo9h_-IsO53+@C#6zJOP4OC)YMeJ=UcUE6&*Ts zh^nfp*uNb;dX%P3n?^>XG2r_ccJJOz&p-b>?c2AHh=`tk`e|CQU;*ctojZ5ZvSrK2 zU@%ZxT3XQa5fOPj9$K|(6@Bo*2UJ~MO#*>{^ZA+YQYMpyJXa*(tb^?T*g~iGJRkf0 zG$e_VRZA)Po|Tj^d~}>~+NUzt2yq>;1 z_uO-|ZrwU^yWRB7H{TGS&yQ-p+qZA0RjXD}Lqh}SdbYQ>)6AJOY3b6Xl$Vzm^c?N& z?ey4Vk5OY|BaIz9mKqxyNg|PuN~NOPZo7>X3I&NoqOj((Yu7GXv}h5fq@>WKNt0;D zjveH1IOzK8ucwxl7Md`YN7mKX63#k^h-ktS|D?omlcW0V@!07ykVscP z^BoNumfUai86b9k(nj3*^B3sd+Jp4s-}cgpQ>SA(7w?MUv@rd4ntQj51`ke%(+qnu zd-iO)r_<5AdGm;f$Y?ZDa&j{JAX~nCIpyZ&#yr-)|NU>0N~Lu6>{*&PaU%WU z4}YMXoE%C{j{lFIc^H_rMDI-;H<^ats-cm0E~dew zCiKz_yB9IWkoR{THf-2HTefT=lgUIXmCElqLVedWXU?RD9(stqha3(Ez542_v~}xN za=Bczc=2M=YPH1U@!0oxJRX`gYZl#g*IiUtSV$g^ho(=TPWRt`KdoE0&hI?By1Ll& zCM6}&(xpqu>2%V2@4ZJBi^cDI_U+q84?g%Hty!}s=soUmI4CPCi(D=jRaRDVzN@aT zE}AxN8m(EghO)D>1D+#R&i`oD1iWV$_Uze1IXO9` zQmLq{tc-IH_@lkOofa)xM4g?TR8dhuTeohd&dyFU8jVrUcf*Da^w+=smFnv1C^@=;s*?5EK3D2<$(aTE0Wpnpb=1zTJ_% z5z98bj>`AHK;40V<6r-_;`@#+eBaT9fBoBvx&!}4<@;YCzqAr}E_k-b`ycxKOKAKm zyk3FPz$ARj<#NA`?AzMfdbHVzl)Ab)WM^k%*sx)cN~L(`op+FtkpYoN6w`SFq1Wpn z6bj>34HpmG#}DI&-5YS?rTOUCaxbh;+=TB|j>mT^$HV%>P3YKiFHXEPA3yBgfOFq} z*{5^M%gghdJk3y5RTZ${A)N1;$#e4;W(?L5!fLfbBoe`5u>{RE^VN1^!uB?sE$m7` zi9`}mh?NO1Go2=UiL}Tf9$d=z6L3*iGMu6jyWNhwyu6SN=^4#G@Ah7d&Sb1PcDcE^ zP^;B&I-N*QPe(>ZM%eH5C!+34b8|C{MkCuvBq=G0?J!|BoBj52EiW&}@ZrO8)m2xq zq2KnuF27_#sSMsyHPKeh4{+)5lQiP~@%f=1EwkpX*owDn4n)+j{*3c1ET4P{jn2@+ z5R6CbEq_?8R$O=8b-3o5YXTm_SlJ1gOooLE7vg6>`xz(cx2C2BGMNl2 zl`3uxv2#d#1i{G7%?+CL9;hQkeSJMf zj~?Bln%Y;}t+=?jM_yE@F}<(T3UTh+dZ8sGck@tntw-TQmA@7lUEzMdtk)e4D3g0&1+%{%}AAOJ~3K~!tk zLN1pFm3Cm-$b|B4FaSdjuTdh_ol}h~AfBhHc%$WnFQW^I3>gebQ%PZ#F5h5oi2O~y|z>PQF2&dE8 zL))#gveNGY8qE6_Z0zjpY{=zuSglsn*4Bd0=Lc+Z9<8A7PYHv;0Et8r_I=`XI-%3) zSTB7|O$}QF5zI)_Xf!d&x&XlX_3M$8l!Vo*!xKHW*=#YljAL**oe+scNJvP)(4j*y zY}hai8#WA6r%pw7b~diO@=6d9gek*uR-wUtV4wk^IJ|pMHwbqeo-Jh!Ge+emn#M0V_WfDom$RsiM}qD=scZN=gdG zj2RPf(-Nzo?@x)MqN1=m9eDH6M;{?2B?Ti#j>PM)zaH{<=6Xcyfj5~<5C{bLfB*0Q zK_n7|B_f@ho6D&hjg_XRCcOIUt9b0O$DmXyF?#f93?4if!-o$?LP7$F2tjWUYoC9IGnVC(*m7K&nwlUK z3VV1MbUGcfv$KP~m+9cp+}w=%`g-K%=7P`XvtBn}yyZl~p}Dyksi~=uNF-q`kW4;P zw7O;ka49J%@hb!jbYB~ZM1q2X0+g1Pg3sqi6k>O~-C0J!hI`!Hk14BUF_tr$Ok zJcbMz0zRLQ($dnPn~loKO33B%sP6|xcWlg-XY9T26|mxUBsT=NZG%CKOTAH5eNhV)`%OGG#HQm zqT7hOl<=0X8Q{mwPr`^h^8E=;4&2I3e}l(!zE{Uwr{BenH*?Wu{OjM*g$(^QvS$b< zN!V_;W6`2T7&dGeBoYb7>*fpdpo=EFX|Y%!7K@RZni??Ys=mG+LZL9Emv4Z`NKa4i zAp~4oTMMC32)$m<{>@^sfXCx;{uYYr>S~C^;-HIpYilc%N+pI28N$(aYi(^sN=gdu zzWZ*!g%H5Suv9cfEpE3PTCJAt>cMq{DM1;YE2O}XN z0fPq*W<7CF+%fdh^~60sslTT)K#cq(j5zNqRE^F6`)OCNk9o#?Okil-Z zBQ-U(M`1%tOAG6L1bRo%HyS*r+Tr-bh?5nMp!0k~KO_%lj${&@~g zRy+d7NBT=AY5?{CEUGx5vWjRvNe%G(e#8jTPL1Yvp98LwPgT3W!|&2Z8}>~=e(Qfa`dV+N+1 z4D*bOHTRC8xw#p7y&f4E84w5rkVqt0xNsqU``h0_DwTrI=VSi-`It6s8m_qF3QU|h z5krOy!Qg~J_-gV0HJv~3PE2!%7o6(UE%)~KbOwl#%U8GEj>gsBeNF*W0*t2I3&6+ifl9Q7u zEiH`}FJ4Rvg~IQ#D^{$a{rmS*b#*l*C3SZc*tv5jtzEm8>g(&{D&*VP*hpz{Vm z33}k4 zo;{l+5($--ma>1l@4ox!^^bPWlF$K#t~sJ*?N?z`_k z+V{abR6WN@L_}BI`v)48_C!SU=nWkI*g~h?dYp)eM&6!Hym`;}^Na?Fh0EHA`}m6% z`oosDh=?e8#4s{HySUd|WBGE|}rpn3D=k;~7HIK(bZ@u*vJ^%dk^!3+Ylf&VlH{N)I?!EV3A|hI{WCZSNojR3m@3eRCUdqbKqUPpi@_0OK=LV0*LyH$LrtIwO9^C+T@7_&0IXR@) z>nS}wJ?MC|XU`^qKtR`Cdo8{E^2=ngSi;&6#mc!OpHtWC%gKH8pWGJ`5^31=GidlN zX_PqOMjFh!iU#wpBqE~oUEkCBuJ6cm>??A8xtq?m)Dqk-&f60w+(2XIJx@a?-`?w= z!5@G6)1T;fzxy4{pFf{oe);8q-3x+o=+Gg`$;lx;pHF(do`gan``WHuyV!PG%;u6I zD=Uk-y1K}0HitE?$K#=S^XAdXlPBpv|M?F!H8u4(r!Pm29HBjX_R!z|{`Y`Jn?D>5 z2Q6E+jP~x`OCFDhuD<$evRbXw(a}M_|NZaj;HTA8I_YyFA{rvRg~tCO^z*s5;dE@s z+)5*E%k1YF4Gj>;!ysJbFZ|?24dFoT3JWLJ^isgWK(fMx(*}`SYPtsr=?U#X?6%M-K@RCjW`YAsq=fn|sP8`A6Z@+-^%lF~o>#+R?4ugPQrpU;oEOF$^jG`!iPdA;?C zo8b7whzqXp^S|o3GM5r^tdNa?~7k@emF4Q85nsZrqVrHyz^$u%gZ^h`O}Uo zEG&dvE{|A>sH39;Nl8hVH*cQb*IQd#VKf?%ot+JlNCc5cgxuU*m`tXy3%eLiyafvu z;D#G+z^qxbAP@-H)D*2&i?U6noack*#F2$YRf9JaP+G`;ei-T&r z$>nlv*svjBC15BjDk>ll2rzTz%%I14cZ9g|$}4f@l~>~6!Gj^sA4t%bsq&7b5;78g zcz+}3+JC=lB7S&(BQBhaVY71H4f}`X_oH-%1WcPY zEpGZ*b#--NONi9g)oN5DrHO80g+07z_r;<#Jqq{q?x< z#v6lncCc717&2rCUVQPzsOD|6*)VeCNZft*-64;4yWM!`p@$%mNT5_IArJ^qP*4!? zGldfLWpwij3k#!~dmy}fQ8E>O@$|TOPPOCsGfM6~_4eAho!=LxvQ!`t_^nniEiH}8 zJLYd3MxuoA$}!q;Of`EnUcct%W~8K~VDsk9m^*ha5)%_Ke*E~TjW%!m$)_-z=j!Te zl$4YpJv|*xrxS^ZiLl%4IJ5r^&U2=}id8PS?65vQiJgn%qwuAM2Do&&Y>l{$fBB%- z+FwP3ce}5rjqd}v*#FVHk-gLDgvn%rN~H?wbqj>k=?p0q!bnn>&1TqaHb^9rn6=x? zW^+^$B1{Xf?Ck75YrpklUv!N|V_4zAU_!vHt*y}MbPxyxNKa2^4Ij7LjojQ^h{a;R z3usze8pL98)P{e4em)*~a`AAJojf-Hnw_M4g zLx(VB$`m9gCr4DxZnaurGMSK@n~M=6Mj$06g*Dn3>5*7Bi~cn67}*oX!>d-S(a_L< z`uciErPA($&bv7&8(n|%rskIEE6FYj*hXVeojoup6Z_ zFdhq=&BiW%{zAUKT5rDC?RJ!xmqRL*vKx?`oSd))ecf(1GBYz{?%V5b|B4fi?|k8b zUSAkbZd<^P_ub0zIQ#7vaXWW;c{%ueenfe-p`<|~9e>Q2F-T5M29L)JYD9V)Z4!xu zjaEGJ$Rn6CWl9g@(rh+EC=^EJg$tyKXSdrSlga#UMrvzoIU5Ssp${)!w-qUIy>8*) zd#|2pc(YH(AE5WRY>l`_|7c>3rZ4{WpZ=Z>zG>^YDEzy8Gb9oT)~s0*lh-X6+1c69 z>2y8*URhbm(NSVx@~a~Cr0H}zNFd<#dZ+I)r#Hj7&&A+&-!`H8qgS zjQj*bpYo;(?1u^1C4PQ=`~bJ^Dd8EtyKp1podgZn@pxAO9GNFGrxO~DCT4GjKdP&% zA(2R+R;xocPLG5i>!Qnq-F>?ggrcdb3Awqs7&B%Jh7TW(zy9^Fkxm~iEiDj>#TY(( zICkyY#r{3gc3D+bRgg-hJv=1k<>hQ8DHHaJq)B~4Lj(AHK0f&115QT>lgSj8p;}Q< z0Y0A}@N=}bw)(Azbsl(!<5@ZPeQf=aBf)+AFemRamf{(vyGKb$NmQXxyWP&V^NR(h zI|LJ%C@CpHLP7$hQYmh{@kYN!n=iS!xk1~60o|KUrBWI4vvzcJK%>z>CX@Mn24!bw zM;uP}*p6~?(vCeP@0BQkHy2!Xj@b0~t0uzT{#CDzIY8fX*&1&oQ-F3*w$UtFXAqmgYa?smJwk`rO7_<}9Y{v<@= zjoa;J!#jC-c`>(5`mrv$t*xz)NF>P1%L{A4@a~8p6beyNQUa^hii(N~h{fWFub12H z#;v#B3b9xWl}g3&6q`(@uo~Ahd76PXE7{rEP$(1-3WX7Q(rh*x#9}e0;?(=|hbn|% zVD5Q;=>)a4wUEhVJ^s$gaWbzCd(QE~JFhdEje*T(LqgSEH$^ zDQu%gtyZI~tPCY3C1Ljutf{F9s0YR5EBOo6_69bajqL%e*Xx5C3|g%=U>Nqtxaii` z*Fz{2hNa`@t?i~(t66O~Z}Rf;ke;3%(Y%@F@ou*p`T6-h!jDR&GGyqpq@*O^qUmX@!k;hSGD1Vb54#| zCz5S@NIs_h%hjHV^ zMU;rn^loiwX<`4yYDlHhfcj?^iv?n_xW|M3$GGS+5(}Zc8+CPc z$jHcGJ(j^d7Lf`8`xEpv7z~_(hlYj*2!+Ccn+mJd3O=9j*TZbL+mW804z*g10|yR7 zR6*z~=o<`wg%JMc%XpYGGcz$~&K$P*r?9Y)BTM34u+pEpUmVS^^7}&`?{qqmpPvt* zP}nOe9E?ZP-{#M5x1*}6iuJTHhIM*+dQj15MmDCVrUq$gX^_ceJv@h{rKMpPwJ}s z^mLAa$&i|w+QW18V_S4XRr`8tyDABnwlC;19Yuc8_+YGot^Dh zm(6OmLZMJVtJSjiy~SdIP$&#p+!IL9Hyi?WgkWF_NTyGpj!Bay!DKR_p`igHkqAJy zG48!U_NM~BxBC8fD^h~yS2Z*=Kq{3YGcz;h)P!JER#rkJ65;US!?0K^C@3g^LZJYk z&qsQCI?Bq**zcUlfedvW8SOaWqF6NJm1FXJ{XGjp(c0Pyp-_m29(pL`v#q|qK4|V_ zG@L#B31?%+Y%=X1mPg!4;k>;Q_7BVbo^K$8dU!w7izFVquDc7N$6@mie|yHH8*a zNFjx!+`m8i?oH0wIh1nf=el}{JNxh?+1bx}*5O{EVzb#$P*4CqpO1U)xd*Sj@(TMJ zBV)lB0+-vQ%T)V%o0QzO-9o)r0to?o%QbU{39B>ue%>Zh#&hfLEvv7uhe#yyD$S6W zmxrXJB%ceKK!UzpaqbA=TnNEb;^yY&LL?I5nrp5>U0ofdQYosdt6iibjy*3AYYdUV zIp^ujf%iOKx7+RPZza^6H7;1KR@P{{{`%_?6B7fqTJ2)AIa6I-4L+aG$@9v1keU0@ zx#(cZlqr7o2K`ZAUyt$Q$79f-L4NP2rlzKlG%&f~IMIx@4bxo=FXt-KQ=hIw*Y{t* ze*6ggyg1)wh5h&ubbbE?th?6t+yhQtJ?G>5ix{qaq5z<;`?vN6dk_AXvS0ath=^_) zJA(f4+@pOuo~H`7(l_--iHImKE1A^y+)6}5vuDqyxVShfDJh|yJ9pCJ#fwQUms4S3 zp-Y44P}sI@8?9QkiuUi{Plpd5rrEP+Q(ax1M`Lk@*49>PX=!o!@B8n+Pv3p_9mU4R z(!hZODJm+81OfpGg+lgk^ytwf5C~khUkqAXTj{B%o+6XUL=z@Vpq)E+5|78D#fuk{ z!{H#kUQcJgtD^S5r4SL(fKj*7h!y)U%GiA2+G>MihSwd-PY3#PoKmVL&&z?<1MMadJ?!EE$ zj2SaXCX-P?L4nJ5hr>aWCQYK`WE`Plt$dkIebh6C zA<9hRJ-mT^t+~0G=FFKxJRXk>217)Dmz|xRv}eyA+P!->eg669)X>mC3Wb7g7++pq zPXGGXzo@FJ%H#fOXlS6xlP6P2NeQXdYEIWXc<><2m@$Lu>gw3v#`5LMY2CVYq}6Jv zpr9aNlY3|W_P4*$^Ups|`T6-I5D4grC!V0HswxtT#V-4`x3|;e$&=~v#~&x1PRIHD z!P0fOf=+H+0|=9_41YXhIp?>EhVgMsk`x`(%zB8%RjzP=tWz4Q|1%$bA4#6*lAKORGd z48gp4^DubuVBC4- z!pSu=8jTn-WC)wn<}MeKpPwI8r-|CyT9+hpZ$%c7q^70@nVFf8$z(`OOoUJKiBTU#4aQc@t7%fm{*cQ)EoDi!#A zen6wmV{CRi)M_D?V*HN*R5MeAAkHYRaRDdgfg~m z+eT~FtfAW4T94O=dO{r!KKLM|q@++`VWG=w4u^y0%$Y-cKA-e@J*W5YkFKsRYHe+$ z=H_NLeEZW+Ke6Fl=8w$5K~U7s=&vy79&v*$~Tj-+f2ZrcI-t zfBu=eySr)2g4;ZlK4upP*H%R?&zN zBWUBsjdbM55qj#WrzkTs(Qu)22-{Yt}5PtgIxNOcv7E zxUg!~Dk35pHEI+AppK3XI&k0s?cTkcEEWq95h<=8LfdBcJTe9O-%|{4bgzwv3pm?J zKWC4mlEV(#QXfS>oE|{4X3e7Y>(>W$|8#YA(Y}5A==0A%r`@}E)4_uWNhXug{rBHb zNl8g0m&?6AF9Olo*-2BUPNmtiXH!*G6$u0aG8&CRpNC<`jvcgQ$r3tw@+2KTeAwlF z>ged8XP$Y6_U+q8dcB@hDiynZ@#4jF;J^VYEiLtX56zo5kGi_L=(_8!qi??XhAJy7 zg9_93)6YexkB!J)#o_37(Tg*Du;-$WVe8HV?Ddni8*%oW?^RuWeZ5zq-C#njOjV&j zIgyl<6t6N9)z#GjB}Ckn)h`C#ym|_S0#Q*>AR_j^(b3TuFkk=%4<5{J6AX<-^OOHq z)Nqm7-1y^smlZAAcx;?L2ywAJW9q8JPt7=V<%F2S#X!P*P+3j}J)YPz^HXe@$l}d%YygXD@RYf#(Z#J7TY}hcb zJxxP_&*vjK*>`of$z+01D1=t4#V4P95|k#M-EN0iEXMHR!z0!Lv7df=lPlVY1Au>i z)xa82Nsn*1sKUR;PMm`J$zt~UA65kxbY!%ayy<-f3b8URZ~|3PH8nMPR1-4g{#+zP ztX3-&3I!(-+TOx$x3fBUAAR%@UVQOI{LlaV5AL|*4#daDBPuEiF)=Z?X?Qfgdo2Ev zn{>wvjY4cRL8H+`M0YA2va+%;cI?=og@C=0l9GZcQ>H*D6e2!89t##M2y5a_PEPjP zyE4)g78XLGP#`TW4LLbEcyoAth_bRWj2=B2H{N(-P{;MtPhWAx8*uZQW2UArKc%Ml+RkJ#8)5E0hT9C<-rvUMMp>D#v5-$R8$lO#zy12$1lyCxSw8_h{D1`2m}JW@x~jdsi{Fh zK>^fiHTZl!lu9M$%$b8n9(e>)rc42k$Aerhhfb$MSy@?7V&Ggc8jTPNg)p1VY-_Ag z+k83qgLc-AbBEEyOG`^*bLF&JZ9pwWXW5f*TZ#44&&A@ZFyg-d;h0OM>T3Otzz2oN z3vcXXuXk_8x}dv8Fx67Ngm~RUtlPG23#vD!-EPNScijcGTJ2MpED%hkSzkWr>~=fW zu3d`}BSv7rfC0Gq=9{r`<3=bH3S?(z$KxR@ zE2~$F8Juw!^yMl9>gtW9Y2!%q3L?Wc6rLp>M z;doIiDk{L|^IbeE7b} zIUBkfK7-}GKjOseb8&o~3g+CKdI}qIZ^H3)Dzv}$Ff8x=5w^NdaQo!F@~JK{IpPUIJ#X7IIdw-Z!qQj{tUCGrY20EJ{_^KvDmnABjE_6Xire|WXlXSS4&1NiEumA%G4n%x>JRW`YQPvR6&dz50eYU^$@Fh9v zGS#U}C2&$w5*ivBke8Ro_RZDn^}QD6@+IgSNC?;$g@uK<F8mSqoI zQj#^+UF*@JjmPpy18}!^Byw_cP*G6Vxtqo00P3-T;*S%X+RRxhqgp7;~m-k^d zn;{m9y~>_2zlV#J@?bmk5l$E%b#0r);qRxVBhdcZ!##q}{SqTr6<3WB2LPM4Rl68h znQOM7y`wW?=eL|Xg@UuO)YjI9Aw!1X#v5;R@#r#>rp;!<(W6Hp zlgW^tp6=H$wcG8G%jG_0DALo@*`B76puWBySy@@^=lthC{~6`w<*-_)nV7J>Ll}f!DquJTnxaXdGIBViDUO8srX|-A*m&?7jhGTGU zKiFH?4t<1UYZbw1!}<7YU32>-A*a;O#o?+l;sD_9@9uUnvXZqM@xec9Ip?eSV#gPC zNY-w2IrodkPs2X1-EN0QqwzW678VvlrBcCew{xmuWpv3HabaierEp*hGD6LF33Tqv z%uH6RifNJLZ9g85=Q6R_>OQ$_CSAsJ;+&h<)YOEWoE)}2l+kDm+dIca(AS#~us3Wr z8^(f?|d3>$DWttq-hP#)P8`oO<%J2n#0n9vrS*ZcIYFV zG_CP{{8|Oh9StoC)X(L^RcFKjJq8!kLBYA;VfTUWg9@=a9Nnln^#5E67?>Qmtve4y zY`l!Dhx=;Lmz;>NDpp?-A|{gw5{V>iIQGQ`Kn`}FcKmC(-j zXl`z(Aw9q5&!3O$ufLvi0YheHCMTnlE4I2%Ji?|w zFB^rEA3qm#k7tLa1=d~b@pH}?k1(q@4{bkJ4p*fS2LNCH=SLR}Ip%NbqV-s{@gr31 z{T5&U=STe9)`2s&vp9Rsj-T5)aPYgM__U@TtMxlviY1u82bSour}jw1$J^G{28l!h zy{*Zp2<1#7RqgGY=lH2flw&) zYv=(zMw_#`KG0JM>U=-C7g+?tWHPZ;wSi#r-2?&wQd3iXdYu^qx4gU@7K?@Tyf7{7 zn9umkf%h&T|CyoKELww^C6W=VYOP>kh4ak z@q0fp9VocAF7(H#ooiiIS=FTQb;A~r+2t&jX0pEzv`Bc zze3XE8$67$VE?8rT8}rk|EpJuB^VfQQ(0LVXE_m@&4w8>W*|B`8c#j-l+VfDY&LsT zl7&ifaWUr{61&}wii!%PrKN$#;~_0A4JMN*=+!P`+me44k(HI@^Rr+) zOA3Vo0)YTIIXON(Y=Lskd|@;iJ*u7=kM6>S3!zX14pG}|Hm?#k`}gmMKp?=%l`Fj# zSp*_4FOMx?@kU);9UF$%YPEhVunh)-Pnn(K;$qj|TDKjoYi_?VL4N#PP~(mS*3XLB z>zh~H5Oj4S<2Co!rYab+v$Or?xHUC3p|rFVTCEl`nG6XD2~eq2$jQmU+i$;(n{K+v zqp+a7yc`mVg#CVNYHA=7iIA0*<#8Rx(B|^|a+W<|U_#D;3PG6GVd3Z&I`>aza@fxO z{B6kR^M?KS5gdD7?rO+=xGJL8=;zYlsy5;nET_(3)3$0n{HNE0Hr_PZ25j0^9nk^_ zf7I94gU91}RBCy{Zns0H(?KGUpt`!6l@swLA)(jnJ(`w>3R6kwYmBwEwd_MvsZ_#X zF!Y{I+GRTFG6g7VwL0K;T~}8Jtyar6CND29cQJ0lX&%qyE&&%rp+EfaLkNXJ&T=Rv zB_)u{2n+7YBTPRaRDdd5B1uj@_d&SCybA}T<`Qg|6cQcEI5&>A{(?8R{|hVr`XQct zp%f23vk6ldt;duFui(LFHsQ$^O0nXvAL7mJ|H6NdUi`K!M~@!G@ZrP#K8S#xhonZM zfl{e-nZy|JOJ7y23WdV2S1TBFI-Sev+-x?ZsHg}snG7P42zhyVA?eeF!sR;Y+H5wY zrKLeCm2#5(uv)Fq>-CV!d2ViQ&>nCmeIgRSk_V%V@@m@#7pcsw2k4jc%T zN`+CQM&Y-={VkfC{pX1>+Hu~bLV%uyjxX60_w(fC<$=%V`}7X`YLV!VvrS*RggM(^ zedwadf&8+0!39I^>0#*l{)=9}WFE%x>PJ9fJr85tRfjg7^-@4kzsrX~mkf}rmaCVa{mOzuS%j7DBC@6l{FyNn6LMQy8#EdXWHK4&&!4GC566q= zPE}PEMvfebYp%HlD^{$)uwlcXR;!^;5)G)b~?p`!5vM1ioC6mdJ zl9J-}T1Mo%7vvIvrko@kKUKJrGSzO^`?=5h>(3{Z*+;xayb93wmdQ?6$k!OJRgj{b4j3 z*`gYM#w{cA&863Ju-tIN4H!6ZAnv*69+wY3Tc=kuu$$< z#w#Zf2)ugbN=r*25{W#1Pc=0)Y+FOXwW#UmWute=&e9Kza{k1L z6T_MmCr+G*kt0X?-N$S;L!nS0EiDagZEeu&^^iy;P$(2W^WB)7sG_1Gujec;FAqv$ zB^XYAxXR`GHm|q=oz;f0bDmD`D{(OZTD0-7Y<>Eo5u1uiYWES}jsiQm|^(Dz*cTSS&_kW20+P)3f9IE|l4Acd1zImmRq>hynn*%CU8w zqmOpiQPuwM>CpErK^-d-|Z{AEhckU#$ zT1|83&Ly>4O|h}DKF{6R*-4WoO`?Sh7m`k=3u~O=a_XaJ$y)g``~NY+M$*t3D`?0) z8AQ>(-$NkIe7S{Aee^7KpE|~F8=}l4-t3pdI_R%gK``)5?`Askpe9($mw~{a$_bRr>J552>`Y zlE)MSrizLRl1imPjhQQFzT85Vcb+0T?_jqL z7+Cjh{wQ1LC-y=)8lv8mh?p@n7iNkKbI_9vw@Gsn1iwRBePu?wjW3W|}{L zJ`oYU{`%{r)9HxE<55XTNyM(PbLUQa;)y3HAt8a(YPHMrX7=pa6c-m4()GrVA5W)G zpQf!_x6(J?d_!M;`6cbyvxho5I!LKh(!_}qNvTwlTrPL{{RE<+p@HVlpHFddabz?a zY2(I?)YQ~O4u^w=4o+cyl)PJY)I@+re`B z<&B=-Z0yLJX=H9~pN*xT$Z%B~aoyeL>Er6d^xFG-=)}p>VV#RNbTBPUy@wvWPew5@ z(GeOU(T*KEXz}93R99E$@t|=y9Q4dH&(N-2yXgJ*-=~EO7t*X*vnVGgC+zEP-@cum ze)?%@YipzT-+!Ne|NGz5!Gj0s?YG~iEnBvbSS+STAAOWG8V&JyJkIBBZEdBgQ>W6> zrAsL@Gc)XQhQsAP>2`K@(){`JskynCOePZv1OjSlX`#FCzMG6jBdOKupw8FY+Dc27 zETQ+`f1j?u{(5@mnP(_HJ)L+w9(8nd&`mepL^U-vBo>S5;K745W5x`stgPg06dgQx zkfu$WMwOM7)Y8&I%a<>w+S*zV!~fvHgS2782HLrEC#9vOQA|t>z5VvvWHOmZE|&+q z&gY+hPV?r?qy78$6Q9qgWy_Y)u3fvRva*r{0zpupNwA!4tfr3Ar^wOvUzhDsgAyoC zI)mbFQ&S9YG{s&!mZFDTOGHHHPoE&ii680wsaERxb|=~Xy@PPJ)8+UW-e}@Iyn*7R zGkSIW-f%b^w0`}1TD58wi9{l*tE=<7SmR1pR~Ic?wv2Y{*g;E{ETIh>Hh4Ve91aIf zojR42N+lH(6mUNG-~RSD+OS~*{qoB%w0G}bl1L=%Ypt!Vv}eyA+Pilz?c2AH4jw#6 z5{ZOVDiuwfIFS?zMZm=m^O?N-^2@Y*`EshRuBOh;PC9Yo1PvQDjK+)^L*vGcqmH(p z>6!DJdk%_@rR!e$iJ}H^Hy9%g>|JDDem#4CjePds6#J`jeKwwc!sn_r;tn7AnO=IU zk{W+J?y@~5CYmNl#?X`rViJzLhDHn@N+X63rI_d_I&SHt%k zG#X9V;|zz(ebRL}9JGA-a@x9eEA7~^gEBKSDLFZrREZh3Tkd{ zrZ?VrgEgcq77N{Q!woK8lDFP^i=Kb}d8)0g4d}_}=;)xk@4lN>u3X99o71LEqgk_N zkyhJd#nWo2bSd0WB(_AWa8#U`@;?~8Qab~3DUMGZ=zq0|0I3HL4GzNqL0)~;Pk z27`gFz4lrfIdUZF^?DKtLx08{IB|l zKB!*cm$x#=_H`K%5e-XumWEFMb03eWpK!P;jkwSDe@D+5c9N~@9J_54KanyXP|!4m zga*eAGgU_Nl6Lmx?Npew0-+_di(9SY0sWLG-%Kuii?Y*0Rsk5 zadC0b9v*Kn<8%*u^#xbLr2FctuaZuuquX!4o%ZkFAJnl9hl3U^T0{*E4OCuU?&7U# zZEdB${N*q7+H0@TuYdh(dhD^sC_O!$HHe;g;t6VPZKd+^a=+J@Iddin1Ok_ofQE(! zQYw|Sa^*^T?X}m4$K%n`rAsL_HPx%9=itGE^x%UJ(xZ<)8qi2>ZEdC7Zo7>H0s$R5 zbSNU8qhLATd4f7W-$=HD<>WZ_eNe~7{%RZzo}i&2Qy!<7VIzBKgxuJ&WeY7^wv1|P zYl+Y2({s-~M;kY8B)wiA^dijRaM0SdYiZ-gjZ|D*Od5@bo_p>&`ugjy{oX^Zt*ta^ z(j+P@EcAQLJ$v@h?Af!atgMWbN+mfQ4w^i9GA&%VFeuM|Lqh}Y+qaK3>W&;aLJEa~ z6bc0!hHY+cW>Xr3LLu$lyO*R=DVfb?GMmjLm&@tk{u=srLC?L%oBc8knUcl*!|El@ z?B7b3e=H;-qQSBUY52k|eLSLm!lKWz@%o6(rhP6Q7m^;|fX$|TVYSP0IJ&WQ=K+uQ zU7NOru7_4sR0O3`>5PhQ`Fw2Jvgre_V1M!r-ij>DW;1ef zau6RMj~j2ik+asAvj*pwXF~u0AOJ~3K~$oz@iM=WRjXD(DwPJ^&Z{@DA3uUqJJ;gG z>vPezVLHsuj>k_+N8qQWBVc}ZJlZx)$BEbH;?&Ny5pTg14pmiE;PH4K1p!<-8@SWh z*vM9RGLjs=8r*v$kif1l*%M#dalv4*SYR@lkeizel}d$#ganKmHx9FB&&JZFOEGWW zJO~5=BqSstF)UVAN~qoWZM9fdvf2BSqAkFJK#LcV?^>H7YQ3q71SOz-RA^b;mm zl@a&m_J6q;S&uA#6F;{_uH{L4M+0&*o|u6+dh{qH z5{cg`*RrxQk9Jv2O--!$utK50E3dqQkt0WXZRh4L=v!M`i}dt#@cDdXXJ_Nkp+n&F z`9W0;GUCH>x!mJkWdv9mojGRW4@N+^pB|VF2fk!z7)`c7?XZBJN>_nE;8E47R;z>3 zZ)0SX+@BX_vl$YJ#HaL*yLMc-*zIT|l$1a$7JE!|TxCI=VdN#4@_$AsSS%KY zE!n_ypSaWvxyu1Y(AU}9#OS+eG#bCXYZ>s^FVxl&M2;L^0dw6qj_KHtMrQ(j&Uu~^)D zy?L)d7(Ks|lEA$-YiepBkw}n{k>T+fo6TlcbI!drS6NvZq*7_ft-hG&8W-6UtJMmT zNaV9`bg`^ajMYy{OG^Wf$3t3L8cZfrP!CW>DAijp)^J0trKP1_4bFc2<4w>PxX@|A zTR&2h$pnEw5U_!Fette@??q!{Ba})dVq;_R+u!~cTefV0OeVvO88aXji=k91QC?o| zQ{T;bfe;KPlL>r29~zAYVzJogLLfIc7izUS=<{EVFuIh^8i8Dn(Q3623Wcm8&vf6& z%ggil-mO-vivb=i#l^*tNF=aWEJ#gFMOs=~z++4%6U1V1#5>1WtyVNOHKDw`94RR& z7(RSB>xmmYAR0?24(K=H`sp>U3L|db%C}g9N|SAX^>kOSU-OLZtjBc&8IC5C$wgq- zZns0L)j}eXglr(y)z#syyY9lEL4$Dbz4yXkFofli$jZt>R#ukFwn&9onKokKY@Al-~XP?8H$RE!uavy@zF;g1w5{@vNEIz z)^4}sp@$yAph1KDb_B88?MO;W^4TS#pC0UXJ5(x_$8Ve~RaI3OJ9aF_j~|blZ@$^* z!c(Wyd0l)2LrzW(MvWSUDO09!UW{rqnuxSpYinzRTCK)yx7~)s#6;F;i;0OrbaXW9 ziHjc?jpirg`@^aI^cs;9G`mFk;_F6MMr7cCSbA|uYOjg%Ix{$KAic2o0rpxg$1Jq- zU;pvBe`{+iEn2jQ6>jb9?4;SVXVbxh2RVzjGPJk1)B5%6>CQXvq?t2k(u^51XzJ9d zG-k{g%FN6RO4rSuf`S6tv114A+qaM178e&s`T6;@fB$~kyLT_$e*5jTbLY;W&#lwx zXztv(^x%UJQfFsp-~+B=cJ10l8#ivGva&LYi}PLu8yg!-#l^+6bm>x>G-(p0rKQn^ z4I8Mcs*03KrQh=}TeggrELjqiuG+za2Pq*Tfxh_S3p#)PJe8N1)BX3~Pk;EsA85vm z8MJNNHgY%|UXM*mN+Ov|M(fwF=X|}+&Q6*+b0&3nchh&@eaBX>db@XGV`Hhbw3HR7 z?#Dax=g+5vgaj%sE)M%#-QC?@zwd(w57O4HTRlX?gC#LBkZ{by&=A(OfBf-BYHDhtAAkIj>~=ei8#j)0Ivs7>wvC>9?m3EzilPAn2GEKJZl&1& zn`OH@ehTZFk-~A}NA};b*N*MOk@OQ0`r3-@ZJfPf#idmj{rb+u6#l$%YPFgTUpTiM z;=01L*=#5)D`Tq%Gcz+?@{{a#JCsUgMEaKo%4G>R#H!QjyjJG+(}S<(@xHLxY`FK{ zdl4HO%co?jKdZNKoNPtsUL$@fc?|8ZK7`{h zDPewgJj~CI$MKhxX#e{x{8I85I(O^gu(Vv%u`%T2=ow3IEF3AQhDad9z}N@Y;jtFNzzUav=5S{eib0VEO$va+&J zT3X6R4$NjV)M_<`4jqb_GiQRw^iPz`$^>F$LlPlVY z+kN1B7b%g85k__A>^VDXtNlEdWGZSuzH9b8Y8jYsU47p2n(q$w)xP}FtB{{zQ@=FK=0>AebbAET326wDh zD~gJWAQp?EQmIg0UhYz4VKf>c7K=R$g4)_zWMyT6$KxR-CB-8zGdDMv?LFxWrUKX3 zeOy#j#~H?uG#Cs%_wi@6dHamY z%gZrh#0ZQXI~Gqr{WLN%GLV~_>(V#1{qM6vd&3dtm(2^eKwA*I}fnqSiJUKm)D%-L>RdZe-9U+N8%wrKObVT7*eSeg@uJaJrC}f&1Q&1 zB9H3VU}5x~0(mq-tzxy??a*j65tRi9#Q84kB|qtAWo2)$beWZhDaoWPN##}YzB|VgV}6`!_so0h~SyweP7(r zZO2bbN3dh+Yk8!8!sm)L;?AD4yHun`QV%XzET_)k-i&on%zFt_7QDhrn>fpfFcKoZ z3>`)mM5R)J&*yWJ1@Q%=ofU4meNj;nXK9E~LadPt0sE!fj?TSCm{;5o{-m2TrYCID z9eEF;(P)H7B;r(j~FMC{c+hAx zLCb>pg7Nx=BZA6I(p>XfLJ6^2tyUA~ zd;QMb1$~`i^7pt*tQLy}#l^*tN~IV)crfP7nZtTYa&mGYkw}8hWov6|gG#0H+L3}8 zTc|P@?pSxNN6XX0JUV%F?llJGfjQr0#p$m~aqM}y$9;A3R#rkJ60!M_0)YU9g@v4-WlSnapyvQ%l)C>;7*AV9Mh0uN&7C_Jd_Esr zwrt`2K7b1%$4vfTb#*nnP_bAn9ubODpRRK?oO)q_$CcwRDKFehrZs&wj(#G?6>G$; z`^T<`w7-fJ&h5TlG=9n^{XYKqDo1m{Rd@Tq9?Z0Kq z76=3aSS%K=`EI`8Qe?q&58>*u0f1LueHC$WaY#%|#MrT8@#|mzI^^E~W3b9(G7m$O z8CzKTgxz-hQu3IG=d82Z5Z;8{ZO7?-B``lb-sRjUUY{FwSdIxl2J@R@^4nxGSx_A| zY&IJt5{b(_!g%tON@YOLJR=XoRg$Elq5`8vjlzpBzUX4KWn^T)Xf(Q9FIerkK<&l~ z3JN?@2)fU7xP;dGs=(p&z7iLGxV~x;*iU4+VvRWGd^pDQ)t7wzpC8%rEX>`6kt0W9 z%9JTksZ_99t!Qg&Ls3x?WHK2H5-G;WP(sAL{3gl(4SL& zem*oBjn~(Fwc~OoJv|*MDJg!hYc`uvT3X6_m-&1?5)%`#e*OA@&laxQaa{8Ml9H0V z{%$&V>s_8T7u$g9wzj*Zi}V*XTsd5^M%(;G4WkD_$d3kvuOA7!OTH1s%_FzJ+OwLOv%Kpxr+PT(cLOk}o9F7ysVV%<% z$H`WgutkeD9w$Fs71Fr^3HkyTx-%ptC57}Iu3NVb2?+^^j*iBZDN{Hb^uZKa06oU2 zR;%T-Z)0O4#9}c94<5`;!W9)2&}cMBNJv0NMn*^-Oe!lY!RPZmyqb&w8!Xmc>s`KQ z%hsoRCtTKT$H@;@g&kUD3Wj_cRqimI7(^mb(0Oyf1=$#X3ya3aMko{tBqb$z?3bIH z3%OkGabLR|Z32M+X=!OLp0@n_d?=O5fWHYw*xFZ~UMTs09(3E$nlHOh2=$Wk;uSe` z+tIdR`UNj>?oGW~DAUiy<%%`pG}#8$Xgb>ZOJ5HM$4;DrV%|%*PC6AaF|n91VFD*v zkc&lDR#w2(u0O(UX~Q+d${2E?Oeg?gtNX;mqtP1=)ALa;;#Kn*HUPF))2n zGcq!Q`tF#%r@#5lZ!mD+KrCIl6b%gxkVqs*Pfrhcu3(BR7?`kdpbA2!y_>;c@an}e zo6RUFD1b;Lf?O_#Uat?zcy+GYW!@*#YKm)hBhXXC;G6?z+4?l+V?*VnX^qQ0b*A=% zppMsSwVX8=YiepB7K@RYnHll|FDWUBQ^?l2(v>l=on=pa8EtyK-fxkFR;xv7YHGmu z>q|S%Ie#x)&K}w8a=)A~J{tBpxnOzcNtYCl-YAgir|-C8jkpJv=vgD~*ojkpJsbdl zV%|%L84!o4s3^8!bYWp3%FD}9TU*yl555ow80d8SS%J46%|1w5+Nxm36DPds7v2TtJR96 zq$H?RDxddbFhv&Ljui+5K69#=ew)nuw%KeDi^V>@ye5;0^<-ydWpN&p#bQBHQW8>9 zQdk3psoM57Hj~NZ;-Nf$&gPN>*|uT&MN3$B4y~G3+`xGeQdn5X_8aww-EK!-ULFJj z0Zb-S$m1+6Erm=b3uHDd%%xq6P8nwr>rw~UMo)YjI* zY&Jt65O{=$n9c{@szHM(vham3Az((N*WC~c)FA}uF?#dz@*orn*^U5#yu!|Tgv^4W ztgH-Tv6wY!j>QtS|@Vl_~%8FTM& z$w92Hu7*aVVLLTAdy_IUGWaJ3AXGDJcMY@jyG8uS09#T_Nv2x`~j2t-AFOQ=fdHCpXG$HbbM)Kq8TFUa?xOR@Bwi!DKR_sHg}! zoers~sqBMLAP}&9S95Z5px5hBQBi@$#zxMo%A-e*hE+hIP$)P}xLolUVs);r&CSha zb63=AwTt2B><#NEUmmfsamBfq!k;%TP_9{CULHgukzd2aZnvYfv=nl=98#$idcEGm zz^|#PVRgIwQC3z49*>98(o#-E7F=PxjceAdL27Dhz@m)0x;j<@g)2=>O~}c~fj}UD zN~J<+X{pb#S5;N9`B*!4?7%hGT!S@h)}XPmk(FR!a`T+MaDA!!<$O>3s(`MquMemh zc=YH|R{S}XUdQh2-@hM1q0r^KvRbV$nM@u=TTxLFYg~F;Ksxti4JWhDH0MA zSnav=^mOFr=E7hwpt7>kBW%Vz{6krhGRKCcz2%0#5NlCU5u{Qn4jnqgw$jPZ&u6_% z&R)2mmyNn;{V1I|f6nGo;_t1#-d4xSR-F6!TXcQ@1+2T) z_f(#`iA*yKjIQs$==Jx|Pu~&+0CWYi_uzji`;`xfi0G!VBj_K`J=&+^d8%M5eN%sw zh=}sCl1Y8ftuC*3bac?FRjX+G_U)wC>nSBArB}w$+S*FZ&CTrJ4?q0C{`<(0BP0|G zNhA`HNF<`Ds3>~(-FHc^*VBFX-A6*9kn?p`ty)D54GmOQRu<9mA31V_7B5~*M~)n! z;^JabtJOqAw0!w;+Oua5-EqeqG+@90N={CumtTIFDk>`Im$x#=_I1xVhR#?)!+yUq zqGRGpXVu^6uDr45WYMv7-Ag}F)Sv`ESL{7t?;`W^>j`H&iHKMM$hiXx>_N%!A> zKdDqIzvp*295iRn93mpW&x_8^PFlWvIqlf7gN#NasZ^?v#`^i^pVPc~^JvqiO_Z0H zM*@L>j7B5z`FwVtIdkTaSS+Ue{QQuv5ftYgbY}lnvi|Q&2GuFX+y36Oj)z#H(9!NNe#i4Ta=uuQx zSEHn)1o`>-xc~n9F=)^r2!%q##>PS{7PIQ<`T6-MDJem9b+w0gh^ZVci(*w2n0BE=n!~39?qY$xm2V^QV%Xzx~=W(irKvxwy#{XrluxH zBob(~S`SZ2b#*mTQ&S-n3XzwW$I0_)wOSz*3OQHYITu-2EEcF#s*v^Q7^)TZk^ZHBUPjo6#v(uqpdjEYb!s$e@<-z z`!(RMF0NQ34gmhNzMM7UwtW0mpN-?gszdBJ7O#Cb;QmbL&{;F7FDWW2Vxa@^SJTG8xa!|gEec`VCKx37&2rC($doK%AyNK)1}bx z*}2`9W$V*E1$|8>69fVQTU=tXSWr+eX!baXWI z3+`sWKijvTM(p~ba<=J97p=OyygaXlNo{Q{q*5u;)6+S9|IS7mlS}Asv^f(>9vPzv z7|ye;yu6&Pybg3fc+3CO>2yd+O7eNEvvyoR{alJ%(MFuZ(e0uaXZT>xMIXb~od?+K zCu=w2?78439%m)W{rg=iYm1AEk)55*%BS#n zJg*vg{)CXtW-|;115#5{k&uvp(W6HrIyxF-#*D$(v11V*ACE`w9T&2?eQ(h9{TJ+b z{+)lnS3%$6;$l|vqOq|NTCJ89vkfP_lai9+w@0NjTm*efN=m@v@w`_1Im3AG6bgl3 zk1TUdE}`C(loS*c6a?IlD^*oh&}y|vN=kx2AV6GP90m*+fT*Y_3>q{DLq_E7x;nJAwV|S-0(0liMQm&= zJLw9qiDM_ZvrS)y^Y$Zx{rC~IXyeiRWISZT1P`6I?CfkvBob`dvIVKBsSpSR$j{FY zdlIRrs0b*S%Mgs9FVj84S6d>c14L?SDyKX;UqZm{Fg-aV6{gS4%|&i*F7$dmOePb) z_~Hw^^Uga+PEJNlObmz!QBhI2W7LKF=~4+{wP@q9<$*yMJ~-ON$Zu+DVmHxZvlaqt=^z?|1 zwV!?>#T8qf>dYTQqWjPWD>$=8I|5rqT52 z(gwv)_poHi5=u);3;R2E zI2?5Q?YC2LaWN$&C9&IETU)8CtIK2mg$ozbuYUC_TDx{FyRD_Ag&Yot*Yp4Qme)(mRNF?;gBacvYwCBCw+}!N3&15psnKNhT;fEh) zw{>@SQ%g&W%YI*f{WYCEdzS9G=N^yu>%Olqy1KfkwY8NxIy$JUtBV{C2c18Ep3a{? z&+Zcy6-59jDk_Q|o0v$e9XN1+q*5vU_P4(!l}belg(9T;tf8TSrcRwo zwY9Y*5C{V9-`d(rlO|1~l`B_LW@cv4*9$~TOA9^m#1nM<_;Hd-rS$2ipHfLlNx(|h z&dyGnG-(noT)2>QI-SdFU0q!?e*Abc7z{4IpMLte6u2skxW*rk)8o&TlC7)f;j6yq zR?5pt?$v7+y!pTM(dYjrBBGd>X!`4){)Z-v9}|&tx3{;m@&HDokrWC=M9#~V*49>< zI&~^7UAmO>gZRjiBQ$B!B-+1!KZ!)5h>xkgy`7qxny96vg?8-NL2tkPHW3lcyrG-c zss>VAEYaxV(-FUJDEzc|2xWYHmJS^|Pomr86crUk|Ni&C>D;+x_kWeV3Yp%J5 z-M_uPojN-^Ih{M0eFXx6$Hd*y(LpwwjRXP#MMXvV-Pakr-A;!OAEua?82a7sen)4{ zoS}dI^PhCvZMV^_x8CaWxa+UK-ea4?;UJ^YNaM$kC#6!!Zg;xHu9B1oXlSFVL`I!|3|!uP2d6MAu(`Jq;T+j6V6~6I!-x8J#(EhDMAS zL0>#^10|fOBO;=axwRBK@@7ug=`FfDexlY@H&e-B2UYwyfaIx<)84&%>Fn9Fl#`P~ zO-)S^HQL;nHfo-C;w;!onl|9FDk4CrnffO;SV*T`g2{S(k8hvBeJV0mH(= zLM6pw3KTZLheeP0P@zn9yi=wwXz=rEuZvovnvz&8AJ8_&6h5)7mn^ z!^49T5)w$IQt=gCl@UWpud1}mxh$}TGxloW{gjlH(3LA!%=&429dK(B%~?F&UXg{laE8R=#*L##AAPjTi62BQQ-N-7Zk;;k zr=+CVrGoItks~yI{CFBLU;zE$4}TzmKtOqUc~raeb^dzNo12X=W{xAbPMAqdnUbThMm>-<2y@ zNG6k!OeQn?nl3LdH;S6$=t}i1gJEy_jff*6+I=A3KwO1w+()(bjW#>J>X*9)nXRVM z8ElPOt)_^G2y%CKx0@$hdlVHFwR^)eg-)jowDM_E}}1`m~6 zAIf^=nz+h{p%m#mmRww1C@?UPyu7@+WEs*KVPRorJ$SBNyJoV;!cr6p1q~lQoJNfr z)oE5|XK;RCZP#^e)l`7tgNJffB=e)jwT|a z+i7q0DvJ>=Lsj+U{pZ~xTqU=kn&uJ}Ob!zfVCmK0yuz_gG z%F5!aBh5AM?TDhHBD3;QTO0aXLv(aBd3$@)#fujyH8qt40)f>Xi@3PBPK|)`^Yh8w z-M!1Ago|k#J$f{a88e2SdFC13IwdJ7$>990b5m<~zTTzt*^=9z{1;V545gybAyjqn z&mC^7QmH6AJDZ}TqxoV6u~xZ3?6C5>yu6$w z5(xza1eoQBY7| z*5c+ROO^lt6bgk^=RJG&EZp7QArJ`K-KIWs74Ceu3jpxQ%rzJu@SauYw3fzWJJ4`2 z28S;<;hAZ#V_Ninqisq{OR;0e4jepq5J5pfoyKUj$FynFuz2xegoK22xZRQ^OK|n- zRpjL4SbPqk<+^+0jWR z4~A4U4!;$7!u?SJ9v%4z9v%4z0N~bbHE!KjqpJ27{7`xc-~L#^7fWzFI`R>$4xNsd zM4sLDS=w^;>{%>Yv~ zVnjwp@>#K+k&%&sv2o)@l$4Zo`am{CZEY>)%$WmscXyxZS^rL zD=Q5|T}4F&L?RKSQYofRoeGIWg6Y$zW6hd1or<8thYw@n!i834-L}V}Lx-?v(ISL} zg&{63&Z6t8w6qj&yzvISyu6@LC=4=F+p>QBdYm|M0=c=ld_e;z?$4Y#V>4lT|I!a= zIJl0#uB>5@`|}tP_yL^8``VyojNVSa6>$J?U#CZAZVC2&S%Aj7_pCbB5a+>I`05la zcxAHLBYE~juh-+Fk3PcIty{5X%^E~RL|7eK-We-bu0(NhG4k^AIz88c0|&5v{d$}^ zbH=XiY8w*XlQtvGng&!wKM6GJfdP(qY|GCWFl0oh`)RdW?A^N;J9g{<07OPcA~ZC# z-6}cG5+O4)6JoKr-Q$*)mSXz!>B!B^?NR`GMMVW>&z_CIz(B;u$G5v(b#*o7&6@|I zP>8g&v`$5SM{Ui^%WHR3a>IrVxNzYD($mw8-qUKe$jHdx|Awnpt%6)GZ}-|;zI-|A z>+6x0mS*&xI(IvM`Lbn1chFV1nTvAtX;bn z`}XZaN=ga>0s`9I_Ki2*Kx1Pg($mxV>t*fQwYYlqs>y535}JOwiTeGK(4NjVde3pp zGZ-S8gF)^SFiDMBT zqh77Sr$_&Vff)?dv|q71Jf&nCmwQqecv~QwzJ!)vH&rWXTfL*ViK@C8bN# za^|Af>k%9r3;+f7lSi7|e0P0fY{7rI1;0JJdInu7@YmYlW>_vV0 zG5~w6ru{ zIMmkGV%M%+NKQ_ML?S_CWMrqFVfFR(m^Et_a&vP{o~K#UfSYm8qFK}8$>tie8$+jd zJY{Wbw5PLCm(ns4<}k<^V>bL71BZ{X>p3ecD=}%(Bz*G8C%AFr2EPCPdlVKHqPn^o zGMS7Yse9syCm@wdk(ij+>1drL6c!dDI5-&o{{BcvNa#{$z|=9{c;gL7BoZVhCYl_L z*6a0{GiMGwJUsX*eePOQC=_Ooj<-cuc^Y-QgV0oeoqx??kTYEV5Q(8v7r=3}`Lj7q zw|~N&!hN`NBALG~0bt$af79x}X3;+m{y>+m^_?h|)YMdd!MrW2AKRkS=}0P-(ux%;I^Fill`A9^ z3hCm-i*{=d(Sr)U%7~$KBl?LRaoTUbuc4~#d&``b-l(XjO zthgm0Ab`Tc!n$;BF7vW0m8{Xx(d6##-sK9vu&^)+3=C}d{q*#75{X1qT3SkBVPPZ` z3MnEY!sgdl>kQoLjT5L@+kF;4&G$8Q^L_DyOyDopcguN$f`Vw%rcFk#t5hn=%F3eX z=xCBiBs5^a06rzb(t-(7=yW>%y0J$EzDA?rEBxEDv{9?oB#}rAqTX_Ha?C0mGI`Fj zFX{TKNBQrt^6lZI%6Oaf4b@%#97IG->RPJ*Y&Bh9Ig&s2^_3&(&Z%^(j?3u1FcH^} zsHv$Txm-@(-rg1kms^TjttKBIpLU~|T9cTVNHUqsZfzkVq9z?xZ=CSpq4(8h`<~AP zt*aWVVxF>DHCa_v6~)HJ@)j#Ez4TJ2fA>wBHj!8??$X1D%kj0wJ|rb2g#-dYmqegO zqam?a+-`1aPEHQFy1J69t1IsnXb+n2Yp5#bsRxy+yXF!#bx*D_SCLv7F_dn+`&hSh zN^){?$lKey!)u1?z%5<6lnM$8C^0dSf`Wp`&CQM6-Q7tpms4V5A{7-CnQb*vUS3Wj zk%)qVg6v*(pO=?M9v&X;`fgTLRgt&1w}G9FTrTJBXUs)Y_T>Zd_J1AAdllbX-Tv0x z`{`c>*JowKP$uLaQkaPAhh%4GcX+e11yxm5Sad(V}{c?DV;e)x* zdVjpm&}cN|;o;G#@p4d55CsJVnG|SOu3Vw?^mK}dh#-+jL@q8aB$LS~Iy#!Nv$IWp zSBZ&Ap-@QC(b2r<>Z+lyTCJvlfB^FI^RubwFE1}A z4-XHEM>2?7Mur}H>@ixoawWODyHj9bpn>UhSXfxQf#$ZP;j7JtLN0rw-Oklkz}081 zwcEK`6B`@bX#jjwR1`_2QnRlQwOUQNxw#Y<7f1g7{v;3x$lKeS!otF6+qP{qWy%zb zk``zqoShh8p%Us+zY<_$$#1Pd_+X5|5<9V?nV2*-`V9n3WdTb z((KHcGZYpUMlLQcv|zykdhWUBEH?D5s;VNfSWIDIVRmub=Z+r~6lAsl;6B&Tp+o7h z#~!2e=g%8$Q&UqzLZQ%X6KZQ{Z79u6t=h7K(0pHGFojwfF_dbOUhS6Y+w$^q5(F=9_QQkRd}zC=`-FAfSMN0E&-~r@XwpZjTmJsZuP1`U$&@z_mr+P;D@^TC-zjx15*JJunf+ zAe~M}adB~Wo4Ux#$|84n_YNPZYPH&|DI06Kb1L27VR-wK|FVzUd6Ujiz}aaUm8j)m zkVIn;}-Rgn~bKwek;^N{AIx?xLsl0eS zbLNbJ*sZClq4M%_3JD3Jw6rw3SMj|;XU^7Z;5y^}wK9WZ2hEwUyY>7G`@uvUgNKWz z@$>Vu`80+?q3E=?o}HadUS3{yt)3+!YRKMb@KC(@bC_&BvVsU$-~2gs;jH{wPRjhUX+xS)b8IpFE5V-0)b63NzFm0(@|7Z6nS`f z7>Iq1M#En_5{ZP;)6)$eq$-t)JUl#1wo|9mk(Za3)p@Yy(spXKGGZv*+#<0&7O6=` znsZ0#R-&KL@#?eIc3S~OYHDhS(}dh8yR}79T$QJ(sms=AG#V->D4>Ld1PTlcw5njj zQfg{yC?Ft!L?V&F^%)-@PZEiQ)M_@-H?bg!z zhQ_TGY0OWt`o?yrFwLkcOqKDr-ENp?&YU54clUPxrX?jMBoqowP6q`91du==FjzN7 zM3k16Mna*`V2xRKp-?DDC=}9XpMAzx-3A2(btn|L&uD6KIagI_uZMeE?v{LR^!-;x z45jO<9;Ld}Khd32>2&YPNrQDsdQ~OeyK<857Jo{&Klv|1>xovyINediz`>2~wpWGB zE$}yYRM!-owTFj?2j%7Eb?F!vFJ7dyv@{A24=0gGM9$96e8EIkR+i0+TR5wx*7wGU zhzJS@2q3juO~Z!|rv(cZ@c%DELqqBBe~vULF0f^X(Gr^O*3*r5A7j<34;jqtmtm5t zSFd9E^5v+lt%X9N=#rzqDV8i*f{Ka?G$NyA=q41Kx$(0%*%Auuoy!-fsRkt0Wtlapifs3dbJEiJ|B)vIyr*fIF|`C<3& z-Dbtcbz}rQYt}5h{PN3)ii)yRs|}%hjZh!kVPw486&waR!$r0XF4I?;mF{6H7A;x? z7Z(>KCMFuaS6y9=Y15`*)v8rp&JQgvF2=%z3p+H~?F#kv^(ZVXL}6heZ$|9y?hc7W z!Y52vdta%nti-~F3!&9&k)ECocXxLL2M5E&#RW5F%)r8h3vvDWb$EGsAs`?C(qY#S zIHUwX&*wKc=6!^Q&({Fxy5TsZcfmv)qeJ%X+lP1GeHUS2VOY0rUAs|F=Azf@F>l^H zxVX5Oj5GpTf~UD0R(o^rVm|8AmqA~1$>4PdCl@&T%!2c;{V`B57LKEy#DHO=007N* z>Y%Ut8O^^`LwoKpG^Y<4g;fs}jD=wS4mkVFvRm5^95{gO+qbv-cbYwWHr(9YI!tch zsIIQYE3dqQvuDp@(xgdPyLK%C0s`zF)yBakQB+h^ATlx%Q>RYFfBeUPAS^7*>`?nf zix#1_wia1gSq874KYt$6rcFb6d3lF9nYO0smz%ir-EL?~v!K8EzZUK5INB3KeiMXY zzgukgB!;#W78YXOym=@uFE&?hG+BPl5fK|w*bYIeJn zmX;di!PeK;^I5P`sT5+dxJ&5|AAR%@{`}`Z!`s^%LZJ}1Zry^fuP^@j&wpa<*s*YQ zbj096j(9;^fMpX~9Re_~HxX=jV4Syc-)EF=x&kxVX3=B_)Ly zRE>>|Shj2#!otFA5^-eeGjN%(0)YUlR;@x{U?49XtE;OqYt}4ydwU}_HMP^vq19?J zZQ3-;^LPv+#IJsjjYu zQmN!e>PkyX;qC2h5FKXD=q~`QTel8dw{C^Avoj`5nuJ@oZXqx*5FdW{Ar>rHfXn|b z!PJ2l@XnM$a2)dt#>AG`_rsY%>&#u(KYom%lWiA`#^?chaxRzAx8N2aM?^$ez1F0r zriQ$|y(uv<(d7G_wLy1Ppb@ncBs64ir0Pu~qcusL{Zwz9Kn>X&yKTM8rcImLwPdlx z(D&N4Yvk?iO%V|hM(f6Mb94E1b5T)IHv2BBs;VeDI@+xDZk$J*R4O&g0;jDJFh^%= zycjKXRM8tA9!@futV`<)xplTlNlDf=(dKA08p_Ylr}+4I3JeS+p-@Qf?(P&66x3nC zgifcUnwlCqfBrm)#bR=Ba3EJ#S9<*M$H~LPgGP@YO`ear(mPWI+1*3X5?cEW+Oyz_ z(LFE`$FK;sT1_iftgwkmFlRoSnVD(w{n*%83JMCc>Kt7~cdLSaIlP7H_AH>99W$xw zy=UqAsz>Sisz<5ny=SRr$4si*vw(g%yoK)HIM=Oha(Snoe;u7KBqW4{LLo&(MVVaz&80pdd3iadrlwMOcsTj^_!t#T)YR0_ z=bwL0BS(%TsZ>gdiHWp(_ih0vDcII>a&jUE2L~E5WC#r$IFJSmaNtGU-IC9H`eP9h zk@kPTGxQr|^l6xgV|0mvf&%jK@v+(@_{^CzBoGKpRzhkt8uIe;vRk4=UnL|Y#AJ3T z7hz_Op>K9}c83Dm6e^X9;^X7V&CQLZQYmF+WtlZ9la-Z4GMS9Lyu2teF|o_0t=wpi zIaRZ9ad9M(NDSJi)9FYg5>a|OtI9J)U|^uh>nbfRt=&#TN3`d!))!H!RFs{pk7Ex2 z03ZNKL_t)YO|h}DB$LU=#l?k2j2JK1emspBF@mN{nL>|0{x~@}I1m5= zK>zPqN2-h%+G`@O?%z0PV1dKv+b|Kw=rWv1u$!BkRVKmt`S~Oe2uxZ;6^~YO%E8t(9V*?&;<*tb~a;hSk`@B$#u4H?@Cg zXeg~%vBJ7WJ_K+hZKg&hIYZyh)+$CtMUl6+x6P)u^78U1Fffn=0s*a9v4T#WIz`dZ z(IgZKt(to62rj#_vk}MkjDY2GxyA8g4>Md^N?TFSjgnj9;l_#Nh=_=OC6skK9TgN5 z(0lK_M=!kaf`O3xt$T}z>rJ#?&&%lBFcHVF8P=Kvx0k_KQ&VGB{_4X{N=k~!k+${> zeOsf^XecNs$m{|EOZoE4FKPVv@#Ns(K+in$41Mv%7dAgfYpz|pMm|116dD@Z;k9PU z2>8mCDU z95|2$4jf1TXx8{g=+crFvD90F=k*QM1}5i>z6}#`44ZQ8+BJS5b5|+>qoSfnDwP^d z&!wiOl1L=#^J{Cm3Rhj(c45Ctr6MmcuMVfPtE#FHaj!7q@;vIA`t}z1=&0yp|?_AUQP;yf?j_4Wg0eY7&$pPkw74zz`#KI z{PWLADwWcT6)Ozl_wN1lubyr;5w%$p_rAENo5QdYCgK=&Aw4~v+}zwKHa6B`;SdrM zLVr@bFHjh{M9dC@?UP|6QZeShX(jVL>XD zQc6k+|GQ47BbiJ_;o;$(?yJ-3C?O%iq7l2k3Mbm+ayhxVxskWGH+gw^(XW2>D_XmD zE#F~PtJS=KBON`FzG>4Y3J3_WM>7r3H&j#O_o;L{?JcTFdX=g-iFlv5 z>P;f5NqUuTr@cju-zx0B*2Ul7-(a+asB=T#%*;#@3WYXVpHx&-L~^;DghC-jM@L(1 zHNkQ5;ze4qVg(5V0tyNWviT?&XKB%%ZHg%);I<=C{RM8FY3sFu(b3T)kw`kN1m{BF z+cWC!i(I*Kg;G;fEfQ_5sj8|XZ*Om-0xV70m%Yx;<5r>{-=;f-5BCUae}IWNMz^3= ztNDe`=K8*IH^$Z@Njja5e0+TD;`P;Zx1Q9;lMHTh=KkFJP)5HT{g9gO*4wmA+1c47 z7K;r=MmjU}<)*l-NhfH#-YqF9$!6>6R4NreawZmwDLp;iX6xn(3JS>0&CR6W8IiFO zFjwhn@3maLsZ&7IQt{n-id~^lke8QNhk~W1riOxof=DD1S!6lV8{tG-XlN*TczBS9 zhlfR?tu^flI3l9v`x?5wawLDB=xLjgCUq@UzCFC9J#P=ECUtF(wufOoEIXCatrQj( zV#$&v@bdD4LZRq1ko^4l^O!z;Iua8T`7Fo6!a~fMGY946t3F42==FLWIB)>lw{J&v zbu}U*BM}xBX7zV^_3Bm3nl%ejsT2x@g3n^**sx&(jvP6H{QP`4Iy&NwH{O7on_HIx z-8-UL(}25$Y0#8?!Dm&P%V3WwaDF}j!=zytFl2;H+oe=0v2fu+oH=s_E-o%Oc<>;W zFJF$_++28jdz;+n(4j+EvSbNDLPD@<(aH1)vGvh;sn0^_FJ4daRLA!lgaS= z-~S#mnau30R8uIGN+^{|qr6^@x)eFIr?UY7kIag}@K@G#`CQi0nD-GHK3@X>aC&+g zgl`}2v9>U50~2wKZbz@zW6PE;NKQ^he0)4YLqj{^fU~4J^+qm#b|51o1AcyfShZ>uL?Tg_+iodJr4rk>Z^wxfClDGMie<}|!OP35 z%g1YMY{Z;7a{$2P-(%LSS@81mLQ+x^s;jFpVZsCy6cku>PLAH%DF9mj?@gF60rBzi z2n-D5J4CJjZ?&eeu@P(6uEn84hme+*W^$X}NM&UuzWL@GyNEVR(flhDxA%quX!$yELyY(&d$zANlEGO z#(MbhVJuv@5c&D}@b>mbeSJM9OqhW5^z<%2SQ?M*K*N{s0nK{;HOJAOaPfNwLthAj zgOhnei0(B)bNUb(bGJiR^>2gsy4v%uuCB)9$&*n~P{5CJhtJ>e2 zI|V>X$Kd42lgP@-LPbRde0_ZlM!8#4SXhXK3l~BrlOZuN(c+FlcT!zlZ7|ZN)oOc8 zv>DN?$E}2E&{duW0J!)@V8nlH?e=E;^7Z>r=X?O5EbIff~P0wdnhA)~e~wsdT#ezSwB( zWy4pSyWGCk0r%WGE>pz`t>g51Yi@B>RTZVDr}OqQZfnre5=H8@A@uDNFKUr&@*Q2YoF!J;B>$MN)*0dI! z?(XgsA0OYPB82qxbP@`MMxJ&lDJi@WaCUa~L)$4JYWcqsA0N+qnVIq(EH5u7u~HnHk*@lJUC+trUYLku^g3Fb1e+2mI-QPx z5b1O}N=!^7nM~H{akb}<8%%epGTydB>kVnh-e~af?Q9w&H8qv|{2ug_O&R*e#l?|_ zhexLmv;6#g3JMD1lQX*N@7CMkL@5_@WJy5##fukt4=`@TO{39}NF<{8_;@NWFE@&z z>WIG3DNw7`A|ZW4wO!7oZ>To3OL}`aY0n?G%efdm2NQ9OUQ1qH9`E1Ob_z|W(~(pvrHF_K z(&=<07K;t08}st=sHUcdHjUG1EQ|TNAV%MX8E;s@>i<_ps$WxY`=} z>U25^2?-&wSlq54)9G}So}Nx(v6y^(e0t@2H(SwqdRQb9QCeD>SyQ1Zm5O9C83hCc z@YC|#h;D9fE=5E{m=!zK7diz*EhE=qVPX7Igx3F;I8*5O`1o$kC2lL)I6VDqNAfJA|ir_ zj17I&YBkAZG71a~H0h|{+CbOe-`^%l4Sj{y#>AY_Z)fY~I6*8DiFiSrlaoVkZfvni6e& zb$Z_#?i8jObO5fe97zpdthd@MyjiQJhOago6fso3J)8-+hZrW}7=41Gq9PKBL=+Sh zWH1UK@EQOhWix3@Px>ezO_6)RSdP$;CZu&{@I6r(e^h%j^4&2d$j zoREl%izA6dLdnU=B$LS~J3E_-ii#*KER14eV)$wMzR)QkYFS?y6B9!Mfq?&vd3kx{ z?(R-2R;;kwD6LwprktD{KFUid6!vS;W{P_i-y5uvm6$VU4t#xmF=E6BoH=s_DJd!N@$u>Q&(@m|i^WJ!Pe*xqIh>uHF?sT2%$_|P z-+c3p$?Z36*notD1o-;;;?SW(h>eYfKp?=mbLUW7TZ_*=`wZ{D|32K@+;IK+bpS2j zpZe%F{uqzUiopPvQQh+S0Kmb?1;bxm&;NesL^5yS+L~Rvc0s4p;qQO{JJQqB;qC2> zl`B_b;lhPTOG`syVj`TKtv3(`T1fG(PcQGIOnoFR2 zjR0DFDfKm%aPMM18jtNj&0nXZYTYc=suX)FQZd3GBOYw z8;j3A`wSB&PPAy>%a<=>{`~ovJb5y9?%ZjU_MAU|o=_2Q z2>bT!;|+b4N+lL8T7;yeBm@No8N^g+wOT|*Mj|96#AXlThmqDXVlFN&h>VPcTrM~I zn{n6Ax^?R?d-iNR{q)mVwrm*=95{g5+FE@0;fMI*i!Y$l>5%>2Tt2#}CrwjtZGDk9 zkbPw48VnD3kAJVWwie^ZkH_G_gApGe50OZOg$ox#BoZMhDaq<+v&P0oD3wayT=)F> z^N>g+yt%GeEbepBTs?{QYz`U@#z24bf2}^2<7iI|e{Ca%i00U!WsKeq6LE|VQ7V;q z?X}lXTwIKCD#fvY#h?6HzqPDgcl@UW*b{OD@$G2TKJBh*8kWP!LwZGzf)MMT| z4Y>Xa6DCZ6LZN^_Ai(tL(~+B-3#C$tty{MuJv|*hK0esBYZsD}li}mzgUHB8`1||! z$YVJwNEAHhT% zqeHyByztgrZ(;T7)kg0rl}c>hyctK190362=jXQ@k@WS~Un3+W1Q#z}#HdlWnR=?I zsNkc!R4Nr>Vqzc^3bA?fX56}U3opI&63(6e5kJgt#;`$v(|BJ9BM#Z*++F4N-cV@% zl?ebC9`GJME_cGolP952C@^{QWUO1a4(HCD!=Xcm@X<#f;o!l8*tc&V?O8Uyf0uM&Zt#JGgM+0-ku{3H)HRTXB=oQaZ> z671Qt2Y2t@g{P+{e){PrI5;?xgJ9)*R4*sx&(e0_cK*kg}j_WFE0wk6bfwJx)sUE$rv?i6w1oV5Ed4O;NW0<_uY3Uiw-VdzTEEA zXIG{~Jv=<1P$(?k&lHV~jW}@N09;&L;N|6ob?erFh)`BmhP1Ral$4Yh?K4m?)+Xn+ z2CfaKZ#Col3%Bsv%3tG+H{O6&tHo1KJ%vv{{S zCnw{ZZ@$5xL4)Ax>WZ408UTP=t%mjy2Y$ca)+q?zod;#n4J=-~7$1G~k%92i>-8uu zF6Kwtii?ZkiMWTHb?eqap-^Dgu3ZMxm=h;X#Noq- zF?H%xC=?2Kcz77CdpmXN6r!V}ySvF|asK>yeEaRUsIRX_eSJNEmWsT_#+LO#PEJnH zYPE271hh>AzySjVkN04UTi`_8_LDk{89EU2=g-IB!GjSS8;cDaHuP-c`Z3PV&bV;l z0*Z@^ap%q*JpTCOP^nb7b?X)e3>bjs=4JrE9qoN^6BxazQ?TmTeHf!9{jL$#+oK>6lFfy48GMSA3 z{p{JZC@n3;C!c(Ryu3XA^+v4@fD-`ps!oCWKH&Cqv`q~27%*S}f+marpzZ0V7@^V< zhC4YxtyUv4G7_1YnQ(FGnW|X^gVBAk!iI;KqeqVd0G@pE$qu)hIddie;Jfd>GkAT< zlqooV{J4D@*G;sZ^5O(kPr|iftM6b`YHeF6dkaOu(|BXQUIc%Gh~ zyxH%XHERrx+m@q8k7CZ8?u~*OG<66dObe+=p#J+ z^wV&0alx50XAl}1%D+G0kueXp?M0me02nZ=Z(GqQl}apKx)eu`9yN&fD=RC*x^?R? zdGcib-eoG2St^wxFE0w| zJ*iaM?$p%b!^UEX>m7GB_NS{1ne;$3-n*FJvqcWgdT35RFo$)1es<5bg<*tJsl=p7 zlkmkCUm!m}9|;KwMj4~5Q(!+rLqicA9c|=Gxn|88eDJ{sNK8xw5#iFMOHip)c=gp+ zjXIbUCr(66ObphnS<{_OXE1sUCgS=Lo}Qj~|NZx|di84T-@l)K{p!`L?e4R8?_O-# zvc=?RoVnE1)gd-E7V+`%HjCUcmw|$@80;|xKub(fYZ2AmXwT>IBGPfRCk8$CTqk=l zx|71fLTuW!3Awqs?Z%t2PJw;+`s=T8>C&ZkJ9#lNF?<@#xN+m~)?04@0B+ncUYGdh zn{VRCkt1w0j?ph*BJLrEt1kWFhaVu7N)6VxjT<+PA2H(u+8_S#2cu(1rBdwNxfAo} z&+pPr@$%)%@b~w}j2Sa*7Pn<7&aIsF8*{f?7A$Q;)JM1R{~q$2?j4b2bWT)M6aoVS zJKTnK3hYBi=`e>6AIAIdzi;r`@#Dwg>gtMTpMBP7`*GvO87%W)Fdk-@hlAcMS0es8N{4BUQmNz%9`f??+TF*? z%d5{<)-xF9z(m|b3^%H9^ypF4)zz8YMyXUnrBcDu(-W_}@=CkMnmBPHe{(h$sZ@%h zqM{Cu+Z_xTG6F8sSMk5Ak8JDKX)w}h@ynq<^S`^umSN!VF&*r|=*_TBLHjISx)i~| z!T8N@euLWDS`ZQP^73%$(j^232V?2dr6%_~b?TJKnSjTL;0Q~K5f9uYsbvvzvlfLE>Zto54 zwh@&2^kvXh{TqO>pk(wtSf{`=tt0+cuU^fMl5r7#o}QjiC=}SXZJW`)=A^@Lg;V?X z?L$UJ2E<~qRcmz_jE4ax;vRDL?AZfPPfvXC!3S8kZXJKqyL|aFdp5`5L1-`3N46S_)Qp(BjUUB%SlPC1o5e9=a=9E!mo9C0#JIP? zIt7N98}SDKTefU5`kpOGhk50dSFm&EPN-BWla=!fMt_2dxQCpH6DQ*2$&=W+bt{e@ zJqk}xPdGR@V8)CY7&&qzN=r*Enj-DXI6prdkIahUe^=*jx2up-AK7X+V)Ak%hE5H! z+xdE$y1F_{o;(>14Gku3W;!AxBLfpBPQ=qsKiwy)3R$P5DcmFg00>J-L_t)*5OX8` z0Pqoit?4Ko#^2u`N~O}^wc*2uThm+yQKPVW^=cFq74cIN6%`fOxpSw1 zsb+s*_$%uStQgcswxVu#kWHtLAAR^@F=VSl={g^v=Ww7qj-`^icjvRrh+fPPD29_>e zircqu+qKQMg6=iq_TErv&*t#2Iga+k@K@Jk$P4qVI=1$7HhwwuXMPPF@Ss!R;M99U z?j0N)008;<`2c`v)211`KXc|x96o#)+qP}Pnl)?q-&^D5<%PH2dJC&puePc!OP4Oi z<;#~Xp3-M9`XUealZC>@y3_zxIdY z=y4b*7>j{|u>e{^$D8V}qp9vEXwMyn=JX+>k(U8OMqtF;ZM|l?%br}md>O^X#n`xU zqsjLz?I%u|G6gD?3QDDtcj@oVI5@dr)ZzmModT}dVbC{!>9?JNn3x!h7%>8wndXgf z@7=o>uf6sff`Wofjqr3I$3_OS`l`gVERM{dWQe!;TCQ&4Kf?)1f}L19wg& zqgm4cpk;JL^RG;cr&t{ZIm1P^3@+1G^@;`OmQq(&hXV%=V9%aCC@wAr&=S`+W5x{p z=YRgENm0c`ADO$@T&Yyz$dMz6iHR}!KKB6Ul1BOptW)p+F5(Yp$xG(^;W~==Yn=|W zXU`ss*Xt^kO1$>kYe-K|?{{l`8T}U~;u!rN2PYQ{e`OtpNyBjGyWP-~W7=T5$w@awO?Mo35q6bc2>)6go!WN`)VO_yMa|ukKRBAJ9_4`s}mMB0fGI zfq{W$SI%$Swhcf2_#^W2@|b{Q^edQ%V=(@Yfy2jOc))uY9`GLYHJ70I@c?v{XV847 z7W%rM(R`<+VsgN+QE(jfBnAu-c45W$^X&g{PQ;eHA9+7z`6Qj`qYOGuQNVGrEo4yLY3wxEM>8EHOEfF>&HVELpMy3WWljH*Yo& zVIxL#K0?%1z?qYi+1Ke$or1u?KIf(4|Y4j9$;r&o{YWZEY=idU}#rET-DpTC>^%fVOVkYT1Wi^eAGnm;g{r zOpM9*XU?42={3e+Ff4=l#4#BCoXeLl^FCi=$Bu1xyVg^v+_V?~JpTCO0D#KMN|XC7 zTeb|hZ{Ic=fivaA4}doT{_SsnYr&^r^fWBukHP4En22LA`Z-*6DS%EFg>xB~KmYtQ z|Jt~5;~*A`ja>MF7D2Xu|9+@cDhP!_KC!{U!2w5(95H#0!oothy1MqM%2Wo6_+v17 z0w&@Z42A*Qwrw*ITMiBm*tTsOfEEuoQ>U@#c{0al&LU@(l3%jLXn!;?=w$xolQ7g7!Y|NQ4a;qUK{5hF%)$?{?M?%i0s zb}jPq^7=*fDucmbSPRQeWia|VWo2a$i9`TevM)PYi`F_Lv%T%MZQF+9$B$d&1t*uw zF>>TcY}&Mm2{;CW!7vjh;us7DMvfc_l}d$OyLMsm;>9MnX)X3@YipUI><;xI@#ZakK`0A^#jJ&++>gw?H z(@z5cii?Z+ka`A#!C>?pY$T4sU|`(1aoD+YCtO`!5fT!D-Me@5b|Ffo68`@F0D!!_ zJSN~63@3n22LA7z_r3!RUi9 z5yxOK7z_r3(Fb87j=^9s7z_rZ55hzogTY`h7z{=qgo!u?gTY`h7>qs$6LAa%gTY`h z7<~{X;us7DgTY`h`XEfiF&GR6gTY|*L70eRFc=I5gTd&7FcHUKFc=I5gV6_JB96ge zFc=I5qYuJF9D~7NFc=I*AB2fG27|$1Fc^$J2orG(27|$1Fc^IhCgK -

吴恩达(Andrew Ng)机器学习公开课中文笔记

GitHub 项目首页

 

week1

  1. 引言(Introduction)
  2. 单变量线性回归(Linear Regression with One Variable)

week2

  1. 线性代数回顾(Linear Algebra Review)
  2. 多变量线性回归(Linear Regression with Multiple Variables)
  3. Octave/Matlab 指南(Octave/Matlab Tutorial)

week3

  1. 逻辑回归(Logistic Regression)
  2. 正则化(Regularization)

week4

  1. 神经网络:表达(Neural Networks: Representation)

week5

  1. 神经网络:学习(Neural Networks: Learning)

week6

  1. 机器学习应用的建议(Advice for Applying Machine Learning)
  2. 机器学习系统设计(Machine Learning System Design)

week7

  1. 支持向量机(Support Vector Machines)

week8

  1. 无监督学习(Unsupervised Learning)
  2. 降维(Dimensionality Reduction)

week9

  1. 异常检测(Anomaly Detection)
  2. 推荐系统(Recommender Systems)

week10

  1. 大规模机器学习(Large Scale Machine Learning)

week11

  1. 实战:图像光学识别(Application Example: Photo OCR)

 

 

Creative Commons License

This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.

 

知乎文章

By: Scruel

 

+

吴恩达(Andrew Ng)机器学习公开课中文笔记

GitHub 项目首页

 

week1

  1. 引言(Introduction)
  2. 单变量线性回归(Linear Regression with One Variable)

week2

  1. 线性代数回顾(Linear Algebra Review)
  2. 多变量线性回归(Linear Regression with Multiple Variables)
  3. Octave/Matlab 指南(Octave/Matlab Tutorial)

week3

  1. 逻辑回归(Logistic Regression)
  2. 正则化(Regularization)

week4

  1. 神经网络:表达(Neural Networks: Representation)

week5

  1. 神经网络:学习(Neural Networks: Learning)

week6

  1. 机器学习应用的建议(Advice for Applying Machine Learning)
  2. 机器学习系统设计(Machine Learning System Design)

week7

  1. 支持向量机(Support Vector Machines)

week8

  1. 无监督学习(Unsupervised Learning)
  2. 降维(Dimensionality Reduction)

week9

  1. 异常检测(Anomaly Detection)
  2. 推荐系统(Recommender Systems)

week10

  1. 大规模机器学习(Large Scale Machine Learning)

week11

  1. 实战:图像光学识别(Application Example: Photo OCR)

 

 

Creative Commons License

This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.

 

知乎文章

By: Scruel

 

+

diff --git a/week2.html b/week2.html index 503d5bc..ef95ddf 100644 --- a/week2.html +++ b/week2.html @@ -220,8 +220,8 @@ header, .context-menu, .megamenu-content, footer { font-family: "Segoe UI", Aria -

4 多变量线性回归(Linear Regression with Multiple Variables)

4.1 多特征(Multiple Features)

对于一个要度量的对象,一般来说会有不同维度的多个特征。比如之前的房屋价格预测例子中,除了房屋的面积大小,可能还有房屋的年限、房屋的层数等等其他特征:

这里由于特征不再只有一个,引入一些新的记号

: 特征的总数

: 代表样本矩阵中第 行,也就是第 个训练实例。

: 代表样本矩阵中第 行的第 列,也就是第 个训练实例的第 个特征。

参照上图,则有

多变量假设函数 表示为:

对于 ,和单特征中一样,我们将其看作基础数值。例如,房价的基础价格。

参数向量的维度为 ,在特征向量中添加 后,其维度也变为 , 则运用线性代数,可简化

: 矩阵的转置

: 某个样本的特征向量, 维特征量向量

: 为了计算方便我们会假设

注:该部分记号较多,记不住可随时回顾!

 

4.2 多变量梯度下降(Gradient Descent for Multiple Variables)

多变量代价函数类似于单变量代价函数,

,其中

前文提到梯度下降对于最小化代价函数的通用性,则多变量梯度下降公式即

解出偏导得:

可展开为:

当然,同单变量梯度下降一样,计算时需要同时更新所有参数。

,则得到同时更新参数的向量化(Vectorization)实现:

: 训练集数据, 维矩阵(包含额外特征

4.3 梯度下降实践1-特征值缩放(Gradient Descent in Practice I - Feature Scaling)

在应用梯度下降算法实践时,由于各特征值的范围不一,可能会影响代价函数收敛速度。

以房价预测问题为例,这里选取房屋面积大小和房间数量这两个特征。

下图中,左图是以原始数据绘制的代价函数轮廓图,右图为采用特征缩放(都除以最大值)后图像。左图中呈现的图像较扁,相对于使用特征缩放方法的右图,梯度下降算法需要更多次的迭代。

 

为了优化梯度下降的收敛速度,采用特征缩放的技巧,使各特征值的范围尽量一致

除了以上图人工选择并除以一个参数的方式,均值归一化(Mean normalization)方法更为便捷,可采用它来对所有特征值统一缩放:

使

对于特征的范围,并不一定需要使得 ,类似于 等也是可取的,而诸如 ,就显得过大/过小了。

另外注意,一旦采用特征缩放,我们就需对所有的输入采用特征缩放,包括训练集、测试集、预测输入等。

4.4 梯度下降实践2-学习速率(Gradient Descent in Practice II - Learning Rate)

通常,有两种方法来确定函数是否收敛

  • 多次迭代收敛法

    • 无法确定需要多少次迭代
    • 较易绘制关于迭代次数的图像
    • 根据图像易预测所需的迭代次数
  • 自动化测试收敛法(比较阈值)

    • 不易选取阈值
    • 代价函数近乎直线时无法确定收敛情况

对于梯度下降,一般采用多次迭代收敛法来得出最小化代价函数的参数值,自动化测试收敛法(如设定 时判定收敛)则几乎不会被使用。

我们可以通过绘制代价函数关于迭代次数的图像,可视化梯度下降的执行过程,借助直观的图形来发现代价函数趋向于多少时能趋于收敛,依据图像变化情况,确定诸如学习速率的取值,迭代次数的大小等问题。

对于学习速率 ,一般上图展现的为适中情况,下图中,左图可能表明 过大,代价函数无法收敛,右图可能表明 过小,代价函数收敛的太慢。当然, 足够小时,代价函数在每轮迭代后一定会减少。

通过不断改变 值,绘制并观察图像,并以此来确定合适的学习速率。 尝试时可取

4.5 特征和多项式回归(Features and Polynomial Regression)

在特征选取时,我们也可以自己归纳总结,定义一个新的特征,用来取代或拆分旧的一个或多个特征。比如,对于房屋面积特征来说,我们可以将其拆分为长度和宽度两个特征,反之,我们也可以合并长度和宽度这两个特征为面积这一个特征。

线性回归只能以直线来对数据进行拟合,有时候需要使用曲线来对数据进行拟合,即多项式回归(Polynomial Regression)

比如一个二次方模型:

或者三次方模型:

或者平方根模型:

在使用多项式回归时,要记住非常有必要进行特征缩放,比如 的范围为 1-1000,那么 的范围则为 1- 1000000,不适用特征缩放的话,范围更有不一致,也更易影响效率。

4.6 正规方程(Normal Equation)

对于一些线性回归问题来说,正规方程法给出了一个更好的解决问题的方式。

正规方程法,即令 ,通过解析函数的方式直接计算得出参数向量的值 ,Octave/Matlab 代码: theta = inv(X'*X)*X'*y

: 矩阵 的逆,在 Octave 中,inv 函数用于计算矩阵的逆,类似的还有 pinv 函数。

X': 在 Octave 中表示矩阵 X 的转置,即

下表列出了正规方程法与梯度下降算法的对比

条件梯度下降正规方程
是否需要选取 需要不需要
是否需要迭代运算需要不需要
特征量大1适用,不适用, 复杂度
适用范围2各类模型只适用线性模型,且矩阵需可逆

正规方程法的推导过程

展开上式可得

注意到 都为标量,实际上是等价的,则

接下来对 求偏导,根据矩阵的求导法则:

所以有:

, 则有

 

4.7 不可逆性正规方程(Normal Equation Noninvertibility)

(本部分内容为选讲)

正规方程无法应用于不可逆的矩阵,发生这种问题的概率很小,通常由于

  • 特征之间线性相关

    比如同时包含英寸的尺寸和米为单位的尺寸两个特征,它们是线性相关的

  • 特征数量大于训练集的数量

如果发现 的结果不可逆,可尝试:

  • 减少多余/重复特征
  • 增加训练集数量
  • 使用正则化(后文)

对于这类不可逆的矩阵,我们称之为奇异矩阵退化矩阵

这种情况下,如果还想使用正规方程法,在Octave中,可以选用 pinv 函数,pinv 区别于 invpinv 函数被称为伪逆函数,在矩阵不可逆的时候,使用这个函数仍可正确地计算出 的值。

5 Octave/Matlab Tutorial

复习时可直接倍速回顾视频,笔记整理暂留。

5.1 Basic Operations

5.2 Moving Data Around

5.3 Computing on Data

5.4 Plotting Data

5.5 Control Statements: for, while, if statement

5.6 向量化(Vectorization)

5.x 常用函数整理


-
1 一般来说,当 超过 10000 时,对于正规方程而言,特征量较大。
+

4 多变量线性回归(Linear Regression with Multiple Variables)

4.1 多特征(Multiple Features)

对于一个要度量的对象,一般来说会有不同维度的多个特征。比如之前的房屋价格预测例子中,除了房屋的面积大小,可能还有房屋的年限、房屋的层数等等其他特征:

这里由于特征不再只有一个,引入一些新的记号

: 特征的总数

: 代表样本矩阵中第 行,也就是第 个训练实例。

: 代表样本矩阵中第 行的第 列,也就是第 个训练实例的第 个特征。

参照上图,则有

多变量假设函数 表示为:

对于 ,和单特征中一样,我们将其看作基础数值。例如,房价的基础价格。

参数向量的维度为 ,在特征向量中添加 后,其维度也变为 , 则运用线性代数,可简化

: 矩阵的转置

: 某个样本的特征向量, 维特征量向量

: 为了计算方便我们会假设

注:该部分记号较多,记不住可随时回顾!

 

4.2 多变量梯度下降(Gradient Descent for Multiple Variables)

多变量代价函数类似于单变量代价函数,

,其中

前文提到梯度下降对于最小化代价函数的通用性,则多变量梯度下降公式即

解出偏导得:

可展开为:

当然,同单变量梯度下降一样,计算时需要同时更新所有参数。

,则得到同时更新参数的向量化(Vectorization)实现:

: 训练集数据, 维矩阵(包含额外特征

4.3 梯度下降实践1-特征值缩放(Gradient Descent in Practice I - Feature Scaling)

在应用梯度下降算法实践时,由于各特征值的范围不一,可能会影响代价函数收敛速度。

以房价预测问题为例,这里选取房屋面积大小和房间数量这两个特征。

下图中,左图是以原始数据绘制的代价函数轮廓图,右图为采用特征缩放(都除以最大值)后图像。左图中呈现的图像较扁,相对于使用特征缩放方法的右图,梯度下降算法需要更多次的迭代。

 

为了优化梯度下降的收敛速度,采用特征缩放的技巧,使各特征值的范围尽量一致

除了以上图人工选择并除以一个参数的方式,均值归一化(Mean normalization)方法更为便捷,可采用它来对所有特征值统一缩放:

使

对于特征的范围,并不一定需要使得 ,类似于 等也是可取的,而诸如 ,就显得过大/过小了。

另外注意,一旦采用特征缩放,我们就需对所有的输入采用特征缩放,包括训练集、测试集、预测输入等。

4.4 梯度下降实践2-学习速率(Gradient Descent in Practice II - Learning Rate)

通常,有两种方法来确定函数是否收敛

  • 多次迭代收敛法

    • 无法确定需要多少次迭代
    • 较易绘制关于迭代次数的图像
    • 根据图像易预测所需的迭代次数
  • 自动化测试收敛法(比较阈值)

    • 不易选取阈值
    • 代价函数近乎直线时无法确定收敛情况

对于梯度下降,一般采用多次迭代收敛法来得出最小化代价函数的参数值,自动化测试收敛法(如设定 时判定收敛)则几乎不会被使用。

我们可以通过绘制代价函数关于迭代次数的图像,可视化梯度下降的执行过程,借助直观的图形来发现代价函数趋向于多少时能趋于收敛,依据图像变化情况,确定诸如学习速率的取值,迭代次数的大小等问题。

对于学习速率 ,一般上图展现的为适中情况,下图中,左图可能表明 过大,代价函数无法收敛,右图可能表明 过小,代价函数收敛的太慢。当然, 足够小时,代价函数在每轮迭代后一定会减少。

通过不断改变 值,绘制并观察图像,并以此来确定合适的学习速率。 尝试时可取

4.5 特征和多项式回归(Features and Polynomial Regression)

在特征选取时,我们也可以自己归纳总结,定义一个新的特征,用来取代或拆分旧的一个或多个特征。比如,对于房屋面积特征来说,我们可以将其拆分为长度和宽度两个特征,反之,我们也可以合并长度和宽度这两个特征为面积这一个特征。

线性回归只能以直线来对数据进行拟合,有时候需要使用曲线来对数据进行拟合,即多项式回归(Polynomial Regression)

比如一个二次方模型:

或者三次方模型:

或者平方根模型:

在使用多项式回归时,要记住非常有必要进行特征缩放,比如 的范围为 1-1000,那么 的范围则为 1- 1000000,不适用特征缩放的话,范围更有不一致,也更易影响效率。

4.6 正规方程(Normal Equation)

对于一些线性回归问题来说,正规方程法给出了一个更好的解决问题的方式。

正规方程法,即令 ,通过解析函数的方式直接计算得出参数向量的值 ,Octave/Matlab 代码: theta = inv(X'*X)*X'*y

: 矩阵 的逆,在 Octave 中,inv 函数用于计算矩阵的逆,类似的还有 pinv 函数。

X': 在 Octave 中表示矩阵 X 的转置,即

下表列出了正规方程法与梯度下降算法的对比

条件梯度下降正规方程
是否需要选取 需要不需要
是否需要迭代运算需要不需要
特征量大1适用,不适用, 复杂度
适用范围2各类模型只适用线性模型,且矩阵需可逆

正规方程法的推导过程

展开上式可得

注意到 都为标量,实际上是等价的,则

接下来对 求偏导,根据矩阵的求导法则:

所以有:

, 则有

 

4.7 不可逆性正规方程(Normal Equation Noninvertibility)

(本部分内容为选讲)

正规方程无法应用于不可逆的矩阵,发生这种问题的概率很小,通常由于

  • 特征之间线性相关

    比如同时包含英寸的尺寸和米为单位的尺寸两个特征,它们是线性相关的

  • 特征数量大于训练集的数量

如果发现 的结果不可逆,可尝试:

  • 减少多余/重复特征
  • 增加训练集数量
  • 使用正则化(后文)

对于这类不可逆的矩阵,我们称之为奇异矩阵退化矩阵

这种情况下,如果还想使用正规方程法,在Octave中,可以选用 pinv 函数,pinv 区别于 invpinv 函数被称为伪逆函数,在矩阵不可逆的时候,使用这个函数仍可正确地计算出 的值。

5 Octave/Matlab Tutorial

复习时可直接倍速回顾视频,笔记整理暂留。

5.1 Basic Operations

5.2 Moving Data Around

5.3 Computing on Data

5.4 Plotting Data

5.5 Control Statements: for, while, if statement

5.6 向量化(Vectorization)

5.x 常用函数整理


+
1 一般来说,当 超过 10000 时,对于正规方程而言,特征量较大。
2 梯度下降算法的普适性好,而对于特定的线性回归模型,正规方程是很好的替代品。
\ No newline at end of file diff --git a/week2.md b/week2.md index 19df81c..7136e43 100644 --- a/week2.md +++ b/week2.md @@ -79,9 +79,9 @@ $$ 除了以上图人工选择并除以一个参数的方式,**均值归一化(Mean normalization)**方法更为便捷,可采用它来对所有特征值统一缩放: - $x_i=\frac{x_i-average(x)}{maximum(x)-minimum(x)}, 使得 $ $x_i \in (-1,1)$ + $x_i:=\frac{x_i-average(x)}{maximum(x)-minimum(x)}, 使得 $ $x_i \in (-1,1)$ -对于特征的范围,并不一定需要使得 $-1 \leqslant x \leqslant 1$,类似于 $1\leqslant x \leqslant 3$ 等也是可取的,而诸如 $-100 \leqslant x \leqslant 100 $,$-0.00001 \leqslant x \leqslant 0.00001$,就显得过大/过小了。 +对于特征的范围,并不一定需要使得 $-1 \leqslant x \leqslant 1​$,类似于 $1\leqslant x \leqslant 3​$ 等也是可取的,而诸如 $-100 \leqslant x \leqslant 100 ​$,$-0.00001 \leqslant x \leqslant 0.00001​$,就显得过大/过小了。 另外注意,一旦采用特征缩放,我们就需对所有的输入采用特征缩放,包括训练集、测试集、预测输入等。 diff --git a/week3.html b/week3.html index 6a6701a..ad2d20f 100644 --- a/week3.html +++ b/week3.html @@ -332,19 +332,18 @@ header, .context-menu, .megamenu-content, footer { font-family: "Segoe UI", Aria -

6 逻辑回归(Logistic Regression)

6.1 分类(Classification)

在分类问题中,预测的结果是离散值(结果是否属于某一类),逻辑回归算法(Logistic Regression)被用于解决这类分类问题。

  • 垃圾邮件判断
  • 金融欺诈判断
  • 肿瘤诊断

讨论肿瘤诊断问题:

肿瘤诊断问题的目的是告诉病人是否为恶性肿瘤,是一个二元分类问题(binary class problems),则定义 ,其中 0 表示负向类(negative class),代表恶性肿瘤("-"),1 为正向类(positive class),代表良性肿瘤("+")。如图,定义最右边的样本为偏差项

在未加入偏差项时,线性回归算法给出了品红色的拟合直线,若规定

,预测为 ,即正向类;

,预测为 ,即负向类。

即以 0.5 为阈值(threshold),则我们就可以根据线性回归结果,得到相对正确的分类结果

 

接下来加入偏差项,线性回归算法给出了靛青色的拟合直线,如果阈值仍然为 0.5,可以看到算法在某些情况下会给出完全错误的结果,对于癌症、肿瘤诊断这类要求预测极其精确的问题,这种情况是无法容忍的。

不仅如此,线性回归算法的值域为全体实数集(),则当线性回归函数给出诸如 等很大/很小(负数)的数值时,结果 ,这显得非常怪异。

 

区别于线性回归算法,逻辑回归算法是一个分类算法,其输出值永远在 0 到 1 之间,即

6.2 假设函数表示(Hypothesis Representation)

为了使 ,引入逻辑回归模型,定义假设函数

对比线性回归函数 表示逻辑函数(logistic function),复合起来,则称为逻辑回归函数。

逻辑函数是 S 形函数,会将所有实数映射到 范围。

sigmoid 函数(如下图)是逻辑函数的特殊情况,其公式为

sigmoid function

应用 sigmoid 函数,则逻辑回归模型:

逻辑回归模型中, 的作用是,根据输入 以及参数 ,计算得出”输出 “的可能性(estimated probability),概率学中表示为:

 

以肿瘤诊断为例, 表示病人有 的概率得了恶性肿瘤。

6.3 决策边界(Decision Boundary)

决策边界的概念,可帮助我们更好地理解逻辑回归模型的拟合原理。

在逻辑回归中,有假设函数

为了得出分类的结果,这里和前面一样,规定以 为阈值:

回忆一下 sigmoid 函数的图像:

sigmoid function

观察可得当 时,有 ,即

同线性回归模型的不同点在于:

直观一点来个例子, 是下图模型的假设函数:

根据上面的讨论,要进行分类,那么只要 时,就预测 ,即预测为正向类。

如果取 ,则有 ,当 时,易绘制图中的品红色直线即决策边界,为正向类(以红叉标注的数据)给出 的分类预测结果。

 

上面讨论了逻辑回归模型中线性拟合的例子,下面则是一个多项式拟合的例子,和线性回归中的情况也是类似的。

为了拟合下图数据,建模多项式假设函数:

这里取 ,决策边界对应了一个在原点处的单位圆(),如此便可给出分类结果,如图中品红色曲线:

 

当然,通过一些更为复杂的多项式,还能拟合那些图像显得非常怪异的数据,使得决策边界形似碗状、爱心状等等。

 

简单来说,决策边界就是分类的分界线,分类现在实际就由 (中的 )决定啦。

6.4 代价函数(Cost Function)

那我们怎么知道决策边界是啥样? 多少时能很好的拟合数据?当然,见招拆招,总要来个

如果直接套用线性回归的代价函数:

其中 ,可绘制关于 的图像,如下图

回忆线性回归中的平方损失函数,其是一个二次凸函数(碗状),二次凸函数的重要性质是只有一个局部最小点即全局最小点。上图中有许多局部最小点,这样将使得梯度下降算法无法确定收敛点是全局最优。

如果此处的损失函数也是一个凸函数,是否也有同样的性质,从而最优化?这类讨论凸函数最优值的问题,被称为凸优化问题(Convex optimization)

当然,损失函数不止平方损失函数一种。

对于逻辑回归,更换平方损失函数为对数损失函数,可由统计学中的最大似然估计方法推出代价函数

则有关于 的图像如下:

如左图,当训练集的结果为 (正样本)时,随着假设函数趋向于 ,代价函数的值会趋于 ,即意味着拟合程度很好。如果假设函数此时趋于 ,则会给出一个很高的代价,拟合程度,算法会根据其迅速纠正 值,右图 同理。

区别于平方损失函数,对数损失函数也是一个凸函数,但没有局部最优值。

6.5 简化的成本函数和梯度下降(Simplified Cost Function and Gradient Descent)

由于懒得分类讨论,对于二元分类问题,我们可把代价函数简化为一个函数: -

,左边式子整体为 ,当 ,则 ,右边式子整体为0,也就和上面的分段函数一样了,而一个式子计算起来更方便。

向量化实现:

 

为了最优化 ,仍使用梯度下降法,算法同线性回归中一致:

解出偏导得:

注意,虽然形式上梯度下降算法同线性回归一样,但其中的假设函不同,即,不过求导后的结果也相同。

向量化实现:

 

逻辑回归中代价函数求导的推导过程:

带入得

-

根据求偏导的性质,没有 的项求偏导即为 ,都消去,则得:

所以有:

- - - - - - -

则可得代价函数的导数:

6.6 进阶优化(Advanced Optimization)

运行梯度下降算法,其能最小化代价函数 并得出 的最优值,在使用梯度下降算法时,如果不需要观察代价函数的收敛情况,则直接计算 的导数项即可,而不需要计算 值。

我们编写代码给出代价函数及其偏导数然后传入梯度下降算法中,接下来算法则会为我们最小化代价函数给出参数的最优解。这类算法被称为最优化算法(Optimization Algorithms),梯度下降算法不是唯一的最小化算法1

一些最优化算法:

  • 梯度下降法(Gradient Descent)

  • 共轭梯度算法(Conjugate gradient)

  • 牛顿法和拟牛顿法(Newton's method & Quasi-Newton Methods)

    • DFP算法
    • 局部优化法(BFGS)
    • 有限内存局部优化法(L-BFGS)
  • 拉格朗日乘数法(Lagrange multiplier)

比较梯度下降算法:一些最优化算法虽然会更为复杂,难以调试,自行实现又困难重重,开源库又效率也不一,哎,做个调包侠还得碰运气。不过这些算法通常效率更高,并无需选择学习速率 (少一个参数少一份痛苦啊!)。

Octave/Matlab 中对这类高级算法做了封装,易于调用。

 

假设有 ,要求参数 的最优值。

下面为 Octave/Matlab 求解最优化问题的代码实例:

  1. 创建一个函数以返回代价函数及其偏导数:
 
  1. costFunction 函数及所需参数传入最优化函数 fminunc,以求解最优化问题:
 

'GradObj', 'on': 启用梯度目标参数(则需要将梯度传入算法)

'MaxIter', 100: 最大迭代次数为 100 次

@xxx: Octave/Matlab 中的函数指针

optTheta: 最优化得到的参数向量

functionVal: 引用函数最后一次的返回值

exitFlag: 标记代价函数是否收敛

注:Octave/Matlab 中可以使用 help fminunc 命令随时查看函数的帮助文档。

  1. 返回结果
 

6.7 多类别分类: 一对多(Multiclass Classification: One-vs-all)

一直在讨论二元分类问题,这里谈谈多类别分类问题(比如天气预报)。

原理是,转化多类别分类问题为多个二元分类问题,这种方法被称为 One-vs-all。

正式定义:

: 输出 (属于第 个分类)的可能性

: 类别总数,如上图

注意多类别分类问题中 的结果不再只是一个实数而是一个向量,如果类别总数为 ,现在 就是一个 维向量。

对于某个样本实例,需计算所有的 种分类情况得到 ,然后看分为哪个类别时预测输出的值最大,就说它输出属于哪个类别,即

7 正则化(Regularization)

7.1 过拟合问题(The Problem of Overfitting)

对于拟合的表现,可以分为三类情况:

  • 欠拟合(Underfitting)

    无法很好的拟合训练集中的数据,预测值和实际值的误差很大,这类情况被称为欠拟合。拟合模型比较简单(特征选少了)时易出现这类情况。类似于,你上课不好好听,啥都不会,下课也差不多啥都不会。

  • 优良的拟合(Just right)

    不论是训练集数据还是不在训练集中的预测数据,都能给出较为正确的结果。类似于,学霸学神!

  • 过拟合(Overfitting)

    能很好甚至完美拟合训练集中的数据,即 ,但是对于不在训练集中的新数据,预测值和实际值的误差会很大,泛化能力弱,这类情况被称为过拟合。拟合模型过于复杂(特征选多了)时易出现这类情况。类似于,你上课跟着老师做题都会都听懂了,下课遇到新题就懵了不会拓展。

线性模型中的拟合情况(左图欠拟合,右图过拟合): +

6 逻辑回归(Logistic Regression)

6.1 分类(Classification)

在分类问题中,预测的结果是离散值(结果是否属于某一类),逻辑回归算法(Logistic Regression)被用于解决这类分类问题。

  • 垃圾邮件判断
  • 金融欺诈判断
  • 肿瘤诊断

讨论肿瘤诊断问题:

肿瘤诊断问题的目的是告诉病人是否为恶性肿瘤,是一个二元分类问题(binary class problems),则定义 ,其中 0 表示负向类(negative class),代表恶性肿瘤("-"),1 为正向类(positive class),代表良性肿瘤("+")。如图,定义最右边的样本为偏差项

在未加入偏差项时,线性回归算法给出了品红色的拟合直线,若规定

,预测为 ,即正向类;

,预测为 ,即负向类。

即以 0.5 为阈值(threshold),则我们就可以根据线性回归结果,得到相对正确的分类结果

 

接下来加入偏差项,线性回归算法给出了靛青色的拟合直线,如果阈值仍然为 0.5,可以看到算法在某些情况下会给出完全错误的结果,对于癌症、肿瘤诊断这类要求预测极其精确的问题,这种情况是无法容忍的。

不仅如此,线性回归算法的值域为全体实数集(),则当线性回归函数给出诸如 等很大/很小(负数)的数值时,结果 ,这显得非常怪异。

 

区别于线性回归算法,逻辑回归算法是一个分类算法,其输出值永远在 0 到 1 之间,即

6.2 假设函数表示(Hypothesis Representation)

为了使 ,引入逻辑回归模型,定义假设函数

对比线性回归函数 表示逻辑函数(logistic function),复合起来,则称为逻辑回归函数。

逻辑函数是 S 形函数,会将所有实数映射到 范围。

sigmoid 函数(如下图)是逻辑函数的特殊情况,其公式为

sigmoid function

应用 sigmoid 函数,则逻辑回归模型:

逻辑回归模型中, 的作用是,根据输入 以及参数 ,计算得出”输出 “的可能性(estimated probability),概率学中表示为:

 

以肿瘤诊断为例, 表示病人有 的概率得了恶性肿瘤。

6.3 决策边界(Decision Boundary)

决策边界的概念,可帮助我们更好地理解逻辑回归模型的拟合原理。

在逻辑回归中,有假设函数

为了得出分类的结果,这里和前面一样,规定以 为阈值:

回忆一下 sigmoid 函数的图像:

sigmoid function

观察可得当 时,有 ,即

同线性回归模型的不同点在于:

直观一点来个例子, 是下图模型的假设函数:

根据上面的讨论,要进行分类,那么只要 时,就预测 ,即预测为正向类。

如果取 ,则有 ,当 时,易绘制图中的品红色直线即决策边界,为正向类(以红叉标注的数据)给出 的分类预测结果。

 

上面讨论了逻辑回归模型中线性拟合的例子,下面则是一个多项式拟合的例子,和线性回归中的情况也是类似的。

为了拟合下图数据,建模多项式假设函数:

这里取 ,决策边界对应了一个在原点处的单位圆(),如此便可给出分类结果,如图中品红色曲线:

 

当然,通过一些更为复杂的多项式,还能拟合那些图像显得非常怪异的数据,使得决策边界形似碗状、爱心状等等。

 

简单来说,决策边界就是分类的分界线,分类现在实际就由 (中的 )决定啦。

6.4 代价函数(Cost Function)

那我们怎么知道决策边界是啥样? 多少时能很好的拟合数据?当然,见招拆招,总要来个

如果直接套用线性回归的代价函数:

其中 ,可绘制关于 的图像,如下图

回忆线性回归中的平方损失函数,其是一个二次凸函数(碗状),二次凸函数的重要性质是只有一个局部最小点即全局最小点。上图中有许多局部最小点,这样将使得梯度下降算法无法确定收敛点是全局最优。

如果此处的损失函数也是一个凸函数,是否也有同样的性质,从而最优化?这类讨论凸函数最优值的问题,被称为凸优化问题(Convex optimization)

当然,损失函数不止平方损失函数一种。

对于逻辑回归,更换平方损失函数为对数损失函数,可由统计学中的最大似然估计方法推出代价函数

则有关于 的图像如下:

如左图,当训练集的结果为 (正样本)时,随着假设函数趋向于 ,代价函数的值会趋于 ,即意味着拟合程度很好。如果假设函数此时趋于 ,则会给出一个很高的代价,拟合程度,算法会根据其迅速纠正 值,右图 同理。

区别于平方损失函数,对数损失函数也是一个凸函数,但没有局部最优值。

6.5 简化的成本函数和梯度下降(Simplified Cost Function and Gradient Descent)

由于懒得分类讨论,对于二元分类问题,我们可把代价函数简化为一个函数: +

,左边式子整体为 ,当 ,则 ,右边式子整体为0,也就和上面的分段函数一样了,而一个式子计算起来更方便。

向量化实现:

 

为了最优化 ,仍使用梯度下降法,算法同线性回归中一致:

解出偏导得:

注意,虽然形式上梯度下降算法同线性回归一样,但其中的假设函不同,即,不过求导后的结果也相同。

向量化实现:

 

逻辑回归中代价函数求导的推导过程:

忆及 ,将 带入得

+

根据求偏导的性质,没有 的项求偏导即为 ,都消去,则得:

所以有:

+ + + + + +

则可得代价函数的导数:

6.6 进阶优化(Advanced Optimization)

运行梯度下降算法,其能最小化代价函数 并得出 的最优值,在使用梯度下降算法时,如果不需要观察代价函数的收敛情况,则直接计算 的导数项即可,而不需要计算 值。

我们编写代码给出代价函数及其偏导数然后传入梯度下降算法中,接下来算法则会为我们最小化代价函数给出参数的最优解。这类算法被称为最优化算法(Optimization Algorithms),梯度下降算法不是唯一的最小化算法1

一些最优化算法:

  • 梯度下降法(Gradient Descent)

  • 共轭梯度算法(Conjugate gradient)

  • 牛顿法和拟牛顿法(Newton's method & Quasi-Newton Methods)

    • DFP算法
    • 局部优化法(BFGS)
    • 有限内存局部优化法(L-BFGS)
  • 拉格朗日乘数法(Lagrange multiplier)

比较梯度下降算法:一些最优化算法虽然会更为复杂,难以调试,自行实现又困难重重,开源库又效率也不一,哎,做个调包侠还得碰运气。不过这些算法通常效率更高,并无需选择学习速率 (少一个参数少一份痛苦啊!)。

Octave/Matlab 中对这类高级算法做了封装,易于调用。

 

假设有 ,要求参数 的最优值。

下面为 Octave/Matlab 求解最优化问题的代码实例:

  1. 创建一个函数以返回代价函数及其偏导数:
 
  1. costFunction 函数及所需参数传入最优化函数 fminunc,以求解最优化问题:
 

'GradObj', 'on': 启用梯度目标参数(则需要将梯度传入算法)

'MaxIter', 100: 最大迭代次数为 100 次

@xxx: Octave/Matlab 中的函数指针

optTheta: 最优化得到的参数向量

functionVal: 引用函数最后一次的返回值

exitFlag: 标记代价函数是否收敛

注:Octave/Matlab 中可以使用 help fminunc 命令随时查看函数的帮助文档。

  1. 返回结果
 

6.7 多类别分类: 一对多(Multiclass Classification: One-vs-all)

一直在讨论二元分类问题,这里谈谈多类别分类问题(比如天气预报)。

原理是,转化多类别分类问题为多个二元分类问题,这种方法被称为 One-vs-all。

正式定义:

: 输出 (属于第 个分类)的可能性

: 类别总数,如上图

注意多类别分类问题中 的结果不再只是一个实数而是一个向量,如果类别总数为 ,现在 就是一个 维向量。

对于某个样本实例,需计算所有的 种分类情况得到 ,然后看分为哪个类别时预测输出的值最大,就说它输出属于哪个类别,即

7 正则化(Regularization)

7.1 过拟合问题(The Problem of Overfitting)

对于拟合的表现,可以分为三类情况:

  • 欠拟合(Underfitting)

    无法很好的拟合训练集中的数据,预测值和实际值的误差很大,这类情况被称为欠拟合。拟合模型比较简单(特征选少了)时易出现这类情况。类似于,你上课不好好听,啥都不会,下课也差不多啥都不会。

  • 优良的拟合(Just right)

    不论是训练集数据还是不在训练集中的预测数据,都能给出较为正确的结果。类似于,学霸学神!

  • 过拟合(Overfitting)

    能很好甚至完美拟合训练集中的数据,即 ,但是对于不在训练集中的新数据,预测值和实际值的误差会很大,泛化能力弱,这类情况被称为过拟合。拟合模型过于复杂(特征选多了)时易出现这类情况。类似于,你上课跟着老师做题都会都听懂了,下课遇到新题就懵了不会拓展。

线性模型中的拟合情况(左图欠拟合,右图过拟合):

逻辑分类模型中的拟合情况:

 

为了度量拟合表现,引入:

  • 偏差(bias)

    指模型的预测值与真实值的偏离程度。偏差越大,预测值偏离真实值越厉害。偏差低意味着能较好地反应训练集中的数据情况。

  • 方差(Variance)

    指模型预测值的离散程度或者变化范围。方差越大,数据的分布越分散,函数波动越大,泛化能力越差。方差低意味着拟合曲线的稳定性高,波动小。

据此,我们有对同一数据的各类拟合情况如下图: -

据上图,高偏差意味着欠拟合,高方差意味着过拟合。

我们应尽量使得拟合模型处于低方差(较好地拟合数据)状态且同时处于低偏差(较好地预测新值)的状态。

避免过拟合的方法有:

  • 减少特征的数量

    • 手动选取需保留的特征
    • 使用模型选择算法来选取合适的特征(如 PCA 算法)
    • 减少特征的方式易丢失有用的特征信息
  • 正则化(Regularization)

    • 可保留所有参数(许多有用的特征都能轻微影响结果)
    • 减少/惩罚各参数大小(magnitude),以减轻各参数对模型的影响程度
    • 当有很多参数对于模型只有轻微影响时,正则化方法的表现很好

7.2 代价函数(Cost Function)

很多时候由于特征数量过多,过拟合时我们很难选出要保留的特征,这时候应用正则化方法则是很好的选择。

上文中, 这样一个复杂的多项式较易过拟合,在不减少特征的情况下,如果能消除类似于 等复杂部分,那复杂函数就变得简单了

为了保留各个参数的信息,不修改假设函数,改而修改代价函数:

上式中,我们在代价函数中增加了 的惩罚项(penalty term) ,如果要最小化代价函数,那么势必需要极大地减小 ,从而使得假设函数中的 这两项的参数非常小,就相当于没有了,假设函数也就“变得”简单了,从而在保留各参数的情况下避免了过拟合问题。

 

根据上面的讨论,有时也无法决定要减少哪个参数,故统一惩罚除了 外的所有参数。

代价函数:

: 正则化参数(Regularization Parameter),

: 不惩罚基础参数

: 正则化项

正则化参数类似于学习速率,也需要我们自行对其选择一个合适的值。

  • 过大

    • 导致模型欠拟合(假设可能会变成近乎 的直线 )
    • 无法正常去过拟问题
    • 梯度下降可能无法收敛
  • 过小

    • 无法避免过拟合(等于没有)

正则化符合奥卡姆剃刀(Occam's razor)原理。在所有可能选择的模型中,能够很好地解释已知数据并且十分简单才是最好的模型,也就是应该选择的模型。从贝叶斯估计的角度来看,正则化项对应于模型的先验概率。可以假设复杂的模型有较大的先验概率,简单的模型有较小的先验概率。

正则化是结构风险最小化策略的实现,是去过拟合问题的典型方法,虽然看起来多了个一参数多了一重麻烦,后文会介绍自动选取正则化参数的方法。模型越复杂,正则化参数值就越大。比如,正则化项可以是模型参数向量的范数。

7.3 线性回归正则化(Regularized Linear Regression)

应用正则化的线性回归梯度下降算法:

也可以移项得到更新表达式的另一种表示形式

: 正则化项

 

应用正则化的正规方程法2

: 正则化项

: 第一行第一列为 维单位矩阵

Matlab/Octave 代码:

 

 

前文提到正则化可以解决正规方程法中不可逆的问题,即增加了 正则化项后,可以保证 可逆(invertible),即便 不可逆(non-invertible)。

7.4 逻辑回归正则化(Regularized Logistic Regression)

为逻辑回归的代价函数添加正则化项:

前文已经证明过逻辑回归和线性回归的代价函数的求导结果是一样的,此处通过给正则化项添加常数 ,则其求导结果也就一样了。

从而有应用正则化的逻辑回归梯度下降算法:

 


+

据上图,高偏差意味着欠拟合,高方差意味着过拟合。

我们应尽量使得拟合模型处于低方差(较好地拟合数据)状态且同时处于低偏差(较好地预测新值)的状态。

避免过拟合的方法有:

  • 减少特征的数量

    • 手动选取需保留的特征
    • 使用模型选择算法来选取合适的特征(如 PCA 算法)
    • 减少特征的方式易丢失有用的特征信息
  • 正则化(Regularization)

    • 可保留所有参数(许多有用的特征都能轻微影响结果)
    • 减少/惩罚各参数大小(magnitude),以减轻各参数对模型的影响程度
    • 当有很多参数对于模型只有轻微影响时,正则化方法的表现很好

7.2 代价函数(Cost Function)

很多时候由于特征数量过多,过拟合时我们很难选出要保留的特征,这时候应用正则化方法则是很好的选择。

上文中, 这样一个复杂的多项式较易过拟合,在不减少特征的情况下,如果能消除类似于 等复杂部分,那复杂函数就变得简单了

为了保留各个参数的信息,不修改假设函数,改而修改代价函数:

上式中,我们在代价函数中增加了 的惩罚项(penalty term) ,如果要最小化代价函数,那么势必需要极大地减小 ,从而使得假设函数中的 这两项的参数非常小,就相当于没有了,假设函数也就“变得”简单了,从而在保留各参数的情况下避免了过拟合问题。

 

根据上面的讨论,有时也无法决定要减少哪个参数,故统一惩罚除了 外的所有参数。

代价函数:

: 正则化参数(Regularization Parameter),

: 不惩罚基础参数

: 正则化项

正则化参数类似于学习速率,也需要我们自行对其选择一个合适的值。

  • 过大

    • 导致模型欠拟合(假设可能会变成近乎 的直线 )
    • 无法正常去过拟问题
    • 梯度下降可能无法收敛
  • 过小

    • 无法避免过拟合(等于没有)

正则化符合奥卡姆剃刀(Occam's razor)原理。在所有可能选择的模型中,能够很好地解释已知数据并且十分简单才是最好的模型,也就是应该选择的模型。从贝叶斯估计的角度来看,正则化项对应于模型的先验概率。可以假设复杂的模型有较大的先验概率,简单的模型有较小的先验概率。

正则化是结构风险最小化策略的实现,是去过拟合问题的典型方法,虽然看起来多了个一参数多了一重麻烦,后文会介绍自动选取正则化参数的方法。模型越复杂,正则化参数值就越大。比如,正则化项可以是模型参数向量的范数。

7.3 线性回归正则化(Regularized Linear Regression)

应用正则化的线性回归梯度下降算法:

也可以移项得到更新表达式的另一种表示形式

: 正则化项

 

应用正则化的正规方程法2

: 正则化项

: 第一行第一列为 维单位矩阵

Matlab/Octave 代码:

 

 

前文提到正则化可以解决正规方程法中不可逆的问题,即增加了 正则化项后,可以保证 可逆(invertible),即便 不可逆(non-invertible)。

7.4 逻辑回归正则化(Regularized Logistic Regression)

为逻辑回归的代价函数添加正则化项:

前文已经证明过逻辑回归和线性回归的代价函数的求导结果是一样的,此处通过给正则化项添加常数 ,则其求导结果也就一样了。

从而有应用正则化的逻辑回归梯度下降算法:

 

diff --git a/week3.md b/week3.md index 27b368f..cef75bf 100644 --- a/week3.md +++ b/week3.md @@ -173,29 +173,28 @@ $J(\theta) = - \frac{1}{m} \displaystyle \sum_{i=1}^m [y^{(i)}\log (h_\theta (x^ 令 $f(\theta) = {{y}^{(i)}}\log \left( {h_\theta}\left( {{x}^{(i)}} \right) \right)+\left( 1-{{y}^{(i)}} \right)\log \left( 1-{h_\theta}\left( {{x}^{(i)}} \right) \right)$ -将 $h_\theta(x^{(i)}) = g\left(\theta^{T}x^{(i)} \right)=\frac{1}{1+{{e}^{-{\theta^T}{{x}^{(i)}}}}} $ 带入得 +忆及 $z=\Theta^Tx^{(i)}$,将 $h_\theta(x^{(i)}) = g(z) =\frac{1}{1+{{e}^{-{\theta^T}{{x}^{(i)}}}}} $ 带入得 $f(\theta)={{y}^{(i)}}\log \left( \frac{1}{1+{{e}^{-{\theta^T}{{x}^{(i)}}}}} \right)+\left( 1-{{y}^{(i)}} \right)\log \left( 1-\frac{1}{1+{{e}^{-{\theta^T}{{x}^{(i)}}}}} \right)$ -$=-{{y}^{(i)}}\log \left( 1+{{e}^{-{\theta^T}{{x}^{(i)}}}} \right)-\left( 1-{{y}^{(i)}} \right)\log \left( 1+{{e}^{{\theta^T}{{x}^{(i)}}}} \right)$ +$=-{{y}^{(i)}}\log \left( 1+{{e}^{-z}} \right)-\left( 1-{{y}^{(i)}} \right)\log \left( 1+{{e}^{z}} \right)$ 根据求偏导的性质,没有 $\theta_j$ 的项求偏导即为 $0$,都消去,则得: -$\frac{\partial }{\partial {\theta_{j}}}\left( \theta^Tx^{(i)} \right)=x^{(i)}_j$ +$\frac{\partial z}{\partial {\theta_{j}}}=\frac{\partial }{\partial {\theta_{j}}}\left( \theta^Tx^{(i)} \right)=x^{(i)}_j$ 所以有: -$\frac{\partial }{\partial {\theta_{j}}}f\left( \theta \right)=\frac{\partial }{\partial {\theta_{j}}}[-{{y}^{(i)}}\log \left( 1+{{e}^{-{\theta^{T}}{{x}^{(i)}}}} \right)-\left( 1-{{y}^{(i)}} \right)\log \left( 1+{{e}^{{\theta^{T}}{{x}^{(i)}}}} \right)]$ +$\frac{\partial }{\partial {\theta_{j}}}f\left( \theta \right)=\frac{\partial }{\partial {\theta_{j}}}[-{{y}^{(i)}}\log \left( 1+{{e}^{-z}} \right)-\left( 1-{{y}^{(i)}} \right)\log \left( 1+{{e}^{z}} \right)]$ -$=-{{y}^{(i)}}\frac{\frac{\partial }{\partial {\theta_{j}}}\left( \theta^Tx^{(i)} \right)\cdot{{e}^{-{\theta^{T}}{{x}^{(i)}}}}}{1+{{e}^{-{\theta^{T}}{{x}^{(i)}}}}}-\left( 1-{{y}^{(i)}} \right)\frac{\frac{\partial }{\partial {\theta_{j}}}\left( \theta^Tx^{(i)} \right)\cdot{{e}^{{\theta^T}{{x}^{(i)}}}}}{1+{{e}^{{\theta^T}{{x}^{(i)}}}}}$ +$=-{{y}^{(i)}}\frac{\frac{\partial }{\partial {\theta_{j}}}\left(-z \right) e^{-z}}{1+e^{-z}}-\left( 1-{{y}^{(i)}} \right)\frac{\frac{\partial }{\partial {\theta_{j}}}\left(z \right){e^{z}}}{1+e^{z}}$ -$=-{{y}^{(i)}}\frac{-x_{j}^{(i)}{{e}^{-{\theta^{T}}{{x}^{(i)}}}}}{1+{{e}^{-{\theta^{T}}{{x}^{(i)}}}}}-\left( 1-{{y}^{(i)}} \right)\frac{x_j^{(i)}{{e}^{{\theta^T}{{x}^{(i)}}}}}{1+{{e}^{{\theta^T}{{x}^{(i)}}}}}$ -$={{y}^{(i)}}\frac{x_j^{(i)}}{1+{{e}^{{\theta^T}{{x}^{(i)}}}}}-\left( 1-{{y}^{(i)}} \right)\frac{x_j^{(i)}{{e}^{{\theta^T}{{x}^{(i)}}}}}{1+{{e}^{{\theta^T}{{x}^{(i)}}}}}$ -$={\frac{{{y}^{(i)}}x_j^{(i)}-x_j^{(i)}{{e}^{{\theta^T}{{x}^{(i)}}}}+{{y}^{(i)}}x_j^{(i)}{{e}^{{\theta^T}{{x}^{(i)}}}}}{1+{{e}^{{\theta^T}{{x}^{(i)}}}}}}$ -$={\frac{{{y}^{(i)}}\left( 1\text{+}{{e}^{{\theta^T}{{x}^{(i)}}}} \right)-{{e}^{{\theta^T}{{x}^{(i)}}}}}{1+{{e}^{{\theta^T}{{x}^{(i)}}}}}x_j^{(i)}}$ -$={({{y}^{(i)}}-\frac{{{e}^{{\theta^T}{{x}^{(i)}}}}}{1+{{e}^{{\theta^T}{{x}^{(i)}}}}})x_j^{(i)}}$ -$={({{y}^{(i)}}-\frac{1}{1+{{e}^{-{\theta^T}{{x}^{(i)}}}}})x_j^{(i)}}$ +$=-{{y}^{(i)}}\frac{-x^{(i)}_je^{-z}}{1+e^{-z}}-\left( 1-{{y}^{(i)}} \right)\frac{x^{(i)}_j}{1+e^{-z}}$ +$=\left({{y}^{(i)}}\frac{e^{-z}}{1+e^{-z}}-\left( 1-{{y}^{(i)}} \right)\frac{1}{1+e^{-z}}\right)x^{(i)}_j$ +$=\left({{y}^{(i)}}\frac{e^{-z}}{1+e^{-z}}-\left( 1-{{y}^{(i)}} \right)\frac{1}{1+e^{-z}}\right)x^{(i)}_j$ +$=\left(\frac{{{y}^{(i)}}(e^{-z}+1)-1}{1+e^{-z}}\right)x^{(i)}_j$ +$={({{y}^{(i)}}-\frac{1}{1+{{e}^{-z}}})x_j^{(i)}}$ $={\left({{y}^{(i)}}-{h_\theta}\left( {{x}^{(i)}} \right)\right)x_j^{(i)}}$ -$={\left({h_\theta}\left( {{x}^{(i)}} \right)-{{y}^{(i)}}\right)x_j^{(i)}}$ +$=-{\left({h_\theta}\left( {{x}^{(i)}} \right)-{{y}^{(i)}}\right)x_j^{(i)}}$ 则可得代价函数的导数: diff --git a/week4.html b/week4.html index 2d3a99e..1146d10 100644 --- a/week4.html +++ b/week4.html @@ -220,6 +220,6 @@ header, .context-menu, .megamenu-content, footer { font-family: "Segoe UI", Aria -

8 神经网络:表达(Neural Networks: Representation)

8.1 非线性假设(Non-linear Hypotheses)

理论上我们可以用多项式函数去近似任意函数(泰勒极数(Taylor series)),从而可得到任意问题的拟合曲线。

在实际处理时,特征量通常会很多,如果再构造高阶多项式等,特征数量将会急剧增加,这使得回归模型的复杂度太高,可见并不合适。神经网络无需构造高阶多项式,在特征量很大时也可以处理的很好。

那特征能有多大呢?下面是一个计算机视觉中的例子:

如上图,如果选取一小块 像素的灰度图片(一个像素只有亮度一个值),选择每个像素点作为特征,则特征总量 (换成 RGB(一个像素有三个值),则 ),如果将其两两组合作为新特征,则特征数量将为

8.2 神经网络和大脑(Neurons and the Brain)

脑科学家通过对动物实验,发现大脑中专用于处理听觉信号的脑皮层也能处理其他诸如视觉等信号,即如果切断其与耳朵的联系,将其与眼睛相连,则这块负责听觉的脑皮层区域也能接受并处理视觉信号,从而学会“看”。脑科学家通过这类换源实验,就推论假设大脑的学习算法只有一种(“one learning algorithm” hypothesis)。那么如果能找出这种学习算法并应用于计算机中,那梦想中和人一样的人工智能就成真了。

神经网络就源于模拟人类大脑,但其需要的计算量很大。随着计算机硬件性能的提高,神经网络逐渐从衰落变为流行,如今已广泛地被应用在各行各业中。

下图是根据研究做的一些应用(有兴趣可回顾视频):

BrainPort 系统:帮助失明人士通过摄像头以及舌尖感官“看”东西

触觉皮带:在朝北时蜂鸣器会发出声响,可使人拥有方向感(声音信号转换为方向信号)。

8.3 模型表示1(Model Representation I)

既然神经网络模仿的是大脑神经元,那就先看一下大脑的神经元长什么样吧:

来源: http://blog.csdn.net/zzwu/article/details/574931

想象一下印刷厂中流水线的工人(机器人也算哦),每个工人都有特定的任务,比如装订,塑封,贴防伪标识等等,工人们看到书本并处理完自己的任务后,就回放回传送带,紧接着传送带就传给下一个环节的工人,如此不断重复从而完成一个又一个环节,直到一本书印制完成。

那么类比一下,把上图中的细胞核(nucleus)类比成工人,轴突(axon)类比传送带,树突(dendrite)则比类比成工人的双眼。一个又一个细胞体,从树突接收需要处理的信息,对其进行处理后,再经由轴突通过电信号把处理完的信息传递出去,直到理解信息的内容。当然啦,我们大脑的实际上还要更为复杂,而且一个人的神经元数目就比地球上所有流水线的工人之和还要多呢~

人工神经网络中,树突对应输入(input),细胞核对应激活单元(activation unit),轴突对应输出(output)

我们一般把神经网络划分为三部分(注意,不是只有三层!),即输入层(input layer),隐藏层(hidden layer)和输出层(output layer)。

图中的一个圈表示神经网络中的一个激活单元,输入层对应输入单元,隐藏层对应中间单元,输出层则对应输出单元。中间激活单元应用激活函数(activation_function)处理数据。

下面列出一些已有概念在神经网络中的别称:

  • : 偏置单元(bias unit),=1
  • : 权重(weight),即参数。
  • 激活函数: ,即逻辑函数等。
  • 输入层: 对应于训练集中的特征
  • 输出层: 对应于训练集中的结果

: 第 层的第 个激活单元

: 从第 层映射到第 层时的权重矩阵。

: 从第 层的第 个单元映射到第 层的第 个单元的权重

: 第 层的激活单元数目(不包含偏置单元)

注意:

  • 符号较多,记不住可随时回顾!
  • 每个单元会作用于下一层的所有单元(矩阵乘法运算)。
  • 如果第 层有 个单元,第 层有 个单元, 是一个 维的权重矩阵。即每一层的权重矩阵大小都是非固定的。
  • 其中, 来自于偏置单元,这样意味着输出层不包含偏置单元,输入层和隐藏层需要增加偏置单元。

 

依据本节所给模型,有:

8.4 模型表示2(Model Representation II)

对第 层的所有激活单元应用激活函数,从而得到第 层激活单元的值:

对第 层的所有激活单元应用激活函数,从而得到输出:

上面的计算过程被称为前向传播(Forward propagation),即从输入层开始,一层一层地向下计算并传递结果。

 

再回顾一下逻辑回归:

是不是除了符号表示,其他都完全一样?其实神经网络就好似回归模型,只不过输入变成了中间单元 。从输入 开始,下一层的每个激活单元都包含了上一层的所有信息(单元值),通过最优化算法不断迭代计算,激活单元能得出关于输入 的更多信息,这就好像是在给假设函数加多项式。中间层的这些单元好似升级版的初始特征,从而能给出更好的预测。

 

向量化实现

定义

则有

预测结果即

 

即有

,通过该式即可计算神经网络中每一层的值。

扩展到所有样本实例:

,这时 是一个 维矩阵。

: 训练集中的样本实例数量

: 第二层神经网络中激活单元的数量

 

当然,神经网络不仅限于三层,每层的激活单元数量也并不固定:

8.5 例子和直观理解1(Examples and Intuitions I)

为了更好的理解神经网络,举例单层神经网络进行逻辑运算的例子。

下面的例子中, 为二进制数。

逻辑与(AND)运算(都为真值则结果才为真)神经网络:

回顾 sigmoid 函数图像,根据输入则有上图中右边的表格,即 。这样就实现了一个能够进行与运算的神经网络。

sigmoid function

 

再举一例,逻辑或(OR)运算(有一个真值则结果就为真)神经网络:

 

8.6 例子和直观理解2(Examples and Intuitions II)

下面逐步构建复杂一点的神经网络

如上图,我们分别构建了三个单层神经网络,将这三个网络组合起来,可得到一个新的神经网络,其可完成逻辑运算中的异或(XNOR)操作:

这里的组合即为

可见,特征值能不断升级,并抽取出更多信息,直到计算出结果。而如此不断组合,我们就可以逐渐构造出越来越复杂、强大的神经网络,比如用于手写识别的神经网络。

任何布尔函数都可由两层神经网络准确表达,但所需的中间单元的数量随输入呈指数级增长;

任何连续函数都可由两层神经网络以任意精度逼近;

任何函数都可由三层神经网络以任意程度逼近。

8.7 多类别分类(Multiclass Classification)

之前讨论的都是预测结果为单值情况下的神经网络,要实现多类别分类,其实只要修改一下输出层,让输出层包含多个输出单元即可。

举一个 4 分类问题的实例:

有四种分类情况,那么就让输出层包含 4 个输出单元即可,则 为 4 维向量。

神经网络中的多分类算法算是对 one-vs-all 思想的扩展,定义预测结果一共有 4 种情况:

如果预测结果

那么表示 ,即分为第 3 类,对应于图中的摩托车(Motorcycle)。

总结一下,要分为 类,就在输出层放置 个输出单元,对于单个样本实例, 则是一个 维结果向量,最后依据结果向量,得出属于哪个类

 

+

8 神经网络:表达(Neural Networks: Representation)

8.1 非线性假设(Non-linear Hypotheses)

理论上我们可以用多项式函数去近似任意函数(泰勒极数(Taylor series)),从而可得到任意问题的拟合曲线。

在实际处理时,特征量通常会很多,如果再构造高阶多项式等,特征数量将会急剧增加,这使得回归模型的复杂度太高,可见并不合适。神经网络无需构造高阶多项式,在特征量很大时也可以处理的很好。

那特征能有多大呢?下面是一个计算机视觉中的例子:

如上图,如果选取一小块 像素的灰度图片(一个像素只有亮度一个值),选择每个像素点作为特征,则特征总量 (换成 RGB(一个像素有三个值),则 ),如果将其两两组合作为新特征,则特征数量将为

8.2 神经网络和大脑(Neurons and the Brain)

脑科学家通过对动物实验,发现大脑中专用于处理听觉信号的脑皮层也能处理其他诸如视觉等信号,即如果切断其与耳朵的联系,将其与眼睛相连,则这块负责听觉的脑皮层区域也能接受并处理视觉信号,从而学会“看”。脑科学家通过这类换源实验,就推论假设大脑的学习算法只有一种(“one learning algorithm” hypothesis)。那么如果能找出这种学习算法并应用于计算机中,那梦想中和人一样的人工智能就成真了。

神经网络就源于模拟人类大脑,但其需要的计算量很大。随着计算机硬件性能的提高,神经网络逐渐从衰落变为流行,如今已广泛地被应用在各行各业中。

下图是根据研究做的一些应用(有兴趣可回顾视频):

BrainPort 系统:帮助失明人士通过摄像头以及舌尖感官“看”东西

触觉皮带:在朝北时蜂鸣器会发出声响,可使人拥有方向感(声音信号转换为方向信号)。

8.3 模型表示1(Model Representation I)

既然神经网络模仿的是大脑神经元,那就先看一下大脑的神经元长什么样吧:

来源: http://blog.csdn.net/zzwu/article/details/574931

想象一下印刷厂中流水线的工人(机器人也算哦),每个工人都有特定的任务,比如装订,塑封,贴防伪标识等等,工人们看到书本并处理完自己的任务后,就回放回传送带,紧接着传送带就传给下一个环节的工人,如此不断重复从而完成一个又一个环节,直到一本书印制完成。

那么类比一下,把上图中的细胞核(nucleus)类比成工人,轴突(axon)类比传送带,树突(dendrite)则比类比成工人的双眼。一个又一个细胞体,从树突接收需要处理的信息,对其进行处理后,再经由轴突通过电信号把处理完的信息传递出去,直到理解信息的内容。当然啦,我们大脑的实际上还要更为复杂,而且一个人的神经元数目就比地球上所有流水线的工人之和还要多呢~

人工神经网络中,树突对应输入(input),细胞核对应激活单元(activation unit),轴突对应输出(output)

我们一般把神经网络划分为三部分(注意,不是只有三层!),即输入层(input layer),隐藏层(hidden layer)和输出层(output layer)。

图中的一个圈表示神经网络中的一个激活单元,输入层对应输入单元,隐藏层对应中间单元,输出层则对应输出单元。中间激活单元应用激活函数(activation_function)处理数据。

下面列出一些已有概念在神经网络中的别称:

  • : 偏置单元(bias unit),=1
  • : 权重(weight),即参数。
  • 激活函数: ,即逻辑函数等。
  • 输入层: 对应于训练集中的特征
  • 输出层: 对应于训练集中的结果

: 第 层的第 个激活单元

: 从第 层映射到第 层时的权重矩阵。

: 从第 层的第 个单元映射到第 层的第 个单元的权重

: 第 层的激活单元数目(不包含偏置单元)

注意:

  • 符号较多,记不住可随时回顾!
  • 每个单元会作用于下一层的所有单元(矩阵乘法运算)。
  • 如果第 层有 个单元,第 层有 个单元, 是一个 维的权重矩阵。即每一层的权重矩阵大小都是非固定的。
  • 其中, 来自于偏置单元,这样意味着输出层不包含偏置单元,输入层和隐藏层需要增加偏置单元。

 

依据本节所给模型,有:

8.4 模型表示2(Model Representation II)

对第 层的所有激活单元应用激活函数,从而得到第 层激活单元的值:

对第 层的所有激活单元应用激活函数,从而得到输出:

上面的计算过程被称为前向传播(Forward propagation),即从输入层开始,一层一层地向下计算并传递结果。

 

再回顾一下逻辑回归:

是不是除了符号表示,其他都完全一样?其实神经网络就好似回归模型,只不过输入变成了中间单元 。从输入 开始,下一层的每个激活单元都包含了上一层的所有信息(单元值),通过最优化算法不断迭代计算,激活单元能得出关于输入 的更多信息,这就好像是在给假设函数加多项式。隐藏层的这些单元好似升级版的初始特征,从而能给出更好的预测。

 

向量化实现

定义

则有

预测结果即

 

即有

,通过该式即可计算神经网络中每一层的值。

扩展到所有样本实例:

,这时 是一个 维矩阵。

: 训练集中的样本实例数量

: 第二层神经网络中激活单元的数量

 

当然,神经网络不仅限于三层,每层的激活单元数量也并不固定:

8.5 例子和直观理解1(Examples and Intuitions I)

为了更好的理解神经网络,举例单层神经网络进行逻辑运算的例子。

下面的例子中, 为二进制数。

逻辑与(AND)运算(都为真值则结果才为真)神经网络:

回顾 sigmoid 函数图像,根据输入则有上图中右边的表格,即 。这样就实现了一个能够进行与运算的神经网络。

sigmoid function

 

再举一例,逻辑或(OR)运算(有一个真值则结果就为真)神经网络:

 

8.6 例子和直观理解2(Examples and Intuitions II)

下面逐步构建复杂一点的神经网络

如上图,我们分别构建了三个单层神经网络,将这三个网络组合起来,可得到一个新的神经网络,其可完成逻辑运算中的异或(XNOR)操作:

这里的组合即为

可见,特征值能不断升级,并抽取出更多信息,直到计算出结果。而如此不断组合,我们就可以逐渐构造出越来越复杂、强大的神经网络,比如用于手写识别的神经网络。

任何布尔函数都可由两层神经网络准确表达,但所需的中间单元的数量随输入呈指数级增长;

任何连续函数都可由两层神经网络以任意精度逼近;

任何函数都可由三层神经网络以任意程度逼近。

8.7 多类别分类(Multiclass Classification)

之前讨论的都是预测结果为单值情况下的神经网络,要实现多类别分类,其实只要修改一下输出层,让输出层包含多个输出单元即可。

举一个 4 分类问题的实例:

有四种分类情况,那么就让输出层包含 4 个输出单元即可,则 为 4 维向量。

神经网络中的多分类算法算是对 one-vs-all 思想的扩展,定义预测结果一共有 4 种情况:

如果预测结果

那么表示 ,即分为第 3 类,对应于图中的摩托车(Motorcycle)。

总结一下,要分为 类,就在输出层放置 个输出单元,对于单个样本实例, 则是一个 维结果向量,最后依据结果向量,得出属于哪个类

 

\ No newline at end of file diff --git a/week4.md b/week4.md index 96753b8..cdfbd4f 100644 --- a/week4.md +++ b/week4.md @@ -100,7 +100,7 @@ $h_\Theta(x) = a_1^{(3)} = g(\Theta_{10}^{(2)}a_0^{(2)} + \Theta_{11}^{(2)}a_1^{ ${h_\theta}\left( x \right)=g\left( {\theta_0}+{\theta_1}{x_1}+{\theta_{2}}{x_{2}}+{\theta_{3}}x_3 \right)$ -是不是除了符号表示,其他都完全一样?其实神经网络就好似回归模型,只不过输入变成了中间单元 $a_1^{(j)}, a_2^{(j)}, \dots, a_n^{(j)}$。从输入 $x$ 开始,下一层的每个激活单元都包含了上一层的所有信息(单元值),通过最优化算法不断迭代计算,激活单元能得出关于输入 $x$ 的更多信息,这就好像是在给假设函数加多项式。中间层的这些单元好似升级版的初始特征,从而能给出更好的预测。 +是不是除了符号表示,其他都完全一样?其实神经网络就好似回归模型,只不过输入变成了中间单元 $a_1^{(j)}, a_2^{(j)}, \dots, a_n^{(j)}$。从输入 $x$ 开始,下一层的每个激活单元都包含了上一层的所有信息(单元值),通过最优化算法不断迭代计算,激活单元能得出关于输入 $x$ 的更多信息,这就好像是在给假设函数加多项式。隐藏层的这些单元好似升级版的初始特征,从而能给出更好的预测。