How to upgrade Rails from 2 to 5 and what we are doing to keep longtime Rails applications alive, which was a talk in RubyConf Taiwan 2016.
7BMVF"OE1BJOUP,FFQ3BJMT"QQMJDBUJPOT"MJWF:BTVLP0ICB !OBZେೡࢠ&WFSZMFBG$PSQ גສ༿
View Slide
:BTVLP0ICB େೡࢠ!OBZ-JWJOHJO5PLZP +BQBO"QSPHSBNNFS3VCZPO3BJMTTJODF+BWB $ 0CKFDUJWF$ 1)1ʜ1SFTJEFOUPG&WFSZMFBG$PSQ
͓͓͞Μ େTBOPPCBTBOPICBTBO
͓͓͞Μ େTBOPPCBTBOPICBTBO͓͞Μ(姑媽)PCBTBO
͓͓͞Μ େTBOPPCBTBOPICBTBO͓͞Μ(姑媽)PCBTBO͓͋͞Μ(奶奶)PCBBTBO
&WFSZMFBG$PSQ ສ༿8FEFWFMPQXFCBQQMJDBUJPOTGPSPVSDMJFOUTVTJOHNPTUMZ3VCZPO3BJMT4JODF BMNPTUZFBSTQFPQMF BSFXPNFOBSFXPNFO JOFOHJOFFSJOH
ࣸਅΓ͍ͨQFPQMFIFSF
4UJDLFST&ZFHMBTT$MFBOJOH$MPUIT
.ZGBNJMZ
ݺ 5BJXBO5IFpSTUUJNFUP7JTJU5BJXBO"UUFOE3VCZ$POG5BJXBO5IFTFDPOEUJNFUP)BWFBO&OHMJTIUBMLMPOHFSUIBO-JHIUOJOH5BMLT
0VUMJOF8IBUXFHFOFSBMMZIBWFUPEPUPVQHSBEF3VCZBOE3BJMTJOMFHBDZBQQMJDBUJPOT8FOFFEUPLFFQPVS3BJMTBQQTBMJWFJOMPOHUJNF CVUUIBUTUPVHI8IBUXFBSFEPJOHGPSUIBU
3VCZ3BJMT6QHSBEJOHIUUQTXXXqJDLSDPNQIPUPT!/
2)PXNBZQFPQMFIBWFVTFE3BJMT
2)PXNBOZQFPQMFIBWFFYQFSJFODFEUIFVQHSBEJOHGSPN3BJMTUP
3BJMTIBECFFOVTFEXJEFMZJO+BQBOBUMFBTU
.BOZPME3BJMTBQQMJDBUJPOTSFNBJOXBJUJOHUPCFVQHSBEFEIUUQTXXXqJDLSDPNQIPUPTNBTIB@L@TI
4P LOPXJOHBCPVUIPXUPVQHSBEF3VCZ3BJMTDBOCFTPNFIFMQGPSUIBUTJUVBUJPOIUUQTXXXqJDLSDPNQIPUPTUSFFTBOUPT
*TJUQPTTJCMF
*TJUQPTTJCMF&WFO XJUI OP BVUPUFTUJOH
*TJUCFUUFSUPEFWFMPQBOBQQMJDBUJPOGSPNTDSBUDI
*UDPVMECF#VUOPUBMXBZT
"OFYJTUJOHTZTUFNCFJOHVTFESFqFDUTJUTSFBMOFFET
:PVDBOOFWFSSFNPWFJUTFTTFOUJBMDPNQMFYJUZCZQSPHSBNJOHUFDIOJRVFTBOZXBZ
5IBUTXIZVQHSBEJOHBOESFGBDUPSJOHNBLFTFOTF
-FUTMPPLBUIPXUPVQHSBEF3VCZ3BJMT
0VS$BTF3BJMT
0VS"QQMJDBUJPOT,JOEPGBIFBMUIDIFDLTFSWJDF#UP#)BOEFEPWFSUPPVSDPNQBOZGSPNUIFPUIFSEFWFMPQNFOUDPNQBOZXIJDIPSJHJOBMMZEFWFMPQFEUIFTZTUFN
"QQBENJO"QQGPSFOEVTFST"QQGPSFOEVTFST3BJMT0VS1SPKFDU(PBM3BJMT3VCZ
"QQBENJO"QQGPSFOEVTFST"QQGPSFOEVTFST3BJMT0VS1SPKFDU(PBM3BJMT3VCZ%SBXJUBXBZGSPN3BEJBOU$.4
"QQBENJO"QQGPSFOEVTFST"QQGPSFOEVTFST3BJMT0VS1SPKFDU(PBM3BJMT3VCZ6QHSBEJOH3BJMT3VCZ%SBXJUBXBZGSPN3BEJBOU$.4
"QQBENJO"QQGPSFOEVTFST"QQGPSFOEVTFST .FSHF3BJMT0VS1SPKFDU(PBM3BJMT3VCZ6QHSBEJOH3BJMT3VCZ%SBXJUBXBZGSPN3BEJBOU$.4
"QQBENJO"QQGPSFOEVTFST"QQGPSFOEVTFST .FSHF3BJMT0VS1SPKFDU(PBM3BJMT3VCZ6QHSBEJOH3BJMT3VCZ3FGBDUPSJOH%SBXJUBXBZGSPN3BEJBOU$.4
"QQBENJO"QQGPSFOEVTFST"QQGPSFOEVTFST .FSHF3BJMT0VS1SPKFDU(PBM3BJMT3VCZ6QHSBEJOH3BJMT3VCZ3FGBDUPSJOH%SBXJUBXBZGSPN3BEJBOU$.4"/$*&/5$0%&
"QQBENJO"QQGPSFOEVTFST"QQGPSFOEVTFST .FSHF3BJMT0VS1SPKFDU(PBM3BJMT3VCZ6QHSBEJOH3BJMT3VCZ3FGBDUPSJOH"EE'FBUVSFT%SBXJUBXBZGSPN3BEJBOU$.4"/$*&/5$0%&
"QQ BENJO+----------------------+-------+-------+---------+---------+-----+-------+| Name | Lines | LOC | Classes | Methods | M/C | LOC/M |+----------------------+-------+-------+---------+---------+-----+-------+| Controllers | 6169 | 4554 | 79 | 573 | 7 | 5 || Helpers | 1090 | 762 | 0 | 95 | 0 | 6 || Models | 33339 | 23101 | 363 | 2629 | 7 | 6 || Javascripts | 18382 | 9653 | 8 | 1191 | 148 | 6 || Libraries | 3764 | 2504 | 45 | 279 | 6 | 6 || Controller specs | 220 | 173 | 0 | 0 | 0 | 0 || Feature specs | 12738 | 9900 | 0 | 5 | 0 | 1978 |+----------------------+-------+-------+---------+---------+-----+-------+| Total | 75702 | 50647 | 495 | 4772 | 9 | 8 |+----------------------+-------+-------+---------+---------+-----+-------+5IF3FDFOU3FTVMU
"QQ VTFS+----------------------+-------+-------+---------+---------+-----+-------+| Name | Lines | LOC | Classes | Methods | M/C | LOC/M |+----------------------+-------+-------+---------+---------+-----+-------+| Controllers | 1560 | 1100 | 25 | 137 | 5 | 6 || Helpers | 1512 | 1163 | 1 | 132 | 132 | 6 || Models | 33388 | 23145 | 364 | 2632 | 7 | 6 || Javascripts | 11588 | 6841 | 0 | 966 | 0 | 5 || Libraries | 3190 | 2162 | 29 | 275 | 9 | 5 || Feature specs | 3878 | 2978 | 0 | 0 | 0 | 0 || Helper specs | 157 | 117 | 0 | 0 | 0 | 0 |+----------------------+-------+-------+---------+---------+-----+-------+| Total | 55273 | 37506 | 419 | 4142 | 9 | 7 |+----------------------+-------+-------+---------+---------+-----+-------+5IF3FDFOU3FTVMU
5PUBM4DIFEVMF"VHVTU.BZNPOUITQFPQMF 6QHSBEJOH3FGBDUPSJOH/FX'FBUVSFT"/FX'FBUVSFT#QMBOOJOHEFTJHOJOHCZPVSDMJFOUPVSEFTJHOJOHBOEJNQMFNFOUBUJPOJOUFHSBUJPOUFTUJOHCZBQBSUOFSDPNQBOZ
6QHSBEJOH4DIFEVMF "QQUP3BJMTUP3VCZUP3BJMTUP3BJMT"QQUP3BJMTUP3VCZUP3BJMTUP3BJMT'JMF6QMPBEJOH1BHJOBUJPO&NBJM4FOEJOH#BDLHSPVOE1SPHSBNT3BJMT3VCZˠ3BJMT3VCZ
.BQPG3BJMT6QHSBEJOH3BJMT
.BQPG3BJMT6QHSBEJOH3BJMT3BJMT
.BQPG3BJMT6QHSBEJOH3BJMT5IF3JWFSPG5FBST3BJMT
.BQPG3BJMT6QHSBEJOH3BJMT5IF3JWFSPG5FBST3BJMT3BJMT
.BQPG3BJMT6QHSBEJOH3BJMT5IF3JWFSPG5FBST3BJMT3BJMT5IF.PVOUBJOTPG.PEFSO3BJMT
.BQPG3BJMT6QHSBEJOH3BJMT5IF3JWFSPG5FBST3BJMT3BJMT3BJMT5IF.PVOUBJOTPG.PEFSO3BJMT
.BQPG3BJMT6QHSBEJOH3BJMT5IF3JWFSPG5FBST3BJMT3BJMT4BZ(PPECZFUP3VCZ3BJMT5IF.PVOUBJOTPG.PEFSO3BJMT
.BQPG3BJMT6QHSBEJOH3BJMT5IF3JWFSPG5FBST3BJMT3BJMT4BZ(PPECZFUP3VCZ3BJMT5IF.PVOUBJOTPG.PEFSO3BJMT3BJMT
.BQPG3BJMT6QHSBEJOH3BJMT5IF3JWFSPG5FBST3BJMT3BJMT4BZ(PPECZFUP3VCZ3BJMT5IF.PVOUBJOTPG.PEFSO3BJMT3BJMT5IF4USPOH1BSBNFUFST'BMMT
.BQPG3BJMT6QHSBEJOH3BJMT5IF3JWFSPG5FBST3BJMT3BJMT4BZ(PPECZFUP3VCZ4BGF3BJMT5IF.PVOUBJOTPG.PEFSO3BJMT3BJMT5IF4USPOH1BSBNFUFST'BMMT
.BQPG3BJMT6QHSBEJOH3BJMT5IF3JWFSPG5FBST3BJMT3BJMT4BZ(PPECZFUP3VCZ4BGF3BJMT5IF.PVOUBJOTPG.PEFSO3BJMT3BJMT3BJMT5IF4USPOH1BSBNFUFST'BMMT
#FGPSF3BJMT3BJMT5IF3JWFSPG5FBST3BJMT3BJMT4BZ(PPECZFUP3VCZ4BGF3BJMT5IF.PVOUBJOTPG.PEFSO3BJMT3BJMT3BJMT5IF4USPOH1BSBNFUFST'BMMT3BJMT
#VSEFOCFGPSFEFGBVMUSPVUFNBQQJOHIUUQTXXXqJDLSDPNQIPUPTU[FKFONBQDPOOFDUDPOUSPMMFSBDUJPOJE
#VSEFOCFGPSFEFGBVMUSPVUFNBQQJOHIUUQTXXXqJDLSDPNQIPUPTU[FKFONBQDPOOFDUDPOUSPMMFSBDUJPOJESFTPVSDFTVTFSTSFTPVSDFTDPNQBOJFT POMZ<TIPX>ʜ
#VSEFOCFGPSFEFGBVMUSPVUFNBQQJOHIUUQTXXXqJDLSDPNQIPUPTU[FKFONBQDPOOFDUDPOUSPMMFSBDUJPOJE:PVOFFEUPLOPX"--"$5*0/4SFTPVSDFTVTFSTSFTPVSDFTDPNQBOJFT POMZ<TIPX>ʜ
3BJMT3BJMT3BJMT3BJMT3BJMT4BZ(PPECZFUP3VCZ4BGF3BJMT5IF3JWFSPG5FBST5IF4USPOH1BSBNFUFST'BMMT5IF.PVOUBJOTPG.PEFSO3BJMT3BJMT
5IF3JWFSPG5FBST3BJMT "DUJWF3FDPSEDIBJOBCMFRVFSZMBOHVBHF4BZHPPECZFUPDPOEJUJPOTBOEJUTGSJFOET6TFSpOE BMM DPOEJUJPOT\BENJOUSVF^ PSEFSJE
$POEJUJPOTBOEJUTGSJFOETSFTJEFFWFSZXIFSF
.BOJQVMBUJPOPGDPOEJUJPOTWBMVFNBLFTUIJOHTXPSTF
$POEJUJPOT.BOJQVMBUJPOQSFQBSBUJPOGPS.PEFMpOE BMM DPOEJUJPOTʜJGTPNFUIJOH DPOEJUJPOT@TUSJOH"/%TPNFUIJOH DPOEJUJPOT@QBSBNTWBMVFFOE
$POEJUJPOT.BOJQVMBUJPOQSFQBSBUJPOGPS.PEFMpOE BMM DPOEJUJPOTʜJGTPNFUIJOH DPOEJUJPOT@TUSJOH"/%TPNFUIJOH DPOEJUJPOT@QBSBNTWBMVFFOESFMSFMXIFSF TPNFUIJOHWBMVFJGTPNFUIJOH
$POEJUJPOT.BOJQVMBUJPOQSFQBSBUJPOGPS.PEFMpOE BMM DPOEJUJPOTʜJGTPNFUIJOH DPOEJUJPOT@TUSJOH"/%TPNFUIJOH DPOEJUJPOT@QBSBNTWBMVFFOESFMSFMXIFSF TPNFUIJOHWBMVFJGTPNFUIJOH:PVOFFEUPLOPX"--42-TJOUFOEFE
"TNBMMUZQJDBMCBEQBUUFSOXBTGPVOEIFSF%PTFBSDIpSTUBOENBOJQVMBUFUIFSFTVMUBSSBZ$IBJORVFSJFTJOTUFBEPGBSSBZDPODBU
5IF3JWFSPG5FBST3BJMT 3FXSJUF"KBYDPEFJGJUVTFTPME3BJMTIFMQFSNFUIPET6OPCUSVTJWF+BWB4DSJQU
5IF3JWFSPG5FBST3BJMT 3FXSJUFBMMPGPMEIBOENBEFIFMQFSTTVQQPSUJOHCMPDLT /POFFEGPSI/FFEUPpYEPVCMFFTDBQJOH)FMQFST7JFXTGPSN@GPS GPSN@GPS
5IF3JWFSPG5FBST3BJMT 7BMJEBUJPOWBMJEBUFT@QSFTFODF@PGOBNFWBMJEBUFT@MFOHUI@PGOBNF NBYJNVNWBMJEBUFTOBNF QSFTFODFUSVF MFOHUI\NBYJNVN^
3BJMT FBTZUPDIBOHFSPVUFTSCSFNPWFNBQTJNQMFCMPDLTXJUIPVUBOBSHVNFOU
3BJMT (PPEQPJOUT#VOEMFS
3BJMT (PPEQPJOUT3BJMT 3BJMTDSFBUFBOFXBQQSBJMTNZBQQ SBJMTOFXNZBQQDPOTPMF SVCZTDSJQUDPOTPMF SBJMTDTFSWFS SVCZTDSJQUTFSWFS SBJMTT
4PXFEPOUIBWFUPDSFBUFBQQMJDBUJPOTOBNFEDPSTBOZNPSFIUUQTXXXqJDLSDPNQIPUPTTMJQTUSFBNCMVF
(PUPUIFOFYUTUFQ3BJMT3BJMT3BJMT4BZ(PPECZFUP3VCZ4BGF3BJMT5IF3JWFSPG5FBST5IF.PVOUBJOTPG.PEFSO3BJMT3BJMT3BJMT5IF4USPOH1BSBNFUFST'BMMT
3BJMT(VJEFTXJMMIFMQZPV6QHSBEJOHGSPN3BJMTUP3BJMT6QHSBEJOHGSPN3BJMTUP3BJMT6QHSBEJOHGSPN3BJMTUP3BJMT6QHSBEJOHGSPN3BJMTUP3BJMT6QHSBEJOHGSPN3BJMTUP3BJMT6QHSBEJOHGSPN3BJMTUP3BJMT
5IF.PVOUBJOTPG.PEFSO3BJMT3BJMT "TTFUT1JQFMJOF.PWFpMFTBOEDPOpHVSFTFUUJOHT3FEFTJHODTTBOE+4pMFTTUSVDUVSFT(PPEUJNJOHUPVTF4$44 FUD*UUBLFTNVDIUJNF
5IF.PVOUBJOTPG.PEFSO3BJMT3BJMT "TTFUT1JQFMJOF.PWFpMFTBOEDPOpHVSFTFUUJOHT3FEFTJHODTTBOE+4pMFTTUSVDUVSFT(PPEUJNJOHUPVTF4$44 FUD*UUBLFTNVDIUJNF/FFEUPLOPXBCPVUBMMBTTFUpMFTJEFBMMZ
5IF.PVOUBJOTPG.PEFSO3BJMT3BJMT %FGBVMU+4MJCSBSZJTDIBOHFEUPCFK2VFSZGSPNQSPUPUZQFKT/FFEUPSFXSJUF+BWB4DSJQUDPEFJGZPVBSFHPJOHUPTXJUDIUIFMJCSBSZ
3BJMT3BJMT3BJMT4BZ(PPECZFUP3VCZ4BGF3BJMT5IF3JWFSPG5FBST5IF.PVOUBJOTPG.PEFSO3BJMT3BJMT3BJMT5IF4USPOH1BSBNFUFST'BMMT
*UTFBTZQMVDLVOJR
*UTFBTZQMVDLVOJR EJTUJODUJO3BJMT
6QHSBEJOH3VCZ/PUWFSZIBSE4USJOHFODPEJOH)BTI\BBBWBMVF^UP\BBBWBMVF^4UPQVTJOH"DUJWF4VQQPSU0SEFSFE)BTI
"MNPTU%POF3BJMT3BJMT3BJMT4BZ(PPECZFUP3VCZ4BGF3BJMT5IF3JWFSPG5FBST5IF.PVOUBJOTPG.PEFSO3BJMT3BJMT3BJMT5IF4USPOH1BSBNFUFST'BMMT
5IF4USPOH1BSBNFUFST'BMMT3BJMT4FDVSJUZDIFDLXFOUUP$POUSPMMFSGSPN.PEFM*MPWF4USPOH1BSBNFUFST CVU7FSZIBSEBOE#03*/(KPC
5IF4USPOH1BSBNFUFST'BMMT3BJMT4FDVSJUZDIFDLXFOUUP$POUSPMMFSGSPN.PEFM*MPWF4USPOH1BSBNFUFST CVU7FSZIBSEBOE#03*/(KPC:PVOFFEUPLOPXBMMQBSBNFUFSTGPSBMMBDUJPOT
0UIFSTFSC)BNMJGZPVMJLFJU3FQMBDFNBOZHFNT 3FXSJUFNPOLFZQBUDIJOHJODPOpHJOJUJBMJ[FST 5JNF[POF$IFDLCJOJOZPVSSFQPTJUPSZ
(FNT:PVOFFEUPSFQMBDFHFNTUISPVHIUIFSBJMTVQHSBEJOH*UDBOUCFBWPJEFE&NCSBDFJU
SBJMTBQQVQEBUF*UPVUQVUTDPOpHpMFTTPUIBUZPVSBQQMJDBUJPOXPVMEXPSLBTJUEJECFGPSFVQHSBEJOHJGJUTQPTTJCMF*UNBZOPUCFUIFCFTUDPOpHVSBUJPO*UNBZDBVTFUSPVCMFJOGVUVSFWFSTJPO$IFDLUIFOFXSBJMTBQQTDPOpHVSBUJPOBOEDPNQBSFUIFN
34QFD
0VSQSPKFDUHPBMXBTUP3BJMT!8FBSFXBJUJOHGPSBDIBODFUPVQHSBEFJUUP3BJMTʜ
'SPN3BJMTUP3BJMT3BJMT3BJMT3BJMT4BZ(PPECZFUP3VCZ4BGF3BJMT5IF3JWFSPG5FBST5IF.PVOUBJOTPG.PEFSO3BJMT3BJMT5IF4USPOH1BSBNFUFST'BMMT 3BJMT
*VQHSBEFENZIPCCZBQQUP3BJMT
$BOTFFOPUIJOHCVU%&13&$"5*0/8"3/*/(Tʜ
*ONZBQQTDBTFPGTQFDTGBJMFE 6OGPSUVOBUFMZ*IBENBOZPMEDPOUSPMMFSTQFDTʜ(PUEJGGFSFOUEFQSFDBUJPOXBSOJOHT
5P3BJMT6TF3VCZHFNSBJMTDPOUSPMMFSUFTUJOH4FUFBHFS@MPBE@QBUITQSPQFSMZ"QQMJDBUJPO3FDPSE
8BSOJOHTJO.PEFM3VCZHSPVQVTFST USVFˠHSPVQVTFSTSFMPBEBMJBT@NFUIPE@DIBJOˠQSFQFOEVOJRˠEJTUJODUUJNFPVUˠ5JNFPVUUJNFPVU3VCZ
8BSOJOHTJO0UIFS1MBDFTQBSBNTJTOPU)BTIBOZNPSFCFGPSF@pMUFSˠCFGPSF@BDUJPOJOSPVUFTSCDPOUSPMMFSXJUIPQUJPOTBDUJPOSFOEFSUFYUˠSFOEFSQMBJO
"OZXBZ$POHSBUVMBUJPOT8FMDPNFUP3BJMT
)PXUPVQHSBEF3BJMTGSPN$PODMVTJPO/PUPOMZSBLFSBJMTVQEBUFSBJMTBQQVQEBUF:PVOFFEUPDIBOHFTPNBOZQMBDFT'PSUIBUZPVOFFEUPLOPXʜ
:PVOFFEUPLOPX&7&3:5)*/(JO:063"11,OPX8IBU 'PSBMMBDUJPOTSFNPWJOHEFGBVMUSPVUJOHSFGBDUPSJOH63-TBOE)551NFUIPETBMMQBSBNFUFSTPGFBDIBDUJPOTBQQMZJOHTUSPOHQBSBNFUFSTTUSJDUMZSJHIUMPPLTPGBMMQBHFTpYJOHIFMQFSTBOEFTDBQJOHDPSSFDUMZBMM42-T SFQMBDJOHDPOEJUJPOTUPDIBJOBCMFRVFSZBMMBTTFUpMFT VTJOHBTTFUTQJQFMJOFFGGFDUJWFMZBMMNPOLFZQBUDIJOHNBLJOHUIFNXPSLJONPEFSO3BJMTQSFQFOEJOTUFBEPGBMJBT@NFUIPE@DIBJO
*UTUPVHICVUOPUJNQPTTJCMF4UFQCZTUFQIUUQTXXXqJDLSDPNQIPUPTBMJDFQPQLPSO
8FEJEOPUIBWFBVUPNBUFEUFTUT
*CFUNBOZPME3BJMTBQQTBSFJOUIFTBNFTJUVBUJPO
*CFUNBOZPMEBQQMJDBUJPOTEPOUIBWFFOPVHIEPDVNFOUTFJUIFS
8FIBEUSJFEUPXSJUFGFBUVSFTQFDT CVUUIFPME3VCZWFSTJPOEJTDPVSBHFEVTIUUQTXXXqJDLSDPNQIPUPTDBQZCBSBKQ
z5IFCFTUXBZUPCFTVSFUIBUZPVSBQQMJDBUJPOTUJMMXPSLTBGUFSVQHSBEJOHJTUPIBWFHPPEUFTUDPWFSBHFCFGPSFZPVTUBSUUIFQSPDFTTzIUUQFEHFHVJEFTSVCZPOSBJMTPSHVQHSBEJOH@SVCZ@PO@SBJMTIUNMVQHSBEJOHGSPNSBJMTUPSBJMT
8SJUFUFTUTˠ6QHSBEF
8SJUFUFTUTˠ6QHSBEF*G ZPVS BQQ JT UPP PME UP EP UIBU
8SJUFUFTUTˠ6QHSBEF*G ZPVS BQQ JT UPP PME UP EP UIBUPS JG ZPVS BQQT FYJTUJOH UFTUTBSF UPP DSB[Z
8SJUFUFTUTˠ6QHSBEF6QHSBEFˠ8SJUFUFTUT*G ZPVS BQQ JT UPP PME UP EP UIBUPS JG ZPVS BQQT FYJTUJOH UFTUTBSF UPP DSB[Z
)FMQGVM'BDUPSTGPS6QHSBEJOHXJUIPVU&OPVHI"VUP5FTUT(PPEEPDVNFOUT"GSFFMZBDDFTTJCMFEFWFOWJSPONFOUJOPSJHJOBMWFSTJPOXJUIOJDFEBUB1SPGFTTJPOBM5FTUJOH$PNQBOZ
"GUFSBZFBS XFIBWFNBOZOJDFTQFDT)BQQZ
7BMVFBOE1BJOPGLFFQJOHBQQMJDBUJPOTBMJWFIUUQTXXXqJDLSDPNQIPUPT!/
2)PXNBZQFPQMFBSFXPSLJOHGPSQSPKFDUTUIBUIBTCFFOSVOOJOHGPSPWFSZFBST
"QQBSFOUMZXFOFFEUPLFFQPVSBQQMJDBUJPOTSVOOJOHGPSBDFSUBJOUJNF
*GXFKVTUMFBWFJU JUNJHIUCFVOUPVDIBCMF/PUIFBMUIZ"MNPTUEFBE
8FOFFEUPHPPOXPSLJOHXJUIJU
#VUJUDPVMECFQBJOGVMIUUQTXXXqJDLSDPNQIPUPTUPEEIJFTUBOE
1BJO$PEF4PNBOZDPEFT1BUDIXPSL4QBHIFUUJ4VQQPSUJOHWBSJPVTDPOUSBDUT WFSTJPOTBOEDVTUPNFSTʜ5IFPSJHJOBMBVUIPSIBTHPOF
1BJO%JSFDUJPO%JSFDUPSXPVMEDIBOHF%JSFDUJPOHPFTSJHIUBOEMFGU*GEJSFDUJPOHPFTXSPOH DPEFTHFUXSPOH
*OGPSNBUJPO&YQMPTJPOIUUQTXXXqJDLSDPNQIPUPTOBTBNBSTIBMM
*OGPSNBUJPO&YQMPTJPO$PEFT EBUB JTTVFTʜFWFSZUIJOHNPVOUTVQ8IBUJTUIFSJHIUJOGPSNBUJPO )PXDBO*pOEXIBU*OFFE
8IBUXFBSFEPJOH
.POFZIUUQTXXXqJDLSDPNQIPUPTQJDUVSFTPGNPOFZ
"MPOHUJNFQSPKFDUOFFETBTQFDJBMDPTU
-POHUJNFQSPKFDUTDPTU4USVHHMFBHBJOTUJOGPSNBUJPOFYQMPTJPO&YUSBDPTUGPSDIBOHFTJOUFBN1&01-&(&55*3&%
1SFQBSFGPSUIBUDPTU
6QHSBEF3VCZ 3BJMTBOEPUIFSHFNTJGJUTQPTTJCMFIUUQTXXXqJDLSDPNQIPUPTWPPEPP[FCSB
#VOEMF6QEBUF'SFRVFOUMZ FYFWFSZPUIFSXFFL5BLJOHUVSOT
#BMBODFE$PEFIUUQTXXXqJDLSDPNQIPUPTHSFHPSZKPSEBO
.FTTZ
%3:.FTTZ
%3:.FTTZ%JGpDVMU
%3:.FTTZ%JGpDVMU&BTZ
%3:.FTTZ%JGpDVMU&BTZ,FFQ#BMBODF
%PDVNFOUBUJPOIUUQTXXXqJDLSDPNQIPUPT!/
$PNNFOUTJODPEFT8JLJ
$PNNFOUTJOTPVSDFDPEFT8SJUFDPNNFOUXIFODPEFJT/05/"563"-8SJUF8):%POUXSJUF8)"53FWJFXDPNNFOUT6QEBUFDPNNFOUT
8IBUUPXSJUFJOXJLJ
)JTUPSZIUUQTXXXqJDLSDPNQIPUPTUIPNBTIBXL
5JQT6UJMJUJFTIUUQTXXXqJDLSDPNQIPUPTNSTELSFCT
1SJODJQMFT
4BMFTQFPQMFDBOOPUTFFFNBJMBEESFTTFTPGVTFST
0UIFS&YBNQMFT6TFSTIBWFUPTJHOJOUPVTFTPNFGFBUVSFT0OMZQSFNJVNVTFSTDBOTFFTPNFUIJOH$IJMESFODBOOPUCVZBMDPIPMJDCFWFSBHFT
5PLFFQXIPMFTZTUFNGPMMPXJUTQSJODJQMFTJTDSJUJDBMMZJNQPSUBOU
4PXFEFTDSJCFUIPTFQSJODJQMFTPO8JLJTPUIBUOFXDPNFSTMFBSOUIFN
5IFSFJTBDIBODFUPJNQMFNFOUTPNFPGQSJODJQMFT
4BMFTQFPQMFDBOOPUTFFFNBJMBEESFTTFTPGVTFSTUISPXFSSPSJGFNBJMXBTJOWPLFEXIFODVSSFOU@VTFSJTBTBMFTQFSTPO
'JMUFST DBMMCBDLTBOEXSJUJOHZPVSPXO%4-TNJHIUIFMQUIJT
%FTDSJCFBQSJODJQMFpSTU UIFOJNQMFNFOUJUJGQPTTJCMF
0VS1SJODJQMFT1BHF)BWF4FDUJPOT/PUJNQMFNFOUFEQSJODJQMFT*NQMFNFOUFEQSJODJQMFT
$PODMVTJPO4IPXFEXIBUZPVOFFEUPEPUPVQHSBEF3BJMTGSPNUPJOHFOFSBM(PPEMVDL*OUSPEVDFEXIBUXFBSFEPJOHUPLFFQPVSBQQMJDBUJPOT UFBNBMJWF
5IBOLZPV⇖⇖!*GZPVIBWFBOZRVFTUJPOTGFFMGSFFUPBTLNF4-08-:!!OBZ