ࡱ> C@AB r(@ |/ 00DTimes New RomanLL<Ԗ-a0ԖDComic Sans MSnLL<Ԗ-a0ԖBhhgLP c?tComic Sans MSRegularVersion 2.20Comic Sans MSBSGPJa=;DcW h1:9_)@gRNP's޺9٢3+#Qu:?qH#vkLFMPp`KrPϝŀx)ܦʉom X"}U*ƴk ->›H< j+[rS$ZrGf|z&eyjJ^C!gc~ b- ͞ pugbHtA% O70Q&P*3 F(,uo_\P,/dC (E9g9AH y7)H=+ӿl DžBm촅WwR?-GIU|U0WJvb'% 6]'b@1(V,c3aʯ/l9:Qb-;|B:0D#xLx8H|*1T >ZqZ:P\L*h]l߉gratF 1:#Gm4 \&PG! ~"x{H|a%)@B'@5 ( $O;O0-IFE)ծk&rpFGYc坦Mogvr_C#(PcM(u} .e0sˌJcEQ0( 獀rn?YM. z`yC ye g vMC GC0&V>YlB ^* N*z羓(<]}Ւ}tp;~)f5=JGosOVZLCxq }*Uhm"oC>ᄌ9f"Jv~̯l(o` !l߂s"p"ІXм Rt,::VZR_M+@4Fhԯ%nZbի$&OasEhjRc2s ^,x5HW`q #C*)lP q56Qq6AztfHiqH$Ԑh$2AMP0.u^e#F:)[HZjX3< 5-Rrr徲tc0tbH67m2J!(:!03T 5U47uHkM!h /faC8+jk8¶kMX;h9Z` \AH}Akcw9QYڰ,M(3+n+e(D^-QO&CF8a7X#+hM?9KVKkJ'gdSʛqRR7zR`)q%z`(X{NC 4BKAրs}\*sQA'Rs9{RTv9Nf,DCMG^t*lsjdO#`m^ػ%t˕A) @VE,MZHL@v" u"I@'yTT9es9Hn rݠ:H,i'ǏU(oj^K.[9Xy b4/ A}cy}88Expd^~LN._C\_d?(lYb%I#Gl po=DEr F"$e14sRԄMHC2a-6DA͏ZxI`XdZ3:#g}aZ(Ē['"e(:flI8 n(9V%J.rFԋv\rwPt%%^JhKULK/a$8bR2|3Sb"]#8T}2pc-%#e]p 1Dq.qsLc ,]:A͎v8t4o9r1ȔF[ݑ\0h764>`L0 gP|FYR9 ʫDu%=4hً`@ծFǔuia(00D)oZ7QơaJAԤ| KphSkO,MqJR̋`!vjc 9 q2f)  h:~N% |?8%/33tqWri D-\ H!?]G󛲚''lFE|$VC'rݳ8MDROAX4@K6^c5\GPכK-̚V6\ya)Qwy|s`/@0Dw$>;[UC#M* MiGPi9FeTşR#1γ@ ;O^ 4,"rDǥ܂?[i/\mݜ:J>/؀N%=t:3^Mg> ]ʒr Z(57#"$<.lưVh3a: XW>+6Re}6D5d䴙BPohICccJQoeg JwP/iȢuINS .ܙ7VrHD*r@") ʐ'^dMC}(ʼn)zeQT~O,L0b؈ 8骡6Zz9sVN_wV# <^>Oklj߅^x H'k-&uiWCޣCᓞ9¨SAsTne̪3wqƏmfzSKvmAˬRx;l($6 $|61)fn J 7 Df̲=~ˬ{>wC@v%-0#\^~yVe= mLtG"# ;yl7q=eq}2[=ȅ 蓄h*ɁĻG~7w*1Ki y rq1D{cY^gIJO}4s2oԏ ˉlEt[s*i/L?虍m+iMɇG1d1I1H8" M+a3đ*c ]9q#lTw HXki.4HD -34Ay_Evo@Y4J{'o^MC? ]s FUI3[J >yc&gðM^2R$Vl0|-)7azaR*qac꼬rYbhg8辜9OY^pxlґ5(| da_> Ag4t1tg2jFeK 贴3y!0^AD3{qћE}TDiЛ#%Qసa ,989] 8vGdsXGJQ9^0P `kFmx N ?U|ZFL55**X-Y"-v>=ܤNf#;1ӹ4l"zx<_a{^g#fW'[1b`E>_bl*!w!=sΡ>%{-*Aq$#:Hh vi:O~Л˥@L*D ї2I8}fYC*"%ih{0>QԮ^i# Ft?1>{qMϺrd5ŶO?'SW@7WM}g#%¢USw/6lШ xQXn90c&VJ_0- 0f߰sMBL͚8b4c-% ?GP󻗆íH ׯU|A&&{I`C]S ݦ$vWRdES0ZG[$)dךx `F=UPB1bdZ1`r(7X0d88#RW,=}lAhdl2G"T=D`#4evIkp4*A _~V'qDY%I%(tC2ϔS2E`,I0Nr"]R, ]G)Hv/9v<((K ,S=׫ԵtQ9Zi;3e ݘ'DtiR>oL~>}$i9q/c6* WWdI1HS3ʆaד)K8H!ٔAe:1UDWH!k *hc`4Bğ+ ?x06v~ڬzjÞ.0p'TONxX?DvsՕ? w-ܕ<ŧP[AY>Aʶ@_*R@d(mRXld*W7)s[xS*#` Wcݵ>*mfxۇw9 5BeQ0K>KܜҕU׉ʃ`>fJM|VӳmHॣ3CcEgTTbu(`  Iщ- 9}Qxec cQkG*b2':soLB/84bd2g~I'rlg4$!` ?RL)lcFvf1UzóSWBJ44]zSP$)޸.B pPjF΃.ZrYWw9Sl)F8Ȼ!Ւht¾ ۣa%r${qܹ!#Vhi%Ŷ:~5Lق<+zW)Þ ^=n(;-LT48k*K H խ$ָ0)V NStljƅ>`гXAhORi VFk XPC8:hqؼX-[STVhv<"k _ 'G)ؓ_H>!U+~'{YX>bDykxI: ""=tu];F=y-[:dc#kCB7d_IEpF@hxR4MIulRblyG3 *r ?1;&~((tMh(,}=-R{&R\(_zψh [s]oW^VE) Ra΢$с{:pKN 2hk7&DD:M7< մ \͂K:(T&$$i .)%%)CȆ@n<+3H;E\. h-ה2f?^U10$&/ьa%3}2R1ȑY|Hx|$Y}Bs9'C,2b0DN3;Cz9gvgBwu69z eGgU ` \ 2A̳aur*]+5pB$(؜@85%ߣ(cLf XCAzDe3 kh4i `pmceVכ;:d<і4aV 8o0ᔂgKuZqQ H1vF"%n8=Vb#zQ@SZ0[>3:pTҜ`Ɠ֫Z4T}l@ Z Ngl]%T=pLLG pN@f rl2ŧI@3X~2kaKvow #>6 3ki\?<"E.H' 3"6bͨe8E$6 :4#"E(!Hm9,Gu1K4釩W@`:`sn-Ŵp[.Nq"+GT̨gw?(=7qȼxy\)OW?]Lxү1*0v0!66@k5JSҏ14ڦ.H ;Q[M&^&n1EZIG)l:wNDB#1(*.;bfF}$20|}GYj7Joef LOq:l[}v$w;#5<U,ֲSqRQ"@Ġ)&#aB|]IA%(!8akt6- OG!Qƛ`Sc%Xb^E1fq'3a_ γESae x &Kk 0s [5Ȗ@3ޜhs^Y UеDzʷQU.)i#;йzRQ+mɔ=9SHIriE ABi6ra*ªaEBc$gF+M&]Zl27Kij tez'ga˫̛P-sյs'H*n4Wcb+XQH~$uRfe*"eOh.xe ' r#r_D^3bV%R–HP@5=CEad렴ND[zH95s=|͠5+ 1Uxh@t̀TMI os|^䊿e/ go6uɽ Vφ{f5h6-$ZO'c/N8XfF_?~fۭJ16ajFb+,nTHP1s`LokP& ?qS'jpX0]^${dX**X.- :krB ApM:56Gdo#x3k !)YiTe_L@,D"`'(V$ly.E|*9sKA5nG6) r,ַ{ҒM7E|1!4y%c?~.'>fen%îд"n8ס%mЗU{Ϗ nVtp+=Mx84" $ޙ uPUU0Tu2zT fPmGc=R3Griz¥Į@3u`SSeKLلK#;ᄶzzSuN TLHz!: Y wD4 Css-4r&| 5±iTf1ߚmљ^_ॱcTX79U$4pgL]W=7d6H/Ӱ]m8&TފկQa,$%bUFR@e im0+&X*}*󃀠ӝu9<@!SŒhPNrU6^ƀ#C F* |^jKȫzGbPk.BBd>>тhCWP9P}^-^F"F>֬ z lKZdW9bT Tlg tmh?<Dvq s^@VWC!9fv/ f <<RO ‰(_e>buy㘜S/#D8hqn'AŠvE=J-;$4‰k!#n'-#ił$,D5k~sԵ&7젹($bUK̄㜙f Ei3KF_j[xaAFQ)$LR\H~RC^I4%C\e++LZv$(p@#v ʱ BiA:4P`)'5x3DGZX!gl4xP˙[줱B b#I*WT{5J`0^с#,.LQGuʄ{^a,Y2O;cVތ$!Ui K㾆:ꬔJ|ͽx+cf \yb#\PІ䮷Kr+0e7%pdMg> 1E^q }92xI4sOWNh2 6|5ʿ]ɾD/ T+L8Y9" ٛzqj%XݗDG3Au 99ET8#(FiBK)V#.^_$xƳwghzV\&)0Hrch"?Y]lEt.ckZo0bgh B&k (rK~|_ ): H8\s lF;-2>V)4F,9˪ b;(l`x}I,Kbe{](VL<ѝ!&(JRAr&Q՚!2߄9J1W*"jdSjաxPAKK"哿:$XL{> 2jq.9iOtb$=3&é  ӇyK&; 1q7_ueX?͋ [T3s؎#աOIG0d0@ ZnUθh3PaY8PR`B[ BhDk"`yKCCj^T4-#C,8tZ7%:8/j)8 HJj[Ba/Z5qUh r،x(q x䓬s\Y1 Ss ,RfrC0p}q(A x;c$GF[n Dh<`糊'J.x,7u۽]jf̡"`6nf"4_3N)L$sol;J-Jf+_GZO#@ GQz;ȓY<1LՄ<!e)Pć$: \G&&j@@ L5|T-(u͈#u& k @G(I@T lF%;h@Iѣ ٪ȌM 6GK鋊9T(. JD]9\wVeo)mJTDe4dVlq.<DT9fҝX tOnPz(iJ2l ]LM1ҎBԏ&:+e$3>m"{柌+YDI#C}U&.t2D3HJ$*đ =1o #>)  ;bSǃ֨[EZ0x94ȣ1$BD:ކUӭ~8GUEv6AJZJb3Ch7/yCMy AcpsR_]ԜH rHu Zra2,3}56ad$`*TD`Ĕ{q0*g^VTBvWK 6ն@d,~0|~رJ)'\"s"{nlacy11OMWyS;S fhF$)W,Y0wg[fM僝5iw˫!^2m6TGICj7Ao$7z3(hY;(h? ^u@pP-nCá遝c?zaƿQ ObGQ^Ҹ gY;M9Ȳ@4}+lZ 6}7$ŵNDYko 6 $< {s԰`ڨ_)!@Tz䦂8`/Rt )[FxxWӗd]zx=]Qu`l[3wf9f]E#COB\a= f:z=.2:`@*Mv}2v,N" wx ;`E8愥~98!p~j-w?-'HC̪mg,9& q,kB*-@6\z:n9vơhx͐2ψաfKSm"*r =˺4t4?ខ^Vk:l03J޳ Rύj8SBOj#>7v|#Rj72hʙHI$ AzY3>% w\%mopǔ= ;(m_U%|"~,,_H(HQbrKjz G2@9#߼c8ǓG?#}@:l`PN1\ALh +?A@+鯞ayaYb7bf&HXZehxǹ"v{}s|2A; &Wd.t kH%PL iӕҙ dXd7/W5$u]{.KeE8âAdPP5I;`߯c{GtYh8ޔ6>-e`Vľ%Fhoն"qT*d eP5x=J{̢ЋX M-hf<<ԡϭM9m>һ]4yK3*i!1yfYƔ&H ֡QH +S5`,-!p"Xu'z#[1u+ULi7QcP㓧fW3<:5HlE `la I5HHMKɶyw:[NEFɼPyqgF%yJA#$yTm,\E£z⪨'P:@!/_+= V2I#_!t.Af`Tq.lHz3@!GS*HqESk(GrȄzEdٷ*_|s"+nX7XItvO rC1N'Ee ̏X~܀ `G Z D h t 3.xy52.Jw0`%utQ"T!ya<puP  e~dcgx|&wRgG^3=FC`I!Q%Wq ߚnq _`_ҘImv(ߴU VJ `˟wӂxLì7 ʮ(a1Ӏx.aEuɑ|[N/=V 3 ໚uvX:LIX>ʀ븂EAVG2o:/b7\}{8(/3ݘwU8A_I]m̓x|w(=[=@B` 85@/Ft90RrdN6*9'OI),UJ B+S-ڲq5׶t}K۵I\ܒhE"z-huJP|^[o/]+dTx ^"2^//ysSRA*~S=w,#l6&+T/xI╪/|~ґa@pn)#ɓ#*CP/UhNNRò^:eMCP2BR}8iHV&{PPe+My"f:7L`g L14KʱF8!\0NEHCMb*8w w [FjmB餎yHUZZ! AOY-8W"-!j4* )F˄" 0 Rr iTiZ@?aKw;AF4B_$LbEACqH۴ 4x(1[ZA̟G'Ash]6̃? Ԡ[a=pygi 2"`Al}SI؅GAH4pڐ_{tL @\L E4>Ц,I:js?'p~Мe6;+r!ꠓ5|x KT[J婲hs+ 0K@F~@J V]9|;v[Lu-uª\* Kߢ8.Ck/E, H ;5qeŋYa7< ; s͏%~%$x[U"'L.ܶ$ >]-4n!W gE 1)@Ji%Iq=gR %/q4L+GGӛl8}wdW(+Wl-fZMRHaĊOzb ,`,~#)+~W/QɄ&iQc%* Kfr9 `W~Qৃiȡny3xXyӒ1 *>XĖDDVV0]9vj- ABp-FNJJS qmH(PB!E3؝6!yt. 5 `s'*L7$ Gn*T4= Mh ^L@a~x{^ V`""!EzM$A 65H1 53Z  @ PǡBm؃ !>=+aKăYC`Yyx_cl2 @D@-B  C#`mD6AA8 eh`c'HAq^@_Jm-Vt`3MLCS4-sLTH`D83RПrg:9sM<86v,_L^_Nu۫lA)huL>wVo[h* -M|66G#֫/[E@E?j9,gXҎp '[KE)®8!*v|tT\k猖-Laa`6$4#j"sgEà v` FHjEߝ1NEAa+-i@QQ+Z)m 0"f3Ddpƍ"h*a,9%bҦxV`+ ,i6* ]er"qؾ#ZډL͒Gi`7enk.eyT@E :ض~j הF mqC_؇6! |K{@!) )g4G3#~(+7٭Wh<-K$@j$҈90v{SGf&ʮ_L%i8P8oP tiJF7Aj(jc%O:`XP6,O>B {ri j!o˟0Bx$v*iN#C=b@ PٵO4*)d}2F4\u:+ ҘӾvvЄ%kU-`*(iq1?k >5=7ء֛2ad ?VQoqy-1OD B`rIs+K쨣s%*a1!f@# s 7&ʑq=f)!@3JzFJD[X%)nڡ + y@tVŒXsu@1 Ξ!vɄID~. <7)zy!88PF87[i F猜c3JWŨR Solsu{r@Ex.iAh9Y_[(3m_Aξr[y; BB n~:z> QڱYe /'Ǝ sL Ekb7l歛.Qnk@BϺwE _7a]7J5MO@#xGwAFb뀃m}6#'j4ɶ~n*Ά3݋FZ@7F3SNK.\YM^! e3bމ}Q' K0vYu^<`|",a'!+SYݶbMVUƕ8 ,@C)5(W"\RH枂Kv ]|9<}?HiQ)˖q2$MNK̴ڰ,wSfp*dBDج' wNh`Q;;j|ELDwu/$PIbt _C)LH+͌3.vW"A07vd2 Ӧqp$ю٫YNCR^5kʒ$!YCz-; /(.*CU3n|bdn CaUMw!Ik֣ 78-&ȂȂ"#80>[?:eK?v3$1-@P#Z}؊yT<@JHe3(0ŝe" x|BܾZ3}74@EP8sdЯw@"0XE\0a #@I*ئHN-M>R\.Os>Xlg TXE-@Y\ z˙+#^†Ќv|Dh>@0%r@rG h-4SHѧr Pm+øF+'uZaDM,Ml|v.! y"o`9HywCm$$uԾn*wz<.Hj7-Y'q{(\oC4 IIOJx(Qw x`G- CAd\->Ԥ:'zM|] rVW_aH[Juog>bq3 SLս`F\X`2Z 6G^C)ߕk2E<' rYYPb=T޳pkm#f' AB!/ʝŢF`L&{gP\ ewȭAH79ml*é% w+,yCB#~?35(KvEU$hʲgط9P?ߏ? 8B AD^:oCuI{QĮM0$ZPX ^hc]D fQj#/ yl"= 1!!LP@9ۑ F΢˻M!+rjXml[KWI! .PQi]T >!={e_L<΄Rr#+IOqܺMjYC`bdx_}V$+$`q\^קkw7RLq S-e# kV.[qP!R<|$82ryZQ1ww~aDs%;p8R ;l$T:PyP$`d +S8l@ k@3APӧ.f.64k2,"kؔ˯ie;l P(V,ˁrm3%$ACYZsP(ٯ%x.HٱGUR'ѬaE S_G~Mz3|2 )+]m ᩧWi;US8:%r0-B$1Ϯ,5P0>K+to~uuB+/s1䂥@qB@=D-LgH@ Ez sOP@v+EA^x@z@mklh-Ν젉ցD}Y{W|7 .wO,WjBćݰ@+XUgn/JX&th_ jcl|[.<(ྑ@#2^NjhU A{k**@|IۊYDӯdWoIq"x;YsixL!٬.'k"2U6oxbyyM(j@+\?5ؾ9]{Ȓ}C|:#*doz1@ =8dGrhFSA҅PuHLΒ9$~dl}S_ϵ)=v$hHE4< ]lH"|nk受^4KUJ䧁[,AQ'b!$X mhd2 ::O*SxxFx6-7$gLQ "⃉+I(}R"*Cu= D) "DѦ co g[ ۘ>!sWy8{a Ȝ}Gau-εu:O; .E^Un&؂yP1d6&qs nSX0(Z8R8PtVxL6Rą >PDY]q3"6e0S0(ԣB6}["ذML hm57J>P!۹ SvDmc,x$x XwF:=D?N5  -SLu6hoF1 *63jTYh[ ÄO5üDrEV-[!7ED^C|}dk+H8,!ǏL݋#]F"i "*Rt* LLaRc`̼ggt9%i`3ဓDj#6{@gL/R,s/ :AʣzZ3%  o%L4W!YuF-Pш,]iOecUFDdgI?k,(`^^0T?iN_[:|@RUf3 ,4#_~iHC5R/L<w*Hђ +OIU"ةH9VV#V LP GwComic Sans MS BoldVersion 2.10$Comic Sans MS BoldBSGPݜB.P5cW h1:9?~A6zx3 S215"Spy7}ir`SECFZ$}ǘ5?Ww=߭nTKj)8lE>[ u@1c;زY-?V2[&܉0*y@d0O5Ta'#~K7Ik 6PwQ& yx0_Job͆X%a:={h0nLH- `ݢ߄;XG@ډYx*H 2م%R)$J?ۡuٷ P^NnT30e! /8M*BxWg$HAVp·iX(\M ׾|IM" .{)Iun Vcm(l&P(wˏ-*~GsZ-:(c_NERE4jGƕo8!>@&_)'@4#ϐIG3JhOj]""tLpZ&q4ͯ^O)O;I酂LO*HaQT|ޅ^Z͓P#V~m2K-XvLN@cu';f8=L+ƕ̓',U:G;N;px߸ եOrq)?M%dvޢ( C qn"ueS]4Z֣tȧTY%=,P5h 3 _B.pCqxQ{{ OAc)<r RC*vЅ?:W`GX-]Fݢsa#\[,k5(h]JSx ˼iFgD(@"1?׿zl[_=dDDxN@> Җa4Mn-ܸE1F9ge"l dtǎxpZ'-fJhA(\nĔrrr÷ US`Tx,S)bqL&`rStTG>(b &~S[ZسXa'Nh9A± (WAX_Ru#bXr|@Jma.qJT7١A #w ȹ=o"5]#ϺL"\ZyI:}!˃ѐ+ \rP]z@0XV4һ#G_ͺbfumhA8 8!)Y@)m1LCq-#q1izHⓝr[tR: v4o8 XW!(_#ߤK Kfpv o P#9D%Ġ2QqVX,<fva?c(`E9`7/Ci$jIhąjG9%$./(n?bBm&(9rqi^~;GrP܊]|=*DFVDQu=|A4l~[iGvmyd_. S1v1F|zDf A.ą |!xDkJ%ԑtR.h'Jf>OtGLd_n٪hV6UIYfD>Tz`|lp6#7pO$Y8CH}ТTjmq:iliQ/,ӣĸUXp]xpGR3S9ǏJNvek@8!.}es1{>ojW5EdS*smA`ib{ fO/( EQ1$Ķä|R o F7pe2 Mc)Ι԰ˤKLJTX7/`X!kd'|^x QP? 9AЄإ',($0x35qgR%7C(J֩)%U\Vj>)5B ;Vn̏}*A1c'`S̲2EjRҢx"d,;/&v>3} cFNB@F5FxuYl DzHDIBv^pӫ WP!CFNT"+VGu}b GZe2G{ aJq 8Jx2pɰcCHx{u5((""|?hmY]jBV>,KB^`yy3  -yDipcjލ<[Zo?)} S5r)!i&US(Ya-„^ #3EeQT.a&zquM!|8H^:d` )b#] ^5!S鳖>V4urpu|;5a MDf/zp i b?ѬYOfQ5=$52)(ZF*z6[bu\Ρ EՒ8Vx`Qwϓ](6C\gUlQ ;hKa A4V`Eǒ!+]7\8s!#`#Hֆ2\TݛtdZ%:z`ayhLO=T́cF :n9CfPCńo͍C4dcQa6Bw,kS5D5Ȗ ʈ~= 3<ԟmTlH98|Y%=((Q:0#PMA\L&5x(%xxqp)פڱs9 4T_لA^F+'{;?+ >6՝/k߷{F<`{iӢؑsS@}BCvZ4S0Vuq1ILjlNC]|T.O@tDc| AލQ.H(wJٳ̊s%7V j ::\ieb"}J-ZjUcApԳ,2We =b ')jQy]̍7Y9'n`MIR h]2$CAb1[%# ue!΢NoꏭbL);xڍN<6ڬ> x%/5pGRo\ rZun*9Y Bbf#c1sH2U1}ͻ) 4J' VrZ&Hd8jSh# SОy u`+d-int دw@(Xg9u.(Τ~7d UDM4ЅWDmdxZ?UyĶ&mXcb&9}:1"b1ǜ08Pbr W1%TL(և<[Si#jHOH-ES6%G+BQ܎߳э 1X"5n!00z=`O9li v*XHS PNe MբJch&-Jsp }0.`IVcw.~s QtwƔHd}}#Yn*ꩱQ-` ro#թaoF@o|2\@ԃÏe{ am Wz$Ɛ E.W3MqB/lJ A$NYgmOEa7Rm? Ywx U1!8Ae}Fx#Ps)G6"5eMJ~xQ/W_XEaφ]}s>J̫̔=cV z $ChN""V(I5{5`TUz +1=k_xhxqh::˸)$4zu/ڿH"&k-Sp ,PtƟE!ƓLc³oRdKk:˲P4fn2"Y\ p'B,[ _t^m3 ?..p J,܋JbFmlgm60854 Aq⣒<-J9 (K>= K7upE'/du)^(h6h4ESPէ3,Нw):;W*|@Qsg[ =M6!ft(a9Gpp2\"2PmA.(7 [n?}# GvI.9SJ!aR ֑ȇOxb1>,K #y^BV7]<;FbAbΈE󬮀{ַ$|zp^?-I{3 6Rl<~ӱ wۚحR>y НoNP4P_Bdn^#~Iw3P+mOA'AhzO6R*+ f Hp2g:w lT%(~\f<~9MOJ&- LHSZS3f~ /Y7 Hг\9N$u.Qsb6ǰXDutĠr)?;ufpڞ@&U'*n#fmkD=_Xj_r!ll\dДu@ʇuF*#Ar=*wߌED> 5IPx7!> @ '6ӛyJ45 l6ga o)&.Es) bb>rT*=TN.Z\J#>[95Yy:'r {y?[x]K^"Ya[0=, /A(iw'.2pP/Y5(G"bZr]GP" Y sUC+R`8##^]%p ez .iFrw=JAC͈T]Z A!<ˡc<ߒt )tE_%;[eٯa/gacfsg%0.*7Yկ *)*#b.u.-r":zbD- ɹRg~\n3LI]ɘB'%҃cكWM!Ji2jɩGނS|DBQ-*`Pq )Vn}h-5ECʘʌMm~bT6";̼:rb^Vhveo+mDžTPs=LBOL ɞ ԅqBax V޺T<\qRd}." 3})lY56 ! } 󏟓QͩQH&:ew(-N$)XC22dF&Ϟ_*vg)FUDꋮ,(6A Fx !^1>$G=|w`"tgf dppٜqbSj Wh.S1j.ۦͬ~!u)`13IQx[@n0 =SAqPЃE!DCkdzKķ5uђs/VdHGd yFSRB1^*> l1à'd Z4IX8{7Qa]?uRt-ۀ3QIkM%6NxѣhksSlP*-K\d: 8^ x :ؘ{'TpKr࣌=] ;5" ~V8<$b"1=`MX9?"ՈCKB=YpW1oh5g˟.%p#JJXQԜΛQͪO" h}r3ӊWH{gAGfz-@/8nג8KJD`7&FZpC) c"NlPRq' ;%Z>9CSLRR(>S3+ΚV" * 6hf[WyR'*]>V`Pi-MҚZ-%6>p+`?L1(bkĢ ~<dޚ2s&C r8\b;"L,xQ;B$# l,=L:f)Ae;@?}VпŷqR3#BtOGD^Zb=o>E$A$m=l]Z@ōV@G9}~ LtRChвgvT_h3{@ѐv )>@CQO SA';2 j+}IgC,}M:"7c^0CT*VvZfJ ӈ3,Y%Uy81S%Yw_΄TΙPiW 02ZN<ƴɲ.rͼ5;;|=D 1R]}-!F[g)㏋!X<鳣CD! 3eѳ]okfB =Tbz#2|y٫媒FjMh?qXe!yDA{x.aT} A=d=,[/|bg9&1$?/M$ⲋ 3bk.SDn"w}]>FSqeB>ͤ\(Lf{O/0A+G[n` NQ^7ˁ52]!VE10As%&ŁOGPoZ _sE63JK"yp8O0g3  uˢ2" gH&$w Sqb@4T֝2b)@ղ?~?QRrwOa;.q7x̃qWHJS7Y@ôP+]oԮ \8фK 35kڦ>V|rbe9Z"WԮOė\V{eF̖xt|PKv~r83uGX iz^YM*EQq3@`5!(MrhoT(;D0,a$$#b"攨 Ű>^tf}_'_ȇ؏I͓R8&tF*RcʼnDJ#`#?Y\_!OZ Lm:oPɍ ,QJxƆP5SτQjq/n5&]n?!ePJ, ULaI/A؅؍[FDL6aƶ5rkVJK P,;aazΏYLT% W]/U#P7s3 騡^fA+Tqﳜw!7>7e?>$:?Lށ*zQ3 =z jmR-~Aڱ> tpP˾P;Jovu! t+8sy3bGG=Snw!䃰50.  2/z7]G^JC`0Q+v~O_ MF2kQCx3.EsIwX,=2FhFjvWK#.])fΩ9_RrI%zqAH9Ro0tLw4J܁R#8;V+aY9OKsP=htJe0)CtA!8 F$I |98$S\ ψz9p _6=E>/)/џ(j=ڴj Y)Զ(R.!R`@~HI/ ,Id-\)0D?j3C)dX&m؊6E+~ V2"`_[_QGtw ~Bf,܊U9bD_h*^z_ JVf[4 nsP&$k3(BA/`[֩ݮG֓=Y4*j5bp66,Sʋy/,ro/l7 U bdT#V7X33 -1%ӺnCK`0tL$#-wD{0#068lCVCo "ǀaXNB8zcx dx<&A~4\o})W)s|_Hd.. 蟺9j9jJ\DPs?R0$L"ZM>hpFhILf,}g1˰{ĠQ? saMn6zq==pٷn52gcU:E>%v70MSJQvDr(8x ̡)@W@Q<{#mRO(E`bژ (K޸О*(H%|u?A{F眵 ݣ .pbl kfiwZa. Ny<JR<$gUCM>;/*&z==yh͙Pig/%2ac$N Z#I"&oD9 5^%V2 iFD @p"wr $\%C=4p^"يmMoYV32- wD20H;I8nXlHgPW C`DpNH\bT,˧Y$ .aЂQeXl%ݻs|WG x#V"2tP^"JƱ=[knGׯ~gXgYC8tsfӪ^U96$~Mqr|a-]\R0 ze͍2!{D軐v϶6 JS[owx,yPVBk|C*q&dlPHꮝYfAhnM pL{)&G?d 5ὟmR"&CSdn[ǞZ %4b@v8\ME'~@9@QE0͢1q1)Kc , )lN9hZCХG1r䥒⌶_)RuR$$MȋYwُ1 q??]#gܦ)06K6-J%;Qa(`JTGY#lqJ[0"}>#u۸EcKEB\o?]*۠eպ1W:o*ಊ$pz]X jF29[{;Pf: ܦ@(/С 3Hj9I, lq8\|:Y@{=Iqfcs&71&4V%Q&Ir[U+m12Amwe Xj nA\aN4FvdY* v9e9T%`vbK#A81;ץ`0_fp4J3 F(,X10z0Ȇp~ K `ZFWjæXhGmQ  ;ҁѽQ'y( a-tt8PIɚJ7!SN .K` )$ RxLu#aOp|PԸs©6 P Go/f7U#3 3N , ̩iPg5TOfBabJf4&hhd3S e2]K)N#Ũi#c|xSR ,l(Yi jbz#G" " 1QE1ѨnHЯ]8Tп 9 >϶Y3ePt:,HE3.p&[iS^dBE8FP<-rGchQ-TRU.ڏ^ BKkFrU$ .Tyf{{(2Yaڽw>hFѱZNk(DZ~7³lbÄ0` FAk"3,20ì@"9pj0IJs0^p2t D*v SQ+o27w,l5ᆹo14 6QQ؋s" ;%m7nb 9Ey_A?mبWAB" z;Dr0&o>'e hP}܃xΰp<.q 8b;!prUg7 אn0I=HhHqH4A*(sr}Q6_WjdXK~i-*0]"<˨/fhjă.&c}ʳ%f*iRW$l׻u*\MdgA1멲 a1LdTCH+[}k%`XPD9! u?'y )󸪆 P0vN‡@M8([蕳sܪ(Ic)/oZ^g1`Ɵ͆, Na,R@{`13E7gtkD٬6ǏQ&v &La|%ĭf[`7i2Z868Q72ڂFG7vs-@\~Aj-j C'BbT_˕ud>.b$ʯ1#qx7P#FȺ#W,hC&"ϭ ! D@h 6`8XtD>@'srPg{h8p1$`J 왺N:HnqMxAei-o; 7SAUbҒ"!e3yVP7!HqȲ"DN sò"?J5pI|DCЮ|`m*+)/rύ7{1TPE9#eY#2:rQ m8ud볠,0٫Hap(Or/zېp`~1l .c6C"͈1&$aÄNs#ޒ/6mNY(۸@A:JEkkbô\7T7B8"o/îcJpŠ(ZƝDprHu3ċ-7hI  2v&E( @"H4Ebv )=IMnޣ&}@DApkvޚOWw+d[yC`}&Gjxm*}iQP h,*bY4   .^䤱mE.צqf0 D`B,FIH$,&ğPؼD [Aā-'qltm*;W>.Wdu HR=! >W,ZHvR$^2X7CUH4;Mb:j۩z5m[o{?^M8#?>8fCUZt1O Se^YHfۗdnba zA[`&` !&LÆ\?m+ҨZ-n[JK FblA33D#f<KnZ-=&3/62>ӆl Rn vh›m}q0C'KCf׃gl)HtASAb["h\ )cxCVBC(d4\0&/j4ҁUa1ahPP|aviϧߴj+!8#Ewy{k,ji"E2of @֍^0/ԙ̰k4gSzj ^U/Ebh8/#$g2P%k2V+.6t(xL&BmZOvmmb`K{׹>a] P[_E Vk]T$H y1ּAb.sI LP^x=@-(\5L'pN@H5~ͷH7o/L( -`@cTkL4 Rµe$'&qOZilTxqU.t)`xօA{jyʂaVt6z\ـ,U;ѲaXPJpnw*l#t>`1hN*Jy+ȼ9":^fP m- Ȗ /ͳ 2aنtW:| z`/X9k~,‘gyy W锱 u `Y$)L- -ܮ:;ŷ 9- )-l,ÄBi|Ԧ$kD#P$HaM`AvPTI"p#b5 )4Nn+bLRi+p8ym ا&!/Rb  LSQca%ideQb&f!+˱SӦ8TıO)> |`R9;)($I23K|0QaLчBk3%3rCj|| vjk͉.61Ã]F8U1 ]+F+D$D0[ z#C_=4>)hbyr%QL6'W!)cx'FY #V5&ܸ h4F:8эR)U "Bd!t>̋4  WH@c{W1E|鍋zYbTѪ6ԭdт"~cl_+1߽Hl0ЙFf <g7Ў2B)8 D4?m=%+; b ׅj_%U*H@ $EXg)8:ءRhnt$BP5HlR(.йq ʶbڟP]?,$DJcA $ #R j iY }m(  B' vP-0q< %byĕ܅ &4m@)4"8&T 4ꪨ\e2AjYTLJ/¡- cdn~`7 Q Dcmsy10ans MSnLL<Ԗ-a0Ԗ"??,? LP+2cmsy10Regular1.1/12-Nov-94 cmsy10BSGP2:"`WhKw~s h|h{f&`[ h%N#sp?)븳 jyҫwۑ][:G-+t\oG74+v`+/^FM S"ހ]k2?Z8 t**c,2Y0lTna}> 4~dD RC_~J[8aHU" T.J`Q~: =@,4`uOݍPO{>~5/Art|C G wF6[)LP!,Wo~8YNM8_I&2w1Q0r"oOPA,W[Dzn QM+{cUjk(XG#Y Om&dMm,V;3\]XDw 0(ѭOJ٦$cהTFNvpȅAPbƦCw!apHti7B\Ep" }35S.C)A/q[$"bd*2VSvɈ}OLD>x^ Etsph-MDl^hq/; [zW%ts`GHWQ_+ ]HoٜJV'BCo4CqǟBFЫ:,hpޠ4.\E-HgN_dЮck/;bĕ>1DIJc:f_ ndR_߾eT'# %ti,@~]6J`Wd>6t(zLz8åٲ k@Y{ zE FZ[߷11M A%eE$sO74j/3, I.Vi5,=eۦѮKh藌[R7- `bHN<ߒ!o3ӝ<JLLAS4ЁJ,Q[aBn69mqP?LzTp nb3%Y vSdb'+bkMIE}  |Zce%I:1n& >ppC\d>qI5XfSЁviʇ"vmx&90a@I0qq9$DSB%uHiZ|9p4تfVi' L!@)~2 bboO ư5z I~[Pl%̗~QB;<`C'c`c@_>6j 0u8NL+΄K&#1P$'gR DLi ǘF Ul:Faeq^&bFY/PM#_TTb'Iߴ5| 2Gfj]]pT(? '33.҅š/5njz7KЀ .Nk '.'ۧqitLɲRMU0H@kP 'uBLsE.m>?{VH;J+ő6_3s3Dn @툽|pfO,2^nU?xM/lFQk6B-Iv⤊۔嵨R}_`C~>=]?e8 /NBuGJ/̞rlԽLEj11X5_͖=Oπ'gqC=Iܙ]Wﹲj/wh5sp4w 9Cp&d,b[XQcӣYu<74.t"0d TO10ΡVKt EaZ u[B+Ћ^P*/W+!  .Fj% qS"A (&Q }{`etmp`MC` cX O}ב9NQ&b9%N"J%Gȑѿ75S3 [[4 II0da cd5eVtSSFr#<4*+ֳ5".t'd. J>hE>*'"oGk`8Qk8dWgC8 o=#ϒR'wG m gBqj*1)`I2V.ţLܕTS@t:u(I=C)c9QPP^I.xg!QUm >LZ% Bzp]()F@;i;0Z׷vc5Nx@II$2: ՛t; 2_XB~FUo8|L=`ٮhی?X:y2,P(#lLx9cZbIHQN_cDžG4B,L9VxL`!my:FG@j4[6>`|6yp%`ʠZӻJC3F"((`.4@O=frn"9gmðr .k:zl3tms}.!Ån[xh0JR*- =Ȅ 5+]3kj(n+PĘ1訸[hty!\BV|lo07n3 58P l>@Nfgo27<"5Y2+7j3՝eM' q1 JTƨބcOjIG\J⇂Ww3 G΀xR=.UHA MOH.oJ ӈe+R+^{=}jz n& ro*-?0L2UoG jXAMfE9 Y%*#X"k.@i#f4e9\U$>~7H di(O=ǹ$ĮEMqầXk8Љ=HG32dU9|\ |ڐꛞ"Jpl,r>e<58^Fz]nTGjlxx[?S`U.*M ~<D >8DnҴQZ1|zbw pz Hw>WVs`j" 0K|fB:2EQ*r?5Om-tE.(W 1}MKt~Z$C.Mprn~\ eDd^ ~gu6 ]߯+t$|=ȗf<蓊Aq-MPZ/O`'KRlk޻-p<} $JH X/o#!$ c֪@ڛMwGj1,p;Z\D{JF[Ss4H#Dч_?S']Z||3k:4DDB U,0D&Cj*.P'˗ _Ĉc<˗D#H ),pOޕWHyxK4bV 3t,z},,Ӊ1GJ d=b QIccgo~ zX~}+z,R똇B#A#ig$j\T~rNV.DNp<$%E/s9 4֪`qGMo h'Hk%m }RtjXuv@F!jrU2UG$-m*m1X%gu9Bd7 I3+vEi6 d bmșq8 UK;V/7廾_t7A 6/8 8(qQ9X2PCnHP+G ?/.CaiǍQIܫdUQd? >k>B) [n{rL9˿ΉX* I OP OB ; P(%?w .G Ok`!,X8XEEޤE!mdc_H]M6.謕%r@!^Ȉ6YQe>๞ .ke f@ g :ZG,Z h4M}!+̓}C@S" `J DcSM~H-c0wnS4Űd!w]H͌^cu BAʣڠbyKߴzx;kN|/jz & G8Ι` |.i+p$z?ZNf<\e 9FN| ¬alhU]lK-$Np]zn& X$I]+c`u<ЉZΑ# 0dٱ6}!PG nxGs:pSir=x{U#x{z@`:tݢ(Pn *摷G`uiKЮ-街,8^Ԑd# ]fUNYzbaؕ67x 3x5 PmC?]SwJifI,wэ>9fJD:sO[W~k6tҋc}rjFtcdSV$S  Hcq^YX1F'4B9Ez/IF|hQR ސ.Ppb{戲(,GTr1JJ {#Q)=Db<–0XG:ҭ5|J"pH,4]~vViRE.&] Yk'dt:p, iX`\k_(P# 82t1p?Ãq6E7楎wKw#/=E/2B|eY\06 &<\ P ddߟH>S9-C8d4TAdߎtxǶF>p^hFxs㳷,NJH RC4 h10"r4:-5KL3I~E(?c'U |ξ1(2t~qZ-q^kimO<vhRFp]xzxBG>>Ԥm(h;go~*4Ylc}( YP3Q |E@R_';2F la0C7N!nA3o>DY&HDpTOBJZYW֮rr{p2Xg:5?`esJ"& `ܓ?ћ0$@G~&[>`Xn%?H&>wT r '/ a !WL=.h2a`A1#o '#3/ȯ1 C"+U1O(iLM<}&e#Q凢{OXIݏL( K61+a+0hr? +ЎAFKs”Oߗ,yc @l"tnx!  sTʹ2!' |6jtx8țNcXϠ+#LC(j߲IoJ>zHSxXN CПY7( \UԺL|{! '-| zf͉n{Wsak`PB@B RvdݹٟOQ3D(P8,Ka&%qd~5!!Qᰮq;Y̷) `-%F;7|Y~Zu5JC`k$-O3(\ͤbpɇ H9C&zŪFnyڒUlW*iB ǡKʊH`4{`#T21CRemL-d]KqBӡ+&%9׋IԔh̭P|9_+Ox$ȍ H@$$BE, `8cl}ٰ w֔E:pJz]3jb +FѪYIn7#] */0yȈHkJAzs[kq8!ZLJ|Ƞ1Bn^)-Aw$H"ȲPR@FuyЮ]=LjB| ;cEѾExᆰtYHez}q 1D( ix} Euvf&Is{~1|VL6d:8yv"GPUFYF=ؑѤszmH[CC{]G{ܸ) b"vL w>NxŎlE'td||: ~n&V{S`3Qإ@ɞ뭅QLKT&G  Qjɝ)mҋT EAR}YxIp2YN8-vO c,v@ ׃ 4߁V24 XO<$6ճ¥B ,c[ӊXJ lx݊؁_]X'o8űsl^ `ߛTV*'ʦcnUQLy3 G ZrjI K2ʎBL-&4kkc X9ȶƤ6魋B&ՖBjd]$f3׺X[s/'鈠pepG$7]zG n!-٥cB!ͫ0(M*ͯdUMm>2+Y 2bUB[Dvu~d/FBg54h58iD<ڮf2TsktnSmBP/¿L :NMf, H-vn2 tSذr rg!\Ye$BHkSrr8f1dUOz3E^ʺ]]Y8bP]' Owǚ]T>}r֪A+5D k0o\8X?O$R"ֶi-}IoKeLHzAZ. WJ5aS_ l^M YKU`EИN-L tccSȭ@˅65~㗘cKhvBJ$G/eӎHKrE[KH+sR&M""yr`qʆ`[-Q}.#7l>xeFpe*xsÌؓ8zo`x4a1b ,8)n5;i@kګb-MT4SjEx$+WMbz a?@ СD."IJ=+ߗ'{@1A4Ęr<'Tv(Z[dpx"\8e6c|!KgUY,VY7O.U@L'3ֆ#6%0Gv k@@tZ1lV r}ETt XL&;nmӁ߉ړIm]=lc;DA !.l R:g.dh880gI y#j]U ش-G|DZ~< H㱳mv߄f:oB .."OY&s͌$$s?&lVm2LyT,4aZ$օuSpдa$:M[K~;p\mKheS,] :| {Za!tDHe)WsyάA }n@8Tj&/._$e`r5O;P;֥k*H^f moOl!Uzat8zN׎wM3=0dE7ߪM627d#O 07 Gh!g~I#t:z:LW!j}g aغ۱+YE`F4d$mg&m )C{kEZ!8d|/c"$zDAAk8,"s|ikp+Fb=343A6%ffucejCs6 TPK"Y?8 kH&PVZv$߷lr}C#y6# WC\0U69h`>V3J6xdX "~0:g2fLE!BQ6^7qN%X&lJe@2H>t)q4X(rH߱u5&q/kW_O3LT/R4LKzjncBBq1P^t \ ‡"w4H#ݑSΪ$Ua׺ӫi'ət 05A \rZOJ&]o!Ot95iKQ#?AۯL18Рk˂pPNQN.ɂ)ȉ13tӨv|Cw#\Kw蘴{Ȗd20T]@vc^} @LTk2y KZdP`1IAdq E;z 2f@9GtbBa`"9L \-cB Q5) 56.RBjA!(Vahv09D+VHɔ钚+ls1}A]}EE#PgD8X ;z"㷽25h%'aST\h7bW \5Yoaas ?e,:^D@U]{"_ؙ6".b!=~4%،aDNϮ?ր^}z`z[\1v81wHo=Ŋ1URlȉbi-_F \=p'A.޻L{h ZiI}Jq Jf.3!HPPb,JCR%_@]"+hi^n8z2!4!kZwk` $XB^3WvA MR6yt'8:Lln,L82)eȋIvmkrFmy.Ym}4ZJ=n.z!ECXkO"bi4ki/F,DR!1&ji'BQRlD"Ⱥb"]n7|&XN}:ˆ'~`])7[. ,z'̈́gO;~O;&,%((ԡ&(ԟmъ`rw^'")3TKh@U"a' @$6yLy{% JqxhJ'D3|ӶA). wa !=Tݛ#01_=6`9CC$B>E!DP+ Wk[}G°.Q3W ,)^aI1!uoHs2#qԾ0j(aK#o!N pS~wDBׅj ˗ٱDaT-/MkW@ }5ܯ9Xo.H.)S;^Mfmʏ.8ϭ3]{'3|!7@S0B{#Ev?\H=( "zUIzoam 0qЉߩ{%M\!VaU#o$dam6dKK$:ida88Bȓđ |Kh&5QTB)_adڠGQ :)p{fѡ$z[I᫦zILRmrio֏]+؞fp&+J_[̺ك{$+d= =i?%f{pv3R L`8`p7}~m8=Pd~OY-qknITqzBwc0X ޲ɪ{&+C+h H" i{U*.t!4&C]EG|3QG3ݠ秜J6l,#%mX3w,/ߔ2TԬQ1dIY`A3B1\5IBA"o9H#>z@(J{· V4!e,kAKΚŨ/iBs'!&ت̀ğ;;e;;BVUq )i7ϊn䨫%)\#[+ H_ꑡ5QzN@e6k.>}i(tVPA(ڣ\N /u[Q Q(fBev cX'ȀP]==PyOOu5.fJUS 6s{~=oypC޽/fԝ8S"PP.CD dCD;*d0D>tSkw6qiwV.l7Vиi:Ԣr"Z7U#랋/ CwqP ' cs_nWo-=sJ>b`-5㊺pqU)d+vݪGz6I۸7c%Hv|:D-֤s nA|y~SEB6 K-+2[Yc4)Ȁ}S(#js1hvΩ<a ע!ሰmڦq`!l^` p,!WcA8ZB/Q " ~""XSLE[Ki;o $ 5[^iS0k˭(9rx L@م5zT\bۈz lS oSr=|8:^ ^AL#"l8Jejz*ҒeX<~MoKۤ$ET(Rh ah d oT3 IUNީ8g,>7Lrg[w/PrcY%_nL.q 5L4% vb?( ډu'?|&^O)K$*C \2)ןfIbk։n>#K }L6"7Y%Bh^$n 4ћp$T, b*W7ֵ9epvzx-uBP"-;PA8Wy5F6և.Kk@V'ttYh%b7lZ %kl1 nŲ">g!d/ a)qf\^[cȑWB^önmPD`0ΐA=>;ba)л  Ҩ/srg$Pؖqlt9Fc׺ɇgfPRb̳Nr9ތH`Wyam3[!8ST @&yYDlƏTg>GIG|^l \8ļOďS9`,ȓun%R,"C(X5@DUq\ "rҙ-y0ee\d͂|]Į #[6 E97r }]vVƄ؞?ȗ̓L"@I`LrKq U>h%io `4ؐv+ĻhBW.+xP8=^v,X4$krO|p#O1R?[~dUv8 ,8fsK%E"pɻ-?ųrb } !O$*,(@mz݉O8w81]pP bbQIyGSB4]X::_ϟ cTX"LGa&\ϠU{r%AMn00(뽣ч,0S72 gyrT :4 y fˆYezs| 0"WD~G AOi71 ^'2[*ϼbO;˦0@搘G#D>3Ds`i (^bjS(+@0}]rr"[5h)HN\jCepp*8dkWpw+L K%vqTiVbJ&CV?P/K|Ҋea!QřViDDB A_&;DMxA((k]UXW# 'i ? /v$cX= R#[[.(&S1 1t7OvX,rj&ȪIuƗ!4V&H  j~#rI Nrp|f J! *$К8$_#tg{(((ښyHwt,7疒@q .Y0"eKG!G tcH6 F#,g2xjl;@4_+.ϴ!}R`4\Pˬq'O #ECRI.-A﫽[@WEV確Ro6F^:71h'2J1KQbJD oaEd;1:Z[:(ds66pp+pwpp`e`_`-a _ !T&0K#BF۹odp," +{%A! d'4M/joaD7EjUFhs"'"-4$MHcǫuD+1AcV[ uE-xBq:&x5܀9z6+N"p˖r帆WhUYdQmRP5gAt% ?$ ޔ^q9:N%%:e`P,U?%+VbkU F3~^ rcvR 7hoޙ3~f>%8" dd$9DAC"f9x0DArialans MSnLL<Ԗ-a0Ԗ"@DSymbolans MSnLL<Ԗ-a0Ԗ C 0(.2  @n?" dd@  @@`` ** "C  '     '  '#0,P8 1 2' 2  *X 0)+B/(+   //# &4b"222 "9 1AF3# %  $M  1-'   "#$&"3:U$$F$#* N! 8 JA&N!  !+&! $-'".,&' B'XW*-.+-- $)!)!)!}p   "*+%""(*+"/("(:A     05) &~{")5   cQFhdJPNLEEe%)1 0e0e     A@  A5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||s " 0e@        @ABC DEEFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `abN E5%  N E5%  N F   5%    !"?N@ABC DEFFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `ab f3@ y ʚ;$3ʚ;g4dddd-a0pp@ <4!d!d))0L<4dddd))0L<4BdBd))0Lg4>d>d-a0vp p*2DEFAULTFONTSIZE10.DEFAULTWIDTH3540DEFAULTHEIGHT200<___PPT10 ``26___PPT9{?> 2/11/2004 MSR TalkO =Aw8Static Analysis of Heap-manipulating Low-level software99$GSumit Gulwani Ashish Tiwari MSR, Redmond SRI InternationalHH Related WorkzAlias/Pointer Analysis [Work done in early 90s] Must/May equalities Considered not expressive enough Shape Analysis [Work that followed] Fancy predicates Need to provide transfer functions for each of them This work Must/May equalities extended with quantifiers (Provides expressiveness of an infinite class of predicates and avoids the need of providing transfer functions) 05%F 05%F  Example 1   Example 2 Outline\Abstract Domain Implies Algorithm Join Algorithm Meet Algorithm PostAssignment AlgorithmD Abstract Domain$9V: Cons Must May Must := true | Must 8V: (Cons ) e1=e2) May := true | May 8V: (Cons ) e1 e2) e := y | c | e1 e2 |ce | e1 ! e2e3 | valid | null Cons represent constraints over the base abstract domain, eg. Combination of linear arithmetic and uninterpreted functions%  >W'   ExpressivenessList(x,i,next) i 0 x!nexti = null 8 j: (0j    2  0          PostAssignment Algorithm Input 1: List(y,i,next) List(result,j,next) y+next=x *x=tmp Input 2: *x := result Output: List(tmp,i-1,next) List(result,j,next) y+next=x *x=result t 4  Experiments" Related WorkzAlias/Pointer Analysis [Work done in early 90s] Must/May equalities Considered not expressive enough Shape Analysis [Work that followed] Fancy predicates Need to provide transfer functions for each of them This work Must/May equalities extended with quantifiers (Provides expressiveness of an infinite class of predicates and avoids the need of providing transfer functions) 05%F 05%F &Conclusion and Future WorkQuantified abstract domain for pointer analysis Expressive enough to reason rich properties Amenable to automated deduction Extend analysis to inter-procedural setting Add disjunction and richer quantification support in abstract domain60Ls0Ls/xP-  0` ̙33` ` ff3333f` 333MMM` f` f` 3>?" dd@z?" dd@  " @ ` n?" dd@   @@``PR    @ ` ` p>>f^N0 8(    6 "@  T Click to edit Master title style! !$  0| "0  RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S  0p "`  @*   0 "   B*   0 "   B* ~B  Hp?"@@H  0޽h ? ̙33 Default Design00 @(    N`nr`r` )  n x*  V++VV  Nnr`r`  ) n z*  V++VVd  c $ ?w  n4  Nnr`r`  ZF n RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S  Tnr`r` @  n x*  V++VV  TXnr`r`  @ n z*  V++VVH  0~dm.F ? ̙3380___PPT10.47L P 0(    Njr`r` )  n ^*  V++VV  Ngnr`r`  ) n `*  V++VV  T`knr`r` @  n ^*  V++VV  Tunr`r`  @ n `*  V++VVH  0~dm.F ? ̙3380___PPT10.47U0^N0   (   x  c $nn n x  c $n  n R  s *; ; V  0޽h ?"` ̙33y___PPT10Y+D=' 6= @B + 0f^N0 `,$(  r  S  /  H <TTp ?"6@ NNN?N$  . struct List { int Len, *Data; List* Next; } ListOfPtrArray(struct List* x) { for (y := x; ynull; y := y!next) t := ?; y!len := t; y!data = malloc(4t); for (y := x; ynull; y := y!next) for (z :=0; z < y!len; z := z+1) y!data!(4z) := & .;6M0 20 ,  5               '       !                  "'% K <pp ?"6@ NNN?N 0  {=Invariant required after first loop for proving memory safety">0 2>  H  0޽h ? ̙33___PPT10.Psv +ΈDO' 6= @B D ' = @BA?%,( < +O%,( < +DA' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*D%(+8+0+D0 +' 0f^N0 "",dr"(  x  c $Pp@  p &  <p ?"6@ NNN?N$} V  |struct List { int Data; List* Next; } List2Array(struct List* x) { n := 0; for (y := x; ynull; y := y!next) n := n+1; A := malloc(4n); y:= x; for (k := 0; k < n; k++) A!(4k) := y!data; y := y!next; return A;C0 20 &  ?       D                  lSV |   d #"*_r|  ,$D0) ' Bp ?"6@ NNN?N   qAList(x,n.next), Array(A,4n) 8 j: (0j6___PPT9 ] Invariant" (" 2  @`& 8 BhA ?"6@ NNN?N|   n Prog. Point     @`B 9 Bo ?"0@NNN?N| B : <1 ?"0@NNN?N| B ; <1 ?"0@NNN?N| B = <1 ?"0@NNN?N| B > <1 ?"0@NNN?N| B ? <1 ?"0@NNN?N|  B B Bo ?"0@NNN?N|  B C Bo ?"0@NNN?N| | B D <1 ?"0@NNN?N  B E Bo ?"0@NNN?N  W <E ?"6@ NNN?NR)L lp1L      X <J ?"6@ NNN?NKQE lp2L      Y <P ?"6@ NNN?NBE<  lp3L      Z <tU ?"6@ NNN?N9 F3  lp4L      [ <Z ?"6@ NNN?N@ M:  lp5L     H  0޽h ? ̙33___PPT10.Psv +!$Db' 6= @B D' = @BA?%,( < +O%,( < +DT' =%(%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*d%(+ 0f^N0 p,$(  r  S  u@   r  S 90  H  0޽h ? ̙33___PPT10i.>"pLÜ+D=' 6= @B + 0f^N0 *X$(  Xr X S 0~@   r X S 0  H X 0޽h ? ̙33___PPT10i.PD+D=' 6= @B + 0f^N0 +$(  r  S d@   r  S ,f0  H  0޽h ? ̙33___PPT10i. +D=' 6= @B +%. 0];^N0 ,!([(  x  c $@     6P#j g Join Node, 0   8X   6#j  YConditional Node ,0     6m  = 0 L   c $\  Gd   <GS|H IS| ^   6G1HI1 s   6䣙 ^ Kp.0    <G   4 0   0|t  @True 0 2  0  AFalse 0 2  0zF > t MF00 2   0  gF1 H0 2  (  0p  LF2.0 2   0™q|k LF2.0 2 2  <Ǚ] 4 0 L  c $  0ʙ MF00 2   0(ϙvp LF1.0 2 LB  c $D`LB  c $D hB  6D?"0@NNN?N@B  6D?"0@NNN?NF  < ԙ ?"6@ NNN?N ,$D0 F = Join(F1,F2)~0 2               <ܙ ?"6@ NNN?Nv ,$@0 )F1 = Meet(F, p) F2 = Meet(F,:p) 0 2                    ,  " 0@C"?C G Statement s 0 2 L # c $ssL $ c $Zss % 0lnhh NF .0 2  & 0hia KF.0 2  ' 6_  WAssignment Node,0    ( <D ?"6@ NNN?Ne,$D0 .F = Post(F ,s) Where s may be: x := e *x := e x := malloc(e) free(x)BF0 2    >  > 'H  0޽h ?o   "#"$ ̙33"T TIMING8|113.4|7.4|10.7|25|10.4|22.4___PPT10.I ;+-kDr' 6= @B D-' = @BA?%,( < +O%,( < +D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =%(Dh' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*  %(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*(%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*( %(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*( '%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*('/%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*(/>%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*(>F%(+ 0f^N0 ,$(  r  S @   r  S 0  H  0޽h ? ̙33___PPT10i.O"+D=' 6= @B + 0f^N0 @,$(  r  S n@  n r  S  n n H  0޽h ? ̙33___PPT10i."v+D=' 6= @B + 0f^N0 ,0(  x  c $D@   x  c $  H  0޽h ? ̙33___PPT10i."v+D=' 6= @B + 0f^N0 -0(  x  c $@   x  c $   H  0޽h ? ̙33___PPT10i."v+D=' 6= @B + 0f^N0 -0(  x  c $(@   x  c $)  H  0޽h ? ̙33___PPT10i."v+D=' 6= @B + 0f^N0  ,P(  r  S 2@     S 3<$D0  H  0޽h ? ̙33___PPT10n.!]+YDB' 6= @B D' = @BA?%,( < +O%,( < +D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*8%(+ 0f^N0 ,$(  r  S Q@   r  S |F0  H  0޽h ? ̙33___PPT10i.G"`j1+D=' 6= @B + 0f^N0 ,0(  x  c $H@   x  c $`\0  H  0޽h ? ̙33___PPT10i.G"`j1+D=' 6= @B + 0f^N0 0,P(  r  S h@     S 0w<$D0  H  0޽h ? ̙33___PPT10n.!0lq+YDB' 6= @B D' = @BA?%,( < +O%,( < +D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*Ew%(+ 0f^N0 P,$(  r  S @   r  S |     B ?"6@ NNN?N  B ?"6@ NNN?Noc  6?"0@NNN?NSoU   6?"0@NNN?NUc4Y   < ?"6@ NNN?N   Bnull"0 2     NG"HTI"?"0@NNN?NS   << ?"6@ NNN?N"h Dresult"0 2    B ?"6@ NNN?N5  B ?"6@ NNN?N7  6?"0@NNN?Nuw  <Ȑ ?"6@ NNN?N#   Bnull"0 2    HGHWI?"0@NNN?Nw#   < ?"6@ NNN?N\ 0  ?y"0 2    B ?"6@ NNN?N3(  6?"0@NNN?Nsu  <D ?"6@ NNN?N y  [tmp"0 2    6?"0@NNN?N    B ?"6@ NNN?N4+   ! 6?"0@NNN?Ns (t # 6?"0@NNN?Nq0 + t $ 0 B FPost(F, s) returns an overapproximation of the strongest postcondition of F w.r.t. s KeyIdea: Transitive Closure; Invalidate Must; Invalidate May; Add new fact(VDZ DH  0޽h ?      ! # ̙33___PPT10i."8&+D=' 6= @B + 0f^N0 ,0T(  r  S @    2 0 #""2 5  B0 ?"6@ NNN?N9 2 }7Input array has length Len (where Len is also an input)88 @`  B ?"6@ NNN?N- 9 2 > @`\  BȚ ?"6@ NNN?Nt9 - 2 <Generalized Difference Constraints + Uninterpreted Functions==%   @`)  Bњ ?"6@ NNN?N9 t2 q ArrayPtrArray  @`  BhӚ ?"6@ NNN?N! 9  aInput is a list of size 100 @`  BPܚ ?"6@ NNN?N- ! 9  bReversed list has length 100 @`   Bh ?"6@ NNN?Nt! - 9  h"Generalized Difference Constraints## @`'   B ?"6@ NNN?N! t9  o ListReverse    @`    B ?"6@ NNN?N !  UInput is a list @`*   Bp ?"6@ NNN?N- !  r,Corresponding array & list elements are same-- @`    B  ?"6@ NNN?Nt - !  h"Generalized Difference Constraints## @`    B ?"6@ NNN?N t!  T List2Array   @`  B($ ?"6@ NNN?N  _Precondition provided @`0  Bx- ?"6@ NNN?N-   x.Property Discovered (apart from memory safety)// @`!  B6 ?"6@ NNN?Nt-  iBase Constraint Domain Required   @`   B? ?"6@ NNN?Nt  QProgram @`B  <o ?"0@NNN?NB  61 ?"0@NNN?N  B  61 ?"0@NNN?N! ! B  61 ?"0@NNN?N9 9 B  <o ?"0@NNN?N22B  <o ?"0@NNN?N2B  61 ?"0@NNN?Ntt2B  61 ?"0@NNN?N- - 2B  61 ?"0@NNN?N2B  <o ?"0@NNN?N2H  0޽h ? ̙33___PPT10i.M"@+D=' 6= @B + 0f^N0 ,0(  x  c $/@   x  c $ph11  H  0޽h ? ̙33___PPT10i."++D=' 6= @B +< 0f^N0  -$(  r  S \R@   r  S 4S0  H  0޽h ? ̙3380___PPT10.X"10 0 4(   d  c $w   p  s *0n ZF  p  H  0~dm.F ? ̙33r0r{|قw EL9dI P +MXG0J1N&1Oh+'0  hp    PowerPoint PresentationMicrosoft Employee2354Microsoft PowerPoint@` @@vDGg  iB  y--$xx--'@BComic Sans MS-. $2 .Static Analysis of ."System(<-@BComic Sans MS-.  2 "Heap.-@BComic Sans MS-.  2 "-.-@BComic Sans MS-. 2 "manipulating Low.-@BComic Sans MS-.  2 "\-.-@BComic Sans MS-. 2 "`level software.-@BComic Sans MS-. 2 9 Sumit Gulwanie.-@BComic Sans MS-. 2 9Z Ashish Tiwarie.-@BComic Sans MS-. B2 B'MSR, Redmond SRI International.- ՜.+,0    rOn-screen ShowN Times New RomanComic Sans MScmsy10ArialSymbolDefault Design9Static Analysis of Heap-manipulating Low-level software Related Work Example 1 Example 2OutlineAbstract DomainExpressivenessAbstract InterpreterImplies AlgorithmMustAliases and MayAliasesMustAliases and MayAliasesMustAliases and MayAliasesMustAliases and MayAliasesJoin AlgorithmJoin Algorithm: Key IdeaJoin Algorithm: Key IdeaMeet AlgorithmPostAssignment Algorithm Experiments Related WorkConclusion and Future Work  Fonts UsedDesign Template Slide Titles*_NMicrosoft EmployeeMicrosoft Employee  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&')*+,-./12345679:;<=>?DRoot EntrydO)Current User8SummaryInformation((PowerPoint Document(NDocumentSummaryInformation80