ࡱ> jklmnopqrsyn?'VULľO CPNG  IHDRPLTE@>Dÿgg^35,-5Dn#²؟255C_',*pvVWu}ء`nv^ MU45453535n+-%+wvx36򉖙255CٗL%*OWd',ɑtvhfwggM44xpuۉ3gNN466 (}ýYc   48AE n),AE5!M 漡W\{?DV\ڿ(zwLz##͠JMo58(,4ABE(,$((4BE5AAEAEnAEMNOQouef%+餧IDFWORTVYjougVYsUWDF356DvxTAD6&)ٵ6A旗NNffVNJ뵸(rrJJŒżœYb^IQQUMQwz!!%ZZFJRIIccgΰ֔NQrMIVY!!4AZbjjΘA$())-UbjBE5AAEAEbAE5Ag9Bs5A%()4%()4ʹ vz뽽BjjYYYYkkJJZZjj(bśJQYbr kccA88z)11լ筭ʹIQ( A Bͬ(jzk7bKGDH IDATxlu~Xk=M]#(r)O]gm. <BJT vB$N1ӡT,%~Ӂ'4E1i|qܩ羏cm/ߟ__?ߛnZͺ܆mݰs}_5q25ʽү}d׷rTjc| lGGG䵗=U#mD"r R{7v!kGojk\%4i,Ձfw+$(8k H'P|iiKD]R)ڑOr!RZ,iB((_ E#_Z>T-Eh!T{CCi)SxtP |(dIȞnۆk-H2"Fh!8,:8=lbmZIXim޴W14H:.4 AyRFR,Z:p 4Ӑp"4LFJS Lg=~~D0u]`iHX@5h;5,oHS*GmGVd-SkkYZM! (.!LH:(jen J=]_Ο )RjXMrn4ċ"T^m ݊֬`PM3Q2.Zvb1prF ۄnjUZQUEib\*S*1APu|Rj4\-kXcX^!6-o>w3=@%> ڎ0jŽ7vC߿>TQ%.( $c9.$5i$"ZhDs3KI(JhVM]upL1%+ $j-qU H }B56]Mk16==k CEDA< FJ0xp׵Sc`*Hrf`[.CLd,Ag3VqnOZO]3=fI(EKYHDt0ҲJSd{7f3Kh΅DCHrgkz c(wV ){b8둁4lfQ J)_'<k>M/50X<]F!gYD岘,d=71zMؔ@TGcPZǎTK5Vʵ:Ă;CBCI4q^HvWԄL"c󞪤OS\uI2'/+*.i Es@į'_ȥn_1个tyQ" {f{inXh5I``,rؽW]=)i;za\nMѳS-&\(]%,d$DJMZ&B޳=K7-V$(N5y|E9 Uf% MY6.'5a_0)Jr3f8Tcz(%{=d|f$2K>Vc*.n5D:0o*ް $IItJDd"O"|d" *9ߩV Ht/ĩ+K"6 gv Bԩff$th2 |h }DsJLBYAN؍ш9Z؜5ow7nܸ0Lu QÔ# IGL{R3d{zAP󜔚T N Y$ Mv{&"bDV&3DL!V_>$$J:iҴC`ѣGJ|rRv\ [\b24 yGW#f+Uaώ8sˍFccy}GO%%A!d_|EJ|2Ybx9J|$0er#d!㗣22‘nt4ۡ<}>9 9gaNlu-79oI9@10ٞ@pj螩癦an8M62(?ѿ㓃_<=ZvRͰ,ohաg5\$P@SH#GMkVRt z͔p-b2 )?~灹.?R]Z+g30JE"y}j4Jo;I951˵\n/Xl}i.)bt{i*^i_&7TTMVS79xݫVem[N- $9.z5e`~czb OʆPcIQUcfM%&\.2ě [*_NIlZ%M#]G24O?9Q1}V<ӀnYSnN58WM dGݹcH Dw`ZĊd5>Orst+vA,.uOञs3tVy;7U({Mݐrjl?_ꦃ4JH] }zĊķj3; EܳfE/^=<$ r>}?i$&NjrK9LPd<"㛃뾱 mtU6I[(MY7f,aGG,76Dc_26#3uy3bDJ\j zܳn/M ei#M,#<7HsrSj2(f ~d(V/ߕbLHװ B ҋ8^ lLVLq)ӣ<:PurJ0C.\9nb|9[[VMT:ɏv=,_܂TzT!#%QsAYak©Z̕d7i5ϒo}"IeNUfG +ŪUBC| n {-+4(:rpJL#B?bXXCNYVY5'"qP9_M^kE4%(CRgtH =A~Ff"! Iyĕ),xhk.7#LA4UHZ2'j#Q{~5Z_35fONNς*L&՝ʒVѭ"o ^&?S‰D˽Mu EINfy@FZwٳgAyn#W:0eK^u"zreʢRM} 7glHdBL 1;{/|?[OwWɛCŹv9}^V(&A#cߟ?|_'N~wFm);lGQYSXmD-(%w*c:@w~Yl6[?^v Ee7?+0zg9~ +,y 9QN6zzz7^f"eS\vva}ͯ=jRr&]yS/2mQ?+T& +(y?Okg5_uǛ?G?zN2u|YAwI5QNM6ϗw򘄜td@l?jَ׆Z#[/Y/a[9d㷜:wҵ,z\mJV ӷA_ I-_\ʶޝ 4=HL=}[+3Ɇvڃ=]ǎxl2ʚe$jw1~Dh~]|M"3hgH_ۏBܤoCtV 3ZTqgq.hF!徴hi yo F:>;ubiC /wRN${TɩEESvxwu-f`O_ifI/*^GZS!D'(*E )CyB .C]CAOvm8io.~ߏJ|{<zkdb=w;gĤQ9WJP'y s+2ͧ&csq3GY\|2ڝ [N{ޮVHLJ;<0$(jR\3nrJij*`^DaյLoFy>B-f(G[|_+o|ַc aBZ[bZ1m;EVlp!Ɏ3G.F|v-A^HV a5'Q>y~wKLyi -w\.Gm%s9W|lE''1lEjQI+-zʩM'!_EMsf̙#ǻXV -ط9Y5}yj[+`{x0Ԝ'|/BR-bӧ4XD.7xRŮG|I.N =њ3o9&_M9T3I= N[$ u:“΢rͽݵ%*yv_A Q͑Ks%9OjX"mIԴ5pfc'*Κ;"ZКF.%^I34yI= A(KQ]<?Fa)yU-nN0{l_/m辢+a9N3ȯD1v-3E#J^I%#1R"pdS__6"8m , UA(;8a( }K7,IDh)|_eYh4wь@P0%rGR)~ۺl7r*nojrκ \[~G49(I/t]96 f^a/uпSMM' h7Lٳ0тdk: VN]BH] .xeC;8|l_SqH&9D1N]1xVoj^k(g$ץ9<ꂆ^iL /`߲ rzWs^,(e 8SV( e-w/$6If)M{ >{0 uط8n@εV#gJx$Mk q-R0RdovvW_O* ({ST*UC"eR%t?}QbC ܦ(߱n|nO5˟M@W*!ZW&B&)= i)K"e:'j԰{!N߹,?T oWB}7L2 ' $R%$s{ىPf&xPɖ$.)zfj7sH!mRL]%HDerx*x&lGXNC,S0'F7BJhR$RM@7߃zhQR%WDAKqi'X?Vc[$-Oi]ҝ L^5U) ~D{8SoZb.-Ot|N@aZ1?oI qSG#.`C8>)ȕZi}udq園NO!s3-zeOEmIٯ*$\  M)\'TMzց?ޘBg-0X-} L y_IX{,cgSn1|)[L?szރ9z+F));IO<Նr6(+Gw[NV+v}˻00+X?22l 3 Smo,0y7Ye.tQLK+F͡-%-uųS]qftwGҏK hh뙧.oOX&%¼.)g@~^d٘, }rѐ*;?|>C=$u;u {h_QP#e2!X]83\oĹMj ||S{MK9D.[䙅S߃@p2rm#AFq 'X:ak\jD_%J+e;Sሞ|rrP!gz@L m/4./=z}a#TSk /8N\)gYtz&3>?0p'KQAR=j^,Ă@iQItc9w/{Xe8>v@'n±TZ)6d0;;b|1u>E{n^4ONu0VIRieq.'$fCXqz[7}W$nڑQ(0t.2t**} Nf,n_-˽}W$Ʈ6Q<՞xۙwRLkܙ"2a*}|mѐ(.ih9F9,[#@'P˦@L t+( cwThUzi\,rSfG թW"뗃F'eHpvext:3'}\jR'+ͱۃSy|aqGG3>BCJr;0<IDATCTRk [S>ȠG JD[[[Mtb]mhBYs+>K?BM+r^j68hz)]G}lǔ,ykCPW;X@/f,\Z,7oI9ߍFB:|Dm@RR)iya0QԐʇa ś*S3/ ;>,XO4ե4yzKUUV!Co`6ec*TZ|ͼET#DRxo=5]{Z ,/4D~zl ӫ[Ôq31t!69 )ЂԐ-2؋uz0x1 1M^p:Sn?0dt6,Jؕi֗:9 f!FRȠ}17YV=yr TI@'+7NDN I_60KTmdIԮ{AM;_|>ܤ!Ðiq{b즚{g^tD[ BLɐG9YSD 0Izغ8 U<ɧX:fK1b:7}5Ąܥ%vP#;#…ԙ(.7\*-M*n? eWLC>T|eھ.;~\>ʼn-9M`M>Ͷ "8YlTy8'o8ƕn=U!?)^`ӈ;'Y i@w>; =~6FΉb)#s`7T?YCNe~33rgu/ML0K4/7ɷP_?gá`Q=yIENDB`n?'q.piX{PNG  IHDRPLTE鼻д毰ڦЬ瑩Йگﴶīŵ촠ͤӤ嵷逸ڥ򵦨ť栢⼿Ĥ⦪親۵ﭯ굽ڽ¿ɽʝ⢠ҽָݵ蝠Ҝݢӽ򭳳ǭ蝗$hbKGDH IDATxlu~Xk=M]#(r)O]gm. <BJT vB$N1ӡT,%~Ӂ'4E1i|qܩ羏cm/ߟ__?ߛnZͺ܆mݰs}_5q25ʽү}d׷rTjc| lGGG䵗=U#mD"r R{7v!kGojk\%4i,Ձfw+$(8k H'P|iiKD]R)ڑOr!RZ,iB((_ E#_Z>T-Eh!T{CCi)SxtP |(dIȞnۆk-H2"Fh!8,:8=lbmZIXim޴W14H:.4 AyRFR,Z:p 4Ӑp"4LFJS Lg=~~D0u]`iHX@5h;5,oHS*GmGVd-SkkYZM! (.!LH:(jen J=]_Ο )RjXMrn4ċ"T^m ݊֬`PM3Q2.Zvb1prF ۄnjUZQUEib\*S*1APu|Rj4\-kXcX^!6-o>w3=@%> ڎ0jŽ7vC߿>TQ%.( $c9.$5i$"ZhDs3KI(JhVM]upL1%+ $j-qU H }B56]Mk16==k CEDA< FJ0xp׵Sc`*Hrf`[.CLd,Ag3VqnOZO]3=fI(EKYHDt0ҲJSd{7f3Kh΅DCHrgkz c(wV ){b8둁4lfQ J)_'<k>M/50X<]F!gYD岘,d=71zMؔ@TGcPZǎTK5Vʵ:Ă;CBCI4q^HvWԄL"c󞪤OS\uI2'/+*.i Es@į'_ȥn_1个tyQ" {f{inXh5I``,rؽW]=)i;za\nMѳS-&\(]%,d$DJMZ&B޳=K7-V$(N5y|E9 Uf% MY6.'5a_0)Jr3f8Tcz(%{=d|f$2K>Vc*.n5D:0o*ް $IItJDd"O"|d" *9ߩV Ht/ĩ+K"6 gv Bԩff$th2 |h }DsJLBYAN؍ш9Z؜5ow7nܸ0Lu QÔ# IGL{R3d{zAP󜔚T N Y$ Mv{&"bDV&3DL!V_>$$J:iҴC`ѣGJ|rRv\ [\b24 yGW#f+Uaώ8sˍFccy}GO%%A!d_|EJ|2Ybx9J|$0er#d!㗣22‘nt4ۡ<}>9 9gaNlu-79oI9@10ٞ@pj螩癦an8M62(?ѿ㓃_<=ZvRͰ,ohաg5\$P@SH#GMkVRt z͔p-b2 )?~灹.?R]Z+g30JE"y}j4Jo;I951˵\n/Xl}i.)bt{i*^i_&7TTMVS79xݫVem[N- $9.z5e`~czb OʆPcIQUcfM%&\.2ě [*_NIlZ%M#]G24O?9Q1}V<ӀnYSnN58WM dGݹcH Dw`ZĊd5>Orst+vA,.uOञs3tVy;7U({Mݐrjl?_ꦃ4JH] }zĊķj3; EܳfE/^=<$ r>}?i$&NjrK9LPd<"㛃뾱 mtU6I[(MY7f,aGG,76Dc_26#3uy3bDJ\j zܳn/M ei#M,#<7HsrSj2(f ~d(V/ߕbLHװ B ҋ8^ lLVLq)ӣ<:PurJ0C.\9nb|9[[VMT:ɏv=,_܂TzT!#%QsAYak©Z̕d7i5ϒo}"IeNUfG +ŪUBC| n {-+4(:rpJL#B?bXXCNYVY5'"qP9_M^kE4%(CRgtH =A~Ff"! Iyĕ),xhk.7#LA4UHZ2'j#Q{~5Z_35fONNς*L&՝ʒVѭ"o ^&?S‰D˽Mu EINfy@FZwٳgAyn#W:0eK^u"zreʢRM} 7glHdBL 1;{/|?[OwWɛCŹv9}^V(&A#cߟ?|_'N~wFm);lGQYSXmD-(%w*c:@w~Yl6[?^v Ee7?+0zg9~ +,y 9QN6zzz7^f"eS\vva}ͯ=jRr&]yS/2mQ?+T& +(y?Okg5_uǛ?G?zN2u|YAwI5QNM6ϗw򘄜td@l?jَ׆Z#[/Y/a[9d㷜:wҵ,z\mJV ӷA_ I-_\ʶޝ 4=HL=}[+3Ɇvڃ=]ǎxl2ʚe$jw1~Dh~]|M"3hgH_ۏBܤoCtV 3ZTqgq.hF!徴hi yo F:>;ubiC /wRN${TɩEESvxwu-f`O_ifI/*^GZS!D'(*E )CyB .C]CAOvm8io.~ߏJ|{<zkdb=w;gĤQ9WJP'y s+2ͧ&csq3GY\|2ڝ [N{ޮVHLJ;<0$(jR\3nrJij*`^DaյLoFy>B-f(G[|_+o|ַc aBZ[bZ1m;EVlp!Ɏ3G.F|v-A^HV a5'Q>y~wKLyi -w\.Gm%s9W|lE''1lEjQI+-zʩM'!_EMsf̙#ǻXV -ط9Y5}yj[+`{x0Ԝ'|/BR-bӧ4XD.7xRŮG|I.N =њ3o9&_M9T3I= N[$ u:“΢rͽݵ%*yv_A Q͑Ks%9OjX"mIԴ5pfc'*Κ;"ZКF.%^I34yI= A(KQ]<?Fa)yU-nN0{l_/m辢+a9N3ȯD1v-3E#J^I%#1R"pdS__6"8m , UA(;8a( }K7,IDh)|_eYh4wь@P0%rGR)~ۺl7r*nojrκ \[~G49(I/t]96 f^a/uпSMM' h7Lٳ0тdk: VN]BH] .xeC;8|l_SqH&9D1N]1xVoj^k(g$ץ9<ꂆ^iL /`߲ rzWs^,(e 8SV( e-w/$6If)M{ >{0 uط8n@εV#gJx$Mk q-R0RdovvW_O* ({ST*UC"eR%t?}QbC ܦ(߱n|nO5˟M@W*!ZW&B&)= i)K"e:'j԰{!N߹,?T oWB}7L2 ' $R%$s{ىPf&xPɖ$.)zfj7sH!mRL]%HDerx*x&lGXNC,S0'F7BJhR$RM@7߃zhQR%WDAKqi'X?Vc[$-Oi]ҝ L^5U) ~D{8SoZb.-Ot|N@aZ1?oI qSG#.`C8>)ȕZi}udq園NO!s3-zeOEmIٯ*$\  M)\'TMzց?ޘBg-0X-} L y_IX{,cgSn1|)[L?szރ9z+F));IO<Նr6(+Gw[NV+v}˻00+X?22l 3 Smo,0y7Ye.tQLK+F͡-%-uųS]qftwGҏK hh뙧.oOX&%¼.)g@~^d٘, }rѐ*;?|>C=$u;u {h_QP#e2!X]83\oĹMj ||S{MK9D.[䙅S߃@p2rm#AFq 'X:ak\jD_%J+e;Sሞ|rrP!gz@L m/4./=z}a#TSk /8N\)gYtz&3>?0p'KQAR=j^,Ă@iQItc9w/{Xe8>v@'n±TZ)6d0;;b|1u>E{n^4ONu0VIRieq.'$fCXqz[7}W$nڑQ(0t.2t**} Nf,n_-˽}W$Ʈ6Q<՞xۙwRLkܙ"2a*}|mѐ(.ih9F9,[#@'P˦@L t+( cwThUzi\,rSfG թW"뗃F'eHpvext:3'}\jR'+ͱۃSy|aqGG3>BCJr;0<IDATCTRk [S>ȠG JD[[[Mtb]mhBYs+>K?BM+r^j68hz)]G}lǔ,ykCPW;X@/f,\Z,7oI9ߍFB:|Dm@RR)iya0QԐʇa ś*S3/ ;>,XO4ե4yzKUUV!Co`6ec*TZ|ͼET#DRxo=5]{Z ,/4D~zl ӫ[Ôq31t!69 )ЂԐ-2؋uz0x1 1M^p:Sn?0dt6,Jؕi֗:9 f!FRȠ}17YV=yr TI@'+7NDN I_60KTmdIԮ{AM;_|>ܤ!Ðiq{b즚{g^tD[ BLɐG9YSD 0Izغ8 U<ɧX:fK1b:7}5Ąܥ%vP#;#…ԙ(.7\*-M*n? eWLC>T|eھ.;~\>ʼn-9M`M>Ͷ "8YlTy8'o8ƕn=U!?)^`ӈ;'Y i@w>; =~6FΉb)#s`7T?YCNe~33rgu/ML0K4/7ɷP_?gá`Q=yIENDB`@={{snхWe;>x&#xWKTQ?<&IJ*\qcRLh$8A EhQТMb0ȍnYkѮE? >\=~y{"[D+Rםvg':2W/)J%>Îfnv1qE0BW:p KT1zDS4M}p: Ŭ~@s0B$ac.;c)]x(#mKpJHtyc%r-w}y/ycȎ]RU7y4URL_Ra?u@EVmNh %dÐؿ>P])D]Z6 pCn:3180L8 @6@+BwPlz^٭wVkuC2d ef:y|"<'sY$X"EQ]>)b^eAzqOk@?R6W'sD"_bv ]LKȹ= Np_ {O=bObZxcq Jr}1aG6=2UZy=&ws9zAՇtiZtL,0n1ϖʹw{l1wl2`O9^^?a @ xDT60IYlw|{GHk6H=4fxet*'G2MT) Z\ 6dYLg8v]sqC{β &luvJp?K+l+vʂ|x2" B9u>VL8.}=Bf&M{6EX~t#V571ȯ|_F6I,JN;p|ɋҞ)PDB:!`?1*#BIz)pRa r(s^E,)ÆYDmZG 㔢EѳuB"輌7mg袅ω$xR'vXw|:LX ?+f+GrdGkCCƛ8گ 7QUzlƻ+| yTT,>[$ᒢU(A$1Ȃ<\jpPd_9',aMВ:@prˇ8h3p}>G54/i $}g`lHlW)*I"'RRJùcXbJF[}xJX:2p"{Q ƾa3dɂcb^8_]6;_0N% (\b#de(O=ty8xHzobe|FXq]FP<3̍ )4#mE/ĺ2Dܱ9taNKӖ6B$ޟ:F]< 1i M$V@:\HbLG$jtMRMm"F.T[AًYe&D$2Ph"Ǟl &,ۄS)ɮ)26[]<ߑCDgˆpzp f_K \g&Ćh#E"H\QAY3,ab%ȁ@fd4x <(,uBӑJccoUOOcIW; 5~i&x2]c{pjkUM03%V# am!GT"l78A+/]@ w+<{ saTI`ÛҲ%D2E;G>wovosebGcխzD "LaUBlMU=pc\)y(%"$3[W+/XɎkE6EWi ,hJry&TG"7SXWνs0oA(9lhWu]9G4KWcDԟ!b<yc@A/G@R ǒ+l]n&5m>&uRd4jNCdJerC7H@M x}Ƃ D(%VX$`@'ÛQEl q`PEv<ȸ b1R|o΀-2Y".zۅV),nS0J͂s0"$5X=$ce\H4M_~tzkf*"fNj(pAȍX!K)~dǯ+###VZ,,gmn}5U3&#e:"7{r4ŔaLK%$dr50Ҵ YU@J_j<+!%_cۛ9`x#8{5qD1@,KXk"L9#E$d%@SdWO{T˗?lm8js&d˞7lx֘sr2i!:Z pi}:>$ ԆGmor9h "ǞBc ԐngDQHHntJ܄cV! ;-?Fw}C<LɀE9M=tVR*3<Ƃ2$z&Yei*,0PWmzZJ)bw4=(Jf8^ޡ(#n+W4&F$H><,z>xDg4ˈԂg^OD~b5ƽUr’yh!/L3rI^M3&G یo ^`w5ҍŚiBt+8r}. 1Ȉ,5v'A-,Q* sZ1p8Qf+Ⱥ2 =ZYQ}4?IJ@G{׶Xph2F77MfnmsY 3KZ6SgYz,61fMF ףP3'ɟ3aiiA]C!x<$o LHJ?5}| #\ THK3@>MnDidcdښ9gyDf? NIK2Kxj:,J"mܽ[@Ce UYL8s<T4R#fԦ5F {r~$u$+s@Q렐|yuМ;ǯtXLXE[H$ ; tUt]_L߷4|}Np Y̅ z T3MH֟H@t?2"EGmYzW|w:kύ %`k!)7G;4Jz9LeU.d5Ιŋ4n dQ詰%&J 5'ӧ JFIFKKMSO Palette ÿC   ")$+*($''-2@7-0=0''8L9=CEHIH+6OUNFT@GHEC !!E.'.EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE"3!1AQa"q2B#R$b3r ?,^\n Em:9 <'d;B?U RSTS&Ց+6Ri:HuyUI=WV`v?#I"`!"&R7rdȟ9SH6 % ]5"H`s( ƭ.tsOB^,o}!E@Lkp ׾k!%ka79&K CGȭws#pcdH"[cg4Vw/LA?EC7o GN;U=f05wY QŒG{(!ǎ_KKo /Qk|9fa7>ӯ@[E,98Jq-jzi%u?|DzAEfDl岒82yH7_D7"5UU_I$y5ʑ.s FoI# BEH(s@~+ YN8L rFc*ߌ逧G9CHP b/|Th.,t0\iRKl95w l1p߬Q'ba%YXȈouyxQ:0硎0dI$XL5KPB.'*|ň7'U9, >0+{ d5L~DmqNiҵgprO<̭VȀ9w$򠌺#HŷHDj9't*ti4=R}4OI vYWQG7UJB9F Ⳅ~N~$x> r€Xn3 (u;0=gwac:*-Bx5x㿙9p?x? j@VZ'O; Ы_?|PSUvsmkm)]LD!lgҵYdé/YxȾ3#bk{^K06[eHJj 8j #笷U݈eCR=c uZ{Odd UI7c?YQ~|;Z9|.RP)(Fo.ȇԉ2M}U@iWՌf#gf=8#HMd8VJ!AjY6DRndRvÕ@Bt6ȩWŎ5ܓB?8ǑTVڨ=wDoHMHI o H%JRlzΪT1"MN;*ꂗw*;#m uD~+Q *פ^"C%`! 1@ kprB`~5fG6U xX tVٻ7o"BDHxɣ8 DHDLEM`A-X-("JxT#< P@ Jpwg{8#x{̷3.B,sO@Bk)^ҩ_Jb^wl1$wrTM >1%nc7."hjkh~03.dy2{\θQ%e9nC _G&\ 譲×;G-]^60l_0\ ^yB^*rX]7,ye_*p듶NoojD:zOb/{ XP9D\ Yl\-vkqBD%NT. !$s9 O]FF7TF; "lq ".~W#.*nJ0*sEzȲIA5BWCCްV⠭|cxZ0DkWCeiZa~TE"J4Hm][ࢄU1U:*0m\bsΘHP9G>04zUL:Yu u=P\¾9=amXhC]5bͅ3R8{װڋƷһWx-f?6'w^\DJ]U~*W/PR+įUx]Um٦:9ŪS23aGNu?Xg84y8Ch3J4]>@E~-{RAr:h;Bǹș_PMS| ETg1vz_=o{r:^G?9o|6x$/]zRz@Mmϣ^[N 7jR*r*j2L-PYZMmT:= 6z^WKh*KUwڨijNCejޮA5u>謚L2 6:=>JhinjZRW 6)׼DsC i$z\1Ot3y;e&Q& krw٘r |$eȗ`ɇ` G#pJ<F+tv6260eM3CmtIj+NutLK&|]&thz+.RqJGVQ{JH|jxU3xT.Wc5[x*Bŗ|ʋ^3~E" 'H}{l__5s^4CY4:4בߞI;P[%ӷS:GG!UTa\{VNNow[f fOa:.UiXG?z>pg;X.bm$Z'̠yYZ l1Y_P>7x+l}^3-M/sz ד~[W[Z]/䆶^[XJ-ϩ\>]j3vs)*1Pr-*ii.u{i]KZV͙''*`Mw^y8 rfS>Ngi;֘*AV6892rEԉjt*}7|-A#qi~n10oydb` YirVXd2_<8cV"s?3M?bI-a46)6Xrm_0_<};a7s ;_2.ʞLmx4f!sSl| v8FŇ`* 33Lu'|;ك-󖟂|$`GU ;ڸiz9m݁GEE\a!E+QWt-"]E_1_rq ~ JE=qN*b&:8DOgDVUa?~oyn]+# ^-.G}u)_6Fsg},}Dֺ$5:>~#y97~'LCߴLGyt..ل;TSpf1g 8x߷|ufzgtNk>`v.ջ+טa53Y,s:9YKM 71I;tsMw=l~z&ŭ7u?]r.Ku)Wq\2%_r&?#D2P Ryxr]oܥf;yfcvOF 8]wÅ\&]w<]d(Q-lH`JۨNXB/= OYX`)W=,ҏZ}Lw#:{:HA= L%ЇY {0\z NHe;)wX{6Sk@c\DK4 N3p,d K,Lx`Wi0')~M&l23" h|cm3~rx>|j^5?9+OHZu[YDNw落1ὴһ|Z;1|?uqBvwC<*to]@=&G^Iۜ@Dϳ@ |x&%xV=OTA=o޼ Ph Ѹja#Q̊c4Āk#%'Ēߠ 6v6tx ;,Au6ݹuܹsgOb&X-㇀Jocw츏i]#u"nR)`L?9ou8Nyb;f^evV׻̾Da"ݜiJ{ k\gP.ʞOdx ǒoOWAIB'mZtz6O+++޾W|1X`N2ѓJeOh>\j5cJZm%y&Kh^t \IX}z~ ݔE!)96ZoŻ;xW{u8ō3N&U.(\ 2.6{+w\UWoOYX Hb&, bm $ؕRqXOl$ŮsQ+v:Sv*..IKu,:^ө_ JJtOc͛IUޤ·EfR7).>&W6Q׷Y*aESߔԧp&GoZ? OkT=/0AS=<,!H>#k7r7>M|U"9tG}s#oD7Q7g2(7F|`!* bWOr`)1uNxit߽@ P44L  )BX@̃LE-A00A$!D(`9a "X a(ٻ\?\a]]}|}ι@'@%œV' =6zZHyv?O):63|"ˮP *ew;fϟ3cP-g50W^UΘI+.n$[!B9&eHM2E$OcFJ4jJ:n8Nft \*mqƝe*gf,2nϐ,ΖUMڟ+E+Ex XD\xϠ qUJpP4eq;L/<^),Km8Jyt (}It>4nT*oRuU8HFǨ6QOۯn}-(AQg"LQxK<S9i<r/dpgdr;,X õc3_>Hs*= s^x=54V?6!A#'.?wcx{ǹ縟k],Ǹnjr:ٺLQKP}}8j?VUW_,owVp=_>\ ?[puu)[e߬s נ\N 90< HJ5*}&Pik}F:h/yZIw.}4Y 2HSe/uMZlXN"Tel KdR) rNJk9(_n/Y/Keo4돕)Av$}$D{H-}VhWi]wwkri5R{K}Qi)SΐGikHu]!ѺO 7U@/J9Nc$<O<1O$h-FNDF4[zb|.{Mm*A=2e[Ə.ThaQiic; Kdw \F]HvHr+h7rn82`,|f7Eg>EG6=QԣhBcOЖpmK럳 GaT"~i7ZNvfFb4hLP^GUA|8bR1C1&ݛݼfe3ۓBh3?i¨\AQTRԡ4!ƮVo7]H >ER0hCH- =IOԓ=V#Ѵpwb hFifY҉ޗ!P~G"K(J:T)4S_h,m0ڤMM!&\uبLWA`c{h*^Ӊe>cPE'Tfd!_>A"[J0Gޓ5̒QD"iGiTQy.˫TU+ڗFS>Bs5h DAnas{'xB'v\%$=QO=qOޯ@[ )[~{Lwu<҅qIv|17M9OtZJ(\R=@sZnZȣ'1}t _<4ftJu6IAE9^Dz_Gޛ=v!9n,IJ<KupAw 7y+>c L>s| Y3g(U>ne׼@L3g<}>}Lp5StƘL 'm.aHuNl4z{ufZweHCbmgmWWbNf]eLl-d݋d=avRcxRO AK)qDjW)P"Gc,2IE7ҥ2!H,sY|Viy]j[%U]#DMC&!] HцM:XwSZuFh6jMȗX>@C/~]7YL7d2wh),Z#si%ɡeeIkZL7loo&hȃg\[&-P6Dl>q;ucܛۙߛroDwI󽹤w<h}[*Nf"mVsI/.:{^YͩXs(p>|u:AF3bЩ_?o4MXs"mY<󪹚9ƿ}`zp`ɎyGt.ϣx?vA&k?͏NH J!2.G;5bŅq!,B4]$,ȥkC DC)mHx{{8#cA.399w 4PJV)^q30T @Ԙ3a9ΪԬ̢"*B&*<ʣah__D97 )WQ]j!=WMҷ ywwWn-B J/IToQU4&L[δaut~r( _AWE@uP3: Nwwz-r  zq4Z׷LrJ]|p <ܗdFN9!@2c)b a ||zYR};Rw|me>3u7$b+4}Ƽ׻*1i^ i hg ?]='-Uo$v#3H%IzlЊU˭VZ]" A~#S|5wS*ĿRu|Ҏr䄽Izj;{>}nu$d2F0@Qlzv{Be Mm'%4ryy͵cZ:ߴ:Q׃ܮo-}z{>-E%=Sf^93o *~k/q,Wl'?e7;HW`!4V/=&D 0$,a z; xŶ_ud!ds "A%Is% ^%8  Hs׷[ s$L'&ۍ0D-ݒϾݒ'Z Es#":#,xTU>ȟw .{Tv&n]Kvz$H4z:;ٝO\^V:̋wC-/vk>{Ýv}ָ;{nDZpifMGitx-{ys׵>FL-T:HSC,FHy]K )*oIy[JGi/},\A}[I147P@M;T&ZwH,q4媩)֓ⶡԶMm)[2ھ#mY`{I}_vۡrԎvܲ䙝)6DK2X#%*98lH HM9b36n l9SV39m]42?ffimior29fZAhfɃXBcRڬfd1}$ҴǷr d J0J38 Z5 i!pUtip%!({=]8% nn7I6r#.u['{=Cmnk!wU= qw4ۣiZ6s?9w2w fvYUwCs7u/1wOOz=s|Hoz=p/T4Q1#iL&5՗r.њRj0{kkjK+WI3M/ojiHG$4,O@&C5Ԝ2VsD)G>|2S˗ZPh!V B-"KZK:-)r[+Srk599ƺGW^N'6m5X㵺JAjCVoEVq9Ї.k.~=%=zpϻ{*tݽ_\]p9/ZSy#5[BMG2y4XyKTK22-OIR[BVJmҎjNxk?!d8ӉzJfxq:۠sxOzuIy5lwVmӟ!ovI/x;:Ezco&zո=Hw?j&O4k~R%-j%wHk뎰Bphkw\ۺ_yםqt;#G~LVN*} R,% Ad F-Нt$IkfyMb<1n ʓR *RHeoVylk8(qY Lf`F6 ë[d7?"y(1M`r9&m2eҦ2mrVżmb)̞bf[^.nJ"׬Зنc2!k>3mcmZ)VZ.8+ c '2#9#E;Yh=۩DGO>6H!il%ɁB6J(of,MĘoyjJq^ԶyLg|`әodPsN=vԢxlpϮ-;3 Ksxl>_X lGnja;'l fMifٌfeY&V2+L3_iodseư*T], fA-tZh '+QS,as:C "=U!-Su4h5:˖wM]L6s ^)Q;PS[۾xcL`n|¼#?۵8f8=簆mx}6`[?&i/M7|R>^7_HjT& >{0 Y_6+`9)Y2gd*h}wFy e.GgjWgOk>68.˅,f+p򒢤MI4_f%*l3kˬ^Lx_k春żn5|!u{0 QsB$7+?BRTS]dPWbP/xDb "~dįTߘz/P/Sb.-7ppHsmvH6&싮MÜbw)a??݄hZy]~t2QwYk/ \5㘙6yf<&1lF#,#p  u/>@3LOC笇k26Jjzfd=Gy$sR#XjM/2fH}$s6s71)&bi#yWX%,ۆu^@w` 9qnL~ڙf1u4m0.8 ԱSQND."8z`6c鍯MOSdw3Fq1$g3ٳ~'uw-x{[tacДߨ=2|֜"]O2m:Pe-?`!`~5똅ͱ &2npnsyI'efqE}1w 0stQ31rp1?Ihib؛OțIz\Uo:85?vpnBs>|n沸%ݿ9Ϟj- λ?- Պ^6x4i zU.|ÿ>Ԙ[^{ct2:#=|AC{-ݏm6nvlhGҕݷ-.nvb{U]ׇ~sW =vn^p [.Ao򙮻z]vx_jLK4^ԗfQҬ$'sͥjޟ^ ׇzWky4VOj}҈oi}]/iC} 4,>'?33$qmV&k\B"b+] b~^wt> /t)o>w?r0K{^srGʭҵc~S]Z¶^o\*ϽA5l;iYyׇwmռئ/cZD٢/$^33YZh:֨?jL#g{g6N`cc|dޖ1zKFM0}(C4 5Sc 5~ýX=iM祑㲞^a?:BC߫=;߻=<ˋ'_Ia]#Eu/$.,zP25ޟ^ &ܯnnrxnxyv#]^jJxw U" <*c~!ryWIʏ ޾:[lql`K'鵅僞rY($%#PIQp;F^FMK%G{K'S^! %PnL3 C4W\̘c)cbu$s$Ib(Nrps+Js]Tz4g<;cIye(ĹF-zpeПcWI$Pc. 8 #<evg ɗjA/4/ɀ&οU''e yIk Ș `>kg$zCߘBk2sN, `Y&%V,p~t13}L!Mygj!lZ*)D*'鱇 Cq^mH;w9HRkkjɏ6>r-ȹaRSm-L͒"Ԙ%gx|*ׯݮڎb'{K-k+˒%9HZXY1\GkBVr9~)'M \7a㖉S&Wo+ɠ@=\S.S1aX謾Hޯ`drew\OQxU=slyG"%qqOl)ѤMn;AnuIZV9{s *0՞K/~k `5w h\lyr'>4~׹'0ǒd8[ ~;__Y/+-ucQZ)12fEW.}g^ںF5mׇ~,#)^E:jin_--{T;V+c6J2-RѴ`[Kϫqb{RQ*rqyt:ReNc 4760ޏҎK.} hO1.5aڶos) { :Cȇ<͖=&޻Q;{3Os3ˡ{jc#+,ȗey4 ssQ߮ŭesмRQ+Is=։ 򧈉K6(uȨQr)(zԉI,0!)sՎիtg2uUb|NZa6n['J]':cb~B;5( {gW&)}sVhM#3a|vLi{ @=|߶ceR[2@Z)xY[lTE̜%6 n*B K6\Z%&t 5VܴFKVLI&RV l]cc'-&&hݞ.Y!l|7ϜD.qGAڍ2B)[zgf &(oh34kUz:i[` Msu_g|y-棭'rǸ}k|m+l_>sy.gry\,w~l׾pe4ϵbO 9Dt9 <q6m BE|3Bv7l4oØ/bnα{ Sy yoʹ뿓vچ8k-tJ7 ] ҵEk\5X;*8 ҫEŬwp]W]xY&!8Z痢^gOpy=W컾Z'x2wB2htu#]K>FIt4xdC&ՊVVpXJ} \>Ypէj)樈`?1ϑgr{h?9F ֧)+nr'gFh4jrVǴz`}0\ \UH+Sʼn5,v9n,H֕*FqiPQѠ.KvPYc*]X7/.!O7CQ9tI<\?a>Ͷϻg]g1vq"#ڕDUWju<.=.KS/G4`N[\[F9&,Nk:>H(^"IG.h744SfS6vxݝ9Co#vRis6a?Ģ ^s icʜ mp_BZO\jݰG%:kUΣMVaɠ!87Y+R#TztxWB(S7g4dm#cI?Fug#ӇxVKܿ4thƪT˕Ϗ]a hKDoLЯwkAE'Q SE/XmvZvZFōnwWYF޹&)q)l&j*]4gpcWvಹ`oX!NbPT;w=t~,Rr6qFS`j-|tˤ/N>_ Kn5sL&|~nb|hofLٽaul#w;NnPZ7BnN%K;0sa .6¡}B1c?/:Ar.:5)6ep" _gY}E9y{8Xܙ;<-T>1ֿ}ۊٿ[wO {XcBeOqT|.$؞].1>ZR{\UWF+~fA*@=6 _R ; %[xVMHTQ>79`a&ceُ0 *f MԠMጎ`RBpQ - "]3e""]@p@E"޽3oƢ;s{~.#&P$Z P= O&<6PMn[YAAK t`BthРZ8yms Nlmר 6ًOI{YΚ@B.X=8ת~gׯrOs*>+!g 1cS_/A <JCh^05>addp/lظ'CaZ %i.|Ch$~ȵ'OW@+;wg8Cϡ\>t]3fӌ>W_.5 s)Bw{K$$c g엫eYo@@FUE5xa'ZeQ?׊Ȅd4 12gp]08͈\S|vEg4 c|n`d<cuط3XE 䕻~uR-_r#PS=={^8L"!R7!br||^V9(N/aXZN&4ڰ ڰxm 6"hv~GxWx)ߥpk'''Ƶ;lf0 PS`):? xZkpUW^g I@򸤨Ɩ<$hCi;`4f m@@HZ`G8#Sf:S҂ Nҙv>:թ[w9G+f]gu^k}n4"*dDسֻtmDUv7F D҈L* Ff,`td-ʫ+ i;}ѻ?!+FP9@/$]~DOzik|`}7CVljz7pHBΠ7cܪ `WHRՁqP > ?vɓNȓCo}϶~7`Q6+ݛ/vVڂk|zz>j*x-(z\c=bV4h*(bQ띱p Kx+\ݎk#]f`}6!K1_^Աd_Q=lIfO樲DmV!ZOg07,"(= Nj%Zި.%G,y9p=6e\O6Xi e[j @A{L*蛓=QQ*lp8:'< $&$?BQk߇T|(&f΢,-4-Хd]aif{RYR$h=e}6 TXK>.XAi i)-o~KKW8 LbpYdsbCM֬Trc1XY+#.Ki0Ϙ*)cfU#. c\etyt7^a\ȸ>GKe,{Dq(dC;08zfW6>Gg'6GWz֭$z7s0osM yfX׌[,]n>d)-S1y͘[[),RpY"qnx"k@,)h5Z u8|9k~/Ƽz!%F`]J^3 X/$1qV¼fLmQ% c\etyݡxFuGthbRxldLS [SV^?D>3u0s\̼ېyM1f'/V^gn6<C0C 箣Zq!RZ<8oU  %+9[C\=n*asڀ*XEzm;D`ڵs=~''hV{?3u'7rwegFPBR݅ L5ӷ4z@Ȳ4m?VFD#Q?e| ߮1G ;ǠA ˨& 46C~eg:O܊91\ ?ΨP]/\K-yS5%7Qc9.X*ƺic-ħX:1`o,uy4CEXmzcM2|IO:E'~7NyʌwBˮ@x-#.F##9<^e P:_܍P/٥x䂲%rp[S܃4ZiwyҊK"Xq3Ψ\D s³qrkȮUyLx]|FAs6 Wtmܧ'͋*e_N:Nh#-*طT*ʷ+T~Q/uؕ}ۯYrs[d*[u~;ï#+okT v :7|pyÐw\}tmbe3T4xX7A `9ƬKi0s%cZmJk c\crYӍG':e,^N fJ6 fQtu02ׄ9>>V&erQlB҄!o<rk¨\Vك0?2-5oS(5B'pH |܄ BEf>z$w M?ƫ3)*[iOۮX/Qpn% cL:\gÜo9C|17&ˠS e4[=nQ69ߍձk6ڀVś˶-17oڝnKe]J_X sXa sXj%7mƘt.+a+st* NJ!\G4N氲yb1S[cTxй3wD ]ZG>#3y rX8x/,Gr`gǬfRa`!c^XЎg t`) xVytW/ ACmwBm-MJUhQ55^'ESZb ֢R[X?wn߹mw?{3o=(Io+z$dsܓYT^B] Ćx+l\- WI>cFѳ-&CTD3TE %^UhF@t_D"Q84l$qxqSxtXVb"n"X X,dq=63i)b ΊG$>OQNJ+7YnxN腎m_ aNG"I؎G8:_qBk't9ڟsIdle^ W7xDUv*wedy;~m7=ʱ"Q>R ZY<>TO5a{! } l09сlBB T\q6C =l -Hw;@w_U۪E"9Gc,[gnm}ώmgdkۣ~[&X)K&XvvGu~f7VFo;:Z 2tr5Y;\Y[ YWKK~cQrB!X5j7W7Pwլzj9@mj9 뻠;ǠǢ: 8m388Qo4 uO3w榍hH֚JeIaeKKJc֪ 1]Ī`PD(ٗR ć}CZ ܪCR߹3;&[3sݙ̜3wnHeUD߬ j=I$Fn oKtr 9PKQ^~*|.!Wדh^:~x4=y1u U>aq݃@|Ki?Y:.zʓ;jۭr.i_ͿܜsؤyJ龪T? DYzu\0o i1Z3͐t {LNb:rѼ Ğ@$-@uU{]4T6ON Z"^pc|m57G;'#248!}D<I㨄vUW m 7G{-/fKMԒڈuD)3nm ]}FM.1}#v< |yrI@ٶeu c9(6 QORV!jk-o/fjŹ+dP}N8"R̎u9xV)~T_ ?ַB JIVZ7+m|yw]C]N`DlQ Pt"el5TrRN/4G>\Kjlc!reX~ Aɲܱgryrq9"|M0_⛝+̗y2,\'k +'+""FNqB2J˕υʇQ+VZɕMr2$\(w,{&WXϹbxVXI}RIwp`8OLΧDO|7{΅.]}vX<ۯgkƶ k^S׾̕Kx\L#Ul/77+~w~S02&o;ʟ|PE(:A(/Bs@jlsKu66t5ʡg,3./;,OoT*OsixVX-=t1 =R';R X? 3Zpzgst řc+Gfay1bLLQws9wc+G.}|oowNΔh0wk|]'m^?m@=cc#U1B hB#,1xX]lTE>3˶Ԃ%M6| ݔb"Z+4JZٶ^7!}Ԙ1$b/F1M|#1n4څw۝viY o̙3̜9s ": Hq$M<}hYHB7;vCׁm~:@/ֳiIj*tb܌z K@oO "b6#vvByu;J ܥ# U{LJw*J7_6=x79I;\R"g_J*䲮6]NhT1d+hQ&:4Bng۶59#'Kjaa/`QV˖YlY8CkjK: WӲo|1}&ʖ4ĭBYZEC16.XO[2iXbmW}}o[Dd2NNG.G^>=q﬿3H}ҪT>(%jCŖWb5b φl%g/(4A~m6~m?^R}n©Y?;W#4ZVjr*;tk)\%$\3hF0󖎽@ӂ҈ˆ2m AqrLi4ߝar.9v|nqY-Yn}3Oog}{r@ \wt;"S])GD2pstl8,'۷W7}72a_[盹7Z:^}#Ei%) wIxӵ3#=i~>>W7)'7`o?pӸL:Ds)}pՐLQW᫆$cp|Wrxn*>=Fz:>ϋW1eo&x}Ae|ȯjpɔjfil8 2x:FN Moz~mGSJW1Gbp_ZVr23. L0sOb<5{y1l&߳:dɞhpUjuJ[ pVE rxIĩsXLY:̍J\-s#<+VϘmƭ]e:B >vp+X`dcI}}6簎sv aCKL=vО4C_y ܋YXl k$ޗyNYk9h-gp)^ = I_|(1`W[Y (R4 "K6` (=_w~'yӥ>(?Ico2Se$fI4,(/#7DDzS9ѫ>{}Pߟ^Ŀ%+VKb$` )}Ja"8%.$g<.ܱa{$;nYldC*[<֘Fn 6I64Yme9ĦͳѼE6/<6ig"vEY-ge#c,PGY0{a~Tz_nͮKO~ۣ]53@`ނa!zV]Ӭ&'ek~&Xyj5ފ{+0]'ٚ͡ZMӬ'-g?&> ?#[>,_%sa`!^ؘ6QD7AhcV 5 ,xV pKB $@ h0`P5"kXE % P PAj%2-  h, |= 3ڙ7{Ͻgr~Z@І sY}X{C ۲W\,I&Bn ml`pˇ;?θ@"~\U;+|m?hkTk[%tEtA< % I:V˓X"0_20[ W` GGLAGd.d>eHjԐM"\wyQ)Nb{_wq+Eonz:Ԓ7% Q_2OCkd,2e(r?&S)ȗ, 3Vɣ(`tJ=IR j6U|eir#rI$vI8>dxk.ސh̓ 0V0PY HV"mEdQ&M~!CP[F#X&2 U$c-WS,8$>=8Ls8Xgp0WXXƥ5⭎6s$ riLr6}\YE0ӥR|1'm\&ɵ80 }8Ag99>e g|iuٿn0^oJww ߫hBُe&ؽo~fxɟkmG<#l][_wUgiHۯX;8۳&Vؽ֏6Y4{ۿo>5bF;C.CZ%a!%f*JFIF,,C   (1#%(:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egcC//cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ? ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQESx iPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPE'J7(hoߝ>n?:\*Z)-QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQHx4U[Bw]\mn_ZJXw?Ε7W&j!,խo*ȶ1 r>\Ar?^ꋟ9y$ծ0PGݍ5RHu;C,ws!fGGiy?7APY`3Mk?~]ݜn`*8,n][SEH%"E?R1"UBHuf qcּAfCtx.7`w՘EġV[$QՐ{RʼkpIGUgd?l9IoO{Mϓ#F+v97F꼏^)=sڔ"(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((B@\=3I-oN?D`}OjI7%ue.Wk95ۑg #ݱ*+NO֐q ٶɩdW5~p!~JyK')JqE˟TgAs7Рg?c]Hg?cן*;x]N /Q-N㱯E7zw-1 EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPE!dQPMyon8(k%2e E+͵?ג]: AR|~ZΠJM}+?qx^!4&0oW/DF2#~P@\I0$"P#WQ>KHTCϥcu浠.R7xŬ| ݒ@jMj qYp<Gc4 ig:Zp <_NkZՊZl*#hI'E^QڪK\΄M4ŁKb#3kEl,.q~k{N{%yFYcm'8;g7? C ;[$'=ORjv. E;A}ǧP3X;س1y$B3FYH!4S(ϭ{Oʔ)zsG?<ǷzNԴ =3@Jzc8>Ӈi k{?@ߥ( i<j ^WO2#<A_WR@_?j4`LMKmc8H}|rTzgsʩoJps9 ױۙ q8cݴqxvm}u  8_9JzVՏ t%Q&P=r }AVz &':9-7ƚΜ#*Fmd4ר/Oomry*7Pbl"G$}GQQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@6n%(Wo<{ۃK-FGؠ.tW^|JpEQuJAXw>.Qk ĊheFy{趄_H|#"nxF_V-h!ʿ3zqڕvw-sgۚ½έryV,?k'PK. @"rG T gd3T8z{RκYF'5vZC֞0%HTUqz~}/~*"cy9y9?J{Qg)O'n?J:bi?&1@?pʤ?LΤ©=/B3vޥӼR8`-@#$(BncH͞I zO0hJ9?C#捀\iUOӚaʗ<}(0a}qJe~ddJsHϵ8<ހ5 h*q܎=:Snm,<^3>{jA㟧YAiX7Nҧ#x+<3Fr.o95anUPۆ^-~ j8.@MqWKI*hr7Rr~c\C<_fT|#HBm ٤/@ol֗2[\wX捺:bUj8 =] c!1?O6%ʑ:5@wtT6א ehA8QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE!!FIzZ*P Ұ5i`2f~4(=i`penAⰮ|o\gb A5Z-u=]ֱ`0͟ W7w&CՉ$&A DmOϥ NEy[ 9f?ޔ?s>֮Cj;(rMW:]nL]ʸr:ʤ&-;v%r:ңb=(3M529l~'H4 i䁜tW6meF0ӏ?$RfpWsQM>}va,Qd;@>*$v#P~tOLOaD nc` q9"IQdSbB3ҎW41ޏcRX=D[$ffls?AR[-AGz| JwG%&yXȧ*oR1튆ޚI&$99'??~`y?ь~cѶ }K|_d`֩Ye-e q'֒80ԧhvA#C0U7o1߂ܱڳ癥,HV!G_ޱqsog.}^q;HHQW9;=qks̬w#UrF=A!?*xa@>:WG^imJgjgXAsEA(r /7Z-uI-BeQ21=V+"_[n#3ӌ~3\88>bM=2G14dN?%ne%\H SC% d\ۭSGZ\֌HN~}sJp;i^xӇLSsRҀ88__o0OΛ{Pi8FsUqc@*9dQ0xDgT=j&*@ 1 384znl-wJT~J0}iz*@iWBqS&nN cNbJ@#InqOB4m`>^?dY?֡5Pp߉F=UJ'8Ly#9(鎃ZOp4.-xْF8mG-;@73H<۟Nq;>.RTʟ'F,0PlcӒG< *qIׯSITP)I%1 ]`n0x3۵ 8Ҁ /.mR,eC^CœEX]س1$9$4#ސ)q^ғ4Lsuݔ(,O@3ni(=&%ԲB\*vH"jljˤY˧O6Aop%?o0kGI$H8?|89{?-ˉNdC敬6hm-7DFFu =j}0v8Yjhn /8Ok"yh:<ҭ>qE2T8S>&fPi:cj‡$ndcW>{Ro\4u!o&@0˷?xqӑ럸܆!p\:v\ _FR7=/ʳgJ\fA#Et`piy O)$JAӿRq <={RNxe?݋Uc`2Fi GgَIcIsB G˂rG8QA{D@ *C9YxX"AבB&noۧqI8^~z:?j\c~NX\(ϯM#_үFPρt[^hP~m>?ُL~?'= zsү$ۯjENOs? PNONߌcOΛdz{3>tX1?4݇8N?œIӧ3ÎG'PSǩP!nԅ|L}s{S=u?Κ 4OO΀'gS8SBn8G<ƞy#ӯ ~d{6}{YK:9' p>1^:'y)9^GҀ5pS͞\@U&28`wOk'Q^MۈW>y KFyVU<;_:EuEJGuh=:uǓpl|8ׁS\2_ڲ5جͮgcP . #w!,(WfV?5i(Q@Q@Q@Q@Q@Q@Q@Q@Q@hw =X⳯u& qyc?p5(J_e#OHu ,m < Qp;mdT8ϵf_ȅQ^auڟg}۷F?Cʪa}x26?}]Lt0g#RI,:^,!p dg>߅ix `_T;1lq@*/E7"-| Br*߀VYn)o=}?hXZti`}ls>ֹ967r*߁YG,j2 I9zua#>N;gAsZ󂡲#ֺ#&H[]|غ#)tV~bK;;z0ZЦEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPE1h-;!L {p(Yz4 yt Jw?9ε_jed%Y'h5(mTZ5Z)-G99EHHʉ'pk[Bo69wzaǭO2 TZ6#簧@MUō-\a}V [}pπps°5&`C;{X-{YWqJIZYZIY+vjx[BgSLzchMYȍI@v@I17 $;{)Z9"*A?3n׿JV4<!Xdp}s^(7r޿(ϯ>xJQV ܇p=9M |'$88#ޭ[o298Rڗ6I~8dI Vʃg-oBy<`6IMqz7f.Fe$bC22?ꉶ$$!ݔ\y'Ͽ-B62߷=.d@NP2{ߌt%M.7FϥGħcrorNýPX\L 8_fK2<,pH<{׫@`H6dIJĶ< 98氵9;[$` *2{Z H?UZaF>* ֒-  ;sN8̳$K tʖܪFÁVe>iJ#*. ߟցӎܚo^?!R~ԛ;u?O0"Ҍzs01cAP?⇰o_+cci8{~tzPI?_}q4sC&x4 \?J6O&BFr?_CM,I'.֘e qҢG4=Og=zSQݨ{Re<J:vU]}1 ˜08R|gT[caIހ%,9^){vQq Fx! M'C٠PgON?:;Isϯ 5aRW+޾^$9C.o a8=8~>$]4ݺ('׷t> 0-R`J|gu?,vӚ҃:T+VkǴV "5MQϧJF@:v:^? C'i8K߷8«.L`5cj~2 ڠ;'u>Z<a)w6'"6SCnq2)<9;zMp<};T% %ihҷ4̩2=iN T#9$V炭.@]B:m#]ӵ~0g 0zZ㺎hRYiȕGV߇k(}"kKqUln!"^xoTӸQL(h PEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP^aӭ"XTHx?ʻjriZ,c~\}H5ue3F+9O.> n`1*ZdVUZ`s}3]5FZ m 5V +Nd1qzuݍ%H pq@3ʦVVt}3JrM٭:m_.ؤI B~O<|;x~{6bqr=۔cvww=9 9J~PqzO3y'ngCO ߥ@zzՏz~`Rc_תQ|\P9>R4c>y{Q~tQE~QK@<:Tb:? vl&{Rߞ=o•Ajx1(O'FsҖMJ cV| X}@:RYcieEsG'jXc)]ɐA9+ SY]4&pX>_2i$ǽبNNSJz2-KRQZEDDG6+xcP&w}cNC 3\u95>drz AV6r#N~vz PkoBAUt>6Is9$ny9'JՌor8IJ:;;CVm&V7޼:UKׯ~?ր64\ß~8udr8 ? ]NH_1stҀ8-kw6(/>~Fxr8ݡ I9 s}ڭf[v-`>KĞ2K>7UN:gRb;mUˈQEi h8iu= =\mnvLmã>'Jw"AFxq[a|R,ьnOҤym1Ml83ęvOӵAo[˘o~k_Ǥg\E rN=v(G@qGVT[Ԥň3vȦǠ/Qit$`\rdtEcMei!|%XfWV)"0< ޵Hfgm ˔n7Rx'4G]3ĪCy8ǧUb9!TA;IG_QNnϣinR7 \0 AnumW@mgf,u=={QdX`H 񎽿L'qqj'G4m3`8׿f{)?zeᔂ@8# ?;Q4vHz`€AGȤ֘n~49q # *ϡT#JbcO? gӚ2<zF=Gy?ő҃{SG <POhg4_j ~*vT8L7K,1|N8#Ǯi9$<4ܒ9W b H.{H[M$Pyێr{.hF^y%jΖx#ifa1ǽg]jp8a_A{i\4Y؀{T7 FC;Rjk: _/'5 …f`3ލ@Kx@.o ;N֋}R͖X x@G_jâ7k K <p*`(sҫ;Jԥ knW>XO\ WckSuv̱կm]2')PFn|c'qV-4Yrv~+ZH ~b8$q(mQuboE]~9Uw)lr6]=Ҟ=J6׼"tKwr[qf.apm@C{(`C}?ڳTB.?K<ÚĚ.1*y_hFI]X2ʲ>O^Nc Flȭ4ʐwg5oE(3"(g*:s;h\:R?>JttWJ$0T7gLjkۤώ o9a.qmn(]%~mvk-ZIO-+y2{w_ZFٹ~z*~g߽Mu&ځJNRZB URSq$0 09qBqiïJPzsxQd3?Rڐr1){`KߏIӹQLZQi>җZN>SJNŒH>Q0qIҐ 4)pq_Ǐ K$)18{OC>إ$tgӞ"U!0\[[ 9c ?~֎x?ړ?&ko7,d]sGwĖ@oxXujդ5p㧧O\ ixTgI#ӝ7΄/fڦ/мsy#kWEԗ|KDxqF * yDbdqSQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQECq24K=,0o|cP*>;d q~~{.#"||t*4<*=O`*ecD]37PGPq׏S.HyDp)$_ZmG8J739ϵB<$9r0XNFa`WdwӵjܞcunE `USm<}s\x׷BF c+imƴ8y`?ڳqܒ4(ՕAOA{zUB˵ (?_W7nj1rZi8&cEH"PR^|oCJitg.0:c4_&0x==3u~u?N999>@s:փSC4I,Gmikp71E}Z9 \c6h/3I O >l\x–Fʂ o(e[h>X`PQ-G2ñ8<9fck m y`2Tu왶B+YZ&M71'ON³<^][NB Hgv5v;K6OrJ<7QsЭpp"<>}Nq޹]K@ PāUZ#+ zOumHrU$8'x8֯ m໛k #|^Y%QPבWVd[`+Py?]?neE$u?zCTn,<@Fz+בۮ~̳ @>OrqG~qQ`Q\Ok'&)Bx9GnG\KyW?rCӓ<}>)B8Ϧz=*t} )ke= ?ZW,22A%əI F+1G_qWXc/HU qGjr{zӥHɴg$QK48y$$Q8ێ;+<ެ6Uu pAzDWPgcm\:Ơu&3#d㏥I&".rk h$L9UX[#eO0q t\Ns#rA~5'{ @pOuG#oz/m"b%G$qXz䁞BUMsY>rs#a5;jYQ HFU>3Efˢߴ"y"X#;p(3_h'IM9 QIX|Wi-g!<˨&3(~m CNy?\\̨cGdRrU4㻸FȽNVb.f8wdb(csZ0s:H]|;GA%E I,H!bF^]Un˧gXW?8\6= V姃tSy J.gD vжu;yv3nz^kY-1@?\p3ҍFpV^7]ܬg3B?,u;F>p ?_JsG~u[±Gfdo֊FTPv@=@Ͼ)h;ȥ|Kޟ`/|~_Z i`Gv=JrGL}E+{~ړ;c k(Ip<`fǗDzx"V LTݱ\m ]:c8XZ?tSq M[Ta\Np2}B3p.ynoCM?]Pfg0>]ݾg~#L' ^-<n$ 5R>[?Mi׏5a jnaWxy̥-Wu 6Dd@xT~}?АEu]P2ߏoִUeY9R*>Z:ϭ;m*M٦б,F3$i8G`Ϸ^q?/=NICIA?.O^}zP1G^=x@:ϯҁ?~?Ηۯ@ CoΊ3_ 8>lLt ?۞G~i=B: }(=Jҁ/>Ɠ;{\sњb{Q@v4@>::g@/)G^3׷֓1Ͻ `\y{f}::'K_=oGF;ؠ =ozdX'$eG8?+ѵ ٤2zc'#ӃWeedA +|A1)yȹVr? Moեexր;'^&lhbsT$N}? rWp?J͚b~ju#dc\jzvI$֨9fy4Z=c'_@ cS$PO?^MonrIu[W0,.7r:ކ6Pgh]G.OOsMM3j !10sL$iqӐwZԠFqWiZsNF}WoHLJѯ {cca'^wSxN?~X^*N L~SŗR>YekbRYHF;Y3ҟ9zLOQhGSb[SQړC߀*?Fx=**p088Ҳ4E!. t<㑢pksKԥeAs(*~wn9'r,Wm0 < # [>JW d@ {hu ao, l!9d~jgmm쌗d{ܒ6 +Z/0ewc+[LQ !e69\3Sakv/w9:2:Z˙?eh;|q֕ iL3U<ǯ=2&o&r^R븰Gc^_B?AѨii̩9C3Ue6<ͳ98^ۭğ葰8 |ý^Ƨs?al4{afV$B4ʤxݑ+ܸp72{h|!ڹfJ^2Ъ4^H򐾃yv88>_0syϘ1G?n4Kxi%p$}0yVJOp{$i#?~[Zi8'OyNs!瞿} c_G`ր ҏ^֗)hhz@/8{ciO^JN33YηiDMԬH>XcǶ}^vF}A=k+T.#Gt~cwDة\aRUv7e̠nĞ3Ȑ1Nyz~*#<@ϒ_$ʺ;Ep`|-_~= V1ER0F'xP?<涭-2;8 ~|֏G_Zv P088a҂=t}TOqK֘Ϯ9{Q׎:qJqϥ.s4}O֓)Oo@9޾—=NJ:4 wP0;?z8#z{Pq_l?;~@;@=Q p<> Aǧ)ӿ^=3??Jnئ vGTKڛ8_€iOiR玣:uƒԟׯt1NqsIp1?Ͻ/ߝ/G^):iG_giyRJ^җP{h(ҁC*8s׏^޹pϽIO֗=??@ U?GNؠ qۯ@?~Z?:{uzk@ls>j\ޕ=gz| q PIzuT}z8^xrU#ˎ$_$sE&0N$lzzoHZA{@+ɵ K,Jk>µ/785dDyǞ8~JDYbxZi"kK}?2AY qvGCPQEPQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@r?ˍ.N/:3n2ʐ8֯1gwZ7$?L}_8*?3`;59[FdCJA tk r=U4%dH$ԵZAJM5*n?f,Ur>L҉r늫>ӟbQ"SUhDΌ`SI#ק^A]=(TE8 ֫>h?(S<3ȭ+}Us,zcOHz{As =:"s'ggU8(b'sZV 2جH=RG?<aj tv۵xnĀN=M_sԞO_Vurrrv:2TMA`c8=뚮0}?Ưj2_il${?ASW$/O=Gc}iq<~Z3 ťDҒ{'Z?&1ƹIҥ֬NئDA=>ӊ) GP1z~d~ݪTjݤvLrɆ=<~εOLO={j0qЏPG^0ON޴qۦ}?@A8pGhvR9zf u8>ԧ9iSjp{q5Ya9w'5m+\WA ۪pxdOc>In5S毝,1G<{ G<\è.89?;;Aqh@'H?5!u'Dq˵Y~cur"O<+7vQJqN1]ƕٴ8T #s~J+@-tGsM.O?~tюbE'~{ !H\2`xH a XcNS \Vug?D2 Gʿ_ rmc%FFYFprZsc`N2qЀ "La>,%v J%0 hym$qZYcg"ŀ.RO{cHf#CC*w~ӵOtF+QaN9<)dwʀ5I#ׁXzu}fV죓V5V l Q"$<ǽn|3ӛͺUL<1>M8n$t6"aE F*֛gvA|lSբYrrx;88^ߝUCPXbH=oHrHx#Ҋ8)wd{>tԜw?gH^S{8=='oPr{RIrzgh֣ ۧOQPrG|^z4F}sybӷXҌ&:{}E/:AנTA?oŽwRz>=ғ8J$c#G)FqI|14{ Kמy{q}(GPG>s뎞€~yj?֞((_st=Oړ>K=KɤK@'NT`bpp8)q9VE*p9#u>׷>Tgӷ{P+j^Uњu`B+b+oRx!#oj\W*6䌂=~UzƁqa,Z8JI$S":H7+#~-x]*r6Nw:'(%e~uiP< c{20a(((((((((((((((((((((((((+gA[3csNƽã]JT®ybOA^3$^]y[.瞴ԗPoI]I9t1¯tSJ g nňUI5%g+m9۞^M2"1>\niO;؞uZ=M%wtw#r oV-$W+q&ݱR }9zp1c}GmHc"76 `c}lE;iךOO3*zZQQzvZ#=?/M7$#/~E`fgzGz9JcAǷTX}Vt`cz8'9AOQ='Zx U@dNx>*gք1I)V@O9R=<ƀ3882GRiSh*6dw4;{}=T(r|ZFMCSV;U([V1hpvZ(nآf'v8RFN iAF䌞=~a2lr69o#i f c$~U$LU\h8ZSx(GGX!nODX +4}>V c?=~ZLF-%fB!g>TuZBa|p1o11^y`[1,teHyl,dN7 FӜ"+[Qn+Jf$u4D\~߭O2zTޡbmC<`qׯ_֫\hwyoLsjn0N0Ijռ'Yq#8 cBump/ 1|?_z>bP>= vӼeo0٨G>? ,?Zfdy$t8T]ŎI9=t;$N0zrqj oӷ}/]`>$S\q9սsLsJ2:qI}88J:u?_j8n~}ϥ?ϥ.=,?d㱤ƁqN@,_@3@>b{zv旀Oԟ9=FG>AGLc?!}A?'Q8A \:|>gR\R@($:t}?OjAu/zb~}x}):w?ڗP1s~Kz==tl!x{>ZCP1W??0)Ҁ;qj =O砤i>/JOaҞ>;1L⒗89>><@x@{Z:&8ˊPsܟz?\_j=@?'=z?_;G=p*Cs4^'76\ʪr9O᮴ĖHZIH] nǏǷ3qt+O:=zF*+.<`{-=& Ys0Tќ7 fM:}JR:evTWk%N8*rGV;FodKl;2HӒO?2e٧DvӁ!c)~1봜z^+/L3RK$m,TH*l.sO5tW&H=3ʚ8 fNoA}(~;u}j#qjGo&=9(JrSO^zryhCRߗJ j6lie$ t0_׷TX F{d?t<JrGygӐ։Ht-feATy=YjE| 7cI=+HڊIܻgwFG'kt˿$&{9+xL3U.6w 08 MuAbWK$D uFAZ]6k]vNZDP^Y߯g\ sцzN}<4J9F]O#)!9`]鞃4zZF񶛨:%{垝#<{ֵ֙`y*rsOQyr? tLCn׷&GQz>_;q>I}1ր544uvZf)H[bcQI~ylf-?$1y{if_#=7`;y[Z䌖9;Mfvq&~cLc?u~Qh#=>>Sk:T,dd[\=Vg±nyc99?&|QA^Ǩ?Zoo;1vzR8=/>=(ii)E.ytR@NUtȥh}W4/Q@9b{tIU5s!$;[,:|ïӯ^i bM$FGK'-ͩ ʹ!`oS׿jZ + ܜ-n,8XsץgZASFPϱ$ z\$bU N&^*V1^O8 ]UZ[>Hҗu>cJ:cz{r=2?AG~JS8'=9=t?toj/c{RO#~Ԙ~y֠A{Rg uq=1 Qןl?P8Ǯ?^(P:us@ :q}:QsG;{c@JG'8_cP vKojC3ZS?S1zo?J?Z:O~~T~ t9 ylr8܍v1^xL֕P-"F觿c^ ;J@:g+thثR:(Wo3جvkP0$ȣ^G-E'+L 4QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEyhH2BPALtAHT#k;EmwNDUT$:я1|q9[*9RBn$)B6'?N1jM9WzG'o~b?~eg , JAkEnпyzڜ|`0ed9Yp:9? Cq_L9=3`JwϵX9f# 8hzL)9 BCڅnrxjWLcTAG=O~==`ҮfP") 7~4lK\|ʪX~p[W@tF@G5*h\8l.O|]GAs-, }p#rӤ|1g$7~N+Y1rQ{^8jKK[WBP`df?  px8\^~u/ax'Ԡ1'JyoM#ǭ H>r2~h)PCy߭P#@8bh 'Fk;fKoaןڙakˊY"P0H2x>*&C;nyL7!SO󚱋~Ͽ-&q>cs׃R=>cڎ޾w42:8ǵ3Lҭiц˓P_̐hvR9SǾ+|/o^߰999i 9"ޤܽ?q3\`qg<1Rn!H "8IPKr=<R_'_q^G c=F>+ vgk@5/ߐI^@OsoEw*z?ʷ=gz?{\uB+|3y`|[rt}z\dp=ҎpZo$_5l6מ]dҘr:}_'_ϥ€>◷>}֣a?iI8#As4c8xhnj:>)^cMȥ=?>tF903ӟ_ (=:~ӟl#GSנGvA?8JQ@G<= JQۊ@sA{{g>vۥ0'9z~wR;@zOGQu~XZ煭5rLʼﯧuΕcš]34:q /X4L/]U^Ȓ& x ǏXz@3X.ׯ>/1opp=vpMt:u=%̈$\>*'D#7(==:6Zd3o5Kc1sygCZ?!(>=c9;Z>~1mpTw.5|InҒvݓ׷]6o$-pr*zgҹZ:jj+.Er(#wo\$B=Bc C=օ?˶WA43yR## FkOHVgR[o.Kyfxc?$LoCkX$S:{?N2f1{v沯`F?.#-mHO%rH>?ƸXR4QMV܁jVMorZ@w{V\5("bձ4ľ#Ӥ]:䐤H?zD&U ?Q@qGg=1^j^3J);q>-RR֯iK$ ןj]8*ڗ'x=(64Cc'ҹ (cLKN Ʒ"L x ΰ`YX$WPt6MĒg|tk՝AUҕ죶f*28=jI^7cW|w]"+e9k P=̲9n8 e$@6'WjCU^c1!U'$ JdCmgUl Oi-%Y>R1r}QatMB{hAg0~k+.dd@N:k,Z(f;Z$: ;ܢxҎo ZO^1V!~}Oӏ_@xKIR&}=(:_:ǵ s(c>A}Ap??tP6;]d;8=8rz>&Mٌ$NL=@'S%;1Jո 敻i4s"ǨƁI[<}GW[oi;>=t RO<ǿ;QP!N2N1ޗ^=ҐcׁO𣷦F֏QӨ~֛A>)S@ ^=*Sx<?H'9?q<4tvRv8~?jv2qZQ?r~h@R_FN;t}{#~ր=΁=h8(L (!{R&s}i~>ԃ<A@ zzʗ})9LJ?hzŽ(?;{/j;gO=Ҍ{~ʁH>v1Hy=bw\sӜo4d:{=gh?>篽/?^=9_zV3Ƕϭ8==i=Ar?4qH0ʲ!VgkcKd#y'ǯyh_ݣ[YHenzp~h)oC4|k]NZj1Y8G#\nGX>+!>G[+4$ʲ6Rns,ңrC]`"XX':)Q[B[y#3`"EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP{Ho^7'WwQHTFUvתU{8/h#jLM.vbDV(Gow<"2o2v03w3ʇ3r٠ܫ!,0pqRwe0|q]gR(,E˧rs- uvXv7ϥOMLj:ܞQ>T|FO)ߠ>oNgg(YA9maEPF FXa-я⨜N5l8-.E~z|A{$Mϕr%~`0H4P=}*:U =@*UD&t!J2[$3_nV[v 2Db?Mf[WGvsFr;b^i;$WU 0<S}IcTL֫F1_[e;vUad zpj<鶞z&┨\ϯڐϫ}jj]BA=@jN8;ڥծCgm+Hr.#9wW&gj7\Emk<óۀpdV-$ooOƽ v"6F.ޘ?!E'EM7GԼI=]yd(UZR{ ҚV($d?Σ,8QFiߢU*T7`?.Me^qdž)ؠ2_^H8G4䙔?-T$AH}ǡF, T2㜌?Ȯʩ!zOOl=lѩ';nAu9Tɹ%s:{p=+2Q <$mcsAި +rzc$,V/r o=F90mnVO?+up BQVy5@ʎI<`ہؠjB:dl?Zle6Gc cy4iܠkV t +c{3<<~bz蹹+an 劈]\BIR2L?8.js2C촎p#?ݛ=#Zwf#!v2z⍅ŴZ)3T۰zeaѱ^UG%H9s eV\+v[84 =?ҭ2Wj ؟+aU4xe² Gɲ*~`'=~yV(]?YK#!)g~&Z;Ɲ -Rf=TLf'0nGnjzxOOo 8vZG=B +#䑎S\ͥĊ7Ո #3 ?j=[llI c9ʎFxj.΍%7hh֛$D xFypj:{S82^ w#zղΧoj`Xe^}qY^* d5/~Sճ5.Tq(q*AFy^~R/k^"V=Lk:3-.23*ηŧXq3a#29=zo^c +Mgc(T\rI$g{\ =$Oۊq[St6Wrޘ!1i$GS>0> 6PYLdZ.KFXuޭiN@1j/]c.ZN#F+|wO}ƙq' 7#Md4͒N~,+镳җ\6ʊ}~ 5-4lA͏ Je *!il5n|湏 \~رCX 8=8 /?֓ q#~T硣п\=*c{fofN^LqoGns>ZNOn.z {~\^O4}9_ =9J^ q=h㌞1}h'֐?izgbd3zQ23RupϽ'9?^?KszuqEq@'O^9SEF=}(= =)}J2p9}ϭ(<4x?ђ;BR{cb1ӵ/Cht_BGj=RQ@ Z2sRR9@?(tsڎ=?:@.~ix?Ґgj:N=s~4?ړ>G]0A>>LsF}ӷRE(sz?~_3ף{—~c0?ƌ sg@i >Ҟ=ϵ?S{\ ߇Oa4{Ӷ(Ҁ'4PC E8y8ʿm/\4Fz\εm?S]yam?Sn±5]O:~uD;5TWQqprѮ6xZ+?,l85 t#r]ص{q|խ5;y]!{~=?Os[rTxvL}O҉U!^;?0};?Z{:4jnڽE=?5HA wV BOX1MNMq+GH)r9$Q/q,T6PF[UwDН35ގ7p6ޥ|zRFn8`&;b&YT6wÞq7\]j( 5w?L_7d*^ҳ9RBD0'8SZDE:g*Yj[/HnxR΄XqV̭ОC䉉Tzֱcէ+nMRF3 4̎Zy#POJgE#4?*][đknYȫwn#GlRNV:,209R$b?BpZvy\2&J v |w0r<c̍F\y` 1?vX' FJqpng𫒤L8!ъyy: 6唐6 Gf_0RI9`h4#@ǀ iT˷8ǡ)!?jgJ'av9}p{0}ܫe[?lGMrDbp 7Ul:il#MݕqǪKRCלu}꿉.tBӯ\}+@V@s{|ߞ4o+rqbj>G͕+IQdeqЋ{O_ >B_-#pxqZԕ#g#p]22rqOM9l`gtf2}­#S4S$2NAႯGQ*z1zTϵv/YC' :QXm}esƥ6=|3Z[NXYNCv,pLλ£q>\Qhs ED?ZmW[$`Ŵ@Yz:{+Z:|$Dyh kýNAZԾ߂~Uev%ۋ&O~bxo REu s?zgfT~|鐅F?MbYhrQW*P uwt&ĈA$˯LI>g/5r ^NC|Cm$c`G+g#oZUԐM'^btFO#ӭ$;z {~ޕn9!\Z"Gq8xIZ(5'gɑ9nT{}j,?*_N:|a4٤jNxrIKuazRP0-(M:prQԩ?PU}K)Wn3`g?k¶|˕6)(ɿ9zqWM1𭬷7,bcȅt# N.^8zh}=?U?Η?O4ϵ/@~G:t /)?Ҏ}(ii>(y KR~?ҏ/qߏ(M= N3(>z_{Qړ)G4 :gsK^{t?n~NF~=$ncV74 6E`~+k@nU?싂}7~ֺVPz:g[w`69_SzQ#=+S߅Gso9v=19>҃JL2x(3'zǯ2qgր{P㞜(>֑{cۧ/J)ǯoӇ\zS@j_@#q@ ul;EAzA㧠8Ɨ4az\ƥ(Z)VSI?Nt╗@<[i"۲ǒZ?1V b:u΋"mrr:`_;K fS((((((((((((((((  sp=L$fO|Ό^Uo,rN`\!4GXg zztϔr ?CXV(r >}: n-d4yp8Smjpl^zzggfm #\ޝs`hx=5j2®hY6 cN?v{jEb>n@_%rF8#>Vxxg\z$.$?'ے1V2VOvi["Bˢ -sU_8WC5+<]Aۻנ{1,O>abX:8;saiXBNZe}/E=8vns'GKhIS=ZS2Fxu' 7< עVqE*@ p_Nilc cOsN{MQzR>q(b8~bP4yT[ڡ|4 v1I)=W_G-Z=Z e"HIPWJ'ۤ T ߟWiehmЂř~T$1d𕔀eGqxcktum:x={W{coʑJ?]ǏK#G"u8 Ս>m:.a8##X,ѩbm' 9#=xa\x(L@n R?QV.ͣav2;|#xX`IGq]t8 ҂G62wC #ハhYG%Bdv9 FN$`{1[ޙ+܀KeNLO TB*wmCΒԔ *u\~sAEjrQ-${7ѬCanyKLֱSE!S?Θ%eavӚ$42Fc0 zNQ=e#BTGT1}?(ɨ =F^{~t9n3 zc\$sD2H#oQsIҘ!58*siubn#c>gOmtH sԵV2崞$d6HSȅ r683[)1xw3%H98B+cCv<`j3mv م;m^u՗ۍ`i cu{֞0^0i |^RB=YÎzUxGeXrPlRraRXqvPߧEJ'$d s~"hy|yhpL28`:kG"oB#/Ǿ1UXyo|~9?jfL[9қ)ori?:т֦I掼u"5*E8]?:c$g"*GJO#D",iϵ,r?Mp=? (%R C׭<~PU9dlz6n#'ϸTkW6h##i8[ȴ|`<:)/!8K*nzn9`wzзضƜzqsM\?sK~j py?QIZO^p?tqހ cހ;\`tғ>@_-'ڀqE *?S~R QLZ?.sG叭/AN'צ}/=hK1zhZ?(=Tg=ϥ/ǿp98Tӭ+*/L~`t5j_2ݼa߾Hv9i~Ұ>~ڸ " Tr?q[9S28#L GR䎤zHy8|rN=#4s9zɡ ^3M/>ғ>==H'?<TR8 Q=>ަqOH:qJp—qȥaB4r=A{fޏ{~ }ޘϊ;?.);t _KLRh=H?JZZoo{ӨB;QGo!QǥhxOZ?{P? _})GOoL~ixxR{?:^}v(c4cgҁRqTOo8}z??^I=:Pd}#9'O }1Q_LysGJ}hiw?J_2qB}O^{OO @&p1޾j^}&F:#ߧpluqׁQ'?_}%9c)"+?x~Lr~S'޻C}Lюzt~ۡ#`ppD?k>!Ȍk pn#aW15Is%8?ǹK[=Jy6[@v67Z>mNÜg^+5(/o",r:J<7/6!YNOvQE0 ( ( ( ( ( ( ( ( ( ( ( ( ( ( (pA)A䝍~E&#6GB@sUkΖМ gsEr ^AG5i`8 %[AT` dqנ\oBc.h}闁wGa={)=(Oθ֙C }QأyCm/>gnh{֓g T}(vnٿÔ0#W^;;s^c 5%v/${r(K͵/3pc[ ףȤI>1i1U@Q_tL#q' F?^3Y꒕# 2 8סj**p#BOIWhp%L6mlqSN$Dqؚ=M sQ GCcT4҇#,1ac4r11qzy|N2;韥3H~JUBHcx)@"rdߗ_2csDqzOYa4dҹr7memcT |͍!=ZUc!~'zƘ2aʌzshO#j/o*/>!.0ڟ%;Ws@)04KRupb&P$?uzaq⤀enơ"VۜF'-弌wnFc9ۿjD]KF Sվt O)2|}=XGXs'w֋HTEsn#m(˴z֎<FXf>w'{f8>ZZ[NT"@z|r2vJI-G qVe6BYM*hNFU!YnH sҐ0c4vI0x*D;@`V<_iX ֫EvPHHḣlcR2)U1 91c4$wu܉cF@GZkbt?ɧcPu9=}sO=^h(ssǾ?KU}ړ.y#B4~t?L}ii>R`%֏ƓrO?GF}O@ }sZ3$gހ9籠GcҎA{((J^_^*Qʀ 8Bt<$K \?ʁηxnQScq9{#VynU pLnGcDZIFsğکZU2F@u•P|QiO\<'k}yLWk>y&UJ~tYu]2OμczsRzU[+mBϴ]zpApGcX~=c (0o_H #׏\Gq{猞>?|_ޏ @wRnM&G8 Z8s.N9}h {o1zz~z~K{z~ޏozQcoNH2:gN=@v4gI_ӯ8=@-)hu'8OJ:Hb^'Ql)K?CM??Ԁ\ۚ=GOt `t?Z^&9??]'NǶM'_R?: ;)?4tƁ{(dzҌS?{})}I}?=~JAN<`RS}=^t"h$яL]zפO;֣:#>?'oð{g+Ϯcp}px5e?yˋЍFqzv8g'4u={TsLyKct [%P=;Jg29gĈiѼX?:D\ivWX:հz>jD{LKj9'q[ o搎S=8ҎF9i}in|Ǐ+'Py" Ѳz\W*s KvpX& rͿ1ǦGQ=JAJHaXMܩP#^!dgWwg*Ik8yAL s[75VLA} v+geu>Cm3l2xY ;93]=ү,! *H;p$lyL =~1bY_C!}n`H<MD#V `w#[>\{PdN~'j\ր}(A:(P޴&s*?N?؟Wғ??z:_縠s}c::rIs2zt4x_@ 2pqߏ^SN1ۑOJs F( C(z:浿 CrmcA'~_)sq3!:|eA0=?{t?˓]tOסקZҾ8אGEqυ 5=}:␏A=rsq@lm&i`)?Z!g^')Lw_ϷҞ n;tN$4j09p?/)[ۯI##/!8#'_sǷQ⁁玿<=8P:qӧO@ fQێg>ZN`w9@)y@}GsI&Q(|uڗIoҖq}?ϭ'__y)G^8Vzdu,uj v?2n 5؛KJup?\֐!ׁr$uƦK/ct=n9.P}^e{mlrѱ :וҰEdNGL8fZL.yN47=Qq6MN!2GU5O%֒G#p\@c$! &:ճ+Ϫk3\H9sUJ5-g ?$ 7*qq. 71wX_HH˨~N=+/c[u;]q'֐ZFr8%pHn2qܽBZ*-kfQN>%g?kN9D,>.sR\D?qA׿lL0툷!=? u4F5`?AB~Mc샓ǭl njbnWIWjtrg*`O|gl+cJQW9Xך[q5E:H&a)9ps]N+"rf08pGN٥)#ޜs@sӚ|3:0`p8 ^hZ<;11+ז#'޺]"HI0XpH?^sW=Cf?(ǥlq2Xۆ*P!'Jk4nD2;sRz*(q;AO/?4<zJNsGzQۏ(s =hoGn:NGO)sz_~4㿵&qЏΎhxt=ZNC@֏I׎?}(iy"?J(J\I/N{Q^sgށ=EYK}9FsΓ?/CP1G_O8vi;c49 >翧4s\H= ^q9OQ@z:~4(^~C(u*par1פ/lc/g+X\5q:<{=u/]4D?4LroC?JˏU WH )0 ?\r1i4jVBIq=D8W' цl=vo#pjq=ǟJ<;ʓ>ҔL0Kߧ'nSGO^? {Ί{QG(4'KN)>{~TנuvG?:`.OJ=)3#GtAGlflדրߧIcR8>gh8=hӜR+20{Hc8N?WS;WsgZyu2A#z4ƣ&;Ƀ8~?ϥvY׾_h ]IR0GY|Ũ[E^éXũXKi0ȸpp}G^亾qfF&dȠn\ӡVu??#q$Lc`͞?C[((((((((((((((((((_8l̊V@yQyd/&#Ldwr²hMg<-'s1KalmmdVl`r?$_O5L!6<e*p˂;}EM7Ny?i6}j}1q֧m> 5d"B+"v6 >0I q >]5cX u!08?QI[ci+%d ilXxcL 2qsҪctQE\#}=x滽Chd~^F|?ƞ9JО5B5Zt Xq%E9=Z'Zt4*8=khms+:ctv2n*g3?5XDŽcѿ$-/^)җO\*|(Yi]P\gzf6ʫ:&A 9?WءPk)f<(y;sǥC09G^z LRYk4ß5bi%yUIH9SC.B29}z՟5H."^Cیz0ΥrH*"zkkt\A`rt=3cS霑קU]_wq+H_F0 ,: f.-Ɩ$O1'@x'Ym]g@Hǯ.qO-8Wczwk3,Dc8uN9=NH=1f{i$IdP"9s#N1Bkb"DncOH3GoӭU57?2|d^JO\8*sXpjZ )㚬 K1>n~60EV`=Cp(ha#$0#vl f~m,pO\cy-HEE8AJ 1>ΤxZKNZ~y<>00W{Ғ0~^OOOh#?֐}iG!y3g<GZ89s@OAM/??ց~j@28BMIK_@玣ڗ4~'T{PhOzORϥ&;`-%$t?6Q~~?ߧs=0O@ zsy{/bӟ~:0O?^?DwB;[ gۨ?ۿR{xEuͷF*Wgһ?PaZL$L ujE8gG~;A6G* 8>n:f޾Nk B%!wʞNkqGn?!}GS}It\hv8ۿ^-FZ9 VCoX-Z[^/eX#Ojw1ۚ4Lu||>^JR-b dggO/NTXcA_q;` :sz\zZ`(sۏj`:yc k6-35MC+O^xM.&8 =&5Sm=efcCT:v?J8},!-daF?J-b>OKӂϷҘZfa_c3hIM4>̖oo>(~#Vm#F$}қj[%;ӭL9_\K6VV=TRPsKmJj:atPN>V3ө깚V:+>E/$hVm9ڳYV֚^DW%vhAZ};ms; pN?zsN {t=*ͽ qW' i ʫs$iR噔o$n>6r& Մ:BCvnHU-)CNARZxL(pW'ҁץ&MT#Fs!@L֐)}44GNq˯ozPAe ϘD2<v;Ճ4\LsfDҙ20?£AOHU;DaI╬#SK4<:sLX0xr+bI'AtU1#H`0~v"LUjN=Gsm(,u2Ŀ3G;!F2:N3j'DZVUS##${ dme+BWP7<  (uF!R<$$O8# e% O9.iqyl<:9柫m$v2#9Wy'L]x*ޜf-Fq,# ⫲?*21oQnkwGsO_Ҩ!PXd}tjcɿQs p'=3_bd zGRN MI H~Μ:V|yrIT`2[A4`u֥l>4O^M\ϷOWێ_QqK8@0NLx}EU')=I:irqϭW?QEv[9jno54NT:K$?_*![#) i4$Bae]!l>zvvoDbXttrQkfP, gݒN8lg}ztÌ̩8Xʞ<:q5ӕ~To_'^Aұ>Z zɥ'?#u<{g.s#?ZaZ;zڀ'R_oG_Ƞq(}(H0qiA^&p?K⁀81KӞ:LK4_ց&x◿Z8i/ԊZ8?*3@ J_l=A=3@?:;tu??@ 8?r?O4~T?^Ҏ~ :t})~=)Q>ߧR; @qq)G?=_o&G>ޗ)3O_A tb׿җ_GNzB퍽{.#F=#c8?j:g[4ִ;.E>N)ǽZ2Xh'ӡ1kc#@F:W׍xZ종RsTg?5촄QE0 ( ( ( ( (#idD9)TH_ ׷?iQEQEQEQEQEQEQEQEQEQEQEQEGSIl^rHkt7 ҅ Ew5R9eU 89K]P6{[(vK>W_?tRaWn8Ox}.2leqm݉<1`f|DqoJ%xdcIaiOmX.- 0=r?*{2*F"V uI#];3Kxcܡve>73imķ-.J1[\{i Gt:~UWTޞΒN3\qUH=4&"X#VV Ma8t9x%zu`x8Z7r2A99}z{*v`QGS:qUn"Q{"%O@G9lSC?5\y[<15|T2{c!cU#nABGYPۺ=ZZVbw̙%q$i\-A|)#nsڥ#q5`Dya' n}z~5z8(K e o1ppR[im#qןKt"<'=sW_<+!.{cT)M=yS֦22IIE SsJHfU,rc~uFFbUP~?R񪺡'RA!W*d;w}<%Y$DIP?NNQXUGmp8Grc(=OT[K0`xB+o3c;X? DJۿGamGl܉bf>M*9'9ҹCKx'bM`ÖSѰyE(ˠ4Xpv؎ c^_R[NHcsӥZf=I*4'֊=\r})֜=4pg(JP199F))O Onu3~Nhf}~ 8QFnGSP#U4<.Ez!vVۖ%y[>Wk䨗qسNI'khcwThF:xSJ؆];~~{#z }GtN;֐z9  y֣oi>Ҁ{=Rc۰1?ǡҁ@/\Rg>{\dOI—?S@ 32:4Oʗ鏭/zdJP}Z_֓RGOO9s΀cڗl>^dր>Kxg=hAsZ}(:gOƓz48㧵֓?.sx}>(OZN9#K9P94<>>KG֎>A`Auz6x^˜dc:v^{“{SdtwH8p?3G@0Hz})7-9'b\Hf`x ݽz~u%Ai,(?ݵio@3C;@OƼƺӄ83"o<~ovi)ىPO`vsxH: @_>?d]xoܐxc.?,o޾|2r?/[~ -ZO2wa݀#?D@LMWzs޸`@"BG~Wx&YBr\cw" 1z~^aiyĎ*?}ixbUǨ?Q]$}(> Ng)w?+;m>KczfT\}?;9?I~r{~t=j7H\f\xG Wyl`6ssqxPlw@Fk2ǺAmo#6X*`zGqq y3G~G~f_}?L~*Bfy,r\4I.2_s_S{ҽzlj[~P<_kR0Ogڱm|%p+n0Xb;Cl&RP;R̻7 8`~'TTeM$N7!;{? j" gRiZCioAБލ@#u*T^2SԵ}oyA5у_Ê,F 4]r{[Eo1*vrjOu)qӵ;ALҎOc?Ͽ;$z˜Ԡހޚ:`?O4vidizEu\g'q_6,NQ s@rŧZJYH:9cAfzzWch!27WY+BȔv=?ґU$c#8ɥ= I!dv<:y7m7 Ͼ@?6Mzx߃XI7>@Jb ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (@ 2\Ri9bYې:t~f mp x ,e[KM5q}B$l>WBb9x+(SSǗ@#iO>/ <}~CMwPF0.(ݏ{ pQ@@ d_oM!mf[Pk n A*;p2s:Mk)u_ZCีk"!,9#k 21AۥVO|eeMSܞqd8:w\dc;Hm?ۧf]Ojq6FGC_z#_1[ rZHbHzu4w2 B|8R}jK[-ܤeXg<cb!z֚YѕY;pqEgC"d{P9 N6 e''ͣz~4˸ݭJ)ҥRK+4l9pe$0px7e{:kGT(,k SC sIEP 'Xap|P@,Ʋm̝Ϡ֌ۖirGq{[$Q7pIuIvut"GvpwT]8 $q · Ecg๙x$%N n޲3MF0XJ{tm4iF\c+C,QLg4vS#r 4%ԣ@05*w,A䟻n0軉) ?rp䫘ikz43DO9cGC0~_*Yp}= >jY5?0V&A`vx[^ˌN l ï+ Zm3AjB z>>z?E0"qoH2̹Bnܨ]֥Uų {S6Eh]#CO`HW y 2sTM4\%}OliTn6ك|c0s5ID'9( ҂rM ݽ9&A\͒ ]=&g t>لјG Ec~o Bhv8sCw 1Gjymi$7l=}zwC;\ԜRLH8<~ɦ+qu>A'j)?=O)9 $1?JC\zZ^==;JO9Sx2GO_o8s8=>ށ}ϵ/Kx&=2=:z^Os@ \Z_Γg?OZZLS#G@ }2}\z縠bMB4tGJ/ѓG9>@j\zQgҀ:qKNy&ʁ4zYQ۞hz({~_j^G_֗ޓ׷_ր~=F1ױ=O>J@=Nr{d4v~Ύ:;ǜ~zS֠d{RuϸJx8x>H\pӯ^s~'*X#|l,g 3ktDs7NYsxH;i܏ZXrFMu{}7<=)9%qy6V^~f;?#\^Ri8 =zlsohXr6sp~kAږ0‘䐸XxN=D+Қ߲UH>3H:q~GO^8}cYi.8(^ϸ\׍49UqYD~= K+S?= 3sǥyľ)/HQylѥ|ULjCqD ׯ]=afGjNAg>TP:b@jW.s'jZ@\2(G=sۓR,ۘҳmZ֙nْ'8sjw>S 1[XT x{=Z{_N :}1ZQoOM9=ӱ@2~ɤN;dzR?;{d&{֗.=G?Jv~7/QH=J9㿵/J^9? ^.)AH)ss1z{RO=z"/-%-F˷Ѓ~Up:>1k91Hr3@WrPHRʺyLxԲm<HW{2ɦшLhᘞ.Op8ҬNg-te1: eb]Np3ja>~T݇4<{@ U \ Exi#;wE\?LWBH#(EPEP QŸEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE^*=tzWXK3D ~Ex-ŴrGi!YEzKpԑwJ.YSO@˳JN#㌃G7OC>dr]pGL:Z6ݱ ,ʼn{OOafciDIF϶Xg5=."?\ y#%ppkkIe̘yH!kL?Z%Flw8 FFdƥ33`{H-.Hq1?\vٞ8e9{unmfi`Pdb>AY5'PZ4 27q? K ˘G?(>iu&.c6N7sʓڝ隭ΚRCw‰!wcpUl=}F)kvuOKey?(?¸)K$X9\fheO:%+/1>J%pU8ةoq.OzH?P͂{TvRYC с ql$r=riY07n%X?yaBWsӯ~p=l[O1sVƝ-wi]f8bXAۓW_TNRFCw{`l/ d^3Sz'Q:5dlA Nւgt8?H93`s8K9gϽ.s߯OzRvG~OqJz@rG>ҀtM/#i?~3~4{qҏƀRiҏ=iNjZ8'lQsRq?ɥ{3ΏZ^@ ގ:QӏӚQGpi(=;tGKzzgRt_@zR8=i9{Rޝҁ OuI/nKoҐd4GAcsQJ:Q5ktٮEF~v2}Vfy$;IO뱲[&V`~ɨ$o]cGL4+anD 0HkXQ<Z3_4%aҐc8ҹtY{ȏڋsi֓yL}}Ҩ &y*FFyqVZfN"3b^W鞽}kT*'v~ U_ǎ!Gei9gObvK=cvĔ5YN0 _M:VvW7OO}8ҬZ:h $k:Rbs3<ʭC. VAnK5I(TP0Kz>83~?.0*4i=yG/zN~7c~T$?^#)@ӷ8g9=3)0xtQ1KOc'NޔQg?#}hڗ(^z֓Zw>қ(|'bPsv~+"":m!z(ˁZ(TB*h`QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEմ bH=^%ŻfUc5\G bL\G޹gvy  :p9<dX"$c`dgztqa} ;[JQ{ c?=?mbߧJ6(?wޔZ9뽞h)8a7NTk9ctZ-FYzr=sߒGUgW86NH7wp1b~l{Z,Aް'K12>@?oEF h֎>Hs0H*4_KQ={U֛f$pzevPlEAn3 0P@r@ޘP Q;w3֬?҂9sӰĞh7y\}~ COO23ۚ:ٕ*q80_+t'c<(3vm={+עXGe#I =oúnw:_~|/(8ڣqsg?3]gaɹ!q]8٩.-AJc+3xzd`f Mát8?֢Q< " s2lH Mz![$۠=}pqw}q}wjy2 |Mw?Y5V Jes0_<7OMmfݏN@ܽ:w,Y,/+HT0ܲpRfI۷=wzՙֵ(=k`nՎRYAaH =>N-~[c? P>S,q|r[|u,_91U/(O}/E(?4zjZN(JZ\)hJQLΔZ~9ɣj8qJ=(|J3}@FӮנ@?Z\^GSړ>?Tz@>RpJ:f3=t}9M8Ns@x }ҔI19Gh2UmKUؤ^u[V?;2"B1 04PJtJ[$h=)3Kx$FF dJ9YZYd] c\_Z^p̬c7&{w6xdj X%*00IBF0oP(X~P=*F\qNqzxY==y=:g}iÂӿڐ`O,@p>?~֏:{Q?p)G@J=c׏Ɨ@=Nb4R}9?G?4s~ h#x}pG}݌%AWG-r$t'ּ|Mp{J^mϟ4ǻ=sf=KQE0 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (""1OȌ0UEp'`9n~dQ(v[Cp=}} Bj6nО8#']mJ 'm!R9V@$z<d}:oW55{6J,$=GmiF[͉39 Y$-))̧zr߸"i%~l.">W.Bj^9[b`J9':̸e@4[Է'8M6gA3,튃}}9L9ڬeлZxjh֣zzE!CA*rIҸ?,@;Ć9'#=001BGQ=:R׀y9@=Oz88s [[VG ̌qz@3ֆ9wSȶFO>9O{=Nߑjn!qis\ R2;ܪcsH\֩ޮ&yv?T]_Ku08wl=y=4tk[p&F"+ö؍_P_+tAKDHoSe8Cڤ_W?!@恜Ik0zhicv=)8zzq&?JN0N3@Fx?8[A'4;\v?JQ@֗? 3נl_@ NTZS'\>ΌJQ۠Gt>Ԡa(=(?OZ@qc~}s~O$Qr;v֔ӟړ{hdj:&=GҎ=?*_Qǿz_tK@= Q4gҌP!I Q@ (ZJZQ׶}פ=i}QKsIRր@8*OS@Ê\3M\ڎ1g]@ Gϥ.y@ Ӿ?ҁNy.;4WL\BC}2?p l`z Ӓ_Aq<ۋp@ةA`o9m5+Id}roJ_tI]  t듸[+WCpEt/' P<ǎ6s)4+X '۵dqWox騥e%X {zwQu;:n}Ə7]xx?--̈́ܧАXFGFPS_lvH{sϷX=DWMPK1 66#V6f (^Nqrڢ_c!TqyI J&jFYnps]tK'n޾-p5̍`z?]+f$r]_OG~ڛC'GɒX@37n) ''Ӓz}MSӤ w I3s[vVn! cvIrASF=62cIjkѲ++rZt~T֠(cOZ G!搞TwԱy9A۾*d: ܼ,mI)!"BqёQ?@jMAnSm>/Eie TwVDṘQC)F k\A](Y'װ6> n_f?Y^[?W5yaqٳ JF? ҵX 11 sHy{cOV~՞?j6s~c--OGXbo;r;rO?54Q3L8ڗzAԽ{O!N9?joJ{X1O:Q'h'v鞿Ҁ:8#ۑ@'!I=;;tߧPsߏP8B88@ Qӥ(9sOc ^?ZocwRHNhҗ7z^{>8P=_ʀ:3~JOPSzpa ^~{=i{~ןʀ4Rh{ Rcۥ%/hzq#ԓGn9{g)Ls( R*L?/?ZQxP48?=}ggף>Ba9hoc'QJRq__zOe`c=N'ڪk ɣ^8asi40Hڮzg?)(, 'j8]yAס'5,':|~-9.sc]o_ȮS!clqg$@*#Qma,ea w̬ B5,m xп'8??v28~u)lJFAYz{>#{Uf001ciz:d)ps_IyL_)3ӟNڝh3ր~o8p1ntl~SO}PZ8Sq@ M`Z}!i?I?wӧ!=ɠ:ӈ?t>1tҀҏ)8Rh{*P;iz4cgۚ1 1lS?{~Fs'9oN}s@; wҎ9qp;~(?(?Z|ݳ P8ڕltx:g}?Oҗ)z6s+lRy]1\Ǐ &z@y]S!,=?j˷PXpBU.,ĩ*bFR-G|G\k61dj/>  CQN>XZ *t\y r{9O¨kQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE Du(}qE_i0pѳڷ$)m0c[K _ \ωAiI`!]na^OvQe Xn0ֲ--V ]z}\M QШ9`r+e")@pBIONIkI+1Rk}2zœgvJo# 1s?f'^աDb.99SY2OB8s9HҜO^O5Bn2=N1'񎃿4| ge36p&Iod~TY։O]m8.r]&M65PFMdz%k@1j2fԭ"s9)5;y_߅sq<F~u㞝_0^Dq{JvUeY;ˏ-hB2tU[dyJYEٞn?dM}8NiaFPepbeH`}8?5Ijm;Cסo|l\/Fes=;P"Nhܖp}wP&Iڸ#'lij1$I}G8֭Ldc g8`ןiOp= c<~]z2}Rc{z74zsǯOzh@ )?_?i3Г*o_ړ4c)sbCךO|ƝH~zP:#>'4P?:Ҕ|-@ΗZPoGo֠x>zv9}ƗOS}Ǝ{Q9{Gn}={H^*@KqiGn=:lPֹ+7\ PGQ|56#zgU|6 A#\lJo`z7jg{4۟sӟRn"i670֭vvpżH9+ǯDSpO@5%[ [6c!R鎼sZЛQ}]l/SǦOި+G"e<$g -Xa{s}׉;s;ORzH]YXG RlzA zsǯ*gUL`uY8c<ަK+Glsߎ`3N! H#$_隟:ƒ-̎}TƒqOh">o[⻫8+IM,r{`047b")=ҏ_ړaz d 9L{Vm¿Fg:oNяAހ8k T0*oI-mt2p|2yߺRʱ5mWA-孥!HKy|=:r}ԧ[@%Fs7!zҳl.m)$Lq}jޟ\ٯ Dm@}=ni'/߳uC[2*FAךŎMfggATѫh2y [V†]ѷ}1@1߇{Ufͮ6܌u.\3ɠcM)9I4d?׭;8q{R=Oƀ#A8>;~'^'_ ?zLuisQۡcn>?_($gޔ@$ڌ{ڀF==?K8=A_@ =z?ZNj^s@c/?P:_ҐvE;ȣ>Ҕ@??KǯJ@xOFG_ךv;sG֓۟RJ?ObEހ=i(42:JN)rGb ^?ZOJ? }h}ҏLJOn=>q}i:}Ͻ/\1s??֎s߯'l@{z0@:Ej~9e)&GB=G wh{XY2IxW={יo#E0硯Iv(Q~}p;v:|mX'vk1PW|?H+1W'=3\ hdAI wֱVNv T'/pxzdJ~1T99ϿZ?0s؞88ߧ^ב^}󓞹ޔZLczP{_Kӌy>Zio&3N=Q֤>Q@ p>z~_jB}IӺC@ ڀKE(=944϶Ҁ s:J?hs'};;ҎƀJGqO(^O({QX/ U.{t})<`9}iFO>c={?q@ ϽדERp}kx,?&2;zxO ^c?,Ի5$`wBkP >R\2@98-=#8qKj@x掔 !B s'0Il6?#+V܁ g8?_Ɛ(Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@,z5%3(-αƕ[zh}8FG9~(ge_}z=^[ekpTNsO~d{szesbI7(1.zϵk(xx5`xAslX##~uZzkGKҵ9ٗH#B\›7,n6'b7.e@t4|/#ӥZE(3:6/'6=8}w)9q4b4]a4Ir*R;u?ɮsqFҊG#=?EM>Wh~_kk9m$u811AcP əsc.$dT]A;]6dy )u_ƊBFW#ixq;cb?w ƹ}Qǧ10 D=<1H~(?P3א=ϧ@o9u}) 1?Vxnؠͻ,E#s?B_jon>ڀ8=CDBJF~^3Ջ}J1s ,@-\]Yܧ׌sYizP~*c"E;VGs$LwO_Kh_Tx_}GTS'wdAoTӵSPzd=u0%q"g\^ƥO4ԃ##p>'Qď~j>۟@ OKo_&}=z'q$g F1q(zhgQZ{/QGS?緵'lR,~]zI v=}q~K{z8נހh ?)hA1]:.q8(ޖP^ZJQӊ:zLJ^F>~_(ZO}9Њ_4~~t.r9|P?GG99z(?:S^!8G^{-44>hY{WT(*0FMy82̅P=^ ;Caʍ'뚟>ls'yx:WXkGg֢-wOwE#vgh~ kgn<3]g+:5 j>v?Lc;^d?:a ֠N@^9~փs>N}9% Fzڐ{)sI994lON'|3G1>θ?Ҏqy@}֚N:~րLw=;i#=)pA?jL;c֓ROPHI~=1q({~xu}iG4g3w?@pp=8RdϮ~?L}{Fr:? PN1 9_KZQi`u ҀO@?JP2Av>/oQ@K@ҁ@H; ZwOJ;uhq0 =ZqzIS̉"+,s&Ӂ2+y6rXЃ\ou$\x766BĀqHG֦n'tG+tMi䰉@jcs8+&3")C@/@մ$~W1u'VٯaJyM2oGTd3J1Q5qÖ<URH"0(0q[sdVEn8zUY2H /洼%2ufYw45ǔ AE $89=r@_l"Ǽ8z jpdžI^WSf߅P_c dY}kmiGuۊǿ;R?яQ:p}_Hbw?PG9R>ю}1;~A:cۨTRrϥ;P]C}wZퟛ4{Pdr# Eg]2xEoH栒 gсM9Epq]NW/1L :WH G5A^*豜Q?jܖ ؑdms\H" ǏnۧPjdWpQsˏjþMY~B${nqEE<)"\Ǒ@3$~>9”|9z})1p=snʀӷs&x?( Q1qj;sG_Nqӧnbs؜~>G?\;tץ{=(O|ԽO֓&Qq}ϷGK(ϧ*(/OLSxR玸Ͻ?ӽƓ>OJ?,/~j?qG㟥>E'_.s@u=y4wQǧHo@{tT'sF=A@ǷK=_ǜR:cۥ :GޗyL8<x"5Yjz3~] "c?4l5ӯt2ĩ&{?ƻXY]C&6Ǧ+fmKJGr L:zTkAuȥ4 ?ғI|1SO#>(99c OJoNԘ`ӏ#֤q߁ޓ_cc9iO&u'}q`(K؏Pz={c>@ܜ~t v?JQ}G^~h\d`yӞ}B)GG@?:⁁1HⓂy>KMJ=h(@K}<Z%gq&=?ƱJdK~%:϶*<) ݏ!QE0 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( cF9qO9)dP+4e `~+{i%dF$-L[t\JzyQNFnyxT#x)?d&-|5D&tdzsǾ+EdH'g$$QsA]LD%v]T@^;Hj Ϝ8z5ωai\bҖ3&f^"mI9"H\<2Q\`A wKp'+OM vx0~;~[\Gunqjù^pAڣ]v|˃>gqf,}˳m2yiP=(ODOxB5&v}re'!BAdt@BNX8?Ҁ/<>$vuQyq{߃zPJNss@۟O'U=HO}?QO_џ2=ƀRzנw*C98^:{HztJS#Ks"9'~/A<֎<? 8_Iy9Q~~z:2}@ }iy}i? uʀKu`Zw?܏ր8=h@4Q@ǡ4{~F:IKzZ\szVBOdTC[gDf[3sO3~v~`1*;Fn:fO42^?s>Ac.}p^% ?N\ƌ}k_ukN$T9 g~LDIxb;GWT㹮geO`F]]4]1[Ȑ{}i=S5DIn){Ҙ sN$sI֐ ZLsSR~ONhzg~qN9?CSA}.1׌{c8NLR;ҌaǷ^8ǯ?ozQǰ>?sӿoU')דzw9={H:uڗ^qɠ^=Ò;~(~vvOi8g4q_K?O] 91NFK:Lg}?J>}iq0tw ~qMOn?Ɣg= \g<{qKj@yg!OrJ\{0jF%5#;Y`㐤UMH1P%_ G>_^ #җ3#Hͭ[?*ۂ>?~U?o"~øy|眜Ab @O nsEˏ1aHFQL((((((((((((((((((((((((((((((((((('L.0I\TP Nw:|zָ={k,,!$Oפ `" "xkؐ #mV(zpG[O YeD`GEayѮJ.0g?jа,с OA^mqrOUDmDUb+G9RUdO,C?]"DQB}I$+2DIP"V*FALKV5㼖ن8-C4mTCe;^,0!`AZֱ5Z0i QO_n4 xcp M[DѦ y2)ʟ01pGc q\VlXߧ9%O hH20ʕlQDp_Ҕzy /?Hʹd֥QqMa? HXڹŽ㓙JNqڹMF%n)xmSH^E>ᙠT_4iXI qֹZ)Ya78WFV8&vŨT'Sǧ+HԮ4M@] ߉+ӊjC/25OĺwlJLxn}hђ89듏{i.6uL|%~Zs@䗶‚O{`*0`VdaJV`+x< o.[J!:bwE8Ejx= f[( /0Cu;:Rg'>s@ }?QGn}^ڔc=^@׷Rsրӽ=3$zրx?Px?KϸMOg@ 9#t'U)n:Go?ƀsJQHNsJA/n=)zq3y>c֓9#3^}@_ץIsy"?_s(@~t'OF3R ϯqրlj?4)~8(ŽIfY19Yq;po퓸wOS֠ {?9m"+ ]zz?[, bvC?!v>ճ~wetB؊ZECsJp:_ZFO4E$gf~N?/R:kaqϯ\-Mv.QGkVe=/JLc4??ޓ.DEZߌ?֓L)9Jz~ Rp=1 yzS{X8?HGFG杌~~&N]w=H|uHy')xA瞿; LcicJ1ӏNztgi r19? A9?8?&1ǧ0v?S9JLg~4~?OR}3ǿOƆۯ4`v}s@ }1.:{T}qo#~TARZ>ҋKoӊ\PK1q @((ҎO4c=SjP9?J1?WҌzZ~Rx8$RJ}f,HNqj̍&FU5&~̥U}A8'let3By3 J?گ*Xn9 UyqK+G+b @#c+n|w^039O 6[`fc6M/eēxZndUP=xT#8t?NM~~ GM,=J:g)/z?ϵ[*3?ʀQp۸Oґ󠃒L@3ׯ@:`)>?J`0;{zM;ߧ?Pcoסy~O֔{oU8s_~jN}*\g=o\4ϽuK4uzƐ}GKK` \qGj\s֦ ;KGKpzTۏҀ>ztK@9@uOz)uzy>OތuG(ur%ϕfmxJ@sXw%Qk" 4Wy_7aGO=O[4@I'h>PQ3 H9 z$8۶5WZmAztd}Wj~\~MEUQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQESJRdt"EyǍ<#tYX{j}M۹Ċ={\Ѵr(daC^]+=D' ܵ[kᐞ WA$'WMBNYZ\Gp~@psנ)ǭ$`xɥz'X׏Rp}??ZQ׌@oǵo@ 3/Szz{׷Z^sz@>`?\P:o^ʀuߊ?'^iG=hGzR);K~ғ^޴34q^oizuߵ/hE&x—ڀ ^((=sך)?w`(/׊MQ>+/rS=y݌p-f՝5,Kc׿Oִ3+:m r@kGVpݔB{d=Jy܁?޸_F/xU# M/EwT`w cϖ2rlck?tP"H>^J&;b#=iIO9$r}V!1<Ԙ8t۟=h׭&=Kӯ~yqGS&i{T1I@4 4c)09??M 4zc>A 8sӿ4I^O `7##c1K8h=ǵ&x''h\ =לv Sӻ=ӱ~ǭ(T\}O3="cz?i}OOրy?;gKsן@F11~4GKzuFOINsEr3k($Fۏ\P ͺI8\㱡"/]p9NZqMEugZ4m=)RE&~:eI?3nFKd``bInNux8nUv.A](ܸGeN; wQEP(((((((((((((((((((((((((((((((((((((((((((((((_Z- Gnf{wz3ɸHrN CkE-p2z稯bP{kּ^ LlOm ƭOǮk𞯇67R%WVx` Xɤdݐ3ɤO_ցe>m֦##.p1EeI(T9$ּJk0@ Ι»?Cp6s+ 5Ps-Dz)ǹ,U)He uScLCғca"c&pǠ?U&FVK zHuh J9z?:R:.S~J1@/~M=9ЏcN_J3(At?ҁۏs@ s~Ru=1}(:?OGQ=P1`?Pz__z Q}JLQ]= >?Sԇ'޿A~ߎh~KשП(?ҁ8> <Z/Sך8?@Gir}~G_ۿ@'^RPKsIZ3ߧ@ q4gތ-R~h+ʭ%]V\7^߯^v$O5W֣.Y}2nnfLgQgԁ8xđd9$F+ϼTs ?B5nxu}&Kr6)9z,|ߕyֶ:EB Ɓ2ʽ1jb>pȤ=8J^{h}Xp:p~z{gӎO_^!~4M&9 Oϟz\t?tEn=Ґ=HxךVJ{ILǾ):`@'N=1S'4v#CNh@h=*&&9gz~Ocԣ4NK߯z1J?:vJ{4ӆ:g\cՊ:aO hԑtoΕGAu){= }{}( w}(ϵƏ1{~gZ: ?h?z>ʫj>RM?yB5dsVoE(\y 0=t4 I&niCWD0az U Mr"jdESūN8lqI/}(Q~9xd]7$H߅q7|G(\"gʘz?Oa3*(((((((((((((((((((((((((((((((((((((((((((((((()a -3tK&G;({/J2Z_ˍ7B=^y^HQ[su9<^֥;Rd{RO(O($`I3ރ3ڎZ1Ͽn?vBx?$d?@ ?ьsh<ӧڀ?Ͻ/ǧH9OJ==$9{gH;<@tJ:?_/׎~;? v@ /^?Ͻ!=h8ƀ߃'~>:_K'}:ZQqtӰ?G4R 5>,)oUtb:dmSLW]"ڙ؁?T ø7kqCɱmIz}?~u`֎!}G[HG>Rӌ}(8(HGRzg?"ןoHyN␏i[ ڊS;RLR}i}i19ps?!8t89h~x>(T}udSw(sQ۟֓|RA9 zh?ozS<hgrhR^(S(QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQESWORDtSOj=IK#@3g\yalt#$b&cdw>АkxTq(ۑҀ@??hth3z@ Өڏ?{?TO'>r='O/^j3ڀ};qH1ڔO@ Ͽj_yN4?Z>^q#PqO^=mN?9 03ǿJ1?;~8?Uu5rWMެz”v?@+L-┱I UT GDѳ\ȪX;Gldh!ZHb@4=f Ԩ$c )`s@4-<ԧ#>@ ֏nP@\p}?Œ;v7P4q)}~Gן\:=8b1?H~={{_ϥ:qK߶}Q?}h?1It?Կ?.zr?:n~_~??@ ;u6 ]v}85Ssьu=ZdwGsv?OO>zoïI#ZN۩?̱'N<$ꧭYm]ǧxChp~:nPX>L NVqЎSP98tVo|=X)017$[w>Qe$}?w>&sިYYȊM$Y1_^ G*ޅ?+J9h ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( iUaB)PxtTz]ֹvFĩ}NI?F]*FbŠ*=*z%@0zz"[IP8!})cusv5qfn^4ֶm%Hثpz$?JV{gGsŵ䄠9Gv>t9IlSg+06q* oapw'Ikg9{ZAK|~4}??})sOo`st4GJ&?Ž>4?ל~9is4g_Q9{cGG^Ghr3s o@ zJ^v;?⁋s4?_ojH*njcyM~m.~c5( F+μN39+;P=ƣjqScV [!y#֟=_ `*jIfb?p#X\ >xMix4RA2:X=.y8ݹT'gP0xAfۻ9>tx 9X,1܃J%H~ץ8 CҀqО=@Ҁ8&N1ߨ\}h P}@ q8{?^;>I){_ڀL֏я@I>ԄF}{} =&;Ê@&}9hR?}=):c4Rz~PxLǠǷ?{~\?.szۑFq:zIO}2}Rۯo~;<{P9q#ށ}OF:qM v}h=3J=~jp~@oqh};Pxg?8rA>@s>g>ݻ9ӓG@;%T=}St:ͬ# k:GOϯj }o6qȭ.g۰ebunc*+GYmbuaK $` ZKaUYmv@I>aq*ǃR vwA/8e$MJa#e 45ixUXd4k`G[i/cYiN:?>yCÓ[OˈwZ 38cUkVip#cH6pF |\)9BI)!%z(TQL((((((((((((((((((((((((((((((((((((((((((((((((8`ywvv˃?jGd|(*\'A'ЇHД? I`OJw|{zeUs~9 Dn?AT)'&)^ټa݆pk5m.On"C̞#TQۏ_vgz>~: RppxBof v߷J?t$_F}GG◡ǿ 9?=?^߇4t~|~4?J;RswojRs}}z=px׌}hO^O\Q֔GC$@=JhG@A@GL?ϭN==iWnz(?ĚjA3ǧs(ƌ==1Ƿ('~#ҀA#.{?—>J@y?==> ?@ O=i~OAt?+HR#.K(ZJkRs:saw۽@\d+\BG~?4xg^=FZ~Ge$0??os|s}kcm|.&bwyOq(3f蝁ќjN0}?#04y9UדO<p8? =SL@O9$'hG :|@~?GOށPϵN@~z3ܒ;F8^tրqp>Q۞ހ d8L֎Q?Q=(=GҌssyGquJSך,~4?R>c<^ON:{QqGO0Z:Z3?)Ͽ_jSўJ:~tO@suǦkӡM0=3zՌv9OUfҴ/%yFQ pxuTj Ft?+sƌy3b|-Z_Doȑi ES((((((((((((((((((((((((((((((((((((((((((((((((()@Wb+m]9*!@2^^]Kk}P^$j:$2ET$K:l<|~U4{ON(,O§IQdr֢+lSpA V+Z1ۏҖزluFrı֭@c8lrsRAYpX:քWʊ{We~d@#pA}A3]#=*֯kfR }/2Yڢjq`r,#~ҵs yr{s'N{R{ן3<3ړK@ ߠi:uҎ~_PdtB/U({s@z9?J\gH?)GAȠ=(Fr1q4c=פ=3> O@rz4 q83\Tv=/~^|u#qqP??֔{w?@uV; q ޼`ZAXk5P?;H^R˖QOctLlA,9'j: ;˦۴)ϵROs.Ż|㯲֮1$*Kg<~y+gܻ*Ba/G,inkx0+H <WSߓ\)#1{uވ9n&~\O)sMN}qgGlu?z$w9E=O;(?O_ߓz~ c>c(ӎJ3rh8}@<s =8>J=>==I<(?FOϭ\{)$~>g#}=9uG|#^3u&3ϯL?短_\^=&p:\vϿFOќ~@ԓތ>ߕxTh\aq:d۩b/UHzƫۚ.4{w\p O,'ٔS@:sJ?Z`.}{Q>wʀ q3O}rGL j__U(}^䌞xZ;?J qҀGKӽ=hsN֤'=_jxA'};cGQOnN}:^r!qFA_hGE?.@>S@r:zZp99'9׏3ϮhFN3(=ё(ߝ\g =22m9?09kgEcOZ⬳ -YMfm9ASQY((c֥ xǯ5L-8Zk"Q#Z18>=(U8@cO`[Uko#*=2\(m;zU~?Zց^jGPRduA rzz`?94? t?Z4߷j(=O>ր0Lz ӎ18ǯw8{ux_o{>@8~?&翮?ϥGZ19vyqcꣾGo*)`Κ8mQ3xw=k.z=QyX׾?,Mp=JZ;v{R?ku\-TW{~$T:,,$I }(=Yw~2-™N?Zm}(̒F+NTrx8:Ҹ]VtP_]A"܆8=Ϧ3|k{hʗx:=}k9Y 3\k[ն;6]bOR ..l c~ZqEu MnHd;R-<;+t98Tfhe 9 }Ez3?ݬX$y,vQܟǧyfVVHa s'gw-#319&ͯx]h$+pL'{hó1cVOڭQʈҭsɦ!xFaJqCޮ\2b92IF9 >Z%)X0!'Ұ."iݺG299^{̈Cl;OFMk30+p.#'EWElyzױ4;x*@>k?\Z E$NH 0vaX~Z_߿q{4QP׮/M/&/_z:qhGր—qɤ9ۿO@ RyPps?1K׊Ol(<L9#893^Ks?Puo旀r" d;ch>O_ߧP翵)=?s}}>=O@ {\𦎃?.=@@uS 9=W$mY =+8N^nRfr~`Ɩ;(VPʃ99jsЎ܎ jPFwBo1Pڳ4oV W |2 )Ͽ")ǧ ս8Th>Y0m XsJ po^pY3 }\/?ƳO/|"OϥOq=ƷZۣ@[޼M+:1I ,}RY2MA=zg>Jt^9F["b_|BgōHf>VmR+RBӭGw?&@.5[G?/\<rs^D,j3:ҼFUdc(cOI/uN@RlsZӠ,e 971[u $ofSu GU>бkw!p~\xduJ27%Cۏ3N 傎$ dWHTc1:K-Ó *.aǕq4xOP=4 _ʹ Qk;Y@:] 9Gjm+$}|p<=}ް+n 2p:UGKQVeG'%z&P yn%ig呺IiZ  g"5" Ķ9Bvڳ%a 0%>s- ךZgj C% 0+ή$&Ks*׿Uܪj6Ÿ TnAxtgTygoכk]Q7H ǡ:싛hþ p+k#ef{H'me$~ X-z) ~ąQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@VMv1rG4P>18fOAQJyl@7 rp?R'éXFZt\[8?ZZ(Ɠ "p+az=3j衷a1Z)=f%U | yl7z-TkqK,|Jr}zdRzj3> goN]ϣކFWCÅl{vwQ^,Qq4X ?=)҂b=ϷGz?_Z;>Iyg/_Ɠ$F}@ ?ʀr1?玾}H1zUώ=iOR=B2y? Ss~Q=9?)V^3isӸ([/E?~jl%Tᐓцkƞ`0n vjchn|%#;!+T)=nzuav9M֨ht䃞jϚk`aӦqzO>e Urz}ο=e "C`i q@N{wZǚ\Y$Y'ik»?VAs3(E=;OYx&0?}tĆ?tۃҴm|1I1  I;] FGEzU}_"J~P#@n]6"QAUP9z#8UU)u Ss/'sNڣYn#~9]?^Qam1 r?Gδ##?"$}Oz^=?(: 1 qG=ӵP"gaS`I qO`Elq.9c.ǚ7\5}4u8ATy]7Q!f'rV-.-ՈC))d.ps.rl`⦃Ioc7 >_¡]ȒWmJ7-`gߠL5$Od-ɉ^Od- .+(?,)Ϲ|ER$dq}xK8L`P+WSC%{ku<&ߞjm@\GjZ\-!!>Lv{,ut$ߔeaqYytoPz'*cr۾]@w{T:ͤrYՕy5=@hOiWl b7?[!~Fpx+vf<7nw]Qt8&Y ަޯ{ 9wO·=zsU{yIӜ2pwYb2y't* P^mj,2>c۩?:"tcs?R_41?ҦSMKٷTqF:.lԪ5%ЊVS\]$=q=P;E'hop8-o-|n¬U#>Է7閖_epUG>ayRhatleΚ6y眩T^x#8TqZhPCnG \vyαGPԢCI ʀ<8?>.kdnIc*2s g%ymKn^_h"[x|zFUG;3s3MWʊE ёpjms<".3GVc&wZ\<_G_!ϭF䋀SP,tonclDzӯT^h c:}hJ͍Լ(Pc$Z۬ E-mo2xWfGF5VQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQETrƓQA}=IEyνf]JgkЯ2Pz~qꖁPAp>R{_dr}ვ8V5]\%c΃ 1+7U# _|T@둊x?;?A( ^;?H=?iz2&Fz9^Z_K=x簠d8Ͻ(tyzQ޿=x?֏l4}<L#IۦXRd~)x?F1O?~_Z\GQ?Ɠ'E)נ'Ks'^~9s+x'ߚZk1#95s߀:+;}JU㘌5.z 6ƪOGO?ZQ *8 {+mnOuǛ#+2p=UjZޥ3t2lfp[[r?Z̷dg<%mU,˻`G:է.tH)ÇSEQBG{.Dd8u6WXk[ `EU m? $pCݚ]r}:>&EWF?0k ۏNjӸ>c\]mmo֭4eHcsq[Y?ŸG1 (;W~XzS0(,ƪi*dsC H<+<IV8@i)s^jP$X<ӍS;Ҳ.cJ-[Ԁq\ӱBy ~1f$ש-xT~^x"?(q{3612]MxnH68uWỌI"Oa\7?d i$@\leU_}ă9nz&eUilJuh]Q\&os3P:G[$4D ==?¹[kFՖKH[UN9Ԛw VI}Q+y.Ipaz2dSQ6fLrfFy=f[owM'=:UM/ý9I@ OA&>zPNs4q?4('N\)9??9GQx{Sc?ɥ #9zۏq@O4 Ѧ#ۚi$iyܖ'פjSm4^%L?Z^3K I'$}7{ Ew9`g_w\|(FvApH1Ԓm*V<*A$J=ϭKCd{Rn' Yik$q0wH;p:}hvJWdώ*ߵ`gb#$ulaSaU$^[Ӵ&{dh'v?:V bu(8Ȕ It9,I5hze(dȸ*0O9x%hZAf @= \}^V8H&u )P2]$GD$UMCTC䠸F1+PY#}BKZa(ބvTw1kإLܼ5B,m%*O8XurbszO»le byJzݵy\b!v-cO`Df1P8il-MDINY}hi6@pJۊ׽R:|hAx&@8z:Q}N H^T˅% H.@j=xzIy$F3wxq4z|ilg]C=ڴh0J`;\YSjo ϶)ʷ%QYA Ӛ@Ɓۜs^U8ͫ0:ȋ^2;! 2γ4E/EopiSűxl OЙVMvL^Z*={Vh8qǵ)2<JbOLvD`I8.3mB#0v&N8랇.;ߧMm}3|հ89J.rT F >PtF3 r99s<_L^F y Ӧ|J?Zug16 ̧[:?gg NRv*1ל-krꓼ QEzXM?Sn"V?IMM#FFxc=Q9ne<7;TM:Y.1k+6$DĀV#WKƥhM'!3={U How &ӆ~VvNƊmAOf1,ēy&Pe2U1ΫI5fOg];d3þ Ӣx RְǸzW;ikځsK1Z&kkIfySJN@Ri'z.Dv8sEE4xT8֣l9?z.:zz8hA=~@;vzw|?e_w?`{{ԫ׏}O~އǩ}A?)sdgi:?8ќ"hNv;JI'4uFy&9vZmG/UdcB~eϬS!gO|Eb:n7'ps@^D[l6;ꮠ.UXNF_4K먝`b׏-%f c!GsQe4|z]3 ojf؊Ÿ@ykO&l ՒX~:u\tn#Mm C>5vVdk&np1]sJio!h# ޿?Zˆ(3Ӧna&Рlĸw_=tȄW c3]FHF+1$`u3\%8uiʝJmf%bgV-9l 6 =&MAw 'gF{}3Q[JE0@#ڼDo}H^dV#=sۯI#bha1L¶n^sO M rHc%AqVg.tt2/hUS ]/^$3, =~?uѷ K)"S랝k_Ko4wۓ Pd򧃻ԟaQۭͫ7~{FqZR?t”9t8d{֐r=x縣q>hל}}^Ծ?Ɛ~?Ҏ#ݿ;wیOz;glR@8jNP;q@ Ƿ>zPH#?ZL8$}?zPBzOӑ(=E5bHl-e ö $~<ʪ&>*rCq$\q b=GfkAʭIQO'L2M2{s?҄6/xjH-D3rj<4XQfWgW#zަ}xPƼ,_ Kc8Vo}7 moD-1v`O_~^뚼QKs rF{#_K&q0 'n`{KͲ^\,[rzU:5m7}GO5ҋu9rD*'Fgh32~#n`rovO91T-]TW"2qwF¥YK'V-Jn'xBAԐ2I'ܟqm"B7"A֮ <.Mw2\D0>cqX-rN:쑷v?~ mV|:͈P{;{k%7w>J緾ϳDYr>CEauO M`i$V;#2 rˆ7)4`KNʢ N >Zb{zqӚPN}?isI;}iG}zQ}{P АFi? ?CY &;mwZ#'f?A2@kݷg$t f\ gg UQL~?:,ԑ" v|[֐#.oX@y{U418Ԅg܌жSVO&N0;{cUlXOc[.;Q=,ʏc5ETfX6i[I^k3AAހUelldqW<sn VvRC)QB|Gi#&RI*k*kOP[xIv[~m$B4}@EGuxy灀p?>+E]_)=yoPi\G͜j7d,,L['fVO^?ʱA} kk4m9ߓ5q >0[E,![h OXUTR܄}Hl;L-FG@S&;]ȧ"@Me%ԬEb\$vjxiY0\UHo*8 62H =N+J 8̌'?46b 7 ڪE2~gc'ֻM?3@С}}tO KH }z[oKpT`u^)f&^wd93{V0EnKIG J`t)QV ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((ZHD6޼zM\exfOIrO^3a.$d3l!wQbKpBKcoTV,$@r7q_֥ꆴfsiѶG~GN[횈֙G3 NZ79;Mծt ^n<ע*H@rz~i'El*O_lZ.H3ʠl4ۂ@=qes݉/$"sOW\rXҕ,І`I(; u{jO,HvCpތ}͑+AqQxsC[[kG{\v?JVրĒIN}?I;~ZUc=?!1\y#UC@yT׬e9Ap&_΢N2O -ՖX>;+Ŭf(l8zIM:M[ =AW)pc3b2~Q(M4 JBǐp:E퍬ĸ*HO5nB%OZn{FB@ԚzwVwܓJ~l.UnQ9jޫJ"5(=x>~ 1ht•Wn8:VS_\b0dӏj۹ISQ[bFU̓`~?{æicvN1o\-NМ"Ud(]oTUu|d5xoEy#̝79U Ul۱G!|nd̻} q;^U{/TP[ϑ%`؅)((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((wvr}GxƧg>2Ѳ6|v G>ޟJ6*Dw9xEŶ#x⩐_P1;9<{ҟ||֢ǧ><kfI<=?WxcITGU^0F.sڍvWK=s#6YA$g?SJ/,MC|(;zdkf] rGrZwV;[ZUԴ4 +"{ OOde!;ViI\[W6b|qdZ<Ғ=9ulxB?XQұLJ!4qnc.@G^F72N2'v~$XLq!2fY1f$rIV6mN jf9o-KyA?Zi$+mo% C,:WyqtrJr=?oIm}t ~I^']#iQ לPs9g@>~yc`ظ*П.>I~d>î}_#zƟ$2`uS@;T!2ܬ;x+E:LR0(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((IʻdP}iP-Qȸ0G*r3p:l!TI'k w{=G -rxJVwud|.@RGy?,P=3/5kvv`3$=bNHI%WgFvnY䟭2 ]VUI> 0tJOWֱe#O1= [!EHgSfjάa0ЯNd~Y]G] XٻMqƠӰɹZ3 ^=N($<DQ8']YT*cc!j^?1A b8i6l3`v< |:ZyeʎTs} ş i.'|g}ꗊ| wh\v:L~#So|Z,92X's=r-׼0 YA 0A+lfh# a:R'8N$ 82yg@ܨgpF?ȯ<4"C Hֵo4;"?*I9T={ dm8ŽcRy12<(W9WFD9 Lbk2;A49J|H<9GVV.rz[&7;rk.ݮ%zw?R%iw /9 h, *w zi ؀t$D:0@3M߉n+~x= zGqsA 9a ׃ʻ%e$q^I?Hr!r4:(Ioa4$Bp ݵC[2a1oO\ߌg9Q˿^#8<#o-ey8`YO9<^T"`:TGmx=%!?(9wr+7WV6K+(aZsaivCOo9 FcW='bzEĖ\9NAzht—Rn{ҕPUV~yq:칇AM>q=$y |y)?֘ƕ+Rfn\)'CGCȭ\ |ǧ\tFIW+:VNG;//:U"lqt{bpq`ko(k#b62Q=WEYSqwqꋌHU{0{~躌d+`2ֶR@F?OMzZbGoƝXQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEP^YG5k v+nC{O  ?9lc*ܢ2?v6vy>ZhZz1Y=短iQ@gSjq6Hg'd>3bֵ(e lc=96-á#wJ(EUQT` uPEm,`;II\M߉Mba-87=c}}{V}&\Z2͖@lRX;r(R8*mGC) cr}=^5ԣ&IJ~@Gsҭ\Q;sJt;gi晘N$ \rO>_[Y VU+6҇F?בZdR6bZ"WĞ6cEc޶2s{ZN vqW 57ħZH8ܜjhc.=6v>M ۚA\XIa9-ilϧNsp3=oλ['Oٶ\r7c8rZIeyQ-WGq?O/۴~LD>:Hk?;2wl*ǰR+F3*ɞ=TLy$IbY#]Arґj"Q17Aqo<`|*KTc]V z&~ldr??M#}ꢵfrz"7^xp}(۞_VH=iN)j B((((((((((((((((((((((((((((((((((((((((((((((((ٗSc5%QL(((((((((((((((((((((((((((((((C]]w\C> V#9ק?]x4.&`Bq Ysuvy\dϯf{+:Ihm'$s?ά3}Ͼ?)8TL%;#vju$Z<}3a21ғ*#+x``b^Oar.%n lFV#ط_ݍ:4{ 'of+>7K4qE{ۘ $sx 5`RǨ*W`yZ2Mtzgټub!\#ke$. O_b겾e^NwG& uuU>鄂wpXmgok  ֦(G* 4{m_iMIܧ݈j4"wEf\zF?ޠ,Kw?֑S)̟U$wVV$d<#\{9ZWv0 䜱}V8` dew{[]O֐Tm%z y;:2nM]Cܚe@*`<){wӹG5xCim~YB31D,]kF킉*V?#5wW-3s?ϰsz_ZMls=XztVb=5SߟƧ?EsSG~ޝYEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPExtlo)cE 1׷J¢i0'8͏[=ɧ"FtE>ׯը?}*2zԔ 9-{ z~5SöZ}]$ݟOLvFrEdiIlQRMme&Ԛ(URgVPf\j`3z<ޤVVWM Y\ZkzSsMcʀddeaa ǭq{xk +##1uzkK&ܖprS #-.gyXRq, 2WVv6kN?.ycWKRVx*շzBq܎Lf`sg\ވi,Դق~pIk>Be\rcP#TGsJz}iU=o,qU@OMHUHӀ'JRR((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((();Pvd5"؍gt<7w}en9ƺ&>;l/@YN<?\ܙ+$gըSB20s*G"E xF G]yr,@Clxf—n(,:ҭJ3P9Slc6;P͎Wy8>բFr394yE=VF-q8+Lێq2}"„61폭r? S[O.6TlRin@6޳r6nKFkSL-Tg5;V%M75;m+x#yЫq{T[X"}b:) ner?޶&9$F)` ;;e&ˋ1 Tʌ_3:+~Rs˒y'W3h?z4Z!_Q9)8hC^NX\6xwEBs] rW8Hvth8ӺsHRfbx:.?J*_H sչ,/xҼD\ó >Zpbmdn?Ң./qw▤Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@ #՟i[Nzf{SrU4KG/IHoAh+9E ct10`0A,0~؊ uqMi;R÷FT G~j:*9Up,]C(#=:\gmCӡ9?QVX"Y`%#{U^Dw~l{p3- j49?\*h jmׅH%e_lOMihWKhw[4ЮKVo-ky+" cmy\9l%>9?!Yu:zZS5nH"浨jP} 6 }s94EY=+Xw˽H_@ RU#?SȵTsK׏]. 2 \ Ic:Ȓ捍l=q$eD^YZ*%vo-ZIimJ++|`=*Msz",+(<CZ n\_a²<fgc}R8Kk6e#)I9? &-򳰌;Z5(튆m2꼑d?V֣|zΚbnR1ŹϧO֥V#~QCۏV0ٗR TQ?R͝(PQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQER`@ 4;UK6QR=O{'5r8 KL<+iWemG.e:wRNG\K9kL2gqc[^0V7L:ں#79# )riSu>IL2yn}z~&h[6"[fc@}OOWcso^n?ZYht(H$"M?RKy9QUBgzuZ٧eO:}5F=ct -F 1PϯV14%O,&jA(B8*U\ztRԶZ)QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQ>ۤ]dXFNqYK67Vqr<}1gtk5ōִ?܌W88#/MFvYћ;й0~VRdWhL1GZǰ;5\8<*@ᚹڐS'ϊ([r/6nOg=:w//F{ukNu01>9Ѧ9R;MՀq:((J)h(((((((((((((((((((((((((((((((((((((((((((((((((((((((((F= <J ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (15 hH apO:F+ thB!%SqCC3JOIoN[+p@ RJx}%SR@ E-QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE`!rɐŁ;dqZx oR$頄Nѥ© YRTI&-cNYX+t%FVd %CC_u\Ǚ~,|b\ˍ)h+L1Kb Kt6& M91WH>sמ;}aF~ר?h yXaA'ѿ|V@>QU|H[c]Ý^d\C 1oSMD,}mZ>-A-es.Lv`K]?dIȭn31Xjwֻ:X㧃n|̽?,t|;?k`1OZ=9Fju^/P_y8̛J{221he:U/yvҿu銰6VA#*GUUcUSzD)4BcԞWO35u#5_iZ HSx+C{_5Hd#Yכ^CRjWEjѾ;+ɪ"hȏ<O6)#tTF=UE:ZzSє&-Ud*Ž"}Y2 Gtx?O#?Es{+JwMr2ٖ4S ȧy:2[!@ogp2pFF-Y@khYn5v2V_ҷ.,E]B{]ST;\¼_.Ěi!S" #ԧ:C ?{*sÓGw{~yf~9-Ys7&h w<+]K|5\iK1xq62'#S|"2ӧ"|Uؽ֫]HaAeKw3nUawjus#5D٭H=Ktpg=Oƴ Jp' ҍu{)21Bl RE;=D=TeȾRdf^QoV!|R g~eGi_vDNhK6EiC}eVEbA&9+GNr w4gnΩJ|U9̩]νZ5=FOxDF!|; G XRSmV ^pG3N3N |E&*(E@5'qS/ K{ OڀL"tVd#˵yoh(g6+ fۇdle( <džQVc%Qvq*9H{/T7뎮$| @!Q~;Z/xxdE{#:g[ZE+Z(Q4Fѽ7XGtϗY\ٵzwҗϪ[A%{pY#|=ƣu2VQ:>P*2d΂i4TMCa~&Jv?LL< -DG|K9u?헴f7#:, -.o#̕>WT6(3}ͩ]\e=zT\^j =΋< ܗW<{y<5 q?ҫGK+ޙ \׻uW(|srZץ^Tޯ40 z/9uU2nFyX/{.b ը=X.=EqݵߩF'Hk4:j2uxJܪQVF7VQkcz9c}0~䬓z.EhKie8π,0X7_+y#>RHw؟GuCTW'8Oxb bT7>4Q|~C\G-pX ~yp*#.%$$:^w8̉eVpk5[u[t/X$p:z/XI eH_<{|gx/m ν柏kLo7Ar@P>c^cw-ߵZNEגEw-7yN~x]L;={nkzt(k[O; Ҟ07ܫΩunc;߫_˹5[~Z9>2OT3z̴wIW1`s\"źmFp2؆v:s«8)M:q:H>^֛l;f]*زm~?b~yE*S@= a^3s݅,?.M[bR􁟴m"&Aj5 BR%>ԤZED~,>!>-FE_ Ā!!&$;wfwR+1̹w393+ WAYZM4TImZL$T@6̼7e x!_Jw{PGzz\J? CL[=4!&tٟ:b4{=l^ Ƹ\5-o \5)O3Ntˍr\K N! bQ:s40&SDgHc"hASSN\=~###YgޟEJ6–׆%^ؗȐ'%7C/V . !O|P<Yy^ 9qɵ@=Xm໰6ٖ-d ^ emY|=c%ڰn9uks-xD.++6o-QXD;8"%4Sr/ 5$_ty0 &ft.1$4_ic6yH-AyIXgu|JŶB^_oݢT/*-zQ[*Z \Q;|F~8ji8{AR m1V6'B:nl_hH||",xZH;RŻ/IKVY/.'W!t q/'@JG4d8-.БrbL[I`k_6pkSڽ~!"2#gbGt_+싳^6}R*8'T'{SLD?[(79{Y"}˳O"'b$cq#z:U36QϥN 8SWEۗ^B{ՌvH#=f KiГ#=;8+f#VVla᷇1(J5<ɹ\I-,qH5¶",)"ܹ֠|}lVORԓGL lƯA݁f `zT>kE?@~`e#܌hU.A4"cC:0?ZpЩ&Al,"*)āexTlRlLY3ZD[p¹̤;I*)enwic_-~;3ˮ*`?\U!vF򽍋]/; v<&a.,p%s toڼ}}F _^z~XN^kfWV|f@֍ i!Bzw{IyWT%R樠kRQ3)A/K&hRܧzN8&.֋pO`,xUl/_c91v]IOwzX'9ւnrmFFSʶZ`0[RƶZ ⧼4SEm!kǛ&h#4b(3   VClip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery0  VISIO Visio.Drawing.50VISIO 5 Drawing0 VISIO Visio.Drawing.50VISIO 5 Drawing0' VISIO Visio.Drawing.50VISIO 5 Drawing01ºClip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery02úClip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery06ĺ VISIO Visio.Drawing.50VISIO 5 Drawing0:ź VISIO Visio.Drawing.50VISIO 5 Drawing0;ƺClip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery0LǺ VISIO Visio.Drawing.50VISIO 5 Drawing0QȺ VISIO Visio.Drawing.50VISIO 5 Drawing0 Uɺ VISIO Visio.Drawing.50VISIO 5 Drawing00hʺ VISIO Visio.Drawing.50VISIO 5 Drawing01k˺ VISIO Visio.Drawing.50VISIO 5 Drawing0̺Clip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery0 κ VISIO Visio.Drawing.50VISIO 5 Drawing0 Ϻ VISIO Visio.Drawing.50VISIO 5 Drawing0WClip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery0ZкClip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery0\ѺClip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery0Һ VISIO Visio.Drawing.50VISIO 5 Drawing/ 00DTimes New Roman00v 00( 0DSymbolew Roman00v 00( 0 DArialew Roman00v 00( 0"0DCourier Newman00v 00( 01f(.2  @n?" dd@  @@`` H@ `Wi4 )                8    9321)40.,4*1-( '&7GF& H$ I#" !L! OPQ TSRUWV Z] `   c dhA-DEMKJXY^_bi:;<=>?@ e fg+B[\a(b$=fjh(1.G'b$@c JG'G'"${{snхWe;NR$JLǫx?EYRR$=VYjL#=/}> k2$1@ kprB` sx"$G^Iۜ@Dϳ.2$bWOr`)1u2 0"$Iёh*܆Z3Seb2$̂~)+-^Ǖ2$V/=&D 0<͘"$S''Ƶ;lfy n$$2$c^XЎg"$iZh\f֝ "$c#U1B hBk2$({~s_af2$ؘ6QD7Ahcf<R$.CZ%a!%f*CC2$rɐŁ; 2r$%3àRHM;"i;"$z 6A case study  The Copy Routine    First Version Second VersionxWe sometimes want to read from paper tape reader. We could put a parameter in the call, but we have hundreds of users already! No big deal, this is just an exception& we can make it work.Second Version Design  Third (Patch) Version Time for an emergency release.!!!Fourth Version $Example of a Good Design %& is it?FILE is an abstraction It represents some kind of byte stream It has many variations It has methods Read, Write, getchar, putchar, etc The methods are *dynamically* boundTP>PPGP>G,q*&Rephrased in OO 3Dependency Management ReviewWhy do programs tend to rot over time? What is dependency management? What are four qualities of good designs? Are OO programs always simpler than non-OO versions? Why would anyone want to use a paradigm that may result in more complex designs? Why are compile and link time important? 4Class Design PrinciplesOCP: The Open/Closed Principle LSP: The Liskov Substitution Principle DIP: The Dependency Inversion Principle ISP: The Interface Segregation Principle'i5 Open/Closed PrincipleA principle which states that we should add new functionality by adding new code, not by editing old code. Defines a lot of the value of OO programming Abstraction is the key7!Abstraction is Key"Client/Server relationships are  open Changes to servers cause changes to clients Abstract servers  close clients to changes in implementation.<"The Shape ExampleAProcedural (not closed) implementation OO (closed) implementation>#Procedural (open) version ?$What is wrong with the code?1DrawAllShapes is not closed. Switch/case tend to recur in diverse places. If we add a shape, we add to the switch/case All switch/case statements must be found and editd. Switch/Case statements are seldom this tidy When we add to the enum, we must rebuild everything The software is both rigid and brittled' S # T'6 @D@%A Closed Implementation A&Strategic ClosureClosure Against What? Closure is strategic. You have to choose which changes you ll isolate yourself against. What if we have to draw all circles first? Now DrawAllShapes must be edited (or we have to hack something) Opened Where? Somewhere, someone has to instantiate the individual shapes. It s best if we can keep the dependencies confinedTqqF(Picking Targets~Technicians and domain users list Ways that the system is expected to change Ways that the system has already changed Isolate these to kinds of changes, not specific changes schema changes sensor hardware changes data store technology Keep this list handy throughout design Don t make the changes, just allow for them.#ZTZ8Z=ZTZ#T=- I'Open/Closed ReviewWhat does the open/closed principle say? What does that mean practically? How can it be achieved? What is strategic closure? How can this be achieved in design? What if you can t close completely?&}H}HG)Liskov Substitution PrinciplezAll derived classes must be substitutable for their base classes This principle guides us in the creation of abstractions.H*Square/Rectangle M+*Substitution& denied!xIt is reasonable for users of a rectangle to expect that height and width may change independently. These expectations are preconditions and postconditions Bertrand Meyer calls it  Design by Contract Post condition contract for rectangle is width = new Width height = old height Square violates Rectangle s contractNV&%V&% E%Liskov Substitution Principle (cont.) >A client of rectangle expects height and width to be changed independently void setAspectRatio( Rectange* r, double ratio ); By deriving Square from Rectangle, we are allowing someone to set the aspect ratio of a Square ! We can still make it work if ( typeid(r) == typeid(Rectangle) ) Violates Open/Closed Principle !TKZ2Z{PGPK2{GPO /F%Liskov Substitution Principle (cont.) Design by Contract Bertrand Meyer Preconditions, postconditions, invariants Rectangle's postconditions for setWidth() width = newWidth length = oldLength Square can require no more of clients, nor promise any less Doesn't maintain invariant of length Violates the contract9P*P$P<P%PF9*$<; b1   xO,'LSP Guides the Creation of AbstractionsAbstractions do not stand alone Abstractions don t always conform to real world expectations Violating LSP is tantamount to violating the OCP$E ?S- LSP ReviewYWhat does the LSP state? What is the risk if LSP is violated? What is Design by Contract?T.Dependency Inversion Principle V/DIP Implications Avoid deriving from concrete classes Avoid associating to concrete classes Avoid aggregating concrete classes Avoid dependencies on concrete componentsGX0Interface Segregation PrincipleSometimes class methods have various groupings. These classes are used for different purposes. Not all users rely upon all methods. This lack of cohesion can cause serious dependency problems These problems can be refactored away. j9FInterface Pollution by  collection  l:A Segregated Example >ATM UI Example ?A Segregated ATM UI Example CLogger Example o; ISP ReviewWhat is the ISP? What does it affect? How do these problems arise? Does it really provide a real solution or just a restructuring of the problem? When is it worth the effort?p<%Four Class Design Principles - ReviewOCP Extend function without editing code LSP Child instances substitute cleanly for base DIP Depend on abstractions instead of details ISP Split interfaces to manage dependencies/" #!)"8'9(=)B*C+D,E-J.K/N0P1Z2m5n6r7s8t9u:z?{@|A}B~CDEFGIOQRSTUVWXY^_`ab  ` ̙33` ` ff3333f` 333MMM` f` f` 3>?" dd@,|?" dd@  "  \ n?" dd@   @@``PR      ` p>> XP( ml   6t 0  t T Click to edit Master title style! !  0t  t RClick to edit Master text styles Second level Third level Fourth level Fifth level!     SN  0 t   t X*http://www.objectmentor.com 1-800-338-6716 4,     0t 0w t p2Advanced Principles I - *h  C @A(C:\temp\omaLogo.gifH0<  <t ? ~Copyright 1998-1999 by Object Mentor, Inc All Rights Reserved6, 2  5    H|t?` F February, 99 (2  H  0޽h ? ̙33 ObjectMentor0 B:` H(  H H Bx ?P  x \*    H B0x ?  x ^*( p  H 0 ?96  x(  H Bx ?6 @ x RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S  H HH~ ?P3  x \*     H H~ ? 3 ~ , Design Principles - *( H H 0޽h‰ ? ̙33@ (    B0 ?P  p F* 2   B ?   H*(2   H`= ?P3   F* 2   H ? 3  H*(2 H  0޽h‰ ? ̙33 NF0(    C rAZC:\WINDOWS\DESKTOP\Training\WashedOMLogo.gif0r  S sxPp x   HLtx?  ~Copyright 1998-1999 by Object Mentor, Inc All Rights Reserved Portions of this material are Copyright 1998, by Addison Wesley Longman,Inc. and have been reproduced here with permission. V,(2(2  5   6H  0޽h ? ̙33  LD` (  l  C B0   l  C B0      HlE?r D(2 H  0޽h ? ̙33 Q P( x l  C ;0    l  C ;  H  0޽h ? ̙33 R @ ( x  l   C 40    l   C 5   H   0޽h ? ̙33 S 0$&( x $l $ C ,0    l $ C ,p    $ B%?  ZA system with poor dependency structure will typically exhibit these four negative traits:[(2[H $ 0޽h ? ̙33 T jb 8(  8l 8 C  "0    l 8 C "`p    8 H$?$  b(Rigidity is the inability to be changed)(2)H 8 0޽h ? ̙33w U ' L( p Ll L C  0     L B|? `@  E The System (2  L nA?White marble0  L jA?GraniteB  L@  `D?p   L Ht?  OOfficially Rigid Area(2B L  fD?P  L H ?ip P YWhere the change should be made (2 |B L TD?p `  L H?` \ 0G  [!Where the change must be made now"(2" L HH? @ o)Are we containing risk, or spreading rot?**(2)H L 0޽h ? ̙33 V }<( h <l < C d0    l < C      < HT?V* l2Software changes seem to exhibit non-local effects3(23` < c $A ??   < T$))?  Tim Ottinger: how I explain non-local effects: If I drop a bowling ball on my foot and break my toe, that s a local effect. If I drop a bowling ball on my foot and break my skull, that s a non-local effect.T 2 H < 0޽h ? ̙33  W S K  ` (   `l ` C ,ܸ0     ` H`ݸ?$~  ]#Defects v. Cumulative Modifications$(2$> ` HX?n  Systems tend to become increasingly fragile over time. Intentional, planned partial rewrites may be necessary to sustain growth and maintenance. 2X8    ` @ B  ` TDԔ? B  ` TDԔ?    ` H ?p T D  AChanges(2f   ` N  ?  "Probability of introducing a bug.(28(2#fB ` ZD31?p p ` H ?  =1.0(2 3 `  p0e0e    BpCDELF$ A@  jJ 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||xP(8ppH00PP(p@      0p H ` 0޽h ? ̙33 8 kc+3@(  @l @ C ̸0    l @ C ͸ 0   8  P  '@ `x @ H?x @ H?Px @ H3?  x  @ H33? ` 0 P x  @ H33? ` P x  @ H33?` @P x  @ H33?0` P x  @ H?pP` x @ H3?@ x @ H?p~B @B ND?~B @ ND?@~B @B ND?@~B @ ND?~B @ ND?0p~B @B ND?` ` ~B @ ND?`  ~B @ ND? p ~B @B ND? ~B @ ND?@  x @ H33? P p x @ H? p x @ H33? `p x @ H?P p ~B !@B ND? p ` ` ~B "@ ND? p ` ~B #@ ND?p P` ~B $@ ND?p ` vB (@ ND?p@ vB )@ ND?  vB *@ ND?P  vB +@@ ND?pP@ vB ,@@ ND?p` S @ Zи))?7  lInstructor s note: What modules are typically reusable? - some reuse at the bottom, very little from the middle, none at the top In an OO Design, we can design to reuse at all levels0 2vB -@@ ND?P @ vB .@ ND?P @p vB /@@ ND?0 p vB 0@@ ND?p`@ vB 1@@ ND?p`` H @ 0޽h ? ̙33 _ <!( ? < < C Ƹ0     The Trailerl < C ȸ0     < C AC:\My Documents\Business\Object Mentor\Training\PUML r3\CarTrailer-attched-smaller.jpglH < 0޽h ? ̙33_ 9 D( $ Dl D C 0    l D C n    D H? b(Viscosity is resistance to fluid motion.)(2) D T))?    xInstructor s note: (Tim s story) story: Talk about the barrel of tar. In case I didn t tell you, we had our school roof re-tarred. Barrels of the stuff sat around smelling bad. If you set a brick on the tar, it would slowly sink in over the course of the day. Later on, it would eventually sink to the bottom, but it took a very long time. If you beat it with a brick, it breaks the brick. Viscosity means  resistance to fluid motion . Interesting, that the harder you try to force a quick change, the more a viscous medium will resist it. Changes can only happen slowly. t! 2  2 H D 0޽h ? ̙33H : "3(@p( $@ (l ( C 40      ( B茸?P aInterdependencies are managed, with firewalls separating aspects that need to vary independently.b(2b (  WG&Rd1[ ?Fewer TrailersArial Black @ 08 P ` (0 l  ( <?P @l ( <f?l ( <?l ( <?l ( <? l ( <?p `l ( <?0  l ( <?l ( <f?l ( <?P@l ( <?l ( <?0  l ( <? l ( <? l ( <?`Pl ( <?`pP (   Wd?|f 0'<P]Slow the rotTimes New Roman @3 ( Hؑ ?pq G More Flexible(2f|B  ( TDf? !( H ?@< `$Less fragile, the bugs are boxed in %8<2%f #( H ?0   KEasier to reuse 8<2f $( H ?0    [Easier to make the right change 8<2 <8  p  3(p  n ( s *A ??     ( Z APS?@p n )( s *A W??   Wn .( s *A Z??   Z /( Z APS? p@ n 1( s *A \??p l  \H ( 0޽h ? ̙33 ? umd(    dl d C ls@    l d C (t    T d H\u?,1Q It s been blamed on stupidity, lack of discipline, and phases of the moon, but...R(2R d Zz))?c<  Instructor's note: Tell a development story like this: Before showing the slide Your boss tells you he needs a program to copy from a paper tape, and write output to a printer You say, no problem, that will take 3 weeks (1 for work, 2 more to catch up on other stuff) Day 1 1 hours of analysis Called to an unplanned meeting for the day Day 2 All day budget planning meeting Day 3 Come in early to get some real work done Write a little code Someone else comes in early and needs help solving a legacy code problem on some of your old stuff Day 4 Lock your door Finish the code, compile it, get it to run! Day 5 Spend the day with the SCM system putting your work away 47 2` ?      ;  9   2%NH d 0޽h ? ̙33  nf h(   hl h C V0     h HW?= $ PAll designs start well(2 h H\?  \The program is an overnight success! How could it be more simple, elegant, and maintainable?](2] h TA  ?? h   }  h Bp`?   Uvoid copy(void) { int ch; while( (ch=ReadKeyboard()) != EOF) WritePrinter(ch); }VVb    O  h Z l))?%Q  fInstructor s note: What is reusable in this design?24(2"H h 0޽h ? ̙33  tll( x ll l C M0    l l C M   l HN?,b l2Oh, no! Nobody said the requirements might change!3(23H l 0޽h ? ̙33I  pp(  pl p C 90     p TA ??`@ f E p B;?o   bool GtapeReader; // remember to clear void copy(void) { int ch = 0; while( ch != EOF) { if ( GtapeReader ) ch = ReadPaperTape(); else ch = ReadKeyboard(); WritePrinter(ch) } }+     H p 0޽h ? ̙335   `u( ejPׅw l  C D0    l  C @     H4?, _%Uh, oh. There was a bug in version 2!&(2&u  B|?  bool GtapeReader; void copy(void) { int ch; do { if ( GtapeReader ) ch = ReadPaperTape(); else ch = ReadKeyboard(); if ( ch == EOF ) break; WritePrinter(ch) } while( ch != EOF) }       TP))?P Y   dInstructor s note: What s the bug? At the bottom of each page, there is some odd character being printed. r 2X 2FH  0޽h ? ̙33> ! P~(  l  C 0      H$?y\ ` e+How unexpected! Requirements changed again!,(2,  B? 7 bool GtapeReader; bool GtapePunch; void copy(void) { int ch; do { if ( GtapeReader ) ch = ReadPaperTape(); else ch = ReadKeyboard(); if ( ch == EOF ) break; if ( GtapePunch ) Write PaperPunch(ch); else WritePrinter(ch) } while( ch != EOF) }Z          B? X  n,It seems that sometimes we need to write to a paper tape punch. We ve had this problem before, and just added a flag. Looks like it should work again.& 2H  0޽h ? ̙33 C |t@ (  l  C  0      HT?@  QFirst and only version.(2G  B?p@  Cvoid Copy() { int c; while( (c=getchar()) != EOF) putchar(c); }DD>  @  B?0  But wait! Aren t we supposed to be learning OO design? This isn t OO is it?L 2LH  0޽h ? ̙33 B d\0(   l  C ײ0    l  C <زP     Hpٲ? f,It is a small program based on abstractions!-(2-  Hݲ? ; v.FILE is a class, just implemented differently.,/(2.H  0޽h ? ̙33 "  8(  l  C h0      TA ??8P    BT?P0 `i ESPublic interface Reader { public char Read(); } public interface Writer { public Write(char); } public class Copy { Copy(Reader r, Writer w) { itsReader = r; itsWriter = w; } public void copy() { int c; while( (c==itsReader.read()) != EOF ) itsWriter.write(c); } private Reader itsReader; private Writer itsWriter; } *TZS  "    85  Zϲ))?0d  NInstructor s note: What s reusable now?0( 2H  0޽h ? ̙33< @ |(  l  C 0    l  C @    Zt))?D?   :Instructor s note: 1) requirements changes 2) 3) No, more complex usually 4) Builds fire walls, protection, insulation 0x 2v  Z))?   Instructor s note: 1) requirements change 2)Depend on abstractions, not implementations Build firewalls and insulation 3) OO programs are more complex usually 4) Builds fire walls, protection, insulation 0 2H  0޽h ? ̙33  A  M(  l  C XTx0   x ~  C Zxp  x  \`  c $A ??p  `  c $A ?? p" K  HL\x ?*T From: The Principles, Patterns, and Practices of Agile Software Development Robert C. Martin, Prentice Hall, 2002. (September)8 2H3H  0޽h ? ̙33H ' ( h  l  C 0    l  C   h  Hԣ?1  Modules should be open for extension, but closed for modification -Bertrand Meyer.T(2DH  0޽h ? ̙33- ( m( GOND̙ l  C 0    l  C Ĕ`     H ?,  -Abstraction is the most important word in OOD\.(2   TA ??P {    TA ?? ; H  0޽h ? ̙332  )   r ( x l  C  0    l  C ܇`   `  c $A ??0 0; d  <? Pp p2  H?    Zfv @?` p p  H? d   <?P @p   Zvd @?  2    f?fv @?00p2   H? p2   H? @  2   f?fv @? 2  B ?   D(2 d  <?  0 p  H? pR  Hf?` @P p  Hf?@pp  H?  pB  Hf? @@ p  H? P H  0޽h ? ̙33a ,   ( z+ l  C 4    Z  Z 5 A ?m 9 Nenum ShapeType {circle, square}; struct Shape {enum ShapeType itsType;};(ON6   H(< ?   Gqstruct Circle { enum ShapeType itsType; double itsRadius; Point itsCenter; }; void DrawCircle(struct Circle*)(rql       HI ?p m T Fpstruct Square { enum ShapeType itsType; double itsSide; Point itsTopLeft; }; void DrawSquare(struct Square*)(qpl     i  HX ?> \/ a#include #include #include typedef struct Shape* ShapePtr; void DrawAllShapes(ShapePtr list[], int n) { int i; for( i=0; i< n, i++ ) { ShapePtr s = list[i]; switch ( s->itsType ) { case square: DrawSquare((struct Square*)s); break; case circle: DrawCircle((struct Circle*)s); break; } } } dZ PZPZ<ZbD    (     Hm ?D QShape.h.(2   HV ?< RCircle.h. (2   Ho ? |  BSquare.h (2    HLu ?p  sDrawAllShapes.c.(2 =   Z~))?  "Instructor s note: Ask what needs to be done to add a new shape shape.h - enum newshape.h Allshapes.cc - include, case Recompile all shapes. Why?0 2,J  /H  0޽h ? ̙33 + P( Z l  C L)0    l  C *  0  H<+ ? ~It can be demonstrated to work. Isn t that the important thing?@(2@H  0޽h ? ̙33  *    8 ( x l  C @~0   ~   T$~ A ?]i  8Class Shape { public: virtual void Draw() const =0; }; *9Z8  H ?y  ` l#include void DrawAllShapes(Shape* list[],int n) { for(int i=0; i< n; i++) list[i]->draw(); }(ml>  %  H ?wJ^ QShape.h.(2  H ? H Pw  DrawAllShapes.cpp.(2$   Ht ?D  RCircle.h. (2   H| ? y  RSquare.h. (2(   T A ?  @ DClass Square: public Shape { public: virtual void Draw() const; }; *EZD(   T A ?0 3  DClass Circle: public Shape { public: virtual void Draw() const; }; *EZDH  0޽h ? ̙33 - ZR(  l  C ~0   ~ l  C @~ ~   H<~ ?d RNo program is 100% closed.(2H  0޽h ? ̙33 / ( | l  C ~0   ~ l  C <~P` ~ H  0޽h ? ̙33 . (    l  C ~0   ~ l  C D~  ~ H  0޽h ? ̙33 D mep( Z l  C ~0   ~ l  C Ժ~p ~ "  BEt ?, vDerived classes must be usable through the base class interface, without the need for the user to know the difference.w(2w  Z8s~))?@ ^  Instructor s note: Before continuing, ask: What is the inheritance hierarchy of square and rectangle?0g 2UH  0޽h ? ̙33 E `"(  l  C ~   ~ | 0 0A ?p   ~  B\~ ? RA square is-a rectangle, right? So lets consider Square as a subtype of Rectangle.S(2S|  H|(2   B~ ?- @t  LUh, oh. This doesn t quite seem to fit' 2'|B  TD? p0 H  0޽h ? ̙33 0 P(  l  C ȓ~0   ~ l  C ~ ~ H  0޽h ? ̙33 ` @D*( w Dx D c $،~0   ~ r D S ~P0 ~ H D 0޽h ? ̙33 a 0L*(  Lx L c $$~0   ~ r L S ~ ~ H L 0޽h ? ̙33 1   ( |@W@  l   C ~0   ~ l   C ~  ~ H   0޽h ? ̙33 F (( $Q (l ( C {~0   ~ l ( C <|~  p  ~ H ( 0޽h ? ̙33 G  ,!( Z  ,l , C 4o~0   ~  , Bo~ ?j QDetails should depend on abstractions. Abstractions should not depend on details.R(2R , TA ??   , TA  ??p u     , Hu~ ?  <V.(2|B  , TD?p |B  , TD?p II|B , TD?PII H , 0޽h ? ̙33 2 f^0(  0l 0 C d~0   ~ l 0 C Le~@@P  ~  0 Hg~ ?R.1 ^*Everything should depend upon abstractions+(2+H 0 0޽h ? ̙33hb @T( w T T 6@x `- :&Dependency Inversion Principle (cont.) T 0xx  hLegitimate reasons to violate Creation of objects new Circle creates a dependency on concrete class localize these dependencies using factories Nonvolatile classes string, vector, etc. providing they are stable v`` H T 0޽h ? ̙33 I 84( qY 8l 8 C Z~0   ~ l 8 C [~ ~  8 H4\~ ?r bHelps deal with  fat or inappropriate interfaces2(22H 8 0޽h ? ̙33 5 d2( h dl d C R~0   ~  d TA 0? ?} 0 d HT~ ?& v<Distinct clients of our class have distinct interface needs.=(2=H d 0޽h ? ̙33 6 l<(  ll l C x0   x  l TA 1? ?Pp 1H l 0޽h ? ̙33 X B(  r  S N~0   ~   TA  ? ?c  H  0޽h ? ̙33 Y  B(   r   S dK~P  ~    TA  ? ? p  H   0޽h ? ̙33 ^ 4B( x 4r 4 S F~0   ~  4 TA ? ?p H 4 0޽h ? ̙33 7 t( Lv tl t C A~0   ~ l t C tB~@P  ~ H t 0޽h ? ̙33 O p|@( Z |l | C ~0   ~  | C hx  ~ 4 ~zR*rH | 0޽h ? ̙330 P(  X  C  H96   ~  S L~ H6 @  ~  H  0޽h‰ ? ̙330 (  X  C  H96   p  S Pp H6 @  p  H  0޽h‰ ? ̙330 TLpt(  tX t C  H96   pL t S @p H6 @  p We depend on the new users of the module, the paper tape folks, to set and unset the flag. They can t just call the routine. There is more dependency on documentation and memorization. There is an unwanted side-effect here. Everyone using the copy routine must now link in the paper tape reader routine whether they use it or not. But at least they don t have to change any of their code. The old users call the routine the old way, the new users have a little extra protocol to remember.H t 0޽h‰ ? ̙330 ldpx(  V  xX x C  H96   pd x S p H6 @  p This is a somewhat contrived-looking example, but we find that concrete implementations and user decisions are changeable. Maybe not on the second release, but eventually many technology choices will change. H x 0޽h‰ ? ̙330 E=`|( t@@B@ |X | C  H96   p= | S p H6 @  p This is an intuitive design, it is concise, and you can tell that the bottom two modules (ReadKeyboard and WritePrinter) are probably reusable.,Z  H | 0޽h‰ ? ̙330 x(  X  C  H96   px  S p H6 @  p Every time a module is edited, there is a chance of the change having side effects. In this case, the example is small and the side effect is localized. It happens right where the change was made. Sometimes the changes can have less localized effects. H  0޽h‰ ? ̙330 P(   X  C  H96   p  S >  H6 @  p R>Remember that tidy little program we started with? Where did it go? The trend is clear. Every time the requirements change in this way, we have to edit the code. Every time, link requires more unneeded modules. Every time, the logic is less clear. Every time, there is a chance of accidental error. Every time, there is more for the callers of the routine defend against. What if one of the flags was left set? Should all callers clear all the flags? There is increasingly more to know in order to use the routine correctly. Sometimes, simple things refuse to stay simple. H  0޽h‰ ? ̙33d0 $(  X  C  H96   >   S >  H6 @  >  This is far less simple than the original version. This is so that we have greater resilience in the face of foreseeable changes. We can use this small and simple program in many different contexts. Initially, we d only implement the keyboard reader and printer writer. We d have a program that completely and *only* fulfilled its requirements. Everything built was needed. Later we d build paper tape readers and writers, when they were needed. If they are never needed, the cost of this version is still not very high. It s a wager that we are likely to win. Notice that it is very easy to write common copy() routines that use common streams. But notice also that you never link in any implementations you don t need. H  0޽h‰ ? ̙334 0 (  X  C  H96   >   S ->  H6 @  >  rThis is the  mother of all design principles . It states that software should be, well, soft. It should be easy to introduce certain kinds of changes -- those that we could anticipate. H  0޽h‰ ? ̙33!0 VN( ? X  C  H96   > N  S  4>  H6 @  >  This effect is also the trick that makes C  function prototypes useful. By depending on abstractions, we have greater freedom to change implementations. The C version works at link-time, but the OO version actually works at runtime also (polymorphism). Notice that what happened above is a splitting of the server into an abstract, reliable part, and a concrete changeable part. If a system is built on this principle, then a certain set of changes may be built by adding concrete implementations of classes without affecting the clients of their abstract interfaces. This is also an important part of COM and CORBA.H  0޽h‰ ? ̙33"0 ( ''HHHkkk X  C  H96   >   S \A>  H6 @  >   H  0޽h‰ ? ̙33%0 d\@( Z X  C  H96   > \  S \W>  H6 @  >  nHere, DrawAllShapes is closed against modifications, in that adding a new shape does not require making any edits to DrawAllShapes.cpp. Notice that there is only a dependency on shape.h. The DrawAllShapes routine doesn t even know anything about circles and squares, but it works just fine anyway. On comp.object, one contributor said that abstraction is  whittling away all of the reality you can stand to do without . Here, we find that DrawAllShapes needs very little of the definition of a shape, and none of the details, to invoke the appropriate functionality. la 9rH  0޽h‰ ? ̙33P$0 0(  X  C  H96   >   S K>  H6 @  >  In many systems, we can see the same structure, without even having separate functions for the different shapes -- it s all in the switch-case statements. Most common edit error? Probably forgetting the  break . If you know where all the switch/case statements are, by the time you get done editing them there will probably be another. It will probably be checked in after you check yours in, by someone with no knowledge of your changes. We suggest that switch/case statements are a lot like cockroaches. If you see one, you ve got dozens more hiding in dark corners and crevices. H  0޽h‰ ? ̙33#0  ( |@|@ X  C  H96   >   S F>  H6 @  >   H  0޽h‰ ? ̙33&0 P(   |b X  C  H96   >   S f>  H6 @  >   You have to choose carefully what changes you will isolate the program from. You want to choose likely kinds of change, for which the cost of changes would be greater than the cost of isolation. This requires experience, along with domain and technical knowledge. It requires a well-fed intuition. Some code cannot help but be encumbered. The goal in that case is to do damage control, and focus changes into the simplest-possible routines which are easily discarded. After all, eventually the rubber must meet the road.H  0޽h‰ ? ̙33'0 p(    X  C  H96   >   S 4n>  H6 @  >   H  0޽h‰ ? ̙330(0 ` (   X   C  H96   >    S s>  H6 @  >  LAn analyst may tag requirements as variable, or in variant. The development team may also want a list of areas to distrust. These areas would be candidates for living under an abstraction layer. In Extreme Programming (XP), you don t anticipate changes. Instead, when a change happens (like adding Triangle to the Shapes program), you add the change to the list of change types, and immediately refactor the code to make it easy to make another change of the same type. For instance, the XP version may have started with squares, but when they added circles, they would have immediately abstracted  shape so that triangles, ovals, etc, would be added with a minimum of fuss. H   0޽h‰ ? ̙334 +0    ( dHX X  C  H96   >    S p>  H6 @  >  P This gives a new concept to us: the expectations of the users of an interface are the ones who must be satisfied by each new derivative. This means that inheritance is not just a relationship between two classes, but between the derivative and all of the users of the base. Fulfilling the prototypes for the messages is not enough to fool the clients. If a user of  rectangle can reasonably assume from the interface that the X and Y can be changed independently, and then it receives a square, it will not receive the anticipated service. Instead, all such clients will have to be modified to first check to see if the rectangle is a square rectangle before operating on it. The problem is no better if rectangle derives from square. Not to fear, though. There are ways to share code other than inheritance. You don t have to inherit to share code, and you don t have to inherit in order to represent similarities in structure. What happens to be true in mathematics is out of context in our app. In mathematics, things  are . In OO, things  do . It s not physical structure, but expectations and behavior that matter in OO designs.  square is a rectangle is true, but not very useful. p8H  0޽h‰ ? ̙33,0 $( @ $X $ C  H96   >  $ S >  H6 @  >   H $ 0޽h‰ ? ̙33@/0 4( Z 4X 4 C  H96   >  4 S x>  H6 @  >  JIf software exists to map a process onto a platform, and is written to requirements, then the only reasons for software to change are changes to requirements or changes to the platform -- which are usually embodied in concrete classes. Concrete classes, then, are detail-oriented, and subject to a generally higher rate of change than well-defined abstractions. There are exceptions. Those classes that Meilir Page-Jones calls  foundation domain classes (int, long, float, list, etc) might be reliable in a given circumstance. We recommend initial distrust, but some of these foundation domain classes are static enough through long use to be somewhat reliable. Foundation domain objects do sometimes change when porting or accepting upgrades to compilers or platforms. Do be wary. The rules still hold. ,.[H 4 0޽h‰ ? ̙33. 90 0h~( 0\ hX h C  H96   >  h S X>  H6 @  >  lSometimes there are aspects of a system that are common, but the interfaces to this common aspect are unique to the clients. Error logs are sometimes this way, as are error displays, interfaces to UI devices, databases, etc. In this arrangement, we are in real trouble. If we add a fourth client, the interfaces needed to support the fourth client are edited onto the server interface. This causes all three of the existing clients to be recompiled, or perhaps edited. That s a violation of the OCP. Also, it could be that the Server needs to modify the Client1Interface in order to better serve Client 1. This is troublesome, because it affects clients 2 and 3. In dynamically-typed languages, the collection of methods merely defocuses the objects and subtle variations in method names may complicate maintenance. Either way, the situation is uncomfortable. We need to segregate these interfaces much as we did the interfaces for timers and doors.H h 0޽h‰ ? ̙33:0 vn@p( @ pX p C  H96   > n p S >  H6 @  >  Now changes to interfaces only affect the clients which depend directly on that interface, and the object that implements the interface. It is also not necessary that the implementations are multiply-inherited and implemented in a single class anymore. The clients are unaware of the detailed implementation, so we can split the server in the future. By segregating interfaces, we isolate dependent modules from one another. This is good DM, and good OOD. Yes, we end up with more, smaller classes. H p 0޽h‰ ? ̙33;0 x(  lH xX x C  H96   ?  x S ?  H6 @  ?   H x 0޽h‰ ? ̙33 0 |( X, X  C  H96   p|  S \p H6 @  p . H  0޽h‰ ? ̙33 0 0&( 7 X  C  H96   p  S p H6 @  p ( You can recognize the symptom this way: the rate of change in requirements is more-or-less constant, but the amount of labor required to produce the changes continually increases. Eventually, the company will not be able to afford to maintain the software at all. They will have to refuse to satisfy customer demand temporarily in order to rewrite the system, they will reduce their responsiveness for a more extended period to rewrite in bits and pieces, or they will become unable to satisfy customer demand anyway and will fail as a software development organization. Ideally, the same number of programmers should be able to satisfy a constant rate of change indefinitely. Poor dependency management will ensure that the ideal will not be reached, or even reasonably approximated. H  0޽h‰ ? ̙33 0   @6 (  X  C  H96   p  S p H6 @  p 8Not Rigid Modules can be changed independently Changes are focused into a small set of modules The cost of a change can be estimated. Changes can be planned with more reliability Not Fragile Limited propagation means fewer changes: less risk of introducing defects New defects are likely to be in the same conceptual area Risks are more predictable, Credibility remains high Reusable Modules can be separated: modules with desirable qualities do not depend on those with undesirable qualities. Low viscosity The  right changes are easy to make, Evil trade-offs are less attractive Code rot is slowed, if not stopped The system is more amenable to changes after the initial releases Clarity is not in the list. Clarity is a good thing, but clarity isn t everything. A design which is complex may be better than one which is over simplified, for the same reason we build houses instead of lean-tos to live in.   n      o     ,-L H  0޽h‰ ? ̙330 P(  X  C  H96   p  S @p H6 @  p  H  0޽h‰ ? ̙330 ( @ X@ X  C  H96   >   S h>  H6 @  >   H  0޽h‰ ? ̙330 ( 40 X  C  H96   >   S T(>  H6 @  >   H  0޽h‰ ? ̙330 (  X  C  H96   >   S x>  H6 @  >   H  0޽h‰ ? ̙33N0 ( $$EEEhhh X  C  H96   >   S 8p H6 @  >  2Good means: Flexible - easy to extend Not fragile - won t break when we add new IO devices Reusable - this code can be reused without change by adding IO devices that work with fgetc and fputc Low viscosity - costs of development don t increase sharply with the number of releases. ,ZH  0޽h‰ ? ̙33)0 KC( h X  C  H96   > C  S >  H6 @  >  Barbara Liskov works at MIT and is very influential in distributed computing circles. You can find some of her papers online at http://www.pmg.lcs.mit.edu/barbara_liskov.html. You can find more information on her Behavioral Notion of Subtyping online. $ }A  H  0޽h‰ ? ̙33*0 ( @ X  C  H96   >   S >  H6 @  >   H  0޽h‰ ? ̙33-0 ( h X  C  H96   >   S 0>  H6 @  >   H  0޽h‰ ? ̙33".0 r( )` X  C  H96   >   S 0>  H6 @  >  t`a.k.a Depend on abstractions principle This is a matter of focus. We are more interested in the dependencies between objects rather objects themselves. Don t do this blindlyH  0޽h‰ ? ̙3300  ( #zp X  C  H96   >   S X>  H6 @  >   H  0޽h‰ ? ̙33<0 ( )` X  C  H96   ?   S ?  H6 @  ?   H  0޽h‰ ? ̙330 (  X  C  H96   p  S lp H6 @  p  H  0޽h‰ ? ̙330 (  X  C  H96   ~  S ~ H6 @  ~  H  0޽h‰ ? ̙330 (  X  C  H96   p  S  p H6 @  p  H  0޽h‰ ? ̙330 ( t׌ X  C  H96   p  S 8p H6 @  p  H  0޽h‰ ? ̙33 0 G(  X  C  H96   p  S 8p H6 @  p I5 This may be the reason why so many systems have to be rewritten from scratch after some number of years. By designing and maintaining systems that cannot accept changes gracefully, we have an unplanned but inevitable obsolescence. This may very well be a design problem, not a coding or maintenance problem.H  0޽h‰ ? ̙330 (  X  C  H96   p  S p H6 @  p  H  0޽h‰ ? ̙330 @(  X  C  H96   p  S 0 Pj(  ^  S  H96   >   c $<>  H6 @  >  `LWhat happens when we want to add a new transaction, one to pay the gas bill?H  0޽h‰ ? ̙33 ?0 `[(  ^  S  H96   >   c $?  H6 @  >  Q=To keep deposit, withdraw, and transfer independent, they need to have their own interface to the UI. This adds classes and complexity, but may be worth it from an dependency management point of view. It is especially important if the clients are created by another company, or organization within the same company.H  0޽h‰ ? ̙33C0 zp8(  8^ 8 S  H96   ? t 8 c $ ?  H6 @  ?  Now changes to interfaces only affect the clients which depend directly on that interface, and the object that implements the interface. It is also not necessary that the implementations are multiply-inherited and implemented in a single class anymore. The clients are unaware of the detailed implementation, so we can split the server in the future. By segregating interfaces, we isolate dependent modules from one another. This is good DM, and good OOD. Yes, we end up with more, smaller classes. H 8 0޽h‰ ? ̙33D0  @(  @X @ C  H96   p @ S p H6 @  p  H @ 0޽h‰ ? ̙33E0 H((  H^ H S  H96   >  H c $>  H6 @  >   H H 0޽h‰ ? ̙33F0 P((  P^ P S  H96   >  P c $\m>  H6 @  >   H P 0޽h‰ ? ̙33G0 X((  X^ X S  H96   >  X c $>  H6 @  >   H X 0޽h‰ ? ̙33 &x8 xWىGTIl4)h( BM2)%GgQZ*)ŠVU{ߒD <}{wr9[Ul]'Xt(CxZ%+Zm?F36b @p*h {<[oH5 aOK-[u1~^n=1umi {[C5? ;ʦ &03rGA $S Zx~o5[]+5}SMo}[O s#`Sa˧םݼ74hyc[ŏ:lltQ#Һ~tШQ)'7|ڿbXgQ^J:&uHrwaRZjfJzژICRGn9zlj`]ap!CVݹfnNѬTܿ &B]ߺ2 #|zm`>o佷6?s>ƕ|kM[0f*p[yJΆ6ۋ`B w9ԇHS]n:& :vo-̳!77J,_ts>Z\Kstxvi׳ގ \~[3&Z9|;gqdr,9k=vl7[ ^ c~2 , DwDG*G(<~QXǏbyK{ uț={{xbNݧYTɫ;Odhd)vK 0Gڳ3^bo/c cW@#GʨFP!+3pğYM O*1ᦋ'JwͰHE)ePk&Z]̱q1+Θ@x ^?'0s=G< $.\K6.I\b iPUP1n8s9k!ۜq]r•NoG-%~\"D4qHb ExelX~'"[#EkhknQo]OYR*VgzE&X2E֓4@۬@ziq^ޅ xWcCeݎA5Y4ϣtzX62}NMM.u{cշZ},IWF*)FA=M$T5=mVH (Ce~mHFd(.Jaò#lG@ 0NxaZd}:6D}˦;*:*T-yGyW~G=_5 7uQ}?ႁKPkUaUlB:#tN[gun<:6)a ֓HgGYCyU3AvUgvRlglX,TJeolИ&c?.vb> `C|.b8eAslPn,  ;>jվg5*KF2Po P8Ni:#.Q :.*c:!вhz#2L"qrEU(Ⰺm\|R.O)7r'wc O=xCnڌѴ1``)=Rg.01U˿\A9zoS&^oJ3^$&t҃d[NҏqW]ˌL*_ j!إ/X[ui`C1;pFLr5t10T'?3\zsZ^Ɲ䭓eڞi, gb_锅uImXlF6_z8xm,~ZF2Lw[]AhUںnՕS-E-jOQ{y?x_UNR#Tc{jgUlުO_ڎv m۽|>_{/o7|t_7P>CSx2ؐk8'Y}{d{ʲ ;CG[{rx&;p{e6^j(Q%E`]y3>I#xANųr&q9̓=l'e,^5t(j-4Ў h a29,6 ݰv: eJMpuĵ߸F4Eq jgc?L) e`>blxZ6Oq)x˼Q !qT.D|Wa.Eo*K$_ 6P|@e7+7_z#o>O/ö@mwh]2Px| \S3gƒ]sX݀pך *BEVEYT.֪E[ jjV[  K9"9[o~~3g<3yIEf'7/` x% PS-dTh$n1\I)19ar$m &wL<1yajS[L>|1ä`"#A[ ! /c1p ] a#,~=p&˚/|5O$f)͈䯻)ZȄ$ ڞ?{ʏ F\T`ϝ?+ϟhiX_4C^M[╀+$vX9[-4ˢ[[7YdS̶I{ÐWq _ZiJC៘>ZG-~M:SJx {oKׯO:ԐOwlj/׉d_#xMz_k9  >80QL;żl?iCS 촭d?P JVWTk2HT ?oUvltn'_X ; ]#f4--՟3;A/>j-:?+3&F*h?? &4c$iYF `jA-=HWE.I-+DO҂<ݷ={8`wy `7a 6 "MR;o1煛4U'^{>XY Tbeb>wzJE.IS&.}PbDH L{c4fRcTHHtc6kvh:dn.2O0QDdH 6Rş#M"-) TJoK>BiBݼnd7NsA D ?DJ7x#%ٽrH9n6RΘnd)FFubLX=A1DLL1a 3⦫]04rVt@j__Gm$އ7 #v/h;p]b8oi,?XİȘ}cJ8ԫd ڦ(Zi׸4nv09߼֓_|tSExlVmU~iqu6!]L]hCaVcc]}hS$z .w*ސ9jpD%D|з ъm[uHw[j-2H>k_7: 9 *O8Bjkh;TiEhܜdv51D|3ng_&2!2A0"{ f,v!`V75eA yK]kBW]MINoge;$4AFDfc(89:odp7>3M$r*Hn#/v/hۦ..@1LÄ$w-p@*9( xXAb WޙT8 44$3=i~p~:Rw :[Q?.M+ZP$䥕E^9tX3vEJmd{Nɢ5sˌߔTb-iIY8`Njpxsy\gJYfYnXzi咲rp(4s FO?q_'O(_;G~^,K+WTtXΖ[O qWliɰPrikAw[mmm_:VؾIVV/top8ʾ8㥕E'ܚo(]ZY)(-&]3f8¼ ;'qҾ3\/l#TQtV~0Jobbk殂fx^ZvIB'^mY΅kw΋%=ÿ ^:rr!e 7w-ėSpEթEu+TPPT.O+()p-=ynv6o0)}v$I0%VBG w]BDtܵz8Oفqzv ȾUM~=)kVߑ{2hj[dTLO5F| 1SQ)SF (HY;'vIoZI݉OS >Dl?>lCɃ А$@?bA ,5l1|n0*  77Qy)Lְ4%+SaJ=Ky9VInK6&!65piNaiGy<45ąm](]PE8.-1EECXQآ&l%gM-!'j W`aG_U-XzyT >8݈'׺h0/*TrLS͒'%oso)Vb\iqLXQt\Iɺ]֜5ϟa֖^OXё"&La:i`sǶi䝇pYΟ9qrX;QTߛ+^5Ccw=_q8*!\Jȭ±փSlsl6b1%8Swr 4Reg8mVݩsv%>^-zǵ*iλ^ oA@rs,eҲIYwգlVR R0@{Waq58Ax*j_ V÷lNR/U: -K$d]cc_>Aɛ958 kfu'Q\͍G39[`L iN]$](R.">@`!H·H .%Z qT! @*.He +/F*/Q(ozӄZ+["ޒQ<Xa-Pt/}9Cnwhy~vv{ƶC\Aʼj,@ob/jB|U3DRܒ%3f<}j1ø9RbA:_X)5KB=NLܫP?S3w mj^S+Iy~U滏Hn$uB4 vV奰M5^UkpAU8O3vو?0vHB0;{ ^ދ(cw(A>EЧ)BxaF|"N9d ݇t H ;JYi2jL70l1d/ʄ2w=yFy2|:\E [3P?@[*/"}/R;u0ȕJ \]I>C]8?\;owXPgoKG{j39pKt\U.t=ϵ;$CWʲ]elBY${٧7BN5ve}T,Uȿ)J2+*~~ _Nז7JqA<ղ83=/,Zsa;вHZCvWw}mںG UqSP0G;,4a_m<5؞n)vrI =U#j?[{!~[3͐i#6Cqh8[KJK݄Ͱ7_<_'_oK\GE 8s/AYcw @Ie>@)G \C.ercZ'.rfO!=9ŐJ֥R^,PGzȏt81ݨ璆_\M  \Uv$ ur\޹eA1řtݐwq@e](.LnN l2ܱeOu l2iOP9+XF"u:`?*h{_20t_Yb2K醦ls}220rBeKճKzp4U~]l8[ztqI2I&q,jBm 0Kn'%X4 Q#ͨCQtj4[ j"HQ{D]rL!.ʝdNgr&鍮ј>' 3sP P" IH(nx륙],â{`ʇv8CZJE&_6ig,IH珬,<Ŋ}M`jvk̼Gyڟh{g j/ftQg;?2U([CiT$̅{[1Z{3O;R0.r]K me-1o9xzX+; )<$n s(%Ȱ):?[ e }JV W_v{؊K'G E>!tc62у@q@ :/`D a9nYɣs:1 B#"(<F;V5(\bUQ@C'8}:ӗ~OխSGUp=UT cHY]W #e vBz"hƩ@PjBzYøJ@pP9V58Al ƫmА"+p8 e"`:İ!!<U6b``( =xY^[T{V^&zK Vz H"v2:MeLX(N|43Z:@;R`rJ"ъTq Aݸf-֘&}G.4>6B=V?q̀ >S3%p䇒0h/Foaؑ9>ܽprێԖSW]8 e..#0|*~iH}vZ*Q995}s՚&2v?=f?" SSg_sFѧ!Nӄב5c^q_ɧ#& M;"ĹsMMCĽ5ԑyLߘžхбw”B?Qb͝69JiC w&}ZxbWyU^b,L&ljfL*IxIW@'8snEcK֖آf(w)-Xb LQ-_]eGB%𑔷%m%HR@8e7.;B@[3lQRNQQ,`埖?P/gKvv%2okκɏFc\s֨?r"4c,&?(9ZMz~c7GU<>&f*5[TV1j)4n3Rw)^Sza4>B#  W%RVKmR0שՋ[ ) EZcOsS49Sؿ(H9pR¬O 5)&2pn _QwuzzYl-WTVt.mٻBJ~)NB_k/j'XJ*GfstvN<a5)?!}NNӭizx^9Wq>s*yC'`Mwzo5uMv`C%s9_|$Z!m롕d`_Es." nQqC*jJ錎Зb5f6I=G=\SU m'4gf:dYjAfVƞ}Z^$+ND>=>|0^ s^1i=,8?戩w9~N8{U.'  m4({?syg޹̙5 &]U#^{yVMr7ns h2|75nX\fM5;17PW8\dXZ-]2b웗] -;*h'M,W,,7P˟Ku%+ :BbqI^q퇤N.ٿ>Mw7Ԛ9lp&|0N%pi\t6s{e詀Sh9Z%-KK?Cǵ+ǶXZ}{pݡ}yUQ 梡? 2 [! ކw86}=G|CZa5 @#_6ggȴV{AR6(q_ГհчNn/a_0V˪[g\Bڷ :ee# (ƭ.^?1=4[тz_~4!#3M9 ~1E!bN !=MLdcZLUֳz bi!&cg=cr"kpU3SF23Գ&2is&;?c鳢➂ye颳0ұY]9v_scxqff=sm>#{+D$Cva (33~ ӰoYߕ5 wUz6)cCzg^G6n^msƳfY0&ΐb>E{ &C=fq90Y`{@zu0dsr6{tm0,o@0fJaz|&^?Zy5?G$lnML 4;ff3riHmH̕WtO7N`HȚXl[ L:%V2nw!ͫ(~:c _hČY~eGͽ5==+/}}+43@6dDZy9]lP] >8o .ڬ@^l@hmcggl\fą^}'(<ijퟟ17>(xVEo Rz?,w|$ё{`qqٻ㳊'O(OL\q0ӭ8>8޻83.xx8NEݴ ui}ܦuiUZ3f.ѺsZw3hqZw}iݧnۍi{]Zf6Һn[h|Z7tZMhdLu Z73#h]u13u}i]/tu.uL0 u.zC'#]6>нtqttts:|g||}f5~k|.f5n552_[5f''a __`_c̨|~Fg(ҕG6?`ܺ3 7gn0N`|31]677SA$ܪ44&U++1Ҙ]iLLO1[ilt4R9;Ϳzml["/ bslN-MNKKI8?b*6A7T$p?JKYB|YPh ]AVD)e+9oalA ,EV6#Ӽ%k<9p 96 |J-̈́f7ra6n\LNca?u^QKHQBF X NR VOX5EJ96buy+ȕReƛe׬^SUZP\e4HysC/NRh!e8x!3JԍT҉C}k=ZmQX=󴋵ϵ?kڵ7F9KRR4) )7JHy:?N}!eU_JyԥH8Xh,W| YX,ӀbO 8g +pQiÿ|vpxB@oXv9L rЙמ Z_}jPL X)k^y7y9F1!CaP<3TgNep`9SXd 4^Mrl9Dl]ܩC׉vvPH:P\O_Krk^d> !4Q܆ ߀/9JI:pEVyk;.փ0'ZB؞2sqx'+FVC+de=]\[@9VWV+ۘjeq_h;*حRn]cc`@uL^kwϭ O*k.!›Ϛb)O*k!F[>4Ko_Mw󧿞n="MtF/8lJmկ[ϧBVSݺkC>(~FUƿP=Ggً[mAg47ipuoߟš?cNP<4Vؖ24o _!$gke=ȧgOVTWsrӳӛN|Wrk49֦_3jWǷK-T-RZښR:&Gʈ) F|)O7_TZO@}16Xx XSǶIH) $>#>"`<ZD mMPj jOUֶZ*5G@`F JB1z"BOZ:v. r"_مC>d۾=^&Yo[1O RsH]H4$ٶW?"~qolᐝ;k3+Z9f}=n3w"aamniPʤ-[3#pdi @aڬ+-TV"r10?2mw<5WZ ;0x3 oh)| ~s A5Od\Iy?/2M$MMP Pa1 unz:_-RstHivf]+L\TgtU &}_outukH&CpG*'tM;:'}PK;n5S͹檅5ySf%2ݒoZю<'lp[4X.&S%od0beT-\ KL}ݔ#8;mE)d:OL̓z*,͈{" e[Ba"\d~XBgI7f~k jedd'#K$(%gʙЂצRIz9u19DydУРg2rNڞykѱ$wL./hoZׯMu3q7}ȷc|HY0Ґ6Y'UOK=v&}*>ohI%i˔v?%ٹ-);k|GhЄk$:2`j#A3t:OTKBM i_u|Y),*JCV6ﵗZzx蟧]+Rmt]gVtjJtz~ ͭcF߮i7;2rI˖Y;;w}v$mp_@MIz  KkMNF?/O1 D q`p~Y-Fbs% d N8<0ߨ6W' ~kmN{)s`Jj' aذi3$2oo |hn[f1V<{DXHZ 67ywuւkNb21"Y~*}'KSwu: 䉋pM4GD9M'υ=%wn,/W>| JZl V^>лJЦVB-cw[x]߁ΧgT--K,\ \!HV=r`F3I {o4g3 J^IpQA68zTc^7 ҡeg5D)YXwHwpb9+36e!4sV6W7kHIҕ\a ?|\U(t͢?/ `#o$K׌'"P,C=>$fPgz䲠5 nLz>_}E[]:{JE$HM?+ݶ*%7v@q7h[s3<dbG{$PtG|*FO+0aopmqI>èO7ݵF=o/9^>+$2d']]q;nnUa߸'1fL"`gmfqS@`w^b@t3NlGBv?Qܟ_5Be-Q):1#qʳ07q3npDQy]-r8 cX+s[Luf3F^ELh-V e D ,`4e vz17HֿM+bxW{(oAGb|/W䌥:֕oC~ʮxiᖧ$s^qCm9ʼxkD%t363aHhXl]l2 5šVzu+`6ӄÑD+Vy`πш RLp? V߁Ug`=gºiA&#Dͦ5ԉs{5Z[͢6fqB~,{g8,X/#$ bl [v}aaCY;aC1~D!Ԧ\ ݅Z!0{X.f`')(\:Ac:0{}s@ {X^!" B`ˎ[x%w;D!^!n9o!k^+&FY*gOr7O0@oh2.@3jBDy1-:`\)@YˉBa3Bߍ np~qquEn+bɝBӝNKq"Eon |C fZCrV3T/ ^c?bti4PڧPzf{! lO/?@dn 6ٹs9fϞֶ `4!8-M``:kjn090"⢉~`0%B~<B1~6jaH% pp"F,|>h:!o!(8 ❠8 }lE0ΊH=!vN*N-J k`DY"TD~%.x?QʊUW:6B0B !iil-,(rLxF]L%9t Jؙ*q$X,khĠiqCH3ҧʖ>eʰY؂m9' [ZƫlH``Y|iY]."e83p8#fJۼuO^Ė]0 Ot0/;5l֦ lfK9m69@,79pi:b9AOvW*(a¼RnǙY|#Y`e 4 /7JX0)w%(ĘuS71)|w"#e uf&u.--[jb *Ę;9ŪfNf~֚1LiR MN˔~?O|HgKCR 8ءXʰUX!HYs- /U8Z;K'Ls7HOx=gO?ȭP gQB`d6S9(:6s]9 8@h!Yec @?zNrHmq.]>4 9/ 3 /ozWTLD i Xa; Mb\\|g,N'y z=I,{}ylMVE `%2ݟmS] |4SB Pz;nǮ ^ $6}r8DLi/D)d` & 5TCiT&]!eL i>ywO-^AryP8@av@|7x]1vvȧ~I+A1k58bPO\A]q]{ݦ~ M/lyswX1u;"a{C@siE-Do7,mmoRsl8|(Ãȱt&h#m+À1`rWԷ>mO-| ri%:5Ɯkup/N3XTɝ8 (nf-ԭ i/E +o;/㜰ٵp 0Q,Z!*z_tZDhW]>h$~jagw8 E q~eCmLsF64d0LQ BAglA3{)v~SG0 u[q3~p!MUZJqkmoC8{k7bwn|6v} lv!"7h8zYݽhEۏt:\m9ֻ<}F;)[G埪Ϩ?7=W &>ӎ֤=j\ݦUzh7G8\BE jfm4yGp%j&yhOP~ɊRRce |%J*SYfyѯqh?LM w4qr{fu#{Aݰ Ŏ%|C΁c{8`J0Q˹} ( `C0 sSJ(D-ٯׁQC(?1[7ܜ5wBYzύ[)yNNΝOjژ+>oe s*d T<@9atLb1$2ut"/Πt frgbd6!~cflIz<T PS ?:rʰk6C%?"~uHb;ĮɔNީcq6~E EӋVLAaс/$%X{*TI {`%wx5PHf}XEɕ%dUnEԩxkqi OWZ*V.KLyZXӏ\rӊ*Cwq/f]w37'yɣfFt7_BBw~iChm8ny]p$_i.d`,.f<Ⱥ0nqL'6iesd+'VkVܒ5NVJUѫnzZRV g":JMP̑&At>Z=VM3:/gL<ެn0lD-|Oܵ{S5?x4iclt_'N~Wްp7,e o <eFR&e%)!YӡE)2=0"?&~~Kuyѡ|V>SGXQRTW⺯'RwswG=>ĦbS+6p:ItPG ek.uv/V%qM7aݵVp{#zig:+˴2e)]R/?,=Vv~^&N?Z~S$pbnBjQ^/,:Tko>d]Tݏ{.s9vӸrL] 7 _HY^ [>$bBf# | +ݛ\?ŵsN5?yܱNJcbvqpā9}::9yl\-_/:qAS**c'>wB?h@WM1:vC7snI]AADk諭*rcN}<#]Q~͊=dpY?a?~~yLQkȮ674l<@MPsd6)ID9|ᆸ؄D֤>B*AM#O5Pb䳳7 + rPPSZVB7G'LEcXTʉ 滋ؓ5/j_,DFEME?2^ obVN( Kprpf-,K2̴4^}0G 0o1l0|dxAR/Y<,WP5~7,ҢEY+uKE_Z$(4b%%bJJ.Ӓ3%U{3f2!t'uI.]+]Û@uܧ;R,XÏr2syEnE!MŶ:=G#Dʫ?9Bl/ձ@WgW@zJo}늩Ѯqq?(%I%G$$$T*v'UU[6_(zzS%[>!2n{Ne߆őA3a8H`Ba$B 1*3" &m -~` m_awW݂XMWb0u›t[$^Qu 3 .Hu}kYɦ]N>\E#%@߂fR=965ti|id<-c+5﷖SqmQsp .DI/3 렎BmFGbJHM%HMKplRRzA`̮Q$a ̤ק [~thNbӧ 8a_f] _7<_#8s,izV-p]!=Y.#q<$-^ʻd\Ͽd3cm2qA/?̘Vݵy.4 |RN2NzI!YĘ Fi~`ǗZٶc]Oj]tm]HƎFLgc8X%;Jw#*K/.޽qubXHed4D)^wx}WxHޡRn6s@(=}fD|.Ϟ4ʷnhNefSӓoz}x׈cL=& 8aCP)^ fJMJzH4CYѩ=k-Oo tiK]2f!-C^n4gT?,llc|:P3#oHjri[hN&/1sS[f'D̖FWQ|[ *ުҨl&'"T7gfQu0^L{FF*wB_6W'wdvnvtjO,v 5 8;v]06?pvfpU%긁u&FQ&Fk4sk4M:2fhfhj4W ѼW BF@ƭFRqDCFXhW*Ꙋ}*>2Z*{uQEGF:>WQǑqDERQU'إ>PQTdlTQTKUb5_EEIE*j2U45EEMDFTQcUhdPQ!*=5@EUQTUo娢Q:Nkk>g}N} I99a9acoCHeڹlۉ(?>&sczBEdQ(OStoEa;x%]#j<[JU [iAJOi>[>8>C%%A&dd<.((!0`]^sn\ݡK<@U  6aM2Baٛ~ ׵$3-I5ΰseY`Hx; 60t;10@\0%z:|?eMCf; fJ=v$1,HW 9/ƸqRr xa0K+yFcH1H=1k,$gMn2m2əL} Ᾰ;LxQk)ƙE ӰmRX]cs~®Op0(տƀ<܅7D=ENf٢ko+-}~.|c{@eٷx [ -8!&:ֵe-\|B.ýnKl{fy8ڛh&mh@Lui\x Z_5=A͕ в O'( 0J<|\Bn{jmaMt"D9s Fp"w,t@}3S`0ypS.@JІw $"~#G6{9pk #s% w֏~yѓ>Y oe=tub|Z͓®tI{{lt&Yvn=e-| |ٝљc8^xŃ}/w~W?ׄ5A6a{]{w p m~8۱wulo>O_:],}ˆڲ;?+ƿ~~9o9K[6U?\՟=x%yޭDk~5:?nXgeCo5=,{DL mϟ7>2䍦vl?w:*_b,uB[_tuǀdyh$*]Yts2a9Q{Ǯgs} s26xيla;ޖhe{IvrC߰Clۆ^: njN~okIz{io{6ͷ D>jRt:q#Tѣ܀ϿqTvxwXSi7]P:)*QG<IhJ(v@ +:Qvg,ef+\}=?߹VuP/iv!2H0qf 6:q_Y[-?cx̅D̰cf 56q  6[lv9`s[l.غbM ;6lݱyb[l=?69[0^7>~| j/c12,T\u,Dv}W?Z:wx]+܆ !_́@{ $}~)>?ρtr߿~cZ665 6rt -.ugC?_]po_s-mF!z j_xt;^O>C`ƍԩ0rH ggwB/ö́L=N$~q&85~!lXVZbAm)OɥdR5ꙉ>@ ΎӏAD>1z@fCH|QA|>otX:!_9w\BOl Û?ߺyS; R4::"PQ\ù @Joqа邱E\XD%!ZJEZt6_'r-EQqTx\b xm:dGN`\#\GƼ/uuh-ecXKY뵔x-Ŭ$kҵ,׌0)ED;YNEӑHw1&{lڹa D#:[8A]1%`2QHb*9F,,`,|_>7DZ Bg7~b@>/<)F~jѾh-R Q 󅾡&{C!rz ;O޺ʃur`Z\g6u9tjnzњ0 Z˄t_R(k?ąCF*OD_ۡb \6(x@!LOe^ <mPLbuѱ3 Bf(7z(W>S?GfM 1#~K'ڨ]~̼گP}SF  o0b+JQsr!!RJH yyvcqg(3JaoU4fW5Y*j+CC#)m Z7Fj+Dlu[wlպhBvQ-wzz z` ڨI3\:8g8 fSK斬(Zj~i-M]Y)j,yUBVU-`bn f**Y7jU7䕕ʇ-tMقڛBᕕ"fB͌x^sSHWVZjvJ; ¹1\قP%Ku^oEWV:Ů P1>ʝyWV:.oǜv5̳҉+%2wYlZ<;|0M>3;5׹ȞOU~6qQ 4'jW FºV40+U&Ɯ5ay}RNo55kzҚ #U0e❡M]WmO}//Y8֘V9!NK"~O±G8ii?iQ*Yvσc i8tRRP3;+T\[GmgWUYt F⩮H)߸zwZۯ!D<LW:?D{-D)`{;I(v(q/Cό}.ؕ%xvW,ܧ_%5utt{5|GЅ ;u#'] B^I} w1-8>~c}>K?.yY֋ Q?oRmʦ8wMaq`0 lȸ>o.ϸ>."rH>`q% EkRDMNzңT@%~NX0V lEB L" I I[: D*<}^ln/E<}Gʾ\((J #&8S  Q=)[m-&8hU@}0֠)ˡ}JC2']m?K Wwܗ/^-F{ʮtI W_<ެ([D8/Ƽ<,H3c?qGW[<[Ebx z/.{I7[[ZuHnKhNSy]of"ԎT\O|VtO%D=iPp(a F[3~ǟq (R>oiRA5Fҝ  wA=O>BЎ /gX6t90&3-s@߾\ovT,9u%f* :T ;Ѧ{@#гVufC%xM|K",Ml|KlV{NG> Gۨ}֬,X lZr/g#dY1>ˆA#Lf\Р uJS99ot\9,0S>2FJJ~8vti6nq2dpǝ4~}Pb[R&E(Xh` k9>( 2(d\d9깡wg@%$T#G5x O c_>BG$R@p/ϸQ}#MuiH7 Oh>8ZOQLQ= *Հ9* ,aG9dpg?}V5"V}I-]˸9z$A-}k&9耔] :˜opPiITq"(OpK3*,.EC~֪OoC`nU rl&F✣>/ƅ$Z&2)LnzXnN`PMY{Gen,{$KKJ#%n/ܬ7 L4vH;H3MS5)9|m A]]lZ˥ISfLs3oH+}Va W[즽~Qxq:-nF!@> ,ıBM/J?eTX} XN90iiflF@9D3=ZKަlԚ(DQ)PzC#h=йd棋0 HJ0kE7c*D2gFZs #`PvN'Zr *䪩 69|yJ\t$ćJ* !Ei,OЦ +;~ h3maHdAVgeF+m${NtLj˾E( = H:,G|\g5q `4= Xt0I<[`KNnڿ XƁ?o/`8 9Aj[4ǡ]؉AD$i bj4gDǣ)vfWxeebv 60fAk]3/ꪗ]O(@=l w>0e*tE]%u<<дcZn|2DDey,# IY ,8j G-Ѡ7I,ȭ!|i.}rDRYByW[,WkCLn[iFwώc>9O9>;cNl!*!*ƚ/"8Q6&- Иlj2䌲 SEP"e>!h"Y5 I&A52nfEUl&{?a9mEX wN'8&)%gtՠVˉD1PiuL9@cӢwCF\|4d r=c}6Jb/k_N[kJ%Rjֿ!MV_eQF&(YҴDe&6l}h{N_UT2XHzT-f30Rv¾tņ=\H ȯ *nX嫘E(k-v6Ntl3(XTŇ^,K~ln~v,^8?7*^^9d_|8{ў19w쪬=Q*gt5OmT"ɴ¯`Fdj[}u_|],u洖H:x(V)Vnkv=^}(2\^ ,4~ PSVk=n+RƁ2fnRCHTz.BxG-ܷ@BLLŞێV}wYōkon=$sZ27 1)f(s}bhR9MҪnM==gO Jj1b!0^r @fR,M굳# E lz6(/5) 8CM3n Hp {L!(=@%ܿhn"b{Ϋ~6*Lme=`\V):'h-f[ [zϦ]~+Jlm0t4_!rbbI*ofߎQWO`/\.(;L&r t:IqNjIp\,IZ9 J2W ۲%E3ޗ vlRDKZD,#~`pDLIq`:&·t# =j iE1G%deoUq*q*eXLNˑk~=j84כ>D;қا!v-eAټcuߦ/vii:.`pqBLW8];շ,[%;{yU D%ەmVyy! e=&ZPH@r2K[:6{ֹ+Xjy{[&{XZ2weje@Kþ|bk5q|5+U Y Qu:QF"`3\F٘"ڜW,9vbJl֪XW/^K^;^jjS1>Y8*Ri)HKTa))lNkgp9YsؑY2^%ܞri3rRC B57ͨ\a/9md,Dnj+΍Nb$fpNn]yi99}X)R4t/99lrmSR8vjz&bA;v[F Kd(]MzD:_*qsundžeGh3l+K.KbSeM ;q{9WigfdͬMŦM]}{_דݖ8m䴌ٰEL#Ã*:ou Y3sFņȾM˙^wuab|(mURT\o(zΐ0$EGeJƔ9,;=fz8Jz[ճYYv+TT}[$'TSMKx|TY$deSUm*|BRLKLR9ι>tXO46zw"7Z旻\* 6]Vʴڃ,;`y7>4!UM&gUS{n9Jou#> Wϴ)0ՀMl2,1\k3Po>Je2RSnVuJV6)pnLu2ظ#堏`/L6j/<"L!ڛ /z'H{ Fj#.?f㊑q8]HԬW!81ݕH \JѮ>ᾪ\c G͢\WM쥘XWPgvS+7CW.h_k.ڜK;L񇤙gRLV6[49v~%Rm{^tN^n^Y4hAA:W=Vwg; '̺JAG dO.I5JUCIs-qʰre]aɼ*ІòvbKǕ Q*Q9lo*\8!$ Lz>$NB ,I & H E\MKǛfZALg.B e)y%tb_R+Q6dTYm~7qйx'{h!A^ZTtYd`I`!\j%0@No'=KBA6^!Է tL簓{[ ((Pb ,hCKH c7E=@5h2i'R"XY+;S79r @*fÕhc'MT 4r -MWǎ)6BAQOL;e:׸KJ jCJ*xhò 2I " Eze$z|)? K7(hVZYJh+,590/]{O2 DܾS}֏y )-g3 0w I.>@ZҐڛ\vlP=dwhB-,>nt 4#:4z&1yȏIܷ#Z@T <w|ф+:D,fAd۸_H5F9eW͠ [5ƅ5WlZǫČ))ׯٵTҵ͚)کuխӵ$YM;V^{- S>W鎙=3{5Y*o3"tK~2пfOf 8hpy~f,S%xfH 6aD!Qe/=qDvjMWos%vSͧ# tgw:q;Hf͟,Z(L5=-B -d`/GX(ߖ3T]gx]( :\xa!w8wt $;w^;N/$K!I>vxIWL\(ACa4mS';8ONiRDy a4kx2N}X N^1a#diljxs7F;;@ooK4e4H=t@8>- =q ap[2|2|0MѫW.Q](eȨ/5S6=_h 8bw토cזtW#AkÂ\8jޝ;yϳV fV-F ?=G!~ 8P$ )+b& Rl%挲ÒT=/^{r{>sû`ݱ!+9ٟmD#JDTGc`y@CL Y%0NƼ\@5knk:jHM7{s;\|a>\$D>ls6W>WRñZD^.KՇ>tVŽP+T6qP Qu`fZZ;c#2%+_)*2|HKq븻;:׼_lG*p@(S71c6;'+;:{Y Pw vX6vXx:⒘ @x\  MV@7ƒzwlUQlbXrzN<ϸwg@).V`Ep}\q2|ZʱW7I JӐ_;% SM Ibڴ; qI ,lnD=P_7 Fʻ82*:.i9+T}Nj[H\}9)\V:g&@ #pgt^?R48ޟ_mT% UmfVmnC]LovwH̝G!Rxx4lQ(q5phF8IO)L8/kl6^=s;hf HA}L ؂iJ,( ӻ8$@b3SܼkWyR}'l?Rx.WCF'̪:UQVx=}#|!I d1ԓ]8q x9eg|.ʜRl8RQ0WPOD/ϕ8Jxh_p&h/ B/^k2'jJ& C$Hko.Lu6:8IE2ߘ0ӡǟ앳^g2ݍ>1W-½h`6|X: 9Kva1#_zN3Sw lW ~,'|R4|MAQww`H (qAs|PyxaxD}H_ϯ"VnA<[1q8By5i '&fˉd{|l%-xV˾?!蘩?6;媳rռrUj*GJYUr,W٢aQqr/>6]NOG= k?kE#,હȠeDH nj?umf,GEaCMC ,ZB.H g oA6KeJn/+$ػYNJM ~È%ҳ"88vI隬⒵%{JޖhJl!6tV13:p 55N?Vsy߲{6+2=%G`8G՚9p{tQ 4vLd)ѓjJ0kwK>Րxl~F8KY:9M#n%Zŋ&TOp`I؄R1J]HteɄZjps18uVEzz4vr}1Ƴ\\\ߨU#RT K%KxCh*~Psp!52o Őgĥ|cqZ3Gl*)Es2E{}G*&VlTVl\ G5ƚ"dĩ5sk6n(?u.:#ԣ))Yrk&O^8:U ʉPۮ;+Co?8]?»Q)v< 0y)ӥ?2O:ktRT?YN}9nR N}%!g4:΄R_5z;tnaXoM.2_BdAIj_nzS&ǝN4<*.j?R?[>xh:r:N G7b,&?)?'Q>ϖ]Ҕ:gY Dƒ+TVg/:.+-޵8'V%?('.&S=J9e(,Q+PEpR*:ylMՅy1Ϫ[\:Ju;VחVy\};Hd`|YDppǠ];d~oe]7O*V^\tˉ=4-:9+h8 %J]p\ABZty;/ D0 0@kMHZ~PIbʆvH Z;Я'PA8td!J1 )-N V9 T h [)អ;jiz֞"6 E젠 5G~6:j/]ZV>NZ *dPͲ7}HXK2H3w_O+ [`ZE" M.'\ӄSc ^[O5* < ି_&곰}sPjK(f_~]=|΄OtnD9Ca]/\L~\V2=Lh;זšGe?k k^& FyuӤ Sɢegqʊo76XZiknOtwt| 2QaFO˓7:~ǂ6CLla "NҦߊ#ms <P"xa߱kėZSbG.d!ncöʝg5q Z7Ԇ0,ӰK +ߩIө Or QcYϏPTJ7ǧ?TØS&$#+/%spMonmnmæ1yzɩK2BW'}SnD.n*>/=|s'5⦦Av Cs~bkoo7fe/>X|Gqp|¥Y L:8#BHn7ϕp>rcv[xHF18Mև.b{ē,9bbhx1/6 󁵴$vɂz6\^߿VTLoFݛ2Cy9~C+o,=8 P+[L2"qdObKϟ3GMNT%;e~^?u_*qQ5apoO?_xkNW-4 +iZ_&vi*D}PL`Qzz>+Vy:pMꢣ""YԊee L^,ͤw [Ke ӦV.,M,\M"eX]EVߪ;}[z-xo\]ow޳`sĻ78i^^svvf3~d&gF^3YUUxI1 J N S޿y4Hfl)\O:.ڻ&f& e@D\ A%nA+Zl, "ACQq׺s OBj5 ݾ.ݹ77w;gspОL,?3[|c1yqZXk6©*C!Pha8b0somLE/6}oo H+u;W\Rha#rcOIef-T8E^~g4wG;j25դ|P'px7-ufVƱT_a=Y_AN^us˭. {fI]t~-XvYtZKfN~~=Q#3a|o $Z. DWk6, +e^WӦvoߝ,u؉ y_<p:SRߒQĊʊo /rF7iʰD"nJ~h^%_y,0|eb4޿Y2>;WGHQ+q[f{ظ:T91; M'([,ܩIϫCk1 fD|RV;|f\SztqOJq)DMfӌwkt: S/ػ8/mH _~cRrxƔuA%N]T~fYVŬ, MvM0%s~c%eacw.8t*Zh(v\s1R&64JĎD-SLؠ΍.lZtwo7MZ} +1dkƵG6mǶn#p5[Mo[.%OIɨ}RHJ.R FJR&S}c>fWCFm&,k^}lJom`y0ϰ:nI4SQe\Q7g`"DA8l3~Tԑ&p3Miy)״AmxT.3F2(8vt0̣>{2oSv'opsݖ,RV]6_w13:ynKEgW}.-Zx(;jfDgFLJ4`zA}9s8ij-WZV$EFä@4j#cxp[>] gvx׈\|:GY}`W0B/" l68^v˃#E17c]s`sUpkPur]ʽ id?KdAM |pief #Oqt=t3>5N eJ^)W)QsRgOSv4ĝ>M/OWV䙑êHK+ݕc 3$G+JW~P;T&K% U&D){p^US9',1['|b[#NnT4u6α\~C _7wCcOffnƊbP Xw4y\c|cŊUsoT:t+2y=p~y2Μ, U9&3]Cx{W'U/ԉR7t TȌ1Z GXx'ٵ桎KN1rG! 7^3 /f]'UG2KNwJ,,8"im% A8=ElAdtٛ\eMc"J&$lyW~TkKgR"v[ô]5fmʈ 9wN9r|"vOy=cw% bbob]3aoqmv2kk-à SYSt~hO^@ANw_cQClujU -mVݮ܌ :ܲgrwlZ̕v^YVv̚@g*DbqEN~{LmMs]F-$̬=yM~O[ a0O !oipY[xp\8ע Vj驪䘄DZ͚(#4ERZtX?E##3iUz4VJD hc  tijeTj=OHLߵ2齄tYHNP PVJp<-*9:1QP@5ZB,IR*Ӄ+zDbBōi8Mtg8U*![#[V 9{ ʲe-sʲ$I\Cld3U )6"Ӥ=%u: >tM2.OG{%+a:56 U^# %ǛM_ӚF=I$gônn}pD,aor$G3lݛ$Io2]MI'cӴMi.}gyc!e# N&F G! dY~9uO熒0>`ĵ-8Uz&BR _bٔJtΦd=uIFEʨOdeTCW?HF Q2QFtQ`3[+=MWϩm#h'a0J8])PNuw^&!n{ u^i޹Fx3]O334 n)6`p t;`KC7}Ӏ48}4#ҷ-;@ڀx0y`|8 c:5E8"6Č6v;cZ'h'@L#iW|7 N xBR-fݲ*pv czz>|M'<oQáG\eCFBRZ$B Ti3ƪAM`V8Ed(ܢ[Zbit{1n/nI!v@phM$v^%, 3߽贒@j`u^\٧u g±n@tl%6g1jx$>d9Ľ96YsXL<@K7xXFx9XE& "!b QLu潞ax(#%D9QA "Q& {25Cj|){S?l\Epjy2bԩJ{Z=Ŭɵ4 e55.Psɵ~~ny^ũXcRhĞuԤ:1aNZ.&VXVX+YyoL/WaA8hE=~e۔HZ'Taŋ`66ma5bvA:Q˸&q[UƌXT:}d(S! :|0Odbyب ]h,ZY6>sMYZ=O7C &R|C/_F{u˖c#j-+]X{ {W&{D}}V ]%Zjd)>6,L,Έ{"\ď7cށ]F1ށ{p`| /E*# kqA6/c'#$0ʫFb[˝l=(#62)w>D&"I,w'ҏf\،]؇aB^e?){#e b25 wKyB=+ϨWjHn?:"ffu|h~ލ|=x75joDԈDkf)cefx>$)?j-ᐻѽ!vonj}~5vvww:ڙؗ?mO%?]CqtTekOE#I 'iHIK=pIO2 dN [GؚțH#ݸ)},vLy._ Q7murWjOjJ-*ݥ*B-A39ZOnYG߲~վ_f#~Zm$uOCb&}W(W|o`/ڰءqoGұ{͞wӳoPk6rpF%=űtF=v3PIL[]"ߌl>.>nnQw؎bZ7߾{LגR3r~URE n+gUr؞We._n3И!z }& I']#yIgNC%7>O{G @=؈ B$f۔1mT7=)$ѷStwK>'R<ʿ?a_h,ߒo/`Ȧպ9q~V$F'tWcBW[{ }mt[-E]^p]Ow}ιr]{L0k3͢5:AL- ZQ}ZSi]=umw)g]/R[qԏZ\%(%NnѠ[~7 i$%L^F#z2'ԐK~*EM# &SԐ֕m*lKf_wloߐ,o_!r܎Kvܵ>t+9%_`%P00{+pah3{l&FyV4&7LcinV&޴1 L;I?vfژiheiFRrf6$!8(V($kPސ^6>mhӧFE1-eE8e*߸Ӳ'e[ōmr%dK+߹0Ip)+'򞻧] m.k1wVSz;+:ۥ5۪o\:}7kp~́A/_/ﺐs]oEr>wUkz]cwwS/[z[wU4QSGd䨐l$'!RRPSHQM)%1)uaE (M#OiD{h:Oz<f5YfnC4\_ WFj~#@|Ee|O-!,ҲT*-'l݌rDmԽ3QOiZז18Q1sx6bVag4%X2 !H_ҋđRI iGZI-4'3M剦FSw%5QUBjsZ"iy2XH,R%1]K }8kQ"1T a@ҟFzC#APr%͉f5Ӭx,Kjj&TӌPNG)MG@!Mܚ94jJd*J=ޓu7嶻!uwANrCnprRrM+ >) Ԕ%:VhyFGI }O^ӑSߕ:BpPl2'd:HV@۲Y_k_٥}gE Skw9m#״֗ve:I& Q%w%h*Q醍Pc=T9q-J ~t.c=CR l&Q<(fꠌJf"M+fk&55tS4S3⦎-`^9̻6Ι:aS 50]o7@-Z[v9څԢ8aQ{&cvui Msa:HBmkGp{ޤ^i$yM3~KI[ΤU!~|S b56yмlhFZUyY"LdJB E9rue;j?g{g2c۾+PJ[g?@SXgْ𚩏Ѧpr4}~E.jgujj+o7-}'Z;7 >gLcC)cs3Lay43 _\c~R >'s,7 ,fߙeF^Ky,3̡b3No \K#H]tl&15b&o6r.T16b/m6V:Sgڟ96K`<#8QalkTC>ŋԜzv,*ؑ˹P8@Mf<֚t?~3yo0#ŎBah;=hXmDz;ߕ}c-ǀf:v?[#9>S_02י[x87Z?`"`~5K酜15n.p >p}p9<%;9FjE?Eq58;hIԨ8ne=FGGqff,&_|Sall\v)rrRM0v+Ʊmb{8̘=1WQt6Ђ~mNqtO#dTFƘY/ÈeLn΂1ξCAΎ3 b=3c@]Z|Kzp$,mbg+'j?^Y,$f׸-oMo^FErg,3MOq=զ6pm=_ɚ}-})7Q˸q=UKE&:_C"*xS_xZ͋Ӛy7Hk{4ڛUTO]9 |6|FOoƳh/ӁdyoPov~;)?<_>T~A[W؎!y}\}íXs~]C~ugu[7^Ouz\%Q/λz֝y~PmzS3I}Bj&ݮYGI"yOwh^Eͥw9@?OlMCZW곤1_FzCj`#D?TAi%oЕo~Mߚ؜}sXv\ffz[:X:DSPoyN?=2j牠yMutBP? OL~l\< ~ MuZd \ܫs~Pm%I.?jA'^-6hh,~5i`~,T~Rϝ9a5 #h]* K2P/ )Wsll~ϻ7?E)m4SzLoҀz>Gix0O:?g˯XJO%ΓS`Pܟs~N0ѝ~u[Dt-ksx/$t|M^D~Bn{e/\<Bn$|Lshm1,űʖz[mdsm}`N*J~$ QUPD/TyBL\զ <e)Y\ݯ@fR(ٜc6sI&6)pR8)k<)$~9>\5T|m! 1C{o^AxgRqN6M?)&xak%y>ߤO6lug: lz#Ւͱj`<)@rq]I[yHR<kʲCӤ$)~-ʵqRcmm͓"T%G1irXsY3o:_ZH=G ?C?-qKRᶤ??##4Ѽ^ W_&T;o%GM>2pФy &#.ÔO?I/mmm<1)>x{ XGez76AAPCaQ(Lh 0 uFѸP׸&h:$Q(5j0ӷ0_nny}T[tw-C$XXWzsw޲eԅ[/xÙ\gbpg[%=S8lΎ8;쌳 ή[WߑƂ!os菦LNxƼg܈#~8}`"6%2Ad>@_=^ȏς܏a s^z9 p_tH?? z-s/}O ߒP'$=s͏ ALl0#{z| R0ҵ94!#/C,h 9seaT'Q{ov< L.5}OoE[o" +F"q15o:|ݚX Hq=; [5O @' *e<1ୣ(:͈~ 녉@(jUE(ﶋeN?(i;BnD,|n5"H דTI֓uh5^ZGYlpv%YG(:j:~mZ0(Λ&ySq޼8o~ mo.v{ދfCQs#aa 06R8 osrOs:龠4<|^ȃYb﷚ˈ0_nNT "gɻy!0\zr`)JQ礐E$;!P~2LiQ߇Ox3cT^:p3ȗ C"]V:Pj?@KQ&R#x)W8+$<:! bl$.M@CC{G&&:&w2WS}S=}1*fQbdvoopxc ~67 ?.LzU[K/ ϣΕJ7՗oVKpQsY@+TnUV*W/a,+AVq+gVU9<޹kSʆv\0 7+0śL^b_.Γ\IΕ:A;^c ~^8AG=Vsft5kEs%)N_iɢ]Gv;>K֭^0b\}psTf]3. lΕ8ifu\w@tQƪBvqJb(r۾"qX^R*Ìڣ"%?Lj$oZԀSqD KEy3ߪ?FHFc`/4hjim՚0ǫ|Uyؖ<2UjR$L˝¿Ral\*WS_:|N)>NI&Sǘ;;_CI{?hSjn}T%WW# ~~=S3S8}R?3,M0|W5`fUuIzV/5R| ǰ;]CگtRs)i.G*~◊+z BYWzV**ߗ+tk7w?~h{ͦ!!VN1wT.xv7 KOGǾ0T60ZJ(e4jv&Sx(SdĻ.Q T"v G}Bʦ.Haj/UNݨn΋j 8oEēݬ&;5@=3WFJDxg3'규{De.5 X&駳3q 7tLֺAed00tJ5踔 z` qT켠'1!p6.P#+"ɲ2RiJi2F/[%gxup:o3ZPγLesst`GY~'s XM9=W/N*^Ek[la+"vd}`WYfg@g(GH?a9W2#Pf BpboRY: P' 7 | qH^9i"(kH&N~NW@jN#-]DeЌmqQȿ>R(ss` È*-hdrl?W7;`3G7xTg\9E-|)-{~a1n; ! j\>wZi02g& |M^M v@P.-2 P<^Y{/29ݼ|3!N(mWzlgR8+w&Ɓ/4D"Xk,z\ یHn#t zP#=@8;;Ӎ5!P{] h2s92?g@8D'_qzƁ 1ZEӋ!=0lXy_aSsaL=aԆCNa^;%5@.&x"f1fv0}3 VNW~ ^F n1{8Ğcz #Wr%ñB>ݝocC{!̧LB ~s&@*qcMeFNeiS(f}zd-N|R̃n.jn/7wøT,*\$$bq3FPhn+ރy]ңvi /rYI:h 1OP;D-%rԗrG,M XtRb=@.Ȱs{YAB`Y2x vsFY\!+,ayO`HHW8xf9R^n|D%Hieyn}O i#rAepYn[1 |"bG~h+$9yoM&yK}*Vio>6g"Z~p"Jyڗ4gءDĢA˼7+`B CnG.I.gm`m`70˙~Bۋ4}!0d; xzK#X8 Ǯ5J!@[;(Dc-Mf1%M(_w-pV`c`X9?u `[30?nPu[' Ķ7 S(;Wp qz ylqJzw&vlov ^IlH_&ùK1U+U?/g%+Umk,5)x,mQ4ZHW{* vGgT$G2"S TwHCQmc<1r@S 4i^v_SkG)oOKq h)R$ŀ!=1 =1 8N0a::$mѤԋ{32S6=HJm77 ?zVXL;!$F`@z ;ܱ8Gf.@عma#h%DEDFwb=wٹ3!ĕ=G,wVAFoPt?wo9h2(|!#[΁<Ќgӄpl~T coX=sԨ#jұ*U7D~ugoM8c_6Voot/zDix+.{kotk3٨M\ W4{4s>S=͇(gQ%KlNMv9f2 +0IR~=j;:7OZb ~Kr\ {y%~sv/#a/X+6l!^v ,x2 wtWҬ>I7'f33>/&#"vd:rXvFO:BUH&Cu9^"s giE@!A>ǿ氢+2U֥Zs/#;&~Ёc5EMx Z> il4 Fwtrpt]Šǥ35I$ rY dB4NEZ`kGt=CQ[  ]S&,h6#[njf [JBtmtݛy̆52(^NtL|Ӵʸ( jCyYlƑM0MgN-b&sG0 , WYt5Ҙ̍ 26F[/YSʢv)&iѺ3w%!;4VV:An6l*W¯ иMgdfog|-$$ `>3*#2rZMa+]QkW,b"3n^/~6]/dJ3Yʾ\m}:MC?u5M0t8$CK?ѯ)Psgbw12Tet2>MfkS}w[XIȀOvj>/jg5}w}%)b7}q\'yΈ ܛn9U7.]h { >3P;u|Un@WQcigk4|tw3ͯOl! Ɍ Z 0c8v[r.,U+aFfsM3¼e vBd%DY{"h 43=AvE?xd6;Y0CbjxwhsTYػ~0ɜHaUF$8TYf_kel<1a%WbJ&HF~ !6- E*C )G~EV_/,9/ PcKkCJc%C]_s9E e-rsln}n?gca{%y>,CN%`Q-O8_|DRB%:tXI~l{m} E=N&3nBbuSBS?Jr+Ey^95*bwAoW-@XՌ(*LbXT<v/{\27q(+aa%a;ԫFXOJ62fMǝyRu&w/v&m~:QLR%W)4ry3.vJL#_fhĚ7NMU:70{Ȫg'Y!VU/Å$VbXUs*Dd+BJaoZ?x:rpiE-VX8Eɴ|QE=tO4&'vLbLDX,R/kD#W*g SYzv&ZMKR-fyRUClxON "SSo+G1u_\rfQPR:${sJWNJH|1GKU>"Ho%2*᝛P#ixVȋ>VT*I%cCN)(:mmmāh2D!^EE>mJz]ӗ%71LlI&ߞK7$HVZSuڄ?LUew2V=UŁӼ"wԗNcC~ޫ"bDފ0'+gyg߀u;kW Mu]u i&ٸҕ%D,ˊ.~\zJR,=dV/$쥊W$`DW"d+Un\pY>N;[pugˁ*zğړΜ_٪'W"W 8d}ty2R`R UYr73h[a_"GXV-AcaФ)9_Y\XzVG_=dx F ؒCQ*|WCIf9cEN6<&mQ|TɜΦ$TKKIEz~Yv.p( j݌}bOK0] ?yD)+d>-y- |=<.}Pm[?uZ9\p]x`|РZo?aa+(+ſϰ9 *[Rnݟbr~/9me=w&XC~_>rue9@WcV Ιnbi `nNQ"PDA\N-c*|4YQyy3sv6T}ȟeHC&&%֣әy!ҴB޶xYCg u³ uuV%K,˙Y.C\Gj3rg#ל?*FecRgNK(@g9LnZ=졿pm7'edY>q9m[[c}.lqa8&|'/(h5ͼ&A!6'hŨ䝯z "/gV3 ʙ̌rfZ9VLQLd9(gA~`τ ̱ ̞ \HL]`\`|.0geܱQ\QT(of(Q(rq!F1Fgą@EA$X[0xFP߱l jY{',b=%1"JI!Gf?zC?`g)/&ou1e[%.h7bdD%HAXٝ0 &|+= ~xXpܳKY'7qtpYgB4A=_?lm.d֙{pǭydrkOn/{?| \w3{Wsv_NW5"ĭ!o_{uߣ@sDt㋈1 _wRzۡ5">$RB} |q͞o-f)wz_!q}<7ZO_H;)PH^}ܖ+)_{M/I`\lddP7/~6o}wjr}ۊʟ= jg/or׮B>u?yn_u.T=1:1nm Vlj51:2nm c- LX=wl?urr{{Ia9\4ĝÑ; zWN_fqp3}n9Su|lz '9]UOx%:j?{c 7(N<Vx| XGW=4̰kAP( aYD(KPK K(%jQq(Lj s?=>>4|35]UV}_ԕjI΃wP Ċ4e @tX-g^\MM 96 lج;HYcf=6l؜9c[wl=I1\asUμ~Olg?Eec,C:~τ f{o3ёnxu7OG$tu fc{y[!i3qs)]^6-bK\MmsOksԅo|燼 uN aHξcc#~Lh:7%}zGJ31 MVGGZ7\7ύѺ/D&m9N{#s,EA瘙g26qcG:ks|u| q0l8pe *}G0ٝjܑ9^mgzƎD]# <_<'fas{JgGX0 ¥KM'{26 ƌyw7,y +׿MFc-.јygS{A+!lHؔ4VDhr m:>1ij!<"zg6;}4G= `E #\*}'D๢_b W!vp?^$k573XD[c#xbHaQ :QnUFql\M CC,D.@ОcQED>9F S%~RhԂS-|;B4_\HK bQcvr? j = g& '2ES \!!lc~ReQn)ϰz!~A! 73vHg9-uNΥ:%SsӹӹہG@y2\ BoK&-jyh($+XS`݂BkPnè]11WkC  Jy/I6~;.n`%#j3# vvsQ-S0@Muno􂭵_U_nCc?>XN{vßjSŸclzwMMM=Rv}ˀ?3v7/H7 }k0{Er1fGMu{>g됓>>UgVouE;1|~u#ADDxw0 fBሆWtR@ᒨϐkb35љ7aBXM$zlD8 հ7 Xz ۇ-<{Eau꽒zN;A#x9Bp9a~woaEOG t O3OE@ .{s MZaCFXS9 ϴ]!;i}ABpT/oRa*!W _iΚD+o@?Y8MgbӲsYuQ˲5h ף؍U-k0҆Jr&z 빌\|Qҏ\o [wÐ>^3#hE Ar'ߊt6 ;s&-)U,C2-itǐiC#Qz&Rnv͔rrdr!R-ȍ|[BѸU'[w3L/CC۪~Ehnk7xVb}GUM %[6x? /If%Yc"xJ z @xF_GZy=^|maHm"@T;e?ըhTI>lsUo窆UQ`'2#)[g>d3WI9u=J䍛k#[+iIFRAk'f=$(mKB(e>Bg=U(FTģ̼֕ kgh64e#q6y7$/"OW97 (C`FtvGigOzziOЏӄT6;E0C LjSJds5t&mr&Odb>YN'ŮPM*ďuYB([,+ͫ-#BCQIBA nV0H8nyH;.fӳL24\l >C]}E V$gNksғnI)|Xfq?[epbGv' 5k2{} Op&p+d /n1 pBht؃_mj4A(\nh@aPkȆFcX8~Q4Q#ܵlB쐢zXEL-{Ȯsǿ(0Z8a#'ûS`4R҄AF@A-*y~+aq `%vUZ |7xBUU 6*yy2_ ͱ nIԪ0bqs*t_JXaKqBdf6AUk Zf,YP3@,umb9=辞}QE;'W7K3#ekZܔnj~LW^y)3Ń C߈]T]%W mСT !<`!Z }HE9/W~qX,&7Iv̆y5>^d#8<º]iZM7}i9MԦf*6|3&s&P*`|Sؤ?K׫{xLOSL#X˷'DàH:gc#k8(=fE*J鷄FmmZK3(4;㯏+[?WV?p`L""2)p6ߥqmyհkP<FH}NzzWK;BdE-ѮQ7a,  M7N_#bȖE>E frvV-B>o(R`- bddh55dUTTd+7i S /šĘt@#TܔITݿF# @A Ѣ;kQreiU<e)J '( ~o^XݡԎgbbQl=ME'9Mr,'9Mr,Sod*~L-z<uh\PWK3" FBjȟX1ul3{'3'OTc_fv[7;ܭ\_+fهt{s4V!K'DD.b1%'@I'_>:OW^F}oaTrS5Utf~-tJLÃJ%R(\dܣHVm^D&,R.JѵXвIZax0:rWs=ze( /]5J \%KWu۸RjE-ѽ]H-w=ٯ(UtZ7v˾F-Lٍݰ n7ЦOw~_T%K=^jU^.V Xt"c-dՒk+C˞pd/w;DKёRg@*k ^/ÝI/f.6g,r'FX9P-_ٍΜHoU / 5o*Of⭆I|V~/^kȍ_ *Clc@Σo2wa.' Bo2X /TpO;wm1U,^*w+}XֵGwe.tcaWޔI(ڎM4.]33U&#%bNtss]xWۤ-FMkJnPTO=zX0yl$iQOdϺpot^MI=XIѷ66ե);FBHQ`y_ϋϚT 8O /ul.-^,41F-?e Jx,+[y޺W͆j8@)uS+>I/I49kV kB戤?SNlBVx6gJRzY&9$)M4K]%LF5whc]":E$4G GG, %ƋE 񏎈#ܑ}=|d@a}җΑ*x"83MDiRODPW>ӓw{ nyHwi`"B&vYH=f u 6lyŌSԍ|^L=p?>;MvsMif%Պ큒c<Ʃ!h0r.eu^e VC]+l"Z.OBg}_SG[W|u=|ܖnG?}T2w+7;9 >O@QG(*m5±a[G=o5{^L6_юfsWd Y!Yz]*w7Jߌrp(>`;-Y-!Kݤӿ/§nVZ&aݳ7Y{~drV]4vMfN63LM٤(~b)%dX(An>VȅG^8= )';2xc-{eNPGX~9DC,*a|`#gߗٜ,v 8|"q,ƖұһϷ||b]dyOI>##+Qf&j޳d˾qFa32cON+%aSSR5I f_J2l,l+ei2Du:$vҬw}ZMNPʜ.,,Vצg3I)L԰̴Lmi“vVt Cj *m䭫i#/YYmN&s1Gh3i0Kg5L&Y=>Q:<-zġ/=Jsؙ:2-;3RӗIGTΖdӾݩLJI_޺ ޛtb_2$s_]E"Eefq:WY\*TLHYw11sS5I1g\mlB/JWX)vn*~Ȯ)>Tk&=v.0>_ 3MmEGNJ$=,-h+ :3SEn^Jl~i<`ltH(JLu@b=0NЦd=̽wgiSQjֶ1\`"_ejWb!CͿVn)INӪ ~?wjSfuMiS40o 8=Pg?Ǭ &/@\XN&sp̹a9KfO% f`|O xN v n[RﮧZuԚ)P~M!_ ÷*@ʏ'DV /W DUd@գ<^@@? QZ@QkWH[}Ц_Kܧ;#FnZ   ~qO@@;x@` P%3(S$(k67YuF<=d$='P>kAOy/X#=~ [ >A 6mMM#ԓgDIGЗ?TTbxltPMD(7IUkO'gto.ݝn#{kC@ҳ!~ ➊+ѾzB}JxBY^فBO"K#C1 -"io!zE\`D`tvEF"ښ 0U> OEtM+TĸJ^=_5FmYv$l;4Wm/ INa;CilgHB-cS.Kv(nhR}vdGt? x WY~Ka ɖB8)6E,7)h C v!\&S8m)X4 فH C'PI n4)5r5r" Vv@J%?ww|JFc=h P$7i+2`ٓLlΓN?nzNj /n=?{zpӓ_ UUsR.81(c>/jI(̀~lX'mXZ`f]'M6i!y^6TuW\w%A)!v׉[car ֛)-Kw'5r}wzV8?OdMA.r~!)#& 7呾JMId-ȕlҏ^&"oM6&\&i.9s8uNςsߕ? B㶚Y301^=X}Py7<#fQUnh<״oi IrP3ogo[lgo3}k|;æ[d)0R̫U&6l:LL!wCG{}*yfj4fߙi,G~}5W>]aeG'}~xz~y$/>E m_F̖Xkғ4y<Ǯ`_׻bc6E$fR?)ʭrږ0 Ls7+n]-q*ȧg~lSoÂt w+~YA7:m'sgZ^0NV[1bNŪ֊GCNಁõ1VZ /_+r6Ye 8^|tQFh}~>Y1[-?]6ێ3RgߕVt^տWUɚ̔luzb=%kW`9r\UŋV?UMՏ,o2hmBeyPf6>ATc^]x1p_W1/F}xגC5b/ >w~ k4 Yw:zzTs=XR{@` BL1 RfN$ySoaߒxRB |lM% ӡ `f`hFv8&W9F0_n7ee2j͗pCx!cFb{cĵvxv4-6w,'D9.f)MlCk h4ƣX:do1ˎ0T6ib0N6՘Q|4N<4&nU8!!b ~!7NG Gܞ!j3q͕?Rw CDc&F[$+̺̙*s98Y ;cVl^'4*B9}v6_fܯ!0Auo:(SEv{x1OU)^{'ZS[Y@G@MՄ)/?ya_v5_hU'0 a[9\>,\N^ _>r^r_?,z\,W+xpB*OW:rB%or%{Eޑ?j#"(Ȯse2)tɊ60rOD,E ]`ݯÖ* =L mRd7Dz^ʞW&bGғD1M igDt)*A93df[M E|&O+4٣#oQbAwAuAUچV8bTJU_UCWlݑJK{H*Lawi GIԐ>L+J6}I 6~q৺!%C}>V]<$','"jUS^+†:x":$5Ec.uЌ톻9V?)ZHyWѤ@_xE9*86|P١}@aG"- Q<1ϪѨV.%=<{_9s_ǿ,x?mʮ#uګnU}"Qv_y~Aţ?(6GWmI]qMnV/ޔwk]Yc^@MM vq5LӍ&,p?HYضثx: sv 8B$}łHT,U*KK6JUTl_0N6h2gk2fO O W1=a8*[kX;2FqRQNWfx`@3W4ʠ2[!g{ފ$K_R_ og}"?PaP*g$~z嗺s .a1 ]7>f<,PpnC"O(z6B/oB3B>8/;QHYsw9R@p w(_"fAmǖ֖E= ;+ 9usgBSQ* dWeuo_|~::ezq蓍q3'e^!3:I#~?ҿ=[Zj)(J⛑#'ÚssXl+VV G׺~Z[ ,\ue۪++A+UWFekv#ّokpXqkNa7WJMa1~)`cނM[Ox.H++& gs=P"kŒ ~aiopGzXpET#.SҸjEuV@$3581SQ;ip7~֨o)U)x;_U̿T?kإ[\BO~T}W6.;Vt{٭>ɄdN:d J18ѠSZI߸YG m{֯:J: ~a.v/@&2NNZz{'(hw:x\c@uca= PYPY" *Ӻ0|lFCp B`TMI k؇-P[{ j 2oZJj*u1~|rJFDQXH!$<aMj VO5a_Ǽ1g=9"[2/+8Vc{RLҷd?tԞB^I8KEp@]oEZeIB4ǁiM#)l4%k3!segFI(BWڰ &U3-!çZ)i暬/oC{:n dԩXh8l5,NEj 1ÛMꬬ$S-[ QY߀3`t67ph{j6s6s666mfmf>Ƚ$f&fF!m6C}A# a\]{]]兮%9d|0U*t{u[@<(*6Un*lNOgN'ჸ!S>OʻO[NS'"8M; rKs am_!ljW_!zn|p+=Hi%/y[ɧ>]  (G`[1Ԉuy?}F^ M5,^kASyx=u`h O`,<†; o_ \8>4Wc/8RO| 5odpW!Df#x_F~FχP=oCU(\_ #]i51C--Nt@7k-=gh.?Bg 0 gB!#-?< tn.֒֞+er]yӱ W&пZ]&\k_)[kfۿZ7 ;VyKm5{:|q̃MtCky<_{g߮ٙ*[/x_?++ϭN2} 5ϯUaK,moǶ}[ ;̯㽽_Ywg5}w~'Z;Vcv:ɻKjujWkus"iC㣢 >>t.ytxÂc ŵoԇJ xX TU.$f Q43KSF"$b).MKLQ35]#% =.9{羏qF:S8?}96oypK{\ȆN879,"f~W(؉?7Cᩨ5]*uiil~zb*ֲ XmV9?@ E{vf wx!8~B-;RS7];CF N[hi_?ᥨ޽nQtZ~vo}wg'NH l; qȓI)b OJ1NsϘ/GzF9v Q)Ɂ;&Or<*ڮ=8!!1.>m_Vcl򁶍_W۔',uW +9jz#, VCW\v}w9$ifqx9v>k/}e;.6STqOi[[å6z$7h rG :zWV3WTN?w]q_sk#nƩfc6/90gqg+x\Wzr7y'KJ'A 8<8np 4OM&n1q9KfczL34o$3OGy̧Aץ/yBG (SGhDLc @H YI iS)sx7 z^Kx-4܏rΏn"\_zpֿI:j0e LǕcGZ}1~'G_֐o*c2̭V U*dY嬂VISeknI?ҭUYV:]L{;z ͋C􂽊jdb98jhiЀBC^Wq}~N}O7kܱXbjȸ C 6-5L2a9#.H7!,>FSe@yO9kNQozn_&@q DLhfϫkbOAs -pbb3D"h!*xa`+kC hDI 8OCOsWJt]䆓ԟp?.Z*|c[I0inU~/QƗYU>/S嬂VIU*l.RlU7(V?}f+N窊žp]]pnL+]{wgBI39^C_YÔɂ,IlUb4RU^4R^YY%X$O՛PEߐK>?uu[90< G*8QE<Wܮp!ފ%_k)؝mzCiGP6'QI%%r y8r#ը9 6KDo10a[>ּ>Y+'$kEóp;;.ӝ ԃIi1{Qס\)q\E*V}c*`XeBV)XrJZEVaU*o#`#1\ֿo{^M,kzHbxwX/|?3 HXPm@((lA} E*wZP D ꂮu * ȼ{y8u!Lf|s?=TUktza $peE@t73 i5_-u `c}&&fج bll6la[OlNza덭؜ؤ\bs'~cm`9_t Z}P?\1b>'s}EQoq/}d>%;uz§ן:|I0%HAWw>z"~M f@>M'jzm'nx/wXPW_^$)>qJz0Wet{KU4Y@{0o|a~ Y,/jLȇT/Qťtʟrn:O..|T;#s~7vX&;1=C=3 >tq?Juƈe:n?u/IǺ&uKy4x}#6l 83]On;wJ=IfaܸqNNNWBqė72`÷~1z֛Q<It>MZaOJ2M=^Kǖj3ԙ>50ċOU\ d 7_4WɛFEeO81N m0&7!x h|齅5m(H7/h HPj8$@_~h29 ų a8gY܉$< DD%VmEsT @n(|rBUZz؋'b91 On# yVmd6l%[)Vj+JR⭔Vf/Ԑ`Q+JF&PHWn+/St=VnґDs0[9 qx @+"5˽́P$Db8_.Y/HA ٓǨ=Υ`-GT@\GbH3o_v>9Dѯ(+xv2P  ًCFT`PK zJ`զ|?܀{s >3d5Ar:Tᤜhɧ:ZYlgR2[" &!K.02, 1 *Gr< C?(S{|3N?ƌTqV9547sJ9p0U3~1(p#@u :a(mq^ei%KzQӉ^KAҪHC{heH)68z4JS'nn=pQ?x `&l\4 e~s12`lݭ~.:zǵ{K޸\{Hg;gO 獋vεsysIj :^άUWUzQ8l9p^0 ;cS޳}QO =\S?OJ,軼~.ۥvpVG^*I;>ub^J/%gj2Q9gti@ ݻA92+>.*X[(rɑAW"}0cmR:ʨj0~I?-P9zݓ@E}G-g篍Hr[ɯ{לwXߒ5SayV{vQuQc}- (/(r@TRP2GVQZ鶝[MHfciD< }tݸ:wj&aY|e᪓O?kϥ z-D\󦍀_!""\3nu~E$2o<M+>k}o-G={G:O_λDW(ZsS)N)KJjh#q ^uNqCu%lꃩiB_d뚖!\]`&<E6>>9/fVaaX*\~C.^4Y27\*dHiXkXox :XW z0#QT%"oo1V̞!5F]aU!vxms0[tsӓ*40^i7䀺l7EC`wq9o̘|qV˲Wya M:|ry?x:g%ʛ5HWr; юpQZQkTkTOa8O+R18NWgZ+ >gM ؈fh6"Q)"}AyȹatpeY}n<9=XTG{I~&LmTrҙ4m,͌w`GMaRq6j4t֕t:s&yП޹]:!L(3Y =A% ݐ.)rk ɂSbU.u.= 7`Fĭ&gbq^eNi2١DA}~qVh$)zkmN[ Xȏ#P Yb:{\M<4̍?z6ls"Y "xeϏ ! ԛdG "SqBc Piq"vjD2UpESRu{مkV,ˁo Z[<D&N L@` pP:-M`Yb`pl⬦ v9r; ^T`6D*<|(5EmQD9Y+$ *඙[E$2IHXuGZK|ܼJ+b/9OEs=<P4CZpDk֖?ii5\E@SIRcPSMf=c.Y!)V=ecX̭Dv<`PY=kUojsvsS3Fs ;r c&U t#UA:ݸR OTP+A~OցF].p^^EusuB՞.⎗ \1B\ݎ'"ajO@7'FaFi, A*/Mb\F5FkXep@h-) R !NMg}zKcUss%RGȺj B=O9)5W\$7J%[ld葏B f*r).^4.u` U,Cm)=Sh8m,T%ޓ?c"'G؉r-2§VD-*^AAz\H+S7 l 7`$n ֠caP}Epz>9g hTׄcq1Oh[?P77y5YAo18bũ_VD`TX-ٝ];€-Mnбڛ?`0 0! aF00 "0F 8JfBaLf Li0r?r@G\|P`TBp}u={8lAг{95twu3QƲ3<-Zߗp'pQI 7.|*yC9ߺZZ~ WXj K(w$)/mn.@EyKJ`'ZHR ڱT'Zd鏚J WzO5mOqTg"oϐFfk˫lǿ_7jk0Gc,Gi:}Tuf,zǦyd3g~9"sQYt̤aI'jm߂ bXe$kp;S9cM^}zٌN3ƬTL:}TZk[LKzmn6=P $~_lbJXII˜} ~٦ر1F3a/mQOx(6u6-=-^ž}{ҦƗ&~Q8UBp'޲6$:EIQYBG>wRIզksi 텂7Z~O;G7N45¿{<ݜ[Āe\"UGLIJ#cJEљLFΜw{qzAK+2%3ҵY!?VU͕/Btk$GZ %ީnYQة&Va69V01@j@Ǽ.I*L[%zv*WjH"SqhSĐ꓈i{EL?B2կXT|Jvz` !tZ\:Wmc]S; 2s&86$?7x eL8Hn?CeO/rOGP8z"om-}AW bf5B^AR8^^6v 7=^t/}z X0essb^gf/@Jk"?%BP֛bRRi8fkZF ku}6334; ~'N#ILӼˢ4[ZHn^;Bۨ{B y73?k2Knl;EWjѧ>x$0bȂ~2 穜Q8]ܓ _Ω H&:0KH~3cn+ vQh  C{ t&$r1']t!?@T]#w:@&XX裡 *9B5Hp Q)`zBfD"@։C9tB,Hݳ 6-JnRV(*R0 v0Da sySP QE:FiDER98 6qVJt(κuXשnѱC*(Y2ڗzLWQ8iLoIOM.Y^ idsj=NMI]:t|mnѯȄ>~(!bID2@:c¡ RSaQk,2qpqu\ S#*E icyZ*qr4MV̭N[kdyiPX!Ud>s݇T'XzCq6Z*}eYtHv>I`=;L5gHЩw4(~D-̡e8-g rv[% 977;̯:)˥OKbɂ81 h2]UW*vdN >H[쵆P`;G!3#`+>Q]@AA$sҰ6uoī4ԛ(V a@823pӈpِ}rx4~v!Jy9lVO­:(sC=MӌdoEa%!\u"KB `v`x%10U'@ /O&M;#L{2^5uDҲCyn8 <0 Th;1'I[!N91RIsst_H .9:8eʇvU_Ha.;on(3O^Y]o qi8T?89bCHa›*>^Խ3XPg.zRfNs5ҭ") xys]w;,!/*:^jXqUL*Nك2oq}a{Nkiqm싀⑅wB)Ti8o;s?6C*$9K|/#~`[#FY*F=MvtHrSݯ/ٝc+ Qb]l1龎xlGI-yԡuDXU߀ӽ*}v:oΫ<+8>O(Eq#uu'=_=EO4P~<H|RI/rv;쀩8[тv7Ū7EMQ8XvT;*(b"SU]  +zAjlUD f\C|eJ+,SEE.g'l :h/C;V#BvNBb2sd*)9cUZV8MLJ"cU|u*h)=b$$;0x%ty5Au6=WT" mS`oK=$)(Dn ؐS$"!j3;;h_% "d/.D5NDY0CDMBj 'E| n8Ӱ/lna.xN +(-oQ=+T"_KK|J~Qϓ` D1ÉЎV2-8xPHA zպbW8$E\3 @Qփ+\@Mt)2-['%C#y3H~eg =Q j" ɎA]OESʎP{P;A&x";{hK-J%RlI[*E H$7?8, 3a26st9|n\|H2&: -}maDYܢ<8]9O)K M,,KH1PơY|"jJc։=O8"S:xM&W팝r$'](nHª^mgD^7mP#pYaR:zlVd sS|T+/1Dfػ+b?|y_ BiZ/-Jà-a2YV.i;"'޴j^d0,1L눏k6Dv+Z#8,{ߕu.bu CpSt+.~ˀ"$|)(:)0U_1PlҋLQC# 2 gG`; Fr9* T. ?j7_iF1Á1x+!_ܡ(/((G ,; _9>,|C2}ݶbOȗ%$ڐ Bb!sۼb$za OOI)),D\&yJ8px v0 xL.Kg;ϪYLK6fjXJp%Wl!1(K9 ZY]@A5di0Y` ,lݕ6'`f\ -p0K. qGǎXs<t%OeL缵]tnuɺgqn27ԾNI].i,@i9 b;>0@N|fw3; s! .| ЮiI'1<3?`p2R^?GpFq.c#:Ч>s89UPg,as*`[@.& %/*A>Yow9 82zF.q{pO1u R$ an'a^CmC" !$˛v0VDH8%HưOb0zE"B_ 暶e6bcċDR4Y%f=8C}6(EJnĥPPPr&.ϱwcG'vXNZL 0吘 C ޑ.{X~_y8;JmD'8 f^vѿĖUZFҎ@5K9W1#nD ؀C8ڻ1d1nʗ`/ =*WA}\{f{ C.gh2}D(o{q,!?J9kCȋJJS9)~٤ZB;1\-aή2hgBCS'I 7g m*4=Z[Q\ZX UF КRoMs5 &Dᐮ>.=mZ;bMB9 Z,EL"Z뷦5hYI-ܯ+AެÂsÇ0> āe`-І=+XI-6QoC,Pj7CjX4|M4h]-T[8d))=ypjd]jH%c2ϑ^o20KKP ZfYHUoJDu! ƒQ>c-[LeW jv^cR򯸏D럭 09GZ}u܏oY G1q 9^@RnDuML'hgI!@RPrĉ:$q);>= oIxCI>˫_uGh't]wv"a"A2~Q89!qǕ=tھM`v.(EûJؔ1܇L4yK@gPW?6Fyk dc׀HBF*/K͐?}r>x1;#~-Iap 1_NltG 2`P3.VCỤF=z5) !Gˢ){*-|}¥TQWp2lrRqA_rBW-k\UEbD -5&'J/kTn_'2^J,j̘RY(ٯCMN'Os/1#w,>'~YlE$UY%L9T rvye0>WTp[z M?zd 7&Ma?J׌0L!g,ô=A)8cY)^_&o|1qc,|Y rw sӒ"+ OexZ>c-YU5e$f  6n6\l8ِ{afCfj-VT+Ienjn}@;^[H?b SwAo7Z}P"ۍ?}V?*}7 [\IZAԏyQN.b,XΑg"K6ᩚNYO˳'.J.}[ZScAJKc_Ǎc|~d\^Ps3Wr`PV++7oÖ2'qsrzlF=<8ںVa&:s υ7<yHGb[TYݖZ:^0JK_f>U'}Mw)aZƅj+8I$mQް(~6/EmZ׷Z"+ V3CLI׼mU 'Ɓ0.o} \sq8;:pFee\GUd7GE/ւh>Vq>M7}쑍djRlA^NdYxJE T;pG#I_neco{̣np쑿 k +.WOuרd3i2A~do{E1L'-]PbEIqU6G|7ٔ)(N=I/6#FKNS/g#ų{>> (u7z:$n_p%3 uĘy1Ę'MCًA0s2l RyM Q_=I r}'ŷ IOs]ulӳv,L>OSr'"zY?_ӞReNOS1?eKaPWU%VM`9u/NۧoÙv ],S/&g^19GkQ2> &M}g#oqUVtV3o O(eO `#>C?.ٲzyU+@>ݜ0xS z,\|06s(nV i0j!#jA#kfa::]?l5ŧeXhuC۬I>#*% !I&WqxHvv5ۣTNR5f٠6cBC70>Q~w!Ҳ3eنkgIեiL)X;.+>|~q\mȓ,dFݐ 014$)+?[q]t hT\8Qxc64^qy ]:{-nTĸкP'Olh<*NV6ӧBǼ34?&/N0]'=aj)c8ײ(⭂E9Db*SQQ+skWAK"j[S[ZN5mSZ􏚴]m9TiYPTt(bD$onf|;r#Yx/ͱkdH'xr'J-Oxr'd yOdx2'CyXϓvB KA*d-N H1;H@Cuo]dtMhH"cvHRoBv+d ٦5 Y )BcBf)$MAHPN!'=<&HVk$y$ouhE\|87l$cnjw-ffg7ilg~IƥCf T BN+ιaߍJTm z ԥ?kp"zJeʴ5Ol {cZL{/pވO:3%@fC@\A^xnf_L`,7ǹtB1d HGyC R 45$6"bQAO\ӹE2@rBpѰ鼱_d.o,x^OS\n@(*%dߙ]n"@"Ѕ t|̩Du d;R+@ Sfxzr=e7Sv۬lg`Qx!, |3&k&G<1/VC :uHqP&M~M%xssI^?EV@HšmJ}SJzHyW6MJg دQTc-N+,[IT _D n =R;jwVjg^Y߆n=1rvGj1^սpmjF}Wz>-m&[']_n&E:ryl*tGuD]o=n۫EMQrovcp!\s,<_UO5_4tUo t֎u5c+G] ́7x/6:o}Gq8?.nم'c{Ma{/u׮-~]wޫ 7w}6yCƦwgX<;bnMwJϸ| ,z×ǘ} MfD/[qوKϚgorz0OއQ%b]W>fVC[D0+YZ~!O t0[-]*X./Opa k-^,Bp)(,G'I>6hWoe[[e_Z5Hn[`FU~4^hOn'j[X%Gqa(aF[3} +/&E- Az_ {>>Aˢ}DP$ыoTǛ`ԩ$x3w A>(z=q ]BEHP/Ew_$x"a~Hp aEOA"sǜ 8B171ec{WzlﰵaC̗ ,Ä}s?60\rx +U@m̴Dl3I/0r!ԣf\;g4c?wq_ lD,9e%fl;*Tі@rыVmiK%{t_wmsX&fLضkvAӑsx!5k3bc-Xljfk3dY16˖AcLf&X/ r)9d``\>҇02CJˊ.8W^4z !>>bxAn|[G߳,ڠ &;\ m7}Y` };D~zkA1/CxdoEIj#Da]u񵁣`w^8r5pcH$lM tΧ(V(RS Q|2GA%ZC.#1_gO>d3餚f\ b$]zBċ66 ՌHwȆ㵈] ;ƘqPnITpXDAG&8N2 ,6EC*VfUQڀ-s2U˱el[K6ħǼ!{wRA%x ӻkv19KH[(,s9iʤ)Sr>1wr7- M^JJ;s6?1#N8n^Ef’J׌P zy~B|^ +5-˟-&ɒ}LT#D ƮLvQ\VbFq*%#HPq`W7}>l<_T%fr)lRӲ܌+J^*|zvK%wo #ndG~`{`l('=5ɸVӟKi ~( s2_,72: n2vlC+hң}JKͦH9Be 8e\w K*NCFkSu#q ZSfD͘2a>V48 ``q[^ҿEɎVY`TTP!"1v(& 1;x9~:xm- 6(`%{ ABIwn(EdIe,c& L4Њ9̊ZwUweAahz&/,yNͷ%V#܅oΑ3,2{?+k9_rlUM4ǥ߉AD42}5 +j5 )v{=sPe'4 (+8|2 6Z0E0Ĥ]1l`il1(<߀a2Qt†QU"aèM; z491b ou51f`)&zOuӊoS%s%靠q}Bm:kOgB3+bMax2bN³ن!È}2! Y&2=xB履 p{NNA#'n|}a@OhN90Ti耑ҶSs{QKPKBK-17c&5vy@ț}|ŶΰK教?x"AH!>zq<`oHS<KQ8RDtY*?uByW2h0w8ѩArZL6ct;]]bbST~6(sـ PW hX33|3D']}9L /͂㶎RTb.n ZhkǛFY:L6BJؓ -ݥ;e8'`V)&,$2d@$pȲqVֱM&؝i=' )_n2odKX wh}f0p38V%hm2xW#016!o=;!¨H0~;O: a}`g 5( F:krC7rviȯxT^ῗ'ˋ)/(C_7bL¯XP+XXr (%C-,ɶjj Y,=֟pA k6ZoeI-8X w`DjyQآ[Zj5`Q K-`>Lz-Z8ZT j81MejĊQֈg+5{MbEpB54{k28I)zr9pwZ wu8A5ҭt_!v'H ҦLh|= sm P@giG@ zpp/\C!\k)FLxYZ(ru``{ܙ͌&0@47da2b8#i|,d%[Nۙ1N(G8.KEE K#e 2 V$BSdYLELY/3%H~['c3A},ADy "lDA`>1ˍ$,f e}R 尳`dd? ,qe@"= o$ vV~?Fa(3r\ yNLyJ_yB|~,]64.9'o7}z::4}y? 6-5CGOpÏdjf6I8L}#}tNpμ@Z+3oܬ'NZU ?xp ,ReY ۮXLmuMsFiHD5B)qA%dAڊM1nQ%%c#dIl%ҖѣGr!ˉfvdq{֨[ڌ.ъIL"Z KG%6TӵQb ;a+bv3kLdr\Bw!ry 3"VI T'WmBV@XD(h-h5/r\+pRJverTۋ%*fK$6)b$M3Ib"Lؤ9.mT*arBmM8YD1rA*"(fI,Uxn,_uJ7hG1?g v_=+ܽ^^?ޖ﫲 lkMx|c1IQQb*Z-'Q';A)3I~;O>D]|:q%9}|6lo%1kP>yb|o\kr4[E)T _lHSZ2JXZC>l53%}VW,nQ˻JVb|^h`])k) [C}JϪ7N,} }h6yv\/]V2zEuyW˓?,kW2%ƺ@[1h%&'08{E[7C+}ԗ]ٹw}hOy*gpAG*\ܮs{wr$V=(`$zFݫ_죩sgՄhPuhvZA[X}fPxe$#2)WX4(:${1N y85 dUOl`! Y/[ ''U:3wν_-A!iSd‹9+\C%a!Йk gc?J*hu+vL-$ؖuD_4c0pYMV@e 7\cͧ@߆QHw: *Xߘxy_7fh%Eč. X828kRfHU͎)7NZ{g-s˭ύD)PKqw?A q]g% cflۻ5QⵝoyRFۣcm[mڽi.hv#Dةp'Ӹ;][;<jY?g9r]fRRSZ&e*՟֌LQ*vbK+ _-]9g9P=jy<(}AF+ WdTK3T e U\<1jC͊b<  o ޞAs_!8D-sdY}=d,q<6#P=#MK-*PxвGG[ʚ8~?x7j?4~hDuZjOa8eƿ^Vi{Xp%ԔB|Z+O7m\ԿuЦ`zeZ*KaGe GI2)G+d93?rdǎQz1jδlKO܏7 aFdhۑV:Nb$fpN^=yi9'9*f`xeU G3*U"AximR4wi=pR6Fe>Kq%BC~QrUDqCO` VT-@^E9!CkQ nN`?KPɧ,˓oR.Tՠ]o)ܜvmESL ErZT9E[A6cwQ6I} -v hA~7-fw9{-R̺rAg"O.I3BەAIs/uʰsG\"ɼ ІVvVWc ƕAj9\u 3.m)XoءMmE7}Gkݣ os;[;$P9"wF{(| #@Huh^_}~`?A#F k#X PXDm y--`) >ݟp7FE} ham'Z?Y@ahj Za%d+~"/|cx.ƨK':@14@Z"$6e#PHمE+4|⎇v`5h2i&LYUH{M}tc#T9ƓF-G8'kd ZLt?bvEn 2'mEb\--"2 T&-p44XeD:>S~抬Ine)¼wm?c .Ngdq.oX{̜ٳBT>99;{;d@؊ =m~%%*MÔ/Dta ʍ OM̘)l{Ĺ. H>)|0*\nC/mȟ]?f'r) h2rm(Gr9)Stc&RYlY(禪 ෂ*Wa?ܙX<؏Nܦ%Ll+fg[+i{_]7ڋ䠰 LVb\;n4|M*負)Mlڳ][lFe'fX{zLT#B]H1ĪJ>ebMߪMUEU7mDr3 ݸn2*wltkBU,XӒdvV\%hJxU€ڹ>Zj+691gu, :mcyI=]@)_ZY~ͬ!̺}mʬs!? \HY5ڟgԙFay:gәcٟLSsLon9񉷛Dr Ҕkπ #pk7suvu3dHtKdGM.uoR^7m@Ҽ.6h&<o (6BACX(w4j32<-2<*ܗH/S7L2w3r` GLsS  d=.&b윁5" ,1i|{KDY&b7nwwZ1M]5, ElVֱ': )LBEȪ_Pts失1Y`X V"YYyk-=^@!y| ukKjaA_ =[T*Tٍ:cnSYbdgQ;x~[ycO., ޼aGpl qۦlDq}#G^)#. 7FKmۉQ蓁,y4.IâЈh-dWh Qկ'D><vY`# _ݛ]`/Cؽ!cz÷e})L/ZCMr(}pIUmK5dצ -$rBAvW \ 1D?'YCЯ8A7yYoCsŨNiCHv=c[ҖãDYLdHlk_?.5!/b[% '6$u< ~!. "` 'W"x0ceA2X3rIp[!-)/•` Pm#æ)?ON"Sbnvu."S@a"l߰Gk=}i:"bDN0$ZDIj-®qP1'1+~*j9sTMg뷀~(Ŀ;gPy5:Ҟpt ;N/19IW/19N/19I~BN%&'%]qZ:D.`fNFL3S`.DapZOjM E_]auweh;v/[LeelNwo|$nĂLaedX puQL#B02Np~#L7kXĀg0_JdW|$/|u{SC  mH>6 ˶ˆ&C#1o4[hg0*xA_/rGJZnNɶPXYj:򌫟Z{4@Id*oD{;˺,GxAz6axr583Ċm&QT;rTP.tc@lf:Af˛]+],*=zx{{Eݴx*]PC>{۟dNgRN7r6GýodOݬ-PAj R ;k<|)޾Oڀp >Ҟ .- $Ji҉Q Cjhx^=2yޑ =yK_y6Y/,p>j3-`VR4PK(_HJNXne;1w*B@2RUR 4I^ 2 qE_Fuü=iM=qx^&?ˮn2<kD٤&6~k]7dov9B;C]Λ+&|&9lbbc%yx#5V**ڝb;fKۡ'#8aJfӂ騏!M5uJpi.=`%AEILka7~*t[+,_Xf!9 VoSV)C8Y~||_TakwKnP=X?Ep;?vM#dXRZ[Z<8س~/^{2m%wˆW/{8*FUM\,]8- kcUR5CJD)u^4>l+\MO&OrAS{8:ۣ<*0$񖙻~[LܯW-dYiU Yv6gk(PH}ukF#zO /7F[z,H(Iؙp$bƒo_WPJ2/ i8E8XEcù5V4VPߧ/QVN5U٘R,(nTW*[Z˾PuX4WT'3*>oﯟA|}~wE;]X BdҶۂ2p)E%s8ϵs7ʪB>W Ϊ S\'Ej7{^cR%dyH2s|ty;{V O$ir4?p5^ţyɅj|J<:AM/XS{s-j7cIuϘmZ,T̩un lxYu}t;BnpLwHwNwW.m,ù|n&IG¿0Q"vWG(gOfZ$|ן„ {*K o@ yʷr`zLaBxTL{|?jkWėMWTU&Kb%oVJ˙ɎP<ȳ5ݢ#w}=l y*{d|a˛Ay^S?K+.5[Wլ4a ݬ&k8V\f*ݝ_lڝk.M(RV>o[U~h uH"ѡ;pĕ*C]f;N\:>դY -}\QH]j^Nw!|V|vZc!'7ʪ:D_cGKI)5?$8+|h9|>jmf[sGΝ~'0z/Ѷur 6,J8N-2Fi1{&i&ie=Ct*WÃꆒ]tzU˷-OtWdۤ`;Fo"0"W8_Sϻ|3mޥRkO@A䯒6IdNm[(ٶ@z;zqә/4=4;߿t^G@G#p~[ [{YskY}G?&Y)Aҧ_lu,X%D.nZq3jnxFtF X9U#' s` Wa[b } PG\8aOaOk&kn.>^}OY"}2ri5^kH埳h e'_r [Y~8K`lO)Q;UlKКr~0}CN8Iy^+QTn[%ngN3N3ӌ;`һ-;}v~_?<*ȓGٕ?*|[JC=.ʗ}aH(^Sck]Y7ki4k6ݮ;m%+&ybࣆNZ`VOPO_tOSsKnUݣ:O^\!u[:RR~N?]EgdPR_j46!8̘׽oR$)5QegS|jˈ*I/{.4uI˝ӢdޡqmnGd꤄[%D:^};HBc,`d"Ā6ڗ$I!QHOU $v( 7_\~TH)>ϕ,Fg1]o>-V;;DwdxgN.7%3Ly\'#K,z`i!k5pg5e5:  [8_\P]召'^Z)Zjnth9]=SRW70M/Kzn&oO*|qysmطyUή{oko.Iwf}O{q;'>~)߹rM}8oa0[f+X0fo b*E#/!I*Yu'Cnn)jzUO_OMVuYfffjMIT"D&A~50TlYd"f)k i-Tźj`ͺv?]?ݶ꺭-J[nUɞTQfߛ=wv2oロ̼roK{kZ )"^6,nƮp{Z|ۦhS~86M6u3Xhrd;r>x_5PݤX0@"൉әKJ-Fs~dS0Ԛ Iu4"\߮Իz?,oO>E0ԙ~ark*G)ԅ d>X¯N4B$5c5rFX$+d"e7GK ~خJcA[msSߗ=<{x-gDSWsѽtg')l5=1̜ޮ-ǵTw܆)@(Gy/xtE6F$Bd%t9w{;8&z~I Ra>X MI++.~$mpt=^77qjR} iZY[u‡'}zx.o_qR]u1Y!Y%̏3OdRen\"(XBQR|ة,ΪPPg(ԥyvl&Ϭ~V\쿢Q@{HЁ#'zTV#Hs/Å8aP^ JJH]l\Ѳb_˂0jc,nK6ޤy5{4s="&׊֊֊5UMWaa"/ %D#d?YfKpS,XPwyKYdܺi͉)Yd'h3۱GNoVf8IDrYiR) ʕ\zi~ -c£HdHW5UP*J('+TRGO׏ve?ELC&s'EkN ;"5S>QyObQ&ނ8%c#c1Gé#l12H>&c121*tN2% PAH侮g6:=T'\=gZL3!?q+sieY:+LʬLheVf$QPGj8 Թ~_PIgGpdI-"#Fcgo:$`vjiZE (% N$T0K+_<:a<@Q*L/Ԗl`gslkKa-\{†uK`'^*ogH.βA뀝Ua] ?oľ'oWx> !y1ەbmaxZ'O:1" >pi[N?28{D{ u&ܺ" ~ =^&yTO=. }'/D8wIza %ඤ &N!' iN}0@-\ph_=DTw 騞}|iN_͋ ! @%a5ԏ"%)G2<ڹHkpH"_^"^x.n]#Q5RiDxp4cwX6LE|1j0L`iN߬ q  xA6N w!}}gNDwO-WwN񜞿Oڔ&40mBo N׋?K!җ6I25e#gKu_^c886'MeƱ d0n-ހX.^xo)bb4-\'\ָwOH"'ܛ;~СgjmpfV'ƃ_т:s?y]Vj^zj~_MϘQ44`M|ca]2Px| \S3gƒ]sX݀pך *BEVEYT.֪E[ jjV[  K9"9[o~~3g<3yIEf'7/` x% PS-dTh$n1\I)19ar$m &wL<1yajS[L>|1ä`"#A[ ! /c1p ] a#,~=p&˚/|5.:d,u5E d$@WgsVѸS |,_g3Z-=9jh?-I0O~yuSǖb äS8L`ꊩz`ꉩޘ`z xƤhL1 A"7ǃ1 40Lq? R<;1"61VteggddMl/-ia*&qޘ4FddZuNyxy^|k&A7 b Pnʏt#QH9k7'є fKIbPs%$1ߎK9gԜfYtk+&l"\? z/qj"nw BT+#Mi srӧBVk;_g/_aB^cZ<\ЖM:1 ~OWk-sc^&*;C {絶G;BB>mHz~A'*A~_VjWIrj_MGu1u-l$yj31CA\QR^+.ū O_-ձO&IoOedvFnz|BFVnzVD+}"~sjkBL⩖h%"nJ~F*(i# mPqSbp>a y:q}I7${QM?j>NY# ٷky f' }̖37fբWƼ/՞a땷]VRVl[K#5ح#'ɀ< 7{l?s'?|Û*?Kl\=ϧeec3F~'hE@CbSy_Eܻ|gw[Z}zv1uluќ$5kh!~}XY =i^j=`#XZpU6PAYYܾ}gl;AL&LaÆA)2[jG-pTDkϧB+kAxJlZPB H%)c*ĥ`J SYI/%p$LDHʴ@@$+B]Q?b>c p)Ի *­*le27GR󢁂IVU~O}SL@*vj)"ћnbLf-Tܮ_W[x,Aq…@ F *L)FJsVIr#EJ zZ|<:@7͛܉z #7zǛR&Ro$7R)ǍF3ҍl#%HHNW KG3(& c:&@ afSt5 FÀjn[Y QH^-K4r_aNm Z '-0-ECv/yRTa'zl! R%^ a9w1&<a}w@Z<&wznͪ픰JO1-}<2kF8!Diǡ^Cam*a٣HCծ 0o]Ul˄0_&D&fYd/.,t*Fl3!OpIпkMH )}Rmly&lLW%c:G'U5-Q,_.FgF)dwTAxֳ^Nmm\%>`(iЂd(T%E+h?ClB*;'ĚƘd&Ӛ>܏1/ܾµsV_PVNB"ߢ5sk/ ?┢iE 6䢐Rr^ы"k.(^Z-їl)YTfn񢐾ұJ%8) ̿Imno3L;_Z)+l3K͖K/\R^]NRRfN\a@w#r?3n kϋpi劊rKT`!"j=#-5s_J.t-nMB'JW[8jJn[gsң5w[3K+= <äk \Wt$NW#`륕m6Ίwf_ZmRQl_bU K+.iP׫-6˹p-yqS𱤺gC0>`PSS~<=&CNrJ:@U6n::vjei0B' ׎ &6ώھ9ISDCJH~nkB٘Ȑv?]rtg9;0N׎!7Sjԡi¯G=zҊ;a2>}فt/SWml :Oݰ#!f 2*`)kb.M5#;iJ6Q(?=QGm(sPw7ypTDG2|7a- fCᣔ&*4 |e*L)1Cc)5Vbu܊;Im)vDu7Ħ.7),1(Bޖ+I#YwrSۚFtt|U3«#:RdĀ)L'~V?-lbܖ:M33'.ZXYk|C={skfHw. :G[%V U8zpmF2g*5wiԶ>@I/84M܂ EC-4ZFi2PWK`An^\[f_Z aܪ;u?ԇܫE󸖼U%yW߫ux>r 0_=w✥4B_Z6B:I:KB.z4jP!ZJ]~^|*9'PŁ^m+QB3jV܀ͩRj@羡s klǸ8h y3AwGaͬDq5ꁫh>z ̱8Z ͖ީ kE EDA" Q SET]DW a4=n?Jo~|q:IݍnW&r:=pBFݫUAjM. B)pn3R0n1I`p/!K{ENE A"ݧ!8EO"̈OS)^> $Q dG@) y:MU]T{| S=e_P\'>OF#1@J CnC.ןeOndΩw](:G@f9y^.{3qؿ YLaB N9߇h!|khKPEE tNpRi K>#gK]GSkGK <yxhA~BAqf\?']n݁N܅v|dJY #_5<+8δ.( e݅ЉuB;uH.DŽ't2 C `dM.jjzyFzz3ubƤJcr2tdYR/I\ߗ9N5킬p8$+y#{[$zr<0w= 0|hFo llz<)[c`L基/rs>1`OҙT)+2Vc|62[vAE[5da jZ(oe@X/Bן!a1W^YźBy>*BN#Ep-_,@ #medcL Kt4CeIb B;T Bgˀ#u6 3]v-2`%HĺN'Gm+uQ+RUf)4pNOT7UfX^hyly)||1²zvi_O@?49 ϕU"'b[ﶂ..<1@ qճ? ֤߀<EX =ǐ -FLo[uV C{#Bhel ='r!v^Cڀ;mFJe!I w 25xV 0: @E h}}% SI g=`4ʗyxf}}M .@+r?ȋVądaWOt`:h.溘&G2?g9C^n)6BL$2sAv&c503*!O3U;ɐM~a4s{XtYnt'phYKIKu&E0i0<ԞX !T.t׀R"Q'Y(^ N2sEbhu6r̄< ob`#uB) @iݣc1 {[t t_Lt,{ub.^Nt-dZq\p.>I}n@_mPW"9M&7zN!$ge_@_R}]7]7|\r͙u!+;)o2/sy@\1.xi7ԆؙL:+rzY蝍ry(Tۗ/]?`0Me ,|E# u ɽKic;ke8-y1`>gy.E%qh*]O%.;c\fa7;3"#00цlF}!+0QNIϞf r8ðIF_@D7[>D ANr[ (²CJ` (Of~JZ-1 b G tuL^eی tgGƱ*5ea(V6 >p/c 6T_kqFiGVVEβoe]"m6'5@T+xeW!e' $a^V6_g+,v!/TW<7* 'Xg[ pA5X[`^K5k +U]⥩\[RmnmQXQph|0*lm`V.kIpb^f){~䁎``l0F&z(^(A$,'ҍW =ytbV'DH`d@Ј#\`UyǪK* h^wv6uzjsj`b,Ir A`~Vv \׮CXSO8UJU B^/b7@*ު'x R:x;YكL,px[\C5DX#8F 3s/k >^QjjZ~bɵa*4Q3)]SRF)S)^xFKhGj,R]NI?U?Z"q*N:A\!׬eӤ<2tW*'N\0^g*rӓc&"Vi62'_9s*b^ R93E$ . ')Ѫ:EoA.L78fxqZA)ˡ*?14x݄粒z^NC34C;'fͱ5, y*ܗegolXrtBK֬3?w[7k`3bR%hR0T[1Ĥ5t&P*ˤl*74h 3%CTpE흊Q+0:+m>=B6xLP)7v&`4 t O[Nu;U4tMF.lf>jDX-4Hm/Y4 %#}P$,9]X] QD C8 )/u!Dv jhe~PRSf2ňA#;2LJnS.X~\[>|ۑr Cw~$O%oM)\A hfޡ\x_ea8\Hך(>7k]1Q)5ʁ,pY}RyYl׎$Y&\2=yY7R9w,ZKsGNFc1\@eu%ٺ~PK4Ԓ6~S׏ucGޱu#ЌZ&yQu*F -6pqBR.eK{JV>,GhXu̹)5y^>S/ܡ۽yɮuDy<']+dM|= q[>5j:nH%VM ?B̆3gA턆̬s\p,kC1s8(p̊سURًQ{#^tG#oK!wn+81N6ݏ w~*ޥ Q|daxaw-eygN3oC;9f#뼸*sDkv/oު\r-sθ_YCWƜGI[W~,ޖK_K%ղ \fT}KeGIb*{sWz)dD\CY]#. ;TstɅ6g)Z3 n۞$i. Ε5fnϳ,s_p=p-'Tketgv4wؖ_Wav;נ/oj \4Xb`b 46۰N p†Bϵ߂oH+hd  jo3H8a:kz6p^ie5 4uY58{= XSHpAGPb6XE'c+ZPԏ˜&ddfԳ)#'/(D$)lZz6:_Ẉ33 3d̗glV>R- bfHSfFV:z1rPCD&}ΤpxA"z{,}VTSpV8,]tVF:y:+B{"{.r 1LSzN gdOsEhd=,AecOtuvz6r#>!jS&eLuHfM׫mx6^,K_LՇh~dg,.'W5>?lOhSL}Nզz HL3LoG+&ýAz,Ҍ`zFN< M򊎖I )yYv x0t $љ^]ƍ3y<~޽Ogb3r S?41Og奯t7FtuYpن̜XK1/7kB kM5Zۥc@տ:"ȫ  GGUj4Iәim8 >X):3vL5 0*0jlTtRE\ Ϭ~-;=3dhTհgvWallЫGxVS33ϊ~}<z_JvX3S%􎏄":r,.U?8>{wq|Vq i+R߷8fG{{`ƥ8޹8^R/x^O۩Hx=u!۴:J~%Zw@`;NѺ/19u1!{ֽKFZ֭u0OҺYNi] .ֽAFcfKuqn0fҺ~/녙n.օѺN u΅Qod$T?Н~K>@03..n@1ь};ƍƵUYk|׸83پ,_d_$̼kkk(5"_ E2pv1G[7Wcf Ic&fcc3[Jcqq{q5fT+i44V}+NF ށC4gWqKWALUqқ I҉|r6iGl{X&!JG})KHzo=j~ >#Ԋ(l%--(Űfd~}t'X=;O)3C:LC.̆́ `Ii,+z))J(@i?pZ4hT\\ V 2oprRVxSYl5k`CJ*:kC"6rz`I- T/dF)?yzJ[:QyrgW-j;٠kۙܿgvvڣg/Z(gIJX&%!S)OܩӹO=$Lty=QK)4  j;`tײ!3ԼKw0B 8ɣ#8 R8p<1*mۂ@ 9")0Y^N:sA+Qp|Q )a =em+P&?_>ݕ>Ш"\38#c㵜v( g깜Ln?=g+U V)[גm_4肭;ub: IJ_Z^ kZ~͋ Շ!&8Pzռ@@r0#Gi;)@N*_qMSaхz]WKSfn:~jae睺+p R^`:jjeSl0mG^AMkl,ΔI xN]WG@ SZ~tYvQZF(dע`*9YI2>%$7QxSY?Ѿ]Ov5I2(ˇfiMNíOaaC$RV"Uɿw>qPj[~m?GU~sO2y?@s,B\<{qkX[ٺM"l_F&M38g R&5-Z7l4)7jԒ*0}NnzvszsɚZS~7°kF֗` 4僪EJZK[3[Jė]H?%>a#5CcJ;6Q<ogx \U63 rypU4AD!.f^⢀ k̘!`mXim&mM?-p,i48*#ww]5_ys{yeG^uH.@޻8)?Gm is!"B1`k〹#"pF\+↸#'B?HC @d2 @ d HȐ$B$ Cd5GFly"2IBS: "`^ \ 1bz/Z]=wۜ ޻%AC@y\G~?Q<]P>sAUgfz>J1eָ~ eo< 5n<<< ICGґ $B& O 'Idd 2y Fr\$LVy!2ㄏYHѽDF;||L1^ưcJrUs b+ 3rK4AURٚŸ>|^.4tϫuO0j1s0!^Z>ɞ>d$*y%imK;3:ih+?WRȈ"-{NN-IXqSe-6"[?1-yi.FZ{ZF䀌eaNNJuJ_?^ϴ9Ԧ!_j/ "d7xnk|0%"(z,}Lj H?AŸc7uM?MԣWC3m}swt[dEGB0T k4C^ eGZFOGGMk8珧kgב׵E]}m:Z߻. m6m/LQ4O[E~2K痬nPk!Y&ST\ Zo8Gf"Λ3L4ΥzDުY~{Mԭﰦ 8^/ ~MR] wkE_Rw;| "jLy07|P6ogOu?ߒ?`^|l5?(辋Vyj=ONa~K۩zf\8{4Q%c&LM?sliCKƵ_ wZ,-pIkغuk+~RRR J^^^69牦Al+;̉$GΆ~flD(Edfslj~9WΝd`'P1ԐOӗU 1ft>yG ?s= c R/ 20g l!3i`tkia+t;_H#K D[Mfvğ\7%i.8ٱ2q``S@L H*PURQGC{k-J,$ eh*FF$kr'V0&HH~͠f=2/lf}l \ $p( YvGqe9-v6eMkQ1qSUߨ'ZU\m޺zSs@hTb$Ib8VohR v&j+$*/v}}S ZsImņ#6URR7i4NZ[e}v'iT'݂E/ =ۥL83sb!>ݰ:uq;wك>Ÿ =\5|D#|sHkT!OԼ^"qs/w o sz+C̜ernr"eJ{}rTif![ǾNS(w} dORxؘisU9/6>glj.׍ȒyW! 7װj龗SפGƜMi{~7:3{4YW^sɂyukғB/!;+pE+';ިʤ7^iNSq1S=;CI*U2lҧu9YZ"ԏ&,qdzz}6k)l\M!)ޮYf}$3KY/0g_US7M:1o2 ,~Wڨ9i0/b/0wttL 0DKkb9n\SWV98j}V<5:=Z YbJBeq҃һ:rLΖ[?5aa~TsE ̓XIF;ߏJ!0|[2kw _LƐ/ ߛ+C&Dg'Zej A,3m7|[VMLW?Is86CiϊVs=ޟ[}Iߘ:LKs.ÏwT⮴Q!'^WDCakN>Xg`?ԜH`:3 n-4)1e  %HZB?ܱN^%zIN%Eiy){6CnbtÉSP6#֝jb(Cڷ4d)+tNtt\8?64uO7m0TTh'd1 aW-Q׈JtD t=,Ab ,<DysC;P;c'cOtH4et0l@k$"O:/΋CƋ^Zx5®٫C\e_5b/[멋 $=+V"Ia&7Բ:6R3]n/)%p{yC"T 'v 4jmޚ&Ε"ɒ/-'q˿././_ م2R9B%`IHR+H6̮νXrEtP-eܴ"մYlcKafslZ8[&NWK86wt@UtUQTR_.e {G5~=''$t,PTTHhb%XpP6ΐ ( AQA` bGG:`#Q"9pf>u '<{?ꄨ 'AғOuTks3ιmؖ=ІUVg|6t;6KYԣ4|ӧwgXRa/v6 Y|Vd6w>,pCOWy 1&9͂!;c,2˦GumY̓O(]] -slMb>cc}zz K4w b 4]&nݵ څvaֻ00z(/P1* m ňXH&䝄 <+ go#s2N~ "I40LGWra60xƭP*u&Q̓Iz367kZ^& [ <"8;r1凷qAkJ;&Cļ^ZtYM*P@30hC bVa 1&tsGT`" saym3Ոn-7a@7diYT9߷oE hUt GQaGU稵S~`q+ӢMnJK2Ş k m/]] BlN&'苫h﬊xA6 mTWjo< +@iV/[i;_$()9 ~~]^NuV/8Ԯ>6_ɒ)}(/b$X(ζtPa:6Nթsh3w0CC(z&3[eRgCߐh6JAI̥~*.gJd+TJls"L,V\VTDq}T  Pp6 ²F1mt&:疢~P;E?M3u0b2!C<78LqJHҤĠǣhjE?t#2s q?IYcS FYf,LLUd&c臅ٯ5{( 2P(Tgəs9ҽ^JkKE: ygi丒Lso[j3H1Z1 գҹMB Tҵ^%!IE,MN$Ҥ WP١켢a wyYc$/#2FUڙ|‡esj5˗W2V!ZW;YPY@锐4h3UTY:}CžavoWh3kr@;jɭɻmNr<`|W¶B9LQ&=]+t9c吇nJתwI6ߵFgd 'wn:o: tG;^_k:炠PlkХgz{pkl%{H ϥهIpYXvÀlH@N!W}6ۣ튥 jG߁ M! 6ZgZ^X5|%k{ܐ/1s?*HCk' Q9ņ*:{nQ U;_αGkY,UcN Uf߫VnD[~. q  m/8j=ĘL nk7kcP.|vfU2U*}jնz/.Ff]牌lct侼AXEurО`xYQL.'JU/B\2! VJ7'=08 `u˜Ʌ6~ S7#Vi^(+\4~Z ֺ_~;Oܥ` <.Yzs7d$$|v)}u{Hrه b qw<ֺmЀbIl:AN zɋ1.^:vn|Cbohh4[{gij8lbDOL~xnᑬǜ(U{0(ۀhk$%S2BZqAS!WIp9Ƞ-;\ Pn6]͈p%,QYL6Vmfs~ABp#lO([qXҍ)y$Q yR&N$j$!/:U8ތ/{㫰gXqJH +.}CdY9 $<4Rܰ:7oIB**-z[ZK ukauLσ#hFǴȿ.pb]%iS'҂ ݰl_<_< %O 1J?6+߂6X2~\F`}ĎR/w\DH඘mxCK(J$d KMϟZ%;*#ECBʑC+Hnwv"3^t-LPE3{#:`j<Ձ*L $GZ%XYm"kXqqc?#<¯?P"n `SPFH(V*GEEBX1x%$ڢjC&@n뻉K-qMܻ E1CgRl))rSǍI-sVY 󍐒Cӏ_~I"suL}%h Ȗo/ʜaH)Q5/ WzqY`bj5 {C'.ՅF.X2ٓ^R ٚN*(t-?7\$o&(F [̨`_&9PUR2Y&HX_7`]8nȸe wqhm pߔ!0KO6gmuRJ3߈[yJYZcE@y,JPV~܄@ua=T?)$?p%k36 mLzBEhx}=;-Zakb\iM.R󘰛 ncF3֣3lfXcvw-BYm<4Q.b$|H6J-{)t/ɶ i#dmß,ʣdxl1Ȓr N2OxEMG)ܤb%2d=A<'>pne$KeO}2Q ,f,[-4Cw2x>p`Yd : g;؎|#ZB0;_0CE(PY6 R[,lĂt[dxX]/-gPTr Pg T7|\G!DPPVn0z XFe3|;Fߝv 7_F?aF`T"@ DRh0ڟU}ϝ&?( 0J7 7F=ۆQ_O~~7B_'+o?EA(F(/'BB_Ah#ӆPB~6#N4gwA'@\UaױA}m Q;8-0ئt&! rVJF[iT{Uh[XLh٘fĠ I%*\N6`D#5q2-yݿ##,lc0Th Dc14]`VUa0cD(X/,Zp@A$-K]\{b gQ"98(Ģ:|4n}+ΐ/ntFB= !gl`^?>xX US#i3!y%t3֯"B̬p a6mۦ ?i1PmZK-MYy"~liN+ ^4yb>{p W7 6rqÚ ]X> lpyVf Q½Ht6֍3֍;ƫ,'Agvf[+,;S\Hᇶwvgsԃ߿%%ޒܧ7?mx d]4[7LO+*:'+'4wji8ND0iAL@O`8p '/>|NbEmdVuxXv[):عOL0-%Z &%viw]98f{q^6vh\[l)^4 bl6\V?e^e2\2nt–s 8%|BFxb6g fkP{VRJ "8bd?;|l/|VLw![G:42К$- }$?c88M]KXsS+ƒi>U~?pHN bgh6FspXN9#M6﬙i`§])d[&lKD)|0u*o,M}w<6k%j*rOVF"=^<8s\Ders6"^c;1zc( ҸVPBbPl `|])[sIۭGRYe4>$JBͣm[:MR,?6ۣUStMI6RI6iT]ѼBp1qGH(X5*j6x;qyX_-0uH+Bۆ,aYxY40(M2MYхT#tTx0:'9(?=x_\9$֔MUt 0pdevۘZ2!fI}1)oq=]n5R/Ax()wtWYJ>+C "A.Ja4/[)V Zw)V )jA{)01ԫ/im,ĺ~+[)(JXԩE]@~ق9EP,0,/hOR&z/Ͳ͆tԻΐ]zkY+ˮ^1eyy٨xcj-CI&~=8=q}kۆP0m ` 6S6׹a7`=;0XWQѡbF_`~WlpVtgKb?tk-gfkUs0)UɍJ$]WSʡʹ9˫[{1?xP31`Hv_y峋*LlF]rV4.Ƕ8F4^`mÔ apl!pqǏb1*dM.4"^3u3bXi&c46|3#-kdU`)4HZ2~fr,L`hbn2!!p@"-{r܏B˯_D,Bvgv%T xcK$h2" s8A]g6X>3l01zp [80aaD6&jULؘ$zi\  \l=eb.o~=M2]4-f%J3Q;MlľomqelĢ{ŽS;rD1F 3d^º6BW @NlܞcnW;FtV#f ۑU6F3[m w9(HNJ9½,"2#1q:Dɭ z&:ru;"w&N>iV9Lphu.6ၺUN*6< gE]6YEWX"l"L <*{g)z$S 0Z%QM8sXS(Eƽ-,Q}d<6k4\q&9'S7bd0a!*CL<7JaT%Kxp^#WQsQWQ[WQtA}Q,g^h0{=_ٲ3N>4=l4cN}}̞NCd B{@ 5m@s+ȇ41.? 3um||^Bf`(X.unp p9_fOOO _~%Ϧ<~aG0հIPh?> VsZվXӂjĿUXMBH7a8΢!؜&SQ57ǭ6T0yy٠J48μ꟡`yv66q( (O u-ODdSzu~eV֝nemv4lf|H}lHa`b U=yIJuD/6c¶Dqv!&XCgµB4&X [X9́r r-Q(X%؁mǿۚZesaZ\'9L:bm~D!; wm`|>k7g<۸ҒcV؎]BN\=-m]=i P[&cRh(%in-XH. #>طv2]%Bx(b]BuLRPdBLM⧢ 3s =|jƽ7!5KH6O1~cIff-;T.k@顐~c ĩ{발\})p NSK  6LMer9ec2}A{ d%f;ZHVjUq0(=.{1&4)ه{w#94lR[!c:m8F%Ȩܒ{i)NkɪA۳Q9B)Q7q7TكP㣱N}h2)SO\Yh8,k\ 9d\|c,~cd\O1Q ,L/1VD ܕ,m%@Aas r9Ioݿ9ll}eef[R2NcOB? ^oMpsBeQeA)9f2q _X֣lQU9/- ;(Yף2\K~aNĮ*S5ؕMVOݶe4Ҳ% 8QYY:ʱ~QE;cwr0Xo/ e>#g[|nkkw x_y;t[wl'o/<^ ]en Pܵg;C+"aꜟ`>%'%[ 2fe_w69}w;0V.0@L`9W\LX }8̃b&Nc~ H f|8G8ă< oRDpP/:}9qS&&oks TW#mt]H&\ 1ު55 o_n{9#ٕ)ʂ,yn^$p#U@Y{|:{iԔrF55\M3>3~?I{]ε8TA-rKvwn`Sx]wq%ľ>97GDH *[|eyEZĤr\o*`_&mݽ'v 3HĘP8.gAo-\ %6 ~ @$zEVyK򮑟$^tTfu46}DStzy,R]|١rG/e‚7NG;_b4$SwE 1Nӆ6H+b^s70sjWi({Υ+;} OT&zғ]ryNE[aaezZ{+.(ٿ0l3X;1]mwSd$j5Q!PVͧ[e . )?ons)>nYCsY.X7sXע$}vLM ORR%,dG a5 Jc`UjMi)/ҳRo-ښC:uw)# AݤKejCbam˲tBZKMPeԄvSui>e9~v:(חT,~i5Mh5T)9[Β ZA,R]\& ˘Jr\-MefsŒٲLȻ,Z=ARi9~*U]ْ12EͬTSVZS$ϓӢdl&\"5=o,FөYa\yf9e ;"HU%i ORy^4,R&?1`&SXS30sERS?jթ(j@?!e wLҘxrG8L>t33qwhOdnyd{8)L9`Pㆻk%745^WPXyzK2稬4u6FԛOZ7ܝy`A'tHM"^NCn9L$[8/&C6Pyԫ$MIs׍fǐ;Fdیf,NlDz7d0E%xˏًc:eEĉar#|yKF@]qApqf;a.Ŋ].8#oS$ċ~M_\.P3 hse2/zɢߔ-s븑W,8sGy5oB b#N˩ӎ_QluFNX>"D+-:;J2ݵ̽5ָWur?LݗX\+u@-h1,j?S \Mj(EJNF[I/"1Rj簠)oOD¸JJJ:Ǭ.ʓ]Cv[ 3~n[3`&4ة>C{B8lfZ<B`H[4ߣvNL C{B󀇐G_ce4AС``wl໎༫iO# xx|hYLᨒq/,2%2S߇pl k?µ0`6`6Կ !-wwxWs f; оKz8C5a#֛әq4I<t.eK%1ʆ#G N ^4^XDB-a૸t{s ]l_ lN_uKC9x]8$] cZQ܍SF;q ^ͦ܍_m^(= *wCun;u "m?Gԃ̵ǔ"+D쥈\#ߕrr%yyY{ ]5sy*S߃#Yh"x@gBahYnOz@!SIFJM%6*)g%?qYk߃1c *4G:_+&MJl&' x =_Eo*J[nR(_.o Ҫ{pǮ\kJ]bJ䔷'Ӝ=3{_:{rf?Y4nM| 3<{b?ώT8Uhʩa_%s/,hw sf.D_%їJ$>=G 屓5mOɅbÀolv '{4 LP;A`PʤXLV\q8SW^6q'bSHEZNrAC`&y"`\R% 7[JPu xt{EpX*pC rUBELjE^EBi8f*UܮxU񵢃~6( ڃ.9.-6<}˰2])2e С _m:fuv#cMVSo:C@cdPZ8AqpV6fb' /%IC FD*(5ww; S^6ݎtĉVUaN=v:ޞaMٺuO^CdJ"M4a`}mn[ö[n V}ײh \8Șt\s Ze{_J}_㣂gJ@]rvg['Anԧ떵ZY1>eKKݧUGLB)1!n\KεU”Fv{ ]p?Seck)OU䥕sYׅ}_ >ߧEC{؄P{)][qGR y՝ytw;h;]ce ne.8'4%NR}>N O~il\%=/O'I."T,z'_roD-9m^f֥d Z)0$(c~HbyE'.C֝^K%3}^!ѧI#%]_逆r`a X$7ř)9a5K\dđ)4}D|Jt1]MWI+.7\)ui9m+WͰ|ʿ?sTXͯ3_|88{ܱ%ԆŵsW7|&tEdڏ@?N+Y {*ͻ$$JQWpdN!Zx$bL 0h0lp?4XzAvWZf P)+J0M9U?SQx$:%c+Kii6j`ZDN~bwIaZ_8F8 ,)9o2j4Դ[S)1.?1)FOK=1_Y!߮ѽѿ1118*MNJ,>KsKУ$V_-$dNʵm)Jֻm#|QKwttTUWtY Q;;m!WQAM;dH=I >` c+4<00q=7 8\#qqJ>&/, LwLjװM/񊱦-Q21ٟ:'䤀~ Dbybq㯉#UӶilhA@@zXĬĂPBM| |Ҥ OO +i\@n.=2\N]+TO7K؏;z8z/97kӤ|eȜףyw 1nqs샕밯:~ r裼l[ rriٜ[-Ӝ/|T.E NҩK)G$ya So]Dogr!Yc 6vlc+FU]WٻʠpT6 h._9{*oN8ش##{o엷lsܲ9_Cđ*ShdJh.d9- Q~]tǻ1usm~>qH A>r,{M[s=6<39dӟK k7*ײaS 0DK*86b>` ,$ߕh%6Tf?dA_u9/gdj:ޓuY$UZ%2ر^ S6px߮vSwɞZx5.-Eˮ,[VK 74 Z#|Ov(헩5(+9Tr K  X] ©b/3D~"SiCuF' 4^}gW^3m?FgY/}_M 8Ia+Kf6Z? x8sc G_ (o4•'%2:P0mu=kCy_(N7MZh> H0X0F0KTPPX*8 Chƫ!rŹaYw_,8_!.әg+nЃgo׻=8K|$%#$(&n?wyc|fJ?K ސ~Xژ̴ `aj ֿ0ECk'v_qtЯ{߳_0^Ͼ澹5s1!pvuuM}GnYxħK@387G#杶ur|kk0Sp5`[tv%4pAch5ZZI NPNOk2rYbD0b8MTgfgtoJN;W8&[hƖSվ ՄIT~JzF9qtZNm lf #֜|Cju5{sDJa:#C3rygsNS NKix~Fz5ppMV*|^qN[#J˼}fռV~e lCg?${Z:|+dtiJNGߘ 3R&ZU'בNMeSt/6t}oWr9|jGȄTFے>þ7PQYtN5A uN^ݰa91ۓ Ia0%='u$hmHu.mg~OVjg|DFgZFj Jgx c%B>њ ♳nxѦ''Q-pg8;> կya)\ud XfL  k=,^TJCTVv.'?8:gt=[W{Wԕ ;$,"XWK^cv YuDEH@ZV;cvV۴mmQ j%5OQQ)ܹ/hv~^~}{s;,gCVyl.b 醇ޤ/F6;lĈBTڔ[M_|XݱJ;; WRL'E[)}$xpL7,TE`J1e '8Ro4[^(T^T͂j޼ТTiMsk`N`* kM2ӷLu 0VJQl4v )XN$V)'+/Q)䭫Ԫ$rd7vT R͈iUܨB/H\rU@Cf= z2[V?>ۄʌ"]yXRc]l/qM"C 7zlQt(pbTތe>cA.MYT,j,,'_*T{Ռ zOUP +G+LL+(q^A_2^ڨ6Hz ڨۨEmmTVk01 jmT߫nqJ3ţчxGL,3yt ãCy Ggrz^rBN٘&iRNG\9Mi${MZ~^Z:\KGm ݭt{+J7+Zi3&JZV:Vzt+Js#w.-'}x970@| ??_gݢ2ڝ/& =̃g=ߐŝ 0)Zz"F>6 P$-'6lSMyo*N)Xa.;'6߁ EGeA?=CVg_X|@@r`%lQX-݄Fc{\%|`F 3wP"}vXƂ8.|/볎ߊ{O%!k P>=G2@m6U.@F(3%C7hV@>W|BЂ`Z ]# wCѰR/o&'h] h{">]券҇)Osv]C\ 7&y#b3m-QXQA co_⃷0L#T %Eg^Ax@xT6d\9@y:/#ʸ0V N/[kįa qx@WD(d ) %zVn/] `%+0:(#PsqC. !D]q^YF]i#ܮ9Is5߱UfֳY/e]9⾛./l T4v^<;wB[V=v`Z?YEFCcW(q?"<^.`@\brbj#D 1O5( s0X|79`3LG8lQR`&`ɑfjr0cCf f`&c"8!1!q0R#q0`LI`2n<1 Q:EHu&Y,j`}:]V wT@ySB&7Sq ]qGN;>+É? B óz o%q˄>+=  `^m@N o Yə"vv3vQKvQIwS߭ް7|bu{TA|f,9AٲbObRCښ]OEM{9٣yvsîLB~{͟5w5;q8Q@$|utz\`aj\*#W BpVKHR^%D#nlm9DIƢZIو e(Pf1>:vcs 9pO/"s_RF&18,$YJqHSn4-,?}>ǶrÜ0y }۝J 9` !&B!mڼ1T.jL'5&yxw 2\aR's&o e3Y Y߮P e>O=JOj5ǎZ)J~#ʯʮbʮ0*JI;Z;Gs@d˚OeGvw;ࢎg?˯oϩoj=Q\1&C&}Ͱ+LFx4%zlI;m*o^Zֵ`̚=l8ƃmhWP;vVGE_ݕt)fw2C"J`2)*VOA;>\p,-; rBa%|ծl~Xq/ kW :[i$ҳ>$0mGxrD[|\Kei\G WEt0m0 TaS҃͏#7W7?):r;O^/4Euu5aqkj]G)DRՂj,Z""$:Q@/h8.•hˡt.ӼJGU(%RPFi1m6k3zr4"2z)_V7M_Ժ•㹺o>>ms BGkrтRˑ5ӭ\)P)%AEsuTqaτXԄ (\!xLVЀjIj>>Hޚ55$]+\mZRJX&[t$/YIIU&$KtrEԖyi1#'OKnAi2}w+J2ER呉qHUKu կ5" Ɠڭ]V{j]rK*#IdUi%k?iX"Jc9*kz5&oRU.^Wx6.>=LnnR*XṾ[4A  j,8 =LD:ع@d>`w"rCXQ.ft5^UE*'z[\# VSn>W\)htpOp~łJ,I_쇥bATAƛvXSPdaq E[K!\BJ`cq>Sw"ozX9n^1r.!8>{gCPJCѼ-ȑQ4W1x,^OsX?u2[/7nj{&M~TMb2㣎Xq(s 'k>Yν i-c}?vsn)v `4ʹC<C~k- 칦`\اeC7O]-K\X\g>!Aޕ_rW ew{mC]= |}HO }*g3ҧ?V~BC3p+Vx[ \T_{33 @ >P98B/G<_#M񊟕b|hnO4nVC7̨lz+aDRFk::gfMSS~_ߟ}_k:xaFpU.rRwj#v/rh,r;XKN)pE!2 ' }^xA@"9BDD!z!z# "!PD"DD!hD "1111&6 F G@DB$ F#41DD~dXxHC#2q#:11G dӻURA?sq-`s`!JBqş]|^gyrѢpaFВ3]qJ:suL(B0wAȂ컙gkj?-_l\{خ/gY~BlaW^8|LJĴD"F1jN΂YBE()+Ifaq.>,,N~gMȿU| ݽ}a~Ϭq?UmhĶ_}=nc'I93sKߴbm1T#Ϻ޵mm~M)@C2|+{sͱ2{_7?;،}|iwDz…:\}l!˟ge=yCm~J0҅MTh')bcjHǜlDB?C#VbOQ 'ƬrL>0gƥ<9:J{-Dtcډu.aG^៹EDװ/:oɑA"GtgK |wnud C b&1d,+8ޚmDZ`¼YsqPnX[#/hP_.⻺t J |wnen_gH,b*SwſYr'֎B5J{m;gT _upW+rގ]ԑ^mm{V ?;RWɑ\R5;[,3i3~epDkqt6bl;  %˵,{Kϖvbβف}l)sD{6h+|}.p]XIzel$<V\vRަuql2ÈNXȝ-{URn8 _6s$Yx\ *|}s6]CvRަv=n#F6]x\Tg|üf< sp #{\Ы0&9K{8/F`:%6sDg ؾEyo"YsW ;=(ӓ9>qsv0֨Y 8/cc'S(rp=ŵJȏ' ñ^  #G8ؾ};lڴ {@0@>ɠ+ۉ|P5h #qNggBVjz'nJKzL.X16o"V73gV?q'CD]Bi8r `!&ժ:ھCuc;8} H|| nVk$ZIx: Ty3,Rxݺ~I> @ Z Ru|cl>!!H2zGH/c4p*ˣpF7~I(O7h_f,`񾽱؇eEjc꺇M2lTI ê3 ~+Za<-e322Ũz6{{??R;Ob,,B^Ѿ\O{"yC.%I>uh\\7.oT}[C~XET"^BM VEIkVN{ģb[Ns΋- ?{7})g5j@p2eHw9P|vpxQ2Qn݉Kd2zx|zfgw OV+B 1K{Oo!8ѐ@7 DDL^_QB4B1|UK嫗t#f˜+({%SvKޅN44+%ٰxx((9h-2k'jbS]nݵT\Q2 Lɦ,lSE.;[ikSŲ]R4օUf#*xd<:MLJNX-NIhsy]RƲwDZFZRߚgTb h埖4K$i-sn,lKhV؆ٰ[X퍶֚}VH˺N=U Q_8&ɜ˼ze8ٿ֮_XRV#[[+XVQ 600t|ɍ$<~wc_\.6ǯ-HKNWipd}Ί(/ /1\)<. HH{[W< T=ǴUc.-ar?mV4-;YA/>/N/PT*P3Sw0y-@&|)sS0zlύ9r?.MfKLV/ؚHVvNJ1k̔onŻr+kR5@82+#`¾YOO-o:! [Sԯ:/K7EQu^7>A7d(#imCuuktu/g%u+j&Y/aU%=]@ukYWr{75f1}^TdюMܨӽfbcOAҘ` ,Y]s[}k{v+gHzm&B1\p`v[ԒK/߻czJxv2o4EOXקrCZ,} R߿מ-ZL![ 3fbn|0Xz䐯r@,mߦCtƈI хe[d+P~Fˇf'ӲzQ,>kӟhoq%qkN=6Z̟iaY=>ːCO >\,{j[yeI3vf%[悶m+jv΀.]~w<]խV.A pH@ \, Ĝk0pC 0Aj\pAc0s~x ZHK.2).0&{;, --ͧ :ј﮷ɓq,:"'qR>vSmS.ߓ_ 7``q!uh3a(pap]GG J:nmŋ`K:l}Y>?5oIӛNg*BgcykXhB3{54- 2$=ܖ8PY np*Ƥn}:Qwb 2Bu{F6}8 #7?!5aI}1 Ӱ1(+f.[{{aOtGjWhVV|zbbW,PdKW TR$oeiQmO++Zh)ʆ{U?"m4Xcnxð7?oU 8'Ҽ"X1yW22>|Ș IWf1o8DkߊŇߐPЇU >M iLLRbt:MІd:-Aj>EgHc2aizCkcĤ$:Sx}*$85a=ŧ&W;e*y:|B"e<+bνbE_U2#/ <-D &Ԃw>a.b 80_~"Qp`{a9zBdmyO~Eqw^pxC+ xB1{l1|b3'M+Ͱfo=p1b_ 1bLWa* ߋ mN cT!2|د^{je/O (40,d @6Q6ۤE F*ww[@evx< Bl$yN"؛i޽HRFJmӰi0r!x mAe=gƍeAd+ 1 DlJ(%!~g )z6-Q$t`Rm~Jt:C,];i>.-Ck`t> I)2Kz0'03^S^Bl>&+ x;#ج^ɥA>pIyxSyđ@#램K&RZtɉtH6i>|-ih{אַh" T|rd)).T:0-͐DRd=}8Ci&F?#EkHQKNHyEƘwKuP4tZMKK TJ0t_Op\\*=#(?bLdUY<%c)*Uݰ>oTH~~5$"$j392qd>cdԸ$وsr!f/Y xO J?iEdlLQ%5=yR\Bv3W'^P_U'͑~4/Aò>rd!$]n%[c~UZ鷙Rmq:.9&sڷz%H/r66L5A5աc\Z8.zp76wuDm|>57m e-XDn̼K(ͪ`#'Mi yd9E 4ne+A.osjC$FQfiu!o:v/+y*!2-YO 6{2nLHu[z:Y9-wD #xs:sd6iIix{dC{`_A4Cɔg)hB}(u!'5ɿMv lo3%_F.{̫88AMlMNِzӽ~,YxK_`AFP9g+JQK=e2֤z=[e1{KY}q/`.xo,3)J.[niVނa;ypqWmuMtM] YvsUwh6W~upMa_VuVخ˳=|a@Y/) i/R{ ^Kdt_ɥ'SL.pAirp&"߸}+;/1'/tzq̽QJ^墪2eSFʍߪF?5ċi +bSnV=(C?~w_}ZB]E!wC t7 ʁƣiGhClX ,>Uƅ~=pUJPC.&G:pQvo{Kd9/^bv$ͻjD~s{;_Pz.=e:69+|oױN=enݻb>=Ջ6d;;dv ]TvQ mn.ʦ#hPy(=i++ ڸcF@5^r@L=!O`/١V<>g?xEJяA_UEBp`: Ӱ &Ifi {!D.C#4`( πt\Dc#!1OfGQn@K!QZ`!%m:ɯB?  $ 7BM}$R!ROvHo`'5^4D"1z񒑏>&|%/bAaXv(HV(\/9-GKNc%#Vuh{$ P ocPǠ V CncAn$<=[Ԟw e7l Ew;i{w{wRkΔvܘ`0[ ,X+P.D-N`I,CU^z{\&y~uP~ZLB~|d *d/"m)f9^8 `@`! (y*[ = \`RA(hM/itVYoˌ@[ 淥.Y$PK[>~N`SXŎe\;+oc\//`Ye7X8nȲe.=v5owUbYw 6%SHsOK:B!clJ(.(<(/cPKp[x-7(1<.c}p@QX{ܹK~OnT/G|t:|( ou*xШ(({^ZaX6ˡN˘E]!1a۳ԣ3j6Y{S2 }#%By^&uvUkT5ْ/ȰbvӋd[6-#L?X5+"X dR*l.Q4MYR4,J\Iv+\f3_ 0H1jB|W*xͰds'9ț p6d>esEPa楇rFXmɦhE?KLb)|#wPZpF v e xW8Uqx3H&C&0dl8f]P{gQv P߱MunxT1ԁͩ{dF\by^Ome|0zz[eu FO_0f-C,-0݂EQ FF'??-F;FA`62ІQ01zh?^ub/J5PDB)A( B3BQ?v_}v" oCfP !I8N*UpĮSr8y^6bXtF# ӱVZAS5Tq.16U1`%_P#Zxd ߂!ʌi3}i WH:>Y/H$-Bax)3Es,/p@f(smK= $ xHu긴l f3q c@ "Ksة$'.-glEYXu2ђq1I@:#' x]PN5߅i4ˤq7hoz9RAW$sĶOg^hCt0SFa}(ꃎ:~Bk V8,řmk“%,sxh\-~(耼N1"pB0'5[x>I'~*-oޤ|񇫦{ |PmVM3Yd`6)QSk "rf^mZ EnHWLgsbuΫޔހսaɭ76Mխ"%YX "9NNK,+u"J!LrɝNb#'u$&u$'95j̭vvN*ĭÚ@4 QڲRQ&jR`הoW'uo,*]dUVIрenbօ4Gs$0XK4WS8 U'N[* a+b< 2'Wipe{/e6t1 %b\x4Tqak 5錭VL@"M9-[fC:;b-@XJ!;wbId&O`Z547$~(Fe /vSʆ s1C[ef%Wu+an/ԡX XSS+8Κrʠx;G݇ʼn$ t`GtC{PNjWGlw@KC1b7e]RQ4>G$DlLj+wL& %[%s3^XصBmQfxs=Jeh:dS*q#6+!n*nD2Q/`U( ߈ 1(Cɐ)"-I:JdB|0&JSv9x?["v *^5(w~Qޑ}Qξtc8}vV"O#q h/ "2 b|+C\cێ@7(\ D1nؔ"&9:M{H+<_0ݖS ?UuS r UՐשmz$ BʪάH7#}53Ǧ0߃Vv-VГd@|k>`>pڲv􁦶3XA[jim}@mmBK#^Z԰t?Z8XR[[xw} '/ᶰ5)y[ (7B: l(k;9ƭ.}0ҼvK:.tt=9 ;E9?wBO%\AU?f~E#WpϺBdWf+G[ cLwM<fOĺcp@GTT"&7Rf v2ٳS pҼRA,ʧr<`j0.TRB*@Θ#-|w|޴Y O7;ؠ4$}WKIٔOeҎm5yQ{sR24(xݛ{#m=EC`^%>~j$:7FVzR`QT&uW1lʨL:uvoA[}HR _k>MpXYӌi\t'G`Ԥej̙la7{‰= q" &ǔPlJv?. ")&*_BIRbJ:*qJȭ'4!k-;rmPZtIr"]֠v?KKs~R{T*4yij/u^Jp߀1Yb3,{Q \ؼ֣Նnet{Dy\Bs 7F4:=)-GOŤogX}||gP֥etKhmrT,| ޼h' Zev lNN km\x1Uiynun!|u:z鐿B2֠MNK1i37'y`g߾6/,Чhgh&Z3=ޠON"1慽U\{u=e?T~W O6V' KwӧBm/IH}>si-xIհT;-yxq6#Pl0 <[ d[ƭ/[t @oid=9Snҡӂ&m pߵ|@4\1 kd0B7 Z-lJ4S `ffP$Q=(Qj @?{KPwG)hW+i*zxOKS}}Ld@#ʍT=ZI-/}Xִt(?!M46ҥwcdܱN<i3 h_EuKz} =,ԁMx!.dL5j13?&D ,VT]oHTtwpŭ;WN\]bg\@<†.qذQ0vʨ1lبMz 7B'}4T|Iv{Ɍ7]|&YXb֌ɴRK꡶WE[bE\nZijncCF;d_tn z<Q[%M‡Sj?(^0dOh95 85V@%\K]1#D(l`#ªqeo`dmִ]"I'R{6Ǻz pv(&RqIt;G0/QYlF$4 &QXCz^# B"Mk FG),Bse`S-Β\xg.n%>(,LzTZԎ=a<I:" <wG"[ f6%$~ S7z8oL%rd<@`fFySAN/Ĉؾ|AUkZ)c]Ppg<#vv{$XuK[~?Y`[0a9§ mTor vU'@GpDY V$% GT`Zo }_ ۸K\TWph<,C[TC͟~6ò&86aO62߰ll|g;pƕ|QN{D尔-SQh+{(h{cKʑ* ca1哉eƚrhW^Q"%HfТ~EA9ş2>'`KPTԶg~  1^n܆Y0wvo@9置Z)x iږs5 VCiDL>9͠OJe|&ذLv6Ih vu,U=xVuĢ5+ E e!R"Nv\/ Hr@T&npStH-{ Wa8TRƇE _V`U DYZ[CJMm64+%}^ۥD vPJh+ #+ f|+ jy[!! /ˎ6C\hl&[4uDDjTOޮiZ.ڦ=)<נ0mͬ0»>-sĄ1QiGSeDhҽs1V"6NǵBӠ[mFC"‡,ÖC&-7.+{p)!FP8u85n-V*)|BhJվ=EŶ}5Mdm$i).T5czo, +Z6 ߮EE:l%&\7^hrǦ.q&cF>i_vG궹umGg9m jΰjД9-},d:#KLjv E?d$~Av?7 Q' bPS1pn̞=Nkp}?|SxAp9P ݀-d=n$S5TOx2Jӝ:{ sRʭv [Ag \Egî֞z6%Ch$vYsMs,U& ^RԻ׆)TRCb0#.Y}(@8P8 R酻PD3sG$}_c}9U7]>Fj&h4 ֟&OkvD!QyXzwsv;r v331wbyP@3/Ԏv0I~nr3K袝WƠ E_ޜEs-%sG-:go2it|Gv[ VUC|KN}ne<^1NCJ^ OPq䙏rn:$ZQ~3O ieME_oڸd= es?)td,M,!FJٜ7vAN?CǤ2}YJLiX0 ӄ;܏{; -1Ru:F11S{2^Ǻ~~~aj&9M3Fq :Y6Ԓ:%+٨Y"17.cgH~xI3+dFv;;>ڣiAZ$(} Uҍv٦:*Ck^8!ݵB +gPo>g2\9ZrXJ74YNA7l&kҮ:`e+=}&>̬W3ށCrKQ6u;n *W_SBn[&<,"nl[:LɪM?øCVCsbNƪ9ơPb >Zu ~=j5@w;{)^4*z xmf }>Gڔ!٥_n>?.NBWw_~u(3?c)3;; ?~VfCƚ/~79C۔N!{,&yOy?ybVYqGq/1j(_,T`K-le/gCpDaZSy9~ea.#S0GB¢4~q\m^E7=߬R\sU?=;˒]0"ga,ڇRc>8+O}X/rZG\R=3nhp|66B .J#(X|CS+ 5HmgWP/K%#Hr~]#ʾگ)6OAwk9KgG[h9gNbebNb +aqR`s1jǹxZ8z:F+zbVwϐegZ=_=GO<Tx_4 ^X!"sBkڄj K^ p?)ýMm=sMkdjWug;| lu_Ýp#s=Ɩ5"k(_@3&Yr3?J[x8^_x >죹#v$c߲ !(1!-C3S&i;!r/Nι\rg<Թvoquslu)IPd?eko|S|awm^k2K}(<#-hbB,z& XV^+Y^^s%MiXTNT~olHvQFhOT#Q(oxTpayN^))Krx 형V5tcS92=$htfu:6)ݙLZtI2,5!1YW-@wj"Bo;HBǮ@dounhїEr? vEHI9B&fc8`,9t va^n'zOӵ~vWmNWn3p:JȹK۽ m3$,M<E``( vs%[oi xǹ _zX ܨs='"lZ̡v"Oa=a Ub(< ZRNPxS0^6#pc&i1p=}n5-T"]K&OAm[|=w.vrexeg[^a,)3,pN1*`%{^DJr͚wSIwgUIK};qE}.aKán0?㗞^1zUY/{ O˚OgOB0ٰ|3C'^0vi̡W2h=n񫲚@8Tm{' JHpy$TfW|2y`4d1ݦv9d ۛ7zh>r;}9r;8^4S IV4ܠ 95w;82+'>J(P]LFZvP#%V$!i}ް+#ۙc 9$ aV7;c?vA[ߠ#'46tɤ;K$C/&-imkdPYt+m<Ւ~KnD/ PO]0$[y45,yr/W7q#;Y0RJcvIW_;vKXrƖH!,jk$A;0Jn/:dC۴[3=Wm/{ /{DP}"jŪח&PʪtW .R]<:}Hu,NC݆T &Eb sh68]?aYA4N" X.RP#%t8 7]Kr&x@ೠuqX51!AjrG]~$7fh05KŬ1QV,N+_݃ [VFWw럮5,#شr6PѰpxrԨw5~$<1W#542F~ n=9ӣ}1l.W{QBLN5wwԽp{%ZؠݧQk|3+Wi:nݦm)͚_ڞֶcW6e㻰8@}1F4"mڵQ*# L^ȦM;wcX[R@t}'xًa'nSWXSђ4ҲcSgE )%3(C< Πf8*;5o:͞uڬ4P,rf|;!x {ߜe 7+0 GaܾOdϼS2rl"KQUX>SBǑ7cV.6Ek&Ց,K]RSihQ-+>=җ&1ϥu{_k,U$#Y#PܑXQ\ّ(&Mn"-DzJW#Â-zfTp<>:v7?n} hXSggDS.特F٘bda"LiV.ZAk˪Nbգv^K5DSR˷P-'| wz{w6qnC&’T< 6Fla9ze 0̳0\Mtr۸,jpTP ssGYk}+||.`q>A>6Î`#JMUŌ/B^CX"&n aBH@rwsvA<t97|%(o:OGH]odJvoBfs-*6/*BL d y˜YE9f*᪩FBC /,4:X)IKWIwH2jHmH?w16l#_ۏYsQKPTV0~ap3QXAg֬$;s>a4%\8NU1+#IlNs3ǕWoW#T{BU*wr8?NU ^>LjT4 \{rh"/=^-ֲȬykEז2֠1S ^]bū~u3 OMN =\iu<'m&5?5!&z=-Mµ` q]&H^d]\!G$ʎ]ImiVvv8֫vO2;%?؅\tS'c/tk>C$/>~Q[ĥ~ "g$srF2)KWDk0|Q-v5Us_ #Z0&jCblB]+u)W"^.zFҋͧ!1&!)-nSZS)mkFFH݂ipM4vuچEl/zoLW=IZGATA䎈 B" &eS۲OEU0ofH#5^qr 㾑o ?]̇+5x[H_?*N`v򆉏%uaQ80&hc}7#n[7N#7I.)".8S)["b{jWçB1%D;vӷ؟s3qj^ݵZ;Mؐ\4Ms:<:NUeW#ͯC6U;OBM{ %nH^?g𳫑+O* f.֕hu bS{?;8δ顯6ӽpGj9/ݜoQB#?^Y)3O_PX':s| T|"tXa{ Rv<`K³Bm~EcI/#J?J勞&u5/OƑxHz%7O\ǹa!#)mwve{Hsw.Xt%87.68利{!$_ć x_nRP]U=P5XP㒶pQ7~_֪j~%] sW2 G[^+V>2>2X#JS0Wx`E\G3]QN\ʄW̃'p12dvd{cxҳ]?cbaɱ lO.Igyk"\|NjE bIC-&2hXM*!]j jBO;S%h}%_N O?ic%C'}"7+NdNaΏU:&E=S(ٞcXUjJ;T?T*;`>_㦞f{En!B_nVwqӌIs"MF. LFׯ}8J=҄t(vr}>8$,):,=/-됒1d|jONoN9A$oŽ&4%8)!jwҷUyMs^y[٤PT>qkT?wajT;\-:tpu }{57iP :#{j8fA_Hf#fwh~\Ѽ@ƂIg f6HjnS<ʥrU7???K'-%DZhXy\>zL8{h2ոcPx]7 OiI5]XS^cL'Q1 ;MyA2y_#@ʅ&p-fg"pw#û2?SDc@79`4OsEɀvtj&kaAU(sE)$4VpT͚E$ûzSA_Ґ;^^G4pg! ¶۽v+ <\nzTd(KtC %Յ|.?>U%`^'dp?\AN sYR-{||P0%9ly.~H&g=F%Qرx_2,ߛaR2t$Fj]_Vh߿J *Oaf_8dǞRҟ2E[ yqU욮]rGS #W.nk ^ttC*\>Jv΄7\XUpb1*6?:-8ꍺ[n*jeن}~Hּ*Yկg*^EPۨZ# js6Styq;ԩ=_'$1z!"vތJj'L%'NLu Rac\[YzPJ҂Ŗ7˧cڀڕmDt4U+Z%lqW!H98DNksrRd{--M>` . Q_ywG{w;My|5[|w.޵ Қ|hw~Օ%VbQeS|:vUrTA-4p꺡*PgwI:/5vF"To*T W;pV~n6EnN@JԚŏ^X{U۬vڋC.^] xgK 94X6GQM sQnvUcP&p˴o ;(K0J8~G~'Qxor]36n*z/Q}`FY݀0JzOb65ܭ-:8+c}J8|/x/t/|/z/^T=qec&eMݾtMS)_:so))f_:sfS^..) ‘(d^~we$żc6SqvwFPlWNEʤlLpTp ҧ=(Wy*JF a"IDH.0CRWRYYߟަ6Q}F7P~GiGȰ '&/_bW02Ɵ?R#44f%?0YT6E_*W>M55T1Xqfvffsd{#WΟIH~Q۞tr'j:Oή(9\_AX^/;/>3ӏ.d ͣN`?i$LKL-XX-[X^ D wY0M9Mwn le;sܫc;ݲ^=ťABwHB~)IXqT@~( LGRіܫh̞L<9O%Lb%X~ E䛶p?3sk_yE_2:.:}XrϝqK˱JSߋ \/[~ۆ!LQkE2C;  PxG&-SƯ&Y- Cp* [ ZI|4„WGθN-ϩ.ZƝ/rsrŦE?4-^>o\M?Jqk1u 6gf%!nӘs-]gWy98V5=cn$UoOUpZY31.\zyD]^ޮߠ^?3 8F|k[ V(|+wn~{ێ}<7ϓyɉ}<d0 $B&dH `i0! Y RTf3s 7,A!OT1/_22]~ O}Q$ e=.$atG+PS @yB4`KQCz)XG+/HfX`w÷D<^u5.]ߦF|v $hC-Kpc\m,ja4a uEџF KJgc,FHFK隄H3 )))̜*YI Yv9ĴKsO"3R悄+I(XcR#S`š،,3II󕴗φ2y%-n #J%KVJz;F8.|qvR:&D@8jSHgFbge E5.qAY~z|J;KHLl`"Y}ys\ʀ7oY[J rF 0L WR㨳ETKy,p@ߠv}0Ѝg^5S 0ܪG1\PJiXeIMHz0Mn<b<\$h(b&YV_`/m6ʴ̄: È4 Bo h̷-ӏ+9IK_4i  0\b7} G n ULú7|TCI!~T,H{י70ڀ{kWq/su^oo:13p'mpKA8qcM]5}99vѿ]B0+/fة=6@Kz@\- ; =-F\~]`ds `G rSkCm 'ry3+JJ>H d]`}% Œ<fBÈ|7 c2$"l?xȖMҗFVadpGkSM_q.˄θUoҪ7${`$ӗΜbʙ=L8Ǥr !.媸ǸI&hv? ! EO0-U-h2 2LcBh+x8"+:{~"VKG u?'aNȈ/@·w \^ V},k8:Y)\(ᲤRH.E-=Bu7rBIi=#-ZZTOR%.VuަU?s03`H?ʌ֪ުothՏh[;pީUܪwiՏĉQѭ18ڪתwkջG٪g8i{z[>8۪ߪЪnO$ [V=FqIr@%^"`Ljc8Ŧ +Ȓd,0S5{I `j! B7l}X B~TP=^|FzT r& } |ڇ`}$CV̐@ 7ey_Y攵ub04HP Rx3">Q.H ĐApS]^ e%)2;^VU'+PӽM";+xn<#Yv/Ӯ.umȵu/;qz﹗FqA2(=L|b9s֍/n~.HO*ix17~aMqhev2K%KV ,iŧ ^7DyhI>qu1Qf țtL4=ȧ%mq[l3U(0$D Qr;YyCi9 .&9^ّ_>0/Vm9`Ll`GCa BAҖ+ kZϸy#Bل<5SղwBY5t]o~ Tg&BL ƘbN, Q!֯QZr4K%qeW:_7_?͘L&xY\_E&fĵq#Y\w wS`;rlآټSG͐ XDDH67 DR|K3MJf,˓c$ƦSN1Fmv6t (<,?6h&)1!RQRi`ɮͿjX've19& ',Qi᱃ܥ׀ cw"ZԆ=\#f^b|l1!N5 :t c& l(aDXBiKQ4܂QX@ e$601XiLV?@O0%$:$L27 #I@tM ]cqX^,A+rE>z@H=?!&)&1OI"plrlvGń30i^>#x>cS%l]tif$lxON2ERjB{yF&,7oybbbA%C5G]^jq}gfXM&M3_JcuÄaG57d-ZU[,ФВt1:?]n Z6N~=}YMo3P޶Zöwm_ x,[vbP]a\޵>K@y~.LPQ3h`+XQ]>T7i=Co:ya|[`;nP PHÈ&0ySGP%YSJ>Gc"T]UנEOM fƌ}O_wb4.} cㆼZ!$܁օ㽾/~S Ϡ`C&sYfpȰDU۟IC$5[փ{CO!!uq :х kH/i둱?02niGq˗Khlb^x/s)/Pi(n鞂L?s -K]~rŰqk+fx(Me y' ] <{崴zB"8{RZzn癫!SKus0E¿I7TO0qOý{C8>FH@x6@=/"o|?!Ňoj;;??j"~m?s?$^,m}p}2 M?2\_ %#@(3_GOG~W|тgel n3 (S|!e X<Jg_=>xYUxc |eRW>Uxie#\&HW F8 xI/x)1L)xbyyUS2&'&&hNMVaE2ς␉=u-xByYEYQ7xjZyP#S ֞ƒY]X+10BGJ5>)ҳSu)Rq+ ~~z8u}}# u3‚Q~7ÃzۄݓKH*` lI.Zg$2#ñX21O@\")@\R2$bx6j24aF|ۂmv. [|}]V`|p<y ~_̡. %c/0M.%̡Zb\UH_%c~IdO=qYZaƇ%$/I& E &K"FK'F! '.`D)+ 98CA!TJ:4VCY8\od]hΉk6L.T.(9R@nG=cO}qnx㝹]c<@96|?/=-s>(-WcQ7eQ>d yVj{T6{Dy-2{\)ɲd(=mx.ϱDZin$^h($kb{VIYlV^sޱ*;#kkRN?ORk];(}푕V+Nv-̰/dsgI_~&[vpM6k]Qz\3Fwhؠuյz5+]#uwtUӴV}hkpu NJ%?,+ϴόޓ/;:"u~^d?/[BCu..[ rtFR"O?8=p'WlMv2t#TѩNoᜫ馷8IW:&r 9zy?83D;:jpq| ]at9.W@/=tuj1Cc뾟^::`N z+JTØb7 winצBmܨ9z3E:ʩ"fy6u4s8KyP8+ :< C174ϛy!B$n& %"Vj/X]񚞉M=>vح18aӓj}n:ǖdۭmmu,ގZFkG;Җm'|F?{4 z6vh7ꁷǫ/j*V 4<bKpf 8$2ȑ˓sc]McKcV!k8jf=j3Dߵu'N7YeZed!|0kFT[ gG5ߎ;Klg zĞR}ޡ!XksڢQy9_~~%ׂ{7lpYQׂc]P>㘗Ϛ_ ږgl"|qš'σ$5ykT!ev˯h=[V^PQV ##CiSZO^(xʭ G}. ,m˓ʝ^(Bh|q!yPtS:7P{zOAQsoZ XCKmǔL"1i끶~Um==o&ɾm^;)h Y㿺!}W>ii itKFEJWUZijiejMlTI a)~=^([pr񥒍%ϗ}8*dVq 鯾~],ٟ9ǵ3p$\WqqD@8WSju6$]K=Iӽ A-u;1dn֗W-(/,Q 2ARNTNjfR}w=kzQ݋f29<֭ZzJ TZTel&W%N*,$G!"}yZd?EuVU2qhepH2s(D,T˭k9_=fDi禝:Zf!Yɒ׷ƹmeW!\9Ml;gpԚͷ%60PPˑwQf)( dy[V03(sy0[RW܁,'i j(%E=oue$_t;Yt3@9H536Pd싿Wyl!Sžΐ҇4oS*1T0BY%>%?x~`7WOZq3X 54XE,6ͲF]bI,_3WOK[m& sv3QȂq`^wrnr ?v=ixRs)  mmmp1v6m{4PCFFĨcbǧw=?e0? />_CLf#n2O!S12R:ZS嗇mXvP8C] q9&xY7p_8-=Qb> AdtE0 Ŧ:t\8”LR{P:APw6Ce#zTEu2@cOO o0JÑY:rSS@TRl+õ2VAaPt+Pc_vT|FPC{wfSt`%+Jzx%-leDúVƱqje[|"ne\[VfP{+iWA&0e)J R%pT##jp%? Umé7mK{AJRugP/h hlSЊeƣG>0^t HHk3@\Y=F#<>(g)p&7||%#cE#0 HI䯬%+s1GiKxwS?DDsC3CNb/KLƋ{̃  q+ܿ`5e\ {TvV6]y2LCx>fZ"=b2gs?3u?# OHu Pl ÍE(Q|>8Z*6b W TQEu벯Tk~(CqLceX ꜡1.rWdVq ca`S \\B}RYC<'H  דJ%0\Cr'x^`grS3twf@$C. (440\ LҌh4!#wV:3ejGQzt^CMCcË ͏7F9|1z!ZiSMG>r mvZۤmڣڳZ[>jwG7K⡶ }#>sচXkwNgsM5.{E.Xmz"1׵dS|SX,儭3?Cdzowq8A&ƓcjūktM5:VOId9jO/<ȻLdx?^4_j e}DgKX(Qd޷S!ϣ!ܽwXSi6]RPT,١YKBSq uAD"X`쎅( ʌ$3X.Ef$ d{}]ssDN׽ֺ׽$WVBzr2)sْC&_ơW(#()+ iz#QoO)(G^-&>>OuR [_X2-˯fX.7[,hbz 7)cbx@| /|į }gpU]gLLOL>N1!-N>ΐdС :Ckb  qM) D'j))>b|1ڷ-8q۴G?ԎU\c y6l;vKeأL-5zLgμִ:񅩹kHo4cE)6 &woqHǡWuü$e@_7Qs)ɃJeɚ2͍sxA+ xb1gטW 0 ķ@ b,Yg9@X) 1 bRLXebo!p<1|6bhvaFJ4P!~ }=أ=p%Rh`X*3ZÃb ̻ۗQ [)i1#1g=#Cx9QeSmIZ0b_y&#I9y= u}+r!f]7QGf60, l(`X@X)BhȜQm-D{$_TW>F'=Zٔƴ2֛tdE ]B ؟fj`c CӁ[ mK3d͍kfk LDܽr»o.vftcIXmƄ}$/y`d[~~ ?\p=R : $g&e5y+1|7Ɍ q)u>>^ Zyg9.)ax/[&xX߹hb9D~Mi6tʕ;F֮:05ՐĤƥ׉Z{p9z!uέTHkn#cP h655enH+TRًTSR|Cpq?]]). ?b,Gu\}uk`> SnkCU*QS+Gԥ/aw(yFELĸZTuW_q#[Z>H7zv3&ΟSXp.¨{WuB)z/Aò>M8C{{~a E :ψZFT?'QTfUOTFb m7>&`3zʻLl6>IBfl ʑ\Dn`NFިn_{~?sĉqZ¥=j܇ŋT W9[RB;pD.ʭ nǁpY`~t9QIl]jƈlwhN0GHGhs> O+HwÛM9U)`?tzy^ZK ?Ch> *FJYNL $`%nja9+ ^"Y7Y*㾅a¯0V!@=bQpiaAِzxpjr|}s4SjBbBjF?7ս{a_A4cTsJ :(G`0l?(Kj~ A!U -|E;W>_FU>;^ Q.06\i)X[1r5c{$ _bA?@P[Ӧ(Ҍ i/ֆ ֥?*[UdrDVg MUK/8X+&7VX/UlW/ Wvw va @(0"cSmpk je>;g]Fl#7\YW}[UݨÃ{,o񽯪TW)G`}P_|Ľ3^C$>O Dwx \*SgJe!B*{s^ͤ6e:W8IN>[?\rb9>Z/3Cc aZq;vj15wO_/ZG㰍qʅ#ShDSlqk;o^w{p}KerxԹřwlt.Ne\:~':5?JFl%!WdnHRWK~ _x篝ݐh^;;d;wOOރ  rMy奎5{$k}˔(SYX U*CCUA*uVՐ*6Ř97YoMl) ԁf:rD8%=5Jձ׺Gބ%Z H2BdN ˭S1 7IZش0 HJuPT<p `IcRњz I`Tm$zєW!]1_:$flqlFp$KR2~YzbJ$ AD$z kFfs" òF8UZY!; `<λWi3"bVJKnKݖ7U|MF!⮰~Uz r#&fwqөEX ±a~g@nZwww֚!3Y10[l)V%Ռ ٪q#J4%:Odt;Afkk Qз=@0Ѿ_7 x;jpƗ*do%"}C3~'I9CyBI F(.R!4@**Mj즚 +3,\- 0F:F[ؓnN( w㝈xx+ɞ1^~?zU'iQa76An8 v .9lBXA74W_VgAe7@=}:4d =+5PЎwױnBT6 nOɭ㔎$7I%BNu32r{4e Cn``+V\ne|5]kP끲 AX E3ݿkK#0rӕv4]oו&УwF-4l/JeH 6|v2΅Y$7[Pg^}ǁ-aư ΃+Uc熒6U/`Ym˺oU8ߙ9e}(6-bVE,bփ3*Ik/:q֥YfT`,.`Ϲ!lf7T(0,/`}8_'?إ6fO~Z򓲠 L&v߹>l; l؉x+hhG\pVöPEX6﫠V XnR wUH^$ݤpC0-=kuJnD]i,ȠΒ2.CZ\U[/a0YOg]a20m@Ӥ\yb7ȑ+˜3ױ<Y3ϕiyN |-*7?U$y `r~R~]|c͛;)Tz3e77+͊&786:4<{O@͛b~j֗:-;AC4 l(O0}tC( PeWH_)9V.t@=d+JQ;(e3 Pi(3BװM}n bɿgF߆ѷgy]Z>cS[` p,߆* FO_0 _0жtM)/-o= F3hn._0zA7ѿ0g2 |h=CQe6bè7F7L>Rf'BE? Bѭ/jY}By %l?#G P X 8Ϥ UjcCCɫɳ+Ρ6Ţ3JL̰E*fa}L1+s0(E,D',#۰d=#=+QJ=Q,.бF6 8 -l#6# pP7cvv`FSx E sU%N( F4/qd!$MI'DRǤ`]g09Ma`9jE8;ɲRԋ(Pun,nmscj qY$x 葽g0,RЕvvvVRRqA' t b[7i&_Ppl﵁/Uoճ,6RGƆ!hUbƏ VmYxK^(&|1u/,z-3u(62ѻƇ"yxBq[ 0A],,va0`@GÐp$ ",#zh>F!h p[nN"53 ~`9x[9B7̵\zOlht}D7Jp17t}ok*|۹,5pR%&9.'Q]ɮ0A*.\SadVdPR⸞׶ڷ"p飥+o(G_Oߴom:QT.¼z,c8}'X5//=|$=!Z’t{FlGEb&@LZHՄYk1\ mWic>ǔNRI"'| >D>dcbW@^Ѝ,\ؖ= *={6F)v<.Y3lT4;Mcr^5PH3g.=FK$4Y&Ge=~ɿ0pp %LZ$J;B:&J 7y+3EgO$[Gާ3fpP j&7(o W?Sõs]p:zeRZ q#[= Ʒ30 [lGxJ"(G*$WQ)P_?7ozS8pp[!}D+B{F. (/ <4`<5!'Aq7/Jdtg2E~`4*0=;3;7WlF[׌[=C$ a!ٱ*kN{d2=bUcgLt4DSaeniv#1_N(33.N*RCdTm@sa9 ž;^|r*b'O'i7 =zOΞ;9bk_uи}m̿ :?ʽβgœ0'Dcaa.T? w5 ay=V죟@G+pT l|°{%`3Jtn&zYQ\=Vo3l[fOMA/Mmds-Xmg.umɠsKڲd0͖ >'lO2Xl_+[6hKl6hKq0e[2peds2ߒAn:'X5cy[B h7bxxEl)kOʖFS 8_IoΫ4窲3}f q>>wWia#Og;bk *. I\'YR;~/PopvVΛ ? bA6wN ;1c|SH0t OaYģN/E Fb=jgwjF񩶜r``5Z;~na<:QpIXsLwRbPN虄RE\ 髝ܬh7r! :l" Yy;>[HuxD2#SXwt\fiv4'Bp}yN!#zzB.:-c fҎ?R3 h*w'r=v%w-(d6wdrpʺU%٩Y(!Ճq;հ~lebu^L Q0LK.8m X@Yvއ`b?v'[o\Ch>RIeB)6P\dhVWEQ٧^kuyXyWp_W9E=&\{ۨX0uWN=`Re*|ӝuG.U߈C+msqqqqqefhR34Cadp|}A<:%¸tgQ/_"'L卵DRLdPNI}KWjHc9cP,,,RuZtEr8֠Zޗ:C ]?#u2uTGJqy.*;=lL9zV>ޅx|LB3wA#bfMOkk.rqDn@<&.5=>.i9MSd.]"єS#b*^Q`[R|Z.AOxA )8&Osuk &l]d?Lǂm>IJmj"Xv_z.G&Lvx.-8)ꄂ3VW?u~[z\& Uw NI𩏀"n9IU<<r_*la&xЎMA !VszH3[㚟7"+8iP)a#BX@겐1h\5NtFacCM3%(#Q7Lk`k6 X_SiXzP~^PGi(Yh9Ay[FZSy4$_' }%p,C-C;UԪJw2,Nj9W~ Q&sxҍn#wmlz;| 0ߌ udkl)nc"H9/iحD3oWzV)}F}k| Y1!h#x+x#{#}Xv‹uL+{n=cVp [0a '@c O`YOh: W((p;+5ܱ p7ل!C `G=  *_C`%bB:>?֣ z}qA,(\P/mEϘ{kmۘgn̳am@[ل`WT +[ ŀDd'TV`(hUzc +Vn%9 2+G`*ҹ^D' J&7K+@%-vv}P[9lT I Wl򪲕+OCq}͍>G&;FE&(6F6*#,l '0& ٱMa-D5vZ؅gb%JL>[!2WQۋ:BHm=Yײ.b>Z*NQ8EX8]=D l-LC Ա-YD\0@D Nve+$O[M \x¶L%|D%0V(%/\ 'YB1{R_#\B", vloML6L/0P"U`U#x]kبEK6U8(%-τwb 废ebww 7@\];~ul G%}^Rڿc5'4"&Xj%0>f\p{tOY7x`M}+V <1MSѻIza2)/P.Z;pd7yؿtP'MIn:j.{RߢD|o .: .:5^yiVںߩNrͰUUšSb`@iEւq]wUPaM!Cc=2Xd%((̾Q%zKV3tb_n? <9yO1x"7IgS#> {!Rb2"W$ 긚*EK頎Jc4&Mռ[xb!G -R߇Ң9دRajETcYu+3E5Gko|{Ż|nl^^cPZ~(vyRx0f/U*gy@W?6<8{&UͦkP9N,_9W` F2*y "GwX޸`'* TNa$u2?f&̒/[`c2@{9_Sx$SCc K7ytkY?ݒIʙY$UZ@Ց*^Tn5O?0#16~fF^;=RSbcqsTp ^SSYfK 6%3ɣ9 ~wXMbZz0yNonfĭ\,EH(\lN -+sE wD\u"/JSq˺M -Ym`!6ucڼbњAI/^oS ?] .').(Dz>5c# lxl$t-UώUZE-Cf( PTKo뛈?_ \DFDH( #; >oQጋ15S{WqNh s|n*yF;֝Gnon>Mǝyi?kXgfGe4qy1Nuk?FGTu3Fz70 rrGQ4`4ŷ@[/6s^Dgu,}1cg }D! _/[MMܽ&nN} 2vjf #:[!Osv::&^H~Lc..1JlfGc]]ʍڼu^||?sw(+8~wFI\˭+d-M6:LvȪ]9i/2=2j=,L,@c*qܿ]I4o]S}oH\O&Ӝǎ0eR)TJK/LBQAR:3ͷm-d ǿxD#A:=\C:N-k,=xsc.h(kζNHW$lI4uq)tjd}T덍q9q&Ç1::14'!5.'5!fvo߿1F24$zeg7+=!u.-u@qS0;.N4)(0jR؄vMg0:)NkhK)ߕG%e+#27u5xBi`b6I t -8cm.c]Rtn}=SBo::#v?v疧)M'̸wRe?Ov΢ t؄$}O..zp7δBqBeaEF4t]%SR'f$%F \ylL"{ꥠʵB8FnD' žIZJt[Tn.=p!F0h9j.(.>$Gp~aD655ΐ5WȮZǾ!}C8ÒxmLBⶄci~ͅ=~-E ,UXS׃jiΗ  qCˏa n|y4VTo4o;~.5o.sCzt<; vwy]R_YO<@f\>,if!a?64v`n;=Q̌o~.c%0,v1D ʟ7|hDbb"zVO։$&T)MV~rĞGھkrH7N4ax}zOQoSsQaAqh$nmMߺWâ(, NzeQ {h|>OϷq;[y 2wJBTzPYP@0-A;nĪJ?^X.ѪD-5Zvd҈.>.Jw֪s84gM8Fv!#ETϰm@!(8-QUs0ƳJdbzij]_r19_${.-UT,*J$gz!^8%tE:&OI]6!pն8QmVڋߛ7LhtFp<6P-xpMX/bwo§֌َ[KQsa5gZG88 B dm,h]O2̞.:yhl5e^"gD <ᦆqo#mddl.KN5;8r 8`4WfDX?JP:9* Ex/}QB%6R Kܸ[LJ]'95b)0|xv-7 h:Px $kg" i! 6DKzY.Ԗw`MTq\ +:!w?b𬳄`u %ljtWEa٫7L?t. 2egOʾ0Fv +O͋@́3GrfkPؒMX0޺l܊¾t~.˾1[K'BG|5[wCO njjZT~ rK$\2zht<痋ͅUltGNBS_BWp,/G7S7H;bה^W`]H]XW+ȧTr/ s'%h>N1GR+BOl}TNb/'Pұ1ͽZ&oO@xZguϯ"q1h:*ۨbA*U,лv bd+K>Wa[| VrCz1Sy.NE.1v%&Iٲ Й* ;ar,Z@lhMWB9֤6Ƙk[`/kO?e#ںR=iIz #Z38N R4 =UûFآp]0cX8y ^aGx8_3>qP2 W2;uK] ,!?;Bp rvQ β%:ȴ* C ͰKItճyP -},xBG0\!ueCVe[sSGK\gi >exO?{p[5o^6}A'41m[49ʝ<4A|bߗclF[ړ{|#Ϛeb:H|9.;Jzo)Ma0T6e|:R,IVI+b'-q%J\ɒci ߸bW**i%(Cx{wCt츭Y΂iO* + gߊ-h#xӼn.)BO lc ƼųWzw[^4zs{7A_w#,RPw C7o`s.LQD(Jsr99 7kBQJYa=4Y1~V1W^d(k劘~xnu0I#AyO{0c3YV~ ^.>)2۫*"aC«% *: aQ0+[+`D-3(4_TS{uh]T}C7P= :imчEk/ >EVDRW+ګԺ(_k/Ɋp%̳HrbGQM)'yT)ꕪ{trou_4bGO)Ԟ{#ݏ!@ ^M2, xy'n4Vm# T,HhPf0{ 93DXӼ5;g;3MeS˟tsw)tئKeO%W2}疳3@KȌ~((YM_44«‹-'C!HBٺΏXTFАJkeeC)s/:`L^j<^?6~%j=i}]`m 2rmyq]4,]6Mo{T5ԏg5#Ntj+'F5#E2p|1Šq|!#?^N^M2ɓSeF8Zf=Nh7iuU'1T`mZEןYvxNf/[:9{eY~YYg>@֩,/¢phzyjQ~h ,jG︳q^?CX]ku,$Yƴly]X <#~v-vꮊUJ5_M2u?,WoUm?o:DCCռoD;4.~ UѠΉjiئ w[:.T7Q72A7_F728n8k˗7"Dzʊ닲.w)-î'<@p4;|nKuY12 b.03ϊ.}2[&[Q';TvSf^>*k(#y<4)VbB *4Ι 1 5]ut:۠T1я_Fk[x0# L U$LdC 5@)jzUjo-KQpjpDT}-Y;;{^ki@BQmt3f.l*b2qX`BS㳞m*9ksDHr IuOe[ɛ 'DDt8L8'8c}mg&3wΆFgO >> 2`H;2:FN=`ӽUs( =D}vy+ʠAg c;8co عaD,1J}h|vKNDyNi'!qn}6Rp/hPQ,YNۑ-s/NrB)v1v;"dq~|Ɗ1KW2t?sgϢi|ĩJlhBD[9G5c55t& M\ѳ'SI-ysCTeX"g\Ӥ=1:swVy.rܡ .֔[E>{Qr!_oW~ukoO6_afãnۜJ˗PǍ{w\_f6zC튱-鶚oVm+lkɾ&ʭ[.uȧ/;d3LDZ4=qp`<ƞz418?pxh70+˚Zg[I㣲'tN뀅: ݼBE*]8P =0pc|C1ce bc}ú꿅߻pr6S=5n/i<)bMp7R 4:s 7 |C-Úm_ 9h8o0KDŽ}|!ӑL~e&gc"/+H1Rsf{MpiI]q jW1(CW/+ |`"*d\dcLeUI~/d`7SzRT+ ߯y,wf@3Lpdee33Vj Jw=kzZP_/ccV˩z7g,P6!lDcXmFUMwssa_>86c]lJltӱ~z~USS_O 7=B;tt\ E7H뛤cKK]r n C#MX#{uP5TUy51S0,FlMʴtܬs&t<ΜjM[5)XlSbFUߩǬkZs>B{T}ZPnĪKbp~g6+4OIS8KSu曎^vdx,DyH-myCc`W' o7p^&dF* l)`p<F#`RAj2MG; FT|{h8 _N"6QABMRWoUg˟JXMlfܠϺ B Z6I L'v[|wm}*30og!BWV^2*Œ o}زӘ)P y^ P׭"_@"vUFN(v^]0v-&ho:YJ#]EL]YRJ4;w~b]fyiMks7'%H}kRa02L YV)'^$1+v"~Rg{yrؾwEec=}M–;Ф“^ЯeӀPO+w; %m)$7s/#LCS'ܧ*z# 餥3Z6t4ٜ=FsABck897r1ձiպHapf•SB-BxF)W JKgVSVɪwÚ)w<\epu%|>'ުV gR".o.7wIVߕ?7O/ew}r'͚6%gQKo!HC K|:"\GQ^~'73ůz5# ~~۩FF=7(;=o7s`;QuZ߹#˪߫Ξ}zLtzQeԭVRhm*>T@7J?^vT3* ֤MA"C+Ѱ#?QZвT0<^٩Y<Ir  ˈР =!ʰuOfpF Lf70)tn^QwaB& :$YP0,60T t/hxF'vxoɈ`,xu! %L#i萲\V9Sod!HSBH3윌tVk2*bqi F/!zp@1b?×6 tźp)9@IL@Nm%$jeB~~Z Ks TNt:,c*p1HѩT%NDBRD~bh)zDIR਌kㆰ:y=*tMv7Bl !:GTs969D\f9bBTkLk\+/ET}}SEEdY 5/1:T5ۘLeU8KdJ}Ƽy{ۘ9i*V =5UjUTeށxpt i 6~)فx!dY+*ЅFDYaUPl?, JPO  Ldk  %*.&`&,jC,(4nKKA)_ >b7$j&aVѲvIċU%{$OcT\Z-/UT&q~ 0kp@k6HKufl5**Iq?I P>'26]rTdp7ʨw6oZ6J)/*XV?%EB8Oi'<%PN`DK% 葁l[jafe*ufQ@ttejlli>L`llFb' K A dAJy:]̨/@ds#F]q#5Qxn+o#>=D.y ,{;P(ŲUd*$VUx* d'K--/Z--$fE1EA"- Nbt ] ^E{LWD6***T$۫*zQ$ګU{}iPnk/מ~@"xxmxmt?^; >[oʵʵ(n.׮*.*rmZvrK"Zf+1'[皵_hYY[Ӭ}D6k 3)$٬ nֺ5k7nBxK{K[ߥҮ%]KE~K;KޥեKKBeЛ4pH޺ NVθ׋04a,`T06(." @BG0!ҟWAs#Ղ= B b3Ppg~>A N}~} <%5a`v \IUHU ~iI| vLw'=Hd191̛3Ιy͟ 31RA*+p..r LE;d1^S0g&4ǓZGjp !TDᓐ`@ S`" *: Q4 XxU—vmT+v-wC|at9#)CDm@v7`y'PbACȏ 6FFS !=D˄ݮ ~hN}=3>E:bՓI&ן74:?erDR8Ou;)#҇M%"i:HtBjoFr:[֯Ӹ-:eټCT.jݖYRei+|4A͠h3 V=6GbFޫZ̨gbxbba?*O5ٕ\Z;@Sw484n>%9M/rz ~?˭4Eo * |r;]X(XUDeÜߓ(Q)]".'y\cup,ˍD+a+t*,SQcPR]r%qUj%zS l+(JZERlP!J=Kb<]ʍe"2z嗆 %rH 9 .hC p{calJm$;Z]/sZA ;É>Ɨ )"1dJ$#5ǘDo50 BdY{qj(c%?#hQ)TlG乱\ &bv?Pqz%Kd_t@îڸsȔir.8O](9ش\Ό Ƭ Fi &yͯD“m_rY^&RbӾqV0hYk[~`;B&]ݱDɘ֭ͨ\nϮ6J*h/լ#ŕrY{PFɁ ^"񣍱w"*S9?n>nnV5S36]//}~3B?-}[ÝF;  鍵>>X}ܴ=ϭ.h 1t2۲I;xp3% gVEp{.yɕc2{ǧdL|ߧ"Xw*+g ,g <^$w*rC"y֮>ylxNl](ρ4L 3$[L7PT‹>VP1NjKDsa"hV&Ie Q`aᲺP+Fns]Lp4r !y|GULKҼq Nnn=1kM֋}S]ri-E(=Tv;Qh>#@1&$"%v(D=qg0|)=p~Q3Oހ<%tj WY zҦ^+ͷ|K p#IθR210qNntB5'k֖CRƜď; tIPܲ"@~ CJ`N7Ox2$9`S!utk^p[ߐI~BZ$Hzۖ|ӱV&K:9.Ki xխo7}2k}}>e}Ò[uH$iIp/QxᱼDHt(nT4$%PӔ"|266-N"v(OS*26Z= 5AYt@𣮑@8C%,jq P`YC`3早O(3 b^Lݶek;9p}Lz5 )׋)x)bhNQe[3%+n ^DT)*_3gR̤IYCҩiIYIG^bor*Gx XT߽mf ^ "ZxC)K\ A3͘ǎ%U6zJOs4;J3;J55 wͥ=k^]nU|@kp]Pq`<#]$gu_]א1)1"G ⊸!= iE!ވ&"J$#]H7;@z"H(#*$D"}($RGQF)fϱ0rԤ"F[ sT ߝքK4 z]UyLz|@c/t^_7нt{xGtM(k^Q~rξ?:YwcZFkRF:uԠt&dM*6rţs^-7_FwFWCj9ZoV݋Sf/Bv;巷ŢE,*r2B}{@6A<+SF&Rhxkp8~4oNl{rioT#՚*$y IhnI(!HR6JZϑjwߕd^9Opw\$izcyZtj\$W8ʽijZCjin64~Z4Z pFh5 Sd_Wt'eZspb)c6~yi69-)y\N+FizѸ5֟N!j|-m^(e17`xaVIJTJ٧eVQ+iz~9uSȬ"j|FlSvF&((e0,?gjn3*e>xFKI7ۗ<]Y!sL,!߲o};Bx5TCd eL1S-Δ?W*BDyei?F6& $5?{ƴd`,Ѷ:cgmJ,-xeI}oit~~o~taVMDMTfy dx ;4{g8}p.X OUkפ5Oä/k ҅=%h&} Uq2:aVԗY[ᯠ_!^F9Nr 橏W=*%6FsîV:̃>d]b&~}r~hp&LN—_? Ѫȭ}̪[88 5Wvwa Ҳ>;>Dׇ$rxnIY/7(Zяxp{00U|}\rf/締0|4_pKU">S}3ĹY0k4hԄPK9vlN'iߥU[y&;Lvd0b_`|eV{04p]ʦd>8/<ڹ3M\"@1Xq*HSg R6 RnJL7c /vp3t2z:t:[ 5E:GJk`>2ҐzC܀Fz}yqۻʩee^}WY*bhhTN߇%qjERYiIgE[ U"_YSHyd&T 4'C{Xiߘ/#y[B-j8I eOMCg͓_ ^%ɒiQ,ykܫ!֤,g-y=l뿬Y(LQY6fX*ѭ5լA,啥ކ`)Jʋ`-We,}Ecccm=z遍}rL%+(/~m+K;@ˋ_]=}:43W1?cVFhN7,q#vP$G?%U1f~X90w+n@uz CGU Izz[Sa^~P ?9=A?u!ZTQ.UOfl;{; fIQzI21<1̀Fc̻Lͩgb%}]FҎsڈH:*' {2H#9ʠ!i)i9c h܈3wtZnݴ3I1kF]H;7J8؇dծMx>c)FKL >mҽOO(s>җߥ[ۣ-?>vZukT]ֱzo}nXfzU~EEZ_/,]vBrxz#Ì9ΦVd5-{Œ5KV8lP׷LuX>tMgO8#n݇W0ϯ.oܼ=uζ؃}Ι}Yt}7^07En鼩@c1l-yy{sFԄ|)kyRHj%hbryُeߞZ2a=W7}8)ب`tZYQWK_ ]xR8ie֯[/ZnƶpNj<ߞt5XQf,W1{95jJjVܩaq !&@&굞1յR Ն "@@~xC 5@,Ha憁4`ܤxxAI(HxB L <:uJ10Vu]"o3NKk¬`xGevOgaBQ&{ λ\/A4b$AŵS}oD CA [zpzM?i~6(Fߠh#$w<*!Iv !XPzq܊C~vۣqЫCuv6ŁGΛG5usIQN \[ 8*8(jEKڊ#ڪ`Vs]]Gd?{g?9OƸ^]@3F+Lf4NzB^U;vǀps#&$N-,f% ,sM9ш7?51ysH$[ƈExlq0:e_P'xuX+S ?6Ԁ aăy&>a<^DV1cX恈P_V//? b('>8%)R4rag|./W1HruOv8;Nd%,*)ېavd܈4ˡ+{BȆ S@>x Ċ%p] HAs5`roFTV૧3 Abֺ /> trF6sןTWz*WÁFc`Qv=ٮ ףo4I+(*a=J1UCk9 OYxh5-2!HFQYDº}6'W('lM#RT{~ m"vli65þ‚UuL|q^滥"D+Ggf/`z^ _Kl* ŅyoH(~*GI ^LlrR :]к:=Q:mFdqIZCSd: Sx]d8-~̣ըŧS+u-dƙwsEù ;:ݭ1msM+U{zviI R0#x-"^㐉CO|'ϛ ƈ FxwQWq7*ϛL'(G-޵ޔ 8&~ 1B}!F BDD~a&X Ln؏xeeU/epn&㫰 hP16chb_O?u5}?w{N} ΌU y)]NCP"Vi)Ç51']NNCx9QN%feF;> )`Ğ LU$F2FnC <{C[t]Gl ƚQ00aaَ0P!f$lJ( |DǸ(`lN얱-icL^ A50Ѧf82>w4c..US'ioHNM]h&M˞Si3:F㝘*s뻤π׻@=]R(Ød.zb5a@\S\`~j?UytP.=(:('+/yuYcO${&C sKmդ$yÓk 4Xq> !u9Ofj*OuILLF& L72F)`$jgu3k5)Q/)]iT%~drouzzmPE*U€־iA}>װ*٣Pid^*0Q0ASÒxJߒ))vdؙPm 6!uؙ_? -bx w?Q;lQeNj=P'Rf ȴ_׃nrGV5A("uY!$,[YE)D;%P"?d< * 1#n:W;3ߧ2' (WͫuẙW@7੝&e$i1|ox]qP) `6/{'Nqf$a rhpdDh$ l-a/0NU@7aQpiF A3`ߏ3 bpj.cdVIIY\y5eCw ߄h|򯪟SrPEnPMA/>_ qXhJB| H`o/SD"啫*63eu$׿9fDYj6Tu4`i\xn\IӮq8*{7g_s_)?#͕FEťʵ^TsaXnw_QJEx&KیVˮ/ꖟjSMʯ...,-ƊFszoOv[^RnBm瞲QRIb_ؤM}iazgʭ?B)() ﯚS1uvhL)J.9G`2wd( ̝QjA͢Jp{k5V2?5JލW؄RTޫD?~w_sRs{YE& aŚAaҸ}.QlP `*CY~ўXf,}E;Yb۵I%c 7avC~ssP2 m]{Ɏtg's}VxHG:Uwx{OP)n+.uʒ%֧~!Ea*<-F8,pW+;+;*wwTOQIІ3mue9MF+ZzFC-GaϛYSP]pݳD-5%a vhĵF? Ka ?W*>cT8W&렛;;0yP;@gҮtW]i,7zȺӌFלEQƂ 0iNa~{ REr' 6Too ^eB?vv(ɥJKm_6}In ǭi_6wq`{Y)`;`1ÌҜé9q6ٌfP8w0G(Yť~)x;o(P4bA<܃Ҟ Cft >YXi0O*|fx$wHrK[H"٬=9zuM6k2?:C];l%hjdN92l]f3ٚMiAf2S6;-lI削nr]!G.-.sr<d-EMiyag926(HPt ء<+T<1Ӝ͝`z,F&!.[%js6/=:4?yK@9b\75M6 iAHt އ'}?C( PEW3H_?io2k2H lk;J?~},JX41#[cMt~6U `uoَZ0a>w;FOnwcJ|I F` F]!fnƢ) A~`V|fB`v2ЎQ11zp?^v`^/F}xRA( B3BQ?~[/>~Ah?J##P X8ϔN*U|ȦsPfyFnb9̀Yt 36ZAT;vp,eaM*cW`%/E-Q|XN\()YM7c&21z,F!uwWABb(%ah`V?N0@Bފ `}Rx(ErpV%@vȟt%`oͷe!6F&JèT7Jt`6svz0qc`YjEm˲2ԋW:^%imNcAno*6sƭgit{+𺢎1K$+a;IICo$)re;)/\0y] R/Jr/씊b7Uᶘ}w'B7/˺bsmNk5S"9ň u^3rpX'~u`ɳoCJp1޷,ދKKe%y"9DZS)NK**.RapSh T xi¨yP۹¥Ʈ'[zEtxڬLQjMX|G\n,(𾇕,`wC!?ӚhdđVעR13@| 3cbfYGPp#Y>]v{7UQΊ91q&Z-&v5 \MdKv'73J=t1 %tb<x2L5V52kLeT6l@l7 a.,\"0ÐUh&~0FfK/,SX2dM)& (Ky[8;{px1v%.L8!/ZSOB%Voػ""7;Cv9%Xҁcupvj.LJ"^|- m=hQl>GbB$HT1 !rW=a #3b wI۸ &نЮ ,=Ga<`C}!2ܑR15sdF;צ%J= c!ni(H0XpOm\52.^$Ia 8)g]߁ѻf>~ʌIwHk- 0Юw4ro7N^zNjId2wL),/QIؐh6,!NPS~M _NQj|rܔXJUzz8M `9i#$#7w0:h#g5ڭѸ[œ`6ދ"`Fc7٦rtf6[ iP~>Qo|!ޱdm+TAnY!`JITh4 n"L8}a/pe'Ǿn6͖nЋd[A|nwϖV`2VpҼ{63 XzA{+f >\s/ ^{Ա 4?{ؙ{ṚhoVpغ-apqxq8WVbʋ-e޲.eWҢRݿ& gN-4FW|y7k~s?雚Q+(?zdZv"xެDMn//5m( ExF<.[V0I$WvCG1$FA<PK00#jG{aVBԧae(G7Fr(nSˢcmGG%Mp!ͽ=p5j;WMi!WFr e@1%QI|6cǨ0䂞`T-Əui!̢q4 {= CF*:R1[W` iq'D4!lrBfcl(dнeea7 >9-g4xYz|6,Uzj)KE5R."8 a6a\Hdh9ŶaOgKįx b$5ίBJRCRBno8kXYhM5a J%b4j[x_ku٧7ԉ4hm)*Vm~jP!١٪2J>)g7qoۘ=:P 4fmMHNOb15`jE5^c4陚&M =sZG%ӛ-$QS#c/(kf(*ak@}Jwo.oMGqĬJ/pmpw u/ө0Zbq7Uä[N]d{MO`:MUL:vFNwkERUr0:z>}1 Va' ;kX6 e7 NGkяϱQw [9Iձv*.yxar_v=^K9q; w?7q4>d@'-[ @!B)k`b0 -V`PFo8.hml.اRCKۡ$ iHUjkpda6g]6;.iX5Ufwcf!b 17fRP,jyA²7ƥ!tNh9c+]4GU ;b#V Vo`a]qB E~BϴYY,Qg%sؠ&(#~!hC\v.\>ac V6cYCKiٰ5柹Ehz6l\بU[F-eX%ʆ_-aIGGjZȰ1$w1*1k>rxK\dKs>+2Fq,pb<О-~ y6ҭl؈}"1̣ <Ï쿰g.nO( ޜ\NA$K7q0<%BaA~'.+W~ #k.Pm]oYXd'I>s*cs+7`3뀒0.X= E,6I.!+ȵ]}H~VM"GvV>o6>M(|`m.Fļ$%]; bV-rX#W+D>O(oO!Kӹ騍t?tw|ڕ9">%^XswN 6AF0`=z4 {`|/hH˘@R=AF/`yJ 쇽A0,;mZV1vjXNe(yv8`#?%-DP E "עE*8%?e~PP3LvDy\]H 7lYׅk(ڸ_[:im{^p-LwfE c?:6-a=2'٢TߏlG1&&sNL@E^-@o6 +a>43"=naBbovQ˴iW9QGaʉZEZLE nRL"n BuvpǬH: mBxX)-y@O1k0Qx'DX zi$^=/Q"Uh u&gWDK0%/Z` 幝t.ƻȫ [Q:=?wLMG9}^BڿmzS*MIi}A5>d=*eDZM};`!'%1q=~߷GXB<`+pϊ>e[?0ho~8&f~9-*:HͧE;E;aE yu ^y4j8T{СS"ňvd"^vŋC!g(G#y7`(G(ɴ]2#=dᅅ9 MJGaL7QcܬNw&o 3TLsxaSS'tPR>1BɿFNȈ煇,!Lç/;![%BJ)FϒȈ0d PL/V*)BAo9諮E>E"\lW|ZG#WW;'8E:(RlP d"IieN\cz_h`}cs.mDk煏.:{#Ӷ _>b:m8.s׎IWVP| aդ*/oX&{lNr |whɢ)Jjxqܴ:_Ɔ*:1ǽwb{vKOeNJeg?oC:A$!\~Q;.cOęzK88]8W rآHSˁ`0X|9LgiԜvo dC{>Ȏ ]I2SKj B9ZHھ|oBS9fZ/)qt2i7ѝu{zvZW AST*>[OQf$tT#K/Tz\t9}Icc&+1*3|sF<){=γsX]hlU>PD;Op[;GgJ+ vkX }ư{xlynO@2V}k A}F*F\`о9oQzڧ_EujUQݚIegSD$t3[A}:x_ر^&kSuF|C$^_{86|U>z{ w%'2tn${G(B%C]s6ѓdM^a;vݥaΏaROee4[WiW;׽>h]R6J bņ)>dSh틑0rh4Fc)t²zޝHP.͛Ѥ'KSqIWvjxFIhԺVMZ I+Z.\T9].$g4z6CG0) &3MEݥhb{Du]t$>B={k;Rg,kW?Iڴ>..)EyC:`Ojӣ۽95w^cp|zH}HQ~,yD*1(1"tTdMry\ԙF NW \.ުI~G^OS[z=]{VZ.,7jN砢Oh0i~Rj~J0+ Vkt)TUvMu5墎 K1Iɛҏn2m-˕4mr҃`y U/X|. !AP~ C3귴nqIj|Ve>u=8P_xڡ~2z7=g 3pՐͿo4)}MUMMM.E!)][w2an=6YvLh}!+``}!#|xA5BxIo!H)cTn |Yb\*;ܲꟋK]; YM<ƥ.wN5ǀex cۢ? Cg\M.Ge+&*+=zQM]6~-٧@险z}+E;]XnN=޶T!fL3U,kmPiw^1޹ "׊@zN*A6 Bs/ϩ eŪy&Q&FG~9"s?14ET=`c7I$&w)Xϭ|ڥqg7K9+'0V|~7].np _20~ɿdNegYuްvYSeȞKkck޲k^U**#vL[䶊s^,&$΃b¸ƪ*Θ\@`[BOaU{.wZr * L Ca?=[󎷷MO^Y? 30fC?3 >f7g`qp}1y6yfj& ?[y"hE "YyN)v+Qǝ983v7̳nc6t g/9niX<<7jh67 2~d̽sPA0&v sQF/7e)8CwXd@)&VYA(كNl [}0sYLA +h]߮Z9 4CW=&!vR5řvRs t!L?)Leact hӳR5U x.g6Y^'B֓j0?5W;Qk%j|=&uk0WϮp.>=\;Z+|@ZЋW#"Wg,;|Qދl_p#gpeհ,l(?&](C/g=|toY J|OwCgD wwCWTrH`>F -a .[]=[bkh1ES'S|lNtN]\«^(s=LOqCn>)Db̧N*k>Z]j^N i\Nâ*t:g}Z c0%E1VoE25 ycl"sBsB`>b yJL^r#35Y 7+>F;׶l87Mi`q#x[/)ٟ56@8ovlRA7Rwe/,e7GHAw0Rv C߳!aŹ+Oҥx kץ|B"G+(#2S188C *)~i?O@?04j ~~CvhO`];#-].$q%( j-3]0%+"[*h 2kEqB"QF?P/5tQcήbV+0a7*&AwG0%6<.y m O@ܥ#NZIo"AJXSP>2~V3\x%5owi;"S5ϱzq}Tϱ 6?nn(9pS>O䈱JX5 ~ȾhiTj*vt:56Of؜yN"Nے>f-4SKǩM/@‹u[gbF.ryCA"y "OY MZc2W$VɶC創@* j՚Yԫu|3D(wQV/a+DbpE!zY's#p{]@y~wPL f:Cw/"tc [^"$xqiC'HU31aA?>x=~GOs[ŽJv89E˲#DAZƲ*ʿ${XJP㬮y_^_H*g]̙ſx*ٹn;w|Ҏ?UƒGVtSa2EN)a )T~75`R&M؅T|!}W(o}WX~|t3cY8V'Rՠ[u=0z.3'(.8&o69崇|~ OqbvL39<ap8E}>HM:MwQ,'_n\{qCtx"1CmRt6I>-}|o&nn::rƊVܟ4|۾|)ēx6嚮g*^*Wy&}=|11gw#SG/+`/7f%Z_*&hg`YAM)րHȒAMV:0tl@HMǴ Ǔa}%Ƙfo_2 2Hʚ`8*k ' a3@6C7y7Qp)DUqOPfwc _2N"}Q}@efY_Y4}Ac9Ty8DfnL㊤2P8D˹hA-aJϕ5%{uh gd{\)5CVI]^-RcEnfQy}SLTƁ2eI/r!"J6\)MyP*yFi*v-(wPmA7IxMMە4`J.䫀5q#_<5КRV?nG.UX.hWkCvߔ+-acko{ǵQ5>A$%Mfx 1'MlePgXFQ{N-lf=XݚׄqJ5sU=UA!f|M*f<OI4\\V|azhi&kq':,H8{ZVRZq_H#- EIygua>9;J3 CDJzfۚӘ5%.b z7Z[ y1;9  }9}јmޭ4amw daX/7ZKw3w۩Lq*/_LR.Vn8W~{UscT,ܰ5~4kb _x)>_J ĂafaVӋ,~ 6i*q`\x{ds֞Q$Y0DQU*rk0WUeX:ODg ŊNR乙;fz(^E.o6PJN.[ ](1 2r u  [pJ7hGIVm=3~G>~H3$Շ^M`#|j V4Ӗ}1gj.Yx/&8Dx1E{OO6pZC _`hl4;HͰ zo>jF,SE (B)xgjPj2@&0QZnJDUh@1C2v_z{8q/ZUBګXlsضo"!Xo)w\?<I7 }Ÿ ewUMѪ0c zLW>tkkk0dBDM_^Exk8XO&0J$Պ;:Q~%\d qF͑&+z"qX]睭 |V+u~CybLU kUC$] d-hE!lS _ Cǡf} iu"$Hm&_l*),g^q4J]njZǟ^J}q%?LY~Κ ۅ{dAkarHҳ-ҼsK73vWQV&um-Ք|s*sI+a= ݂ln[zte0S0\=ܬq"1خc{Wۖ^[rWa]\ܤ<ʔo](#K *[U~y4%2İYeԵ&4$UPBlo2N{LVMX1'v١rp0V殬hb—+]Ǫ #s[Ao3{Mi̟ YuzAjd45nd5ۋ.J+?=y|4ao%o.hJߝ1LZ>ik:(wCNG\{&~>S-ϯ ]*ƣ++FQ*Gly :;.ݸxMC/5jP"Х| y18}l RÓTmNy~~a տn b|xǠ cgвA6L1!?NɃy[& ptͰ'(}W;:6~):v# $(Ȉ +4祹>?2^Dr0I&Th6,}Bd0i4,w8P,dSX6~7H̐voTx\7.Z7ɪpS_[aLrcItl=,UA5]k_mqߦ [$94 ~Qn<ʴ|3Yf63#[I&5u}tkGd#}Xx,~'~ =PzJ M,pDq^i#{Y&]{h ٣bĤ=ىPr79x S6=e[-oZSV#NzJk VYKEa)ݸNn-0[ܣNF,wspY-2<#=)d7"CMB'O?Z:h7U> 3,T-eVڤV.g}.ꓪ:M;jJ: s!"ƙf^.4GZ NgZOvh\vn)JƼvjo7vS*GN:P['Δڲn Nu:Eb\Bj.ag.ZI׷/999=9F {3ls'-u,gYb:A{#>̽Ƒ<%u׎ U|cg; ^9w1=ygA)w0nrfl1i`N !ıHŴ6-V8!ٌ .+"-N=[g'x[g |Mx?ыv͊A! c\k "S?*I={s*BEV݁5 5Le2ɬE SQDMǦ٫H mΐ)̓f6 *}<[ gQdT̶\gv4m{SGFэ~Q=bzG-krQ|lYc6:?6 ۪϶5 N0 ߃ &wfiأ { dy.Rgۆpj;1赖IdOɡ履PKC01G3'0LK!3t>#4a-S*[Y!?(2m|rqAp~uO=L-Uqa͊VY*. U\-}vtW^E^RMڷw2RXOv\xǰO=Nhj9U؊;[hgV]StguHgzE/ݜb3SJ 67!e2A ~V}icrc|cF 3 bSo~ys]d۪T鳖usSyCi*moX_1)JRJא4KMf75O54?5&8 'p<?jq]NYFSݚ>. |F?J@ZCo0CSWRjfH4^@BR?yc++|%p:VݢmOF'"^I I6 It0|MrV*TՐw *ϨH(}-%uoϾHYSfh[B- f= ~Fxj-쥬U1 -f]͍é/Z~EⅢҹת59{?b{OBeEG1'ёcFGe HBݮx* ]ٱL,om0<}l zQ(*WlS;'uAsAGiaEINZRDtD֒^mءL@2QNԽf5D)ϔJz*E٩]MùTZV]QWgzٽ݄SƮHe J/k%j"UJ#CijiI WF~!z˱RקM'yvvrG4!%1$b|2໬:ι@#?qI'q?V@QUPR`إ:WQP0aj_eG]„Clz43B)WLy%٠+e'^ʜV S3T5q(dcg~սjl?&W,Yo6ƃRʂ5jt/[8qo2PSkD߱ 4ʷ^Hȭ8[sGS.+P,Y3nˮdC {A`e%N 9-٧* T+(F("ej)?'0N!RcDN00QXY~?Ewx{<G}ŠKr_Y۩MU?_z &atLX ΓK `zuonT 3 n&Ij–I[ԝ F*rK$(!DH3 z,55a&vkTefmBқ'n گ6SOU˶|rj<C+T|fg{nu;rYcUޫ'SUW$M}vhAvه诎)Q^ʛ؆ykd}1d[+ZiW(opjNЀC OY5}k/?5eN:JoP᭫*b⭳G*GڭVkvqζmiH7/J?}&#k&4'2uܻ-)͈}{ %*,i BG_ϷnwS͆ %}- zQuO2y4Nk"}+; L$*c0crmnvKäGknߣylZ^ ߮,O\ގα߁:wU2.܀>ku^;=k< 0{.ShhPzפ^ QlY'VnICԛSAXNpj⸮0ro?pͮt6d}'qmR$]JJ?>Ǐyk[#Z[B5Hl\ o%#ʋ" ۞҂}(48i=:FUh-5g)A0o~(?ਂkCgv?;z7 1ލkgɼΘKEi#⳦N%ov^+DvxU~`L>BBj<Bkg(!Ƨ~B~B~K~B~B~bPŰ bscKCӔ -dqQ3i -dڸ(i3Z&#cV'cE1J2LAsb&b"-i5E*m\T)!x:D=Rǒ H+&\Xi'#l羡tdֲa2_d2lsYhE%o{*n[Z-¡h:+. :R +o9[P]90e'یeP0沟>6m3bsI:ίw*T'|db~ٽG2+;G9>+j\Gc$t19?|P?l{{?v;sBŭ>{~d5U”7?ɘbVCM ~у zOq-*8; >M+z6{^Ml^W.R_1D,pZZ(h}N,II/ clI zt䝸[D8ER3)IiBm;TKRaDJ&ejT+f%l~#?٧fb_v/ ${!1}- jG@ K 4*r-nrZ^x؅x7Mc\<4nw^g:Z>LYU7 ]6z@PܧZ*3~h?h.C !`${)&+ smo:S;9T 8Ϭyቮ}rKX2~^.dpZRhGgny~dT5~!$m!V5ț0<W԰#OIW9a0At%eWm_᳖}v~j4h>i!t5ةb:_UQ0(N/#}Sm҆VWf׈KӖӺ}f|nazaA]f B&盵ȥ;Öζa6H^4ś4=*+{RLo}N.q% Xeߛ=Z4PK{ N\_kXu5"11;19\Fb’lеѾvכhk_#}w2GcKo;?1WVyڄjT)Lcngc^dc橶p&*\B_aߢLs[N* g{mޕ$ĆMԎ;HA nNw/|`|j82DׇҪ^]Hqۜ 8^ [ġyyb:ICV+P HH5%%4y=`,)'Ki8+8%U7 חpESl})tfcKccpQ$U%r-$N.:0czD E\viST]SDF. BHA JԗhDDF.m@3S'v~6"ti'Ԧg { sGPVb#krjJU]Z|qz2(̜υ}dGDԐZF}hxG{hP!2|hF64r!^>~CMũ{ɇ!muibi%c4Eʚ["(w/*K,aIY*uic)i̿^xk0潌ɬ)W[dgJYaYB4}e8:N Tafc ;'g7'ċR2# J[ =WI;EY)rԉN :!Frh H >3re}癐t#ĻVOBҔ#, StֲƎ[$Jߟ- Sxj;љ%ṵ̃tINvV+Jwz&K<"g?=Pho} q>IY<'2]3j$]a:dMK/br%E@Γ/'?qvfp'SF3i zpݽfbH43%3gL#'Rـ95/[n#<e=xv%el!j&K`ffIj5<{Q^u31؇[3VΏfvJ""=&Q1oGLTV?辷}T;iJBvhȡS#Yμ4eF07h %C0ATFZ?э 2Sd8z4.u!rDqXA#!ݏiT.865rO?"`p҃#CRS,dqq~G X/~mԌt?0 ^ogxA{&Hb؀&<0?u0 LLLL++1t|Ay1<(w>(7?($޻::yEitN^X'_E u:yluur::ي:92`N#,  ks `ђpO>~!gަ a # wk(L; ?u/t1' P@E/SbԽF([&`|,b}/8'7ij,ӛ`22&<2X[ln ESm`A| n"`jGX6st6񣕹a"a*!B 'p0q`ahLkzP!4?ȓc=y>ŏ"]&`աGc 8# h2VXp#oHX,X֣T eڇh ui)@<!1ǸC)nt``E@lAGmO'|(0WHNgp^1LH3#7wq=|Vy㉝|SBkv>Lrׂ%ŽO/g׫CN`EHO`A!"2;5Gni[RMFrBv 6V|˰ #?uSG/?vX])MJPvEܮo"UÍrm0s^g0Eg.Oϧ&!zL{c*n0kM}>`AjZKĠUkت5j՚xPL=(agz62u/>6@:MAQZD㞢M>Q d}Az7G 6mVQp;U[1Mn7lM^IJWwnw#ς{(Jp{og M~Nˉt3YⴶV+dvpt/fyup,Է~Jx~-߂b/g )\νoG9ّGZbsr"v7q%^X#݂ pFIibRr%FH{y;]GwbfU7rd@:pwD`@c2*/6u%r 7O?&!l6džh^: Mv6AGct.CDwdqO;` WP p:y!M+TүD?3Lia9SҹK+Wxzdsg`S#oنsm@dYTvCg$/:T`V=P13)5^sFEe7hc 2=JHBMb87'd I@/Wrq($5- +I N|K8aLPO*DM2@26G#ֆ4K2䯢)N O2@"&*j&QEQq!KwwuQdXr^z/wrwq 7=LO3b&Ǒ5%8#XMq+J II%wIAΆ%fLD8&G4ˠ@lFCb:!+hT$rsЍh6lm8_zzP&Ux,[ /R_21cBExD3F+}+glY n yq[#q A^r ?o?OcB&8 wO^[}}ǖCřYńJO$`oXzcxq.|{ǡTAS~\.[~k&,Z+ oG e;k7%,U*VfRU+Tê*zUYjwu竗7U'jx6noHlE5jX4@(x@#լ. MF!nWᾸ˘q=w.wx{6{wc%\>0L7;ӽ鍽a?vԠ3hZ/ &0}.!~%<&: *$ $Fo {7"Oϝjs36bZٕf^)n71,ˮЉ$(8|z=~|~|kV( #m_0b 7_84ƭ%(`9]*M tri=|_Ct9zY=hE99`m0sۇ- ySA~GŃ} xfć8OnKkO-w f'ES.cоhs r=ʬC sP&c@0'e_fĎVꡥs k|(>Ǘ^zdBS'>VC=\x1>R'V?L'DH_]kA~iAS,c("`<`{XIxЃ ? 'WzYW[~}Kp˲zx-ëNWr\Nbc5N7F!S+D O|@m۴-u!Gԩ@ěY1c5wzxCO$,$T.tb£ DG|{Q.tbɍ?xgwwG1|xMHC\69qk/Ny ҘGٖ4kڛi&}BNx8gO?B=SOMOkf5mx` (''(}"_-g>|r" DG|:EE?:=eHY8^8~P𡏞\qpX~,a:,YCcn}`>9WglGKA|=Ãc5}+uk>Kӵ>wq]^{VQM] r{5~EYA}#/ 9ص-W붭뚑NĮ!GuW[vVyjcԫiٓGNSu.d]ݢcB: xWytNnb)Z)JTjjiՈ$ !J>R51QcZB 1A*Pj+♞~ԲOr֙gJf9-J# @IXw&eaPo JDeY9 I.-yg}\ &'JرMt"4J GqX. &ٖ;Vd\[,=uMn\qy`GUqԮs[pADAQ~̐̂̚V̼i?diguwD s+w59:Yt:u t#0ϘJK&hq3FM6Zf0S!ivMM+7ȼ-Ce"iF { ~A2..`+`+S+v s] cODl}} 1D62p4He+E?RMJq1'zq&3L %D;ӌLLi8X sib|dѲC"qߒ5hS l櫲ٹ/ Rb0ٙ5b;_|zkJexk1 e-??&zWV[ZJkY;_vY%IO =Nde%vH"]/u|Ke~"tL2^g*uC}hG(e&bMeIV6I K6klΝzPh,9 mIU+RӢ<3Ak- -^Z!0@`0jgi{pz%Mx9VD0⼴ifl{1+1ϊa3? u"G.l;# 튓cJc<1%t&n=C TʾfWאa(ψPNQvvaBf]"#D@xHTaBOH{7^oPgaF/. Mwqe;9^}C>-O_T@ x ߌIH)Q%difk& fa46eIQTƾ%R" ,J>މ<=<9.=7<^Cyͧ\v%c^g$e Z*98 yNp=r<Y_+b{zS3tbrA)[2?7tn}bH˟SBX3l=m܂T{_@7"9GZej]Kӄ2ێPmj@wK?_ ̢ynv^p#p'极{̵ BƬǣmvP;@(A P\2 e@Yp7(ʃ "p^pTAOPTA P27uףix4M@hj? I`Lu-{ؘ}Ƈ<wa:;6p$N7!RfM/{>6KnpV갭1[(3ME*LR):UY62E8KEIU/g D8Jjk*V_(RꍡX[iջ2Ji'2<TjZT+JU3bFkQ [ յ&h!4YOen:JW5 'ZB f*'yM)-$_@8yV0:~@p'snm5PYC50j mo;=z)bzbm]hXLGuv =g`a-4?ZZ%GEa4Jc}ű`^am;;ON+- /ϩᏚj,rAL3ߢ=5p+c1B[h@3]c^}|w=}ƙ~m蠵nJ{u38s~Fg-.ĎN t+G"/3~__DnU"f6#m.Y{8fz}6rgffa|6"."E;7o?QэntI* ^4 w?B|n.pQL }̼UOcTOK\sjժ˝[;ANx\*1?ٗ,ؓ,=uU"G;p^T$ht=^@ýWGG&4@G)PzYr9E;}` "e;SSZnD!S)vDn\N}x]iFn4Yq/ a-ȴqړu@Q>_TX m"'ntI 8dzU-|s_qTE'j{ɴ Zd MGڠ< @}6D#h Asj GAsV o |ۈځPpDPvg+\*lƻk[J7'<%yp>RRfNKl9oϵ^2lє[i{~o1qKtlZ7YDfe%RǨlӒʸŔoTe5=pp UHX;c]}x#GF04IDyA{I/X(m-XBVi_FjeT?源[|ns8Lgq'}ct&)]sWOi!8}gh<[CyVm%ږYC&#Ԃʍهq5cZw;oW̭ƛԁתXWEr=m]'kuXWh5#h[eu^nQw`O A: uZݨpcG!55`vԜSa8Op8uIQ܉s/4yS(ߡ47`;=4LKQ;1{oi1'/n%EJ" j1*t muoV13qc,{%{eq Ѹ 斆rg(g/X7v0P9_ȝ0GKz1-bR:b@ntO5!fF+inJ8ڞo'aBF"I4B;e9ʕSץfH9B9M }|ѾRҗ+-#`SI!LoDV>h,żhShFyXA^_d:8Ɲ/,KDV;4t yZu䍶:jRT\t9~|@eytRޤc2ktH*ٴEҡZ.(_zAJg=N;#AG$:SҊΈ?E=/':h:ꤻբU;$[]zR~2)R-zT;JGEҔJ :4 Rֈ MK.:[d3e#t @N:^utԗ2&*~"7pWd~r\cSNgU{}+$ityZ_u~~C- ЎWsǫی;;CQ9F]uuu BGq 7+slq&J'nX>Q_D碞\y'n^ 4ip/5i )lZ ! Y>I,¤ 䌝pǮ+V4zkt.5,~̢e2+hKe<$[-cocOX0L3p{gɗ4[V֫f׽4n,Dz$ΦJ H6$V.+?mkB _sN~!8He&H.5);9R!rx»~ot9K@x,YRMR|A=QiDA)Xoʉ $i8!(g=<m%϶/!l zPCg>';$#H9.@;t'浥OqkR[u7ҍ{!bC4@LEڅhgQx[PGS*8qt #Vo{^A)2pip !_ ހ Փwm/~k܍^g$d&Ch"gTx%fs, Dzh:?m_U-m20I`wz=cE6-h%|(ocO"-1]3t=ە8\s(A|ZUթu:Ax$^ 6y1/en&׸&W9G}5f[2f8?#oV?Lx XTߵo3 *  h)x7. bFcB_'ihI?/z*eԼ!)h}5CSдyZ>?k]=zolt;w!MViĊ980(ڒ?*@c8cc.A"CȭP:u'3₸"]H7 qG<''@7 _E!H$ EH8$2@!̾ D"(d( CbX$# d$Bdid42IAR8d<2LB&#Sg4$ɰq*Ӑ,d:< lhP981l\clucNdVg,ڞ$Ls]CZ~ yP:2͖~ۧk ~s׌h,(D2TWM[bu w}S Q ? Ry6 s sTκoԟ}Im7WOJ{sJaخR|٥z ˜tŮ3JJך, |0K -%m=doNubͱp!v7U1VMrNfE 3g+Ǚc)WشHWsݭ̽,"mfFO4S.ז{mqocG8pb JB[f\o#UيhU٪: 9S3 Tq/"Dfo:w}ӦS&uuz}hH2hYJ#fCjZ"?+k9*0kќ3/ UyYsk(h|,i`4Q%S+"DM!Əgmɦi^Rjv&j--:T*P|ϪexmZAmϗ类y4F~z,xW*| #sf H$%9sdO͙囟㰄?NSTYy9 ea+^_RpXzQ쒶7Kڵa3lE+8ޞKRC))j^_˼[?y=Ysy1f֋eLJ_h{bmw*mslv2rQWf~xlv/rc| M6~F{{r~&#Fa,@!aT ye|=!jl?[lTӴvu?`[xc3m~~Pk/X~&}v0=Oӹj]̟)~Ot22 ar0m=dv۵"6?\[$ WN ԩS"۷6m h`8}:$&&B:$ZbW`VaQ*?v55$&4P[:~p0C؎)9ybVbTVbVLpbI1¨㰗Ӗ[a)M&噖ʋ"'|sL˄H7n$$%ǝM Hh2|®{Ȏ^M&%5}i! ӚL7\1cS*D"$x, 'HJ+%\&'8T I6IjiU5mc.<=\ xyn7v@UQC`[ͮT%fɫYigWީ8*α7*Ωs:Nyp$ތV8o&ΛN8o![g&!8f(A820xMlnj8hGhrTz*-7-yz듕 =N5we5JC=ݓĤY 1}3+d+V+ލdOf?J3]tqaS + s>O cQ\7>It2Kft0֥7_CL>5(-Ev& 2Wd+RӲ')N[1iUn)"R#׏vAU'}p?s.彴IҷHMҐF;RU{3ŪjՇm}i4,u{ GC,m>oM{l䆨MʄߥG6]Uju*&5/W\>nQ]/?^~\K.5*5jk.|>5!515b'mmG>59WW-[r]!Ѷo"Q|cs_X)ٸpCcԽwW7m3x^ЉEu >Z,Ծ=GIFW.b[uttƝ K"}Mԡ/}l_wR~^ƕS6p%ω'xӂΊf^t,[4J8qQyԮ/_HÝqb{}z=M^1W$˚לi}b~@x;DVWg& ~S A0!B! g F  O8 Q h<ŀ q0Onb(HdxxKT82%{x.bx0][L=2-3EK]Fka2Z˲=Er.e7i-e4^AAQoSq#=h1a6VS3+H>mbT.)m@amwo?vOt趇7+} m )˭ԏ /E4#Q6\`b!A.2E܍M&) ǃdGS)n_0Mpo`e{XyŞUb@=5yY_x~.56!LqքK ^ å=km/p=O9حh2ͦ-X~Gr%~4.bӗG7Mgl<:RA.OpQ9'A>W~7ӡ/0~@BI#3gcR02?#xz!(Hi&g2pXe. x' LLRb :Md:-A*.EOc2顱i:=CkcĤ$:Sx}*$85A]ŧ&[+e.tٖa Gs~ݫ6m%sm7˓W{rvwIiR0-lxE z|s@? Ѩd8ׇ?Q0J{|I|@vyWzEq6P:heo0yM#d"z~|?J0|^ar7G̦`L8m|x`C1GC1(UH!?=he8)Ph`X3Z̓ld;A6R6[ D*w 4+kL|$R=$etܶxj6fSA<d-:1-(`XXP0C\lG{Ș3P"c{?Z]`>"vI _)`Nx햱mie̿=uPFhҌU11ɾ4D߸zmV5[ f\#Mťeh7!)E{q@~c.y :P1EIXMt6ekžAM0@@+s\zP.pPNwHNa+P7ego Ԓz__/g5,ECI${"ƻҏ&< M1Wfb,OLtz6=<҇)`8fhi3i)(X.zZN}5iiBeVO `/acxȱB4%,)ZV18y˄KV &T׏TODL ZTLX0:5>I6tEj?=ףI^W%g=h 0FH`H8ofs"!uIs_/IKwư1|\m6y1]dLK)Jc@VMɜN3 ,af:tDG Gdf:YM'RRi]܆mVlĢ%v3G-)q7+g}L4Q/XحN&k}XCiv)_fnIݾ>B6v$x,MԄ{BmՕGf%%D% O,ʄXךɺNvý@D/A?Rce _"#wIXRvJHP!;xljN㣇1:LM853?3&KOu*멠nsNߛ]ݴhNEh5 >(F;ae>p@С?Dld}\PJ\6uI6M&"K¸M0&\̀z`"27%bff@Z{# Ε٤W%&%eqU RиS+S~RR` d7(B&qЗ`l6٭{JG* $0|wRT Ǫ#Ls՛1gyɺF[3 l*ڀ=]Y"X`e?'_$,37:g/,NSXu=_)<IrrZpO+ 8z7/(`3_Pp^ T55iwx1fVKJՏ۝Ko BdY_m,0xSɷR݃?عᄇ^RN^ڥ !i'aZWʣ?F(! O晄S69uNJ)MĐ@.=G/gv+g8լݿQJ~rՍUV0>5܋SUٍ Ħ(*_ n15'E/>۳ZMn9j?n 'JC6F\m|Y+9GwUBPG&G:xQvw[ ed:-^bv$;k.H9v$,m{ȎtcsInG:UUznA S&뫸!Svdp@JC2y/6Vl#x*pSTx*{*k+wWMo j$h 6me95^2@L=!a/١VϢb[A)& ǐ05B0JBh% )2O0NjhDb6-;%}DoM =^=,0Chl+.8-O N$uk}c("id]I_=Tۘ7/( kWۘd; 11;C;&tgG'n]Ms=ho41gJwA;nLc"-J,("[f9 o낊< a =Y.w< z;KpZLBpr09l#U(Ȟ DʏS?:E⸂/҃ _3Dhe@ep[ZL pD=LA)xDy8;x,A;)Sݣ%Clx2esEPi%rFXeɦhE06:&S0;- `8e@pF_~T1ëFAʴ55W?pMԆCi޹ >laU+@Aд6: ,@C؜Ka80Ux+FߜuԆQƷ '7~{^'`$a0,Q(J}达D_0:hs/=(?e a66gFW==o kQo>#Q "T?E UA(|F(/V _ڎ!,zv:eh3âaJX5FU,:Y&,tVd4NG%U)5nh^ Lv|A,jBt·❒$3Vl`+3~bR9+t,rm^! [Xf%sP`B6?!vHp~ή R̵-y,ľd 0j"Ҿf=3͜Ɲޫ1EW5N>.eԃW\%i<2ʒƂ.˥]ޖkl[ώyHBwĤnδ[OG1,RSH&QNwR>`3ґ:G$ˍg%,h$lI8-p1`[PB6;mWxRwO02@ѱANf/i8}Gx)2FCچ{P>+_Fm n U?lR6UeepF,۴x ^(7Lgsbu/M)XfQ"yg3zUÀMj-qׯ0!@yDjzp 8>Sv"Nr,1GPhU՛HԀ`5rjR,dkvG]ޙ"S-`T.'I8 m+ܲr/+ͷ9-La;`T&akt[;8YO?o5;?;Ja}?;lbbbw[hs@dY,Drب.drePVA'nE8٥U4[,\h6BZne0Mvnpugה_'uo,Z\eV-IрensEL>lP^F>Cy&#ab*8DBF8q}hvH~* ;m8p aJm^%&*j6[;[Dr/o.3k$^42Jv1 %bǼ@x4Xq a+ 錭±V,@"uݶ-[@:b-E@X ";}bHp&aZ*47*~0FeA*,̆ s C[ef%PU)^tCWIO hVq5$C}v؏(!rQ(0Vc8O.P5.ǯ췆9`vqұPۥi|}IێWܩL JV7ev9ӥRm"ӿ9e2d4|Y%CѸd[ȥ!a܉34@ׇsq0פe7#~#v]D %0ƻ\ &p `:Jb(ȳG?ʋrtLLU1Gx>Z> l(kC9­0}1ҜMq;vA:ԞAP{TPS WүP۹gUrϲpWYWl9*j,j@nyF\fL.{ΰPoߍ54OtԞڏ No@HEO% ]a/IO2n@oG!=Q*(띫D6&T>5AB,51;PArDiǼPm!߬b7A~22ͣ1X(JJΦjݕK\j~BMv$ՠPuo:a }CyUX꫕15lXMXaL!]XI}FGQ+2a&~;uI_C6{}H o$lc ~6¹zV=Nvժp S2g ]XJ%3m)$@-.?(xs0.")&*XJIRb{IZ*QJȭ'8!k ;tmvStIrR "mFvޗ:}m]=u"t4{Jw;(kl:~jJ>)6l[S^?J:Gz3PƤ'%2ژ40$O\ڴ m6n1ISM ~KѽV_R~P– TPV8탋`ߚƥxAa ?*^^ ։.ٕqzMrj\IN^6;~|.[hM̌x.=49W60+?:z>}r6V3=FLz'a ⤤v{aTĝ`K?7`R5,NaKj\8n #1 !ۂ0nABt#zH#KqBd D4!ns +n.N Xф"pK4`./ Z -rPFo*QH=Nf \4۰ob .v@R=[|*C?E_H$EιwH`g̨_pf!=b_ \nͤѲLjYEҷ%Y !h:Q|r>;Θph7E*_C.X`,h2_E36֨aDkN!,vlXo%a#u@͋[3vZ`6lNy؉֕ [l>Ņ-%C׳aSqacVi ScٰQ5l)h_ o O{hf' 3'n%KĬ]iCm Ƿ個%U)ΝȳneCF;d_0>b@r2rq{V{SO75 '"1ZE` 9NU7` #al%a%nP9|H, ;pj]@Ypz5by-W$"HR󉥩ͱl‚͜J¸|&:#ɨ,6l:S`(u?YJ=BaU_ӏltKL6Qo=*8uKIe#̩rddY%- ;,6Rz4n.A=bX $έ C8X)XNcM~r_8ϫ,Q)`!$Dȵha)ŠaOvBa/r0%)O*k[5>O*uvUT)Z9~¯.N 4}dm+MB-M$I c?6a='lYC6!{YY 'Љ`՗桅 A <;Ŷ ؁A2p l\qxx8ZT-[M2˴Z|뜪ţp0_T-gʁ" ,SHrt0s#$s)ށScf; S'^=#;cHJy\ /ɣ^-)..#^ٷv:J Tq_>DlT΃ŵlYPSQu厵( EI3c||6x'`.qVFφ~ϰ]8~zAW~m9c_ÉaվZĴݶN q#1]#c8&wB5P$(pD&6-gwcn0IM#?_#,d }'LN! qENz M"a}(tɁAtI6>Qq7?PN4 QMq=:M/Q(2QPtR20F  ּB0s ق>7l#dψjd JG؜ØPH5Sx.Ϥ-㷨Z.׬SSUo8KR %d*Tnj!SGctHڬm|]SyC%4? 1'l|] ZKBSVEPeQgjlq6J')~7o9]ۦ+ՍmfD.%bR3V"pj;nL& >!ch[D&)sPdwTx򯑃3̾~HDEΰjP;-}tGUF0WvAZp2 iufѭ !*tP#x{ǧܳ,]TzPb@=EލEH3fh%YꧦÉg epXy,Z`E8^N 2GOF`:ḇ:a뾊}$xwBPHP$LR+q@z^bzQcVo[9 F*,^٥;ObkXꭾ5GwkjY%HyQ*NmHVT)<^ƋҽI]}А0~l/ jj8f s=)kHgaTVEIPOq{ǏBjg*G1|ޝ7)l LaOFZF;WUˈv[/}uC^ܾ--Է3]fZ-S}{znʣ*ʁ$1rﷺm~(ƈCJW+qHFRwu&]PF_.~oMtz3ϦFvh]Ϋ2w18*" d)Eg|XҾv"LoS&|CE0n<Z B"p("Ǝly /lY{{=G]RrɫkD;yb8Ie2w <,"enZ5SRv::z.յ7^mh^3"!MM-Jho[t13^p(}<}F-E_U~)KsR|,QK/UF︔?, ⅜\4Xw!H[0|=4GܥwMLX9>V+[NhSSz.fj4}/=F7ybr|j4831Ma!vk ;-3Sz:F11S=3t3)dѽ4MMrxmGtmک;4MVQ.\蝹wJh2Sat=C''iSOL0RiҴ`xaUL{nIq}2om lYӎ{L.1/.ggIb<޳6оTiDo!^N(Ƥ'o6&eAHbz.EyIYrMLjM 6v6qݤ /<,w!REJRd(7mZO.L1$ggJ >fI ߚ"tsB X) ap^3G^]T"jDfUʌtwVIu$>ڣl줠3-Tw>J&bݼǦDvDJP!wHw+wq; ʙԛ Wsn tx`Ă,xaY-02+N*[)xg3drzǨ_ H*y'˗ȣm"w8]UFַMy{YE!9لݵ)!4:@?s8nk,zNgCX #z|$5rȸ;oEq G|frQ'sM) e󃟽$t 2G%p~,\_L?? 3uor 3.Cv_Mj[k[|^Zɬ2bqO1jX(LN8-"h@\ oTQ46_rȔ7/襰+_,>WEgp[uM7q&A0eӮ;oEA 0C?H>,~f4[ =_z,~-"rE^Dg7+6a^j"$rhs* 5%o3X<&[ =?O\yvsm~6;ScyRy<0|y dɷNl 9q}Yj3gg 6B?qm6[P]7F9Y8YW0\YqVVsG2SX<7j@vqcXm=_OUm#^?~HXg)! h8q- ~ɇW(x֛ZeCF),uoWLxyS[~yz% U7_B$[Ws9\\U~%y5,hj;--Tz`ЉmC/7>|t_܍ ;[@wCG*D wwCT|Iڮ|pʼn댫Iqu wC[7g8V*K%}B}FKB~3nݶSz֞ʄK`%SR째!Q } OWSˀ2`iE%tYEEc΍4-aa:V30lH:Wh$FhoT+(xD0"7 l nzO|WmWn9p:JykܶhJFPіFhZv|F8WC;G'\:AQ8q;r%@*qE˹Qe͜^7fגv`.lW+RփJ _*K;{ZH'v@^8# 09ދCx8ɾz{l G.Ṻ5Jek{^4K`k"B2B`!|Y^psʖSWZdqh|ىL7RynT;mk~T{u^/d)E/UY4+\cBID;:K#v;?5/V? ߒY&/8{6eѕS$;]͹ŎOqۿ8O``&+dPorGy]UEG~W YBрJ頪ws#o ]۷޴ &f`],MNywՐ V*F?ۯgKG܏;;GKbEJ*[ Mzt&3`OgUN{texe'[^aʼnٕ3-pN-c1G`{DU`*2rf;i$˳$%Iŏ>oUGNg{ w O/ʺUY/׋@Hz˚OgOC(ݐcxkՓOs]zƐ9wS _ݖMLі* Wnc];zJ=X$5E̮ΐ4dϗEBy?">m`>\ڔCOh7NTyW}JK +i!UE@f"~l\..>"HIfЌCFT.9F "uI}0AyFi_18hM;~;UBde;Ic A2]>D\L-˽WTy{]ُ/M,uxE=v{:JM81m"g%7)zxRz ^LwO;x Ůg6-RlW!qN 76' yre ޠ95xPU찛Nw11b9_tgO6O qCL ^;rLUf96x;glӳ;VWQp(i4QrCFyȰ+_ӂ7Joe\t/.a[wTk\Rعo|&X[==d{&IGu6uVx<7+/JkKydL_ !z^Jz;5Kyզ,s L&MSv/'ݯ&ꔿFa|6I5e)R˒crv<{Gs[I}w Sz߆HFQr8~ MM\cOSWj Q/k"$_ ^Fӂ{vˈTzɮ)tqnnlgp0u "ҳȓ3FnκѢ4D-~Ų@vNqsK5a9CgN 7ּ[}UOhPq1.xXa hMwdx`UWar&G_ca,\p'BB`?c@.K !-!,P͝6#ӆy!\VpmşlD_# ?N9q6 I1,b\m906e/eUfy>^(W4`^ -\{ȩ@b E= fWcKvټ?nrkES.Irՠk9f9roށFו쿸uq]zx)8UB,aIm6*5^iQ-TcaJIDbX|Zd>mq QE ,o4f(rFCѭ,IlPIu{4mcBM MEP)t6(XQ !-Į`]nmow"(("*V}=wNglk}c1 yr)YmEDzƴ1fZ54z7ՋAgG6L0PacGAj(uPj!tB̘j[=g,I{,Dg$j<#ﷀ֋7La2Ł(l(L eMcXgü1=VEՃ75x:t @)xrn"coK ϊu9޳ Kـ2{1^xL`7vZIp^]E%`1 uAUBQe!z{v]/xϮ4u{@Hڮ7b b2!W `|^`{"e!rCA͈8W~+HctCل Vb%5l\~#% '$/>@ȚMس}^3tqI}ǻ(JZt }֮d EaYQb: &+rUf\19>T} ,xm3`he#đ&xŇFQbx@"()q2$5lTFδE@l|/?vhMNF!קLwM٣'@PWI^vr* ) @r|@6Ba"<15gJSdi*~)0'"-0%s`,m/< #Dz8yd& "A]4G&` 鋋)O1VwjjrFm"Q_RM %|KIRUe|J")q_SRң9kTvG ,,eT)򌴇EжDξ3a_s4]ʲJ)=GT0U3FX[~֜0@g(Sz }vhH𢴭0~-&;}>PRѳʘ!:,p$<NpzTB0^1<]G*Z4Háve8YEf^HlM 幫V^-a?!1ε^Ro1[J:nB #@ \2pjR(Ug}5=6w(R6'N>OV=M<>6#,*0c")~(&`AĽo\lp1=FP1IRaH?EH*pv& " e8:E1@c4` `\Srapb둟 \}Eg= {𽁠Dpe #8"Od.V'ƀzxܺlr+kz>2CC0kaoYظ!N LimkD1ڧ8" Aѐ$5 K.)#l: Ƀ$|; aGpB,pA3AK=@胭px;QMR7Z`Bm蒄+!J``$8 pkvڤ7 I]|gHK}$#8K,0P<*)TL ̟&\(`7b!]K#Nsy[ k:gd %Q[5QLאK5?)$+I]ڭrr9sȺ L,Yi]ȝ)T:_5\}I MOt !V$s ֛xc t0kgFj(Wǧ|m \iI%'o&6H+i,M1KZJ̊ܧ FYݎM, (1eިu.iaN2v]>A7s~9bεs<((*Q:td[ixioASV%HWF a3})^ϔ'%3Yzݲ+ךa .ANh&jfjd&U^U@OVNR6xI!IF%Thj5m>6*/ MgʔzRt״9ԇwi[ooB0`-ݎN#,u[-P`ft޻Z6( ɞ a%*{)ȅz'>Ξd<BV,oy;{Pg9 1{`$+/X!]`,V9gZU9-qr]\@b|6z sIgy$t<E DͣDD&R_rՅg4snsgk.2!IhiM/S-Oj65(t_秓o>BӬuBX#5]x^afW΢$@UQXbx1@0rAWX mhGͫ NJI7ܼZJX#kUݯ#@l㰭O.k-\*^'qr,^yZzP SK}B̿PK#$(Y|.7_>$V-FC+jяo! kȡ/`/d?'p1Ӂr K>Lr^kݶ62UH 7Cܗ#@ I^.W܉6y!Str4Nv+NMfTx#S8^ʵPqI$8F+kOvܤ]>UKKUi|ABuUQGb"Qz9;u, ۄqѩcM'İR`ԼJq] TO@(8DǺd5b8ڑ2ˁc89&7{8sϺkUwu'Q-]_HN@bpkĩ^:ZҴZNq!`IhqiLs97Wvһ{53vw $ާw-b-ǯwhK`GˬRϻO!K3g۫ٿI7jNi]=/-Waa6_\vgŝ-^lWߺVkK[TɍroO3ӋwීOU1j]5-捩\OxS PR>s6:MY0PrT^*kא-B!E֝(J7mrt {/CRɸoֿqvF{Pgol^y@n~NdnR>B[SE?i)ZʕʨNK^3jz͟ #OXVeܕ3SЖdG?ju%p3M()I_%$j 6^^?o%ߴh|{w&bX?AF*΢E6ɣo.1Νf瞳_s8fEP($"NLᶗjXM@i7xvTl6Y/]^uoa 6FSs³R T9s;P2ơɞȼվhZqYiŘ|-*9b?n2_Z'.if.ME\3.^v4}51}}r:6[R n5Jb'LzffLsYc# !&j*"Le,g!ɼ\75t7y7_ 81_ZEc+om<鏱OX-,*@5qA \󞔨r.͋=`({0YfrK=Ǵ/TTob`֨-ٷdJJ~z-if,Cpidjq[yuHBV4[$.J-ܢERMZ e,z3z"kJK^-}TJ0l;8L3Uw43s+۹GfN #y:Ux0.eo'g_[q-3+ݯyυ97UϝUvuDczuŐ ׃leg[_L0Ө\r8YA|u1P^_R' \2vޮ HկU^/?0y_f} ɝHNQkc"͸]H ${BP [@$fbQ/:/4j}lwm2)/g"hG~{GH}ZlDSk-G^W )6sxK.ejN{XkYu[]72Ρ>ŪT| רKQB(ZZ:Uhi>DoQ%%쀒閴#b-/?:))$jA}|`9)&Gn)]R䲥ȉPqvJR^t ޚdݹ r-Ҿ^4Sk1u Z=-AI,B3|lS2|mÅԋKdcgV0=PT8׺1o]aQ~Q}6.>wj˕M`UG?oxfiM<%@RPҽ7˧Y y||쐻AO񉪝]mWQG)44t7Q8K?//W:'oUp巖'-78 a}>(}'^F۲18}g_IiR=>>^fj4:zMi 3sju,g34K5iQC2"LՒ.g%id3Wc,yjoL$NòX3r>OWO^ˣL Sǯ<\ u) e3BN6B+/8ц%p)[6[!Vp_WRF{:ebc׊։~yp^S:jkwVyȧZH>`==V4(F"V {6ސ?qcJO Gl'u][9xɕ4Gn}{ƑE {kʺ?M)#{BSo z ͤc+‡_.WF[7^?ʫwX sq R9r YrsMMֹsocڭwP YJq.S\M%z'|+]51+T*|J~|#!DRw4*穗oGuk؞X8FNupy1Vg Vu~KtkMeXa$7:I`E׸)GNT/cnxжיlWQ܉wH`;}δxM4mU1]p~r5;N#.M-鐐 ػ]sTSy)ͲH  P)P9CrPE|jjYհz8e]Kc˼8^u}3n[]~x1 $ rȒ o[uVz|K@/yz|!b`*A R< fdPm5)}[y *[$C@"x9q m8 lϽ)RpCo٠%uP>O/jҞ `g^>52‰,҉ʇ[w!AȀwo:u.ՆCGB ؗΧ(ZVtGџCyT "\)OPJY+m45RN|HI*YuQd\$MyIð>In" 2wqZA4n6K5#1) C+.3&ta=Y1Y@R&K1&tgIy7I21)/ڔtM::kېTI)2mWYKfr`+ɉ/uU(š۴#éeF$140 3+&vCdi2ȖreYe47d\,Qf$ٌzwhMei/2^[WWwm!cX8O& *B\١ٳBS ڜBĥ9 DÀ$MKsw 4˙E9D%φ$#+-@J!HOܖvO< }t QrRLss7]&ACqOfE xz?t$qq#e=)ϙO7^{,ևtraSiEFz4O,-s~ HVl/) L PV[b%YBCRxk,=HȌ_q&$'EΔ,EHttv,h| i̠η({%M ?` ybH^$J$S%8)R&UC̈́s>-?!0t'K~ \V-LKWJ2*}yz?: -k6׌}HHdixOɽ~#+@O2e GL;ٞ5V(KDڒecE,#A4V6fIIE78rkAD7hP>Xb$JJW?o1=|}^e|L?/}QOrIRH`'(S%J ް:?@К* -xnUT/x^R+S+9]+9^+J$6Jrj%Z,"1V[+J~"#k%Z b5n7i77Eb XHvSLsS%l7E77yLqM8&S%e%2BF$e L(S2LA):$G(.Q<D"H<9:zDBGC]Iz/ DbQ"^_B$X]Q@Z5 n/ \Ջ]sLWu:UU⪶pUP/Uߗ˥#%RuT] UJJ"/UOQD]'UKd&BfaR-nKӁ#x?}=E_IA'8  A Aܩ]HE)E8\9Ò(rL#|$(IK@oie~bm S {!0d6lf@="`mESG`lXyD6>3iD8H`ԟLXH .{Gsa$!NI+¸G1]gsq nN! \nʸFvc).a #8A<|tvO&-g[ Z?нm@6ӤDВ7ƀٛ}[[p;EZomK?0 U9w\۴熾m5CLa&JRW ܂΢{?zzh 0#d"*COoSכpNKLLISqyJ ¥xL&KTQD踨n{TTT_Q=6%|A& ЈZg}@.rA#1h֗RM0r+k6Y J/k:>ۅN0QY$ѢƧ_}Jzɯ_Y2>`$&f.d3w1O0132˻l&g_7,4w3fhĺyc?bgcg{5r߲ر"TVXִ:֧{ 4Í3rUoIā3qÏx&ga}}'~&̾Ϝ\,yYɬ&a^drҬBhZf̋ l?v({ ;bea)&v7[@n47;[=ƽ[6,63R:1%dv7Vqx΅)RkV=>N$G~pp]+|D\z~E"N JD}B‚!ꪰ]kw(Gg[,Q8$F4еaq ct{.o{D!:Kd\!nv1?B0 )b8shެ E$YkݬͰiڲ⢾~Zfsa Jvj:7k]JځpO$ܚCC{֣YnbDӬlzy}o֯Y;Y;M6y(/wD2dZϒcu7`Gydac{ܑٟHrYL>JICֆYD)#ԨtJij夼 wJkJ߶GvOO7#PXq55s('H\,;Hp]0 wo68j`/1_௔ItilN$&̦A0zY\t9xX3̝xs,Mf7 ~= W&A],exF~HgD^F:-=CBC[}X'z5>`Eg-O. }Egn=_\rNqD|WLHU?LJ »^qإ7ǖ.D #k ^DЫ\_r9>I@~y,Č sJ>h_2Dq/K+LܓubmXJ՗%d;-UDT_'͒\SDsW ^U?h}f_f&dV>h3DU;;ZI/W+xt7Ҧѫ)D "a Q]~5iX|v()WnzWylDhnF'&2f#ADxJ~J0\tC<u:#cI|Z.j)x?v}LG(:K伴zWنKkftzd^-R_o $ۺrD2r<"<Ƽ|l`~a#2v&{9{?`aװ[dw|7;p >y]:v $$yU lw0D(hw1*ĔEu^FݪҸ8"| Kb,OH%$ c ROg]/_<32&}Nc8NqqieO>'pm h >]oHNu>Ge 1Sq 9_G'pt%.l0㠰 GBk2Q! y (%QP*j2MsN2F>#fh(ԄbZ@iB{VΠ:HwTyb^XHGž.t6T:FGN'E2N%uyz: Y5G+]A)$31 @^RZ oejXĀWby_,y|jga/&WQ>|{ը Qq9RR}Q.TE1dsjX5tU#ՕN$HP w']=}0s^Antmt8\ɓmpt4!JXXXቱ2+/1(k%IM"_:FL ɊgSaxԼA1}D?(F: `} [ܲ ˿ 3 A>|0Ok}GSBix~爒I!fn53W卹 j@oqpMLS(dKa]RQis'&HYY)qU#MƬVs+VTl8ZQ^*^W|UZ=ZT KTT_S]S {2eDKxE lhr取-Z+Cx/a7~ vy/gKY =zz)!ҋ/Vt/[ƶJn UKA6~:/b;I{"r8LFt m$$|`ЫecsW}7eQBڳXՔX;,~ߴդp!6!,ۛMZ|Ew<,#9ΗiA/TI8 ߭&m?]&4罄Ʉd|In%ūk^B4wL:dK-c2t'kCV,@qp%`g(uAs t_Lh\J Vֿ]Π2ש30Фu8[3g1L-3Jw85i=R7O7roru/™ki0dqF߿c ]TQDA*%ďC|!Fo18e`DekpOf1Wܜ rGzڇ"Z^ТowG{\H$0F8H}s+>+Q)b8GY$C%.R%30_H$'Ÿh_pS?ʨ'r3!7?+ڇK__ߏ2%c<,>">">25!Pe(C<=goB/zw%0/)w5?{.k﵈ws0Cݼ׆???_)SD"z֗} <ῦ>HQ?uyo@OD?B!N4?+ڗG߿*=eY!zC}z!B;| )G!b!yYl+ks- 갃8fft'bZ, M%3cD|sx5xJ1}QDÉهGu =O>Z4"+%zxqziI'V$뙥߂q/cIxDE74,[ QqEG]7al3e3+?M8'&}:.e'BĢё=OI ?gؘ1_Erd0gXlmZhmRjphpbs {d}r@~\zJW + U)yML BFOPfupw":$0^hs~zyM'+Y[i,.0: tb(3   kClip (MS_Oh+'08U px $0 P \ h t(Principles of Object-Oriented DesignTim Ottinger@C:\Program Files\Microsoft Office\Templates\ObjectMentor.potRobert C. Martin56Microsoft PowerPoint@ &@md@@@eɫGGS;  )'  A  """)))UUUMMMBBB999|PP3f333f3333f3ffffff3f̙3ff333f333333333f33333333f33f3ff3f3f3f3333f33̙33333f333333f3333f3ffffff3f33ff3f3f3f3fff3ffffffffff3ffff̙fff3fffff3fff333f3f3ff3ff33f̙̙3̙ff̙̙̙3f̙3f333f3333f3ffffff3f̙3f3f3f333f3333f3ffffff3f̙3f3ffffffffff!___www4'A x@(xKʦ """)))UUUMMMBBB999|PP3f3333f333ff3fffff3f3f̙f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙33333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffff3fffffff3f̙ffff3ff333f3ff33fff33f3ff̙3f3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3ffffffffff!___wwwlmlmfmllfmlmfmlmfmllfmleeem"leeelelC==CmCCCCCmeeBfefBlCDnnnDJCD"CfBfBfBlffCCCDnKnnnDnnmCmBfCfBfBCBmCnnmntnontKC"Cf7 # fJDjZbEBiD1"576i⢦.4vcW44DcϹ>f) /9s=9wG@W..m-=E `R$9?W]@n `az|^sNӤݫ!:ǽAJE mU6pe44U*ty"jv W Q6OKz)Q=eZ,?EԦ/BqKKŒ8sm|G^nYA 55 QBl_paա Ĺ$7m C<7. 1wfP?ӗ~|0(rAc(k,ǠϙrisZj'=M4e<|w&8_gjoxb >hAk>hAᘼF4 LP瑀&vzT\My9:~M[͉i+_Իd?ߒN^ܧf=L[G6l߬Esv=$DHdKٔQ/$9/+;'/zW~'O㭙8ߛj1^/+)}0E>3pƩ~TѺvX IJUB,y6c1O*nI<%ϵv-volz۝^c7;8@6>sb1*5wI.ⷈ'3Ң(I2.جܑy _w{ SP5rBxC՛GZ'KZ̋덮u01xsO''7bQHl=҃Sm1mn=ҋES$d;IȀlvZZ!=_u7dC/ '~΁z]_lD>4+/QS. c?$Xg۽@܏;u/Zn{dL{Q<};٠Pg%e؉X{a`L2"pČ &*#ovG6tbA>с} ޗԁU{|@ԯ10k7ykYNP{RovI{{ǔ/s貶ߒL܏hmkD%e WLnUc~fOkQ:EFOGjI38W#+ '9+ i忣xztЩs~+O̼;zg\󌈪4GY 'fnTl׾l|~0uX gok+[{Ŷ;OګοMmZҖ9,L$R3gG(ErE0ޅ]([ԭ@ɾӵ2=ZZ4ii=3QU ;mDmZdΟ:s]/ډdj =:6J;+2\lEd;ahF=([f|[#¢^_V5UQ yNOa]f`elVNn1srǸ~YQl~ᗞ2b(\ LJ^mEnxDO'UP`!) YŇ`XDh#`xX]lTE>wݶ[hwR >-Xbo!j,YPc"Q1>1 17Fh@_ń(d̹ݽە1̜{f3֡6"}JxﺖNLdGnqE|dZfe8Qzxd+KOAa`6k>?z]{.=CS4NQkgLּ6tkC%YZsBh{ERT@7@?e8s3jNФc7q񽹃qh*Oē~Ihl{ԷPcf}݁p%z=4p;Eo={nջ)}ʩAS&[53> TDe+ ,h+F6֍<~&}9{]/hޟ3}q dϺ5|mg{: r1.궚_tn_'V'Alwc{ _fub2:Ś躦5AĚ2ZWĚe='%ĜԻoqXYG/FD.Л`~ZFlSMWj gf9~lnY,EnKi1 ucrC͝exŚf 2r/kPL70+*fG{s ߃ c߭=+wM7ߕ<WkMu53kUs˵凴c7;CU|ګ=cW]2?<:6={Q@K@kh.$iɝɉԶ@: JZq:la|*7||2?1\ -bz~~䳜P{ Aj޷_qʼ}uj=\axį52MJsKH~G457Z5vZcvkbΈ;|>~ ُ-鯺.Thj'ػ܋T2ʨ:ghW%1RM\gLe`!;G7 U`R 0z; xZoTE?sm}JEh!D"Z Q7Rl]6D჉|QHR_`H?&%Db"Czٻw)712p_# 9ӻZSX:lD;^?=9Un>,{0aޅU*$ϫI\Ms=YT*MuL՝vWsU;zdXT q$eqyXO.iƘL5Ko qBFIc/ F#v̯Q2Rٰk.vȡdMw}84'@ϘFJ`4]^Jw?Q_A7d.=71Ga %k6?ҡHK!5(rYGgy:k8Sc;fݰ6s" Ķ4eHc6>2/"A'+7y,C_g`eS9u@?qz8e^M$6Ve}.aU~Xe};=>Bbߓ,}^.OqS~0/$g0Yܘ0q l|iCS^//S))ZN`Q1NS}|A?s}FS|B꼫r/瘏1߀sp֨*X]pg*YIu/ ibjw7TEVa>`% Fi0^ l(I^+p"Ny|bVO!?<Ŧgs)6ׄ7`I7J+z (R|ߍ_;cn2ybO>&<%xoh~E;IH̖0ԁe/wJ |N'@웇ؓuJ@aRsV)ΦZĕ(Uc"Hڶ+;`0Cƥ B( [d;&c -3G4{T#zy ww떮`蟽r?$4Ύ1h?-ԟtF[cfu3;k&Z3|h-n3^5b&3K>jz6elj? -݃# ~\YX* c!R_Sq"e̋[;VAM5:@ T{#ewYހ[E"Im$sV|Mm-.lK+KRɒbgT]= CbfёHчS$e۵V 3ܙU8!\הs5 5F=^M_‹E2z4sVY*ukQl]iZZ &wEFFj{#EDbh3x.|u)" m\# h 1l *3-Aq1ΨP@bw&S.>%U*e/ Fqfe GېX8!= 7?|sMnoZ=Zе.皮3PNG  IHDR!7HPLTE],(&'  545  $cbi ,$/ $SSU < 4D 4L (6D L ,$,DXZ`ABE< DhlvT $\%,;L4 $T  <,U $,sy,u$\>J_M[tD  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~_      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~awing0G VISIO Visio.Drawing.50VISIO 5 Drawing0'H VISIO Visio.Drawing.50VISIO 5 Drawing01IClip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery02JClip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery06K VISIO Visio.Drawing.50VISIO 5 Drawing0:L VISIO Visio.Drawing.50VISIO 5 Drawing0;MCliPowerPoint Document(3 DocumentSummaryInformation8ClipArt_Gallery.20,Microsoft Clip Gallery0  VISIO Visio.Drawing.50VISIO 5 Drawing0 VISIO Visio.Drawing.50VISIO 5 Drawing0' VISIO Visio.Drawing.50VISIO 5 Drawing01Clip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery02Clip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery06º VISIO Visio.Drawing.50VISIO 5 Drawing0:ú VISIO Visio.Drawing.50VISIO 5 Drawing0;ĺClip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery0Lź VISIO Visio.Drawing.50VISIO 5 Drawing0Qƺ VISIO Visio.Drawing.50VISIO 5 Drawing0 UǺ VISIO Visio.Drawing.50VISIO 5 Drawing00hȺ VISIO Visio.Drawing.50VISIO 5 Drawing01kɺ VISIO Visio.Drawing.50VISIO 5 Drawing0ʺClip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery0 ˺ VISIO Visio.Drawing.50VISIO 5 Drawing0 ̺ VISIO Visio.Drawing.50VISIO 5 Drawing0WͺClip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery0ZκClip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery0\кClip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery0Ѻ VISIO Visio.Drawing.50VISIO 5 Drawing/ 00DTimes New Roman0hPv 0h( 0DSymbolew Roman0hPv 0h( 0 DArialew Roman0hPv 0h( 0"0DCourier Newman0hPv 0h( 01f(.2  @n?" dd@  @@`` PH `X:4 )    p (MS_ClipArt_Gallery.20,Microsoft Clip Gallery0LO VISIO Visio.Drawing.50VISIO 5 Drawing0QP VISIO Visio.Drawing.50VISIO 5 Drawing0 UQ VISIO Visio.Drawing.             8    9321)40.,4*1-( '&7GF& H$ I#" !L! 9PQ TSRUWV Z] `   cdhA-DEMKJXY^_bi:;<=>?@ e fg+B[\a:(b$=fjh(1.G'b$@c JG'G'"${{snхWe;NR$JLǫx?EYRR$=VYjL#=/}> k2$1@ kprB` sx"$G^Iۜ@Dϳ.2$bWOr`)1u2 0"$Iёh*܆Z3Seb2$̂~)+-^Ǖ2$V/=&D 0<͘"$S''Ƶ;lfy n$$2$c^XЎg"$iZh\f֝ "$c#U1B hBk2$({~s_af2$ؘ6QD7Ahcf<R$.CZ%a!%f*CC2$rɐŁ; 2r$%3àRHM;"i;"$z 6A case study  The Copy Routine    First Version Second VersionxWe sometimes want to read from paper tape reader. We could put a parameter in the call, but we have hundreds of users already! No big deal, this is just an exception& we can make it work.Second Version Design  Third (Patch) Version Time for an emergency release.!!!Fourth Version $Example of a Good Design %& is it?FILE is an abstraction It represents some kind of byte stream It has many variations It has methods Read, Write, getchar, putchar, etc The methods are *dynamically* boundTP>PPGP>G,q*&Rephrased in OO 3Dependency Management ReviewWhy do programs tend to rot over time? What is dependency management? What are four qualities of good designs? Are OO programs always simpler than non-OO versions? Why would anyone want to use a paradigm that may result in more complex designs? Why are compile and link time important? 4Class Design PrinciplesSRP: The Single Responsibility Principle OCP: The Open/Closed Principle LSP: The Liskov Substitution Principle DIP: The Dependency Inversion Principle ISP: The Interface Segregation PrincipleQiH#The Single Responsibility Principle8A class should have one, and only one, reason to change.5 Open/Closed PrincipleA principle which states that we should add new functionality by adding new code, not by editing old code. Defines a lot of the value of OO programming Abstraction is the key7!Abstraction is Key"Client/Server relationships are  open Changes to servers cause changes to clients Abstract servers  close clients to changes in implementation.<"The Shape ExampleAProcedural (not closed) implementation OO (closed) implementation>#Procedural (open) version ?$What is wrong with the code?1DrawAllShapes is not closed. Switch/case tend to recur in diverse places. If we add a shape, we add to the switch/case All switch/case statements must be found and editd. Switch/Case statements are seldom this tidy When we add to the enum, we must rebuild everything The software is both rigid and brittled' S # T'6 @D@%A Closed Implementation A&Strategic ClosureClosure Against What? Closure is strategic. You have to choose which changes you ll isolate yourself against. What if we have to draw all circles first? Now DrawAllShapes must be edited (or we have to hack something) Opened Where? Somewhere, someone has to instantiate the individual shapes. It s best if we can keep the dependencies confinedTqqF(Picking Targets~Technicians and domain users list Ways that the system is expected to change Ways that the system has already changed Isolate these to kinds of changes, not specific changes schema changes sensor hardware changes data store technology Keep this list handy throughout design Don t make the changes, just allow for them.#ZTZ8Z=ZTZ#T=- I'Open/Closed ReviewWhat does the open/closed principle say? What does that mean practically? How can it be achieved? What is strategic closure? How can this be achieved in design? What if you can t close completely?&}H}HG)Liskov Substitution PrinciplezAll derived classes must be substitutable for their base classes This principle guides us in the creation of abstractions.H*Square/Rectangle M+*Substitution& denied!xIt is reasonable for users of a rectangle to expect that height and width may change independently. These expectations are preconditions and postconditions Bertrand Meyer calls it  Design by Contract Post condition contract for rectangle is width = new Width height = old height Square violates Rectangle s contractNV&%V&% E%Liskov Substitution Principle (cont.) >A client of rectangle expects height and width to be changed independently void setAspectRatio( Rectange* r, double ratio ); By deriving Square from Rectangle, we are allowing someone to set the aspect ratio of a Square ! We can still make it work if ( typeid(r) == typeid(Rectangle) ) Violates Open/Closed Principle !TKZ2Z{PGPK2{GPO /F%Liskov Substitution Principle (cont.) Design by Contract Bertrand Meyer Preconditions, postconditions, invariants Rectangle's postconditions for setWidth() width = newWidth length = oldLength Square can require no more of clients, nor promise any less Doesn't maintain invariant of length Violates the contract9P*P$P<P%PF9*$<; b1   xO,'LSP Guides the Creation of AbstractionsAbstractions do not stand alone Abstractions don t always conform to real world expectations Violating LSP is tantamount to violating the OCP$E ?S- LSP ReviewYWhat does the LSP state? What is the risk if LSP is violated? What is Design by Contract?T.Dependency Inversion Principle V/DIP Implications Avoid deriving from concrete classes Avoid associating to concrete classes Avoid aggregating concrete classes Avoid dependencies on concrete componentsGX0Interface Segregation PrincipleSometimes class methods have various groupings. These classes are used for different purposes. Not all users rely upon all methods. This lack of cohesion can cause serious dependency problems These problems can be refactored away.j9FInterface Pollution by  collection  l:A Segregated Example >ATM UI Example ?A Segregated ATM UI Example CLogger Example o; ISP ReviewWhat is the ISP? What does it affect? How do these problems arise? Does it really provide a real solution or just a restructuring of the problem? When is it worth the effort?p<%Four Class Design Principles - ReviewOCP Extend function without editing code LSP Child instances substitute cleanly for base DIP Depend on abstractions instead of details ISP Split interfaces to manage dependencies/" #!)"8'9(=)B*C+D,E-J.K/N0P1Z2m5n6r7s8t9u:z?{@|A}B~CDEFGIOQRSTUVWXY^_`ab A <(  l  C 0    ~  C Ԟp@0    \`  c $A ??  `  c $A ?? p" :  Hx ?*T nFrom: Agile Software Development: Principles, Patterns, and Practices. Robert C. Martin, Prentice Hall, 2002.8o 2C'H  0޽h ? ̙33  \$(  \r \ S ?@ f gh,B\]bk(b$=fjh(1.G'b$@c JG'G'2$JmQIR$JLǫx?EYRR$=VYjL#=/}> k2$1@ kprB` sx"$G^Iۜ@Dϳ.2$bWOr`)1u2 0"$Iёh*܆Z3Seb2$̂~)+-^Ǖ2$V/=&D 0<͘"$S''Ƶ;lfy n2$ YŇ`XD1P2$G7 U`R CV2$c^XЎg"$iZh\f֝ "$c#U1B hBk2$({~s_af2$ؘ6QD7Ahcf<R$.CZ%a!%f*CC2$rɐŁ; 2r$%3àRHM;"i;"$z 6A case study  The Copy Routine    First Version Second VersionxWe sometimes want to read from paper tape reader. We could put a parameter in the call, but we have hundreds of users already! No big deal, this is just an exception& we can make it work.Second Version Design ! Third Version $Example of a Good Design %& is it?FILE is an abstraction It represents some kind of byte stream It has many variations It has methods Read, Write, getchar, putchar, etc The methods are *dynamically* boundTP>PPGP>G,q*&Rephrased in OO 3Dependency Management ReviewWhy do programs tend to rot over time? What is dependency management? What are four qualities of good designs? Are OO programs always simpler than non-OO versions? Why would anyone want to use a paradigm that may result in more complex designs? Why are compile and link time important? 4Class Design PrinciplesSRP: The Single Responsibility Principle OCP: The Open/Closed Principle LSP: The Liskov Substitution Principle DIP: The Dependency Inversion Principle ISP: The Interface Segregation PrincipleQiH#The Single Responsibility Principle8A class should have one, and only one, reason to change.I*The Single Responsibility Principle. (SRP) 5 Open/Closed PrincipleA principle which states that we should add new functionality by adding new code, not by editing old code. Defines a lot of the value of OO programming Abstraction is the key7!Abstraction is Key"Client/Server relationships are  open Changes to servers cause changes to clients Abstract servers  close clients to changes in implementation.<"The Shape ExampleAProcedural (not closed) implementation OO (closed) implementation>#Procedural (open) version ?$What is wrong with the code?1DrawAllShapes is not closed. Switch/case tend to recur in diverse places. If we add a shape, we add to the switch/case All switch/case statements must be found and editd. Switch/Case statements are seldom this tidy When we add to the enum, we must rebuild everything The software is both rigid and brittled' S # T'6 @D@%A Closed Implementation A&Strategic ClosureClosure Against What? Closure is strategic. You have to choose which changes you ll isolate yourself against. What if we have to draw all circles first? Now DrawAllShapes must be edited (or we have to hack something) Opened Where? Somewhere, someone has to instantiate the individual shapes. It s best if we can keep the dependencies confinedTqqF(Picking Targets~Technicians and domain users list Ways that the system is expected to change Ways that the system has already changed Isolate these to kinds of changes, not specific changes schema changes sensor hardware changes data store technology Keep this list handy throughout design Don t make the changes, just allow for them.#ZTZ8Z=ZTZ#T=- I'Open/Closed ReviewWhat does the open/closed principle say? What does that mean practically? How can it be achieved? What is strategic closure? How can this be achieved in design? What if you can t close completely?&}H}HG)Liskov Substitution PrinciplezAll derived classes must be substitutable for their base classes This principle guides us in the creation of abstractions.H*Square/Rectangle M+*Substitution& denied!xIt is reasonable for users of a rectangle to expect that height and width may change independently. These expectations are preconditions and postconditions Bertrand Meyer calls it  Design by Contract Post condition contract for rectangle is width = new Width height = old height Square violates Rectangle s contractNV&%V&% E%Liskov Substitution Principle (cont.) >A client of rectangle expects height and width to be changed independently void setAspectRatio( Rectange* r, double ratio ); By deriving Square from Rectangle, we are allowing someone to set the aspect ratio of a Square ! We can still make it work if ( typeid(r) == typeid(Rectangle) ) Violates Open/Closed Principle !TKZ2Z{PGPK2{GPO /F%Liskov Substitution Principle (cont.) Design by Contract Bertrand Meyer Preconditions, postconditions, invariants Rectangle's postconditions for setWidth() width = newWidth length = oldLength Square can require no more of clients, nor promise any less Doesn't maintain invariant of length Violates the contract9P*P$P<P%PF9*$<; b1   xO,'LSP Guides the Creation of AbstractionsAbstractions do not stand alone Abstractions don t always conform to real world expectations Violating LSP is tantamount to violating the OCP$E ?S- LSP ReviewYWhat does the LSP state? What is the risk if LSP is violated? What is Design by Contract?T.Dependency Inversion Principle V/DIP Implications Avoid deriving from concrete classes Avoid associating to concrete classes Avoid aggregating concrete classes Avoid dependencies on concrete componentsGX0Interface Segregation PrincipleSometimes class methods have various groupings. These classes are used for different purposes. Not all users rely upon all methods. This lack of cohesion can cause serious dependency problems These problems can be refactored away.j9FInterface Pollution by  collection  l:A Segregated Example >ATM UI Example ?A Segregated ATM UI Example CLogger Example o; ISP ReviewWhat is the ISP? What does it affect? How do these problems arise? Does it really provide a real solution or just a restructuring of the problem? When is it worth the effort?p<%Four Class Design Principles - ReviewOCP Extend function without editing code LSP Child instances substitute cleanly for base DIP Depend on abstractions instead of details ISP Split interfaces to manage dependencies/x#!)"8'9(=)B*C+D,E-J.K/N0P1Z2m5n6r7s8t9u:z?{@|A}B~CDEFGIOQRSTUVWXY^_`ab  p>(  pl p C G0   G  p TA ??zP   p BG?* bool GtapeReader = false; // remember to clear void copy(void) { int ch; while( (ch=GtapeReader ? ReadTape() : ReadKeyboard()) != EOF) WritePrinter(ch); }1    H p 0޽h ? ̙33 ! vn`(  l  C G0   G   H0G?\  e+How unexpected! Requirements changed again!,(2,  BȍG?) bool GtapeReader = false; Bool GtapePunch = false; // remember to clear void copy(void) { int ch; while( (ch=GtapeReader ? ReadTape() : ReadKeyboard()) != EOF) GtapePunch ? WritePunch(ch) : WritePrinter(ch); }  2         BG?` n,It seems that sometimes we need to write to a paper tape punch. We ve had this problem before, and just added a flag. Looks like it should work again.& 2H  0޽h ? ̙33 " 0#(  l  C TJG0   G   TA ??8P    B@LG?P0 `i 0>interface Reader { char read(); } interface Writer { void write(char c); } public class Copy { Copy(Reader r, Writer w) { itsReader = r; itsWriter = w; } public void copy() { int c; while( (c==itsReader.read()) != EOF ) itsWriter.write(c); } private Reader itsReader; private Writer itsWriter; } *?Z>  "    85  Z]G))?0d  NInstructor s note: What s reusable now?0( 2H  0޽h ? ̙33v  & \(  \r \ S ޢ0    r \ S ߢ   \ NA  ?   H \ 0޽h ? ̙33  `.(  `r ` S ,}0   } | `0 0A q~  }H ` 0޽h ? ̙33K;zx}\S$$6F4ab&Q!$HTId5q]PUGځmmZ@kHȨ T}>_θg~~)-q f27mES Q P@@Ӝ 3\m,#@ 7m#@@?:"脠3  芠H"CFq}Cп :h1QϫǴE7n//v\LeVMG1%e." ?4fkWm-GO=G2L㻡iHCJ~jso^a^ %v~wk`GLg?_!{埞2̱?^0DeQqQ QO MNjd;4uhL;#NLuoֽ'4l+oh~%rxY{MuSv?@[>8d., ăcT#u\ZsY@鐁$#8J'豝`jmHHz{MzxK>oT$tW[AV90  FZU9Hۦz6jnοD ӁN.enizl|-eH|੘QJcpu sDsI7켽 ‹1UrVc1Gڂ浚cӅOSiܡ w8#*,>tNKG^ A SQ;鸥;cPSNlCp7,Sv:һ -4Oln͸xB X t%E9A\F7Ii,Ꮦ4 [rO34Boyڭ-c՟0ghe_9YoJާ'诺ߖ_^VkgokyUx5 i\tk6`'eDr\luz\ :s[SSN_[9ڌ|-a g#&ex8^OprۃI'- Ǜ0F&η.W#BQgwQcB kPu? Q<;/=YH{jc4=|_ϬFj^?a/ ׽ ůvy4Gsz~ $4>ŸΓҌ{8!t B}G=̮Y5V1"~'u;H;3R5i2sG{%r~\nfv'WOwqbb3 q,a|.70z xջ[iKϸe4;~ɿ:n=gpI5Eg=o;VIMi2R|$!)cw{m*0^ xg>_Zs쫞ެ_Ӟ?-9k1>U:Z 6's??[uP{LFjV"d3p=ӰbXsGϟZƇg1_jauDWgE_nOek ?~ H7 1vB[{w0ISEr[{/uKDI @LlZ=W ~j9@?lQhI(@3РyWyg_tSMxAH짰.2xcw~co?v/ nyDiF0WcaKVpܾGTס!kU܃eHjnܸAӧ?~04 !Ao1僖gބћжj8504QC#{n)m(F#-Mפ¼6I?[&7c*S =k[:dtV}Lx-3㐌MX]all'ًn4o%Le&" 123֓$k=fĔgg$z*¥79B_3"׫v %{ ^ޏ#ʈA X@4vm x${=ٳt^O'6([OדI3I·,%b[ #Ȁ22 `Ef^s7tM.h<@r@@w"wlP=%prX ~PLlxOY,OA=&}">" } ߭zk>~:amoH*Qw^af6S"$?=1^:D6# :7{ K䅹r D/^#y<=.++0Rȸ./'nI $CH\'WkUGF'a`D$pWlŒ/"ntF"S]Q]+d:|OY'ݶ_&ueRx,s6ΜMc,aa%xFU'lfspn眦%'A?L?d32Vop2ez ! WҷUw QP1MFFט(4kk=NhڡQ-B=Ȓ$t;E;1E`膴LJHqeon ~;|H oڼּZ$+V9ͼyΦ*/q[eaZhZʌjN9X9o6=6q Vϻa,g*V9+ 52 W/g1*VO^()lBEsA*<<ќm^= ~ݦb+wKZ3`.,WjiqhID5E <m5eFtPmW%%Jּz VDZNXJL';|C7mc,b8܍kjN]=˽,.^ʣ/gk|Jv*T_j5BT2QRێPy痳*VyyhyǷ:m};>众^-KVUuϊUppNނr+V[z_3d UPn3M 8~x~4/'_SbWi4Rj8aqͨ逸NW{v'.\zL?/=)Y|PU0RRLTd'xk3㧉D2zl0aINGw ޳ę,SzJCc4Hw˸&56ud#k S?(O~6Q5C2Rfgv9n{l4_*Qe6rQf/OuIrk{uq̪{{U+^W2~Vp>O}7 2fݗ:Lja6L(t[ T1䩌ۓ:y_9+'_VjeKcVތ]X.*9p፼Bko`[~.FރG}rhkAVm.$U)Y4Gue0|&/w!oڅi[p;>#lC6'7-Jx#b%%D>78^NNCo'IY'E%8x}' D#{Iܩ\_ ط 8DoXCk!V]0 |T]g>xhuYwwwg߮[.,rQ% b/̡.uZ%'G3Pڏ7,ZKa7[=QKWTR飆sTګҬvi7T˓5hng<^x|^k 'o7KT ,XСJnrL Y[~]0U* BC!(*>̲{79#69 0#sqx0b~ۏ#N|/Ne\BpA5]Pc@>Nfgg%muT#^)ix1+67]s>nF5Q6Qi;yKhf"ҥtr(MVge Ea/>#Ll`adJP+ ;榋AK=|Tˇ!ވ}D? IܜOpHw^b7v%=m򱟋3X~|1[TJ7pd>b@_E1G6,glOHd5w޽3v Ɠ,lŮE=Wa dHYRX%ERѥFܪ_J UsMF>@LEtLi) $־6>czTUHApQgg(Ω*Sˏi&1A!ժWjZ!lrYrr$Rao1!(ڏY4cF{@ udߚ=9Sn q=])៺WnsvR 8줜 |Ǭ3/׃|5Ŏ5,B^]f6Y|~ 8"܈ 1ad1z؍߂M,Qu_jQap׃9:;J%ON̺BuiCMfstKDMz(35CcO\{%|}`[[Us73ߏ|<PP+ckr^Rj6s0jVm| Mzm^Etkַ_U6kfdSZQf<]vzJ|d/ |^y7#avDV+ V۽N_]y SӛE+di7ViOp'3S ro3jLx& jB3yEF6B8S.B*Wg g#PZл Ӧ@ +j1vFUlGNBV g+ !-HxYeضA' >r[+fo azNfH Ylc4R2+Ȱ} J|`>r Z @80d_w\$N{`3  +[_QΊѺl70a65 %7%q۫;fuxHhs/":!M߇GE0F/"[5l>D-K;%l@dSdCT3;Ȇ6 ]}D6Dqd;Ǯ”}C!=q io^C4q$d_px8A4N~7;j"e)b$CcJitO-zMnmE$C{HS Z,J4:AG85yft(vG=Yn0, R6/D,B];&rv3//q GE8 /&p8Nmi.v9=F4Pou] Dw`:}vv<#(o y¡ vSԙl \O-M HT~7V' r~vVFV8^_ |XF|QG;'/^*Dt D!2[w]aDlh?,N!|<(a`@cqɵ/t3 XK3;:+} /! gdVv"4UAfJu[&II}}N&?̈pb=l@D#u_=+Ž, Z'ZIIIT~eh::9AO0d`Ʒ5֎ؤTk; Εk1.Z C)8!F4X`)xt[c "ɤ Gv)`l4Fv,#` 0+PA/>ɏGrO $7*nNvw͝ [܉/nl@ބ xtE1$8zooOnsȕ8$hGl$hG(Jpd!YD;v;,XXgBX Kb@~%0g%X Sߔ^c)Lo)&;K7]ENԤ2(]vPV9EwԦ_3CFȜMN!t!xwMjRRcEWO`|ܬI (Ga ˾=b0S 6<^yS>@۞5YyLU]dDs2ET6S1SRl>AϤNu7HzF,W=w-`6Du'v+D;V>ݔ%"48G==2<5>ڎ4ĩ+'Z\ 0m5}au :u32$_ a1z5V>ƺYKKǐ0 1@ bm#x?P(FДPOk[#8H4 Wkp4ȕ8 .X8w)Z`YSc= 3vȩvhR;B)yɼ,ޛ]|9.n4 rrUץ{&텶|H ݰM&q- w usz\Wt{=gyAرuOHH̹ -*w vypҳ҇[~vb#>yp0w%uy; dwtj3bX3Xk1PDV 0an0 @?DIDPA-QIA?8yұ.ȧ6IzKzJ6u+ydsd(ɕoL<leaA 3vFt290JX!b-0a'bPppCT% GzxĚ}?Ci(ƺӓ3q ʵ J'?J\:Զ/ DQ PCW uK1)+J>RRȲ%gkAыK9JwUΤZǒ-UrH)W#x:ža%8 ba\j$1IҠieK&-QgҥIbY l![iwe{fs#i]؁6%zn 5!+vBԾB4Gajv"iv$E/4 d{I|$^ysB}%9BԘ[i$~Z0mT<(>qz霙o^`ۛ_[Iɏ{ $G ${ $[ $KQ&@.,|] !Y2lx, U%3u2Пa*c*UR2l Lse' A{h\4˙bw˦ SOL/mp6I6_HX-Y6_}BLR(DӒ1bdIXXe4wPس0X9w*&^X23-ppYbدKf愆-1,\ O%\Miwz/Wj5T R$qSt6~\W,Gl]ݗ畳nWRJ\|yٝL,\:$9 ?:9b^ FO7ŭ74 IL8Wy4[}Їyj+_OXrykw3*픓턫-%,A (òlnH9kA1<Po2&1bc_ WVa9Ӱp| ߉Q̂300eeRz9W65ݮ 3 w ,LMjL=^%fef4hegߘ?0KJğp4jy&D9є`_;sme%eZo{tځcWÄ0Z8E8[Rp0-TSP}1L rS;q*^[P.'Wو?.`}= pSMUWW/A-&vdg>8z~ґץA'utJ,y=]6J~"ٻόzFH:k~J WgU0Pvq;G4͏G7&U}u]/zx Ҟ 09XT$ (d{R#`#ކ1app&ߪGjZC> ,MxG!teтt9M1=ZsHc`/8@` p`XikQFoq O-KA+jK^mQ;tBKJ Ad:(M3q0)5- Ѫ3l7}H b)lҀAdV&/4Z#r52tŜMK尉ȯYp'kAPIG,aHKM,l6/vK,J9ɜ odcc[}YNY cN؇sK.}Fgm"vt}jiR3fcW;EuL?)8 m r7SY:(M;)&mƧNwf~sp嶧6E15ݰp>jґɤI;!MYcU$ DohhѴ"fr>ᰩsoqRǑ00c035SkӧA\VnZkieV5* VJM|1`;#7C7dKK\w "3RSRR"D?(Mg8-.udyyUlpwx}YxaSe"*+C)ό볳2KzjeTt =]_. WEK>@vH8ADVH!/VxsgF6,@r+M88WW)+J— ʓ\!=.*U(>85bbYa!4x鳾>}# 1!rĹs5S';v1v|?.([z UF#}Cފ|cYW0Jn #N\P&]P\qA9ef_Pμ̸LG.(S.(cPf ~P&RpAuA2m.(9 JRe#\\P'Wߕo7P\}YI@3rr)8__gr'r}!W#W-WG5r[rrMY Wϓg3Q&CNՓP&Y~]'WFX:F.WEAr@\ eru\](W !\ ֟ _3X?5X2az`=p!Q*Q|OpޜHԿ;Qe$J/OԿ2 3t=Q?e'$%zۉz~K[OEpLL22}~~Q~L)ӏ-G{.۔u,X5~k5s IHqʄpF.H  l >5 Q-`#Mλv¨^o2/w6-6B/ # qn e lBIy4ZNpiUu[ہ.? ِuJ}+EB$.SYW.~$ȆKPHH1.XY*IݚJD$ &}S#IdLHo{reHfB^%I(y4'*`br?UQ+n**Y^%VUq**GLU̪2UUkt F[ۭ۠"iEwOG< } 003737ȃ wa1 :U  Z>*4뮼& ѯޫ}Pk-U ǃ}Xk7V"zimg,l&X;0F`]c >%5a\s`4L_٠ `#N*hR[.xauXg["57 L޾wX_тSB>Vc CVǂB~)~ c׻c@:iˡҏu- S >sr`#o$v65v>V39Q_>1eo?T~~qHvq1/ E4 GfoT\εXc-KP'-c|zHC=Oۍn{krQ* #-Fir Y=uiGxk OgU;!n[x6q;p ~_rly#[d`<\"tb쿵Qx;\EvxZg{d?_vLޙ{c/E$^^kt ^~|Kv NеO2seAhdCH&E 7 27eʹk.f8kw| }2K6>feĖ[~i()kMk^ݷ9OoF+CFG f/GFŌ$<.?_BNv>6hx X82afX .6D@"֖}֭n([V+DkZ֍DAELZ국=wx̜3gy.=#ߺWz & @X&e۫]UWU}𝇁 [ " v18`[T܏'+7 0cbC ]100<1xaz`艡y/? 0Zz+/bd 4zbiR\oޱmū]3׋#?+vy9;^@LXWak ܬzupny6Y־wsÿ{s~1`!+m}00|g7ōz&yrs1.*>* f"if}əd&ǬH2r2~f~<`g@rw$<3ԟ[ }NU.>=7e]pGe-fcl\.XQX,e|yB37V_q >rȚ?H0~u,΍xrcwo;̟8ndsXFJ=aOk(L̰ù\Vnr&Nq8m:箖N$Q0 C V5͆4k;ΚXq{NV G;Y1+3#Xr]YCv|'1s> kו'u(N?ڟn9vw>wΎu]gh OI'uY8N9 ծb~D1+Ȇk)| 7qa'|f}(} 2~{5pQ OnM^$7?z[qh,8{ V#ҭ8S`=Y#=?<G]zm|=nnBim6b L+~^r;:[qkz~MKp 'rϜA[ܺ#I?G˖5ig7toѿ7|F.| :KX˜o6쾁k4?.ўu+O%ySb< c8ܹ=aɰ{72o.Z~rEss$mw'+5ηَ=뚥@\}{ƍHv_i[񚂧ŎW '=iɓ?~~[֙?rw*[[s~5I& ΙgkfcHp8[?5JmMٗo;Wm 'XcX(p C{AH>O_*iߏ COۏ&ޏ>vKwi3'K 6@d7';"Hg>"~kkol qDY!}d}KߏHF2#}${Z:L>#Ϣv-+=B_r >~6DO!s߮LτEkoێYF^qJ@is;d[wmj5 PXRt+U X0 pu>3xw_"Ncǎ  Jc0ipn!̔_f+{ж Vg GkXGs阐ashM> AD!Ad.2MgwY;ͦJ)Vfw 8afz{Ηc`D 0v7 Sife 0O(mvĕ9E렂q'`>yqJI$ AEcVBq<\""%Bd#A4\-XKZRYC%ڮDk(5=.8k(z %YC鸆r%[A p"4›MMG0dל v6vv1HC|' C6p,!*Eb> c7'TB?BUCcQ C˺t'H^){C0ϛM2Cb>|Cؘ*{vȻ lU.rl'O\ G)J"x:u g7 )վ X(PbAbG*d3!c/g9|^9tWWX3Pמ- KK:nUuOL17׉;5nxz"ܘXXXA:T(f= 6 3ؗ3㺭ew5g,ԱXR"9TJj|v8J!gt9tqیlnoN&A;+zhB4ˠ+r̃nݝ-EL8?4vEɿ[w&#eaP=SҲ"_(v.^,\R[ ~E,ic(6oq5э0M\+^Zĥ,j.jK}-qYţfg3HvSH}tw' !% aWшV ~<*B}3Ӽy"w-XWT; :|gʄߡRМO:%DƚlLZ0`@N$,g5L*Y{D8BtA2t#sToTyX0Er^cX.;0xݧ#N[zxKrHg%% ba} $?T۞N^= N ]L(Mk*bV)TN3U@w.%`9k Çzʯ(kfe =6=#Hjyhtհ6j0ט#FyMP#U~5ԐƱ7Gϒ/ѥ 91c*s:&dLEE= 1_&}>tClz$ַBԏz8[^Q'h*X{ Թ57]I$C o*pxIi mnN7n2?" Qŀ~մDב-aZ^mI*P*2`;ݐJjxVK'jcV_xL6щ>Z~M8I"F wÅaE(B7M9*6~+A }u u`.Ab>2ĵXl*NlXja * bREl_*۩޵e;~u1*aW4O,EhYfidGYIUb'9aĢ{sgHZg&,2,Ġ|UdUx#BK{0q{JgԿÂSbGP7R x8 "_bX`/5Z8R`).aR"$ "[,VBn_ws xۄ̫.o^uE6?$uh^Vv2մ =(wwEJFBLڤ ]`ҷ,8T3au&}H)(^I)RvgxW^,X6sx.,* W3;W3ZEza4e,YfȑR/"1 =Nz8]1$䴈GF549+zdC.vȑoΔn6y"*ɩC%$‘\AbUdzK|쇮fK3뙞V3f. IB {޶6q~l`8 '`chd a#|8N RIŀQ<էL+oÐ>pz`l4:6Q#fh8XRJ?xg-xHT6Z =♳f.0>bS %h; KK+Jؒ5BѼږ5W[SHPFw~ͫZE5DӢ$47`!\ _e#5k,!DհX p2df^C B&Q j^8D&&,\o(Bղkl;8hrJ]i{<ls><['̆{=GJ!Sk0Cx!X1U~-2^-66ƛ%%UD!6    ( ny<;5y||ft^Hg/tF!I2#F;gYsAá< 6dCXD BlZwnĊeMUrZX/stfo/t;OK`>MaX2%$$"/N]@˪S@c6qI#P"P.=$]qIBO=З,ne>B_"7\f_ٷN_$_Aؿ}ZMh('Izmf߄` Q{Oeq<5/2mЈArӒHM-<(@^B{I? 8[8WbHMLFZza]&Nq?~2Lۘcxn3٭[B2Q5(q$(ƨROOVa0qv[2Gjg*O.,꾜&/ڑ$yV'Ty)9y|u Lv0B$2PL~t2*ѦM$bXBeV~H\/ěv˵-QL^7KBs0Sas&T؜ 86g,N{:7B:Ul051ІD'A+(9Z Ic($O~o,|R []77alA^+gEy]oxɹ*ga/ǡ(z;!B o Xz]C+r$BNPaJ:e-/ 7U" 2.6lKEHbrrҝEc8 /=OarJ%QfS>F1ܵܿ\TNO)V. Vg [GجAnKƹb-Zt TЯ{De+v^1`2~y[yyo%ըcEv&ojZ ؼ%vߚ7?] Ŕ,]n-M-{4r*l4Ρ@Vfբb{}sEiK*G\!31wێ툷w{EURW^;_~P~;THJ^ζD(iꭑjm~%X'wbbCgN(έ2x2H?Ll[ d6 MK"깙OD8 Πwd-i@GKzl%PC3v/zr9muk.l~g; ]:*P ݝkyij=ͻGJEZs&wFmU<011q ~^?ѓc XPk+$M'N}X2$.,3*o(aRW?NNW R^@ߌb{M#b 1הK:ǽ?o<ѶZK~#$N_+;]sWeƥŞ;j8Jx?7ϧI۳YgIe\r٩Aa3 #6323>zK{[WI^muϷވBy8g9yޡ;?4"pl(TNOwo&5%w2l%(JUh$yJ&# 4|hzEP7ŕ1P1x^*DxOg|}k|95}ivfv,F+4:0ۼwx~G~8r[&T%5mZp|,\\1Y7-`ŵ$U4pR4ͷɇ,)6K1N-@b)[Ed,ykp ,1)5Hzy[woN]T"鸘/TaVy3EB}3dM(b?a_ CC7[2`?n;ߝ2w:vi ; >2p hwf\J-LEBn<( {|YuX ^AYdUO|/-0)s螕~ʇFjj2 }::%ٹLT[Wv?-x{+T89y^Ӗ^B! Ғ3+t3yZoʭ'G@$OF.> xMƜ1kLO!D}Wz9V_- ߻$|Kl^Iv~n`v uΞye0m+Gr;m =>5tfNJww֯h xөz5Kb_a,ք bHldl#$ZTM{.8lF~XǗV e0YuTa%#y[NW?K&{FlշOOѰzfjr63U% ۞_ yɏ饟x.+MeZS3Noaa\l /To0lPjΚ+zRj:U\2õyz&<0-SrVl\VgғsO3-|o}>ت˜UϪޢdL9)ճ+.IxkVa 1o-~A[߽sZv]ep;U$N\g%6)+(>oη+܂>JklJ/D)<,=XTKRMs&{jü>6L?Q䜴tM[mI;tCXǽjۡ˂/#բdEnF _,:OȜ*HKN{([p!<קsߟ1)"N վ9<-MI\azԤYRԌbڐtt祃}k}}:C#s=Bn;3w+G 3h ߬;8qq߆ji]ll,*/tN3.Tο_ky_{v7S39"Vc*[W%P> vVp\%wAR1. G~}H)7=ϼ(l_Bս6 AB^%vSe*$Cgv<_uqqۂYT'ySXNnw\b"iԪB/Hv)I&KWTm5F63ũR0%K}C]f=9in҉ lK!y pGD}KD^{o{ꆊPPWj= 8S2?rB:wel+y4z$A^ҝMwikt{l4z{lG@v<"YXtDA+i|F%ݟ rO9eȉLM/zV_)wN/'&_? l)姕yk_^`d.88dϋ3a8s>GJ:tڼ{݄X7-[:I>҃FPIb{:I cbE@@} !1Vz;/]7(n&IA@hAWd$^[wQܶ\ei˿uW @` % oX2+kW;p^mC Bi'9Yn]YF #@$ SRgGhRҺx Fqɧ `xC,v 6wwc]p'h4>fXGd+QK r\&=[`LB $X!{/@u MQ̪(cǫMe([J17 (5ohD,?-;\Rtp~AfLƓ?R ïeNU; )1!O.)Kj(9@_,޿ ;R]R.BYn݌P_ߞ/DWP.)%]~m+5'rM]6 ao4Uz?ҳC7JvǫTVEEו=IEzzOsZU^-suc##bD|XkTc8 -E-st~_d9db ei@Aj>ZI﾿;LJ`>I #E*!\!S7&ݨpH ! &"ΜtA}'GP8ut4FC=_ԇo$˒sI$eoS-vt٨(e.v#+=r@1!Ou;ԝ뵈8|iwNW3 G'T ˗3^ZoOIꯒǓգԋKRG& &>y„i ai UӫNWk'P^Y*{i5Yc]#)`⢙lvǎ^(U^j-HzJQPՖ|-nTӅ%ߐݺ,_gFoGo V#hUFᩕpNmIM,p8,;*li=?oA@N <>}b[Cr8:k:#LCP$R :4},G:On ~=D1yX\!=v~f8nwMeٝl*VƫfG)V;7rzbWC=wjy0'Gi@iwNDF{?7]*  gUu?pHZ'),[>gȵjt{6X?l ueoqD06݆"q;S1,"vռNm||;Zm).!$:+p:o6sN1ڥ] z]^ (9L>9˴oo-ZXyѸ=T'iQ QlgK I-/pIVZ|/]ȭ$APX}=BwO?hYXiL_|k\zZx}Y?[c}p5K JٮFő  t*Rs=_ ;]fo4;CIL*9MƿgLDd&7@&ADkuYə@<0ea $AA28K *da|:X6` +p.d`^1 ݒ QMf0@%0`-04eA|:p}Ldj Twz'xlVdj6 Y6/8?5<& H/K,BF' ?? O±00p.. wqa[9~=^ atIJ=fS0Z at0smF+(u "JP%.NkXvGi2&*Q;6h]  }hYR:OA7 Gq kl+tu$S#F8ˮ~r&_YN[wqjPWh i.]+cw?w.yVߍ':Za8>ONo8vHHGoONم~UkЧ÷#q:ƛ`=ҽ;[2)1O9ȝoY=YDg;oێ>ඊrq\>zy d3yƼccV,v֙RfZg/g'SEE&↍6>\U=4<~Sx"߮\A?x} \35P"b, pť\bmڢ ZZVm6Q |w7w޳s3sD~vExj$+Z!370 ô53Q[+f㒃9k 6l1a 018`ap W nap7ÂK1x`#N1ta 2 1C/ Azcc.caQ1`0C!obAr1/ j%^=pZ!V!s!DMaܬ@t~}?pjpݬ/^+Lgg:h.|6seCpYoK϶ I`[Y6p쀯#GkXKۨ1;ޥxR{ [ve-,B\쐌1$4.s|R.lQC+Q(iS؈!5ȄY<%D&qR׳=WP0" C] I0[,H3Z3:+sc:Lч-d`'̜Obl$ Ռ1N׏S$ͥ-d>b˶k.bq}[;ߢc,ldc,}4)S*/6\!j&R{rGQb'hq1ngd?XϖmW>{S?Zኍ e~f+ݍ|dEL֫gc;ݍqD*ewbkӁHi܏bxT 6R)FzB>l:X;]`k6lgɠ1ڂ?&2ȶ2 Y  Ia9UY$ٲh)Oy8L o&4]Aћ u;7F0u\U|fKH{rc/!mOnmW lV#'w㱧H2F/`it6eE0y6VVVcYammYn2C+ 0 `&y2QYjk7la˾ok'ʣvYlmGfxdǢG[]]cguu#<챟M\1kc>}QY v\͈8unYKWg_c`{~(hMuђM^v^cl-(l;ƬvV~,m;aVYt&2߶ϊYYG_k۟Zʭm-YymOp)7s\[qnmg#Ž0$ch%2[m4ʗNl-nhS>Ȟ*@Fy?ٹ91h.ccgrjRdb B|8|}lLT152Vcc*5Ofx7|~Y|'>ģ6ُG wNҀ)YٖSv"[7pWm"BNy?F=[<[Z>A 4/En{J$IQ?:bXnm:;=GԣI.{ݩ9 -߭ꌤLm63.?'7u]O17)`EXlQI3I$癿>I-Sԡ;g@=_J-7wq7͍Z#ݤI㣓Eޮ b9/;ڇÞy_&Ky17.)DKհIٙT7]\;ߦ<9)}ۖ<9fS<UFi)[af)?%ŜG={OKӳϖbҒc"l[*33 c-Нt=5'e"y𶾟)><ɗgc%_-{L?/rILsZ< aG9? @wMVs];?;L_>j >b9K`o63gS, %xi oNc Cb2uF;?gYj$XN"'#WoFh~9c@u٤Ȉ_9?f ƙJ 0`|%iR}.jsN0ΗN$?ۖ[<`b7qfdgj(``u/vm?M?6>Vsw+i>mhYȣ[Xp"V;rz6r0wn3-zw ޼L:ܠZz*_|ܹSof1b(bL%QSa\|0Z`ݠOsb/2~/؃tϘH#SJcUᓒ|@`߃( Q͔9@@z m~sz>9 Sq C L3 k#x ww7 <ωh;! ! 8C zk3_)phIx3DTr@pQeo(D(( QGwSh&ww^PA.vBrr)o9݌e2*ze]F2JQe;(B I!T½p/rk {Sˢ 5]R.wHvOz "Z:of`^&f20? z9pf30f,;DF7 K qX^$(Yf'z <ߠX;4;1_wIe}} ogLd Gt1+ˇ~zִU>DtDrR@-Ew]i@pp")|Tj=3?]R2n@@#b#q~Q2hY\'#{@[B7RCxnܞ-F;s -wmiFKN fLesNwO;ujv1q0߂%6׊a@#(F% ]{MMM'2HfMP&4Wo y)?]tS2zcuu 7rK1:4훷yf>I(7uNrr^ y{p2A *@{p_Gd`fIp_9Wmن('b?GAm=Bp##`7iq u~ #'a% 7f -pͣTNBy1ќy7pXV%W{3dyǝ}2zX;tEHW|FV`%=&(}2ISؘ$Ʃ&NMR3$0l`{ V%"ukM\+R;|iu:唳pgEbCn]w . Ik.}@lFJvHvJZMnz|jwDRSE⊡7?i44ǜd ?ho緸t~-B*'o^u 6MEߞմ0;vPzo =z*+H&` 'SPjmg>ZiǤf'pUꂃ3 /T\M爄ЀNgPY, _e]6ۋ;wR_Ai3"/37Q%OL ^=|UiiLj495wj.5K:iiRVb4'#B۳=*e-TҺ%x¬ЀVC ō.&B0$} ĔG.9VZƫr&d2YFo{-o0*Re'MK2I_ISBRZQz@/P}a^ 5' x6y ~{'HXzqQ(26wjt^vzmM5/ Vh-{9 z.Z; r% {99FV\)[HPg7j&?"8#/E{ֵp Q@M~&#V9_"v~1PMhX[I4rփR0T7m#XmPr JPsS;Ul[Gj3p:ski Ck 0HwGmd# ɀj=&Ѡk`ii6k34Q R#'Y֣C`cFԿRs8DKՅɬAo0xBn@MJVϴL\#Q&}pls54k|cv[)V}MQ>PvV^p2+>f`pMτlvV}̲-eB 1ۢYaiLl\ *!l\mght ҿu ChT{2wN𨕜ibc}Gc PnѲ{YfQec\9˱Ȯl֎k s>1dY=ifY u-sͲj~q C0` _._"3!.k D-5໙WjT|WOsFAZ֥`mZ7BՏ6BC<kÀ={y kbPv Yɜ%hVXjV[P{4|;k'*`T.k[.cİIʚfYM~{'l?!{ isl+l^7&'\6O ͨ-I >s2ի8MAX0YbG-pIz z| k`!d:T'ȩBsf 6r.5D񢹃O(iΉ]ND!& @7)flt{{\rSϫ  (y'u>[pb8G+mBqVeŀ2>bH ǧ hzЀ= s?*#%7]UֽW>>J?3f,u¾CS2s(iLm1_ E)yB@L*0^::Zb_ft`fG򦈉+6mؾjt@Z{)X#A}CS~ToPjI';yC⻃)v Gllc=v=j*QM}SHv|G: ʇ+BM%SS .u&xDI\~%!n oD:HCܤItQ񕅞GW L |$2PTP6$TzU17E0Mn$vۯ6(&%٪'(TV9)X+V.P[V eLc{ i6fp.lL SaT0|ҩ `zQ3\ 4bmZVM#\yo$HSDI0c2Q=dES8Ƚ!kPpX}}t\@I袽m.^wh sNžjLܲTs$Bv@zRSKSiN3)H:LS³ۥ^ߩt hGH]n n9//Ɛ>ӆ\$iK=ua(TߢNεccBE.OR֞@ cg̢b4.+.L'9?|t>ƫfجИkAp>) tȡTyD|sCiFi&MZpN8r /EM.J6֮0b m-oڛ.uQP@rN2Õ]yRq8g]z}Q |x:$4rDYq`빫/ƹ5ʞq[U S64HS縣S>~F:퐏.-/<8S}sߑߏZ'˫Bz墨I)EQ}z~oȚѵ?rWzSݟFբUzp݌ T{v(׽:HwȄmTzyaTvàkegׅ%]ίW$}Yq\O{H_l˔.xhzDjfjvz\v11x&uZ4$S5|F"q3r /O |"w9]ݣ +̚\mװy;Oݰhq$|{DvjzmxtuPe\vO_/Rߡ;ھ$#շ*o >7xSLC[aw+0P[! w/ZgM8<'Ѭ;o-{l9<~ M$Zbez%f/MO:E{d!}+/TQHsN{f)g#TS2[[#̘MM #p,9# wN wc!|lbBN*OʒWgaVͶj2rUy}6'Qͩxx"'7)+Wڒ xYgS.+U%V‹zuYgEC=)6/sΜHଂ0Lj)cRq|:>QI9Ҥ=iȎISNΜRT]]1ܢUO8_4u:%#+ibiv Pn-ny^xY BZ=))OQqKs]$YIo$P&q2?UfϗJ_~tp[~:pܢԔkk5$Z55xl`^?lk]iuwRis,:I΂J \#)iI#r>PR6sT ;7FbwLn4ujRA_AsIHTR&rn}/wRWuҫI m7It}@+J4 LStStźVjt:]xYKDVz: ]tgKYw;f7%3U9Ն2 -F-fȫЇTDN% *Y 'kUD@p# "܌;\&[iMwf.|g쓏ȶwtbDQ:@&("#4"{~{6$AG>6y<}qٻH#P ǫ6q ǣc<\gnR!vZ:F- qo\RJ'eBk2z th~$a5eBtZM8@#!n>&sMOm 9MG-ORD(G֣="FR/f%#kpp )v@/w˓r̓ P$A a 󡅝֛*ݗ<Q\'&?iъg>s?hI$_I}}zr!gȶ͕%YIrT)AX+>W-cE~yF绔C 7';gpq|Ċ%9V/'cIl:+ (J>hI\iPhп1t7e7n&pn l'TdH{ /g'!_5@'pmԓmx `^2˽qۦ܅M.> A!<+>pz;2V3n~tQiqM<>k`G| {0Q_ @"ZV=hX6wisMJz-sNٕ#CЍۜyfO{RNgE::Z: aT4O~ YhW^^`C={:+P0cȺ9ZQ"c6]4@8 #ep?|Gxnq@շ\fptzx ZiES=7k9o=N"~Ǟ( VgۯVje#kDY ! 1sBVCDsBl !ECf|${3Ы&bh P}(٬.yC'n p8Ҁ4˝[R7nqBѩv.] 0@ |muȑK\TǶ'm.Ng ai"B7 5K᱗F&gEFCdLil|xvĒI?Z ʄ{:eNO|gNK)딮tJ\}dY(0ŌOCTzxpCޟg-@Be{Ȉ` d3*Ġ nD4pP~M$_ֱ$-,yϚ]s,ĉ.,p^7i}Ŋxtqj)9cWȽ!'2<ʥ ߻YU[\({fxM4NkJ5?-{wGj.Òz.3?i*dcN[ѝ([H{񲎨̍%KI3ɠ29!`gj]w Q'`:[au%*PH7Z"788- -'w$plߍ<(ڧ0c™'L8%6AWW-43bnȞV*`%S&|S)u:esN/(G4*YPق Cɾ/B45BT ׼\/;`2 Fgct \tKƈIF VeC֑"ϋW-ՁN,I$$YnοDNo#_O?7PN.PױNtTENVz~ep/$'%pi5\q(rUӹ/8o<΅!@ B]Xz>EOٜ<((QCaP@EQÈlD!%䞨!Uz?u0qisEyγw~qz%ho$A zyQ9 Cnhz,!Zf&#g9@/v"pԠSC^LT4&u2ofe{BRdOʹ{gJfBU U)tړN͙WTMU/^`I~N̈́Cpgw޸|p4!ϑgH_O(* 1rĥ`m`ܷ ^[쳴l*Vާ'KmsjJN竓bt-WZwP\)VƓSAAAA׃;6D=.͂K7Jb^5u%d{㥂kW'ʣbeh ߫B[$e*,aGڝ%Ij?3.Vjke9 8:[2䝘1cNf \镱 :QjM9 S.-o\4ҒYݚ&nM9k¢XQeoQ vqȏi w(y^R5ЇG \~m0E℟wsh|yq֯'.LHܑ:& 6P죪*I֪fkUTpG/`Cv77#ܦ|4 v7Fmk##*8.?lվĿ$uۑ{M-[B3|Pryh+%q\1|چ埖_%zsǦd$j*n7 U}*J#H~|j]*8\uFU vM&T 9s2jVi8h4Cӫ#{E㫅oN;KsWɺIJD"%$/hQds|pŗr #I$HZ;)))9|CIf ,Ԕ έ|_/>.KBzͷ{5ap1Q( #p5\ P:9v7 d8?} ނlWV COB\0W7٧Rթ)-)W-͔N[>}\yuuz@<:)Σh_\yCm+y47&hCJJJf%}WW{*2RIpEQITv4PcOoŐ@2LmAI؊2 $5*[&imgLhI死bځqgN ]~.Zcɴ׺Ch@B%9[z"uGQDD53Aͦ6C{|G |{d6WG~ ɼ{H+wVuKz g?'Nt~:̗bIpOم[mK𖭠N0BSO/AQer`DskĊutkb[E#qXq}<nXq‚=d>,)W83OŊW77Wcc 7ěacuX3), M}cYU6;^3QnSiCAxֹbF |.c8zNYpOX 5δ' V]a]OxM/,Q<RƒGwm+n*}?*~:<ϮUδ{|(bWccW^c߅cqŚ-BB0ڵL_0i[5|yoWLo5+E)w ؑ-4wg[ n+mX %2}en{M{Vb2TSN=Eiڊ=?*nr =$mq}|zkyU.23.p,p~?)YZڔ,N,n=@?Ќ@c݄sLet7oz.,nӲ؆W>> Xq?z}[%҉.>sI&* 0ZGu4-4WV̸W=*|yp;v2]\ƶ>Xd 6 _ڠ6>2ْ1 bc"6nFx}1smK66A1(#!h?K[cMXd K[4_"^ 'lq?M4ӭ b!D|w\ҀX[T#!(p#_)_..6"Ѫ mf1q2oӒϛmOZ~W%zOoxگ_H~,3'MWi)ϛRf|V"_VGw瓲|2ϑǑޯVe}zc`qNj|J 3)'sgHԏmvc#qv)ja&"g7?BsgđcFF33#"_ ǿ ?j[2ikoKr8}~ b!h&6@!2iI Y~Ac(3  6 BClip (MS_ClipArt_Gallg VISIO Visio.Drawing.50VISIO 5 Drawing VISIO Visio.Drawing.50VISIO 5 Drawing/ 00DTimes New RomanllX 0$DSymbolew RomanllX 0 DArial $LT%=d,E;$T,e, ,\T 4$9X-8H<TL $D9h$4JI,\8x$L4jT ,TTBwK,L5X$;2Os.AXRjXOE U\TeaT5Z(6,T$D4c$\T^ #^Iw ,:zO$ U Dy \4K>rg{֑ܫ(lU|$+,L\  W, ,B0dA 4L $(49l    $}u} |`ru'% }wJSP;B=nxm6`X-ݨ}ըك\YzsEW%";vBG l /tG2 7F =r^S]Z̅YkKi 零doٴ:eqǔm ]ĎnU~|6`Rx29ʥAWB}H3.RϪaAiܬNyA8sKũW0 MXR:'%5aؔt=Kgt9z"iJY9}@!yL,>E2N5e*y= 8^>.9(^vKB:ˠi17=~WG\lA9{kғ>đ '+H[5JUcV<**L;]Ѽ < x4r`?bxnl6 ;hlXl=YWu7SW0?GL`L,5+ѡw{̼R:ٲMϦAz? SJ'7 :GY2/@ qMur\q }[!\o3t? 8a'..1bND,IK\P|(K kVB柮KąyS"GViSVoPD ^MKcgN:rLN%si\/OȍL\_ slb!OCA:!z2%_,\)WGKp2|DtEcXeѓ&+f,W7zY)= f ȿxe3fٔɢJpd ;NX1YQb.\Y+3Źug^.\*s!sG %4M\kFs좞lHW|f \ ÙSTfr8k4 ݠZH]4iFҾ,ј h=_Ui(L#$N^ά5y5wPp8 C.S02/@h79g+Lh].!$޳Y [:n.m[ԃ@~7hFRTB$*$rGW QaV.BI~.ޜ;24LĥfP7KaC n'P}wW0K0Bpga0 w"#Sj]0%×aੳB$z(ƥqfř 9\fqAxdgM&Mp*pډd-ډe Q+uI~VEbk=h8nؐ%,ۥqs/SVe8HMBȡKcc`@ԴG#bH} UR9\IF (5&ìJ0\ƨdq,khUxBQ87f0DE F@38KJmZ%!=,R0*9nI;J8Z$I߀K|Vqĥ9 _ц.=D!0y.d4ksPy] H3941.5J&2pG23JC,2 \{UzWa_&-.ĉlS74"SxQ022 H%^JeQs3ENaT҅LZ8^ y Wp`x҉QJf^JY✷˕6tb'i5DEjdAv~tb,W@B8111qV:4DC;#ϥf%7WɅҫ'*GByOt)|f)#R4eθҦ5Q2PshV[!ZcQ4 i zfǒBJTc@8Ko!RJ9N$N[94~d6N FQǘ8,>_Yԃvv2L6h|liG?f FA4P_sL44&ӬkvDp$ANEOl+,>9n1AEpQ9qoqx:ӥi8%!㣴f5Q]TqWA)A(Y^åC~ٖ-'!"B>P,ӥ 6牼F[ñ,4"".Z֛Z'`@QƥIJ xR}! Km*R=> C_nr!O]L[9.a h@R1ƨ_*Sh"$ai圅hd8Qn!9L}4%^m1T.uR'r`1׃zdG%ecD,!Ka"l&"ap&>4U0*iBhf3U1J Q+3H+ A %s+ *MI~!Bg=A{뉆MFH̱jCC?5)_TcOqyJ͢dxF@TSj<`[a,-`=JERR(#c*"ɊΌ{H."%U8.z6(E)A+GaAbB plW'}\ SZ0[o3[܄Ĺ6!p\L ZJDR:iqSZfkԈ-2,^zGXB uibgor&$"7p߂ZaI"7iJ|z˂GCefq(㑚ի՚>5c„+iҢ;qLpBOtMsN /Ǟ0$dg^nvm*ޘht cݠWC6g=`02!Q V L)5OxLF+^NuZ4QkbӎDVFZ#HgpX)9k| ̐C=HO!vݚkw&~%innnZЗ:á;L̼1z&aN+􌕯ٸBE%7!r8@-d#F[u;5%DP@ tBz%ѦI,0Qc͉yN5VYT1,GɬELg4W-].`Ð%ا9x)A7/^j%.ݜ6:@[0j2L+M&0XACRRnO-y Q J bENWosHāO9 sBE*$琣tEFd 7rX}k'$So(.(U˞SQʅ7i%̆-{hh,+'"ǹ` Vaxi`C⪷ߌ]i3r<'L6?mZ`0٭ND ñĤy 1N">8MTsK'7,`MY7q\-[l)1M{`ܸbz*h~E5?.<_Gd;KNoyV .  J(Y6Lx՚n^*Ҷa .ܸ4m.h߸0 \9iB~p…KW4[8] ć85mj dN3''N-Ng84n¥ gxgØ5*٬RYu<X2*  rz/lj;t M̜Q\0pԉ+氛>mƈG;\D85I \8V;Li8NGWznX ѝxԨ-%ֱP<Ӹq"ƙZY ;g!^ ^1:U~.sRE\O^?OR߅v( HjOHs8v͞;^Œrxa+D (5uuNl c~CnQfsiN-yjZ|zӠMqZOEoڣt?9*ӊR2͸Eccw³5> 5m3<'n2%S D8r)OP9C+((p$zxqU&56p![N ^(=O4L[ę#RIМ֌u`$t:OBopب|ρ&>{d̕KȾYW"UdݮCTQ7484lO(gǐtj7VGQ1 '¨s*3 b=$z CHP9F6 0abhd'=M]ٜ룔ۆL'oZ<榃Dʍ_^;} ۮ[?at̍_EylhXj7!>|hsDlˬF&a<8-KNY}SCZ榽h̀SNҗv&ОmNi I%OK[a:IhCݬr̺mn<O60!)TR*Ҕ ~qgAF[H6jbA=qn0/- q6,ͱjƤ(FDǩԳcRT!X77V@H)(vῩ1 )C[thDCôbqAJ[;!Dkp픐hԤ%S\jVNB)bJ`a;RnÇ'"504ה8Q0bs\ ӧm x5Yp,&\״*BQ. .K]8N-h߫o9l'X7Йv89V;!4(̆tBẩ&oJH20j8i46lIWCBM5> Q%M!kt$ Fu!|+W_ϰ,q:م%xg1(Jd !/&QۓD 789I6)3. ^EWOiD>\aKc6!VJ4ЏI @8o \pҴN'iԂL8(@ऊJ,HA#B\,.Cm 0%8 =@ăZ$Q2% 9LNZ_Fck>)N}Qtu< S T EϢAB=&1 jQs & `79Lo*CH^ Bk{9 QTaS=3[`ڤea圔sW@Bi[2gN2/XfNbAqWJM˹N3.]ld4M簿Il:nd49ө#5 `x4n3aQ$u+ LT(.*xiG  =4'pc1 7'cY 9-rȺc%&' [IIO#d܋a!G`d8;!K*J%:F2V ao$.ӈK/9툰ē ukz2_ ꬏ $c%Q./Ӧ^ GEklV7AHnn:C N}a0iIN4 ]EEiDмb.~ZI7 LrG4MO>QH[!Nkh+C&:/&% ̱Zܲ)/'X2*T"GA)Cip$}hVM'vPnGltiac}ڴ0t琦T•@H7<*%%&^|?0TD d &P@,!}9<)읙dvYHFNGc!^H^$/3sfBxNR?:gKjB6M KN4'aQGJK#ϙD55CzL@"f׍μM,:-p .а̼%KX͛4ǩIO<R;\]ƤljO\ c Ţ d/q_I&7 }ICϰ f>NYc Nd rE*.c 7.ܶ{Ņ/E]HXXX0B뜵Cw '}ХO;'+en$384]ۋzὌ~ v_`ä:j *X=CjO3N`MYYO/0Pnz,А=cBX1]J| >.Zf(rFS +pY8)5Vm"{8g-l?Ko;}CHE Wv}qۆZȸT,Y6K{Dx80T}yR/M,y\@4&*8Z}YY&% M&KQK0EX89%oM2WYIO ;${ (:d\4 ǀUaw ap!i#ŒDJA ++mI4<n- 8o`ғ&׬;"Lr>KL>+ IE YX4q7rA &%~88ThUܵVp !\ GѕƜ8Mƅ I`?[/uW!{gΝ9Hhas9h>(r ;Y-ZhZX9:&-VАkCd\ ^jY~m / S}F!p8;_ )YF@öY|'ܝqaZZ~^rݖ alh D"DNӨiGDV'i5*hB-C(b_Ly3y!~lĽ\:0fDKL:5J8D+KԒ=OG5 'f Wb1ö M $]bnDR!cNzMOq47FEO3ǭjͷJC`ɋe"ۖQ ^ \:KA,kaV؎8'H iTsUB$E&*?˾JGxnEzt"xh{)Uȧ>ƌ&ڸWe!OC$ " Ѿ@%C"^H$e 4K8QrV͏Jy9'hlLӤ}рfĚUYL@qA.T:/C{y{!ha|0׺B;뉳[I >vVd ވhh9D-4HgI|}F<9R)iESdtBСG@H!5uaj\.BiM([v5E,ru&p@,ćM$&I3 ĥ(14t)KkL+&>L?_Q""{4o=1bh29Y6g߹[=k䐞@<Y 8@Tbui,oz#ŇPg?Js@&Ů(HYm̜z%Ĕ5J g I,OP˰Hyi42.LF)C B6axihc{x*٭j^s ߜEo.oC_{BF82!DZg;m䳬R2|s:pHRC?,*3НO(֪&{FB 97(TI%9LHP&ӊwںد @-Ud XI2"(ΒA@{?Vv)/쑆Hz/yb-¸n*7BJ_@ȡpv9(:vx5 \wؠ=oAoJ>|_= L 6va-Mdg$T{wkUزfxX :byρ|RD@iP J̮SЁ{Ah;B^B{ϱDt`)ޠ7N8B ;i!J$EM xI$4)i=y QZ襡"=}p?E b`;t<EB `=6 #"ѡC]c$EwJw J?}lwP!t=GE]ǎsرS(]:~1ɮ)? ]=!pq\rGtһ%#:[dg]=>8{'|GWB;L]*:~lw)q(u[b/h(M2:o8ԳcG@ңG}Q=':HrdC* ٱo=w8gc|ّv߳# -/~~x҅ڵo=@whR=l68̫zGEJHrб{I}vܱ^;@D>q@-:jL$wH$:O{h_AW{~tU1Bttp{0^gvLQ}v USAOsCkBXǐh i {Ɏv.=t6okWH: GwTt !:phQARGL-ڵH8T%:t@DVQ?&)GpIûqAu!Q0!2(ن$D%RGzg!ёC?PM(e F~&:v8MN3wLB!}G.(K1̾=8o)ruQ!сE:>9nA$Kr(R i {A0l#W;Y?t`QD;et$҃{w=O||wgKw/ ۳ pt }v  ~gwm=W 8g߮}B*U`:ރ?;|Xh۽X1g8:܀&#!v=|#:z c;ԡ#ǧG%xp}5nu`#2؁'?Uۏދw:|`q3%yϏ'\lCv:&:~h|GTQ>; -{QQwܿ};tt?;=`|آGv{pb9UEj#sJE{(w LH(6K[E$H$脈LjTۃ? ‚n =]%IKyǏ l/!O~v7쐫 xUtlu !=v>Ҹ;2lu㟌axch9 HDr~UA1:'od:&7:<^[L2uS_ ogW|wgk0߈[g_hJworsĽ;>u|?z݃r)ˈ7=h|}t)w~n{kO:]s6i'[Igĭ[G{ȡDx\ԍM#zp8`GnM#L_x}vG'lkaCfW G!3u> aw q9 H{;.;X) v6ЁC#6\S0hDCF6FPè( 0|-G8x)UCPq~|`RhR"1(OM1c")OW)϶zǒ#$#~Ť`9|q'f.erah <zA#MCC_2.H S /ߛKI (U@IRtqatOl 1gc>a<}9Htv>3Y^!4 2Q$M`%`Ea3g&z{t{u 2aې y%""gH1q/ϡ:)SLàgKyuX_) -qƄXz;C4`O_GGo~{z#o䣰 d*[\f9d'"%ck,xO}^ε0{zJA; t:._/>f VxLn{6F) M%hy|h"n uu2[VTu]<2%{+3bn9U)5]3L}c0K;G@{uxQQP5BwQC!Q&_=0]OdoW{WUWdqpj/a,jtUyZ{#H S猡n z|5F@ƪ¥x1~wCDP7:"/G"-*( O]W9X=~3ߑym/ cbዀF3@1 dPz.w\>3X{;2Es].扼ָ0b ffT+E"B|ZAQVȾo;ʪM~OR\jPGEZ&=eLWjO w "^0d{W/C#;C ZZ|M՞ss(|+:~?sxdZ7jפ0ݐ?+KyǍf`"DDC) CxA=MޖOUi_C]K{ P`!",6e4m01hRN"C!N.7) J uuuA@ѮK/X)Pji\c@aTf)_ämD9^~6oz7#^xOoč;۫W[7x_]Sݎntsre2"1tn,=42x0OJT5A1ƥ]9~'Xuv`eNo: X'ĥeSj{^xOA⺖>\lWѥIR=]g 0)( e[aI\;N쉟 vD^+BBɴx/mhhi9ZZu(aTpGyq8Lx5y\uKE~,]/|oΪ:'-}-K^@V_;mDF^viAN$iwT|wDLR G <(['8lNN'}u=^Ou%馦&8u-ehgLmK [!E ӵAþ`Y&Hre@xo[Z& {RR$66K##SO"äAp4UUƳg۪!vg CDF<jW@:M}<(sOſ'!3B2Av;C*.U9acEU푑;Hv}hSʪԵtz<~0WkkibmDC߉ O#W|>>T6660juM@ `U)^b}d77j% ;*ala#wrWS]ڋ]CP  &H!~Px.}u͍uU-03Q[vܵ\SKKS{e8oa_6ˡ/%F!ό,,;kzwc=݆ ?khu+<УMG65'P}Ň g Osi($ӥb&DM(noi;^heƋmP MU( ˲ !"w=S) ni9 ~ZN͑wny|G O"ȎN*Aċmn/,aV[ jꕍuP&mB:M`C(nj^1 *@B Ja+++kkT>DBP!HOy (_]<|s ,녱@,k:w9n;5`RیLT cpгU QbWless#lŋgk <&I^ކ:?YIdʠi|mP30 Os1P)TUAfi֥,xꏚo @)vl[se[%l,6U< ֺV/vo a4Q$yENqw*Tez!T2çG@F K8j/^H6׵N{*x|zw}=ю$M|7b$r>a^)NrGO7x:%n9NWEB )ə^+L"H),j?w P١YO{z:Zz_=W~ $Tm-v!3,җQ !SPED,/oF_7pઑӾxӏ,F{u O ^06x/@rs>9*J"A>M5=7!F_f;މАfrlk+.T6ujH@ jjs#l!~LB xU5W#tVGBH0/^Tpegyt=&%a@+@Ê F;M}/^ptϖWu{>wsY8>T5yQ"NSq>|X)u[}| hgiT&YߵF@h{/{!k|n&$`}}w^@RW+bvoۅJ_]克j7Kʶ.V^q\ H _ReU&Сph{OBպ4䓲k A&L^>~'VRJ5u*̽o0%Du-v_-~3)HPb kM9OjjIXyf9d L/iԘ\0YuE6 p1/}&DŧQi#G셳@x̗Wp|}}o'@2d/NC !nnD,5-MqN[/⨽PqBiec}c 2צ\JMdzg*r/Jm7L _߇я&d_ۘ!foREjh(zZk/\@(k/QXVވL|s,$_{م8zS߃|*b.O{Fn{څ&)LFTY up[6pZy[Qh뛻<[\W~ʗgŠJ_{t{fhVPbuCKVW{$_BdVv!K_/^PRK]jzλ NF""~_' ݍr7T=|-CH˼>Ji Cvߍ NQw"Aio:Xm S0HA` P;_S_[*(A {@ /\ 'o-ǔ &hnr{!YUU T6 Tb"~o{B8nRC[j| > p< TS/1_Cɜ9S~wʇ7"5eok2ƏSM-"߳~ؿc s|HbHJe|ֶkZkZk } aEe%Ke h7x1_Mu]uuU>/|ͧ[o§iG$̗1 4 ozG 4a z$Z #x`H{^FįOJRQW #^\"6@만"{/v.Úygݗ2'1R._I> Vrp@BrH x&wڦdÛ*+͔n l(9bL k#=#,2>NUzxg+0/ bW_ B_\!7ʪ/U55UVTK t"(Db*pY혪$D<~erv,ώ P"?QESZ3Q'"4eJ+BG̅/C\KSYGKFTCAZY 4BFUY+S2n-z&?c'Sܵ a!('v%ѫ/ BcQL*=`VOi(i8l`SA>ȹ^[l*3'j8k,-GLAh+V^G53W`1gJ4*Ũ R|X uuvJ:]}jWaUY -} ^֛(i w+z):555znBzH\RfQ&/+Lɟ>T{=Ь]$<^O#*|~OkG~MDij?so^, ;H/bĘ_]9(?5h;[qh]T'|mJe!Δ:[{ 3?> nzBmJ&m?ﮩo﬩"gvV sx/g&Q$¿?7`R**`ҿm<( q.*6pdzQ~Cc"$&2T=[{0!Ur㟠"YJv5ђ?C6 \@7LLJ ĵ-OkkCM=.g6++kϞm n$ϯ̽Γ; iEݹ{[ι+*^j:monk.lƍ:Đ`Fp?&̳jplB[ߍ ƥBKˎC76 *׻ t<J FE$Ur/t@|}̙sZګizڨʍ]ڀ!u'8<4xu+.tukMnW{2D1cB;10oyl$-< b6 c%;3_]a.!%CXY] :Ѣ޾:꼨A!N)wbJyL DÛ ­[䆷B!@Rt?A< T&8TW"~' sO0tis%\Qx6D+d8H| #_6:{;XS]/`*?t ן֛xGT Si}T`@T*N՞me6:hZ*)Dd ug˩ŸBQ@=[WW{G(E(=mP̧eԂ=KRwACo6t?zu޺[Х%tNCy?Ju~ՃleRj 4MmFEU- :NQF:RU?XF,LJN|>yĥ7:=w]{㪋!OKK N՝5ev+6 A6o*ps7 ]Qpt" *GU]+TԤ<p;OߍA$Nv׊ h]G|,$*_UF_Yo]sYnؑ30 /_z=Uj/\i@:|f`L ;=Ã! !G܆u)i([im'IᮁI emŋr$}HַEb^s4jzJP-g a*WV/*Ouri{;;~@xχ oxWafV Q2Y5 *V"gwT 5.oR6CJ ޠ(28K{H{w`K"X+n0F!Srg P88UXR]}YR-]4Pԕu .,gfKt'445?_E&7#q!VF LͥQ?J@x?(BܘxK!cUXƊZBE($Yx?[y!ϋ\Y}Q覭m8s~䱾w-nHfAߠh6|ʏ!f2^"/ yxC!COī@w CZ߼G5L?6(D\ֺQ6D3oAt|03x3_^@ kV]lkD =e)!6D,o~ބy $7%!s%>yHGy{5kp@Q:9B2F*DKH=e)U _MV?0ۻhAw0_ѡ%(yn? =>(zw}{p7 /HٺI < O)<(A 6Bʀ.kNzPL^N#؋ j4tX"CO*V1{a@Wލwoѐ*Pdo5h&P_GM <^wE4iSDK氭b[m( Wྋ^s|CXz|oаN Z9JYNѰ}" Neu%XhA>[@akjErX!i3@bhM &8 Im%)H5ªsTHss> qCs/z+CRI>Z}du-T+B F螋/+gjѻ`S 5p Д=ڀ( -(B[[`/ia؞B/ፆ=!( &N2qc]s|+*h9ņ({Gvzᅳ\p(T"u5ouyMjLX ;Bǂ`% { h,nٻewû2RGg24XfvW0H!|fk]`XIS;B-Yrw+jcZS"^wD%8ԚK#%jXq7Y;$f${#žUM ).Nyʰ~oE8pD1 j o":h)5ڊteC=)UjYPcHZπ1 `/K À ?=>b艿B7z}3H$|z*tpk$iZn':6:D^x$^lI@]mFPL%jAym?ః_8>82<=ê@ M- {jE˺@:ZoQPs~*׃y\tAr/ qжD۱iȀ"e\"+=; ChIlº,Dձˇ gP=k-=0 hTD~)F* e|T;mbk;?dY7M|pٰ'S7TpZA9Ai6zX|J.tQXnSˑ!1j3b_ R@l6{Cla.&֕4 w0p!(G3;_  ؈?XvjBh;a" qI[Oh), /.2Ս&#ĥ?)΍)5$µBAt+RnU,{iUFzgkF\4-o'F3gD m7.JOXqOn?%c|XZyfgׁtel2ENya wz䩧zƿz^( }Psw7סt_KH%5֣>7q&TqOx)A+}8؞P ]{2 )+=^ naw~9]C,ĥ̗N $ѐݵB67 (F&#Bdž[FRP( 0jn;7/mMmi86B!<9PhLߜȞ>s͏`Xf6]-t 7ZUX [uV> 2Ll$6ݽ񐿽]iz'iw2IIo dZL4!@='zdž=Dy&L~,]F 鴻 {4uXCYkm8-6CzdG|FOܽF (_AV6] zcc~EB<)nEZu o; "EOT{Ew;@%JQ?߀]:+$ hgZ/|MuL>-Co?'Z@pS\ʦ߶](C&(,=pjQm,omGy%q7ՉM¶|) 5& ɼFae/ŀb{qߌo/wiȧGÒ3ks m- A5 ͡F TQp{x 4,%Bޝ|6d^m7HXOL&v",3Aa0tM#Ѥ?-AQlB)R%^5XWS<2X,[:b{vEJ<(6TH_#B̃cpCo95!GcEt$wv.oe%~ѥӝ(cW 4EB'> V3tc7-ʟn@4]ђ+l1B80c4 ȘNeׅ<Ľ-axL)o9љ-"e]YAOJjq>q7ֺ{a>+ow80,<%Qva 9[NZ/Su`xKl[t"01~6Y'8#(s~WD ԛ,4L̅h:vT 9t)y8׃Un,ԁ[( 9lB;10ύ00^\M0c ט(~>,B`4wvOSj%( ;AyiF]X[oxϴ-ak~ 5|>4oo# fwH :uzZ?".hKl~6_Bdhy7ɰ czA 0et}nv-xڱ&pmZ,JG/mqMASe;fζ#} /;Z? A,pCa!,%7~A\:(cF@*e#zo5s`yk1J(IYAHtر xe#q)#)0I`HwzlSʶGB cH2%î1a#l# 8DKPƟl*y~- m@/Aku?@HLJ.6[(Iw `bT;W^Y 'vB},^!m‡ydMȿ3AEa;ӥ,emF 9|c ҧo~c\t%Eђ*%:5!TӓXO_ a> p4T(NmECuk{C6pΉ`8e4dJ)c1؟~ez&P #ehQ&~n 5>Ccb/͕?JBphhFS^ R5ąĸR=Pt &L[ip2- /L3U9|oуo7uV"p$rkYA2B+ Qp'Oq ~??"ꖿB\!~I_nzKO3z!/S;SyP[_׸ }7~__ 7h~7p>qݫ~ggF*;~Y@x ׾~GzՊN3SϳYj>z#z3}7׊^~o喾qENNi{)-`sY~=||r8Ԝ]7|泏ˢ&{G/p(zӰW@.vۅFT~IdzP*99˝֬XCg?VdM5ɷ&7i'oIkRSS&%'犧6-gJNLM[[69Gk) O?99bNz/+޹ i͚l1(b A^-.ِ歷L 45Kw i♫W~VP<}EaV:)pcҚӋ 7&g/,YAӳģi/b+ƈdD$-7#"wś;EsţK)X-/)Fۚ4Yc]bM/8Z Ι-![|/6}$©@C.I$\B4HvWs+Ou.}n&0YEXf%/,~eR"n^s}QϦ1\EEx@S225)G|ի`ؙ/]/94yū :#RW5K\X27cYꂓh#Rn!+L0X ׺(U<ʜ+ٴt!=eΧ] V1҃E8W<Q=s}2`H4:2Ջ o#)'sL~ +.uο(E?/ uE0"]I\R/(OtK@b詯G䞸:s1ƒ(kԉ+f5/''(Y b̋k ^\5o&d>Q4c FYpb—Wj٣FM}=k_<| \of$GdHN~k+5^Y5{ꈤ V#ΞʼK^y~t+y6Tz3}5|Ͷfùvz=b+f o:_ހk..|k@I{E?#%*Exz"tQοǞЙ F3pbp[CnZzf2<)iDĦK%3#ɦM))[@ W$a ~t[伈mNjpˢm۶-ZFĢEyٸ-"9/p":-HM[ߦ-[1lSܳ7?)$m6n+xQm,Jɶ|ɧmtB-mKJ6~_""R hytF:[A>`o!p&/ڴ !a%| n>%xdXm#}~/m++l_7.O   T=&_=)>>scS O@ SORKJO ,/y!p} ?l+ޓ,ٓ$q)CEk39SPxO7o "\͆{ksM[ \O%u[_K6BR\WxE@Y\-˶⼼q⧟|Z`ΔL7lx*'My%7oܸ1?x &t&m(+_d:}w#-|8̃%yjV[aD ,X zKڃWh{=/zwz ߥ E?a߼;|!@1?o@̔jv:3eIENDB`ery.20,Microsoft Clip Gallery0 D VISIO Visio.Drawing.50VISIO 5 Drawing0G VISIO Visio.Drawing.50VISIO 5 Drawing0'H VISIO Visio.Drawing.50VISIO 5 Drawing01IClip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery02KClip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery06L VISIO Visio.Drawing.50VISIO 5 Drawing0:M VISIO Visio.Drawing.50VISIO 5 Drawing0;NClip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery0LO VISIO Visio.Drawing.50VISIO 5 Drawing0QP VISIO Visio.Drawing.50VISIO 5 Drawing0 UQ VISIO Visio.Drawing.50VISIO 5 Drawing00hR VISIO Visio.Drawing.50VISIO 5 Drawing01kS VISIO Visio.Drawing.50VISIO 5 Drawing0TClip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery0 U VISIO Visio.Drawing.50VISIO 5 Drawing0 V VISIO Visio.Drawing.50VISIO 5 Drawing0WWClip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery0ZXClip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery0\YClip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery0[ VISIO Visio.Drawing.50VISIO 5 Drawing0\ VISIO Visio.Drawing.50VISIO 5 Drawing0] VISIO Visio.Drawing.50VISIO 5 Drawing/ 00DTimes New Roman8v 0( 0DSymbolew Roman8v 0( 0 DArialew Roman8v 0( 0"0DCourier Newman8v 0( 01f(.2  @n?" dd@  @@`` XP hY8 6 +                8    9543+420.4,2/* ((HGF ' J&$ $M# 9QR UTSVXW [^ a   d eiA/DENLKYZ_`cj!;<=>?@ f gh-B\]b!(b$=fjh(1.G'b$@c JG'G'2$JmQIR$JLǫx?EYRR$=VYjL#=/}> k2$1@ kprB` sx"$G^Iۜ@Dϳ.2$bWOr`)1u2 0"$Iёh*܆Z3Seb2$̂~)+-^Ǖ2$V/=&D 0<͘"$S''Ƶ;lfy n2$ YŇ`XD1P2$G7 U`R CV2$c^XЎg"$iZh\f֝ "$c#U1B hBk2$({~s_af2$ؘ6QD7Ahcf<R$.CZ%a!%f*CC2$rɐŁ; 2r$%3àRHM;"i;"$z 6A case study  The Copy Routine    First Version Second VersionxWe sometimes want to read from paper tape reader. We could put a parameter in the call, but we have hundreds of users already! No big deal, this is just an exception& we can make it work.Second Version Design ! Third Version $Example of a Good Design %& is it?FILE is an abstraction It represents some kind of byte stream It has many variations It has methods Read, Write, getchar, putchar, etc The methods are *dynamically* boundTP>PPGP>G,q*&Rephrased in OO 3Dependency Management ReviewWhy do programs tend to rot over time? What is dependency management? What are four qualities of good designs? Are OO programs always simpler than non-OO versions? Why would anyone want to use a paradigm that may result in more complex designs? Why are compile and link time important? 4Class Design PrinciplesSRP: The Single Responsibility Principle OCP: The Open/Closed Principle LSP: The Liskov Substitution Principle DIP: The Dependency Inversion Principle ISP: The Interface Segregation PrincipleQiH#The Single Responsibility Principle8A class should have one, and only one, reason to change.I*The Single Responsibility Principle. (SRP) 5 Open/Closed PrincipleA principle which states that we should add new functionality by adding new code, not by editing old code. Defines a lot of the value of OO programming Abstraction is the key7!Abstraction is Key"Client/Server relationships are  open Changes to servers cause changes to clients Abstract servers  close clients to changes in implementation.<"The Shape ExampleAProcedural (not closed) implementation OO (closed) implementation>#Procedural (open) version ?$What is wrong with the code?1DrawAllShapes is not closed. Switch/case tend to recur in diverse places. If we add a shape, we add to the switch/case All switch/case statements must be found and editd. Switch/Case statements are seldom this tidy When we add to the enum, we must rebuild everything The software is both rigid and brittled' S # T'6 @D@%A Closed Implementation A&Strategic ClosureClosure Against What? Closure is strategic. You have to choose which changes you ll isolate yourself against. What if we have to draw all circles first? Now DrawAllShapes must be edited (or we have to hack something) Opened Where? Somewhere, someone has to instantiate the individual shapes. It s best if we can keep the dependencies confinedTqqF(Picking Targets~Technicians and domain users list Ways that the system is expected to change Ways that the system has already changed Isolate these to kinds of changes, not specific changes schema changes sensor hardware changes data store technology Keep this list handy throughout design Don t make the changes, just allow for them.#ZTZ8Z=ZTZ#T=- I'Open/Closed ReviewWhat does the open/closed principle say? What does that mean practically? How can it be achieved? What is strategic closure? How can this be achieved in design? What if you can t close completely?&}H}HG)Liskov Substitution PrinciplezAll derived classes must be substitutable for their base classes This principle guides us in the creation of abstractions.H*Square/Rectangle M+*Substitution& denied!xIt is reasonable for users of a rectangle to expect that height and width may change independently. These expectations are preconditions and postconditions Bertrand Meyer calls it  Design by Contract Post condition contract for rectangle is width = new Width height = old height Square violates Rectangle s contractNV&%V&% E%Liskov Substitution Principle (cont.) >A client of rectangle expects height and width to be changed independently void setAspectRatio( Rectange* r, double ratio ); By deriving Square from Rectangle, we are allowing someone to set the aspect ratio of a Square ! We can still make it work if ( typeid(r) == typeid(Rectangle) ) Violates Open/Closed Principle !TKZ2Z{PGPK2{GPO /F%Liskov Substitution Principle (cont.) Design by Contract Bertrand Meyer Preconditions, postconditions, invariants Rectangle's postconditions for setWidth() width = newWidth length = oldLength Square can require no more of clients, nor promise any less Doesn't maintain invariant of length Violates the contract9P*P$P<P%PF9*$<; b1   xO,'LSP Guides the Creation of AbstractionsAbstractions do not stand alone Abstractions don t always conform to real world expectations Violating LSP is tantamount to violating the OCP$E ?S- LSP ReviewYWhat does the LSP state? What is the risk if LSP is violated? What is Design by Contract?T.Dependency Inversion Principle V/DIP Implications Avoid deriving from concrete classes Avoid associating to concrete classes Avoid aggregating concrete classes Avoid dependencies on concrete componentsGX0Interface Segregation PrincipleSometimes class methods have various groupings. These classes are used for different purposes. Not all users rely upon all methods. This lack of cohesion can cause serious dependency problems These problems can be refactored away.j9FInterface Pollution by  collection  l:A Segregated Example >ATM UI Example ?A Segregated ATM UI Example CLogger Example o; ISP ReviewWhat is the ISP? What does it affect? How do these problems arise? Does it really provide a real solution or just a restructuring of the problem? When is it worth the effort?p<%Four Class Design Principles - ReviewOCP Extend function without editing code LSP Child instances substitute cleanly for base DIP Depend on abstractions instead of details ISP Split interfaces to manage dependencies/x#!)"8'9(=)B*C+D,E-J.K/N0P1Z2m5n6r7s8t9u:z?{@|A}B~CDEFGIOQRSTUVWXY^_`abH 0(    C rAZC:\WINDOWS\DESKTOP\Training\WashedOMLogo.gif0r  S 8Pp    Hl?  ~Copyright 1998-1999 by Object Mentor, Inc All Rights Reserved Portions of this material are Copyright 1998, by Addison Wesley Longman,Inc. and have been reproduced here with permission. V,(2(2  5   6  C zAb\\monet\user_data\rmartin\PPP work\coverIcon.gif H  0޽h ? ̙33rG,  #| Ac(3  6 Clip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery  VISIO Root EntrydO)kɫGPicturesCurrent User!PSummaryInformation(0hUZv      !"#$%&'()*+,-./0123456789:;<=>?@ABCFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~tD      !"#$%&'()*+,-./w123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY[\]^`abcdefghiEuxyz{|}~  "e Titles4les4(_3 Robert C. MartinRobert C. Martinew RomanllX 00DCourier NewmanllX 01F(.2  @n?" dd@  @@`` XP hYi 6 +                8    9543+420.4,2/* nn7GF & I$# mL!l 9PQ TTSUWW Z] `   c dhA/DEMLKXZ^`ci!;<=>?@ e fh-B[]bk(b$=fjh(1.G'b$@c JG'G'2$JmQIR$JLǫx?EYRR$=VYjL#=/}> k2$1@ kprB` sx"$G^Iۜ@Dϳ.2$bWOr`)1u2 0"$Iёh*܆Z3Seb2$̂~)+-^Ǖ2$V/=&D 0<͘"$S''Ƶ;lfy n2$ YŇ`XD1P2$G7 U`R CV2$c^XЎg"$iZh\f֝ "$c#U1B hBk2$({~s_af2$ؘ6QD7Ahcf<R$.CZ%a!%f*CC2$rɐŁ; 2r$%3àRHM;"i;"$z 6A case study  The Copy Routine    First Version Second VersionxWe sometimes want to read from paper tape reader. We could put a parameter in the call, but we have hundreds of users already! No big deal, this is just an exception& we can make it work.Second Version Design ! Third Version $Example of a Good Design %& is it?FILE is an abstraction It represents some kind of byte stream It has many variations It has methods Read, Write, getchar, putchar, etc The methods are *dynamically* boundTP>PPGP>G,q*&Rephrased in OO 3Dependency Management ReviewWhy do programs tend to rot over time? What is dependency management? What are four qualities of good designs? Are OO programs always simpler than non-OO versions? Why would anyone want to use a paradigm that may result in more complex designs? Why are compile and link time important? 4Class Design PrinciplesSRP: The Single Responsibility Principle OCP: The Open/Closed Principle LSP: The Liskov Substitution Principle DIP: The Dependency Inversion Principle ISP: The Interface Segregation PrincipleRiH#The Single Responsibility Principle8A class should have one, and only one, reason to change.I*The Single Responsibility Principle. (SRP) 5 Open/Closed PrincipleA principle which states that we should add new functionality by adding new code, not by editing old code. Defines a lot of the value of OO programming Abstraction is the key7!Abstraction is Key"Client/Server relationships are  open Changes to servers cause changes to clients Abstract servers  close clients to changes in implementation.<"The Shape ExampleAProcedural (not closed) implementation OO (closed) implementation>#Procedural (open) version ?$What is wrong with the code?1DrawAllShapes is not closed. Switch/case tend to recur in diverse places. If we add a shape, we add to the switch/case All switch/case statements must be found and editd. Switch/Case statements are seldom this tidy When we add to the enum, we must rebuild everything The software is both rigid and brittled' S # T'6 AD@%A Closed Implementation A&Strategic ClosureClosure Against What? Closure is strategic. You have to choose which changes you ll isolate yourself against. What if we have to draw all circles first? Now DrawAllShapes must be edited (or we have to hack something) Opened Where? Somewhere, someone has to instantiate the individual shapes. It s best if we can keep the dependencies confinedTqq F(Picking Targets~Technicians and domain users list Ways that the system is expected to change Ways that the system has already changed Isolate these to kinds of changes, not specific changes schema changes sensor hardware changes data store technology Keep this list handy throughout design Don t make the changes, just allow for them.#ZTZ8Z=ZTZ#T=- I'Open/Closed ReviewWhat does the open/closed principle say? What does that mean practically? How can it be achieved? What is strategic closure? How can this be achieved in design? What if you can t close completely?&}H}HG)Liskov Substitution PrinciplezAll derived classes must be substitutable for their base classes This principle guides us in the creation of abstractions.H*Square/Rectangle M+*Substitution& denied!xIt is reasonable for users of a rectangle to expect that height and width may change independently. These expectations are preconditions and postconditions Bertrand Meyer calls it  Design by Contract Post condition contract for rectangle is width = new Width height = old height Square violates Rectangle s contractNV&%V&% E%Liskov Substitution Principle (cont.) >A client of rectangle expects height and width to be changed independently void setAspectRatio( Rectange* r, double ratio ); By deriving Square from Rectangle, we are allowing someone to set the aspect ratio of a Square ! We can still make it work if ( typeid(r) == typeid(Rectangle) ) Violates Open/Closed Principle !TKZ2Z{PGPK2{GPP%F%Liskov Substitution Principle (cont.) Design by Contract Bertrand Meyer Preconditions, postconditions, invariants Rectangle's postconditions for setWidth() width = newWidth length = oldLength Square can require no more of clients, nor promise any less Doesn't maintain invariant of length Violates the contract9P*P$P<P%PF9*$<; b1  xO,'LSP Guides the Creation of AbstractionsAbstractions do not stand alone Abstractions don t always conform to real world expectations Violating LSP is tantamount to violating the OCP$E ?S- LSP ReviewYWhat does the LSP state? What is the risk if LSP is violated? What is Design by Contract?T.Dependency Inversion Principle V/DIP Implications Avoid deriving from concrete classes Avoid associating to concrete classes Avoid aggregating concrete classes Avoid dependencies on concrete componentsGX0Interface Segregation PrincipleSometimes class methods have various groupings. These classes are used for different purposes. Not all users rely upon all methods. This lack of cohesion can cause serious dependency problems These problems can be refactored away.j9FInterface Pollution by  collection  l:A Segregated Example >ATM UI Example ?A Segregated ATM UI Example CLogger Example o; ISP ReviewWhat is the ISP? What does it affect? How do these problems arise? Does it really provide a real solution or just a restructuring of the problem? When is it worth the effort?p<%Four Class Design Principles - ReviewOCP Extend function without editing code LSP Child instances substitute cleanly for base DIP Depend on abstractions instead of details ISP Split interfaces to manage dependencies/x#!)"8'9(=)B*C+D,E-J.K/N0P1Z2m5n6r7s8t9u:z?{@|A}B~CDEFGIOQRSTUVWXY^_`ab  , 0    v ( z+ l  C t      ZP A ?m 9 Nenum ShapeType {circle, square}; struct Shape {enum ShapeType itsType;};(ONl    H! ?   Yqstruct Circle { enum ShapeType itsType; double itsRadius; Point itsCenter; }; void DrawCircle(struct Circle*)(rq~        H1 ?p m T Xpstruct Square { enum ShapeType itsType; double itsSide; Point itsTopLeft; }; void DrawSquare(struct Square*)(qp~      )  HC ?> \/ a#include #include #include typedef struct Shape* ShapePtr; void DrawAllShapes(ShapePtr list[], int n) { int i; for( i=0; i< n, i++ ) { ShapePtr s = list[i]; switch ( s->itsType ) { case square: DrawSquare((struct Square*)s); break; case circle: DrawCircle((struct Circle*)s); break; } } } dZ PZPZ<ZbD   )"   H ?D QShape.h.(2   H> ?< RCircle.h. (2   H ? |  BSquare.h (2    H ?p  sDrawAllShapes.c.(2H  0޽h ? ̙33y___PPT10Y+D=' = @B +r >v # wc(3  6 Clip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery  VISIO Visio.Drawing.50VISIO 5 Drawing VISIO Visio.Drawing.50VISIO 5 Drawing' VISIO Visio.Drawing.50VISIO 5 Drawing1Clip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery2Clip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery6 VISIO Visio.Drawing.50VISIO 5 Drawing: VISIO Visio.Drawing.50VISIO 5 Drawing;Clip (MS_ClipArt_Gallery.20,Microsoft Clip GalleryL VISIO Visio.Drawing.50VISIO 5 DrawingQ VISIO Visio.Drawing.50VISIO 5 Drawing U VISIO Visio.Drawing.50VISIO 5 Drawing0h VISIO Visio.Drawing.50VISIO 5 Drawing1k VISIO Visio.Drawing.50VISIO 5 DrawingClip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery  VISIO Visio.Drawing.50VISIO 5 Drawing  VISIO Visio.Drawing.50VISIO 5 DrawingWClip (MS_ClipArt_Gallery.20,Microsoft Clip GalleryZClip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery\Clip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery VISIO Visio.Drawing.50VISIO 5 Drawing VISIO Visio.Drawing.50VISIO 5 Drawing VISIO Visio.Drawing.50VISIO 5 Drawing/ 00DTimes New RomanllX 0$DSymbolew RomanllX 0 DArialew RomanllX 00DCourier NewmanllX 01F(.2  @n?" dd@  @@`` XP hYi 6 +        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxz{|}~              8    9543+420.4,2/* nn7GF & I$# mL!l 9PQ TTSUWW Z] `   c dhA/DEMLKXZ^`ci!;<=>?@ e fh-B[]bk(b$=fjh(1.G'b$@c JG'G'2$JmQIR$JLǫx?EYRR$=VYjL#=/}> k2$1@ kprB` sx"$G^Iۜ@Dϳ.2$bWOr`)1u2 0"$Iёh*܆Z3Seb2$̂~)+-^Ǖ2$V/=&D 0<͘"$S''Ƶ;lfy n2$ YŇ`XD1P2$G7 U`R CV2$c^XЎg"$iZh\f֝ "$c#U1B hBk2$({~s_af2$ؘ6QD7Ahcf<R$.CZ%a!%f*CC2$rɐŁ; 2r$%3àRHM;"i;"$z 6A case study  The Copy Routine    First Version Second VersionxWe sometimes want to read from paper tape reader. We could put a parameter in the call, but we have hundreds of users already! No big deal, this is just an exception& we can make it work.Second Version Design ! Third Version $Example of a Good Design %& is it?FILE is an abstraction It represents some kind of byte stream It has many variations It has methods Read, Write, getchar, putchar, etc The methods are *dynamically* boundTP>PPGP>G,q*&Rephrased in OO 3Dependency Management ReviewWhy do programs tend to rot over time? What is dependency management? What are four qualities of good designs? Are OO programs always simpler than non-OO versions? Why would anyone want to use a paradigm that may result in more complex designs? Why are compile and link time important? 4Class Design PrinciplesSRP: The Single Responsibility Principle OCP: The Open/Closed Principle LSP: The Liskov Substitution Principle DIP: The Dependency Inversion Principle ISP: The Interface Segregation PrincipleRiH#The Single Responsibility Principle8A class should have one, and only one, reason to change.I*The Single Responsibility Principle. (SRP) 5 Open/Closed PrincipleA principle which states that we should add new functionality by adding new code, not by editing old code. Defines a lot of the value of OO programming Abstraction is the key7!Abstraction is Key"Client/Server relationships are  open Changes to servers cause changes to clients Abstract servers  close clients to changes in implementation.<"The Shape ExampleAProcedural (not closed) implementation OO (closed) implementation>#Procedural (open) version ?$What is wrong with the code?1DrawAllShapes is not closed. Switch/case tend to recur in diverse places. If we add a shape, we add to the switch/case All switch/case statements must be found and editd. Switch/Case statements are seldom this tidy When we add to the enum, we must rebuild everything The software is both rigid and brittled' S # T'6 AD@%A Closed Implementation A&Strategic ClosureClosure Against What? Closure is strategic. You have to choose which changes you ll isolate yourself against. What if we have to draw all circles first? Now DrawAllShapes must be edited (or we have to hack something) Opened Where? Somewhere, someone has to instantiate the individual shapes. It s best if we can keep the dependencies confinedTqq F(Picking Targets~Technicians and domain users list Ways that the system is expected to change Ways that the system has already changed Isolate these to kinds of changes, not specific changes schema changes sensor hardware changes data store technology Keep this list handy throughout design Don t make the changes, just allow for them.#ZTZ8Z=ZTZ#T=- I'Open/Closed ReviewWhat does the open/closed principle say? What does that mean practically? How can it be achieved? What is strategic closure? How can this be achieved in design? What if you can t close completely?&}H}HG)Liskov Substitution PrinciplezAll derived classes must be substitutable for their base classes This principle guides us in the creation of abstractions.H*Square/Rectangle M+*Substitution& denied!xIt is reasonable for users of a rectangle to expect that height and width may change independently. These expectations are preconditions and postconditions Bertrand Meyer calls it  Design by Contract Post condition contract for rectangle is width = new Width height = old height Square violates Rectangle s contractNV&%V&% E%Liskov Substitution Principle (cont.) >A client of rectangle expects height and width to be changed independently void setAspectRatio( Rectange* r, double ratio ); By deriving Square from Rectangle, we are allowing someone to set the aspect ratio of a Square ! We can still make it work if ( typeid(r) == typeid(Rectangle) ) Violates Open/Closed Principle !TKZ2Z{PGPK2{GPP%F%Liskov Substitution Principle (cont.) Design by Contract Bertrand Meyer Preconditions, postconditions, invariants Rectangle's postconditions for setWidth() width = newWidth length = oldLength Square can require no more of clients, nor promise any less Doesn't maintain invariant of length Violates the contract9P*P$P<P%PF9*$<; b1  xO,'LSP Guides the Creation of AbstractionsAbstractions do not stand alone Abstractions don t always conform to real world expectations Violating LSP is tantamount to violating the OCP$E ?S- LSP ReviewYWhat does the LSP state? What is the risk if LSP is violated? What is Design by Contract?T.Dependency Inversion Principle V/DIP Implications Avoid deriving from concrete classes Avoid associating to concrete classes Avoid aggregating concrete classes Avoid dependencies on concrete componentsGX0Interface Segregation PrincipleSometimes class methods have various groupings. These classes are used for different purposes. Not all users rely upon all methods. This lack of cohesion can cause serious dependency problems These problems can be refactored away.j9FInterface Pollution by  collection  l:A Segregated Example >ATM UI Example ?A Segregated ATM UI Example CLogger Example o; ISP ReviewWhat is the ISP? What does it affect? How do these problems arise? Does it really provide a real solution or just a restructuring of the problem? When is it worth the effort?p<%Four Class Design Principles - ReviewOCP Extend function without editing code LSP Child instances substitute cleanly for base DIP Depend on abstractions instead of details ISP Split interfaces to manage dependencies/x#!)"8'9(=)B*C+D,E-J.K/N0P1Z2m5n6r7s8t9u:z?{@|A}B~CDEFGIOQRSTUVWXY^_`ab D 0 pB( Z l  C ؿ0    l  C p  "  B ?, vDerived classes must be usable through the base class interface, without the need for the user to know the difference.w(2wH  0޽h ? ̙33y___PPT10Y+D=' = @B +r G ) P wd(3  6 Clip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery  VISIO Visio.Drawing.50VISIO 5 Drawing VISIO Visio.Drawing.50VISIO 5 Drawing' VISIO Visio.Drawing.50VISIO 5 Drawing1Clip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery2Clip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery6 VISIO Visio.Drawing.50VISIO 5 Drawing: VISIO Visio.Drawing.50VISIO 5 Drawing;Clip (MS_ClipArt_Gallery.20,Microsoft Clip GalleryL VISIO Visio.Drawing.50VISIO 5 DrawingQ VISIO Visio.Drawing.50VISIO 5 Drawing U VISIO Visio.Drawing.50VISIO 5 Drawing0h VISIO Visio.Drawing.50VISIO 5 Drawing1k VISIO Visio.Drawing.50VISIO 5 DrawingClip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery  VISIO Visio.Drawing.50VISIO 5 Drawing  VISIO Visio.Drawing.50VISIO 5 DrawingWClip (MS_ClipArt_Gallery.20,Microsoft Clip GalleryZClip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery\Clip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery VISIO Visio.Drawing.50VISIO 5 Drawing VISIO Visio.Drawing.50VISIO 5 Drawing VISIO Visio.Drawing.50VISIO 5 Drawing/ 00DTimes New Romanll1 0$DSymbolew Romanll1 0 DArialew Romanll1 00DCourier Newmanll1 01F(.2  @n?" dd@  @@`` XP hYi 6 +                8    9543+420.4,2/* (q7GF & I$p pL! 9PQ TTSUWW Z] `   c dhA/DEMLKXZ^`ci!;<=>?@ e fh-B[]bk(b$=fjh(1.G'b$@c JG'G'2$JmQIR$JLǫx?EYRR$=VYjL#=/}> k2$1@ kprB` sx"$G^Iۜ@Dϳ.2$bWOr`)1u2 0"$Iёh*܆Z3Seb2$̂~)+-^Ǖ2$V/=&D 0<͘"$S''Ƶ;lfy n2$ YŇ`XD1P2$G7 U`R CV2$c^XЎg"$iZh\f֝ "$c#U1B hBk2$({~s_af2$ؘ6QD7Ahcf<R$.CZ%a!%f*CC2$rɐŁ; 2r$%3àRHM;"i;"$z 6A case study  The Copy Routine    First Version Second VersionxWe sometimes want to read from paper tape reader. We could put a parameter in the call, but we have hundreds of users already! No big deal, this is just an exception& we can make it work.Second Version Design ! Third Version $Example of a Good Design %& is it?FILE is an abstraction It represents some kind of byte stream It has many variations It has methods Read, Write, getchar, putchar, etc The methods are *dynamically* boundTP>PPGP>G,q*&Rephrased in OO 3Dependency Management ReviewWhy do programs tend to rot over time? What is dependency management? What are four qualities of good designs? Are OO programs always simpler than non-OO versions? Why would anyone want to use a paradigm that may result in more complex designs? Why are compile and link time important? 4Class Design PrinciplesSRP: The Single Responsibility Principle OCP: The Open/Closed Principle LSP: The Liskov Substitution Principle ISP: The Interface Segregation Principle DIP: The Dependency Inversion Principle>R )H#The Single Responsibility Principle8A class should have one, and only one, reason to change.I*The Single Responsibility Principle. (SRP) 5 Open/Closed PrincipleA principle which states that we should add new functionality by adding new code, not by editing old code. Defines a lot of the value of OO programming Abstraction is the key7!Abstraction is Key"Client/Server relationships are  open Changes to servers cause changes to clients Abstract servers  close clients to changes in implementation.<"The Shape ExampleAProcedural (not closed) implementation OO (closed) implementation>#Procedural (open) version ?$What is wrong with the code?1DrawAllShapes is not closed. Switch/case tend to recur in diverse places. If we add a shape, we add to the switch/case All switch/case statements must be found and editd. Switch/Case statements are seldom this tidy When we add to the enum, we must rebuild everything The software is both rigid and brittled' S # T'6 AD@%A Closed Implementation A&Strategic ClosureClosure Against What? Closure is strategic. You have to choose which changes you ll isolate yourself against. What if we have to draw all circles first? Now DrawAllShapes must be edited (or we have to hack something) Opened Where? Somewhere, someone has to instantiate the individual shapes. It s best if we can keep the dependencies confinedTqq F(Picking Targets~Technicians and domain users list Ways that the system is expected to change Ways that the system has already changed Isolate these to kinds of changes, not specific changes schema changes sensor hardware changes data store technology Keep this list handy throughout design Don t make the changes, just allow for them.#ZTZ8Z=ZTZ#T=- I'Open/Closed ReviewWhat does the open/closed principle say? What does that mean practically? How can it be achieved? What is strategic closure? How can this be achieved in design? What if you can t close completely?&}H}HG)Liskov Substitution PrinciplezAll derived classes must be substitutable for their base classes This principle guides us in the creation of abstractions.H*Square/Rectangle M+*Substitution& denied!xIt is reasonable for users of a rectangle to expect that height and width may change independently. These expectations are preconditions and postconditions Bertrand Meyer calls it  Design by Contract Post condition contract for rectangle is width = new Width height = old height Square violates Rectangle s contractNV&%V&% E%Liskov Substitution Principle (cont.) >A client of rectangle expects height and width to be changed independently void setAspectRatio( Rectange* r, double ratio ); By deriving Square from Rectangle, we are allowing someone to set the aspect ratio of a Square ! We can still make it work if ( typeid(r) == typeid(Rectangle) ) Violates Open/Closed Principle !TKZ2Z{PGPK2{GPP%F%Liskov Substitution Principle (cont.) Design by Contract Bertrand Meyer Preconditions, postconditions, invariants Rectangle's postconditions for setWidth() width = newWidth length = oldLength Square can require no more of clients, nor promise any less Doesn't maintain invariant of length Violates the contract9P*P$P<P%PF9*$<; b1  xO,'LSP Guides the Creation of AbstractionsAbstractions do not stand alone Abstractions don t always conform to real world expectations Violating LSP is tantamount to violating the OCP$E ?S- LSP ReviewYWhat does the LSP state? What is the risk if LSP is violated? What is Design by Contract?T.Dependency Inversion Principle V/DIP Implications Avoid deriving from concrete classes Avoid associating to concrete classes Avoid aggregating concrete classes Avoid dependencies on concrete componentsGX0Interface Segregation PrincipleSometimes class methods have various groupings. These classes are used for different purposes. Not all users rely upon all methods. This lack of cohesion can cause serious dependency problems These problems can be refactored away.j9FInterface Pollution by  collection  l:A Segregated Example >ATM UI Example ?A Segregated ATM UI Example CLogger Example o; ISP ReviewWhat is the ISP? What does it affect? How do these problems arise? Does it really provide a real solution or just a restructuring of the problem? When is it worth the effort?p<%Four Class Design Principles - ReviewOCP Extend function without editing code LSP Child instances substitute cleanly for base DIP Depend on abstractions instead of details ISP Split interfaces to manage dependencies/x#!)"8'9(=)B*C+D,E-J.K/N0P1Z2m5n6r7s8t9u:z?{@|A}B~CDEFGIOQRSTUVWXY^_`ab A 0 <(  l  C $ 0    ~  C  p@0     \`  c $A ??  `  c $A ?? p" :  H@  ?*T nFrom: Agile Software Development: Principles, Patterns, and Practices. Robert C. Martin, Prentice Hall, 2002.8o 2C'H  0޽h ? ̙33y___PPT10Y+D='  = @B +r 4P h >U wc(3  6 Clip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery  VISIO Visio.Drawing.50VISIO 5 Drawing VISIO Visio.Drawing.50VISIO 5 Drawing' VISIO Visio.Drawing.50VISIO 5 Drawing1Clip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery2Clip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery6 VISIO Visio.Drawing.50VISIO 5 Drawing: VISIO Visio.Drawing.50VISIO 5 Drawing;Clip (MS_ClipArt_Gallery.20,Microsoft Clip GalleryL VISIO Visio.Drawing.50VISIO 5 DrawingQ VISIO Visio.Drawing.50VISIO 5 Drawing U VISIO Visio.Drawing.50VISIO 5 Drawing0h VISIO Visio.Drawing.50VISIO 5 Drawing1k VISIO Visio.Drawing.50VISIO 5 DrawingClip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery  VISIO Visio.Drawing.50VISIO 5 Drawing  VISIO Visio.Drawing.50VISIO 5 DrawingWClip (MS_ClipArt_Gallery.20,Microsoft Clip GalleryZClip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery\Clip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery VISIO Visio.Drawing.50VISIO 5 Drawing VISIO Visio.Drawing.50VISIO 5 Drawing VISIO Visio.Drawing.50VISIO 5 Drawing/ 00DTimes New Romanll1 0DSymbolew Romanll1 0 DArialew Romanll1 0"0DCourier Newmanll1 01F(.2  @n?" dd@  @@`` XP hYi 6 +                8    9543+420.4,2/* tt7GF & I$# sL!r 9PQ TTSUWW Z] `   c dhA/DEMLKXZ^`ci!;<=>?@ e fh-B[]bk(b$=fjh(1.G'b$@c JG'G'2$JmQIR$JLǫx?EYRR$=VYjL#=/}> k2$1@ kprB` sx"$G^Iۜ@Dϳ.2$bWOr`)1u2 0"$Iёh*܆Z3Seb2$̂~)+-^Ǖ2$V/=&D 0<͘"$S''Ƶ;lfy n2$ YŇ`XD1P2$G7 U`R CV2$c^XЎg"$iZh\f֝ "$c#U1B hBk2$({~s_af2$ؘ6QD7Ahcf<R$.CZ%a!%f*CC2$rɐŁ; 2r$%3àRHM;"i;"$z 6A case study  The Copy Routine    First Version Second VersionxWe sometimes want to read from paper tape reader. We could put a parameter in the call, but we have hundreds of users already! No big deal, this is just an exception& we can make it work.Second Version Design ! Third Version $Example of a Good Design %& is it?FILE is an abstraction It represents some kind of byte stream It has many variations It has methods Read, Write, getchar, putchar, etc The methods are *dynamically* boundTP>PPGP>G,q*&Rephrased in OO 3Dependency Management ReviewWhy do programs tend to rot over time? What is dependency management? What are four qualities of good designs? Are OO programs always simpler than non-OO versions? Why would anyone want to use a paradigm that may result in more complex designs? Why are compile and link time important? 4Class Design PrinciplesSRP: The Single Responsibility Principle OCP: The Open/Closed Principle LSP: The Liskov Substitution Principle ISP: The Interface Segregation Principle DIP: The Dependency Inversion PrincipleRiH#The Single Responsibility Principle8A class should have one, and only one, reason to change.I*The Single Responsibility Principle. (SRP) 5 Open/Closed PrincipleA principle which states that we should add new functionality by adding new code, not by editing old code. Defines a lot of the value of OO programming Abstraction is the key7!Abstraction is Key"Client/Server relationships are  open Changes to servers cause changes to clients Abstract servers  close clients to changes in implementation.<"The Shape ExampleAProcedural (not closed) implementation OO (closed) implementation>#Procedural (open) version ?$What is wrong with the code?1DrawAllShapes is not closed. Switch/case tend to recur in diverse places. If we add a shape, we add to the switch/case All switch/case statements must be found and editd. Switch/Case statements are seldom this tidy When we add to the enum, we must rebuild everything The software is both rigid and brittled' S # T'6 AD@%A Closed Implementation A&Strategic ClosureClosure Against What? Closure is strategic. You have to choose which changes you ll isolate yourself against. What if we have to draw all circles first? Now DrawAllShapes must be edited (or we have to hack something) Opened Where? Somewhere, someone has to instantiate the individual shapes. It s best if we can keep the dependencies confinedTqq F(Picking Targets~Technicians and domain users list Ways that the system is expected to change Ways that the system has already changed Isolate these to kinds of changes, not specific changes schema changes sensor hardware changes data store technology Keep this list handy throughout design Don t make the changes, just allow for them.#ZTZ8Z=ZTZ#T=- I'Open/Closed ReviewWhat does the open/closed principle say? What does that mean practically? How can it be achieved? What is strategic closure? How can this be achieved in design? What if you can t close completely?&}H}HG)Liskov Substitution PrinciplezAll derived classes must be substitutable for their base classes This principle guides us in the creation of abstractions.H*Square/Rectangle M+*Substitution& denied!xIt is reasonable for users of a rectangle to expect that height and width may change independently. These expectations are preconditions and postconditions Bertrand Meyer calls it  Design by Contract Post condition contract for rectangle is width = new Width height = old height Square violates Rectangle s contractNV&%V&% E%Liskov Substitution Principle (cont.) >A client of rectangle expects height and width to be changed independently void setAspectRatio( Rectange* r, double ratio ); By deriving Square from Rectangle, we are allowing someone to set the aspect ratio of a Square ! We can still make it work if ( typeid(r) == typeid(Rectangle) ) Violates Open/Closed Principle !TKZ2Z{PGPK2{GPP%F%Liskov Substitution Principle (cont.) Design by Contract Bertrand Meyer Preconditions, postconditions, invariants Rectangle's postconditions for setWidth() width = newWidth length = oldLength Square can require no more of clients, nor promise any less Doesn't maintain invariant of length Violates the contract9P*P$P<P%PF9*$<; b1  xO,'LSP Guides the Creation of AbstractionsAbstractions do not stand alone Abstractions don t always conform to real world expectations Violating LSP is tantamount to violating the OCP$E ?S- LSP ReviewYWhat does the LSP state? What is the risk if LSP is violated? What is Design by Contract?T.Dependency Inversion Principle V/DIP Implications Avoid deriving from concrete classes Avoid associating to concrete classes Avoid aggregating concrete classes Avoid dependencies on concrete componentsGX0Interface Segregation PrincipleSometimes class methods have various groupings. These classes are used for different purposes. Not all users rely upon all methods. This lack of cohesion can cause serious dependency problems These problems can be refactored away.j9FInterface Pollution by  collection  l:A Segregated Example >ATM UI Example ?A Segregated ATM UI Example CLogger Example o; ISP ReviewWhat is the ISP? What does it affect? How do these problems arise? Does it really provide a real solution or just a restructuring of the problem? When is it worth the effort?p<%Four Class Design Principles - ReviewOCP Extend function without editing code LSP Child instances substitute cleanly for base DIP Depend on abstractions instead of details ISP Split interfaces to manage dependencies/x#!)"8'9(=)B*C+D,E-J.K/N0P1Z2m5n6r7s8t9u:z?{@|A}B~CDEFGIOQRSTUVWXY^_`ab V 0 <l( h <l < C  |0    l < C |    < H`f?V* l2Software changes seem to exhibit non-local effects3(23` < c $A ??  H < 0޽h ? ̙33y___PPT10Y+D=' '= @B + 8 0 *3@(  @l @ C @H0    l @ C I 0   8  P  '@ `x @ H?x @ H?Px @ H3?  x  @ H33? ` 0 P x  @ H33? ` P x  @ H33?` @P x  @ H33?0` P x  @ H?pP` x @ H3?@ x @ H?p~B @B ND?~B @ ND?@~B @B ND?@~B @ ND?~B @ ND?0p~B @B ND?` ` ~B @ ND?`  ~B @ ND? p ~B @B ND? ~B @ ND?@  x @ H33? P p x @ H? p x @ H33? `p x @ H?P p ~B !@B ND? p ` ` ~B "@ ND? p ` ~B #@ ND?p P` ~B $@ ND?p ` vB (@ ND?p@ vB )@ ND?  vB *@ ND?P  vB +@@ ND?pP@ vB ,@@ ND?p` vB -@@ ND?P @ vB .@ ND?P @p vB /@@ ND?0 p vB 0@@ ND?p`@ vB 1@@ ND?p`` H @ 0޽h ? ̙33y___PPT10Y+D=' '= @B +C 9 0 jbD( $ Dl D C $0    l D C $    D H@&? b(Viscosity is resistance to fluid motion.)(2)H D 0޽h ? ̙33y___PPT10Y+D=' '= @B + ? 0 dt(    dl d C @    l d C `    T d H?,1Q It s been blamed on stupidity, lack of discipline, and phases of the moon, but...R(2RH d 0޽h ? ̙33y___PPT10Y+D=' '= @B +  0  h(   hl h C 0     h H0?= $ PAll designs start well(2 h H?  \The program is an overnight success! How could it be more simple, elegant, and maintainable?](2] h TA  ?? h   }  h B?   Uvoid copy(void) { int ch; while( (ch=ReadKeyboard()) != EOF) WritePrinter(ch); }VVb   H h 0޽h ? ̙33y___PPT10Y+D=' '= @B + " 0 VN0(  l  C (0      TA ??8P    B*?P0 `i 0>interface Reader { char read(); } interface Writer { void write(char c); } public class Copy { Copy(Reader r, Writer w) { itsReader = r; itsWriter = w; } public void copy() { int c; while( (c==itsReader.read()) != EOF ) itsWriter.write(c); } private Reader itsReader; private Writer itsWriter; } *?Z>  "  8H  0޽h ? ̙33 @ 0 (  l  C 0    l  C L@  H  0޽h ? ̙33r4zU 0{ 8 )  t 9 &1 3 <VU wod(3  6 Clip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery  VISIO Visio.Drawing.50VISIO 5 Drawing VISIO Visio.Drawing.50VISIO 5 Drawing' VISIO Visio.Drawing.50VISIO 5 Drawing1Clip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery2Clip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery6 VISIO Visio.Drawing.50VISIO 5 Drawing: VISIO Visio.Drawing.50VISIO 5 Drawing;Clip (MS_ClipArt_Gallery.20,Microsoft Clip GalleryL VISIO Visio.Drawing.50VISIO 5 DrawingQ VISIO Visio.Drawing.50VISIO 5 Drawing U VISIO Visio.Drawing.50VISIO 5 Drawing0h VISIO Visio.Drawing.50VISIO 5 Drawing1k VISIO Visio.Drawing.50VISIO 5 DrawingClip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery  VISIO Visio.Drawing.50VISIO 5 Drawing  VISIO Visio.Drawing.50VISIO 5 DrawingWClip (MS_ClipArt_Gallery.20,Microsoft Clip GalleryZClip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery\Clip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery VISIO Visio.Drawing.50VISIO 5 Drawing VISIO Visio.Drawing.50VISIO 5 Drawing VISIO Visio.Drawing.50VISIO 5 Drawing/ 00DTimes New Romanll1 0DSymbolew Romanll1 0 DArialew Romanll1 0"0DCourier Newmanll1 01F(.2  @n?" dd@  @@`` XP hYi 6 +                8    9543+420.4,2/* tt7GF & I$# sL!r 9PQ TTSUWW Z] `   c dhA/DEMLKXZ^`ci!;<=>?@ e fh-B[]bk(b$=fjh(1.G'b$@c JG'G'2$JmQIR$JLǫx?EYRR$=VYjL#=/}> k2$1@ kprB` sx"$G^Iۜ@Dϳ.2$bWOr`)1u2 0"$Iёh*܆Z3Seb2$̂~)+-^Ǖ2$V/=&D 0<͘"$S''Ƶ;lfy n2$ YŇ`XD1P2$G7 U`R CV2$c^XЎg"$iZh\f֝ "$c#U1B hBk2$({~s_af2$ؘ6QD7Ahcf<R$.CZ%a!%f*CC2$rɐŁ; 2r$%3àRHM;"i;"$z 6A case study  The Copy Routine    First Version Second VersionxWe sometimes want to read from paper tape reader. We could put a parameter in the call, but we have hundreds of users already! No big deal, this is just an exception& we can make it work.Second Version Design ! Third Version $Example of a Good Design %& is it?FILE is an abstraction It represents some kind of byte stream It has many variations It has methods Read, Write, getchar, putchar, etc The methods are *dynamically* boundTP>PPGP>G,q*&Rephrased in OO 3Dependency Management ReviewWhy do programs tend to rot over time? What is dependency management? What are four qualities of good designs? Are OO programs always simpler than non-OO versions? Why would anyone want to use a paradigm that may result in more complex designs? Why are compile and link time important? 4Class Design PrinciplesSRP: The Single Responsibility Principle OCP: The Open/Closed Principle LSP: The Liskov Substitution Principle ISP: The Interface Segregation Principle DIP: The Dependency Inversion Principlen3)33&3(3'RiH#The Single Responsibility Principle8A class should have one, and only one, reason to change.I*The Single Responsibility Principle. (SRP) 5 Open/Closed PrincipleA principle which states that we should add new functionality by adding new code, not by editing old code. Defines a lot of the value of OO programming Abstraction is the key7!Abstraction is Key"Client/Server relationships are  open Changes to servers cause changes to clients Abstract servers  close clients to changes in implementation.<"The Shape ExampleAProcedural (not closed) implementation OO (closed) implementation>#Procedural (open) version ?$What is wrong with the code?1DrawAllShapes is not closed. Switch/case tend to recur in diverse places. If we add a shape, we add to the switch/case All switch/case statements must be found and editd. Switch/Case statements are seldom this tidy When we add to the enum, we must rebuild everything The software is both rigid and brittled' S # T'6 AD@%A Closed Implementation A&Strategic ClosureClosure Against What? Closure is strategic. You have to choose which changes you ll isolate yourself against. What if we have to draw all circles first? Now DrawAllShapes must be edited (or we have to hack something) Opened Where? Somewhere, someone has to instantiate the individual shapes. It s best if we can keep the dependencies confinedTqq F(Picking Targets~Technicians and domain users list Ways that the system is expected to change Ways that the system has already changed Isolate these to kinds of changes, not specific changes schema changes sensor hardware changes data store technology Keep this list handy throughout design Don t make the changes, just allow for them.#ZTZ8Z=ZTZ#T=- I'Open/Closed ReviewWhat does the open/closed principle say? What does that mean practically? How can it be achieved? What is strategic closure? How can this be achieved in design? What if you can t close completely?&}H}HG)Liskov Substitution PrinciplezAll derived classes must be substitutable for their base classes This principle guides us in the creation of abstractions.H*Square/Rectangle M+*Substitution& denied!xIt is reasonable for users of a rectangle to expect that height and width may change independently. These expectations are preconditions and postconditions Bertrand Meyer calls it  Design by Contract Post condition contract for rectangle is width = new Width height = old height Square violates Rectangle s contractNV&%V&% E%Liskov Substitution Principle (cont.) >A client of rectangle expects height and width to be changed independently void setAspectRatio( Rectange* r, double ratio ); By deriving Square from Rectangle, we are allowing someone to set the aspect ratio of a Square ! We can still make it work if ( typeid(r) == typeid(Rectangle) ) Violates Open/Closed Principle !TKZ2Z{PGPK2{GPP%F%Liskov Substitution Principle (cont.) Design by Contract Bertrand Meyer Preconditions, postconditions, invariants Rectangle's postconditions for setWidth() width = newWidth length = oldLength Square can require no more of clients, nor promise any less Doesn't maintain invariant of length Violates the contract9P*P$P<P%PF9*$<; b1  xO,'LSP Guides the Creation of AbstractionsAbstractions do not stand alone Abstractions don t always conform to real world expectations Violating LSP is tantamount to violating the OCP$E ?S- LSP ReviewYWhat does the LSP state? What is the risk if LSP is violated? What is Design by Contract?T.Dependency Inversion Principle V/DIP Implications Avoid deriving from concrete classes Avoid associating to concrete classes Avoid aggregating concrete classes Avoid dependencies on concrete componentsGX0Interface Segregation PrincipleSometimes class methods have various groupings. These classes are used for different purposes. Not all users rely upon all methods. This lack of cohesion can cause serious dependency problems These problems can be refactored away.j9FInterface Pollution by  collection  l:A Segregated Example >ATM UI Example ?A Segregated ATM UI Example CLogger Example o; ISP ReviewWhat is the ISP? What does it affect? How do these problems arise? Does it really provide a real solution or just a restructuring of the problem? When is it worth the effort?p<%Four Class Design Principles - ReviewOCP Extend function without editing code LSP Child instances substitute cleanly for base DIP Depend on abstractions instead of details ISP Split interfaces to manage dependencies/x#!)"8'9(=)B*C+D,E-J.K/N0P1Z2m5n6r7s8t9u:z?{@|A}B~CDEFGIOQRSTUVWXY^_`ab A 0  <(  l  C "-0   - ~  C (-p@0  -  \`  c $A ??  `  c $A ?? p" :  H+- ?*T nFrom: Agile Software Development: Principles, Patterns, and Practices. Robert C. Martin, Prentice Hall, 2002.8o 2C'H  0޽h ? ̙33y___PPT10Y+D=' '= @B +r 4K  #P wd(3  6 Clip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery  VISIO Visio.Drawing.50VISIO 5 Drawing VISIO Visio.Drawing.50VISIO 5 Drawing' VISIO Visio.Drawing.50VISIO 5 Drawing1Clip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery2Clip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery6 VISIO Visio.Drawing.50VISIO 5 Drawing: VISIO Visio.Drawing.50VISIO 5 Drawing;Clip (MS_ClipArt_Gallery.20,Microsoft Clip GalleryL VISIO Visio.Drawing.50VISIO 5 DrawingQ VISIO Visio.Drawing.50VISIO 5 Drawing U VISIO Visio.Drawing.50VISIO 5 Drawing0h VISIO Visio.Drawing.50VISIO 5 Drawing1k VISIO Visio.Drawing.50VISIO 5 DrawingClip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery  VISIO Visio.Drawing.50VISIO 5 Drawing  VISIO Visio.Drawing.50VISIO 5 DrawingWClip (MS_ClipArt_Gallery.20,Microsoft Clip GalleryZClip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery\Clip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery VISIO Visio.Drawing.50VISIO 5 Drawing VISIO Visio.Drawing.50VISIO 5 Drawing VISIO Visio.Drawing.50VISIO 5 Drawing/ 00DTimes New Romanhh(D 0DSymbolew Romanhh(D 0 DArialew Romanhh(D 0"0DCourier Newmanhh(D 01F(.2  @n?" dd@  @@`` h` h[k 6 +                8    9543+420.4,2/* u(7GF & I$# sL!r 9PQ TSRUWV Z]`  c dhA/DEMKJXY^_bi:;<=>?@ e f g-B[\akvw(b$=fjh(1.G'b$@c JG'G'2$JmQIR$JLǫx?EYRR$=VYjL#=/}> k2$1@ kprB` sx"$G^Iۜ@Dϳ.2$bWOr`)1u2 0"$Iёh*܆Z3Seb2$̂~)+-^Ǖ2$V/=&D 0<͘"$S''Ƶ;lfy n2$ YŇ`XD1P2$G7 U`R CV2$c^XЎg"$iZh\f֝ "$c#U1B hBk2$({~s_af2$ؘ6QD7Ahcf<R$.CZ%a!%f*CC2$rɐŁ; 2r$%3àRHM;"i;"$z 6A case study  The Copy Routine    First Version Second VersionxWe sometimes want to read from paper tape reader. We could put a parameter in the call, but we have hundreds of users already! No big deal, this is just an exception& we can make it work.Second Version Design ! Third Version $Example of a Good Design %& is it?FILE is an abstraction It represents some kind of byte stream It has many variations It has methods Read, Write, getchar, putchar, etc The methods are *dynamically* boundTP>PPGP>G,q*&Rephrased in OO 3Dependency Management ReviewWhy do programs tend to rot over time? What is dependency management? What are four qualities of good designs? Are OO programs always simpler than non-OO versions? Why would anyone want to use a paradigm that may result in more complex designs? Why are compile and link time important? 4Class Design PrinciplesSRP: The Single Responsibility Principle OCP: The Open/Closed Principle LSP: The Liskov Substitution Principle ISP: The Interface Segregation Principle DIP: The Dependency Inversion Principlen3)33&3(3'RiH#The Single Responsibility Principle8A class should have one, and only one, reason to change.I*The Single Responsibility Principle. (SRP) 5 Open/Closed PrincipleA principle which states that we should add new functionality by adding new code, not by editing old code. Defines a lot of the value of OO programming Abstraction is the key7!Abstraction is Key"Client/Server relationships are  open Changes to servers cause changes to clients Abstract servers  close clients to changes in implementation.<"The Shape ExampleAProcedural (not closed) implementation OO (closed) implementation>#Procedural (open) version ?$What is wrong with the code?1DrawAllShapes is not closed. Switch/case tend to recur in diverse places. If we add a shape, we add to the switch/case All switch/case statements must be found and editd. Switch/Case statements are seldom this tidy When we add to the enum, we must rebuild everything The software is both rigid and brittled' S # T'6 AD@%A Closed Implementation A&Strategic ClosureClosure Against What? Closure is strategic. You have to choose which changes you ll isolate yourself against. What if we have to draw all circles first? Now DrawAllShapes must be edited (or we have to hack something) Opened Where? Somewhere, someone has to instantiate the individual shapes. It s      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNO best if we can keep the dependencies confinedTqq F(Picking Targets~Technicians and domain users list Ways that the system is expected to change Ways that the system has already changed Isolate these to kinds of changes, not specific changes schema changes sensor hardware changes data store technology Keep this list handy throughout design Don t make the changes, just allow for them.#ZTZ8Z=ZTZ#T=- I'Open/Closed ReviewWhat does the open/closed principle say? What does that mean practically? How can it be achieved? What is strategic closure? How can this be achieved in design? What if you can t close completely?&}H}HG)Liskov Substitution PrinciplezAll derived classes must be substitutable for their base classes This principle guides us in the creation of abstractions.H*Square/Rectangle M+*Substitution& denied!xIt is reasonable for users of a rectangle to expect that height and width may change independently. These expectations are preconditions and postconditions Bertrand Meyer calls it  Design by Contract Post condition contract for rectangle is width = new Width height = old height Square violates Rectangle s contractNV&%V&% E%Liskov Substitution Principle (cont.) >A client of rectangle expects height and width to be changed independently void setAspectRatio( Rectange* r, double ratio ); By deriving Square from Rectangle, we are allowing someone to set the aspect ratio of a Square ! We can still make it work if ( typeid(r) == typeid(Rectangle) ) Violates Open/Closed Principle !TKZ2Z{PGPK2{GPP%F%Liskov Substitution Principle (cont.) Design by Contract Bertrand Meyer Preconditions, postconditions, invariants Rectangle's postconditions for setWidth() width = newWidth length = oldLength Square can require no more of clients, nor promise any less Doesn't maintain invariant of length Violates the contract9P*P$P<P%PF9*$<; b1  xO,'LSP Guides the Creation of AbstractionsAbstractions do not stand alone Abstractions don t always conform to real world expectations Violating LSP is tantamount to violating the OCP$E ?S- LSP ReviewYWhat does the LSP state? What is the risk if LSP is violated? What is Design by Contract?T.Dependency Inversion Principle V/DIP Implications Avoid deriving from concrete classes Avoid associating to concrete classes Avoid aggregating concrete classes Avoid dependencies on concrete componentsGX0Interface Segregation PrincipleSometimes class methods have various groupings. These classes are used for different purposes. Not all users rely upon all methods. This lack of cohesion can cause serious dependency problems These problems can be refactored away.j9FInterface Pollution by  collection  l:A Segregated Example >ATM UI Example ?A Segregated ATM UI Example CLogger Example o; ISP ReviewWhat is the ISP? What does it affect? How do these problems arise? Does it really provide a real solution or just a restructuring of the problem? When is it worth the effort?p<%Four Class Design Principles - ReviewOCP Extend function without editing code LSP Child instances substitute cleanly for base DIP Depend on abstractions instead of details ISP Split interfaces to manage dependencies/#!)"8'9(=)B*C+D,E-J.K/N0P1Z2m5n6r7s8t9u:z?{@|A}B~CDEFGIOQRSTUVWXY^_`abcdU 0 |t0 (  Z  C 2AWashedOMLogo0r  S 4xXPp X   H_]?  $~Copyright 1998-2006 by Object Mentor, Inc All Rights Reserved Portions of this material are Copyright 1998, by Addison Wesley Longman,Inc. and have been reproduced here with permission. V,(2(2  5   , m6T  C ,AcoverIcon H  0޽h ? ̙33y___PPT10Y+D=' = @B +| c 0 ,$ \(  \r \ S 8v0   v r \ S 9v v  \ TA ? ?   H \ 0޽h ? ̙33 d 0 `4(  `r ` S Ev0   v  `0 6A ?q~  vH ` 0޽h ? ̙33 H 0 `d(  dX d C  H96   v d S tCv H6 @  v  H d 0޽h‰ ? ̙3380___PPT10.GД I 0 ph(  hX h C  H96   v h S Nv H6 @  v  H h 0޽h‰ ? ̙3380___PPT10.GUҔr(_P  { 0  ;P # 1d(3  6 Clip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery  VISIO Visio.Drawing.50VISIO 5 Drawing VISIO Visio.Drawing.50VISIO 5 Drawing' VISIO Visio.Drawing.50VISIO 5 Drawing1Clip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery2Clip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery6 VISIO Visio.Drawing.50VISIO 5 Drawing: VISIO Visio.Drawing.50VISIO 5 Drawing;Clip (MS_ClipArt_Gallery.20,Microsoft Clip GalleryL VISIO Visio.Drawing.50VISIO 5 DrawingQ VISIO Visio.Drawing.50VISIO 5 Drawing U VISIO Visio.Drawing.50VISIO 5 Drawing0h VISIO Visio.Drawing.50VISIO 5 Drawing1k VISIO Visio.Drawing.50VISIO 5 DrawingClip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery  VISIO Visio.Drawing.50VISIO 5 Drawing  VISIO Visio.Drawing.50VISIO 5 DrawingWClip (MS_ClipArt_Gallery.20,Microsoft Clip GalleryZClip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery\Clip (MS_ClipArt_Gallery.20,Microsoft Clip Gallery VISIO Visio.Drawing.50VISIO 5 Drawing VISIO Visio.Drawing.50VISIO 5 Drawing VISIO Visio.Drawing.50VISIO 5 Drawing/ 00DTimes New Romanhh(D 0DSymbolew Romanhh(D 0 DArialew Romanhh(D 0"0DCourier Newmanhh(D 01F(.2  @n?" dd@  @@`` h` h[k 6 +                8    9543+420.4,2/* u(7GF & I$# sL!r 9PQ TSRUWV Z]`  c dhA/DEMKJXY^_bi:;<=>?@ e f g-B[\akvw(b$=fjh(1.G'b$@c JG'G'2$JmQIR$JLǫx?EYRR$=VYjL#=/}> k2$1@ kprB` sx"$G^Iۜ@Dϳ.2$bWOr`)1u2 0"$Iёh*܆Z3Seb2$̂~)+-^Ǖ2$V/=&D 0<͘"$S''Ƶ;lfy n2$ YŇ`XD1P2$G7 U`R CV2$c^XЎg"$iZh\f֝ "$c#U1B hBk2$({~s_af2$ؘ6QD7Ahcf<R$.CZ%a!%f*CC2$rɐŁ; 2r$%3àRHM;"i;"$z 6A case study  The Copy Routine    First Version Second VersionxWe sometimes want to read from paper tape reader. We could put a parameter in the call, but we have hundreds of users already! No big deal, this is just an exception& we can make it work.Second Version Design ! Third Version $Example of a Good Design %& is it?FILE is an abstraction It represents some kind of byte stream It has many variations It has methods Read, Write, getchar, putchar, etc The methods are *dynamically* boundTP>PPGP>G,q*&Rephrased in OO 3Dependency Management ReviewWhy do programs tend to rot over time? What is dependency management? What are four qualities of good designs? Are OO programs always simpler than non-OO versions? Why would anyone want to use a paradigm that may result in more complex designs? Why are compile and link time important? 4Class Design PrinciplesSRP: The Single Responsibility Principle OCP: The Open/Closed Principle LSP: The Liskov Substitution Principle ISP: The Interface Segregation Principle DIP: The Dependency Inversion Principlen3)33&3(3'RiH#The Single Responsibility Principle8A class should have one, and only one, reason to change.I*The Single Responsibility Principle. (SRP) 5 Open/Closed PrincipleA principle which states that we should add new functionality by adding new code, not by editing old code. Defines a lot of the value of OO programming Abstraction is the key7!Abstraction is Key"Client/Server relationships are  open Changes to servers cause changes to clients Abstract servers  close clients to changes in implementation.<"The Shape ExampleAProcedural (not closed) implementation OO (closed) implementation>#Procedural (open) version ?$What is wrong with the code?1DrawAllShapes is not closed. Switch/case tend to recur in diverse places. If we add a shape, we add to the switch/case All switch/case statements must be found and editd. Switch/Case statements are seldom this tidy When we add to the enum, we must rebuild everything The software is both rigid and brittled' S # T'6 AD@%A Closed Implementation A&Strategic ClosureClosure Against What? Closure is strategic. You have to choose which changes you ll isolate yourself against. What if we have to draw all circles first? Now DrawAllShapes must be edited (or we have to hack something) Opened Where? Somewhere, someone has to instantiate the individual shapes. It s best if we can keep the dependencies confinedTqq F(Picking Targets~Technicians and domain users list Ways that the system is expected to change Ways that the system has already changed Isolate these to kinds of changes, not specific changes schema changes sensor hardware changes data store technology Keep this list handy throughout design Don t make the changes, just allow for them.#ZTZ8Z=ZTZ#T=- I'Open/Closed ReviewWhat does the open/closed principle say? What does that mean practically? How can it be achieved? What is strategic closure? How can this be achieved in design? What if you can t close completely?&}H}HG)Liskov Substitution PrinciplezAll derived classes must be substitutable for their base classes This principle guides us in the creation of abstractions.H*Square/Rectangle M+*Substitution& denied!xIt is reasonable for users of a rectangle to expect that height and width may change independently. These expectations are preconditions and postconditions Bertrand Meyer calls it  Design by Contract Post condition contract for rectangle is width = new Width height = old height Square violates Rectangle s contractNV&%V&% E%Liskov Substitution Principle (cont.) >A client of rectangle expects height and width to be changed independently void setAspectRatio( Rectange* r, double ratio ); By deriving Square from Rectangle, we are allowing someone to set the aspect ratio of a Square ! We can still make it work if ( typeid(r) == typeid(Rectangle) ) Violates Open/Closed Principle !TKZ2Z{PGPK2{GPP%F%Liskov Substitution Principle (cont.) Design by Contract Bertrand Meyer Preconditions, postconditions, invariants Rectangle's postconditions for setWidth() width = newWidth length = oldLength Square can require no more of clients, nor promise any less Doesn't maintain invariant of length Violates the contract9P*P$P<P%PF9*$<; b1  xO,'LSP Guides the Creation of AbstractionsAbstractions do not stand alone Abstractions don t always conform to real world expectations Violating LSP is tantamount to violating the OCP$E ?S- LSP ReviewYWhat does the LSP state? What is the risk if LSP is violated? What is Design by Contract?T.Dependency Inversion Principle V/DIP Implications Avoid deriving from concrete classes Avoid associating to concrete classes Avoid aggregating concrete classes Avoid dependencies on concrete componentsGX0Interface Segregation PrincipleSometimes class methods have various groupings. These classes are used for different purposes. Not all users rely upon all methods. This lack of cohesion can cause serious dependency problems These problems can be refactored away.j9FInterface Pollution by  collection  l:A Segregated Example >ATM UI Example ?A Segregated ATM UI Example CLogger Example o; ISP ReviewWhat is the ISP? What does it affect? How do these problems arise? Does it really provide a real solution or just a restructuring of the problem? When is it worth the effort?p<%Four Class Design Principles - ReviewOCP Extend function without editing code LSP Child instances substitute cleanly for base DIP Depend on abstractions instead of details ISP Split interfaces to manage dependencies/#!)"8'9(=)B*C+D,E-J.K/N0P1Z2m5n6r7s8t9u:z?{@|A}B~CDEFGIOQRSTUVWXY^_`abcdP   0` ̙33` ` ff3333f` 333MMM` f` f` 3>?" dd@,|?" dd@  "  \ n?" dd@   @@``PR      ` p>> ( ml   6к 0   T Click to edit Master title style! !  0   RClick to edit Master text styles Second level Third level Fourth level Fifth level!     SX  0č    X*http://www.objectmentor.com 1-800-338-6716 4,  $    0͍ 0w  2Advanced Principles I - *P  C (AomaLogoH0^  <Ѝ ? ~Copyright 1998-2006 by Object Mentor, Inc All Rights Reserved6, 2  5   +  H؍?` F February, 99 (2  H  0޽h ? ̙33 ObjectMentorr  w 6( S 3 1