From 5a3816f89d5fefefc9874059da56b286577af97a Mon Sep 17 00:00:00 2001 From: Anamaria Todor Date: Thu, 3 Nov 2022 15:07:17 +0000 Subject: [PATCH] Added HPO to Lab 2. --- 02_training/statics/Experiments.png | Bin 46056 -> 0 bytes 02_training/statics/HPO_experiments.png | Bin 75197 -> 0 bytes 02_training/statics/hpo-experiment.png | Bin 0 -> 87400 bytes .../tensorflow/cv_hpo_keras_pipe.ipynb | 595 ------------------ .../tensorflow/source_dir/keras_cifar10.py | 214 ------- 02_training/training.ipynb | 177 ++++-- 6 files changed, 122 insertions(+), 864 deletions(-) delete mode 100644 02_training/statics/Experiments.png delete mode 100644 02_training/statics/HPO_experiments.png create mode 100644 02_training/statics/hpo-experiment.png delete mode 100644 02_training/tensorflow/cv_hpo_keras_pipe.ipynb delete mode 100644 02_training/tensorflow/source_dir/keras_cifar10.py diff --git a/02_training/statics/Experiments.png b/02_training/statics/Experiments.png deleted file mode 100644 index 41e175ddb57ecac858dbebb42ed249df5dcad646..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46056 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≪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%0A4$62 zUhaaXmaJjql{84hr(s;$iFfx0OASr~zy*D@Z&Hy3rwI8th^ zPD#lbc*`@H5QKzV+^^G?F7k1@qBP1hBXyD_`;BUau4=)%AEO`mT>?-M#>nLrOS1($ zE($^$`z76@u)dd+DJS$(@owR#{P2C)f%mYOG^D|~@2i%x<_!-H=H|URH!JB~U6*hp zao!zG72{=-ke{Z@^!CW7(ke1RpbgXYIyAS~-pcC|30lGL{mVs?dhdr?zeXVR`F0=<#C>90CMR4KJZ-yK zGDY{~8aDFzbYVTk@&yrxCs$2a)?|=4C#V^l70D|976SuUIEhX#XRg*_G)#5xyw73e zFk?sLoRZ6Hy?88@N~KufV7`uQq=|KBwR@n(;()BSin6q9=i@YpM??&Q4+|QYx3-r_ zsn5BLfHlT;1kZFNnbG{A79lv@l=7`LQT5nZvxh?KmfLheYvHerRy2WlJY_P4n#T~1 z^O3v@g=mdUYI*QB%k!m?t7prnwYOoVNv1lmHcJ8hXI-w;Tl^pv8tdXS*{naVfvc8x z64rVUFj4cQfT_ng5q;}=I4ABW3+^TZG~26NRB01(*9Cr;XSY4=Kl@D!GTLiOs4Lir zh;o6jO?IIm23UgSl=8!^&w9^Vbxjq?PEVsFOpRgE32+%|V^)0~Xtz^JT|N4n(0}A; zc0kJWZRYioky%b~)Ow?4yGN&*F3gka10GQ1e$92#R!!~tOlohm4ntH#bYlL<_j_i~ zo^n>6i?!w`h|N8b2_k`slO0VI$>qk~51Ks1Zy1tL?}9F`ocCiN0oX>459Obhc%Mlk zx^k+$zPicR=&GBzF+=k%=8CgzLpRI6$Bv;Nb*%F24e>`3F+n8lrmUNGy-CEl`^dRE z*#1Oumlh-PafaTbF3<(5)aF07wQo_}S4rS9R!V&J#XAwIOZKAGezoMSJk#}dKjCuW z$gwWyTrVp!&1%d?OFNs^9)su)&z!dGBtR#bWSt8e`g_+%wTgMCo~NijAfd>=)$mVV zGKJLuf9NlaYef|NLFs6I>H9*Rk)xjY-U-ZH)7}!Lm`1w4(x+^f5~<4xP(WznPAhw% z66j(Zh}x!Dp8nWZhy@~)<&fyQYuD>D12-_nbKc&Ke-)Jmu}M=t^DufLlm4KLl9^d_ zL%r#)uLfB5xTvJ5OHPbe#1sU+t58lofheT%9*Gk`p|Neh{JLAXuTits7cqI}TkXR( z=bR#dfPW9I(-zzHK-*K=qhog7(AR>BD*?K?miJySLvVzTGj_pUs3wryUKWcrA5Uj) zA|j2QB2GPMXo!}g*xWGndUcN^uAALmm7ny2D%>Cb(DWb5-8O?`Ql+I}roX?pD62WT zBC&U((+!EX49Q&>20&OsI)OJq-O8A0`9~YOY|5pa-yAaC^!RwO^}y%DE!k5$*9`|7 zBYhjWgT^J$l}8ZM7OB7bs5kB`eNCg)ML2V$4ep6f3=vx*B_(CIemX_=tH~onFq;)q zo25%~U?8T&a#ckXueX?JiWHikzM-}3oe+|_sJZR7KBmbM4Mpjh(RCSWYK2_NPZJrF z^I<5xZK2skU|B>2&=ja!>O>Pe+XKq&nf z$o=o)ez)OXpUdfewkU6;+Xn7^dT6<>TF+KNM&D~f%x5#s;^DRLcs??oppxJUZ*)rU ztTWJ?eG*qRHZjuL(M$tEvvVq!3ZaAgCYG2em)ag5$vrM_)Xn>UiYqtCM?2xQ&i z_lY0_+EHRA4k^VyP%K*~f~+c+_V$#udaD`^8=2l5_|jkZ&i{aq9Ey+CJz&ix&4x>xINNndjf ztqDriDfJ3i+S^cs29A3^P7AX-mrRdCV>bVi0v8&e`$OhdK6`D9>g)t7EMTi6HQEI%(aNq^25VXCkqqBuvw5?@(7> z5^bYuI+!FnW6pHlrg&$1`iQoHMaw?dnn$|uN13v| zTZYbA(;VM;J!gN#CR`wBx$aWmuJq&;-_T~gGi+xZY8TnRrB_c~Y}xIayZbh3br%IP%q{m?PCmXE@{=VGlwhsWMuWMS>I`Zg#UzXg5bc2F zE{Xq~X=}KrbniC}1c}?EowB&7*fP@_#hCg>iFwp6^fhq#WQ!joeIQDuJGH7>VRhFR zJjJf?=Got^K9?Y(`gyzFCSweZJ#n*kAi`WVNH=SygqV+L?Z#L#3dTjB&04ls0_eY) z_N=C!`&MsJ_+lp9OyL`vJAfx9A59wTVbD$j)&$va+Pk`F#>jG&_?S-KFN34hqJn-J z7p%pNX8U68Ryss4XnmV16%t@Be5t2)?3=If{@?~M-#)+)w+r*e(5IdrrX{}(HBW*# zK?1oGYm));dKNPTmVv&LKg3m2?*X7Id-8l(@*qA^LdYX1uAcCPt2ftkN*!NG;j`h= zgGTqr?qz$7a;3e;%~##)GsNCJFRX-QiRW8`@01)JoCa^Nlt;P#=dUw>&?jSEjv5=3 zF6#XvC-DVtcMfiM0|K@=H1`C@t<1N(xTu!y7|LWyRUY_Vr9YW+CL&WN+u$Y=o73QU zZzb?!Rh z?q@MXlXCz|xhCrOKXaW{`km8ohsybEShrr!j75R2jxt(^3t63Xhc+=CrS>)my9w2p zf>@OuxkRMEOhi1`i2;lYAw#VhHYK+$$*vTR_gS3S72MX?ms>tOo;NxlAgwW$80fZY z0jBL~DfO$seb9XlMb0Jj6BBXgPrON=_u0wXM?hrBcz`CSi;3-k%PndbIZ;IouT|>A zH(y5sB@(%9La(mfUqA9Js%ZI`r}hKz2Do)uui2@%HT7FO2?S+^*VhXfTh2(q>(#I1 z?(ZaqHf_fXgt3inNadz9k)NQ1@u6v#CS6IM=r$f`c|Dy>1U)n7D)ZW*u}>VYx6hso z;{Z|~W0E6$Ij4g+5A=NYL!#YC*b7m0Hp{}YH_I^r9CYLz^D~NVt0TnR)U-3?6#Rn3 zn_8&r%le#`{3Y5qmvn}k5qng!yR*OBaQ}nmDWF2fYpfja+4}C#yEA*K`vcqzk%ZMq zx|cl0e5t>YzUQ#H8(y^1T8jUA?UeM#M0R%S9@QMJtJVv4aJz@cY;EemeJbf!8+eeQ zTwdQtBT|+9%8FyDi?4xCfc1>#E2Xq4L6YHG)GooZ9=&Q8wr8gF(@EpQ#eIv}_Lnv) zQHY3!)UdcM%}jwX+aMVe@iY6x)|(kw+6IT_RU|v&GsvNor~0r&`}(!eMh?*da$4Sq z#|PVl)S9pf^I-z}s#Ds?Tu|H2u>?I17J}4z$!zc`)^k<7rK_o4x6 zwYNSBnXSj8ze}7)?Qk^HD^1&-IQgaV<*_E)>-))yFlk5DM9MYsK9xRI5oaI3O3V}C zoJ!p-kF-xr_N~P`wzH6QoZsPB;doKctLF~m&Qm-=?$oEtuz{$mzJ4vl9dSco-7y+C zx1uawC%*h|Kj(u zP`UK2*A%>w4R_lE=Am8ePf79`o&b7V?1hbITd%Sm`h9}laRvB`AuRt3OF`m#!|Yn| zWnVmgArG(qA4L16J$=u{W$VT?ONDxKRl6j`0lk1X#V&j{PzE`Sx#jNnfW=p)4BVgH zY+7gR3|5_yyf zEH%^>zlS$RjGymsuoLEFk37o#KkU8bUslieJuKbb4bm-wba!`mNT+mnh;)~9H%NC0 zNH<7>ba&V9@cxwg{R8eN_oIs!2juwbxoZGk_Zmrq3J9{=1E*=P?1p0OJco zSy|bM`%50do{@Kl`JU1!F(ub>`D*2(R!bc3)*;O~w1vA7f`nhQ4vgOgASt(A)D6Xj$dwD>(PZ)bm+afd|1r<}T4CbN*Q41|p(vg3xKdUsiN%Ju zxlOLUukz{YJ@_)cG&Uoc{)<2+Q^=1xqW(?F`JFSrkoO4V7o#S?O3!~FSdecwhG z7RM%20)$EV)w!@&W+>~dDnO&m|KySpL{D1gTQ3#-yy`R{3l7( z4^^f!uUIjCL4!iIS-iX@1SEuBd_AIW#Zl71}VQ&=nH5CWI9;+Idk5s*x#IPKw z$SMC7+vUmka_^Dw(cD}B;66$0%=4M_?q9JO?(&z5*PmQoT3){58-S+r6;aImu_bFd zno*d$9y5H~VdeJe_iTxs4@@#Tq5`EM>@qV7g2VQc&aSSymnRw=s+51lrMh{)OR_vA74*zs%(;aq_+{;ew9Eu^=v(UOA{%PGPNa*KHb2$R{ zWWV@%vF07c1l>i02@8QxUc7x6k4+`KHLP15+I(JH@F1h)rZE0q8vWX^ECp{ws39=XQ<{Z~$KDG-LsnmlD@8t-by2*-YJKu9!ns z$0n!Ca$(bmU(OZ7!vOqt+t}zpGdVFK;AM$;9F|m(4R{R|wLiAGHc6HO8nE4;!HAx> z&b=HJH0OxIxxT^sN>ijaVb8;~$y28!VD|CNPhVpdD@tlNHBXLKEbU;7jz@IK_dx->yv9~2MT>JtU;TWP9{ z(jA-;wrq_NhlaS$@xwV;nx-d{-vI2iX@|sX;4kxy2d;Hm3ZPzd2v;a^j6GG>J2sdm zDTBhr0$zGOdEAv)j9M}P((Y>dJ@)(Xe$7qcRJ53F8pDlkZ4g`mj4(E{s1P?GrZ1kW^LqoOZ z&z~e^M=XYxkLsbvVRhCMoM93O4(q6{bjmdov&0+g9CFB?o2Z6hS^$mlE4TBxc}u%I z-*Odmdwa959ro8a1LA1uZ949Nm1F_LnbEkvSOo3@d9Pk$TUxv~Pk?vIO_JmRbqjvO zBi`k(CxGo0o{P8FS@|1d%ck=RmEMy3q7o8KufC%mvplOwez)}jb*fw{iIF-pUU!)@ zE;-^41rIkn_&EmRq{_V8t##Mi)Z59l%iduk^YvdCuVyAUhnIOdzwU3tPJYI?bd(gl z^fXwXBOD+YDB;jM+7RV@E!Er*{(-q@^4 zsdr5u9X&;&<1G4dZr$Ak(t5Ee39!RZy|aIwueN05;l1W?-a&mZh z;k;N<(`>FFs2QD!yg)J7fQ^~cb(1P|Af_5Q(=H~lTs@c9LWqFqLb;O>%V zf|bYm(^4T=3u-(M3k{;tlE{Yd?_3so3WX$YFWcr4e4)(~wjPK-MLZo$L7hm)Nnw11 z5<&wIFIT zvmC`;TEp>h$@JO@5MSo4hHlsy_$O;e;Iqne=nqi?85tnnMa5*)v#u@4+#W7OTFpp2 zVxghWWs}=pb$9yWoMs6n4BpAjt71NUO5&dJ$WYMnJ|$|}8135y%;uqX5KTN=;qb8Z z!jSCDAEy;0L_g3Yc5e3N4=Zt(m+-kTzv#*#G<5W;opYPLHrEN8nO#IhIYU!oZ}~n) zw12g5ygN6(n#Xb%-?HsC?5biwVq=@+Wtb_okSVfF;qJKV+Oa6)9}c6bHma#n!f5^) zU*-(D;(5Z%iRvv~UZw_|8}U-u#67WAo=@TGq=*x+>y6c$q>F5E8%5Iw3llV&On64p zU)XdST@_?TdmpLJCPg%>b~~(2fW-Vz!(nondR(uBtN8c=3e#qfjHb z+4DVdO4&ZMhWYlX6sJ+Uvq|!jz2gE;Qj1wTHDi(1ttEs34aA#2mUH5(Jd1x+$o*IX z>0h>+ho#RqdFviapP9L&(o(^Pq;}z>BHGe)YK%ZgM_1l{A*>}9+Zt>kVmPm^Gc*kP z&w=l?)zdX(Anq#BWs;{-%7-d^ATOi@)Yai@x}lKf2Lc(Ko5^lP8kgiZX9M)}Gps740Ff|%h&;D59s$@VH1eDY-C{3GyMJ~N1(;OM*%1wn==_j|K#oT3IhF8f0u*$XB*4FU?guYdUyYbHL}zJHWWHsUyhm~ zV7qwb>Gef-f?)bJYpQ>sZ*rYf z3{K(PSrsrNaRkV#IxUIbT;JZP(FcI-oe4adKf+a(oI_B>(n|?s2>eD;*uUdmD&_hB zW5z!_n+SkvB!Ktc2XacvQg^L7GuiZo5c&Ks&geK^vEC^Ug&8J4tDwv0bW_EFwVgF( zIy#w(ptTpn%d?w5x0?T3Mqe34N(!#zaE%|3ud|hb{=rg$Ad}B=!T*@>JYpU7cu0()AKlYi%xI~OmZ~`vs93Vf1HsNF;OhvGiVM7;5T~j)Q05oV9a4Z) zS4>=7Zi&yvwzY*Kt%*R_NSZw0`e}9$$_-xjipyQ!@Pe#xtGAU zqU6QX!v+52aU(y*dT7?T!Z&YyTBa4^f@h<+7_E;mUxr?DU@*$bqGz$E(Lrqy0IrUtX4?B z%@}!Hn0T}GwQbe(3R4rR31TEMibO!TzInVId!#Y&-O28S*InD}Cra$V!D3}w*015= z;Ua>{={bWmS0<;})&#dXL5go}%`Q16GN4p|ASo;&g5{$=(YNYv6vYlew1E!rAuxuA z;?m2l89+|2OO=WMXB6}yP{6f>=+(%wfJ60?qSCX_&TFpHR37O3UM^$D)I))eICi`@ZXNX5JI7E-YHkYPgK&c+Dc6j4gK*Fs>z3#SOyu09 z-ufTX&QGjYZP1MVJK+mzdebgXj-N*$w2nN<`Pt&sA<=Y>H!mNRBt`{aSr^4On54*@ z^!(J06p$Dv+?>W3Ns@WqjA?Wtc_K6ih{zr{%`NO7eKI?ST96`|j=kIoo1#Mj%aoYQ?Uu|U zo#?R@p8!orw!(`Yv}s|V6}^{9KB>e5W5B{@l9E}s5Tccn0aPqdhSY~ov(XiYUcFI0 z1uDY(P$5<)nxS=2w_V#U_4L<)1y-)@$uUcnEn{0nw>J7F&W}9q&?hYCqfuT_bJJhU zxf<9iS-rHgMJ6J`_@*_?^q;BYz|H&LdERvBQ8|2Jm52B$h7&n=@zU6Ass5=S6uSjrDYT^lW3+85pSZ$4?h5G~X&%eA-(6?< zsVU@hf_hXi5da#;JYiIRQ_upz4@|cMihbd5R2cikJO!{<4#z5yJ{p!rdJ@c*Y{nX* zYh&SixoUvu)CPs905H^HH`Ae*pccLvv87e3(<)`&6v*YpKJ$5~fe_79U&(=s`|^J#K|%cmLk8~RQr@6k z)G)oM)=+tT>{U0{K4@9|Cclvj+yxF9|1B8^==U|Qm-%7)n)zj`z>i=%r=&M4O-469 zrpNf{`JI?D2^fMcyj_M03N!}<#QI#^W#lqxA3BuLj4C^VHEXVnCgX8x-7Zv}UZ(fB zONNe3Q+*+Jr}tt(bK3PLj8OX(eKR~i;$u|L7euyjrSo{qYA;t0TRBAEKL!mQwp%)o zaG-#Lg9z{=BfoyEy%o(;g+s(iNf{3Gpo-vj9`Z|E4XgWsGhCY_vbWby#mg}Gb)-c- zH^RMBUdXO-ubDQUYkbqZW;dvi(7+|j&yj^E{rZS2Ymn!3_oDSd4hfgHk&owjoW1!Z z#&q~Nt)wpMbP7Ja~bViKC z>hleo!~F!{acmO^u17@F!bP0V%$n5{mT1@7qv#aL*W!F)z*fw>iS^4!wscrR<0MP3 z(x&9z4K69(Z2QYZ4`A%d+ln@cdVduqvF(9_)2}}Mt_g;O={>jf^3d?``<>!1XpNM9 z&rg{zDMs|jt=19s)~gc6ZI+f>WHSGHCjUGdzc3g-&9>6X?tF^!heocxlD0<_Yy{25 zk0L22RBl(C=VdzrE>$gX&UXS;XMRE<@#AmSL3Tcq{%kbHgHkzBu116Y8r*_f!@D8tGg!4j_8YevIE;m$Fy%3ubY)~_I%s+~sd+#Jn?PAC zQ)bWXUzfvS%M{jWg%la~`6FB)(!(jEly3QX1c3uN)R}W`dz*)yor4f2i)`tobEtI@ z5mW@xmZ@)xjFmE(7IkXzo88$@6D7y-IxPvEPAAI^Om9Ow!F%N_5T<;{Er7WafR-C~MhGwhrcVayD<2mf+CwMW_ zKdjFuxEOykh%y^t#Tx2H~L6^=XT~(B0#tQ#umc2evhWFqW zb-f^|FGM~MVHG=#e!HJlEn3D_e-c1zI*|$l*cQvk>edCjfAY0{Sy@(51@C&^=|9^x zq*X1?%~GH@1C9qY)n0Il8E20t>+Fd zFd6q*;dToSup@elb|BfGesFfwOli}U}tFrw8MrLCt zQh$yDoV$k}{-^h4ugf-fBIVs31&Bc52G539rDjdc{nftg&9W0Sy-}An3S8U~>TLs= zO=~b%b;DE(kyr6jKk`WoHc??;KY;g|-48b@cQR3l(j4gET?{r66GKCT`uqO#fkg|- zAP^JU$|!fG)R1Sk5FM*(jL;(k^9f>$-0Wa^X^D!GvanS|#ao@EGkWo@*+kfvFOpBb zI1AQ47CRSc!#K~hi7m&1n+f*V?voSJtyhZ00ScevBfp!^JK3ZLZq4=pA0E2~)Owqa zv0A)%V{ebS-885Z-K`%N^QHYU9-n(UXIqRFG)|h!&h7PnUswyD`2~gFkZjkeYT<`> zY8jP9+*qd{=+V|Yb(CFx!}ie%XIyZ~v-TJ>F0~orUEDWPfq`%48EVhi%G&Vx=`SDS zEMM?;%TaI8!BNcq^PEIRU?Tuiy&vgNNXP>!o7; zwzaEL^zW2aQ9~dg_vXPql_qYGQ5BYTHc=J!b(N!)l0yBj`rk0lE z*L?pmrR|C6%)Fer)L-`ix{U1io*uD^uJvV)?XvRWBrCDYucQ>@x!rNhnr#yA#78$k zhw{ASL^gZG>ql?CXbVXM+A{TRoKSq{yP5j2YiH6&; z3>t9-7D64p_Vf)1=#DtEqT@%}jr^~F55d1vIYN8qn{~?am%swf6r3Q0ADTARTDo^XV#q&12mVMdt)Q*`Atq%BGfP1p|ec z<$78NW(J1frACC-kP>3slRk7bjNX$P`$any5xqRbKUSdMzDU;lRyNn;={BezCB0p@ z*rl^J#E%VR*5>1T_Y3oMNL~+@Z}}p7T`!iAs2Tb6oLqYPMrti@2%FazXw3n^cYNYD zHZ#GG#j$InArUZ4e15UXN%LQ;O4DvCFMBIZar=ugxjO+fv{Rz4>ezLbY5WJQR%Oy3 z>I&$MHS#9Sno_XRWorGb3pCR%+(CQJNs7mFK5yL^IIXjs9 zxP=2lCLVjGMg#+nX#+!^ppa-yGz$})@PAfDeQT9YeV@L;UjSI>VZ`kM{)+FfW zywltD@=+uY?hM0M%ZzZU5Azeqp?1x+(h$N1=QrQ)&{Ro0F&?+h2-XIvEvJqQnuj%Iga zj_h^tJxLO9*5>YhwmUy95(82<`NPt24=Siy(82Kga(7nLDeP_~G)9N&{JwlnMnl3= z1<#K4yL3;tL$>JX*gvis$WQtrcHgy-kEC^cj?855s;1$sed#1o@jT^MO25FQ`_=v- zue1VN1b}6-gAwpBZ;sgO;1Tnb3gv2Mj7XU~CHCjlDs;t4=PGhDmRn+z)P(v*;~u@d zcGXo`BVKAghD!;%vOAe2iKp~`qoQNU`_9~HUE(pv@c1}#+b^zdcGCV-;x)b4s6bk> z+8O8B+Loa25AZ+U7ZLmy5x<=<`2On z79x8Wba%hi>@Ywp*U_8&0x3##f_#Eq;YO=gnJxRM8-6vc*O)9Qq@@T|Pj-99YLLA~ zx1%+5Y~!(8G9+g2gQQ?5Pi$Q6yFK+?%fPEA+0yLpOG2%+*vM0N^Zw_@-w*LwvCzst zeq}9|AtXYnV{~f;?J=Z9efENew-OCOBw#I^=Mw0=1sP34CXylzK_WLh70_=LgU6E= zn_@Pbn8X;2D0aIri61Zc;A9x=aZpb{L*Oq)0*9u5-j>2aVV`Y0q^9UG8o)Wn#LTsq zXaKqJ`ks(x`yog;-$CP{WYT%l zzNzopIWP}Y7O{PXXiI;5Aa=DyzE5Sd9jyL9d&{9iO;?sL)9TdX+UMx)&E2zE%p7m2 z`r_>sAN}6t*$^?D?+2)iR*jQblF&l&RN?L%AH}#KCQJ0#H$wdnReH9A9NyY(wCX{p zp3flOlDl9PrE}$ln+cZc@-*`Pi_(bQa?34pY@}kp?`9VCpb5ZkKYbkt^{(}U40DR# zardyTV4ACg8Ziqz!TV?p7d6d>l~0*3KFKIL8LgV;CzaSdf-p$dXp7Ob%yp-Qa*|du zDZ|hwi$1<}GZM8aL6ByRu?5nZE$$fJ=Y@)R@?uSaO4-`ryRaLa`Oi z*swDO&q$RXga_`t(U#RgT&p54Z}v^nPPf*Q#@5iea4c0yYo44o>|m1VZ54Kz@lsYo ze~tfnqYmjh2MUf6e&XK=&xVF^}2LDv+Dr&DbD!6bDetPL#f!-9wFg%U>TC zx&>~kiZ*LbP2g;oSyhF&`W;7StOp)^Q4i#e_#K8H3KzBowF(AYGJa~axf5d78R0u_;+&{XJz?GoW z1^;&pB8HxJ2B)ECfAhw&yJwE?aUUHXtzJ95!LArKu-$ek-SJ_BZ89#3M?7@6GlSD1 zH7A#J=n4@<`;n5l#?Ao7V!|Kif`ZN$`9vK(d&!VO_Fl|s56}Uc$Grci zLrSpTdvarWjzbr+CB?Q%xIF@TI%#zn{}Ogbco}`DU-2P*tH%SqAVSN?q|5 zdz&hwqDs(q7Tn`>>An(s3mf@8q;3!EbTZL$C8Vh#Ij4Z)9CSG;)zjr2FGnfW2eK&j z=i;{_9wqf^qE8$T9` zi_i%|o~jCUY4*zp5d?Eq1tn2mAS5TJpjy2`JN$;$D+o#zk)rS}TEEq_%7mAg*mpTo zQ(m_^xQVG{AN>4D^>Cvj;A!m>f*Qfm`}ic&g)JC2Vl$Slb1p?i*EDq(03KikP2QWG zh1Iqc)PROX=Jh0bXGfHUf%NM-1`~}Sf8X!Li@QZITTZ|8pr#ij5F0|>K+|po5KkxU zLIffsW1ApjJE&`ffAp5cgy!!vwR3S%x~f~djTCr#D0%pd0b@}5 zhN|4PMV${59}yD{#SQ{AAHZg@h^1O1D)@J4wJVo?!Ui@5!5@QxXT6J*@y*ZIQS?u_ zQ%g7}f`-oeSfBNV>wAd$Yyhjajy8t(=hfYbx;P;3!|QFOGv8)fSpw#RTipqHetAmF zU6^}pR}%fl_TDLhQuMwHWDIH@q=VCX+MjF4!DvVY8d-F*+n=;sXehC3I%YX4%ew!B ztxU5O`Q~6MuEG=qTs24rKlcp<8WTucvy+1K2bS}3*B%VW_zV;K5st(Jkrt(! zVqyz*`n3hHOdomC=7EGCEuV~P>I9dmo@+i`VB(H9utg9uDVslHF=$kPzg2%59ZY=W z2A5bR?+{LpmV!RiEz5|AtK0f9WsvWqKHt`Rhyu<49Q&d6F5EX^kVP@KFK%l%^(Cm>2ZJyi;N-Oyn6?OK9eg^zszGp#wZ)qS4bQW1@5WE1@ zQJXuj5szK^LhrF&6`cU_0Ef3AOf2#{aAz(u|enSX;U-9vErd=Ey}}mbM-(9KLkO{|K%4k?m-} zh3)K0=19_iKb5>jM__<&xtquk#EhkPA) za09W|KVa&=Z5rxnAh|7l`B$UnOzw%(Eq)@>JVR1pJm!O#NWfoSJ-YQ z3ILa8qMB-{{_65HCwSTO8|{k%nPQoPWJ#XkKAFYc(}~=K5+NWaO@akIK6Waqs>%{2 zVq<5I#{FO=p4MPfIpHn7k;DM1tE(HY7cJ*zdS2%5>o!^7M0d21F4-SN)Q~EM3M_!m zPvE}{b9RMo7>-tbqQftc9Ox-1Vm({&rbcyI_BIEUoOcS0!&bBz=xWKWmul75W> z4&B1Mza0!J_*j7e?YKAX_qJQ8Sa-QuSy@>afEjXUEN9i44vRxMff4bQ@!>Hh5FM?>AD;Dy&J}kE* zh{Oz!ipU`~$C0#qH`;OAXlAimk8s3g7rnH+Jm5MO)9jVXqTqmWAa9UON=_!{L=ugc z$j?C#{L^Z5>rmr7^O?SB$3$a9Nzx7)0YO2q$De!v$Y0==21R2p?+Rn6dA~_3#e5cr5q&xa}FB z*}*`UTby$MP@U7BB|;JKlLUQkHra{S3$x%L>a_B0S{QO#m|WuQxsW1aAOPQ{QNwA@_bUQXn0cx}< z7#^^f`U{C{H^ON?wjmj4peaP5j!Lu9Fh8=t`Yr zcDtLV>&!$X3}WKOo##8 zZ(oo&6${EUxllS&Cug9lDsj5T(o}NnN7fr3pHvoO&bnW)78jkY(p4?0BMd1m=H8|#3+ywuq)wdU%b^gAJk5*|J>Ka?NumMB}p;S}~;j;6qL* z!3-Fmq*__^Yq-?A*|I(B6&By1sJP3;OdqsuML|!xySsZT5U-%lr)hcgjQR5#Pqu!azed(5V0n9O=OI4RswLezdbP?zF^_iKr#csOl@;@{! zTt2ME6w6f}OTsi7FCy-bT7JZ}Ob7r?qYXpc=kvU!YB-WQQZL0HPV{Q@1`41?UY{|; zs_=k<-Cw;`cM`ZA-DjGp@xX%J`2?H42e5aGqut`7v-n51a#kJ$uiHC4CmiR0WJ?Zg z4m?VeIv*{@eAChZ*ZfvW?OJ#jmPB*l#~9^y(Zch|zus!OOLdpv3ld;Xh7@J0cQuOl z!6J_iv506EYM8G~#&0C8nAhO2T&E$X-{W(0QbvY>6Mp6z>#q$%<+NiPoA@N#^$ zX$}z84@{X%u-1zU2Q?_hWg(_b?AHW=X)bQj&M6Z6l%=_{<>b@O$^(4JUJB#zP=e@mFe#AF)oilsN!@atJe#;ZLe0S1Jlx#YimRyUPLa)+ zK}d)`dI3Kj@BoHYp5m|_hXp6X)XHkmK3A%y#^eQu$(XBDXrDlix*E)4G6_46+N3|B zSl?Y(#Cb}|_263UhFHMdITm$l?H7%Siz>Xg1f{~)B4|?WF_%M5TNK%XM?1by0#p-{ zQhpNhv6o9Ps1GHd({>23S2PDd^(Lm%mu@+0;7KhXaaB95`U!ZP{jy}WT9LF&mgslk z-cT=aKM|Y1=oY_n9bJ2A28#2}WhnPa4@@mv}g>h5UOmDZw{1cT*nus7PQb`BJSe5t(9Z|9R z99P7WVydq2wlJ@U&cm{IjZ$4lZ==9=-f9LF3xwaFDL|$h9*vsldY*P2PBMjF=N+4> zMR>KYxyISHMh&9jqW-v9j%Pv2v=_f^Z!fzuP(vXR$l^rtRYh@3^n$UT2-mp40GlZm z;!5a^>ZgG=e$>G32r-&)}(o%Urp&F1)1*JCy-sjJdckKcLoeyFts~L!$6iRz0Ax#;g4CHJFF* zzOcbV!&r=7u^JWp@Lq1RiW#3hL>un(+w))LT(U7R_uB$dbr{~TnmzSbC971pAkf@1 zk$Hl_U4pM4<;VVMo2~DwZ_F{q%wa2r3EjzV^64vdvJw@9{?i*^=}OG#Wo}?`Rgw1u zoLP0LO0D@mzoAtZ3}k=@4T;L52AQ0i5`w9z!v0u;oRX9|)@>HAhzwBTB$}Aghk5ep zR1!~gZs3_58552~eG&=mG zTF>h{dU{(+Htm!On7lcSCgOV3_kH4QVHLos58lCZr9pxoHimvkJQ{Smdb`$Q$4wAr zCKrStz4~3WIPHgJVJK16T%05{V!wIcR|wXFitsgG$s{J`0FZ_JxKMLJ&BgDmH0qQ= z0fi)Q)N>Wj5FS6xZgvkZqyS#NB_az3giFxh&``lk@IV@Mef?8VG&&68mbZ0ubf&$` zXu7P3UD4tENH0JjtP`RlDjMx<8+z=Okc-GbL52?z@s{+M9_OuKdKw$VYt zxWZWf`Z^zIW}57sDuyycX53neR8Ox~>ZlFuDjl-nlCAtUE1JM< zsORDbx5790VX)SgojzCg;wxR0I`m&lsuwfP{>KZzGDx4DM4%G~`E(;0YP^7c zQAIkiSszlHnVf7MDI@A^nglZ5=e5@eV#omQ8e-C+RcLd4cl zdJh7oO@%@X3e7gO=GvF(@(1-KdQ#-a^~spAgA^XYmuvyimvvY}vLUxfk5dCNUaIAK zz?EcJHZ&Zeok?LmJHGEs$@J$Kq0KvWH0JpQ=u+v5@9YVkWjR>mtw!+sFJ1UGZ{Qfg zTLK=B6MVIX+a9VCpeiJ})XjR-h3F_&Jb)|=I0)`+z&UE5xK%Ss7n2Y+9Km9W_7t#@ z7-LbXS9@|~kfbhueH*`3%zd?p+i%XDA&?wkM+UGERUXH7TTeMP*ZqB-sTsi z)AZD-taMM->5I!_b! z$!0IupuDxtv+sUO8yP5b5gG0xc2M)7{wSfLemTF6#RG@~+SCU&$65#lZtGP-${lq= z>T>Jc%;+;^YuLmhZtT2|R7mFsUFEIwe9u3-@muvH@x9nMEQ5{S-38^hV>NqmXo_XE z8ZFPNQ=hn2t>7IL*Dus2*tB5+Kipg6$IVJfT38Fe+3Y+>0kKZTs-ly z6j5uh`Ri|8yy9t8aylGWwccrtq=!kxcMJZqR(6n-y8-mWU;yA0KNE`Tk?$?aJI0?44^&D1!K6w+LDKxe{7tJ) zY(>Pc{VSj?6h;4rq;$b0VGw^RkR|wIi4nzvg?~ z_Bh(#nqZ`u@7`>9wIG?0)cqHr;Y+;64XuuW|E=ceg{JnxQP2JDUnm6tVEFk?J=;4v zaktiz{GW@F0PYxI#4f?`7qqq(E81C7s^~=Gua^zH7Xf(gW0@YTtwx3dDe;C5DM^1A z0SL|k)&pMRPK|JuD0s+|$U&&;na{r-$M3_j;{^9#Mji12pxg4%UX=m((69gHLj89% z^Z;B}6%?NLH~8Z3i{pp;N#%XRD5WU#XC|G|zp+7qtb1hnb#UiYw6FjIyUoPEFd|~; zWB@)A5cU5*zmE?EU>##YGMwN0`Y+~X4jMiv=;LcrvQEVyYjTA z1WaFTAQ`UXu~me+WmoMmM~M5f^IdU|lLR1b1j8SSF+85MMe$AzY#uEq2P5GK6D(3H zh?+pstJi+Tq}Q-$uarA(I$$l?IF=>yc}|eDul>q^6#P`NXp_BLWC!F;{Y^%6_%E>N z6dR6~g&;4Vz9{ri6^X!cdjBGmxi{sc*QnQ4)A_Y~a3IB|>+(TFG*|(k9Nv2jvRt)~ z_m#ffusmJwka3?~^2?{F&~SOD1zMNK z@1Gnv;$0kEl#GRhgsi$x_oc=r4;Z<| zt=MIZFrh+>rtuQltY@PQD4MekHO7--$;)^E?!TWg{S=>>WXfiFyf;;AdZKI6C;M|m zEhB9!g=?nzIlk~Dw!t0c$G`wnWq(Y}`u@Xmj+?_wD4A{zp~op9Im_WfTM{5C7i6qC zFL|%5vhf6vFs3XSRb-2mQ+A@i)j@$2*0B2u9M3giLEJttDY*u+GG8oISc8^p)HabbaYff zh2Mxb5CXK;E3mF*N*%9&9y-z5YQ8@G*yC2B#_@S%he&ZwmS9(F7JjjX&5mF1e679X z@}9ER`3W+g0}71Km7nkaC<+F!#ml6cOJUP<^OH^I6sc^zYPVR3v2Ttd4MtFq2Apg1 z%fUI30@H7JpJSUHZRC#Nhxv|O46O(D>kjsS3dBRW`@xqR4Vg+wkw@kyD_$k++FcbL z*RVPXcj~Gf4x+q%3EtDIG62g)IIMiNi)3tS10`^rgb!K+-?}h3E9= zl(EG+$;aD=yNOC4={!B37bzHiqP8cRjpd~Fr*+Did`LQc1RNIM?z<*dn|V<HZ ziTiBwD=pk!zi)DixkyJ*F!bcHSgCM6r!jK!maxnjK!6KIxUUTauC~wGEk@kCUBCmG z-0yZ#roS(yVKV9nbP4#?rj>UrIv*Uq@Z$5@$0t^*OQ`dCoIZYXa>(zMN=(~29V}oUb*eV~PR>D9jp8MR-WhpOAP9 zN?cz?)CLMAjA%Hu@{;30yxhliZul(9-D{8o()26vF8pf^rZ5xK;Mix6A)p}b7lSOi zH+Xq50e+2won0197~dG*1-sl=efRx4wc)rvV0rpaJbvn~Ip|d=#EY`+xT$Wo8Vjo+ z&p+njKVxD7-$tzv&+>wlxynUa8G_$qdj5Qv!`kX=NmKfDG{i{!?4m-PmA-MD!e*sD z0w>t6uFWS z4~V_KhU;!Sby&)L+CMc}eBBkn;ZPThWtXG*>OetwyeBlm4I1g^anS%`6%~c${$AfuH-&1Ld$De5P@l5kh+jDVd z#HOeYkpcehDZM%CNB(^FGOp+r$rfCHv}>DnO*kY2uUp6o!->-)w7#Rov`Q89$LI{& z*5ZX-6BMA*#ThZX{Z0LkN5)H$-Gs43DDsS-@x0|kq!yk!Y${(~aMIX8Jv4NHNOO9H zln#edFp%5Z5HVZr+t+!6MX3p<@AY86&l|*>%{tTB>k70-XfQ+?R{4CSyT3Gfi9L2X zOPF)N`z~awIBB2J&ty;zZaY668QkDGj3|PHjrz89H`MQYRP-6OlypGOeqC)yO8hmJ z&bf%^>P<9elFCd~5r$%j-X`(qhD zwaI0(fu*t0FB`o10GqByqXus8`{P&HUE2z#W=4U>9YE>&t8IrYYg|RSDO-^U!YdR) zU6$_^_WRpf7Q5qvZm^c8i}P!OiKP$GCr*#TWhS4Eda6Ebo0OKH_i0AVxH^=h=>T<- zfolX09Mvm@8M25TpKE@{D{{5aE8EFSo-0sU>g{;s!nv}t(uvu``8TWQNlmD#4;tY( z>OyNgXzO+WN9vermvs~z0LAo@&vv}3>l9Tr(|ZRkeA|`*w`9@&JG;rG*UL`X<@lnS z2@l|~W4Qy$UK&N{qrCNf1?IAPOlAo^ps&JJNb^?|E8XAn1$s*y6o@Nbi?jU#;v;B% zxvtl1Us)DEbaQ$HCbU`zhc|Jzvd-9EtuatQihA1it3&t>PErq-n)c!-1b=pE19 z)cmpf>DzVEb8R1FMQ~!2(M`8|4P1TLru?tR&i1RSV0jl2kC{`?&i-8w zbruFcfuP$h)_uq4TsKPT_)U={njKwFj*6#B_7Mc927x7&?{fSy2gJvvfMyVWnDhHgIZ9f%7eY6U`#`==>%g@DpQM+!@Ku*TB znL^7uaQqn{wY*u~j@d>KuXbCK=gVIQYF4vyohsrCvl3#^gT0H#QP`m-Bx?7Cu*NJS zmu?w$e(mV-OC>JH-+~u5cEF@=0+h(<@euKJ({a{uT>@VMPtOii{9~BZg$ha2_1UK5 zbMbbh5<}0S&)6c7Y(({Mg_o7Hq2mGhDuOhY96f)7q6!CCkC3iTDov`wDONZi;(Gz7 zZ)`dDN8`u*b%v(r#NV=ZePQW5_oG}#Kngz_#HX={E$qY|FXNgB>6OkIJiFDE@O>r= z@z#w)q@E*t4+VU{0y!l|0=j14528Cn1Ork-_HC@`8UY zNxiZNxNM}$R*(>GFOWBfP5-S=z@U$dyv1?fE_A-f$}3jTEwBAXiqsz9aJhTyJnrd# zvpib`2Y_QB1}vsroUha+)h1URb@L~~BI8pYa`Pr^flaUsXH_6eW+_{=IVQId%y)6M z@%K-cyCbM}?vJlu3fW0#?4qm-?Cj=FESY9JabADdGMshkk?q|(?X&qocst$S6xJG& z#o!`XYX!qqWn>1*a`Zq&HMlT-4?bI$Q<_p`VqF%2i$_UBwV=8S_;P@C!Ttmcr@R1E z5l(3PSv>4F7$BebDxr4*eU(y-^yjNJy+Iwjtvclc8@7T?F0)jE`dUtfwSNA%h;N@a zyRHeZ;h~{nBcXioAApyW_{XDj6rnn;i$jCY?5WO|%}CZA`kPw??LWo8VS8a9F!6{> z?W9eXuwolLrH7bg?M8Y;V?NikFgE|_Wo1uPTfsaVvCgWKYc^!J_`@yWKXYCeib>6u zZ?qa(x*bMnuEF|6Cc5*Ee8MMf@mD< z4|Xfv9ax+sCDRrg;_i~JKJ5Xjkk}gNfkk7mWApT+Y(y5_OT+G z)`vPSZ-%#B7=0W6O$OGZSKlh#cA2=K|D_GN;V1N@BXgJKWO$V3m3K%1ih2yaR?Tli z+wv+&uK8EDp@D4di6hqsC}FSFbCW6!XA93OUgwqD7i=EUh;^ahi?dP(~ zu^Kawpx0x>3Zo=ChNAFZpW?_vIu!gTUZc#P7v#OSdhIC(qcfnAK0)EXL#X9K`d+lX zx&^wS!jz34#T8ydMZ{A9Y0zPra+8f&5|hicT&k}M*_Vxg|GR{)#CwjiLF%IXNkmrB)&OGzG+Dl{t?5SIr4 zT$jVa&6v#`csNXYF@yjdh=)OOH6geIhE6t(NJ7Q!9L5y~{4He+di6>*|7VS>Ne8=> zh_Eoj$HhODb&HF*p>#>|4aDG91d&hv?`QDgnw`nTcB{(c6jSE5@K<=tqlB^}^zIWO zV}wtU2nx?u4HDzHjp4yx>s3NsC{xGxeb}!ben9k~HBK|`Uo!ABz1*Ehj#!!cp{A#u zPS~tmU=m;yWTIS@^@uPI$6!?sUREV(KvEi#E9R2hs^)=GT2X{;E_eci7c!t`xh)P3 zS>O**>>a8Q2Y$35M<~NSh#DvNTArA6ZWstfO78Aa7XMu+RMgw)4%cG6VB{OHp{;%! zdc*V@l3IcIs>PoGx1PV+=npw0-QelL5)yasF5QKax;xyu_wjCZRK7=knUVDh zv|;uK9-5MWVRJl@H4F!OU8>wlAwTUB84SpS?I2w-u({!URTiEDD8moyVoC&Ry?meFqT$0U zcv{!-`kX~-#$u4Mm)s+l5ZoUl!N((k9=p!6#evGj?-s0r*tMk7tR)rUQqucRNhI#= z>z+f52g%8S?MLIr^y|Ypfh*|qy>DK>{aMh1qUj}34&4RhCj!&c<7IJ0GF{!Q)*TPe zt*j#qd$<&y=Z&cur*HOtB5$6SxD57k1mQg$!Se_~;7&b1yB|brM;myWKm@ZGToctY zn4j~-@Jp0Sv;OGp;ea@Z7tbP*vE9_`maTg>5KTOGYwoo}Yo~9shcF3tw`DMM>>G z^txJEDxCy5Q1NBx1ebTI!B2}YLmMKXh<6zsL~wx%$&&MM%>kMnT(~^H#>U37LH*|X z&uX3A=XJM$EiD#WHJPT`7DT>jU6*ss0Sg@r_-r_v<>@lraaV~~ST0I{ykKTW@pS*R zcG;Rb55S#1K4cj>54&fkbyNp=Dq;isZfIsXy2BGS@hS}~IufIOY4Gfa;ibEB)_$@u zk4e{PE9b*ToTJpszO(?&*BF-~$9kJRp~MU|_^MhvW&nSm0k+Q3M|UE~SyN(lE#kif z>PjpAf`%}S3PZR?{mm8te8^MkGE@&aa@lm-cfTn<6p7)#E?4|!yJL9zYI5#r%)~&A zBLMNRDB|^Klu*s#!bHJsdX1B4Z9-@QBP=%sO|)jAOTsvo%jh}v)Srh^yJktaVRzb$ zF2VYF?a7#UY9A)=VBdpUJ&@-r7j9M+Z@Q<74MPt9@Fk7aKw`=oNm@Rjz5V2xtDcH| z%YD?tMQ5KbJh;N)A=ygDG**Ap;URNrQ$Xi(S{rz!KX#JT@WLPzZmOpPSkq4>f3MZ} z5Z$cPr5XJ-rtKq@IkoE68PTABg*0ghkRp8@6?KG>`yE%_!My9uQ`G^hNq~W~V_B`E zu{)?QyBh}d>`^pX4G4ee-s*UJQ=uEisw9xCeY6%8#LJSbXXDmQttpZLh2e5tgz6_nDehzZ(uiHbVtJ~SVp%G5C z{KSLN!nu^)a-$ug{pScrb!WvF7F+vmqdy(?)1Do+whv;jp7^*}R=uEhV|OmIA!YTF;CXTjd}!eT2v@PDKLm(dfWCYV+z!+>R2x5nY27^{fNDC zOQ`fkwUR>rxQG8nzWn9j{A+a+2-h61e~8Lws{J?Ghzce9FHt}%O(F6hM;QKD^XOFL;8B^vW2eu(QDR@Ex~4LM>M@c+shFhJCP z=xTZuxPYK%u{+f0J0G$&q~me?HjLU7Niw?hDKcmAa}mp(;jmvPXnI7_`my+mSb}qK zR~si*qGt@axhn_7SFLk>3nvQWsg+6x&o&U?;Bo;~xDueZse(SK*`t^+6^qAA)nB01 zS2p;LYGISun3&U{S>6@1RtX5USdto%_}aOIOfKgua=r?wKj`$R`v=75{5m(nbajt* zr@9tK=9}$J@Oi6IC>yL5Qc_mxK`ZG&m1x1woq{d5jReCR6B(UPFE9yv7Cd^y<8Kuv zRe91EpCGZwax=G}-f-rd^V(*Ix>1hP{*h5DzO!z#6Lf{NzTQ_PoZ`b4YT|r2&;psK zE~=zfgLpV^&&O=v^ik}>dCI<5-O9|uU% zU+(kD+%|=teXGj;i`#*gUrf)%Y{(h-yw)w)225&X{!eaqb7yd)P67d9UfB=Uaz0D0 z*DoJS`6Z}utATV%uTO~o!j#igk5I|E7{F2Fj(U?|j5=xOUu-PGOrb|}s5C80b{du-hce1)jg0tj+ z;;f^lrsY8q;GKVDWNPfn%u*%pB+~3GGzd-kr(A13|uR_@pIhp!d1^ z$x25==ifZiEfxs-nz+Az-99|y$AC&wv_e8z57$k(4F30bARgxmB;$4ex-?TdHm;G` zqC#}4ltPq<$Ppr}IQe{!d&;+1YBm9(>YJ_G=L}Mu4laGZfB#FrfnXq{(CT+_(97e4i_7^)X%b8qSEKJNFsz2#XiITs0Gwtu~71Obl zz&xDFfI#x!!PO1CI-KPHf^xt((HOz^S}oqsyZ5DHlUMNv5Z#2e(Xnm#a_a!DGS|;8qUK`b4QRqhlx-#k4ZvQ zH4;M#T15<(r+~=g1FM$aX~vE7lpJy z&wjha4B z4|4onbw{8!Dvgf*r}L#EY9fJDMb??^bX&@pHFfo&e*Zuzi;cpHUtYq1~Zqt~P}Gk?FM0@BZxmi^xA%@n}}q@P73^ z=u^3|<7%F~KIu8pw(CB;pZ+0&ezQ~edGbB~>~`b*Uzrix^93q=4kiO@ zKR$d;-NEUlijb{GqL!#>gp(Kzw06F;Tuv(q36XF}sh8`@5pde5y9We9l-O2Xl%LV( z?=29F-|A1r<&1aLBf|ac`J`afO|?4UlVvBx;RqLQfezI;z?MT=x88ME6BtNi7E<3ZW=s(b)tIgH`A)JhuGgfi)V9)Yu4L!-*3;(xeT0I9#P(#hhB3C& zQ~y6e9M`Ymc(0;Sz@@&SAsZb7oiYY-N|V)^qWR5~va+G08n$ny#~t{uk@(Z#B_Nj) zzSQV3dk3;K+$~yCjL} zbx8A=R^s_4DUAf8UdVM48?(pi^j+#FEj`P-D-oyHju>8s*uM*vAm6k0sg~de$;a;t z#SMVZ63s0=0upI6+X^`>0C(=tO+Jg)Taxuw?B!7%MB->bhCRN!`^=-z`=E`bz)Hnr z;Nip%{Be1A%`rm`oNvh`A|M<`QZuG)p2;k*f}Rfz!$7FVOZ9#9q62CSpN5xCx1&f6 zusFBTv{9^ENowV~>pB}cG{MH)DT1=$N!<_@v*YkelZb;4OPwgXBG3es231C+^o$k} zGjxMuD$`uR&+&j`Sks<9U8uki+g=y_?CyUYZvT1cABUT$RI0hk(L0z&dRC!Fo!$kB zF1VY+@{tv+aozCI^ioJFqPaEc`>vfOT|!YU4(uYD0-g`)yi)JVi1Q^nQWKw2nI7M1 zy)(V`^v#lU|7BhZ2rWT!zQU7vYl?^{PptigaCXQ2AOJSim_6ds!8lQ~<6EyJXEn)DxE5@?;?KoOLPj&^mE%APbhwhaK?{kBUgeFgbMyg$W~ zwW@SN52dDT>fKL~dA;svI{LAHud5Vk*{gH|ByBwocYRe{T%v2`w>*6VDm-dt&t99rcbfr7{cH%oXRx-p)gA?lfJnMMmHx<|_qW|GsYbJpu>#wRG+o zyX%mRdJf`>^ywOGwlb9`$dqk*wvWPE&HTX+)nul>`inf>Pjy+M`?hmfueWBbHUaXO z_^z`5X|--y+2f+Bg)9R@NqzfJQE=Z@L*m zEEm|R{LY+!$U{fqS&|C$6H5J|kAm0HkiqA?%)a2qH=nNp?^UmVPf_8;OmcT&Y`UI3 zq6e;ua11{EJZ^`&r5{G|Znp`iAbEY>nt6Ao;G$9dQ9$)}!-p3aA&?u+r$~DzJEem8 zww<3XFSw-y>L24;)#9xAPo%!j*E;hxdbzc{elr`5jyN56ASO7t7szGsQ^AEgwaKt1 zLA#U_PBaAvkbTj5?{R<4-;doWmE}_+8nr%v0J{Uw|B1ui?6C29RQF5dWv@eHg@|eX zR|aT_M{d&QlX8M*AoK&QOGd5KG-pRQcgN%E=gj3bxRM(6;K!{PU7;~IM2kF;k4_c@pVFGimfhTnMz&H^({pj6FEi3zPkj(%#(BIp0I@_mXd7#EN|qJhqBxbF0*kde`#W25#O+Jvqa91;(iAy?|m zuGJm7sC8#}J89U9Krt{k)kCM3ZYsNnPdqD8cO%C90A6A&_@?*0d>NC|QU4*@0-XcC ziL4Cae7^2aOz28bThfqE)W*uBR}(Jye8bl;GC{!1FR|g?sqhmaD)yEXbl!vOb@4Ol z2=pY;%lmk$-E*J+k?-v>M!+F}g@d!N8U5^_2MCeb_px(6yZ|hQ{qzqGfS+dsw=Kvl z!JG?!>H)JMQ921*s8dV|)6D_u*lFoGGQnG5x192miRTt`>@U-)8&OmWDc@yptXv zUs2y{VxH^H<{}7Es_Ifb|aNcGY*r?3`bo!;Z+p=hz7ChOf7QQ>Q>z^Y)>9J zb%{&r+JMZY3mfMn_=gxG&gQIdmgLOkgmWtkmxTc4B4#0vz{D!uKJ^&j#QE_{br=`} z{-#w;AoLYtjGpF|C5)v5z^lw-lr(~LR_iN*prk^2l&tQvVwX*GU&GUX6@#3;zh67~F5B6NF}AX0xU?kdktsQkh>?h1)Y)avm;)>v-C6vXWEnb=T8o z0adlq2nBP+n_W(bG3A`T;VL||>;Z@Yp*qj!iVeV+Jb$tm&8qPIGQNL<{rzf`tX(Il z`ZNK{nE!u~x?m16PO3kX)zx4DWwhl(+4loBa+;SMMvNu9`k{-~>$!h^s65gt`GJ}_ z#qFj^c}8kP1N!`TDe-`%9*N})b9-0!*R(Z&FZCPLnh`5i8eEC`Ay;O$f5eAWo z-P0|5KvIHtJ%dW2T}?l^z9!ahi#H&q6GcZ**z!!wGibs(@qB9&D=)NcBQ$$rv6506 z26XM|LBLrz-D>(R0U~uQR@&V?#zC48Zz#JXp?(DxK83ZTIST!9K@EsGC1;lvI1P|z zE_V~YzJ1mbug|N*1Gjs@5-<>7j9IQe^O_6_C#`HA4F`$m8%#X!4VG?MfuG47P>rLY zrwuOP+oQ&$O)svzmrqS1MSuy>l|NX6@ePhrg|{P3!PbKezA%NOi{GF8n$sxNI9<7Y;(jK>cAaZmdEj} zl6CPyZWUA`;RgFQ#Jkz%XBzQO*_#L=yD^`$$TQa8B4 zn#h4ZBD>}n0LyQUg~dY#?dodxsecyZCJD_&)(zJ)+x5X3hi(7Kp*P7#KTuuuN^t32XiRLCAokH><j=_p{JutICeE}J5t-Pq(SY%@7G`oV5MfS1QpC*R7UM_Mn&eK&~*B|xXJ#vOZU z`Pq_{?QJe%O&y8n31)vt*P90+U+S-~^CfYH+Q|M$VYUKHSqte(H33pNCP*k$72K&X znPNL`X`vd!truP%fln=rEH{xg1oosZS#5rYYI7&zc2jQgGRhHFX3sl3`0CYwaP7lfsi62Zwh|F+sOLqKirKZyE)fWBN38nh=hUj$LMN3EziM~pj(di_D>FHj;cm&Xi=@6P&=dkA|X zjXt>S`gJXqt4(;CGoUydmEaUf6ntpKP%M} z5xB+Ll_y4OH|7q}F}u#blh4?$RF?11`1AQ$nLByLt}p#cK)#6%XfV60=eByqgz;3o zWzuBf{;iERMK_6IO*qT{S_T^*^=bXLeQzi}AFO|2H7Xe6C(?L-;FUbg3Iw#Ac-j-L z8H0S`wqz9kbtpsnY`7lKj%f7{-d^8f;Gh~b@`t|;GQ=264Ku?!rQyA>a^b!r!Rj}Y zGVQVJXi^g^9m{;LKEB0|>cm@!i10$nGn3V%3eRpRQB^9K>{AC^lCeJ;-*xnrQOjFh zfg&yhum4JnD|o2B1e_3><%d+iYT88{92~xSi;e&>{bNptjUYAMh?U=>6>qM~PX<9h zu7c}L`#=A=&Mm}&TFgLrq-?QTc_ZcJ@uISl^~>jNp7kSNg3JduGz6}z`> z{1!M%5^E9Tm{zp;-oX0IF5FVK7ZV`AN$?32X>fqDRWy3BMqg*MiLe?kn<`Q~w3T#% z(sSLXNq}mKJsxQD$T4_^b}xszrfnEJx^ZZ4MziR>4u{mb{;~-MT)00&f4_a|nin(C zMZ{YUb^TIah3N$95m7m?B0y@8AP^W@OxV8~CjA+S>x&Q{RB^oNOKTvyTf5AUuxJ>_j9un(|B2iR@Nmr%V1 z8$-&ozQ;{PDMW0qD;@){*Z5MD8aF$&fa=^O92(@y9bjnd?E!0Pt8@8$L(@n^jRH@V zAe3&vSBxp1Swf#D>zgQAD{H%=C7fhk*vw<^Abd~E+2O3OqxWKVuMvxBX_5CACW2g< zh5*%n%#SN-TliSS8%{99u)gBCUKAtJb0G)3+BCDjPR!G`!neCmy`{7t-kHp$r&z+S z{^KUG@7A~p`rV$r(d07IX$=w~LAJCSbffH}y3EVXtq^z2^H?lCQ8o9J-64tCGrUGph z4x9v~TT$WP>h>AUFWt{K>fT~`Zju`}J)Mnytw=>S-RziZ4F$I{F?TNB@ZESVR(Cm{ z;humB(O(o$o<>FIzDy*>S#`*n5c5=J{14VAQ>}x;p80Gw(QD&m=RSw6S`X9nxI#_* zql-R=YjXO%8U*`@@v`tsxMLToUqRib}IuTf3+ z!;qa^Q$C3Dfzss-Ca~NL-1T>yDRq$$0fI}9gn-%u2P1Qwr%8l=UBHgyU}L@dE>nHB z3U30=*o;d0YQ2B9*E^Cn7qFo^pAM+^OOGxOr2xw@1lMYk0b3Ev_-___@|!-I(jX8= z7Yzm#+a&b%CvZT=zFeFrK&O0@uwbV_cH~5|+o;E=?>ou~QL5Nd(?q_(;&Z9b4q-ia zLnklqE6E$Nm{!-w*4Y&4JI22_UbcOzPJ6*s!BzWBBu5}vIf5iYV1xeKU6)WfrCchA z$EkvWTS?~mO0+@@6#T{@RW97}%ZMjFN>#KSx0N)(U^}kpfw7Pe7_ly~zKy3l*dA)= zyj$H0yu1GKNw;A-0(TY1^dI~WjC|`?m}ph?Zv9au5xe^t6a1rq0*Z@VQ3_uN4Hqy< z@^d~MJD-yZ7V#;@F@JkAl1QJ9c{H2hL|E_tQu+8_Us(ASjmFge$!p%HK?R-oJdXI- z=`$boR^?*!E}y^`fy0163H!oQ{OR-f$Xm9!yJM=kl9MC@*te8y@P88nd>~aG-HG*H ztr+#lQVDie(<;jU`rk5*!l*P{5Csg#T%Rj{^zrTf`mRqTWTs3gK+|A8q5Nu)0nGfn8lB!6BKS=V96p zg86L$!n9D@!NKT*4Y8oVJvSGKaB@Gs#%+R5S>b&&nuf9;`(@=T_#uc#a$+#|Ij6QA zmjSMO{|`LV<^2DZXZqm$f909)zMf0q2D|qkB;@Gg6miS+KOH^;{#O@3Ei|6l8LFp> zXAE7bWP=1~Z)nx(NtbL{fmqYWk!Z=P=cPiw{8w>NE4<#%=ghtK&Gq$HD%P)mZujC} zqwBgJ%gr-RFExTI^*a>TTrLW%`CKfwZw~fFI%s`6-`F41NCwIx3*(O~DiEf-eFTOx zPJK@otyil}`9Q0@#h?g+NA8*%f6e?Yb@QBE0y1ZVe9)u7@y)cw6{~y(udpb|HT8+% zkr{s<%_{;4siAyYZ|Tp>zp=5xmkOU03dtThsKXbq^9bb%&HxQAorweh*KAzg&_qZ| zr`1Y3T*rJ4N0hHC@08q1^0p)(pW)nZF zU(f2BQ)FPL*iyxi$RR-jW`eI^>2#Y(kw8r0*Wwk<_sHI##K|nLE|-7D+gCKlmawZ1 zPOMlRu%VoMOCTpcjs$)Y&yxm&H`HkUA~w6gqy^ysC_2x!_^!*m=L6)aEIdksu}vyMali>JON+cZ_Q;aABP>O*jcm zdI9Jdm+_&VlsQCC=KCHBKcc{aZcG#o%ve<6D zOSLwVe14YHeAk>CydNp_DG8?= zukIi`m+g<@VhxAfwzoIkTq051ei^%l^wXi&JNd#6uf~G)2O4X46&(@3S9<5?v2W1j zZrYT&as`+WJVFHOb2sK$LA3SkUWz`iH-v?Zt{&a=O#;BOC$~#H?QrrVRvVft7qC>R zgSb}r=r=4W-`@A7x|YJEy{dqhye?bvzQk)~)@k>EadiZJwER!AAJ)@-OhI|W2sOKM zt`WB2&EXXD$?<`-M;y*PJUpC=SxIA&=3HjM=1xusINJWSa*f+8N1#POF_b0r7=sVK zz-^6~v3sLSmzdX;RE2J;SsDSWO45Q3Zb4r#=&%@B!ry5En${V>GfbnTvD?I!lC-v| z<;wC8VKy>~$HjfGcj?1sMUm2NmxqbTM17RjC{?u&2gPK3)aZ*+4_R$5gq(sZ`}<)r zx`Y>9(z)GJOY6QYR2CBvaXbCJyOn4&m> zp)^7YD7@Y73w3&0hFfjB%tl1lU{-R)9#t)R3UaH7#1!k7(ekxQFM3XR40Uj(;81V7@-O8k&J|XbTF*<7n$Tf+ z-z4`;9#6&c7Dmlo`#Viote@aHT#s4+>~1pTg9km&hq$&h`h^lK;b+iQ^14Qe00(t- zp>$j7+3h?4%xP#+pmuc!UV-=IcyEtpaJW(chP^_zrPh?D*hs+RYD@5Z(^XT)cMsPe zOCzCK@|daJQ->>i-oV!^?FRvHyt0m zx3^XOdA=O_P6{*(Uwkl4?0^>!MBIoZ=_EXOknTYE(iz3yUo+ddTP84(szoh*sEn$RQBy9 z=n*RKb@6CB7X`Q%wlT9QvIjocQ_S@B&xb8hm5lEic^c5z*kWnQ3E* z8)}FhYdqeK*(PpJP3-7w@w6<1iQ^hmc)P{vX8h^YAG5DgWSrEG%Nth@M9|CpV!cP(eB!$7_f^h z;4MkT;Ysvc7($-sdQM!y57J$fZ@AAqcLNJepB43 zS-K*{R*W!1J#zHjZLiRNnY@ATyEUAG*Sne#Z%{vu<{Y_oFwEoS06MC9W7Fqf{Oh0D z)Ok)XZp~7j!k|@~m>OQ|#-FImXavDz`iAHD^Vy1wGfI^#j>*J$3oTS~laIvQ@>yP- z%pF#l05|cU6bkQ#iLs47-Qx`eX|4XG3KL`6N%rxDHBJxTK-;JzDMdQRxqp_oI(B~e z7xY+is9b&=nlJ`Vf;N(BEV39OF8rj$z>SLA-NZ71T{eyb6R^~)hgeXk6cYxbcp~AK zH28kA?e;G708ABfN#3>#R;GiTe5w~DY&v(3W;il`9D^m>6-l61lki;S$y`cXs0%Y4 zZ|b0uj{(%wn_c+ylYdDpyVv-d zqKsFUzTVMv+-|+`{g;TyKylOa!3y@zA%ozMr;H{^5P3v_>ym)IH(Wi{F8NAHMKOA` zx}fU|96C*>e2K0=$R46-ZGX)s8O9eM*eo=m0?tNtrZuxuptV+L0 z3pQtb|G5j8g!&;e-KmhmlE^4USBE8$ZisJq4#r5acmt|e4RbS0gjkNWf357edv3q% zC*vZKPZ7R%YiBe%kIFp@6mB#ogm{Zj39O(Zz+-`1pz}m{eH2bi4cHC&RSw$8Hvg?T zC*)w9xpU#7;0_aATjh^peP~QNYGfejHYgH~uo|E1u-W#B>TmDoK|p6d=aByk-?_Ng zj7aWNOJYdVw1V2v=rP%n#?ZPTMsl(Ixp_=ifM!pXCMxS&MvIgA$)F%6NPo#z&}mZf zIQ|)OuFYBCd2L^Bvx|KVAGvs1g&fy&_PaqVS;dlB-iF0Z3WY>G$9!@o%lC5(5tEO^ z@zpTK_hufiMrOT-Zv1rIO@uNnl!Gl9u?I|3w#jFX(`bx20=^A*XbXWo8cm8Y9S1Y zERwb9_gKjey(TAXnpOW<*alx0GWr8v2=4S-f#=tghRJPReJX{cHQNw7DY2J=cI^r- zOF%u`-=u{FHO)RuXG%%7`0&F{s*z$QJZHZI_Y%N`DCoSjuZF5Oc_<$UR_9h+8j}Cc zntFI|&s@OmC2635%`VJ$*jFgY;>_>!RaHD;S1xPvj`%hY<~76G7z3VG0vS$Vj0(iS zb5nIpFn43&a|vJlyoIOy$;Dqu{}OWjqG{N7#*6F&ly8UB6Pd{u$R%LflQIM@1hjmF zb|BL{3_9BfC*n9oO{hf;>-utq+cJ&Ea9tOlwoeJ7_bir2b*FY+cBA!hKc3G>SdjUc z6xqH%N&I{gcR8>>JKtBdA7}8pxzPtd@Xi*ao!rvAq*U7$$W-&8=N*>EI(mC%F%l%) z(othYM$fl$m{5-tv$DF`qB%H9KAA_9ZnM2VS5&}XG`(1e;)D(O|e7GhvO+!DnXg|YzDA4Jr;sJdo zHt!HkCRc%*@hoQEjL?;1yFLdR^J5?voqJQJBTtmr0Kd z8$8+7uiCDs21r<-f#Ya7&ll`R3~r&@R%dy_guPY1QJsLlSTW$ZSBICy^`kz6dxI%2 z$Q`SYz#*NC=wh41H2Mw@*`2JHC7Y$Dx?yz*8rMr+Y|(@ftW zXJdGd1UL9*say(eAP$K*N0uihn`wacg!T^TX|}?xzAtC)#Ny5p9LU6igNn00z4d*% zxar>0(MDn~XzcW{;(nZtDG9oC@M>Ev2xzK7*46~Iw5Sxw)1tz?wzL_;enP7^q>>ri zZ**`3(k)?sFC#0>n;E&mb0y|NtYUDf)6=%Lpv;eheHn5Xb$w+ro_JfCJ6}{$ zey`o)(ZO)iqU*{=Jk5f*9rnV{md33KW~PwbZ(oY&<-FQxLuJ)b<|bs!5=n6Y&#otaAYk!uC`NyT((B)zbOmV?y?=F&zY1R5Ml)D+I5rhutzG>* zv`GJk-Rlz#x`Y{Tr-{)CLFouCgDI}r)jmAl#!0|pR3!1%=YH>lL1%Z)^pcLEfR)?k z0-w`Jw)L!D!DL6}Q$ZGwyPm&)CXcPag>hT>tov1A_ZyG1IOfO=X9Wt9T37fbD2mM| zty_9OtvgUmY58v|I;UuqyUGXYG5Gt3J%L1y0Z*=;TCrjr=PK% z1U^U2Qf}yl{c+DFhhqCfjf9y@Pm0sUt2P#N7txhr_3U#TfH$SxnWgmp9^=j2z?}Gv zAz;N2!TNdef7HPBjvMG|b<42Wc#B3o%I;Sx5 z?G0e98@#Bc^?s@(GayHZ;{W zPle!Ze1Z{q1$z;&?X1Q3LWiUg*VX&!=~NR8IThns^o9kp6WbLd8ZDJXgUXZQ%LxT< zk@X@ZFOgBkWYUQ$@6$x!9)65C<_xR%(LCbPTBc+gWw6^E1ThHT^0aMTJBUyd5L_Ui z*#q6ZViSxmELk^;dbTY!oDBSLS?d|O1HM8O&f1LM;f#?b4sXBAy5-=eACID&Wt*ut zjs=XRzxvWy1<4Xc@dl~4k{kVaV5L^&Hi7YdaeU=wM7cH_Sbi4UzF?}8rmf2KfP%Nw zKqd$K3=$m-G(q(47d>Nd@A!#CE4}eVDtX$oEl!Cdu&Yi~_pGTC!E1bZX*l$*4x9Dm z+YJ~$qKBtU229}(b=}}f+AnLAV0IWFx_p2k`N6>s6@8tLlz!|LTv)`#4a}rXq|vH; z+f=N|wFThA!+hTwe?21AASyk93&Z7Eh9+M-NB5~;pK$+*aWqTqaxrB|Mr+H z4v;Wgm!p_6805bm{27ED9=M-vr|n#+LG1T`@Q-6J=03?q^eP4`8I}C@On>}E4#JQt zB-sG|zGrcn@Lx^_@DShPC?9>SERF&S!9ShlZ^!aY2=dXxv7d7)Q!D)aB)J^HK5t*l z;VYw4{Qd0hZ~$jN!G}>|?GGhHNAJ>*|n{%hh=H zJr&D@qa%F)iLCk;RF{*RNlrcDU>3bF^Ft1M&DK*X=i7fBsV*5L0TjdOkOjEs&LaJl4(u9777NGBB-H zkH9yzEBH)q=PZdNz!#x=M?%?pXlN+Yakxz%r{tj~WsBVYU4=qnZ*QtS>OocEdx0yh zj?&##!Ot8wA=j%Z6P=0Vs#4SGyty)UgRA>*0;*No#a5j6GmY5a>%Y2QU*)VP@alM_ zJ kDT~Yw-z<*7pDg&Vw!Af2uNA?5X`C&h<`k-yR|D*BE@>VX!7#f&<0Pw_uN>O{ zb>j+1Q)XyW6T|%He3zc>0tiw#Mv(bMbYX!#IS9M@}9 zK)K~}J>c5MX!c@Cq5ma?L@LWVMOvkjHwanY7myRO4n~M6zqLT?-3)H+Ze_}=l?kDH z0J3*%i$ec)Zmp=+xb8UR`qePLs9Cn3;bXntlWBhGOnH@=%TuSE&izGAg2#JvfvC(e z@+lP+)Y6$uQCzEO&Mr|d>hPTbeOZ1rnPaV;x*{Dzh2F$Q}o@UvDfqZnoTPX zI#HL3`@8LY>6diRjCIg3>`3MEqGENalBSa7N-D|sOUYpMP zfwrd^Lq4l*sp^~a-)P2S0N2Y*Kj897`CR|x zPKpxHaeucsSP>+V9F8#LgaKh0gUJd*w6EWm424*0$m1edjl-g{t&KSTM zibgDWTkK-p9^b~5Oqwlc*MY7}D?M)$cXkENptq`0xwaeEVQu?j!T=?04h>Y&plcb_C09r9Z9xtz+9_r25aroBZK zPbagh{^SwSjH3{qyhjK(pz+d^05O{+sZQmusgsf5Rl7-ULC0x)%suITD9I5Sw+@mVbgm&I%q zPnp-j`I}IpOBA`~mk#N=e zkXoUkpGdrX%TL*Cub7lgV9T`RIXS)_km=z7^N%cdNJG~)HRYdvzf)|PAwE2L{K|ps zrV%h2jnoFG2P4sgq13+;kHh03795=^mVbJ4TFDLy{GDJ} zpu97wqTm$*uFyOI@bM3Mnd-2D=5TsRs1_>O+7{0(o~)sxO~9C|kaikNI9Yd>JHcm| z-7v~BnaD!&>=drU<8Y%2fU5PGN`EeIh-@H3wSNX^8URT)@n{Yz$AijcrNbhdg(hdW zM7cNm>T>x5@Ih3jJK)E2n#0`e@UVPDtd=|6)F$DeP==k+sGMA{+s)5z&*k>>>c+Pr z`kAnMTI7*ry@7WYtM!gAfK9R#eB4~BU^wFevU0E+3JYe2kzdO+UQpIT>hcmzun&(t zkq=}9_UhihE(=lY{p5?uyUvh`wH%qvx96nLDPkIbJaU&G1(<=;>MF13^l&y&Zh@$Y z-*yg6Wqp}nO&1SB^#xa3T@kol9(>}|pmdFteauzwi>GbcDX(5lm%-M_kP8bS#JS|I zm{Oga$~MY4D>)lE{f?whVfj z7fL|jE6Ha~%>79KA1?3;4Y1J0(SG@k1sxNww?vnls)6vzkAcEMVcn}G{CKi3!y9@o zJA`H{7F93>-`XCsdF-=TbIvr5Zf49rJr-fvnDV>d;i9ODeUc5zz*n8`LJJHXdXdjW z@742vnvx%|S!d-P2C&?iBT$oc5SGtMymEb@*HZ!LEr8$7h@J#NtoZ$lhGgH+f&<5x ze7X<{L>I+i4>$bv7lrbhF_ZoW26GUj`p#Ys5LcRl&W{oPk<$E^Z9lsK zbS7bc+zpr#2bU^_(`oCoR#;eGX}NE+{XLF_G-9dntjNu!iO%%xF>8P^NY9Tim3v5A`AI3KJ_`Aky#S#AijC%a{xXAEO=AsgmQXuiRO{8aH$5!AM z^C&~CSI4y?EB$NVkFM(`xbovbI=PNMN;~G3RMIZ@pyA8Jo;;JsJOm7JMP780bC;mT zm1~Q0uwZ89>s+p8s|99Mne9^BBCrPHF|>?u=-&=As=Rg0zG{rmeSd#c8_lr~W|>Q5 zmO>L`Rv!TqG1zH#{;+-kuSUcttASd<=NNyCFm>On?Jr_}nmva3b)#&3x$ZD>nyV_B za^DdWYh5=tt~fZIj`4Qu_=$SuApIQ0bXnPx!~TBiOjuZS_F?!u{AVhz%qI+9I^?*Z zXjjg0jC@qGVV9#cz_04$yi{`(rR+3TvmxV#(0ZQ*B~!o1o-zCyr)`zA_w6bHK^UF( zjU`+}uW*E;?)rrW1z`y(F{$`D03C70Qx{7nVd#AL3n3x<9}<%Le-M%n0nYP1%fK2# zUCYd-fMxdtIP-fzEC#C`7POu`=bVjjWU_ySBwa}KaDl1(2Vbb;dTcaiTNeG4`kp#W z)rWrc%q=md5!ig0oxherx3==}X0WgRVMqu{lB;24qxX(8q@eh9RW9=O_(!A$IP2V1 z_G5q3a(hCSfPjUBoxf|!xI!1(L$x?kL30i_Ib5UrJuU$qoSco|uBAqlL!U5qwX4?C zBn8I+g#~vi^!Gt2L0}6?Po`Sq@j;r;IrmD*Eq9W7e{dM=|Y6J)XaZ66s3t z#k^#6BH$MgnSLX+>1wJ@jdCzYjji2;NRd__1hACxVnUy1QYnTmCLg#Oa#7fKb4#xz zm3YHS^}Q7EKL09lNfu1XNh#(6>72Im%E}&$q7q7ajChnuPw6;$Eruf?%4>y%)j*#P z+%4UYrh_Ny;m{RdGb*D~^Yob}kGHiYY#$;z+?3mboF;;$Bd_RYJzs=MTu29#c`^^V z_h8@`!sD_#D-$uS?8NM6Mco@rcd@*}Hw9I%V*#;v>i`u6+g@!FMa>O- zh|KJ`-A1+DL|RH6tZ7Q-?5D2-8X0x}kaF(}SC~Sr*Pg5tc<-X}SaI+(cBdC{A{#y* zlhuZvQT}&$;z=-&>oNU(XYXtD9xj=r!LcSDZt=?J$GQ%XULMa@!^-O*HiEPaD` z2vK^`L8W42zGcsEHqPcV)im~1*7dg6aKN}M_n$bB((G5K+qiL3CkldV{QcWQKoT1r zcmhkINIXU7J$x#wA4iN-no^Ve>BRJHpAZU`W=_D)`ICC|T{it%U}WTa@*v1*u-yO5 zSAvOUtpV&#j^t!Uiz1;InTvl|nA&eVs^it{li!EH>$*>m7e50|C3yWXdi}sA_ne$@n;I*D~17$X8Y(8q>nn+ z=rQKJRQc^p6mA6zlzURif1)Uhzf%;~Q*3qzp9}jC<5^;HL5Q0o1>*488RT#37YRb1 z-B}{R_6lg6R9<@2~Nwnn)J*Axehb-tsNqk z4IhX1o26^6kfSgTzyMf8X2ENKS#S#-+j9b|bztH?wW7f3}ab%M1Ca{Fd^8^q3M5OE$EOq6iKv$qFnz=sAZVtMMQ5BBet&(Y_n6{pPG|K zyLHUVZx{uqR`cO;5t*C-%}+8pf64YShYh<7nDP9%d6Kg>=XPQ(ug9i0J~Q8TL=Ezp zJ&8tH;sN{!9pW!krMhU7t?IGDbne0zOgfVkSApM{;LEP%eTW3@tCIiCM@*9!7T?$rR$qwV ztZH&*V#@%G>!KI_8PKQQrhWpoBv=z{w$bh=cY00_4F#R=N>r3H$n}l6s^E9?VGrl; zo-!hOa>{RG#gMo9v$(Q6++b0Q;c5zS!|Y>%czPBKwW(x)cQ&*oNP~vh0DTEnq2Oj? zV`ERyS6WWY<3bFLeyY{3AbHuT#vC5%MX3*sU0-*2MtDdbB7wzz2}N;u++EH@8|o6I z+v(aS-jCRkdhZAx3-FIN@D?#Uq2eNX$RkPm!F^BqiZDn8kz-04Pwh~1=x7_pMY)3M zdxnE-dWeIiLU=ECLEpbgGVEzW{Dc?)hKbeIIPcy_%=&r-Eu-g#K?Hy@R}B9d%8;h# zSs8qp#+#qHJzExET+-g1Ei2$IKV*x2+zjLKi7)%AL=%M^u*W~ckc8)3>JuH}IZcpZ zgSb1MOyn1NL@@i!;!Fg{lU>^+-f9_M4^VpTNC&Otr#NtG)xm>df;Rd)laU)}o+(B? zXRFBKd2*lutes4PFD5G;PiNzq4FPnF435=d-X6?o3;C-LjU>d6$yEjPxuE#56{#CU zTq)_XLjZf+Q!gRr(q->J@Xy6=llG^DpZ0&gan!j0W#DEs=_Q%c1MyL+-Vymkq1SA; z8)HR+?zYQ*8CbWwXo2GPw4N_FXVjkOF45vkn%Fa=jGO`aZ*u(Un2gc>NXrR0Bxsah zVPK)73!;s^a=QVyuGDd@@{nkFG0OHC9Z(1u-PZ0i_2_AILP4^bH$iM=b^>97OzQ^L zAgP%4F44BSW^kg-c^Q#DH?NFMMQDNC7D_WKIw?ufUY4Uh1d5}95%s`E>KM3W`?m|) zdOC#g7+m_AW%~4QzUdgerMknl5R&dU=GOgz-}o>hdv)I-k9JZ|Ob>OoSlVlf5FGD2 zdODz8mp(2BC1p^^pe~_fysKKTOjU_WDtw9lR{vg0jlJVdhXv>p#j}`Kpn@K5J}n_9 z5Xl^8I@{*@aujn=etBtzU4~m6aWkW)FEjIt2OTCRFI^lQh_ZyIil;9*h@3J*F=h@i zD2PgKd@sC5A7Xm?g?S1mp!n!rX~aWPUL?IRM%LZ%~%ZCi#l<7`YE_A#9oyQT&m3IScZ$H{7) z&SJfB{85QH8JIR3*jJKA)R$ggYs>Wy`!mvCoG>I3w41@pp!O-i_Pm~}yhjnH^*p&l}oU%RW>5onofp`v(Pj=%QPzExSNXtn=y35(0-*Pu$8Hn}F%) zPIU$Ul)Z0R{~$$BzUBN~GdOE`r8BgmBXVHrMC$wAeEXHC1(jn$eH)X4yjWBwv94&^ zuLMi#8>mI%bUF$Je+Nf$kULahGbt2$+wUti40(xgACL|beZrOc*_S+qv95jC&ibw8 zS6@AXG=efdq?g%dth>etR`~Xu>!t(fJY1++19WH;7(Xdg`~!TEfsyq_fL6zi2~xlLHYo^il@xxdf9P%!On!uLNC}nu zPydBdU=00iKp=GRgO!WZJ3%HTi53ZbyI()LFQaejUN+BXe9SaY{QK*`yT`jwGY83N zRBGRmh9!RKskicdUakXNQ2xOS?NC6X0Z-spSe$Vn(uUk$7dq2vA`zk!KA}EUGXIZ< ze+EJHl}e`=4q$X{MtrNoWas3R-|PtlOpjHcs4y#MTl)DV7jpt!4522QjR_Kf<1YeW zZw}$d7}(ebSn`3th~FeKaKjsy>Vr;6kCl}bz$IXCcrhG;R<==A59~5vgj+&xP3q>K zD|0nCV!rrcqTL^Lsv+-V1DK|r`c=&#G5W6c%}OM)XC#?ca*ea8c&1Qd3b486Ae#7n z3b4q$)G%~wu4!Mg^e8hWMXavlL8PrNVWJ@p+R=K0LYadrgWcKpP2)*6?fy#Gh*lN~ zu1qw66yEc0*W(fJEk`X;k;Y8o-AUnadjy!%v8T0KsgZceT(B-66pc=YW%OLCbwzS36|}&3KXb@Ru1p2Dn8Z1= zX1a|0#ANdZvfSXFefK7AO%jPKEo=!r8!$WzTQ@v%J6KIXanV9J1&DutT-+Dd?bA+e zb-qh0;=((ty4lZB-fW;}PuC!k&IWw@#RLIh&HxL@;m@iO95y@u{W+;Z@cj62DqpxGVM2Bb4YlJhG=w)V$7vdvZQkt6(n^O0QR&82a@=(FLlc_d<< zWR1;K>T;X2Vay4zS7e(T&;G3DlZ9&PcBL!bTtBoWy$}90Qm-Ail97Xddt?y22`e-R(4e5<_ zOqV7#zFkDz`|od(4dxH(hFCr(a`{h6m6m4K3-lw|ys2he!X~nLJ43erA}fsx15jR^^bO6wK;9Do392D$ zr!nhU^wrrkP$&g8Xi}AlAb<*2XkmS3W-!!(Q!U!8Mz@Jl&ZR$3#4ZiFo6DN zxTh|FB~vUQ8~*jt)^7nnf?r(Czl^Rf+V<a-8j(+2qZ+5Xk>_$DQBlCCJ`B-6{c>Gd2rod#`*H0plk>RlnWHF~oupR(4~ z0N9h--Z9<+!G#IQIG)6t&5FQRG5B-lzG0Z5Vir#3iu@x(q1lA$M!1H)zvG=i3jQ__ zGG4*dpFJZ$2JpLQMEv}B&nPF)Nthg98tsmzM`Qf>)|=)tY#bXa1p`vkLSt?+3d*k3 z#|%ZOSVXiYEAd$hl%ThRo(5kgaVWqcnH0Va$9!l*$B2G-q)k#8xwSDf7I1#jk=le}P+Va8_Gazjv z4dB@xjQZJe_E+`D3=QJu+3$mu%lMMacsfgwuV?GWNSYK&NY6db`*6s3oz?G11Jx?* z^sbSm-4a_OtPYffea(W_!;nWVI1vvwsr!0a_L|h`|*Dg-kWnc(7trz4YyO{N>uk z&p>SkX5*A&bTHkJPeyr&&KPG0ItTraV7)jEEc9HEE5x_|tjqq>LoasovzJ>R* z1&I$Ce>-wa|6mZyLNfjCr9<%c2|V;D;iG{%rkZ+6vagvBICR|Zf6*XlT-@_P9M!#} zob_EPFhgFUV>f_3#BBEudq^+s0USD!i+dIFy7GTk9#ReTY3V?Bf8}_VeX2&W{0%($ zCB6HTBbDIXw>MzMF@uQ=`RYB`cAx7@PYw2J7oEpUFH@EWqUngL#haK>@geDz(nuz8 zFBhAomZf7w|4HN_VbMh_Q@$%oqiXqRSb7MUdJ15w|J~)eBOZU*`f{qBhQJR%P%})2 zbkC$+tiX3KFeKZwlf)vB@pf?qf`!s~ZKXe^Ytf z@3UOs*pVf+i=|9LD;XUPaKp0JIHrm!Rsg;QL!A?KI#hPxUkOwjeE@C{aSsu_+XEgH zw|&%`VQ^(*MOxUMBVf!alglv(&vCuR1Xs&sV6-xXdKW;U3T}Tlj!x?Fc^T! zv&TP->4}-NC7x`uTTYq|rdh45o1}$Cs)#sAm$8^0Uy9C&qp!!`36dno+9J3|a7ggDXTU_j9u_=}4g5Wfw>uo%9RZEf^2}p> zO1^*0XZ9jCmfsW|%QQU=I7FwjDUl4G`Y6@`=y$cWGEGT6`nIp#pHNB3^rrnuz|#4K zf9lfvAu+sZx#Z7>qRRh^BC!!I{ATGi+9roc*8-{gqE1Sr`L-CB?I#NL^1`5Qu_-;9jK()Qh( zco(j#3kD3iW3hel$HEE=vv7LyIpvkYn7V(v-lQ5g!Dn=gi0T-Ks0vO3lexuf$(2~3 zrzIw4kp@5=fhn$f8{{##OMn{VuZ_&@z-L3DT+2qSRim*uad*0|UNGPXUM5#*nKsM6 zBQn0)j2Jo>EWj5G#8kPq#N>zy{S{B$O05ZHGIsd7o@QCGr9C$9wC~Ufop|h~1%Y9Lz55KZ zgSsC4?65>cBw=~2b`SR77dGb8wOA~67hUd~n3Mi_FxM8%M-UPur z23>z6vc%gZQRrZ7&Dw1I$wZPe(bwPqQB;ksw@2M=6Iap{dO=5llt+Ddv^SCGVF!Bi zT9+Jqt7@ZJnPj%I`nc~hjLojmYb~vZ9NXAjSA{AN|MK9If8aH%l>3w@(H$K!9W?}E zk`T{rnQMH|*1=+rhaK{|QGjmLY@vb0ll?H%T_+^+9((&@+o>wcQa2-7Lq|JD9r!-{ zWkxKQ5!RgEQNhA+XsRKWxOymd|E2fw9rki|=(eu&^@C549;D6DAA|^&S0>T7N@it# zJfOlE*{Q2ei0<&p!5OK80N-TdTE4pwGToDVTX%G#Yzllc09~w{2wT5&5ikimU9t)K zaYj{^$Au4ZAiB_&c)R4A03X3GKgZcMHP_HdNU`8X zYS*`6K^)78)_FrO#-@RkQOR~i$P_^!KS8W15LjNRBd%4g0B{ge1QHSwNZv6F%Us*b z8Kbf+{Zc&|+*#*9R~=vu=S>1=-;BoqM#@V|CX|RH0>p38n!&%mSH50>vFWh^1FAPf zEfr{LKZ46N`}`TsB>sXkg)>yAHe=~_fab?Xs~X58qirDq0G!ctxCBgLx`vqH&>)Y7 zseY)iI!N?wZ}|ECwy_Vm$sb(*lP}Zt$$eU9G$0;Hs^)Ka#uT2;h5C0qv+e=FGbVdr z(Jn|HIr^fW8W)Em|K-a(`i`gLS@oVvi}@wMVv0XbC~%-}+;BXPo(H7DbsPu3GzBw@ z%{29s!Gv=`cHqt6g0UT0MHs1Qf~jGV8(lL{t9$=d6iSq ze-AkTG-+*FiKVY06;FhY}kYc~5mSP(OVji1^dGn|q~;DL!yaiF^%-e5DP-u>Lm zn9f3RR^+yi(gSznJ;O4rG4j;FUrlo1y9H@CmllB3ASyC(7j5^gHN?g6@LL3&dth>o z=0>_{OpwOh8V|U^Fk1g+ldvs;rs1ZrCF+5L6-hV=hlSKKa8}k!{g93l0-zh7Lijx2 zqE`eShEolQIzD2xu}FkvB5oH$jS$-?daJYvhlr527A#MV%c$9-kH%4Jt@XRT9)n^89#RJfJ72 zG_R6ZGhTUSb4|6*nRTDA%*;~pkbFgdG#OB$CfsNtk6OeV|0SWQ`VWAJYV^#>$*Qwg z-t3k=qaywCTX?+Qv2(E{b?rqmL?9S>OZh+8>AH}%GizYkQenRk=M`=9btJ3i)06+Y z@ZfQSQAGycJY~yw>|IIOP~q{~A4ZJG>#-yGT8^@DK{q>}Ezw$PWDBoT$OiIR3j<*m z01}&;B{gE64})R41jN|u_LL-LYqa1X_MNYR7Z&pq9%buZcUnH)iCJA2Ssb2G-ei;s zDpech@Cx@(zF2{LZU*?G%qq-#p$J2bMG~@e6p4VM(!Udcq0bG_~oSp0F~|hLv&g70f;XDn~$=?+WvWRB7{tt zx2ij;Aq;wHhr-sEZ1L56~L39sZ(bkDV5Wcc&|Pn)%gNyQ2#C6Q`vP zrHBrPSIAEW!@Lf6tF9F4d2F|*j|ydOq$DIW<+L52&Z!FRD|Q4jSDGXe;owasv~oI= z-s1P#J$%I}*-CKav$$@SlCO6yC^YKH8qDWYUS7+letcUnTbXFDw;H6O)?9DnDq-E7 zOwQi(y3Th=oOWPnZ*T<0Sge9*v46E$Yn8@qv@8a2uMpjQIw3xn^rY^cBZXK%MTW>T z92Vl?%rjjD5E9H-%CO0`Yn$ZJD)=Y5IJAC`r>KoPs*TNis{Nr^N&c6?;z8j)vuE|aRG@`{ z$geczaNxFl^U!e;rgQigmIV{I>A> z{gx>_FJ_?f{;a^)%cYTM!L zY#~?Id(wl|gjH!P*`uh1P@a}xwb*~|=+gVu(M9%nx%c$D;Sx0etE5Y9i>h#TPXo6r zeYC9YF_6h~v{6eS?|l1IxKJ`VM`*p?y;&6zv))^!a{mLq>os(!YaI#f&{8RymR{*~ zSws4m^_HCW?=@YmSdPM1|f(nh~(UH7QI*K5FUf@lt-6P7L0#TQE zr&{-Zo)zdO!aoNzc$ppeXe$wRB?GD)l8TyN9Yc*JO;eh46^i~) zs5F1*EWc9l5b98F{cG@3{)$Parw?GJHpcHhyfkre}DVysz6A;-M~36@il zfHA7hSakIeRTypJNxmH9wOC;5uk<>#R)Glpc|=ifMc^|!y08VS<)`bfef^^j7Y840 zqa6w*kc$seEOt~I?8;nmuJ_&qMGqvTBBn^dYa6%whG&&BnM<66PY-~gE$O0ta#}1m ziaso@tW4i&J(p@8#!=zJ6)WZz3pc;8bsr-P+-hhOcw`s@+b9}eakjAd>OQZ8 z%jp$1k-<&+^fla=-{D3rWN{zw#Bd0`Y)2t0FipJP>6N4c?%*8Frcg2o&jN)`U(<52 zUOAwc6@}`D@Tlh64#qD(WvO5oS0-KT=N!K9K6@&`QbMulzLQdilv&#KkNdo&McvGH z1mht#z7J^F_K8^7r{vW|xUiVq@|KogSmE;k?>RX{$-9bjD7n+4H>RfwXW2yBf z(=de@f1;6OR$S&X)nI1eU;ard8kqjSinr`aLM;9$-bw)%;_+e#*g^#CPYV+p`@MII zkj3ap$|`S2j3c!}IUH}=sfBIi{^@vZvJ)}-?T5=Wb8dBrSk0w>88dD=fo~5Xtyzt> zyAht&ZvXpD>UA5i#j>J*zdJleTMrQrG9#71U3dikngEA&rM4Ezm$?{ z+ez~oZ(cPnKE2K1u^Kb2>R61KPKf>sk+whl5|)$q)R&+TxC$YIv$_!I>zd`&b4;-L z8MI)I29T1!mTUo_5XM|nx^9Y1O~L%iEH&&l!kCl|9b+?H6{Y-YsNd1TzoiLBAVH5) zw{l%gd`E738mW{7Lu1WQsM2Une;+emuAcPlP5);(r5ojS2U59L4(8!d;^vLFYM-(i zpM1&Zc|ZF3V#dsUNj6T!Ng8ajD}~RDwebDiK>ca@%3Wd4R(O$_7g-2T5xAUw&#e$^ zE$*t2qL$F8Mg60yMS56M=g_}dC!EYS%PHV@ha^m`y0!Sfw{Cgap39*1YV7vyFc*PW z(c6$z(KBdj+0%d^kc_lLO;#SV)ayjk7(ef�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

$hW9A=13c*N z9bXItYw#K;m$8d(2OciX0Mfqe#Vsy65vpm9bx~!LjgMG0aJhzvGCAV-`89x9`BZH! zdw3Ank=AFPBX;$j4e|B6$OiXU*fF+(%#yd)_|^N<;iwspI4MBiVxI_RcpN!D zVuZAdG0R4gtKkj0vBcg8{|bIPt19n~6}gtk=(s7@;>I!Y#3Tjwa(KKe-C=5+e2Uqs z$z{Y_PL-lX4@(^mlS>~PwV6s3 zWrdvMbq~R>QGOge$jG1DjAqL)(rEu}N{5&GRWm4XUUiMO}U3THr*(E-8^gRwf7fS?-UhZ$8^){@q(*U@^yTV{j%^c z%D3W3jgwdaUUZ-O+(@q?c4~wikGobs^$`hxZJrSDM<#r|yd>{htK#%AMoy z_bYEn=3F!JFm%bi0()EerRc>+1&?1k7_XFN#rLGT(o|})QQs~tmP^hDE=72(|1bG8 zTkrgrV@#inr=MFPBRb7k@Wi&B!~&IbSDbJ!;zVF?Xm6zw%civ}F9~n;QpFfd1}>=w4rMR%sx+QDyK4>l@HKD&yBBao zc!Ku+va1>BL&*-$1S;Oy@l{Rrc(!U?62|&-5vIu2hD#PHqL)_5pldzA-2)s=j(ec* z9~z53Xg(p7!$v%KY0=M`mFxDa%i7hduD-SM6qa?{^B5ZcvllrpYI>-<)tvzdJYD@< J);T3K0RRkK%TxdW diff --git a/02_training/statics/hpo-experiment.png b/02_training/statics/hpo-experiment.png new file mode 100644 index 0000000000000000000000000000000000000000..d1d34858319cb1b49b3df9ee86009a1cb5b063b3 GIT binary patch literal 87400 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∩rPN;zZ9YA8JU&Ndo=-wMfc%I__vg$WtQP#m9E{(m45qB zAg9X7%s9XyCFt2~sg2%$$u!g(&@5)}lYCIrja_Jf_2L0{YUNLhgVQi(waHp6TsQ%u zJXh~{H-eGGW}dMfOY%!VN$TwfS80fIy8Yh@vE!y1tvlTxtTxSXpiVmX(pd8gR7Q&i zcJbKzm2sSnTxr9dQ2Mtb_G9<8IW=IzD|&mtye89b(iKdzY929#k|AS8(bhLaFYJ_Z z@1-KfrmJoLv~-N17}+~^mY5&8qa?I*LRl}S6ZrOv(e@07Yt7fj%Y2`&LL#OVf7SPb z15G}OeH5Iu6KAn;zQUH$JZAMPnRf|7I;Yz@lVO|7O!4Xg5coTmIj!F1Wa{LgOO}48 z>hcg`@i}zY8Dl@O3tv{2a(0q0wk=U@ytF(lve#EaJ)0aX6|E)SBh@f6WAAjpbbF9} z!FIyAQ5TV|MI;RX5SFa9S1X&Yifr0)Pcro3zn^7tX2w^M+d#8My!FMHAY@A5@J^(r z(mwpI!=(!=JYPMu=hH_@ms-cC9*TW-7#k`pB{_^PHj3Ks$P}z}V<6LNLL>HK;UY9T zugH5>jbZ_lKCOOuIO8>Y@RJZ}H7!jb7{xp?2=!~_MZhMz+dY@j{CtH!=PpnFcH^Qk z2o13+GM)%g&22ddUn=&2<_Or1J!Gn2?LNnTu#Z6OLnShSBY5hvy|%~r)P{i?qM7rl{pf{gSzGY3m7}*M1 z-w3QFQx_eVmUsvDT{YFuGjDdeMbWFB8U+fa1MToCmOTqKX{t%2wc~LCfokmw1i_QW z!EvR8DsG1WDv|b6u$8vpjX^vn=Ed%UUGFN9(EAM^xg*j7mx3lZL|1^R^A>#wm0Umj z*hgED04}!8LRVY<99A<^f-?k!AdP?2t4PorZp=cDB|Qk2o6+(Ohh+3e&R{LbRdYUx z_|55nPuF}SZ>yfR4LtO>zE?&Khh^ak1US1EMPB8dFv1BT9DBE3kBK@+SQL$T%7gev z=*Qr^@0-{&-(}a@k_}PpZ2W%iUI-@JZ~giD6$NjUkESFoD4_fcw7>A?Q5Gy^j)Azw z=NSgoAjScTswr zyX&e$+yQeV;)eC$9pl8l!!Ls0q=Uhl`Ry0%*)7cEi-bCukbG^nU1+OdVIBy?FGN`! z{jRC{U(g_RN>DykOPf{aKm5P<`uL2)sp`UFZ4Nt}$p${Zg`TYR2cYH=UNs?<5~fe$ znRIiDzS2m%%?gG(MX5LLFS`8Ypk^tnQ(4;(8k=IV0r<4a!U8-Sb(6l?U`X3DwhMQ? zy>_kM>*x$3-iT22b+(ltntdT7v-D!HY5uBU3jRl?I1nDe>Rq9$Y2 z(^#~YcSUlIP8|l27Bm{Za?YsrThlt?QedAEHv_Rl)D6@MkV&xq#*gN~)za!*&H^CC zOn2n(G391X5l;LURl@`gIgjY=ErY4zY*Kc&8;3O8^|GhsI1ueS0XKeu$6H^3h>=FC z=yR_p^^E9CqK=}#7f1^$tC^2@R)E&k75v<*wsYHS9d)A+409FC`@OGfb|qQa>Ph`P z7+DS=0M!jq*j75tb9?!3yYS9vY&bTNbP%L+$$$o7QxymNl|EQiNIsQ(9fXgOD(ojW z{QedVcljiAomf(K9ZR&I`i;5q@npu z(NN@}RH>|gf#V| zFH|KdpL?EvzPeO%h5l}Ijo~hI$|XmxX53@whr~iWi)*r)jh!$Yz(>Aip|jM8+)l=^ zhHZ$X{0D|0^}8yrSMs!Od>$c?19~i=`$mD|g!%{~ck^P~-KkWfS9M~{HjiKZ=sR4# zG3w~YMdjBAqbX1fhyhlucB|u2J})hBt0BGtAB!eZECQGh&q;iGy8QHuX+@`xfX8{Fg zje!vlx+pI`&tckI(rk6FEJY!Y;ywU~h_?h6bLxQ#nUVSF!<2_t-i{xQbu@IudzAMT_hv1)*c5tC6S| zs%Atw9$p|aIn%ObU^VYHEcRa zIGevPmR(dyS>^Lyky$JWbg%r6{QO^3$4f3c<+|@eM1_V{CIW9l*J52$$GF_1@yqnD z#LZ+Jzn~IryOtttU`D>`c?SvRw0oLV)ks*p$z4YuZ2XxA@k$5Wruw7((9%=Un@9Eq);WXzQ-@ zpi&Zm>qwM2s*KE|PNkM)B*72gkO48|6e?d%g5}tji5$PSG7dAie z=sTHDfDyPuKe5X;dOAXPd4Yj45S8ToR&w@ntyNl>i;063xIM0PRIqa{P6b6aNRLEl z7os)%`oOKaZU6GQ+>U%jQ^x2ygHRyM`-3E5DjhIW{)fcxPbUc-9T_}X9!(gDAEsjM zR=t0i-%W)StQ!Pp!6OlX6pn(FG$v+*?{j_Zx65)WMGDD}iETp{XY2IW$={dDp9vO1 zQ6^G=!xvZKSQFDP^#nQV=sWgD^OK!pTpD9H> z*j^rrphag)F>cbT^DopRi|8ZeVaPgT2mU9vfx-88-*=m-!?Z~rhl4I51r+-4Z7`KK9f$qDc7*?o_oJ*;-gNuQWQFCWZU7J@-#uBv?oLRiU;$UH zO8k@Kb|?beHQk~4(;tzH-yg;csk|0g!uHLd8Sh zPd_r&1%~1~)3$mG0*^J4KUW8TdJ6E63RNk{FqMNa`j}(+h3JP}X3a-NRPRk=WJL$25|F*>S&HZuDmQ z?kYw<&kbo{6dTFZTlsS16;?P%#U`>D?`qEk?i8Tm4!6CE_Sx$%P;j5Y^5asGGqzG=>N;a{-8RUtNL+uMHeRa zM$Mflt)+pDs9#}v>bLCq1p+;?e+%0FFgs+Kn}wv+E+k=^_feth>vl{OqI1|6L-B^C z+nsK>z3qlGL^HTv&c6N`myLbgT=;?E-#1bw?h!CMZ4;Jqoa71o+zhC0&0%MwrV*pu z(U}F1t1fwr3K~OVuS|U}ce5^_xsgAq{6%P(9F1=apsbwXQIP9Q2OOcI8Nj;#~#k#h0tGOO&yER+OIs2H4S za`ewvg(uJItSIwCRS`_91TC3~EqYV6i_uX-EQqP?iwPTpz5&!RKt|KuceDTigi-LH z3IwCz$~y+YTRNcU_7d3lV}j#koEF!-^!Mu^wwK#5Wgy!yR$p$&*-E)hhr^`$O(| zv#_I|{J&w6qlH(h2$NlHLEbhqzffzyi)sCXv%>6v`YN(@A}YKPSbmu`garpt=-YEG zj=&wQ!M^c#FfhvN8Q1795&PN0TP=>XcIR4+HhdK_RE^t6oKbnHTfGFG&kiGuK<9Y zoGO7M&oM>b`hA;p3#W&xoS2KwmTJ#1-CAX42j|Beymy!w7cse!knqB%LZM$9fe2;% z23J;lX9lmu?mL4vv_kYUHa0$6rUYENLh$X|66s~j$0oG;&yyz^3hyw=mE!d2H!YN# z@$81E3-!_CZl2sOdn|>PAE$A*`{#d$wo!h9<Df8eWo- z?z->06}`LmTiNLQ1I2?Db9^CRramBpP50Aut*Yi%SHmwl?u|zdO&m84!|&LbnHAix zy7)>}#{ppic5#C5mS~xLK01j)tUDt1`^2UTH(+3&k_3#;5B!jPJ3oJj<19Yd)dnd! z870H*J*P^oUxN>e%LzW;FJ;Ph&gERz1*Z=91<%%9Vv?#~_Tz53^*My_Y#(B9Hh(+s=C47rXV5nQeVdUUYK>wbtEe2JWo9E*dV7lsC zCbm$3A$0YUY}N4r?Q{mz;ZWaZh*`TmJldPdo+}>JP*^Wh$C1{uD_80eD1`U;wL|Hl}>^xb=H_ikY=T7#I^ za;XAb@Vr}VQM~Ibz-{=3G3Y)Ta>hmz))&e)do(wZ)+I%WO&-BW(^#xe&hY0ON*Z3b zZ0uGcRYe%ZG3n97g~YtVy`Xj_;q<14_vd1)R#lENWF8OKGQrN=j(Rn%wK!tLTz0&{ zMro`v&FZd=2|lto`O_+0C7)BWpv!~pxZL#$6whQM!Lz*t;A?cu|3l*9o zP}&^Li!r-qe+=)939Sfg2C#m;*ozhG!}2C=z-$x6SL# zkU>jNzZ!Iu_ImLB=HVvKu+~nNvoY7A+DslrkXItsqOny7g=&q&_v^gMYxJQ{p&*|- zE8gH@Gu?bSej(S_Yp07fx6GrHg+hNkY^W%znmXWhqjfM_15(L_jg({RxJe&-eu+_d zk>lADocSC}T9F))!me(Hw4|XyDOeZNaZ{i<&UpPDd;%7UEk<(P>9Nhk&rD>gBqQei zh>zP*P5it#=y+gzOq8cq7?`bjy(|JxLz_P1xh!WA@yyz2Y zq~hb#LIX|TpWq~!EmB_^`TtpV>DEZCKnQ&7x6BO3yZHj$bSiZW`w;IlTZFmPM0oCQ zL)`dOT7t(y7qW^ZY={ig%Xi4vDKOW^rzGb%QaY z%q)t)7%aVjjGih*Iz4(KL%1fK$;UP-rkJk!fwA;0NdajviW=2DO>cbSpZla(vO=e6 zKU?L;{2h_Imks>MOr~?!opvbm=<;m%r7ub~J=0sKF)1{m69i#@CEa2@`6J;x<8W)- zqZXKnjwiOLD29zlr&6v;8Uv+n_~y#UT-9S6&^SI=e8dSBqo@d0cU;i%B&c>E~DrG>&cn26|$js~iF z%ly^M?jc#pKqdXQKJy}&mw}kqSgo;fuJs~$70p1^&-Uyh*2k3BK_C;EW12UoPNw!@ zT`?VTbVr(ZCzdxgU^!ncfjK(K_!5|7jrYkp*j`NhSRZ`UA>Li9T;o3fBFb$@fWLoZ zzYJLnulPk5a>GA0e@J$}79D=DsjA!w`m*7qF|}s3EHn0Thh$5snaC|DP-)=WFd@}3 z%+q|)Xfj6>Y6o@)3tgJ2B4;N9j8?xknamHb;Lp@YF!#2OA_L_x>>GjfC|h}qGJoW< zYdw?FUiATWKgKm=4|@t^zY}i$B&z) zo2Tr`>t8<5ex|<)@LrM+ly7Y>deHK-;8C-GP@KCt)s?BcEZN=|Fd&a@3yneaqWF&m z^zp7dYd^fqtZZl4^h+pzhSo+5;#H1xe;|*7&Py~$R%tnzveG!rq*h%n6vL^QkahUI zD=e+nCv@3hb`B3^)>9LDciKGnnG^nn>AFV#EK?oNo~XxG4tBNzP|Tk+cGCfYr$t(a z4`Bhke>X(&z1bgZ!v)YJ6@(t^$PA_)@>{DFo2v*h!8?Zm0&WiYh-XA)e|}+n zJMb`{u3*KGbh_Kw5NNMM*Gkm!zDL@pog-;u>SR0CXe+g0ez`tOyqj|!t^ZQK-089o zyzPF{L}PM?b%vGLCEz6xCC~QMna}#ZO$%S46Imqdqhy0L$*6wTz^f?|w$4Mtr4WfH zFT@C{RH=32N}qg*^r4G8P5!hhXeAz_MtLYndE8FF>xtnr+ey%PvlN@*eJGF?h?i(y zpV=(Zl_cipU(?`uN#F4D*`WL*O{jpKhaU~2CWHt74FUrEZ2Q;=e z6`o*EsyPjuLU`EhJo7rAK}EV9PC5%d#=y=ItpEu)< z3H&+nSA=4W)C3u_fZb#Xh`?zQ0N;3*9p)L_ghQg*>!*>U+1(HUtv9s5H8b z&%eAV&mY0;o$QKw%cars*J)Ijjqt86dwC28-{TxfwVqW5*>8O@P;_&vw@&J^;Ubig zQ%vz?P(DXKQ*y_-%ly5tZVOtbrNyk*6FfDl_**aB&F#Y=fje6!Heb{L;)81orvk4` zU;SJl91t~D*miB#($H>uq^#Cu-hro#379`4#+#Bb4%ha~~p8{sh&qRY6-}5VI1P}+rTwyDI6ef>Y%_>t3kiaPo#C^Q%_pr02KwN0-ZA-kKkc!{Cs-FW_P56hhO+T< zQLBFjXF++H3ZDL%vI;zc;7wGM4P`>rYK2y0;J&z{VFq%9#4SU95BD<8!!P`qjvJ;Jq8|D+G!zoG?xuZx%s3T+kjUZr- z-9dVoeP%455L8sCoX#n2d(-&mId56Xq?YO3Lm<>Ky$rY5i8i( zIDuL5ttas|klsrbP$Oo7@pJ&EfS!27fJ~eIqOhYro)|~P$F<3kdkAT!pJ{d*u{e?W z^ObI^Amz&a#)wblk%qK#87!MFu2xx?AVpP!ygGRctBOr>n2mujgR;KGm$z;weuoo; zlR*Js?^C&-P8x5zgaBs*=;X8DzghxlA$&Kx08=$6GK9%Q2UEz?<(n3V1NZl_%&lqm zw@?!}QcGL^pg;V7BvFCm0|G+gnf{M*Vy-y*dwV~HnzO(f@iy+pee`8xAJAFiX+3!G z=#b%Te=86Xx;V4Q^G^RIo0JNsanyQMRq0<+X|wljli02gIyG5th@pYFVfRt>gE!wE zsWt1ySbGE9QS3dIxzKUh3|%@+?V=@yeqMw=DS^V<G@b2AOt|NrlauZk${Kzs$7!LM%P0S;`SnZ0}qPwF51{$Rw0-M@=gTpLam*q4ZEzH`dh8$Ftry*as(Qz`ogYsXQAqdZ5^SQsclBxp7U{p+ zF4jHiN9sJ}#F_!1&*+?u2Ce&GgEk`t*m&+R7aUMiz!SGpNH-qd-?g%hKqUm=!WM6` z*41Oo-Jrxh4p34`$UbH`miOc~G`mab^6HE(ss+sjkobPv z{H`ljMTr_Yl%BsBYbAO9Xf@mX3TOFD96pZLV2iO~e|XR`!pU9BzfJK`pyU7nh_r{% zF|F{~78S+#;^)WfqU3dva`l}fonJJT-!0=KXCU(3Y!G466m)vYaf#RG^<9lLHAQRW zpquvjQJ41Rnl)kcFA-uC303Z-tGF2I1!)c7VnztPh%1Iu=$hq_IsE5&&Y^Hd zs&FWdC#)4NyPsZ4xVPo^b03Eyvh6%c!NQtg$#0H4NBC2_Ig{e+0tpa&&ZYiHvNIC%fXjfWIvbWpVl8}_TYeh^a+KK5=2rAr2aB4P0vE3s@fwfuDu1|tD zzdK*26?c!X(NKOmaT4Vb4fv{QSa81e#K6X#o-gVuS`az1xGXf2JeW~}^G?&dp(dNG;zC5xm(6}XfZU#Y)doW+o+R^_hq2HFXC!P4>0ZCYk5XOClbx} z{$7Ow8&Da*L4O~19K3Ac4&oDcbb|_xNzd-CyEw)=L(chgk#+-NlqvmNJXG}Sa-$Aw zuJ&Z8%E%tNdefIbvt&5){ zn3y^qtn~HO77xpvnt#YHDo*!|e%B;pw=;c{$_yq_fj9YiSS9;pT;J%Dud1BqqR!yo z4ywj^$rd9j#GsLjm3Y*tvrdDB2Ul@n0)!=g%@n zYNERDed-Py8omjVI6LCrwDhYOv-P}`IuE)ZYg!}9sVUrl2+v^s{^ z<9Ffty4AWeA^yDFa!2TG%EM1yH2$L;=4ZBT=w1_77q`W-aR=Mn&T9Gkao-|ytgfE; zstfYySd>%w)q#4535ZD<0RP-hGNWSK!jBKZ*&6usd9_$GbAN!!>;tqrq+?B)Q-0~T z(j*-UXF$M;%*lk+SBow2|EC2Yt-D(gKNlt%4Y8tK98z^cFp<_^C-BdcNB7uyk!4y@ zTf|z~^_lqNNI<*_978k9bR8J+kw29|6z^S%_Xv>Y;b!%zIA_v_*ncsbU*T0yPRBD` zbk%fprj)|kt4O*J%Bws3DMXnV-_C?OyqjE1Tl_>U7(ALq72Itm921M-zC4_Ibk0cD zFy&dU#gmsf(SInKl93EX+_6;RB7&}tBm_&6Q|?a2N{OyC3LMc`W~VD8{q(uwyOS?F z&W(-sAmL7Sb}Ayg8_n%oFh|du5pzf_xdVE3-=9NgX*n+n$hsr$hP_@UA&2wqOA_z@l}?|pQHfQ@6@*kK{g%%+G!grC`K}XWJQJo19Sy*$~y52jJeeg zCTA@>B{nN1d~Mz*3|RgL^cqrBvyVapoJ@&t+ny{sak`SA@iM#sG{AsQcyd#P_+wnFPR1*Sx0q61;l+VGSZGb| z>tdr?YxUXSaEL(F33;ly)MFN%$nkRu`ANoufojn_?FHXKh4Xu@`JYKmHusE;&jE%+ z2Z{nU8?3IBCX?d6iifG-J5{)HwW(4ki@V7vjlRP+V&YoaCzC&Pq2c*`28-oi- zqMFs975|9%;ClGQv_T>+97p1lLY0z@`!&$L=WJfXMlrJHXH&|9(gH|bj&xEsr3@2m z@3ti~w5Q9mR6KXBhn_xJ^v~GeY3`KM zDanBn?-(&}L=OtYEfc`-ImgZvnsv>uKHkV0wMwD^Fl~#R!+P#d*V9QiCOUdS#V)g; zP!N&6(S|GxQj6mF_Ut4!=-0R+xYQSRMPo7DQF{|1N=}Rn>P!<~fZlCa%36fZK6?4x z&6zq*Ei{VGyEWE&++fRwQ_6Ip-eDE-)BZd1LQkcFQ0|Ke`g4iLW$}Z?V7SgRzSAGpX|U=rG%UNIU1ItxU)s@jQdS_o!~p&6SA90dOCB zxddTB9W}zTxuqjDuo)N18cyVYYFB_j8t9kbR=ilP#2b!+@#Ct2_x)7UXsItPD$+X2 zr(QUa4ya(xwrwQiy4^RKTEZtfuA5b*OUaqWb2I$-TOBM z;{t7gTQMkOJORRlK~T5w`2GFHRseHvbM?Id~S00*VpCaGT%not2f~4Ba%z zB!MX0h+1PrS$&iYJbltKX^RQcv=NGQ)gX6qI7jRdaskWDui+DkJ!ViOfZ>3wuaI%5 zAo#dnUaYgzXRyGiUt$<*oKIBy+sHup)}01awSuUpkj~X~7M|y`rP#ZrtK7S_ziM*# z!>z=g5@3cJ*ZtYFhPa6^Y=B9!)V@T|yy?qT!pako;vibGqb_g1iw=52iS5Ht0sGs7z_C2)B}ZS@+SA>MO9TZAxEq8?^{9vwUhIm|3zaji zArp3}8#V?m0=J3^EX)8@U@c&0s^7eFbWhQq_06L7t9qtshWTpQw8=fBYbQ z$x@S(OQ{>ijf|N2m?pNl1@G}oGZSJCMeFOz z(6c9!8%WL5`iDa@-vF>yLQ2hD$_<<#`3aS~<~!u8H`u$EUy3|vwpxUxKbS9<-h8b3 zYd%DGY@~sg(k*xD za?sUQpHIYB3xbXYuVa|Bv6s6`#22}x?|yUHD1<*>?4dg zfJ70LGHg09Ba$UaWLsjNktK-qe_5%ALfp2Gu94j%>E!?tY!?N}`EfUVJG%=JdrNCx zTd?9gPA!(OznL#;TTFNII>&+Mk1I2GlW(|nby0>fs?k|r35y71Ly@g^j&Crnx<%@2elPtHVczG) zy3A+3C_kT>e~$^n5<(v@vj8z!1IGBaVRHbF@c5r2ZmefIaw|_Q1_6ovZRVM}BNgDN zu1`0q_BNBv?IoF|X`#3o%k*0ryA(^%0;Xbg91uZb*gvO-n0y{67(%I&gJ_0|D5AoEI3z#}!zHCVexL3fp#W;* z8=J8sqB9t;1Oe|8Y*$weZ%I=S=Bq#fYp}=#6;OvI8+9Y^Gk;z+^>gO8i$Yb`Vivx3hD*N~y)Du8hL?@e}AVl&F#J9OZ{LJ-wnbyhj z4mHcvQQ3%MO@3<%dXJ&|uZ1WZy0m8lQE!M3yCh?^9~cUDz&UcqFpMd3Z4?OlGM919 zAfq9AdmcXmJV0v6zaP#D_S|3W?ev*KEq#Na*>ga!yn{dNY8~Q>YKqR+s_gB!N8a@v zk)*zb6QdumCDUV=U9F59{^Wei@%z$#8;s)cQHg0JKEOlaIZx5?IS$Viz@W`oXSuJr zFV2zXVE=xYKbh)z^J_z#L`M&;E`Wr0R!#RahY2?zS;8I51(`%!-|1y{l95h>N(xGy zA1x1N@pLd~v-*Y($piu+{I;y|6sz{P5b_On1ff8N`~Y>$;S5{iZ>&YzH`fd@(}%YA1_B50coH5ze={=7+vjYnX&#irpKQjIIBSe0l zI@u;%TLqy1zHA3z($JSpK#5d^Ip(^y$zomU(>AZ?X-fuVH4SHRkLYqQv=O!}TG>L{ zxA`d0@y9U1mvks~0~5mgf+o6Ox}^6#bOksvURR))`o3j@RIS7$+yrrYZ_Xeo0T~=) z*3vrz6HJ&iK{O;PxjRcSF<&W9aetb9+i*^{M4#=?obQ;z=aPHB+j_#M8)nl@Mn_A= zFsPE;THQ=OkD|octdv;^F?=QuU`Gq16eoQXGu7LUFMl6kt)R}c@dAZ)+Ts*-S%lI| z?Nf;&C`2qnt~=`F6~x&zzAlH|5-slciAaKQj%`|q(0(lGkW{)6bGaSm zk?|UW@pk6h69RX6O3S!^eo*@69uji>11{BbCwYFY`oOnluMLQe54MdSBWqKu?A#8} z`UsEgEI`g%shJ2<&dc*YnLE1mlHQqw(iqiQEebmPfjJvva=H+8ef0MMzp=4Z!V0_> z;4YgM0gUK%Dm#7zQV(=r0GO(7VuI@@r}K}_A63^pPfzCy&mJ^X2_g!ixVfx-fBPlW zS$|_r&zk}Zr4!jE5vQv~R9SGsMZ3uoTRP91q97C}gXV4%aI|tuelfxkRJsT?`j~`+ z_|@!DvATd&Yc}}OYt&iISRFEQP7X?&H&HzW1l_y z#BLK|;<;%^s896L&C;$bMa1@c(R;Tovzw$X?|f}US01h|chdQeTRDVN zgI2y%9_W2y?oXttDF?|R#E=i*@#xrA>%slT&kj7oLewW+uu1i?FeG@Wlg|pM=wV0v z63y;H`7#;}-zTnOq2YvR0$1FA%;~O1yM0$;tvN+Z@FYLx`7qSY>J>qTrMD&0PQu-_ zgT}I_!8K?L(9nn;um(6)Ap_}prQy>U4$#=(`t}>^>Uf!;HWV@dU0jB@1^c;hHRxiq z2#y_j?k7>4p0)_$rWyBfs_H1HXBX@r+{uD4;BT7%{c_$U!QLF^%X#2F$=|~!1U^*h zbjG+<@toG$0TS*FA!W`;2Iwzq(wfQ)w!wH%``1^M1wY*Z^0gjHF z7v=IZH-7p;R6bpSTMzF0-;8`!6X1}iY(*aV+eN%TKo~_qlc6rMs1ql-w-5>89Xq$H z5U9U&Z?QQ!f2p|;+}Cd4*G;?9X23?AXMfq*T=sTUH@7ptjDWc}BGrgE$QVQQ)%B*r z<=%(Z8jaAfq$iD$Pmw}i5nyr3uCJ608=_ojuCK6&HVOd3>qYwDu@nvM>Z=^qvh^95 zojJ&Q{Iue7jfDE0G}3;*9I2?;7m-_bkS$y~pLIWH8#HAYHBiX_r-Y_!et)JoK54yP z&@q*`#7(%Lz*hJ4*vQSfaVzZ(Yscz;V6;6oR?Omoy<7Zbl zO%)8!@R=CT8A05r1bBI$4H;{{dwimMp356(xyc`OU5u=dV@o}Jh-?Dd%$5b9cqL_Y zGYPByn%KA#n+Vy>QGY@|aPaJZ+Huyd2JB(4rFox%nURQA(cRrIlEMhwg7w6_b@$jO$Z=!{q%m&jn%m-lMBTeLRb~=h6V8o&(->8m0mW@s*Bid zI`RS0_q=178fuc}RIL=Ar@S2I8nvnc3qpolKjHq3IUJ>O=e>fH7^j4y4pm!(fe}q9 z!@c&to*TpXINW>4_Kx8tJHx!mHe){cei7QZu!AkDLz}#3B)Q#>)l|2E?^QmQ9A@H0(EZb4ioM~KZtNi@8p6sQ;j1c}`BsESl$69va*5bErlNH2tux?D8_D(KB z0)#O;`RCkp7r!1j$;)U=eL$P~?AJb^5T}alXpO4YV#vT{_L5YPt{<8a?1x``2gLcF ztmOU4u!#q1x>~!bV*Co2g_feVj&4F!xsAR)9Qj@Rc9{9CkyeL{hlKD#e`{CBf2&PzE&T2Ku9`3TQ;9^|WM+dlJ5TxJPv)2ovKzHgtE|C74b z^=}0y!MuyqP6uGTJDKp%S@I6zr8}|Bn-LDJ91Zz!N#(r#{o{Gv{+RSqQc8=8`oobK z$$feym57+1(zu0)qM^#LE{$0knfptn%5udK!eL~h&a)mWnO2rj!D1P3Xq(mvR5|@7 z4K~~<32a1y2vQh2C=W8+0n4$rpGVCrBmFrb zj{Ps@Djv9DQkB|kkAtJJuE01TrZm;vNKm<=nt7av(~e@N;Bq7}_NlFHL2rW&8$t$L zm()-QK1b~iqF;{7OEWpdzq6UDb*hH-ckra<3vcLq%s|GTP^+dcX)6J##sDW}?v{{V zNFj{gN1a@%^ zu)unXR{JUvJi=%jme`7ej!MLk=7NGMM6+vfxZ8%QQR2UY+@ zl1>m(j_5aubF5JcDbL(+D0WejK&VsZ0_`CcF9vP_7S{~Vt)YG4inJ7u2TmG>wg)y} z1bWrs7?8{A{n%%wPhDh1Ot!k?aXdECL9eqHzc^eN90VQ&gP@^eVk7GQ?RvD63F(@` zYI0r2gmCpU5Zxabl^qecrYC|%%?rg)p8Xuh1Nt5fY6Kgio*}8``I9;wTpB6Z2TX3K zKJtqJ)c1W|iqFS1r>i|q#6-IAbbbeDzsTgT;P?P-k$Swp8H6gaQF#0nl&zw_iYq&Hewh_y29QHzHOb z@ThHXe_!(jMve8VW4o13+QG?*ZuGn+qsvsc#nM)^6;!UrL*F|+ckoyo^9=JmXQ*+h z)8hP{p+cV}RhZDXQfA#9E4|BA9GgI{pt;bSKu-P{DqtkQACR2(qn%x`%2mX7TVy$1 zL=rY!&bIplImY@8Eodl0fFqj~m=N9_I`{b4G41QnfM@>ynuV+Z{-Im8E z#U*6+6_s&0erfnoKea>e6ZSmI&sxh#zdk?aWZ?$Z=J;4o?Dn^khtil{>!)Th+EIz2 z`1x}+*$KO?u@{UncDhtx%{9BZ0dH>d=DV%)-mBiDf!CiWlQnS}=$SfTkO`(jLDdrx zy2Teur>cz&J?FzJc4a>P!fQVLqSSyekN*+R%5+h%Fdp-(tjKV~xMo)C~qgl&x0#b=R7GpLyDV{M^?1z z_=K!dFN23Y9@yaY?V_?w&D;jnrvRYbl(MKabAeC2D^h7=h@QJv{-h9zYd5uxdN>1` z1Bxj1alsNsE$4o5h)91ApRpLLuJ27Vr+%E=Os+Ont0^)aJZqlMe9wO{<)8Uo%%AKW z=BW7|Z+KsRyZE*vpDkAajo979Z}Z@BcN5;|yQ_cmDnE)0$O8i~I)~ymY_e9VuL&Iq z?f&AGvm1X+yUp(p8P{sEmYR&l7iE;m5PU|(TVy^JK#+M=*O=Se57q!A|)jUnN6qaPet+US?6hs1nkGZk;b zrjtB?LG>#O#-^WLuY{ytOhKD!ob9d3o$-ak>}~lOYAff2Y$ECdTdOpUUh@0NDXHle z!p^MO9KmbeFVwG7;0Wg{*$^v@#b=ZJRl`l?iY~*;{X3jHy5u@dvD&~uQfIN<7PT@V z)%2d(fq$oV%i|I&@LQSS&DT+azX9}k^MufJpG-y{@}x^#rM9`VlVm1df*+R1g=y$1 z(z;%rxS8m#O$r=F1{^R|>6CO0HNMp%PeXsIR}KX%2@j{&*VltsajTsixg8@T7Z(06 z6J`9iyNrXItwLkWR<+FMYlA*y2q4TEf6jaI)9KORHv;|5a+Mm}qz$M6Y&eoQ%Q#zI zu2P4@1Vk(_K3Fk7UA-`ZWp4e>T?_Gi zGW5v{Iu6n7w`XNMV8kZh>9P+kTrU(hC9;rs;0gfqKg@@C#NOU~%a6lb5N=r{CK-^JvfyT!>!gdz`==Tg04gGBUZg#7)u9Kt(x&DKL3}E1(K%33=$JD|x zm&oM}huMqT_9`run=*U4?{VDH;~hsWoUQ(}D3+*_dHY<9u8VxKScr0_g#o86`_p!{ zjBv#3lW3lZNGhFQ$=uo4h9X^LI93gQ)dl&;ZxXHNjQ#blVm~N4BAF1=oKI3qqDiU7 zW$2i)Nh4xk{+6>W_>Hp|;X?Qgs@-^srw4s+3hdE-nY-(We)trpq+I$BS*u88x1sh! z9BfJZ`}MGL9}B>`U^-x##pBaQj6Y$<*yySQkTxvlt(Xm)Rk_J81_gUcYfv&^Ke7{ZN-AeTa<(DWytcTtovdwa zL`TEIe&-6M>l#MTq8U53M8F9qge;jHD(M1z_&xEWq`C*s8bg* zzTzv@5EGGABklVWH@#a^p(Tx7$x@5E0S}Ll zN^X><3_xC;E+F=Z(I8`o7`1A}f&AezV!3cT8&rZNt9BR*Bfax{m6MmK5TVgUK63Y~ z=@hr0d3IP~Nv@YB`q$E%>9xgD(Ag&uM@)2(q);B$*{H|)&lhUH78rX4!5c3#FUmw4 zhGYolrz1V@Pe-JzRXrc)*}olDcLpi6t5fohipc(lowdJ~WuN+6&t^>I$S$s~65~WW z9oZvAdjmaGeP)76sN*`r|KhVK|G{Tl?`&#{OT>^%a#N}o%9lDa$IV}d_(Ad7(Ra3) zHPnMdSTC!w=Sx{ngW+rzhmlI9OuC%-BTtt(H~Gi|S!!0+@tZCq2$EZ_dZ21m2JvgB z2kan|Loqy0&C|`P*z=OKopgYZ8XePjqnN=NqdTUa*Lo}s!2sp6(u}0cOlf{b{lZP= zmrH-xG=BYEeLuSfTi1Ew(SJ*2DJ=d$Wh*-}q^yt|alAAXP1f^i0c5Sm#~{aAbN|rq zU{s?H0fZ+-5&C|P#xj8#`94R%3XA7q97@&r&86U z@hY456oJIu$5xy|q(1oUpV%q!XYL%r1kja0&{VZdIkj`5liGBYa)c|n^r_39E51G< z0dCtJ^uDRE>c@-mOmlkbg^Xwf8U|*$xpVk!T*QS1-V;{CQUuuTQYLww6PVUFd#Elf zPXKQpYl$EU;c=c=Eq;V`R_;+mUPWGw%Sq;^L0@ZbMkwc8m9Gc*NTCLHC62Y>S0i$* zTm|PUvo#0*8zB3o{*mq5fYXMIoNe`9AB>oLuRfXUYXLzTh{pEhcv~cm2+xgxBrrt2OwaGXbYzznzRVJ71VrGPd8Hs_SjpzMNhdtoKf5KoY`* z)IGRI=2SLWX>>ENTBFJOy)>nRdi~`?nlI}g935O0e}N8NHHVz$Y-0Fn{^0mx?mF^#q$oZpRm9Hr%jR#_;HvRiZIeU{`I8iV?}uD94& zMnOzV2=PM%JFIH$J2e)8n`aVsKAy<$Q}B#|_sE2DK@m9ZwL4i-8q@V3f_4Qko%ALc zWDSlSN>+mu3xYs;Jp+&BN|Q@Ba-_}ZWn-ylBy#n_E)jlhUu~M$uWhBy*eF*!ZS3f; zT)%{THDeElLW(yCXuhk+dl1~t@2F93nK{1tijYRr?=~75F~sl#w37RF(bf38k4@d8jfw)l2OF_ZrcGohD#Kr!dN-L~HNi^2 zom0M0R?_#X03&+Vvzo%B+Is?xWuj~F(Ij&5u`mUCzLNe>r;RUXW8-A&3tbl)wZ#I& zAbYOl$2c7{_k@7jYnvsNKTtG*;Uwqz_@MwgspA+miwU#Pp%I4Fu3b7<4?|e z6JXl88%GoP@(*UqDC`xpg}nL%vu}tynO`yQ=hyza{-YRGd6POHH!`owpYqvQ zO`v_Q=KVN}TsogFsGEmDlS>7F_PWJSp{adBC<(yxXJX~FuGc4(eRQ_~;T-f23VI?7 z!6S7HpoLNEiyNxslW`&FN{I8_BT1xnnKSQ58p6ZzSY4MfVNu?bT@Mv2Wp#Te7`-pS z8@BBXW!D2)so}x)2(85H$7iSK24fY~iwwm%#}z9XPkj@nv0$U_=a3KTH46D5aO}=W z#uZ|lZz_fI{3Co`Y98F8NFBjHc^=cAP`=%)MauBhrLqFhSs%UnWd!b6Jnx`Y7tt;HBe+36a+qQ-Z?YD3 zA@+?Ly{3+;3vxiGC{%YWyJFK%6kD8dK*ZOcicxyx&g~PstTwH%p z#9Ulu*__cAz?=sDPQl{1C_UfE{Y-&9Tsw|PU!=L2`q^f09tV7H5bQU!5S`(;RHxC? z_A92lF1O1DIY-di%S-Y{g&G4luwuu>ByB2N{XL(tonX*+W~Wh>fKQxe6X4(Z&rQ)vR^|3_MTeE+hr*#BW+ z-Ru5kVb7;Gxa%ni|F*EhgdN&({CuQ*& zxt4-o9$zqWPuE0TfrW*2;QsjqCv4eUh%*Z#ACTey2z1&C0MbCDrk9q+%Bk3l$)+Ds}wodSMD## zRrZ7qV_*)~?+TIwG1r*DL-l_!SKTY4JPC%%=3%e!+Fxd%tfp&lmVPF&p9s5HQ^qwB zw1eDq(s(9EtOaT@MsFa>Qv#!xw%{dh5n9-%%3Ugrl4+n57v2$Oi6s~=6eG}PlE>l- z!Z`Me1Ooo*-}aS~o&hTkCcpEEmT8Ig#U)52|q7bKlJ-@i2XtmNe`POfNxWdh% z)0@Yd(z%*X)yZz&HZmK;_jKE-cT5gvD7@T4C2s#F{Rh2j-2XwZ%b>XqF~Gum^^ixn zWX(j@33#rk6gFt27U?#LLuLh^VV&6pK=(3Zf~&_1+3>LI3z2{JrfGL3o&42<_}sLO6qa;4O|h zO+YGMb$>k0{B3OGT+Hh#5T)<500#!-ww)MCg|TlR=V}1f6T;KqMTtox1qq1YY-Vf-D$H>6_?3;5& zq_SFElg}+e-pF9q%PZ?8@fW#I-Xd}X=h1+h7pW^zuV<*zsyGBfSlhP{eXxI}Wm|V$ zJlE6hI!a>DVGt7#As7k6sw8kJ^7vZ{07cP9G$rJ-_kC3 zymBZ&kn*Ne3y0w*nAon?X=l&s{XuVoKHWW!ZEp7sR=|=`0-==h|hW*Fz)E$cNq>JWaOQS{y~7 zd_t+)9ts^QXj||~mv#~W@u6iyWe_>Sh~<68E&$p zn~YBZd)Ki7vIK_VE`0tqpYvq7tMD)!H28JYG6Fcwk4w zq=6=+D|jbCX!(hpt6d~P;jZsN3QIjIs>kRimy>sIH8^CV9V{9nrmiUw}2$9 zE$4x{b&}Iw;{ENU1T1(URW<(iDY-o=L6t-NE{)ieDj_-8WDBH;gpUw8S#b-o4c%gRhC|xK+q)7!gWO6Ou{(+an$7t=*Con zxPXoH$b1#h!Pun;V{_DcR&7<>@pj(f;*Sv8SVfadive1aBnFqv4c&)v#kBAwAin-^ zAV&MkuyQWwH6Y&DvooF{VW@Ycn3`kycCC@KQwBHCa|Ov_<6yM&oxgNlHl~ntUqw?b_IL036n7PJN9o|+Gb;elLjf!e{Z`rh&0CEaQRgbCZIT-OnJ@`>gGTf zPNI(uwZKo!fkvI~;gLQfjF{_`jyW0=>BJEu|0y2 zfL4#0wx3j^|Hij&)Y-`RbILi!Eqoenwd50Jv%fvr@uq) zSEFLShB!=HDSk7KTD8N?`!F83HGPfpuHK;?NLiN>F&8lNHf@L`}D5R52gF|LYia&P2(@#Vh9-_o^-@ii={%f5B; z%kR!mwaFO5-z^JfHB~NBhOoA1XTP9p7h_a=Rp0(x$;hB9S%}Tc%)*M(EUXEBV?_+0 zW7hF02%l)s!pn_L;g4K>vEFXe*RskZABbLXKBAl;HH^tv%5nhz5IObtROvPKL_wIT%vRLedF+p6sNqA4s*!59Wn zr9U8;1d?`ak}fTyIoh8SBnNeiZGz7k+-M}zk_Eek-BC;A#>Kvn4km#H2+K1r=ftad zgH%(Jx7t|xi^p-Sqm(F8Odk!_X{LYRv=KoS6;SqY-M?_26^^&lC5CXi=4Y{eq@9K> zWG$g5=`rK-^~EBrXnE~t#@mrVZMcBcd;0Q5x>zo8Os+tXt&IQiDfb6tAKiuS1_wNM zpm3D47!PraUs!pMp9uNZd+PPZJ|+rzm2)mnG3*AY&oJ_=hp)UrNA<_6ZcTx_DjP6q zAW=H-gNgDCskHkauIe7mJGsetgsP{V{({fk2HP%3ye|U01@)WXrnFK|d4oE;cQyGz zSe2L!g=9bhp3z%E;bN@YCccNL2>-*(uZzYYX{M_Rr~xdV4xU%Tai+hds=I^e{T^}S z%j!rh@A_137$*d12(4F7D%iE+M{< z4~PCcj6Hb_>qn;GMMidy(_Hykai#|2YZG!$wFX*;8x?CS zYs|XZs)O?L!&vHQC;`MDB=`^q3G}oTYOewjAWkQU`6_{~J@_aIH-~m7gpAv-c4{r8 zCfkeLY9`||rd9H+8m z!P5twS828DeQp7%Tfg3=>HcFAZwN1j&&sVi_Q=0tf6;s&Dji#atY}$`^4xrF$!c>u z8_uzbEnSlzwgCSGZcMKEENcxf>gXF6+~PVs#Lq@!x*I5uRXRE7A(*B^F2@&XazX;J zy$n^qk28q~aT+&uhpD|AQp^6qWIjWGo?9;jxl?(Y&99gJiIbY=ZV?PP`i<{$NLYii zBRdWZ`!B6p%%lDaQH3&g4p?!)|5)dNdN`)l7rt9(e9-mUL0#|P(tiyf$yOP=q^n5& zRN27^Q=?oD`o(n89P9-xx7TIp3H~WA8gTrOC$r#92)VWtpsGztX$a` zQ`gw(g`_u5Ac-0gC8g640kQIPaWZ$kIW$hVd?EXOCY<<9`jTRH06nEVE4(R@-$$PB zw&3;#`I}P+#w@JcalV95kr~J2;>WpoWHlK!qs~x4WRtn&PA`u8BXmnnClu9fop10J zDOSQK7p;f%6ha^61pETn%j>Xjpko=_6OD~YD6$x(Io&QvLb=&Yd5_o@jy;Gv>d+6M z*Fe*Dm52dfph0g?+PNSzUgq2_Ya)PT6l@1~}!1#Z6}@ zV@zkPWk{6+33v#L%e8UW%QPmV(2$StH#OF?kq^U_IC_$|W0q3(Fm$F;5 z0zC}+LuDiSfwX<)Z8{-p(mSr8CaLXSm?nlo`XH>1Mx(d-M$V?xQZ;SLB{>YjjUFe- zt*@WEk5&Ah)oNX=qJx7Xw=U*3yg!Gp9n?Gyxv={QI)AI)t3NRsiW_eIc~b1zuPY?@ZIdR{Qeu?Sh%ZC^Sq&ni zH314R<2&JB5R3ORHr~hmBHsf6V>y-i0Z@+itSXl>xwS{n(pvu zu*fl55TW<5NO}mQkaz$g)M1|cH*O@dci8H)p5Fea^MLY#Kx|NJl1pdX&?m$c4T8*Z zdxuzc=58jV;v`MK^6QuO8Y>TM3F<{iT&ow@iF>|>pc5Dko|m3=+D-gn<(75qPZB>- zi{B#UHx)S<8UbL2kE_If73+0z7l1X+UpWY(w|>Q=rn=N3I_;?|=@CB}(#Bz(`2Gs7 zc1CJ-aA^z1{j_8M>h^Kg2Vb`rMd2d@(0HIBK~-Xn*-u^|+=utsITLb>sC zY9nv^{1Efy(|0#~p597mE)@g}oqS$9h4(7AqB+17=9vo7+t`AUS6z*X{zNXS&m{wC zudjWHZA8n+uF36!liQRCKlDuFd98TaBOUV`r-7~Ao;An0M=`M>Q3-qH;;PzQ;0wgq zIL|}W0s(TO(HdJ-d9PPKUlb-hiAY>(h1$5pNJm^T&kQnN`K*~|nybwh&+(kA1mK$> z0{my$V9jnNHOD`n0LCeRj+QMNLM}|^m}Bzh;S^Ah-750y}1l(D2K9yAv3uUu%=hUGh&wEvP`39KHX!1j{cH~WYJ6gk})@X^{VfKk=xC_N_bPIzV;5i(YTU6Bd+TEryK~|5*KNK!b}w^VIBO$4pu$ z{f|fu{@!8uWZ-BJ1Ll>~@~o~b72z?MklfdY{m%gF5>2Y}TR{U>OSxCQItEW#;}>24 z(C-StCyK0SQ90cDmb-sxudM#cyW5&UN*0XN{XB^Y%PYz`A`8&{?W)rY&<&4ZP!txSy@&%5 zO-ToM-`4FMV(J*kCX>m9351{sv)NCu^;V`71zwgBN3!a6HNN&A@IVAE84Pj-+(mA5 z2`5gTzrCIOGH@8`lbhFaFD_*GxcrM>?W~^xl>Dl4a*xrvs`jnhWKhbvk9q1$i6&mL zjVaISHjhKax*weu6B$0+?c2;9>>ZeP|9G3VoS~fJ0j}c*m`2d}xe=*rbc? zfGm1!sAUP?K#*q2nL0Ap93KO-KA^=I*vtB*woSP6($PgMsDzB2QKGtlXOC`{w`|PG z6yXQ~9z*J~u^t=8b!K_AoCV6NllOP9ZYB@;hO8r(4Q@v#1c#W#ocsCJsFL z1WlbE4h3wNFHVc15sNqVt`dF=wKVL=Vx7w;E+7z#YWC#}rXe zV6Ozqu=L@XYW{iBA`@LO1eD@`m{c$^fV@R@07?KGXSfUcJE5ec1Vf{E1Y{vAj_IR$ zBrzG7UFB%9^~QXCi;*0V?S;aoTY@xz$*eIN@mIwXuk z+K)(^bEUVOuQPR1L^)3$_FSD-BJp6tsj~+XdImmoh#98w23+n z(p~EKL>v?(%O}W;ET<>geVn5rBd`$d9_j<1M%9$B&7xJ_rtCOmgE~p!4B!4yoAoT! zeoV{ODF$U&U-02{TBip6j9r<2{4Z5jfnq^_W|Q#$EtLufu}=(2s*b$#CgJ{h+!adXE@tH`_|078nN~dN(wcQJ2-co!ITP`VEGRZmaXzz~hE7P=W%?Cma z(Z<~O)a09ViKLd)Z=-$nc!E#R5Zi&a`Ek{}7S~7HrYK?ZollrcWpu6Xo=TvlJdFz# ze=Rm+xx@H~LN7Uq|M#}Lyz8&x$73nopoHskf1ps?{Z1E<#&=Mub8LA%(DDXfU;~|% zhMXZ~C-qIj1Dl}~7}nby-w=70dlF9EUHno>-`V*ZQ0TDc{Yrfrf^So9R+3vBw9jAR z1R6e8Xu_(p9@$OtmY;|c)R^RBJG|Oni|dzxjj5Rr%v?QrrsCc#U3A14o51Hu(5FU0%1^&gr89f3X-jSn_AWE>=@gw7cyyb zbEiFW8D~a2I(UwIpU;c5SjnmH1|*+u8bqDXUp!Rb2Et%}&(GhrdcN;Y(vSys7a@b@ z`FjNeoF}sbZM2Gh6qnW61KSopml;0;tVj4W?mwws-Ti2{CI03_M0|J7EitP8>iF9u z3lyv$u_Io~)zY1fnwgoHS=?mE?-w_+UlD`(8nVH2_dR%XCClvwJm}B#T1oYBs=nWB z#g_LwzL#?LO4AYOUR5kTJ*8VUPUhdp%8hEnKu>279#T*+02`#Dn4!AHo=Kl$>Fj8M zjpb!Z;(2Hv(E4&H&!;T`60QiKI@Q!siHBi16d6EhTefTEPtp#h0Te3=e92@jvGz^* z+o=X8(s3Z1PNnN~c2FCRk4TR&aBlC3fI2nPt!d;*KaI5wzviO;N2FFOL$@}C={KgQ z4&KgaZ0{JZpRKO1G&Qkeistuu%y5{55)`Rb}k79*Aly*j@%Tw}o;LG(3)Nj^s* zW!|%&xMXP%k>)CO-bC%-^g!-bEQW0JD8y3BqTOu?O&27!OQz0wlhw8K%zhwG&pYp6 zI$mED-U!2L#GlK7+pNso9p68JSFil4`))(=A6ykm%1chGT+Uh5 zZawAuid#WcqJ!2)M@JWOb;|9^)qFIY^$J)OI8d3#8kgAlcrK>aKUYqQ()>*bN)sLH zgN(lKD`9%F2h%i%=?+Ik`Ny*AFZ3)+AxA>F*<3om^mrzcl9O$OoyUEg@I0<#`~IIa zX4z?44ZycD{?5#zOtIy)b(2n;vgN{0Mir!d&X}p&r7BhI|CYh#!4vK0KuZ`MK3`L1 zlc^>nf^23)+n|BKE1|HKxs?Yt6IRXF**5EQzgB+WAH)CdSSRN^{;yK%PQB`=+0Es! zLsE`!%t~`-$`H>L-1R>8M{sOa<^)S|Q4p&BMAZh;uB2{m>^^!ee#^_tpx&G$6@3d? zam2r(v&|sj{Xa)%r?@Z6Hp2?eaiv zWmM`fl^D9nV*IkI01;5)6bERtnfAN(uF>a3Ip}t!*^oSf=n)eZPN%4`v%OSGMHh&G zTzK=|;6`|2K=&$!AxU zI|A(K_`3@)DjPVYuBmDP3@Y~2#qcjgM$fQny^Xyw0d{JMpM*>5bl+qLwwULBOfIc4d_Lt1*R$W{E6@U5pp%?1cp zH4?I?I3guSR)g1+hU+YVB&nnSl_MyNmu{4^;SOx+f$92)2VbbA^ z)1N`ybi$fNW$W#(n={j(aW%qA0F3bQh8$R?9oqq5tHo5eSjbu{e+Y-grmu}K+*a{B zg<^ZsRt9eRP3LIN7FF}}L(OfuqB44?-VVO2P#P`BtG&Rl+>VH}maDykTNi~+cX7VN zYEm;)-d6?{a6NhOs2nYB6Ck~D1&Y`6sU54nU6b>;v659F{uQakTZqlCT6GHt5A6-` z*zF%mA-{-;jb(Q+Q-Bc|sNe5aWW)DW?H4MQ`lvr*Qsa}U_8F>3>k(jyh=^$8X1S>) zPzpIlq;i!Y7%_#hP3owU7x+2#tOzme)JCgS`tZNVEP1 z-*OFPGR0Xxi>|l3nvnlwlJzuYv)Qc6EGV>`md3~_%=B_CyzteLBNwx}hrkg-U0Y4X z@_FIR=F2v0-MEX^mSrv^b5ZWHSK{hxgS4 z%;$YpsxxAKdfNL$D2K^ttmD*8d@51*V z4tP$N;hn4Fsw`U5HXrIXw3@!r-Y;z8v%%9_PY}uEpFlG zb2n$Rd0Kp8M?SkfS_!}V0%?DZ1z;K-G~J8V!X9~V+xnI*z4}vCfT1>PH?8V)040Tz z`9NV_+qNVS@nA$3!PRB1r$l<}=E?*XU4Y>&w7zW=oc7aOTLMt7M7gQ`qB*Iz8ch57 z;a)%T`q%hkDxR!IvQXP?(pS~)d%+R8s1n^-y@Ky+1fwob_)Eka9Y1r;L(Y$Rxr2}Q zH9sftSS=Wtxr<7f)_&#=kJd=xWiB~Mt-~12&gguCDYn%y=L}_MKtchfWpbF7)wrDO zyH(S#AXo0nHsjVH1F5+`X=ce!*vr*bxr7L|yf|s@?VOFDHk}|%oniX;yPO{oljM<& zyks=xtu-n;dtTT^el|OWyrrwtO&H%Ic^Zl0m9phiZDD8#^ys`P#Um9cSoX$HXJ{_U zE*;qQf87~~Lagybh8pJSls48isojYAQLMG>%vnaWH(MH>+!|{7{atW`$AQ{& zu|gjA`Cd~%diO#8Vtw#>b|u+L^U$Ei_#D^Eb$WSs<)YkI7TS#KS$|VYQHK@st3F1>!x=oI~{_th=x-q_ZsB0U+x5e_FY0@2SNosp(gYj}`o z;O2|S*{kr8cybk`E3Du8`C-^7o6&Ram7e(Q6|9KQu*^ey4WTJ-fvSEQr$Rai=)f?4;ql81Iaj_4MPMG0U4)Ak5f zq<7!6CE?!-K`;IS$&&sakvJ0YhwIii!X+{3VT`j$II|;L3z?`fi2J=T1uSlRM?Hd57dH4Oo|H^o)V=#eH@%h1I&hS|eI9 z`r*0DjpLs=aqEQ+y*U45(c7a#@c!f6q%W$o4QxuG+m&hoxmmFp7N0^ihSS*Xq%#@@ zEC!4M{EKQp*0;r*-zr{PXfQHrQ&%;7sVgo^g`P3sKRO#8BkRaN>SUFDPNcnH8UZ(OI@mr4YIoU5&Jy&`Co{b@6LX7I+=~Mro|U7D{E^bVJBs8G-Td&<|j)+ z_eV|#MrBS0^XjFCHbKuTf=Uud(taTa^meEdi%6~)-@2BOc9fg>@Xa|toP^C9B!Jgm z$5@aEU{8P-MRvR!a@{Q(N!5J~Q?$iw@V()hKkrB_XK9VO72moEK#^vP{?bo_F)eC4-VdFhAT z^&J@|jgV5C31CN^Lw8Ug*bj%bx8tun8)M^rdEnHeuq(K;(U!vh0_+h1#r+|p@t8Fy z#&h`M`zk`DN;Mc4tDU85&QnCyXmRwS#>m`-!4(M16;O6ck+#A%a(VLr!II2H(IK~0 z7ZpFoZ2Qu{9R&r}#U=2;2-c7M9Y9#OSl?Hk|HYcvAR+Q`u#&jbducY7Ik6l?Hj60| zg^;g2H^sw<0CXG`kS7))&X|U!!^8gMCNq_Pu}{$T4LAhHulrQEaUAClZy(Vuc?lKL+cRu@J^J_VOvFD zNNz%~BA;wEmo({KcKbjA{uPX;Cw*U{r=a5c#@(nQDHE7j(A<32{99>w+00QgcFw{ZJ)ht{+jLsmlE1cc-5li<+rIMLX&25l z0HX$9)$2ZAmr*`x4k`ulQC8zVbIH3(fXer2!m&-MNx~8ctboYqJqUmGr1@0+GN@$h zt!#b?SB^s@H$^&w0p)Te@_g7Orznrya8(LItV~-b+iethv>Np~CI2 zZVHS4L)={k#oe^~gCE@8-2=hh2M-oBcyI_7+#LpY_n<)n1b2tQ2`&K!2o~IeyY1wD zo+JO=t#kI>R=YAGA>F(d>`d+jJ#J4dd1-vk#qNIYUTo;J}&P%pDg!7e!Smkxrzq$MWGtazS$B@^bF%hwh-`1WasV}v)M9s%vX>KOa#FI+NG1tyB>X23v|s!BJ-{HIg+*uCHHf(_fy3mMVYX)q!Bg3BQQ|rT>@c0(M@gV-k)&LJPjn5f` zF#LeJ*yQMvZm>2~on(2-l1mLH5@uVtb04Ugb$d}_+tm&l{|veaNF!|h(D_F0TS5oQ?`A1b=wx`k3d+({H_H7eKyDCIYsL+j7+d2;(~t$zJ8THooe|^x~TKJ^NpPNPT(>(HS$t$ zDUJ|rtWd@Vik-8eISCC2ar%-XY$s?CfdiYE2YDvs7Rv-5-a-}A-v}ZIM|Cv3HgsbK z@55t3MNI@i1j&qGA%tTAFt*>j(C@>^E;8oZU>Odz$B)KdNBf>m4be;B6@hE7cFqsD z6EW0?(@fG~$YH5n-hSxNE)JEI(!sjzcu#DZ-C}Lz0}%O2)646ALEK%1YR%{y)630+ zT8)K@x_t!cH=&K+#p~P5Neq=ap&>Yh37`=mDONqD>}&Tmops{^?-Yk*)J{7*|pkSNn`M<$wlm+39l zOVo(>(nc+&5mf}tC##iJ=`^$Al+!I;ch#x)o<$#)hA&7su# zu=OTMwf~I_y4w<-?@b;O&ucIDint?Y$tgr-Z5+LV$2zlXj6-m5y^tWp$Dz^wm?sB~ zJ$FtMop3k*T~DX%S9HLanfS)x-yH?#E-tXPKXO_uQO3|bMxSmQeF^Qp9B3GsgzLC= zu##*q`t8gMSgh(@Y_34-%56L1Sp*wpxjQI4W;=y6!kW69VEs%iP^dob$|u7tdouTxM#P0|TFs*! zc0}gSPk~+k0)g`Q#j?MvPotnw|D6yPfC$9S*#>ZdQDZLOCJ^iB(CR!xJ;laI75)gJ zyztE3vg$`hgt!&3h!}RT$Ba=UzYR4J#jXXr3F+t(RdR-k(!$SZ(-QB)Li1>ts^D4q zV*B$l=da_YKM%hYQJD7UEZU(%W7=H9NRjR4B-a?KURD(uIr}zdBaniBgw{%d zG=okWZJm09JlB3!o72gZzJ|Ede?WGFfe&$pRWN#OY1|x3^}Gd32$eFbs2cU8OB4RV z`z-8YymaHrf0OxB4t8#1(r{_+0oVYwmO{^i>RCpm#d6~$h)wEedaAMsm%dh0CMMO~ z2%bmmn=uC+%`uZ3S@R4*!0xkHVO-)J-z83uODuZ&fvWof>g9)DPHmq~ZF%VF;ba5U zN~_Jbp+}&;K3?gPvz0&C{es>n`SI;-W)^3pQr%Cxj1^)%4>yb`|Af{i0{pPGBL|L8 zRtUW>N~iJ|7irM7vCv{flBoAsMU1(;;Is)oEk&u;WR{~7nrP{gG7OIusf9$16)NejXb$y5_;_gyWNZ1oJCc5w-L2!jFC>hh_S4a7K_rqyJHyNi5%w*5Zrvso~7c}TtcB(*21dh2*7}gBEpqaJtxwHkCQb?y})Y#+n zp?b89nnZpaXRv|Kxi>)A;zo*)qWgW6D;AeYE+8v*)Xn9^16E48 zi+Iq>bsX~5(d$vsN22kbpbBrpv*_=1l{Eeyy4mCtrPLztzX!9Gz@eI`=T2D=vWfW7 zo}Ms9ZPuyBs2^XajL}2^ys#;ehb9L{URu^S+)q6aJN_i8iEWq3L>3Xp|C;{MRBy9I@Vq-fuI(Qmb zCK(v?B-mriTki`o;X#F%$h5z3vtc0wc)lDUcT`^v|I%HhAagY$jg`9E;J^z0)RZr* zm2NqTdOh*|Tx4A4s&M)f$MUNIKOf&t4O56@EqU%oD$RsYXkpd6eseDJ>1!QQ;6MyK zLE$%=S)>qjaFb29Uu`(Xp3My^FP()rOoO&}bEJ9WB>B70ucPrG?AX2@kUak{6KRRX zLSXD<6cM;d8U#0j(xn&<&rd~5&6bud2iM0---bkMe1KcdOmZ&ZI^m;h&wW{yRrMYt z^vz!tu50|-8mBc}7{mp%M_D0no6_@PR>Zt*sEIzl-{Yr7MpIg@=vp*( zTaarBI6Eo;+Dtt-hlUfmcVw>X=is%@^3EB$6acUfKoWcH3P=f!GmQX-h8=7=iFlrx zn-m~xDk;2`nQ&G|fv2%b++zG4RvvQ832*ufMjixByG`x4@pzQ1S334;beGZX2rEb*G8wAGmHJ=NVXrZ*GP* z7a^z#a|%(fYzScvcaawiQL5kKc*P38?$mq1-bM0o<-ycnzP|`XdnkVa_ZR-m+?*Q4 zp-#&-2E0osqgA0iDSp^JjcBJ*8AHsQgLBjCZhlWG(HAE_PFV3fFrWTDHfp6Lq8>(if0dZzA|pQH9ua3o z{Wh?M0K^)sK>&uyyn3wZLk}^>!sMvkJ8KDB`bcBwSZw0qpjB;{og3|FSfF83n@Lpr zCpz1aOF6YwFu@-G7o5CHg6{wm1Y$Iv+W6Tgwn}J zzJVV|iO9C@HYoga=jStamB}|SH{1hx6qYN9#M8P{b$QHfPozvy6Xmy`q2J$~8#|3- z<`elZ4O_UAA0hE~(kj|36g?D%HKU`Y(Cq@dk`7Xb-%^kpmlC_779cwr%X%{iSy{AC zX-4VAU((ma-r}6cQj@4qGaw$bQe))oW2v#f^YDfbIbvH1vNzNr34ySslP*67`!EJH zzk~G!ImmNU^%$aMd7;HTG)O8$0n|S&pC&2^47UBC>7&~ z{@j-DW_&2%oWz%Lbr1r3=HfDOszlMF-Wdx`DM}AdG)4;~V(0`RxCEfm^AkLXiK|&s ziu8Gx{Vo^2CF|{=q!mY!qTFnHzw_z(?91{^2&de3*NCW3WHPi?TmpM2NaiZ-yOsc3 zhwf>eSW8Mp;GQ25ki@M$ziUBUo}Ha|FDmef*_(AENVFjzsE&?ocAR*1qW@OpzF5l$ zs|(mbmpuPlk~U-|_#Ayf8-{Gks~}jyGYbi;zLZA`;v|SvQ_HU9yUy$rv&WTAaPNIz z(^nY02yOT!j#~>jrUh`AOj*-Js$3oHk?Nv=-y?M?3L_CunCw^T_vqoq^g}|1@x05h zzuo)Y30NwYqTXXw7RGY7r$^WE8-%V8?uZ)> zbprz=Q9BE$q}cJ6ED)h@RQ{c#0&KS5Qzc@?3k>6}Rw_ zS*s3gaUilJ)BW5^g`J10P1O0*{v%&T9Z36h3b0;J(4(N=A(Q~mueLv1UPYgFTk%_Z zCg&#+fZ$Kn(HDMvr%4Ex$FhuWvAUy=kc8x~$Fua7_HL5BU~}s1z{}AuW$wLCWNlv- z5qxd&z#PyA+^qHh>`nC191BZl&Qf~tH`Y4ifHyQ(2O`aS_ypt4!B(Fzguy}_C)ci- zu1ak#-{B2Ei~cme2p9@5dU7Pa@W>TvRRwVYWNPtnwOR43$iZK!5u;RivcJ4$ed5X3 z3R9_VJkf`!FXjmRuu-(atmO$?)cL_NbPWddv&TGPRbnZ`%O7HLP8g8_5(=o7HiZ)U zYwBLC&ccCD<}Q+>u!6(2k6gsAkW3_+sCK}wV5459_p6QS$=&8%a>?!x66}3q%$}_r zxbcY=RJbJN<3oJ+O@OP_F0e0dicGhcDFk1@xN2d?JFMGuYu+@GBTLW2B>CV&&WV@H z#ODi==}5e#mO`aTIHK{dMacS1c4z&z#Xyk{j;|j@f^jfP$4fiouMd}+G)sGeC_pCv zHq1>Gfj7q;M}iKs{G4RfrsAyKOO2EMHE zzxT*C&UE3qVb(BL2qM65DyiG6Y=4BcjJo+YKK!}@cpP}wMpxL@_-#o|Dm(QMDk3MM zz%CGiswvjbt7DHvPx-Y)@_l6Bh8k7h)gXTjJrj0hfW~JV$xsM>Km-x$ew5?4)=D8} zDPK#5;kT@&H0XyyWw9nJVH-!R(&D8aMYzqrdx0jA1cs!VrP`6sKW_ro+TvHBX}YBn zb;tNNe1g}#ig1v7BvU6&X6zdzX`D4(FK#^Ts>IwlY;NnL+=kBscVX{)5f}$pP||VH ze?t0lusHu*b>lDtg1(kUAdaB)qs5YYp_%g128ObCSaq@@ChBEPw$C1AQ=FgK;?p+) zZw7I{4{hR}MN8FQ;>T(pm(iP|g;ny3qEp*c*&|2P0iV0<#VLDx@qa{_)am2Ehd=g) zp|Rcr`+V2mM476GLy59hkFJNW6qAL?(G8SZ*d|FvM!(iki=r#+C2_u7XQdzzOY}K_ zDDqvpOI12!%y8!x>T174omBhW9MZr5brq)%h>UHpP>?g`9v#*y>kJV2Q&m=5?B%A! z)zc)?GZ@7j-^x-l$yu~pjkyHKx#Mq_K*#7V#Nn`kV&?w-J_s-cb=LN z^Rl-yFO?<|0p*$%u#^xq!eH#j*hacx^Ao`Y?;>akHpxeb*v|K$;3dh^p;N!_?aeXJ z1o|KdA*{_amhthbd!{e~7O`QsyI~qPUhwGpp4Z_@&BtSadWHtKl>PZbM@FKt!^NHY z)%F&af-4mF{LXQC9~yTz<6Coy$abHsv?(4 zX@A|ZYGTK?S-*L0>8wJF--Tm4&c8*R-yGOCQJ0+cM(UOc{oPQNI7yww-VIF{8~m=t z;iPu3Q_nwikYAf_;aY#KL3CVcm5_$Mkcq^TL$h~zaj@|uz((T%dB$O_+c%wx_7D1W z&xodh0M3)hD_hP%1tfR7l10FMe=vFHAkg_LE`iwl7axcAGQG*Q@y#4*x7J5xGp)A z<|Z@H(p$BG6Hl}v@~AC)gjjC5%cd&FdpmP1g4~u)7C((o0=e%aGjb}l9NXej#@9zZ zif_U)29`3r{j-lh>0NFPH+tN^NR50)_H@o8@$IE(M_yUAmLtS0G@w95b+2iFJ5k0Y z>jcO@+=U1*AeEe)rYx?hedAO6>M$4ou7|s%92K#GS<5srCQHM6=^aIox>nZG`cf$e(5~**t@tZo3;Da8cR3H7ipcSLbt$E`6kdJ_mBKG$aE3J<99G2+@H zc20mP=8mTjksER@J1*g@#}+$4-sZb`&hOSa3NC*bTY)|d7E^=8jqBh18@d|?ZrdK+ z)UdRr=AZbXtcu6qcyb4yX=Xkr=yALdDXRHfuc@mbbIQa|$nAx|sOEaiuWUE{Jw*NTjZvL-DONoypdl zIqs5~<8;D~7m_WzGL%$x^$Ph0DMqEP2I@CC&BVkiZ=*^o`dBl?JsUqJiB-njPS$D~Or`QEXELP}nbC>Z#71BddEKZkM zoG~}j^{O$6CuO(pUr7?2_1#uH3g~#?)|(yl9?;JYTtW<*FM0HNao*@9i)uHY7?w`~ zRKQLRjGV%;;SpWJ48Xk+->X=8GqHI>-7hU-Zqi3}zjK zk+2`-?!8wm?2bplMfVaYuh$Q7=`=6nGVAEWMs2`79B3GxmLjanS9{;*^j6iEb)E(h zcI%KM!eP)$;I6M^Af^iF-ZTEPSjb!RcPjck!%}zGAq~0&cv-UisEvD>)%o=)}c2LwaY1$~e8 z_2>Te4i7R^ark4DQH~}fR+CR_MK_3DF`kAu^x%uADQ9?N$YWyh_oXsn7^q-ScUB4Z zzqs6#E`K0ZBW?8~RXgh2nJf9MU{kB*)~u z!#(GsrN+-&o8tNIX>%{_XPK$t532UmIT?tsEp{{(|CL<6pQ!?x8oz9f>{s3bUNu5K zryVJxvERq@nW>2X^B9do6qHWKErI!8Mo@(@9O{1iLyt5c-2d{gFbg2q_Mi3z(3$*C zLyeuc095UA&i7q`3FChm1@Bkk6#tj8BL$rxGm&x8m(W?z|2&}61O87_`}?>5|E4F= zhSbh1c$s1F)vafrWk&8`a^ujtOA4XeFn9Es&DY(JWXC#HMTKBwi9{S-ja=BMxEN4-+@#j=Eh@wMnH>uz4^QE}9xx0&J>Bi)0YZYwt>ki}ltdwk#uQSXXy$Wr4 zawzS%R>^gJyp{#+j%~B!XuF>v{#qCed(!Qq86Nab6QfA1<*ERhjyrv!RZ%tcvHZik z_Pu!ha?t5a7?r=}+X~&85K8|uN*H0Yg!}?5v8UL{PnL@J8;n#8L_|lAhq2M4o6Dn{#_C{6bMU0U}YXyP!x5{#H*?UF zouLyYBRMpS+;ep;`wO4F{J}x#!DUTAK}baWM&ki7H}|A`+j&XrJs|NAQq8wI-A0ic zsakv*XdqeV%*d)dAhY;Q-?2Lh7Vhb-7){ceabu`TNy(+>A4#mW#f;C3vBh-5@pBpL zPx4U;KU`MH8jK2|eY{B@&^g|C6hC56l=-iur{?EFg+gca%aTDO2-?DVhE2e;^bkku zKHwo+8+wF2{F;R$oma5Hmi<2Fl&WjoDTCN<1ZwC zc~#cE=lQ$4`jJ(oe6L6JqD{~;36prSD+a6IQpD;Y?tMa)np^oyRoI}oiGx3I)B;Tp z$rzrAqUtUYeVK4`aW6`A0G7E-ET?)OBj*}Cv+NX?{J1+57tcd=ak06LeS5KVQ=-_g zySPq4_W#RQE~y{IHr`9ZcgQ_hwhMTGFS#$(Z+o6ry167Z?Q zr7H}mX$zin`!w@twxavSVNdz$%<8Sh^SYVq(%bH04WhZg255KjyZoLaJaPX(1%E>} zBH+v`j9#GqaJCzF79q#|=uP9nUY5r2T)wTqw7@zCPgMvkgtV68+l1ekX;(5~A0a95 z(8kCAkFOmT1#j2i{w!BdWi-4FeZ0#Z>z#QvaNjoy`P6daz6l`jtwGa)WibxlX(%4P zeQ-J_N=?k99~@lzR@>{d{xkRU!rvU`M;Z$Yn<>Rs;uGkZG|iy(IX~b&?PaxH`t$=u zjXH*|_)cmtF6?KVCLaUW%_^{Ig~~x>8X+RrGQeoT0W@q*80@T-;Sxxhs{R>a&&8!o*3#urx%t zRb)3lVsWT`_Zt9U9zwF7^c#z-%=2)Zs$4!PySUsY^0S0#r5$ZS?)dQ<0yaph4Lag? zxQVaY4r~Yu#%jFZbG=OEMK=5_-}tS_j^0O7BTZB7etFr$jNv%8U451f&5n)g_2d=` z%YoQF{lvpkhaTbc{a*NlnBgS2y`Pw(D=BH{FfmZ-VcSjc8*N>IJi$3kA|k`6`(GZH z$27~$-U*YE4V!47wO8BF`M7O3!7P4u^8JI}Dhd1ay!~)X=+B&g(v^9=bz+$Hc`>@t z0JdO%JWB~}dcItm>_9-M#0hGx&+7Zm_>3YDovM2BYu-|CS&NzHQ%FIp5(|pZY3Jjj z3Nskvzs+zc{jFB`VTYbBNw$VBkWZru9NL(1M;|#!d6~W`f|ErCMPBwJiT7sSdBZHx zLQes4Bgg?>%B2F9DwYM+vIW%6jFU;*6rxFP= zVD^nN#P*XGK>gzeXHThq^{UVN{>YPN)#rm(es?NCVDK;RiOShZgcD!$H&7s^Pi_;( zsBB(vLZ1r^i2V$_fM=+>&yDxLiQ9*1=Yd*jEsyCeqL-GzQa27 z{#dD0koNJLW@;m%So#KRcmIZT+9Pcz-*`L2XsipWhI0EEo_@so2~VYV(tiF;TSxYS zra(ttkE%6ebJA9(g0Zkbjn7S19zQQ|KSwRb>|){W%nKRrj`VDobgQE$6H8 z%M|!X$uQ5oZpB>TW}JdCbrJv#GU4$s@kni2fkfcP|Awsx|G!{sh}?f-YfJEe()fdr z(-|@bDZeaxHm3(X!kyMvXe0XuUbtOCQ4b%AF6#MRa*0A5X~gMU@v5H{x)c->ds9tE z2yPE22~E77FSIV6u0>&JMn!TDtI}JHQ`kjoYs8hpOiyaR{602YE3VwFec^s~=V~Sl zJbSb1VXMm3`XKJcVQSQ$mn*S{N|NP6Mdkm%uugTfv(^jbvEHDA6(fz~6kjk*sLr*< zYPjKdoCzoblZ#B=LVqKTQ?XaxiE{WE1KPo7a9|;?JKZ+p-i^=BhIl9;13;{rx1!mA z`Pf&ihs@DY^(wTTKtrd-$rAe&W@@4wap!Su4>PCYAF)E3*Xb(<8^LYp0TAQt?W`oN*#3E1tu>dL2#RpFn60e z#o)|D*scLT?|58UQckjYkZ#AkYr!U4(70Ev98KlYiEmJ@kjzI=>HK0^uiiY8e+#R_KI7S5x}<$%hcSDD^LJ zcFvlxAtYIH36UBTJoSiBYr}5xRg69VAube{-}%DvotSip70f#dbXVkPCXahQVgy#a zOV)AY<++%B8%N^Syw10LS-uETv0pK(gS)mJ>v!JXSK!9*r|A3mts%b-^Aysgqq|Z4 z^ja5ZkCan^qZfB^aj`#aQ8Azbz@vzVMkPuG^O%L{BY63S_ zAbM+yG3C-ER+A&kQBAz*xlXp|67V^Ox|iVN@Hyu19vI7KQ-mx{!;Cqp-B{#5m*q^I zJ&1FnO!PR6uOkN88$WCM-}UfqjL3#el%vhQ)r>*58k%Qzjzs(q_;0re4siXH-RFEK z!m~K1QZkq8?|Y;?dOo@0Xvug);^T4r{=)l3pJ(5rc_NlSeIDVkpYJP7gai?&s#7Y0 zWUYm4Bu1539hFBS<-SI+oLoM%c989TjKte5zM0ji!VVjgztPEA{&!>WmiBwLthIj4 zJc+NU@qc_&3~J7JYECp;7-tg98yCRD=14iUUFZ5APb~}QU3t&OAo(mJsqLg>1+X+zHY0b& z9-ohjRrc4~E!zP0n09 z<=5zG%&p;NDKq6)+uaJ(&ELH5Xed=JKKuR^*JELmbKru%gL4a|m+H_VXohK?l+cP1jJ$5?CSa+4r z@du$?Q(Hb;m&o+z1>|IDx?BHF)pOfFQ-5w8$J;7{mb&eE|3sy4)ch@gbtVXg*Y8OJ zVtWkC__={FHQkXVM$PRcMykc9 zl>H^mxr^OiHg?E&bk&02S1CG@RP^o^UJ83}!uuWNorCKih4q&+H2?7p;y-N~rI5$I zU|;gf*(Lu+)P63?LrDhh2dt zK$@oi_|cb9o7eR=wq`=e|D&#kNxVJf4gNc^yRzB=Ks5|K9Lw|e;rhY86%|j}q5`qy z%8-~e2BQjIB4hqZVQse0T(k2OX?Di#{GXFydtO}Nyw9-$V(rV<)E*s;pL6{T#dz^@ zfYe%B=I{u-?)RYyi0&rfyvK+ww!`wTjkkQw2VO6&m^YXMQ9-HDlgzh?{`}(0PT8NP z{D!mnJt!fRH{{3hBaf7{wW}M{RimyRmP3zG`GVVL!>7fDTQPNk zAYXYL9FI9Rvj|vu88UrYtc(|DL*1$Dx7$N`qQ*oHk1EUkn`OvaUD}2c^U42_1pptr zZP!gzo5w&;KXYT~yC1G{LSF)-tLGHEdV8i(AD{4P_^0vF>sKMiE=DEGN>!(7ld3Sb zE9Qt`GhpDwIns}ilRrVyvU78)Vp0LeqB6iMIBh*wk4bP6QX-n^ldgtoNZa``Qk^mj z4i2TFG}8YI&i2)P|M)MQZH98%quss8!leq`{o?FjTwkYe?o+@0AV^Ir*q*v9JASde$Q48?wf>86CwH0sL8>XmZ-`46d9zp zW==|V+(b0yE6jO(?`04fv6g-VP+fEdlT7?K5{`Ib_0%QpT;#qN&HF<^IF*&|>E#37 zU~6&l{tb>s81zrc4BBKeujo&A1P_|qZsx`(&z=Qdx z1azd2GQC5IuT(A8{rkB=v(_7q&SiMpIW;$R1Q9m^mb=6#QLQ?{DWqyDfgYgpx1?a2 zQXu9WRRZ0c50k?u;RF8@o43UGRevhqDBz%4!$IGnIaF{DMn*rr*g~(IHp-5JM=@1e zwa$q)CUqHJkM%6Qx&DQ?)zFo_@-CO;mEQVMPmjI#2`%L=o5L`Rjks+KaSigf<;u$? zK?yHy=tWBzq*i{urTT$pW=FQD6I~|zA9}kjg0pY^^*pw4T?s6umD0Cnty#glSKmqce8*wb`X=ug|tQ}$sv|SGEyFbS9 z(Bk#2r}4b*3VT=`Ho_;YZ6Auw|D4v3R#_$1qvS(u{g1w7Rxq7^lL*#;WubLKbnX<5$a;;+>FizqKALQ@h*GFXee@29aIVVZS! zKC0vM{1!4TQJ~apYu{(Eeo>9>y!?fq#JE;DLJ-T4?#*hxm)oxDOe2hnw+hRdXWL+B2I2!aYe zGK6=ow3FJK>ZI-yxXQa*3wypq9FN#bNG~0rP7}0stYzK?trZI!6_Iixw9o#&gGtE01USL$ z!=|7?SA&vdMI+My!Io$uqfLs!pbv6rE7C93u1|Kvy?|^?H;Yo+MGI#Vc$zTmSR`1& zO!ht0qhNyYM7dDvWkq;6Lz579l9Dt~Nw_lvuc5vB3!6;ctF;acr$|lJ$;}t_Jybqy z$hVNr_aC1-(o_`Q@)Ap)z?lY3a0O}HZG*=Af=k{%(vk@N`k#`qIo zPEGf-Lf-~vr9Kj)>Uzi(?;2mb#b)&f;Xbv6z4yw#{NiMX0n#ka_MX^~x(A z_zBsT2Xz--;(bQBT`Fy$>}htpf*^UU4spW>)i<==J!Fs+aQ`@sq((#68rfILH_DU9 zNMoeIycBsO#E;UG3mcLGY(j33VajE{Gul9Sc@R1Ag_pMxL4>YPc>6k^x{hc<ci! z;%i#~-P-w_Ax}OMaBK!aOGaqd-%OA^Ez#ScOfUXhZgXPeD{%G8)>WMWPOO~JgWXAv zoj`hzg71RVFCan)+PLudJsa|UAEOh8VT}TzaWsh-pEzs$ESV(z$OO_}umZ1OA~q3_ zMJgr>HXHp5hjx<{!#Hm2Xp27}ABMxfC_`*Ym&7L1L=U#}dty$04@%%>YRl(fArTFQ zU^vFJ8M1zjuFW`1$d!Rs`p&9jl8sv~xE3jBu&tW)XGx#-nBUtyzPUf;Bg{q<5((*W zOY5{GxN^w{$-A0ab+SmA9CDk z^Q$b6v-&FXaew0Fd#g`N3&64Vd8q6j*TzJ{NN1i9im)aPvGXB0Bw(yH zq`o<>1wQg-vjkn5N&O?cPWV(7>wn(4N2-tofpVf0Exq)fI7B?4D|X70^5 z1N|sRlgOPu(?%S`<+K-x?ePq@>Fjmd*R%_J##w_0?ea_%t9Gow&8kMEBVitMXiM6E zfw%3dhRU~_r6#i(Z!3Ydv~#{P;Zf^M>QHRNcP6Fm$;Ev4920<`APcVa)=h)8!4orhBOPQH zIdE-IWKdQ<13H`Eq&Xc2Bm1O-xRLwehlv-}&$5nRhw&FB$kS~2*#BIU!+CbceSzj~ zzT-(<((S*yCO5TKMq1`JPf$zIvBaUo)_B#M>cF%4H||Dtspmsn?1k&hE)>zSqN7}M z+~%9tI8!a_L-8N1 zy8@-M3=Szlx0~qrruA%V3V#2vS48ztf{0i}y~!3=>hX$#sdv1d08{{Ph9V-Y9W{=(wdJCkD%07L&kGEZ`MmZ7``ziWTCGJd{5< z@R;%FmyY*|&MJ4ZY_5hSM(*!2!2(?-68k|>C;wr&sW_qmkze;ZzY~wrY>wLnXI3en zj|H|DP?bB@Pku!ocNX+bG@)!`B#X_ak7WiDy~&|O&XtL0+pfIY$kD(SM5$#dsK}=} z@jH0etUn&76$%Vy3s01&EFD3Ty)(BNZ5yulHb;?{UnI*?Ca^NKreo#sfi(1G_T9yr zO}+Vkt`>Mvt&=9u`W3X1r|DAH%@l#Pv3^ChKnMg?=FPS#mn_z@r zVzp_f83bUY4($H)4SOzK0h#P{4U#dMS~(d)i!x3FTV*(!eeEVOKR^O&56%SK)Lzj% zo|=8X3hPxv&kfcd!jK*P>))9MKG{&#?Oi2H49%5J;MCwv2{fLj)YaE}iY1v3JD7?P zO7hE<3SSg{K8z7TTr?-WRiWKRxHQ`XNTI*;>b=}pS7waAlK4k<%R^;18QuyzEua~E zc5$|YlxA?*Ub;jH7sK+MMSS|AAx$-NA#Wkthi^_|G~E4|q$@x1l;$R83evF8z6s!L zR;j+vmBw})NTFt6ebxH{f^iMPF<)p6$g9CRo{myEU8WIYqCX|@-L8lD>gPVjnb4gI zMo{-b;2v4h4vx;ie|`6`@bUG;U*IhW0|Zeccb5L+yF;A)-Uk07`3en}7Czd8kAR^j zB63T*8?O1?cI7x9K6z}ViVqhI?G@VXU$MObg3rPW0A_!mxSI$Ub=kCu< z^`z0jWll@hBu~PCSUOdX797(*WpUnYoXb!$tJUO_o^i67AWi`gYq8r~elLn6=tB2G z_h_=16x1}f#(}pD^m>ED@f0z5prOj~5is*Xruym8X}bDeynWWvP3X3dlnNTL_deN= zWk*X@CYN*=)&U5O?V>%tx%tau4D@=$2pif^HDwAG0)q^%O$ur%66HX4iwJF2$cd1| zI?%8C+*ES#g0)KLqu=ONzC(^qxxxi_;?Bl`cp;C4?vbE4%`oCl1@yayWybXyi9@lZ zIVk`i@Xh}b%eA^n;$lb0JcG)MZZpbZ?t2>`%f#@WC$hzE(2+abh9eGdXa#nGE%TFn zz3=Y0-g`<8fOo6$=B9(YKaXW3*WGxJ1~LjlX4ol;!hX`+cJ?W+;h=MT3*kgIHtrLp zn2*v`$mE9)Xa`fXu1o&vN5S`=u6#9UkayD__ON#r&67bT7}GpYlfDP6JTW0cu~^61 z5DsxX1n6`4n+NB{$=)Rd0CVjYh8zE%Ry)|Oq1e;dF5iJo#5cOwa8jj7Zh1$h{pnj_ z@zui8;VD+vU)=V)ygS)DA`KG**;kT>$LN^kJuD`-5^XA%NOC}Vfe?CDEE5H&D@0a@ zAHnVMN*ZT5x^p&7g&tw6PuQ0V({kh{+4SqI@U$vPX%-o(KT5u^>FXN?Cyo?g8p5;6 zAX~mkV1%ZiR6}UO-KhYXJa9rIQ3wU4yG5$V72`&E6@HxT%s$C1vv2Y1k7IMSO#DGJ z2--sY$Wndxv$!BHKu4dWqyxK33s}VbqsP3t|4O`Z%Q`0|pcI)3!@^@V3+~Zdqrm4k zGO+ENHSl87ugqrUg+SsbT`{v`JXlD*+Ent7yr7+!MX6d%-qVIgbp3zR-tM*kr}q9~ zYkz9AI)M0)B|!GU-FV}$=F z`>x%H=}<|_aKvcE7XX3`eJCq`A1<@3wicNyUBB9Qg2n6 z3eRxZo*F)Ru3Xn6x{);J!K5SznjI6$*}B2LN>7h1yFHn~h@8R{6vw;mCNWa*r?;tH z_toU7Z|4^Rqu1DJb>9crM1qbhjdFw{l~XblB^p5L6(^jKsaKFXMnB5XNB^6f!+PJL zF<8W`w1Y~PuI?oq@qJmzz7=z0)~}yEe@R1dP=j+zO`gmn=uv{0K9y{m0*ZN(aT03Li#l5Y^_C4G?$YePy5+yNeGpOEU0QlV>!MG6S(Ao z^dXv2(pz@+9-7@Td&I+dX|E-*CD_Xjj#m|eufp47Q#4x^Ce-HXHxN>z6X`uZQyr>Nm2wv#!$l1!a>5z9@ypfEi4)k?)HVKq!FQ(XTK zQZ4L^z^8?yOPgQ&U;DlX=OvQ6A7pfH;lIA_M``!&&mr8FbdxbG%SO^B1N!Cl@9GdO zVFdeCqDM*)dnc1yr>HN*b(P$`D(<2D*8A$2pmBjH%c^TkHO8pp^A-ft^4&)7S{{ z7YTM*vG2r|_CZ=4u3ygsDJ0&4s^@$?e(aRKtg^bw?@lX45=HPXY!_c=l2uEuF;`4@6sO-nn;V>N zFBUTJ1=t{#rbC9>dIPvqFC5WdjY_z|2;rnJCi(`{PduN@AI_{qTpOy~B&EqmgJ-W}o1A_9sfjH(akX_;bzK0%P<2a+hh zC19x3WX&0+^5OrV`kQoCggUj>NGTPv3_%bUrk>@WXUduJ6F$FuEw+}+*X2@b(M z1b5fq?oMzBPO#wa?oNQpc&+6)0wW_Os z^<55Hti%h@FM#!h9p0sq_bt+uQs2NK+Sk8ybiqMr}5}BQE8bV2lGn; zKuXaA7={?Hn*3CaTiamRugm3L=#F=?Unpd;*`%@;ka^zA$IwVLf)Wa>jEK^B-~NvZ z+=*ObGL`3B#FzVNAfpT~>iv)GsqtkJ*N}^$){eruSCdVFbktSR*g7+qoaiSK$9Iz< zkfz%b^(&rxQTVVW|NsA zBzf_U*DDAI2ctdxMy2|dWQN$bB)cdHxN|Vhe&!{`DZ?~$G!dR;5ZJ>+$7QU|G~a>igiIsyN$O|AceZ&md50U_nO43#^{C zG;AvSBaQV2NteZrk2RVqIWG;Zz<#ED&j{ZWzNyA!2FvS$dSB**n}Ntq;IbTR5I+mj z0WJ`!_262Ad3{Qd0&mOSzU)O={DWW8+V-|9loElX;O_1%W;6n)|06$DB4C^Q>SAQM z2i4G5vERvfxGvV3*Uh-Q@WGyIa;yZLEw>hcmbk{K{6|2|%PR0d?$!B6y&PB}2WhR} z+TP8|rBf7`XbBeWaykuP{Bq^cv!_qh#EIR!6x53Tn+;5##cWkt!u}aQ1j-w7fX7w3UceE|OKQ9$WipywHNuf3K$o z$#E%>9mANY|0lWfCrHg67_4cxyMS5o>gSo-uf5WIkrkrgP$%IiN0D2)4#0DD~DgL^xkg=0+w~ zIzhN9*AItSb)&LCMFr*bRQ$9y$#eR2Gh0*eLCx{uq2y<*KHbf*F@Mt&X+<4>TZgLS zq5ZlB_yF+wd(rsFL{^{ohFEf6#mq{p);Hj>z^Jf?!f3xk&-cvCDxi8?zymh6nT2k3 zi=Sx?sip%dLe~{dML8dS3BB=3obzOb0;jsw`gr-r^KggZNH?_Artk$XUtX6ZvLgFc z$KI!kvtPO3aY`MF%tz<2IZStXJPwO#-tHHlNl4BcuUoiohjIdxMFZUp`55|tg6ZA1 z6~UfuczjK%(Xr!N{FKZvE9kNQ3EDS~<@Ja|PJ7@R$?Z|_gVLS#4wla=l;7o!g)0q* z>L{%66J1-Y)|Tc)=L33{;F$0%jY&-oD5Z8gFng`4T1HMWwcGLf`9QwZ4gjbc-O_)A z_tGerc-UMRI{7Gcy4jGEQuTNibi=!2DMZ%;xZj+wv=aZMC@h~7a0f~J(G{vh(j?zz zu8L<%CJ_7`D<@v&f>lSXWOnxMHwH1`d{i+Ag-OX;Gx`S`@O<#{WxxQItjV-v(N+A= z-IYQpp&RG~JusLR4*;v(^mwofaaUDQoC%NW$qo5MMSrsm?0~%h$TitW%_f)*9gjKq z7lL4Gase9-M>-O5Fp2dn_9s0XDs$% z?D-FlvY#o4-<5nTEQT%|7=Wqq{`nB&H}m%jED}-C&gynpC}j;XqO8Xq-BHF@<_0x} zgBXh@84!(H7Ob$b3OKrIFis6cwvaJ|wcJkpK&Uuk1I#_$>jR3rcZRP2?15#!qobt` zRd{_B+|TBxmgjG4SC(l3y&N*P8~x}WqEP*w>^wWmw4n~7qrRr!Tu=akG;ddgUx=11 z=qrTnG1QTezfWa^3ra$_@uk#P?8_(9Owfg##cXgG&=~A}4%eUcE=EqnN@~;xX%FeW ze_5{beS!Fr#cMyS^Thuq0faSsYsyle9Wm4C++$puE6%Y{AXW^h-cUN_htq{@?r;3z z@T1v{9lADDD$YCIAm@c-O&nI9)o!s6Tu|5=E+&I5=Kh?g#$xp=L#rh+mPNravcWff zEDWN(X>;F`$nfE;oVsWT-OD%Bh5j~W+ND(=KuM-bnx6=BzD68J**9%<3)Lo+SIQdD z(w$lQg%c61l@v>CNYhlRZamrw3g;xV=0&yT&VEFMPv$0zaZx3-AfUmJGd>BC^V}ShNUGsYiphA6Ai71FYVSa@ z9$pBC0ccnSI5;$9`N}e8Cif&C?p_54vo*4Z<@}pef@w6b(=p)sX$fT3*P*?u0=jzd zkZ3kes$qm9v5d1-y(u$k+R@3$I*9gz?)wkwa6SS;1uK5Xs9^nVerw|{p zwV8vgC8Vayn5kjg)1B9*;s}^>l@%1Kzxsffw?|bTI3`EMANIy9qBr1}zq7Ad7vSq{nV9_yJvcn!@Lm5NfPWd>x=dR&lA4eO|}Qzd;s zA)&MGO!ENC%nuiqe)@r*GzIMGMkYv*c7!7adYAPxQl7VFfVWP*>efZRf^F8$Ss(&Y zexhRw-r~d5=N~aaYHwBn5(35+8{KZ<`koCy>|y7!Q)+h!wqWDlEc@IE%0}Q8XyF5W zr=sELH(}B9&R7kr#i08x_U{T8EArT0pTXMhr!vGrYxD((bggiukV#m6ZY0Fv8n|jI zkYJAt%tb9>TNpTu2UaI8b}WPI*>+$rlRH((xT?v6w}T<5RiDxW4xbY^R=A6#7!HQ=t_wxZwZw8>BNoKHon zz-xJx;XX0lZe+sm(lTjy*~bDC$it`KX{}yD*pvKJOf@(&IpvY`|5f-LLP7M8py~bw zfW|XkZP-w@Ri1DlJK{j-U3RjPnzV4vP$lade`de9bXG4V{-bV@=F?Q%<@!QIC5vsz za;vAcmT*|J{T4M05lnb^04aC#`^Kp72b$lzyYgB1Az*m*woeX86Npq_qZ!nF>A(Mg zw9{!qi?`mdsbFSe;#?^6vjNXTVe_$^Fg!qN`QOUtUbl;X;7l`}$1iQ_iTnp?8VdS( zF0p7!X*cW+kGI^4{$#U>lCUn>YL>CV>Lqpqi&#C%ApJ6vEwTH>i7y7PY6H=TPtei9 zQ0MmQ(Dm6hY~Op0$NY_m*E0kLnUHdUHkw!zoQQ?T>%=BytalwkSGJ}Aw{SHR5|7Jd z7z~uOAlVzcqM+dEwavZjt4z;ZUCP0vp~ShpeWPQq&8MYt8E zTHM0|w)Gozvv94oiqv06bb+GpxWrHco(_))OT=N)|Ht!{Mv%Vogh@nSJ+mh|~<_XTI0<|Nfk86fs#h)Y!EVzt(c zFbtjILe!9)wcI;vHb_+NJ$B~m*sE9We-WINg{Rn2+@)sX{{1TZ52v|TzoTIyURoC~ zB1l4zD@3f_wV>6ZdvEI%!q`F6YBjp6eln@uIBOZZ6nDB*%iL%!bBi=33Hj`Z!+p0AxJk6pBlQu zVrsnXcdIqO9XCk-f_vt5hkadMvI0}R*`4x?7p|O%FLC{UK-5GEla4ZVer{pCJ%0yL z%V(o66bZkhqZhYj1bhXHq`NV7Wac@;%G&H$GYP$zBI!tUV!A%!TL#k+$6SW zaL*4Q5;cPJ^{>by{TiV!r&~igtY$4an;lVyC3md2H*!wgxuBf4wo&Tneh`&RH6NUB zseYt)R~y;Qu1sl#dz`K^GC68?Z?)8&eRTn0+m#IrNZwj)lb7L*^849wNNZL`p555p ztd&2zVpXlxM*ahH`YY{!GN%{CDr4$SLv&5G3bs!nUhv25d8_iRmvWJTwh1A(|D>f9fpk_MhW9xx!gFG3N*Y_F{Y^$EWw@>~IHLmn~% z?ML!hf=s7Hb&8P1*kTB;htBh#}g72 zhnCx^b;6o7tgfU}cKOT(xP)81VC$~cTTyha)r0&t|Bf^bX+l8Xx18+lAPos74VDO& zRxYB@X!C5w{T{|R=cAN*_IO1;g5s3>8}4GZYKXDZr zc*?nJXQKDXW&gVe=awx@V1m}qTm&&<^4uxN|3pmpiu@;Hn!Ww6<;^P%7y&$9NHAg7 z;*$Azz-O+(zp0y{{z2W`rydCVkLqTlCJ_TX!Dtn}!e2;7&cD&>p&cfSE)-c*b2g5O z2|K30_D-?4I(-ib&qK!ZGNNz;%mzxu{D@ZN1f^m@s3G{&*48%vcXhLXpujyfeS;r( zgAA^xcpVyKx9rxD%_hWZDH@H+7eO=8g=4y-Y+=B{Jv_!%s0Pytrw#AyhyOO2URRRZ@}Up zKiA$7u0R?~6HQ3N9{HPmg@=g0#v`0Y-!Uel8AY{5GV#A1!M)zlxVlT2mK4y}Qdrqk zow|HL{&~LMmJiE-r*ugc76uiyBb;+V%68}MRShTo%L7K7c-|{S-h_$e^+i1p@KfXg zq%VEHg@q2G4oWEDc!;*GL^Hn1|5L6*lB4kt{@vl=p_T6J< z&KK0mweg*YUe1S`KS0?&o+d*19^NMTa-=wH3SDhY63v9)(j<;81@j9>TX1wb99iEl z<~3VBa|D`SRQo|npe>QvN>tPa-brt`r#^=f_^BC~_pNFMbdJDujH=66uL0=rXU>oyFvkTQ3U2XLtAm})Pg>9QGK%uGS*-%b z>k_M{G_?l3a7$TL$qipm4)0f9W^WFcWN#F*pw^WV$(}-#>rVoG)H^%4={nu`cZp<) zKFq^xl2yC?@C`*St@1m8j{&U`A9BbC#+|Au(*tJ0yEfKdHdP%OyEB@sDL1OqC|0Hv zQgJ}@d_sK`X7lLMIwlS=i52tcCk$`GExWB8Uv>iw6V`v!Ai^B*$7YZr2KawL2995J zc&#Ixas>JD!N1EK3U7~yd6u-n!~K)nT(Z!O-Nf8XmD>RExJ(I!npa*s{F zo)k2#dPCvUgN)))gEx<`!-Ew}13I@5f|j#rm{hOApZHit_SzH@(kxA{t;_l!|-?pq>qtbY4cVmI$9f9 z7_%=8S$Y-$9ufTM@KQV!TM%3VVvxpW#|6~d>97uYWN=)|UEK&hKLZ}?%G41uys7%L zW9VGFKtKaOWjX?{&H(e<4xG47eG1)TIGXrs-zqI>a^I9tGe4Ol z1v-9n4*}`1MGmc_FZW4l)fR=_O-sxzU$K4=yvHWDV<&t4Q6&Id^G9$@!d}-26pjXv z%yA9SF7ZhMlp*%{t!8#U(xnk+xuW+ruDBekAWRmxwPAu{FoT;jmOeyMHp6xAkdRFd z$es&m4F5{biBB0*n!H!V3?8_%Y#Lk75d!x0@>RylE8=&M2sAl3y*J)lFdlS&GyT%0 zCAz4lzEfQ+cPtxiZA{py_+DQy76tl=c$Uw-C#L!(TAUd#OlGx3PR(1_w?<}_oOe5T zf*DBTF&jswUG-Zh_hkNDGy^nk7^kC!r7ic2lcv+nss>5az=a}Q#d^2~$tcJf7c>-d zP*R97hXuasq%ZtB(R3U&#=yNjstrYHygsc$fRmWg=E2W61y}GZ#HNuC9GtHjpuva5 z@Br@7Q5b=>#@jv69(8fFK6!z4r(4y9Q^&Tx80r0FwPJ7V%a&z&o>0X6w11k^OW-ba z>f1Qc(J`=n$R8~?3@(3-EMn7dh_t*WpsfhcWJ~4E7)cZ%pVl9a(~f|eS>5rT0AW-S zPgn!svp+H@9~gdoja^Y_n3Js$fb6Dz2?;Jt^j@KCQYsKe3cj@EDK`wbxqs{NpE?wK z6qugQMog$4f)}ms#x6Zo-YG4U`aDo(2qq`|;(P2n6L%_@y|%S}B^_g4&g>cbqG0#q zq1(0X7GdP$1qHo9limQM8}~x~0*@#`LHT^W5;XRkGy|l4&su(~i-E6!hLB?%k<-oD zvqy&ATDxT+a+0y31Oa&ydV-8Hfg}QXS|~gT7dm zQF5~ChSaMe-GZyMP!(TVUhNH;*&M>3{hu~kMbNeLga}iU|7oLEJY15Qr&l*&$#dU z;{IWHc$2WM0%mUj@QMKh($Xp9IVyvKvWQlPH!m}QC zQ4~+nmm53%rXqFSZdz}LBU9nRfwf{w%`wlAiUEhB+dJM*rY1I%JnCDyH z>PKRn%c#|;wxUS{laxuJHiR`(URslffz(h93@AuYMiQR#1l~b*6F?*T7!Ai^w&!n2 z15{PPfig6O*kXmB2uPM;1uFd?Ndw>J;X{X^#pe^Wo2H>lP$+OKx98%j;yjVR$H{-H zcdK^v?k%~oYveS(M62-I7eb_4tR+|aH*o&FZ|Bzhfa@f6sD|W;nlE}^4fOM9!H+~Xk06nwU-t`B`a`ad;Gjx z@nro&Xqjhv-XvX0e4QI+1&HGtPJpZawhAhgu5Rn6>-bJVw0d z_9P<(COk>ld`bss}-&G3E}Me_ISR38i$@C6*$7#&(r3fbw*-Ufuo3HUc!xm zQu@;+o(=0h43!s}GBnTf*m;TxjIyFhM?*G**K3==7r2Dk02GkxV^2F&a}DY3xM8hI zOMI96@u(%84ZM47m{rU=AuKjv7JeHs>wWkYK&1K556tqGo73J=LKXCnFOof<8CKS+ zj`apwUZYNk1{`g!*%7PI&fvfdwbwdUe9Q|vqQ=dp^n1C*z)Bnnf$-S4sg<11@>x7i zpHwz6!9H=}>yJaCMQe}XxAoahICkFuf;)^Cvn_^2QGMq~ly~6LyK%fa*8kKt-7Y<) zGgU0Jq}tXo4@PD(hHW5Cg-ek>ZZ%h>dk{dD!KqU!X>M`+76rJ&_fOcH@UB>NieH4i zc_9cz6rQvEa>o&tm3!>K9~oTy&^sFSjcRut@s>?~A1($jh|6wMMM(^7QLdn5l+(`n zEg)O9&Mxs6DqbO16OPWwdU^Qy+~J-!gZta`ESU0KeSYgI{(|2Xku+68*!SU2%vRe- zRx!!XpHCdGwKCLTmfBmMftX8!%;er&(sl|>3>y~56Fk~wVM(OXbvj?<*MV2hyValu z&be`8OZZEi;Y&Bp&$uN^PB^LUG!XUyqaZjk^5g}n6CgzYYT3Pav~4;znPuaI1duyw zm=%~_EZ0@cqS}^-jC3eDTrg0qAIPn-W7rWl_R2bU<62Iy zM_}l6e@YF~qn?+}Ax2oz=SO@rQ94)rM96215$PM!qmD<(qp=GP@0T3UL8}8y!Sf$! zBOO^6gt*{wYHBxq==5Ab(F9}F?yTX^&1Ow$U2F*%5w0!X1qKTCoF)C_&D zHNOnS8Gf>Efn1OIW#XYyE-6vh}W=l!6L^bBSz8XvQ=bw1yA)jQQO(~7_Av~H_Ev{gh+PM-c>y&QopCdvwf2>LlD&-{_DpE5k zcPaEHqd?`7M}h7iCPPAJR{)8pvG%11mL;-^(8|17i0xN+7@7T$?2ORJPE2Kdg6)=* z2%|d#Dd7%L#88kpP;ja@aISfWhNPgjjM! z_(tKdHl-WG6GUR4@Phanb=|L9^l-AMZvgri@nBuxC1KYf&S-;(P3u{GehFGbCOHHm z(q&d4931x}i5OCb<6s$$Yhd8+*M#F2w`;KRSor?ZJ;V2p@@RaX{f)Xd^NRiK%9;Z! zb8#Cbl&J{?aQbWFRwJOHOotP%FzzT9$iZyI8r@qD^{nix14THIXHShLRJo}2Bnvj6 zpYHL4(PgaGe>9C+%MM!kl`9SPO3<_Q)C9^f7cT6eF8Ymf(L8VCVe91j$34^0A#dBZ zNa^gXM98=xq3pCp>LkCFyeac%d$+^udvdp9z(o*M!PExCzdC>vJrmc;Xb`{OCC7i#yaUbZ<|g z{h4d{zRri!8{7L4$(h^)B_N7Rr=mYiwNd09FUzvH1BGhS5a7Q8et#1LZxs)t{W`Iv zQc6Mi?Y_W#skav4PA>ifew9DmqZjl116YHMK*cgX-bc87$ae1DB9u&uFZG>dWU)|7 zJhMD_SSQs}5=hsgRDBK4M)I!96&_|RkN0@F3IA}|k0@W@El%B!*=XVAS1HNz& zXm2nQXE83!EPocXZ!hN0cVto_L4Q-f9S}q8dLV@*KQ9ebuD6fb>){dLo!~*3X&D|y z>OfX_Y^h@=9Zy!P;z}v=GgNXm{2gZdC;$zR#3v{!EHC#x8{oy(9f~=uWQf{E(&EFm-5$C>g*J2uvLk zFWW6tp*6G}=;J`Y#z!V7stEpwPr~klWnFLb7%K9De=Iy?^B)I z8lfLyBUE;(VP`yL#(oWRWD*i#hFTcT*hq$8NkyPXLI!HCbJywTFIE~7hR;<4<6?fQj#kc zKZT>nE)K1p-ZgJ6e^;3Ishy|TVH1N#Vad9S6_#(f1J3&d{s>V@@;IE-*DyqqJYbKa zJ}3S*T`)PqSaY^(kwpr_>dO++BO89>LO$OBZz9opNR;15?(MD;Xr3yCQ(`F#A)!X@ zh6ZVjW|gR3NiXH(@%9iBsm6T-rdGO}bW+)y=Zif5)aT-mileSL3s>kV@5eabOQF?E zODfAl{3~)+w5}=&7y88M7?{j!LBwjcXNg_Qtrb&&7lXD{XVP}I^q$ts&{;JvQ!EkK z3e`j5u=sgx@h08Sx~san{$K`Ho;T34S<~hK+Rhz~Pq~X)dqZn6%DDP1rf3 zdej>EjSVdgtv6=GGd}SM={JrRjpeQCOdmA2DRuT$gh99iIHV@hwQ;kogfaPvAeMCF zK(1z`R4gSi7FX+QSh^0|BY7Gbt<}6`z<0=dueI5MgQYvQgc^~87mP3@#CzhC*Df(! z8ceuD$mY>g+c&ZTvWqhwDyK)f8_5<=-<<70f}IQ$ehyBW?_LUHOh(09!B#oPH~8o~ zY4b1~lBB|qM{gu3LPos8rxE_(b(oNz)X%3x!sk>sfoNIs0+&z}PnnM-`fdY~I5F?~ zuN0YXbU8En$mS(dPp~z@$IVVFyzrcBTVKRao!x5hm$>Kep%o*D{EW$x(I_yHly%YC zyJxqKf?06*j*EXj=bwIM!+C7Hz@|@PdqY<0?<6(VjmpgZ@d2$7ttk0TJJ+iF9cARB z0yH;q=E$>B4Ygt%{-eCb8}m{kXT>IRgk#n%aQ^$99ydTJM-adJtgl2ec19>3qOC;? zct6j}><=djW(6S=EH|Sa8;`BXa0v#6E+Z=;s&)^1=(LgpG)j>0x|pp0@h$$t5ouY) zO!7n6T9^)_Z3qSz@3!MX=VfM7P{Cnr7O!ncRqz~cwGcEEX*5w^;Au%g%cPPg*DN=# z+x}{}?(d<>rR~S+oGXWs>08+GOQ`;FRY$Faus|Ih76xQtm~FLoWm5;?_lNi0Uqyv7 zhjJ_&S4ehOyX1h#02qLcD}k`Gw5hHRj||6%&x0MI;1EKg5fw5%`C7M*imBNu0T9(N z{ya4QhBAzp_F>a4DiUGNzPtZd>|x_3NPsBGZrHzw4vslVA@6s7FADB0K_7S=oeCk0 z7teASD|mENP)VPkr+3u7w#2Oe7TFkEc72%P;99Z2C~ywHSPa)RA*m1T0e3SP(BpE$ zt!qt!aME$pA1#X(s$(-zA4#AN1&a=oaFn&;;g?Qy zG{LH;O~c=BW5FGjeQY0*H4MkL->;+5> zwzTnMlX9@$FCLW|^gK2Rt|^!L%cXI?Ic}BVSXpW8B4V!obgwj^2W0=Szi458>Z1uf zc7Ia8$A9mq!Jbu8^Xs=^&A?lDuMSwQOBiguKOU+grs(*s_A^Lb{WQ5!`W?OWrHlff zqQ`in`n8PtD(H~=TgedMG&WLPflU|^;Ntcb6(VEF5hV|ld^7<;F9HPG&fYa>xRvxv zDM-OXT8h-hL=?)j$pJ+LJAasGY5lo72AVLA&sa(Ri(WXA-6Zcx7fH>2cSXcovm8yB zH(S2%F?VNcH5$?jwA)(?gnR}mCF@O-)~ooKRY!hS_C{nyERfL&z9Jsu%X?}`Wq4E&vC&XBw01>6e?XmNc^8qdI-%f?BZ==8*QU}@-s;Is2Hkba~C4GQT#8 zl%v$k4gORPXKy{+Hs*{B7*zT#KCkl@@B{4k$md<=)w1ED1Xb*g2VyvM^{T|XaE+@L zMO~tRlHpP9XC7TZpcS!Fz$%5cmuS2*PDRhYsT$r|o%YgWb$8i&&IxukMU&*M<_h-` zW2ze{-4vM=y1w!v|CwsIR2ntympwe~QgjZPx(d1#E0c7OrP4Gl(RN6RG`;j}j~C#x z;4dny&4H&jv4-HMklN#R>u7A-pkUK}JC`EIs5gj#Kw`IFYAY8UUBH3oLVN zDM6YDQh)K0ujW;{Hr8g<&tY6y;t~>+XH%?|Mr;f^b5$oV3 zquVJV*{@J2B;Z20C?vY~pCPt*z$IRi_w8n%^O+lw#EY@l41uo=O$r6U-}LCyzmxU|2uDpG2rc3}%ACdNWFvKrFX|dp9)=CAA z0ViqHQx=uy&Og6c^`nI2x{`l>^4sB!AI5Su`R$gu+U?6nX%fICgi<`7E&!(ZIzbN%ofUi=Wjw@ zIO;ejEmy3j{BxLap!qxY>*s$t`Q;nh(PC4B>&WLCr`q4d0(%WpxJz2N$Ko~F8)kbE z&?S~5Qa6+T(`5t(i)e6r4aV)=V zcKHNf0IrKotzpZ`D=Sln7uwwzG24U;TeZ5i>MIwG9Sz=I?o*DZCTs1Ob(`a9l$8@R zQVlEY^fewI6lE-FmE|dD@$}tCyy``uduqB3lvBlPk^kIOJkULQrTFK@`4bo+0??@X z{PFoBqro~;v?7HWgfU!9>?u-0t5a`lQR&vME0?-e_12M=m6uP6Eu&{}PF`Hz@)P-F zT0^p7=CHqM^b2Pe8WWr zLrh{~X3I4xXihlQ_u=~JTh6rrzey=wbBn{_4|d^}ED`pC9UjTof<9(3Qqjq&7YWt+ zAE5lW9Y|=chy~_(g#lk#|Fj~sFtE^SHlx<`fA%I68gMwiiTsR_gIDGz6qohw!1UQP zV+d^Sd^=~Apz#H){^c}0zJOV%$jF$4`q>YWs_d2<&&W;BNAZbF7SRH-42%_2wCADkc2ye#ftXiD>XwJox( z&pHo-k1F9y;*v+pKUooAqb=%Dr2()^(s@o!=T#MwKo4odsbeW)e3%N~1+lSJl(68|(C36RfI{N9oJ=N^HV7izX*pcq{GE)`t* zz9E=N`#Hw9-6(;Irjf_V`n)sF%uS8C3FUmI*nwlI0qE67`F&e=|CGdNe$MCi;tCFV{Kt zyHJG^)hm`(+w;U>R-89q6>YMnj!lOwPxes+CPS`Fi~Kqsb^LyN>&LAUL4JV%8CC%b82_c~*fzp&R925j zb3VxLh@Wlsf0M#Yu4Qi5=AfS)u4rb!*tzI>IF!@Y{!xTz^3r~iB+?n~HrpsA;nbz8 z&)aPY;MU!0mS@x*92gi~b>q9=1SbAKmr)&Gi6>kSxfz)>Fa-Ecb8EclbkXRtq;V?i zG}+TP9F8NNA8r}}Gh;GN3*=14M^->^YJs90DF=CepU&|ao6%|^+Cn=VEUdPTHc$W} z3*^U)(0i+y+^8l0mtIrE4~~kKdi1=0gXUahyVsCj1>MwCzHl{(urwp|h`EsWz;2Ub zqtPAPwra68=!az?eb`zH?wZBJY#F}}(r>)+NX=!`vapEK)mEpR`2G9-4^86r3)?~Q zFo@ZTZsgt`Ucfp!w6=BV-7N9 zB!E43$|AoPcW-NXCO3>V%RerpWC&_pCvwqe|5Ep0XqE*t>O~B$qU%lprGClTn={@X z$~ts|C}S&V5fObp<0iaHsw5pA02BHMtwS!&2E@>#1O{H`Usv@m(vd|U%r$Vsrr;@E z^Kw6aTPl$GXdZ$DGMbp};)#p`G0f!oM)+ON`{9&@oqc9gbtY*{;zdudvp)s?Y;`0y zOF(`+=qSvx0rfDze9f_%m!|UbN^Udm-$Lh!_}8+iyS#zse~u)MU~sLaMURh`d=|f3 zjp9lJlk*b{=%6n08}(dqC^A2}pCy{YkkB7yxr9ju=i$9Ao;3b4qJ4&Gprc5)*@G9i zbsL$)@H%d4ITidiuX$P)FUUV;OxHgiQA!vV^ia{TsB?=wX)zT0wRB%FC#X*h|D)yC zEYwvj8^Y6`qFlD+JDftYlV()~0&0#%1Ff-?32M25ZY8~d%tdq;4XxG%bA2en%r&Rr zxMow~n^!rU6s$8JvNYxY q#oWJ@K#m3V%>Vxc|F?DU69~z=L1rY~`56ri^pTZRkf;_j3i@AFiQ&Ki literal 0 HcmV?d00001 diff --git a/02_training/tensorflow/cv_hpo_keras_pipe.ipynb b/02_training/tensorflow/cv_hpo_keras_pipe.ipynb deleted file mode 100644 index 05f1520..0000000 --- a/02_training/tensorflow/cv_hpo_keras_pipe.ipynb +++ /dev/null @@ -1,595 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Computer Vision (CV) On SageMaker - Tensorflow\n", - "\n", - "1. [Introduction](#Introduction)\n", - "2. [Prerequisites](#Prerequisites)\n", - "3. [Setup](#Setup)\n", - "4. [Dataset](#Dataset)\n", - "5. [Training a CV model](#Training-a-CV-model)\n", - " 1. [TFRecord Data Ingestion](#TFRecord-Data-Ingestion)\n", - " 2. [Create Experiment](#Create-Experiment)\n", - " 3. [Configure Training](#Configure-Training)\n", - " 4. [Analyzing Training Job](#Analyzing-Training-Job)\n", - "6. [Hyperparameter tuning Job](#Automatic-Model-Tuning)\n", - " 1. [Configure HPO Job](#Configure-HPO-Job)\n", - " 2. [Associate HPO to Experiment](#Associate-HPO-to-Experiment)\n", - "7. [Clean Up](#Clean-up)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Introduction\n", - "This lab is focused on SageMaker Training for CV. We'll show an example for the performant Pipe Mode data ingestion, HyperParameter Optimization, as well as experiment tracking. In the future labs we'll show how experiment tracking can be automated through SageMaker Pipeline's native integration. The model used for this notebook is a simple deep CNN that is based on the [Keras examples](https://www.tensorflow.org/tutorials/images/cnn). \n", - "\n", - "** Note: This Notebook was tested on Data Science Kernel for SageMaker Studio**" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Prerequisites\n", - "\n", - "To run this notebook, you can simply execute each cell in order. To understand what's happening, you'll need:\n", - "\n", - "- Access to the SageMaker default S3 bucket. All the files related to this lab will be stored under the \"cv_keras_cifar10\" prefix of the bucket.\n", - "- Familiarity with Python and numpy\n", - "- Basic familiarity with AWS S3.\n", - "- Basic understanding of AWS Sagemaker.\n", - "- Basic familiarity with AWS Command Line Interface (CLI) -- ideally, you should have it set up with credentials to access the AWS account you're running this notebook from.\n", - "- SageMaker Studio is preferred for the full UI integration" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Setup\n", - "\n", - "Setting up the environment, load the libraries, and define the parameter for the entire notebook.\n", - "\n", - "Run the cell below if you are missing smexperiments or Tensorflow in your kernel" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "!pip install sagemaker-experiments\n", - "!pip install tensorflow" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import os\n", - "import time\n", - "import pytz\n", - "import boto3\n", - "import sagemaker\n", - "import tensorflow as tf\n", - "from tensorflow import keras\n", - "from sagemaker.tensorflow import TensorFlow\n", - "from sagemaker import get_execution_role\n", - "\n", - "from smexperiments.experiment import Experiment\n", - "from smexperiments.trial import Trial\n", - "\n", - "sagemaker_session = sagemaker.Session()\n", - "sess = boto3.Session()\n", - "sm = sess.client(\"sagemaker\")\n", - "\n", - "role = get_execution_role()\n", - "\n", - "bucket = sagemaker_session.default_bucket()\n", - "prefix = \"cv_keras_cifar10\"\n", - "\n", - "print(\"Bucket: {}\".format(bucket))\n", - "print(\"SageMaker ver: \" + sagemaker.__version__)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Dataset\n", - "The [CIFAR-10 dataset](https://www.cs.toronto.edu/~kriz/cifar.html) is one of the most popular machine learning datasets. It consists of 60,000 32x32 images belonging to 10 different classes (6,000 images per class). Here are the classes in the dataset, as well as 10 random images from each:\n", - "\n", - "![cifar10](../statics/CIFAR-10.png)\n", - "\n", - "In this tutorial, we will train a deep CNN to recognize these images.\n", - "\n", - "Downloading the test and training data takes around 5 minutes." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from tensorflow.keras.datasets import cifar10\n", - "\n", - "(x_train, y_train), (x_test, y_test) = cifar10.load_data()\n", - "print(\"x_train shape:\", x_train.shape)\n", - "print(x_train.shape[0], \"train samples\")\n", - "print(x_test.shape[0], \"test samples\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Training a CV model" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## TFRecord Data Ingestion\n", - "\n", - "Converting dataset into [TFRecord files](https://www.tensorflow.org/tutorials/load_data/tfrecord) \n", - "This allows us to use SageMaker [Pipe Mode](https://aws.amazon.com/blogs/machine-learning/accelerate-model-training-using-faster-pipe-mode-on-amazon-sagemaker/).\n", - "\n", - "To do this with your own dataset, here are examples of how to generate TFRecords from image datasets:\n", - "* Image Classification: https://www.tensorflow.org/tutorials/load_data/tfrecord#walkthrough_reading_and_writing_image_data\n", - "* Object Detection: https://keras.io/examples/keras_recipes/creating_tfrecords/\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import os\n", - "\n", - "if not os.path.exists(\"./data/validation\"):\n", - " os.makedirs(\"./data/validation\")\n", - "\n", - "if not os.path.exists(\"./data/train\"):\n", - " os.makedirs(\"./data/train\")\n", - "\n", - "\n", - "def write_tfrecords(x, y, filename):\n", - " writer = tf.io.TFRecordWriter(filename)\n", - "\n", - " for image, label in zip(x, y):\n", - " example = tf.train.Example(\n", - " features=tf.train.Features(\n", - " feature={\n", - " \"image\": tf.train.Feature(\n", - " bytes_list=tf.train.BytesList(value=[image.tobytes()])\n", - " ),\n", - " \"label\": tf.train.Feature(int64_list=tf.train.Int64List(value=[label])),\n", - " }\n", - " )\n", - " )\n", - " writer.write(example.SerializeToString())\n", - "\n", - "\n", - "write_tfrecords(x_test, y_test, \"./data/validation/validation.tfrecords\")\n", - "\n", - "write_tfrecords(x_train, y_train, \"./data/train/train.tfrecords\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Create Experiment\n", - "\n", - "[SageMaker Experiment](https://docs.aws.amazon.com/sagemaker/latest/dg/experiments.html) helps you organize, track, compare and evaluate machine learning (ML) experiments and model versions. SInce ML is a highly iterative process, Experiment helps data scientists and ML engineers to explore thousands of different models in an organized manner. Exspecially when you are using tools like [Automatic Model Tuning](https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning.html) and [Amazon SageMaker Autopilot](https://docs.aws.amazon.com/sagemaker/latest/dg/experiments.html), it will help you explore a large number of combinations automatically, and quickly zoom in on high-performance models.\n", - "\n", - "We will first create an experiment for a training job, and then do an example for Automatic Model Tuning." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "cv_experiment = Experiment.create(\n", - " experiment_name=f\"manual-experiment-cv-keras-{int(time.time())}\",\n", - " description=\"CV Workshop example\",\n", - " sagemaker_boto_client=sm,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Uploading the data to s3" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "dataset_location = sagemaker_session.upload_data(path=\"data\", key_prefix=prefix + \"/data\")\n", - "display(dataset_location)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Configure Training\n", - "\n", - "### Define Custom Metrics\n", - "SageMaker can get training metrics directly from the logs and send them to CloudWatch metrics." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "keras_metric_definition = [\n", - " {\n", - " \"Name\":\"train:loss\",\n", - " \"Regex\":\".*loss: ([0-9\\\\.]+) - accuracy: [0-9\\\\.]+.*\"\n", - " },\n", - " {\n", - " \"Name\":\"train:accuracy\",\n", - " \"Regex\":\".*loss: [0-9\\\\.]+ - accuracy: ([0-9\\\\.]+).*\"\n", - " },\n", - " {\n", - " \"Name\":\"validation:accuracy\",\n", - " \"Regex\":\".*step - loss: [0-9\\\\.]+ - accuracy: [0-9\\\\.]+ - val_loss: [0-9\\\\.]+ - val_accuracy: ([0-9\\\\.]+).*\"\n", - " },\n", - " {\n", - " \"Name\":\"validation:loss\",\n", - " \"Regex\":\".*step - loss: [0-9\\\\.]+ - accuracy: [0-9\\\\.]+ - val_loss: ([0-9\\\\.]+) - val_accuracy: [0-9\\\\.]+.*\"\n", - " },\n", - " {\n", - " \"Name\":\"sec/steps\",\n", - " \"Regex\":\".* (\\\\d+)[mu]s/step - loss: [0-9\\\\.]+ - accuracy: [0-9\\\\.]+ - val_loss: [0-9\\\\.]+ - val_accuracy: [0-9\\\\.]+\"\n", - " }\n", - "]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Build A Training Estimator" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We are going to train the model with Pipe Mode input. SageMaker Pipe Mode is a mechanism for providing S3 data to a training job via Linux fifos. Training programs can read from the fifo and get high-throughput data transfer from S3, without managing the S3 access in the program itself.\n", - "Pipe Mode is covered in more detail in the SageMaker [documentation](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-training-algo-running-container.html#your-algorithms-training-algo-running-container-trainingdata)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "hyperparameters = {\"epochs\": 2, \"batch-size\": 256}\n", - "\n", - "inputs = {\"train\": dataset_location + \"/train\", \"validation\": dataset_location + \"/validation\"}\n", - "\n", - "trial_name = f\"cv-keras-training-job-{int(time.time())}\"\n", - "cnn_trial = Trial.create(\n", - " trial_name=trial_name,\n", - " experiment_name=cv_experiment.experiment_name,\n", - " sagemaker_boto_client=sm,\n", - ")\n", - "\n", - "experiment_config={\n", - " \"ExperimentName\": cv_experiment.experiment_name,\n", - " \"TrialName\": cnn_trial.trial_name,\n", - " \"TrialComponentDisplayName\": \"Training\",\n", - "}\n", - "\n", - "estimator = TensorFlow(\n", - " base_job_name=\"cv-keras-pipe\",\n", - " entry_point=\"keras_cifar10.py\",\n", - " source_dir=\"source_dir\",\n", - " role=role,\n", - " framework_version=\"2.3.0\",\n", - " py_version=\"py37\",\n", - " hyperparameters=hyperparameters,\n", - " instance_count=1,\n", - " instance_type=\"ml.c5.xlarge\",\n", - " metric_definitions=keras_metric_definition,\n", - " enable_sagemaker_metrics=True,\n", - " input_mode=\"Pipe\",\n", - " \n", - ")\n", - "\n", - "estimator.fit(inputs, wait=True, logs=False, experiment_config=experiment_config)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The **```fit```** method will create a training job on **ml.c5.xlarge** instance.\n", - "\n", - "These instances will write checkpoints and logs to the S3 bucket we've set up earlier. If you don't have this bucket yet, **```sagemaker_session```** will create it for you. These checkpoints and logs can be used for restoring the training job, and to analyze training job metrics using TensorBoard. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Analyzing Training Job\n", - "\n", - "You can set `logs=True` in the above fit call in order to see the container logs directly in the notebook. Alternatively you can view the SageMaker console under \"Training Jobs\" for a more user friendly report with links to CloudWatch for the full logs indefinetely.\n", - "\n", - "Since we specified an Experiment trial, you can also view the \"SageMaker resources\" icon in SageMaker Studio, select \"Experiments and trials\", open the trial, and eplorer trial details to view metric charts, summary stats, and hyperparameters associated with the experiment.\n", - "\n", - "![Experiment UI](../statics/Experiments.png)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Automatic Model Tuning\n", - "\n", - "[Amazon SageMaker automatic model tuning](https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning.html), also known as hyperparameter optimization (HPO), finds the best version of a model by running many training jobs on your dataset using the algorithm and ranges of hyperparameters that you specify. It then chooses the hyperparameter values that result in a model that performs the best, as measured by a metric that you choose." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Configure HPO Job\n", - "Next, the tuning job with the following configurations need to be specified:\n", - "- hyperparameters that SageMaker Automatic Model Tuning will tune: `learning-rate`, `batch-size` and `optimizer`;\n", - "- maximum number of training jobs it will run to optimize the objective metric: `6`\n", - "- number of parallel training jobs that will run in the tuning job: `2`\n", - "- objective metric that Automatic Model Tuning will use: `validation:accuracy`\n", - "\n", - "**Note: you may ran into resource limits in your account. If you do, please raise a support case to increase the limit**" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "shared_hyperparameters = {\"epochs\": 4}\n", - "\n", - "estimator = TensorFlow(\n", - " base_job_name=\"cv-keras-pipe\",\n", - " entry_point=\"keras_cifar10.py\",\n", - " source_dir=\"source_dir\",\n", - " role=role,\n", - " framework_version=\"2.3.0\",\n", - " py_version=\"py37\",\n", - " hyperparameters=shared_hyperparameters,\n", - " instance_count=1,\n", - " instance_type=\"ml.m5.2xlarge\",\n", - " metric_definitions=keras_metric_definition,\n", - " input_mode=\"Pipe\",\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from sagemaker.tuner import (\n", - " IntegerParameter,\n", - " CategoricalParameter,\n", - " ContinuousParameter,\n", - " HyperparameterTuner,\n", - ")\n", - "\n", - "hyperparameter_ranges = {\n", - " \"learning-rate\": ContinuousParameter(0.00001, 0.001),\n", - " \"batch-size\": CategoricalParameter([64, 128, 256]),\n", - " \"optimizer\": CategoricalParameter([\"sgd\", \"adam\", \"rmsprop\"]),\n", - "}\n", - "\n", - "objective_metric_name = \"validation:accuracy\"\n", - "\n", - "inputs = {\"train\": dataset_location + \"/train\", \"validation\": dataset_location + \"/validation\"}\n", - "\n", - "tuner = HyperparameterTuner(\n", - " estimator,\n", - " objective_metric_name,\n", - " hyperparameter_ranges,\n", - " metric_definitions=keras_metric_definition,\n", - " objective_type=\"Maximize\",\n", - " max_jobs=6,\n", - " max_parallel_jobs=2,\n", - " base_tuning_job_name=\"cv-hpo\",\n", - ")\n", - "\n", - "tuner.fit(inputs)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Associate HPO to Experiment\n", - "This process is can be eliminated when expecuted from a [SageMaker Pipeline Tuning Step](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.steps.TuningStep)\n", - "\n", - "After running the code below, you should see something like this in your studio environment:\n", - "![HPO Experiments](../statics/HPO_experiments.png)\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from smexperiments.search_expression import Filter, Operator, SearchExpression\n", - "from smexperiments.trial_component import TrialComponent" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Get the most recently created tuning job\n", - "\n", - "list_tuning_jobs_response = sm.list_hyper_parameter_tuning_jobs(\n", - " SortBy=\"CreationTime\", SortOrder=\"Descending\"\n", - ")\n", - "print(f'Found {len(list_tuning_jobs_response[\"HyperParameterTuningJobSummaries\"])} tuning jobs.')\n", - "tuning_jobs = list_tuning_jobs_response[\"HyperParameterTuningJobSummaries\"]\n", - "most_recently_created_tuning_job = tuning_jobs[0]\n", - "tuning_job_name = most_recently_created_tuning_job[\"HyperParameterTuningJobName\"]\n", - "experiment_name = \"cv-hpo-experiment\"\n", - "trial_name = tuning_job_name + \"-trial\"\n", - "\n", - "print(f\"Associate all training jobs created by {tuning_job_name} with trial {trial_name}\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Create the experiment if it doesn't exist\n", - "try:\n", - " experiment = Experiment.load(experiment_name=experiment_name)\n", - "except Exception as ex:\n", - " if \"ResourceNotFound\" in str(ex):\n", - " experiment = Experiment.create(experiment_name=experiment_name)\n", - "\n", - "\n", - "# create the trial if it doesn't exist\n", - "try:\n", - " trial = Trial.load(trial_name=trial_name)\n", - "except Exception as ex:\n", - " if \"ResourceNotFound\" in str(ex):\n", - " trial = Trial.create(experiment_name=experiment_name, trial_name=trial_name)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Get the trial components derived from the training jobs\n", - "\n", - "creation_time = most_recently_created_tuning_job[\"CreationTime\"]\n", - "creation_time = creation_time.astimezone(pytz.utc)\n", - "creation_time = creation_time.strftime(\"%Y-%m-%dT%H:%M:%SZ\")\n", - "\n", - "created_after_filter = Filter(\n", - " name=\"CreationTime\",\n", - " operator=Operator.GREATER_THAN_OR_EQUAL,\n", - " value=str(creation_time),\n", - ")\n", - "\n", - "# The training job names contain the tuning job name (and the training job name is in the source arn)\n", - "source_arn_filter = Filter(\n", - " name=\"TrialComponentName\", operator=Operator.CONTAINS, value=tuning_job_name\n", - ")\n", - "source_type_filter = Filter(\n", - " name=\"Source.SourceType\", operator=Operator.EQUALS, value=\"SageMakerTrainingJob\"\n", - ")\n", - "\n", - "search_expression = SearchExpression(\n", - " filters=[created_after_filter, source_arn_filter, source_type_filter]\n", - ")\n", - "\n", - "# Search iterates over every page of results by default\n", - "trial_component_search_results = list(\n", - " TrialComponent.search(search_expression=search_expression, sagemaker_boto_client=sm)\n", - ")\n", - "print(f\"Found {len(trial_component_search_results)} trial components.\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Associate the trial components with the trial\n", - "for tc in trial_component_search_results:\n", - " print(f\"Associating trial component {tc.trial_component_name} with trial {trial.trial_name}.\")\n", - " trial.add_trial_component(tc.trial_component_name)\n", - " # sleep to avoid throttling\n", - " time.sleep(0.5)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Clean up\n", - "To avoid incurring charges to your AWS account for the resources used in this tutorial you need to remove all data and model artifacts from the SageMaker S3 bucket." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "instance_type": "ml.t3.medium", - "kernelspec": { - "display_name": "Python 3 (Data Science)", - "language": "python", - "name": "python3__SAGEMAKER_INTERNAL__arn:aws:sagemaker:us-east-2:429704687514:image/datascience-1.0" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.10" - }, - "notice": "Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with the License. A copy of the License is located at http://aws.amazon.com/apache2.0/ or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.", - "pycharm": { - "stem_cell": { - "cell_type": "raw", - "metadata": { - "collapsed": false - }, - "source": [] - } - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/02_training/tensorflow/source_dir/keras_cifar10.py b/02_training/tensorflow/source_dir/keras_cifar10.py deleted file mode 100644 index 1b3ee3c..0000000 --- a/02_training/tensorflow/source_dir/keras_cifar10.py +++ /dev/null @@ -1,214 +0,0 @@ -# Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"). -# You may not use this file except in compliance with the License. -# A copy of the License is located at -# -# https://aws.amazon.com/apache-2-0/ -# -# or in the "license" file accompanying this file. This file is distributed -# on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either -# express or implied. See the License for the specific language governing -# permissions and limitations under the License. - -import argparse -import io -import itertools -import json -import logging -import os -import re - -import matplotlib.pyplot as plt -import numpy as np -import sklearn.metrics -import tensorflow as tf -from tensorflow import keras -from tensorflow.keras import backend as K -from tensorflow.keras.constraints import max_norm -from tensorflow.keras.layers import ( - Activation, - BatchNormalization, - Conv2D, - Dense, - Dropout, - Flatten, - MaxPooling2D, -) -from tensorflow.keras.models import Sequential -from tensorflow.keras.optimizers import SGD, Adam, RMSprop - -logging.getLogger().setLevel(logging.INFO) -tf.compat.v1.logging.set_verbosity(tf.compat.v1.logging.INFO) - -HEIGHT = 32 -WIDTH = 32 -DEPTH = 3 -NUM_CLASSES = 10 - - -METRIC_ACCURACY = "accuracy" - - -def keras_model_fn(learning_rate, optimizer): - model = Sequential() - model.add(Conv2D(32, (3, 3), padding="same", name="inputs", input_shape=(HEIGHT, WIDTH, DEPTH))) - model.add(BatchNormalization()) - model.add(Activation("relu")) - model.add(Conv2D(32, (3, 3))) - model.add(BatchNormalization()) - model.add(Activation("relu")) - model.add(MaxPooling2D(pool_size=(2, 2))) - model.add(Dropout(0.2)) - - model.add(Conv2D(64, (3, 3), padding="same")) - model.add(BatchNormalization()) - model.add(Activation("relu")) - model.add(Conv2D(64, (3, 3))) - model.add(BatchNormalization()) - model.add(Activation("relu")) - model.add(MaxPooling2D(pool_size=(2, 2))) - model.add(Dropout(0.3)) - - model.add(Conv2D(128, (3, 3), padding="same")) - model.add(BatchNormalization()) - model.add(Activation("relu")) - model.add(Conv2D(128, (3, 3))) - model.add(BatchNormalization()) - model.add(Activation("relu")) - model.add(MaxPooling2D(pool_size=(2, 2))) - model.add(Dropout(0.4)) - - model.add(Flatten()) - model.add(Dense(512, kernel_constraint=max_norm(2.0))) - model.add(Activation("relu")) - model.add(Dropout(0.5)) - model.add(Dense(NUM_CLASSES)) - model.add(Activation("softmax")) - - if optimizer == "sgd": - opt = SGD(learning_rate=learning_rate) - elif optimizer == "rmsprop": - opt = RMSprop(learning_rate=learning_rate) - elif optimizer == "adam": - opt = Adam(learning_rate=learning_rate) - else: - raise Exception("Unknown optimizer", optimizer) - - model.compile(loss="categorical_crossentropy", optimizer=opt, metrics=["accuracy"]) - return model - - -def read_dataset(epochs, batch_size, channel, channel_name): - mode = args.data_config[channel_name]["TrainingInputMode"] - - logging.info("Running {} in {} mode".format(channel_name, mode)) - if mode == "Pipe": - from sagemaker_tensorflow import PipeModeDataset - - dataset = PipeModeDataset(channel=channel_name, record_format="TFRecord") - else: - filenames = [os.path.join(channel, channel_name + ".tfrecords")] - dataset = tf.data.TFRecordDataset(filenames) - - image_feature_description = { - "image": tf.io.FixedLenFeature([], tf.string), - "label": tf.io.FixedLenFeature([], tf.int64), - } - - def _parse_image_function(example_proto): - # Parse the input tf.Example proto using the dictionary above. - features = tf.io.parse_single_example(example_proto, image_feature_description) - image = tf.io.decode_raw(features["image"], tf.uint8) - image.set_shape([3 * 32 * 32]) - image = tf.reshape(image, [32, 32, 3]) - - label = tf.cast(features["label"], tf.int32) - label = tf.one_hot(label, 10) - - return image, label - - dataset = dataset.map(_parse_image_function, num_parallel_calls=10) - dataset = dataset.prefetch(10) - dataset = dataset.repeat(epochs) - dataset = dataset.shuffle(buffer_size=10 * batch_size) - dataset = dataset.batch(batch_size, drop_remainder=True) - - return dataset - - - -def main(args): - # Initializing TensorFlow summary writer - job_name = json.loads(os.environ.get("SM_TRAINING_ENV"))["job_name"] - - # Importing datasets - train_dataset = read_dataset(args.epochs, args.batch_size, args.train, "train") - validation_dataset = read_dataset(args.epochs, args.batch_size, args.validation, "validation") - - # Initializing and compiling the model - model = keras_model_fn(args.learning_rate, args.optimizer) - - # Train the model - model.fit( - x=train_dataset, - epochs=args.epochs, - batch_size=args.batch_size, - validation_data=validation_dataset, - ) - - # Saving trained model - model.save(args.model_output + "/1") - - # Converting validation dataset to numpy array - validation_array = np.array(list(validation_dataset.unbatch().take(-1).as_numpy_iterator())) - test_x = np.stack(validation_array[:, 0]) - test_y = np.stack(validation_array[:, 1]) - - # Use the model to predict the labels - test_predictions = model.predict(test_x) - test_y_pred = np.argmax(test_predictions, axis=1) - test_y_true = np.argmax(test_y, axis=1) - - # Evaluating model accuracy and logging it as a scalar for TensorBoard hyperparameter visualization. - accuracy = sklearn.metrics.accuracy_score(test_y_true, test_y_pred) - tf.summary.scalar(METRIC_ACCURACY, accuracy, step=1) - logging.info("Test accuracy:{}".format(accuracy)) - - -if __name__ == "__main__": - parser = argparse.ArgumentParser() - - parser.add_argument( - "--train", - type=str, - required=False, - default=os.environ.get("SM_CHANNEL_TRAIN"), - help="The directory where the CIFAR-10 input data is stored.", - ) - parser.add_argument( - "--validation", - type=str, - required=False, - default=os.environ.get("SM_CHANNEL_VALIDATION"), - help="The directory where the CIFAR-10 input data is stored.", - ) - parser.add_argument( - "--model-output", - type=str, - default=os.environ.get("SM_MODEL_DIR"), - help="The directory where the trained model will be stored.", - ) - parser.add_argument("--learning-rate", type=float, default=0.01, help="Initial learning rate.") - parser.add_argument( - "--epochs", type=int, default=10, help="The number of steps to use for training." - ) - parser.add_argument("--batch-size", type=int, default=128, help="Batch size for training.") - parser.add_argument( - "--data-config", type=json.loads, default=os.environ.get("SM_INPUT_DATA_CONFIG") - ) - parser.add_argument("--optimizer", type=str.lower, default="adam") - parser.add_argument("--model_dir", type=str) - - args = parser.parse_args() - main(args) diff --git a/02_training/training.ipynb b/02_training/training.ipynb index d972725..0e35e7a 100644 --- a/02_training/training.ipynb +++ b/02_training/training.ipynb @@ -4,7 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Model Training\n", + "# Model Training and Tuning\n", "\n", "In this notebook we will train the model on the data we prepared in [Module 1: Preprocessing](../01_preprocessing/data_preprocessing.ipynb) using the AWS-managed Tensorflow container and a script describing the model used for classification." ] @@ -18,15 +18,18 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 56, "metadata": {}, "outputs": [], "source": [ "import sagemaker\n", "from sagemaker import get_execution_role\n", + "import boto3\n", "\n", "role = get_execution_role()\n", "sagemaker_session = sagemaker.Session()\n", + "boto3_session = boto3.Session()\n", + "sagemaker_client = boto3_session.client(\"sagemaker\")\n", "\n", "account = sagemaker_session.account_id()\n", "region = sagemaker_session.boto_region_name\n", @@ -36,7 +39,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 57, "metadata": {}, "outputs": [], "source": [ @@ -44,9 +47,44 @@ "processed_data_s3_uri = f's3://{default_bucket}/{processed_data_prefix}'" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Automatic Model Tuning\n", + "\n", + "[Amazon SageMaker automatic model tuning](https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning.html), also known as hyperparameter optimization (HPO), finds the best version of a model by running many training jobs on your dataset using the algorithm and ranges of hyperparameters that you specify. It then chooses the hyperparameter values that result in a model that performs the best, as measured by a metric that you choose." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Configure HPO Job\n", + "Next, the tuning job with the following configurations need to be specified:\n", + "- hyperparameters that SageMaker Automatic Model Tuning will tune: `dropout`, `batch-size`;\n", + "- maximum number of training jobs it will run to optimize the objective metric: `6`\n", + "- number of parallel training jobs that will run in the tuning job: `2`\n", + "- the objective metric that Automatic Model Tuning will use is the accuracy of the validation data: `val_acc`" + ] + }, { "cell_type": "code", - "execution_count": null, + "execution_count": 58, + "metadata": {}, + "outputs": [], + "source": [ + "metric_definitions = [\n", + " {'Name': 'loss', 'Regex': 'loss: ([0-9\\\\.]+)'},\n", + " {'Name': 'acc', 'Regex': 'accuracy: ([0-9\\\\.]+)'},\n", + " {'Name': 'val_loss', 'Regex': 'val_loss: ([0-9\\\\.]+)'},\n", + " {'Name': 'val_acc', 'Regex': 'val_accuracy: ([0-9\\\\.]+)'}\n", + "]" + ] + }, + { + "cell_type": "code", + "execution_count": 59, "metadata": {}, "outputs": [], "source": [ @@ -55,85 +93,114 @@ "from sagemaker.tensorflow import TensorFlow\n", "\n", "TF_FRAMEWORK_VERSION = '2.4.1'\n", + "DISTRIBUTION = {'parameter_server': {'enabled': False}}\n", + "DISTRIBUTION_MODE = 'FullyReplicated'\n", + " \n", + "training_instance_type = 'ml.c5.4xlarge'\n", + "training_instance_count = 1\n", + "shared_hyperparameters = { \"initial_epochs\": 5, 'fine_tuning_epochs': 20, 'data_dir': '/opt/ml/input/data' }\n", "\n", - "hyperparameters = {'initial_epochs': 5,\n", - " 'batch_size': 8,\n", - " 'fine_tuning_epochs': 20, \n", - " 'dropout': 0.4,\n", - " 'data_dir': '/opt/ml/input/data'}\n", + "estimator = TensorFlow(\n", + " entry_point=\"train-mobilenet.py\",\n", + " source_dir=\"code\",\n", + " output_path=model_path, \n", + " instance_type=training_instance_type,\n", + " instance_count=training_instance_count, \n", + " distribution=distribution,\n", + " hyperparameters=shared_hyperparameters, \n", + " metric_definitions=metric_definitions, \n", + " role=role,\n", + " framework_version=TF_FRAMEWORK_VERSION, \n", + " py_version='py37', \n", + " base_job_name=prefix,\n", + " script_mode=True\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sagemaker.tuner import (\n", + " IntegerParameter,\n", + " CategoricalParameter,\n", + " ContinuousParameter,\n", + " HyperparameterTuner,\n", + ")\n", "\n", - "metric_definitions = [{'Name': 'loss', 'Regex': 'loss: ([0-9\\\\.]+)'},\n", - " {'Name': 'acc', 'Regex': 'accuracy: ([0-9\\\\.]+)'},\n", - " {'Name': 'val_loss', 'Regex': 'val_loss: ([0-9\\\\.]+)'},\n", - " {'Name': 'val_acc', 'Regex': 'val_accuracy: ([0-9\\\\.]+)'}]\n", + "hyperparameter_ranges = {\n", + " \"dropout\": ContinuousParameter(0.5, 0.8),\n", + " \"batch-size\": CategoricalParameter([8 , 16, 32, 64, 128, 256])\n", + "}\n", "\n", + "objective_metric_name = \"val_acc\"\n", "\n", - "distribution = {'parameter_server': {'enabled': False}}\n", - "DISTRIBUTION_MODE = 'FullyReplicated'\n", - " \n", "train_in = TrainingInput(s3_data=processed_data_s3_uri +'/train', distribution=DISTRIBUTION_MODE)\n", "val_in = TrainingInput(s3_data=processed_data_s3_uri +'/valid', distribution=DISTRIBUTION_MODE)\n", "test_in = TrainingInput(s3_data=processed_data_s3_uri +'/test', distribution=DISTRIBUTION_MODE)\n", "\n", "inputs = {'train':train_in, 'test': test_in, 'validation': val_in}\n", "\n", - "training_instance_type = 'ml.c5.4xlarge'\n", + "tuner = HyperparameterTuner(\n", + " estimator,\n", + " objective_metric_name,\n", + " hyperparameter_ranges,\n", + " metric_definitions=metric_definitions,\n", + " objective_type=\"Maximize\",\n", + " max_jobs=6,\n", + " max_parallel_jobs=2,\n", + " base_tuning_job_name=\"cv-hpo\",\n", + ")\n", "\n", - "training_instance_count = 1" + "tuner.fit(inputs)" ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": {}, - "outputs": [], "source": [ - "model_path = f\"s3://{default_bucket}/{prefix}\"\n", - "\n", - "estimator = TensorFlow(entry_point='train-mobilenet.py',\n", - " source_dir='code',\n", - " output_path=model_path,\n", - " instance_type=training_instance_type,\n", - " instance_count=training_instance_count,\n", - " distribution=distribution,\n", - " hyperparameters=hyperparameters,\n", - " metric_definitions=metric_definitions,\n", - " role=role,\n", - " framework_version=TF_FRAMEWORK_VERSION, \n", - " py_version='py37',\n", - " base_job_name=prefix,\n", - " script_mode=True)" + "## Viewing the experiment associated to the HPO job\n", + "\n", + "[SageMaker Experiments](https://docs.aws.amazon.com/sagemaker/latest/dg/experiments.html) helps you organize, track, compare and evaluate machine learning (ML) experiments and model versions. SInce ML is a highly iterative process, Experiment helps data scientists and ML engineers to explore thousands of different models in an organized manner. Exspecially when you are using tools like [Automatic Model Tuning](https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning.html) and [Amazon SageMaker Autopilot](https://docs.aws.amazon.com/sagemaker/latest/dg/experiments.html), it will help you explore a large number of combinations automatically, and quickly zoom in on high-performance models.\n", + "\n", + "The tuning job has an experiment automatically associated with it and we can explore the results in the SageMaker user interface. \n", + "\n", + "![hpo-experiment](statics/hpo-experiment.png)" ] }, { - "cell_type": "code", - "execution_count": null, - "metadata": { - "scrolled": true - }, - "outputs": [], + "cell_type": "markdown", + "metadata": {}, "source": [ - "estimator.fit(inputs)" + "You can also access the best model programatically as shown below:" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 55, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "2022-11-03 14:07:17 Starting - Preparing the instances for training\n", + "2022-11-03 14:07:17 Downloading - Downloading input data\n", + "2022-11-03 14:07:17 Training - Training image download completed. Training in progress.\n", + "2022-11-03 14:07:17 Uploading - Uploading generated training model\n", + "2022-11-03 14:07:17 Completed - Resource reused by training job: cv-hpo-221103-1357-004-4196ca7b\n", + "Best model artifact file is uploaded here: s3://sagemaker-us-east-1-379642174303/postprocessing/cv-hpo-221103-1357-002-0901bc7e/output ========\n" + ] + } + ], "source": [ - "training_job_name = estimator.latest_training_job.name\n", + "training_job_name = tuner.best_estimator().latest_training_job.name\n", "\n", - "print(f\"Model artifact file is uploaded here: {model_path}/{training_job_name}/output ========\")\n", - "\n" + "print(f\"Best model artifact file is uploaded here: {model_path}/{training_job_name}/output ========\")\n" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": {