Technical Report SAnToS-TR2009-10-01, Department Computing and Information Sciences, Kansas State University
Towards an Industrial Grade IVE for Java and Next Generation Research Platform for JML
Patrice Chalin · Robby · Perry R. James · Jooyong Lee · George Karabotsos
Last updated: October 1, 2009
Abstract Tool support for the Java Modeling Language (JML) is a very pressing problem. A main issue with current tools is their architecture; the cost of keeping up with the evolution of Java is prohibitively high, e.g., Java 5 has yet to be fully supported. This paper presents JMLEclipse, an Inte- grated Verification Environment (IVE) for JML that builds upon Eclipse’s support for Java, enhancing it with Runtime Assertion Checking (RAC), Extended Static Checking (ESC), Full Static Program Verification (FSPV), and symbolic exe- cution. To our knowledge, JMLEclipse is the first IVE to sup- port such a full range of verification techniques for a main- stream language. We present the original tool architecture as well as an improved design based on use of the JML Inter- mediate Representation (JIR) which helps decouple JML- Eclipse from the internals of its base compiler. As a result, we believe that JMLEclipse is easier to maintain and extend.
Use of JIR as a tool exchange format is also described.
1 Introduction
The Java Modeling Language (JML) is the most popular Be- havioral Interface Specification Language (BISL) for Java.
JML is recognized by a dozen tools and used by over two dozen institutions for teaching and/or research, mainly in the context of program verification [37]. Tools exist to support
P. Chalin (!), P.R. James, G. Karabotsos Dependable Software Research Group (DSRG)
Department of Computer Science and Software Engineering, Concordia University, Montréal, Québec, Canada
e-mail: [email protected], [email protected], [email protected]
Robby, Jooyong Lee SAnToS Laboratory
Department of Computing and Information Sciences Kansas State University, Manhattan, Kansas, USA
the full range of verification from Runtime Assertion Check- ing (RAC) to Full Static Program Verification (FSPV) with Extended Static Checking (ESC) in between [10]. In fact, JML is the only BISL supported by all three of these verifica- tion technologies.
Unfortunately, JML tools have been aging quickly. Re- searchers responsible for JML tool development and mainte- nance have been unable to keep up with the rapid pace of evolution of both Java and JML. A prime example of this is the lack of support for Java 5, despite the fact that it was re- leased in 2004. Keeping up with changes in Java is very labor intensive and from an academic researcher’s point of view, it is unrewarding.
In this article, we present JMLEclipse (formerly JML4), an Eclipse-based Integrated development and Verification Envi- ronment (IVE) for Java and JML. Being built on top of the Eclipse Java Development Tools (JDT), JMLEclipse gets up- to-date support for Java almost “for free”. Our contributions are as follows:
– After a very brief introduction to JML, we summarize the JML tooling state-of-affairs, reflecting upon lessons learned from the development of the first generation of tools, projecting successes into our statement of goals for any next generation tooling infrastructure (Section 2).
– With the purpose of illustrating progress made in achiev- ing these goals we describe the phase I architecture of JMLEclipse (Section 3) which was successfully used to implement a full range of verification techniques both
“natively” (RAC, ESC & FSPV) and via “third party”
contributions (constraint programming, symbolic execu- tion and automated test generation).
– We present an assessment of the successes and challenges of the phase I architecture (Section 4). This serves as a motivation for the phase II work which was greatly moti- vated by the desire to further decouple JMLEclipse from the JDT internals, making use of public Application Pro-
!" " #$"%&'()*+",-../+"#$,$"0'123+"0$"422+"5$"6'7'.-83-3"
"
01(9:();32" '*<" 8&2" 0=>" )*827*'(3+" .?8" '(3-" 327@2" '3" '*"
8--(A:-1;-*2*8"2B:&'*C2"D-71'8"EF2:8)-*"GH$"I"3?11'7/"
-D" 8&2" ;&'32" JJ" '7:&)82:8?72+" 8&2" ?32" -D" 0J," '*<" '" .7)2D"
12*8)-*" -D" D?8?72" ;('*3" K&):&" ;7-1)32" 8-" D?78&27" <2L :-?;(2"0M49:();32"D7-1"8&2"0=>"'72":-@272<")*"F2:8)-*"N$""
O! P)*'((/+" '*" -@27'((" '3323312*8" -D" 8&2" :?772*8" 38'82" -D"
0M49:();32" )3" ;7-@)<2<$" J*" ;'78):?('7+" K2" 72'33233" 8&2"
C-'(3"'*<")<2*8)D/)*C"7)3Q")8213"EF2:8)-*"RH$"
>&2":';'.)()8)23"-D"@27)D):'8)-*"8--(3"3?;;-78)*C"0M4"'3"K2(("
'3" -8&27" ('*C?'C23" '72" 72@)2K2<" )*" 8&2" 32:8)-*" -*" 72('82<"
K-7Q"EF2:8)-*"SH$"T2":-*:(?<2")*"F2:8)-*"U$""J*"8&2"*2B8"32:L 8)-*+"K2";7-@)<2"'".7)2D")*87-<?:8)-*"8-"0M4"D-7"72'<273"K&-"
'72"?*D'1)()'7"K)8&"8&2"*-8'8)-*$"
!! "#$#%&'()*+,-%.#,-/#-)%
I3" K'3" 12*8)-*2<" )*" 8&2" )*87-<?:8)-*+" 0M4" )3" '" V2&'@)-7'("
J*827D':2" F;2:)D):'8)-*" 4'*C?'C2" EVJF4H" WGXY" D-7" 0'@'$" J8"
2B82*<3"0'@'"K)8&"3?;;-78"D-7"9)DD2(L()Q2"=23)C*"./"%-*87':8"
E=V%H"WZS+"X[Y$"\2*:2+"8&2"72]?)72<".2&'@)-7"-D"128&-<3"()Q2"
!"#$%&'()$*+,")*"P)C$"[":'*".2"2B;72332<")*"8&2"D-71"-D"'"
128&-<":-*87':8"K&):&")<2*8)D)23"8&2":-*<)8)-*3"K&):&":'((273"
1?38"723;2:8"E;72:-*<)8)-*3H"'*<":-*<)8)-*3"K&):&"8&2"C)@2*"
128&-<" ;7-1)323" 8-" ?;&-(<" E;-38:-*<)8)-*3H+" ;7-@)<2<" 8&2"
;72:-*<)8)-*")3"723;2:82<$"
J*"0M4+"128&-<";72:-*<)8)-*3"'*<";-38:-*<)8)-*3"'72"2BL
;72332<"?3)*C"72]?)723"'*<"2*3?723":('?323+"723;2:8)@2(/$">&2"
:-*87':83" -D"!"#$%&'()$*+," '*<"!"#$%&'(-&%!"#$%+,"
'72" )*" D':8" 2B'1;(23" -D" K&'8" '72" 72D2772<" 8-" '3" ()C&8K2)C&8"
:-*87':83$" J*" :-*87'38+" 8&2"!"#$%&'" :-*387?:8-7" )((?387'823" '"
&2'@/K2)C&8" :-*87':8$" I" &2'@/K2)C&8" :-*87':8" :-*3)383" -D" '"
327)23"-D"-*2"-7"1-72".2&'@)-7":'323";72:2<2<"./"'"@)3).)()8/"
1-<)D)27" 8&'8" 238'.()3&23" 8&2" @)3).)()8/" -D" 8&2" .2&'@)-7" :'32$"
\'@)*C"8&2"'.)()8/"8-"328"8&2"@)3).)()8/"'((-K3"0M4"<2@2(-;273"
8-" 2B;7233" ;?.():" I#J" :-*87':83" 8&'8" <)DD27" EC2*27'((/" '72"
1-72"'.387':8H"D7-1";7-82:82<"-7";?.():":-*87':83$"
>&2"!"#$%&'(-&%!"#$%+," 128&-<" )((?387'823" '*-8&27"
D2'8?72"-D"0M4^"0'@'"128&-<3":'*".2"?32<")*"3;2:)D):'8)-*3+"
.?8"-*(/")D"8&2/"'72"D722"-D"3)<2"2DD2:83$"=2@2(-;273")<2*8)D/"
3?:&"128&-<3"./"1'7Q)*C"8&21"'3";?72$"I3"K)8&"=V%+"0M4"
'(3-" 3?;;-783" :('33" )*@'7)'*83$" >2:&*):'((/+" '*" )*@'7)'*8" )3" '"
.""/&0$"2B;7233)-*"8&'8")3"72]?)72<"8-".2"87?2")*"'(("E:()2*8"
@)3).(2H"38'823"-D"'";7-C7'1_3"2B2:?8)-*"WX`Y$"
P)*'((/+"K2"*-82"8&'8"0M4"C-23"K2((".2/-*<"8&2"D2'8?723"
-D"=V%"W[SY"8-"3?;;-78+"D-7"2B'1;(2^"
O! M28&-<" :-*87':83" :-*387')*)*C" 8&2" .2&'@)-7" -D" 128&-<3"
K&2*"2B:2;8)-*3"'72"8&7-K*$"
O! P7'12" ;7-;278)23" E)((?387'82<" ./" 8&2" '33)C*'.(2" :('?32" )*"
8&2"!"#$%&'":-*387?:8-7":-*87':8H$"
O! M-<2("D)2(<3$"
I*"2B'1;(2"-D"8&2"('8827")3"8&2"!"#$%&'(*"#$%"D)2(<$"P7-1"
'"0'@'";273;2:8)@2+")8")3"&)<<2*"D7-1":()2*83+".?8"D7-1"'"0M4"
;273;2:8)@2" )8" )3" 1'<2" @)3).(2" '3" '" 3;2:)D):'8)-*L-*(/" D)2(<$"
>&?3" :()2*83" :'*" ?32" )8" 8-" 72'3-*" '.-?8" 8&2" .2&'@)-7" -D"
!"#$%&'3$"
0! "&.12*+34)5%6,2)37+',%#,(%1#8*9%1*#:'8#7+',%;<#4)4%
Z$[!J*:2;8)-*"#&'32"
!"#"#! $%&'()*+,-./,0&&(123,4565)7&8798861%:,
=+847%>),)8#7+',%?''*45%(/3*+2#7+',%'@%)@@'87%A%<+-<%B2'*C
*)27+$)D% E#+,7),#,2)%'$)8<)#(%0M4" :'*".2" 322*" '3" '*"2BL 82*3)-*" 8-" 0'@'" 8&'8" '<<3" 3?;;-78" D-7" =23)C*" ./" %-*87':8"
E=V%H+"8&-?C&")8"&'3"1-72"'<@'*:2<"D2'8?723"'3"K2((a3?:&"
'3"3;2:)D):'8)-*L-*(/":('33"'887).?823+"3?;;-78"D-7"D7'12";7-;L 278)23" E)*<):'8)*C" K&):&" ;'783" -D" 8&2" 3/3821" 38'82" '" 128&-<"
1?38" (2'@2" ?*:&'*C2<H+" '*<" .2&'@)-7'(" 3?.8/;)*Ca8&'8" '72"
2332*8)'(" 8-" K7)8)*C" :-1;(282" )*827D':2" 3;2:)D):'8)-*3" W[SY$"
>&2" :&)2D" D)738" C2*27'8)-*" 0M4" 8--(3" 2332*8)'((/" :-*3)38" -D"
8&2^"
O! %-11-*" 0M4" 8--(" 3?)82[" '(3-" Q*-K*" '3" 0M4!+" K&):&"
)*:(?<23"8&2"0M4",I%":-1;)(27"'*<"01(b*)8"W[`Y+"
O! 9F%A0'@'!+"'*"2B82*<2<"38'8):":&2:Q27"W!XY+"'*<"
O! 4cc#" '*<" #dF" 8--(" ;')7" K&):&" 3?;;-783" D?((" 38'8):" ;7-L C7'1"@27)D):'8)-*"WG!Y$"
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
["P-7127(/"8&2"J-K'"F8'82"b*)@273)8/"EJFbH"0M4"8--("3?)82$"
12233
323!"#$%&'43%50%3*"#$%3#63%"378930$:3 323%5&$3;'063.0*<3%"3=(3
3213!
"#$%&'3'%())3!"#$%&'3>3
3"#$%&'3*&+(%3),(,&'3&+,3!"#3?3@==A3 3333312B46&*C6#./)*213"-&.(,/3&+,3*"#$%A3 333311B3)$D0')0$%3=3E?3*"#$%3FF3*"#$%3E?3789A3 3333312B36#./)*3$"'G0/C.&50D)"'3
333333B333'&H#)'&43=3E?3*"#$%3FF3*"#$%3E?3789A3 333333B333044)-$0./&3%5)4(*"#$%A3
333333B333&$4#'&43%5)4(*"#$%3??3*"#$%A3 333333B30/4"36#./)*3&I*&6%)"$0/C.&50D)"'3
333333B333'&H#)'&43J+=3E?3*"#$%3FF3*"#$%3E?3789,A3 333333B333044)-$0./&3K$"%5)$-A3
333333B3334)-$0/43+"##$%&#'(%)*$+,-./$0,12+3&,3%'#&A3 333333B3334)-$0/4C"$/L3M//&-0/8'-#G&$%NI*&6%)"$A3 333333B213
3333"#$%&'3!"#$%&'+&+,3*"#$%,3>3
33333&*3+J+=3E?3*"#$%3FF3*"#$%3E?3!"#,,3 333333,0-123+/23!""#$%"&'$()#*+,-.#/+01*+,A3 33333,0&)(*"#$%3?3*"#$%A3
3333O3
3333311B3&$4#'&43K'&4#/%3??3*"#$%A3 333312B6#'&213"#$%&'3&+,3-&%!"#$%+,3>3 333333-/,#-+3*"#$%A3
3333O3
3333312B3'&H#)'&43*"#$%3E3789A3
333333B3&$4#'&433*"#$%3??3K"/:+*"#$%,3P3@A3 333333B30/4"3
333333B3'&H#)'&43*"#$%3??3789A3 333333B3&$4#'&43*"#$%3??3=A3 333333B213
3333"#$%&'3.1&33)$*+,3>3
333333*"#$%3?3*"#$%3E3!"#3Q3*"#$%3P3@3R3=A3 3333O3
O3
=+-F%G%"F'1;(2"0M4"3;2:)D):'8)-*"-D"'"%-?*827":('33%
#$"%&'()*+",-../+"#$,$"0'123+"0$"422+"5$"6'7'.-83-3" " Z"
"
cD" 8&232+" 0M4!" )3" 8&2" -7)C)*'(" 0M4" 8--(" 328$" I(8&-?C&"
9F%A0'@'!" '*<" 4cc#" )*)8)'((/" ?32<" 8&2)7" -K*" '**-8'8)-*"
('*C?'C23+"8&2/"7';)<(/"3K)8:&2<"8-"0M4$""
V2)*C")*<2;2*<2*8"<2@2(-;12*8"2DD-783+"2':&"-D"8&2"8--(3"
12*8)-*2<"'.-@2"&'3")83"-K*"D7-*8L2*<"E2$C$"3:'**27+";'7327+"
'.387':8"3/*8'B"8722"EIF>H"&)27'7:&/"'*<"38'8):"'*'(/3)3":-<2H"
2332*8)'((/"D-7"6(("-D"0'@'"'*<"0M4$">&)3"'1-?*83"8-"3?.38'*L 8)'(" <?;():'8)-*" -D" 2DD-78" '*<" :-<2$" ,2:2*8" 2@-(?8)-*" )*" 8&2"
<2D)*)8)-*" -D" 0'@'" E2$C$" 0'@'" G+" 23;2:)'((/" C2*27):3H" '*<" -D"
0M4" 1'<2" )8" ;')*D?((/" 2@)<2*8" 8&'8" 8&2" ()1)82<" 723-?7:23" -D"
8&2"0M4":-11?*)8/":-?(<"*-8":-;2"K)8&"8&2"K-7Q(-'<"8&'8")8"
2*C2*<272<$"
I3"'"723?(8+"D-7"2B'1;(2+"*-*2"-D"8&2":?772*8"D)738"C2*27'L 8)-*"8--(3"/28"D?((/"3?;;-783"0'@'"G"D2'8?723$"T)8&"723;2:8"8-"
8&2"2@-(?8)-*"-D"0M4+"-*(/"0M4!"D?((/"3?;;-783"8&2"*2K"*-*L
*?(("./"<2D'?(8"321'*8):3"W[GY$"
&'$+,-%='8H#8(%H+7<%.)44',4%.)#8,)(%T&'8"(233-*3":'*"
.2" (2'7*2<" D7-1" 8&2" <2@2(-;12*8" -D" 8&2" D)738" C2*27'8)-*" -D"
8--(3+"23;2:)'((/"0M4!"K&):&+"3)*:2"2'7(/"!```+"&'3".22*"8&2"
72D272*:2" )1;(212*8'8)-*" -D" 0M4e" 0M4!" K'3" 2332*8)'((/"
<2@2(-;2<" '3" '*" 2B82*3)-*" 8-" 8&2" M?(8)0'@'" EM0H" :-1;)(27$"
V/"f2B82*3)-*g+"K2"12'*"8&'8^"D-7"8&2"1-38";'78+"M0"721')*3"
)*<2;2*<2*8" -D" 0M4h" 1'*/" 0M4" D2'8?723" '72" *'8?7'((/" )1L
;(212*82<" ./" 3?.:('33)*C" M0" D2'8?723" '*<" -@277)<)*C" 128&L -<3h" )*" -8&27" 3)8?'8)-*3+" 2B82*3)-*" ;-)*83" E:'((3" 8-" 128&-<3"
K)8&"21;8/".-<)23H"K272"'<<2<"8-"M0":('3323"3-"8&'8")8"K'3"
;-33).(2" 8-"-@277)<2".2&'@)-7" )*" 0M4!$"T2" .2()2@2" 8&'8"8&)3"
';;7-':&"&'3"'((-K2<"0M4!"8-".2"3?::233D?((/"1')*8')*2<"'3"
8&2"0M4"72D272*:2")1;(212*8'8)-*"?*8)("72:2*8(/$">&2*"K&'8"
K2*8"K7-*Ce"T2".2()2@2")8"K'3"'":-1.)*'8)-*"-D"D':8-73")*L :(?<)*C"8&2"'<@2*8"-D"'"72('8)@2(/".)C"382;")*"8&2"2@-(?8)-*"-D"
0'@'"E)*:(?<)*C"0'@'"G"C2*27):3H"'*<"8&2"<)DD):?(8/")*"D)*<)*C"
<2@2(-;273"8-"?;C7'<2"M0$"
>'#*4% @'8% I)J7% >),)8#7+',% ?''*% K#4)4%622;)*C" )*" 1)*<"
8&'8"K2"'72"8'7C28)*C"1')*3872'1")*<?387)'("3-D8K'72"<2@2(-;L 273"'3"-?7";7)1'7/"?327".'32+"-?7"C-'(3"D-7"'"*2B8"C2*27'8)-*"
7232'7:&"@2&):(2"D-7"8&2"0M4":-11?*)8/":'*".2"3?11'7)i2<"
'3"D-((-K3$">&2"*2K"8--()*C")*D7'387?:8?72"3&-?(<".2"WXNY^"
[H!.'32<"-*+"'8"(2'38"'"0'@'":-1;)(27+")<2'((/"'"1-<27*"J=9+"
K&-32"1')*82*'*:2")3"'33?72<"./"<2@2(-;273,&;5:1<),8&2"
0M4":-11?*)8/h"
!H!.?)(8+"8-"8&2"2B82*8";7':8):'.(2+"'3"'*"f2B82*3)-*g"-D"8&2"
.'32"3-"'3"8-"*121*1=),5>),125)3%651&2"2DD-78"72]?)72<"
K&2*"*2K"@273)-*3"-D"8&2".'32":-1;)(27AJ=9"'72"72(2'32<h"
ZH!:';'.(2"-D"3?;;-78)*C"65,()6:5"8&2")*82C7'82<":';'.)()8)23"
-D",I%+"9F%+"'*<"PF#d"
I3" K)((" .2" <)3:?332<" )*" 8&2" 32:8)-*" -*" 72('82<" K-7Q+" '" D2K"
72:2*8"0M4";7-j2:83"&'@2"'8821;82<"8-"3'8)3D/"8&232"C-'(3$"J*"
8&2"32:8)-*3"8&'8"D-((-K+"K2"<23:7).2"&-K"K2"&'@2"'8821;82<"
8-"3'8)3D/"8&21")*"-?7"<23)C*"-D"0M49:();32$"
!"#"?! @6%(A,$%&5&5AB),
ID827" 1?:&" <)3:?33)-*+" .-8&" K)8&)*" -?7" -K*" 7232'7:&" C7-?;"
'*<"K)8&"-8&27"121.273"-D"8&2"0M4":-11?*)8/+"K2"<2:)<2<"
8&'8".'3)*C"'"*2B8"C2*27'8)-*"0M4"8--()*C"D7'12K-7Q"-*"8&2"
9:();32"0=>"32212<"()Q2"8&2"1-38";7-1)3)*C"';;7-':&$"T&)(2"
8&2" 0=>" )3" ('7C2a';;7-B)1'82(/" [" M4c%" D-7" G```" D)(23a
'*<" 8&2" (2'7*)*C" :?7@2" )3" 3822;" E;'78(/" <?2" 8-" (':Q" -D" <-:?L 12*8'8)-*H+"=F,5"7232'7:&273"*-*28&2(233":&-32"8-"f8'Q2"8&2"
;(?*C2g"'*<".2C'*";7-8-8/;)*C"0M49:();32")*"!``N$"
J*" -?7" D)738" D2'8?72" 328+" 0M49:();32" 2*&'*:2<" 9:();32" Z$Z"
K)8&^" E'H" 3:'**)*C" '*<" ;'73)*C" -D" *?(()8/" 1-<)D)273" E$#//S 0./&" '*<"$"$C$#//H+" E.H" 2*D-7:212*8" -D" 0M4_3" *-*L*?(("
8/;2"3/3821"E.-8&"38'8):'((/"'*<"'8"7?*8)12H"W[GY+"'*<"E:H"8&2"
'.)()8/"8-"72'<"'*<"1'Q2"?32"-D"8&2"2B82*3)@2"0M4"I#J"().7'7/"
3;2:)D):'8)-*3$" >&)3" '7:&)82:8?7'((/" 3)C*)D):'*8" 3?.328" -D" D2'L 8?723"K'3":&-32*"3-"'3"8-"2B27:)32"3-12"-D"8&2".'3):":';'.)()L 8)23"8&'8"'*/"0M4"2B82*3)-*"8-"9:();32"K-?(<"*22<"8-"3?;;-78$"
>&232")*:(?<2"
O! 72:-C*)i)*C" '*<" ;7-:233)*C" 0M4" 3/*8'B" )*3)<2" 3;2:)'((/"
1'7Q2<":-112*83+".-8&")*"k(T0D0"D)(23"'3"K2(("'3"k(TG/"
D)(23h"
O! 38-7)*C"0M4L3;2:)D):"*-<23")*"'*"2B82*<2<"0'@'"IF>"&)L 27'7:&/+"
O! 38'8):'((/"2*D-7:)*C"'"1-<)D)2<"8/;2"3/3821+"'*<"
O! C2*27'8)*C"7?*8)12"'33278)-*":&2:Q)*C"E,I%H":-<2$"
>&2" :&-32*" 3?.328" -D" D2'8?723" K'3" '(3-" 322*" '3"?32D?(" )*")83"
-K*"7)C&8"W[GY+"3-12K&'8")*<2;2*<2*8"-D"-8&27"0M4"D2'8?723$"
J*" ;'78):?('7+" 8&2" :';'.)()8)23" D-712<" '" *'8?7'(" 2B82*3)-*" 8-"
8&2"2B)38)*C"21.7/-*):"9:();32"3?;;-78"D-7"*?(()8/"'*'(/3)3$"
>&)3" 2'7(/" ;7-8-8/;2" 327@2<" '3" '" .'3)3" D-7" '*'(/3)3" ./"
121.273" -D" 8&2" 0M4" ,2(-'<2<" f3?.:-11)8822g" -D" 8&2" 0M4"
%-*3-78)?1$"J*":-*:(?3)-*+"8&2"<2:)3)-*"K'3"8-"1-@2"D-7K'7<"
K)8&"<2@2(-;12*8"-D"0M49:();32"WXNY$""
Z$!!9'7(/"9('.-7'8)-*"#&'32"
J*"8&)3"32:8)-*+"K2"<23:7).2"8&2"1)<L!``S"0M49:();32"D2'8?72"
328"'3"2@)<2*:2"8&'8"8&2"C-'(3"38'82<")*"F2:8)-*"Z$["'72".2)*C"
128+"23;2:)'((/"K)8&"723;2:8"8-"D7'12K-7Q":';'.)()8)23")*"3?;L
;-78"-D"8&2"D?(("7'*C2"-D"@27)D):'8)-*"82:&*-(-C)23$"
!"?"#! C)65;%),4)5,8&%,5>),C;((,D623),&8,E)%181F651&2,
=8',7C),(% 2#3#:+*+7+)4% B#,(% @+847C-),)8#7+',% 7''*4D% T2"
12*8)-*" )*" ;'33)*C" 8&'8" )*" ;'7'((2(" K)8&" -?7" K-7Q" -*" *2B8"
C2*27'8)-*":-1;-*2*83"K2"&'@2")*82C7'82<"8&2"8K-"1')*"D)738L C2*27'8)-*"0M4"8--(3+"9F%A0'@'!"'*<"0M4",I%$"\2*:2+"'8"'"
1)*)1?1+" 0M4" ?3273" ':8)@2(/" <2@2(-;)*C" K)8&" D)738" C2*L 27'8)-*"8--(3"K)((".2"'.(2"8-":-*8)*?2"8-"<-"3-+".?8"*-K"K)8&)*"
8&2"1-72"&-3;)8'.(2"2*@)7-*12*8"-DD272<"./"9:();32$"
T)8&" 723;2:8" 8-" 8&2" *2B8" C2*27'8)-*" :-1;-*2*83" ;7-;27+"
0M49:();32_3""D7-*8L2*<"3?;;-783"K&'8"'72":'((2<"0M4"42@2("
`+"42@2("[+"'*<"1-38"-D"42@2("!"D2'8?723"WZU+"l!$UY$""42@2("`"
8-"!":-@27"'(("2332*8)'("0M4"D2'8?723$">&2"3/*8':8):"2(212*83"
8&'8"721')*"'72")*"42@2(3"Z+"%"'*<"m"K&):&":-@27"]?)82")*D72L ]?2*8(/"?32<"0M4"D2'8?723+"3?;;-78"D-7"%-*:?772*:/"'*<"2mL
;27)12*8'(" D2'8?723+" 723;2:8)@2(/" WZU+" l!$UY$" >&2" 0M49:();32"
D7-*8L2*<" 8&?3" ;7-@)<23+" 8-" 8&2" -8&27" :-1;-*2*83" -D" 0M49L :();32+" 8&2" :';'.)()8)23" -D" '" 8/;2" :&2:Q27" 3)1)('7" 8-" 8&'8"
0M4!_3"TG/*":-11'*<$""
L/,7+E)% M44)87+',% N<)2O+,-% BLMND%T&)(2" .'3):" 3?;;-78"
D-7",I%"E2$C$+")*()*2"'33278)-*3"'*<"3)1;(2":-*87':83"'*<")*L
@'7)'*83H")3"'@')('.(2+"'"*2B8"C2*27'8)-*"<23)C*")*3;)72<"D7-1"
8&2":?772*8"0M4!":-1;)(27")3".2)*C"(2'<"./")83"-7)C)*'("'?8&-7"
X" " #$"%&'()*+",-../+"#$,$"0'123+"0$"422+"5$"6'7'.-83-3"
"
W[UY+"n--*3)Q"%&2-*+"'*<"&)3"82'1"'8"8&2"b*)@273)8/"-D">2B'3"
'8"9("#'3-$""
I"Q2/"2(212*8"-D"%&2-*_3"';;7-':&"8-",I%")3"8&2"?32"-D"
K7';;27" 128&-<3" )*" K&):&" 2':&" 128&-<" )1;(212*8'8)-*" )3"
72;(':2<"./"'"K7';;27"128&-<"-D"8&2"3'12"*'12$">&)3"K7';L
;27" 128&-<" )3" 723;-*3).(2" D-7" :'(()*C" '" &-38" -D" -8&27" ,I%"
128&-<3":72'82<"D-7"8&2";?7;-32"-D":&2:Q)*C":('33")*@'7)'*83+"
8&2"128&-<";72:-*<)8)-*"'*<";-38:-*<)8)-*+"28:$a322"P)C$"!$""
"
P7#7+2% Q)8+@+2#7+',% BPQD5% -8'/,(C/3% ()4+-,4% /4+,-% *#7)47%
7)2<,+R/)4%V23)<23" K-7Q" -*" 8&2" 0M49:();32" )*D7'387?:8?72+"
8&2"=F,5"&'3".22*"D-:?3)*C")83"2DD-783"-*"8&2"<2@2(-;12*8"
-D" '" *2K" :-1;-*2*8" :'((2<" 8&2" 0M4" F8'8):" d27)D)27" E0M4"
FdH$">&)3"*2K":-1;-*2*8"-DD273"8&2":';'.)()8)23"-D"9F%"'*<"
PF#d$"J*"8&)3"32:8)-*+"K2";7-@)<2"'*"-@27@)2K"-D"8&2":';'L .)()8)23" -D" 8&2" 0M4" Fd+" <28')(3" -D" )83" '7:&)82:8?72" K)((" .2"
C)@2*")*"F2:8)-*"Z$Z$"
>&2"9F%":-1;-*2*8"-D"0M49:();32+"72D2772<"8-"'3"9F%X+"
)3"'"C7-?*<L?;"72K7)82"-D"9F%"K&):&")3".'32<"-*"V'7*288"'*<"
42)*-_3")**-@'8)@2"'*<")1;7-@2<"';;7-':&"8-"'"K2'Q238";72L :-*<)8)-*"321'*8):3"D-7"9F%"WNY$"c?7"PF#d"8--(+":'((2<"8&2"
PF#d">&2-7/"52*27'8-7"E>5H+")3"()Q2"8&2"0M4"4cc#":-1L
;)(27" WG!Y" )*" 8&'8" )8" C2*27'823" 8&2-7)23" :-*8')*)*C" (211'3"
K&-32";7--D"238'.()3&"8&2":-772:8*233"-D"8&2":-1;)('8)-*"?*)8"
)*"]?238)-*$">&2"PF#d">5":?772*8(/"C2*27'823"8&2-7)23"K7)8L 82*" )*" 8&2" \-'72" 4-C):" -D" F)1;(a'*" J3'.2((2A\c4" .'32<"
8&2-7/"<23)C*2<"D-7"8&2"@27)D):'8)-*"-D"32]?2*8)'(")1;27'8)@2"
;7-C7'13" WXSY$" 4211'3" '72" 2B;72332<" '3" \-'72" 87);(23$" >-"
;7-@2"8&2":-772:8*233"-D"3?:&"(211'3+"'"?327":'*")*827':8)@2(/"
2B;(-72"8&2)7";7--D"?3)*C"8&2"9:();32"@273)-*"-D"#7--D"52*27'("
E#5H"W!Ya322"P)C$"Z$"
"
=+-F%!""T7';;27"';;7-':&"8-",I%%
"
P)C$"Z$"9F%X%8)3'87+,-%7<#7%+7%2#,,'7%38'$)%*''3%+,$#8+#,74%+,%N/:)FS#$#%B:)2#/4)%+7%+4%/4+,-%',*9%@+847%'8()8%38'$)84Hh"
PF#d">5%7<)'89%BN/:)F7<9D%#,(%+74%38''@%2',@+8E)(%$#*+(%:9%64#:)**)F"
#$"%&'()*+",-../+"#$,$"0'123+"0$"422+"5$"6'7'.-83-3" " G"
"
!"?"?! G22&H651H),4E,8)65;%):,
J*" '<<)8)-*" 8-" 3?;;-78)*C" 9F%" '*<" PF#d+" 8&2" 0M4" Fd" :?7L 72*8(/" 3?;;-783" 8&2" D-((-K)*C" D2'8?723+" 1-38" -D" K&):&" '72"
*-@2("2)8&27")*"8&2":-*82B8"-D"@27)D):'8)-*"8--(3")*"C2*27'("-7"
0M4"8--(3")*";'78):?('7^"
O! M?(8)"I?8-1'82<">&2-721"#7-@27"EI>#H"3?;;-78")*:(?<L )*C^"
O! P)738L-7<27"I>#3^"F)1;()D/"'*<"%d%Z$"
O! J3'.2((2A\c4+" K&):&+" K2" &'@2" D-?*<" :'*" .2" ?32<"
]?)82"2DD2:8)@2(/"'3"'*"I>#$"
O! I"82:&*)]?2"K2":'(("!="d27)D):'8)-*"%-*<)8)-*"Ed%H":'3L :'<)*C" K&272" d%3" 8&'8" '72" ?*;7-@'.(2" '72" .7-Q2*" <-K*"
)*8-" 3?.Ld%3" EC)@)*C" ?3" -*2" 'B)3" -D" 8&)3" !=" 82:&*)]?2H"
K)8&";7--D3"'8821;82<"D-7"2':&"3?.Ld%"?3)*C"2':&"-D"8&2"
3?;;-782<"I>#3"E32:-*<"'B)3H$"
O! d%" ;7--D" 38'8?3" :':&)*C$" d%3" E'*<" 3?.Ld%3H" '72" 32(DL :-*8')*2<+" :-*82B8L)*<2;2*<2*8" (211'3" E.2:'?32" 8&2"
(211'3_"&/;-8&2323"21.2<"8&2)7":-*82B8H+"'*<"&2*:2"8&2/"
'72")<2'(":'*<)<'823"D-7";7--D"38'8?3":':&)*C$">&'8")3+"8&2"
0M4"Fd"Q22;3"87':Q"-D";7-@2*"d%3"'*<"72?323"8&2";7--D"
38'8?3"-*"3?.32]?2*8";'3323+"1'8:&)*C"82B8?'((/"d%3"'*<"
&2*:2"'@-)<)*C"2B;2*3)@2"72L@27)D):'8)-*$"
O! cDD()*2" b327" I33)382<" EcbIH" 9F%+" K&):&" K2" 2B;(')*"
*2B8$"
V/" <2D)*)8)-*+" 9F%" )3" '" 38'8):" @27)D):'8)-*" 82:&*)]?2" 8&'8" )3"
D?((/"'?8-1'8):"WZ[Y"K&272'3"PF#d"72]?)723")*827':8)-*"K)8&"
8&2" <2@2(-;27$" cbI" 9F%" -DD273" '" :-1;7-1)32^" '" ?327" )3"
C)@2*"8&2"-;;-78?*)8/"8-";7-@)<2"E-DD()*2H";7--D3"-D"3?.Ld%3+"
K&):&" 9F%X" )3" ?*'.(2" 8-" ;7-@2" '?8-1'8):'((/$" %?772*8(/+"
9F%X" K7)823" ?*;7-@'.(2" (211'3" 8-" '*" J3'.2((2A\c4" 8&2-7/"
D)(2" E-*2" ;27" :-1;)('8)-*" ?*)8H$" >&2" ?327" :'*" 8&2*" )*827':L 8)@2(/";7-@2"8&2"(211'3"?3)*C"#7--D"52*27'("WZY$"c*:2"8&)3")3"
<-*2+"9F%X"K)(("1'Q2"?32"-D"8&2";7--D"3:7);8"-*"3?.32]?2*8"
)*@-:'8)-*3$" T2" &'@2" D-?*<" cbI" 9F%" 8-" .2" ]?)82" ?32D?("
.2:'?32"9F%X")3"C2*27'((/"'.(2"8-"'?8-1'8):'((/";7-@2"1-38"
3?.Ld%3+" &2*:2" -*(/" '3Q)*C" 8&2" ?327" 8-" ;7-@2" 8&2" -*23" .2L /-*<"I>#"'.)()8)23"C72'8(/"72<?:23"8&2";7--D".?7<2*"-*"?3273$"
P)C$" X" 3Q28:&23" 8&2" 72('8)-*3&);" .28K22*" 8&2" 2DD-78" 72L ]?)72<"8-"1'Q2"?32"-D"2':&"-D"8&2"0M49:();32"Fd"@27)D):'8)-*"
82:&*)]?23" '*<" 8&2" (2@2(" -D" :-1;(282*233" 8&'8" :'*" .2"
':&)2@2<$"o-8):2"&-K"9F%X+"K&)(2"72]?)7)*C"*-"1-72"2DD-78"
8-" ?32" 8&'*" )83" ;72<2:233-7" 9F%A0'@'!+" )3" '.(2" 8-" ':&)2@2" '"
&)C&27" (2@2(" -D" :-1;(282*233$" >&)3" )3" .2:'?32" 9F%X" 1'Q23"
?32" -D" 1?(8);(2" ;7-@27" .':QL2*<3" )*:(?<)*C" 8&2" D)738" -7<27"
;7-@273"F)1;()D/"'*<"%d%Z"'3"K2(("'3"J3'.2((2A\c4$"I3"K'3"
12*8)-*2<"2'7()27+"J3'.2((2A\c4":'*".2"?32<"]?)82"2DD2:8)@2(/"
'3" '*" '?8-1'82<" 8&2-721" ;7-@27h" )*" D':8+" J3'.2((2" )3" '.(2" 8-"
E'?8-1'8):'((/H" ;7-@2" 8&2" @'()<)8/" -D" '33278)-*3" 8&'8" '72" .2L /-*<" 8&2" :';'.)()8)23" -D" 8&2" D)738" -7<27" ;7-@273a2$C$+" '3327L 8)-*3" 1'Q)*C" ?32" -D" ]?'*8)D)273$" I*" 2B'1;(2" -D" '" 128&-<"
K&):&" 0M4" Fd" :'*" ;7-@2" :-772:8" ?3)*C" J3'.2((2A\c4" '3" '*"
I>#")3"!#.&(T0D0"C)@2*")*"P)C$"Z"E8&2"72'3-*"9F%X"3&-K3"
8&'8" )8" )3" ?*'.(2" 8-" ;7-@2" 8&2" (--;" )*@'7)'*83" )3" .2:'?32" K2"
<)3'.(2<"?32"-D"J3'.2((2A\c4"'3"'*"I>#"D-7")((?387'8)@2";?7L
;-323a8-" :-*87'38" K)8&" K&'8" :'*" .2" ;7-@2*" ?3)*C"
!#.&(%5LH$"
T)8&")83":?772*8"D2'8?72"328+"K2".2()2@2"8&'8"0M49:();32")3"
8&2"D)738"Jd9"D-7"'"1')*3872'1";7-C7'11)*C"('*C?'C2"8-"3?;L
;-78"8&2"D?(("7'*C2"-D"@27)D):'8)-*"82:&*-(-C)23"ED7-1",I%"8-"
PF#dH$"J83")**-@'8)@2"D2'8?723"1'Q2")8"2'3)27"8-"':&)2@2":-1L
;(282"@27)D):'8)-*"-D"0M4"'**-8'82<"0'@'":-<2"'*<"8&)3"1-72"
]?):Q(/h";72()1)*'7/"723?(83"3&-K"8&'8"9F%X"K)((".2"'8"(2'38"G"
8)123"D'3827"8&'*"9F%A0'@'!$"P?78&271-72+"D2'8?723"()Q2";7--D"
:':&)*C+" '*<" -8&27" D-713" -D" d%" ;7--D" -;8)1)i'8)-*+" -DD27" '"
D?78&27"G`p"<2:72'32")*"@27)D):'8)-*"8)12$" V28827"/28+"'*"2BL
;27)12*8'(" D2'8?72" ;7-@)<)*C" <)387).?82<" 1?(8)L;7-@27" @27)D)L :'8)-*" ;7-1)323" )1;7-@212*83" 8&'8" '72" ()*2'7" )*" 8&2" *?1.27"
-D":-1;?8)*C"723-?7:23"?32<")*"8&2"@27)D):'8)-*"WZZ+"ZGY$"cD"
:-?732+"?*8)("0M4"Fd"3?;;-783"8&2"D?(("0M4"('*C?'C2+"8&232"
723?(83"'72"8-".2"8'Q2*"'3";72()1)*'7/+".?8"K2".2()2@2"8&'8"8&2/"
'72" )*<):'8)@2" -D" 8&2" Q)*<3" -D" 2DD):)2*:/" )1;7-@212*83" 8&'8"
:'*".2"2B;2:82<$"
Z$Z!J*)8)'("I7:&)82:8?72"
J*"8&)3"32:8)-*+"K2";7232*8"'*"'7:&)82:8?7'("-@27@)2K"-D"0M49L :();32" K)8&" '" ;'78):?('7" D-:?3" -*" 8&2" :-1;)(27" E7'8&27" 8&'*"
-8&27" '3;2:83" -D" 8&2" J=9H" K&):&" )3" 72D2772<" 8-" '3" 8&2" 0M49L :();32,F&%)$""
!"!"#! IH)%H1)J,
I8" 8&2" &2'78" -D" 0M49:();32" )3" 8&2" 0M49:();32" :-72+" K&-32"
;7-:233)*C" ;&'323" '72" )((?387'82<" )*" P)C$" G$" M-38" ;&'323" '72"
:-*@2*8)-*'($"J*"8&2"9:();32"0=>"E'*<"&2*:2")*"0M49:();32H+"
8&272" '72" 8K-" 8/;23" -D" ;'73)*C^" )*" '<<)8)-*" 8-" 8&2" ?3?'(" D?(("
;'732+"8&272")3"'(3-"'"<)28";'732+"K&):&"-*(/"C'8&273":('33"3)CL
*'8?72" )*D-71'8)-*" '*<" )C*-723" 128&-<" .-<)23$" 0M49:();32L 3;2:)D):" ;&'323" '72" 3&-K*" )*" .-(<" '*<" )*:(?<2" 8&2" 127C2" -D"
2B827*'(" 3;2:)D):'8)-*3" '*<" 38'8):" @27)D):'8)-*$" %-<2" )*387?L 12*8'8)-*" D-7" 8&2" ;?7;-32" -D" ,?*8)12" I33278)-*" %&2:Q)*C"
E,I%H")3"<-*2"<?7)*C"8&2"0=>_3":-<2"C2*27'8)-*";&'32$"
I" 8-;L(2@2(" 1-<?(2" @)2K" -D" 9:();32" '*<" 0M49:();32" )3"
C)@2*" )*" P)C$" N$" 9:();32" )3" '" ;(?CL)*" .'32<" ';;():'8)-*" ;('8L D-71"'*<"&2*:2"'*"9:();32"';;():'8)-*":-*3)383"-D"8&2"9:();32"
;(?CL)*" (-'<27" E#('8D-71" ,?*8)12" :-1;-*2*8H+" :278')*" :-1L 1-*";(?CL)*3"E3?:&"'3"8&-32")*"8&2"9:();32"#('8D-71";':Q'C2H"
'(-*C" K)8&" ';;():'8)-*" 3;2:)D):" ;(?CL)*3$" T&)(2" 9:();32" )3"
K7)882*" )*" 0'@'+" )8" <-23" *-8" &'@2" .?)(8L)*" 3?;;-78" D-7" 0'@'$"
4)Q2"'(("-8&27"9:();32"D2'8?723+"0'@'"3?;;-78")3";7-@)<2<"./"'"
"
=+-F%TF"F8'8):"@27)D):'8)-*")*%0M49:();32%
N" " #$"%&'()*+",-../+"#$,$"0'123+"0$"422+"5$"6'7'.-83-3"
"
:-((2:8)-*" -D";(?CL)*3" 72D2772<" 8-" '3" 8&2" 9:();32" 0'@'"=2@2(L -;12*8">--(3"E0=>H$"
>&2"0M4"0=>"2B82*<3"8&2"9:();32"0=>"8-"-DD27".'3):"3?;L
;-78"D-7"0M4$"J*";'78):?('7+"8&2"0M4"0=>":-*8')*3"'"1-<)D)2<"
3:'**27+" ;'7327" '*<" I.387':8" F/*8'B" >722" EIF>H" &)27'7:&/$"
>&2" 0M4" F8'8):" d27)D)27" EFdH" :-1;-*2*8" <23)C*" )3" <2L 3:7).2<"*2B8$"
!"!"?! -./,45651F,E)%181)%,K4EL,
I3"K'3"2B;(')*2<")*"8&2";72@)-?3"32:8)-*+"8&2"0M4"Fd"3?;L
;-783" 8K-" 1')*" Q)*<3" -D" @27)D):'8)-*^" 2B82*<2<" 38'8):" :&2:QL )*Ca.-8&"8&2"*-71'("Q)*<"'*<"cDD()*2"b327"I33)382<"EcbIH"
9F%a'*<"D?(("38'8):";7-C7'1"@27)D):'8)-*$">&232"'72"72'()i2<"
./" 8&2" 3?.:-1;-*2*83" *'12<" 9F%X" '*<" 8&2" PF#d" >&2-7/"
52*27'8-7"E>5H+"723;2:8)@2(/$"I"<)'C7'1")((?387'8)*C"<'8'D(-K"
D-7"8&2"0M4"Fd")3"C)@2*")*"P)C$"R$">&2")*;?8"8-"8&2"0M4"Fd")3"
'"D?((/"723-(@2<"IF>"D-7"8&2":-1;)('8)-*"?*)8"':8)@2(/".2)*C"
;7-:2332<$""
J*)8)'82<"-*"?327" 72]?238+" 32;'7'82" D7-1" 8&2" *-71'(" :-1L
;)('8)-*";7-:233+"8&2"PF#d">5"C2*27'823"J3'.2((2A\c4"8&2-7/"
D)(23"D-7"8&2"C)@2*":-1;)('8)-*"?*)8"E%bH$"c*2"8&2-7/"D)(2")3"
C2*27'82<";27"%b$"b3273":'*"8&2*"1'*);?('82"8&2"8&2-7/"D)(23"
./"?3)*C"#7--D"52*27'($""
T&2*" ':8)@'82<" E@)'" :-1;)(27" ;72D272*:23H+" 9F%X" D?*:L 8)-*'()8/" )3" ':8)@'82<" <?7)*C" 8&2" *-71'(" :-1;)('8)-*" ;7-:233"
D-((-K)*C" 38'*<'7<" 38'8):" '*'(/3)3$" >&2" 9F%" ;&'323" '72" 8&2"
38'*<'7<" -*23" WZ[Y+" 8&-?C&" 8&2"6BB%&6F>" ?32<" ./" 9F%X" )3"
*2K" )*" 8&2" :-*82B8" -D" 0M4" 8--()*C^" )8" )3" '" 72'()i'8)-*" -D" 8&2"
V'7*288" '*<" 42)*-" ';;7-':&" WNY" ?32<" )*" F;2:q" )*" K&):&" 8&2"
)*;?8" IF>" )3" 87'*3('82<" )*8-" d%3" ./" ?3)*C" '" *-@2(" D-71" -D"
C?'7<2<L:-11'*<" ;7-C7'1" '3" '*" )*82712<)'82" 72;7232*8'L 8)-*$" >&2" #7--D" %--7<)*'8-7" <2:)<23" -*" 8&2" 387'82C/" 8-" ?32"
3?:&" '3" ?3)*C" '" 3)*C(2" ;7-@27+" :'3:'<2<" d%" ;7--D3+" cbI"
9F%"'*<A-7"'"<)387).?82<":-1.)*'8)-*"-D"8&232"WZZ+"ZXY$"J*"8&2"
:'32" -D" cbI" 9F%+" J3'.2((2" 8&2-7/" D)(23" '72" :-*3?(82<" K&2*"
3?.Ld%3" '72" ?*;7-@'.(2" '*<" '" ?327L3?;;()2<" ;7--D" 2B)383$"
b*D-78?*'82(/+"8&2"<28')(2<"<23)C*"'*<"D?(("<28')(3"-D"8&2".2L
&'@)-7"-D"8&2"0M4"Fd"'72".2/-*<"8&2"3:-;2"-D"8&)3";';27$"
Z$X!"f>&)7<"#'78/g"P2'8?723"
J*" '<<)8)-*" 8-" ;7-@)<)*C" .'3):" 3?;;-78" D-7" 0M4+" 0M49:();32"
&'3" '3" '";7)12" -.j2:8)@2" 8-" .2" '" 7232'7:&";('8D-71" D-7" -8&27"
"
=+-F%UF"0=>A0M49:();32":-72";&'323"E;&'323")*".-(<"'72"0M49:();32L3;2:)D):H%
3#&,42(*!
5)+,1*$
"#$%&'(!)$*+,-./ 62(78$+/9 62(7:0&/$
;$&*
<$#0 -/#10:$!=>?
@1*0#14A 012"#$%&'(
012!034
012!56
3(224!
B$+$(&#
CDC=
":&8$##$
EFG!
C9$/7$(
!-@CHE&I&J EFG!K1(:,!
B$+$(&,12+!;22#:
>>> >>>
"
=+-F%VF"9:();32"'*<"0M49:();32":-1;-*2*8"<)'C7'1%
"
=+-F%WF"0M49:();32"Fd"<'8'D(-K%
#$"%&'()*+",-../+"#$,$"0'123+"0$"422+"5$"6'7'.-83-3" " R"
"
7232'7:&27" C7-?;3" WXNY$" >&'8" )3+" 8&2" 3?::233" -D" 0M49:();32"
K)((" .2" 12'3?72<+" )*" ;'78+" ./" &-K" 2'3/" )8" .2:-123" D-7" 72L 32'7:&273"E-8&27"8&'*"8&-32"K-7Q)*C"-*"8&2"0M4"0=>":-72H"8-"
2B82*<"0M49:();32$"
>-"8&)3"2*<+"K2"&'@2"3-12"2*:-?7'C)*C"3)C*3"-D"3?::233$"
J*"'<<)8)-*"8-"n--*3)Q"%&2-*_3"7232'7:&"C7-?;"'<<)*C",I%"
3?;;-78"8-"0M49:();32+"-8&273"&'@2".?)(8"?;-*"0M49:();32")*"
*-@2("K'/3")*:(?<)*C^"
O! ,-../" '*<" -8&27" FI*>-F" ('.-7'8-7/" 121.273!" D7-1"
6'*3'3" F8'82" b*)@273)8/" 1'Q2" ?32" -D" 0M49:();32" '3" '"
D7-*8L2*<" 8-" 8&2" F)72?1A6)'3'*" 3/1.-():" 2B2:?8)-*" 3/3L 821" '*<" 8&2" '33-:)'82<" 6b*)8" 8238" C2*27'8)-*" D7'12K-7Q"
W!RY$""
O! >)1"T'&(3"&'3"2B82*<2<"0M49:();32"8-"2*'.(2"8&2"2B2:?L 8)-*" -D" 3;2:)D):'8)-*3" 8&7-?C&" 8&2" ?32" -D" :-*387')*8" ;7-L C7'11)*C"W[Z+"ZNY$"
T! 6,+7+#*%M82<+7)27/8#*%M44)44E),7%#,(%;<#4)%66%L)()4+-,%
X$[!F?::23323""'*<"%&'((2*C23""
V-8&"8&2"82'13"-D">)1"T'&(3"'*<",-../"2332*8)'((/"K-7Q2<"
)*<2;2*<2*8(/" -D" 8&2" 0M49:();32" 82'1" <?7)*C" 8&2" <2@2(-;L 12*8" -D" 8&2)7" 723;2:8)@2" 0M49:();32" 2B82*3)-*3$" T2" .2()2@2"
8&'8"8&)3";7-@)<23"'*")*)8)'(")*<):'8)-*"-D"8&2"@)'.)()8/"-D"?3)*C"
0M49:();32"'3"'"7232'7:&";('8D-71$"
c*" 8&2" -8&27" &'*<+" '3" :-72" 0M49:();32" <2@2(-;273+" K2"
&'@2" :-12" 8-" ';;72:)'82" 8&'8" 8&2" 9:();32" 0=>" )3" '" 3-;&)38)L :'82<" 1?(8)L8&72'<2<" )*:7212*8'(" :-1;)(27" 3;2:)D):'((/" <2L 3)C*2<" 8-" -DD27" 2DD2:8)@2+" 2$C$+" '3L/-?L8/;2" K2((LD-712<*233"
E2$C$+" 3/*8'B" '*<" 8/;2H" :&2:Q)*C" 8-" <2@2(-;273$" %-1)*C" 8-"
82713"K)8&"3?:&"'*"';;7-':&+"'3":-1;'72<"8-"8&'8"-D"8&2":('3L 3):'(" :-1;)(27" 82:&*-(-C/" 8&'8" D)738" C2*27'8)-*" 0M4" 8--(3"
K272".?)(8"-*+"&'3".22*"-*2"-D"8&2"C72'8238":&'((2*C23"8&'8"K2"
D':2<"K&)(2"2B82*<)*C"8&2"0=>$"""
0M49:();32" K-7Q" &'3" .22*" D-:?32<" -*" :-72" D?*:8)-*'()8/"
E2$C$"0M4"('*C?'C2":&2:Q27+",I%+"9F%H"'3"-;;-32<"8-"J=9"
D2'8?723" ;7-;27$" T2" :'12" 8-" 72'()i2" 8&'8" -DD27)*C" 2DD2:8)@2"
K2((L)*82C7'82<" J=9" 3?;;-78" D-7" D2'8?723+" ()Q2" '3L/-?L8/;2"
3/*8'B":&2:Q)*C"'*<"3;2:)D):'8)-*"72D':8-7)*C+"K-?(<"72]?)72"
72K-7Q)*C"-D"8&2"0M49:();32"D7-*8L2*<$"
X$!!0M49:();32"#&'32"JJ"I7:&)82:8?7'(",2<23)C*"
>&)3"'*8):);'82<"*22<"8-"72L'7:&)82:8"8&2"0M49:();32"D-*8L2*<"
:-?;(2<"K)8&"'":(-327"'*'(/3)3"-D"8&2"72]?2383"-D"f8&)7<";'78/g"
0M49:();32";7-j2:83+"&'3"(2<"8-"'"32:-*<";&'32"-D"0M49:();32"
7232'7:&"j-)*8(/":'77)2<"-?8"./"8&2"=F,5"'*<"FI*>-F"('.-L 7'8-7/$"
>&2" 1')*" -.j2:8)@23" -D" 8&)3" 32:-*<" ;&'32" 72<23)C*" -D"
0M49:();32"&'3".22*"8-^"
O! 1'Q2"8&2"0M49:();32":-72"1)*)1'(+"./^"
O! D':8-7)*C" -?8" 3-12" -D" 8&2" 0M4" 3;2:)D):" D7-*8L2*<"
:-<2+"'*<"
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
!"J*)8)'((/"K-7Q)*C")*<2;2*<2*8(/"D7-1"8&2"-7)C)*'("0M49:();32"<2@2(-;273+"
FI*>-F"'*<"=F,5"&'@2"3)*:2"8&2*".2:-12"j-)*8":-*87).?8-73"8-"8&2"8--(_3"
;&'32"JJ"<23)C*"'3"K)((".2"2B;(')*2<")*"8&2"*2B8"32:8)-*$"
O! ;?(()*C" D2'8?723" 3?:&" '3" ,I%" '*<" 9F%" -?8" -D" 8&2"
:-72h"
O! -DD27"*-*L:-72":-1;-*2*83"'::233"8-"D?((/"723-(@2<"IF>3"
.?)(8"D7-1"8&2"0=>_3"B;'(1F"IF>":('33"&)27'7:&/a:'((2<"
8&2"=cMa7'8&27"8&'*")*827*'("IF>":('3323$"
I3" :-1;'72<" 8-" )*827*'(" 0=>" ;':Q'C23+" 8&2" =cM+" ()Q2" '(("
;?.():" 9:();32" I#J";':Q'C23+" )3" :-*3)<27'.(/" (233" 3?.j2:8" 8-"
:&'*C2"'*<")3"1?:&".28827"<-:?12*82<$">&2"('827")3"'"*28"'<L
@'*8'C2"D-7"0M49:();32"8&)7<L;'78/"<2@2(-;273$"
>&2";7)*:);'("12:&'*)31"./"K&):&"0M49:();32")3"':&)2@L )*C"8&232"*2K"<23)C*"C-'(3")3"8&7-?C&"8&2"?32"-D"'":'72D?((/"
<23)C*2<"0M4"J*82712<)'82",2;7232*8'8)-*"E0J,H"WXGY+"K&):&"
*-8"-*(/";7-@)<23"'"12'*3"-D"72;7232*8)*C"0M4"@)'"8&2";?.():"
0=>"=cM+".?8")8"'(3-"-DD273"'"38'*<'7<"12:&'*)31"D-7"21L .2<<)*C"0M4"3;2:)D):'8)-*"2(212*83")*":('33"D)(23$"c?7"0J,")3"
<28')(2<")*"8&2"*2B8"32:8)-*".2D-72"0M49:();32_3"72@)32<"'7:&)L 82:8?72")3";7232*82<")*"F2:8)-*"X$"
U! "&.%6,7)8E)(+#7)%L)38)4),7#7+',%B"6LD%
>&2"0M4"J*82712<)'82",2;7232*8'8)-*"E0J,H"*-8"-*(/"-DD273"'"
12'*3"-D"<2:-?;()*C"*-*L:-72"0M49:();32":-1;-*2*83"D7-1"
8&2")*827*'(3"-D"8&2"9:();32"0=>+")8"'(3-"327@23"8&2"1-72"?32D?("
;?7;-32" -D" .2)*C" '*" 2B:&'*C2" D-71'8" D-7" 0M4" 8--(" :-1;-L
*2*83$"
o2B8+"K2";7232*8"8&2"0J,"<23)C*"C-'(3+"0J,"2*:-<)*C"'*<"
8&2"0J,")*D7'387?:8?72"I#J"?32<"8-"'.387':8"'K'/+"8-"8&2"2B82*8"
;-33).(2+"D7-1"8&2"<28')(3"-D"8&2"0J,"2*:-<)*C$">&2"K-7Q"72L
;-782<")*"8&)3"32:8)-*".?)(<3"?;-*"'*"2'7(/"0J,"<23)C*"C)@2*")*"
WXGY$""
G$[!=23)C*"5-'(3"'*<",'8)-*'(2"
J*" '" .7-'<" 32*32+" -?7" 0M4" )*82712<)'82" 72;7232*8'8)-*" )3"
1')*(/" ')12<" '8" ;7-@)<)*C" '" ?*)D)2<" 72;7232*8'8)-*" D-7" 0M4"
8&'8" :'*" .2" 2'3)(/" C2*27'82<" ./" @'7)-?3" 0M4" D7-*8L2*<3" '*<"
:-*3?12<" ./" <)DD272*8" 0M4" .':QL2*<3$" V2(-K" '72" <23)C*"
C-'(3"'*<":-7723;-*<)*C"7'8)-*'(2"8&'8"K2".2()2@2"'*/")*827L 12<)'82" 72;7232*8'8)-*" '*<" )83" 3?;;-78)*C" )*D7'387?:8?72"
3&-?(<"3'8)3D/^"
=[!4-K" .'77)27" -D" E72LH2*87/^" >-" &2(;" 2'32" '<-;8)-*+" 0M4"
8--("<2@2(-;273"3&-?(<".2"'.(2"8-"(2'7*"0J,"K)8&-?8"3)CL
*)D):'*8")*@23812*8+"'*<"8-"?32")83"8--("3?;;-78"K)8&-?8"'"
3)C*)D):'*8"(2'7*)*C"E'*<"1')*82*'*:2H"-@27&2'<$"
=!!%-1;72&2*3)@2^" J8" 3&-?(<" .2" ;-33).(2" 8-" 72;7232*8" '(("
0M4":-*387?:83")*"0J,$"
=Z!9B82*3).(2^"0J,":'*".2"2'3)(/"2B82*<2<"8-"&'*<(2":?38-1"
0M4" :-*387?:83" D-7" 2B;27)12*8'8)-*" K)8&" *2K" ('*C?'C2"
D2'8?723$"
=X!J1;(212*8'8)-*L)*<2;2*<2*8^"0J,"3&-?(<"*-8".2"8)2<")*8-"
'" ;'78):?('7" 0M4" D7-*8L2*<+" *-7" 3&-?(<" )8" .2" .)'32<" 8-L K'7<" '" ;'78):?('7" '*'(/3)3" 82:&*)]?2" E2$C$+" 38'8):" -7" 7?*L 8)12"'33278)-*":&2:Q)*CH"-7".':QL2*<$"
=G!,-.?38" 8--(L3?;;-78" D-7" ;7-:233)*C^" 0J," 8--(" 3?;;-78"
3&-?(<".2".'32<"-*"38'.(2"'*<"7-.?38"3-D8K'72")*D7'387?:L 8?723$" J*" -7<27" *-8" 8-" :-1;7-1)32" 8&2" 7-.?38*233" -D" 8&2"
?*<27(/)*C" )*D7'387?:8?723+" 8&2" 0J," :-<2.'32" 3&-?(<" .2"
S" " #$"%&'()*+",-../+"#$,$"0'123+"0$"422+"5$"6'7'.-83-3"
"
31'((+" 8&?3" 2'3)(/" 1')*8')*2<$" %72'8)*C" '*" '(827*'8)@2"
)1;(212*8'8)-*"-D"0J,"3&-?(<"8'Q2"()88(2"8-"1-<238"2DD-78+"
&2*:2"2*3?7)*C"0J,_3")1;(212*8'8)-*L)*<2;2*<2*:2$"
=N!%'*".2"8)C&8(/")*82C7'82<"8-"@'7)-?3"J=93^"J=93";('/"'*"
)1;-78'*8" 7-(2" )*" 8&2" <2@2(-;12*8" -D" 1-<27*" 3-D8K'72$"
>-"&2(;"2*3?72"'<-;8)-*+")8"3&-?(<".2";-33).(2"8-"8)C&8(/"
)*82C7'82"0J,")*";-;?('7"0'@'"J=93$"
=R!%'*"2'3)(/".2":-*387?:82<"./"&'*<^"T&)(2"0J,")3"8'7C282<"
D-7"'?8-1'8):";7-:233)*C+")8"3&-?(<"'(3-".2"72('8)@2(/"2'3/"
8-" :-*387?:8" 0J," 3;2:)D):'8)-*3" 1'*?'((/$" >&)3" 1'Q23"
K7)8)*C" 8238" :'323" 2'3)27" '*<" '((-K3" 8--(" <2@2(-;273"
K-7Q)*C"-*"0M4"2B82*3)-*3"8-";7-8-8/;2"'*<"2B;27)12*8"
K)8&" 8&2)7" 2B82*3)-*" 2@2*" K)8&-?8" '" 3?;;-78)*C" 0M4"
D7-*8L2*<$"
G$!!0J,"=2D)*)8)-*"
T&)(2"<2@2(-;)*C"0J,+"K2"?32<"8&2";72@)-?3(/"38'82<"<23)C*"
C-'(3"'3"'"C?)<2h"D-7":-*D():8)*C"C-'(3+"K2"-;82<"D-7"D?*:8)-*"
'*<" 2'32" )*" 2*C)*227)*CA1')*82*'*:2" -@27" D-71" 3)*:2" 0J," )3"
*-8")*82*<2<"'3"0M4")*;?8"3/*8'B"D-7"2*<L?3273$""
>&272"'72"8&722"1')*";273;2:8)@23"D7-1"K&):&"0J,":'*".2"
<23:7).2<+"*'12(/"D7-1"8&2";-)*8"-D"@)2K"-D"'^"
O! 0M4"8--(".':QL2*<"K'*8)*C"8-";7-:233"0M4"E72;7232*82<"
'3"0J,Hh"
O! 0M4" 8--(" D7-*8L2*<" K)3&)*C" 8-" ?32" 8&2" 0J,")*D7'387?:8?72"
8-":72'82"0J,"D-7".':QL2*<3h"
O! 0J," )1;(212*8'8)-*3" K'*8)*C" 8-" ;7-:233" 0J," :('33" D)(2"
2*:-<)*C3$"
9':&" -D" 8&232" )3" :-@272<" )*" 8&2" 3?.32:8)-*3" C)@2*" *2B8$" T2"
.2C)*"./";7232*8)*C+"'8"'"&)C&L(2@2(+"8&2"0J,"I#J3"-DD272<"8-"
0M4" 8--()*C" .':QL" '*<" D7-*8L2*<" :-1;-*2*83$" >&232" I#J3"
'((-K3":-1;-*2*83"8-".2")*<2;2*<2*8"-D"8&2":('33"D)(2"2*:-<L )*C"-D"0J,$"
"
G$Z!0J,"I#J"D-7"0M4">--("V':QL2*<3"
0M4" 8--()*C" .':QL2*<3" 8/;):'((/" 2B;2:8" 8-" 72:2)@2" D7-1" '"
D7-*8L2*<"'"D?((/"723-(@2<"IF>"K)8&"'::233"8-"IF>".)*<)*C3"
:-*8')*)*C+" 2$C$+" 8/;2" )*D-71'8)-*$" J*" <23)C*)*C" 8&2" 0J,+" K2"
D':2<" 8&2" :-*D():8)*C" C-'(3" -D" K'*8)*C" 0J," 8-" .2" D7-*8L2*<"
)*<2;2*<2*8"E=XH"'*<"/28".2"2'3/"8-"(2'7*"'*<"?32"E=[H$"P7-1"
8&2";-)*8"-D"@)2K"-D"'".':QL2*<":-1;-*2*8"<23)C*27+"3?:&"'3"
'" 0J," :()2*8+" E=XH" )1;()23" 8&'8" 0M4" *-<23" 3&-?(<" .2" ;72L 32*82<" @)'" '*" IF>" &)27'7:&/" 3;2:)D):" 8-" 0J," K&272" '3" E=[H"
)1;()23"8&'8"8&2"IF>"3&-?(<"1'Q2"?32"-D"8&2".':QL2*<_3"*'L 8)@2"IF>":('3323$"
>&'*QD?((/+" '*" '::2;8'.(2" :-1;7-1)32" )3" ;-33).(2h" 8&2"
0J,"IF>"&)27'7:&/"-DD272<"8-".':QL2*<":-1;-*2*83")3"3&-K*"
)*"P)C$"S$">&2"2332*:2"-D"8&2":-1;7-1)32")3"8-"-DD27"0J,"3;2L :)D):"IF>"*-<23"&2(A"D-7"0M4"3;2:)D):"*-<23+"'*<"8-"72(/"-*"
8&2".':QL2*<_3"*'8)@2"IF>"*-<2"8/;23"D-7"8&2"7238+"2332*8)'((/"
C7'D8)*C" *'8)@2" IF>" *-<2" 8/;23" )*8-" 0J," IF>3$" \2*:2+" )*"
;'78):?('7+"*-8):2"8&'8"32@27'(":('3323"()Q2"U)'844)-$0./&S
!/0#4&"&'@2"NI6'&44)"$"'3"'"C2*27):";'7'12827$"
I".':QL2*<":'*"(2@27'C2"'*"2B)38)*C"0'@'":-1;)(27"D7'12L K-7Q_3"2B;7233)-*"IF>"8/;2"8-")*38'*8)'82"NI6'&44)"$h"8&)3"
':8?'((/"72<?:23"'"3)C*)D):'*8"2*C)*227)*C"-@27L&2'<".2:'?32"
8&2"0'@'"2B;7233)-*"('*C?'C2")*:(?<23"1-38"('*C?'C2"D2'8?723"
)*" 0'@'" E<?2" 8-" '*-*/1-?3" :('33" :72'8)-*" )*" 0'@'" 2B;723L 3)-*3H$" >-" D)8" '" :-1;)(27" D7'12K-7Q_3" I#J" )*" 0J,+" 0J," 72L ]?)723"'*"2B;7233)-*";'7327"'*<"'*"2B;7233)-*";7288/";7)*827h"
8&232" 8K-" 1-<?(23" '72" ?3?'((/" ;'78" -D" '" 38'*<'7<" :-1;)(27"
D7'12K-7Q" I#J$" >&?3+" 2B)38)*C" 0'@'" :-1;)(27" D7'12K-7Q3"
3?:&"'3"0=>"'*<"c;2*0=6"W!!Y":'*".2"?32<"K)8&"0J,$"
I":-*32]?2*:2"-D"8&2"<2:)3)-*"8-"?32"8&2".':QL2*<_3"*'L 8)@2"NI6'&44)"$"8/;2")3"8&'8"0M4L3;2:)D):"2B;7233)-*3"1?38"
.2"2*:-<2<"'3";?72"0'@'"NI6'&44)"$3$""T&)(2"8&2"<28')(3"-D"
8&)3"21.2<<)*C"-D"0M4"2B;7233)-*3"'3";?72"0'@'"2B;7233)-*3"
"
=+-F%X"0J,"IF>"\)27'7:&/"E;'78)'(H%
"
=+-F%Y"0J,"8/;2".)*<)*C3"&)27'7:&/"E;'78)'(H%