From a5f9e3dab227a8d43094ca70e2252c530137ea34 Mon Sep 17 00:00:00 2001 From: Joachim Danmayr Date: Mon, 2 Dec 2024 17:50:40 +0000 Subject: [PATCH] chore: Described edge detection and median subtract --- docs/commands/command_edge_detection.md | 29 +++++++++ docs/commands/command_image_math.md | 18 ++++++ docs/commands/command_median_subtract.md | 33 +++++++++++ .../commands/images/edge_detection.drawio.svg | 56 ++++++++++++++++++ .../images/edge_detection_screenshot.png | Bin 0 -> 10283 bytes docs/commands/images/image_math_screenhot.png | Bin 0 -> 21398 bytes .../images/median_subtract_screenshot.png | Bin 0 -> 11602 bytes docs/commands/index.md | 3 +- 8 files changed, 138 insertions(+), 1 deletion(-) create mode 100644 docs/commands/command_edge_detection.md create mode 100644 docs/commands/command_image_math.md create mode 100644 docs/commands/command_median_subtract.md create mode 100644 docs/commands/images/edge_detection.drawio.svg create mode 100644 docs/commands/images/edge_detection_screenshot.png create mode 100644 docs/commands/images/image_math_screenhot.png create mode 100644 docs/commands/images/median_subtract_screenshot.png diff --git a/docs/commands/command_edge_detection.md b/docs/commands/command_edge_detection.md new file mode 100644 index 0000000..dd377a3 --- /dev/null +++ b/docs/commands/command_edge_detection.md @@ -0,0 +1,29 @@ + +(command-edge-detection)= +# Edge detection + +:::{sidebar} Edge detection + +Edge detection is the process of finding edges in an image and converting them to a gradient representation. +Sharper changes in the intensity values lead to a higher gradient. + +```{figure} images/edge_detection.drawio.svg +:class: full-image +``` + +::: + +```{figure} images/edge_detection_screenshot.png +:class: tiny-image +``` + +Edge detection is a function used to highlight the edges within an image. +An edge is defined as a change in grey level. +Larger rates of change in the values lead to a larger output value in the algorithm. + +ImageC provides {guilabel}`Sobel` and {guilabel}`Canny` edge detection. + + +The main advantages of the Sobel operator are that it is simple and time efficient but produces rough edges. +On the other hand, the Canny technique produces smoother edges due to the implementation of non-maxima suppression and thresholding. +The disadvantage of the Canny algorithm is that it is more complex and less time efficient than Sobel. diff --git a/docs/commands/command_image_math.md b/docs/commands/command_image_math.md new file mode 100644 index 0000000..3aee9c7 --- /dev/null +++ b/docs/commands/command_image_math.md @@ -0,0 +1,18 @@ + +(command-image-math)= +# Image math + +:::{sidebar} Edge detection + +Edge detection is the process of finding edges in an image and converting them to a gradient representation. +Sharper changes in the intensity values lead to a higher gradient. + +```{figure} images/edge_detection.drawio.svg +:class: full-image +``` + +::: + +```{figure} images/image_math_screenshot.png +:class: tiny-image +``` diff --git a/docs/commands/command_median_subtract.md b/docs/commands/command_median_subtract.md new file mode 100644 index 0000000..4868406 --- /dev/null +++ b/docs/commands/command_median_subtract.md @@ -0,0 +1,33 @@ + +(command-median-subtract)= +# Median subtract + +:::{sidebar} Rank filter + +Rank-order filters belong to the class of non-linear filters in digital image processing. +These are filters that cannot be described by a convolution. + +With ranking filters, the gray values of the pixels in a defined area around a pixel are collected, sorted by size and ranked. +A gray value is then selected from this sorted list to replace the gray value of the current pixel. + +The choice of position determines the type of ranking filter. With ascending sorting, you get the: + +- Minimum filter, for the minimum gray value, first position in the list +- Median filter, for the gray value in the middle of the list +- Maximum filter, for the maximum gray value, last position in the list. + +::: + +```{figure} images/median_subtract_screenshot.png +:class: tiny-image +``` + +Median subtraction is a sort of noise filtering which can be used to reduce background noise similar to the [rolling ball]() algorithm. +Behind the scenes a rank filter is used to calculate the median of the image intensity, which is subtracted afterwards from the original image. + +The kernel size defines the window size used for the rank filter to calculate the median. +Bigger kernels reduces more details from the image than smaller ones. + +:::{hint} +Bigger filter kernels removes more noise and details from the image. +::: \ No newline at end of file diff --git a/docs/commands/images/edge_detection.drawio.svg b/docs/commands/images/edge_detection.drawio.svg new file mode 100644 index 0000000..bcf0905 --- /dev/null +++ b/docs/commands/images/edge_detection.drawio.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + +
+
+
+ Resulting gradient +
+
+
+
+ + Resulting gradient + +
+
+ + + + +
+
+
+ Image gray gradient +
+
+
+
+ + Image gray gradient + +
+
+
+ + + + + Text is not SVG - cannot display + + + +
\ No newline at end of file diff --git a/docs/commands/images/edge_detection_screenshot.png b/docs/commands/images/edge_detection_screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..7b54e13e1bc4902ecefe7894de6b4698e00acd58 GIT binary patch literal 10283 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 literal 0 HcmV?d00001 diff --git a/docs/commands/images/image_math_screenhot.png b/docs/commands/images/image_math_screenhot.png new file mode 100644 index 0000000000000000000000000000000000000000..15dfa7bd6e7b205ea71587d969ff46494a61dcee GIT binary patch literal 21398 zcmb5WbwJhcmoAEcgmg$rH_|1|7U@puke2T5kdlyY5G9lj>F#c&yL%JTbzZ)|nKNhZ z%)N6i|FGlzyt&>L&wADlS5lBfdqMO91_lOAT1rd>1_l-h2IiR+5(4<-m$Spu7w}H+ zq}7nXpEr_87x`X6R@NV{U6_W6JDg>}YCg>-5pi84A}b3>q;%H4=3+ zHFUPHvn5xvurY;^2QSz-$i+;J$vN0KxX9Vw@N@C;v-6NE$&-tUtD(g6MZv(3!$^yX zsJUkxEV_BCy?=N-nU zFLmo`z)>|gL2y&n3)dFeDN zbg7St^DW@pK*(l!U7vrrcj)XoRZWAiB?Hl5E||{> z3k$1LlSe4TqeDxe*HmCHFYFij)77S%rzTHSI7I3w}Nt&(5%m=43-dk!>EW#{FYq_-UM#DW}cuSy&~Q~ zZP}e&$(}%<(z)6@4NI_izIfpCCUl@IL95bz5|q_9jQ3MiRBqa#)kWeLec#pFb{GRT^_ZkwJ}={TSgc zU_`+6zc{vr;+GdFD3@JbT?@~xJGm8ea*Ne6(_yNqk+-zxcxQipI*o-R z`??-YB0#F_NDi9wUftfhE!5b|i@rtFy|uK{y*(PhNBQkxnxnyNqede1BaJv%=yJhH z1D%j#L(%+L7#wnL!1L$Nt5Hx<1?#-8Pn+wusD3+-25bLujaW6ILTvFT8(TE1@`#9ZsM@}2?Giuu8d%rpY+L&5cqOY!`%0|fGzp9*`zYco*kSYGH0~UYGJPtd9r>`Z zK98hK7MsHQZmkS5%Q_ z@-2OBze&gFD29Q-GQzS*Hmd_J9^O%Ocz8XURF4a19%ZxvtX3A=TeR;;F7hhHp6Bnb zeK0y;;o#<{82Q1vbS3*eJUqZNQ}vwi(<4>o_Ahud6zEu6t|;LUP(SR9<2{>+d$o#KSygp%cJ|$TG;6_ekU2QGjx=}A zng9Bz5vtkX%s@y;2oDdB`SNA=OocJwo1t?#?oPH8h@UVDJ_|J?<7f2}ZFY+ZY6Ns* zcXcE9zTx4`!lF{x4>RS43trIXmxKB8=@RPdc*@Gka%o&Y=aTce&}e9A(Dcn698N3_ zQ>;`~v0M4%`teQsTa@BgZE1SebK~C;(p5+m8d~6Sn#HAx6bYVevYcyNY#Dx0ssuyy6abb3QaoBX+ zfx@KM@M~_QA;*|$8wwp=bX(Rl)=?BZfrlaUy`nhV8aD0>L6gBu`FY%AxWCXa2~ zbkf5wIl70{YjN1QFN0}WDApek_Nv-;vB8L!>?>F}Om0DeMzN}|Wt&;m`zCc^#+$YP zINnSJewRHlcX#(Fn}g-nY@o6xCMHte*vughzOG#_B~TOx8x8Y%4m)w11-!{GLzIOreeRq|uvn#)l=M$`L2-=m9760Y!GTta$r0 zhm5Hf9XC;23nO$gVbr#-B0&TkCP*tpg{;fhJv}|@85}c}rYM;LZd*I!-|2p1y?XU| z)|!@v=F{=``i(K!9#M2-b;7Iz=i(pz94TLV>Gi!_a`U*chJZx-is4-!nqHZ+om#(kJ zK(>GqFRO_D@&%Kn@qpv$ikc0jh`f6T3j}s!!$jZvM7*P;V}Xe3EszwgMptGG;VW`> zc6N9Kge+&_KrX$dr6sz|dcR8euPgG_Kq8XWpF-vi{j3PIzpxUE~kJ zAk#PIu;+L99f}PfOG_&(oMkbYU*UdYl*DQfJ-M3;On4XAi(*cPHLYmbIv6nte-!Po_xtC}p({2HPJe%Yj${m} z`9dj|Fql`0Ts}f0e&DQij}hOwo`#J>hQharF^804GoWu;h;aOKL_;~;k5`D2Gi`~_ z9V(?!HZS?<{dnWaN<)RXt;xgdK^DLKLj+Qjoq;g!HxZWS!wBhLWp0RQN_ysei1JbeKh~Ro6a!h z8vE+%Dm5LQ)A5Q3u!6hGt&n&+Md9`O=adDVCLCA<1nv?sGH=p{!Ldx;?%{VkY&l1W zh>49voJ!(m@5NSi8&R;amA9MiXWKdK;0A?-aao#GrGEWN4vbIv{Gp42E?4^S)y>V? z{{H+|$$^OPz6s>OAJ8)9NIgC~>+J0feKJ&^KRfVe(k(a-TEAIeUk~awa+v3Si1=iN_dMN(@kpym{kv_aN zLJL0cLR&~8Z@N8de9~>mIJETAU{DJq@S$7^TL6n*!DS7$lU%!6!Z@t@O zb>5$f!eiFPBq5OpqF#S7XXUY->DD(e;HV+>G=`$BEGGD$!ed9O*Whe8nk9rv!k^I9 zB?jD$x`&&6X+^~+r%6q%E0#*~3hMVb7)i*vv(zlW+WZ$gFE8)tg*=$q-Ut4ED_Y(D zpy$Bx^oJp@D@Gj}81SqRMzdaS$plXt)y|)soEQSXtgE}*uxb_w6%~Hvc(t=wr#8CY zY5Nr1S=g~!I|JdH9V+b_Yma=WGT8j4mqbLKkaD~}X2$3KB=pZ@p3!|sNPJ`ZKM2gv+EWD^lMpL$H*7V0~pi z<1x?F+L2L7L;@`n3ydcR&<7IH#9Fb`!NI}Do5=`KrO?LRTxXg#l;aoe7(iv*h~i! zaHgW7qBdJ@j|6fQfTTJ=Y86zRd5QnL;%ZFuhBjZmW(gn`aJB9RinxRo?4Nmz&P7X% z;3*Q!vfrZ+0|Nsc(>{<4m>9?duU*rLM7Pwt>x|%mi-XxtS=Q#@ev`G;P%>A^A5U@z zS4)i~8iKkC6!v$p7_dmf#zp-KYv8BAKYw1~ysHv|_NpgK$O~pVBe*}FPGi9VYh_Bu zE)U4{eraPgg=k0}mD%*}TcWyig$P6p(v1kl(htimK4OxRoHlb@ z*x1;Xx;%7rp}>WSgF{5eBp~REqmh-8lKT4V7w+e7$22=dAfDUm5e4f1kS?nmnOOlWDm`H;cZJGy2hVg*lv zOPIoD2pb+AK9t7&8Mw_2ReWG8oF;ao$+_lm?tlmAakj(cUfEyFME z5*c)G;RU}c(>>{^HNyX_v9RHv=J%gfB;VmJIg?gpF2(wjj+EH=g%hm&U4q+$7(71_ z_K)8F|5m5}^AP{77XH6}EF&8^aGmbx(3d3J+>;*@i;v`XiD1D4NPYI_V%~yxk5@5lhF4M8ow<#li(~aA86neZNJkBj?nh+0(vr(vAIB zy$%r$pE=3ZfjUcA74}jotDiUBcyrXDUSDlGik0r~wTWAgyFK^I8dk@wvty)p1gfo7 zhE<7)aF1I?Zd~zIVfbW^&=dFo`Z{=c3r%t9?AO+T@8@5kBO zxYgWt*Rzi|{@m}*liKh9*0 zkWbki#J4iDIz}=#R;TUvjE;xRNT%*W2?=|}V%aQP2c zzo%#8bZU0j1j0z~`7K_$l$c7~DLo{@OJ~cO4$OOL-FDe~{v{Z~*;lYW52m=S#)!2) zbn%c@}iwJ)3&`k1a=lh;0?c=Tc6x!x|pbXIBdLQit5 zfbM7F(Cbmr_1(pvLV5^tE32c~rbf%Xv!Jz*1G-!Efr4%$Z-ap+nE{l!boGp$Vs}0? zb*xp0`J3?${~GdCQeD#3)?-J!-;QKxN{w@aJx3MK)-=iFT&Pr?E3JVrZ*-Oen1Nu% zPqL%7_ogJviV{SFSy^4rPbz-xbNTnP7SlF{gmJ11j^?)Oh1-!y_Ucnz-(u{#++`15 zcdR3K?9Lo-gdbGJw)VDyPd{o7&~QsGE6=`Mo*f-_@-u#f zGNz6n;FvYFY+ARP#`Z8?S}o~%AVck>XgxX^o%MZLSszRim<9U~$#U&SzmXiwp9t}6 zHMJRJ=_p#1ynMHC4n5n@G(Zrp30(Ho88(KqG+3_R@JT}RPDi`FsQhb&$ZFt(WO6u{M1SSOu>izQZ&X%e%zUElrQGS7Ezm+%OcMNpvg8SaxY0yhlnJmkQ*$Hva#t0j3jt5aw5KH>42Ox%Utc4)2bx5iql z@f>I}=5Zgk>(h=wHqVAS$sB)0r|3ct|E zrFh|vn>*V?+&9xtAZgicrD-GqMJvo|B_UbH8d^S4;5+mat|(Zz13lxLHm zS2ga~lXj7GZPqy+*^Tvf2O=#Gwi?~9?`@lsSCxfRnsgjDXCA2O4oh~LD6t1~8_T|x zWFwaye-n)Dt{?{~l%xPKpBC*8sP#_LP`^Jzm3`G*Xjo02E^;GLFdlR+6g&#lIbM@uI zCyUxBsvk`c@=n+JR~UCLjso7tdFuwYD;@HmHIp2S2)yuy)>l$)uja>+u5J-9WXtM0gKUvFz8Fyv-;7$Jhf#UCzqvQes$!Qac}f&%g1<{jg&&E3j=*pF zI8GVooQ@WTK+gZV(CBCP{3~;51_i+^y>KpUWic`+rDjtz@K!!m>JyRT=~oQll02p;9NTHTa3mZJk^+fHgjhs~%8-xm?JYNlr& zc*zaod{R^_$N20P+H^9&quCpsgY(v! z*uiV6lC~2@hL6o09r8Xc1CxkIW}@bB#$nC+tCOc|dQ{+>#a)tJxM;4eVZCsxLPNIi zJ?LhC1Rjl?qHzvxul{B}etF+w*b1?C=_k(ezT~NtY1c~V&l>hBl)u^MG9!*fdFUS8 zpJZ^ItDrgh$%TBTX3UQ>Oz3oOuikv;$0YEvH$3Q$sCY?~;elprx^bSrpOvRu zbZ(!1Hcqpn@JDZC*!#NMZsdcTc_o&nkGMGIX({$DMGZV~$0R*C*`wqiN2;A|Ceuce zA2RbS-tN3yaI!*vB$~^*l7`mPawS#$-Hc_;`r54#zdKb*6?Ak(2B+_rt&>0&rslMA zHea_HDhpjW%DbMZL1yievii`dxUP3rhFsG z_m|CVtYNM1d-ls!XCr=`@#)r)P#o23zhswh^7|KmQ?Cdfh19qwUw_yaP_1Wc5jx4d z1&r(>^0n39-yzBcly;E<3djN<2xgEG%PAj_9i=DnjL7Qu{l z8rW436da7q zAC>^n>u8XYK$6IojT3CBou!$vUe2zxKS{ z|0+Zjyk=ks2YC(-4h}(*h_K$^&`=y~>~{dy6eN*p{;?dv)$EHRPcH(%_YUhfPUGVE z9{jjiG4sDHo{%wsu6gn&X#ZS}Af8scv8ktxCkJREyZ4nnYUi;tJtgUMqnn+2vF0jp z<#T-*9d%WAYd6z|h~dE!GJY`p4bR8?-Z%R@;YKW;Pz1&qmvRCg^u;9)me5u5+fFR;U~g+HVWB1RC{XF>|2EOPrQ>a9YszMqFhE5Yup>n?sZ{}PR!dD zhDB8e;Fi&M&Xg+gHy1is7P=$#@Hx4;Pti|oTAIw|(PAox=?kz3!K;-Za|Ri#pT#x4 z0wD0*8cGf7T>Vjv&dSOPkYfpbzk3(AV0udKk1ELTe2VoNlbCgC%8h%`0Wj~rm1^#O zSUtTEPj2m~OHg=pNk6eY<%Wz!_e==y&NoiWzjdA&I)6@c$va#Up z?CfBM%s7EiRcIccobYv1j2zw>l=(8%nNjVN?W*XAZ3ZYeUsO(WHND=hpSvmPT>T36 zMAv=wlgreqJ+FewsOv+SIV9_G5v8g>(oPCx4NnaZ0(GQbI-=S0obvVSh^K5pu~tXMtW ze0G*6B4?-Zp&>}yGw;lVYf^&Hl#|0kGn}Z9goTBlV3P&!v*D(*5rHR6sF&3105^J# zgz52$aqfQ8iskXtQds}~affeau={^Kg80CT&x`QI>3Dcy@9p_U=u5ev|Y>juCB- zpJ_wUWfhFg9 zri1gU=b!LfSOo zs!kjll3ViFCIPxcUteGF?zr=10m0t;1KHFwA6UOTQH;`SWAm2Gs>roUQ^cjzoO?k@TxA46pnlU;5Tg|1x^yy6*3f%=a8A5bxu}_TEp|_KqIN4l4U?hU{_Tix(neU~C5$rxqWrvvi^-KKGS?Xb^v!pIaSzBXM#kYvUWEYJ%^{yl#Oi)o z>(;b^pXp+Qi}S%uEP#xX+k+6D2AOM*yYUUmowgMuVo3F5N%)5DHy|dZn(yAF@A?OI z7>m36`9(U!Pe@liAFmWw>b}rd9v34pb;!#zw3_{l7oz;ekUiqZM=ojQJsKva$lb|; zr#zeeq&&}i;(!d4J*N$|9uA$un&+#Bv?4jL zBq|4L*avRem6|TSvV8WKljt^Axf0`&c1#jFe`qS?xn_ijT!(caJ1AXvbzcT#d>+{Z z=734$$6$lY{tieP0CWt#&9eFwKyI97Ljz)s~O>P>-;BjRgO^%q9H>V zCQT;v*UOa@%*-WQmU8+0bFog{^$T|CzZpUrMo?1a@*`w(1_qzw>$X82PB4~yZ*BP9 zj-CKX#fJNUQHbH~%zi4tWLy%n9?iwvK4JX>PKzLMSKm0?^>qpU>=(TVDnA}*OTB;7 z=~=9hBC#PL||ZDnU~u}+V6JDJ^|1;nKfb4RRg*mKeCm#y9A$gzpG=0+dJ(sjtl`m=3! z`(doOl$#%i-Y18aPqVS1a(*ZCPKDZCoWZMfo6w{mb%Cgn{3EVnzn>!#&jRY{6+1i;%GYa@o(I z?2R}PW7X^sX#M1S>{YjPu99##p?paKjX#5#dRFkE{|;V$A?Emd~@0! z8Oq>`&-Qz$UwRawj8ax5N-Qi{ZaE!bEci8PCj-^VEzG~ToX^D$z9C}!00Vd!KQ26L zZ5OYOJ28YXV?oMfasqsr&)YBBMUtihQEGkZU}1Ux7CBG~2Y6%wz_pcC-A9z)$Ac9<)+rSvM|YjEiHP=g zm7cu5wTXm(xrQLw0&-+h+asCj3yVL*h~g%9sX;;po1FjKZjd__o`QuX zy4mZp5YBd-3QoxRB}o85mIZ8yu9G<8q#XK~J6J|W+Mmorj5 zwls#r?-q9II%aE)w=Bd;bi><`DST5_JsxW*y*;P_>rm&CmejCHM9ko+KPN#EsZO(_ z{vGzk6DL)a3n87^G72eOl)C< z{2{`z`frhU=QYj-AB>us(IUf0Q7cJJyF;jW=a|f|+iU)kVfJl_Bkr)5l2PEs*OnKeZ2t(xuvC^=m>z&7duJ9VkVkkMbv+--S z`MSeF9@C;{ml4UVU}O1ikx2x<&=Z>+=?=5rMwIh@X6r`Vj2js)6gPo1r2a`)wRhKH zYto*0Tw@`Y<(XviepTcv_r07A!zh%!P}XVsM)FO?=`@#|?-Km4=w2S0%#lt{td!Py-I|E`^&?bf>gDB!p^uDsGJL<*Al5Z{ z{cjm(tapjoC+gjIKHj(sT=|T{#vPLEY?T_K$L4osNkkh^Q&DPy1;pOA3tU_{2Fz$iTwI`xaZ&Z&ZyVU#@v#dPa4hpaJ8x{0f3n3%; z@9AF3buOe3GW&^!p!y`}C&8N18Hus4gF9qK`5*RSr}EwnzL}kgNFQH9#H!^jpkv6N zuk4$tPXH{WDnP$bKN<z4;&{yJ<7@ z&cI8)%);=Dz+YTpOzCtcRk4$WukuXd^H#Emgu>fjWHVS&D+d*NTv_T680^>%M1a|1Fv8)*bA>XlJnxnVIg zHt)$*8rHb-J-pL?k+&+u4mVpvtnC(&bN9={J+K?pOlEPZJ!4wc!}kgf>u`|=$1)vi7Xp{_&iFse1psxx2cBb}InxO!pc)}d~v z1z(Mzc8%S8SL$_YAu50L&VkUmN-4MC@mZ8g^exQUhpW^w``#wCmMwIB~ zt$K2Sm@j=>ZNAZFTZYBD1HSRBhV0D*+-(ElJi#o~G<3l!VXte$6>3*MF3)m1B7I3$ zFf4!R_hL2^Ps;jneV=U56??WFpS~xF@Lli2=E4Y6Q zG#SrN5Q|-$!g^8UE#;^+$9rcn$B8FqkDDr`#8;B{RoXHA3U%(C2?6t%*Qc(F|gpX4SkGh4fl*{&x6 zW3fRP(53b}yK^LyMl70B#NnCvxDSDwv^DbyuFB5eyuDAjuJi1H-(F9^Wz?L)#aN$4 zeqBE#WH`86Ovl5AnJMS{zPqm1!uCo>#A*7YR8M~^zRC;lFfvbMpTdQXWm|y|Ke6*` zY)Z7v1$p7B3HlcmD(8Q79V&uOKcgOm)|Q`3h3yx^q|QWiR;XKlQJkwFFCO;yXM?T8 zh*jP+bmr^LfPb#R6;?uxTjVx-!^dEfEOgVzWrGu*#L{&u8qQ2&XVrBgGZ3PBPVfo~ z=9NV>66Ns9o~mJ~@N*?=s(GHct(QgltC9BSnJ|8c^?aqtD3>-SI@<19t?1-!eKgb0 zlw@wEqV8?4q%F16OqJUN&6$636WP=Y&48 zB+uhOj+r`Tv%l^uK9N#B8JL9p*dr2Y_-a2^E)4E?&)jmOSVIC+_JquFT!(lkSNNRY zNzuvGZq?IN0@a3-17w;+2a+F(N`Hlq&~=c}SH|vI2??8g%r)ecTuUQgh3!LLL`M{J@0;_elZd7UP#U{9_nRks;va@VV#^|RR*gY@u(|}17p|%}GswxqC z{P3zbD>F&*EJ-9R<1$k2qIj{b#To^xMg==dtT-YL_>Lk1h`Z0*fBm)lfnku_ zkcO@+Z`vKn81SEXKPPgp6s4spxVUgXZ)OauiV-~rh^3hs?fCe(xvob1QLTlQrt=S! z@3$X6>Jznw?A7MvdONA_h>Qw zC8N4Kf28Nx4lz8SKVHfJI=|rfva`0xhM4?MMR#ZT96$j9Colf_$p7?_jW z(yrVettqpfICTq!-tak=seq3L0{absgM0;HPt)~Qx~|{-IpB5y3gKW^IF1K^JOQs1 zQBnAs8XV71I!{?hL(R!3U|k`?V-pa_X?|AFy$VIVI-WMBv$+j+JoqCNNq8X|gzy3p%wM+=#!P2-k z)|y9HRmQr6cCr=CY_etinQsQuCEPu13k;_7$903t^+40e*tmW>%S*G$4DA(`8(|8097}l7*`L^)*T>E$F@}s# zg7bpY>KNt%65COP-#9nqZca?{;Py%j8im*i0~gtm?O{C>#3W>5u6p;*`&PKCQ1L-d z49>4~jSpOqr}%GZXvlI9uxV4+jS&E!lQgW@(BkPF_e?}fK!tz_;IZo3w?8*AH9Z0N z&@td=IUUTfgH(lG%QY>aLwyHj4uE}k77Dow0I+sOt}w4~liddbVN_y2!uBHdigq?O z*VX|vH(SGn++pgJjvle%+7wqgjoILEY^^->IY1KwM%+PYPX^}XM zhnM=kU)|6)gjOwH-aDaTZV27L98;9v7oR>x);0nk>GSYz(@mL8!d@b>!@WGd54BQ-t zqIeQMm%ZQNPm%_}v!`+?djOYAR9k6~dTe09WO?o})YvVLe8Si71J~{y2wEBUiYDIW zx&BXZn!`&tIQpeqp;6&;yutWW`!pG8S!a#`Lp7!X6#<3Luij#-!Myah&EBv0=zwBj z_qlNvzFL8^ZP?9^hz)Z31eE0o(!WX+6e0Iqpp59NL8~ty;X2-*Ps5Fs89;6>4hQF| zt?GC4)7`IDLjk4UTS)Td=`|D|g`V&M)hB>TopHF-C!)DbSME@U?rcwfQqymkqs6Zl zMI_%Oi;OF!6GpRKlUU8y(p6hqd-zX^oXan&?FfK==PPC(?XoSr11#IRKm8JzfPg=m z>9!;dIQoE8Zw#afC;>LZ4tN;tT3dM$k!PTgiUsm`#|dsG-Acnvjtoj~%z^Bw^kQq2 zDO9kB%E{Q>WELJ4Eht(;;oI;JbB~7@f6-ws&p(_mQTzh%d{!41Aw6pVH!s=K5 zh2(4RO({E#cAER`}6xD8rVCj?||hw z1OPKZl8~^kPui!LVToJKd96j@uCRJ7zDX4Pzwb<1o)8M)A`!Gd-qOCPA(UKU-CyRj+AKq zyUuX{Qj(GiD-iw31N@J*H-Kw=u-KS9oX!I(YBqQ6#RO@&xDo)!1k!a+IZXyY7O%DZ zH`r+Mt8~PFZgoQ$QszzeM5PmEB`rfcXZ#+h|5oUNKw)6Qf>zA$}=V4q5VB)zB$h%#~?3ucdSG`v@ zCq#4Tg=xevxrSAL&4zYLuV8yBTFNTgc zzmuM?j6jnlxzZ-)O+Wvj`IvMC+bw{1QuX*zq6hXm78~<28 zf0v@#IGfY(Tt(9J>79kw4Bv0nHmRoO+PR6MENkFwO$gZMJdVI;hf z3d6&1Uoa-;VJ-6~4@=MD;t_PAl89zYl~tYRMEp(%`phCB0=?AC$AXOI^Ldejhs7Mb zw@v~YGN`lujb(UhMBA3)sC>H|F`BrO^t;h_U|Q{^qXT5kL9zjG;k#! zst7f2Q~m!tC_>9xw36Qm!{-U>E@GK)?{W-33-b8%Wa_- z<(mjbXt2F4%qBhPYk_T*I3yw^VXx&k2tLSHIWRRKt{cJW6^Q(Uo}fLPgmb|Iai6Fo zn7zAk;$ZJ&q50*VZG9Wn-AbH`i*&>rX_(n0T~+(xDlaJPM}vD0@uYnr~#TFx$ z5-*@M-3SjNcx>o#wlxzk`}mBgAkAT>vS>|#-*?##jI?h>d&Vg#1)gWlgiK0=Xiy6= z8r8&trqBBnnA?fSlq@!lBA6ep{x@6^{O%vPqLuTePHaK^Y4<4ea*K6_D@v($-+N?R zAGVvWd#ZV^!t9RNH%uu7ExJao;H@U=)93yc_%+cbju@&cFV+j2`X)kj{rDNjzX!=f zZuCsfYx`bnRwi@wX#380C|m+j-^^@Ip1nXJxl+@IY_su+Fe7!eXE~#c3q?yB$vR=q z%AR55I!yS0Yd2mFHRzU5g@kmeEmCR3CQ3Ni!*d^MPg*0WTjk-yb|CdhQ_S1nYp2zO zi^<}z-RE>Ag)8P-k&2!vasHHi!T5#~bs8aO6+sexUeS6(6J6r?1U3J6Qn;Im`|Qn^ zBo$qCX<@Iag7JJw6mlFL2VV8;(~?tZ0leU9twX!_U8(>xr;G|(hbc;?jU`JQ{q}s5 z^=8agqv;-6Z=<9{%Yw# zVfv-()Q=-@9~bHM_-+Yy)>Ly3Qw!+@6xS;cX-~T3%e>LImQG3PgI?ESBgwvF*6iP%{A6bH!)_} zpgZ$Fnx2W@F|03UDv$9gd-Q`#DZcdd{f9C6gY#dE$y3D$e>XYhc0n9fu4gs*#H0gI zWAgWyZ^bqe^6YeaLN<&jSqMI{aNzz-1*(D%D(2i6Jiho8Kd$Hh|A`;N>fWoUV1p7~ z6B85nCyolpQs&Xmi z%gvtl{tu`p<%IoHG}OCb---5iQQ+aGl#UWj@@Wz!1Cp4QuVI|FhJLz`06&q_T!Goe zW<6WzE-dW|iy_fq^girlm8YsMy5YUrh}plQs$NhmRAJbO;Cp+>0}7JFl$Ehi@R(LW zX1c^2ZPmTZZ{xAn?Q&c>5s|dFl{2*|zD zPN&P5)K|2e@h0!|Y1vyx`9}MPGPjp**+Mt2htC9^Sc}}a(5wW+dvN60!}`kipz-mB z1PAlAF~DU>iHLY{akTikbM*tLTx|kXQJ@yH)$4I7Mzw=yI_YF>z|U;?j?BsGH6SAB zUeDfa9~S#=AiEMbNSR+SwLGvw@+?nqt##KvHEy34bT4mpoQ<9~o@MgdY4>a;7p6er zj~#FDAG>O&ntHGlDOFqk(vLzena%PscIT;$r9?&H(%;y8tEgaK;|}cvsmVv5%F4>M zvC5o0;Ia^^-=o#0#n8#8bv=~`=wpO$=)c*TSkPTZpIg_h;tQT` zJZnG=YGY}iZWK0IG$_lr-E~FJ7U+%j%N`9~u8%Q~Nx#ir{j@!LTtd=YXYUFrq6I#r zuOr*>TzK~JIh1(qD4XQ_*81Zb7Bt@5r!(|QvfaK~#ybM+&E`NNFL88AO=wbu*fS9^ ziBA9%fdO$INNd7SQ&V@<)na5rKIf&A(rtf|yxNua8%=(^;xBVs>V>c{QY~5g5nm1#Vd&^7x z{S;R`gENVsdU+s`u~G6xN46i)M?l&Nd0(8J(XpQz^W6qz{%qjkd7`!c^^3D4yVa~i z2F>9^Zu}p^jj_6&NK-X&$q+&fAEA)g&(GvWG8cTj(}zP^i%_x+l{9oDZ=>y;`Yuhk#!c9)h|5g$JE=dbhoVs6Bf^SLlCD02Pv%V zv(t}EE!IY7uikMd`{<_$-?4*AZDv_~#ro6mvR?Kw!B*E3m52u?xL3<%d7aRLvkAh7 z+6I=Rvz6DzRgp9=kSIA0Zf=Z0K6(~P_Ge&Vz&8fxM(}#;kD$=F#K09-IJRqo=nZ}Rkm4GY=bJ+n70PxeGQ)O^zG+yVMg ztw*2G>RVKbR$#ZxhZmGsQqLy*BR{0BpSWic{*;L5+fmlg2n9dUV7BiU;t1FfOuBWL zt;=NRE>3$ZMF#hl*}dV_S$!YPso&GrP^7sZ9%*KL_*j!{8&Um*IdW06A)SpfCH%Cy)ZA+B9#4{uL~UJ^e#{)wmeF4DB_l z`0L3GAA15wC~KFu74wHDwlYIc9nF}SnK=Ti1MFkDrZXKJVe6eQ1k@!`adL7l$%m)H zf>1Ho;=MkM%J~6%Alt%|5qnx9u8%@25=&zDGbIE((onOm+Z?}YG_bIgef9?mKj?!Ovu*6mo;TC zEh73%O0o@ONrtT1myxj+$(B8wXPk3gr|X>S{B!2t_j>1j-{-lXd%u6r&2;7GR!2&U zvmXShPn~we-8Ljx5Xf04lsyurbJSuFqwuKT&3Bi2w$k6-&o&s^bbF6E zf7nNID>OHi)*^T5^Xr~RYRUJSXpWdQrKxu9X1#4@eV-RQJYGI&*%}!o*xtOwA)Wy+Xd2X z9~;l)gf%X-ALF|)A570{@7@ktuoAiln@Z`aE{$cWO1vLDY&dQ4c6@t-%UeIG9`1l$ z)h(Al`r#WmD3dH~NGgPw5gdUTnJYu@q)n}$z1Ub#7L8Pe~Fe7`w@1{uX$znJH~zfI2MET?UtNDbui(5h`{yVvyf zwMIk1{S1WKely6Ye_CM`@-L#yWz|phpi47s6<9Tuo zrl--_q$=YScdiAovisB7^&<+YihfKBaa5B_2<~LdTrmNQmiqVatK^fD(|UJCzVsy| zi!2Y)Ud|Z0tEqT*{_uo{`r`%6t3MfzT9-&+KlWxCIBy)dyQW5t#lb)F%OA_VpqLY^ zxiYijYDOvP-dmb^cHQB}hh7shSJEls^YH zq3Gw=9IQPb5{aPvOy@!Z!6IQEmRdETs=^&lQ z?&k`V;mU-b-d^Xj;WvXnHw|4iHbeA;j~#1nYZLA9`;Oc8chc{K$`&ECI}Zji>pQWc z)c>V04>FpfW1j#u1BdefMaa;zK-a~@7+*v%MnHd4U&hApQ^3gtT9$EBvL!WU<%ssb zZ-Lm6^#^0(*q3&78FInAv>5{QAhn#Q&x^B>^P9 zBAf-^m6p<12@`!{;BSSv^Sfh*=krQSAA&4;kUDbmQuE9TePt6QuKc{B7+Tl_OxZRz zHZEa^F%Xra{aOD1`I7(FmkIT&c@KosFbkGp8x6-3s1@2;S_6Qyf=ZKrK_+Jd(1?FP zfV7Ov#OSSs8vw-+7#J95;!uCKDz@qmyT4g~tfh10f(fN_#jU_fbi`RpfC+K7Pna^U zWLm^idH~vlNeoIB4^Oy>@k64ANY?jb^s1e6z0M;hM>8QC~9vKiNy4E zC6-7bdD3MhlHJC}Mvzz+#ieHgf;qG84Eh*oBIFYg0D0QX6Al-;1Q^09q|V9786I(v zwS-i$&^uHUs$E)I$_Im4fyky?k4|@*A1akR$>?=ddHMbW!#OnmcqD+eZpy!roOlIa zEWrU1>r75yushU3CjHr+D9{aF`0CY_QqSHeL(s$jd_-%wV$vCoX^wiQesK}~Fp+Su zCpheO8#c@cg+dwA0Osi>y>=eA@`3k)?^tbwLFpebhI62dfwcVdYQwg~W}1C&qD zQlr3?G7LH~sq^#adeAxxuV+ShdY-=e8c!uPcK-W|itUSnbi~M4v6R*7s|x1k=D>9a zkOXx}AH}%Z)fi006zn_-rFm;jmNDiJuB)o6uL~a)Uo2u1&y)VE&I%myWIqXM=|kYu zISZ<)sjWFso<3y;aiUJJG8i|H(kj#RcS?{1yqgljswcp26ciLVgYkUJeE#}jmN8!q zw%$}bhE|}KUzb;lyOHVqvhO$(AS;N5H{9jIV?R-;W9<4H2J0q<*XT@RKu(xI=e$ej z{I^7gmWh*L**w{BF*J&K3;yx=a$z7`yG0;qCF-sTf;cpk$dc311jL!y?wv>1 zli}{;`>Soswroy(T4@3W4d*%tK$bak=FIn@(pODh(}6}<@F-A+po0Jl44C-s?W}WE z>h4(Xf9(x%0hDsTG-M5K%5Ar|IN*}#{KhT_AfiB*t4U(Nin21{2>V^G<8I)T+R4KD zNNAM5|MKt8wP|`v=3=SsuUR{DT1IAxP_45$nZh8c@X*GB-a0 zU>QKY++5Ix%2s=qa0{Y~nPU;0No=mHpF|RyR$5KYSb-z)(y=Ba130FYm6g{EbF#Br zL4C^9++6fCjtnMRfS&OK%b+(mH8aCF5wFBF0c_>J6$>L)flstVAL1P-_j55TL$$ZG zj01Rv*s?EE#Myg*x8MrOf8hLIw6g=lJ)9s;1h_4LxvB#kHcddVi7}Un27WgXg#7gV zUQbu*Z^q(3^l&|bCDP!*!vtV+ls(ZlUuf45iuGYctN>7MT}5Sjz!TTE;NGOHZoklT<(OO>?sjo z5#uCFC~C;Vtu>Xp8{H6&X%oW@s)4c7S1;BRLp_l~tgTE=7}R9T*9eBpQ>mPL2&{!t zy2PPJbv|8r!q0@Md{Jo#rmv7eOv0)3=j?9#mN%JSn7cKJTbPghlYGl1XX`M>QzKaF zSnLyb!$at74+GE+0EbJ+4W)6mB0Bk(yCGaVS2YSK(rl4Z5i-|&Ade;#kw^F#0EqEd zWmvIHFD}BinvpeF!t|%&Aqhrw06KL283ThFHW*UsYI|(&Vq%w7R3XNP+4e)0C0@dd z51miAcQweE=v}Qq)WF1|BDbFBzOMk)r(Z)uMCD>|&be2S(Cgni8|Hqh*+20GVg$YY zW;DB?<4+8dyn2b(Z22X zes{e0j`5Cr@3>=Je;g0zDf`)L?YZWfa|bENNn$=BdIEt!Fs0s$D?uO#@4@jZDl+)o zs0l3uzaHC*N~xfN9}iTcK=Ahq2MKitWor`$XMHafMpDm3cvfzM~okHB$kb<3+os)unq=&yj*>ZlQ7+boHzD%%$;+4Yf#0H4i)&QM+%)U2 zidJANPMTyZP?6G^g>z?EC%wk3ITF$*30x!sRtx1VJ8ri!DBw!eu2ekBuad{A=@crkqYDKKWmL9bNKeF^iM_EawSM#C zt6Cyu%^Vys?s(k%n7~Qe0`BrQ&jDgr49MM3i*$XIhvv6Zn zVW;~YykJx0y%Y6M4P-62!q}y(8wFY*qJxOb>dxI;IzJrJHOzOkzae9YF(PydvzK+w z$H=)njE(T?`{`Ug&2Xmrkp;a|YzZbDbPTVx7`2jQVedQ9MxC@Zr+V1?*H0)#hl-U7 zNVt>sW-k`p4~nn%>kpKdIBgJYe!pSNaOFiFkHnypI&eSKOz3(%F{{DU<>%O+@SC+3^S($R=q}ug(2*5 zd1#0S6%AaVW@op%Z1qJUNBF+nTgdumdQDh;Za;=Ak-KWR{A`My1V7b%zxF^rP3RWN zyc>Wc>JYrSxk;(0sAyVcz37EEbk!p=DN|KY%v_}eS40tqtTH}>&x$yxIe|2(ix@ZK zTzEnPvEX#9Zrq@r#rTl(%qV>VOcgk{gGsl^qty=$zXW4g4wY@GMvIwIB{7f&DE5+zeW%z@U` z)fpxvBnTtQE!W03q~?C`Y50nUpb@c$IZ{c|c&>91k3&Gf#hbtFhaqK0aQfRpPV}$FDKEb0+5Fl6VYvCv}F;rfYs?plE!AIkLHR={YBgVa6PX zUNrureR=b+94i2^Xq+h0hRDpZX5Px$=r%_^S;R%aHVHp;IsSFBT+#6yXtS7ErzP6r)QpqG!q{Q*7nX$4iq|x`%c*l$&Jxa zq}3rxQ>d%I{;QCFH{`aQNzm@I7CJ=@3>gHzqRT z(3=wsr}~sXfBuC3tf0N=_P#*@$@EjFu}-pTTo;-JUu!d|@VD^fP6|Cdv>DrmdSYCQ zk}}7Au=SKaK>8Hm?Q~U5G5hp2MNI0|6#MJz#}(5UBDS_{X&%RDYTAx52aQ>hVUclh zC?cOfe|}#rU=fdT7$EA+3tjl2BHFp?fyA%BrHk&V+7baeKwuiXzC zyZaM3JW-~agSUj!X7^0y>l}aTHmCmh@nmFVq~>ZpDS_XSerb#B=B(6v?PN%}d)X#D zHg>|iKKL0^n>p+lpvm8=M*VhVFzrEsfqFNWM>l_Hg(+#ePL{INbX@(x>nMHt6f|H$ z#l;nqWZjhTc{CSkuC%oIE|F)!#dl@J;M7f!kB^V>Q~6^bVyhYi-`1rsp_X$s5yH1y z@{C$F;r{5)xiyEV!rq9!eTy(WJPZaLKy2MmHobvGc} zGU*Q=z?v~_^Fw=c+(WguPu24GY-jqHKH{rauR1zAZAWE!YzMd|Ut1Ne*`D562>sop z>g(%!FD13yMQm+x{&jn^Y}d-EUhvP3g_+r=3M=fD0;=fj@{2zHF>@~ET$$ywNnJ1z zHfu4d@So1RQ>{Ct&4ZTJ^SM*f7@5%XZ){7eL*Mocu1mA!F$cA3Y!G~oR=cC(;=0vz zJv*c6lzBb>a=KsazvAJEyS=`+UPp8}8Q^ifn0J=?@WF5-TZ-h3OZXZ*?qp0^J|Zfr z9mKSMFhxL0TH4@rb2#~pYxz8Xr3Ta1))q)Z1qFo`@TFpb3WzqL4@>h6UeS18M-cvJ zGcyWd;WPpU)$oJ_DK|H_B2Twv|K|!t<1#7y1l6;$>gpSE=#%5)5lKn#<@SJ26(*SG zu$kvd3w4dlQBhHdExEEuzch+HHUt)r_S9IfFVAPKPX+}Ja9+IVohmadC@P|2XD=VH zg#Edl?&#`bx0>U{BIWPsi(yFeOy{>_WcjY3^K3N6@!X%kLHK@B*PHb4ChhQh*2TuG zKR^Es0V}Dio|OVEmwQrSAw9&Z>BL1e9mpBc;L~9Ijr1j zo?nIr|Ncz(UP4`+FaV2mrSrM25j>VDUWP{K{>B~y8L>#UShRG~etV3L%;T_?dnaDl zTj*qCsN1S~)q%fuBh`JX+1tD5ip=}Q7NT0JGjM&-JOm;#zAdJ$s``E2%CsX8cg}gy z(+rl61IYCGE4u)#{8*lQTq}#Oy|>zZ-TAxLgkP-h~jh zmKkES_P12O~_>)ZSBYT@@3m|mrtKQf$}|= zCM<7Y@DjX&4=pbj5$4B_AI&(4g#75+*Um$AV6TXoZ-xsPs4Jli?T#Aa(Cb- z1+y(UsqIWEFL?HJ(c=VDGK|a^0AxpZx3a40J1HqNUu4WD=AHu1``JxRsg;$S;F_hY z93^e-;wko>9wDq3?2lm@13~z-uNfGq*x1UZk6SGm7#Pq)-?alop<`ltMMoC|X3+qq z0iv`wF{M27#BVT!%zYAI6+gq6<7GgWH-%gMtTg3x0{^$+QpAy2`X4`j951y+K|aHhmtOSm4Z&Aj8}Q7a1h!_B{Ak@jVX1!#=V&-(fM z(?RFxk@Vd8`R(R(NPl~&J3E6C91O6re4J16VA1(tVSqqQ3zro`Kv|OYucOF}1-BNn zT7@qUc;R=UMB^4h2k*^gWifGaap&xZ1VO+6W#b0$Bx7VmT~JT}m>t9h;B{1ZcuSS# z>{Puo3sLBIF!(MgDe*68ax%$&<9-uBBGlq2~#2T-gJ#$_>FpStZJ5# z7jtBmu37-aJU%%oC@g%*!=qM~t9O1xD}04^baZ5~*pz~Zf(5|9v-nc4+7V0w&9j zxqi3Y=fJTFs`omj@>FMM)00=?acWW{X6UF&aA$d@COuvz`LWO<>(iH1R03Rq+~GT{ zM4`c7wS8c=g`Fo5?Sppv+cey*QB&s2XPGRcTMm?;*B%go&!8Y{$FWlKky2o=NRARN z0l|1qD@b)&6%~~@GIa(=2OHw~Dica^4s#fhZ|m=Z*eKPaPCZsXqe|87%@(IR$34+N z6Htr+9eC^A>7!BnE^pNTrU)w=y7XS;iEV^yv)ZdSZ%6{#--?MLGRMK4DeJ*G#j5yZ zWKh+jy(-nnv0)*!_mpmd7h;RrlZR5I+O!)K{y3svA7|r;z7F?!DvFAP7cPpLA@WEG zmGUXLDW%^xIo);q&7DVnIGMs*4kBRnvqd|iQi_*SXhmc-X z6-$19*&RYE5DVC8WKz&!VWf(ISg( zS?0-OE>;p4h%X_6dS=PFswyf!QB4p*!8Mrp`3WRmTYLM}N-#^$;9!?Q8E7w%L=+Wq z>zxnQ8!r|NXR9nBGKri)0QpkJ#>Ptavv3T2g2TdeF?JvQ3{_^*L)`U2v_aVK>dn(c z`7DQ9a%Xtw41-)Knf!KB@&>GbgWJDnMy95K zh?A`kBy}fnnATN@gIOQ5MEInwJpiuc1FWk3JLc-uMj9;#M-)D-oXs9=GBPaf2G5;(a6dDQu)UT+hd?m>} zqsPWn9teYylG4M;eGH}4fK*9E(H!}b-}nH|bS278L-QRJ^nkfJEhwo#m-pRD1XGWl-#cdy zO#9W#m){;Tucakjl?-%=f zx;1A9XBwNFJh@)HCrcVwcR#3_wW8wZPh`@pVg(!qN-m7$GAOm+G;7%;UzGl!Uc#B1s`7m=xX8=v)&;kR~HukFowq} zs;j?OQF)rgV{I~)ugFV+RXHQ)T^)}jdO9fZnVp^e@~|B{f%7vSm;+P5Hr||#DL?R- z%*>adB7#L@zcE;5y(qL;9KglJrRBZ{1AXUv-Y1l9GS!R0m`gUiE)VfL>U=)i$k3(7 z3ixr*w1vs#;qp(-YUo>EWTbjJNntUHDWT-zB1n;w z1a;-bix>SV0&x$79V~yaOg-ZuS7}jCMFWGkGAk(r0C@b;YkdTO|5K9(-$VcBY$b;} z9OhVsH2p>X@I~mm1@C*$iDJ#kZ7gCCenPi1OZs@#CUh)Q+iqNmo4w;T)L7?sjZsZmF0Y4 z_S-D<8tq&FM1dwM$ouXj?dBxyo*K}t{E6&(_OS8bji@9tc?$!2KD7mSViqQ)?mN`s zi_;{ZWM12sx|0^GsfN zT4|#nm%Z@X>U~}%26cc_oZsddXro>CYd2oAuvnkzh>AYK7QSHxy^f&5r^&M*9}EW} zThJqsl7%O*8$Y>N^lomeXSV2ccRfq+#&zFWB;0|%+^vmEU|Wu3y!9XtM)w+snz)`m zhG#4}tzy-LTsTr9LpwUey-t!A4{uI}cqFS=)$c}B?(QlMYWumV}SY+%xllZGHG7kT{JId;BINxJ0Y+-ZjWJE4TQG4eb@G` zO`Fvv>Q5A7sAVLvIWX?+DQHMOF&!*v46f0O#WnDuXJT3dm3$Sne^xvsAL$A1!JQJg zzNl7D5|EQO6HXzi6X$8PAWtEnEIpbFjgl|5ep@%cpPt9kbomYF1gSeE^-uuim16L^ z`ShT{rE=Z*0fG%-eaWvIXQSR;Aw2B+>))-@maEfLP+%c4?3iP8Y-|w$WNtl^#a7na zdv2a0$X_N)wENS9(?H`4v@>G=$1|a-9ZcHnW!12)|4Q64PVt;|@&5 zeTCP~N1y*H%6xx6cy{BoXRlQtFtn{JB)8_7bh*aLwXH8-Za(vP|8^dG+OBwneZDpT zKvnT1ijis3N-HzIz=^HU)QOAF8s^;9!i)XW8$=%DlIwfgS}dP}C-BodW?!6_E{#GI z0^5-vn7975UYgN+bnpL83Tl7D$xPei@#O@p#Qb4RsWGE~goYa5-`#?q_1u9@G!O?4hf{HLSLMOYluNOCK$l>*(t!pv zgA*U@)u*DTvS?^%5BkMF_>d#p$WMU)2>8V4D^yD4d>v1$2ONm}Z(3-fhLAK#-bQwO zrg}6UAix@6p`GS$raj*|xO|rMdh?h-GvkewXk{@ua(3wLL1Tye^^QiP^4<8N>lOKR z{#MU6J=4^xj2{9Q%4FGEHV3D1U4L{zDD`)9?L?g7qSlp9a7W2$<)4(}W-kj7zu0T^4HF7Z znoES%K^X$fMU_nwkR-nah5sz>|Hh%Rv(4=I%>1+qi}c!OhS$om``o?{x6M}48O`;| z*h{x7w#|4_o<_()6Q@zDl)Q8QS0CPX)OWm3+Cfp#UD%OPnWgd(@wmQ%ZJPAG7!$v39oU@+dv|Y1w(;dlK^V~xOby$b0OM?3`lW&S)W!5$dh@=5 zpv0cttpxEUU9rc@-!qK(_M zzOJ<>NsWc>?5cT`4}H@hm#eYG@MV6A<9(Gwt=t9;8{*(BOST?ViQ=_lj_XJ>*)R<# zGj~|}9WH1|!)I%5;|=dRbJXIpmN8UF-WbIWz8q|jBBXCNI4Lvw&VRzEr1~LLFsQ&j zFDe5uIfmrcg0_3dLHxT!M2tp2U;OCGYu?va>xSpaD8(~DRQv%&dBzzGchQa;T^!y@ zt6X-^&kvWsa<0qDtG=;}BJahMYlL$6l%I70&0WpvQaqow)>LJ!BY z(dG3V5@W2XN|%mhY}C?BCQYvk6#TQC-myB&5Nf$s+h;N&UsoxG7@9;XSAE^XwXdZi zo|~{nBxm_?WmJ(6@#5pI;3p~V;-prNb+*q6rFUnqo}SkGI7CNhaLH0t{l$q{+WMhA zHH7eyd9iFShmwQjSGo7KS7x4W_bWDY^OK3APS^MFpL#>Fh#mdO-IcstD(gq37Y-g5 z>@6niqS+DZ=^1(`X|Z8Te_dZ}{)((VCnd?+f7D`8WizPVH?G!iY!@H3x-)rXId9V? z!Cg9PP>|hkX*@!}aS5I2-74PUb)bxrDvQ~jck_v7c*Dhu?sU99iK|tLWR6vK#_(Ku zeSoU>fYy0prR!9i;7lT|;?@C~qx8L`nteQWvz>kKO)Viz!P$k%dK$R`b*M=tRj~aE zw;~~_2(fSK_6|+SWWdlZ`bpu%$z5JIA-gkmogD|}kyw(3A~*U3Diw0e=PCs)Gb+Q0 z@&3?Jh5CCzAv%W$Hj*FBQ_^o|U|PbAPqaFBy{_>MOktODPp)m7gm~il>?Jv`!_>bt ziA0xeJu=9veG0SnnC)gVWDN?!3~AU_db4-?1nXmRR-ps8+F(k^GoB6SCds!mB=WLn zl2fN9Y`xWwqEF6ZeLJ+d!af)#@_&R@63Q8CwSR0ETvm-fXycVaiauK7_Fw(@CAXo* zM_H_Nea3Y-zt8!k^tMxmD4Oi_UVqsAw4T|iU|J%Q?mMp|W{j1O8`N7{?%aqfXH7pI zuf_9@SguRAZIh4->kH*#G8QcrnwDvE#%oJ{!&M^e4>HutY(azw{m)nveKepXl^ptR z$f;rV2x8(GwltV}omz$Z9nRf`7BWxsG(V^pvGkX8DizY09-FOCv$H&IL6}=9t zpp)e?!+ZIgSf&GU-C8cvW;)ws85O2(o)uJj_oG-6uh!$;Gq?2J7B&p!=HN2hg`Q1T z0|VmvToVogx>dro^=ZV70?%k;c~di$RkXHE3}im(TFBJEnqSh*;AO&q9y>SL&XbjH z855&qS`jT~uH|KOGu~dF=XUXIKg;HSLSJc_woDy&WY8q`)Nwo=uSsmQsLFp6P^XyC zDVHfVyKbA+DkD)-P;kA&X;|{2-|y(1{N;>%q#9o`ypd~bC5V%dRpQ&psgU&demxbL zlQ6M@>9>)?v&Ti97NKoMX4fwIRW_8yZx#oj=N@_GaDN(^CiI%pZBv9#l0jUNZ;=Bz zYHIb6)OvN~x@3*S{SxrvBHq&H^MA?Bbs$gTu{7vzMK|hC?nD)gCQ#*g4L`t8mO#SF zig>^DE$6#>6q%Mp@<&XQK$dLt{GXxSPtj|b)GMiaf{vQhesrb=78nc6Yk%YOpr*o< zW%;O9#40Z4s!x!+n@gk>6XTZ@lAoV-DT?76rBXccQA2xhIE9wt6~6D2^jOj0ue;H? zu3s1mgScEL+*_5zx_V?5T^oL!IEB1$YmS*1O&`xfVKkwY%FVr}S?e6{Af)>0#<<27 zLbz^8RL_>wYW8^W`O5pD%z|O9xBfF=BrM7)tppVnujh`1X2aB0f_kO<9n0chHgHVy z>JoitE7@E9-Wf7$Wd1kPIT&fk9=KRXf6=bE%x%USISJi2i%DRIIl*wcI0jRtt>@G$vYmxGvtK8#_Aj@|E_dMqmK_8##iYf|6RQ%mQ*h)aFV=Exo8l% z!xf;3>Z@SM(NKy?YO5$23>s{XQ2r?X(SdzGf7zY|~nIjeOMP_t9?{mdX_h<=QS{PR6@=C-ge9 z&97@dCKUy7bNOqftUdZZmdjF7t)`Y0YE@WpZYK0GD0RYEyBJ-&2=Pl-2(GSJ)rgE| za>OBbSR8(^#D~80T*EKi0&K9q0~CLM+!2HmyyEOgLPg=UjTqaT{rbut?=z82OuQnG z6Q&{lSTc)w9Y)VJFIVG25UlS+o~bKXdzFZt#_GtS2*Nmyy!G>kjK z^SSINwynxa*iYL7@N%RKJlPqKK?-(F z8Ap0!HWtok3HVB1k%^KMyL6GA`d!`m2=q@Gzi=rN7`DZwK=Gv8-!vz;okmO*60txF znDmCe;;qPdbt6HZ%N-CX7oujKS&?A14Eu=X9FcICzPh@GuDn0ha{WDFTW{0q-&%@m z##VoHujpc4c)n{eu6RyTK+_xjyXM|%Fa^fNGNdYDS=0Kw3(Nk6e(EBIB}plJ|5;GH zhrVWLE&I%9Jq}1GqHNoE_;4bP`yKA{fW~+5v53?Xg@W3z9k{8w*MAk`*j;9yO%QAc zj^(prG=|W9azkE&zO>%a;O_2BmnV{Nl76-QIK6em!HdCz5MP$O%u9?7ZP*rLV6a8y z;A%;o5i7(n3G1`}w6vBvCsRzUKZj#O)R6FuAAH`2!Rw`({IN$J${KXJWdddq6#RBYVz+4og#S$@%4`k?epi|{ObDILWoKYN9#h9 zLxQQf1^lyJV)9~U^)g=ePyPHzENDWX8^%+1Cr)TCKrLI7*vkef!yvXYy{-!-JdMC0 zijuNR`0mnTS(eTXHP;C03~A?`z|T#<@8NIo$FAzYC5>r|r=%OBtt9C#UBAprvn_lZ z+-2Dv!y3e}icn5SS{C6*o;d>9<`#SgK!C%yew3-Xn_Z;%=5}e_YM(!cYHS8ph{E?}sJUQ+~3L zw9ob0?hP@B3qSpjo!@-(^899CASPXe+M=PwQM<*yBrzlc;7lgMn*?# zw+oAU1_po&h6d9J?KD{aogwxh-GN;NgUNjD!1H|n{{0frCxw81-L~gs4?G)Z%@iQ) zV^9zf{Ig-gup4>=Tvm3Yp78WohS#t4dLv&wydr4VGvSUd?ZAY#>n3$(bw9Tl+g>-l z0ox+p1DF1McRD&ICL%goTt|nDrQz@qP~1&{k@euOz+sgVgKwX(wHO&0K@>DJh)&rT zTt`Po>l<#lzDyieH{W6wtHRr{h5M8F>^1zegkz*7l$7v*r^u*T6|&kL2Hf{{U`_+a z(I9T;b1>*V5kq+XfGrB&bh?Pc7i{)^0{s|>7~g02)}aFXdUG|lZ<#hQyW84C**Q2| zZ;rafoP=OZ53k7zwvmW*KN=Azb)Ft{yWXp&V`ioi6ifk1I0{S#ZsV~MM2m`!o|T`U z{{i+`3>Y#9U9;aR)fwNitfo{KG4(j^Od!~tjjL5p7oR_Q3Ptw)Di(lMX4D(WJdTF} zat4{uTEyuONp>~T^tgSvB$Nb!f`@1FVg`uxWg5lB>oARCg!Zz^%4pM6*YAz)7fuDS zdcaL#YjId3F;YVush2%i>U;1bz%yKrdufyWv&YTXdTG-vfNT{J5y49W4c88ye)jOF zcwmtN(+5Nj{MTv2nU_RGRW)^^{u346#G1xe;-7pZx>+Y&2FeD_yVhG7{>1umD|NAQ@FoDw-5n(T|=DDsF=w~54Oyh!Z zwcnUYW&t~i!1WEIOx=S*tZG09!Vm#Q;2WUmycJ|-1ZvrHT@SWDAn0$CJg?8o%*W|X zhEiqS-1vc?3%1XNM?|y&*X0w;oZ$L=uik9l-1|XSI(2{e48)20j~e+mC~|fZgi25p zbr|kQUk|o0ItL4DHZl9*cz#v-4ofg@t)#eB`;)olMoHBMi(o=kPdrd1DDl0&Id!1S?J!!VWqba`As$c#Bwd{_kC4c zx<`tL$zLJFw)Eey~yya~P}}HppV$RUkg83f{x)jP>+DlcW^4#(zzH z+g?7ecWTb?TLt0n6uVud^)+x>H$UGw_g$hG!<(yZ-B?eM6E zPTlIF28M%vjll=@c#$uBVM<^AaY8g7U)%iPuAe4F