From 6c9ad03a64f6da494a84e6255fc91f388e2404fa Mon Sep 17 00:00:00 2001 From: pe3zx Date: Sun, 28 Jan 2018 15:57:30 +0700 Subject: [PATCH] Update machine learning note --- ...g-by-standford-university-checkpoint.ipynb | 131 ------------------ files/machine-learning/images/5.png | Bin 0 -> 80786 bytes ...ine-learning-by-standford-university.ipynb | 128 +++++++++++++++-- 3 files changed, 117 insertions(+), 142 deletions(-) delete mode 100644 files/machine-learning/.ipynb_checkpoints/machine-learning-by-standford-university-checkpoint.ipynb create mode 100644 files/machine-learning/images/5.png diff --git a/files/machine-learning/.ipynb_checkpoints/machine-learning-by-standford-university-checkpoint.ipynb b/files/machine-learning/.ipynb_checkpoints/machine-learning-by-standford-university-checkpoint.ipynb deleted file mode 100644 index b38100b..0000000 --- a/files/machine-learning/.ipynb_checkpoints/machine-learning-by-standford-university-checkpoint.ipynb +++ /dev/null @@ -1,131 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Machine Learning by Standford University\n", - "\n", - "## Week 1\n", - "\n", - "### Introduction\n", - "\n", - "#### What is Machine Learning?\n", - "\n", - "- Definition of machine learning defined by many computer scientists:\n", - " - Arthur Samuel (1959): Machine learning is field of study that gives computers the ability to learn without being explicitly programmed.\n", - " - Tom Mitchell (1998): Well-posed learning problem: A computer program is said to *learn* from experience $E$ with respect to some task $T$ and some performance measure $P$, if its performance on $T$, as measured by $P$, improves with experience $E$.\n", - "- Types of machine learning algorithms:\n", - " - **Supervised learning**: teach the computer how to do something\n", - " - **Unsupervices learning**: let computer learn but itself\n", - " - Others:\n", - " - Reinforcement learning\n", - " - Recommender systems\n", - "\n", - "#### Supervised Learning\n", - "\n", - "- **Definition**: Give the computer a data set in which the right answer were given. Computer then resposible for producing *more* right answer from what we were given.\n", - "- Type of problems on supervised learning\n", - " - **Regression problem**: try to predict continuous (real) valued output e.g. house pricing.\n", - " - **Classification problem**: discrete valued output(s) e.g. probability of breast cancer (nalignant, benign) based on tumor size as attribute or feature. \n", - "\n", - "#### Unsupervised Learning\n", - "\n", - "- **Definition**: Data have the same labels or no labels. Let computer find the structure of data\n", - "- By: **clustering algorithm** and **non-clustering algorithm**\n", - "\n", - "### Model and Cost Function\n", - "\n", - "#### Model Representation\n", - "\n", - "- This training set will be used in the following section:\n", - "\n", - "| Size in feet^2 (x) \t| Price ($) in 1000's (y) \t|\n", - "|:------------------:\t|:-----------------------:\t|\n", - "| 2104 \t| 460 \t|\n", - "| 1416 \t| 232 \t|\n", - "| 1534 \t| 315 \t|\n", - "| 852 \t| 178 \t|\n", - "| ... \t| ... \t|\n", - "\n", - "- To represent the model, these are basic description of notation:\n", - " - $m$ = Number of training exmaples\n", - " - $x$'s = input variable/features\n", - " - $y$'s = output variable/\"target\" variable\n", - " - $(x, y)$ = one training example for corresponding $x$ and $y$\n", - " - $(x^i, y^i); i=1,...,m$ = training examples from row on table when $i$ is an index into the training set\n", - " - $X$ = space of input values, for example: $X = R$\n", - " - $Y$ = space of output values, for example: $Y = R$\n", - "- Supervised learning (on house pricing problem) is consists of\n", - " - Training set or data set $(x^i, y^i); i=1,...,m$\n", - " - Learning algorithm, to output $h$ or *hypothesis function*\n", - " - $h$ or *hypothesis function* takes input and try to output the estimated value of $y$, corresponding to $x$ or $h: X \\rightarrow Y$\n", - "- There are many ways to represent $h$ based on learning algorithm, for example, for house pricing problem, supervised, regression problem, the hypothesis can be described as \n", - "\n", - "$$h_\\theta(x) = \\theta_0 + \\theta_1x$$\n", - "\n", - "which is called *linear regression model with one variable* or *univariate linear regression*.\n", - "\n", - "#### Cost Function\n", - "\n", - "Cost function is the function that tell *accuracy* of hypothesis.\n", - "\n", - "According to the training set of house pricing problem below where $m = 47$\n", - "\n", - "| Size in feet^2 (x) \t| Price ($) in 1000's (y) \t|\n", - "|:------------------:\t|:-----------------------:\t|\n", - "| 2104 \t| 460 \t|\n", - "| 1416 \t| 232 \t|\n", - "| 1534 \t| 315 \t|\n", - "| 852 \t| 178 \t|\n", - "| ... \t| ... \t|\n", - "\n", - "The hypothesis of this linear regression problem can be notated as:\n", - "\n", - "$$h_\\theta(x) = \\theta_0 + \\theta_1x$$\n", - "\n", - "For house pricing linear regression problem, we need to choose $\\theta_0$ and $\\theta_1$ so that the hyopothesis $h_\\theta(x_i)$ (predicted value) is close to $y$ (actual value), or $h_\\theta(x_i) - y_i$ must be small. In this situation, **mean squared error (MSE)** or **mean squared division (MSD)** can be used to measure the average of the squares of the errors or deviations. The cost function of this problem can be described by the MSE as:\n", - "\n", - "$$J(\\theta_0, \\theta_1) = \\dfrac {1}{2m} \\displaystyle \\sum _{i=1}^m \\left ( \\hat{y}_{i}- y_{i} \\right)^2 = \\dfrac {1}{2m} \\displaystyle \\sum _{i=1}^m \\left (h_\\theta (x_{i}) - y_{i} \\right)^2$$\n", - "\n", - "#### Cost Function Intuition I\n", - "\n", - "To find the best hypothesis, best straight line from linear equation that can be used to predict an output, for house pricing problem, result from the cost function of best fit hypothesis must closer to zero or ideally zero.\n", - "\n", - "#### Cost Function Intuition II\n", - "\n", - "This section explains about contour plot which use to conviniently describe more complex hypothesis.\n", - "\n", - "![Example of hypothesis with contour plots to find the best hypothesis based on result of cost function](images/1.png)\n", - "\n", - "\n", - "### Parameter Learning\n", - "\n", - "#### Gradient Descent\n", - "\n", - "#### Gradient Descent Intuition" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "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.6.3" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/files/machine-learning/images/5.png b/files/machine-learning/images/5.png new file mode 100644 index 0000000000000000000000000000000000000000..52fba5d6b635f6dd92db2cf70096f2a7fd0bc63a GIT binary patch literal 80786 zcmZU(W0+<^uP)q}wtL#wkL#pUguozkCghF30MsIq+vhz$vO0f;}j`aLvJq3fWkGkWUAkt5Tp_&}Xl zK*E~H;g=9VUBHDfgYItv9FNOQZR8de& zW&0Wt^$?yK>qF8o_d9@R^LJWT_|^yU455G0)CzeYN%cctBiY7!aSZW*=ojY%p4)rs zFv4Ny(D+2@2*ww$*<1-i*S=F?pfWk7`_6Xyoumm_&FDWf1hIO8$&bT zP)#ne`*Ded<>jOervX7wg`E-F#=@=(&G{3R@J;Ih1b6lc#Wob3(fl7R^y-m@L`MVX zLxcqzN%2wdiEO$ef6pi9e_lxw;697cbo#);5{BG}WP1x<`CSCQhl-sk9Lm2Q^ar-= zW1oi~zy88jIu%4r6&b#KTX-=*S&I=2^%a5ul`u_m59Tar*i&Fd0mwhTfm8qGr3V5b zz{<%Xfc+Klce^cw=`^A#AM;34zAB=kU4ioEk0*kSiKWH5KU-^ZCv)B9fx z@t?QU_lg?W+bzrJwR5CjyuEBe`fYU`wHfL#?o0k9AgXW`-z5N`0eqgj5O>f{sBOre zF9a}mfvUhg32@*am?@m*H~x#!Tdeny5Wk~6-rbzN?LBaNqgI1mplv&eH=8mqe(1MY za6eM500#1_R5kD15y8Gme7s7GMNQ0#(4~NPp{=@0bz6c!m4K8}!=^l&@woR9FO;f+ zpY!J$x}VoC1bh)I|DW1Bwrt%5-M1FB9KXr{;p;I|(HfDi1TraJTc$;|w(mYZST|^5!3D5EzHdiW#-~QVULPJ;RFMninRBCn zqkhN%tK=Ad{Cw1(Kped@e3Ja=zQI1fq=mX%#bL-t$0~sM--?yofnKdUo~lGw0pC)@ zY{0cjFvBE zI|T*ZWr>QGxJ9B4sL{t2Km-vCttHTgoBG#a}c5EdIh_M1@GukSmZhLB9PYd)Vb(3)^v2wWJSFwZT|;m?uIXPB9p1)0y8 zJ1juV6U?V)wM#sNnPeM8C#0z)D&#ICv1Pmho}sUN)(zHYoSmHwojILpofVwPPRGyI zPq$}%3e56$1neYlWB}rN;(BsBa(pxVLj>cw6Sc8~F@%7;ls$?89AeZ0i~?Tba0dUn zxVmtMFo)pqV2PZu42mF%#Ik_0NQ;d0Ug}}%(aWiAs1) ziM;`bsDg|FfKjp&b_sk5f*Ge7+zHT$8!a%cP&Gldbv1akf-Q9m$&2mv*XGbB?xxd* zdW(ha!+J{h)p4^LHwK;ro>opEH@b(XyQ=$}d$h-Z2aNlM`^oF-oAWEk+x_eH-PCQv z?ae;I?#zMR9spJU_be(T8aweUZ7umIu{jY2jXLEjRVytCtub8^kuoter8G_DpG&GN zvQ5fP@_sr)3S>G(ihIcQc?<1{364m)N$(ZlyR{ntz^IQ((*W!auri$5oI3bNafH)^(E^?#wEP6 zgT<%C-%B^;H5R4j!WNs0>a$66u=AC(S=$ud3ub0((@->oGzqF@%d52hI(Qw^H&_d3 zi+?QiW_?SDD-WuiG|VL3I&5>VS++cQIC$!Hv$xB;L%s>WKEO-;>jc^bY6u(hy7n{% z*hB?IeMOT+BZtR_A);?Gccmv~>SaQtJ!HD1CuGp4l&9d+n=%(NZW#EizNZD}1FRi3 zkc})%)2%oRNi9(=m-OK(WvZO2#B2s_h^((Khi{tKbXq?Gt2%8uZBFn~c&@!DpS_zF z8n`T8)^+=N*SnYe`}&shHVu~MdKpF>CMA~7;*?sLTAcnm6~Ocj^&QnujOz|`l|0L~ zQ+5=$!MBHZ47Iyl9c-g_)~sdsWgqHZ_&?Y`mfpS!)c?^TsB+KnMDw8aJoCzaem|`` z$UfmYC^$+yU^=Qe$~@q@DmhBMU^}R}0^IPS=i=M5>Ql^;)RNesO z3=$VoBylj4H}XW$QL|oZv?{x6zN!a_4wi+9)N{N!k|3XsvVvt)E}l)q0zX-mpVq6@`E*pWSwk&(=P9eD+eGru!CuFoP(5tEA5iGjvE<0)~g z+FKKEaeX<2Xp8y|$4b{sj*J||0yw%o`d@@^B$5+{G+rxbEBmakE-N^sIUG2Cx23c_ zd4PDFdFaWu0nW$O#_2d@d^q19S1}`*qQQv3G{E?#-vPMfi&T{q`xKn2jh@pV+J1Gi z4lYo35~5=-55OmSDOjn?dWaoyen@@{$NQm-q4m>JmZ{@(PI}X=pAV9!$#oUYY8w+O z6BAVKl(MRZlm%2~)or>L6^x~pl__PkRR%RW+qk>Ew<8H<-+|47u%s?o>~^2GVMiBj4Ar zHV9vYKbl)wdMzAHUFJJm+ZzVkcc*!C1I@Bq(+I}LjBf`Y+N<9SCHWrVZ(1;%Fg%g6k%>}=MN>zUGunU}Z-w{y zcEg7IW2@1Xr=>?b?ValCvMLu}w@==t?jMM~k#xX@-}W~B4#pbn+9oVnyo8n&a4RPe zhMpc!N(~VI2`rElKG5Q0k7YFteCr@T0m7hqt7aT1EdhE|uXavYl+h)_Kq)@j(DEM9 z9o8?+ejJCO^3e9=;_T+cYp5^80wN_S7?=x&X1JJNv`Jjaq2Vn_dK$a&aW#+vjf&o} zgCWMrjTMuX)_*rE0|5K2^$n6O8Reegf9joTmR)RwM>N^wZkm7rd$z;~2lR;~3)T&h z$1Z3(DFvz%tb`$C>HzL|?nm`4f&=~VA^6dw#HpgXk(Lp*u^!DoE|;002M#v~vO_aC88T^7pGnLB zZUCd7JFm+gAh=OZ%rsUOKT{Gg{hHQh|9KHUMSX4^gHxxS%)Ow*`<7l}m+hfat3j?@ z=oh2xU3xhAhFzqCzOAd>ChU^_5wWNe?YICvB3WZ)paM~@q(6APMc%HVy5VTmXj|o9 zrqC$y);x_{(D7$V^u<|o@n(WY-nPjC#$4`v)JuI?pf@mOdt zMR3{DSqSER<>2K+?3h!&6E1+8w`wMpHjUO>ms+D<{k=~6EB!I}K9QbJ$CO;I#fIf|Uk`XJ`WO#cR zY+z}IIxogOZ9H5vI3(OOJSIXnyf2U;@C@(4O%<%!{Fy6jQCoI%#T~Mf*INgK>z7lo zLcIJOuY*VU~Zb+Z9*8eqoc7f z3dK6Bs9%pZ^$l=2sGfm0ccdMMa<+VyI}rs%de*+vD(TWU{z;>c7Y^s|3f&}LF6aS7vtT+TE{qMH4=weQ|pKGO+w1dP;lc8~75gTd*(^V+$| zBx***#GbtmwWAlCQv8HaBu#qITD7ws_ z4E~Z`t~?hcQw0SEu)Azz@QrAaCw*@6(Xi{?xS=uH@vbDlT>0v>0%!R(u^~wn85#L( z&98=G>?tuWJ4@6n$vM{rg~g(Ip9(jrpEUo>yiTNL^V!zT!`!lD%$~Ibk4%xAqMGCk zma3;#nStxy&AeW&Yjqnm>wK=QhiQk0`_wmr&K?~t+fS{TFT65te_kwN(Gk(6 z054_$vF;(?`0qc!o%8@cSV~xU1P0h6cpbsm)9tHugI}F`Wjn!L=rj|Lv=-W`ZTXHa zW^E3^PA0ESQRU<3WGoMCr*@Jn8C&;NT-ti`_9b^F3oBfgZYr5w*Vz^x_dpgZ)(@6^ zYjdymjZOuTFLk0VS~E|&IVB_S-OpZpH~6!-op*}n>^CgFB+t>eY0F$UFDHDJ(?L@V zld;rYI(y$KcS0GA-#yRUlU=Kwfm=W5`A!52O7CuV}YQ z!<)pBgrQ=mV#b*gxtKF}BvVDS3WDo5HNvj7vuDqOoyJQIs_5$)V%m4PQ+Ta-RRDqM z%Zh`xs&L8YyaT#}cSs!nOPOf-S2K75o1HyV9PNRwjSdYy$+F0E+stcJdp3CBR) z2-XzG%+c`Nh}Fc_XwIN*rhH<3*mQDv!gl66g*eP8`hgssO%1h$_oc$d7*8{Ya(k3x=36>mojqwdOZ=$dF z_Xo&0NNS*rV0F-3D1L-`3~cy2Nr5-R9FK> ztE`vEG5BV1BOhqCSTmt+y?|amqTFA&f*^UpVg64K4*Q77h$_F9KrL0zfzCgeH<=xn zjT-+nHaUYhlbs>GW2i5@Gf6YP)5{J-Ji$1Dz`#v#sB$dBv$8eUTx#Gj;%sI0X+LVS zwPiQ^+n{p8cM5NFc_V#pypjEyhVg`if{}sIL+2p3BpN1UCHB?JxA&?nOiT)4?tv9B z^%zOB255JD+5~4ts7SJmH&MDNZx}p#7BKYuHm|!(nB6Wq$i*&Bt@PW>ovj@|^}mx! zoS}Cc(^%EKZlP?xZq%qhS~Idlx6<3YT@GJZnZmE*6G$Y69Fjq zGvt>;^s|>9eV`w@T|mN)_f?oN9DErWfgc>hos9TNsHMA;sP~nWD&OYY63dE_E#WfZ z=B@V0=au69@T_*+?((i!_ze~w93YZCG~yAttCZv1KE74q)Z6^4MmWWn!l1et#c0-QT#mvA;>@ zwaz@wG07S5&d@d28vnNL2>8%^n{vNeYTt=1ie9a{Qv>nZ!<#3a1w%uGZ}o%}nkK{@ z<<7bTwD3YCo6_=1)I&b#pNmYE)l{XVlwRhhiJjV6zaHxy1G(**^*Vw z)$^G(#$DEBnx)$GdeLT?o16Qg)5hEEjTnp?jC2nt2lX1Y43!2&>UV4c6r1$NeCc+oQ|7V zS6-)7URkSBeqO%ZWltgftEh|$Vj`W2vIbM7t3sl+?#lFlrlUO`d}erUgTd`?3XBH& z1<*9y2;QG8`_e&my}$hKzp{P_+vqQ5`;czdnpCORnEu=9xngN2_%@3BMQ z_HJNvzVSFd*?+k>ve#BE*K#~VJ4nY#H%51m^1%oA*smjkt%&(ld02X~L$zwQvf7ba zcB_j04*MB2b4k{V*qg`Q1p0yf86QebZn{vE;``<}+Ta zjO`3fXx(k>|D_**fVkZ`|21t)oDB%vZLDpbINf=O{)>b2U;95~IwFGqVsWZOcTG%^V*x3^NN3MaPor^OM5z&7X z{om)m-_yk1;{R!~b^0H({uxO3pAk9+T6((wEBham`#)4pc?)+FYjt4@8xvcne>!+s z*crJ0i~s*O^8YmcFQmr*LozY2{cq&|8u=e2H{E{>_+JM7x3~U_`p;dw(A;$Y*Y&*6 z&Upm{=mQP}1&4rz$G~A9;jo|M*!C;<`0qYFyS_cY zV{b3hftS90@9y9KaGrodz;bipZ|5_B{~s9r?d0n}^nbW}cYEJ@fk9`cLtD(F_Hd4R z#qfO^z2EMg8XrysT7F)7eo)cTf4)C%o|w?0Zq6Ip-Z2+7mLmMk%$6?bIh_m~c1Poh zM`Cb0YKOg-qtGxu-cA5))~oUg3JPx7`KaHQtq=hN0|$b`2@ZR{ zY`HNpF}2uiJWtT|xX-G9gM&Yx&JmN7kLJM&|5ZG4lvTbo)ML4=vlt0;rK@{#lkv2)j!0O& zwSTVEDj*(Wzn6v&&q6iMQf}bk&Yp=&ekYvTMl{=DJD$?@V{-B@Mond~5W`>yZF71) zl0*J72X-lu19Tr}SYffH;4VUpBjEFT@AmrtXU0bG{k+eLQlGCjUe>K@Nat(wh}AOK z>|}N31#EbbGzqEb=&$O4E-3CUwNo5k#qDliAQ}yi!ww`2hs(K$SyUP@3Rd`Zv0}GS zER&06&#vG5SIf3-$izVHDiYha6}YR&-;6e0DN|TzM;-eb(*+KGF$MHPx+UT}@QOF^ z8flKfaL(~9++CVgzC5){778gR0f$)l{Gkln#J26TAUMM4g6zo-5hZ|nj=I!ffzMi@&vSr}*Fx@ZBL z85WZ87Z`o=?_#?o;peI%+rLF$aX_54i{+48j3?E9LyU@L&*fCb0U9Ft)^mXZc{SG5 z8@w$7;&RPtjwO#mDHf|P#Uh~LyD7X3j%g+&gurmal{_RLTJLYxn)~3|l?%^0eIP{+ch6qNt-YJFYdDDbMpL*FW?a`L|(p9waLK zTbo<75h82JfH$c@5%lmi2@ujHeB0k`R6*thiaQSGoiAx=?u7M!zHMkA4aoqw zo+kP;h1&6HZIpa;T&$J)<8gZv2ya_x@ZUuzwkhsPjZaP%fVlTF)(Ph>7B(%&#Ij_? z&oWoZlpil`TVe0zjLy!>Mtj2jkWT#}!7BU_$BW!{e znI4BWA|e|V-EGQqG-;@tM*R*D@WZ^v*22xz!^1%_uGjGU1jD&Oz1J4ZMoQv2VX}PW zhI+;Z-45(B>EO-B%E740s8>kJ=Z}>UG@z7y3jt3{DaLt2;J&#nnLVXv5>wNn!JzQX zR`l&H+ls4aKGuj1*Q@zSteV#S2v(c*%dHOdy70f(Nc2LaVPVJCP5urC;lIghpZJf$ zJV>1JJPzZ@a@_apCup5Ea+JVVW240H?`lqrO-QYIt`p%TN=#`xf7um2z{FAwhrz*T zA;H%U$3mjF0m4MT^CgrRjwl@Ldr;=uHQkb}vngp2tiKjBUR!+~G6QfF+7K6V^RcHU`PYW4ofmb$`hwifh*IZ$Rbw^ymSMC;;uY7ZW<|$v&)PQbDAl z&9ib~{&O71=2UaDWfW5N!^v5~(2ZrEqZDs<8z6*=2?y`4kLW96p)%5N=f9U}XYGtM zIomA2?4pu0W@q2tN&?zry_|-Y6>zJB!e+KVK6jVV)>(xRf6%^e@aJ70QRZw$XY=Ye zG;K8n_Eu^81RptT*?q>RyOeK#E5b&Ik7eTHN|IPT)ZZ2cGzQF!xI&@4Fzcl)KIqr! zrl=I+{N&RQDuOC2VFF?Q!S;H-JX@A=O^9x+(rU@K{K0Gv%Eq4jx$kZ*BXpy;XLBaKo8(c4elAEf^JrmN6M3i|0q4m(>5V-lJ&ox^FW z{!^`koiD=t7rdB`2B=@jim+GmTB7?gwHdQ36tD$ss}g@S>%?D>7vJXQwi?yE1^F4%3SN%PC!2CF#Ox4HH+$|c5=d&Qg<^jaC zn7oVc2P{kENi~wq4r@y5ny%|dGY zY$4yKrg~J>06`>da|lp%)n3R?Qqnz}@9{oL+Ge$p#XsrUZRe$9lRsj*z2s7dA8YhEAU+ddf$G`}LgYkp<_w9&Yh!g&za||aKK9j-m=W)H1{tEM#Pp!1a@m?r?Z^c(uCWzjz1MUnhB%w{PeTNbMq*HE z*@z)$Kl)$=rrCd5(Tl|;-q6Rf7abOy2blz-$7;VD#sLRXry{$WU3yz5lyCQ*_h#tEd!$!;W!(_9kgFYbm*s_DOW)(Jv7IpG+QfC`%Bc3uIZ#6ifTvP5xhm>5|Py@7qlv`|Pmg~oxjk??ZR za!F4PFY+DD<=F?)7B_fL%9i}!KQe%|gGZSv&c|z*J5E?21XhAohJULjl^>-y5Ii9_ z!*~F;MtORQcp%SCSnBNZ2AUoQ1|~438*MrEmk+c^$5TTw3i zI>--vaP-KzW3KIOWqxI0A&LZVuEF0(BbueF0-d+|qXjZqy%wg@x7x!WS@SEkdXqP@ zw@^R0GZa?l#bn*>>gqdv`(5k(-kY8mtw+_5PnZ3Ag1dKb2IJBur}5&uHVfUSrlH-& z#?tHfvVKa?rWn3f(I`JkgZ)twDIX>G{bW_IzU94wf#1;eM0lsfZbh0qoEcXw+IO>v z7rM$OPTx8SYNR)q^bW>+Buq-m!s?a+PMJZZMYMurgcMT2BgNeF59bTPUJa(wS?nZV z<2pqJ?NM7PE|31V6bJnR0+wRN#WR;w8^r1tx9@Rb#1A>0l5gvs|eW=ui+N z=yA0jACrK@l38T9B9`YZQ~w#$0ee>w^In>4=z${|a_g;ku-43M^~2=a_KAyDvP#%= z9`cTz?AEyL8=}ip-`LBUQ!1T$aF-FMFuQ{Ddd22+DBgRSik)HB&AG6$coC?}+nj8U zOl+t$Kc8T-+O1?XqWW)nZA7`_*_w=xgqw-4kw3 zM%{-JpOuoHot>OQPKwp<-)}hav;I?8#)DGSTitN4YGP_ywZ=N8pr8|3EV-GbUuVG~ zT{mW7;cgzsIzw6bY@K31`fT6)x#Bz~=F6kiZu|%efB7WX1C;q z%mqYAOg5sl%#-t^rDCAcKHQ4NWg(k{YaBJ)2V&kaFfb_8QB+hCiNE#zyJ?t9C>GN% z`fpgT^J`tKLA+FltH~QfM@mdLAEKL)4hLD?2IV;_OE1%YIHa-6(dYLz!}DaMnqI+= zr&4D=5BcCv9?y494%)l!(`-eCNzm4o8NM8wXr>XMW*{kqTRpF9x`|bJ+d-rD7t}Xj zO-+Qg#Gw@5rddz?jchTAr|>X^GN7kmm=INXaf~wOaUyUFZqtEGNcWfov{t-MvF&8B z+3E7Q^_fq{gP!{KOf&i2rN7a|ru}%wesVK!aufG;dKP(XWpKV-ZtksyTJqR!llKU& z=$hhrhI+`$IVFPMGZ1ZhpDQQb8lQcEat?3$l(-Ei)Erd-#Bws zWqJdm&#Y4JzsPII`CQ@{4Uq0)qc4%}t@@JYUN82tCiANrL=B8P9ee|Zq$Sb9!>=-u za-*8v8-qeJP?H{UYk9uf*flT<$`2R)g06C2KFu|_T;4wtk7LixS3K2)gT&=hb>W1s z2ZuUFMurE)!iUP*%01nMXL^TI#rbMn!CUJal}DPD${m zl%ZF=F9K3+rC?;-7lgyaP zC``-$#mRx}V^0G}M=;eg>A$7?$bFJ0F;i<+(AH13m8n}R@4D~T@c_fHwmi~_7RT;@ zoFI<_oe$!sa6lfnc_!GiNd8oT!|=OE1a&f#T0(?5_ve}1v0G`e9yRl{#kjMy*Z+{ktFS${1*3I=EZ#ff8R%c7RLbNue%r`&ASvNpP>8Th zxk&f~g|G3!mUGBDCwNpsPD$1to8w7Iqxjyoy@!qT>kvR_o8yC4FsGq*gkVl|J7s~4 z-$sBms1l_9sq!1-npvLyv4JMbExtmKLMcz1Z|Z?Nw-?XhwDJKBStGLi~%0CbSiH zsHB_$Pi5%!f(rigWM}`(TtR_wA9?7WPUHjITVyrYNx&&r#mb?n3r>3kdx(Z-aQMma zK+R<+egAg=7t-|pE;g#N{(`Axltx1ePQ>+mf6qZ9&e?$1$0bAdFa>EE4}$Y;v+KLg zS26i!9o>M^+TIPSDzk-YhhTr7jDNM{*qt|S?J46gGuEer#$J`B2w@&DguAW_UbQxZ zFRx#!a}Yg!cWao2ogy%lRHV_^wQtJX6N3KDt>qeFIzlS)4arTd4kp}3<03&c=~lwb zPu0G!n%ziua1gVkjBTy3;dEiC-=qPVVJ~XXNrLFQyMw6Pr)|DqGokGCowpeBFT|#0 zjaOO~x{VVwh6~_zcCn|=p;)Y+U#=G>UJ%dWs1t?TPlI&(nQ$QE+V-G|qB4jJmux>$}-3 z6rS_GHes;XNN{|k9Qs5t9!_iEyGN>|^P1g(CzDe~xZd!pvand4m4Ab&oblFBLW_2D z!4vpy&5K?)vH!|q;C;^h)euKDl#m7Ud$M((ih{!8Zhz=?8WO(wR2Zk#n0q+^bmuVA zpGSC=#*p9bEj^X;%qKfEUGE9f$?5DhbO^U4Y&*NM5D$-*@i?qf#PA9FPAXnKlbEyz zK6~)#89F3DM)5`7#GOKy+dlO(s$I=~p5M(%AX%kCrI*e9PsX!Mt;V&94Cbu;YT=sG z39UN4+jHk5rKghTJY{B@W|IY`cB9YPqsBWWT;^_{XvijTtej3x1ABYy*!{3_{(xSU z{rk@Tu`ORvL6eWxGHo`m#r*u0>QJT-Sm=o3QAMT}eM)DCbKho`j|n`Obu5_F@n|0p zHV^e6^E&14jC}y+IMJ37KIO9vKCAV4KvrPB$77t0|$DvcW$lqPY zRjnHIhwV~PvIyuQh#N^ob86HwvEfL!l<=R1Fhe#MRI8S-sgI%dn?YhZR) z3Rdu%u@vs-fr;s`OEPs8<5Y6ZYo~X7uouX&#PgR=G)5(n89L!hlp~!hw%j3IzBE0% z(@PxE!|>b?e{uQ;UdEhb7*IE;pm8G7r%qaU#7#|)cl!bz$ZnWziTlKG%(vxpfW|(w z6FyFT-l{IF7!fY)y4&O55@X9(L>2N1{Gpzhm`J8hzRxq1Z?H|SJK3~P&Xry+S^b*F zqu^k~V8FixmObwP@7{VtJ|uuKk5-Y#&-u^FL&*|MOUIPZ45bj)I4ur1(4rk%LE@;z zDnfe0WvmS(iv;QO-9{R4`|w^up6LOEmRB^T?apL2Ve^6-AS#ypf&a$7Rb|vA|i~2yCEZ_sc0{e`BZ z{`B0pw$OuFNUK$0`&mu+yX~Z){Nb?@GaF{UoAcTa!5+$l3H}VxX$6J|cds9zzvwp+ z(23>#Ho5!w8SH9_w8Dz4BmNg3jSNbkcm4SQ4CQuIth}Q3#en}=M8GEb1Rc!!iICCb zQsi>x&oSfwa{s~Tpk_uBH@a*;6Uw|0?)i4iOxHP#DoQX_4A=xbxR?Xczh@MaQ&CV- zBuc9A{q*kg*HF_*Mnv3>;v>#8r|qLEKew#%uD7eII#wb+Y3VN%I|h`Nk_R@1uBCe! zNJ&b8ZGVA+g7Tm?&aHf%SOQT~jEnHQP@S8PmTvGW(=Ri^!h@39U4r+Sh>MV-!qTv_ z&(aQnvV^K;o)kGAc2{xF)DIU1Xkz81}%$^PddXIO0TB;v}Jm|;Wa%(G=0N- zHed|{eBpI3|N2S#&)X&2e>I}r)l!(4Sg$$~CFkZ2Gi-%K;cqtTETY9Rlc!+ zttn{Hg2R_d*SJiEz7K1@3=#Z`2H@=X?t>|^W1H0}@puYbaOT|rq>)G& z&IAxmx#h_oGVQp`PlBBk<}%_@zY#;T`3Sc z5L^By!8`1)9JzKy5Q!~H>usR+d8{?$w^MCJzp$=WEfTn)UObvTqOl)f_Tgv>k4r!2 z`j^CXYCQFw^$0@uU%DsPL7?u=AIjkj4P-Ce3ti5Z#_wH3szesDrPy)J*>t@Tsq~C0 zrYhDe*G#awsi`(?^2Ic2m8rq+C7jX1aK`j^aIdMmW2sd#?~2j&R)^bCxe88!@BJ7V zUC$;fsOFgt#t$AQ#gm1m{x$;ae9k2i^izeYx*rbzL5|R`Gu!Tu*3~5A|vok5tb!6T`^^#o>(SPIm{>B^SnR zWS{;)0A6j1^@ePvI-PBgMs9TBk9B6*ZLbjWjH;jIuEr8IizEh4DHS|H+?1b^=NAT- zEUW)#e6zZ?w?mhIIwDz&p@WL&?ZV38A@beo6>`usjV+UYKK+n!3Ez_SO#SF>_!r)( zdfIOpRpLK!k3sB8%E#ppF@CQ%4iZX4W?MN-gw7M%P^K7bvObL)F<^f9m~8hqTdq@h zbJdR{GsunuO7(vpTSY6g7%U{`N8gMhMqnkyrM#&eCCe%Pm{_hZt!Sg~`gi?Hv(nPi z4s(bf3`f(+e+-AD>A_H7^Wf0<@>24un?H5zO|rNeFfAO31y9P6be;{sBo5WTJV7zW zz%ITjQqVk|($vX6$Vj7^2ARWGKb}>e5B5ZgJPc*lMD%Y)!$w3)l0s}TOfGo`;q1tPzv5&2{7wneq%es!fTV`xVz_BX8+#;p;t{;3Hdf{gk_DA|!$qqR*!Vl{&AEUjy%PqK2H< zsw=5NUFjo@UGy8hwXp6`M!b?JC(1E0MB^@3^!&d56&HN9^n6_nhX0Nsr42e6;2WcZ zT4`0r93P*=r)EBA%$V`INo$LmBJ6x>Z&NdK0?;1!@DNT=XW4DH4~Z~@YV!KwIF#Vb z`G2YQYa@*ipNu^koEfIS?rz<~ZYHCTwZ1pPGs?Lu5BF%QX?P!ir{50>B~vuTNE8Jk z{il4Q6da;kn;53ynOn(U=(SAf+3brf;UZ49JUX$S2K!|;`<4~0u6MnT{^G|F>AANy z#xiuOrp;N+@zdPk3`!%9pjso4-HPG62%kKgP9=3CbtXHzj--SiZBDRk$mpdkQL>|q zluHzG6f#xU)8b!tj**dZe0)40V6$``ry@se<}zgu7d#fbqZ@t2?UuP#G`g@05Q@kl zdt3HX>lEs4o1mPy%_4oy+Ot93k(<6^bP=}r`VPx*aW!7eQU@8F#_s!`%>Lc5+ALzd zMP#EmTXwx^tCkIsCNv8<9=Z+=I%7E@Q1A^l0=%h#)M)ef9p5i;xl8Ed8Q}_5ah-?T z;xVA)I{KPuP@>HNEi;~nURXT}Q5JwUMPm!A{Zu1CTwxU$Hh3wXSWX}d=q`MV#<^Z? zc}=05vIOT|gEd^kIfh$~@+S0b+Ppmgv(F@V1NQZ2K7j52fS`$aAA{T%ez zAr2IGOW-YZV%hQ#i(xS+(Cd^5ZQv&Pl?NR!C(iXP@-R3$mkd3>{WbWP(D4BAq=-&B zRTSTwJpD7@okQ2YV>DW)YH7z$?K#dyr2K;x!~K{`7b}UD96oC5eDk4|r)`%7o@AiwFos21k-^>+NR z2Cb^s!7w-N7uCdKG3xD}z@KmI6Q9vXlsYWS5(@WT z_eYxeu{b@saZ7%jdNwQ9=WVug*1SqaA1^W#xo61>``Tz3o)-8{>TPNrj&ZkvX>iAHJ@=m^@>`oI2D@=`wF zzvIUy=R41dyE!}gd8q!dL#FJT_42T_Pz{_T5mYwFWGj}sErYs!Io_O`If#Qvl%S?T zKe8{zMZ~%sVM)ZjZ7FETiVk8}UVCJxu9AdGg+Sgv z#A-14i@Lh_*tZh_eefzu(*nH0kGqj&Xk68ORqlod;5vA^azQ4cUaCz}L z4~5c`u~|F)T6!?0;^${C6#w~R#ACU9>O7QJVo&wbDJ|D)@jq9kp)aNDwN+qTtZ z+je!?wrzLWwr$()sxI5+&hOv*T%NqoG2W3G85wJ>IiFZR;PI2b_I;b$OCaqDbKWq| z?_=?=zHELxx{?$>_PROf(x}s?*J<^6TG4Ps3j+5iKYL&a%hA^^#qvmR1|C=soUh9J ztiq=oN`x$n^hM$Nj__ya`}zA<&82VF%JX%jOnvhlcO2WlH&53DV^e|$CX-JeuWdVW z`pr!E67232)YZMNR6$$|lmsGoCBRY~Js6Y&VUMR^4u8?j;Nx}qdwo^5<{Ps0u#u<- z-@m5Z)1X5tnWCbiB7bv9L6G0~-Q|WhcZmFlLE&z~d&2)q?eU!UU|j`CK!^I>4VgP{ z+=G5-(9?MF;C}El`fGSTanV>2c*XlB!c2zD*2fx|X$k08*^dUD4sGwNI^TQoiW1bW z!YYP=55-OHYQ4HT7hzDK#mSHk+bDpp9?9J_+{wN;`#o+Hh)S2;{BJ7EdJ(EgpLnUPTPR8kTNPWvheC@v6vwH0L^(Hmc+j1vpj$=J%NtLB}JiahvDkRSunA30dh9) z;^q8MK!Nrn#{WMY(c`fH%{Q-XtRQbKGjvQW{yE6`#XU4yK`@O4Nup(x@3@Kipu=R- zxzLdG*k|#BLSQn-)G#60JF zSUdz^t^D_7s!n?iWy3W+hhG-$Y}Nk$8mV6ns6*w4V$r+uUhOUoi1s#)OZxoexX(lg zF}3UM9?$zv;dshBg6h>d*!-6pCA~e3?k|gHUt_YnddIz5q+|b42u+!wHpZ?O#KQKx zxC3y#PnWcef0P1YS7y@{1@E;+HaF&q?f5Em^EoWn=s$av3a%V{w6_!+&Fm7WSvb6J zng?d(FRaA7A0H|XDB^lI@T{D>&N8PP*cIetZL?7HvIg+B+8;Y!PvTv2->;hs&XE+S z5Y`S$<8ul82-B53?RLl6|A&7DuHX_kUJy;5OLy-qqUGv**iape&RtB!O5hW6h zIvO9-)ILJ{E!7o1)OUcyhbfocayf#GYBfcwXDzr7ToQf@tG}A;CCy_w*OsJpYkMA_%-rra$&)F z!Od|0R{fC{17A%=J7gW0N5$hNyI0zO9G_oUTwY#1I7g@fi4j>+SXe!%JUi-jo_Muu zW@CBh>mgcC9v#()Vs|}q^lQn`x3Hw%wz`$0CRI8rE)jp5Z9UCi?&L3pcDby}c`(wL z`m_wD(L|f(SMrqnzkpw=DR{Ir53n{k)y4ER&hm*#pWFdjHpVuCDPYLOFFFKx&q5(s zoEBdV&|66%b9V%k|0t6;~B9Mo^^SbjZMd_5Q4%Jw5cZ=Wi%ISrH=~LDL zT$Q2uZlO!kD2=pfk)89i_}h#ay;l`g0&`uJC8wKm`u0~y^=A^oVx6{bsUq?-gqERO zd*|e;@@r4?*-3(b!v5kij%q!VjHGe9XO6bS#B*b%hrFigwqrXM|2|Xogzr9A@UZ!> zzJolDVTzrS-csjL*OT_3EAwswwpD>Se$mG?#R+F!h2D9+Po>Kf@Eb?77Bh;{Zei>2 zxAs?RbrcnP*+2ZuhQ^?l{?TmoJu98m}Mj&Ymbp%T1Xk zKxVUxKQD+?BNse81hFVMk2V1Cf;r4$BWzM;Of16|S6+TpFe39E!%oeM>WM#oz(TG< zClc=Xv9@b2Yw;>5Heao2mi`|=b{e0DQ@+9Bh0^ree6GT2PvQUtPItyc2+g+6zADAP#3?M~n=xbpf89m6VO_TyfaHxzZvsy;39e>2bU z+A+WE;_~-Uf;emIHDH~|>((=Q#!Vfgt3_<}0 zOQ9?Z@0q3L(LY09?dOgk-an8TjMs1SCb%hnp~gbciNPLzwW+|Gep?v;xGskHf!a@Zz> zpZK6VjEx*Ezj?+zwiC^`{wCVoC1P;SXu6692@ejRT#Hp<-kIrqdc}zMfBRmnVtBJ0 zs&;ggy^j3Bsig)xXnGN-gX5ub>qE~(uNYpO{S4!KC}FOBZM!;dZ+US(a!Wjzn}R`VhsgGFCxJn_FJcU3 zFsKD5q&(WhH~f$DlNWbP=sh@gzx^;#IxxSj9@uQg&$Bi8zvMott}OdL#}wX7++RyK z8Fn+Np?ah3$SM7fPO3%B4aTZu3Qt_WFpA?4Aj5?cZd0&-BCo5+CQ)iNJ3kP}MWL0v zj1j?M_W!UezDsK976aMX!6PhV_3a({u%p zAK8u_wer(j(ol|a?iEY88`R@y$XQ&Ti+c=i!gga_5?P|}!*3UqE?u^vqVuo6^k|sN zlcId973?p1j%~dVk&U-Y`Ne#LgS%XAj`HmvtNwb;*U9`K>s{iq%hTNbI~&D-qM# zKwFuj27TfP%S~7eWF+IU_3&DVo9Ye%8ad5D#=Lbka`sth#3acAT7>j`(N|4ZCOB@=?$uekziT($7K+BNBo{n5{*xvs@why0_bl>!pTh+|1E(Zk zE;p6{Eu1|6Z_lk(TYm3no3+{pOWXa^I2K{Pb2I$}0*{!hht~WQPt7{}KKJ8eX4P|Iaa*_Tv7F%b^zP40K zl>t|^69pK^H6-recuqk$kP-b=UPV>Y`Wh(oBUK{SPJtM$rBJ5{Upg+hAD^EQiM}{) zI4?(O!6seJ&4=ZJfx#pP8#@;p)R7cT5Lqr-sSAy}>m#A{AA4(jG_lRLt-N zLt9qA#Q2FryNXlL@oCVA=_{KvmNhu`|95)I1JzxD2>ZGnLd@c{kBf=f?sT-~ z(lMQ1NxOcZBqrxCzKh2a?jpjtpOP`-AljnC#RYDEekFZ&iIRtvC`jQ5P>?a7w+>Y; zktD;2dTjbG8ZsZ^BvAQozgEPCv2F2rWfvn+p(lzpb%r0tNMoljUK*Q=HD(CL72!T zrfxc@yKv636inK=aF&#VyG}3HJ<`~x*Lrk^q|zC&GOeSl%!&fwcJXeZA?@1#g~bcJ zpN`_%cVBm2s8?$OrVP=owp)H5S8W2sc1U;pkPHpibSuewmwtq>)FsM_M%g%kZuG<5gZaU5}ygHay46R@ntL$Hegun-psJDmU{ zwfkbH0b}v|g|ap(!8|1~KugvqMs60S+ssE*UH32`_e*@NL}J*Y_qX$?8yq(2w>Z%5nPQ}aYJ$qGR6{;= zU-@Kz_5Dao>6XVvt^k!^M)(&Dl=Y;*X>0F=m0B6WNN#eGt=*rR&R(Vc?7jXh`(AGQ zzunG-RTkcqV{ojT$j3Rnk6)sNUO!(igg&!it1 zBQZ1o13a)RC?Y^G`Ja$KO^JBV!pHbM8-|#f?!C1V-P_#+H- z=VF~UJKN1>=F4B*C#L-AE}V&L&YZK0$I=KlWBewQDk9taR!e?$CBwx8{DTv~ye$&adaWjK?|h_o|BVUU@qTZrUN>>tRpS+SYm6z=Ffr8w zK7l<9kJS!m3vk2Ye9P*=!Wx`dEHU4)K-;vMnJJrZ6kmzg?n1P6v+51L)q{l3ck#Id z0U4Z%0CH@|`E53t!uI{a~S??^L-hI=TaReTs?mJolB^@7Hbpc-5#V!5OOb z*7WyuXPx&xKSwZOe}J?qjYJ$DYI37-JN{dIuW6tJ%SndW_FF9F+ztUdlktMzueDv* z%4dRKkEr*|t=t_Q9lyPpnO&*uefjDQF1JW~Bq1TNJ&yl~t;iomn0?!MntqkLsP1FU zdw@Y~kP~pz^}cC$vM*)nU2TvL$a=l@YIlDLV8X1cF%$f+Q;drsnAl*^zi5Br*&PAI<+ghFIYuT5Xhyl^(bnLyItoQg&dbohZ8v@CD#f84o;`TKVdo- z2FEk{Ke#9~lOtd2^;;jU<HWPbU6cwHk{3I|EsmrFtD!I z##86>c;XM*WwC2c_@r7`J`~e1ja;Y=1uSllhPp^RvPT1(UGYbi6D5(dZwa z<72(RFNZ1mwt8ocpr$pvTKse8a6O}g|1FzMM<9pF#RwCCHWtr!KVDVW`@X7UUvOi! z)7c^;sZtKuH=fr`;)!LM9OH4=D?OdhmL*{Wq*G@sL-9%GDa)aEh-LUm!fn^^asb7D^CAwA&)|?XmW3K8*!?E8-DosRrjYx6*Sclr4WO+9 z)ebpEg%!GoHPoSPk}4eWdEH``{CM3iu{iDUXe6)}D^$wJWzyP5SxX>W*XwXR)Pvj3 zdM6{4;yh6)cuTS7ARuS)Am>wk0Xq;@qk-#+8o{xgfop=w#8^CG-}n24wV|ozhXB(D zA(w;UZm;ijl5DzFt-Dm(HUG=DvremxQPuGV;8bxC%gI)gF5+qK@TnJw4Nxg1$pFX* z4wpkdM~y#Vz6O_;L*OxW$1Y!^gw^E_Ny0!#t#A=gqMvxGcn?qs!35A*xgo;G2M^FS z#%YJSRE3JNzk8onbtVS;po_UY_Jjr~>=%dLo-*KM`gXtrF^ormr-@X4iB_aU>p_G`@*bY8f4 zm)U1`$iD|H4kP%W(e7^?4s8}L#dJI_fJjIgt#sM_^}IzDt;xG)W*zhue|c$>B6)Up zHfdKQpXE#u=L;-Rpaf0g^iK=Rl|<0?#Fz$LRZ>>A`~AF1@O2M#wxj6ANkh3LI1wOD z8WYOsVB|xK)*BwHQS<$E-}Rj)mbA&0N}TE%A0N+WI7TFZ0o8yqjq=miCzuNT`2+-c zD5;`{keT907L#)_dlwAJF+|FRH2Gi&`x7Ly&n?D+f5s=b)D50S1|4XC<8W zc^XB~DcLx~o)nuhGinsY+kSdk+J-BGrl50pyVSct7?|Y?8#iL(YWH;}#0MLD{T-vg z=4ur9>XSX*FXmQ;C3Q2wuFPoWY!r>(Umu8AOolt1uCk8=^~DT4Kyno7L>9vl$o}t3 zc@T&MF?JLlyCa*M z+0yhrQRXRs{{b6w8f_W~bdCZoA7lyyolXEk5>UL!hp#F^4oGLUn7v#m3ST55#sw(7 z9eM^I#i*D%t@6^b$alF^_t1vd!mR8C*;Db$# zjg_Ki?zWziC$u3u;WPn?5flmVk|`lH;5lif#-X6){DI^FtDwIc?K+My4*6=}S`;Y* zCTYOoDFxL z8^6Z)vZ+e3;SQ$p@Q5((q0v}e=CK$35VJ|Qdiu}vs=9=~DVCt~r-89lVn(h27x_t7 z*m?XJi!m;-@mHv+xP2m5qU!P_P>5mUKI1QB%4m>3U*PGW^*k2;_W5LQRBn%B+>}zw z(8+}xwk1|7P|n~?LhNINOMq-}5E2J95K=<(Xwv(L_@{w=-;DEXi+{)(afJK~$A{m{ z1prDl)T$Lfm@m^}3o}$nhvG+J^hy=yEu0@$7>)l)9D0mJFsSPo@O3I7DucEGMQxYx zC%bm_x9Yn3>EE`A>~UE@uWE6o~t57`sOpa{J6ZXe}rhC-Y@D%?XD3UYziHkTUUW)z(Qnf zu9TIP*WVt*qs&^(I3$3}A<3Gnp_mQf`2Vn3qF6)m7oSal=t=VZ*%2I3)C+Q`hQ1|$ z&S;PdqXyfHg0Ta5q)}Vd9iF_uAE26H_ZILV9&z%dL~*5_aGJoDfe{vZ@1Kc5o@20C z!`dclv8K?#8`#ER0zeV7QHtPl#`YpgVtSQqOu1Ogl!3mlw%US?00(-id-ASS(eZs- z5^QHUpo9ZtyW1}^ zCpy6>uuuWl1YV!s*&A&(c+cIDKYvoGPhu) z)C|%L@=PSHTc?inKSG%SLinrqlYh0VCizBOBKIRI(l#JJkkeb0rtM_^oc1?i+1UX4%xwS;;iyu#C2A4pO+E>2^CIB2}LbJ76eBRoYWymo6 z{uOeqV`=_pu9RPB{oBZ?q^)t;w?_*iM&~RYOAOt{-)hDE1oNjAWx0cXIf*2B$eJRG zK;QZK!H6yd_@o_%#Gec2gH{ob=PS_~944c1)v9~N+W!3(9B)F>0r21`PDxe>e{52B z0EN(>UZs);c`e&=57(djYouB6IJ~zx|8Es|!dIm&SDOqY-9{uB_WhKC@b?=~ ztxH|w9^sG{Z)VQx+ltY+Ks0jrfQ z#}w-&L`^pm=oyo}uw-mkhP~NQ92o#rc#4cewwD+PnmtUNj~!;HD-FqH0ZHjWEm=#4 z21FUlasxstu6zmvo*EGpFTxMg5d?k$-j*J* zh?H-#d`YHebmd*RaSz%h(g(4u8jv;77eUUEu0lJ`r5t1RU@PFAW0yQc? zGNwB5XKA-gCcE6{!e<&DB+Bb0Teq7+>2eSoa4{T4m z<6gnD#tDO%8y!N_PZ|-p{Qk4@c#`K|d%1&86rL1-3PWxyZhj16lc8S_nHC9+aFrZH zc+6XB-%`HDIWU-=nKFy?cs5L2l{dT2B=QJss2ZN>90&u%vY*SVCRPm*U<*ky8y^tz z5K_x1-X-Zbu9@-Cwc@ftGcU4Um<|gJC#oMB)K4FT1}YH-dWNjIke(E(3Gtka;JlX< zo00vfhL;KPfe*;TBfAqMpl1BAV87c*yR@kskN)ukOdG z&Hn`B1~B-P3Tlhlb`+HmO`80x;I~5VEbyQznAmTE!FAFnG5H5OvCfXL1Y^P1uf(ny z8s<_M*cl-kp~>P#BioBXtFl=Z7#E*)VWKgCF<~+LYlLGAd{$&tdHvJ-s%0$!92x1UXbI+&^f8-w9u+=5kYtt}6f`CU8t1nuVRR20 zTM3%T?Y@=(d1G&Xz~ha zk%KvGmJwWtwh(Uzoi1P7DGMfj8_I`b$-YJ?OAM4AEwVb_pPtA{*zN(@beC-kjxOm= zhflvQ&iyDIl9g#LN3@NK$Gx(;nPTH%lQx~^*l>O9b=C?YGV@xT_4CL5bz+q;I8OX& z!fjzT;d42K2v#w(TCcs=@E?M7Hgc!cD{fR_+W$Y2?ds*g0=nZLwHB(EE~)x#1{=BM z;V1J5Di5M|Y9g2ABN}ol*VFZd=q0#%+?8UOMZljv{_+HWTX*hh|jT#x$++52JC!e9WlIbp5MDA zjA0B=NIs7<)!sGov`OVY7W)GlgrCPhl_m~aF+cU@(AsJUl_sk=Tfqn>T$TlAxPX9D z5uMm6h3^5q@X9=dPQw9aw@XbMyzDX$3oke%&y*bEbumvcEm=M$XP~Hz9Q0-rr144+ zvZ2A;3H&CgR;*OrAT!b%VQ=v4<1j%7=o(T`RTc(bWwpUd=P@9ZL#Gp$8x;qH3C;N# zCl949=cnFInu*E?ey06wLc<_4I!Q*ROna!T3LgY+ajf zn$^lxQG_OmVstxEs&7B#j5)%byFybjnRnYdB%(W?#8p;l~r4-fXa8T#}MSH2d zgg_MHY*b3B4}*@phE;m9s&{<%TyJ#wmk1|N7+lAdne7I|9 z9OIZtT(cl$U2!iflA7+@nkn#3c3$lI|Fzx-j#yPLE0>8sn!Zsp6UgPY=k^16LLMbm zyo#eH`=a|k|Go9*h&4cY8){0Fh}~NI6-CMg6onSrOpWrVK-(8_vbS!A*%=79yNxDg zgJ|Wm5QR6Q@vBwj)=oFZ8#zh$J3z6Tx$NStHp~fTMi( z9O6AQzZD_k@1<>{eZkP5hU~4OqYy|CJm7>4P3v+rf^je3h&z&C*=UreQRv2j3cKA+Qs(7swO zmNTDG!eW`)h(Gru8C3|!9^-?I^p4EA;AD~w7A8^d?CvLlsz^*3vuIL*OGTsA1+fT- zzm(tYR9U%dM_|HveYGQ6YTNv%`}Au2JcW`5sOljt zxHPqQimeRCpghe5BH)h{+8D4;HRe#qKe6mXb&arZ`MvbA?tw*dRc~%KTOOeB_D~+l zNrjajJCdZh$90hfH4hsBp#|4<-@|CDq?>NagP3WmYf){;8asnE(cgE2OSzqVcA3^zt1RXddIRs?yN43jj-pX6$!kQSSz zSJhI^q|4VGd2F5>yoOmO&DBa6F?ij1T7Dq0JZx`sBFte{b+wLful?Dxd)A}F{6*rv z%DY8)O(NEubmJUQRzLM6W|%JUkA%N!%QpC!1|$%7rH`bXHOPp3pG1Lvc&V~ZwFL`^xagvN^_-x_S3`;E{ zl!GR`Azj&a<^A|m!PcdM`f&}q{oJZX<7k~Fy-geK1e)NK+{TWGmTUA>Fn}v3DUOWR z7GLBZ0d^6PW%F4{gl2n)>cj;OBbM~eJ{xtBgJyGG!@za@JyCy<4^2YEiK|M3VBBDR z)CfvMm=+F%0;5ST+kQa|0_MV`CP5^UUIZ%?XK#)yQ zGO&`UK&AgKrdrT1i!BMhp?nO2WWJ^E%dd4#ycIj_Y;0zrtj+grAjWk^ozb(|)gpOZ z+MtoD@w4*l4wS@p5qrsT%I=gj84x4j_+F}x@AcAB$z;33J@ri**u$zpr$@&XrRuW1 z*)bI~On8HVZ=Yf%(tq5#Rq|WS4CpX~&%*%Qp~HNkcM{FPZVBRzyT+TFEBEzXrr`+J zdrjILI^?E!Ul$AD%Y*109?sy=Z_c}4QD)o!^Mu62an=~7!Lj!pQAD}Zl6 zbnbCdU+Ic+p5`N{04$e6(T2qT^eBmjR=o{Kg}W5PMymlfu7H~Y{j%05WuO40nh6Mw z4h|U;Pn3!%igm9Y2e?p?LwLADZxSh^sG&n*RJp#)$N6_?!=H*s&)gD$WPvnfwgROp zM=;AQQtWG{74JqmcdY!EBYbIP{4fs_#o$+Yqs!F!)z!nTa`_J3oyOeTY5grsK4YiL z;q4H6e}J3V?D{#tZv3eNjkoFvvVgw9lj#Kr7Pxm!XKoN3Owdm&Z*>4*lF~0 z9KEtXu24&x_CV@D}y_dtncLSf~pK~r!#nMtPd%JV(mS0ez`!PE3eZG zH3N5fMj#bn9h)GuOB&meT!r6 z?GkuX=U%M2e@iE^blNOTmGlw`fp1KftgO~C1CHn#DxkRlLG)2|aA*pFxUa0L(OUPp z*=BIFK`-a@MR7P^a{5ph86Ao{(c?Y9%ixsTOF>q|YBTxX|6 z4qVjVF#wDUSN}8P$O(sCUoQkv@=)HrF1|0B9aUuSl55&PFG?Ai63{yT;6Yr==j-66 z>7QJ7qAgx)fw1QfW-V*;&c3UWJH>m<@{r%u@u+NH>OR)#dUr{Pb=v*qwQZboYHqU1 z$TT0Cnl8iBI0Q&?Q@=>2>6~K;%mbqVe}rh!vQk@!nXmw(P)w)|Y6=b|i z;5dFiWTMsi;oWdYYe~P)K%@bf=8%{1z}OrYponrfVb6Q5 zcB+a&Bf#A19l43t`xV3IewBdq`k-XVJ0uO|^W_x#x>&1vG-MXIXuTY(2i_HY#Uq)^ zY0FUCMeq?g$s&H4y$`g-H<=u|$-l1=<1;Ecaq|bAiNN(>e}5fG_@u(1$+%QWWMVJd zcvfpm>v`I$$+k51!e)TAMns#ezJv+87PiN=O{NTr*rXx;RPOaG;q@$^PE(zx_e&hj2Bl9c zF1p_;As$~;;LKiKSvWItQF*Iy=n1Hin%DCk2#Mspf*q2Q1OkqONO3Ng71yFd0?u6WLov<1q5xrkxTNgDC z)J^pJ;BKhb#W1CM^TLd{9YwlLF7N(_^&v*?fmL`3M2V!pCiFlwyLM^!OFuN#mQ|Or z3&2S-I1|5!Yn*C@26EN)qM16=YHXy%G`tb<1owj7{>YhhlejLuC33xGscJ8Bwu-27 zzE&A36y3;yg}>BnMzmq5S()`zn59(UA{dIyNu&7^9U{-JQ>#K`bNw0Af;dUpP<8H* z99ab&662rkxFq^Omi9Es&zJem4ix2}pu<(O0M0FVPvJG?+F(e!FcXmV>2jAw-?%ej zHm(e=C~ z=mN&T4^QlCQCarrwwqeO)6vPy2&xy)i3CqJ~kxJOt2j4JON68O%8$N=vl?Y{>!zVr(y zA)sV|H{zVjJyW0>AWiUaD;WHZSYwBbBUsSh%Wia%QGiLp*6&)*1wW4CDg`-dpC1N@ zLt-GC|7z#WY6}tfjNpR)CaKqlEaR|~Sj2#4^C78nglB5oh~sXg1vI zvJ{Eqt&iaK?;KqqV83gSPIZ?IJj!{UsC#imT&Ixj_zG z=Y;|aWUw#bLu}P=((Jw?y{j=YMcuR^t%H2fc)gzU=`XO^o#=rh1kQ5C8Qy+ zcE}nP4|=&avtCQoUNisYtfKM84J*<{u%AdNdLJEkoNi&HF?Yl8&vS3h*i-yrAl#Zm z(GRD+@Psnhf+B=f{%OBcu};1iNSHu8$)nKtCKlGfYBfP=>IKhmE68voo(uIJoA+w1 zHLv*I%d2r`pq86rHK%j{?US+K3nVOSpWEEMFrJ%z((Q7P~TLX0TVg68?%mgQ0@eAtYa@#mj}IljxP zGg#ca_X8klF1I@9fqS2S*n_NJ1ma)tU)eU1B_x!P0MdsPA>4^FIo)Gaaiit<1Tv!` z`w$SeC_3bfAK(5^u^4fYZL0p|u6@?51mO??kBhE)# zAEsg4gCw4vhuHC1n&Kl4^Q$ho+LaLwWaR{iV&B_6TEJ*>>@W6U)4BUcP|d&u@aJRx zhDIOf%^T1?|7|}g6#+Dt^FjF7okJXngB&O_XW4QOrF}~C3D8Fo*bv!pF74Bks&5r@ zS?<5_sHQS1VNDR4F_Qk&UbNQ4&y;oTgH;Cgka8YPG^e2yU`sEC758jXPB2*px`BSy zk?^J$#y)Hi?T>S}#89$dD?vd~0j446Ni37NcwCTN{fW>>l|ld6^S!|?hE!3SC+0Dwc7O?8!(2Ry~{WqweN0>SOv zeC&FL>8GFpSAar$e0l`H)TrSfd7m4(s2fLw--V_II_ERBv#B%$x>|X(*e75ISB1S^^t~61xVX5;1ZuRlS+W7e z6^@TtI&nGb$jtnAxZ&9Av>^O;_}u48jD4$4-?5d@L3%hUV~OulYMxfL$Y$_h2XBdm z<8PHjZD|R2N%(_nwfMh`Rrqd_1*ne+_Qh~=I2Blf_42X;9OU!Ac`5>il<#O%Q(9I4Q%eSjT01g{* zz1P><&hGkrrRt7&&r*0{8gP=XIs>%+h%U_fehl1NrX@ z#`@v}DY5NXoIdCOhIMYE(<4G?m{^_N8U&T<KW2pq~lnND>an#hKYmnnaMlLxw8# z-03%YG~e>>1AvRsgjLN?jUOF;zQ1&D%L6eCN6!e6Y5@+@P4@%Bb2e05LLp_seXpw? zshR|`GP9}(pIW|{&a1d^ZOO=%U6<`>4EFYPv?~zkuY{3^(V>V+yJ;$=A3P|yN}Hvr zDr;KW^)UzYoDZp)I>cs5bqxhwhP*a)=@NqO-UW{QIN73M9Q)3}k-@fY8lElQC}%BX ziPA5~wSPH5uTL{?#fvv@_lP4eI%X0SvJ0KgZhKmNz{a!I#2wpfO{rV1-@ zA*nIDo{M=OumvTm9WUGnb1~+DZ4f>;5xQD38L8RKu#*qMBa-*3RJW*C6F)E zWtU)gxv^!YRCjcb!GW+j!Jq8!0JrP)TKL_F>^wZ72R@f!ZYDN4j;C!6AI_$Qi1c6R z#gA_}DF%98l4DQLf7I>|JL;3!e|_QD94%k@Mp9l8Ao(fV}MZ2;^9KAo^QKi+dc zNef7R4x&>$uhmP9qd-l?FC-}6D^S`?R^dGd!pk2dzhJ_iNQw?F2>!y_gP~SOtjC`r zD>5e{fbzOd?b4lnxZ^+ZcUau2b*)AG9* zu*1@F1w;>c-&Bb!JYS}1FnM8o5V_w1(ycndMy%M5d#Nx{7j5mPl!=Li^s~(DdE5a% zmk;7o=L}o!hgSe%ATBOW!e9S2WW($8>fnn_IEoCGx!nOCTah+_xw4%`uj8b#XUSMEXZxV z^lx_G_kJ{^5D3rSMkm-4ex+E%gRs)+0!a=Sz3Nywtoe`+!2oMMf+s>ptbPSZ?>nri zRl5w}EXfZ;DC7v9?Gg;~m~b4xKP|HUJEY-H+_J_F(=Jn7gI~}3nG!s zl(yMN783K|@p-LJ7je*vDTUTf+vgY;%~Q)p2Q6i84mHlqRYWOWfS1DwE_qC5447Pz z#76!P0ANGNf7p9R;G6M#KP&rG>vN}XBOqxRV)c9b>Ws2xOwQBK5fjeVG|5c7$Ul(v zznr1d>qO%PDV3~`rDwBMx~ctTPRJB5m3hvT9wlou8+fKBxce*C5`kaS&(AMUz_%RS zjU~NWcwk}$tclY(xBE#mJ*pgZHFBA-a>(O`# zdJK!A$)W{2o*6G=aM)BODXR z*)z})F7E!YOb(2C_%nDr#eD4=+|Y|)P_yvWx?P5J;$Aqj@MnCQ2l4@&#Y!sf)|-SQ zO)Gfl_8N7UOU1++@$tiYk2_;OiOc;ah$D?sKV7@5HZwH*&9*Ix>RR?($79k%>9Z}Y zll`Ae8i2E%TsR!~)mr<0DX2nFKO8ddGBiE@7s9bv8^>_aILTPr$u1@`1KRg|xnep= z(U3A`A}5C_ygy7ZOZD5>`v+>?n|*I@oe<6Z_y>r*qX_|exmlK z+Sp;1m4<7j*&%(tLZz6%Q7<>ec@8u${rC6keanmh>GVys7TS(AFZS}@0aTwJ54#DN3VmO_r;LpK z&uWH$Awx7fShrYYNEn2$mq1GmtG_dBk#jTR0bNb5Xj*-~+d^HCOe#2hxya(DSaxvm zj2$+9T=Is>eC}fv3Y9cmG@*JR?~Hxw2`hYB=dW6nNZI|(&st{k%rF!Eb z6!r!&jH~sRtcjg20019t`1VB(?4i zlMu%h{~$p@m&jgck1Z>ntaJrt8XIq!7FQ zGuvY1vn*>qJs7X@xHGA{nbtMNM18K;3c&k zEDz5xdFf|4>2>RFZ&j^1ul>1dt=PW#u;%xFWoVp6 z{shZv#IX^Hf5^n~Nm z`2lWXcyTBc8Ak%0OG<`oi^P!l(tR{~rZt!5$}UrwyGszT4ANjiFCk zn?|u|?oO$LJkQs}1$%#Hq5E%@9nP~Om-fXt-r!E5QHgOa6WPSg`-uSMk z>mFGX_7$V$c27?IJ_{SbO`m)pa&zCbj43p&i`DjU{-)FJX}Ts=-_QxTEI%LVQ})}u zbP4we$-Tc9$^lRJF#ljO6mfFnxtDlT*DXI6=7;UN`(^U?-DyG1WUO?Rjl%AA?j1c+ zD47~MYut@+`rXFWy7a+sOlkrf!+Tn0=u5UJ>|su6?Ng14u!)zN81;KltE-F;aLnm!MNCN5ZmfkV|w{ zZvr8`j0k4y^ehgKBq$&fmhW*eWAjE@k~EA64GRE9Zl*Ygt59C5k|{1K<-ZLI3v+dghrpQnw$driC!eiyWt%Y~`B#}=4zv@u*kTLF z2ZOWllAZ*sdDx&NNyrAP1Zr&JM=?gPyz+{Epu{gclLUeUTZ|bZ@*w?M4bOBewhuhR z3AmDaLmLaKLH5WM1bPH!prxRtbT^n0DefZOf=AE5Nh;1FgF;8Dp^u1N)7VsyObSXg zRN!1ephxmpgCtAX7=h?wwknsf#aY%vI-mzWeD%rDYp<0WNXRqi{&9@Zed&e<-4+To0U%xP7Q0NuH=+LWI7(F@+e)HS2mYVoR-vNCe zp78BLbBBpzZyPZ1+L05U@7>6_OnmmT<1do(yt7A!RjwJe!gcfXIJDQmefxxq1`XQx zrq?d~(K5NrdyN<|=%oAKJHCInXD-}*js36LZSdgt&fb65e&>Apz#(13xHC5Ge$QQ6u{8)^EiAyGnab zO#j7sEgN-MxO)GyM|*MnM$aELW?0XKzBprz?njO8H+XROLHiHd?b^{-?^0;`%W@fa zf!RPCEp`!PonpCf;=ltBw5W}xHM_>X?RDPqul6}=SnoN`FY2Fnnm$|z14nM% z-v_GfTEnwN77b%Qh$rtH^?gYT8z}YLZ-$5N3m?AUoV6`9HmzCw(*{gI3MzJ(Gb9oqQPaokppqB}R1&d6#gHw23-wz{)p{PN&}%NAPf5QdkPM!o z)R0U*>bdajk-|>u(nWgXAPt3*$*T-hd8+UrTwk#WUPy?Ga?xZ?eK@TENHjbX@1=UA zuUJ)JpragfhGftyaY!j=BRH{KDPwV@!fg2{x?OI%5grr>go|oX7@(i6TGF}Z{5yrF za`S=Z{Bp4VPzNJN1$2HJx)*Xg^$6X|l~NC%Dn0Q2E6;}z`4V*b$xDZYeTSWO+BRpM z7N1{elGM#Qo1>EhAO3LY`U`z@#wrURwe$ra4&85|j~?i<@J1tEK55S$nP?Fk?)xs# zh-ER4xqo!ws0&8U@%c4({xY&RlX`qQ@sO@@1+(8WtE_R&sB?a_Ok?Kn4PC$6q`&Mw z>&Z{ObNsrWoV5QngNMI)*5*rvlYYF)Jbi|}yziDDU3%1rUc=vedh>3xoU`A6IhNn` zx@QI*vO;muMXiX{aR2f;!}bjWFTeMs{=0nm=&;dY-&@vcK8M;uCOLb*ULm$1RqX!v z{?fnOEThio-)GR!kA57695o`r@Yg5a)_d834O!1IsGw0p&l+>V^UI&N^QhyP%_MST&x!Ho<2Mj-Vmz4{k$)cY;CY?RyM=P?K!sD^j#LxP6l)nAwk&}!2 zr(gVVy@tIuYMW(ZpSS8-!!sGs4)EJ!pB8ypmNuw?H3njd2%2cDUGk@J)~V4j%z7I} zUafiu{2W35AAi_8aOZNa`$KzkBD9L(U#@P2~1M zzb_h;P#Q9ibZeF$tko}k4NKzTkh2H$I6Fp)?!&JpzVqye(C@(YxVLh9F$Sq_Y2#nx>oag}X$4o3}t|LZL$gkFbi z6xq7jm)Z0{`)4spiAJT=L^YLQj(gFFeB$?HIl5kL~CtXWSz{J&in=(<8H z<~)jXD;a{BaCi=QK;jDaL{i#>K;Q}{VW+U9@JvtI9n@Ym%>-&LA?bnlN2QVfEU8Nq|s6ZSHCfRJvuOK8K4?O@-6fEZJ}60<}vo zX?2Sx+&4U0lk2;2xm5M=DbNEA6tS_KZtEZN?Sz4MU4Ght0n5)eX2Kfz;y;NXV;VsIW}mfzRDS);&bz6tqRsNf=8#9a%K8a1$>MuU}&{G8EF#7#ZCxy6oH}Uf*Q&gEUjcS62IcHPl z!DBuhvPg*OV`CyYY~c_zG{^j+s=f8rTO$I94}QR`v14sjib_}RQaI= zH&Z!krMGNRAANA-uIPh2_V@6I%K|}VM?2ktOTc3#Fq1vHiCki#a12%f`~}N@k1#3I z4ydU{C>Nwb3N!MDUQ=pF#UYM1KT*k=^2{Ow4<8teB@TUd6=i$(JKxF5%3`*`1Ctm7 zgS(q=zB!1hoP+&EO986{(J))us3$$bFzA)71HhH_1PQn%W4SCKNMH4jl~-CrXaP0| z7LrLC#A1r3=Rq2eXf2SSa-Evqng%pkYQancmM^#8iT9yL(MFWLgcc2_T`OgZWz zT9H1MMzt7V_LaGwE5^U9?{Mk*y6CIBDbxc?tky4#jyQp6Kk(UD4yL)(d__ZT4eTu^P zb1%>*grlw*@j;klmN4P(&;5P;q_ErudxUVpX@7oZ{1@ZyI`{Ztq2D^+k3zemqRY2p zmSui?&cKU~vIlq4rco26*)83B^Dz3n+g}*>`UB^#an$Ig8((%0qYpje!bd*(=!LU> zenJ?y(+Z2litT#FjpN3T`^&LA9Mu4IWDLcPiU2wKtvBBqH|~o`%dS5Fw|Uk5f1hQJ zIVMdQJL1974ZYo5Iv-MCa@pPBA;v(N1)6kl4#DJUF>zWXZG0%#Kc(W94eKC0qvG|` z{lep8!a0|OWtJ;jT7?&L%@toJ1M?N4wS1-5Xk-vZVRC6M;6+-#@8Bm?mE01VqWEwK z-_~IT*q;3AUt!%1vJ3$R$V5qD0}p_~yz}D=`GsdO3p~JyeSJ)co&h8UZwnrY(Tp}C z*>vzLscynrjH6ctk+a7QH{1};+3(dGi8)KJsKe+YY?=M4EOMJYdO+QvpjN0@oAa>- z!jox{+?Xy??OInMKpGZ0^-&1P4M)No1r@6`te4$OQg>6f2f8k~3Y>U+9NFEhpFXr> zuZ8EBqx*nfgRk9wWn4vuOqnOxk?EC0l;4Ezw2Lt{v#)-_<%6%;zwg4``-GE@$*Mn3 zWAeE-J!$dSpdRzg zG0*%x`t-g2lSyQZyN$eH@Y%brG52OKr_f`_kJADopaxVCtLODyc;Q|{M(=k2dE3t(mO5vGyyU*YKFL@R$9ou`!*9>8ZP%@- zs%Rf7-1Icr|L^$XuD&E3wof?u%y7VAY7a}G0&NZ$1|jehczIM9^W-lE2&;-)Di$Qt z!?b6H{sJ>>O@%%&&g6;h;HWv!3r$>$@!)6#1V#62E!2U{37e-plSz&)}w^1}vHsaZM74q%3ggti%gO3frIyGN^`x)A zo-|8iuCa(&=B}cIhAd}oS(zC24T)X8gyN!O5v5x3^~+bxvHYN6?|rjP!>(9CGrs=f zi&=6xzi?syUN`LF3>h;#`S93BjZJONAeLCzD2)!yJsDGdGwU4HG`u-m8dz?CI{oz1 ztp%%^#SNtt^iOkkt@-l3+FIPn`rd7FoYSc_X^}KlsgTe#g-@pcCwFnU0Spr^kj5a~ z>f5(3-h#DX(oRB7dJWEZ8y^LDhAVP(`mcZeD~<$KfxUv}Bh88J!^4R{WrKnufusXl z8FVGo6tf_0m5*wbY#CP>zd|&aZCO{<9H@|svm;%)6m(R@=p|m-3@H7@U;RgLeIhX9 zx=gv{REa9i&_P{y8$P)EfUAD9%W1flS!Qnm71ei)gc!Q$N)g2-ENggQZ4u2`Hsssz zCx*2U6~+RKiWX9;7L)Ed)oFtZ`jrAR`DEFo;=cL!Cw8Q4d39}SSqjgU*BIcxQYC71 zbA*Oe`RClLQeN9;mVnObl4D`cs-4KC`lnR(rNc^fTIraRIdqNQ!3F1!Jv5n%>8#m1 zz{fem*W|EeR_<_x$~(vbV0blrk4HEJx;!?;ZTuhRF{+E1uq#V*vKW&xJQINujZBO) z%o)LVK~~iczJg>8kL^jD&#$BM$>-SyziO1OiT?j`LL9VpH?@19+vY<){BUC2jGErv zIwy{KbN(KUxZ7G|SJ?fwF|K|N=c}iZ zOZ)e>NZP;kP<;zJ4W6m8i`w3JH9Ye~SiOXGhU%L%O~#z`jYHI7{>HsgqBfgYM2-Yy zc5VP0KRojY*eG*i)GT?@QRS??ST`jQ=ETG{DND zIk4`l_dtjA0JFu9jQXf>f4oDo?$AtLdnH_ZS(xy7iA?``b2ObZ#a(BTH#(8Z#xYx2 z&Sfu9f>KZM&Y6M*vT19{|K2;H`x2>Cs(l!;q+jk-vNLuVHLqZp9Wpy=ShSM6th78F z%Ljq^lVJrdae|HA4W^vg-C#wmJ*T@0a-LBh|M^~QY17A=QCdCiw3CRQ(o@^yT~>P* zg{1nHdRC3({8PH!vrM|9Z=VsDk9lCv8g|R3bS2q4+mAZLdw^M)TW-0fZFMt=SRK6f+G{Vq_+nwk!fk&Ei*|2uW9@%Czj&ys#!VlQoP%UytqpC#oG~`!=BX1;Jdxh- zAOHAATi3howp$yrYEP1GYi!M~*1fMExl7fic-vE4ThgWhzh<9kiJoYY?YDov8*aHi z?6_-`uHE%m7;#TH@60gb?(nN$gg;%;;=atblvh=nPKIX-FA`So9iAB#?!T+?_L-_$ zG3`g9CO6kS;hi_z(-I~>Kw7eeK?|RnEGCTPB!7Gg_mk|Fzf_3*wfMX2vdb9P z&c`Xpw#|>K>KLfxwiR5`Wb#^KLgJX=LM#6!gx5cw7&N z+cd1YX4rVGaN||cy6NvP$fuZ0{!WHxT6x?lVTVn^kq3r{o(prg*JjdW>a~u~ma#7S z`j$Bu_S}7>H5Ftgm=7kQzvTXAwS6*w^HY(eF=<7nz|v+fYASUGjC|wOvC;iEYti(7 z{5?Ldvwn-f`oom%0fV2U(I97m+QxAHekjA<1#bewaRB`A|X1Rm!&8MhlHFZr*<3yisG1&o0XDsDdX`K1P1= z;O{zr7&ano)i+#uVc2%(uztU`6#mXz;p30OYHL=Lwv+9jsqzLJhYdD~P=DF^)ihxG ziDN63%G{kp+uS14&)hSm?Yc4lXc7{YP;|^3)=h|sWDc9&HU`A8Ff6xjZF5bg^Mpwm zWR*2aG_$R1krG+egKF;qgW2vEu>^G|W4j;&Cf-erVpp)L%P=n?pP2&W3bJbdV={UG zdd*o%UQ}0Taxw9f&v}7pEO{Dn?xQ*XtSE0RaEmV)PB}A%9eZfOn`$3--!^QqUfiOq z!gW6WOr>}DNxa+hKqvR=z~TzlPXel zN<7TxBU`IRmJsZ~B{;Oubm9}xCUdEPlOJ>DWDfo> z2~=R4TQwTQq@O-NBJ4V(6Px>4u~%4r3lvv+eRAkz$?5a6) zL*!zEjhhBKiX7vuH&C6jRh@Uf@cre>zV+gjF(IuG%SEyVq>J@R!vVpqH5DxQFw#vn0Va_tX5XXkAOUY9b z5%6#nFY#eQ;2EoRME$VV=9vtAGC8RB%U5i>{8{}!eg2S6u|A@^yVg2|MCOC{qt@O* zzX+H7DV`hNbj!F=^2>w5kaL11W@Sfcf8ZW56$+NQ6;_V8Sm4sVn5X|C?EUkCHzglC zH=d;`|8rcp^iScT`@*wNGz4^sx-Q%7*m|#(Y;hJi*W6J>t&=aPT{wVa8$K*Tg3ENq z5_T22MZ1Mfw~DH5hm#*`CYHZ9_6%D6p|ojgmzM(Zl}8|h!2by}dZ{LI)|?b>uWo;h@g zVmgC3YSbuv0L_T@G<4cZtGzCxaA?f^?ED$7w5=6MPYTi`P=q%wAY^LJ&UDHU>=o?B zRSxkMdXZADzWVCfh8)f;1Kq@>H9Wq)UzcU)y#Kwk`d7=Bw5^R*rMmgLu-~qs$M>R8 zai`rIQ4N@F+b^y)AAByX)F^|kDz_AguHP>k`P$}GXPg&)c0luE^6j#9xaaopw-=*? zzX~@k;8|)0y#_`Zh*J^wl4QM#))qz~!7I6xSbEvG+~}wq8u1MTiO)Y%nt>>+Q-~79 zANC6?6rP?5OZJF+t%()0VtRUHOlnBob4NT5m7F^YX32?JdMpz*+p1DS3{z$^Q=aS~ z+&{blgc>tz{tsrje>pKaU;QiiRpWZD6!Dda7#J_nBX%ink~DnO-{Ri_2N$1tGG4GC za&q7PFW|0PcU{7gONA9z326heApR^fM>%cgzB5~J(;n>4_fqz@z%%iy@Wf-`#pj#5 z*C2dqWDHcd0(a%DVasg`!diXoa6D5YvWWQ7R>z>6dv2RHEn2O2r;Kp<<(J=j>#hC! z_jg>ZV`b@}$W`e$FgLrlx#<)=?4N-^99wIdd_Df7iE}U1H8+!6OELN0ld>E;I9lJf zZM^Ic!r7OE)z%9AR*&-eAMG0cbY&smR%J~XevDhrIfoEAon7Fz-#G3!y*Mr|YO8S5 z4xZ&3V-Ewn)=ni_%WBa0#e{su(T`?*KE5!p{m)2wp1H1&A>nE@fHCtdVT*0UGT)D9 z73mt`QEURG?YAuRj%-MmMp36j#84{JRtF3Wwc(<&&jG7mcsAmqo*eg19F7??msPBs z$D#84A!T^%%*w)1IMe8uv^VINUunvi8)zyu%9je2YjBDVqW!Bu8I`)@PP?_CN|OW6 zQk{3-eRm=*psU%^OOlZD;!8Qs0&Pr|CZlmzX1JgU6RqB9_c;^nbS6i+f z+LJ4Oi^2k~yvkiJ0=@f&1KQvI?zg}A#V=-_Y37E)zm0rYI<%WAV{eHjYXt`ktf$oG{a>zdW?31oL=#UIkCX)}(_Sj<&(yhDhx~l_gThD4n?}6*C z42SIC?VsPC6n^vTu+JgkX9q?}W_}4P3lf@)T&%QsJeB+Agu*yw zO6n9GZJD}Fyu@{$oH~WwdUM8;#>8*jxN*8 z?i`hBy%q(#JFO?E$Ef!}g&rUkJ7-7)Gf0No*!o##`KX|0viJF6g>)reZM;QP^t<@n z_?u_GDF4r|_1}FfjCeK@4Vn}0zZZJ{uu3pfP#w=o^mZo+qNYU~*yc7x-V#*;d-Pd2 z;AgA0*fA25opvmE3kwNs$Gq6QSyd3B;L#p24_HznWkBO8v~a^ec7qfg2z5Vvvo$5R0m}5F^Jxf-MR!E&cE7>#k zz?yr&g(uEL+oz|3IB5SU479-gUwW-^tRHB`B+KEb)i#LZ4AD(ukr&P)9DhCpzlQ+j5cU;mm`|WRk`^Y1Y zIBGL(ZH9wnoY|(EZrZNym>P-KTyxDc&pgu^-qOtd)TmOu%xSU*+>UhIVG+are0w2E z5!l=_s<}~+3AUYbY#=cF?p$H>ZNeX~XkAoj^Q`0U#jWF6^XKTCK1L0=&RMq#wZb2` zXoJc)BjTi{qeqW+d?#;+p+egFtM>Q6UVH83hGl9j?6o@u?DmuP=ULBTM(lwT4v$*O zgAOPJv(y)v;)cf)e;F=3J6e;c;^BDG&3_Jyb+6UJKs$T5j%V%cz5p&= zO=+n>9nYq>;a5X@Mn4YUNYjCs8G}E0u7VP=>i17BSF~G?-2O&!8 zNu~t#za7*Aj198mzWCyc*R?`As7GhiY>qsks+KRjNN{fFuG_*@7f1aL77FL>8vgIM zRi*8?NOe5xxW1g`a$+~j-9 z#`7hPshJFHp02!V^HItcY3dKP^#JW5Y*`)5YU{On>^AoRw#?z^3(g9^*f-|E$lUKQ zXs>l#w$~3lJQ@S4+ST!_>aLppA~K1_oTwX&C?oxF!^-Vrt%v=(bagM2LY34Mi7qqS zR}Q)nW&*jSrq3vs>m=BmOhy`=%6#wbco;l$P_5XqBB8uXa~SPp)AHO)v$%Cny$9+& z(207$+u%57tAoKDC6 z_uudSr!BYK(s{VDYkz>0VG=7=kTMUJN1fQBpx0grtcy9P>54MQ%Kl_#k2s6R#^$Zp z$EQZqU)hVgr``kg9_TbZaQxxnrfb5pZ-$cgAErn(>v%Rry16qK!hSX^v6sejV;M*J z{>2wx95G@9OBwEPqKLomzWY{lacG(RqIq8mkP#8>r8R7);s4y)DuhRIE%-l7-l2QN zsp87hx~r}Sbgyo#E^a+my$9Oe119N+yTfOnh6$fdMLe6S-R-DnFpc-XE`#Dt5dVCy zLNmaOqtNTGzdm~z?wAKQk3ar+h4|Skn&NIX6YD#uyqlC0mqIk4`l*aNO6S#ZIYmuOdvUw>Kefp+!4i_gXTUzikk z=4|S@I)66x`o5EtoXG~u*9XjuZE%3ijge!Dsj`jS{fPR(;>TeUn5n5nr6y zR$FbwdI%V!Y@!J8<}7e?5wpx1FL)!H{X17HQ%UWX7!i#9;mJd z-v4J9c4ItD{nP!bOE9@&)$wd{_3U($FA%!#zWeN!Iho5(Fu3ZftGd{})dt$a;Xe4_ z0~gG*;>eFtd+xdCz}0sf?2Tf`aBq)2_SiPtY$G?fD!=>gyFByHKfnBuX6lrUrL4C> z)ES{LQg;=5zzuEgRNHgUJ+ZCujwM_0*sBvFKCPd)V%q?GNm&pzuft&@~9 ziP?k+6JCG4#`{RCsa8Esy$9+&(1AVRXz9cEhb4N{e5+>%)}bk@x;{u#Pt^Z!=z)Yf z#hu~W6ym|emf7wqh(MOe04~+Xd^l+#Eq_{etS$+c97N&vU{!h~y2QZY&)#|G9h++S zv(;8>JTu_RF{NPU@)_3s^&Y7AK&R^gr*0@nQ{9T5sqE@_HkCg>XDc2Hb=FyDWwpXZ zK_HLmFHZ{bH;cmqe%wov@nPOFwnW7a`?cJ1%cW~#1cEgABux-+ZKu&@{K-##Vq0$F z#EGPi8RrKe!66A}zLdJZ-UIa>=yW|mL3*{d!?RBWwh^YbY1TTPb-Lj(bt`1!%B5NA z0Am~x11dsXYnf^#kitDcA|%X18k9=+MnWvw{2pzRK_fbfv?5bl5C!&VOJV`#Ah~GN z7I1a=GkPNZ`t{4S7{tNwW#vxYKB<>p?}2&`RO$iNt>D@H!>2l))%VXTeWn@W9czl* zoQ)TpLmIk>bn8J80U-EsuQbu0Kx`KIA-Hmw8apK9bu8h!n%F)1>(a-jT*JfF1yg(04*0^eDRPWL!N*BdDwR7p@-gj z>#daRciwsDe3InHY;CyVhE7j|!@KUf>*qiJ`4USkkzPSc{MKA^%|%HB&j%eT-ANZnKKfyvkd<3A1WycODPAVH$3`K?7*pdp1O`_t$wTNJ;ML~8*eJgE^ujTE~CS=^PP8Qj0)<|r@!TvTh?1| zJrYHF9E67=^5d&8Ug=Q?#%|D{LBI?Xw*UV77nl(NQCKc-g%dV9h=wOq1Rf4I)>N`% z)BnK{g3?UgF?%&*dT4&?{~4$4Gk^83Imf;>lM{#4IWgyW=gm3Z9{Zi~pH!EkIaZfR z-^~8rJKte|rhV>z-@1)~C&&qnvdd5)fO@rz2Ik`EcWR~v;22b$%=@uz=ZMLKK@|tiC=bU zp)*u6dWpbUC;exE37<_#Rk?r9GV41FF8ay5UH`{MXq()3zy4~G@gL9k#w)F-etKl< zahhU$KIdFt%|2(-Q}h4db_t(#U#7-BmOH<8rc&cI$VU zb&C+jUVqKV71!v%ye)j|c-DdaIm2aTf6J-o^Ugc(^wUpYa>*ru7DuOpE}}bPw%&T{ z(W6J(_hL)w&O7h4`$Z&p!won5^rt_~R5>bi832=s4Ks-706Uryp=8NmfmG`eN!^E%3z3iB91lsX= zmTd{~s&o#DEc5-)bH&ho$;y0BiTq}sdA0=?TB1vrMzMH_7*z-1q4iG%r|VuB6T6x< zjmi$A`H#QP`^uPkKP`QCe78?NT>kC0p3dyLK(RcgusW8fEDP(><$8wM;sKi$&ZlwU zY{?#B@g*BChZ^;0*z$)1=bLNbkRdH%PT7Y#e>P?NyK|Q2iU*dZ8WcLPM>OeeZrRPE zp!n*mud+=wV88&fM~svZ2gMw(CS!czg%_yWgE7n&&5>&GOzY*=t5+|GMT}Vz&&V*T zO0Kx#iomaP_SV#|mFrRq=%(WnZ;g#tr}~>eO7Z0v;ngu=%!}cZ#@h@UD^JK=?B<#$ zo+7I3h^E)wAoN;2loPC>gD!Ghd9~2vdo@E#Dw-&J8vXR{{c82P*&T^cvc(x@9gH0-cR_}+41 zsqe+VZl4E=4U(I{1nZn7c+FO_ukm#q&uZ+j=`VWkABItX3)fs4_Bv4G2n;DJLadix ze%W>x9Ys<{SOw>>V#I({IoJ-yMZp``BZ*hp{#iBMLnWkOUoD?X{#-t!**|e&vwueO zU2$P}szFo*$sW8neDQe=9bg-#;A#RZ^i@_5Jy(hV20s>GDz3yAUZjRR>rtmb4?u#F zD-40(?-_rS)lK*uj~JQwbh&)KtWQ4)Z;y?b>h{D*kqAWh{H#lBjwBxQ_daaH*gJJkE zK!q~{Z<-F$2ph3t>#Va5=8RZ!l~q=;sUr@)%~9yd+dXTo6Z0Q>Lm0IG@uu)(@*6NXEtdh>oB_+v?2E;oKp*0qtFtc_SuLG_< zRXxRY)B|J}r~N9NcV_se;Wm~e7AGIyY4=DO?M(FDDE@8f3>%h2{`R-OVbt7YmM$%8 z8Kpy?jM9Z?iC3VF`bSu>S*^cA%a{t8v4v0L#_FNOECk4;;8hxbf=n zi(iFfPcD(rEPnUx@X-hHl|!g6JR4qm-nAO>(J9zha`!_CS)o_xI)7ZZt!B}&U=*IHOa>}YM*#4;3ptuO%4yy zXZ?bca4`cJ4j&erll%66;l{f{|3-r&HRatoBiDdujoi^o-q`Hqk626#FTYr80VR-DJ!VPm- zEU;kQ;wG`_w2tnU^UfV1UoP9kA8r`@IKBGy*WvbC;!28p;?eNT6ETpi+&*e(e)xef=7qRECUW0!_PigWC&cn0C0d^|46|2{hINg}4!<{jeZ zU$79{-*_!<9ZkE=Za=v*^8^KsDq8RLqLxvCv!_x)6Pn(dU-3583(tkWjfhL9Y8=@& z>}jy0UrqGJICL!SkbV47i6lLi2?MsN%hO8q%p46mW65Y)iP!a@(mg3*m9onH5eL8@h$PjmDZ?of*{TF%1l`MN_o;cU z)(tRx&i5q#Y00G{|6X8;z@t8|yUE-G9UyPC{jkEK@r2MTrPcwHx&G61_Sao^oy*gm z?QMLvEGB=W&i*l$ig^?11YlHj-uhtq5X zvo2A~g(R?8X?5h^n(Ii_7&pKgo$i@RozL_=xjS^@_xwgPLWis-S z5+^rx?~Bie*K@WEes@wq()hUC@+Ek_d^~#IK#{1n!S+>r!}I;+qx`n+rdSVr_q&mw zu3xNEdxz5maSH?+G!F0EJmaCtyXmHzLNbN|>R?uTkLFU?3&(ZYLOc1GaQXT11v0h! zK7lqhVs4u}JB#-IKf|3vqwL3~J9YnR+!4nIw$Ls+Kb&xQ=1|Z_{|?9Z(Da2dVpY>l+_x_kCv@XvTW&;Qdu;?$O6TX3K=%P>Jk;iix1lx#FiZ^ zty)RcDHGGcNz4^{rNiCLxlX6P4&cx9%u3xOo{jx%I_;#%)hwqcojieC47}MbOB-hN zb!nW|&+>Obr`sgjakIE?UTBfHspha_x!cjsJtLfTTKL`h5$&wcs&w#g`;7zX-Scln z&F2Q!3HY-!PmN%Y)+1c)PGTS+IJv|Y6w%&g$Z zH!zC~RkUidp+YA0SJQ6~WY$5UTGmRM`kBA(X?qV~o{s-T+;3t-|n|dm%R@TL(VBX@v|(FXYF;vwmXOGuZYLDUBK4hnm=SgR;Wuz6pF|mggbQ1Fabog1^WZG z>3$H`cbQACvd6k-I_-f9hi>a)#`b=5>);cA8LquFZpj~gM)>&=d3)n}h}Ju{H#sPO&5|^OKLFT9jV}N2_AlA4IOMg8pYdx&2x@hzy2h zn*sT^$uG~`;*>Ox7x4q*!q6(W8fQQ$hNTksvolQJE=Gw7It3M&ZTh zqI~6wn~RAsv*yn}`>f-Ai4T^Qdlq~4?AdL{-TprRBHur9zwcgiN!)-xen^STi-VGK zZ%&ZY3HUQsysVm$r<<>1Z>hM>HHTbsea%Ux#{`x_Ccu+VK4}cOrN#81&Ba=ku{eDA z@cs5Hae8B#=?2ya3k(vrT6J8VRSvy&9;XhHMR|WcX3kbF(RW8}iWbJPh>>2Ac992=Js0m zOIZ9p^UO2%-FF`gIQ{zdTYT}wrzGD7Gt5xtQWKatMex7_53oGPem9Sc3CkKdEpAdf zLV(%RPd}|g(oGj2R&RhY=E51e1Njk1kRwMUG)*%t zEY@CoZD0xB=3A-P?fV@5qw`OnSteUvvarcoQ4OX; z@T^SRXTV?!AH&Y|E?BfjAAQskZ>_b~0&J`y%y7Mdmx?Q=m0D@|mtV#m!LJ%@@U#*& zMA?Y5C6;1&P%KDAG+J;Ey?w+dUoD7Le{4?=05i8eTy@n|d+f1?b7Lj(O!#4k9p+|K zF--wC9A*1A`J&AcQ^p}{Mz_a|8FSG^7r6^?*IjqbvuNUgw>Bdj^v$@ge9@WTg|`-+ z04#+l8iYs!sxg-?Af%1yRjc`A8MeU#Yyb~XcMW}NyIuu9It~25+I#M~2b+~RU6Es- z|8ravGjeBMR19W8t@(2%J#xlVv*s$y^7W(Iu~J+fGXy@RIu)&EaDVCpjtSE~p8`4#Fn}m~w%KMwbMvIXEmf~QjRrFIp~-N_P%oK*>0ly&wBwFD z?(DPA##@jjmc$jUz`bdRx#qe)cxI2sW6G9@j7=2MU*_8dk=Z1*&0C z0VG#&*apM5x#<@%nSbA(gb)51cKKOYr0Hx~%l7*^FmkD-;=xuKy0%yAEE+c6cw-@2 z1T62GbG|jV+9BM2b2wo4aPf78wl7*{So}0oanRHW*>bz66sH+=SJVR|M~=MZmRo-L z%U>EmMK3D_Smn7Y+9)KlFdvLLGmyu?sxX}@K^+93Q!E+ zbd+NafC=-37S88~#9+rQT$~iPKVdg0|F*;ZMwj!*2It*(-%X|m+d906${8Z)mU^gR zY?YG|^sGM@jDP~7G@Jq$XkZ=`DE;d+|`acSFT}t z3xRIG{dPjp3iVWwKEwb?Vz!d_xhY=9dXx&B_?lKK9`QydGPq5dckEwymgKhz)oLuG z74XeBH_~U#M_3X$;#ZUB|9Dn3*}B@=;p~gc)dVY+=#L1#g|>Y9>8G{>lYXfMfwtq} z!kHIF_J$3S!}cwgRbzOv@t8BL(P{9ErV0xnr~f*#Xm!`J2Z-<4uz&yk_iH6gmQjZu zdZ^iG^!(x%zc3FCor4ZK$UbxRd|u1C)Sued1M%R0mvG$`?aL*XI@*1n6sQL`IaI^O z&r?r5W%=TZqlQ-2O)oqCe-!G_4J3V~Vj1?RQi4@@hKuca*R8Rj!+%vl zrw<1vmDP`kT7jCWIpj{b2tnalycv=H)X)b46L){UEZp{&vh{!Mm1sC=wYBm$%XAt% zBYqitO!$0!xS+0NU-$(Xlrv(Cn>48kUzdL-l1@TJL!Sgga?Wftsj8fT<@2t;X;Tld zEA41G-OG-0>0m?7N+%it%n&{5F^l_`Eq+fh`DQ*Ol(QV77{pqfWh9*=0Z zn?6_e5rJG*0UHV=ki&)zE0^Ro<#v2;lK5lVgAP#b+0L<)v}+ zFZAzM5=$(>LT0KJuuKvo0wf_gGj7c_*Nkt;8yLP~+L4_`;)jxs&2-NBww&uU zc&1MK4~}uXV5qxX4;W9?Oqg7XMsI$GXS0aMgei_(51B$eVEOsh8x7`HIdJG4UFs=~0L;-8fr*eFd3^r`El*1l4 zYBL645Fs)pjM`SnP;ace?z*J+QUNyV<62Q6e)bBkAh;TvO(i*~m^~!oI3AB#*35pP7pY}SD#lK+L9s=SK8iFVf?Gs;l{u) zJd<swnW)Cly-%?6T3=V};d*FOC?UWZiDrIj3Ee$I6!Jac-NHD%|7 z_S-dA!@9REJzxlyb8X44o~8qPz=2E7<@8lLmdWlI8h>{V3+}nE=%5$s2ANPFlsXYv zWVB+U;9ST5{onun=}&)>3Z0VB-W%2Syc1$CCkczP+yEFAI3yS~OvPDrXUq01T6;Y9 ztFFKPdel(iExm_^VcyJG0LYuJcDWp&6QhdlJqLn0vY zz%RwLfk(qoLV`{0!hAy!Y*~7%=Y_+J4F9tHtMo{#EZB3-Ip^qD(o~9zzyJO3F=u#g zc&1RLV4+;8L#~rH_N0P&jr#fz-EZe?(#oriTV*Y{u3T?PL7jP3TjPod`s%B%X4=gw z7-s9l$Fed2#u{R@$X_2S9q+5$=9(XILga8Bytg?d?|bL1_|)>KXeV2zyVXYRpL{Hk zjV}BBeC6x@R(rtQIP%CN9i1^mlJKWEi3Ok`Yqf7NlTs?ZA!jx0-@kv-jWnXj z2D3cDo6fWgpp8Z#-D66R*cTCyb<|&H`dHQnG#E8Xb1YU&8DA=22jRXNJj=MHtcYqn zJ~U)fkf9{p*s)#TeqS|=G2mnd zvEE<>aPGP1x_(`SEd@j~B+`J)H$k{&`m!mG$3}-Jx!CWSQBh*IWRIrMhX3gtJ#=sA zx#mj_Fw_je3of|8_;wb@&Z@Chkbw~i_6%Y~ z!EC(iuDfgrn2=j&s%$@-`c7N=CC(sIlUp*p1+hP5Rsl#ScMli#6wq;q(VgrJtp zRHe~P7*EQN9-%C?)&iK}iY&KN6EuzL0lHuZ)Fjuse#vsphg4EtnM#=M1UzO2D)f{33sDOAH!SZ%4IG-htGHP<}<>%aMI*Ift6 z)CbOCF}(%J)>1xeo-swHECN!aQXM40sA+Y+Z_}%I!x=ndq4%J}8$;56?8I6Ty7#d` zF(-S~$?#0Qw)s&w;fQd}rQwjH;?8;9HT8h;QDMEAVzK&x3g33yZBWg^Ha~xwvWe1g zgAx@mSjE5m^2^C{P>nQRvuKu<1tHn1Rz31JG)s)mhLkFR(jkQ^km4BJ$i3R4S(e`R zw=Lq#xR{g1^{-RB$uBnB(=@!dp6F&8r`m~y%2o}-ID9{T}A4@9B za6|-Qm8UzmRvWlYT&cb_wrp;U1~u%%H%935!{Eo12^*NR&k_FhMfl6L!`Q#(0iB8Zha!cGssvERUJ*Mld>tUG2 zVp9YnyJC`JX*KpG%MBC_95~SEl3_s)`1*PHL5{8Wu>}dq91W}K&@g?pP- zBQZB{2>c&?^wB9?=BcA}ou*|U#aq+gD#Y6qAP=HMXF~abBUXjm71qYLRn)HPRrIXFd*|e z7qqLf!mgs`zG?2a#&Gw`a4he%bd}a4En`;kH0H(N*UrN(i!T`=?VUF(oYB!Q=49e+ ztEg6cqgYs3Ls@!cL%F><)|j5?##-A@Gk?$;%`cY$T5Mrxne0@`?|%0?BdORKLq@O( zU`UyA*05%^24;C0)=tTgLZlF@Gt#6Ag=PtPbde<<5j=vG56}C(!Y-g7i7KIqma&$i zs-(6SiI%qjPZCoL2k9}NyrcZ6fKj9l`azy%V*-Fgd`&sd;?yfOM6L9Ht3{)0gmq?S zBKjVYGb96pA`l$`Y|p+iHY~VsGz-*nP2HIJU4IQr&l`TQP~mU0KHD~M4H>gYM2Na5di#}1`9=^`)4?j%NhA1+;r1TGBn5uA=EA9B6+6T zCk}QN`$AxAIwV&9&O7hSf0q`3(U3*@C@t#L@PI(+_I$X{q-P4cH$94(?_{YIinswD z9?J#Yo6k)(3O>5W;<{-*LgBM&j!eiT3@X#d0!X+CZZu-bO=k-f%S5mAPrlBj{SV(C z!`JU$_%?<2-KZeEdGr*#Xv^b9Ylih#4y!B~4*Y3&{+YJqkkafjDE?2hQpy<RHf(i?3?1E9jWTePB*6;g}C?y50& z#u;aTr3x|AD-cN7lFd4SM1MwSq8dCNF;Yfkt67NvduTzcL*hal{8 zkG7y(DNjpLdE%85B+JvQ`yO~8P-|u@Ys?EJvSOFA@5b@^q~hPNhJ*{QwPdJp#D^>q z?*&sy{7`DQQ|eDG%{q{$c*=->>Zzx?ni*hVt*mcYdn$HhlBi_9&h|W@wI-9(5)~3Q zqLuljjIy|_^psZTlyv!=`Stk*8*E@Dr+QX$4?g%H=Fc+Afa#DWjt`2bWG}d4*z*u9S1XqqU zbWGN@-v!>|^^Hx?C4HEL89r24S);;E9Kdjg}hlNBLv;YH`o&eKdB*_<|7)tJfw~Vs|_q2O(NSWiP;jT z*hwN#Zuz3^izr37Z6t!J)Ntc7g4qB5r$nDpU;#sr&!K`}iANl91VMCS9L+&XI^#iY zWt$RO>d}icPc3bAtP(|re>@d(_R5H&E%~co{YqaIG^$)eXf39(YUGHcCQf9hv=~zo zX0@W00?&*V3k%U?-guy@LCeG9I4wqv3M(f7W?tLFQ+eYbD^srMa^XHG5b_l&(}Z%# zQ@CmqxywP*j9%Zda{R)#7G4v-`p><0s0=(ag!bBNFZ+MmZu=9@ZOo_5HZZUGMvL*F zb97W;Rt3+0dobP`#i~xh`J%gTj}pkHJJ0foYTQ3_H}+4rkLJ0qx;39mqu&WQ&U~|d z_sfIg%`_i>7_M)H1eD0feF0r&3a>_en*xV_Hzty)3xn9$P2-~=T1P!v!C84(YWXDK zfqWoQgpSI;%6yW%rOL>n88P;jtt9r8q~j7&-7X>QBYMu?SZ$`hT9$`K5Z(+Ydw z?$BrB)~k&vyy=>7-4)^KkumaK2ZhtlE|*GwDkw3C*;l{{TRW?R=ID6{k-bX!2v5X1 z8wTa_F9??pVv049Fv}CuW|CS8_-ke3Q)aIUlDGQkqsUD(IdFO&a_HDp&m_nq!m=a+ z2BZ+LTs@QKNq**UFdCDBI){P3yBKznn=26{nY}Q8j zk{fQg;oyT0_9{g)gOK|)9)u7DgM9HtPG6+enqWQ@YCkdysnw&NzxmB?%)tW> zJTU9Y+A>*jm2m6zU)^-=T0h>~Qb}4!W(39$Hq%U&bUv15W{ija6vtn0D-~oC9lBSH zu;1XqXpcM)LpE--*PMS_F~@wwPPd+(8=Xgl^0T4!I8S8 z5h)WNpw;54$~qUxq7vVY*>6J)bJ-MnQBq=3@IW_&%5355GS7M#b7nD>e^0vshl&K4 zibj9_Ro<`umYH%uPqT3Ijm(V>g12OOK;}QGEdACH5aPz(Kw%?XaQb8Vxe5i01 zZh>OfSdIA>*oBfS1M%B7wk7n9^2Omfpre7LL}$G6oOf2G>OB@`T$Vq7R!=h&n)*zz z0Y7Bv2^;u@^ZS$~OTiW}0*4uOUQKQ# zCp}V;b$gbTYEyKyu}wlKP}7Yd1sRc1TGk*XRTQ1l;-DP(aRSK(l-RvTt`x(L>AK1|`+mTeSl71rqIN*Q- zG+)E@NrFsT3|SqliEv-(@Djr&^ry|tcYFg#d zVwszDdIM?B3errhm9d8dkc0{VmYo#($}6wLf!SY#$G`pUZw)g&rmw73kv4g%K+4l7 z0(EgAPpyM1uh)|m8a>slFjc{BUgxk?m1d+i_2HD%b)2BY<9zUb#5snKOC6c5 z5zo3U9`-pn{j#@^ZE$#4?!9;NNr}ACowSz6E?6kp zSb{fb3ZO!BbyM+lHN=VCjX$sO1VohiJd@wxFgNsdBF!lfr9+RTBB+6#R^P~;MA%*=C6 zC6nMD^gw=0V^#pkuYdh(>w2`qwj5wcc!o3(P8yd8B@O@`vEa~5(zK;&( zO)xWAPx_`QH`P!#7!YNHP0oZg9t`yWUo^b)SB2BFo1Ww=(zQ%h3@ zAQ0xk=_phE&-{@^d-(p@ez^I!-)W&?(NtQ?|9`Yg%jdQ{O>T54sMC}w&U_)-($Cfz zK7pxZxEi0nxG`h+6;#984xw;NB|pFlYVOh4mJjp6RL?kMCyQf9V7$srx-42bkMUr| z)8^z^wsJ6fcigc})HTbc!K2e~w=KhJc(R`8bcP@*KK8jd_LvP^p)9D01OFoN5cxL&0zTqB<4^ImC{;8*OJ z+Zi%exn`O@4f(5fHhD#+dU!;v6xS@o>_F*+bEO%-zwreayp z&=iNXPz4gJUXWXQ6yG$~>dIV;35+!3NT?}h#tTYjC=eYlC{bEsfh3{A93vU%bxQ6M zDQpJ~G@4qzh5AU2f~2?dF>lE(;0Fd5Y@i@}@4a_=tL9c`_!vnt`Gy<-s#L|ZOIk5g z+VmIR)5QWO1q91m6AZ!1kk#j-AVWJ&CtI@MqClx-vY5KsjtI#Za5AV;&Z>b)m8w84 z=Ub<0C{biG(_=UzCPlR9~(Y_8E5AD^v556yvO1)Ey66<%uVy%m-XngS_v7h z`N;Wf^WjzcGa^uB{BqF>rfRuplRMnJm>J&RaA(+Vqu|2m^;Qgjyds{MEak9+2x+M| zO<@${4;~Z^;*hQ%cWP5;?thmEa^GoQVdUP`DsRjuE$2Vw*a&7lR|@A`5@=+#%`Lc4 zSYhROM#pKkCcYALO;T)Zfd@iu`oV@TxxMlh2lM`ieR zBRsR)%UIn(XvEb?;-hDk6sH&q2~_o7bDoPv{hGyI zfB6k+$931%9w0JFNz?I<KcX=8`wLx@ zS|ZU?4O&qx%@AkN+QFY?c@%g~`h8e<(P+P*<)Wq_R_l)`d2Shn34mS(837SmNkr~3 z4qBjVr(UCtJyk^^!HN$p@8w%EQggrjh% zs@4Zi;Q$GK1f2$#g>5QDFJTIGAb!po!nc#HWdZQ0rY8BS>TRp$Vqs~*%Y4joes!}} zpq8dqNidbMQ{|ErhfAv(_yFr0o2evPh@<9HF3@R!O?@m-iW8O&8Msrp?7Riv8Qa)j zr6bitJFEvxXF~4|%dVbLaSwpB%We!;UKEwvj~g6*ePq~RASTX9M^REJ$@CON_DFPTiC`t0$UWYRd^PcB#B^}T-XRBuEpka>(TJoUAuUML z!!Rsm3!ZH(fiV&xYiE*J0vr^-RxpzrAk;17kSXUj{8cwnDf@ZG451So5>jhEU`&U= zW0gS}NrR~dSdAZRY4<2QnZaB~&8Zoz z+iGv_PxlSXc3gH|7IzJE0EL00$OxuQnJDyzriSl|9HyzpFL#dP?vCcVNg zVXGbD7M1g06Y{~DC4f%%0B)qDew#v7F$2Jly zrv+MN68t4b*0xr{Gg}e%8xmuLaKlA=LP_OMC)haylh|KJapf;WKjWoPcDM-sZ2{8J z*Yh+R?I!_0nj=-#B#VZ%Vu}e4>7^{NR*$+-p@cxz4Z20mYt2EsY^sqr`arsc_!Nfe z6FZ=wUAV2;+F0s2BI`fLmlJBON$L1ejPY$?SjY8&t-2X|$Igf{f4R#2q?lMbN{j?(l@rndA!?%lM*k&?sdHGaW7@w1zk-V4^QbsyrPS)dDXJ}#;TnbE zrdXwOYRyCv$77S_ty-bwDw7oH znJ43D-)rY`NlNoHl`(P(z3tbai|Fo{iVnTAKqjNJw?S}+G*^t?-j_DI&~dxOj#y$u z5bpNoSU$aPmgTQqCH*B+!xhT$lj zO$jSSCQevf!kwz*rMAR36^cwQM;PFaWlE z+Pc3jJ%AM^W87@3u-jhY!fV4lBg4I;;$LT!g)G*(;i2Y2NhvwEOq6k*Sl*ZvG%8Y6 zjiTaMlNNrNeyBE>J~}X~Hg@~s*}LLwu)%ByL7e4iTJjSN+N{d7HuB|IQ8FwGZZEl{ zl|2$u8h0yal20zngg&IB$I!Zhh>z+=b_ya($YY1h5fg$_s-7jQmyg`4A6KLyyX>+{ ztJ0wgS*Zq15W+?a0=Bp^9ij?J3SQyx^b&pAN*X9uHcvhtH?%9b#TE}6Y*g^xB`5_U zH9uZ)bLi7ETHi-FPC2vY2E9#>Sf~XX74N(>BbcZ^Bpq%951vbO~>aj~Biqx6E?xDqQ@f=gLH`I+*E@ zKU^O6-!)utR$%+|uw$!EIb%g6W~APQO=nXdkM5eiv}KU*1#`_7sVOkIB|Z5<>;7tc zV044HuDp$oI-XVAlT$bzjc}Y9Jaf{^oq>p{tts$Bv(C{1=DSD;i}6hSefQm$xec~3 zN&*rXqp3*VVtarp3I+&Ti>Y`>allbC4#2Yoau5(0|D7h|kMkTJb)}Yl0A1Mj>QuMA|l zafzkM)uE1O<$7i+huar)1ekI;>4&OVRNBx=N5QaGM1@wD-inr0)Ffn`WV&5fj{IA^ zSI=nXJ{uog!f^cQab(|rS2+L7aKaJc#^HtcBxPOGu^z^2N*YvD6O}yflxj;`ZO#AA zJadm{8|)oao2FvC{Rf8~b_o}q8*O>p9D?-MUK)Sg_g4tG!!|e^9(@zY-GIK4;bWR% zp=Ps|ZOC$JC9%#U_Fztk%)`k@kXEpT2Ef3W>XBQJVc_RXI->aY$SS5*W2eJ%(+)_* zu~)~l&ima-6lr86!%O7;HnG!DFcy0m;{eZ-{@Nd@Q{3_coT}%`#i+g>}S%kVvWq6XbbaWEprBVBpmi!2|U?v1K21M$dOVw) z3h|x%%Q2ypnE|vhMvXr0;t-M~Gjw^Ib@{efV_JKXOy&cN{Z^v{FBH0_jk%iSLd$$V zHUx8)DW}anPuwor=f~mhzqW#B{~QK zbfa;Xy#wg?egK4 z>%%7>#RyO~ZGgF}X}RU&{ZF0KRg}_{t#UdW=a3Nh?33}n3n4$+H9)oIU8gMdx3TN| zU_8UB%k~U&%^g`o7LU>;h~*exkXh~~MTU`zc{}+m*E8buY_m6(P0`e?kKZe@hz1eM z6`Iw$?wMA4fT9yei>kcq#CXQu*AhL#>#vlr{B-^%ucnb-Ew*~(&LJCnZo$g|v zw++VTr$UFEeR??Mm}u(lwg)4bJ7Bk{96$WgSd&wZ3um7eS+1*YX|C8hD}-0aM83`O zENgj?v-(=iZ`6*-Rg{<)~kj0bcs2$bG*3X24mx zWuvmg>yXnXwz6`}^cDgw*`qn4_F5WOHk6*lw%WMoj*v{pra+ba;`8i%X%F(f?glMP z^DVGYyh$rxjg%5jy!Maqzb4xC$%g^U{zZ{7Om{I>faKX`i}GP3g!4_A!Cj$OV5xPc zS>l-Swi?HxAURmlBhSaTL?AGzPcn zmNR*iJBnk%=JDwLe@3g1pMMsY1tTAcrL#!z;Ir`{N*ULQ`Li-Lt_N4>0p_?|aXEbW za6rYtG1ES*QswbXS_=9uvE+emT!q{^*DK0dr!yN!A;#ik4oJ_*9jaUN-(RXM?bq!it>0Y|-xVa>3+~ zJS7jeGr$*1Ee=H2?sAsmU zZ1_z+XZSfU0i-KCQrX_?MPx1RZA&P0-1+?q^AvZhV@b%%IoT3)Ro=qP(gH;b7c;Be z!bNUQsyN+PAP&iLsNjL|+F~7s^Db}(gHc^!O$L?Ssd?fV6~IiEbv!HR*J=Ba{xP^B zOH6wFHrQxL=J5=G(dd1G6mW4)lEc?Mx)4H94p-VBJRIwfIs|5r%qa*98iV;L-kYU45~0I*q;tZuJkB z6~COkAtYu#M}cE}GVf6B*IsGdk4)jXI%f}x$zMKId;D}S1fCVpt~kTVit)w8Wg$9{c5xp5iHj-6n%9xb{6RGc+PU$}w@JS?tOc@envpyd zi}7SM8`(ji@d4Oeuan0uc$VG0Lf+^x9k}V#on#%&B!_cUuB^S~zPP1IZswPFc`y@B zNafeb-TimX_4)Ymi!I)@`g+~>CPnipu3 z;v*?~OcjR@&WxLneJwoxaQLK2Czkjt&l05*7dVe}q-3hpHeV>9wQC6E+&7jS)mAuN zjnibRzi>U%A1+Ac0j4Jod-Ui5)fjlBi_eO20iLD9q0WjrTZ*4^yO^D}`~`2- zl`}bGS;Sa4lf$HS%znFu+i#8ww;tb%+S?X!(}!y?n)Oout!evx*h=I z#pi>|Ku8GN<`DYC;q_Ric_*xGSyj37*S5^FQ~=LB%{y~8i4*gOVf4}~W1{koz0Blv zTGnrLgXs+ws1D`xOny2qyX_s0I#xG+Hp)#Tv zF}8#-jIp-ZB8nC*wDW6I{fggDBGtc8i6UCGp$rvCLnJ#{G6-2BH6b%)rYQgS`JV5b zxpTkwd%w$U-{G8>*SPoGvpnay_xpU#^PJ~A2WQ`xo-=sn^zNMV@a!kzDjTl(O%lJD z7MbpFa4E{Px>#k%ea%6NE zLH5R77D~UxWMTFUgq^UAnIy0#X0YjnkOlqw_g}SY75=~kkRxgVC&jQ6h8baCCRvqZ zAOv4c{+&L_cY7;L0QG%=--Rat8;(4npudDV$YvYNu#;bsDl%d1+!q3|I7M#y>#vhl z&ORAa=H&i;kxQhZEYCU6s=hq6kAHC&$iKBKom}=+o_A8n4K7;1(6+a4&PfO%P}07s zWJm-bBpbq53bp9|{riD24zwf2H@aHy-n}`TmJ7~vSBL);r^@X|+5+n`IP<88asXcj z7Ri)59IL@k|3~gHb37@SkDDk~MK0mVHuGH;2=~>_@|!PmLnz_|vx?06S;K}63F^rD zS&bSs2&<3t6l=+t-+{LxKE6|q{CW+FVFv18(y;W9AQn3u()_sQ+jy#41UheQ={B-(wTuB#R1)sgH(V{F zmJA&H*T2pQv^%M&jH>9-N%&J0b_b7N4zOha#Qr8=F>A@zV=Ic@z)n?)+1=5giHu11 z`b%fZjXK zq@j!xRe|V&D&feUi=#N5yD0eFPd^qn_Z0E%#YbPr{WPuWNf+VxMDf;aQ7X#|dG{`H zSxp%+WI^5?xl#Zl9e9I`)P=YG%hRSzoyz740&)i1ZHH!J{VK5==g%xA1Y6UTvvU9? z3@r`sUv{>jrI9Fsp9pUx$MLQ9dgi|HIFPbgv~Mam{G}XpR0ASjKeMuqt)u)S-TRO= z+k4GX9jlkyT}U0uIc1?CT@ow*2c5vV)`6! ztLl(wK&}WSz7VYCI4F*toV^RD2+@BEk&2JL8jbaMvyz1vg!2^Qt;m`~_8;5WD6`X#<{6nlNoqEK}b&$s>_uQf%Z=!JPVu0kx-FkKMvdq zFL8F1HSt>|Xb=&hIKPpTs~p`ZtmU~T-T~hS!9Z0a%)z*4Y(-?mHuig36ZV-_3HDQ0 z=$+FwT{e_hTi}}g(JxF2%Fqgn*p9Y$cXk6F1Ccz(q^Rus;gB}M8r^Zfcyd(sD9lxX zaDcc0FTC&qY5~h*gnUCM@a-180r85-kvOQxT;wc4P;a>52H%qTox?_Nw#2b{R9ilw zZO@)P9EE{rW`6gs+lLG`HW05|!whU;$147x{tm0sbsaA_C>1=bTeq%K#W*w-ADl}s zz4V-O&cQtgPaIY>^^hG~5WV}$4XGSmWbn+HL8n+Q3YH2QL^%1rHwQa7cJBj$B+hQe zAhvIJj*7n=lqf|kU|ZtU<6Ne-LWa7)88?`OfvD!i*#&!EFQ&dKgA3gKKz3%tUg4ri zkRR31~ZrQSB{rdHd8#f*~a-=qPS%(Z}a9A$q z0)i!L*RCZl!Lnt`x^(GMz|jW4)GxpMl8^{Uc2r5|;b^DC#6)g6FS}ExP6gwxlAfN< z?s7UMgbG{&#<;Chrw)ceLNUNAuC3e)c+ET7y?Zyylf;;%5#Cz0YSn;eKpJ>slA*AZ zkh5-05haBx1Z~1_6u1C* zh6@GG?Hoq$lnkCZamD2Masb^ZYyI5&kfTO8!zDLK*?ib)W{v%-8svzhfGbQybt`s8 zSU#mWh~|hmY#^o1KD)|U#fuRxT_xaW{v5%`we7w)w#M_TBTwhQ)w5_TOQkU@h* zpP*eCZH{I#=xTJwFu9m9V+Jwpz!elG0#4GD zvfVk3CG1S4?*gA?%gXcNxaD&Ka!_;OB$ESvHE3zD9foj0^h+MOcSlLq&uEikX=!N~ zbr~984)1~-sdh|2oNe`P-A z)AKKs9=eWc$YWyXHt{W1%dCWRY1(hzGl;YDa{P}M3H~z5xGD%cemwo~;WJZzsqn-0 zVgZ#c&IwaA3-M3ca)+C?+?oD6Q_k2ru~n*8Deic3E@8zvpC!C)kvZrN;Rcd0SRpu& zL7Z}~q+tm4LoCX&$K1Jd344ez>e#U(%PqkO_YgaAD~>?N%*bDVAfYOQ5VziX>+033 zKljx#E3(#`t&>^@@kDwh!QB098ord=au;Jrj z0S{8SMv+2Sbo}X8~E1PX$iwT)F)CB`xZd%ga}go_ZiNs#3-1ylgY9@n;^`bGUrnp5Z23w%NGHzswS6{d~!#mCvi$&}^nnn?{>ziOZ$gP#;09)=EKB01Sl;umN>wiX4WFg2**m zBN4*T6#3H7fL%ILTC74WCLiD#9}f@+aAI|2)O@9k#ia%BBM!vja9Z{_G1JYN3i5}R zv**+M?!Dz|Fl(3|< zV911Krd+W*cl8^kg=3c5c2vKFANT+G{PWM>b=O_BW9v?s``Mm@2NBJxCHKGl+7~Wd z$S)85e%&N{oAze0mDTAnOA*4xBvq+;ap3VZE(+^XBM1?p1V~jEl82ES5-fT?JP2 z4Y-3Mg;D1CPGA&Eak@d>i1mWTNpO-(WIctI2O!2e;8QgvkF)V4978blLDjwY-m7x* z>M#8QIqFr?9Wch+2s2hrGcn*!Tbb+^V|!q3^OXY|XFe(V&$!Y_%vJ7ImK`7_l)FQ!a&757i2_nJG^kC})VBrVGP2-ab@+kwKwSOZR z2G&vrODV=}s?Y*$(g=u)m6f3}D27iL+$vCH{jy%YdOV^!b+KAg#$9>!(p;sQyl@J} z6rSAlHf#P1mjkH_2X7ph)Kqc*$j+5tE=~EXe9aCWTUV^!Y|w+1YJhVmQkO2=bzxkY z4U1R&RX*sO?W6I+uP9oqv@&uX&rcbt*=A>Ta#mURJ@Lws7guW>+@DXqsab zUP2^c$7;50EV~rxdsZ&nS*CNlI#~}Hpies@b?K5_HS3?Z@ry+V&pI!mQ)f?A^tbQl zElnvE+q_)ak{>nbIs6geA=5jkEAMQX7+<}_fmu&qbNv|c(&QKFUU+efGtOW@d)6f{ z+xWdGU$?`R-T`{M_WXzV!#GB)DV(7ZLo8HaC{qQHBmB&)g{{{-WgQ#eVp?EMO5z8J zWU-dXx{hkyf8c=LGY{M^-&r_m<2tFH;)%n?wfhDLmK9wSk^)aZ!+=#Y#|{5Ngd zgts~iV33FKRmzHL3-Jn~uzrI+p`JRzp6(b587zmNef;sq4?g(d%$YL*75&uT1>Wk2 za*bFpM0o)686bu6>?hrMXAX^lGD>v=&!FFG6=V*?aFE~}PeYFl8Z>zI)mI;Q-~p_} ztk3aAKw0P{AI75n0B^tvfWb95p@?Ld&)6V?aq%%@W4PmvJ9xSHzi^AE zDDf?M1mz5w-DW7V01|M{pnxBU(RfCyd}GuFmBBOGlsUS<0?ch}Y^=)hAv4&F!0LIhEtzt`b0Blyd?DIgDkoW)JKrr|tNA+{wtv_y ze&U8BB7J+4_$HgvSqt7byi4<#YOzmFeyewvCM6p*C|@gn@>>JCG^sXe9qLHNocJ!Y zcTtX%F(*-9%ln^KzkTP}jY1?pnK*pip^SCoo5eQo^3{grV|pjXv>Kl(Yski{RjM^~ z@>~6S$5(oI4%Us#oij^TitYB{@(uHP$5m@J|A4f3tebXYwYd1nUoM~ByGv}Pl5=)u zii})OX8y!zAO4X=#ZbX;tj zF#f^+o4J7=*G;-Hrb*(w4O=I7i?7sie6|Lc)jz*0er$*jBqJgTa|#Rf{IoD6BA8ey zVX~i9Hpl-=R52W(1Mz#N1%CWYGtmivkffv}p}|pYwYK1X{n=-qeel5tI7i^`N2Fl9PIyhM z(y3;dSb$_C1n%XRUp`>KfUB>*nz6utGOcgHw-*p`)TmJa409UX9cjw9j4cOd0zWzv zP9pA6Oi|PM5`a2pHtH!7A69_G;3c0HnGnq9q^qmCIL^Q>SPHA5p9C(#J*FUNKg<>Q zx@aGd9?Sq-qrot50Jgc-WH5FxKq*o>Gsp|bKriQmfq0;ZTHG?RQ%D1O^v)Q`hh3;s zKq+4cWGGJ%;7xY~4SWWCJg^-%8Tbz>qs)PA{5q(Mby2m$?8kR6HhobBd!ueJybHgR z(D0fwwSwV5=KigVM8fmcq+mY${c0h)J@wqE`Y(=>bu+UpbtOb;Ax6yG@nq+k>&AC) zGB|DC?&F=SXN+%9dcwl(gBsV3iW4Gh9&Ej)jXJ$vOqsYLc0!+(8wSxwX641l@0V^T zCk8bx5&OZe^!qDX8c$7rs#4;Nl+hhG{kOO1KRx5^8=}PX4fdBFI&)*^fh9%^c&GpL zl(%oFBi_O$kf${CC&Gs~1_r@H9 z+FL$(LCQo%_s)Xk`V2L5(}+9Y88UD8i=C^B5q%q!Zl1Jt;4O7LNa(4~A4CJvgkKTP z3#>VD&D4^$cP6Tw?#R^gop;`0@~-FOS@i_M8tWD_P3F!>BEW-REI(!h7P0_mFg3GQ z<)dR7#)%Jf-M|;0d?aqU)}h#*U2-q>uJ0WlS+bbdW70v*!ZZgMFvVtl1&ImpOrJiz zd-v`f_vNduAy zkf;J>6WzcCrEVZHd(@#G|x3&s*-5@2Y z1p$svRWV3qA&nhr6DCZ!?Y7%!R#$htU><`qq#pr+d^Ug?%R-26z65QGCWmp?+)UAUC3GNWw z-6`(w?i80IEnX<@?(XhTw79#w7m8Edp*Sb+cfNBn`ISGpW-@v9GkdMQZt2z#wq*0q zbiq(f7SI7))7bF@q4!hHN>HQz_@kvP)TYSj;e45Kkt=0%#dg0}q;T%VYZfc}3*Nas za2ZB!@?Woudd9V5DX*lKQa_<$EA7f-6Y*LNUjcvU)u?}=*r{xu?{;+(7r^-L{`;h} z`pD{Sx6}rV^=Bolf{~Nfs7Yy;=r0gk>-Fy!6`|+dx|MxN1y_x{l&^yFq4$QaXOGuC zv*d}-Dc)syOw^Kw)?7tzaui>OxZMN^v^rE2@p()S5?%~Ezq-6$e~OG`4p-)6`r>v% zO^wjQyMN!B{fCur{pydXZf$JCNO?LxqV8?n$Gb*@Z0ie>%2Xxs3zcHR#29MO_*L{1 zuX*aSk|$@g!lbUAcByeJy;Zru6P{DVtJL5XqnQ*j4EBOLTfXH)>dDIE%>*lDe|3_o z7J;4|PU%ksJxzl6Xj0}Ce_%)gDxdGq*2E|&nR%6PvK-~p;fSi*l$Tm9Gc*8lBsjNM zO%nDHE!etT5`kurWlwy$Q7JNmRTHBHQ2;aeAb;vN&}++5{d@H2Tv<>g0ym*1hYn7t z$Q8ON?DU-QDvW`NthhL|w4h80&@_e>zMrM)_UxlTFG-B05RBRS!|d zgy;uYM$*l;Z9;}n(vdQaJ%s+8JPW&wakMcprcU~~5mknD)T#4DH%8-`Q6Zg<%NtD< zd4B=lGC$*+1otHK7XHeS#5RGI^v|bP?7r6!5|jCHluFKn-2@z|@}a9IvZq(gi4)dZ zfR@(xGE%i1$YhFh>%ov3Xk!R}^k}y6DXLT%ia!t@Ftbj%1f|){&gg(03S#J|K&oO5 zUIBi>5BJ4Tgq?Fz+Zfx|k-pUKzjND0hWn%3EdoCS?ZP^vkX((Pv}xtKCr8Wqp7RPp z`gFa>)F_dpzXdZsy#>h@$M{uF_(^H0uEK>&1J20XHQods zZm=;o)#U{Ws#HdZT*Az`lDWr}b_7d^2|h3rfqnce;)81yUT74X!v($c)T8uPRx89i z+0;h6uLg;t&YmLLo91P5xgwCO%*TRGaa(&Q#{9eL?o71>ql#Q_Tz`|I@uY~q3eWFC zuqY_R6N74kSG;@hJL%fgXRc=?T>`$?<)2XnBJ@V!&jALrK|g13Q33dZ65oPoHwrs6 zLdv`aCwVm8$bw~7Vb~M`rH^d)>$p*Z4+k_Xz2$BWM5s;Svg_-yW3T^s7H2lR|6;L0nXr<<&T`PJY0;hiuJ}Q`%+nU?E1IJc-lG^{gYH3-2ObV5#suxHh~d3vrX%@V zH{*)8Dp|Ejd(7yM=}lGV9qh{lY~a*-`v&SZWolFhuV%bnWV?mg4SnzU*`u3WQ9sN| ztVb;`xq>d2^w(ZVi0$unv&5QFUSnwTInlqfKQ7y%&s$&cKi0XwsdC!-%rC|iy7C|# zlw%sTxMbtM3^%-G0M=#v7>=gsyeE?Ja> z>Tc>=1rBmf=`tTk7!pHKykrDD9fH8b{J$ii2;+LL*J>&%#%g2#&|&H?w&w3RAQA!N zWd9_!b3U!nNPN=10xf-4ox>yJ#dUbgr8hZ=I6|5V!GE4E%##}1rEr*NF^GMvj`Nq0 zg<@jf#!ZM{oI!(5#@A(B-yT za@e1C+G0q3zy6&`!DtMhQjtB<|MiA_V?}u(hHYt|X~BNT;kc<|c=GuU&Jvu&lFyRPWkO7?3$IV;-zSb|Gu2^| zfrR*#5j@Py=)xuZ9U`NjbG>nz=N`4@6t9HtW6MY^PweCsMPOvV#PBaG zyr39G4h1D%2R<5gLh|dcQsD`>O@_mWlM*sEbf*w+^=-Wf6`Z65 zJ5XHQyanWiM4yx*XIry<4RXwLl*o@YCp=FD>r5gYI_Avh&h&Hfz$+ z-fDL}M!7p9xAx2U$zhP=pOlf1%-zqca}`LxJ{uqma$DX}!eZj&r#57T+e=O2{9 z5$+kS`4|>=W*6{?pxM2;#RQN^x@@(Xd|z>%$>Cbb;i-3}Y9x_Z8VSaiEo9>dpPIgg zfD~ifxw|R)&E_h8{v0k`Z{aDag6-Vq^nzpxK3zel-s$+aK@UenVA0-~Zuj4=n#UD< zd15?c&1?4{n#$mm!7*W~6L+RP71!CwVum#SGnG`5wB$2EHIDLwQoQ!$6N*}tenjAXj%A9J?O$x zH-5v>${{6*vVBF(FkiR*eZp}}!t1yVVJC^pl~h=KRU%}-4D}?owf}W{irW>O(U1b! z)8k5MLM=11Ib5%_e5*=5ep#dryGZ|G&|!WKtAh>tIyt45h3>$z1S4GNl&Ia@y6h7G z>||xqPcw2SutitLX(T#<+mo7ou_LJT82Whs*R!@znsuX-{t6)q1*3`Ln0zN*AjE8m zFRs|dg-^6Wr=-$F{kqcvjio8|UMPGcRZvL3rF>FZuR6ppY9zc3*IN|0u_uIISJwlb zj#VdDXEpqTB<~GEC26`it&L#o-fH$8U_a&uWe81RW$ygU+FUzliuD zLj(9|WRf{E;Cch12YNiXW1)|#uiANYn?)=~SaEa4a*~^f=>_IDqV{h!eitVmbMpNN zy{L83icVy3VpJeec{y-Y9^$cni@$GFW-j)H=*QDm%3A`4&W^1kydeJo3SHrA6(}Cv zadG~a8#t!Rr7Aqz>`TfKFxYsmEx_UpyJ!P4J{g9-!q;bf#U| zC}=7vj3zPakBL9TgN7?MK!j~FL&234;oo&*%ZAq&0nHqL(XR??iMQgOED~^U2kvN` zv?Sh{wm2jL7LH@s?=7kf6;&-Gn%>j3ThW!=2Kh8+P%c;}GB30kYfa`F3$|07`gx|W zf5#YXd3}T-n4O?5C0cJ0Qv$KwE3@7uK&&NAl8RBUop19Yd+!w!Ht!;8vn56tlG$_es2_YJ33Q zu&|oxW(Ae2QGZOG5iXgux+l^1c5S-n#!l^6aIP-GoFK?L)}B2h6b54~U_Dp&l4UM~ zGV$b<5-AM(;nj?5;6?PD43?Sg&eUVDYiONy!L##Lud|Ql^=bgk#m=Yl=Nx2MtSF$q zGWbx2pjSO>&h^PZiO6XF8agP;+_yZVPgJ(tAykb-5|oJ93|RXtKf1|m%)k*F!Ls?P zHAyu6Y`3{jgo+P2_DO+FW&zeYCm|6c20=bvgJMC{6oOQ0$KXCiEiwKiU6uaRIPiw# z+=I6PCtt`w03WAC5Bv;L*h{I-0MtOh=r#ZeoJ*V_7F9sOgo>^aYU7wKzjbZvcOT<> z7{^Jo<=E@Ey|@F=U#Z|sM<7Ksjp^2-P_`KI^|78njBMRp*OPnp|(1%|MD z;0g*T$qfYb9|Cs3a<7$2NNF%0cb@iBtv^Ojv1lDj0zqR=X4czYXqyJvKG=9CAZT+cPjcTO-JG?-39 zo1gJ=O9xgqMiUbeN`lVzyC9_@)yOsmO{maH0)H$*X_XzT(-kYCd8!X;qT%o9XNjK3 zlChgngabQy?5gA`=-?M4_~w+8^?LIg@e;H@iD4g3xcMq3*VULeenHmSU(@Xd0>b|S zuymJcdCwcAM|a*SeC?kU$Y>-3gZ@iJK51f3W;5`^CaXifcpR)eWX;U3@oz&(g^Aq} zu_wY|$fNz?iQVcSbJN#z#f45w@)+l(7i4|$%C3R}q=<$QdY0{&O1m9A|0j)anV^hX z->upiZt*e6IRnti#*(yPBAUxK4}6fOf#S7~n{+5}+Fpo*`@80T&J2m?8DNG?-t5JC zTJfSgf$1*!l7v}N6(d>;4mic~@z}Y;CkJD#Fh{oNw$L}3p9vJ~PL>}fY$1&GAsu9D z6o++S@!+w+-9?wVWHOpL*nfGAM-J1&pv9t9Rh}P*>~dO?XXs<4M6bzs30deR{O)|HP9{ z<@Gz5L6RjKqFB4rL)hyg@fW%g@q=I_r>UFR>%!8^M?+;)RX>Wj)BM_Xg^jT9zatuu z5HbDyLaF>t87jg!orGbqp|NvhJ($~vhl@wKJ6@i|y-~phxq2XA1K-u7?DbKX8RYHW zK$lR}Sljqp5ap*X=P88aRuGBU>-V5%O}!YCVzQUz%U|c^4Q z?``s{<@MG@4d{{w(Q?|QVQ$DOVEOT7YZKPV{e`xn#bMwVQE#&+h^?SkgMB4?muf@0 z5vTsjT1nl4a|*k^*eQ9z(Od!%k4cz#%%2pF{6sErwj9u39>NF0ipR|q2BY{q0C9>2 z&2OojCe`BgerjrP6$djoXFkHUl|DtfR-xV)t=P}@U+P+peN|-aSrH|S_)eMTI(lr@ zc<_meQiA*YIHjPTyuDxROb4pDG9dqCh(mK{j{wvk@zgB*ht5;Bq~`QEKPUMImpoF-O|3+KH0CotB__W-?_HYN zX_S82DhY0B0b1ND#P`&2XInJ3K?o@nu-kx2P$lB6PcqIfy`utu>sC$bOp|a&T|d!9 z+#9(R2?y6VER=@k4l;q`TC58eoAMlSDNE!9i~M5h8t`?&g5Wsuz5J0 zSelI(6R=QtJ-Oe{KKCV6GjZk`+GbIcY;XzSh7+yRoAQmphz7Pq2KpZ` z?l$E4a4GqgZhtSCE&OoO@pIY&u$y<=Y{oW(L|gwLJM4!PTrxUTK~BX^cCnw{Y@AXX zTk{%=F<5ylQ|?kPJqc!aNqR~+SduuG7?O~QDYaCqFjMFP@M zVo|62f9_0Uws+W%qzBc$Z_ob)L+1ItKS8(wcgG9Bo)Lk|PM6Vm@@&PNIFI2D(V)qd zU~TM533HZXQ>VMcRe*!Pb@fNRdh6dXu*_JwExzWbYMc&t-fGl$cgaxB!@O?{8p;;0 z`0$*dsX8DnrT1e7}!Ju^zK}&Vv_e)B` z&om$0Hraa#Tkb+=Hm|2r^MA^lYbiWcHeDexvk((s@IZA0<_+Xm2(ZoJcT*>tuGFd; zK3^+`qd6c4s#Ztv5=zfP9(5fI_C>mI%gg&$N52MJ8b^F}D9L$UM>RWW?jPh_o?+0c z9MlQvFz?2%zP++cF9iW90$`XJOyt|IQ9rRtPABgg<5!qbi#f`wZ)FXX8#PtdDVa^A zGE2gU-Pr$bj)|!|m`K}d`htZZGaEk;hNe@2>GALD9HFyX3GTx8&F7mug-SJr*E*O+ zNp#_EmYV$wjJ(Aq9b=SqYFgUMt)4AhFPiTTS?i%NWfVY7GJ(`_#c^(+DAQy#*MB+7 zAbd7|V&u61XM{u9DIl4Rn*AfY(7d@8Y?gMKPk z7IHF;UhU{$yXWL;gi!aKDAZ1uYwGog*lu5@Ct(JlhM<0x7oiGr362p1dzsb|bl>x*DO(<-6Z)o1tj1jOi) zva;KM+kHXc@BSjOEClOt0kVRhi$cD9+fOoMOJUSmPAZxmHjyVn&Hf4|bHqlJkxa4b zr2K%Seh&N|JiZ~tyoC@tOt-ich!k@$gu5wazKBk9%t-e))DyM^56D(&oARwZHj~IJ zTUi~}_Pj%Un_39k_xUkks}IZ7VI5UO4#yZ%JvE{k6J!jwSYm-;IcHPVfV{!!9DxYQ zS_|QTvB|yq=NuUv{5t z7ZDI#?K$%}$j#5!e+@F4;)JrK-~AWk5B>uQdV|nhe@aE+;!E9D*x5l?5NrYE!Q%q( z_`e&i(a@1s8>P^^wf6O@T8#$`;Khd^@K(|ymTxHO`%QeMc(9R$te6Vv&$3$omiIL% z3ee5leJRySDj5t%J#f>_H2zy_L|yXr6r8@mTup3O- z^z|%U3tBbNkQ1P0bDX9WES-iO==EQCD#KRs&c7{Li$oa-W@?qv?wBSBYX*A;08jzayOwOd>5 zEjInn@%Gt^d9;$LC04NIK8j~}XPet@*}@kP#?IypCT=H;sY^vvXZhTj{>TJwwXHh( z$MYrBd+_T-wPyOMwH{ac$A25Qz(di0rxt1lt(QHRCkX8b49H17A0;<+xvc=R_`4Fcln$R7(cm}5s?>rX4Nml%(4ai<*Z*_*ns9g|} zQYve@ExFL|yH?x%jI^VS>KDN&j^w;JJFEaj^@<^v)maO<#|RsVN~IzTlGF|o6>XU;IwO2LT6vuK&@rbK7HBEwi{BU< z&nAI+sSSCM zo9hAXKljU!C4S{hNqow=ASn&bf2mw82;$rXh|EIgL>su0;q>Nk)9Q=XK-r`*jd2Kf zxPqT4d*J~CZ2_^Z5ZflqJH(%-rQjN~q3r>$ed}iuuC>RUO4;$>@fQHHK(_bB z_c1-{vN0K))*KoZEVZy^Y%bP*HE@$<9bXnouUo!uwgZ0O98BoZAnI1tA=UNrK&BR( z@*tjYXNc#L1K*9zT{a>Nv$;VY)hWK>&F#XIi2o=BujE zJe+f0MBrD_ITi7?0yu194`q-gD2N3GVo$XZqc!)}1b#_p6vc`7GbW}7d*-=m7~~Kg zZs)kt#fo4hd2*XCc7^%AfVu$9PiCkK4@F8maBHKJ9CgPO~%Tel4v zfeO>B?Rp@bXk4SpWc+Wb`HtFT!_2!Exn1Ln3H|l{Wa+h9H^bz8!h%$8r_7$jVgc{^ z7%|$vSX!_E`!ETPiL7Q+p4wqkp`U;ZB|^|?cd*T+(OvklHfXiju+HGLaG?L(H>;#t2un@P*+ro5hyHvRO8~lRW9R zunM;;QI=!ch&PwD6*rmzNAn>;)?is7vq1!GPeJa@t)In9|J}<_Q&1L+rmhIRC&}?a zmpvcC3a66cf76DZ2~0wdoEWll!tl+G89`l<7oYv!++f>pm}DTfVQBZXO(#d4S$Ns9 z;$k}bO9R9l_%8@1YzHz`SIj0;V!wN7f)mhxnLt=PyvDkD?S_p_5_ro`pS*+WXp}Oy zyT#6AMz3^oWB?-icnHN4`9h7542@VPQ(SGl_^=J&0G%|mbnsx9rsce*->+K1QKZ{? zxzOtiE&^}zN%14ugIPEvpT;A(yMW_6!T8A8^ zwsjW?03!p!?IlB7h+V28(nBnCJzK@#(o#`lHRKNzho9K7h7^PAAT;4{Pi+HiBijHW zI*RQW1{euZ;%piKUvjZ!?qCGxGA>;Zg*fVKu&?3EoyH<|C=94vssbK`uoHrc$TkcT z@LecX@}%@=6{US*!=*>V2jtm)L8((aXH&d^LX(~XNq-`Fg|mRzBY>h^|6^9epJ^S^ zxGRie*~Lia+=tZj`_mOPHzbg`YA@QLt{c58(@8%{bbZrU7*L-R&h(KX?;GX^A(x;q zrgT6U6>khQQiW@uVSvFQ5(6#UTeeHn*OYQYsn9lxx1EeZ?9?uHwzksX|JIXTK;ygh z2jd?fiNR0kZyjTMMJzqy!fRa%|NJGF&l4aN7~WpE+{)D63>-6mXlksmPQ9|vq^bimYc~{r_sj)08*b=RfU)4XlhWFV6svjStiCm68NEybgLTMq-_nF>DFQnrlByq7FqE`~=Z@A3V zQ#$kqBerb18;HKalN5rES^Pz{qXC@N7QM9T#pmDf4T?pH5=F^SO5%>YD6-tz|)GM3yR0Eow}nGvm^8@G?htpX#iw*L_pYL1s&FCH6`xT z^nX1-tq>M@vhX-Fy21oHVuwe>kybuN*8*V+dZ=?W5khdqKWNx_-tl^erT9`h00BD8 z+F}WnJrs03-HqDyGj@o4TN9@Ae;%NWa2)?F+}C-rLlzfLMH zP`?@D)yup1@se_P3Bn)ClfQZRphHjuHCsXfJoDjNLsq3+1F6%G)A1S$hb6O~SOa?2 z$R-g}c?2c$;}_#Iewd>=YkozyJwlQ{tn3f>Aj5(fVCo4{eY$1&$$+LxD>j%%qFq1k z8+Hj+!WH&gSuH4zxd@u#geAp`8RQ}dsj%#q(?^C4mVaVXcl!m1et(h;((Rq)WVH>6`{Dz=z6lq!j%>GcKh4O`G>LH4-?aR<@a5|4wuEeNA zr67F_zDl-yI4a#XF}GHvDJmrxygH1lWt#$$Ykm`9M>FQJUlbB5@~sD%-%;>e>{epu zpsZeptYl63)wdFJP2&;eyao3MKHKfZ_Z^vF{K7W7zSxG3E@>ykOTvc?KnNp*(QBcp z;?(gRxxX#=)}IT^9XYEl?45ReZ_#a0A10u?yRFy^=a~Tkl_gNYk81X7R4`AAi5%22 zl`E>Rmwfe)$O#Q{hm8PbhGQf7gcb383X^Av()@CAi-gBfrRAo0dK&aq7Bw29J@nJ2)L=B!dG5^ z>Xfm~Bc<`U91ephz7zsxsXY18H*5gglSKvVKM}CN5QY zuQc}utH&Pby@6oGWd zw|m`;AU&q(WJ6sE#jKPrt5lXxk zm;w`>CdzWTD)i#r#*N`;3UERYk6x&~xO?MSTpyAPf%5NUHAd?6^(+70-~A`81?!rR z7Is_zaQWG@8xDcubw6R0i;&I6VGu>RL&kaL&VGk0pfb8J-PDs48oJV#lA4;rINvd! zD&n8Y0x&hnTX)zh8CGN+7Bxa6lHg3M%KHsWJTVsvD`QJ1=Iw=ug z>e!P4U2G5g{tbXbGN4w6i`cHu-ac8bFfbwD8GC(>w5H7L<2+ShUkQZ?nF^2zjlwY& z!0JO9RN91t8k!pmN4v=}EXO0Zq!Y>M1+XE`p{0}WHF;a$1pi{OV8kWYgqqaQHVxAy z5O8O5%ZN6(b!&WQnN_BXTMw|2miwc^^Io^%&qPZAk^xpyfvy zkdY4R2>*h~mrqy?colU8kZ`hw&9~E#cSCQZR0F*OzdQlUvq(?cbFM<;b!pZqY^|Zc~M4YC+l+hfx^tKk}ufO$grKB zwv;sG2CoIFKGZA~jG0_X2lW*+ek_F(;h||x)>lk)B$?u&FmQuVlQbj~5nTeW_m@3N zfqH3QZ-9_l4A28i-SHzrE)s%M6QjMMp^b%je_=>nWdK-=yqCDQv=D-)(8h&7nT<-k zSzOu-u-F@klL;n&p3}UF21=d}AYPF4rypvh#>#>MEXg z!Se8aDR-`Cz#x2s%Df*Z^!v5uPNMn549D z?-?@|u{t`?lgjH=~?g>Ts zzo%u>AQ}>)@7wOejoGZp)5?)`B=TYHj;N%IKU~ljYSc(BCfX}-1$w!GSN}7nAwS(W z1lWI;X-4q5YA|9!catl94KAtW%IyLU!IQVj^?C&a`Awz|gB1byMA|jzndz5~0b=|w z6rcL>*d*LwoK2)e6Ln1_$R*w@6M5SbPoF=}3NK(U8eq=61A4X7#t;tjU4vH!Q|wd&%`ks;YnDP8k8$yq4(>tUkZD&`%iIWL=|M0-w>1? zY`NuuF0OcdUL^^VmDN>8hr2D64R8Ze<-?n97Rqqpc(cngVNoQj6`($rW19rQfOzn@cm zpQzAuH1^bvJM{bS7Dealoy%EX5SVLPWH8V|O3&JT=LI6P8^5N~@R&DtHnbA}uV zD&3_R%P(u-I04Du?laSjm~i9PnEZLZz>LbkRq8M2PA#m?Jr+WL)Yj5TeC>;K6K&U}E#dS7?<RISTk zb~-U5EM(+;lThy54Ux+27~yBCH`pMRL@EHr_N{ulq|nU0^Q1ZnolasvsxB zob^!cOpO*u73IdS5Ie(;kPmEUSVYM|zAX}Fi1$Pe%tw_rsDzXN6I@`X@XL$3(0I36 z1;qBx?C?vU6Ceu~xSCo;hIZxsy|Q<%eh)&8xZr_yrn76dK3x9qY%%#n^L@B=a;}vh zN}FVR`zdFbSw z>p6_>L43j6gNQM9aJW5c)9HR+quFj(#ja{)cm@6QA12$C1K66;(vJ8FN+kGek_g^= z2$l^-2aIej0FU*I@U=gehXr9mb96uRq6Vzntoz4kPFm4VqWWEW7&sP*XvS=LH93yr z;=rrw%G=xjXi$rI(D%B|OTe|W6^E?Za$6aBD<0RW>N-r!Qz98gu}(fRm>*nUk>OzL zpSpC3@y0aTXx?AirwK}eIZ;h7Wge{Q8p;?NYNd}o#}{<5h#KPphnt|5m;3+K#x(wh z8|I6nXv9~a+3GIwHBA!BHP5D|wX8+{Dzr^QqK`DO{I$%9!s;5*Cy2-i*OyMVC_MYE z7`sgX>_#ufpm9>-k7mgOdZjw$1+euWCJx9=NuB~9cq#l>L;D6@ z8k)_2-loHNkIBS^+x^606=IA`i&txVqYAS2#W!z&xE@kr(sAWF+{1%JEVFR+H1|j$ z;@IdYI?xxJw1-tFOT^nCm&rvedh$tF3U?MV>*sU)51JX>o`tae3|tK0DFskE^L zN*oMMmF7J&J|ACo28MX9|BxtQS>e&Gk~jTe8R_Jn?k_%L)q0JZ#;46*q=9!7#hyces>{n}IgV|1>}=me%^I$7X5v5;amf>YTNx3Si!Jm5 z@9C%*Tl(FXRXA_rOCKLc&8Oop^NDi2w@K=j^|bLfwIb&k*4Y_3FxyL&%wnk2wVsS> z1%=+4rPci3**ntPIKYm70kM2;Rin3wt>vz{={<(+XD@Q_Gp}sJ7DTA~B0z{7hVa6z z1?m)I(mN`tR|2NV**);GRFmufN|{yf4h&A+pgMCt^ZnhRCQl&h^c(m3obcGb0?WVU zTb!W$YNqaQyXA4lxbYM`=3S{Ng?*Qs7__JqwL^Uu0OK>6iYlYkw+RhN*CyXxFVm~Z zG+LSw$9#WYbm3fjXg#VtF6}yQ>wnYe^ei-vXk(YZ*kd1fe`rou`w38(#@)%Za|Q6z zRA+`W7_P{wQB!X;Y?qm{B(i?H?=r_~8@14acet779ZTBw>RbNdMC_EBB*cT)lwSE6 z)r5Rx{xOgICY4}jgSyZZ>-%B)J?HoL^fHJmYZ6LO>@loT@(9-WG%v<6vOu}UkS6wx z{Na_X*_XCidfs(`95Pw^kc?h2IkCG%|vftJz(nDxbqRQo54d`Ec{cw-HkK{e2j*LqDJF0Z>%e>@=wE_;qSpJ!=-do8e2=U6MeOdVpXZeYV zy&p25Ch3c{T0rkdBFV(&a}Lq)g4GYw_xEePiaXtiw|Na8(kxCz30oP6ouN!X>;8T}rc3m~k^3Nk0T}r}U?P z!dTh$%kH1hwP=SQ*Ww6oet6=9%@`aYRFU?Dw!`{RqLuTN(*+SODl znNV(Y*R|%0?4*aXH7ff2m%r0FkP&vcmyjI^h#&_U^%ihFQY{G7R9Y2QoO~=VFF%~h z!V_YFk|G4HGHhqXzSErl{N0Vk_dR7S(91pI-fl3?iwbrf^EZkAz^eidqe2AeYk_0& zJH;o2#8suC#J?LEZ6~+`Gzch24b8<^cB$o?VSaA6hD#wXo&hN-=ioUG{8AUQI^aW; zd5?g|uY*)(R{0dnvzkE#gtT?IyvXlc@!blX!f2S2HZ$89F%^)4l8@lxf22gKoL%>| ze@8pal_Jk|T$)Dm_)8MqM@TX+L86C$4;WOD*u}>7wD-9p{;iIa)*=`CG{F! zey(y!t&)Eubl^FXs|7QgNuoRQTWdN%f!L zrx-M59m#6>OwM9Fr{+fO&=#TQd-=G^1XUiD&ffZ}ZYzfCwQ`Mxnx^o3SEYVQF5Lz> zpAD+uSQq+qlqAIa5SDkA54~erN$5Xp#>Mq8dXf6Qj~NT86{R+PYPMls9m1FAc-Eua z;IRC!n+yVq?*e|HDWkj!aAN{sB(GW1DrE8udA4;ot=$&ulOffF?SBtQHN+Q;I{Rl{ w&iTKeAjHDJ&jjuz(OW|HiT@qwYv4z}H;y+w7NNyW0OTbnr7ZbV+$8Y-0EBxe8UO$Q literal 0 HcmV?d00001 diff --git a/files/machine-learning/machine-learning-by-standford-university.ipynb b/files/machine-learning/machine-learning-by-standford-university.ipynb index 3524402..fd8d24d 100644 --- a/files/machine-learning/machine-learning-by-standford-university.ipynb +++ b/files/machine-learning/machine-learning-by-standford-university.ipynb @@ -138,17 +138,123 @@ "#### Gradient Descent for Linear Regression\n", "\n", "- Linear regression => convex function => bowl-shaped cost function => no local optimum (only one left)\n", - "- *Batch* gradient descennt: each step of gradient descent uses all the training examples" + "- *Batch* gradient descennt: each step of gradient descent uses all the training examples\n", + "\n", + "### Linear Algebra Review\n", + "\n", + "#### Matrices and Vector\n", + "\n", + "- Matrix: rectangular array of numbers\n", + "- Dimension of matrix: number of rows * number of columns\n", + "- $A_ij$ refers to the element in the $i_{th}$ row and $j_{th}$ column of matrix A.\n", + "- A vector with 'n' rows is referred to as an 'n'-dimensional vector. Only one column.\n", + "- $v_i$ refers to the element in the $i_{th}$ row of the vector.\n", + "- In general, all our vectors and matrices will be 1-indexed. Note that for some programming languages, the arrays are 0-indexed.\n", + "- Matrices are usually denoted by uppercase names while vectors are lowercase.\n", + "- \"Scalar\" means that an object is a single value, not a vector or matrix.\n", + "- $ℝ$ refers to the set of scalar real numbers.\n", + "- $ℝ^𝕟$ refers to the set of n-dimensional vectors of real numbers.\n", + "\n", + "#### Addition and Scalar Multiplication\n", + "\n", + "- Addition and substraction on matrix can be done by taking each $A_ij$ and $B_ij$ and add together, but $A$ and $B$ must be same diemnsion.\n", + "- Scalar multiplication and division can be done by taking the number and multiply each element on $A$ one at a time.\n", + "\n", + "#### Multi-vector Multiplication\n", + "\n", + "We map the column of the vector onto each row of the matrix, multiplying each element and summing the result.\n", + "\n", + "$$\\begin{bmatrix} a & b \\newline c & d \\newline e & f \\end{bmatrix} *\\begin{bmatrix} x \\newline y \\newline \\end{bmatrix} =\\begin{bmatrix} a*x + b*y \\newline c*x + d*y \\newline e*x + f*y\\end{bmatrix}$$\n", + "\n", + "The result is a vector. The number of columns of the matrix must equal the number of rows of the vector. An m x n matrix multiplied by an n x 1 vector results in an m x 1 vector.\n", + "\n", + "#### Matrix-matrix multiplication\n", + "\n", + "We multiply two matrices by breaking it into several vector multiplications and concatenating the result.\n", + "\n", + "$$\\begin{bmatrix} a & b \\newline c & d \\newline e & f \\end{bmatrix} *\\begin{bmatrix} w & x \\newline y & z \\newline \\end{bmatrix} =\\begin{bmatrix} a*w + b*y & a*x + b*z \\newline c*w + d*y & c*x + d*z \\newline e*w + f*y & e*x + f*z\\end{bmatrix}$$\n", + "\n", + "An m x n matrix multiplied by an n x o matrix results in an m x o matrix. In the above example, a 3 x 2 matrix times a 2 x 2 matrix resulted in a 3 x 2 matrix.\n", + "\n", + "To multiply two matrices, the number of columns of the first matrix must equal the number of rows of the second matrix.\n", + "\n", + "#### Matrix Multiplication Properties\n", + "\n", + "- Matrices are not commutative: $A∗B \\neq B∗A$\n", + "- Matrices are associative: $(A∗B)∗C = A∗(B∗C)$\n", + "\n", + "The **identity matrix**, when multiplied by any matrix of the same dimensions, results in the original matrix. It's just like multiplying numbers by 1. The identity matrix simply has 1's on the diagonal (upper left to lower right diagonal) and 0's elsewhere.\n", + "\n", + "$$\\begin{bmatrix} 1 & 0 & 0 \\newline 0 & 1 & 0 \\newline 0 & 0 & 1 \\newline \\end{bmatrix}$$\n", + "\n", + "When multiplying the identity matrix after some matrix (A∗I), the square identity matrix's dimension should match the other matrix's columns. When multiplying the identity matrix before some other matrix (I∗A), the square identity matrix's dimension should match the other matrix's rows.\n", + "\n", + "#### Inverse and Transpose\n", + "\n", + "The **inverse** of a matrix A is denoted $A^{-1}$. Multiplying by the inverse results in the identity matrix.\n", + "\n", + "A non square matrix does not have an inverse matrix. We can compute inverses of matrices in octave with the $pinv(A)$ function and in Matlab with the $inv(A)$ function. Matrices that don't have an inverse are *singular* or *degenerate*.\n", + "\n", + "The **transposition** of a matrix is like rotating the matrix 90° in clockwise direction and then reversing it. We can compute transposition of matrices in matlab with the transpose(A) function or A':\n", + "\n", + "$$A = \\begin{bmatrix} a & b \\newline c & d \\newline e & f \\end{bmatrix}; A^T = \\begin{bmatrix} a & c & e \\newline b & d & f \\newline \\end{bmatrix}$$\n", + "\n", + "In other words:\n", + "\n", + "$$A_{ij} = A^T_{ji}$$\n", + "\n", + "## Week 2\n", + "\n", + "### Multivariate Linear Regression\n", + "\n", + "#### Multiple Features\n", + "\n", + "Linear regression with multiple variables is also known as \"multivariate linear regression\".\n", + "\n", + "We now introduce notation for equations where we can have any number of input variables.\n", + "\n", + "$$\\begin{align*}x_j^{(i)} &= \\text{value of feature } j \\text{ in the }i^{th}\\text{ training example} \\newline x^{(i)}& = \\text{the input (features) of the }i^{th}\\text{ training example} \\newline m &= \\text{the number of training examples} \\newline n &= \\text{the number of features} \\end{align*}$$\n", + "\n", + "The multivariable form of the hypothesis function accommodating these multiple features is as follows:\n", + "\n", + "$$h_\\theta (x) = \\theta_0 + \\theta_1 x_1 + \\theta_2 x_2 + \\theta_3 x_3 + \\cdots + \\theta_n x_n$$\n", + "\n", + "In order to develop intuition about this function, we can think about $θ_0$ as the basic price of a house, $θ_1$ as the price per square meter, $θ_2$ as the price per floor, etc. $x_1$ will be the number of square meters in the house, $x_2$ the number of floors, etc.\n", + "\n", + "Using the definition of matrix multiplication, our multivariable hypothesis function can be concisely represented as:\n", + "\n", + "$$\\begin{align*}h_\\theta(x) =\\begin{bmatrix}\\theta_0 \\hspace{2em} \\theta_1 \\hspace{2em} ... \\hspace{2em} \\theta_n\\end{bmatrix}\\begin{bmatrix}x_0 \\newline x_1 \\newline \\vdots \\newline x_n\\end{bmatrix}= \\theta^T x\\end{align*}$$\n", + "\n", + "This is a vectorization of our hypothesis function for one training example; see the lessons on vectorization to learn more.\n", + "\n", + "Remark: Note that for convenience reasons in this course we assume $x(i)0=1 for (i∈1,…,m)$. This allows us to do matrix operations with theta and $x$. Hence making the two vectors '$θ$' and $x^(i)$ match each other element-wise (that is, have the same number of elements: $n+1$).]\n", + "\n", + "#### Gradient Descent for Multiple Variables\n", + "\n", + "The gradient descent equation itself is generally the same form; we just have to repeat it for our 'n' features:\n", + "\n", + "$$\\begin{align*} & \\text{repeat until convergence:} \\; \\lbrace \\newline \\; & \\theta_0 := \\theta_0 - \\alpha \\frac{1}{m} \\sum\\limits_{i=1}^{m} (h_\\theta(x^{(i)}) - y^{(i)}) \\cdot x_0^{(i)}\\newline \\; & \\theta_1 := \\theta_1 - \\alpha \\frac{1}{m} \\sum\\limits_{i=1}^{m} (h_\\theta(x^{(i)}) - y^{(i)}) \\cdot x_1^{(i)} \\newline \\; & \\theta_2 := \\theta_2 - \\alpha \\frac{1}{m} \\sum\\limits_{i=1}^{m} (h_\\theta(x^{(i)}) - y^{(i)}) \\cdot x_2^{(i)} \\newline & \\cdots \\newline \\rbrace \\end{align*}$$\n", + "\n", + "In other words:\n", + "\n", + "$$\\begin{align*}& \\text{repeat until convergence:} \\; \\lbrace \\newline \\; & \\theta_j := \\theta_j - \\alpha \\frac{1}{m} \\sum\\limits_{i=1}^{m} (h_\\theta(x^{(i)}) - y^{(i)}) \\cdot x_j^{(i)} \\; & \\text{for j := 0...n}\\newline \\rbrace\\end{align*}$$\n", + "\n", + "The following image compares gradient descent with one variable to gradient descent with multiple variables:\n", + "\n", + "![Gradien Descent for Multiple Variables](images/5.png)\n", + "\n", + "#### Gradient Descent in Practice I - Feature Scaling\n", + "\n", + "#### Gradient Descent in Practice II - Learning Rate\n", + "\n", + "#### Features and Polynomial Regression\n", + "\n", + "### Computing Parameters Analytically\n", + "\n", + "#### Normal Equation\n", + "\n", + "#### Normal Equation Noninvertibility" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -167,7 +273,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.3" + "version": "3.6.4" } }, "nbformat": 4,