Using Version Information for Concern Inference and Code-Assist Annie T.T. Ying, Gail C. Murphy, Raymond T. Ng Mark C. Chu-Carroll Department of Computer Science University of British Columbia 2366 Main Mall Vancouver BC Canada V6T 1Z4 IBM T.J. Watson Research Center 19 Skyline Drive Hawthorne NY USA 10591 [email protected] [email protected], [email protected], [email protected] ABSTRACT "!#%$'&'() * +, -.-/0$213456708359-%':;)0&()&<=>+'0$/2, ?+@A'=AB:>+-;C D'0$>FE3GBH8=>D0: ')@) JI)&'K-/)>)(@704!L()4$>IE =>J!L)6M=>+<'0$ 52N<ONG IGP-/+0$QL'('J)MER"'+,S)'T4$(>, I=3I5UL-%4:V>'4$63IW)K-/0$>214);6758$XP /-/0$21345Y670'()Y>4$)+Z$>$>2)(L=' +0$>/5)?+W359+4$KZ>I<Z'-/>()+<>/$>'24$ -/0$21345[GFH8=#>6/)\W(2:]'J>^\-/0$>21345, )670W=)IT'5_=()/-/))IG%`B+0((2:TPa, +b5)K=()<-/)>>I13$>L'()>)*E "!#+'K=>+<'0$ 52N9'$KZII++4Gc+&0))ZT( \='\>)#>>6VW)T+6+)&+():I=$8b"!#*'>I2, >'+Q$=>)I9>J)-/()'-/+065)/[-/0$>214)/67'GFd#> T(A-/)ITJ()Z>'()M$>'T2 :'>'+J)''0$>W'('$M <'>'+;())7'(2:ZI'QI++4G 1. e"$>'TINTRODUCTION 2 :)I^!L35F=>'Q+0$>Q+4$>@JI#?\J-/0$>21345, )W67*f>))IL "!##:'-g4E F$>2h/+=(24GAd#> f>))IV='+0$>-%':E <!#+((2,S-/0$>=>()]'4$M!L2K+ '+ M())-/)'$i0=>-E +W*0)')4$_-/0$>214)_67<E= !L)()(j\())7'(2:/E L!#'()(2,S-/0$>=>(b5)]'4$/?#()(3670'GBk^#*'=(24P l!Q$>'&'() +8Wb'MN+4$;!L)M-/0$21345;670 9)0&(&63>I'*Z=''0$2?+%ONG I>G)PD-/+0$ %'('/)mYE0R',l)'T4$m(>I=I4U<3;4$ +L9+0$>9E3G eln)%3 +4PL!#K> oo_);b"!# +I)>'+<!L>% +?-/)IK-/0$>213')>K_+f)>I :'-;GAH8=>D0: ')@)@35A)> -%)E =>AA-/0$0, 214)6708)9=>+?=>(AKI=$>)IZ$>+&'() +JZ)-/()'-/+0 -/0$>213')Y67Y%3$jGmM=>-/Z/Z=' +0$>L[*b"!#8:'-p)F4$)/*&/-%I+-/'T :'-;PX=>q\r*sit q\r*s0uaWq\('q#;t vX4w\(>IxyuzGe" $$))[P0!#8=-/L35\>J)-/()'-/+065)/DW-/0$>21345, )67'+ 3$9/+Q>I'9;=>'/'0$ 52N8E +l!#''Z"!#=>++0$>9&+)'GFe";+L!#6$>'P >/&+)-%I+-/'TW:>+-.7''>9667#/>): +-/()+'$o-/0$>21345){670'G|d#I'>+6(8b6-/+!\7 B=>8K)^JI)&'M-/W>2b(A704!L()4$>IE => V='V'0$>Z2N+%63>I'<)mM-/0$)14)i67c5 33$jPQ3Z-/0$21345n670%4oE ;=?=(J)n>'$>)+)I W'-%>)IV=>+'0$2?+*9>'4$;Z63I )-/()'-/'TB8$>'24$%-/0$>213')XGAc8 83():]' KZ-/0$>21345)o670Z=)IiT')g=()K-/>)I t kJI64!#(x}5uzG\el/''+P>T')Z=()^-/))I9L3 -/0$>214)c670<13$>9'())>E +"!\''_=>'V'0$> 2?+L35^+3$VI*I++4G cF(W^E=)($^T(TA=>'D)a>6J)Bb, !Q5$'&'() +*$=>)I>)-/>(+-/'T6);B-/0$>21345) 670'Gd#T(a!L)()(BE )I>(2:KT'I64$)0V< l!Q5 )-/()'-/'T65i3Gnd#;=>II+4$Y=>(+?=>3$iET:i=> T(D'=>(b$;E W=>4$)K!Q':;)-/)(^W'0$+,l)8 =, )()2":)%/T'I64$/$'&'()-/'Ta'0&02-/+04P=6/ `a'()>Kt `a'())+uzG~+f>-/()PX?`B'())%'0$+,l)4P LW>I6-/-/+#)#":>>IW3#AW-/+>0$%'()([)Z=>' '0$94$>24P3`B+()><=>-%)4()(2:$>)(':J())^a-/+>0$ 4(()Q35L-%6/!L3Q>*>I6-/-/+##": 4$jGBH8=>QT( !L)()(8=II'())V9-/+>0$m4()(%35%-/)IT%''$YcE -%$G H85&'(2":i9=Zm/%='M'0$M&+)> '$g)Y&-%3I'-/'TZ:'-5c(2:]'4${? 704!L()4$>IM$>)'5&:X\)/'T6!L2mZ)I)(^=>, WF=>)I/&+);-%I+-/'TJ:'-/# *6)&(@3$ +)'&(NGBkJ>>+#>&'(2":/)\Q=>Q6Z$>T'Q>Q$2, '+(2:/=>8'0&'T)3(3>I6-(2:)\'6T=+FW)>? )> -%)ME =>J:'-;C Q='W'0$>G c9E +()'&W^)K<43E()=>-E +La4+J9=>' '0$52N)0&()&4$moc-/0$>21345)n67oMZ K'>'+m )E(2:Y++=>Z:'-;G_{+Y , ?-/)ImY-/0$)14)67 P9b"!Q5_$>+&'() +4g= K=>''0$>2?+;=>II'4${ET:n=>VT(8i+f>-, )''Y/-%':+(b5K;$'24$i-/0$>21345) 67 GFH8=^ZQ())7'(2:Z>())4E>()*?^=>V'>'+Z+f0, ()6)/!L+L:'- 3B)/-/0$)14)/):E=> $>T+V>%5&Mnb5M)-/()'-/'T4$_-/'63)- => L'65Ma+'=>)>I'>'+>'G I4$)I(2+6()<5&'3$4$Z>II+ )834G Past Modification tasks Modification tasks #11 #18 #24 ..... DBAccessPt .createRepo (...) {... stmt.exe(''CREATE TABLE'' ... );... } TextArtifactAgent .retrieve(...) { ... stmt.exe(''SELECT '' ... ); ... } DataArtifactAgent .retrieve(...) { ... stmt.exe(''SELECT '' ... ); ... } ... L 3D5o3VJ'@ ''354DZ?j %4D_3@03 '+353XD3\M'D'+ j'3?D?D[Z/ ¡D>'¢D3' +¢A 50' o3Dn3>4'£ 2. d[<$'SCENARIOS -/>6L=#6[PT!\L'>b$+\l!#W-/0$>214) 670L^)0&()&*'=>I''+>'G 2.1 Scenario 1 - A Modification Task Involving Z+aDatabase $+%M-/0$>213Storage ')i6Concern 7<=6+<V''+ )0&(&0)Io>i6In'0$iZ¤¥9wQq¦$56E3Y6E()Y++, 5)3$'+'''GBe"9\:>+-;C D-/0$>=(5]')XP>#¤4& =>'F'0$>B)-/()'-/'T)IFa'>'+W5\>'$9@-<=(2, )>('(+*)$2§j+'T867I''G8d#W-/0$)14)K67) 63>IL^3-/J@Z5)E=>^@W¤¥9wQqm6E()J)Zs¨*v 65'-/'TQ'-<E 4$$4$V)M¤5&=>'9'0$G k^©4!Lª)«~@)I=¬P®b- ¯¦-/0$>214) 670'PM!#4°$++-/)on±Ig±>-/+0$ )=>>I²>³¤¥*wQq´4(()µ¶+45·6E()²ON-/+0$ ¸¹Tº»»¼T½½5¾T¿ G »À¼TÁ¿T¼ÂT¼ÃÄ U¦+3$>®ÅT'+=>.!L2¶I' Æ>«-/+0$35Ç)=Ȥ¥*wQq '()()²É''' Ê6E>()ËON-/0$>ÊÌ ¼Í¿ºÀ¿0ÎÏ0ÁT»¿ºÐT¼ÑT¿ G À¼¿ÀμÒT¼ 3$ ¸0Á¿0ÁºÀ¿ÎÏ0ÁT»5¿ºÐT¼Ñ¿ G ÀT¼¿ÀμÒT¼ U* -WT+b5)M=() Ó ¸¹Tº»»¼0½½5¾¿aÔ»ÀT¼Á¿T¼Â0¼ÃÄTÕÖ Ó Ì ¼Í¿ºÀ¿ÎÏ0ÁT»5¿ºÐT¼Ñ¿aÔlÀT¼¿ÀμÒT¼ P ¸Á¿TÁºÀ¿Î5Ï0ÁT»¿ºÐT¼ÑT¿aÔSÀT¼¿ÀμÒT¼0Õ G ~>;f-/()PJ-/0$>213'){67{×V¬¬)g~@I=>Y¬)0&(&' 63I'<KE c>%-/+0$c'T6))IM>%6E()V+4) 65'-/'TD3$8>Bl!#L-/+>0$>j'T6>)ILA6E>(F+''' 65'-/'T'GH8E&0)=>(2:TP <'E ')3$M=>T', )m=()Z<!L'Y>I)I-/V*m)E= )n6E>();)n¤¥*wQqJP#()(8''''%8I4$Y)E= )6E()-=>9E =>j$'$XGo'$'&'() W-%7'* 63IL ¸¹Tº»»¼T½½5¾T¿ G »À¼TÁ¿T¼ÂT¼ÃÄ P>!#L'0&0)/=>BT(!L)(( =>II'3o-/+0$oÌ ¼Í¿ºÀ¿ÎÏTÁT»¿ºÐ¼ÑT¿ G ÀT¼¿ÀμÒT¼ 3$ ¸0Á¿0ÁºÀ¿ÎÏ0ÁT»5¿ºÐT¼Ñ¿ G ÀT¼¿ÀμÒT¼ 9())7'(2:V>IWQ!\'()(zG eS9$>'&'() +%>'I()'+'$iIZ>Z+ +'+'/-/ <>)E=-/''PJ_'-/)()+Z!\=>(b${>ZE E() '6)FFE '4=>Q^s¨*vZ6'-/'TBL)IW()2+, ()J)>9¤4&<=>++0$>G\q\0&+0)3(X>I6-®3():) 6+*!#=>($4T=2Z ''21/s¨*vi6)/3():]'W 6$>+Q<I)&^)Q=II')XGBØ84!#'&+4PV)#'+3)P3= 6R"=J$>' +3$>\>8N+L3^-/+>0$>#+T6))>I 2.2 Scenario 2 - A Modification Task Involving cK'UI $>Code -%7)>Iic-/0$>21345)ocK)T'I654${$>, &'()-/'T9'0&02>-/'TW`B+()>t `a'())+uzG`B'())%=> 4-±>I6-/-/)>I8=)>I9q\r9s%t q\r9s0uzGd#Q-/0$21345<67 )B8'3E()L*=+a* +'2 :/8$>+?=(2F&()=Q >#\()T45, )/X>Jq\r9s' 2:TGBd#)F-/0$>21345))0&()&+F-%70, )Ic63I'/;+?''+Z'>1I=>65)oÙJe3IK3$ 63>I'V_M4-Ë>I6-/-/>I'('$gÙJe'0$>YON=6 \'T+\)V >,S=/-/'0=/T'4$%!L2ZW>5R++Q)'3UG cQE +()'B=>\)F>())4E>(L)+J$$>I*! ?'=>+B)>#Ù8ej'$>@84&Q8'6)35+[GDÙ8)I8=> >>6[Pjb"!#'>I)++94$'T)b:M63>I'^V>WÙ8e E34$*+>L$>)'5&+'$Z -Ê>*3^I''G 3. e"W)APPROACH @++)[P!#Q$'+)E #=>A-/+>0$9 3():]')>IJF3 -/0$>214)967D=)I^T+b5)=>(B-/))IG[\=-/ 35Q9=>'9'0$9)^4$)Z>*' 2:);<&+) -%I'-/'TB:>+-|3$/9-/0$>213')67'+ 3$F $>2§j+'>'E "!#+'l!#V=''0$&+)>'G<d#$>6 E 9-/)'$V)Q*=>'W'0$*' 2:TG 3.1 Mining Association Rules on Changed d#KSource E()'-Ú9Code 133$)I_Artifacts T')=()'V)Z 'o+ +4$ <>Û/ÜÝÞßà#á6ÜâÞßà[ã3Ýäá'åßÛ©t k^I6'!Q(x}uzG\e"T=2)&'(2:TP0-%, 7+FE37+\$56*'' 3$F9$56E3Jj6+)># '=>-/+'C[='æPA<-%57+WE7+'PD)+6)(FI5, )]45)'GFe"V)L+)IP>>9I(D)Q13$V>/Üââä4ç+èzÜàNèzäé Ý6ê>åßâ#>?-·ël!L>'_Z+=-/W=>63'92'-íìDPX '=>-/+^)L()7+():Z/()%=92'-ïî0ð>G#ñW'')'(2:TP I)&+E7*$>6%æP WI(A)J%I'+65()(aT') =()'9#<?-íì Ö î;!L2Yâ6ê5ããäÝà9I4Z=, ''214$%'($ZòONzG G)PE %ìZ$%îT''=>FI++#V5 ()4Lòó±X>L-%7+FE37+6Ua$Mç6äé4ô\õßé ç6ß*I45+\ W=+,S ''214$%'($%öONNG G)P@((jE7+F'T6>)Iì[P 8()48ö4óï()V'T6)Mî>UG^d#)8$>+12);4KE I'6(2, )]'4$Z<÷ ÖÚø )Z!L>6;÷©3$ ø W$)?R)T^+LA2'-/ )4$; R"=8>I())+-;G#~* -%([45-/'TJA >E()'-;P'/t kJI6'!Q(x}uzG e"Z=^>()')XP8=>+9'0$>*' 2:Z^$>6E3 æ)-/>(+-/'T4$8-/0$>214)967'4W-/0$>214)967 ùY)FJ+B =>'Q'0$L2N+FI'aE +"!\''l!#*=>' '0$Z&'Ge"c><+)IPB>T')Y=()Vì Ö î -/4[@!L>'W\=>'F'0$>\2N+B>I\ì)A>'+0 )%-/0$21345M67 P ='<+0$>52N9>IîZ) ())7'(2:/<E ^>+'T#)V>J-/^67 GBd#)L$>+12)%4ZE I++6()]''$÷ Ö·ø )!L)6÷¯3$ ø 5/$>)?R")T< a=>'9+0$>W2?+J>I''G c3.1.1 nT)'Dealing )35m35with _-/Low gè?éSupport àlßÝßâàNè?é0úpof=Rules ()'c) n=>' '0$&o' 2:o-%':n>ZT''=Zb4T='T(2:o'>=>I 4&=> *I45+W3K<-/))-=>-°'(b$jGwF+, 4=QQ0=-<E +AXT')V=>(+\$+&+4$$' '3$a L=>+,S ''2134$=> F'(b$MOz3$'>13$>'>'Q>', ($UPF6T)IMIT0$_=> >'>($c)<)7T:TGs0+)I ><=> J'(b$;TV)IM!\=($M'())-/)3 +0((2: )T+')>I8=()''T>IJ>#=> @'(b$&()=\T*()4! !\=>(b$%70)((3>Jh/')':V3$!\=($%()7'(2:+=>%-%0:=>, ')IW=()''PT!L)6!#=($/4=>8>E()'-/a!L2%>^''+>, 6'#>>>6ET:K$>+&'() +'G<c<-%4:K>'4$M=> (2+35&Q-/'>->+A3=> a3$'1 $>+'\ -/'=>*>*)T+')I'^@>8=()''G 0s 3.1.2 ='Q'0Cleaning $>^5)?+Negative a35a 4TData =+0(2:63>I#I+>+#$* >'''5)():o'' 3$mcc''Z-/0$21345{$n-%': )E(2:+' 3$Z<E=I'GFdD4&b$V=6-/)()4$)I=>I, I')>'P[!\<>'4$;V$>))I=>)=>cé ßSúÜàNè?ûß$56VET:;+, +(b5)I_E=>I1>f>)>I' %!L2o-/0$21345n670%)m> =>''0$>+ 2:TGicZ''$i+f'()=3$Z)>'I5)& $>6)>*'-/=>65)BT'5M=()''G 3.2 H8=>Strengths >35of<()4the <Approach '/'>I'GVd#>%()I2- !\W=8 ^133$)IT')K=()'L)L4(E()P )'-/'T6(NP 3$;E()*3$()*''3$,S3$Z$56G *¥ 6/-/))I/()I2>-/*$')I'$M/E W4(E()GJd#>+ 5W<+)'QA> (^$$+>IV4()E>()2":ZAT', )=()9-/))I()I2-/WONG I>G)P@t k^I6'!Q(bxy>P üA7xý5u UG Scalable d#>K()I2-µ?%133$)IcT')o=>()'%4m>+'-/', 6()():<$>@F'-/>()+4$W-/0$>21345)W670AE +"!\''=' +0$>/&+)'GZk¡>>,S)'-/'T6(a(I2-í!\=($'0=>2 W''-/=>65)VZ()( 8-/0$21345V670Q%^' 2, :j>F + -%'F-%4:8@E F''+>6E>()\2>!\F!\=($W()7 /)T+6+)&'(2:;I=$>9W$'&'() +J=>IK-/0$>214) 67 Gd#>V()I)>-!\=($i$>+ '3$iYT+b5)m=>() -/)>>I_()I2-¯35%33$>()'V$0:>-/)M$>6nt q\+=Ixþ5uSG ÙJ)IV'0&'T)(AI6-.3(2:)*'6T=+JV(2:]' 63I9-/+L'>L4)():33$>()*)>+'-/'T6(j=>j$+L >Q='Q'0$>QE +4=>^=>'6T=+A +4T=2#I()E3( '3(2:>)^A>*='9'0$>G Incremental F'<>(2:W$56^-/))>IJ()I2>-/D8$>6Q35@34&BE '' (24$0:'()(++4$XGVd#>/)I)(\>=> #>=''0$ + 2:Z!QQ ^-%I)>I&+)>LA8:>+-;P>E>=>#!\ 'K'=W)9$>6?9704!L()4$>I$>)'5&:TG*ÿ8V$$>2)( +()()'+)K^I'+65);B$6<Q4T=>)'$XG Capable of handling second-hand data 4. IMPLEMENTATION 4.1 d#>+LIssues \'&+6(>)-/()'-/+065)W)='A35A!#\!L)()(>$$0' );=>LT(NG d#>I60=(5)l:{&)Ii)oK&{-%I+-/'T :'-°$++-/)'LW''))KA><T')=()'^)>, +4$jG#ñ;T:&;-%I'-/'TQ:'-/'P)'()=3$)I%q\r*sjP =>13()+,S()'&+(9I60=(2":TG°c)7o;1()+,SI60=>(b52": )T{'5-%T: T') =()'K!#=($±()T7'$>=, $>TME ''=46 =>''0$>c2N+=2-%4:o>'()=3$ 63I'355Z2'()'&T<'6Y+4GKZE '())'&V= Granularity of the source code artifacts >>6!L()(!\7!#'()( 5F>^-/0$,SI60=(2l:TG[^>( %E=>($;=>*+0$>+,l)*T(A/&+)K-%3I'-/'T^:, '-ï4()('$sT'()()_t q\0=>,"q#()( P[sT'()(b5)>uzP3!L>)!L)()( => 13>+,SI6)>4${O?!L)_)>'()=3$>+-/+>0$,SI6>4$3U*&, )>>I/():TG \w ''=9=>^T: +Q)#L3L):Z)Q=+ =(X)>, $>)+)>I8#=>'Q+0$>L2?+F>I'a)\'=>'Ta-/0$), 13')%67 PT!#J-=>\5&8WE)I'=IV$>6E*D=>' '0$;&+)> - !L)6m-/)%=()''Gmÿ8/()(L l!Q5 >5R++J4&*=6;<):4&(E()G Lack of data 4.2 Exploring Concerns Related to a ModifiH8=>\Tcation (D'E 8T'I64$V)0~A`FkBd±t JE)()(6$ uzP <', '++f()65;T(X3^>5!LL'''T6)Ma'>'+> j>Q:>+-;GAkn "!#8$>'&+( +B4/)>+'-/'T6()(2:<E=)($ =mM''+{=>)I_=II');I&'oET:n=>%T(NG ÙJ, )I~A`BkFd8P>8$'&'() +#4%LL'>'+065)%X ''+;3$%?=+^+f()**''[G 5. e"V)SUMMARY Q3 +4P!#934&*$>'+)E 4$;6L>5&0$>' =II')m!LV='K'0$>K5)?+%'$Yc63I I+J)>*34G\s=6V=II')>859=+ =([!L>' , ?-/)I*^-/0$>213')W67935A)0&()&'@J+'=>)I8', '+XGdDM'&()=35%=>>>XPA!#/!L)()(QE=)($c;T(F3 )^b"!Q5$'&'() +L +?-ï-/0$>21345)67'G 6. t kJI64REFERENCES !#(x}5u87'KkJI6'!Q(NPXdD-%]We"-/)'())70NPj3$Mk^=> 0s !#-/NGKè?é>è?é0úÜââ+ä4ç+èNÜàNèzäé{Ý6êåßâ;á6ßà\ßßéoâ+ßàNâMä Zè àlßÛâ%è?é å)ÜÝNúTßõÜàSÜáÜâ+ßâ\elVüaTGB[>*k^qQñ.se9ñMH8¥±q\> +'+ Mñ;3I'-/+0La¥960PI' ý4, ¬0Pjñ;':¬'xx}G t kJI64!#(xyu 87' kJI6'!Q(%3 $ J-%70)>3ps0)7T4G DÜâ à Jå úäÝ6è?à 0Û<â +äÝ Mè?éè?éTú 8ââ+ä4ç+èNÜàNèzäé Qê>åßâ 8elKüaTG8 _el04C (#q\> +'>'ZcrB+:cv[IV¥*6E''PBI+ yþý5,SyxxPXs0'>+-E +*¬'xxy>G t kJII!#(xþ5u^q\35=ck^II5!Q(#$üa)()) F=["G !#é3å è?é ß9úTß$é # ßÝÜàNèzäé{%ä Üââä4ç+èzÜàNèzäéoÝêåßâ e"YüAT''4$)I¬'yMie"T(NG q\"G ï¥956±`B>I)++)IÊONeq\¥9`QC xþUP;3I'Yy ,Sy>¬¬P ~'E=35:¬'xxþG t q\'=>Ix ua¥*5&0$±G q\'=>I>PX¤b'!\'AØ*[P rJ>''TJd8G ÿ8IP $ qJG <G^>I>& G Üè?é>àlßé Üé3ç6ßi%ä ('9è â+çäûßÝß õ 8ââä4ç+èzÜàNèzäé LêåßâKè?* é )[ÜÝzúT"ß 'ÜàSÜáÜâ+ßâ +,^* é -6é ç+ÝßÛ/ßéàSÜ(å .ãõÜàl0 ß /jß1ç 2# éè 3+ê3ß #elMüaT+'4$>)>I*A¬ Me"T+)(Aq\> +'+ ¥96`B>I)'>I/ONeq\¥9`QC x UP3I'L¬ ,¬¬+y>P>ñ;5¬'x4x G t q\0=>,"q#(( ugñ;57 q\0=,q#5()(NPg¤-/+ )IT4P{3$ ¥94&0$Ws)'($'G 5ê5ããäÝàNè?éT6ú Fú4úÝßzúÜàNèNäé/è?é Fè éj8ß 7#ÝÜè?éjß9õ 53ä :à # FÜÝ( ß ;Bäé4ôDúê0ÝÜàNèzä< é Üé Ü4úTßÛ/ßéàNGZdDM 45<)~as>` P ÿ85&+-E + G t q\r9sTuAq\r*sOSq\>'=>+0^rB+)>8sT:'-VUB!#+E2= T> = ??5''&0'G '&0-/G @I ?5+&0()+1 ?üAR"'+ØJ-/ t `B+()>+ua`a'()>*!#'E)4= T> = ??4!Q!Q!9G ''())G AI ? t üA57>xý5uD¤>Is0TüA57 P3ñ)>I,"s0:0Zq\'V$Züa)());s G@\=XG .Xâè?é0úÜCBWÜâDFE^Üâ+ßõGßà>ä4õHaè?à"/>ÝÜé>â+Üç+àNèzäéI/Ý6è?Û<Ûè?éTú 'äÝ Mè?éè?éTúJ*ââä4ç+èzÜàNèNäéLêåßâme`B`F` d[6/K94!L(2, '$>IL3$¥*6*`aI>'+)IG rF(=>-/LxPÿ8=-<E + LTP3I'Fþ¬'}, þ LTPjs+>'-<E +*¬4xxýTG t vX4w\(>Iu<¥94&$v['w\(IM G />N ß ;OP;O>Üå?åßé0úTß +Q;Bäé4ôDúRê # ÝÜàNèzäS é Üé Ü4úTßÛ/ßéà8à ÜCà FäÝÞâ %e"cq\>1I=6)iñ;3I+, -/+04PI+W¬,l}ý0G\¤Zo()+:$Ms'P>¤=>¬4xxyG t ^E>()(6$ A u ñ;5<ü@G ^E)()(6$H$ *)(qJGñ=T:TTG ;Bä$é # ç6ßÝ6Ué 7#ÝÜRã 0â +Fè?é õè é0ú*Üé36õ '<ßâç+ÝèNá+è?é0Vú ;Bäé3çßÝ6éHâ .[âè?éT8ú 5àNÝ6ê>ç # àNê0ÝÜ8å WQÝäúÝÜX Û 'ßlã>ßé õTßé3ç+èSßâG.üAT'''$>)IeqQs>` 44A P I'Jy 5,ly¬ 0PXñ;': A G t sT'()(b5)>uas0'()()Z!#'E;2= TY = ?4?5!Q!Q!9G ''())G @I ?4'>(IZ: ?)$>+fjG T-/(