Skip to main navigation Skip to main content
  • E-Submission

JKSPE : Journal of the Korean Society for Precision Engineering

OPEN ACCESS
ABOUT
BROWSE ARTICLES
EDITORIAL POLICIES
FOR CONTRIBUTORS
REGULAR

웨이퍼 이송 로봇의 심층학습과 진동신호 기반 정렬 유격 이상 진단 시스템

A Misalignment Diagnosis System for Wafer Transfer Robot based on Deep Learning and Vibration Signal

Journal of the Korean Society for Precision Engineering 2024;41(10):807-814.
Published online: October 1, 2024

1 ㈜나인벨

2 국민대학교 전자공학부

1 Ninebell Co., Ltd. JFIFddDuckydqhttp://ns.adobe.com/xap/1.0/ Adobed     ! 1AQa"q 2#w8B36v7XRr$9bCt%u&Ws'(xy4T5fH  !1AQaq"2B Rbr#u67Ѳ3sTt5v8Sc$4ĂCÔ%UӅFV ?_Aנj- H>>,m*>fzp"TrKkr^r.|_&]|*vPuܶvoQ1mwVJUhu-I"=LniAƕ8"۲ k*ҿ[yu:.vUQ+)%F DHyVBk>Hy8jݹ q~9D4KRmzQ)^ʔ.J%k_tVi5NTjg!'ky|5asOȻ)R۸ߩFMԿ3L4j6dڜ#NIwUF]JqB/(FafJRzq3\G՛ ?~\ 6)6W4m[O^L0E&rRMض*C .]Unl-1 1r#Rj/&QɈ׉˩s6Rj=5Tg.y.·Pӡ:JJS:C8-2u]d&vUz;7p9 5VnL֢"y)">iי(IDDd| Yj0; LRfS:ktYK%*N2^m|&dğth":ey)uPQZW)gcC3Pv&MMWd&Ŵ۲mvTRoժM03*F3Yd6\8,\hݻ kߔi<k NTwSԪmljj[>->ptU%'LR>&EBH$MQAUx[$Z6vi&_a.KIQ{hyƒ j"JOC9eFҝfj;˚Ω<[3_m% lQ@4g=5$(J]Yc-OMq<Ǎ wSzڗ)k$7VIP붾ͯnV+卵*t]iЎD31~SA1éC2u)ʼnQn-Uoi3:grI8ؓWm*G zܕ)ZקJ}Y YlGeJ6cB2I NS3Q>k=KTBT]W6+SOXQgGR? telˊ%-Re\hѯ2TF"C/OJΩ6r[N.0{SpljjX1“jOsӥ;ҭhe}xu`Ք&.)yO̒ Fߑ.$Qw;9Iw2o+RVJMSOj[SoҌZ%;`d$blQ{Ro{Imڌ>3egf\O֝Uzx"䢸g+mv%Gʆ:|V[N'&ס-ޝ'kfE|K,G&˳98Juin/\\Qݿ̋v~Ǩ!rtWU d|E߫R4d}.qPw*Ӭv5YEcn~f5c%MTMkb-F>5JT,})QHg%{("ӔȸWMsYyWNRrkkJr0XドnͫT}r-jj,Ŕʍ\Q2Ri>v$5!]"JB2WɅ)]VԜUc8i|.jeRO6^V.¸ Q&#|ܶ-*uOG%JAtRZRr]FFG\۩w+?'zչSѧt jz>KW&ot{7P&2D;&\\>Q2JzܗAKSfeNn[jRrԕf6,q,F1tRfԗ>vֶևj-&R'Zi2=xv~Elbsvm8=ӛ"ū񕜈BȩlWau[]ٷBߨF~J!|Ipr3R̴#Yp)={7:G{+:\W}n|Q#%)7^-h"Ƒq:M*%J&$T軨I333׎g_- ucBwwjp[6i25$̏bU’ٱRv?G\~#Iͪb7<<}Ezt" q_Inw,7-d,G÷%T* Wg1"䥱kq/A.,_KhqŒxwvo u2ۥۧ.bQ}XκA$֣ +K״ZUNmڸII{.v{5z5ѮRme[moyƾd~cRݾK'j.\i&/S6f|b=5: p!6i_ 4j6=.si˧eƾtS^c.Y^RJVS-Vi3,esi08?H$GvZgg?gi䤟2adw릿:"۪lkSN>q-4kI܋ێe̊qۅgDoѨ9; #T.Q;7#~_Ufstb_'w~Xw1Xk,vcOt._}v}8"(4Z\ۘgk?J?bm_c!g{HZV]Fkk%~gEt)b秴vΰB|꽸}mp~E6ݹv;7P٤v+ri*3Ԣ|'O14_~7nP{7ZU\Vű[ +7󖱅o#:ǥŬ\|3r%TJX]V7ez¨Y]lc|O3V! R zbJ'PnGqVJ"19WVeOF埜EaEJωqCN5Z g-9[S<$sUK5b|7sn\7x qmv##FF\ w[=-43$^ooVSiXօv7iB۴yg>]Vf"r$J3""32!Zh[K%7GvNLs+4nB/B{vlsobJaҺJR:0g%&zR\ S3T[&ִor*ⷳc3ʊO[iozW٨%$gn:ܶWwFBԹjHP&z u&F2\f;ipW73 [; '_̽b;vib!oec dC-tS__$Xs]l9&z$2/N>%'[}b{h/{`{Ji׉׏ YJB/X%}.|+{(S:qz]4_Kѵo`^tY_4S#* ^zvݾMr+TrkQ g.8Ͽ^i>ӈǙvix>$o( ^qt*&t1oJVu-ql5U6jCЉmĻ*"?JT=K'O/|=Vo}l0b}}f?X[?/\JSBe,kP8ETJ==?.p5ފgbU9}ǶdNKk—_$8̸͓ۍ8Di\BԿ-1v{FF]|.^ۅ{vl12׏z7-R7wE?\nh\jN/Kձr_oBw"N QMBZqe-m:ӨSn6j4%!hQ;sv'm4kcM=!8\m[M4{SMliۇ%eֽR&N:{2A8)THLK3Zj[jPBx#BگMf:G1\`edcʮ?|w(-̮vXt,bW2;.ιNHRR#YwTM"<;mk\.foIDjmlJ;vxy7o7i\,KQŊ9d^Mmgc L*.T6tLeIuOH3SJQ3=F/ʿ<9\JM6mN6=<{xkP!F1QR[I$6ُimXu2An2yԒMU q f[IB-'䤯jYm52&JG\zд\~vdg QtHGXw&1Lw+nDEdC1w|YJmvP)HZ>i0BPβә?R:QO["]I_Jʏۍ>QKyu^bycBq4lXF~l [\*N>-J6,Gq(Zr5h]CwYӤU~ʶߑ u*SIv%ZfJ7)! FS*s_\|IŸZ)J ]ܜi4"z[+Z,MOZ))}|Ʀ(RUNIII.S'ˍO~˨rn}M)xxӕ0 eyҵ7YMAB]ӣU:/ѭ*6bcwP͵ "+qēVjŹO|GtY4V j[mLV M -m>",B$ GD1~j6O4|LxnNmqATNR3ε|DŽa[fmn-ڭ+FiK7Pcm;r5 l8r{#-]'nrFh2ruycb;pW=njRqRJ(d mnpckNnʹ+6]tz~E=ʕ l ZZ5jSi3#47.Lcfe`9؏v囜.F\-UZ:*0_<Νu9Lӵm&)_3\^ҹ3"1n1v_|uRʞͫr'iȧN_kH׺8xXrj=\МH)V\ˬ.Xʸ oVRC}ySU9/OBY먌5 ٿwޞ)rw8Ӫi5*5ZΗcGƱ !ZۄlmpjJ -l <R̵/JAպZuq\IdUS 48wXJJtcg4cI~aqߓwŷrm-v)G7yS^7H^-\mŌAq|"m9IBnF㏉9[N+mmy/!KKۉ%n +BdddfFF6FQRN-U5;Sv'm4kcM=Mn)\qιqUd9F%",6MGdT%-+~ f%+y֛^3SrF>6lc(֪vۊN;g._0Sѧ]ETWرkQKzGe9ʨsKA"yC y2\[5 rԭ7Gk5Mzw_4sM3hxЊ'oÍ5jsub )ͪ~tR2H]R͍>̋m6=%(˿(Wrr-܅y5(ܔJ޺YunW̹븹NsqK ]/QR#"ZMDfD|43Qw|._ԡSqTZBg??O Ϥ)/E_U|i}2 9Z?¹0:x'3,whǣ?C y-A~=daJј&M?D1_PS+Oi&;a @;Dž7[ zZC"bv:jjMQk$M RԸ3uA\=wI.AwC"^.{?-\NSiˏ"b}T/}q/ o.1M}R%:-ZniʒL$SgrBW*,Mw'N\ɇ{s\j]VryG'8f`}'N<*/`U숻z CwHq18J+vԕKss4R53/&XTt1bZƟo\=%nO)h$rBi-nKĪ^ ջڜlwkYm[̑+/QrZo%TQ;TLs($2C:s.%+eoNttq۰kK7O0m_t_pZ1SsSM7"mevFZ[w -FJ*T*jФQRg BSu|]g:ɵzjqwmltL.e3sRMچkSmjkmWœިm++¦'tILk*բQ D,PB\lI[9{%Gb R6öۍmX-MaʉA931cs..G4CujQտ[9 }G-xwl)IQz j Ó"rqe&=]꾧֎c)<kӳ+0JrRR3'TnXi^xMF Bު*tIL.[h"2"nKzZe'ZV/RrNYz]8죝n]Ķܩ>^Ժ]u-7^\mZjܣ9+Rmn ߑv?oꋘ?&ƪy^N4o=3-ؔ̿*`}V݁ ƒPu8%$ ݗ]wt;\y\>='OjPIp/nJU8{϶FNMsf"ίNqƹ(+ ݮF2Km |jܴZs%zf*eȫ?]4)I۵nR&FX + [jDh(#哑9q9Eծj8noǕZf\J-l&Z˫}`ӎhyrΉn\űn]9pʌӣ"׮Wt?N4_I_~54#/my1Xr*척aS#DT >q ssΛW;3oUaJSRMDgQnt:Ql,/ ܷfRqiM Ȼ>Cob;A>ڦWقM9X~/!'MW.}Vrߔꔵ!5|iB(0-zF=}okڢE$^wW~nokY߮\6՜̌{i-AF*9)\t9IV6۸5ZUF6R$ŨQIq砳YUZ]eyv >hI櫥N )&l JulwE1GDOuFN2| }馥uC1rޫV+^gdb&W[4<^e4YW,d|htͮsUM)۸8:{3d{AѢ)~ \#J=NdƮꮓ90 |1K$v*?мS ]i$J,C,SG?/_՜pMSƯM|mG1V1$~K>CSvkuj=&) -,yLjuFHK{c駗.SOua;BrSqj-ۍZ#'Jys7[g2z/.u4+XV2VQ.ޕ)$"(%)#Z7suZ%j }BǬݕe)Jvz8zJf:hIN|svO1O#IEcۍjݽ:SdὮvu^@:o^5cs>i/VqmVm]ؔܢn6'vޑ̗J4Wn@OlKbX ;n:hgJ9ŻyǑz8f܌q&Y fN0N;[69 rbׅC2/#kE l&2~èMR.*%g=Ft.%؝e8<.e=Uv{~㻏"EˑnvDѭ͜Lu3u0:U֝$[M5<:oi+V4V9 6nXvx&_ q Qqw3W:uϔ2yb/(ɳ|5zQiJ#r|Hw#.W?4aDŲ\ugWG;Cw鐢K|xg)##=O.dF˟jMUvWĻsr.z]kPc9"]R)mkfOd*uYf١RsB Aîh=k]ʳUrrZsq`d#r$/Ը3o^&lRWȍyuW̦Y4QDUMJ65ƒ[+ygk XK_±k#y:8(TJOSQhJt2.DR}"5[) r)6V6u5k:eXZmv𭤔!푊Q[qQ}ҹLE- 8qIZG|UM4j}Mܕ[Vwm{} Naqµ"ԈM zOpKѰ?IAD3Ir0'/q1itoB5{%wkOBn-ۜduqIzYK60{+DʕܞqIt";r1mG/\/ym[6JƫR \L=S=OT@Ix[TMm{>ݾտ֒ݸӉLYIx>+"JVNzx||5rI?C{oz8۹e\R-^\A2F R+N9 vlT]"ۭ d)t֞i #E2jB@׵=#/N+!ĕhx}I!cM`ąZ*ŻɄҒ߮Y.Z}='/oۙ3IpW̮hT7cTSuz9>B}΄&h!>lӵn~j˅IvU.'v'CSZw8QK3G> ,J59ٷ+HSg䧎hJdzvwv-cvxS5[̊n~ؿ%ַX?O0\6ne 6kn9.ϯ} *h 8_QhLݣ7q +=XBҲ5?[[)+F`=4 }B,sNg==u*Nj9k_GJ)+R~GSPBȒZ:(K]heL=vKPӢwq(NrG^ثϣ?#tC?.ͼ[ۅo؞y#%ǛjVyLSw%T*s92JTM%"YkQО.q)gCͲn8cgi6j1MѾ[{9h^vƘǚםidfi.^RHmg&rׇz:}݃}xT$ضk'5s-狶,\vpbPD،=Okf.c#cdz2FK5T!&)|ntD<+OŹU i-G[EE*FDfeaf2QƤM\UG_{ǹm%\yrGy:.\4wjPGUJޕUV7Do\7Vy_13w;[?c]H\$IJ,*L]3b%L{y.JRKG2sq,B6T}(#nW|km+q5] r㪍bJ@y{byz,b踊3ϻJ,'^xd،)JVw#.Vټc''ÝպWtbRؒJz۠8!o9IۄS95E9ؔ-e9JR{dmnッ<[~n${~Њ$W?&ՐY_? #a.ߑv?oꋘ?&ơ|y^N4o=3t=~7!/M3>n8W홎2M`Qx+ z qy8%]7_~540ۦ彷]Wq CѡwkďyF5Dum_}~P(5.(X,K9vᯐ?leB9;Jhm#3{CxGE-S{;@Fz˙]=O'!ɿ]' r`:7'2bЖ>Iy,/eTy/V<.H?UYY{\^#ѣr9^7?xoRȆ7EoS_&??zϾM?(~Q-K&>"~aߨ t7Emsϛ+?;fCr)fY+>z$tIkjn_>vnrֳki-˹l= t;'EyC¥|/BLwBJdgjۛ$s S1|ɍV%JI6KvəhzIlBYɒ|0"Sy0F>eo5W)O+X˻u';v)2vVq۳kۮws?UʑBǴYO漪e2MIjPAک\b1)DDؚKm6ZWΨgȕ۶yjڳ 2ضN[C[|r@9Jfo<_eI7q.|cÊV߷:i.:$ȋ)1%%)ADZCEBxJ0MJۥy(bNsKM9k43IwNt.\%N簤I'.j|ƃ2$grBEٌ\}9:v*!n7M(ɽ]7c@XxƱԨ37īf62cTTfFK]9wntQHͮvٱI/f|j=7}\_V5U^+:uljSȃY(XI.ȱmo1甅jڎIZ2>#\*:gY|4k\8ZwSqtyA!+];бޞKծË¥e)#5ap.QK^8VdU{*ѽL\=qmjnB5>{ Ӟ`v±5 ^k&O~Oshɷ,;6nOW>u6{RqS`)S%jp\ipdEBLfTWy$GIYw~䲭J.1vSY5z.V>^+Ǎvc.I[R{QsNR3ӎfhd>y?UJ*}~[e\i5U^͛E]G_FS(Iɿ]i8:4zj~շsW,ˆsy:%O}iur]iF5~3M:Ӟ#N06)4ߧgdawIotiz:1r5YDZLHBSi;NQc44la=Y kQIT*ըl:tq2(է9VO4뒳܂~2rq'nrVZŦ[t7\oլfb/mlpc.I8콚q^1iE~䰳mi[dۧw֤ICfdFeCsg:i| 6擣׋* 96lust^{%99UNRvaMܽo ammi$em4D6DD\nA%$$#}۷/ݕr99JMն[oT޲E"KTaP+HGkŴj5TM5xƱOS-k`ۛkٝWz;{kS}F;~q|~^_|euwnE'pSupUP)V]vE+t =ZRaVdG6= *.ϼnj9:UɷbېmF_tޫgHjVS'śǕًdkkѻ_]Kv?nT>)^e=Ar1'3ԔILyD?:-^in):{7.؂\.:V }#뺾.3r̸*xbFM aȵz 6SQ:ײj[ 8nn iFMw rR"5M5I旘35f^j='j:nNW.ʭocZvZKV^ɚJ.cM1ZI7E'6rg탸5oZ=[m Z`\hbMUR١Ȗĉ):Jin!_7Dй+f̷eKҷvͨBPR(V`y6tw*MRΝcB.ڭTnc;P$8nFvm4(D(R#R-L -2:FP lxZKQc6I("Km%$E, 78uXIFA$RQI$JbInG]c[ֹ:ZM+n^')JmJMJRu{e)7jQDw~%yQl}BZujSSf۩QZ+Dzhd5o%BIc'GZ?}΍:>Ɵivז-%݌J5MqGWTVʦh݇ܟ~Օ_6 n'{3~mϬj'J11OȻn߃r Qr\3y٘+WӍ'WxEs^O3 o~[|7>]]H9݇ZomT@]?5B:Z߂'`V_+/MSKX߆ޠk3?o7y:4R/7þ] iG߬aBRU&?r&/} cQߥGj2?C5Yśe7hU=?+ x龳f-܈czW^7p%-(\D4h{UK&ӡn^m]Fݢ:`δvj俜F+) y[{{ 7 tu>gvrěOj'5 iRg[ͶFjGe n~qT$ci ۚ0oԹc*jL[sVWqj\ݻ&6"WoK:cnWmrv)o>66(F>=W^bf#c zzʞtپy%mՉPël e}J.\Zk4ttt>oEM=q)hJjI=ͥ(%]脼_88ф;͛gWG;Cw~˘$4=uWdĜTثNDkiQL9U*O"4XP`02,Ge-k5$h>ܼ]3vr6!9RQPIVSnM(ۓ{>;/Qͱv{3&-[rc)ܚI$n{Sv3[j00)-D3z}MRzVQпj,T[uVs0\}Sid;r(ݝJ>æʺL&c[jPK0~d(FKÝW\m]GTcF|Iׁ)I3~#oX%vҦEݑؼ5Żv2qAZTE^..M{ʐfȏ2##.R}*KʛZz^ӞN*lPťLf\G6[WVQquV]XAi)5J!,$iJ6o$tPZc;Kjx_n3`qIelV~vLy{fn匋Ѿn%;zV.n'-ұdd2߽1bZksPe3TI9)$ԩIN9Vơ\=2885N\ p)/a柛w9g_lױo8ݷ iixJV& ғRi{N^_oAŮE6Y7I$Nk$|Q)-*4Z)^¸%4Qm [I%.c-OV+C֧R#%ѨCe3i;w$G+_dy| Fzj$DI(=OA gj%v/]8qԯNIS*֩',Q%\44ZZ%D|Ǧʴ6&vֵI$%8(ԬƾS&#Z. }6z?b/|Jl{ץv&mpx4Z$”ڝ4-H%dGKfM:sKSRWeJAn]>s6应-W9'H]'uȫYvgK^\czp|My\鏩w/ËQ.)]\QiS`8uL뚛̸=J"ܻi\å'-)54Ue]:K\퓡vK xwBqrH\*֕TnzC.mT=t-H]SČ~Nu╏NÅ3f|͡G~B+Xm[Q7U{9"~jgK Zoʰ7"qJ,ekSeNGgϳ] ^.6:s}_,%eRg<5⿨z{ZPun#jRІ.6g T.!]xa c#jN$Zpl̋H WZu8WmMRýsĮ?Mco~sx TU҆Q :KDG4n42.<3/'^?6/ܠڒ^yrrÿr2\D}}B]^E~^T cɛ7϶Y[<֞[7d}2%QPqOLEQR\CIsj1?\}%tJ0e~ *sk"*)&ۓEi#{1J8Hrt|'ܝRr8)=ƔN'RVz:cf]F7bZyZUȘ4x8,#JG̒?.W9XnO]KO]%]ƻ O5Γ/3qÓj؍/r̺rƵ 5\&m6h.xoeX[=<3%< lZ"2h\Z[&jW3ejm?k&[]ųj+{N{66leu_+lj]q* 7g*knأYv= q ەdxЬZ|%GUrQ3jLŒqET]1% qkXYūYc[7Ś]QY\jko\</Lc7+'hMSUc6qXyؙ~6#ѯv.0$BQi5YyIhɍiy=KD!n3Vm[V%W-B%swa97ajۗ m+9~]fKq|Ddaˑ0A]_v޺mM5* F-BYHJ5}q>ʉ.6hyDmpD׬'-_v5;5[8K[viJ.3dR:oYHHh9I7:۽fi+wm^ [)odPѱ52CZUJicSw\&_s0uBȍh32džzQflcd^m|7GѹE!fO5]]H9݇ZomT@]?5B:Z߂'`V_+/MSKX߆ޠk3?o7y:4R/7þ] iG߬aBRU&?r&/} cQߥGj2?C5Yśe7hU=?+ x龳f-܈czW^7p%5|Y:SJE\U-(a_cƣUǽXXKiȞNlmۊڭڄR!**ܤMeȽ$|X5(Ź\rJ~ܮ]>'HB0cp XFr_c?f?7<ukSgov¥iG>>䙗i.+t+bOjIܶ . i^:nm}s}(3>NZ$2Qg([".>i.ƾ)B̋M8+"- >eE6DݥJnJˣt׻ 5.˅nJGwZD~!i۶a,Db3ZQ3O#KO5/֍ozuK'GbRi᝘NV_ҝcvם ZoX}F6z 7e5_e:ۓj=AB+iܔERadMBq*ԯ DwI/Gy*mĥiRKg6skY/#SN4e$-yXM YL?^ĸNNӪ{$r1JJRSLO]Aqm>V/s[~i/j+m>z}eI"Qvp]{ZԼ:{vPAG2=T͡@ڐ#u"E*>C;o$~C#_d/HBq^YRٽzIKbOm\~żjFFGdiQ(*/i*#.FF]©m=BmpQQQSP&Ҫ!T&^>:y)$ˑÐFčI Bӡ-t!bM WҦŶ'UZ=}zvn~oT/\ǒ'nr8 AJIӆz<^uߖ4eFC1i+v!3qNyߕni?4JZlmYFXFۼO0B\m[ tʄU3s"Sr(NJ;SKW72L4̏BVdf^Ҹj\]ȱ۪(ӷm?J-KEmWڽ^4<8qu%9pŹW~877ܾeVгS(յe^C]yX͹! םm4FGȋ\y'Z FX7e)|Gjt߹#gb\ŧq_([R8[qU$Z (ʻezV2V!iQ,i$JE˂٩ a(GK'O{vnBvryRd-RK4=qxZJMl_CuuIz @Rt㮽޳!|68\-l[џ84-2Pu" RJ_^OL>G1~XnBŬw6J0*Uvlږ1N G1q9IUm*'oWu][&UyYZbBZRZNfEJf"+2nF~Eû7n1xv.RUM$6 lAxSQJ&n5ܞwlEói"#>4׿Q.nEq7Oko[1wg8ZQwZYiqtm&~">Bo?w͡ni2峋NCEy Ҕ+%ZJ ʩq*fpˤl,~^Mχk1+:ݕ z&Y`KLӪУDr3[*Z :(SL&ݻ۬Vqsyԭs x|iI߽zZrg.:mp%6ԜvgmpIUt;QbS.Է) ǨKSV,*lڌ|5Jt3#NP.=+OZ~/G سIgbꥹJnl_DUM\iM!֔wVZuԺ,yV.Q>f v:݇WiaŸN5Ҕ[M7SsrvǣrMW= \8ZW-jsnڕ.ZnF2qt ً[ٻޘY۷Zm"Jxr&NAfA-݌to9s359݆mZ+N1-qS$D=17 x׵+%_ ve4ir6Z$FDڗnFtOr'7'{9C˨ꤡaYoace{Refnft RR"4%ʌm:Sj3)OdInTO>X'vxV#jܮw9Fog;5.~Y5\~18YQܹvj4+~t7S ﬕs %^۵ڴDZV69R^Y+rj$ԇoJKR5wB9C>Y:l+EǎS{ʲ{T6Wi* ^^9k/y/Cs\g*qڵgn4T8mERr|Ti+iPe;;.i\EBEJ 丬i9ɧM-ԼsGDrZ>r#R>~X9y4b棇9JwV۔%m(b[Tjvl}۩~nDԺ{Zo-YuK1vx.nWuO+jN [ٮ0%"΢CdTJK-RަH"$I(*ve &҉FzB,_Vpqp9m8werv')E;o&QE׵^d9˦j\_,ڵugZȻ̧8k+jK{wmr@3ӭ2 wFkzFVqs1؛.v'I%$[iT]D5Dl2 nk7qUxԫLS+sا3/ΖeZYK<["%-g/kRs:f3;*E ت wJ%)5&+&rw*霣i|sMҴ|;R+fm䡩.!**dӶ-6s6,]zAXMWjmnz%SJߴm2UXw7MQ%<!tKys#P,W>s;3IYwx<+i_\\\U6 u7P|xbn_k&ӓVOe䦒 VUr,-㘘"-LZeOSҠթrEvq8Kf%5%&K"#%vD/.ZYYŏ+p$nZkvއuW9㓱Z G wYIFyf)?ƎUm5ԉ/'k84{KO:rQI}XRuԪ|*lu)3qZ[mSm5R3".Xcَ5c®ࢫI*۳~wRϿQWޝ(EJrri&ۥ^ʶ齲Im|[yb;mnm֩uiܘq>E+Ikx߄3r33-5𹻖09ϖ9[Tz~mr5NsWl$oPusޛ^{Z;);sڹf\3oٹZmԉ/'k84{NO:rQIBø8Bݱ3n֤DiK4u& ofSȒܩx<˘|N0Fչ]qsp"}! QWw@t4ӭ+cO5%]'*{eM߲DRO1y*q8w++e!c߶ܪlZWّM欼 CQ̼빶lX{vib/V/ ai;x6~]+z]MWB>re-:lgk}պ!#9?%܋V-c[z!W?c7YNm/jRr[HOzԻefճ0q15Zp#rkQQ0tU-AmڵP/cȕ?0cZYj;:0ZM=D6g ?'UN+ձ[K ܖB2'xq9{|۫N0ku 7xaj;n\ 2[VznMlWiKbSk))f..)Km)&bGZ=>OR܍W:j'rM'wYz&/鶧{Sʵb"vջq[I-ՌZH._x*BagC'T(Q:$ͳQcMCKy?3g'ߝqnT);qs #ؤZ}OOI:cfnc8W~qy.;^pVl]Hԓ>^H^@7-AA܃nmL(uWܻS߿ Td95Bdh4t6*dDh!EhI[iŨ\L.&Nc ܮf^;$R)\rip9I|ٺ?#R.ZDZ;/]nݻqs\QE9M&Bd ]N mN*D>tgbK>+ˏ.!23]BȔR1ɝ^j'k2ƮqBQq[$di]icV/e`޵B.FIIJqbi>Ӥ|p; 6${)RU>_e}^dzdfzi %ekRVUS?6'hׂ)5.\+qUgzE2C˷ecŏ^֔ibk shesFWJ#~> Wk~ݨ}ڶ>ơǚ)׽ZƉo~B-ڼrvoE:Ʃ3ۣK7+Y`WirS):{>ڛ}:wԨ(J_";6R%[u&ƫdZ_\'np| RJwNeTW,=rrbnkڄ[M3ܴz)3- R.?:okۼ0TU'w{6&w7j1z3ON'fGoO?)S_bQ_¿R(^ԴԴG.EtMڇ&RUiW uQjU> Kiu1d<ѥIQ'RQ1:O/lŗᏩiʂv&Jc{D5 Tt)1.n[n۶X}RjqnOʽ(~[Ns{ސ⛌uO,kgo֢dRNQȄ .'6W!׌P朼tdZjFGE"]K@'i۪N;sI[{SOzk>`rRR+!σj8&TjlvA̷Q?HyjyLHNտJMjܶT۽lG?SnKN%<‘ nq[N0Sq[Ta(&t(|HGO~gvkݻTR4&Z$#ViOY1r$6YF?e4U/Mvxų:zbU^gQQ+NW_'4jfz^c'#`rvrڡ(IJ/J ݦ6 ]-CW |_{v*_q3^DZ}Ic6Uڌ8p7{crZq5ki`)mU6|-Z5^iEz3P=:Cu7DF'k%}<C-޹ֲ̱#\,(f88%X-N(ck0VLR~} G"-8ӏ/ϰKq?(#nrVTmZ;zióM4 m |UT'C^_1X.gXM{%ʤd 4\ovN":"y-,T)fLQgۢr=/CƹǨJVr[a+!rT|%Y\ٱzsS>jͱ.oOc6f$q% ǒGo;n[];ߎjrk{~\VۓNIGn:iqxo |~t5)Rxעri{Vi&NUOl_ѮMfsޕkЄay.0P{7N((BaIP$ K"U6Gl ݙqJRu+qN$ m#*p<|{:>-Ev=86N*MM긭U*uѾ?/^o7;'u,h4݌xښRM:5.(/ \իU.{F^rmF-Jɷ.>Q"[4xT^OZ~mK}T0ݛ^SAo9u?lX(' qj%=X}"^e4wˠ|rܫ 6I\Ķ;Ӻw!'ڍWg{ i U_9Avhۣƾ+:vs/MK[ɭīe{`Zgb}r[i'GE2J7Nez579wRq+Un ]J.cJ4M:h箽Wxxm^ pc\wcN%'My $$| :$Fqɏ¾^қP9J6Wxvu}ݵP>Z'FFdg"-; [¢cmWkÎT8nG%ݣ7*\խCLRYZͤiD&J#'ehbSyXK|y*ӞpS̍R`[pTr/Eg)K+92{_ n3zwz'oŸۤ+sOj J:`T>Cf*lwd\fYOP"R E֢̔L4ɥ :;.b(B02rJ蠟9>V'9M%)IqnhP<%,r'P/vNSwr#w"ݨaqc(|{kd=^0jTMR2ULNz|.<|^PfY22##!,K~E BEJۜ&jRNsHަޛg\r,v؜.jK3)[EJ2ii{KEiHP^&]Gn8x=K}Wx/KI9-ϵwQ%spܾ[^R}S3$qvq8M[ ozKxcqmJ/ӿ{_}7&ݨ\f6ZSyQz& 7ۉ[8~UNn|nkiTB+4RI8'Nc%tn{!]Ȋo.nEmʱn𵵥J A+wy#+ikǒڂ;՛s85'KmE:Ђu""Iģ5p=БbTY-ͽڔ詻ngL2Q}$de# fs^o{DUUsfwӶ;s1T,ǤtޒQ\෼J=.tKU,7čJ5 N$y3kdSMQU~mO[03 $zAڟsF5^뜞"Կ QHmrR"ӳηer+ҔZ]hE-6Jmt'ޒ=O[sQj)6K}?e4v_KfZheޓ=BV[bY}lݒTTЬ{ȫvO_qpRApVŗ 6ju=*BR)g "O1yhb=tqJ gtm\b3RY+JQ^Ō֍\յ\>+uSi{=x ^w;uӘ#ĸzLn*$anok߷CBӷ}5Yqvdž<( "_OWit5:EZj2 B ρ1̊fi[n!HQF82q1牙nqnEpT(2RMoM4ϳOu ':֧_Xjsg jP^(ڙ{2%E͖j^}ZU[Q$'U) <܂%!s"m R'G5M0<+zM6qYm$ڕ$3ǧH]?o2N<8F1̻r_my[Rf59NjpzBnl7*{.QP 3N&^BLJPjAHCK2Q}$#~YMq8 k(MFMU)8MEqTy+Tʞ-ar5yܕOXw!e;q-Jqܶ䓊Y:LC UE{/t>r"lI9)3KJjϤA 6SEE$d߇3KG*En|P\ԭTn6I-ƍKTj<1H_zwGr19wF N8ݝ+a9ɫM6mhePi%mmD! """"""*1bRKrD"vnrM۫mmĽm]ӡiG~e"˩ lhRTMk^MX["Jݱk7_ޕ*DqĒ&flՒ}`W}~SմZ{ĕ~wm*/{{ѹ_-0ط#P]xlڱ~Tn5wi*lڪ (JxioϏbqKYR|!|KN53 OS222$jzww%i}>N)E+rۥ7c$Ofl/LNث\6H9: FY󡈾I)fB֔JI_ ֣^: 9mY{66㒢7Uj]:.-os[R&gMF3˸#໹kmjq^8W"PΦURjʄWa˧T!͋ lW48JB2ko+ /Nw QwQzQ ے%$ޓ7^YL|r7!v%Trܥ &|M8~ybrn[RV gSn{{*#2#ԽᢏӴHak" ӌcwҜw&RJ07ױ>Ļ =^ BɆ)v32.M1=#6%̠tҤnzqMwԣ~s*%-j|_m*.Yx9Sz=)qE4 3pk+,`=kNRڥ=B=nŔNAx)Q$ԩȧ4z3t#Z2lҮYn$S%y- JzGpu|LBV7ZW#;Wwipܷ%(6jFG5#{$D"uۭ~]֫SrD܃fҎӾ+Tu>-ZTQ& N|$沸ii>eRWݳu'[O̻j8JۻEѩ[]vni= ڒ,[_%kC7I3Nv$4ɎЈeٸoUu:[}Do5|zNq=Tre%ɧ6&~DȍF]ƞG5q m]/w/ \ʲr8=oʔe9U(W"|S]uZd#?Se[W"ֿh][-7Nu:T=)R}.;ml*5Dlf $fF(̏T hiIUU4Szɕ t(%_|2 ~6eM;TƗK[f&]LK^CE2[ȏBOd;Mi|cx,^6;sیGpQ\NuJIFTJ~đArh* B"$H쉩eXPRj?sl"ԥ)su]xpԴY%VESH"ЋJǰ K&5^Ukzׄ8kEgS2h&Se\ Yl]WҶp-ZUvi7QS:4byqOo+[̺腋[6-_Fo.6[7$p&^ _GZԸߍkc.qqoI[9m߸YxOZЦ1uoiSH)P9Uʄjcq= S>֙NeR><;+ڌk%_qT].srNO?s[=vH[]RZHRMtᩗVؾ:/~u)ԍdg%=edVrISb{6vSu=(ܥ)mTv/J}̇8 S3ad:^hBSf؉OɔLhI_1d8,L><_A0y3rXq"'(۱;mFNII.v5_(^q~X>y{3צ I*Vܛv/jW' T'NR'j%ꔩ:mJ3SB}΋!-H-RJBТQoedi9tjENenPpke.%4]#{:>mkEɱdYWl\\\'nRM4&U>?Ќˉk÷!𴪛]]5}UqG~ݏI"O~s6(Ļ)qO~h}uԕd}Q~G,oE!&G&/]_H-O=o{k\̭bkv.Ô܈+;arZx)m?M\3lU$mk-CFXjTv6u' g:Vn_*qk:VC A%'4JV%EY)#BғO4<e׿jQQ]yUr4=wm[K1r׵%Iũ-O}|kC;/VcݩWZ)EHdžTru]8hgĵ-;=>U_ InvTm_jBM+QiF"9*{DI/iuo(=TzϖmPQl_v4z>T*ȴ>YF;ε\t]EH4ꌇ[VrLzef 2T^V>g2~kg5~Nק;{~Z~W}&ŒBӿS2$J?~(Yœ"˲ߩ\O]: J׉ښT{mmIѩn3˧)4LdFZ/zUG>U> n 5& ϴ-KJi2o]uKljvK3$bԔҚV旧iY5.ίfi96v7!v))FJM4{jG~Jt/lUE%pTAFe4qQk\ve۽/u/Im+W')v{\-E|Pms7߮DZRr۞/mu*1ՙaB܆ -xg3#6ۥtRogʌU)׎]ZҞNnŞr}F1Nnޞ;cZ{N}ۿMiuxʉ*3qi'9KHQ$WJxXyرŔe~[v5~/jN9Q4o6rJv FrdxM*iRjMzUinHdн7ᾞS=S'7 } ̽zt7K|_g J=Lq+/Bw_\ۧx\HJUPzQ<hqF[V0x==CsU7q|^ {)Iq38$_A(VgcKu06Ƅ"%i~_ˉk QCܣB8Ku/񋇵u([w}$F|8TՠI.E !;RJ^}MɒD_q2];Ɖ{5}*n7nEInO{Mwv}&q+v [V}Ĝ@%>#dXQ$f;iep.GquixVt x6bj͵mlKقQ[T]zs/&yەnM'W}!Fp_d^Tu N{ɻ'l{խ2.sTu{W^H&;1s)Pӛ6>$mě;Łnj= fLT)>׸+qReɴ[UR\L*P/!$Ӊ3Q 'K=m~6XqW3^W+ųO_[F$rR*u"T%@O +%# ]˽!aܽz{ͷvQh쩎]hGތ5ɇ*DzJDRNLi 4:{~2FmXY-zzĽ^f=]uū{/+&c:Ma{ĝDp2m܍kHș/(--m_vݮK(V{R}.k&yƴ7i^4@3f sK3^Ř˸B=]?gt5KbZB<e;kQLpxuWC}n 5ҴepB##~q= `x]KWF {GfŲ}?G.I9pjWkU]>={7q{kO/^I3==f1ɏ%nnʫ/Zu_yXN<57ۍ'vy/"8넭M2eԷ&Y,в33%IkjMr7xf nmQkX4踼>a-GcIeތw&U=-:qnW)z¥j :WqSZvԒ#j"KrIU)%qrmRoDGQ~SYRsu*V)  ,/x)MFD6O#]z 96[Ui(JRfw'y$GeUީkdMF-ݻ98F2d[o{Rn0n-xsV6Dh|Eb2E:KCOӪv4SJCr"J!!m,hRLD| ZYFm/X~ΧfrN&4Ƒ=Z9Mh.Mܵw/BdrܥniŪ8ɧ|y%œ[M=_tj?F!z5\evM:\ ~F-sg钬OWq“iiȍ<Gi%%n2rqͻllƑ)okw7}\Uk-:&fj솘XerV9yZuʼşdFC=rmo%~ZN78X(N)_7.Εn1MpJ}62jjJdI";R5&iLԸc:jmqiQj$ujp\{;v5B񥍪Xn Ą4qOERjzN(Ga٠䌡)p*v(J7#ZۻZ8O W uONb+^Qipv9GvֽƼϯrYƖKGJQDNPhRJjᡧC"21"9ѓS1;R_O7/WGz)8fE%F2ukmvSov/iZ&/]~KmI[:^~ͤ\kMi稜\ywJt3W7 8Ʒ~ݥeFgѼw"8VVSج\뻆}ݭ/J6Q)d|)zU3>k\L=;ow֯gN3pKѫ|wmkZ$z^2R:E)f>ς нd|#׆?\ǔpV{;\$ƵE%-ͪm0S6[n< kE[}mvE4DDZ^$OZ0*$~XUv҅B@^?]so#%ojw;Y#SxxueBگy v^i-)s)zV jC{7Gt.w3v,ygg8s]aE_,*E tY5k٨h=o"m泏:\6w噓aiL׎n^c\75AGkЯ0Lf46َ`egZ˓p/k;̛]kq!ݸzpԭG"}R9Ve>ˏHUjJ-&7nrnwG*Xv\˱/vN}O)ʼn&CV͍f̵]r\PMB-6Du-#RͰtRN^)mT _}nSȕC*_xBuTkJW[`ɩ`ejvsngP ڻ.-WUtܑqԹQj)t;vN&RNũT+8%IXӃ5fK՛-d9 ]CƑm|nZ-6=Hz,*aEm W3VzRšdY~Xf׀Xx"]s;)5u*ُHB BRGS6bݶؿ 9j[1*jױga7oX CUI%0v#~\-O-Ꙛuɷ쏪&5mY٦M`LJ2qK~HZbr =N'YobI. (^ ׾{_ ?OJ`S`3BN[}5w6:ǵ/iSlt=4F*d&T4y/#. ɵim5Uֲf 眕6Y7 fơ=3dϕq뚩$qTM-%r!$@A? ޾V0c~{[{;򥧅a~ڵ»&ڄv1ek=wb MLkNAԬw-x>~/r=e73VeVN)K%Sښe"+3uXuچrn ֺVzscJ峻m}vb㶓n\YbIUBT%*,0nov=;z꣓S/nSXSpl##k9mXGrZv^Gde!ŷRԠzQyjC]`gToPov{j~KRBMY}i[߶9KL2ԉO0K#m>wB[ٍ+n[[b٦DX ݲpo] [\m5qdT()mo4Oy9Ie b][wղmM~vmi۱~t \}$яimRk(L c Cvk7r9_r1 ;zv|F@KyZ[&jEji/"6$69ml#e]9s\{ScL}Ȣؿ0q/nZ*t,CLoD߉Njǚy=Pgmu6^]l-["çUʖMlʍp-"qmU>۷uFOJ%Ǔkx 'g=睋k[3u,{³WɘݪF]ՍeFX"Oy\,cچ=w/gn Ļ]#2? vqy-gXnR.^}ݺFs{ŝG]}e|#0mjx"ƬWكm?rgU^xVB":Dt>@LRbun~ݭ,w+v⪕;\U(RYa61>#Jm˞Μ9g9XKaG='u8gf}'qy#ɉw J]We.ʲ-<+&q%s?2dњztҼn`cΤmmqMdz O[-ߩӲ&;[tmܝVnr">{x<8U+p:Ig]zjGkt,uzf}dؠoJaکqEq -(:d<պ=eKy[˗^%ZXkX[C2߱\ITTLGzANM￵i]K>UsOGDDD.ZF6* ҃V Zhz{'xp^`wo8r0h ZmJ5"jb[l=yUu7-;7IT%:jFjߖm0tzU'K)څNۧYJ)4IQ}^KWm7kSP>q;ނ#)'n7&׊r?óM{IwR\j2Qn[v pe#/tAF\ϵ225q֒om6z})6҅*oqDsMf CNIN=T S2t,_ѧ}kveMF0J\Rnnݙܹy[rUc-j{yGtkQ%s]5qB.Nw.JN1LvR Ui5J ZESQԙr):MJ+g}χ!2;q([jAud][ljVK3$ײSJI=/|&tl'*n۽f.frܥ jQO8>&Z];.|7T/C}$ڋUmP2Reҭ8hFF\L 3~e v\۫]ݝNmrnB%*]Z«hKc=BTLG :V74$=Ǘy+EX'4tn(I:Ѝ;Df8c,k1%dJ6.j6ź{N~l6&*fœI7 WAlGOu-ҢH,,(ǔe뿋쩨kM܍ZſgRvQ' 9)?n|er˭|I|-fGK.rΛp8XV1%K6mvG+tc+qE&ǸC_Nm:l=_/m5^[dߌڇ.c<%:)tQ$Ow~-aY;UJ>=F)2[nk؆?훐M=l6[4(O.]2#-H^n#->&mp5~Fӛ+|| S,xag%qkEUzUgæBhߕP(7]kFnq?֖CpruZ6*rEڊtS|*tI*E}7R<,nUU֫^I7Q*mSly%rdȓd8hE<9oHhMfNSRj[i7D[Rj݊+kდq{"$$H?p\̅S?㭻;t~R߁)^/>Qj`yt[w ԛ;²~+ߔ_ YW~|o]?x^ᯛ `ʼn;g)T@vWn]>&4lp+$D̢1l|ȨF%-}.9[}w~ ԠLM9hСablfe&QoW!s?wjLK?s7yO>(=C~_nyǜu?v3vyo oI@qV-jeES^[9WoSܝh"l2C1a͔CiJ@3:Pճw=/7ovuk+\V;lDgն<[A+rX~d;m!_s8ݖ׷;;.0llUC+?i#_crʙ1~C.\–q ul8Hܶ2m`ܻM3Tov|Bs rɵ"oLS- DКw=Tv@f'6|YlD͓Y%׵-#Ѯo%:&!3o%\J<02;K87>^vgƓ# ;ݝmz^Y6=PS39U%~ &f# }o!muH;ʲŇ˷yvP+&.7e[3'vR4Yj̗IZ`e˽3o[WU{ m[sUbۋZǾۆl6~9'V*.\S2<Sd*zY[aŶ`]C$n.v^Ʌ dng>ەZ,Mmϑ :n6nϦezWqUJ4! ۇ4R! =>>Fn|Q[{pRO17ƕ~._I''00k=b՛o}Osðc2'o\3}ݭQ^2 . R1yKȣtAݿ-uܾw!`?1Whn|gzUo[ECWwjUIן)^h#1ɭ!/Z np;o;ΗŻkXs."6E`Z1 עӐ9Kl8qd q} 2Stt;#j>;խabONŗ=fwP1j)l6J̶|gV2`y/0E˛6+ԫ1? 6}KW c\KoKͨ2ۅFw–s*TԞLיuDx .kCzWXhy۶gLu|%TnupǺl-S* PRaLnT+c+*xl.v!.U=|; !_L̎뱚U=4hm:ٯ"y)$:>%(n}X'p[ȴ ^˒4kƓmzDx \ 'NqamP7nyN݅=j7%McSڵj%STy qXymvCg{w/w=wSW5r̹u erծˊsOm=DhEҚRb#n)QOxtվQwe]I}wCa'"[ۂ-z}2UuKP$㜉ԧ:mc<Ý>RoL?wu|%ҷ&K y_!y9 ??:tq3(UU-lkS'ɸ@jdzQˬR] EVPW1DJq2n:,c|ǻ̑;y{X,ۂ.u.b˕u.tKBjQ"[S園S`ٮdNبeJ&9Ơ ~0a(Vm٘L+Jr*vڑE( x0+tp˕ n';wm-ޜMOxX>{#2%jgb2M[`K*\5@8l'e=0u+w ֘鳾{y܀:R*Ya]"Ӧ%ktynlۣ65,3gU}{GYrb;ge'TKwǘ.,rpܚV]Tr,!dp /ԺU,xՉ>s׽~W5oTh yx?xrrx?)?ilbT׬,z$Ԏ.UH٠\U1pU:]JwSrGZq8àd驐,N67QYBӢD㏙W!Q25ϸo9ms-7-%3CihO.J鯽-;MZM8ku-7k9S$8]q2E(}bۏI[DKOK}3KUB^u %Y,u.-&f#]'܆o$x`Yu,dzwM;#oKxn;\[d7}Rb+*Y䛂ZuBӱl{j0O̓}LhK;[aֶaGL{Cb#S.T[>߃F]NK"u^LUʐ_ykW?!GRj29͖qa'0[npcDvV)qz9R)PۨM^aJx W] r>];eN3vxdmĘ(5W2K1䪖weF{mE/QP6\u54x5[hۮ-Nk”i[lUgL]J}5 S:EhiUrgHl!ŒJ$pe=q^b͵Q' ?6|R\,JA ڵ"TDꈭ:ymg`B5t%M] <N_zv2_Ortٵ/i/ReӮ*7[qүqEG* m"[I:6e^p"I$jԴęh!m)]GZkcjS!{e^z}+Cѥ9;R|/ֱeiUԏCNu2Zhcٗg$ݭwvr P8*7/Lk~I'Km1+MW%Bk|oOm>-#qj*|Dbѱkn|n{v#jĮqNpMIUm(7Liz;{ҜݞڝVƚVϬ+sO!OstGvxӉ']uӎ4g_ 1^-8ۦ k!)Ύ5O;YSB#2Zzχ;<.ֵOtge~.(RC#wFZeGZٸ6FFJ4e2ˇpJT$[wgV)q6muDGJ56q\I!̗ y/I~RtJ9kJ]Iy*'FN0s.[l!fw'y(7$œ WƫgyΙdMEU JQJv̋vmrۖ.jWR_M֨djYgSj0^\y'EoECjm$ IƩK>Z28J2TiJ2N#}.s cArl嫶nB.FIJ.)۔\ZiM>/hLĸ=C1s[?YMqp|94- 鮝𦔽/k^#NT(Y LS$6˩}{;5 )B۷W$qpN)qqoot}ZDVә;7TiK|6f3h$dԄ}fqݡ>Nb򗉉+ͶO]>ߡ_VtYf79ڰիF sq~prս|QM)g%l0ocJȨHz V;Bb/kLAcfPJ,ԭ{ƍgpjNR6VSI*$!yV足jᇑ.](EܣqM\qJ2eZT).<9UB/(B0j)mtKEj#׿fDI-=rZړj|'Nڤ]k*i$5qt"ݙPM6E4ke^Z8ۏhz$Q(R Ay2zfRñnpnkbkI:=j &ΝșW?׵d{+ύM'??XqeeĽ.[o=UxFS=ӷdZwenՄ]_X=ĭVa* pKs0ބۍfJ3 gz̚i|wnxtjc¼5${(1fXQ65ȼb̶Zkn>%FQMJXӡ{TZEVNᖣimT/37cNJUPnP҂ZOE~"-Rc4^b- FEͧtf5[)S!OZIښݲ͑;tvܡ+N)AR=hCNn;wL16-:特7M$=Tҕ-.R[HٷnXk sn[ҞD-0WS9p9:-Ϸ-jѬNu{ҹfv)[Ľvwfg(ٷfe+0mYj8Q1\ݧg]Eǎvڿc!4#j5̋C2"}BRriFp7=ô\TZ:\BLfj#I22װ<;صZl j 6:l"6]۸ K'6RTѯ^ئOԓV\?$x7s#r:Oh{ց=MmuHԷd{pN /܅:UE#Yy+(SgQ(Щ)RHzw>^Ѿݻ>mK&^ '$Jۻ&w%F|xfz%˳ L~3N?Cy9 v w/{ƿ kz3x> sXv}vP"@WyC z`'톽Dw%-tt yVY\wmuPYQA0iG-2JP,6/gˢ]u.-n!Zw.N7Q]Df}Q0({a\@=i_X7gFǘ8^⻲}G MZ1)WEfO12G+=-B@z\`||w6ċj߬m}UwRox֢I &c~XGP6Qndpvܻul'V7^FJt^{b^B(L~sѣ6@߿^xqU!ڙ5|Vpvef-uӥ^3  FSDɯKD%0r}FF穛r7 +o"V8tv̖NQU!5uFd"bCr^bJ=֤fM#ʳԷP0O-9xRBm\=`r-:;~3Tl(nXtXi%2Vٛ#vwqƴ`L@"H‹qW.j,JM5B[)WܺUeZFqc'V˷1W7V̾-MHФwn8N;HPSdݷC7&2j.W\τGŎ'Vb]c.x+Rx1%C2T{myg[qU|+m:M:շ8҉yWd)ՋWS%%:iqlʹmGwݹ WnNŤѩ5(9hTٵDdGUi-)vSs2 2{OnT$Xck n:¶(lASLeȔBjμPpTb2~N2~%^k[ܗ[Jzs0ӓHBKq[}JَA-$dFQgjxxFv4r/x*Rm% `4J(&iv7SkԲmSH1YWmx 8n.k']:Z˭_W >ڃXЩ. jTq%Aā[E}amc]D:rmHRiu:uӚӢ\p(5-q%e)(۬ҖȽIf<߽pr&ݫVfY91q2ĭEQgYbTGQ&,yL+N$[q*RVۉQ=FuTܻ>f>f㋳8N6$܌n)9&»iˤsX,݅܍ȩv+sRTpO}d?Wn/Inpȸ%O]StQO|v5\}7Zwb.AIVK^:wb{[uݯcytO߶S<{8KSRׁH̏N7ۚ[xkwYy_'ZӵF+>쌛ZUĦreE9F[24De{}@:ExWs-\ǻ7K-\JNvEk%:s˙#κ].oͳ;լ7wB6nwu:$L; DkI#Wz.:Xp(˅v$Sq,wn\qIN-e<5Oe+vuYTpcojUI_ާP8 O 7&VL8z$_B-H-[uh]T{|8=qVRN-:Ij:7PUtXϷmy鉿:RIM~33ӸS2#׳GdŲ5+/Bx{(WzȨ5Y㞎#|˖+ ط.|e<o/rߔX>7s}VE.OVti׽ .5nNJO"95{#q}Ay9do]R"M6z\tnNS-D!@3N_jicWsy*5uٮRcWv/.,j}=S)j5C^> Ie =gu9ӛqjtz]۪TMoߧI!Ǧ¶m:,"[L!{qAv-o 3{"KʼnrIkfٶj2ƙ؄S`7` k6jzޞ?e5G&6uʷ2%ԒRKE*G\Npom F/V |C0.q_eenƣ<5Oh'67ɪn[SĽ{ڔjǘzs;~׌(ۂ`ܢ1ƣ` _l9Va6%UQWh~P~\F^ZHR@:ۧCJ{ôGeBh;~ۧnU J\O+n2 RҠ)ng}Kh{5+S×ܛ.1ZjG)iRȤIN 4%{oΜ/eO[Nffd ĹK?nnԼMqX'܌nZvq<ķbFnͪaQ`5 s,M_լ?-@_{w{ӺձJ}GF[%v\5[ŒGkOw/ΜM9rjË%2+rd~+󲕛C9U۳r[aJǭm|˒LAʨSCq[XMۺoubfp:t+ΤĻo ][ zt-*67kvS7D·MMCQXm;)܎n_h%]4ܙnRk!]ڵsDUF"`R, &#R_*[z*ZqFXɻ]7|۵w+'pFDەs=r./ᐚm3Hשy yD"jHCr':sA65نѮ^o1V/ f;nFr3VM)e*- s D'H݅fӧ\*޷[k<7u<-]֍Q8R h|p=WlW3s%Q %3l}@U-K6f-NϿu|ڴmWN׮[׸F*mW\%r! C78:޳vBG7ŵ.JթԚ2x)ST!řn~9 W:Wpܢ件{xf8ٳwKE ҰWxVB\qBZ 2wMb[lGSnyԚ~z9ZmያvoN2Afnݽjf>)j3 !;gOYʹK" Wftڎ+׭b*2ϻK>ۢӱeyԪXISUm[z+ugX%0lϏnvg!;t{BqPj>PyvR7Cj]O%+ݲ :qiMj6W}3vC/R=4Som]ŗ=ю, TF6U_-\6MyskwMr&Q\wjKܩyMϣUj0*}RZܷSdY3>Zjqj6TgzpA/M`/Cmл,޻feE[/+uk^Vs1W$G(JsW2ٰu*߻q*Y޵.Wi:ur5T),=0uRmho.twܖiYwrWHntvEj8qhf`Ͻpf(R&>Ki%I7$QӖm-2 ~yߗQ-앑/ x[k8nw.c㩵k}]FkbJl:{.(˩n0Hqvαp7 귎.Gupx[N`Yq'+ruU7[ү+>!xrȫoSo]OC# d^Q]\>!ƛGw^Mx"-+%vdX-:M2UR%d>%l ioSu6lsj7D P>XxHz Ukà(n^Q V>5cVtWj SEiJdznyej[lE' 3kuٌNn4JW)gB {4 j6&]' m-(ZMEz8cz>WZ6#7+[,MR-Z!4ܓtCyE|umj1ƽvƷV\;%>Q :#Le(iVz5 4ũۤUWxX ^(ҔsլB2w-V ^R+; ˂M\z+Uwr+RWY⺧~ Q*JcYSNSλUd8in=v K낫k\IRרSUaCFmϿ5̗P|u ZTԕ}>oYѲ1sfP+sQkX8Gb~6r,s>^\,mGL+7[n-E\.Fqḕcl*Jmjb5 ,m]c}NXfeVlǸJ5eˡ$4%g~N p4Y*WwW٧<8v#;qԩTut,m"#Y D\5V`\\Lȋ];LȇiS6ϝZ l>LruR\v=ǘϔDg=ԈdFZ+M{=|,[;0>RiSi4,S5}yxw&(E7&fݙ4UՕ! ~'Id)]ǽu2K-fޭ \08Vڅ쓬=Vy^^ IhyKR-B#Ըr=]mܻӾ'*Umkoy rTqT_i,/8Q^<ݤ|4ԻO(܄"'5N~#m.(Ҿ2i6Uev&I*<}҄$eNtÛzyWJubW^iBW.܅Wڮg]irO6Ve90sgv.+sV޿aޔ[p?3q*FutUo*eL\KM'EG*ZcAFfG5J 5jj=MJ3OK:k˝'NMB7m3uFҕ\-Ywg%PRqMIyZGY9|μvn߻5cWݷa^+X֥vnݘ\v7m>Fgzv"-;Ew֝}1|RjN𿊀7g#֟*GQQ|#/bo]p$>_Un9гUbn9׃ErQBU-^vDmVh'<R[fdHT]*~}3j;nvjc7s-rӳ Y8[n[1pJx kX[Jk9Mn!_Nю6x:iZ˦U |߉^Ԛ݃hYxk &U^bwKk.[jE+P(˞=9j@snCv7%c_7=xǁ<l {t'酚+1F‹l׭:ݻILruǶkL-L(K0L1&>wXB(pm;1fpnlp֓%Skidkt(U +xulo'/ڕeN r=^pZZ:Pnj8Hf"48ijY[ N[yZٻ+=  ø:3 ?^ܷ^Sr#YK[UF?CuhC b]GM')mڏsNrܗI]ljq6VB. W,UK"YX5{c >Iqā> T:n!,5l2VzCl|+I[*SrjnS6٨y+x,@>П.g+!rn9>N|W>OZT_ut Y""v7|sfި;Pclm EùN,{'fNT%U&LfH8~1v>Il}统u6P˗c(WV~H^bMU.o*oOF0N:_:6Smr_.b+|ݶYY غF,mwjv>f*>QM뭱Sd:`N{l/⎱;n-z~"Gze퇎J5S KG9!Gn;N1 ݎ h6m|S?ɂ5'WOÞ 7|7^ao @mxGmi^jϽ>01Mf0լD3-2T. VXR"ɥV Kl J O7|u?bvа;6.eߓ|[1bmRr,eRz`z 6܎-ͨku͹Fː dPhYgZUj}nvX;z=gVեTv_J }\1n7w2J?ޘγc\E 1Aޑzq;\r]]\Y&[nsNei\uURje*Qk2CSl*xJz-xٶlm+|UjUؓ`Ladqiĩ!Gd\W~fz;Tn*PdRM&T4`չSWq5k훶(N"Ӎ% V]֦wb.nUO!u*J&Oӕ2e|Z=eV쫚΅g#+/RW:طnbi*Wyo)p{:ETKؚR(RY+r웓r(IF) VmȵNB:h Q1ғ|u8E]{,'$-TR[j49l*3"I鯴zhd>Q+\BkNF=.$ZR4Nwհ(IpNi.(Gi33#33e$FXK*NdWrud[r{xnk$v2ıh+J1TQ[#JQl[tRO]LHKٮ NӍnF񨔤֞Em'MILB"ԋ%dBŋ+p̿_17jzT~4pc Vo\ƹb9Rq-'1j;8ܗ)hE%DZKS<璸Bu*%*Yw5ڻ9ۣ^z4U; Ñk\U(o~G?VUĎ:?P?_F_Kߤ~ᓾI |pr.Ok\SklRhҪz{­P .}SktZ7UQ4ڌIM8̈eaӊJZ%FFZu,KZvln廐SNFIVtuNi?CM5]+Ph,{jN JSR$IS^tSUVrORYu.9WyP6 [Kiu m!X|]Y79ӄ)\ģ)pbڳr%*&ꑶ_-H*dzk)1 V3')UAϹٶWRxe'պn۫h7AR9 EAJeGLms!%D| A 5]/Q3eb̄vnVn%za\m kZnv([emqrIҕij|""><hjJשvvǕ|Pޟs}V~2&Z?+2N&Z4w@)4iSڪ_>/JN9Hiۏuf8'It[ȲR.hZ$ȋ_Y ~U<UUO*6b)Ovzڜj\R̋.$FsQuҊj^נ䈈y<zZIuP[}Qm=C?zN(Exqu/kn S-FzKZzOסӽjJ\)F3b!r5ٝ|;6 o=-3*λ]αb\abqRi-w޵⦪~b8Kpo)Z=>)ғ"5/GTZLE-輵f7ݘ۹~+&+w/7GFI:l33fg.N~۲\2|*cnermnnM+Fq"ѪIz%j =YW8@~gc/~?N'?)«qȸs➟n=k" X“m֮VreMh2[uݖ] *FܖN)MȐ`f0 g,C9̑o;ddudJ=In13:ݒvvdMUEJLp^,6t-@͐9'{7m{-3,>hnF;ѰM)->>+Ěz!R* :`e--m7nB\u{b U>[8֪]6^ߤLʦ\DFNo$$dͶlgno8OrsQ\l̯hRo8tuNo+ CTxu!2[>ctFpeޓƻֶR"3QrQuOѳgwQr;S~)6HhZw/GgVTmUf_yt7%$];zLWF̰xy2Ʉu!MCmš_0[W6jf#a-KLi+3Q7c^qg%s<1aYIQeZf+}>;S6L0]Yu_h9߻<ƅpmiM$AVvŚ,*#t2.8Y)-Zhshü97/#Oro"u^/uFgWɺ,p:6a,^x%$Yve^3PƗMnTP&yS}OJ '덫MH^:rXԴJۋ/rI;S*,+yz1hv)Qw^ڍJ2oL׊q(\fDj:^T%vOadɂnS}ZO)N*λdaȜkG_PIEO}нa(^iQX᯦-7^)%g'SJx(.S9zVɴZ{E ))ۅi/s7 VIV-|sj0*UBTHIqRf>FP$KqN0 R̻8j\GcC}IUz\i 6F)Q{Gҧ3qSzKj-Az VЛS-zy:8*mNk|D鿓ND2u+0Yŝ7kqm·?8Ib]u>˗^_>(]vӋzv+ݩ){vZrJ2RQ몋C$z [,pp,8mڊbR]Il .f~d/ݓs㓓mͶ{mgjQwn=Oic9ܚm4Q/6ݨ[TƧ?nԶoytf{@AzT{e{[O'ZRZt~AGD?s3􌿂ՉIw'|~U\ w~di:Kޱ)U/sU%njѩ&GSP^ǝd)..!^U` 1wX[aԇSxoFV6_扐)T 2Mfd=ۖͭiZ7KK Bi9%7@<3<ճԻU,},a}FRqɛr i@ONJvK KLN M, ʖv0n-]DwlI-X6ܶ$Jʴh5O+mOI+Ra瞠\ MG7BفjYo1#͖0V`Ѱ2M?c8>-Crt*JkIGS:e#hPKx[鱼>{5m;wcն&>j-M֥^َ) 6yȜl_w{-ō̱r> U=]iw3)r*]:K]6BdCTZ|>gf}LW}[$'Y5 &c -j.z6R 67MԷFMnÌwI7w5E}o޽+K ֵy4܌ȥW"COyR[q5Ӱ͙f[v"_#q{MV6܍3"u9BK(41ӯqˇc${ߝCi6I(OmθzҜ5k^:>Jzw.>qV8{vU[ڶEm|DžBz].KHjI]x;Mɗ{m,qZXr忇2u^RO2Z}ZێS[2Jen!*NDcrBUً4<ǼMҲs1Zw57c3&ĖڻzmP*FuJG1-dN:|OU}ҵgi2t~F^^Z.VxjvŧnNNh<:]^~NN+ge^g.SԔGFe߯'[vn'(ScJ]kܗ7eJOlRrfziݮq̋S"\*U<*W]k$FջV}? 7g#֟*GQQ|#/bo]p$>_Un9;l S VvQU%OLU{οmU6bZ1MTx%!֙Q7, J=!3 ;Q,ڌ;6ͱ݅q^&ߔ·n #WbwӖX.HtG)N&d̵zpI,n cu ޖUj+VXUp[w]N o.J6Z8Ts&utxln;~HPHS/xw`G\ʡ¿rj Z^vt"[L:SD\h0sUwR,}[x^X,R2Vn< ]2YDr[SRKs8tXb̷G?Ps Tv 3be,zVz D[/I.KOEQrm'$7|[J>r S`5յwT#\w1FTz\Ԛ &"ׅhSHrD\'r]~/>p;:Piuu:"9ő=tTaS7V2rӷk7mb[^WmPp*[y.Þ6f]cizJCgRR@UVl큝.WJP1N{/\whZ ػϧӱE7|E֫Sί.x-Y&pi%v''-x6r'Ws*6=DwwUu]=C?MK [yrtܒG$!WGqJ*%SAz ED[^)/tė/g=#Omd.|^n/sl׉g DZqemqowݮRzUܜ=ڽ-o/Iۖ;qVʘgPp|mm;6zGl9.8pwWgsJ2qPbe}}UpNjٯ}7TMQKrؽtEx%v w߾8%|j;~|}pK]ơ/ w߾8%|j;~|}pK]ơ/ w&~e_H 8PL7:%ʭ5Kw&U2vwR_+rm'}C7#rWoO&HoG?M$UR7{FU]u ;# !Wk`|W>׹潇9Vn)6)*ҹ{%qV4q>W1vi#T"Qk&GwxcJBJ- Ϸ^ˁxkU}ԣ/3.;]J=<*)cS)ROK9H=,r zX @)cS)Da^ԽQ gxJI=w֣gf*TRj

2 School of Electrical Engineering, Kookmin University JFIFddDuckydqhttp://ns.adobe.com/xap/1.0/ Adobed     ! 1AQa"q 2#w8B36v7XRr$9bCt%u&Ws'(xy4T5fH  !1AQaq"2B Rbr#u67Ѳ3sTt5v8Sc$4ĂCÔ%UӅFV ?_Aנj- H>>,m*>fzp"TrKkr^r.|_&]|*vPuܶvoQ1mwVJUhu-I"=LniAƕ8"۲ k*ҿ[yu:.vUQ+)%F DHyVBk>Hy8jݹ q~9D4KRmzQ)^ʔ.J%k_tVi5NTjg!'ky|5asOȻ)R۸ߩFMԿ3L4j6dڜ#NIwUF]JqB/(FafJRzq3\G՛ ?~\ 6)6W4m[O^L0E&rRMض*C .]Unl-1 1r#Rj/&QɈ׉˩s6Rj=5Tg.y.·Pӡ:JJS:C8-2u]d&vUz;7p9 5VnL֢"y)">iי(IDDd| Yj0; LRfS:ktYK%*N2^m|&dğth":ey)uPQZW)gcC3Pv&MMWd&Ŵ۲mvTRoժM03*F3Yd6\8,\hݻ kߔi<k NTwSԪmljj[>->ptU%'LR>&EBH$MQAUx[$Z6vi&_a.KIQ{hyƒ j"JOC9eFҝfj;˚Ω<[3_m% lQ@4g=5$(J]Yc-OMq<Ǎ wSzڗ)k$7VIP붾ͯnV+卵*t]iЎD31~SA1éC2u)ʼnQn-Uoi3:grI8ؓWm*G zܕ)ZקJ}Y YlGeJ6cB2I NS3Q>k=KTBT]W6+SOXQgGR? telˊ%-Re\hѯ2TF"C/OJΩ6r[N.0{SpljjX1“jOsӥ;ҭhe}xu`Ք&.)yO̒ Fߑ.$Qw;9Iw2o+RVJMSOj[SoҌZ%;`d$blQ{Ro{Imڌ>3egf\O֝Uzx"䢸g+mv%Gʆ:|V[N'&ס-ޝ'kfE|K,G&˳98Juin/\\Qݿ̋v~Ǩ!rtWU d|E߫R4d}.qPw*Ӭv5YEcn~f5c%MTMkb-F>5JT,})QHg%{("ӔȸWMsYyWNRrkkJr0XドnͫT}r-jj,Ŕʍ\Q2Ri>v$5!]"JB2WɅ)]VԜUc8i|.jeRO6^V.¸ Q&#|ܶ-*uOG%JAtRZRr]FFG\۩w+?'zչSѧt jz>KW&ot{7P&2D;&\\>Q2JzܗAKSfeNn[jRrԕf6,q,F1tRfԗ>vֶևj-&R'Zi2=xv~Elbsvm8=ӛ"ū񕜈BȩlWau[]ٷBߨF~J!|Ipr3R̴#Yp)={7:G{+:\W}n|Q#%)7^-h"Ƒq:M*%J&$T軨I333׎g_- ucBwwjp[6i25$̏bU’ٱRv?G\~#Iͪb7<<}Ezt" q_Inw,7-d,G÷%T* Wg1"䥱kq/A.,_KhqŒxwvo u2ۥۧ.bQ}XκA$֣ +K״ZUNmڸII{.v{5z5ѮRme[moyƾd~cRݾK'j.\i&/S6f|b=5: p!6i_ 4j6=.si˧eƾtS^c.Y^RJVS-Vi3,esi08?H$GvZgg?gi䤟2adw릿:"۪lkSN>q-4kI܋ێe̊qۅgDoѨ9; #T.Q;7#~_Ufstb_'w~Xw1Xk,vcOt._}v}8"(4Z\ۘgk?J?bm_c!g{HZV]Fkk%~gEt)b秴vΰB|꽸}mp~E6ݹv;7P٤v+ri*3Ԣ|'O14_~7nP{7ZU\Vű[ +7󖱅o#:ǥŬ\|3r%TJX]V7ez¨Y]lc|O3V! R zbJ'PnGqVJ"19WVeOF埜EaEJωqCN5Z g-9[S<$sUK5b|7sn\7x qmv##FF\ w[=-43$^ooVSiXօv7iB۴yg>]Vf"r$J3""32!Zh[K%7GvNLs+4nB/B{vlsobJaҺJR:0g%&zR\ S3T[&ִor*ⷳc3ʊO[iozW٨%$gn:ܶWwFBԹjHP&z u&F2\f;ipW73 [; '_̽b;vib!oec dC-tS__$Xs]l9&z$2/N>%'[}b{h/{`{Ji׉׏ YJB/X%}.|+{(S:qz]4_Kѵo`^tY_4S#* ^zvݾMr+TrkQ g.8Ͽ^i>ӈǙvix>$o( ^qt*&t1oJVu-ql5U6jCЉmĻ*"?JT=K'O/|=Vo}l0b}}f?X[?/\JSBe,kP8ETJ==?.p5ފgbU9}ǶdNKk—_$8̸͓ۍ8Di\BԿ-1v{FF]|.^ۅ{vl12׏z7-R7wE?\nh\jN/Kձr_oBw"N QMBZqe-m:ӨSn6j4%!hQ;sv'm4kcM=!8\m[M4{SMliۇ%eֽR&N:{2A8)THLK3Zj[jPBx#BگMf:G1\`edcʮ?|w(-̮vXt,bW2;.ιNHRR#YwTM"<;mk\.foIDjmlJ;vxy7o7i\,KQŊ9d^Mmgc L*.T6tLeIuOH3SJQ3=F/ʿ<9\JM6mN6=<{xkP!F1QR[I$6ُimXu2An2yԒMU q f[IB-'䤯jYm52&JG\zд\~vdg QtHGXw&1Lw+nDEdC1w|YJmvP)HZ>i0BPβә?R:QO["]I_Jʏۍ>QKyu^bycBq4lXF~l [\*N>-J6,Gq(Zr5h]CwYӤU~ʶߑ u*SIv%ZfJ7)! FS*s_\|IŸZ)J ]ܜi4"z[+Z,MOZ))}|Ʀ(RUNIII.S'ˍO~˨rn}M)xxӕ0 eyҵ7YMAB]ӣU:/ѭ*6bcwP͵ "+qēVjŹO|GtY4V j[mLV M -m>",B$ GD1~j6O4|LxnNmqATNR3ε|DŽa[fmn-ڭ+FiK7Pcm;r5 l8r{#-]'nrFh2ruycb;pW=njRqRJ(d mnpckNnʹ+6]tz~E=ʕ l ZZ5jSi3#47.Lcfe`9؏v囜.F\-UZ:*0_<Νu9Lӵm&)_3\^ҹ3"1n1v_|uRʞͫr'iȧN_kH׺8xXrj=\МH)V\ˬ.Xʸ oVRC}ySU9/OBY먌5 ٿwޞ)rw8Ӫi5*5ZΗcGƱ !ZۄlmpjJ -l <R̵/JAպZuq\IdUS 48wXJJtcg4cI~aqߓwŷrm-v)G7yS^7H^-\mŌAq|"m9IBnF㏉9[N+mmy/!KKۉ%n +BdddfFF6FQRN-U5;Sv'm4kcM=Mn)\qιqUd9F%",6MGdT%-+~ f%+y֛^3SrF>6lc(֪vۊN;g._0Sѧ]ETWرkQKzGe9ʨsKA"yC y2\[5 rԭ7Gk5Mzw_4sM3hxЊ'oÍ5jsub )ͪ~tR2H]R͍>̋m6=%(˿(Wrr-܅y5(ܔJ޺YunW̹븹NsqK ]/QR#"ZMDfD|43Qw|._ԡSqTZBg??O Ϥ)/E_U|i}2 9Z?¹0:x'3,whǣ?C y-A~=daJј&M?D1_PS+Oi&;a @;Dž7[ zZC"bv:jjMQk$M RԸ3uA\=wI.AwC"^.{?-\NSiˏ"b}T/}q/ o.1M}R%:-ZniʒL$SgrBW*,Mw'N\ɇ{s\j]VryG'8f`}'N<*/`U숻z CwHq18J+vԕKss4R53/&XTt1bZƟo\=%nO)h$rBi-nKĪ^ ջڜlwkYm[̑+/QrZo%TQ;TLs($2C:s.%+eoNttq۰kK7O0m_t_pZ1SsSM7"mevFZ[w -FJ*T*jФQRg BSu|]g:ɵzjqwmltL.e3sRMچkSmjkmWœިm++¦'tILk*բQ D,PB\lI[9{%Gb R6öۍmX-MaʉA931cs..G4CujQտ[9 }G-xwl)IQz j Ó"rqe&=]꾧֎c)<kӳ+0JrRR3'TnXi^xMF Bު*tIL.[h"2"nKzZe'ZV/RrNYz]8죝n]Ķܩ>^Ժ]u-7^\mZjܣ9+Rmn ߑv?oꋘ?&ƪy^N4o=3-ؔ̿*`}V݁ ƒPu8%$ ݗ]wt;\y\>='OjPIp/nJU8{϶FNMsf"ίNqƹ(+ ݮF2Km |jܴZs%zf*eȫ?]4)I۵nR&FX + [jDh(#哑9q9Eծj8noǕZf\J-l&Z˫}`ӎhyrΉn\űn]9pʌӣ"׮Wt?N4_I_~54#/my1Xr*척aS#DT >q ssΛW;3oUaJSRMDgQnt:Ql,/ ܷfRqiM Ȼ>Cob;A>ڦWقM9X~/!'MW.}Vrߔꔵ!5|iB(0-zF=}okڢE$^wW~nokY߮\6՜̌{i-AF*9)\t9IV6۸5ZUF6R$ŨQIq砳YUZ]eyv >hI櫥N )&l JulwE1GDOuFN2| }馥uC1rޫV+^gdb&W[4<^e4YW,d|htͮsUM)۸8:{3d{AѢ)~ \#J=NdƮꮓ90 |1K$v*?мS ]i$J,C,SG?/_՜pMSƯM|mG1V1$~K>CSvkuj=&) -,yLjuFHK{c駗.SOua;BrSqj-ۍZ#'Jys7[g2z/.u4+XV2VQ.ޕ)$"(%)#Z7suZ%j }BǬݕe)Jvz8zJf:hIN|svO1O#IEcۍjݽ:SdὮvu^@:o^5cs>i/VqmVm]ؔܢn6'vޑ̗J4Wn@OlKbX ;n:hgJ9ŻyǑz8f܌q&Y fN0N;[69 rbׅC2/#kE l&2~èMR.*%g=Ft.%؝e8<.e=Uv{~㻏"EˑnvDѭ͜Lu3u0:U֝$[M5<:oi+V4V9 6nXvx&_ q Qqw3W:uϔ2yb/(ɳ|5zQiJ#r|Hw#.W?4aDŲ\ugWG;Cw鐢K|xg)##=O.dF˟jMUvWĻsr.z]kPc9"]R)mkfOd*uYf١RsB Aîh=k]ʳUrrZsq`d#r$/Ը3o^&lRWȍyuW̦Y4QDUMJ65ƒ[+ygk XK_±k#y:8(TJOSQhJt2.DR}"5[) r)6V6u5k:eXZmv𭤔!푊Q[qQ}ҹLE- 8qIZG|UM4j}Mܕ[Vwm{} Naqµ"ԈM zOpKѰ?IAD3Ir0'/q1itoB5{%wkOBn-ۜduqIzYK60{+DʕܞqIt";r1mG/\/ym[6JƫR \L=S=OT@Ix[TMm{>ݾտ֒ݸӉLYIx>+"JVNzx||5rI?C{oz8۹e\R-^\A2F R+N9 vlT]"ۭ d)t֞i #E2jB@׵=#/N+!ĕhx}I!cM`ąZ*ŻɄҒ߮Y.Z}='/oۙ3IpW̮hT7cTSuz9>B}΄&h!>lӵn~j˅IvU.'v'CSZw8QK3G> ,J59ٷ+HSg䧎hJdzvwv-cvxS5[̊n~ؿ%ַX?O0\6ne 6kn9.ϯ} *h 8_QhLݣ7q +=XBҲ5?[[)+F`=4 }B,sNg==u*Nj9k_GJ)+R~GSPBȒZ:(K]heL=vKPӢwq(NrG^ثϣ?#tC?.ͼ[ۅo؞y#%ǛjVyLSw%T*s92JTM%"YkQО.q)gCͲn8cgi6j1MѾ[{9h^vƘǚםidfi.^RHmg&rׇz:}݃}xT$ضk'5s-狶,\vpbPD،=Okf.c#cdz2FK5T!&)|ntD<+OŹU i-G[EE*FDfeaf2QƤM\UG_{ǹm%\yrGy:.\4wjPGUJޕUV7Do\7Vy_13w;[?c]H\$IJ,*L]3b%L{y.JRKG2sq,B6T}(#nW|km+q5] r㪍bJ@y{byz,b踊3ϻJ,'^xd،)JVw#.Vټc''ÝպWtbRؒJz۠8!o9IۄS95E9ؔ-e9JR{dmnッ<[~n${~Њ$W?&ՐY_? #a.ߑv?oꋘ?&ơ|y^N4o=3t=~7!/M3>n8W홎2M`Qx+ z qy8%]7_~540ۦ彷]Wq CѡwkďyF5Dum_}~P(5.(X,K9vᯐ?leB9;Jhm#3{CxGE-S{;@Fz˙]=O'!ɿ]' r`:7'2bЖ>Iy,/eTy/V<.H?UYY{\^#ѣr9^7?xoRȆ7EoS_&??zϾM?(~Q-K&>"~aߨ t7Emsϛ+?;fCr)fY+>z$tIkjn_>vnrֳki-˹l= t;'EyC¥|/BLwBJdgjۛ$s S1|ɍV%JI6KvəhzIlBYɒ|0"Sy0F>eo5W)O+X˻u';v)2vVq۳kۮws?UʑBǴYO漪e2MIjPAک\b1)DDؚKm6ZWΨgȕ۶yjڳ 2ضN[C[|r@9Jfo<_eI7q.|cÊV߷:i.:$ȋ)1%%)ADZCEBxJ0MJۥy(bNsKM9k43IwNt.\%N簤I'.j|ƃ2$grBEٌ\}9:v*!n7M(ɽ]7c@XxƱԨ37īf62cTTfFK]9wntQHͮvٱI/f|j=7}\_V5U^+:uljSȃY(XI.ȱmo1甅jڎIZ2>#\*:gY|4k\8ZwSqtyA!+];бޞKծË¥e)#5ap.QK^8VdU{*ѽL\=qmjnB5>{ Ӟ`v±5 ^k&O~Oshɷ,;6nOW>u6{RqS`)S%jp\ipdEBLfTWy$GIYw~䲭J.1vSY5z.V>^+Ǎvc.I[R{QsNR3ӎfhd>y?UJ*}~[e\i5U^͛E]G_FS(Iɿ]i8:4zj~շsW,ˆsy:%O}iur]iF5~3M:Ӟ#N06)4ߧgdawIotiz:1r5YDZLHBSi;NQc44la=Y kQIT*ըl:tq2(է9VO4뒳܂~2rq'nrVZŦ[t7\oլfb/mlpc.I8콚q^1iE~䰳mi[dۧw֤ICfdFeCsg:i| 6擣׋* 96lust^{%99UNRvaMܽo ammi$em4D6DD\nA%$$#}۷/ݕr99JMն[oT޲E"KTaP+HGkŴj5TM5xƱOS-k`ۛkٝWz;{kS}F;~q|~^_|euwnE'pSupUP)V]vE+t =ZRaVdG6= *.ϼnj9:UɷbېmF_tޫgHjVS'śǕًdkkѻ_]Kv?nT>)^e=Ar1'3ԔILyD?:-^in):{7.؂\.:V }#뺾.3r̸*xbFM aȵz 6SQ:ײj[ 8nn iFMw rR"5M5I旘35f^j='j:nNW.ʭocZvZKV^ɚJ.cM1ZI7E'6rg탸5oZ=[m Z`\hbMUR١Ȗĉ):Jin!_7Dй+f̷eKҷvͨBPR(V`y6tw*MRΝcB.ڭTnc;P$8nFvm4(D(R#R-L -2:FP lxZKQc6I("Km%$E, 78uXIFA$RQI$JbInG]c[ֹ:ZM+n^')JmJMJRu{e)7jQDw~%yQl}BZujSSf۩QZ+Dzhd5o%BIc'GZ?}΍:>Ɵivז-%݌J5MqGWTVʦh݇ܟ~Օ_6 n'{3~mϬj'J11OȻn߃r Qr\3y٘+WӍ'WxEs^O3 o~[|7>]]H9݇ZomT@]?5B:Z߂'`V_+/MSKX߆ޠk3?o7y:4R/7þ] iG߬aBRU&?r&/} cQߥGj2?C5Yśe7hU=?+ x龳f-܈czW^7p%-(\D4h{UK&ӡn^m]Fݢ:`δvj俜F+) y[{{ 7 tu>gvrěOj'5 iRg[ͶFjGe n~qT$ci ۚ0oԹc*jL[sVWqj\ݻ&6"WoK:cnWmrv)o>66(F>=W^bf#c zzʞtپy%mՉPël e}J.\Zk4ttt>oEM=q)hJjI=ͥ(%]脼_88ф;͛gWG;Cw~˘$4=uWdĜTثNDkiQL9U*O"4XP`02,Ge-k5$h>ܼ]3vr6!9RQPIVSnM(ۓ{>;/Qͱv{3&-[rc)ܚI$n{Sv3[j00)-D3z}MRzVQпj,T[uVs0\}Sid;r(ݝJ>æʺL&c[jPK0~d(FKÝW\m]GTcF|Iׁ)I3~#oX%vҦEݑؼ5Żv2qAZTE^..M{ʐfȏ2##.R}*KʛZz^ӞN*lPťLf\G6[WVQquV]XAi)5J!,$iJ6o$tPZc;Kjx_n3`qIelV~vLy{fn匋Ѿn%;zV.n'-ұdd2߽1bZksPe3TI9)$ԩIN9Vơ\=2885N\ p)/a柛w9g_lױo8ݷ iixJV& ғRi{N^_oAŮE6Y7I$Nk$|Q)-*4Z)^¸%4Qm [I%.c-OV+C֧R#%ѨCe3i;w$G+_dy| Fzj$DI(=OA gj%v/]8qԯNIS*֩',Q%\44ZZ%D|Ǧʴ6&vֵI$%8(ԬƾS&#Z. }6z?b/|Jl{ץv&mpx4Z$”ڝ4-H%dGKfM:sKSRWeJAn]>s6应-W9'H]'uȫYvgK^\czp|My\鏩w/ËQ.)]\QiS`8uL뚛̸=J"ܻi\å'-)54Ue]:K\퓡vK xwBqrH\*֕TnzC.mT=t-H]SČ~Nu╏NÅ3f|͡G~B+Xm[Q7U{9"~jgK Zoʰ7"qJ,ekSeNGgϳ] ^.6:s}_,%eRg<5⿨z{ZPun#jRІ.6g T.!]xa c#jN$Zpl̋H WZu8WmMRýsĮ?Mco~sx TU҆Q :KDG4n42.<3/'^?6/ܠڒ^yrrÿr2\D}}B]^E~^T cɛ7϶Y[<֞[7d}2%QPqOLEQR\CIsj1?\}%tJ0e~ *sk"*)&ۓEi#{1J8Hrt|'ܝRr8)=ƔN'RVz:cf]F7bZyZUȘ4x8,#JG̒?.W9XnO]KO]%]ƻ O5Γ/3qÓj؍/r̺rƵ 5\&m6h.xoeX[=<3%< lZ"2h\Z[&jW3ejm?k&[]ųj+{N{66leu_+lj]q* 7g*knأYv= q ەdxЬZ|%GUrQ3jLŒqET]1% qkXYūYc[7Ś]QY\jko\</Lc7+'hMSUc6qXyؙ~6#ѯv.0$BQi5YyIhɍiy=KD!n3Vm[V%W-B%swa97ajۗ m+9~]fKq|Ddaˑ0A]_v޺mM5* F-BYHJ5}q>ʉ.6hyDmpD׬'-_v5;5[8K[viJ.3dR:oYHHh9I7:۽fi+wm^ [)odPѱ52CZUJicSw\&_s0uBȍh32džzQflcd^m|7GѹE!fO5]]H9݇ZomT@]?5B:Z߂'`V_+/MSKX߆ޠk3?o7y:4R/7þ] iG߬aBRU&?r&/} cQߥGj2?C5Yśe7hU=?+ x龳f-܈czW^7p%5|Y:SJE\U-(a_cƣUǽXXKiȞNlmۊڭڄR!**ܤMeȽ$|X5(Ź\rJ~ܮ]>'HB0cp XFr_c?f?7<ukSgov¥iG>>䙗i.+t+bOjIܶ . i^:nm}s}(3>NZ$2Qg([".>i.ƾ)B̋M8+"- >eE6DݥJnJˣt׻ 5.˅nJGwZD~!i۶a,Db3ZQ3O#KO5/֍ozuK'GbRi᝘NV_ҝcvם ZoX}F6z 7e5_e:ۓj=AB+iܔERadMBq*ԯ DwI/Gy*mĥiRKg6skY/#SN4e$-yXM YL?^ĸNNӪ{$r1JJRSLO]Aqm>V/s[~i/j+m>z}eI"Qvp]{ZԼ:{vPAG2=T͡@ڐ#u"E*>C;o$~C#_d/HBq^YRٽzIKbOm\~żjFFGdiQ(*/i*#.FF]©m=BmpQQQSP&Ҫ!T&^>:y)$ˑÐFčI Bӡ-t!bM WҦŶ'UZ=}zvn~oT/\ǒ'nr8 AJIӆz<^uߖ4eFC1i+v!3qNyߕni?4JZlmYFXFۼO0B\m[ tʄU3s"Sr(NJ;SKW72L4̏BVdf^Ҹj\]ȱ۪(ӷm?J-KEmWڽ^4<8qu%9pŹW~877ܾeVгS(յe^C]yX͹! םm4FGȋ\y'Z FX7e)|Gjt߹#gb\ŧq_([R8[qU$Z (ʻezV2V!iQ,i$JE˂٩ a(GK'O{vnBvryRd-RK4=qxZJMl_CuuIz @Rt㮽޳!|68\-l[џ84-2Pu" RJ_^OL>G1~XnBŬw6J0*Uvlږ1N G1q9IUm*'oWu][&UyYZbBZRZNfEJf"+2nF~Eû7n1xv.RUM$6 lAxSQJ&n5ܞwlEói"#>4׿Q.nEq7Oko[1wg8ZQwZYiqtm&~">Bo?w͡ni2峋NCEy Ҕ+%ZJ ʩq*fpˤl,~^Mχk1+:ݕ z&Y`KLӪУDr3[*Z :(SL&ݻ۬Vqsyԭs x|iI߽zZrg.:mp%6ԜvgmpIUt;QbS.Է) ǨKSV,*lڌ|5Jt3#NP.=+OZ~/G سIgbꥹJnl_DUM\iM!֔wVZuԺ,yV.Q>f v:݇WiaŸN5Ҕ[M7SsrvǣrMW= \8ZW-jsnڕ.ZnF2qt ً[ٻޘY۷Zm"Jxr&NAfA-݌to9s359݆mZ+N1-qS$D=17 x׵+%_ ve4ir6Z$FDڗnFtOr'7'{9C˨ꤡaYoace{Refnft RR"4%ʌm:Sj3)OdInTO>X'vxV#jܮw9Fog;5.~Y5\~18YQܹvj4+~t7S ﬕs %^۵ڴDZV69R^Y+rj$ԇoJKR5wB9C>Y:l+EǎS{ʲ{T6Wi* ^^9k/y/Cs\g*qڵgn4T8mERr|Ti+iPe;;.i\EBEJ 丬i9ɧM-ԼsGDrZ>r#R>~X9y4b棇9JwV۔%m(b[Tjvl}۩~nDԺ{Zo-YuK1vx.nWuO+jN [ٮ0%"΢CdTJK-RަH"$I(*ve &҉FzB,_Vpqp9m8werv')E;o&QE׵^d9˦j\_,ڵugZȻ̧8k+jK{wmr@3ӭ2 wFkzFVqs1؛.v'I%$[iT]D5Dl2 nk7qUxԫLS+sا3/ΖeZYK<["%-g/kRs:f3;*E ت wJ%)5&+&rw*霣i|sMҴ|;R+fm䡩.!**dӶ-6s6,]zAXMWjmnz%SJߴm2UXw7MQ%<!tKys#P,W>s;3IYwx<+i_\\\U6 u7P|xbn_k&ӓVOe䦒 VUr,-㘘"-LZeOSҠթrEvq8Kf%5%&K"#%vD/.ZYYŏ+p$nZkvއuW9㓱Z G wYIFyf)?ƎUm5ԉ/'k84{KO:rQI}XRuԪ|*lu)3qZ[mSm5R3".Xcَ5c®ࢫI*۳~wRϿQWޝ(EJrri&ۥ^ʶ齲Im|[yb;mnm֩uiܘq>E+Ikx߄3r33-5𹻖09ϖ9[Tz~mr5NsWl$oPusޛ^{Z;);sڹf\3oٹZmԉ/'k84{NO:rQIBø8Bݱ3n֤DiK4u& ofSȒܩx<˘|N0Fչ]qsp"}! QWw@t4ӭ+cO5%]'*{eM߲DRO1y*q8w++e!c߶ܪlZWّM欼 CQ̼빶lX{vib/V/ ai;x6~]+z]MWB>re-:lgk}պ!#9?%܋V-c[z!W?c7YNm/jRr[HOzԻefճ0q15Zp#rkQQ0tU-AmڵP/cȕ?0cZYj;:0ZM=D6g ?'UN+ձ[K ܖB2'xq9{|۫N0ku 7xaj;n\ 2[VznMlWiKbSk))f..)Km)&bGZ=>OR܍W:j'rM'wYz&/鶧{Sʵb"vջq[I-ՌZH._x*BagC'T(Q:$ͳQcMCKy?3g'ߝqnT);qs #ؤZ}OOI:cfnc8W~qy.;^pVl]Hԓ>^H^@7-AA܃nmL(uWܻS߿ Td95Bdh4t6*dDh!EhI[iŨ\L.&Nc ܮf^;$R)\rip9I|ٺ?#R.ZDZ;/]nݻqs\QE9M&Bd ]N mN*D>tgbK>+ˏ.!23]BȔR1ɝ^j'k2ƮqBQq[$di]icV/e`޵B.FIIJqbi>Ӥ|p; 6${)RU>_e}^dzdfzi %ekRVUS?6'hׂ)5.\+qUgzE2C˷ecŏ^֔ibk shesFWJ#~> Wk~ݨ}ڶ>ơǚ)׽ZƉo~B-ڼrvoE:Ʃ3ۣK7+Y`WirS):{>ڛ}:wԨ(J_";6R%[u&ƫdZ_\'np| RJwNeTW,=rrbnkڄ[M3ܴz)3- R.?:okۼ0TU'w{6&w7j1z3ON'fGoO?)S_bQ_¿R(^ԴԴG.EtMڇ&RUiW uQjU> Kiu1d<ѥIQ'RQ1:O/lŗᏩiʂv&Jc{D5 Tt)1.n[n۶X}RjqnOʽ(~[Ns{ސ⛌uO,kgo֢dRNQȄ .'6W!׌P朼tdZjFGE"]K@'i۪N;sI[{SOzk>`rRR+!σj8&TjlvA̷Q?HyjyLHNտJMjܶT۽lG?SnKN%<‘ nq[N0Sq[Ta(&t(|HGO~gvkݻTR4&Z$#ViOY1r$6YF?e4U/Mvxų:zbU^gQQ+NW_'4jfz^c'#`rvrڡ(IJ/J ݦ6 ]-CW |_{v*_q3^DZ}Ic6Uڌ8p7{crZq5ki`)mU6|-Z5^iEz3P=:Cu7DF'k%}<C-޹ֲ̱#\,(f88%X-N(ck0VLR~} G"-8ӏ/ϰKq?(#nrVTmZ;zióM4 m |UT'C^_1X.gXM{%ʤd 4\ovN":"y-,T)fLQgۢr=/CƹǨJVr[a+!rT|%Y\ٱzsS>jͱ.oOc6f$q% ǒGo;n[];ߎjrk{~\VۓNIGn:iqxo |~t5)Rxעri{Vi&NUOl_ѮMfsޕkЄay.0P{7N((BaIP$ K"U6Gl ݙqJRu+qN$ m#*p<|{:>-Ev=86N*MM긭U*uѾ?/^o7;'u,h4݌xښRM:5.(/ \իU.{F^rmF-Jɷ.>Q"[4xT^OZ~mK}T0ݛ^SAo9u?lX(' qj%=X}"^e4wˠ|rܫ 6I\Ķ;Ӻw!'ڍWg{ i U_9Avhۣƾ+:vs/MK[ɭīe{`Zgb}r[i'GE2J7Nez579wRq+Un ]J.cJ4M:h箽Wxxm^ pc\wcN%'My $$| :$Fqɏ¾^қP9J6Wxvu}ݵP>Z'FFdg"-; [¢cmWkÎT8nG%ݣ7*\խCLRYZͤiD&J#'ehbSyXK|y*ӞpS̍R`[pTr/Eg)K+92{_ n3zwz'oŸۤ+sOj J:`T>Cf*lwd\fYOP"R E֢̔L4ɥ :;.b(B02rJ蠟9>V'9M%)IqnhP<%,r'P/vNSwr#w"ݨaqc(|{kd=^0jTMR2ULNz|.<|^PfY22##!,K~E BEJۜ&jRNsHަޛg\r,v؜.jK3)[EJ2ii{KEiHP^&]Gn8x=K}Wx/KI9-ϵwQ%spܾ[^R}S3$qvq8M[ ozKxcqmJ/ӿ{_}7&ݨ\f6ZSyQz& 7ۉ[8~UNn|nkiTB+4RI8'Nc%tn{!]Ȋo.nEmʱn𵵥J A+wy#+ikǒڂ;՛s85'KmE:Ђu""Iģ5p=БbTY-ͽڔ詻ngL2Q}$de# fs^o{DUUsfwӶ;s1T,ǤtޒQ\෼J=.tKU,7čJ5 N$y3kdSMQU~mO[03 $zAڟsF5^뜞"Կ QHmrR"ӳηer+ҔZ]hE-6Jmt'ޒ=O[sQj)6K}?e4v_KfZheޓ=BV[bY}lݒTTЬ{ȫvO_qpRApVŗ 6ju=*BR)g "O1yhb=tqJ gtm\b3RY+JQ^Ō֍\յ\>+uSi{=x ^w;uӘ#ĸzLn*$anok߷CBӷ}5Yqvdž<( "_OWit5:EZj2 B ρ1̊fi[n!HQF82q1牙nqnEpT(2RMoM4ϳOu ':֧_Xjsg jP^(ڙ{2%E͖j^}ZU[Q$'U) <܂%!s"m R'G5M0<+zM6qYm$ڕ$3ǧH]?o2N<8F1̻r_my[Rf59NjpzBnl7*{.QP 3N&^BLJPjAHCK2Q}$#~YMq8 k(MFMU)8MEqTy+Tʞ-ar5yܕOXw!e;q-Jqܶ䓊Y:LC UE{/t>r"lI9)3KJjϤA 6SEE$d߇3KG*En|P\ԭTn6I-ƍKTj<1H_zwGr19wF N8ݝ+a9ɫM6mhePi%mmD! """"""*1bRKrD"vnrM۫mmĽm]ӡiG~e"˩ lhRTMk^MX["Jݱk7_ޕ*DqĒ&flՒ}`W}~SմZ{ĕ~wm*/{{ѹ_-0ط#P]xlڱ~Tn5wi*lڪ (JxioϏbqKYR|!|KN53 OS222$jzww%i}>N)E+rۥ7c$Ofl/LNث\6H9: FY󡈾I)fB֔JI_ ֣^: 9mY{66㒢7Uj]:.-os[R&gMF3˸#໹kmjq^8W"PΦURjʄWa˧T!͋ lW48JB2ko+ /Nw QwQzQ ے%$ޓ7^YL|r7!v%Trܥ &|M8~ybrn[RV gSn{{*#2#ԽᢏӴHak" ӌcwҜw&RJ07ױ>Ļ =^ BɆ)v32.M1=#6%̠tҤnzqMwԣ~s*%-j|_m*.Yx9Sz=)qE4 3pk+,`=kNRڥ=B=nŔNAx)Q$ԩȧ4z3t#Z2lҮYn$S%y- JzGpu|LBV7ZW#;Wwipܷ%(6jFG5#{$D"uۭ~]֫SrD܃fҎӾ+Tu>-ZTQ& N|$沸ii>eRWݳu'[O̻j8JۻEѩ[]vni= ڒ,[_%kC7I3Nv$4ɎЈeٸoUu:[}Do5|zNq=Tre%ɧ6&~DȍF]ƞG5q m]/w/ \ʲr8=oʔe9U(W"|S]uZd#?Se[W"ֿh][-7Nu:T=)R}.;ml*5Dlf $fF(̏T hiIUU4Szɕ t(%_|2 ~6eM;TƗK[f&]LK^CE2[ȏBOd;Mi|cx,^6;sیGpQ\NuJIFTJ~đArh* B"$H쉩eXPRj?sl"ԥ)su]xpԴY%VESH"ЋJǰ K&5^Ukzׄ8kEgS2h&Se\ Yl]WҶp-ZUvi7QS:4byqOo+[̺腋[6-_Fo.6[7$p&^ _GZԸߍkc.qqoI[9m߸YxOZЦ1uoiSH)P9Uʄjcq= S>֙NeR><;+ڌk%_qT].srNO?s[=vH[]RZHRMtᩗVؾ:/~u)ԍdg%=edVrISb{6vSu=(ܥ)mTv/J}̇8 S3ad:^hBSf؉OɔLhI_1d8,L><_A0y3rXq"'(۱;mFNII.v5_(^q~X>y{3צ I*Vܛv/jW' T'NR'j%ꔩ:mJ3SB}΋!-H-RJBТQoedi9tjENenPpke.%4]#{:>mkEɱdYWl\\\'nRM4&U>?Ќˉk÷!𴪛]]5}UqG~ݏI"O~s6(Ļ)qO~h}uԕd}Q~G,oE!&G&/]_H-O=o{k\̭bkv.Ô܈+;arZx)m?M\3lU$mk-CFXjTv6u' g:Vn_*qk:VC A%'4JV%EY)#BғO4<e׿jQQ]yUr4=wm[K1r׵%Iũ-O}|kC;/VcݩWZ)EHdžTru]8hgĵ-;=>U_ InvTm_jBM+QiF"9*{DI/iuo(=TzϖmPQl_v4z>T*ȴ>YF;ε\t]EH4ꌇ[VrLzef 2T^V>g2~kg5~Nק;{~Z~W}&ŒBӿS2$J?~(Yœ"˲ߩ\O]: J׉ښT{mmIѩn3˧)4LdFZ/zUG>U> n 5& ϴ-KJi2o]uKljvK3$bԔҚV旧iY5.ίfi96v7!v))FJM4{jG~Jt/lUE%pTAFe4qQk\ve۽/u/Im+W')v{\-E|Pms7߮DZRr۞/mu*1ՙaB܆ -xg3#6ۥtRogʌU)׎]ZҞNnŞr}F1Nnޞ;cZ{N}ۿMiuxʉ*3qi'9KHQ$WJxXyرŔe~[v5~/jN9Q4o6rJv FrdxM*iRjMzUinHdн7ᾞS=S'7 } ̽zt7K|_g J=Lq+/Bw_\ۧx\HJUPzQ<hqF[V0x==CsU7q|^ {)Iq38$_A(VgcKu06Ƅ"%i~_ˉk QCܣB8Ku/񋇵u([w}$F|8TՠI.E !;RJ^}MɒD_q2];Ɖ{5}*n7nEInO{Mwv}&q+v [V}Ĝ@%>#dXQ$f;iep.GquixVt x6bj͵mlKقQ[T]zs/&yەnM'W}!Fp_d^Tu N{ɻ'l{խ2.sTu{W^H&;1s)Pӛ6>$mě;Łnj= fLT)>׸+qReɴ[UR\L*P/!$Ӊ3Q 'K=m~6XqW3^W+ųO_[F$rR*u"T%@O +%# ]˽!aܽz{ͷvQh쩎]hGތ5ɇ*DzJDRNLi 4:{~2FmXY-zzĽ^f=]uū{/+&c:Ma{ĝDp2m܍kHș/(--m_vݮK(V{R}.k&yƴ7i^4@3f sK3^Ř˸B=]?gt5KbZB<e;kQLpxuWC}n 5ҴepB##~q= `x]KWF {GfŲ}?G.I9pjWkU]>={7q{kO/^I3==f1ɏ%nnʫ/Zu_yXN<57ۍ'vy/"8넭M2eԷ&Y,в33%IkjMr7xf nmQkX4踼>a-GcIeތw&U=-:qnW)z¥j :WqSZvԒ#j"KrIU)%qrmRoDGQ~SYRsu*V)  ,/x)MFD6O#]z 96[Ui(JRfw'y$GeUީkdMF-ݻ98F2d[o{Rn0n-xsV6Dh|Eb2E:KCOӪv4SJCr"J!!m,hRLD| ZYFm/X~ΧfrN&4Ƒ=Z9Mh.Mܵw/BdrܥniŪ8ɧ|y%œ[M=_tj?F!z5\evM:\ ~F-sg钬OWq“iiȍ<Gi%%n2rqͻllƑ)okw7}\Uk-:&fj솘XerV9yZuʼşdFC=rmo%~ZN78X(N)_7.Εn1MpJ}62jjJdI";R5&iLԸc:jmqiQj$ujp\{;v5B񥍪Xn Ą4qOERjzN(Ga٠䌡)p*v(J7#ZۻZ8O W uONb+^Qipv9GvֽƼϯrYƖKGJQDNPhRJjᡧC"21"9ѓS1;R_O7/WGz)8fE%F2ukmvSov/iZ&/]~KmI[:^~ͤ\kMi稜\ywJt3W7 8Ʒ~ݥeFgѼw"8VVSج\뻆}ݭ/J6Q)d|)zU3>k\L=;ow֯gN3pKѫ|wmkZ$z^2R:E)f>ς нd|#׆?\ǔpV{;\$ƵE%-ͪm0S6[n< kE[}mvE4DDZ^$OZ0*$~XUv҅B@^?]so#%ojw;Y#SxxueBگy v^i-)s)zV jC{7Gt.w3v,ygg8s]aE_,*E tY5k٨h=o"m泏:\6w噓aiL׎n^c\75AGkЯ0Lf46َ`egZ˓p/k;̛]kq!ݸzpԭG"}R9Ve>ˏHUjJ-&7nrnwG*Xv\˱/vN}O)ʼn&CV͍f̵]r\PMB-6Du-#RͰtRN^)mT _}nSȕC*_xBuTkJW[`ɩ`ejvsngP ڻ.-WUtܑqԹQj)t;vN&RNũT+8%IXӃ5fK՛-d9 ]CƑm|nZ-6=Hz,*aEm W3VzRšdY~Xf׀Xx"]s;)5u*ُHB BRGS6bݶؿ 9j[1*jױga7oX CUI%0v#~\-O-Ꙛuɷ쏪&5mY٦M`LJ2qK~HZbr =N'YobI. (^ ׾{_ ?OJ`S`3BN[}5w6:ǵ/iSlt=4F*d&T4y/#. ɵim5Uֲf 眕6Y7 fơ=3dϕq뚩$qTM-%r!$@A? ޾V0c~{[{;򥧅a~ڵ»&ڄv1ek=wb MLkNAԬw-x>~/r=e73VeVN)K%Sښe"+3uXuچrn ֺVzscJ峻m}vb㶓n\YbIUBT%*,0nov=;z꣓S/nSXSpl##k9mXGrZv^Gde!ŷRԠzQyjC]`gToPov{j~KRBMY}i[߶9KL2ԉO0K#m>wB[ٍ+n[[b٦DX ݲpo] [\m5qdT()mo4Oy9Ie b][wղmM~vmi۱~t \}$яimRk(L c Cvk7r9_r1 ;zv|F@KyZ[&jEji/"6$69ml#e]9s\{ScL}Ȣؿ0q/nZ*t,CLoD߉Njǚy=Pgmu6^]l-["çUʖMlʍp-"qmU>۷uFOJ%Ǔkx 'g=睋k[3u,{³WɘݪF]ՍeFX"Oy\,cچ=w/gn Ļ]#2? vqy-gXnR.^}ݺFs{ŝG]}e|#0mjx"ƬWكm?rgU^xVB":Dt>@LRbun~ݭ,w+v⪕;\U(RYa61>#Jm˞Μ9g9XKaG='u8gf}'qy#ɉw J]We.ʲ-<+&q%s?2dњztҼn`cΤmmqMdz O[-ߩӲ&;[tmܝVnr">{x<8U+p:Ig]zjGkt,uzf}dؠoJaکqEq -(:d<պ=eKy[˗^%ZXkX[C2߱\ITTLGzANM￵i]K>UsOGDDD.ZF6* ҃V Zhz{'xp^`wo8r0h ZmJ5"jb[l=yUu7-;7IT%:jFjߖm0tzU'K)څNۧYJ)4IQ}^KWm7kSP>q;ނ#)'n7&׊r?óM{IwR\j2Qn[v pe#/tAF\ϵ225q֒om6z})6҅*oqDsMf CNIN=T S2t,_ѧ}kveMF0J\Rnnݙܹy[rUc-j{yGtkQ%s]5qB.Nw.JN1LvR Ui5J ZESQԙr):MJ+g}χ!2;q([jAud][ljVK3$ײSJI=/|&tl'*n۽f.frܥ jQO8>&Z];.|7T/C}$ڋUmP2Reҭ8hFF\L 3~e v\۫]ݝNmrnB%*]Z«hKc=BTLG :V74$=Ǘy+EX'4tn(I:Ѝ;Df8c,k1%dJ6.j6ź{N~l6&*fœI7 WAlGOu-ҢH,,(ǔe뿋쩨kM܍ZſgRvQ' 9)?n|er˭|I|-fGK.rΛp8XV1%K6mvG+tc+qE&ǸC_Nm:l=_/m5^[dߌڇ.c<%:)tQ$Ow~-aY;UJ>=F)2[nk؆?훐M=l6[4(O.]2#-H^n#->&mp5~Fӛ+|| S,xag%qkEUzUgæBhߕP(7]kFnq?֖CpruZ6*rEڊtS|*tI*E}7R<,nUU֫^I7Q*mSly%rdȓd8hE<9oHhMfNSRj[i7D[Rj݊+kდq{"$$H?p\̅S?㭻;t~R߁)^/>Qj`yt[w ԛ;²~+ߔ_ YW~|o]?x^ᯛ `ʼn;g)T@vWn]>&4lp+$D̢1l|ȨF%-}.9[}w~ ԠLM9hСablfe&QoW!s?wjLK?s7yO>(=C~_nyǜu?v3vyo oI@qV-jeES^[9WoSܝh"l2C1a͔CiJ@3:Pճw=/7ovuk+\V;lDgն<[A+rX~d;m!_s8ݖ׷;;.0llUC+?i#_crʙ1~C.\–q ul8Hܶ2m`ܻM3Tov|Bs rɵ"oLS- DКw=Tv@f'6|YlD͓Y%׵-#Ѯo%:&!3o%\J<02;K87>^vgƓ# ;ݝmz^Y6=PS39U%~ &f# }o!muH;ʲŇ˷yvP+&.7e[3'vR4Yj̗IZ`e˽3o[WU{ m[sUbۋZǾۆl6~9'V*.\S2<Sd*zY[aŶ`]C$n.v^Ʌ dng>ەZ,Mmϑ :n6nϦezWqUJ4! ۇ4R! =>>Fn|Q[{pRO17ƕ~._I''00k=b՛o}Osðc2'o\3}ݭQ^2 . R1yKȣtAݿ-uܾw!`?1Whn|gzUo[ECWwjUIן)^h#1ɭ!/Z np;o;ΗŻkXs."6E`Z1 עӐ9Kl8qd q} 2Stt;#j>;խabONŗ=fwP1j)l6J̶|gV2`y/0E˛6+ԫ1? 6}KW c\KoKͨ2ۅFw–s*TԞLיuDx .kCzWXhy۶gLu|%TnupǺl-S* PRaLnT+c+*xl.v!.U=|; !_L̎뱚U=4hm:ٯ"y)$:>%(n}X'p[ȴ ^˒4kƓmzDx \ 'NqamP7nyN݅=j7%McSڵj%STy qXymvCg{w/w=wSW5r̹u erծˊsOm=DhEҚRb#n)QOxtվQwe]I}wCa'"[ۂ-z}2UuKP$㜉ԧ:mc<Ý>RoL?wu|%ҷ&K y_!y9 ??:tq3(UU-lkS'ɸ@jdzQˬR] EVPW1DJq2n:,c|ǻ̑;y{X,ۂ.u.b˕u.tKBjQ"[S園S`ٮdNبeJ&9Ơ ~0a(Vm٘L+Jr*vڑE( x0+tp˕ n';wm-ޜMOxX>{#2%jgb2M[`K*\5@8l'e=0u+w ֘鳾{y܀:R*Ya]"Ӧ%ktynlۣ65,3gU}{GYrb;ge'TKwǘ.,rpܚV]Tr,!dp /ԺU,xՉ>s׽~W5oTh yx?xrrx?)?ilbT׬,z$Ԏ.UH٠\U1pU:]JwSrGZq8àd驐,N67QYBӢD㏙W!Q25ϸo9ms-7-%3CihO.J鯽-;MZM8ku-7k9S$8]q2E(}bۏI[DKOK}3KUB^u %Y,u.-&f#]'܆o$x`Yu,dzwM;#oKxn;\[d7}Rb+*Y䛂ZuBӱl{j0O̓}LhK;[aֶaGL{Cb#S.T[>߃F]NK"u^LUʐ_ykW?!GRj29͖qa'0[npcDvV)qz9R)PۨM^aJx W] r>];eN3vxdmĘ(5W2K1䪖weF{mE/QP6\u54x5[hۮ-Nk”i[lUgL]J}5 S:EhiUrgHl!ŒJ$pe=q^b͵Q' ?6|R\,JA ڵ"TDꈭ:ymg`B5t%M] <N_zv2_Ortٵ/i/ReӮ*7[qүqEG* m"[I:6e^p"I$jԴęh!m)]GZkcjS!{e^z}+Cѥ9;R|/ֱeiUԏCNu2Zhcٗg$ݭwvr P8*7/Lk~I'Km1+MW%Bk|oOm>-#qj*|Dbѱkn|n{v#jĮqNpMIUm(7Liz;{ҜݞڝVƚVϬ+sO!OstGvxӉ']uӎ4g_ 1^-8ۦ k!)Ύ5O;YSB#2Zzχ;<.ֵOtge~.(RC#wFZeGZٸ6FFJ4e2ˇpJT$[wgV)q6muDGJ56q\I!̗ y/I~RtJ9kJ]Iy*'FN0s.[l!fw'y(7$œ WƫgyΙdMEU JQJv̋vmrۖ.jWR_M֨djYgSj0^\y'EoECjm$ IƩK>Z28J2TiJ2N#}.s cArl嫶nB.FIJ.)۔\ZiM>/hLĸ=C1s[?YMqp|94- 鮝𦔽/k^#NT(Y LS$6˩}{;5 )B۷W$qpN)qqoot}ZDVә;7TiK|6f3h$dԄ}fqݡ>Nb򗉉+ͶO]>ߡ_VtYf79ڰիF sq~prս|QM)g%l0ocJȨHz V;Bb/kLAcfPJ,ԭ{ƍgpjNR6VSI*$!yV足jᇑ.](EܣqM\qJ2eZT).<9UB/(B0j)mtKEj#׿fDI-=rZړj|'Nڤ]k*i$5qt"ݙPM6E4ke^Z8ۏhz$Q(R Ay2zfRñnpnkbkI:=j &ΝșW?׵d{+ύM'??XqeeĽ.[o=UxFS=ӷdZwenՄ]_X=ĭVa* pKs0ބۍfJ3 gz̚i|wnxtjc¼5${(1fXQ65ȼb̶Zkn>%FQMJXӡ{TZEVNᖣimT/37cNJUPnP҂ZOE~"-Rc4^b- FEͧtf5[)S!OZIښݲ͑;tvܡ+N)AR=hCNn;wL16-:特7M$=Tҕ-.R[HٷnXk sn[ҞD-0WS9p9:-Ϸ-jѬNu{ҹfv)[Ľvwfg(ٷfe+0mYj8Q1\ݧg]Eǎvڿc!4#j5̋C2"}BRriFp7=ô\TZ:\BLfj#I22װ<;صZl j 6:l"6]۸ K'6RTѯ^ئOԓV\?$x7s#r:Oh{ց=MmuHԷd{pN /܅:UE#Yy+(SgQ(Щ)RHzw>^Ѿݻ>mK&^ '$Jۻ&w%F|xfz%˳ L~3N?Cy9 v w/{ƿ kz3x> sXv}vP"@WyC z`'톽Dw%-tt yVY\wmuPYQA0iG-2JP,6/gˢ]u.-n!Zw.N7Q]Df}Q0({a\@=i_X7gFǘ8^⻲}G MZ1)WEfO12G+=-B@z\`||w6ċj߬m}UwRox֢I &c~XGP6Qndpvܻul'V7^FJt^{b^B(L~sѣ6@߿^xqU!ڙ5|Vpvef-uӥ^3  FSDɯKD%0r}FF穛r7 +o"V8tv̖NQU!5uFd"bCr^bJ=֤fM#ʳԷP0O-9xRBm\=`r-:;~3Tl(nXtXi%2Vٛ#vwqƴ`L@"H‹qW.j,JM5B[)WܺUeZFqc'V˷1W7V̾-MHФwn8N;HPSdݷC7&2j.W\τGŎ'Vb]c.x+Rx1%C2T{myg[qU|+m:M:շ8҉yWd)ՋWS%%:iqlʹmGwݹ WnNŤѩ5(9hTٵDdGUi-)vSs2 2{OnT$Xck n:¶(lASLeȔBjμPpTb2~N2~%^k[ܗ[Jzs0ӓHBKq[}JَA-$dFQgjxxFv4r/x*Rm% `4J(&iv7SkԲmSH1YWmx 8n.k']:Z˭_W >ڃXЩ. jTq%Aā[E}amc]D:rmHRiu:uӚӢ\p(5-q%e)(۬ҖȽIf<߽pr&ݫVfY91q2ĭEQgYbTGQ&,yL+N$[q*RVۉQ=FuTܻ>f>f㋳8N6$܌n)9&»iˤsX,݅܍ȩv+sRTpO}d?Wn/Inpȸ%O]StQO|v5\}7Zwb.AIVK^:wb{[uݯcytO߶S<{8KSRׁH̏N7ۚ[xkwYy_'ZӵF+>쌛ZUĦreE9F[24De{}@:ExWs-\ǻ7K-\JNvEk%:s˙#κ].oͳ;լ7wB6nwu:$L; DkI#Wz.:Xp(˅v$Sq,wn\qIN-e<5Oe+vuYTpcojUI_ާP8 O 7&VL8z$_B-H-[uh]T{|8=qVRN-:Ij:7PUtXϷmy鉿:RIM~33ӸS2#׳GdŲ5+/Bx{(WzȨ5Y㞎#|˖+ ط.|e<o/rߔX>7s}VE.OVti׽ .5nNJO"95{#q}Ay9do]R"M6z\tnNS-D!@3N_jicWsy*5uٮRcWv/.,j}=S)j5C^> Ie =gu9ӛqjtz]۪TMoߧI!Ǧ¶m:,"[L!{qAv-o 3{"KʼnrIkfٶj2ƙ؄S`7` k6jzޞ?e5G&6uʷ2%ԒRKE*G\Npom F/V |C0.q_eenƣ<5Oh'67ɪn[SĽ{ڔjǘzs;~׌(ۂ`ܢ1ƣ` _l9Va6%UQWh~P~\F^ZHR@:ۧCJ{ôGeBh;~ۧnU J\O+n2 RҠ)ng}Kh{5+S×ܛ.1ZjG)iRȤIN 4%{oΜ/eO[Nffd ĹK?nnԼMqX'܌nZvq<ķbFnͪaQ`5 s,M_լ?-@_{w{ӺձJ}GF[%v\5[ŒGkOw/ΜM9rjË%2+rd~+󲕛C9U۳r[aJǭm|˒LAʨSCq[XMۺoubfp:t+ΤĻo ][ zt-*67kvS7D·MMCQXm;)܎n_h%]4ܙnRk!]ڵsDUF"`R, &#R_*[z*ZqFXɻ]7|۵w+'pFDەs=r./ᐚm3Hשy yD"jHCr':sA65نѮ^o1V/ f;nFr3VM)e*- s D'H݅fӧ\*޷[k<7u<-]֍Q8R h|p=WlW3s%Q %3l}@U-K6f-NϿu|ڴmWN׮[׸F*mW\%r! C78:޳vBG7ŵ.JթԚ2x)ST!řn~9 W:Wpܢ件{xf8ٳwKE ҰWxVB\qBZ 2wMb[lGSnyԚ~z9ZmያvoN2Afnݽjf>)j3 !;gOYʹK" Wftڎ+׭b*2ϻK>ۢӱeyԪXISUm[z+ugX%0lϏnvg!;t{BqPj>PyvR7Cj]O%+ݲ :qiMj6W}3vC/R=4Som]ŗ=ю, TF6U_-\6MyskwMr&Q\wjKܩyMϣUj0*}RZܷSdY3>Zjqj6TgzpA/M`/Cmл,޻feE[/+uk^Vs1W$G(JsW2ٰu*߻q*Y޵.Wi:ur5T),=0uRmho.twܖiYwrWHntvEj8qhf`Ͻpf(R&>Ki%I7$QӖm-2 ~yߗQ-앑/ x[k8nw.c㩵k}]FkbJl:{.(˩n0Hqvαp7 귎.Gupx[N`Yq'+ruU7[ү+>!xrȫoSo]OC# d^Q]\>!ƛGw^Mx"-+%vdX-:M2UR%d>%l ioSu6lsj7D P>XxHz Ukà(n^Q V>5cVtWj SEiJdznyej[lE' 3kuٌNn4JW)gB {4 j6&]' m-(ZMEz8cz>WZ6#7+[,MR-Z!4ܓtCyE|umj1ƽvƷV\;%>Q :#Le(iVz5 4ũۤUWxX ^(ҔsլB2w-V ^R+; ˂M\z+Uwr+RWY⺧~ Q*JcYSNSλUd8in=v K낫k\IRרSUaCFmϿ5̗P|u ZTԕ}>oYѲ1sfP+sQkX8Gb~6r,s>^\,mGL+7[n-E\.Fqḕcl*Jmjb5 ,m]c}NXfeVlǸJ5eˡ$4%g~N p4Y*WwW٧<8v#;qԩTut,m"#Y D\5V`\\Lȋ];LȇiS6ϝZ l>LruR\v=ǘϔDg=ԈdFZ+M{=|,[;0>RiSi4,S5}yxw&(E7&fݙ4UՕ! ~'Id)]ǽu2K-fޭ \08Vڅ쓬=Vy^^ IhyKR-B#Ըr=]mܻӾ'*Umkoy rTqT_i,/8Q^<ݤ|4ԻO(܄"'5N~#m.(Ҿ2i6Uev&I*<}҄$eNtÛzyWJubW^iBW.܅Wڮg]irO6Ve90sgv.+sV޿aޔ[p?3q*FutUo*eL\KM'EG*ZcAFfG5J 5jj=MJ3OK:k˝'NMB7m3uFҕ\-Ywg%PRqMIyZGY9|μvn߻5cWݷa^+X֥vnݘ\v7m>Fgzv"-;Ew֝}1|RjN𿊀7g#֟*GQQ|#/bo]p$>_Un9гUbn9׃ErQBU-^vDmVh'<R[fdHT]*~}3j;nvjc7s-rӳ Y8[n[1pJx kX[Jk9Mn!_Nю6x:iZ˦U |߉^Ԛ݃hYxk &U^bwKk.[jE+P(˞=9j@snCv7%c_7=xǁ<l {t'酚+1F‹l׭:ݻILruǶkL-L(K0L1&>wXB(pm;1fpnlp֓%Skidkt(U +xulo'/ڕeN r=^pZZ:Pnj8Hf"48ijY[ N[yZٻ+=  ø:3 ?^ܷ^Sr#YK[UF?CuhC b]GM')mڏsNrܗI]ljq6VB. W,UK"YX5{c >Iqā> T:n!,5l2VzCl|+I[*SrjnS6٨y+x,@>П.g+!rn9>N|W>OZT_ut Y""v7|sfި;Pclm EùN,{'fNT%U&LfH8~1v>Il}统u6P˗c(WV~H^bMU.o*oOF0N:_:6Smr_.b+|ݶYY غF,mwjv>f*>QM뭱Sd:`N{l/⎱;n-z~"Gze퇎J5S KG9!Gn;N1 ݎ h6m|S?ɂ5'WOÞ 7|7^ao @mxGmi^jϽ>01Mf0լD3-2T. VXR"ɥV Kl J O7|u?bvа;6.eߓ|[1bmRr,eRz`z 6܎-ͨku͹Fː dPhYgZUj}nvX;z=gVեTv_J }\1n7w2J?ޘγc\E 1Aޑzq;\r]]\Y&[nsNei\uURje*Qk2CSl*xJz-xٶlm+|UjUؓ`Ladqiĩ!Gd\W~fz;Tn*PdRM&T4`չSWq5k훶(N"Ӎ% V]֦wb.nUO!u*J&Oӕ2e|Z=eV쫚΅g#+/RW:طnbi*Wyo)p{:ETKؚR(RY+r웓r(IF) VmȵNB:h Q1ғ|u8E]{,'$-TR[j49l*3"I鯴zhd>Q+\BkNF=.$ZR4Nwհ(IpNi.(Gi33#33e$FXK*NdWrud[r{xnk$v2ıh+J1TQ[#JQl[tRO]LHKٮ NӍnF񨔤֞Em'MILB"ԋ%dBŋ+p̿_17jzT~4pc Vo\ƹb9Rq-'1j;8ܗ)hE%DZKS<璸Bu*%*Yw5ڻ9ۣ^z4U; Ñk\U(o~G?VUĎ:?P?_F_Kߤ~ᓾI |pr.Ok\SklRhҪz{­P .}SktZ7UQ4ڌIM8̈eaӊJZ%FFZu,KZvln廐SNFIVtuNi?CM5]+Ph,{jN JSR$IS^tSUVrORYu.9WyP6 [Kiu m!X|]Y79ӄ)\ģ)pbڳr%*&ꑶ_-H*dzk)1 V3')UAϹٶWRxe'պn۫h7AR9 EAJeGLms!%D| A 5]/Q3eb̄vnVn%za\m kZnv([emqrIҕij|""><hjJשvvǕ|Pޟs}V~2&Z?+2N&Z4w@)4iSڪ_>/JN9Hiۏuf8'It[ȲR.hZ$ȋ_Y ~U<UUO*6b)Ovzڜj\R̋.$FsQuҊj^נ䈈y<zZIuP[}Qm=C?zN(Exqu/kn S-FzKZzOסӽjJ\)F3b!r5ٝ|;6 o=-3*λ]αb\abqRi-w޵⦪~b8Kpo)Z=>)ғ"5/GTZLE-輵f7ݘ۹~+&+w/7GFI:l33fg.N~۲\2|*cnermnnM+Fq"ѪIz%j =YW8@~gc/~?N'?)«qȸs➟n=k" X“m֮VreMh2[uݖ] *FܖN)MȐ`f0 g,C9̑o;ddudJ=In13:ݒvvdMUEJLp^,6t-@͐9'{7m{-3,>hnF;ѰM)->>+Ěz!R* :`e--m7nB\u{b U>[8֪]6^ߤLʦ\DFNo$$dͶlgno8OrsQ\l̯hRo8tuNo+ CTxu!2[>ctFpeޓƻֶR"3QrQuOѳgwQr;S~)6HhZw/GgVTmUf_yt7%$];zLWF̰xy2Ʉu!MCmš_0[W6jf#a-KLi+3Q7c^qg%s<1aYIQeZf+}>;S6L0]Yu_h9߻<ƅpmiM$AVvŚ,*#t2.8Y)-Zhshü97/#Oro"u^/uFgWɺ,p:6a,^x%$Yve^3PƗMnTP&yS}OJ '덫MH^:rXԴJۋ/rI;S*,+yz1hv)Qw^ڍJ2oL׊q(\fDj:^T%vOadɂnS}ZO)N*λdaȜkG_PIEO}нa(^iQX᯦-7^)%g'SJx(.S9zVɴZ{E ))ۅi/s7 VIV-|sj0*UBTHIqRf>FP$KqN0 R̻8j\GcC}IUz\i 6F)Q{Gҧ3qSzKj-Az VЛS-zy:8*mNk|D鿓ND2u+0Yŝ7kqm·?8Ib]u>˗^_>(]vӋzv+ݩ){vZrJ2RQ몋C$z [,pp,8mڊbR]Il .f~d/ݓs㓓mͶ{mgjQwn=Oic9ܚm4Q/6ݨ[TƧ?nԶoytf{@AzT{e{[O'ZRZt~AGD?s3􌿂ՉIw'|~U\ w~di:Kޱ)U/sU%njѩ&GSP^ǝd)..!^U` 1wX[aԇSxoFV6_扐)T 2Mfd=ۖͭiZ7KK Bi9%7@<3<ճԻU,},a}FRqɛr i@ONJvK KLN M, ʖv0n-]DwlI-X6ܶ$Jʴh5O+mOI+Ra瞠\ MG7BفjYo1#͖0V`Ѱ2M?c8>-Crt*JkIGS:e#hPKx[鱼>{5m;wcն&>j-M֥^َ) 6yȜl_w{-ō̱r> U=]iw3)r*]:K]6BdCTZ|>gf}LW}[$'Y5 &c -j.z6R 67MԷFMnÌwI7w5E}o޽+K ֵy4܌ȥW"COyR[q5Ӱ͙f[v"_#q{MV6܍3"u9BK(41ӯqˇc${ߝCi6I(OmθzҜ5k^:>Jzw.>qV8{vU[ڶEm|DžBz].KHjI]x;Mɗ{m,qZXr忇2u^RO2Z}ZێS[2Jen!*NDcrBUً4<ǼMҲs1Zw57c3&ĖڻzmP*FuJG1-dN:|OU}ҵgi2t~F^^Z.VxjvŧnNNh<:]^~NN+ge^g.SԔGFe߯'[vn'(ScJ]kܗ7eJOlRrfziݮq̋S"\*U<*W]k$FջV}? 7g#֟*GQQ|#/bo]p$>_Un9;l S VvQU%OLU{οmU6bZ1MTx%!֙Q7, J=!3 ;Q,ڌ;6ͱ݅q^&ߔ·n #WbwӖX.HtG)N&d̵zpI,n cu ޖUj+VXUp[w]N o.J6Z8Ts&utxln;~HPHS/xw`G\ʡ¿rj Z^vt"[L:SD\h0sUwR,}[x^X,R2Vn< ]2YDr[SRKs8tXb̷G?Ps Tv 3be,zVz D[/I.KOEQrm'$7|[J>r S`5յwT#\w1FTz\Ԛ &"ׅhSHrD\'r]~/>p;:Piuu:"9ő=tTaS7V2rӷk7mb[^WmPp*[y.Þ6f]cizJCgRR@UVl큝.WJP1N{/\whZ ػϧӱE7|E֫Sί.x-Y&pi%v''-x6r'Ws*6=DwwUu]=C?MK [yrtܒG$!WGqJ*%SAz ED[^)/tė/g=#Omd.|^n/sl׉g DZqemqowݮRzUܜ=ڽ-o/Iۖ;qVʘgPp|mm;6zGl9.8pwWgsJ2qPbe}}UpNjٯ}7TMQKrؽtEx%v w߾8%|j;~|}pK]ơ/ w߾8%|j;~|}pK]ơ/ w&~e_H 8PL7:%ʭ5Kw&U2vwR_+rm'}C7#rWoO&HoG?M$UR7{FU]u ;# !Wk`|W>׹潇9Vn)6)*ҹ{%qV4q>W1vi#T"Qk&GwxcJBJ- Ϸ^ˁxkU}ԣ/3.;]J=<*)cS)ROK9H=,r zX @)cS)Da^ԽQ gxJI=w֣gf*TRj

#E-mail: mcwnt@kookmin.ac.kr, TEL: +82-2-910-4779
• Received: June 24, 2024   • Revised: August 4, 2024   • Accepted: August 8, 2024

Copyright © The Korean Society for Precision Engineering

This is an Open-Access article distributed under the terms of the Creative Commons Attribution Non-Commercial License (http://creativecommons.org/licenses/by-nc/3.0) which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided the original work is properly cited.

  • 67 Views
  • 2 Download
prev next
  • In the semiconductor manufacturing industry, efficient operation of wafer transfer robots has a direct impact on productivity and product quality. Ball screw misalignment anomalies are a critical factor affecting precision transport of robots. Early diagnosis of these anomalies is essential to maintaining system efficiency. This study proposed a method to effectively diagnose ball screw misalignment anomalies using 1D-CNN and 2D-CNN models. This method mainly uses binary classification to distinguish between normal and abnormal states. Additionally, explainable artificial intelligence (XAI) technology was applied to interpret diagnostic decisions of the two deep learning models, allowing users to convince prediction results of the AI model. This study was based on data collected through acceleration sensors and torque sensors. It compared accuracies of 1D-CNN and 2D-CNN models. It presents a method to explain the model's predictions through XAI. Experimental results showed that the proposed method could diagnose ball screw misalignment anomalies with high accuracy. This is expected to contribute to the establishment of reliable abnormality diagnosis and preventive maintenance strategies in industrial sites.

BS

Ball Screw Misalignment

Grad-CAM

Gradient-based Class Activation Map

FG-CAM

Frequency-domain-based grad-CAM

FFT-CAM

Fast Fourier Transform-based CAM
웨이퍼 이송 로봇은 반도체 제조 공정의 핵심 장치로서 중요한 역할을 수행한다. 반도체 웨이퍼의 이송은 높은 수준의 정밀도와 정숙성을 요구하는데, 이러한 로봇은 사용 시간이 길어질수록 고장이 발생할 가능성이 증가하며, 특히 볼 스크류의 정렬유격 이상은 진동과 소음을 유발하여 전체 생산 장비의 성능 저하를 초래할 수 있다. 볼 스크류의 유격 이상은 로봇의 정밀도에 직접적인 영향을 미치므로, 이를 효과적으로 진단하는 것은 중요하다. 지금까지는 산업용 기기의 이상 진단은 주로 인간 작업자가 수행해 왔으나 이상 진단을 자동화하는 연구도 꾸준히 이루어져 왔다[1]. 자동 이상 진단 방법 중에는, 진동 데이터를 기반으로 한 다양한 방법이 연구되고 있는데, 이중, 데이터 기반 진단 방법은 많은 양의 데이터를 이용해 데이터의 특성을 찾아내고 이를 기반으로 결함을 진단하는 방식이다. KNN (K-Nearest Neighbors)[2], PCA (Principal Component Analysis)[3]등의 비학습 기반 방법과 인공 신경망[4], 퍼지 논리[5], 등의 학습 기반 방법 및 SVM (Support Vector Machine)[6]같은 방법이 데이터 기반 이상 진단에 사용되고 있다. 특히, 최근에는 심층학습(Deep Learning)을 활용한 다양한 데이터 기반 고장 진단이 연구되고 있다[4,7].
심층 학습 모델은 KNN, PCA 등 기존의 기계학습 방식보다 높은 정확도를 얻을 수 있어 다양한 응용 분야에서 활용되고 있지만, 모델의 수학적 해석이 어렵고 진단 결과의 근거를 알기 어렵다는 단점이 있다. 이러한 점은 제조업 분야에서 심층 학습모델의 결과를 신뢰하는 데 장애가 될 수 있다. 심층 학습 모델은 대표적인 블랙박스 모델로 인식되었으나 최근에는 심층 학습을 통해 학습된 모델의 설명을 가능하게 하기 위한 XAI(Explainable Artificial Intelligence)에 관한 연구가 활발히 진행되고 있다[8,9]. 하지만, 대부분의 XAI 연구는 직관적인 해석이 가능한 이미지 데이터 분야에 적용되어 왔다.
본 논문에서는 기존의 XAI기법인 Grad-CAM (Gradient-class Activation Map), FG-CAM (Frequency-domain-based Grad-cam), FFT-CAM (Fast Fourier Transform-based CAM)의 방법으로, 이상 진단 방법을 제시한 참고 문헌[10,11]의 방법을 적용하여 반도체 장비에 사용되는 웨이퍼 이송 로봇의 정렬 유격 이상을 검출하기 위한 심층 학습 기반 이상 진단 방법을 제안한다. 이상 상태의 검출에는 성능 비교를 위해 진동 신호와 토크 신호를 각각 사용하여 비교하며, 1D-CNN과 2D-CNN에 적합한 XAI 기법인 Grad-CAM, FG-CAM, FFT-CAM을 사용한 분류 활성화 맵(Class Activation Map, CAM)의 주파수 대역 시각화를 통해 모델의 이상 진단 이유를 해석할 수 있는 결과를 제시한다. 이전의 산업용 기기의 이상 진단 연구에서는 대부분 회전축 베어링 파손 이상에 관한 연구에 집중하였고 로봇의 유격 이상 진단에 관한 연구는 거의 이루어지지 않았다. 로봇에는 자체의 진동 특성이 출력 신호에 포함되기 때문에 이상을 진단하기 위한 규칙성을 찾기 어려운 점이 있다. 기존의 이상 진단 방법론을 산업용 로봇에 확장하는 것이 본 논문의 목적이다.
논문의 구성은 다음과 같다. 2장에서는 제안하는 웨이퍼 이송 로봇의 고장 진단 시스템에 대해 서술하고 3장에서는 데이터 세트의 구성과 실험 결과에 대해, 그리고 마지막 4장은 결론으로 구성하였다.
2.1 고장 진단 방법의 구성
본 논문에서 제안하는 고장 진단 시스템의 구성은 Fig. 1과 같다. 대상이 되는 로봇은 반도체 장비에 사용되는 웨이퍼 이송용 로봇이다. 우선, 가속도 센서와 토크 센서로부터 진동 신호와 토크 신호를 검출한다. 토크 신호는 장비에 장착된 제어용 토크 센서나 서보 드라이버의 전류 센서로 검출할 수 있어 추가적인 하드웨어가 필요 없다는 장점이 있다. 검출된 신호는 데이터 전처리를 거쳐 판정 모델의 입력으로 사용된다. 입력 데이터는 성능 비교를 위해 1D-CNN 모델과 2D-CNN 모델로 구성하였으며, 1D-CNN 모델은 시간 영역의 원시 신호를 사용하고, 2D-CNN 모델은 STFT (Short Time Fourier Transform)를 통해 얻은 파워 스펙트럼(Power Spectrum)을 시각화한 스펙트로그램(Spectrogram)을 입력으로 사용한다. 스펙트로그램은 음성 신호의 시각화에 많이 사용하는 기법이다[12]. 이상 상태 분류는 1D-CNN 모델과 2D-CNN 모델을 독립적으로 활용하여 이루어진다. 이 두 모델은 신호로부터 각각 다른 특성을 추출하여 학습하며, 이를 통해 이상의 유무를 분류한다. 또한 분류 결과를 설명하기 위해 2D-CNN 모델은 Grad-CAM 기법을 활용하여 시각화하고, 1D-CNN 모델은 FFT-CAM 및 FG-CAM을 이용하여 주파수 영역에서의 예측 결과를 설명한다. 고장 진단기의 각 과정에서 사용된 관련 배경 연구는 다음과 같다.
Fig. 1

The proposed diagnostic system

KSPE_2024_v41n10_807_f001.jpg

(1) STFT[13]

신호 x(t)의 STFT X(τ,w)는 식(1)과 같이 x(t)와 짧은 시간 간격에서만 0이 아닌 값을 갖는 윈도우 함수 w(t)와의 곱의 Fourier 변환이다. 윈도우 함수는 Hann Window나 Gaussian Window를 주로 사용한다.
(1)
Xτ,w=-xtwt-τe-iωtdt

(2) 스펙트로그램[12]

스펙트로그램은 STFT한 결과에서 |X(τ, w)|2의 값을 시간 축과 주파수 축의 2차원으로 시각화한 것으로 진폭을 색깔이나 명암으로 표시한다. 본 연구에서는 스펙트로그램을 사람이 정보를 얻기 위한 용도가 아닌, AI 인식 모델의 입력으로 사용한다.

(3) 1D-CNN 모델 및 2D-CNN 모델

1D-CNN은 주로 1차원 데이터 처리에 특화된 신경망 구조로, 심층학습을 활용한 결함 진단 분야에서 널리 사용되고 있다. 이 모델은 주로 시계열 데이터와 같은 1차원신호를 다루는 데 적합하며, 데이터를 추가 변환하지 않고도 직접 처리할 수 있는 장점을 가지고 있다[17]. 1D-CNN 모델에서 첫 번째 입력층은 시간에 따른 신호 데이터를 받아들이고 이어지는 여러 개의 합성곱 층에서는 ‘Tanh’ 활성화 함수를 사용하여 각각 128, 64, 32, 16, 8개의 필터와 16, 8, 4, 4, 4의 커널 크기로 신호의 특징을 추출한다. 각 합성곱 층 다음에는 과적합(Overfitting)을 방지하고 모델의 일반화 능력을 향상시키기 위해 최대 풀링과 드롭아웃 층을 적용한다. 마지막으로, 신호는 전역 평균 풀링 층을 통과하며, 소프트맥스(Softmax) 활성화 함수를 사용하는 밀집층에서 각 클래스로 분류되는 출력을 결정한다.
2D-CNN모델은 VGG (Visual Geometry Group)로 알려진 이미지 인식을 위한 심층 학습 모델을 사용하며, 224 × 224 크기의 이미지의 입력하여 이미지의 내용을 클래스로 분류할 수 있다. VGG-16과 VGG-19모델이 사용되는데 각각 16개와 19개의 컨볼루션 층을 갖는다. 산업용 시스템의 진단에서는 신호의 스펙트로그램 이미지로 VGG 모델을 재학습시킨 전이학습(Transfer Learning) 모델을 고장 진단에 활용한다[14].

(4) Grad-CAM [15]

CAM (Class Activation Map)은 설명 가능한 인공 지능 기법 중 하나로, CNN의 결과에 영향을 미친 픽셀의 위치를 시각적으로 표현하여 신경망을 해석하는 기법이다[16]. 이 방법은 CNN의 마지막 합성곱 계층을 전역 평균 풀링(Global Average Pooling, GAP)을 통해 완전 연결 계층으로 변환하고, 각 완전연결 계층의 포인트를 활성화 계층의 가중치로 사용하여 이미지를 분류한다. CAM은 마지막 합성곱 계층에서만 사용할 수 있는 한계가 있는데 Grad-CAM은 이러한 CAM의 단점을 극복하기 위해 개발된 모델 중 하나로, 가중치 대신 역전파 기울기를 활용하여 히트맵(Heat Map)을 생성한다[17]. 클래스 c의 가중치와 Grad-CAM의 수식은 식(2)(3)과 같다. 여기서 yc는 클래스 c의 출력, Akk번째 필터, hw는 필터의 높이와 넓이, N은 필터의 개수, akk번째 필터의 가중치이다.
(2)
akc=1hwΣi=1hΣj=1wycAi,jk
(3)
Grad-CAMc=ReLUk=1NakcAk

(5) FG-CAM [10]

Grad-CAM 기법에 대한 주파수 대역의 해석으로, Grad-CAM의 ReLU 함수를 Welch’s Method 파워 스펙트럼으로 대체하여 주파수 분석을 수행한다. 마지막 레이어의 필터 Fk의 가중치 a^kc는 다음 식(4)와 같다.
(4)
a^kc=1ni=1nycFik/Σi=1nFik
그리고, 계산된 필터의 가중치는 식(5)와 같다. 여기서 P(·) (f) Welch’s Method 파워 스펙트럼이다.
(5)
FG-CAMc=PΣk=1Na^kcFkf

(6) FFT-CAM [11]

FG-CAM에서는 계산된 필터 가중치 a^kc와 필터 Fk를 곱한 결과에 Welch’s Method 대신 식(6)과 같이 푸리에 고속 변환(FFT) 기법을 적용한 파워 스펙트럼을 이용한다. 식에서 PF(f)는 푸리에 변환에 의한 파워 스펙트럼을 의미한다.
(6)
FFT-CAMc=PFΣk=1Na^kcFk
3.1 실험 장치 구성
실험 장치는 Fig. 2와 같이 웨이퍼 이송 로봇이 설치된 프레임에 가속도 센서를 부착하여 진동 신호를 측정하고, 토크 신호는 서보 드라이버를 통해 수집하였다. Z축의 상하 운동을 대상으로 15초간 4가지 다른 속도로 이동하며 실험을 수행했다. 진동과 토크 값의 샘플링 주파수는 각각 4,000과 66.67 Hz이다. Fig. 3은 정상상태와 볼 스크류 축 유격 이상이 있는 상태에서의 가속도 신호의 스펙트로그램과 원신호를 나타낸 것이고 Fig. 4는 같은 조건에서의 토크 신호의 스펙트로그램과 원신호를 그린 것이다.
Fig. 2

Experimental setup

KSPE_2024_v41n10_807_f002.jpg
Fig. 3

Acceleration signal spectrogram (above) and original signal (below) (a) Normal (b) Ball screw misalignment

KSPE_2024_v41n10_807_f003.jpg
Fig. 4

Torque signal spectrogram (above) and original signal (below) (a) Normal (b) Ball screw misalignment

KSPE_2024_v41n10_807_f004.jpg
3.2 훈련
훈련, 검증, 테스트 단계에서 사용한 데이터의 수는 Table 1과 같다. 볼 스크류의 전체 이송 변위는 355 mm이고 이동 속도는 200-500 mm/s 사이에서 4단계로 나누어 구동하면서 데이터를 측정하였다. 각 속도 별로 각각 25개씩 구동 시 발생하는 진동 신호와 토크 신호를 수집하고 모델 훈련할 때는 Adam 옵티마이저를 사용하였고, 손실함수(Loss Function)는 Categorical Cross-entropy를 사용하였으며, 반복횟수(Epochs)는 150으로 설정하였다. 이때 볼스크류 유격 이상은 0.4 mm이다. 이상 검출 문제는 구분해야 할 클래스를 정상과 볼 스크류 유격 이상의 2진 분류 문제로 훈련한 후 시험하였다. 분류 문제에 대해 훈련 과정의 손실 함수는 가속도 센서인 경우 Fig. 5, 토크 센서를 사용한 경우는 Fig. 6과 같다.
Table 1

Data sets for experiments

Table 1
Class # Training data # Validation data # Test data # Total
Fault 68 16 16 100
Normal 68 16 16 100
Fig. 5

Loss function (acceleration data)

KSPE_2024_v41n10_807_f005.jpg
Fig. 6

Loss function (torque data)

KSPE_2024_v41n10_807_f006.jpg
가속도 센서 데이터의 경우, 1D-CNN과 2D-CNN 모두 매우 낮은 손실 값을 기록하며 100%의 정확도를 보였고, 2D-CNN의 성능이 더 우수함을 나타냈다. 반면, 토크 센서 데이터에서는 1D-CNN이 초기 손실이 높았으나 훈련 후 안정적인 감소를 보였으며, 최종 손실 값은 약 0.247로 나타났다. 2D-CNN은 손실값이 더 낮았으나, 정확도가 약간 감소하여 96.88%로 평가되었다. 이는 토크 데이터를 이용한 분류기의 성능이 가속도 데이터를 사용했을 때보다 상대적으로 낮음을 보여준다.
3.3 결과

3.3.1 이상 감지 정확도

구현된 고장 진단 장치의 테스트 결과는 Table 2와 같다. 가속도 센서를 사용한 경우 정상/비정상을 구분하는 2 클래스 문제에서는 모든 모델에서 100%의 정확도를 보였다. 토크 센서를 사용하는 경우 정상/비정상을 구분하는 2 클래스 문제에서는 모델에 따라 100, 97%의 정확도를 보였다. 이상 검출에 있어서 진동 센서 및 토크 센서 모두, 유격 이상 문제에 대해서 진동 정보 획득에 적합한 것으로 판단된다. 토크 센서 정보를 이용하여 2D-CNN을 사용하는 경우의 혼동 행렬을 Table 3과 같다.
Table 2

Diagnosis accuracy

Table 2
Sensor type Model Classes Accuracy %
Acceleration sensor 1D-CNN 2 100
2D-CNN 2 100
Torque sensor 1D-CNN 2 100
2D-CNN 2 97
Table 3

Confusion matrix, (Torque sensor, 2D-CNN)

Table 3
Fault 1.0 0.0
Normal 0.06 0.94
Fault Normal

3.3.2 T-SNE 그래프

T-SNE 그래프는 차원 축소를 통해 유사한 데이터들을 서로 가깝게 배치하는 시각화 장치로, 사용한 분류 방법이 문제 해결에 얼마나 유용할 지 판단할 수 있는 장치이다[18]. 가속도계를 사용하는 경우 T-SNE 그래프는 Figs. 7과 같고 8은 토크 센서를 사용한 경우의 그래프이다. 두 범주의 데이터가 명확히 분리되어 있는 것을 보여준다.
Fig. 7

T-SNE graph of acceleration data case

KSPE_2024_v41n10_807_f007.jpg
Fig. 8

T-SNE graph of torque data case

KSPE_2024_v41n10_807_f008.jpg

3.3.3 XAI모델 해석

(1) Grad-CAM 적용 모델 해석
먼저, Grad-CAM을 활용하여 CNN 모델의 결과를 분석하였다. 가속도 및 토크 센서로부터 얻은 웨이퍼 이송 로봇의 신호-주파수 이미지에 Grad-CAM을 적용한 결과를 Figs. 910에 나타냈다. 이를 통해 정상, 볼 스크류 유격 이상의 2가지 클래스 문제인 경우에 모델의 가중치가 큰 주파수 영역이 서로 다른 것을 확인할 수 있었다. 특히, AI는 이 두 상태를 구분하는데 있어 각각의 특징을 효과적으로 식별할 수 있음을 보여주었다.
Fig. 9

STFT and Grad-CAM result (acceleration data)

KSPE_2024_v41n10_807_f009.jpg
Fig. 10

STFT and Grad-CAM result (torque data)

KSPE_2024_v41n10_807_f010.jpg
(2) FG-CAM 적용 모델 해석
모델 해석을 위해 원신호의 주파수 대역의 파워 스펙트럼 밀도(Power Spectrum Density, PSD) 그래프와 FG-CAM을 사용한 분류 활성화 신호(CAM)의 파워 스펙트럼 밀도 그래프를 비교하였다. 이를 통해 모델이 주파수 영역에서, 원신호의 어느 주파수 영역을 주로 분류에 활용하는지에 대한 해석을 수행하였다. Fig. 11은 가속도 정보를 사용한 경우로 테스트 데이터에 대한 이상과 정상 클래스의 평균 PSD 그래프를 나타내고 있다. 푸른색 그래프는 원신호의 PSD이고 붉은색 그래프는 CAM신호의 PSD이다. 푸른색 박스는 분류 활성화 신호 대비 원신호의 주파수 성분의 중간 영역을 표시한다. 볼 스크류 측 결함의 경우, 모델이 원신호에서 두드러지지 않은 0부터 300 Hz 미만의 주파수 대역에 가중치를 두고 참조하고 있음을 확인할 수 있다. 또한, 정상 데이터에서도 정상 클래스의 분류를 위해 0부터 500 Hz 미만과 1,400 Hz부터 주파수 대역을 가중치를 두어 참조하고 있음을 알 수 있다. Fig. 12는 토크를 사용한 경우의 테스트 데이터에 대한 결함과 정상 클래스의 평균 PSD 그래프를 나타내고 있다. 또한, 푸른색 박스는 분류 활성화 신호 대비 원신호의 주파수 성분이 낮은 영역을 표시한다. 정상 상태와 고장 상태의 주파수 대역을 식별하기가 어려운 반면, 각각의 진폭 차이가 나서 주파수 대역의 진폭 부분에 가중치를 두어 참조하고 있음을 확인할 수 있다. 모델 해석 실험 결과를 통해, 정상과 이상 상태를 포함한 2진 클래스에 대하여 모델이 주로 분류에 활용하는 대역이 원신호의 신호 성분과는 차이가 있음을 알 수 있다. 이 결과는 모델이 학습을 통해 필요한 정보에 가중치를 부여하여 분류하고 있음을 나타낸다.
Fig. 11

Raw signal and FG-CAM result (acceleration data)

KSPE_2024_v41n10_807_f011.jpg
Fig. 12

Raw signal and FG-CAM result (torque data)

KSPE_2024_v41n10_807_f012.jpg
(3) FFT-CAM 적용 결과
다음에는 FFT-CAM을 이용한 모델 해석을 수행하였다. 모델의 해석은 입력으로 이용되는 원신호의 주파수 대역의 PSD 그래프와 FFT-CAM 기법을 통한 분류 활성화 신호(CAM Signal)의 파워 스펙트럼 밀도 그래프의 시각적 비교를 통해 결과를 도출하였다. 모델의 동작을 설명하기 위해, 실제로 원신호가 포함하고 있는 신호의 주파수 성분과 모델이 주시하는 특성 신호의 주파수 성분을 비교하였다. 이를 통해 원신호의 어느 주파수 대역을 모델이 선택하여 분류에 활용하였는지에 대해 해석할 수 있다. Fig. 13은 가속도계를 사용한 경우를 나타내며, 테스트 데이터에 대한 결함과 정상 클래스의 평균 PSD 그래프이다. 푸른색 박스는 원신호의 주파수 성분이 약 500 Hz부터 주파수 대역에 속함을 나타낸다. 볼 스크류 측 결함에서 모델은 원신호에서 두드러지 않은 0부터 250 Hz 미만의 저주파 대역에 가중치를 참조하고 있음을 알 수 있다. 마찬가지로 정상 데이터를 정상으로 분류하기 위해 0부터 250 Hz 미만의 주파수 대역에 비중 있게 활용하고 있음을 확인할 수 있다. Fig. 14는 토크 정보를 사용한 경우이다. 푸른색 박스는 원신호의 주파수 대역의 PSD그래프로 저주파 대역에 속한다는 것을 나타내고 붉은색 박스는 모델이 원신호의 주파수 대역의 PSD 그래프에는 두드러지지 않은 분류 활성화 신호임을 나타낸다. 결함과 정상 데이터의 주파수 대역이 원신호의 어느 부분에 중점을 두어 분류했는지 식별하기 어렵지만, 진폭 부분에서 큰 차이를 보이고 있어서 주파수 대역의 진폭 부분에 큰 가중치를 두고 있음을 확인할 수 있다. 모델 해석 실험 결과를 통해, 정상과 이상 상태를 포함한 2진 클래스에 대하여 모델이 주로 참조해서 보는 대역이 원신호의 신호 성분과는 차이가 있음을 알 수 있다. 이 결과는 모델이 학습을 통해 필요한 정보에 가중치를 두고 분류하고 있음을 나타낸다.
Fig. 13

Raw signal and FFT-CAM result (acceleration data)

KSPE_2024_v41n10_807_f013.jpg
Fig. 14

Raw signal and FFT-CAM result (torque data)

KSPE_2024_v41n10_807_f014.jpg
본 논문에서는 반도체 장비용 웨이퍼 이송 로봇의 정렬 유격 이상을 진단하기 위해 진동 신호와 토크 신호를 이용한 심층 학습 기반의 이상 진단 방법을 제안하였다. 1D-CNN 모델과 2D-CNN 모델을 사용한 실험 결과, 가속도 센서를 사용한 경우 정상/비정상을 구분하는 2클래스 문제에서 모든 모델에서 100%의 정확도를 보였고 토크 센서를 사용하는 경우 정상/비정상을 구분하는 2클래스 문제에서는 모델에 따라 100, 97%의 정확도를 보였다. 진동 센서 및 토크 센서 모두 볼 스크류 유격 이상을 검출할 수 있음을 확인하였다. 또한, Grad-CAM, FG-CAM, FFT-CAM을 사용한 분류 활성화 맵의 주파수 대역 시각화를 통해 모델이 어떻게 이상 진단을 수행하는지 해석할 수 있었다. 이러한 분석을 통해, 정상 상태와 볼 스크류 정렬 유격 이상 상태를 구분할 때 모델이 각각 다른 주파수 영역에 높은 가중치를 두고 있음을 확인하였고 AI를 이용한 진단 모델은 이 두 상태를 효과적으로 식별할 수 있는 능력을 보여주었다.
본 연구의 목적은 그동안 회전 기기의 베어링 파손 이상 진단을 중심으로 이루어진 AI를 이용한 자동 진단 기법을 산업용 로봇에까지 확장하는 것이다. 이를 위하여 다양한 분류 방법과 해석 방법에 대해 비교연구를 통해 적합한 진단 방법을 제시하였다. 연구를 통해 제안된 방법이 웨이퍼 이송 로봇의 볼 스크류 유격 이상을 높은 정확도로 진단할 수 있음을 보여주었으며, 이는 산업 현장에서의 신뢰할 수 있는 이상 진단 및 예방 유지보수 전략 수립에 기여할 것으로 기대된다. 향후 추가적으로 연구해야 할 내용은 다음과 같다.
(1) 웨이퍼 로봇이 다품종 소량 생산이어서 이상 데이터를 구하기 어려운 점을 고려하여, 제조 후 바로 출하되는 과정에서 추가 시험이 어려운 상황을 극복하기 위해 출하 후 운전 사이클에 맞춘 시험 사이클을 설정하여 실험 데이터를 확보할 계획이다.
(2) 상하 운동이 정속도가 아니고 반복 사이클인 점을 반영하여, 로봇의 다양한 주파수에서의 응답을 분석하고, 반전 운동 시 발생하는 충격파의 영향을 연구하여 모델이 전 주파수에서 고르게 반영하도록 개선할 예정이다.
향후 연구를 통해, 웨이퍼 이송 로봇의 품질을 유지하고, 진단 모델의 신뢰성을 높여 산업용 자동화 장치의 예방 유지보수에 활용할 수 있을 것으로 예상한다.
  • 1.
    Hong, S., Lee, Y., Moon, C., (2023), Transfer learning-based vibration fault diagnosis for ball bearing, The Journal of the Convergence on Culture Technology, 9(3), 845-850.
  • 2.
    Pandya, D. H., Upadhyay, S. H., Harsha, S. P., (2013), Fault diagnosis of rolling element bearing with intrinsic mode function of acoustic emission data using APF-KNN, Expert Systems with Applications, 40(11), 4137-4145.
    10.1016/j.eswa.2013.01.033
  • 3.
    Choi, S. W., Lee, C., Lee, J.-M., Park, J. H., Lee, I.-B., (2005), Fault detection and identification of nonlinear processes based on kernel PCA, Chemometrics and Intelligent Laboratory Systems, 75(1), 55-67.
    10.1016/j.chemolab.2004.05.001
  • 4.
    Hu, H., Tang, B., Gong, X., Wei, W., Wang, H., (2017), Intelligent fault diagnosis of the high-speed train with big data based on deep neural networks, IEEE Transactions on Industrial Informatics, 13(4), 2106-2116.
    10.1109/TII.2017.2683528
  • 5.
    Liu, X., Ma, L., Mathew, J., (2006), Machinery fault diagnosis based on feature level fuzzy integral data fusion techniques, Proceedings of IEEE International Conference on Industrial Informatics, 857-862.
    10.1109/INDIN.2006.275689
  • 6.
    Ren, L., Lv, W., Jiang, S., Xiao, Y., (2016), Fault diagnosis using a joint model based on sparse representation and SVM, IEEE Transactions on Instrumentation and Measurement, 65(10), 2313-2320.
    10.1109/TIM.2016.2575318
  • 7.
    Yuan, X., Zhou, J., Huang, B. Wang, Y., Yang, C., Gui, W., (2020), Hierarchical quality-relevant feature representation for soft sensor modeling: A novel deep learning strategy, IEEE Transactions on Industrial Informatics, 16(6), 3721-3730.
    10.1109/TII.2019.2938890
  • 8.
    Samek, W., Wiegand, T., Muller, K.-R., (2017), Explainable artificial intelligence: Understanding, visualizing and interpreting deep learning models. https://arxiv.org/abs/1708.08296
  • 9.
    Gunning, D., Aha, D., (2019), DARPA’s explainable artificial intelligence (XAI) program, AI magazine, 40(2), 44-58.
    10.1609/aimag.v40i2.2850
  • 10.
    Kim, M. S., Yun, J., Park, P., (2021), An explainable convolutional neural network for fault diagnosis in linear motion guide, IEEE Transactions on Industrial Informatics, 17(6), 4036-4045.
    10.1109/TII.2020.3012989
  • 11.
    Ahn, J., (2021), An explainable 1D-CNN deep learning method for fault diagnosis of rotating machinery using FFT-CAM, M.Sc. Thesis, Kyung Hee University.
  • 12.
    Manhertz, G., Bereczky, A., (2021), STFT spectrogram based hybrid evaluation method for rotating machine transient vibration analysis, Mechanical Systems and Signal Processing, 154, 107583.
    10.1016/j.ymssp.2020.107583
  • 13.
    Han, J., Park, S., Hong, S., (2022), Performance evaluation of the continuous wavelet transformation data in motor fault diagnosis through XAI algorithm, The Transactions of the Korean Institute of Electrical Engineers, 71(1), 225-232.
    10.5370/KIEE.2022.71.1.225
  • 14.
    Simonyan, K., Zisserman, A., (2014), Very deep convolutional networks for large-scale image recognition, https://doi.org/10.48550/arXiv.1409.1556
  • 15.
    Kim, Y., Jeon, H., Kim, Y. K., (2022), A comparison study of ball bearing fault diagnosis and classification analysis using XAI Grad-CAM. The Transactions of the Korean Institute of Electrical Engineers, 71(9), 1315-1325.
    10.5370/KIEE.2022.71.9.1315
  • 16.
    Zhou, B., Khosla, A., Lapedriza, A., Oliva, A., Torralba, A., (2016), Learning deep features for discriminative localization, Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2921-2929.
    10.1109/CVPR.2016.319
  • 17.
    Selvaraju, R. R., Cogswell, M., Das, A., Vedantam, R., Parikh, D., Batra, D., (2017), Grad-CAM: Visual explanations from deep networks via gradient-based localization, Proceedings of the IEEE International Conference on Computer Vision, 618-626.
    10.1109/ICCV.2017.74
  • 18.
    Maaten, L., Hinton, G., (2008), Visualizing data using t-SNE, Journal of Machine Learning Research, 9(86), 2579-2605.
Su-bin Hong
KSPE_2024_v41n10_807_bf001.jpg
Research assistant in the research center of Ninebell co. Ltd. His research interests are information and communication and AI.
Hye-jin Kim
KSPE_2024_v41n10_807_bf002.jpg
Research assistant in the research center of Ninebell co. Ltd. Her research interests include robotics, AI, Bigdata.
Young-dae Lee
KSPE_2024_v41n10_807_bf003.jpg
Ph.D, The senior researcher in the research center of Ninebell co. Ltd. His research interests include robotics, fuzzy control and AI.
Chanwoo Moon
KSPE_2024_v41n10_807_bf004.jpg
Professor, School of Electrical Engineering, Kookmin University, Seoul, Korea. His research interest is robotics, and motor control.

Download Citation

Download a citation file in RIS format that can be imported by all major citation management software, including EndNote, ProCite, RefWorks, and Reference Manager.

Format:

Include:

A Misalignment Diagnosis System for Wafer Transfer Robot based on Deep Learning and Vibration Signal
J. Korean Soc. Precis. Eng.. 2024;41(10):807-814.   Published online October 1, 2024
Download Citation

Download a citation file in RIS format that can be imported by all major citation management software, including EndNote, ProCite, RefWorks, and Reference Manager.

Format:
Include:
A Misalignment Diagnosis System for Wafer Transfer Robot based on Deep Learning and Vibration Signal
J. Korean Soc. Precis. Eng.. 2024;41(10):807-814.   Published online October 1, 2024
Close

Figure

  • 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
A Misalignment Diagnosis System for Wafer Transfer Robot based on Deep Learning and Vibration Signal
Image Image Image Image Image Image Image Image Image Image Image Image Image Image
Fig. 1 The proposed diagnostic system
Fig. 2 Experimental setup
Fig. 3 Acceleration signal spectrogram (above) and original signal (below) (a) Normal (b) Ball screw misalignment
Fig. 4 Torque signal spectrogram (above) and original signal (below) (a) Normal (b) Ball screw misalignment
Fig. 5 Loss function (acceleration data)
Fig. 6 Loss function (torque data)
Fig. 7 T-SNE graph of acceleration data case
Fig. 8 T-SNE graph of torque data case
Fig. 9 STFT and Grad-CAM result (acceleration data)
Fig. 10 STFT and Grad-CAM result (torque data)
Fig. 11 Raw signal and FG-CAM result (acceleration data)
Fig. 12 Raw signal and FG-CAM result (torque data)
Fig. 13 Raw signal and FFT-CAM result (acceleration data)
Fig. 14 Raw signal and FFT-CAM result (torque data)
A Misalignment Diagnosis System for Wafer Transfer Robot based on Deep Learning and Vibration Signal
Class # Training data # Validation data # Test data # Total
Fault 68 16 16 100
Normal 68 16 16 100
Sensor type Model Classes Accuracy %
Acceleration sensor 1D-CNN 2 100
2D-CNN 2 100
Torque sensor 1D-CNN 2 100
2D-CNN 2 97
Fault 1.0 0.0
Normal 0.06 0.94
Fault Normal
Table 1 Data sets for experiments
Table 2 Diagnosis accuracy
Table 3 Confusion matrix, (Torque sensor, 2D-CNN)