ࡱ> tqrsF*Nт۳ Y*JFIF`WANG2 CREATOR: XV Version 3.10a Rev: 12/29/94 (PNG patch 1.2) Quality = 75, Smoothing = 0 C    $.' ",#(7),01444'9=82<.342 i }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz?Ѷm:LREQEQE܍L-QMM/L3NQLy5=XMqq' X?|%bVX?|# rgK6 ¢G4'  ͷy!HAx"I9ϙ6kR,cT]cnAJ,1Ymi鷾lFƻcTQ = *HVA\RqIQӬY!/PdJA5o:MfӮ+u~$=kwkV/nF )s4ޚcS.* |WB襎Xuu# ԔQEQEQEQEQERQEQKEQEQEQEQEQE! s[څF@3ɯWNjˢ^L|9M$K^ៀk3ϖzk <9SI 9MvQQ5EQ( s2f&K>ҷTr rEr4_^Z fmX6%2J:״+2#"z6ycOh[jtj?k:"ߺox~4Etrkc9unp?*xE2q(@¹:mkrQy"jo⻟@#mOS^V~iVQ@qL4H/`[$6+3Q4Z&K(f ܼu~$*inֳu5!a? H4(r%4xNt5]>34ף2K]6Pۆmkw:FCoT4gr=+pjxU ?*? 6#^%1׬xR.4EB2Mp+*Q GtR1G,O#c ¾CQ>'%7A|XQkpf=6V%*E|.'PӭnapTs򯡭mm*U=MZxA)@-nI#+ſ 5 3M-sj"X S<'K]l 2E} 7ɝb }* -QEQEQEQEQEQEQEQEQEQEQHzkM+̲(rs_9ǚߍ/v4 8?`{}м/xr R%hw2Xڤvq 'sIK5FH6*? h^'RW!~VV+|-]E1&=mR5E(WcIh/޵? $ 6%ٌD}*Oxz/ecm:r1{׿ibL$J +ʾngC^5TWxݲSRJ'K?4b\۵} {-GCӂ fAWVj]/ڍ66~5|;:3I+:Mg3sonMڑ׌pmoZq\\JҊJul&]!qYfXSpѱ#XHG*9,/_In|^ xs_nFJk< 1i }­u-%!J(((((((((()@Ҽ[/;Lr(9 4sZKoF7}31uy2^: ڕWnaZQ^cxZC5 #{y~hq4n٬|\qҾw+M\S ⾗VWPAdyYzݨom2W+/jZ]QX(uiؽ*иL ̺ cg+0$5~{y Oz'58𽿊=qg"5Ah xxKIJxgX-}_5b:aՁR2=k>3,>p%F>Z|%`4 ָd ƼoZ?!62GAaKM m^Sy>w ѥHc]Er3 7w{pCQO^:ϊ5+^M>/0dtm졊_:UP}kGc4; rTaG"y #gdJ<UmY_Mcźglub@~e5QEQEQEQEQEQEQEQEQEQTyG c+築?Z]+CdI0<ҹ_;|ev;0ْgJc|3`}G+TA'.xͯkHۡDoG9h$<+q;(P9$N/\jVf;N/zNWUC۹\U#+7^O|S tqGnk`Mn$#pZOKi V׊m*(/. 0ֹ/2ҼW($^IPbxcږi>%ɶ&|xᯌ5kUKłMqs^yYV5@ 1׼[Y4rVQ7c!ul)?_TcYۅ%\~:QLwTFf` OJoֱI}M{4<9[i n u5cmj6ڎ!Jx|H|\ RyWDktG2^5 j:,k ,с+t_[.2A4M 6(VE"'EQEQEQEQEQEQEQEQETI.%_ďW$M7Nш$dsĒǩjHir_Iime)HEhqA/jmnOGc/Դ<hM ނo豓yBU5ɏ31oՎfV7 4L:ҴW?&owSђ E|cZtMnTNA_FitW$jq*ʹwVA.J:=NgúLq9,qQ?P)䢂IP=jڥ􂩟9n>2<xӓŚ [fufwI?-AZ r#XڃW7xcKuK۸CMlۑȮc-yŏp#9S{xP?ɯl"F5u'/ v Si^ɵCv7G$;hZY3tg'WUËXıj 2y]k"d=W?~!YRi_x-QEQEQEQEQEQEQEQEV+hi$H2OJĩCw.R3`>|/_T)`*>}'imvGP8W;yhPy o#I]G{k%˺9)5ZvSO^ZIc#]W¦r~lk-;6ifx*e7EWv]wJmcJNNVF@kZ,g&YFI5*F bczou(UUk>9Xh]:\o];I"~|G՜5+১Vu1;ո~ig៼9?_?AQyWj{|j|Fmu˸{U)>xMoxWQ;3?5Vm>4jk<@}E?һⷅu;ՂCq]ݽbKyD=5ltV>{e,S"-mo 5"ws)נs66g+cw>0Ք~[ts./ ߵaש5R2[A!yz54k.xMP\%` #_zr=ih((((((()ŘI=oyt-&l@HJ]l?j xE$U\|qikCPbWMq'Éj]#4NUМ0?Jk6:=7w1ƈ3 7ѧvhaֿ|su=^OX8~wpk>LBVJ5k51x퍬.+on<;Isr"f[>2ibŚt|0+i+6yzyjsJѰSWjռ5OFBmZkTExr.b xVγa+ح-" (UQLu m6K(MxcǖX+CYaxn7ۻRpG;źd*#k;Pռ P4St9WEb^6yv^4jvu2W`: Z(#{Zi=C[xDbPng5-B)μTQv j2Ǵ V|;r{[xKKv?ZmB.-fIbq)Yx $QeB"Ny-*[ǜk&Ծ+kei-?t+Yxke孔A#D k7'|}us:Hϧ^t/hOhf");s׵E4w,0daa^Ucz&a]B >7o<-@[d5}gjvƟ C iEQEQEQEQEQEQEQA\|UoMk\y"%'MFR}p3_Wx3С X֝a][NpvƤ?GS-k)m.Y!qiMgƫ.M*M?ƻ߃VΟ& f2r^8mj;\_؆kHzG_ʽӌgj6]^Lă%׊jF7IvKZC_k5?wr8ׅEp~;e2u'A\1)xOvmq^[ë~ex!;H6yG>64=Bb-?,~( QEQEQEQEQEQEQET,$N)UWcelB}kվ t-uP-{;tƋ[]_HLVk,q^OA9mm2yS]+?R-uk)m/"YaU|  5'KM'=Sǚd6̻nf샽z<e8E.fiRkK~(3p>T,k?|]9B7 ? _K͒X@||konfQOݦm97$}szP !x6UK(sYk C\\n>|Q}lBMGQף 59j4 㷒:v ?Wc]FCQ^y^yOxYG\֦Mrpj# BےU-x1oK"_\wqDeQɌ4RZσ|U%,,pƀҼCڼ/Ֆf ~t.g^<ϳ lo/m|95M( | [_ ev/3LܜoKQk]: 6a <]K"RH=kt5K lPZVƛrq a 8+WŚ LRosGu &hyCjMT^/Zkvicf?vOŲxwB֙7ן5 NwjW_;uJ%vEx-rY3<֨'d3EX: }S!8ߎi~EaԠ>~7\S:W|]ާ}&Ny3e#'"+^0l>6X4Y=֡r  ~'x#ðJv^=/ÏKPcS m+~(x:?jcYlr}x)ܲ }}yaAYCwT UҊ((((((+?SMn/ep…M|}}f>-nvM/^3_M;~1;y[kc:s UI=Myx#Ŗ7(;3;RxŖקMfϛIpzޥkdrSE"vq^[=JӮ6ڽ2AJqO3_^:F XWiVgW7ţ߻ ^img[Ek(EV^Mze!#0 s6UI֋ˤOBӚ]kD3ۈ|C:/DRk !7?fn/dDu x'Ě*3(2޽VWW+o>&_~U/.'7:&n?y]~i^{URh>QTGV-nzQ1yfdGkz(u+s~*_vZ1j#[f;vX:Ljt.|< tq3zwzrּMߋ>(}X-V[DqJG&| r+>Q%eP1jk^:&uKhktrp8VW~ݦs&f((((((+ž;;HMLMs̀\? k {O}>v^mmحTVC7e^Mж:vuj.-2F E<|?eˋ-6dl4,zUi_j`;r {W=sV<o4f6M"9x Az$#FrTJox [٣ҭ+oz֑i}{oy6rYi#{ƛnEBKWm_^7G'oagmuM 89>DvO F+f?d/Ү^T]cP_WWk:**yoa^ QM.IB[۞ M{-EtH֬69Q0S}k%BH-,,dAֻxŚ$w! X5*") ⻋%9{ 3';Ew𭷄? 4c'dҞE|;tgz*Vg%Ք4L35DƓ,;Gn=+%_QU4]f8U#=E'҉C&Q^ڕ9o5 Qx87ľ#ƻ0Ѯam)Z7enດw? ~2k,o-ﬡ*R 6->."VI>(oheT$^?,M;I,Y#A]Ox~oQrbg^ooa!Qs1Vy]h@;5zKíLhp3W@(((((;W^~ Tkݧ5 |: "n_[*(*N:dSrsw a|z0kzkP)+wc j/kiu,Mz~>$&pAjτ~Q~Ɉ8=kXeX~j> oI$:5Ǽ^)vi5Myxwz&c]-n[|n6{\/&aBB=Hz$Y۴Hkbz X Yz'~G3$2s[KGtE+s=V#EyKu$W"P$ՏbToTsФ ߻aSGҵQel?rLӴ֯Nb? 鱎_Nv%_4ؚ- t\*1f{!{?LXՏirkǩ&vgZ4>yMr@C]Ay4Z>ﬥVGySW"w0Ĩ6[hk1dV81!QߏtZ_5/j knLH-8"^W%e#K(фF}%Cj񯆡O,Am-w \?Kg4\g"HhڂF"cĖߠndӝ*_ ƕzy|358q8WXZKs1csjfk1Z˾\wſsw4qn<Wďː]4((((((ȯ~<{XV˒]R꒡ܷԵ-A46_ #ֲ-o1@Uw n~{Qǵ~=-<3b |ώ벽7&!Tu5kWpxn.$A+حn`gD6 "J,(WzbG?`Yrl)e2Mx_O{ wO by^XxCL /v5q+[98Y~ /GN q]ei/)*?xu';xl攅 I^T|7 D1f}9 "{q^Vw,-C&@$WTkAhV׿h7Q>S3}\qkKm:[$1.I'mͦY6UP*;Wf&0Vms[Iӄs;Ivt71=OL,ed0 SE⏴[B~A蠚'Stom\4R`G8{z֯cv0tP`ڇ CF9ci յQjr#$g> ^&ݶ*A?<9;SlOWZ:k |'2c`2]<][:"NNϯJF>'jwTbdcJZ }+w^~H"81Iף\4|5{Tm#_UxXMw}X+((((({tvS9ƌğa_2Ɠ6Kg_^xgLO21!u gqt.Akw|7Ϧ]m/<,::g~h4&m%aҺ~(xk"[ubGL}+o̺,&7OjZZ//@=)9תM㒅8Y/qs\<xɺPa$AcO5$o[hsK/$.z2[r|yZ~+x]>)j7ggAx" i+5n$#VW0oåj*lH77/^ Ct9t_|Ga#}?k?ɑ_Z]#DAw+WVZ%׊_ 0zQ⻏j;TcҺxW^*Ok?-Nr[WuԺ圂n<;x#7EƯoho4Oפ͢xFfc$W1O~$6icbGZkZƐuy9*IT o h;+!\>2hZeÍ0q,uO4%hB:W7xO[8O/8HsM?H!FyW>> o>O 9A^Z0Ad\V Iq3Xx^cpV~:f/[rZωP}Α>Y+!c!|Wզ6C=@)8Eb{Ӊ:lrzҮ~am3!Ҋ(((((;W SV]#n_<%=) uvG?6@h~+>WYSOgWxh63i,:\3_AVKaZ"E? ڃ:bKO 2^[gHm`|s^p4_|D?M?MȀFp\d^ii:jZķ ~3\Kf|c]p‰EgP3X$ sN,jpsڼᖉ?YRG]7Voi887z.j=SF"⧃naDwVH|gz~G]qOV.{MgVY Zb8'ں1rV&uuv>bȥȮG)>κ 'A_?WIc\+a׺!k3-.Ogm/ XG,5tWK4p^GTP9,p+>!i_c_<}ki#TϨ!=sR J,>&h h(O#41*i\j|#h|,{)7fH¬CK<w5~2xj-gmoRO_ŤwSr c"/x'9 :g-OW{cvZb%B+_Km+~Cgۏ]d-!a¾9wQ| n5 yzd5}?zYMRg^pȬ"4Ka!w}kh&}-@9eɮុ/eLA?Ȯƚ%V"ϭpƋw:/%-u h֟'R=4j~ĖX[lW :j7V0_3>3Z.~!x Z[wH98ֽ+V#4 s^;*]D,:׹+Fu4\<-xՉ+5!NJJKwbo-4F܋z{ױk"/6R(_j._[C 2Fps\2ַ$<s槬$ 7@.HX5T[լfᢶm Wfuow-lFckc$sϪ1777kM͌m9]L^H@XmUyo|cOMw kgivpo[x\5Xƪ}gO e{-]lF_h}(=+E}i|C! 9gְu?M񞋪rZZkmb:|$~5ƟHGae(J|Cڴq[Of?o/.bU x{u+ ϮYC= ƣ<'}eiMRqXc3V]Fw[|qsZ~jFDxf_ƻQR{ K]o$.]hlC_ײl*0BY:|?VCd2|J%w2 Cl/SPXDW`;א3;/W&;RW.ZҊ(#}3vczWkVڷkvϦ6d3Wg4, }*ޟ=LU[m6qܦMjX]B"AYAk;kUD=@}寏:x*OI$׭|&&*(((((V <&,_s('}[@ +ɭjGNh.%&GpHֶ<j\w:%ܗ+k)sI{Q7Z߇NםKzgXXm1)obkpX ]7Qeq `oEݤcuxiö pť0%#j4 ~`n-bF4 ?SL46GEe#FA?Ox]ktGF03^-'$=X6*Ww4:\N]q?V!Q}*iffvZFWڹ/Bκ (#LAwn"ZRzW|OHH FT)ָ C㟉/1٪[„?G?B@j(]T8;Nq^&7ާ'^0á{X״]?R1 gV gmD\&~aڕp}___񭶏ak s-ܻ0thpZd=xIs^EQEQEQEQEQT'1 6`x|ů_i٨K8#QW|{eMJb@In;] ;/ʚ?UKIMJطt@J#Xy5@kx#1so@!A5'孚H(,~_ c }*x>ɩ]%ˮ'r? ZytZOl[Kp~ +_o)-ZR.bŝٷq9>"i{!i{\cQې> Ȭhb!\v<W"tmƖ'k'V{--Լ~VKn/n)cR:&p-杇ʋް'sɫf6ZW{yLTqNԾ%\i#%u/ @ ^c,Xy91S+]F!Zf Y*-IA|u ݵw pqZGXլ@p=EYv_Gko9!PxSҼKkxLK8dY𷇾xqVC{kup:!'v‚8KdU* q?‘HPژ~*xETy{"֎m+ReKApP9t;1ιoN:4vc&s9+L-gW]B8ܟ¼Tx|%!oN-kʷfb[yzcpuO]Y^Ǧ&-\O+~:Ϣ%4c<r8p5;d {eku^>+)Ͻm?oJCs*ך(}kmѫzkh}Nq9ʻ5H^EQEQEQEQEQYz>5} /t{bYg k=Yi UpdE|}Fhn]O`븏_ᶳ]cJ!km5ŶE9#\U*+ {-4WxOZf]>_¼ ߎ:̬ ~D׼y)kd1z5?4Iav֤Vgw{{Zܐ; ʒjNw-q`p \gl#݆FbA OR?:jI{-A~&k5[y#0u,$cH]mVjpN%aj};z[!x;~ė c03of1+(՗崻no5IE61Ut[MSM2I ]^0*Oxm`uijey4KN:H85ھ}iq{B_'yŚ ]>w_QBkY.KAk<()ҡt,+h-l0e@**c6x:C'4W '>0k}&5KZWg[klcm#ci'EtT(?j|5X|rndB- T]ڶZl"P8~n%wd8x/tM2OJJt#T hœ85l^'>it?Q^X*HG<:'Yg"^]}XGѣm='+OuI5G@9et}+>>6k5Ze,OWxƱ<,pRMq%cSr׾1#1+׮bZmD)ɵWX7𯞙wcZSOM,H0H@NL1JFU8k ҷAں}n1LH5(Q+!Tui8Ȳ?V#vB3A1sJ|9g^^E}]׃|l֯t/iW#>Kḳ~_ t?-pan᫧mATsَ+zZn/|Ă㬨< 9qWoP?#Hʺ#)dW#xC՝/٧<`;Nk ìFվn~چ{6I\#~nT~/q7! _X4)"m$y4mNKh$91 ?/ _}yMwQw[y3tV_P8 :(((((u-ꎦF9nzA}t*U.=B-Ṿ* 7FӴ87}jZa|15xW`sWA=cgDg^iiS-ĐD+~}Y5Mnw8xNs=›:PxWKi=F'`ɭU`2 xg[7 pg_ֽcږ}iQ;W|⼔ F1sk *0ʀ7Z{M99)H KVV+"I\b?X/m[ܸHFf'\?<˫iM=:_.+MzaF1ʳ-nY?UZ MxŶ!Vo%U:4O |,V15C gGT|* 4'V_ \nfZe5dQ:^݁ƹ$w.}JUXC+jvOAζ#TsFK;KƔȏ^޼㴅C7//zސNfq"xHxiT3u=EuY[EooQTp*;Ra}/j?Ez;sVG⟿[?}EQEQEQEQEQU̲OFKׯ4]C +P oFnjkbTMWN5s~5=P,?wy&~'1ku} 5Qx1_v~ ߘlKk wFxsI#dL?y׈>I 跗8W++Y 0A'-vӯ [57@e ?VӴ:5=svv[¹\o7Qz \U?o5EC o8n Hs^\ l69o!-CY./[tyKimMqg>HSMsTPӬDKҘ=ƩikVEp/=i$ Ecs.~&w;ִ5[]^%ôI_硫nZ?!!(;dk#z4Bg=t񖣯_^LdXPFW :oH״?GՃNneHӖ栓UѴ3@l kޡqx#IA<5yiEDY#w~w |c,;NCDV/>u` =㵌 $Oeow@:|?Gf{M+kAE ºG!v6?_^ 1PҼg/|=umS^w70^jQGjܼ8zV=īH2YOvq뫲IfYbnC)ȫhɶåEnZYx((((()2z/d*s -I9y*_jMzFZ(Z¾Ծ$K6^J9#$~ k>H\<%IJ6y?{WvvV:[İkZ9h^g2Ӄ`G^ WosT_/G? u/daH;|Q Ed:ɎGhզGyg(x~^Ƽ㝳K 5^Ch67L"gVC`z8-kz_PH@Mx>9^,?/zy6[ꗑ M&q־q2.;D_ݏmf˦<3[Ն8W'eˢk:4MxҴz](7kh wQgt+m8EvatCJORj|2lpXJ;kᯇZ+#37Ax~NV2uh汴_6m^]K}7):jv7GeҐ ~Oҍ T/9Kg}|/=}b|;ahiS)rƼ~{K2/kVZ|k׭kU!N2Pvc.+OWlb^lVJ#}F[Kּ?OoexgF H$WSZ|SM9eSM3Ym{ J%Mѣ_n?_XLӦ-4}2i H >Cފ~\zF]Z ['^@j&ut# @7t=GX2ʻw?ZuDŽ|{uᕙ?6;C|C^x=Cfa,s^EQEQEQEQEQA_$k6^?|af]5 uOv9tOš 4'5|7f*(&t=r87~,JM.n$epp^k 3oks/2R λ\B[ysA)OQֺ?u1TާXc90=L1Pƣy '̈Bi~ eaxv֬Eq,j)Wx#$;4[͍ # ٹ W9S]7m6fHb^y-Ċ3JkǚΦZ\;|ipG] wjz{Wu)ΈARď]:g@R1q^iJ"1ҩg ;Dd690`z 8|E!Tui8Ȳ KI)qHG/Z~R$HH ǿ5zu4s\"Wz>'i>" mrMFolנRQX^'F.3+>\.+; ⦭seᆲ25S\FSVʹ6$.#DuPda$8"o!xNg}*ki,@Xбx{v~ kE?t=wQoᑴ@mgaOXtI{hMy ] B66d%jNYb2I^W^oWkezq^?|> !9XF07~QEQEQEQEQE|C5]?Pa?t'Չ9xdHbϴ, bsMkUY ႀݓ] 2YCWKa *#nâvOQXZ74;:fomkv,W AٲZ0knb͞ED25ZVw kjЬC]F23Uiz֭}b&kч!y׫>wt,˂پ|_cPl=9fҬ y ~_ʴx8bDOEyUTdڼK?^ yY&^7Ω~\s+)RxkźՍIF,j$;H cAxԧTFy"GR`7/ݶehMK|#7/*kAOӭ#Pz™D;#!5=?tʩ*;tPp7 OPsjKVp+>4jS >mqn7_+oVn(^Upd#ǂ3@yl)"Xھ2麲yEp?Ǻ^$w H-9+$cwجjP Pyeş=Zu#3G_K֗2ZȞa3<I|w=`Fz~yo3i [AݹwwFi5':X6$8FA xMg y⻽7K,$*cc? [?|헐uj&`V<"?|Kruݹ%뭃}}!c> Q٢(((((& kgx^w W[O`ͅN=}9ڠwyQn9l f{maiR4fc+̼CD{{{N~7n:fv'N_N,Y,W{QҼ#4 _zg`bpֽ?k?\2"주̄1^x[(/>d⭷/yږW|NԡlM^:]x.'< c X}narq]G_ IJ7e 2خN{BD$^C]_<A-pw4-֮9*zfVMEE^ (> yV>*#HبX0yeJ~ʠ7-ԛm{Pk-ɾz ԑRIX4ڌo4gL&'*sqo@Mb8k!:/Dnu"H*58K6Lc"X j4K?g~l]bڬM] mHͥۂɽQQaSK/jh-׬FR2j6qrcKg=kƾ^*NE״wO<=+l>i:5yIخ_he bD*/#יW1Ck <70s-oC}HͻnH UMka.+>:xYXihiWEᏎaVD_O4Mn :2g` oAKQ|q J>[Z{;ۦٱ)QEQEQEQEQEL: B/#M͜1\yo?¾͂d9ǥxſZxWG/vɰ< M-b7!MzlVV;x@r)ml>hf`*x}Zm?P'BżsޛOÃDy =qx¿Bok2ko--[<lEmI/EQRM,pHʨ$9&U5YGFk?FQyeq( 86(_0ޕxCZ悗{7SW޼_%-ofK .y5^,A ۆG+dI|RGgI;mLK,jLI +2V༷`J_D-LW(q\y#~dE?5<32ohu^únyj7;Z-[Ð?;6~vjO~1\V}Zus%,sj/+zW]x.ħZOHb ʨo/B Hq^q| 4^Nqʦ fE>"+y+)k>24[cfNޣҽxQ+>cZlm~Gq4qs+I+nZ((((()0kω<*lfewvW$j#qJ xO"=W⎹^|k) qs^E&xL?[xy2L֯g4'GPU(O^6Rnzku^GҸOn,$=^uK{[ 5&?>0Lӭ~+g|QMcp,#cjo> o A^#$WRr+uռcx>^M= { <9]7b pB>f>qcW7Kcה.Tާ'Zo~ E$ ˌhI}8UπlGjٟYw0^/^GA bebF\}?W<\m~>d?6zZxn%Z/:>,C9S\7Q&t9=z W|PvI[~UTh]_;CJ_R٘rSXxvkHn_b;^[u 4,̮ x&f%t.yZVo^[8hPC#Hl:@ׅmmvbWPs]x#RъLJ{h.P$Pk| 㛽n("p? Ofu_Ih]) 'q:m9J((((((xOlӘ3FC>x8+ȴwyM렂Km? hO4粑gk 鷚Ov Xu&cy_ I׸\^Z~6*{O8܊HSGZƩ[=֛pۧN}EUimt<g\|ALjk}>& WA vQT@Ҧ#">kA0s\<{s^ t2|~+L!<2659#it$մ>!x[4m=sGQ;{xG¨y]7v3]H ]<73mb.Ҝu5EiX=uF𽍒.ݑ ܊:~l um9/K"2BTÊP3Qqd5>/c.Tvt5nM[×9Y!rUM{5E}+7k7ˣ˟n碷{Ҳ-*T1\*WW7xZ[ɎF:Wl^)e ,R2@A\ΡGREc+):<+/Bk,7vAJXֶ~7bX$l~WꚔF=˅$,rk<c?}q[&Ȅ7JSW6Ǧ[sll MFfI#;WJk6\ Z6]#}\׊&.y~d+{ uqߌ}GivֈXc VQEQEQEQEQEPzW;5 X:/+WZq1%^m3_cj:|d O|O3f9;z_xJ-o퓄9${> zd>(i$;brGZ>giYıƒIu}mcN;Wsc& ex믇^=VrQd^ݤ֙ UV쌛yc?ʬ)R0x,|ahTCz1̽s^sx\{ 1%;b9}kb״}:Y%LVt2 *-^,{k_#nN:Wzcx5umlʷwUJ=K:8A {XPxFeж\qu{^/6"]?i_z%+mz|:T`b8ѝ?uaV%KC|dpNkH#hC Ic]{ęT~Bׯ* 8S>(^:3\2 x~ |27:hjv]i+G$T8+ςEΖK%?ѼoO5Ő9|muGKm`}IT1NEղ1^kFSaN7_@ O߉ɥCW1k֦BRa2;Ҁ t((((()|Ÿ$т=|W|A<>t{5aXf[;UmooP51\?>!Cn:qs^ox%:05 bx@>t$t> /~x+; 9;(xgM%j"c_=,znrp>xO2ގ$f7zteXȘWSA:|v;cƶ3\?iZ}3^ڼM<7ƕ+;#>v:$܏{V4]HxpE]gtp*0>W=O]͎"CMyƯ/MtptȯG_Í/‘1qxF^w9AKER1WKgMkKWߨ܍"T*M6ٵUwj76[תqҗ`T34r"2+[sCU,YrC'BkuxcO쯶lE {/ 1H?[ԍK1>?qOYZO.!gῇÞ)CqMvQEQEQEQEQEQE|L70$y㜊 ^/g܊ys)}yeyWhP5JdH|[^OS /y\] +Wm<7e>m#K';N3y[v(j+1+.Z'."m9q4.Fes\ÏOouD^ I(p})C( W⟅ݥ}%c$?K}FNN+WK,-IMg( wx:*jz+ⲷhFk G+c^ rCklుa#F pcڗ42`GRxŶ^dUQ5ugU"H GYzvcOq V;KAY?k"l;^-,>)~/Oo+UUT` ?0Ўm 7\6*_|&VI= WJ1ҝEQEQEQEQEQEQE5*As_,dFڅx;FKoq^H*y_>|Ix/?oA'{|9\P𪂀k;N43dص~ϺaCԝ~y'Wꚵf7 H9,kt?C':-ܘ,A*=s^oq)4.7PGz󯈿VYxߊ4?Pq E: 񦕪&y߀v u(Ԁ3ßĒh"_&4R ^W FG=iJ =+U𾏭!}5j7u!զ~Y"m#ēEflLtjTҾ/.j%k&_֝_5/)µ>i*VMJNGuOp^&DB;jiMJLbº;_@~35yn}iͽ1oV6k.x%}k<9ͤhZM3*[ [?z[<.,Ƽz+C2鱶b#Z=œ2 > ~<-O4&y74>`lཷKyVHd25x:w"+veITa]T}4ifKnmީAܾBĚŚό|[$2ģ5Ï -onT y[k(((((((ҹOfxvDaRbltjVPOnh :dfοoM PpC3i۬c ؊ƨ 㟴Ӂ;8R*| r}쩹 ,xt xj^&Kk xKº,)hl>Z:Զ;hQ.^Gj+ 6hڎ>ϪE#/4CpbLf%7WF A=+|y;Bkk YU1mF㻵k4I!u"AxQЭIR2qW>|A SXp4ZF>o<ѵl#nrXhCKMN1FGQ(ڎFOݱYZϋI҈\f<[X Ge$vVcJiu=sƞ#[FK=*7,J~fi=>_د3O׼OizYeaL0{΂PIF\l`mҸoEӼ%fM|G מxkߏu/[=ۢnvXGoo4UQwTFa7{o?yi+ >Ycq |WφӅ?,L3Ǩ⺻OXK [v=&//Gq /[.,)b(,l4Rvڳ/cc5e&Jj^َ/ֺ?4zZvIP?|UYE·G&㪹zJՎ`|)Y;$r=EbxEYk4xj5kbڗb[FŋN+WZNEu4riv8B ziwt]:]Z1Z|-k-E[?xHEq^ݵCCsq -,*F,q?|ZyNX1FB7d_&M&-{qq"U?QH@$l4h IDSn\+\6l* k~,(,"5|צ[gCQWpGA_0}U) }k I>".l/Tc;=+ڻW -,"snJ-QEi6Zū[0Wk _6)+Wß]7Ķct)r0 S!IgXd`j(hʞbTM^n!cf,7dj%\e.Z'`R1>][ԏ6rx5ү7 O<1YOq"+k!w"["(9=Mz_è5I1n7_#FWogkuq|jO NծSCb*_4{cY\|GY|ɷֻmk4N8hZvA%Q2H_|Nм4\]tX993e+&ߌ/|>)ngIuS8v t(K2k^P^y?ɱ-hv\N0+ۆ6Yޱk]ȫ`OZ+>%@]џd1¾W4𾊗WHGz`Җ(((((((J|S_X]v>9S_'ZV?4/nxLq([Y[޽jZ(3Epk/_Dq*5yρ|iu纶>Kp+OGַ|rdہ}'Ś.cR 4[kyABۢcՂWDӓQ{i\a&ܖЬj͸W8v+B3Q-gr[@FXcPԬ#/ws*W`+2hN,zd~> ;X_MӛxcHzB^ 1A*"Q*P-dQEZ$ #V'|1aI G.G$ֹFs1=fNVRl(}k9-uXs~((((((()O-`9W'A๷~Wa_Ox6~2ҖU%%<]#(UZXU@',EC'Y(x[G"x-[pk_Ф~bB fŧo _0F]H>F4RSmֶM>Tw`9}ϊx9o'`lZ|%+`[iֺ**P>(]ZY-۪@-_&x]ֵ }tI_ |DZ¸ˮ{קTnbAh2ǁ_<|Tɣ貕^%O/X x/oQӐ嘏}+ >L!Q@QEQEQEQEQEQEQEQEQE!+;"9}oèF27{[[/-aoa_Exem`TN7}+҇AKHyx3Kִ{á+&>l1߅fGf9o0pGTy /zt[Wyr -<+V,*<I? iX|t(=*դ7qIꧡ+Ŀ5}KKm(g +# H aT 7 A(d;xY̋$%1ι^y;Ld ' ^\B"l2=qEQQIrEǰZ,+x"pP3}+KX@6ƁGSH8ERMxz׶ZeshP:R(x6N@!W|(oNuWrDC{WјA5_W?'gBT̥C޻/|EC4 lTQG5?yncVSE gŽsIlmInWx͗.E_f=5)  `:~5reܟE$t ( TQETM,,qVc+ǼwK2X.n@~Umwq#{?;Y#!+֕* ?QEQEQEQEQEQEQEQEQEQER`TSC4Rtad|Ԍ*nycx#V$'F]gE%i|:ne[W1 [5KEW^ֿ vQ$_/7.$|ڽss^2xk×Z?: 5b牙RcNъQKᆭHZXW׾x7^_fSd_{դ K$mXdi:zp<Ҿvau~9V`ׯ,2A#}XHS&kĶ2Ga]Gmj>(EsdEe w(4 )$+gĽвp3HpFNO֭x/6YR6',9j'Ҽ+nX[(`>iHqREQEQEQEQEQEQEQEQEQEQER0x wW^PI>9x_4z+zG s^6E=ū#s{m)oBc~>_tf%)ʶ◵QY!+) O^νn#/`8'Ʃy:5ɂ|ֽy2}G?fh[yQ}=v[u".2ɞ^{~hGu}J((T Q*J((((((((((((R0kt?}f#0>( {h^CϋzH5'#<[QR^g+м3rme>: \`{S$8q\εh?ڵ8wk̵-ѥzIҼ\oV[U_99Ğ%rڼ1&Y<+KH.5/˅i(5p6,QT`U8((((((((((((1H@KEHW֑N̼כFO%<:f\)}-FqH|57KFQEQEQEQEQEQEQEQEQEQEQEQEQEQE*JZC0?L%|%K9j5?NiD}뗿6Pʽ;uw6_/Ys=up1U-86zgя?Y<5/Ɣh,'gԿ?zz\WK?[6Wr}pKښN0u\N_KHYs]$qh4U_E&((((((((((((((((QE`S4QO"ȣȋy'*LQ(((((((((((((((((((((((((((((n0c'KbDcBPNG  IHDRh<_gAMA|Q pHYs+IDATx^]$E~{ƋsQD1gsADD T@dəK{&u{={Ǟx;{{{3sUpw3UU_Uz"HD@" hUVD@" I"/wD@" ha$oŕSH$= HZI[xq$$rH$F@^\95D@" |AEQH1Q=]CպAHI`xxHD1B` )U*Cª}.pd\N"0(j!XkQ<5.M B 5?F/mgb%VcbsDA|,b* H&jퟺ_j/RҲe*8)BCBTisU-NS♕U"8HNqb\@NxR%_S50 /Ur(C#4"^x^!TG>@4ouXl(Pe $fAz|e;-%́$ͱNc !wd֭Zڬ6M{ڨ ;Klv,-P c궵;\U!' YY"ЄH"߄Vϐ=|jőJu+#p?7 z*a]?FB59Mwc'(q-ë5u%I' 7lͱgd_i0*~LJF zN%rqL+B"5u;Q M iOD8 ģz D;QH0UcJ G$0RrL]IlC74'6 aS<Sa,ʰ,>\WpQ%$TU 0$@H  O x\ <8d4'Һ9mtoE{}Ĥ*"Y%UM2wYoצzbIZMUP,3$~uPo7 xz=@Y)l6䩕p3 24a%YW3lᲾV0rA!-gQ9Jkլ Y\p3x"s:,p0xp}i!P)cfLC8e+-4k2 aQ9bԽ]5O|՜ D"l@1zeM@C! 9ZLƕQOAzGt($tAG]ʼn-{".]\ˆ"[sA㒞5j"(C3n0N7N zH}5QP!ZQ#M'=aV{, G Z%)tT틻JN З!KNL kR?eL|@($2a'Rdn0Y+EE!_C-vg!%A*FwIk'OK1 M㻷g>oxMg'W 7r f@UF[*d"z9*[=|xGV=CvD-Y?@&?D-ӏ,+R":Ո:ln':z{;"j@f$'ZW0~wL䷧~W5,yr_AsTs "Xi+XKT5Kjs%#68KQNJd[Ѽ&IBM!_[8%%xҧ|, tn6_#8 9{n"pZ{ٵ4Dbu|DKPl͇%Àt/j,_\!Av _DdҪ[悮s6%}㪘[  -+]e5t'B@ǩ֩}V&Uq&DG,J::$4c7˴ANQ"FUuX{%YE7,WxbBhGgxNzYR6:/go{݄rAU%o闤''|k/SDka}o>>% TZ'1\ rB44iC!f~]׷Ԏz] hwP0 z&sH'Ww1/|"HCD̪R&M#VYC Ql$@8N:YA$JE,h>h~7UjǡxA>1o]A7tHOfhk~q K0P<~|"BTIŏ~/eP2v\C ~ЀIݕBo %QUh_´&a!*DIDInaN\0,4 z T?!5r*&~W&Lo,)|!/4҄EutDT~m3˱QyJ ᐚT|w,sBS"(a|@`?BВ;ޠ6/H.Q;nY*u]p#it,,/8{-I6w#~Pb=W̺׿¤2Ҩ, āilI+IdžR!Ӿ%^䝤*n uJ߂=( LFqE]hdVc9r4XO#/B"ڍ| \ީ $_,ԇufI@aN?gSۭD#Qh.fdx{'#V%yš"fTH #8yPU99sOo-\nHN>]5;C'Căv\%YEi"DbxN 4Z g· 0 H|@3U\AA h}T1l6Ku"%m+ 0P"hN$ou[ȃ?PeK1Ja[7%e!tGd.+E6d0<nݠw=I\"h+@ގHgVG+^xMd^FAk%ʃ0L/G U; ;p8@@^,(e@~_z*A~.BQ(+ Y&^WSiǕfH+1}`5 ~T8 l8`pBe"2>xoaſde u`[p\T#{C5!iMfm5dkC@%b}rd-n_avi%SxgCD qkXhxzb^HSQQUECt{t. ,._%/d&2ܷW}'N5udz Ӭqy:C_6hJlQa|_ޠ KJeS 16,{q mIэ.2ӮߩZ(hp"i)P@cƶ,Lɟ;:=0ZŖp7A=kbhc?Xp%ohDb7lX΂c8eC)_x["4̚84WN[[z%7Q'%Xљ_rUh+0 vPs鍐k)]-G;r|5}cӄrLF` (CD;n*n#81$pn,"a *@8i`|T +՟~DžPT+͆|"1[TΤI1X%~Eydm!}3NQ%6 Z\fZ+IK\_$?IT @JIQjNlLh7臖HMhD#}y|QC?4` =*(pw^Pyj柤k3;Ƹ|U ]F}a#(t<:RqOxQ>a"XY8( <9HdM]¯E#K1$ql_~c P4 Rtwf9aDEK[PRª5 M"q~+d Ι zEt 8GOyvo@%:DXa@ߣ16͛)M =4yxpHi/?10ay AZ@cAğ +e}Q͒S`~ #~GqCQ-|}1K٥#Bx%L 9Ҋc5:chM6B^U@r͝ ~߳ӶCep}+d7s9xM'~LC*Sk_{vk7\!M MoMq^7T`rDW?{1iIAsǩ0q⭝^;x)w2}Yݰ f</޽l;U?K>h]0eY 'CaxX0U*n%G 8TPA2%nuQ/ο+wSVe`xhmrJh^m5X<3̡a!"?@  RQ9֐y9<`n7.%tH8S H*em#HT\  Nߑ:(849Vnh|WMG㬈x0Dž'EP-ao2I\}U!|E&.qԃf`bJX= _RmGUdDEVja2VWHZa[@^qEn՝rv^,'!șbR.uN50/CծHlcKHdE51drae2Z\(/llM 28^HoZ%d+(g@Ayʑz)\v6Aˑc!zt-7԰ ^ &)g~iM%˰pZZZ 譢`mHс;cnJ(odE?j4?X@W#N 񢒅n3Hs ]cwp>tKQkaRHVP&%`R՜V)<,ch8} )ȷZ~t&xGA;P>p;Ү3,cgT\DɑcP*χw;4@h̞, dTM )p%OH'L9d,GzKJ+%ȮjvM;0uA^o|_L9E>0|x8?Foc & 0d"d͆?:!#8͝)Vș(Ϥ3pmuMS>XAt88`"0 -GZ'8>'Lk, Q\ǺĒyQVBX. ̈"X?LY|bB}⡱vlN=q%28[bz*$mA&iD| D~d#W|>X@ygka`j8M oVj֯K8@+ȩ̏ q5w>.;9""Dkznlj!rU4o)÷ZO@k v± nr*|#/nQM4`gpƈ!Hϡ; 9s_  g$ŐxO@cWeQ.b|/?cYqW'}Ț sp92bWDsxl|Ͳ#@di=$IE_s7ȑU@|}ڷ m.|9ϢzHF7\@TokY5APRצ#1@7 >(zʝb@`R? fF:]Ł۾ׄI{S?ʺ6B:ߑ>޼z[<9kYzٿ*[]A9`6\(-xЩN2YK9[=.'X]0f^Gyh]YCQ'-?CUsbM!!-vCR4G$'YpLf:%@0O _D|$+y}tH^W0EյL=|W9$ pj9R~,0>O{Z"`Q|=Q6v7 \m ѯ]KQyI[m3/4u+[wFU b>Gv'qxptXZ }hKۀ% Җ*QXG`XDrBIimoXSMg`+F 3:Hd %A5s`K8w~Pm^ vmK?h'9@[T$o=,4ݠ|C6tKfF$򭴚r.W*ԉֿZ|+? עX`uTjOZ;j?}$(k Hӈqmg;=[`|{Bv#V=$dZMR( pp}7YhT!|l{9L|e܀ {Z4G~Q{r&YM9 *'h;tcPNN~t[ٝO 1 2#7C*PE&=I|rPk"<R8; -WBUU`ܵ&/A;Џg_*kqPQDXo?v/ עX0Qw0B e@ +,2a=O~k*M-d x dʌG/x:V gH]""o N(r#U01ᅷ[ɪgEK|=inEU;\R5L@{Y#/Kk[vH _ʑEる /!GN|vQfkpK9>J*sY ը&U #_lk߼7-M$oE GtHlSv1=Iiв oQTA?ıןz{^)e 3TU )x76<K/ƹ`9*O;zwCtn 4Q*,٨Zaf#?4]Z#w!UmaqZEg-ŗ 4#!H.9b|Z ;If" ; U Ycu¦?QlSKSq)ȷZ3Ʀ8z^ֈG*.}/~ Z־\o n*Ъ}3- K`9;i5qI,QWE]z}NVns_QMK]C/DjGҞe!7Ѵae¨1؈h6Y}&GB3_߿O|nP.$:MPCC͡Ñ㋖OhC'+L AqꮬkO!)ex7@ K2DŨT5dfyzU%al}5:S4?Y=b/DF=~xx>%0r|y 2Be DUqFgIP,6-lY.GIw4B׀BZsYqJܻ)#@׹` SF8{D#M7N>"~)9]jOGp,kWaIyCao,S9Q@jQG-*x~־`˘5@ UVFJ3bs"4˓vszPˁx d E[ix`#bnO9#ust 1LiCI?,Fg+6S=%o}TKcs8+ɲ !:CQAJbIqꇉkv{TBOw.rJvgWxg C}DV#=A]TV)f^X#|1)V|n#+,ErmT,8:GqY$cA@-b?"Bi @G(gs^R<ָ($'k4 (V^D<0M@Euxv+ {RG⽭K>.c#e ({Gm!9]F(}W9l!D~8Pz[ 04,P qz"ד0V$)ɶ=8d sak%'2u4t nɉL2 {Q {шS+aw$^={΍v:<6Y$-渇Vs7(8H_*-Ŭm78wtd -N#rsqϝ<W{)\a'v,i $ <JOi8Bݲ6Hԯe;yh- R\(5P[Xx5}O/2gJM)K"(mR*mnϙIZ0h.Ѿ<"r,S`;&Kk#l^ Hٻ*eڋ4;/|Xng֑#Rѯefn ,Zdc(]XšSurji$TOųi UMk뚭낫q+f[JDz_]{apH]Y$7Έ'QL񌘼c<4:B{d)^Eo͙1cXWRҞ{H`BCK {CKc. "|"s|$i)#Wh=rCa GJV[2&_Xd5zV j|AG=|_ܽT(_qHHڨ[*ʽKE đ?ǭ(t|A&_? QyC)+=-pKa=75д7t-ZF5zvqΛ  Jn8hzKh6[-޷6tGwT/W<l%-HN=҅kzFҚzYeſ _U 9&EȈp;qwx:M~u*dBsI>k\E"qHNo%7{r(udFny/0iTT1;[PH'o l{*" |=60p_Z3V4~aIrM 8>7}36d}\M>s|W gAѿ+uuZruxE|5/V<[*7ު,)qbrJc2du,|/2u@3&Lɧ#BM 蹚pu0D~a5kR_5 ~DkLJ\U{lgx!B"H";DtNS3 d&_υ _A~xH6iRѾ02u|(YnrHWf]ю;NteһiKHHד|.~BVG+Niia׉@T3qATOCL Y$R\Ӓ{7LÀWfKNRNj8?T~ w9Y$ A@7y"ޙ$ͺ;Q{xW_w%t֖f]w%љ[(i7:9{G۵$Hj`o).9&]xDQL}aݤXܰJJ#k)q "2Ťtϓ+8- N|6h8d*HHR4M.|KNLQHO \o-ń>_~(K02ߤDI|'Ҽ/mgSL㨇G(tHT~-%oG7#L ҍ}LS:52zA>b~^RQ'+Pͺ"U w%c4Br܈!f}Qo(j 9&:;7(MPIg!=Z4-2..滟cq-pvzW,>GP=i'ߴ 9ځvkm+YO" 9&W@@f$IOg$=aYM4z&x#:A S&_S4OƑ ؗcaeXJ%`Io#j}7oBku=<Č>0XL8Zd=xm=P"?oD[ɂdiU|0eR vfɒ~ދa^_ ..s0LR,G8|AjMi2%0M4IhxF&<%d×í8@a10A$O3^(D~@5J5tpq\BK\,bF^&K Gד8'ޭح$M&!'!wːM~u71sx~NS͂bn7 .*]M6z9zJi'o7?)'E3^ 7' <{q[}),EN&ߠsQmE2΀.4 "4*'7Kɡ}\;VuBuI/K3=_kJf<յ^eEAknphE&=H>dmyk=PD>SZY4 9"圞=8| =]'z:t8pHHQ^]/)7ڍaBAXVVF?8` .M6 (TX]79ބ)Oǯ ֲD@rͷ|KƲFOk ׃@`ڭ9b N֭! wMEKt&M~O}h Z@?V&D>$%^;Q~=ٳ vB,(^|}>V\@H"_'`K˒]BwLXe8?~=YO(3R⫽8'@u1#MHH@ w"((Q%V9B$i.1Uwl?c#D.iGK"$KF%64pF [NЀТKR>ڄE3+<}I_/nМ5JSe)oՀL*qjxj++Io}bI]A6ɨ0E hҦZ 9 9{lA#K2& 9ӾTyKC8yYZ+=$-x}Rd+Ir>晓?b>?M4~Qmµ8HX]2Js^ja5oEr3g(v^RW'ܶHN2x_cm&WtW-F>A, $5$';!&B.yڎqF .7;"90g AA 'D`H"?F&$~&Lz!N>)UNS |Є 'K" ^ Y)[!73OuݻdvHjq(r~u2{t~OM|8"p 'D`LH"?&&.N7$$%gى^ut8 A !?~Iu?qnBុGPF[!7 URb#)|Qۦww ~/1ȴ^!ϊ~M]'kzTCRF@ *HDbn?785=OLׯ =V"'8Uo~(0[o?D`iB{!uIa+Jz_QF_}f9X" vQ]("kK! |.dr=j5Ql' ?n91!yyHILpY|4QfQ'4ɚ$ϓ2wX!- c-  " %+$tҙOO5锟Jm/鱓L7oeu0K"##p,NkVp*WRo.D>J8|Pj90*w_FgDA=K_QX=96̺Ƶ*9 |:<-R2o#/ڇ0 鬛Be0X;j$o7b.JȋB,{>%c{Uv} =|׊Ss$ y&k1YUZM6>vD%K=G\h_ EmRCZD բ\5&%LVeS"ˬHOF_O fjU^;tz+i=P'£&k=JbzYZڿD notE3ȒZq'hN \B񸑺CҺ źC[O"X4$_4{kEP?DO'P^VFg>MJ'V^ $c~4 4[x@6IC6%ǐDI)|#Ɍs¤Wɖe8_E^7N7j;di)xX#KC#b"idC֢gSǹ> k;CҎ}~qFNO|!kQP,V|u;Kڝl/DP$ =%4z-@uYxmڟl/DP*tS A|rxcG ؍(o$֕\cTB@F z9|zw}r|۝o)΢&[K! | wxHz6:-"Sݿ4 ZZ 9qquYnVnA=VgEHm$oUiAH"h\^H\Ӣ/!ZZҊjQF Q#iWɱDVaeȏ$6#[z,6(Lr3T.-eYZ`7"Fg)a 4:- !B+Q+yIO0c F bό(IH.ImIL`cR9e}P>D4ŋQJ`Ez,v%E.W 2 Uj+K3x"O_Wm}8PBnWk wdD eD~?]x&m''qe',EzADO ,clqdD@pINXqoY$㌀" !,0:LY+Q^جiU H3]t¥D$< ҆( )g y,qF@q f_[s_=mf'd/; r(y)?]7M d-]=#݊wRHYf`J'Sҧ^etDZV`_>S 6:B=^Pz1soi!)YhRuP^9D.E+& 3ω xahw*]KGPnB@0kqэ{*%jdPPՀ@BLT!/yR HMDiDc4\Lw{_ǜ:kTU9r!L(5X-rգ/A<柊Dz! yY}NS =#T$VC2bS% yAP<䦌e ];CٔL}Ox㷢P-цXAQj/ i?ܧK svY$cG Ha s_RZ7,R1yZA푈JS+%I@*J95T D*y( \6r9b{BWg$lZ}r3'TmY'Kbzڌ;Ya72sf8r M ;vQ$Z1.eEDw8QMè&2BH3uv6.%XPUdVa`rBZ䒙Cno?L$ɀ&5'#ȪӲ"kHp]/h!HU{GSW֑|,^HccFPzԡOγ&\IUԿ}3Uv:)šV5WT&;IUlK;59e#X4\Oy~[qwU^{~/evJlkFY ؉qOrj-$8eiib(l;jWgb@Z}#n5 kjn`!uerǞ Ѭmq *gJp:E?qJ_< $|'D_}0 1{OmJŕG-~P%AsК9JZҚV-H?Ŕu?A6XJ/h]N/=nnO>u *;[*.?P$ZhBFZx&z~;8<dS #]0gBˋ C%0ތ^K߻a ~:U1wcDO*^kIL[mG Z/rĪ6%_ yЩo?T`JUM< 6|eNɸTG~G7w]}w/M/G+W*̕^[&G?|˽; shwzl#0E68˜H.?\Q_=]뮵=ixR^Ӻ ls%ODy1O Ϳnep&PXnT\<)b($:괗B=W7!~_]i+}ҏ*3X?`\-I HoJPɁQMA[+CZd*DDv5|0Œtme3;: 裈ʇ@L2ޘiBDiF?GӢYIoFϠ_aNA_|=Nl=ޛ 9ðo%OliZ:3} fTՐo$ xGCuygwwF5'G]C4{dRtn=gKF49(6 6a4 qƒOKAJAǶs\2ÐOmrL8Ny]X$6^vDZBE"@MU4wa>P\+QJ;W\bdBB"=Ay_1qh"n?_.*'Ju1]g:#y2yD\ <4GMddi랡A+b>$LbB,KjGfo/` Lǂ4a֛?:H3،eyfgqiY@sb6qz^P64Ϩc;wE%DdP`a*e=1grkN] D MH)/T#P<{c)TsqLnS@a<6ʏ"PGQߪ 3yvi=Tv":Td ᙯoBЬH~yh(b#x}J>oRgf7:Kٓܠ=%Q+pI~M]54p5)fDg8*< }BtX,^~Ui2/\Ӯ^X;sO}`Qu*+-}9bkQYШSoF`~6+byr.=]n/;;dӧ趯ҕAY/2emwN1?Af8W5Pwth[P&Hؿsj 7ıh֪2yy?ݲA6cfmaU\A1=QqtC0բFKhaL0sO;9zk+={E͞枿V|E,^P#[͝ OKVtA!җ66>"$ re-|w鳧N 4 ~FχEU>G:6}6KCUXP _1*ưB?تAޡj4^MЉא/6Z'Bl}wR׆gZYuP>wWu(3RP2/\uҤ~wc FL{=#x AE P$iU"U`B #Ӛc3Jj{jx (FB cK&l@"JKf`>__(#$ҙ}|4Qu ظ^Xog܌Q*)w%\fap ǚx`L~ +Pⱥ6t3>l8+3` KR?:4ۯFfWH۸s>͕ePfҌBa>P`1|J"I.p_T8/m-'l'OneC(4'^#ho&;Xڪe#q2 H@ +/ i0'uTTODC(ߠoշ!.qXH̼nevENI1px%\PG̽U9Cln3_'D#~I \ŧ./|G D>ڌ$p)/{6w0x h\&H_FYCq?'U 0>5PbBM8 (shfh cd?XY56cOWdrvl-Ýqb8.M k^yMOQqʼv4j֒}ARͨl_N-֝zNW,!xR'N=ِDl$fEC.V iulJ#=dSSj*UsgBQavr)#8-TU[vu m mh?q֦X3LÙOOy-f87N%;] ivR[&|ZuUL*>F?CYݻ;6Ё'ı,d`4OST񅉋 ZZR30QA9(©Hsaf n[MW13;bg y -}wkt]%nK.MIx'hdRHaVr#i":B͇#SBzh^3%D6bI$@HNndD@"<H"ƀڄ7IiXN= _K4n5D 9%916M0#UPN(@-0'd:PjBd\!d-%' qH~*ˋX486Wn֢}VtIGLG+ShȔ!cڶȏ k~4~"4o.ND-|>'oپz i g4ѠhJT'kB k%YS>!QKa2YE@V/bD@" h"$oŒCH$" |DDKU" ԋ$"&K$&B@&Z,9TD@"P/׋/HIhP%@H"_/bD@" h"$oŒCH$" |DDKU" ԋ$"&K$&B@&Z,9TD@"P/׋/HI}Q4ICTGotXm|4hu(4DMBIm MhMo4iB1j)kTu kRXUҨ+ ֙$o] ['؊)ڊK'K"6r 2dSHJhgl2qnYE4&AOm6!s\MEIwa5U̼,u# y 7(Q5G5%;.YBf!o#@˦UͅH$kO Vj,Md("qhd4pfNr2yQL" )%jLM\#WT^E{RSd1K"WgEEDUԋ$"63VL44Df"R U:i4eUAзRD0񞣼7?D@"@HNCE" 7ȏ7?D@"@H"@!"HIQٟD@" h $oŐCH$㍀$㍨O" 47bȡH$F@FT'HIh1P$x# x#*H$ $ r(D`D~I$B@Z 9D@"0H"?ވ$@! |-D@" od_6.[ߗ YCGYG `uÉDchy8ϝ,#Ɓ<н3$:# |Mh,5MTն f6UYGL;I5~;C"7QLET'q(!!Hb: ҅%'?0'J409^W\]16M Th8O͔܀D#a,E (qADҫlIǂMM湪jXaL D-vSk\K;KJ+Mie#mJIi5XBJ| $ Y0*B_f@ 20P P$ӪH52ŦV'.ړtS/EXjFYoVo E¸0/cXpIڄ6T4k <ҥ ]\JKDN"?APaJ"?dD@",H",+%)Hƀ$cM6H$͂$ͲRrD` H"?dD@",H",+%)Hƀ$cM6H$͂$RRD6}0vcW!"1wȧ nP eBA%(u<(%Os ĬԄ 呓TCb-9pj 1ulYupˉQ"t1M""&"y&tKa*y3\RR) YT~pzAh{8 zMRp#ݙG@4YSG6Ŏ(IZz;~*-Ne㇀W)7몣%c$Syn DqY'h(Sۖj%;6JfP4#)txGD(KTKvPzdmř7NN#ADލH/m`5E=[G[.ġX9hܩǵRkt'Ĥ$ tJ* BW%Fjn0R8qLFW_s"#C6r6{5UQ kXZc>fO8撢-v9[5݌jL8'٩""FYb|qG6H*a6Sn&Itzsi tCD>%@&(7"Y_%<Jm5QI)m1ci(Nq yg?ʴӪ6j^ ΪzeXu*رzW5ԯpbP8^ތ\@P?1_r4I0.(ڽ5E}H-»^(4MIi."ϗgA=L?D^ܿolQ[z G1H?Il#ă~FE$dweӆ74-Kzl]K:|V{l't{9Ax2f+:Y;¸>!4StÇ66^ lGH?`">)t4뺝(:),Aŧ>@b=@0' P`jXGS.fޑ/ }yl\w)h8[X(*؍ ,ȏJP N 7\[eހcFuweŊE{PPb$IrP+AMV@u(1A;(&h:QbcaHWφPH(՜#4@ rzڬY1TZĶ)~J! ;pgC+|e">!5^RDnˠS.7{BbUTj!#e,Q_LsU5#6 tAQ0|bz&ɽ݀;ԼlE:Rٜ8K^} ķgv27~$QTQ͐+?g>t"=Ӻba]Bq)^7PҚUբIo{Vi7=Yؿ㳈6zLoC&V_@C )&z?S'&Tx*B( 6Ua_& :6ШZZ+!حOPK7Ӕ,1JK⃘G "Jr+2as+ma1=pgtrV&進{ &SRT]?(HK/yH]18-ԚTn,LUJ^rԠI RISZ'̝b`bk/RI5bJ 8wd"NSX$GBJALon nqJmIZx  ۳f&1Sl_uq/De_]"cnKoM^R] 85مowFkvQ&C!) Ki}OyS |t|0D~|px1@S73*Ԩ.d.ۯ爬Xxe}&Ȑe0Ox@#fcOQr(X' ȾJ! I?'̼A1W$Y1 'gcb3+Wr -SY͇%P_>QBBGkdHQD~,pߴWxsqs6%}cnz; ntR+?=`V-qDŁvf*Eb|> Z@lڔk}bUZ+l@ =4:~4 U%|SoOtDtgA4ᖶreAHuYU^զ @);Z/|Q3Er+2ś_**p)P٤*fi k8Pt՘q[_/ 1.GXX—j8V" q]l"J^zSa`AFuMdbA^=VCy$㇥izX"T/DI>J@Y0o=I Qex9줢Ѯ0!\jLA@4VWn3EF< D&~>,gm)xA]#2) zzMc_̍4QȂ}$N!ͻl1gXނ=|Y핚-!R;Hp(^0`LS{AG_Q2܀\[@TUWmv [ˆd=+޾rm=YU]ۄS{Db aV[XhXp|k6<70EDSe'i2'֑FJpg@=q* >MDHu۩s.KM/#Zn.eA8x2fZ7by;6vMb *6Ge1`S~:s Ŝ[ fsu=+fp2en}-}|;ٙ`Y7} cY: q:M?.tI\MGL#@{29Ao7a:?AUqlVbtk u] 5njp&5?g֬KB{FԳ!0De.6ta45 YlZ -Y75N05"A);A:([|˾FyRF尗°'&la޷ u<9)خW72m3݌-}fȌkMfۅ-_qa<{`{*W:H,|>nJ 89(ݳl7LϿjaE $b0.,PU0׆9yhZ^>FJOFhnx!wߣU3FG94 $128j:!j^c`=ZWNžpm EQs߯ǰԐ4HIC2 |eraFùKƊ-G>.L4,,ά:%@l+!mYEadIkLAWp -'B%dw?nPMW,m4q{G$Wa|Gwl옡 d2&%g|;>{q9!1Iu `Bp =äI|+C1u *C[9HJYgRe+3з@  ΌŅuw"eY9"0M~w~ Vnh#sf9>","vB/9? hؠ@aR<ˠTi(̱U% T5U*6< OBك ,]GmVo}+#LXba?ܒ؆t,߳:ԕio o@&H5iˢzOt1_?EkLբ##5N{7(ajA;GTv$z+P A^ ;tQI!淐/!LO z{BET#(5gFPt % l=2L屧>[1hU/ 1sLYPL\ zՈ< Zװ!/P:W Aҗ^*_)2Ç][C$":ɦ'ķm%&Lce/'|{+Mi]p>ֿﰕ|4ޔ="!O<ϘsOx(lT!4Qp)li0G+ß=>v+bp Qv=>!jqVzI^rY|R,?=%8bDS`@!k0X;E¡ G|@5 +'ݔOP?QrN7|# V|&O1'V$!OD/p߁`g.JM`r=d_(c=uTmg¸Ruj{>U3ԮC1t!F`S#tV(yq?IЙ ^-|~|_$3pP3 PƪhXVЉρ !i׎(C 8QU!W@SڹQP)6 ;9SP Q B7n8m| 6u 70 g;Db2NMkr/ej QѹV3NéQ D\At<H@Nm(Vw? - H aĽ t"MdtF,f|'-feiS _uJ`4k@id^> '|۲:წv.q$bտ<&)=yן{L,(1oF ͈/ Gt9BlZ%bLn"4x"[HXG:zԬhJFUSmA~H]M0{?`S= :JlZ At$XO{M::az.ٙz9N3*'}$y'`:b/aܢDRFs[5UHDF9EոyB}oq?C$ QHG~۰h|ĥh}8qw9qݪ}~o$NUn}b#TwQѱmhYyID&ss9b#͠mŶexmf< ,3C!%3:,]VB\^ɕ9 * ".̿JdMJph}vn]`d d@Z0y >sǹAl..FWyJŸ@Z͉=Qeƹ`i ~&נT09♟cm.$'&} gOuЕvcWMWbݩH271^W&X KcQ'0\<p00p2K}9{>+^Y-UG9;ع?ZRq^#xmOPp"f1 5/;}f)l5Vxɳ G l}LXī*QYcq9@YD^V/jy'\F#x8YF*"]R*0`Kst5 {¨fA./VECg9wր?̾OgFÞ)uGapu(~Gu .ͤe.̆= 7D|4PAi~N͕ qK1,L8+zDq?*6JO̘S\S! ӢB"T8 /a40N "'—Ҵ4Jԇm$&]ZiOmdmp4Qk29qtȧW$?,OOG.< f̝p)z'~x{lv]SaHsD_ $7L]&Rj JVr:^ԇ1a58CW|;ע.rԠ ;AXs0K07K ;@C$3 ͛O(BŦK52!>Rޠ/|E<X|Fo#/{pTŇ*Me~q4h @ ? /GX8* Dnqܳ0Yc82r4 BXO 5T|ߟʯ T(*\euNVx:`}p|IZ]jwq-ȏ+Y4d|fױ19;MZ~!={vetiS@3G㍙Y]ʤ kr50@juE[:b.8JFAsܜ1 #@g:,@M4V!|B_~."L(c3!"{Ȳ npÌǍ³썋(SvIĸˇQ$_-Ln ^rQ?p|Ṃ{\RlIqH-nbLpvlqƒy uB2D;Xxs~?M- -L WrT}+hĹbkuS{)A9F+$#F8Mf"*<\7D߈sG2$B 'wX395xOp1jL( ODz} q^v3 (Q@[1\s6_>quM$+tG QN|lXCʹ@XE-X@nlH8NfyDhT;Tt$3c X#PRq !<TИʪ;J[Ԯj&7'4yQ2AA!T0@5CCxdDOxǕ9L_YV=G.H aPJBJ>W1F~}jԂrm gR9@uC]@WQ9R@ CʦU@߾ȣ)Fi=>pFXh9U 9888T 1, 1wو̉mtq! lF nTd~ ~9? ~YCv+fZ]-,eJnm) ٤$݋{ɐs *ܗݣ0U[?&˜-X:{4͚1kLs2.HW6o}jƉmSTsOIE6(SH"?jPΈ9q.Yz7,.縈8"z5Ma DgZ߱JΌmJTL[~! &3~yO|qVYQGNd(4HTaXsi`toX W {9zfrr5vWJ~)bCH`E,CUc$8GxI,H8T|/X`2u)m̘w$4uݴl# !A[VC/D+PpIqC5_8!UʸuyhK" QFo$Ѵs鞿=5j:E(уU9{.P%=; j }ɢR?8H堖#HVafTkꃄ>Nq~^[ELw0b-Є`Z샽Cw[ |+g\ClMp-R[vډ(f&4EN|BEP,q(G r?BH¬P!Z8YainfZ X(Ԃvjaj'.3U$бT4cjXezE `-_2vq?Nf/T z{|wjqUÅ,WE-2$Eq̩AQj C)J5.\\c";V c sJ9 4r_c@H,kV~6l+N)cC@lZ| H& =6 Q;$ڎEhUXؼv,-(nUСnX[z1$'czIq Yy]J _S( կo}#EX I'xmE 8i-iܙ$it9O'E&M90՝u1s>4"d|M"c=;si\d,ͩWj {1+㮺`i/<t{([|NyC2i f`"[F񟅼j猂dŎ9$^81v8 r!̋]I!A:&aH5"t"dF"Z Ul. OW%M0g+*Y+/M4gRB :$ `%{RlKOMݺg$J֜p[}M\Q^~̦5RJJcF37cfRPA{z\;gjnB*ub=aE jb;h`{/"Kk9o|l@դ`;OQqD.~}gkA6tq'MZEp݆WD>?SWxh7m?U}I!9"'d⽇m e]՗a>8q̈́ +MA!]i{Pβ`5 Xq'bK}eMˁc9 ,#H8j;^b%ȤNeMᚩv/ZwVsyїJY%Dݴ6"A4&=2+ sVҗ*T"*GTXMDZ "m@zٽ. x])0xS'MbcʿH$)<ЧJﶩ\Grx]# gU^hfxx:;gc<$U9D<۱4I}eߤ,(0OXÃ3U`e[`f{OJY`XB,Icc2h}dV|J`@n? ij8%TS7\ >]"&A3C#He"PEHS% Z4LUc-C0'%줳T8"^!Žu!ea8XSdͧx r0쾆5>~Q.9}>`'hPu&^qI1VlmW _(rSM)oiʦ" ]Ü⡤oyׂ`.9=lX1}73b63{:裯J}V.kwkؘ"^ YX`>1# QR@e`l|p7?| px%;T).  @l,h>"sE+j|jr@ Â&WfERLJb/$o)aN;ZE޺YR>q Y ǎCW@&yʐ=FVĪ~pz5,-k> F kPS  t(&L8-T-k|Xo? =fq#?V#h:IF2n^ (}k4K[+4x16fEH3}쪽i=ha/!*V]02 KEHe ]ATMLtiGb̺vC}:+6 PGEKh aC%hE' *1gT{㸍J>e2oj k&z(abfkZ٪(Ad {+j3|T"1*U2},E+h Z;Łg!NߑA٢GJEEO6 C~'[GQ M9 CA^JXQl5:/(e2vվNLʻ4PX$vXF7*}][zܾ"0 "lAe!8 2Wh뱬`גn(~ {R2v Ǒ\~ q3bB{q- +P a ^6c'q2`Si ^9踤R> 9pNbRRo 5Gmy)S>#k1#|'BB>J"Vi N>Dlh[H z H Z?O)(.1ūu}C@瑽lQ$b#d+Ah\ō^qPMb]3 1B@X!;h` 󅢯{o$;8n nr!qPuJtH6: ,z85G^ o a0wE8p;4iq|M,Ei3\3A9K]ȇ1@43;z!qsV8)_o u2jjX3W9b%EE?æPl|j1=h$O'4k^*`E>p^PHs9IJ#x+( 9Z6jjjO"7Rq-+s =n2|=9 TYo%4_PAD,9l}IGIț4Čy؅uY^ aL,]ܓ}+s")SG6r áι &Iy5C|N\ t# q0Dta {XOU*34NPor)_,eGpoPX$lq.Lm|COs'8X̷a< xӦ%ˏ%lD2GM~04_;tKOhlӹ8yW Bpk ~5*]C Q ^,I_`s+=^9s@Ƨi˔/B{8zۢRGa"? Vhgx9N/[BӲ<*#^Sc-a\Η='bEdޡ{xAf0fZeI%+@;Bw6-[l u튅SNYwoX #Α$@(-'}e@HFIA4 hԦ6W" *LрEr-"́ *탯Ȱ+ N>_ *@|Kcc3Ge/!LLq~[ WW6@('OYJyaӲ⏭hN(u `.8NW%x5Yá.ADr 4e6 ;2|-SU֖{W%nB Gݐg{#Ln=)/޴:c(sYnG9iY_-t}weST%b#ywO܅:;rCt~W?1?k?m3i}1Q0Mc I  ϚDӨ(WntPgfGϝd+kȉ$d>,ϋkSv7TjqkeL)_Q׵ "Q' ʹiцـ 94-B fhɣg%|qA70 g9L66/3GYOQqo%5"Q1'f_p J=[< i'(K *r{t=4>>R\-ǚD:H,5X)x@L"qmDY6~]Km^jep< {qBfWGW2"&PA>]؉d]|QǞr\0b:'Ճ%ߏ03t g RY>."L QPE~5fo/.B0,l@$CS]g:ry2tߍD\z6dPPczFԓD~4(-:p[I \׏uxW@v+&[]`,ߔ :1ś78.^H}H,:hyPލEm~S{/D;e_;?DQ_MLu`oOvPi薱ć:Cʐ{qE:NvޓKT44G (RM+,Ff D4[ G=y1HRD{ AN@A,z r܃Bu)wrv0I0L&'w!#_WN#gY?OYsA[ l藕LX,X"-jwo05[F1S?#>4}|yznb"l걐o vL}#t# 4zNTiT/(ȆNI[ J/*ࡉMwN@ٴ<-Q~x3D/Ȍ<50EkSM3#:-tK׆8WY5Z0 df_WflI^64*BzS4QGK~"32 KJ)BY#= a ŌfY8S 2.YgpB<^lPyC⋡LqI4 W^=c XDށ Шnq@ۄl/C ! 3sضHUaAORwcWa:6nCbz-/2шTsMn+X̀8H1UHH8Z39nh ֩KV5y# d)o9oGqwxU_nVA߅0TPF^T{:yӞD7jbۯNvou~TKf 8裱\ZE1k10 vC;.~PG[m0)BNTܥO=ECN]WYȧnʸÌ@ R윖=Ӭ"=3',qVO@JjHqE3)+%pH7Y|SF`@ (c-u$L2 by@{i\GtX]$s7nu* j| #4@S$/p!BcP$-q]"O7IN}0~ a ή,U7HdMc%P$?^E!t&,a)5 C&++CM`Mc%GzX]Vv Ht-[Ѽuc/윳o)N k^Yڋgκsi RԿ:0H0mPs*c& I! @!`聋 kd*UM u$qHHrq޴"~/ 55BШf!=@Z誯 dZU ];2s M :Zy_;~2- C\ #'sw)4˧zyH%jH b M*P v|r(@j>Ijߗ_r3W\∵żCH ^~ uc=tVzy=Tsn7E:btVVXvu5mVH\Cs"ɓ78G}=>w .rRdFG [j{7ʷLAnJo;C S}j ժE )ȯH|t#`_7ڎ~ɳ2vFlNBziS`yW7 D."9^ M0s$i^ /p8{/@NKϛRv qFe.F&HZk!LkveMM/ikT|;5" !)ؗպXlv; m{h:mg*è -ddJoAӊȈ=٭3e907W |ឨ0 6WvwiSDTKLjt,< =|}Ӷκ!)|GPIW;D+1h$8?ftV&v\=9Iy3dBCd[# nzCVrzՏ\yٜl9G ֟wՐ[n!70bUx~!)/_3?W{5Hwx럊@Þ,dSE;e^ ^M@N|f-d*c?qDC2 7c;S&-M+虋3Ι:w"ΫH&+$<Ћ$bo7YlFok c5#5!9`J?13GVJx~řd1%k{k{َI Imژm/EaMط瀜"ʃp>ڙ|Az 1*qlZ"&5GX/)# +>M >PN5" ~ݩ>?6= 9,MneFYdb8B~$F` b;) &?v]/*QqPzh#a3ZO-z-.䧟.HCNT\ֈ3 :>Eť6yB~Nz7 Yi0;y- oR1Du:[C/V$ K0q>JvjIV vѦJ!NS>~m>G 7vaFpRV}MGpMTT.|\~| N,yOQ6:堨?BIG%C6O:g5݇[ _y힉ޣIc?&vy$tMwuհQZ#{Lր_;>cנZ<@]9pWQIxZo u`[ D[%Ffur*&6@&0CCAHVFⅱ-c=Q Vkx50jea u5D `O+T2ND;njCo:#~ieOs \;Kjl$xm3ml'#&#yk<]VeO |3ۿ1Rw|<~VPaȦOXKY99DxgQ0|'s kȚh ] Yc~jm:M`.뺹ӯ#3;\LTWױ午śK˜>}8u| zόELո2=A_buR~&vr EU-ʹiMQ:QE 5v|ϪSG&TNk,5cGHr8dW3׋Hed -r3CCgr=DUL)O)vC:u ,[]M\Z/f)|Iq5䛗 9Nsd BI# ;)-MSso)7X8EOw:\ f{.Ě(\ӺlVX?h-Yځ)%)!yȚ|fe"_(7<3ʌ U# uxVqlv0-mӁЁ|n$[v6@c("kҶם_+~]H80fjHѵ84~` r,WD'󅽇^u{2XCd!ԍ䜥gXW\V?ex;A0oxVJPmݮ/O/@HȅQ50#*6?.>4=>"kc@[ene=tv2XLF2_Oؾ$[OpݾePk!!SedsrK35N\K;'tj(_/ёh[d1Xt#3&$JJ)y%kM"YpBۈ 6;M^pDIG(kKK:9?kD@z)B>ew3ۈFfz@ӱ,0ԼB)h"4/K惇lw_Bbmd% l̅EƓu VObB$X7?ɂ Iݻ|d]zEjÓV+ $ BV2[dTT!vtU5._ R&IT^KpW_FzS[*?'[.bLdb(8]-_ ]ݞC߽ ?9 ceP ŷy~H :I@.c&ku ;-2 0V7EE<@@ԓ]"893>gdZxtkcq?ގ_OBo8*tbkqD# LM,kuC?Ad7ǼV?0)ܾ̀fmk-^Z>+'CNkIBdL^W|XȯȥبHkNC1pNXBId@xzT(M>CmF;;9z)%I£yn 4:y^o' u) #eHMqJb͢~y!>2{+m~^U .۟}0@{'yFYX y s'ٷn)c\M*D"GZ9\X kVOYkZWȝB 96;pv'I$0QjG}\VBU)^A!`}NA YB&TȲt}GH_HⱯ18&Щ̚MuzYwDMDF\OR{V,7aiXt^ĩł3^/C9wB Ҏ<<͓9H=!Kی:J)z &d#z =yMxB%b!Nl +ay(~[&4*O'C>Uƚ;K K0(PP؉nDT.$;9LrlZŃBۤ` އTx1݅::p4djK辵<S!3UtjN*}j~pO͘ ~s J Nfpy}ШKye%Xwq-_<3O3{7IWFl%z(;^ylT=@:mYv ͒ y?ͷ4z*)oۄ} ގʳ7]c eilgM*XO VbDM@t=VA-grTfn烿SWgsUm XDWr y"H Bq͇O ~0JUⴎ/>&X*BC_ۥPh~Y$T|@6aH*ؚFn#;va ћ)rO>$2 CKHWK\l8ͨ#֚Ք0a!L3X[ɪ3إ5[nz`bN2w)T?EIRx\A2]z>Y~{t }^7cs;pϭzZCe*,GNjXXg?TV{ݦpD\s4h7\!<oORTF ēiGqYmQ)5Ic{Vf,VFOr 4>0H`q;LPk5^ܞ1UDOK;DJHx,~){.ˊ7CR<.SVq p 2ʻU|>!wkWF2[153$\tw]M#4gYl 3>,0(fa2A4)#oAϸj5w0cK2߫i.1:7S;_H̢g! J\e"#N Tx~1ț:$@ p=Wv~ѥw?q_W/H҅SׁacդSOn`]􌋅ȭL@ Rγˆz[J),ПƊDUo]MGrbW)1^J#$Qݡ 踬~xqDĂbꭉOk]hP1iŔi_]בޗKLBLVtטZy~i燨-\LRr`="2} I9uh+=FIvv-sF=e7HRF.K0Djԩ>ҳ>:v=tyt2>')go$<@gr(ֹ ׅ44eh0Έ^nu鿏;Or@g5PIݧ?|ef`q)FP^_I0Urfx3RtCAX|ßE!G犿i*'[NXO|>DXEgdsvO9J2=pY%!+[_K/~ ET ?(~Cgi.d`kĥ|I>~}&?GM#zIWq)z:Қ= OXXJFS,N> Y LAhnAZ2#,]Z|ѐ"0/!,D7nO`8N'ٸ '"ORhv H}&J\3 j\vܱW²O8fx0ZNWRH3lH8\IbyzX3mլld1zO,,].!q񟀊< e9X&E'~6*'%Ɠ\1'*'-~]\h5 >->YRxA@>#G#(iܙ3N{+62MX¤~Вq8&s wO vdx~Xg!XG?X"Q% x#W66  =}.ˤt#ES]MZ%aYX %-%o#K!xG̶{bgD5t"}ץ On"Nu><[ITq@ jDesLF'8?)Ćh &lpE$ws`߸功ñϗt#.ǧ`5"#cfWn(*eu1"_đ+UEܟ{*^Q{j" ]eUm 6)lC1>_7l5o7BS sاH-'o4v,A(q$ A8Z6Wg$|}F}$I$Lq|}h?9cǬ||8;^Zy҅dL?`Butt [ا4d?x>SFAb*>I!PUi}BA 0gbrƋ%Ɓ-2l854!YzL/Uz#v<50J_[nk:pB۲NwƧ F/z4 ('2]D lÉ}Z|OTq"Z8 ݐݍÚ?!h0^&@v0Kcbr"ۮqL p;KH܏B jl`竮St|t_u*nGj9Kʦ=Fh>[ivKI+\wOw~ċ"k~1=B5U0c]?OKo zчY=9_}滱f鳱$߶XL^7o8t3~f#/7>~%_nyvd|kɟ垃xȨW}@_IcFƣ뮛X?BT ?7']f9=2:Í.8J=faC$~~\c~0ᤎPzt/Ei\] PX߾͔qԪipLt.L{.F}u,O>!.<#P m;be_K@g~&b^<7l|pq3=ִX/@oxD~@0^9\w<]HÏ>u\}h>fP1߉\7w|DKdx<|~Biؒ]EZqC}tS' w42?2_0G&W=*hі#zzηjg?9Үn\ϼ22 u{/4kޗ  DEsVȌqLg5AhݱʻEP×xC.<98rcy}5Qދz__fﯿ=h>9S]z1=ACDž6_;]/_Bα2θqM]8>d( Q'b"YBgS%㗦'UvՃ=S?3t;Wbus\Mo~zFU-O(7{e#\ #=smW;s/7]HǝyX|cޥX}7 }CbU_ëjߤu3nz2uAص#X 3oLO.:LHɟ?\u55kC\tc0cp32sKDžf\x*u5 ם@:]?V9? '7Rr|;3Wo4~}`"{r8G0!ɋ#_HS *6OP5l0\BXar.࿷Ћwk|VCeW5[W 6Ku6P&ڛä'k-Wؑ)Ll=k9ynռql`j'`oEeEks\$- )2) YS5>>nb-WJW;e#7ylY3|ˀwrm[Ww Wb +ǢKUd'/ߍq#_} 5$ﱗE:g#.HCǑlO꣯vvbEڕxʢ܂%ߑrRB2RAo`cd6zutA))jb8 uʉ azcKx8OhgCC/lWs5Xfj4A 6; <k> tf`:6*l`J Voc&dq#vuur% vG55j<K"?XZq|eD AŜ]nf^>gweEI֐dqNj5gK[.\Z쯿2*6=_1BT &)+OR,(3fLhp Hy9xi/!K uG3@ YJH3܂Q mKY9z)?fZu3trT>FnSݪP.B7\׆L_C l@C_+ط\\͔<Ж o"f=NQ*oe[c2/Nxm-^`PMvD墒:\3ux7XTLr! !*ESxD.vYI02\-b.3j8./QymWђ,VYrZ.ЈZs~0+n@0gR('Ʒ(h5P$ i)jk \0#k‚]GP$~ܓE)a*a 5@B{,a0Hoc9#V)+ #:#cCa 0Ƒ$Ai8_YykN=g/j.kB I2d@ HGbЃhw8"ϧ0eQņNwsl?qY?U\9}黣BG70Ȋp..6LZveb1UXÎrI][hs] 휾Һ0aR!DjQ~nZV+c[-7ѣrbێC?MmV!ش&S?)uk2}:ZFbTaxX_ {-&47[ 9D),{pYuMN˟?VB\o{,Q5X@E9CsG*"8%=,5X51f㏟[_[}ooj|[ O&a0",/욞Mn޷^ɏf59[CEdR-DosWJTN~$/M.ՂI=hbnbe;+m7CdAwWWdg\q) O%Rn֩=3~#@9ASS֏L)~fꔠ|7>BfǧO =ՠ* Y4raKo؅w-2_%+ﲞŬUx{QF=|YO>߻′ 4@y:ޱH[V kwiXKBN j,p\){aĴ>T^U \V@2udo$:q{ȿxH&}:]UK̚W;y:~k*FWV5U??%sJy=1OW':u컽@KGڜ|;?ߑzxyb{;3T*:J"J:J){LGo$ꎃ]1 (fLU .#bX#13h*+؈dfS!у[rw4OsՀr &G Ј(ke4/Ih=\hvy@6D{lQYYM̱AH*.#0N)|_6."$o<6jݿXJphՂ?AC0S9dp;SGJ{c9?A}c߿~eX"ؕTfeLRwUIO))#œ"%X75EO빬zě 6SX-fypM#3P+|ͭԳǁ(S]}G:QwICo{~?p ϻߺJ_qaI;p)eݼ.Ir:1{敼kn0pi #ԫ18;0ٰ F.+"{/Y~6ƥE@,y(e8Q>Qɱs=A7AD6FPQju&H0#wĄ[Mi:"8e|\:B-$zpy eCx^6IzFh1H7ZrA\o!|'`xqXhi[.@ I.d!c%PұM}Bgb09ɧ|sIٿ{㱬d8cfK\xA#r_Mk[E {zª:Z~ҫc;,HHam l;h aw .zPL>1s 3Hn55"?us"ȸ$tnm\#ǴY):R& ܤNȚc+YN {P89$kv0 )Mdp0-rl K8Ć |a, "lvEHu#oF(S3!MwOtM!XF ll$hH-cl`( hiE Me4y!NH$c[ә`kŒ̙K䂸t\vOIlzC=F&=+WX'oc=dH$i8F&?Db0Dž$L:ViCag5#{HFѢ#!]@4Yk0=7S344nw_]'<9T"I݅S0Di{fQC,|CB-R8Pa J!Л/";2)Q;=cco]"XO^#x^ g4J|.) ҜYL 0?@"(-6SNX7H%( 'u:(!& 1OOK]y]X1Yi/f5cG[*+Z.qCYU]Iț*./_|>vz?7!M^nz6Ŷ۾iBC~҆_m絽OZp~Ɏ?}zrl[;GI?cM;j@0Q2xf azZ!p4#O:OyOJ=EgY"|Yz`|z{6DvRxȕfw6@5tL0IDATrm(۵L}!N^LYfzF`Mg7-xI`E{AזOQZUQvZF.F5.k!{ љGQ.޵ltSt%e? |n5Jzk9u jFn:ڄ6}GKoV&Bn+a[/4/zW6$+Yz9B1um[W,R*"Ro*B'ͷ85~@>mRuEՓtu[[߻˾w[p65wcx׭P.Йf[6; t>R#~OgJ&lށ^t6> mv~ihh]l"ѩM͉2O^G9.%SRHzBUE&YtuyMdPpi\ceP"׮.3=ޟ|{]mfWyLN0°F/Hw(EY*Rze`ZYu xhGqH!j{Fd7, SRA8^UhtM>224Xت"-|f)L )K,DJU:yϵcpi g^ QD*0eL]ҢB~*u<(tks  rQ ʸN}yN 56* mD9E˪QTP5̓RsRU\0i[O͎MP)L$ )KzzbN WQȘ`S}uɓgٱ8)WLT%w1N !n@y7]#Uqi *W!PkfAz\ Ghxnqi6rXO?ɷZjkغъo0Ni]Os7UY0n&Z3c)g`m}g,gu'#0B?o0L B~&P{2#!Xwh #03 @0@`!!6#,gu'#0B|0#0 -#_pU?)(v.cK^\L2$(');Y{wFp0TKj5"/P}{)c_'Y (kr.84vg #0eXO:"}\@ Ը'_|8!P\&+_Xk.-;YswFo74!YꁤPX+d&^KI䝥0tJճ4z4|n"ͬ)6͗1ӇYbDfMta@e^ܰV̬MC.^6'jӇL 䧆_qd`r5aOf?۵VOfIXvh"kr]&UյI|v&!#0$R@bU Q,/xtn~λ1^d\d]V _XVI2V8^ri5۝9;#n&WqnhSJ دzsB ǯD8sS3[b;'qLޤ2ZlqFo+k߸O{>KK!+Dm]iVY|^sI2}\q-KBC>աA+pʤU.aI:FTA#$(F *THG>5GTqMLGA ?B2liԺ< Tm@woɴ}#V`!*boK [!(G4BÍXc%w[jruz!_Kr#}Cka֤W ]TIu͊V#aDVy5kh cSF0|^#45ڤĭ6UxS%v+4!mG&TX1>rmՄݣ:lB(ߢPsXQ hwfb-!cP!4cZ``%p$(΁edPh)f5pI2Q ~-WK{T˫nXIGmk7Mf"ցM`Me:{A&uw O5_iZ d8hV2o^g _uA_ 6cL&yT(;h{o] _IU1{⪯,&r '+ξ4C؝?{{ alc>;zGn"AQF^;xp9?i?\?[]jxwK1۪=ķ7̄aIcr_~n.M-~Kc lYi`Ad6o.S@` ?_IՅ`Q[lfG5pZEB62^o\UM=Z30TJ495X~O~^o"hMyy1wz5t\3a;NVencӾ>Ab% \;zϵ"m*H;4qRziE+r\^6(/%v^r2/ƌO9U!9|pܯh+WkoCm:< cFO?l+l ӾSaʄVjy-HKp u_3%,s,ۉ.=W]՞w}Ǐn#K*CK2 I.A?"m;N XzO>`檧\4{4iE)#+V3x_c#s33 ^Bm 9ɜyͦ]_x-$=8#}Xю2-?&$ tc. ]=qJ w=i ^}x1><+WBzz_ߣGٻ/ mOgߗ0BUv+pL4Oꚋ5IkC]nT> p#IMܭ*{4w80\/[b9o"b;zG^D_ }F(#7TEzi tĹc53;_w?_S^YIn0hfiau|2.+"fdl}-s8bVB|/$s4,ӟMWY!7,w,7xG!Whd[:w893q$pwy!2o /}E2HWkFyKKi{ثZ"I>S ^ ]9$.V 5iAV+Dvp")$ `xZF|ːuK|i)x'bOw#_De HG)p/l\~?7,8Nj2Yz3=h]?wշm-ѯa;v-QKYg\4{ڕ‹ I/Doz^++4b3}o,I (]S!SVSA 8*&R-m++_MPXf%IA%'p@B߂MR0&4y«#(α2L}̑: ,F<=UYUkl܌==0t<֑Kh@#s$BdåEtubAC)sP˚~lxd,97l<`I7SV2z!]CFy2^L!Uxʻ^U/S I\Y`H /LߡRAd )4BOYMYp_6kk>KHj  fZ4FPߥV֝Ń?ep Dq+zQjYjB'15]B)W;;~hY b+Q !P3[tjbvAHtSs2]cn<5Fv_.-"BE:^=O5TJ j^zqtኳj(SBAxIgr -^.}=9ar]oٰo2I0DF7r縙$vng} y%Q)x-LIi:;tN }F#}b*,[E3#"x2#*,[E3#"Xȧh# V#),*#0"BUĸ>#0)B|&0@o6׏tFVEa{O#)m}W# D1tZd VDIPsY *4hb-Y`Ha5K:ke0? \ZE|n'+ό\.rIIJ !Q|BP0FU2e r9(ddr|PmCef]\^Z+} PhԒt2uٓԾoSjFTb5jr#/Tqdft9B"]w h\B12fBhZw}ۉ*"(j9`OV6(2kلJyvdH͋G˼RۅPp ˃i Z{/ HkӠp_-]EԫPyxxZ^Bb \V檅MV|@R}rϵ5`!:fm"Tղ} o9k;8_wWFjp9Jπrդ gO8]ԝȒ^T'-ɬLW@ [Xz ljN1%^4u^ .[j =YIi w0yqeeM>8_J@bd a l+.7F$͑mMj6?]6U2#(_shBRnC P讫Q9tZ+*86؁9j֗B$p (l ;hL!oVﲧ5aM #A]dF`*r|#0)@| & )O4PQ{tmj>I]ϮX#"*!I'RYʺe! Z3YסҞg~ޒدEk:h4@-)hajS+0{F#zaC\7ZS d3I./u/v r]=h}ʯj*{5뒎dezxtthe4p]˯h& UwV4}]:BL @dS3\wy[`4Zv ( sf y;GR,piMC5,?\Hj7~oiK dg=D#ow<Âm-W&(kNVHP 7IWiqq%{@P>qA u(ŏ_u\^ ߸  `]{A뿛ki6d=UsӃ$y}'O]r١AL #쾼:pi$w )H$! V-\t.w(݆|s8x-s[*o,mHy{׿'f@/%~s7qًzЬ'6w7몖N\3h-,3r' )c|}kYǚ#7yX{ƚef,+>3НLzYo .2Nv;Q5/ܴ=|4|5#khlb g}/f.- Ui.s6O;>7^\B tw c6e?Z1 '?KW yRb2VӲJɷLVMH G$(Y,胧}U][veg_c@k݈̈;V- ɪ0&ye>W93T\ˎaX)pݮfY(r R/Èoc55%,J5pv>r8 v3q^xX`)`cwJN)dH6汚ᚚ놩bSĮ23^>;xXor޶,g&B=4|r<(^[@| `uCUan?:Z^irldN%T/h'h)}QJe-, - UUv&SvmpHsĥjG቞C_pwmfHRDŽeD#44*[*qGzJ!_s< &JpjvxiUOv>)vK[9K&MݧHrY*RH@Eⵥ͚|Kp|e@~.53[&Β弇h0a C.KsBBz<>`!$aTǿ5g+69Z{:n\tT >x Y8dU8m]VBa55eQ]7(t(p{C5"'w3~ _˪egi㗯W(&[Z1w |S8¤(:xB|,C`p/24k9IH8oG$ﲙR ӥx6wfDfHPȷY[ zvJXȧrR B>ڒ^+0_\C4 Y&YCd?N5qz=WFlYu)DkֱVeC޿qxճ,t-i4y?k@Z=++Q]G@lzZl7. cjiv zdf#DeFt_-550`ąXOFLB`Y?~zRG^ڿ\\$x ֣9Hck8C;a%aه[m$Tyg`n6TQRͯ&,L#|O L]B_&]5c3k|Zf^-IȄ _7\(8D~fG!#:9[nԶᕻsR NZHa`!!6FC*+ߪ tB|e"ruSh+Ozߝ`򯝆oh__0&2L Ingp ٔI+t`VIXgSԄC#%ULQDlLhý/.?hG :}ce"KJ!,S8ibAѣCH+~db1z8',U֩ {W]t3P;Ub$ryAn^hA(,4-R cu^ڌ 67@D 56gD=^f~](p6bebuid炸v/\ϼU~w>y yIY`ύc+)G︶M~m[C`56y|Ӎ 0&pg׎pIE{N/3uGֈW=4O:hrD®%5RC GH#t!}܆߹Ue鿟|E*FNW^oU[7 "XOd]`&X}ЍHTRJB~uPI\(2rt;F-o!&#kE_+o-]]*cԝO҄&F+ =[PJ"gl%F򨔖7PlF0n陫urT/s&q9UQ~C?j6"A R)-ij \#H),g䠃H擤Ocj-bhnu($g%* e2#! S {))Mc'\,gTw@]&ZzSQp{ T^&ًsV y3 tǰ ֔ư6"#&ػGGpL1^S~~sL񪹼o5QskYĀz}[|aVOWH"&y3gF` ,h&#NXyQ3,A,h&#NXyQ3,A7F7lIENDB`T(8 / 0DArialsRoȫ Dx |d 0 & 0h"DTahomasRoȫ Dx |d 0 & 0h" DTimes New Romanx |d 0 & 00DWingdingsRomanx |d 0 & 0h@DVerdanasRomanx |d 0 & 0h"PDSymbolsRomanx |d 0 & 0c0.  @n?" dd@  @@``    Cl      R         /XR$Nт۳ Y*2b$c'KbDcB02c $0e0e     A@ A1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| @8ʚ;ʚ;g4UdUdd 0ppp@ <4ddddg? 0Dd <4BdBdg? 0Dd  <4!d!d@ 0D0___PPT10 U___PPT97nnIt>"ՌPNG  IHDR +tsRGB PLTEfffm cmPPJCmp0712 7tRNS@fIDATWc`  SP1H $XLIENDB`z\D? -O =:@Cooperating ProcessCooperating Processes Interprocess Communication (IPC) Process Synchronization Critical Section Problem First Attempts to a SolutionCooperating ProcessesAdvantages of process cooperation Information sharing Computation speed-up Modularity Convenience Independent process cannot affect/be affected by the execution of another process, cooperating ones can Issues Communication Avoid processes getting into each other s way Ensure proper sequencing when there are dependencies Common paradigm: producer-consumer unbounded-buffer - no practical limit on the size of the buffer bounded-buffer - assumes fixed buffer size"ZAZoZrZ#ZkZ"Aor #k Interprocess CommunicationdFor communication and synchronization Shared memory OS provided IPC Message system no need for shared variable two operations send(message)  message size fixed or variable receive(message) If P and Q wish to communicate, they need to establish a communication link between them exchange messages via send/receive Implementation of communication link physical (e.g., shared memory, hardware bus) logical (e.g., logical properties)&ZZZ,ZAZ-ZOZ%ZPZ&, , -O%P  Implementation Questions2How are links established? Can a link be associated with more than two processes? How many links can there be between every pair of communicating processes? What is the capacity of a link? Is the size of a message that the link can accommodate fixed or variable? Is a link unidirectional or bi-directional? Naming for Communication>Direct Communication Processes must name each other explicitly: send (P, message)  send a message to process P receive(Q, message)  receive a message from process Q Properties of communication link Links are established automatically A link is associated with exactly one pair of communicating processes Between each pair there exists exactly one link The link may be unidirectional, but is usually bi-directional+g!+,0! Naming for CommunicationIndirect Communication Messages are directed and received from mailboxes Each mailbox has a unique id. Processes can communicate only if they share a mailbox Properties of communication link Link established only if processes share a common mailbox A link may be associated with many processes Each pair of processes may share several communication links Link may be unidirectional or bi-directionalb2U!2U! Indirect CommunicationOperations Create and destroy a mailbox Send and receive messages through mailbox Primitives are defined as: send(A, message)  send a message to mailbox A receive(A, message)  receive a message from mailbox A Mailbox sharing P1, P2, and P3 share mailbox A. P1, sends; P2 and P3 receive. Who gets the message? Solutions Avoid the problem altogether - at most two processes per link Allow only one process at a time to execute a receive The system decides and notified the sender  ZGZZfZZTZ ZZZ Gf T  Buffering & Synchronization8Buffering  queue of messages attached to the link Zero capacity  Sender must wait for receiver (rendezvous) Bounded capacity  Sender must wait if link full Unbounded capacity  Sender never waits Synchronization Message passing may be either blocking or non-blocking Blocking is considered synchronous Non-blocking is considered asynchronous Send and receive primitives may be either blocking or non-blocking n3 3  DBounded-buffer  Producer/Consumer#define BUFFER_SIZE 10 /* Shared data */ typedef struct { . . . } item; item buffer[BUFFER_SIZE]; int in = 0, out = 0; item nextProduced; /* Producer */ while (1) { while (((in + 1) % BUFFER_SIZE) == out); /* do nothing */ buffer[in] = nextProduced; in = (in + 1) % BUFFER_SIZE; } item nextConsumed; /* Consumer */ while (1) { while (in == out); /* do nothing */ nextConsumed = buffer[out]; out = (out + 1) % BUFFER_SIZE; }ZBounded-buffer pConcurrent access to shared data may result in data inconsistency Maintaining data consistency requires mechanisms to ensure the orderly execution of cooperating processes Shared-memory solution to bounded-buffer problem allows at most n  1 items in buffer at the same time A solution, where all N buffers are used is not simple Suppose We add a variable counter Initialized to 0 and incremented each time we add an item to the buffer dL cL I Bounded-Buffer "#define BUFFER_SIZE 10 /* Shared data */ typedef struct { . . . } item; item buffer[BUFFER_SIZE]; int in = 0, out = 0, counter = 0; item nextProduced; /* Producer */ while (1) { while (counter == BUFFER_SIZE); /* do nothing */ buffer[in] = nextProduced; in = (in + 1) % BUFFER_SIZE; counter++; } item nextConsumed; /* Consumer */ while (1) { while (counter == 0); /* do nothing */ nextConsumed = buffer[out]; out = (out + 1) % BUFFER_SIZE; counter--; }#Z# DBounded-buffer  atomic operationsThe statements must be performed atomically counter++ counter-- Atomic operation - it completes, in its entirety, without interruption Problem  look one level down at the machine lang. count++: register1 = counter register1 = register1 + 1 counter = register1 count--: register2 = counter register2 = register2  1 counter = register2 `,z,{Bounded BufferIf both attempt to update the buffer concurrently, the assembly lang. statements may get interleaved Interleaving depends upon how the producer and consumer processes are scheduled. e.g. counter = 5 P: register1 = counter (register1 = 5) P: register1 = register1 + 1 (register1 = 6) C: register2 = counter (register2 = 5) C: register2 = register2  1 (register2 = 4) P: counter = register1 (counter = 6) C: counter = register2 (counter = 4) count = 4 or 6; correct result should be 5: !  !   ,Race ConditionRace condition: Several processes access and manipulate shared data concurrently. The final value of the shared data depends upon which process finishes last To prevent race conditions, concurrent processes must be synchronized The Critical-Section Problem8n processes all competing to use some shared data Each process has a code segment, called critical section, in which the shared data is accessed Problem  ensure that when one process is executing in its critical section, no other process is allowed to execute in its critical section$Solution to Critical-section ProblemWhat else we need? Mutual Exclusion  not two processes may be simultaneously inside their critical sections Progress  no process running outside its critical section may block other processes Bounded Waiting  no process should have to wait forever to enter its critical section In addition No assumptions may be made about speeds or number of CPUs> :$;!Initial Attempts to Solve ProblemOnly 2 processes, P0 and P1 General structure of process Pi (other process Pj) do { entry section critical section exit section reminder section } while (1); Processes may share some common variables to synchronize their actionsPG( 0F Algorithm 1 Shared variables: int turn; / *initially turn = 0 */ turn = i Pi can enter its critical section Process Pi do { while (turn != i) ; critical section turn = j; reminder section } while (1); Satisfies mutual exclusion, but not progressQ j-- %- Algorithm 2~Shared variables boolean flag[2]; /* initially flag [0] = flag [1] = false */ flag [i] = true Pi ready to enter its critical section Process Pi do { flag[i] := true; while (flag[j]) ; critical section flag [i] = false; remainder section } while (1); Satisfies mutual exclusion, but not progressv -M%  &%- Algorithm 3<Combined shared variables of algorithms 1 and 2 Process Pi do { flag [i]:= true; turn = j; while (flag [j] and turn = j) ; critical section flag [i] = false; remainder section } while (1); Meets all three requirements; solves the critical-section problem for two processes;T9  E*T  ` .T3f` T3f3f` 999MMM` lff3f3޲` eoHff33Ҷ` ff!>?" dd@ ?nPd@ d " @ ` n?" dd@   @@``PR   @ ` `$p>>   (   (    Nff??"?  Nff??"?  Nff??"?  s *,  "0@   T Click to edit Master title style! !  c $.  "0   RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S  Nff??"p   Nff??"p   Nff??"p   c $5  "Ss   j*&0(2 2  # lD9  1?"  Fabin E. Bustamante - Fall 2002L!0(2 '    # l=  1?"  ZCS-343 Operating Systems&0(2 Z  B޽h))? ? T3f3f 0___PPT10.LE\%___PPT92p22 nwu-2002   S K 0 (    RA)\ Ha?nwu-seal-gray"@ % ~  Hff??"A  0 " 0  W#Click to edit Master subtitle style$ $  < "0@0  T Click to edit Master title style! !~  Hff??"A   TXff??"@f pp F 0    T!ff??"A H"0 "  # l$ 1?"PP x6Northwestern University Department of Computer Science&70(272  # l( 1?"P  Fabin E. Bustamante - Fall 2002L!0(2 '    # l 1?"P ZCS-343 Operating Systems&0(2 Z  B޽h))? ? T3f3f80___PPT10.LE\%( 0 (8(  (  ( N\wgkgk v$   v* J%%JJoo ( Ngkgk  7$  x* J%%JJood ( c $ ?RH  4 ( N;gkgk  !  RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S ( T< gkgk v   v* J%%JJoo ( Tlgkgk  7  x* J%%JJooH ( 0jB ? 3380___PPT10.aEh 80(    03     b*0   04  @   d* 0   6@c    b*0   6g  @  d* 0 H  0jB ? ̙33  $(  r  S 0@0  r  S l 0  H  0޽h ? T3f3f  @<(  ~  s *F 0@   ~  s * 0   H  0޽h ? ̙33  P<(  ~  s *U0@   ~  s *0  H  0޽h ? ̙33  `<(  ~  s *P0@   ~  s * 0  H  0޽h ? ̙33  p<(  ~  s *t0@   ~  s *00  H  0޽h ? ̙33  <(  ~  s *q 0@   ~  s *g 0   H  0޽h ? ̙33  $(  r  S DT 0@   r  S n 0   H  0޽h ? ff̙fff  R(  ~  s *[ 0@     s *P0   "  @H  0޽h ? ff̙fff  \(  r  S  0@   r  S 8 0   B  # lDjJ?}B  # lDjJ? ` H  0޽h ? ̙33  $(  r  S  a 0@   r  S  t 0   H  0޽h ? ̙334  t(  ~  s *\ 0@   ~  s *s 0   B  # lDjJ?`B  # lDjJ?@ `@ H  0޽h ? ̙33  <(  ~  s *]0@   ~  s *4^0  H  0޽h ? ff̙fff  <(  ~  s * 0@   ~  s * 0   H  0޽h ? ff̙fff   $(  r  S p0@   r  S p0  H  0޽h ? ff̙fffD  0(  r  S :0@   r  S :0  X  0A? pH  0޽h ? ̙33  @$(  r  S XB0@   r  S C0  H  0޽h ? ̙33"  P V(   ~   s *0@      s * L0  &y*H   0޽h ? ̙33  `$(  r  S pn0@   r  S p0  H  0޽h ? ̙33  p$(  r  S |60@   r  S ,0  H  0޽h ? ̙33  $(  r  S 0@   r  S 0  H  0޽h ? ̙33r@ilT~bs 3[_pcO xy @{} uOh+'0Q hp    ,4 IntroductionoFabian E. BustamanteP nwu-2002 BuFabian E. BustamanteP21iMicrosoft PowerPointP@PO7@PxaE@?VtVGPg  R('& &&#TNPP2OMi & TNPP &&TNPP     'A x(xKʦ """)))UUUMMMBBB999|PP3f3333f333ff3fffff3f3f̙f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙33333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffff3fffffff3f̙ffff3ff333f3ff33fff33f3ff̙3f3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3ffffffffff!___wwweeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee--&TNPP &՜.+,0    On-screen ShowNorthwestern University"m2 ArialTahomaTimes New Roman WingdingsVerdanaSymbol nwu-2002Cooperating ProcessCooperating ProcessesInterprocess CommunicationImplementation QuestionsNaming for CommunicationNaming for CommunicationIndirect CommunicationBuffering & Synchronization#Bounded-buffer Producer/ConsumerBounded-buffer Bounded-Buffer #Bounded-buffer atomic operationsBounded BufferRace ConditionThe Critical-Section Problem%Solution to Critical-section Problem"Initial Attempts to Solve Problem Algorithm 1 Algorithm 2 Algorithm 3  Fonts UsedDesign Template Slide Titles,_ Fabian E. BustamanteFabian E. Bustamante  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./012345689:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`bcdefghjklmnopuRoot EntrydO)PicturesCurrent UseriSummaryInformation(7 RPowerPoint Document(1DocumentSummaryInformation8a