Using version information for concern inference and code-assist

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:)\'6ƒT=+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‡ ˆ ‰3ŠD‹5Œo3ŽVJ‘'’“@ˆ ‘'’'”3‹5•„’4“D’Zˆ?–j—
”
˜ —
Œ‘%’4“DŒ_™”3–@™Œ0‹–”3š
‘'’+”3‹5‰3Œ™”X›DŒ”3š\M‘'•D‘'’+Œœ†™”
–j’'3ˆ?–Dˆ?–D‰[žZŸ/ ¡›D>’'¢D3‘'Œ
’+¢A˜ Œ™‹5Œ0’'ˆ ”
–o3–D›n3™™Œ>‘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+*!#=>($4ƒT=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
+()'&#3B=>\)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''=Zb4ƒT='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 4ƒTData
=+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:)*'6ƒT=+JV(2:]'
63I9-/+L'>L4)():33$>()*)>+'-/'T6(j=>j$+L
>Q='Q'0$>QE
+4=>^=>'6ƒT=+A +4ƒT=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<Q4ƒT=>)'$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-/(