Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Apache Usergrid Internal

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

Apache Usergrid Internal

Avatar for Sungju Jin

Sungju Jin

March 12, 2014
Tweet

More Decks by Sungju Jin

Other Decks in Technology

Transcript

  1. */%&9  8IBUJT"QBDIF6TFSHSJE   #BTJD$PODFQUT  3FTUGVM"1*T  "SDIJUFDUVSF

     "O0WFSWJFXPG%BUB1SPDFTTJOH  )PXJUXPSLT$36%
  2. */%&9  8IBUJT"QBDIF6TFSHSJE   #BTJD$PODFQUT  3FTUGVM"1*T  "SDIJUFDUVSF

     "O0WFSWJFXPG%BUB1SPDFTTJOH  )PXJUXPSLT$36%
  3.  8IBUJT"QBDIF6TFSHSJE ↟ %FTJHOFEGPSNVMUJUFOBODZPQFSBUJPOBM QSFEJDUBCJMJUZ
 #VJMUPO+BWB +FSTFZ"QBDIF$BTTBOESB XJUI 4%,TGPSJ04 "OESPJE

    )5.-+4 OPEFKT 3VCZ  +BWB /&5 1)1nBOETPNVDINPSF ↟ IUUQTHJUIVCDPNVTFSHSJEVTFSHSJE ↟ $SFBUPS &E"OVGG IUUQXXXBOVGGDPN  ↟ 4JODF_
  4. */%&9  8IBUJT"QBDIF6TFSHSJE   #BTJD$PODFQUT  3FTUGVM"1*T  "SDIJUFDUVSF

     "O0WFSWJFXPG%BUB1SPDFTTJOH  )PXJUXPSLT$36%
  5. 3FTPVSDF 1045 DSFBUF (&5
 SFBE 165
 VQEBUF %&-&5&
 EFMFUF JUFNT

    DSFBUF
 BOFXJUFN MJTUJUFNT CVML
 VQEBUF
 JUFNT EFMFUF
 BMMJUFNT JUFNTJQBE FSSPS TIPXJQBE VQEBUFJQBE EFMFUFJQBE #BTJD$PODFQUT
  6. DVSM91045J)"VUIPSJ[BUJPO#FBSFS\BVUI@LFZ^E \VTFSOBNFCPC FNBJMCPC!DPNQBOZDPN^IUUQT BQJEPNBJOJPNZPSHJENZBQQJEVTFST \ BDUJPOQPTU  BQQMJDBUJPODDCBFFEDB  QBSBNT\^

     QBUIVTFST  VSJIUUQTBQJEPNBJOJPNZPSHJENZBQQJEVTFST  FOUJUJFT< \ VVJEBBEDDFFEDB  UZQFVTFS  DSFBUFE  NPEJGJFE  BDUJWBUFEUSVF  FNBJMCPC!DPNQBOZDPN  QJDUVSFIUUQTXXXHSBWBUBSDPNBWBUBSBGGDDGCECG  VTFSOBNFCPC ^ >  UJNFTUBNQ  EVSBUJPO  PSHBOJ[BUJPONZPSHJE  #BTJD$PODFQUT
  7. DVSM91045J)"VUIPSJ[BUJPO#FBSFS\BVUI@LFZ^E \VTFSOBNFCPC FNBJMCPC!DPNQBOZDPN^IUUQT BQJEPNBJOJPNZPSHJENZBQQJEVTFST \ BDUJPOQPTU  BQQMJDBUJPODDCBFFEDB  QBSBNT\^

     QBUIVTFST  VSJIUUQTBQJEPNBJOJPNZPSHJENZBQQJEVTFST  FOUJUJFT< \ VVJEBBEDDFFEDB  UZQFVTFS  DSFBUFE  NPEJGJFE  BDUJWBUFEUSVF  FNBJMCPC!DPNQBOZDPN  QJDUVSFIUUQTXXXHSBWBUBSDPNBWBUBSBGGDDGCECG  VTFSOBNFCPC ^ >  UJNFTUBNQ  EVSBUJPO  PSHBOJ[BUJPONZPSHJE  #BTJD$PODFQUT
  8. DVSM91045J)"VUIPSJ[BUJPO#FBSFS\BVUI@LFZ^E \VTFSOBNFCPC FNBJMCPC!DPNQBOZDPN^IUUQT BQJEPNBJOJPNZPSHJENZBQQJEVTFST \ BDUJPOQPTU  BQQMJDBUJPODDCBFFEDB  QBSBNT\^

     QBUIVTFST  VSJIUUQTBQJEPNBJOJPNZPSHJENZBQQJEVTFST  FOUJUJFT< \ VVJEBBEDDFFEDB  UZQFVTFS  DSFBUFE  NPEJGJFE  BDUJWBUFEUSVF  FNBJMCPC!DPNQBOZDPN  QJDUVSFIUUQTXXXHSBWBUBSDPNBWBUBSBGGDDGCECG  VTFSOBNFCPC ^ >  UJNFTUBNQ  EVSBUJPO  PSHBOJ[BUJPONZPSHJE  PSHBOJ[BUJPO BQQMJDBUJPO DPMMFDUJPO #BTJD$PODFQUT
  9. 1045 IUUQTBQJEPNBJOJPEFWJDFT $SFBUFEFWJDF 1045 IUUQTBQJEPNBJOJPVTFST $SFBUFVTFS 1045 IUUQTBQJEPNBJOJPVTFST \VTFS^EFWJDFT $SFBUFEFWJDFUPVTFS

    SFMBUJPOTIJQ 1045 IUUQTBQJEPNBJOJPEFWJDFT \EFWJDF^VTFST $SFBUFVTFSUPEFWJDF SFMBUJPOTIJQ 3FMBUJPOTIJQ #BTJD$PODFQUT
  10. */%&9  8IBUJT"QBDIF6TFSHSJE   #BTJD$PODFQUT  3FTUGVM"1*T  "SDIJUFDUVSF

     "O0WFSWJFXPG%BUB1SPDFTTJOH  )PXJUXPSLT$36%
  11. "QQMJDBUJPO"1* ↟ 5PLFO ↟ 1SFEFGJOFE$PMMFDUJPOT ↟ 6TFST (SPVQT 3PMFT "DUJWJUJFT

     %FWJDFT &WFOUT 'PMEFST "TTFUT ↟ $PMMFDUJPOT .BOBHFNFOU"1* ↟ 5PLFO ↟ "ENJO6TFST ↟ 0SHBOJ[BUJPOT $BUFHPSJFTPG"1* 3FTUGVM"1*T
  12. */%&9  8IBUJT"QBDIF6TFSHSJE   #BTJD$PODFQUT  3FTUGVM"1*T  "SDIJUFDUVSF

     "O0WFSWJFXPG%BUB1SPDFTTJOH  )PXJUXPSLT$36%
  13. "SDIJUFDUVSF %FTJHOCBDLHSPVOE ↟ #SFXFSsTUIFPSFN $POTJTUFODZ "WBJMBCJMJUZ 1BSUJUJPOUPMFSBODF 1 " $

    3FMBUJPOBM .Z42- 
 .442-  1PTUHSFT "NB[PO%ZOBNP EFSJWBUJWFT $BTTBOESB  7PMEFNPSU  $PVDI%# 3JBL /FPK #JHUBCMF #JHUBCMFEFSJWBUJWFT .POHP%# )CBTF )ZQFSUBCMF 3FEJT
  14. "SDIJUFDUVSF %FTJHOCBDLHSPVOE ↟ #FODINBSL 8PSLMPBE"nVQEBUFIFBWZ B SFBEPQFSBUJPOT  C VQEBUFPQFSBUJPOT


    5ISPVHIQVUJOUIJT BOEBMMGJHVSFT SFQSFTFOUTUPUBMPQFSBUJPOTQFSTFDPOE 
 JODMVEJOHSFBETBOEXSJUFT 3FGFSFODFT#FODINBSLJOH$MPVE4FSWJOH4ZTUFNTXJUI:$4#
  15. "SDIJUFDUVSF %FTJHOCBDLHSPVOE 6TFS $MVTUFSTJ[F /PEFDPVOU 6TBHF /PX 'BDFCPPL  *OCPYTFBSDI

    "CBOEPOFE  .PWFEUP)#BTF $JTDP8FC&Y 6TFSGFFE  BDUJWJUZ /FUGMJY 5#  DMVTUFS  ! "QJHFF %BUBTUPSF 'PSNTQSJOH  NJMMJPOBDDPVOU XJUINSFTQPOTFT QFSEBZ  4PDJBMHSBQI EBUB 6SCBOBJSTIJQ 3BDLTQBDF 0QFO9 5XJUUFS QSFQBSJOHNPWFUP FCBZ 3FGFSFODFT IUUQQMBOFUDBTTBOESBPSH$PNQBOZ7JFX$PNQBOZ IUUQFOXJLJQFEJBPSHXJLJ"QBDIF@$BTTBOESB
  16. "SDIJUFDUVSF %FTJHOCBDLHSPVOE 4DBMBCJMJUZ *TPMBUJPO 4JNQMF 4DBMBCJMJUZ /P*TPMBUJPO $PNQMJDBUFE 4DBMBCJMJUZ *TPMBUJPO

    /PU$PNQMJDBUFE 4DBMBCJMJUZ /P*TPMBUJPO $PNQMJDBUFE 4FQBSBUF%BUBCBTF 4IBSFE%BUBCBTF 4IBSFE 4DIFNB 4FQBSBUF 4DIFNB
  17. "SDIJUFDUVSF %FTJHOCBDLHSPVOE 4DBMBCJMJUZ *TPMBUJPO 4JNQMF 4DBMBCJMJUZ /P*TPMBUJPO $PNQMJDBUFE 4DBMBCJMJUZ *TPMBUJPO

    /PU$PNQMJDBUFE 4DBMBCJMJUZ /P*TPMBUJPO $PNQMJDBUFE 4FQBSBUF%BUBCBTF 4IBSFE%BUBCBTF 4IBSFE 4DIFNB 4FQBSBUF 4DIFNB
  18. "SDIJUFDUVSF $BTTBOESB$MVTUFS /PEF /PEF /PEF /PEF /PEF /PEF /PEF /PEF

    "QBDIF6TFSHSJE 04 MJOVY FUD 8"4 "QBDIF6TFSHSJE 04 MJOVY FUD 8"4 "QBDIF6TFSHSJE 04 MJOVY FUD 8"4 "QBDIF6TFSHSJE 04 MJOVY FUD 8"4 "QBDIF6TFSHSJE 04 MJOVY FUD 8"4
  19. "SDIJUFDUVSF 6TFSHSJE $POGJHVSBUJPO $PVOUFST $PSF 4FSWJDF 3FTU 4FSWJDF <*>4FSWJDF <">"CTUSBDU4FSWJDF

    "CTUSBDU$PMMFDUJPO4FSWJDF "CTUSBDU$POOFDUJPOT4FSWJDF "CTUSBDU1BUI#BTFE
 $PMMMFDUJPO4FSWJDF "DUJWJUJFT4FSWJDF "QQMJDBUJPOT4FSWJDF "TTFUT4FSWJDF (FOFSJD$PMMFDUJPO4FSWJDF (SPVQT4FSWJDF 3PMFT4FSWJDF 6TFST4FSWJDF ServiceManagerFactory ServiceManager ServiceRequest ServiceResults
  20. "SDIJUFDUVSF 6TFSHSJE $POGJHVSBUJPO $PVOUFST $PSF 4FSWJDF 3FTU $PSF $BTTBOESB$MVTUFS /PEF

    /PEF /PEF/ /PEF/ /PEF /PEF /PEF /PEF 3FMBUJPO.BOBHFS 3FMBUJPO.BOBHFS 3FMBUJPO.BOBHFS 3FMBUJPO.BOBHFS 3FMBUJPO.BOBHFS EntityManagerFactory EntityManagerFactory.getEntityManager(UUID applicationId) &OUJUZ.BOBHFS EntityManager.getRelationManager(EntityRef entityRef) &OUJUZ'BDUPSZ 2VFVF.BOBHFS'BDUPSZ *OEFY#VDLFU-PDBUPS 4DIFNB -PDL.BOBHFS (FP*OEFY.BOBHFS 2VFSZ1SPDFTTPS $BTTBOESB4FSWJDF *OEFY#VDLFU4DBOOFS )FDUPS
  21. "SDIJUFDUVSF 6TFSHSJE $POGJHVSBUJPO $PVOUFST $PSF 4FSWJDF 3FTU 4DIFNBPO$BTTBOESB 1IZTJDBM-BZFS 6TFSHSJE

    6TFSHSJE@"QQMJDBUJPOT ,FZ4QBDFT 6TFSHSJE ↟ "QQMJDBUJPOT ↟ 1SPQFSUJFT ↟ 5PLFOT 6TFSHSJE@"QQMJDBUJPOT ↟ "QQMJDBUJPO@"HHSFHBUF@$P VOUFST ↟ "QQMJDBUJPO@3PMFT ↟ &OUJUZ@"MJBTFT ↟ &OUJUZ@$PNQPTJUF@%JDUJPOBSJFT ↟ &OUJUZ@$POOFDUJPOT ↟ &OUJUZ@$PVOUFST ↟ &OUJUZ@%JDUJPOBSJFT ↟ &OUJUZ@*E@4FUT ↟ &OUJUZ@*OEFY ↟ &OUJUZ@*OEFY@&OUSJFT ↟ &OUJUZ@1SPQFSUJFT ↟ $POTVNFS@[email protected]@ 1SPQFSUJFT ↟ &[email protected] ↟ .2@$POTVNFST ↟ .2@$PVOUFST ↟ .2@1SPQFSUZ@*OEFY ↟ .2@1SPQFSUZ@*OEFY@&OUSJFT ↟ 2VFVF@%JDUJPOBSJFT ↟ 2VFVF@*OCPY ↟ 2VFVF@1SPQFSUJFT ↟ 2VFVF@4VCTDSJCFST ↟ 2VFVF@4VCTDSJQUJPOT 6TFSHSJE 6TFSHSJE@"QQMJDBUJPOT 6TFSHSJE 6TFSHSJE@"QQMJDBUJPOT
  22. */%&9  8IBUJT"QBDIF6TFSHSJE   #BTJD$PODFQUT  3FTUGVM"1*T  "SDIJUFDUVSF

     "O0WFSWJFXPG%BUB1SPDFTTJOH  )PXJUXPSLT$36%
  23. "O0WFSWJFXPG%BUB1SPDFTTJOH ↟ $PMMFDUJPOT ↟ 0SHBOJ[BUJPO"QQMJDBUJPO$PMMFDUJPOT ↟ 4DIFNB ↟ 6OJRVF ↟

    *OEFYFT PQUJPO GVMMUFYUJOEFYFE  ↟ "MJBT"OPUIFSMPPLVQQSPQFSUZ ↟ *OGPSNBUJPOPGBEEFEUPUIFFOUJUZJODPMMFDUJPO ↟ &OUJUZ ↟ *OGPSNBUJPOPGQSPQFSUZ ↟ 1SPQFSUZOBNF ↟ 1SPQFSUZWBMVF
  24. "O0WFSWJFXPG%BUB1SPDFTTJOH &OUJUZ4DIFNB &OUJUZ $PMMFDUJPO*OGP &OUJUZ*OGP %JDUJPOBSZ*OGP 1SPQFSUZ*OGP BMJBT1SPQFSUZ GVMMUFYU*OEFYFE JOEFYFE*O$POOFDUJPO

    T CBTJD NVUBCMF QBUI#BTFE/BNF QVCMJD7JTJCMF SFRVJSFE VOJRVF JODMVEFE*O&YQPSU
 <*>&OUJUZ3FG VVJE UZQF <*>&OUJUZ VVJE UZQF OBNF DSFBUFE NPEJGJFE QSPQFSUJFT DPOOFDUJPOT <">"CTUSBDU&OUJUZ VVJE UZQF OBNF DSFBUFE NPEJGJFE EZOBNJD@QSPQFSUJFT EZOBNJD@TFUT <">5ZQFE&OUJUZ "DUJWJUZ "QQMJDBUJPO "TTFU %FWJDF %FWJDF &WFOU 'PMEFS (SPVQ .FTTBHF 3PMF 6TFS %ZOBNJD&OUJUZ 4JNQMF&OUJUZ3FG <*>3PMF3FG <*>"TTPDJBUFE&OUJUZ3FG 4JNQMF$PMMFDUJPO3FG 4JNQMF3PMF3FG <*>$POOFDUJPO&OUJUZ3FG <*>$PMMFDUJPO3FG
  25. "O0WFSWJFXPG%BUB1SPDFTTJOH ↟ 1SFEFGJOFE$PMMFDUJPOT ↟ 6TFST (SPVQT 3PMFT "DUJWJUJFT %FWJDFT 

    &WFOUT 'PMEFST "TTFUT ↟ %ZOBNJD$PMMFDUJPOT ↟ VVJE VOJRVF SFRVJSFE  ↟ OBNF BMJBT  ↟ DSFBUFE SFRVJSFE  ↟ NPEJGJFE SFRVJSFE  ↟ … JOEFYFE GVMMUFYU*OEFYFE $PMMFDUJPOT
  26. "O0WFSWJFXPG%BUB1SPDFTTJOH 1SFEFGJOFE$PMMFDUJPOT ↟ "QQMJDBUJPO ↟ OBNF SFRVJSFE JOEFYFE BMJBT VOJRVF

     ↟ UJUMF ↟ BDDFTTUPLFOUUM ↟ EFTDSJQUJPO ↟ DPMMFDUJPOT ↟ DPVOUFST ↟ BDUJWBUFE ↟ EJTBCMFE ↟ NPEJGJFE SFRVJSFE  ↟ … JOEFYFE GVMMUFYU*OEFYFE  ↟ BMMPX0QFO3FHJTUSBUJPO SFHJTUSBUJPO3FRVJSFT&NBJM$POGJSNBUJPO  SFHJTUSBUJPO3FRVJSFT"ENJO"QQSPWBM OPUJGZ"ENJO0G/FX6TFST ↟ BDUJWJUJFT BTTFUT FWFOUT GPMEFST HSPVQT VTFST EFWJDFT $PMMFDUJPOT
  27. "O0WFSWJFXPG%BUB1SPDFTTJOH 1SFEFGJOFE$PMMFDUJPOT ↟ 6TFST ↟ VTFSOBNF SFRVJSFE JOEFYFE GVMMUFYU*OEFYFE BMJBT

    VOJRVF  ↟ FNBJM JOEFYFE VOJRVF  ↟ OBNF JOEFYFE GVMMUFYU*OEFYFE  ↟ BDUJWBUFE JOEFYFE  ↟ EFBDUJWBUFE JOEFYFE  ↟ DPOGJSNFE JOEFYFE  ↟ EJTBCMFE JOEFYFE  ↟ QJDUVSF JOEFYFE  ↟ DSFBUFE SFRVJSFE  ↟ NPEJGJFE SFRVJSFE  ↟ … JOEFYFE GVMMUFYU*OEFYFE  ↟ DPOOFDUJPOT QFSNJTTJPOT DSFEFOUJBMT HSPVQT MJOLFE$PMMFDUJPO  EFWJDFT MJOLFE$PMMFDUJPO BDUJWJUJFT MJOLFE$PMMFDUJPO GFFE MJOLFE$PMMFDUJPO  SPMFT MJOLFE$PMMFDUJPO $PMMFDUJPOT
  28. "O0WFSWJFXPG%BUB1SPDFTTJOH 1SFEFGJOFE$PMMFDUJPOT ↟ %FWJDFT ↟ OBNF SFRVJSFE JOEFYFE BMJBT VOJRVF

     ↟ DSFBUFE SFRVJSFE  ↟ NPEJGJFE SFRVJSFE  ↟ … JOEFYFE GVMMUFYU*OEFYFE  ↟ VTFST MJOLFE$PMMFDUJPO $PMMFDUJPOT
  29. "O0WFSWJFXPG%BUB1SPDFTTJOH 1SFEFGJOFE$PMMFDUJPOT ↟ (SPVQT ↟ QBUI SFRVJSFE JOEFYFE BMJBT VOJRVF

     ↟ DSFBUFE SFRVJSFE  ↟ NPEJGJFE SFRVJSFE  ↟ … JOEFYFE GVMMUFYU*OEFYFE  ↟ VTFST MJOLFE$PMMFDUJPO DPOOFDUJPOT DSFEFOUJBMT QFSNJTTJPOT  BDUJWJUJFT MJOLFE$PMMFDUJPO GFFE MJOLFE$PMMFDUJPO SPMFT MJOLFE$PMMFDUJPO $PMMFDUJPOT
  30. "O0WFSWJFXPG%BUB1SPDFTTJOH 1SFEFGJOFE$PMMFDUJPOT ↟ 3PMF ↟ OBNF SFRVJSFE JOEFYFE BMJBT VOJRVF

     ↟ SPMF/BNF JOEFYFE  ↟ UJUMF JOEFYFE  ↟ JOBDUJWJUZ JOEFYFE  ↟ DSFBUFE SFRVJSFE  ↟ NPEJGJFE SFRVJSFE  ↟ … JOEFYFE GVMMUFYU*OEFYFE  ↟ QFSNJTTJPOT ↟ VTFST MJOLFE$PMMFDUJPO  ↟ HSPVQT MJOLFE$PMMFDUJPO $PMMFDUJPOT
  31. */%&9  8IBUJT"QBDIF6TFSHSJE   #BTJD$PODFQUT  3FTUGVM"1*T  "SDIJUFDUVSF

     "O0WFSWJFXPG%BUB1SPDFTTJOH  )PXJUXPSLT$36%
  32. */%&9  8IBUJT"QBDIF6TFSHSJE   #BTJD$PODFQUT  3FTUGVM"1*T  "SDIJUFDUVSF

     "O0WFSWJFXPG%BUB1SPDFTTJOH  )PXJUXPSLT$36%  $SFBUFBOFOUJUZ  6QEBUFBOFOUJUZ  %FMFUFBOFOUJUZ  3FBEBOFOUJUZ
  33. )PXJUXPSLT$36% &OUJUZ.BOBHFS*NQMCBUDI$SFBUF .VUBUPS#ZUF#VGGFSN 4USJOH FOUJUZ5ZQF $MBTT"FOUJUZ$MBTT .BQ4USJOH 0CKFDUQSPQFSUJFT 66*% JNQPSU*E

    66*%UJNFTUBNQ6VJE  &OUJUZ.BOBHFS*NQMCBUDI4FU1SPQFSUZ .VUBUPS#ZUF#VGGFSCBUDI  &OUJUZFOUJUZ 4USJOHQSPQFSUZ/BNF 0CKFDUQSPQFSUZ7BMVF CPPMFBO GPSDF CPPMFBOOP3FBE 66*%UJNFTUBNQ6VJE  3FMBUJPO.BOBHFS*NQMCBUDI6QEBUF1SPQFSUZ*OEFYFT .VUBUPS#ZUF#VGGF SCBUDI 4USJOHQSPQFSUZ/BNF 0CKFDUQSPQFSUZ7BMVF CPPMFBO FOUJUZ4DIFNB)BT1SPQFSUZ CPPMFBOOP3FBE 66*%UJNFTUBNQ6VJE  3FMBUJPO.BOBHFS*NQMCBUDI4UBSU*OEFY6QEBUF .VUBUPS#ZUF#VGGFS CBUDI &OUJUZFOUJUZ 4USJOHFOUSZ/BNF 0CKFDUFOUSZ7BMVF 66*% UJNFTUBNQ6VJE CPPMFBOTDIFNB)BT1SPQFSUZ CPPMFBOJT.VMUJ7BMVF  CPPMFBOSFNPWF-JTU&OUSZ CPPMFBOGVMMUFYU*OEFYFE CPPMFBOTLJQ3FBE $PSFNFUIPETUPDSFBUFBOFOUJUZ
  34. )PXJUXPSLT$36%  1SFDPOEJUJPO ↟"MMDPNNBOETVTFECBUDI@NVUBUFJOUIF$BTTBOESBUISJGU"1* TPZPVTIPVMEDBSF UPTFUUISJGUCVGGFSTJ[F  1SFQSPDFTTJOH ↟ (FUBOBMJBTQSPQFSUZGSPNPSHVTFSHSJEQFSTJTUFODF4DIFNB

    TVDIBTrOBNFs  ↟ (FOFSBUFBDPMMFDUJPOUZQF *OGMFDUPSQMVSBMJ[F  ↟ (FOFSBUF#VDLFU*% 4JNQMF#VDLFU*E-PDBUPS CVDLFUT  ↟ (FOFSBUFDPMMFDUJPOLFZ\BQQMJDBUJPO*E^DPMMFDUJPOT\DPMMFDUJPO@OBNF^\CVDLFU*%^ ↟ 4FUEFGBVMUQSPQFSUJFT VVJE UZQF DSFBUFE NPEJGJFE  ↟ $IFDLJOHSFRVJSFEQSPQFSUJFT -PPQUISPVHIBMMUIFQSPQFSUJFT 1SPDFTTPGDSFBUJOHBOFOUJUZ
  35. )PXJUXPSLT$36%  )BOEMJOHNFUBEBUB  &OUJUZ66*%  1SPQFSUZOBNFT EJDUJPOBSZ  

    -PPQUISPVHIBMMUIFQSPQFSUJFT  $IFDLJOHBMJBTQSPQFSUZ  $IFDLJOHVOJRVFQSPQFSUZ  4BWFQSPQFSUZ 1SPDFTTPGDSFBUJOHBOFOUJUZ DPOsU
  36. )PXJUXPSLT$36%  (FU&OUJUZ*OGPGSPNPSHVTFSHSJEQFSTJTUFODF4DIFNB  7BMJEBUFWBMVF UZQFDBTUJOH   *GQSPQFSUZWBMVFJTOVMM EPEFMFUF

     *GQSPQFSUZJTNVUBUJPO TLJQUIFQSPDFTT  $IFDLSFRVJSFEQSPQFSUZ  $IFDLVOJRVFQSPQFSUZ  $IFDLBMJBTQSPQFSUZ  *OEFYJOHQSPQFSUZJGJUOFFEFE  4BWJOHSFBMEBUB 4BWFQSPQFSUZ &OUJUZ.BOBHFS*NQMCBUDI4FU1SPQFSUZ 1SPDFTTPGDSFBUJOHBOFOUJUZ DPOsU
  37. )PXJUXPSLT$36%  #BDLHSPVOE  IUUQBOVGGDPNTFDPOEBSZJOEFYFTJODBTTBOESB  IUUQBOVGGDPNDBTTBOESBTVNNJUTGQSFTFOUBUJPO  IUUQBOVGGDPNJOEFYJOHJODBTTBOESB 

    *OEFY5ZQF$0--&$5*0/ $0//&$5*0/ (&0  (FUUPLFOTCBTFEPOMVDFOF UPLFOTFQBSBUPS TQBDF   GVMMUFYU*OEFYGBMTF  ,FZtOBNFu 7BMVFt4VOHKV+JOu   GVMMUFYU*OEFYUSVF  ,FZtOBNFu 7BMVFt4VOHKV+JOu  ,FZtOBNFLFZXPSEu 7BMVFTtTVOHKV KJOu   %FMFUFBMMNBUDIJOHJOEFYJO&OUJUZ@*OEFYGSPNUIFFOUSJFTSFUSJFWFEGSPN&OUJUZ@*OEFY@&OUSJFTJOUIFQSFWJPVTTUFQ  %FMFUFBMMDPMVNOTJO&OUJUZ@*OEFY@&OUSJFTUIBUXFSFQSFWJPVTMZSFUSJFWFE  *OTFSUOFXFOUSZJO&OUJUZ@*OEFY  *OTFSUOFXFOUSZJO&OUJUZ@*OEFY@&OUSJFT 1SPDFTTPGDSFBUJOHBOFOUJUZ DPOsU *OEFYJOH
  38. $PMVNO'BNJMZ $PMVNO'BNJMZ , , , , , , , ,

    , , , , , , $PMVNO'BNJMZ , , , , , , , , , , , , , , )PXJUXPSLT$36% &OUJUZ@*E@4FUT ,FZCVDLFU ,FZCVDLFU ,FZCVDLFU ,FZCVDLFU j &OUJUZ@%JDUJPOBSJFT ,FZQSPQFSUJFT ,FZDPMMFDUJPOT ,FZJOEFYFT &OUJUZ@"MJBTFT ,FZ &OUJUZ@6OJRVF ,FZ &OUJUZ@$PNQPTJUF@%JDUJPOBSJFT ,FZDPOUBJOFS@FOUJUJFT &OUJUZ@*OEFY ,FZCVDLFU ,FZCVDLFU ,FZCVDLFU ,FZCVDLFU j &OUJUZ@1SPQFSUJFT ,FZ VVJE $BTTBOESBDMVTUFS $PMVNO'BNJMZ , , , , , , , , , , , , , , $PMVNO'BNJMZ , , , , , , , , , , , , , , &OUJUZ@*OEFY@&OUSJFT ,FZ 6TFSHSJEPO$BTTBOESB 1IZTJDBM-BZFS
  39. )PXJUXPSLT$36% ↟&OUJUZ@%JDUJPOBSJFT ↟ ,FZVVJE tQSPQFSUJFTu ↟ $PMVNO ↟ /BNFQSPQFSUZ/BNF 7BMVF/VMM

    ↟ ,FZVVJE DPMMFDUJPOT ↟ $PMVNO ↟ /BNFDPMMFDUJPO@OBNF 7BMVF/VMM ↟ ,FZVVJE JOEFYFT ↟ $PMVNO ↟ /BNFDPMMFDUJPO@OBNF 7BMVF/VMM ↟&OUJUZ@*E@4FUT ↟ ,FZBQQMJDBUJPO6VJEDPMMFDUJPOT
 DPMMFDUJPO/BNFCVDLFU*E ↟ $PMVNO ↟ /BNFVVJE 7BMVF/VMM ↟&OUJUZ@"MJBTFT ↟ ,FZBQQ*E BMJBT5ZQF BMJBT ↟ $PMVNO ↟ /BNFFOUJUZ*E 7BMVFFOUJUZ*E ↟ /BNFFOUJUZ5ZQF 7BMVFFOUJUZ5ZQF ↟ /BNFBMJBT5ZQF 7BMVFBMJBT5ZQF ↟ /BNFBMJBT 7BMVFBMJBT ↟&OUJUZ@6OJRVF ↟ ,FZBQQ*EDPMMFDUJPO/BNFQSPQFSUZ/BNFWBMVF ↟ $PMVNO ↟ /BNFFOUJUZ*E 7BMVF/VMM ↟&OUJUZ@$PNQPTJUF@%JDUJPOBSJFT ↟ ,FZJUFN*E DPOUBJOFS@FOUJUJFT ↟ $PMVNO ↟ /BNF-JTU BQQMJDBUJPO DPMMFDUJPO@OBNF  BQQMJDBUJPO*E 7BMVF/VMM ↟&OUJUZ@*OEFY ↟ ,FZVVJE DPMMFDUJPO/BNF QBUI CVDLFU*E ↟ $PMVNO ↟ /BNF*OEFYUZQFDPEF WBMVF VVJE UJNFTUBNQ VVJE 7BMVF/VMM ↟&OUJUZ@*OEFY@&OUSJFT ↟ ,FZFOUJUZ*E ↟ $PMVNO ↟ /BNFFOUSZ/BNF DPEF WBM UJNFTUBNQ6VJE  OBNF 7BMVF/VMM ↟&OUJUZ@1SPQFSUJFT ↟ ,FZVVJE ↟ $PMVNO ↟ /BNFQSPQFSUZ/BNF ↟ 7BMVFFOUJUZ5ZQF QSPQFSUZ/BNF QSPQFSUZ7BMVF
  40. )PXJUXPSLT$36% ,FZT ↟ BQQ*EDEEFFCEBGBC ↟ FOUJUZ*EDBFCDEDGF ↟ CVDLFU*E ↟ DPMMFDUJPO@LFZDEEFFCEBGBCDPMMFDUJPOTVTFST

    &OUJUZ@*E@4FUT ,FZDEEFFCEBGBCDPMMFDUJPOTVTFST $PMVNO/BNF7BMVFDBFCDEDGF /VMM &OUJUZ@"MJBTFT ,FZ$BTTBOESB1FSTJTUFODF6UJMTBMJBT*% DEEFFCEBGBC VTFS TVOHKV  $PMVNO/BNF7BMVFFOUJUZ*E DBFCDEDGF $PMVNO/BNF7BMVFFOUJUZ5ZQF VTFS $PMVNO/BNF7BMVFBMJBT5ZQF VTFS $PMVNO/BNF7BMVFBMJBT TVOHKV &OUJUZ@6OJRVF ,FZDEEFFCEBGBCVTFSTVTFSOBNFTVOHKV $PMVNO/BNF7BMVFDBFCDEDGF /VMM
  41. )PXJUXPSLT$36% ,FZT ↟ BQQ*EDEEFFCEBGBC ↟ FOUJUZ*EDBFCDEDGF ↟ CVDLFU*E ↟ DPMMFDUJPO@LFZDEEFFCEBGBCDPMMFDUJPOTVTFST

    &OUJUZ@*E@4FUT ,FZDEEFFCEBGBCDPMMFDUJPOTVTFST $PMVNO/BNF7BMVFDBFCDEDGF /VMM &OUJUZ@"MJBTFT ,FZ$BTTBOESB1FSTJTUFODF6UJMTBMJBT*% DEEFFCEBGBC VTFS TVOHKV  $PMVNO/BNF7BMVFFOUJUZ*E DBFCDEDGF $PMVNO/BNF7BMVFFOUJUZ5ZQF VTFS $PMVNO/BNF7BMVFBMJBT5ZQF VTFS $PMVNO/BNF7BMVFBMJBT TVOHKV &OUJUZ@6OJRVF ,FZDEEFFCEBGBCVTFSTVTFSOBNFTVOHKV $PMVNO/BNF7BMVFDBFCDEDGF /VMM
  42. )PXJUXPSLT$36% ,FZT ↟ BQQ*EDEEFFCEBGBC ↟ FOUJUZ*EDBFCDEDGF ↟ CVDLFU*E ↟ DPMMFDUJPO@LFZDEEFFCEBGBCDPMMFDUJPOTVTFST

    &OUJUZ@%JDUJPOBSJFT ,FZDEEFFCEBGBCDPMMFDUJPOT $PMVNO/BNF7BMVFDBFCDEDGF /VMM &OUJUZ@$PNQPTJUF@%JDUJPOBSJFT ,FZDBFCDEDGFDPOUBJOFS@FOUJUJFT $PMVNO/BNF7BMVF-JTUBQQMJDBUJPO VTFST DEEFFCEBGBC /VMM &OUJUZ@1SPQFSUJFT ,FZDBFCDEDGF $PMVNO/BNF7BMVFVTFSOBNF]VTFS VTFSOBNF TVOHKV
  43. )PXJUXPSLT$36% ,FZT ↟ BQQ*EDEEFFCEBGBC ↟ FOUJUZ*EDBFCDEDGF ↟ CVDLFU*E ↟ DPMMFDUJPO@LFZDEEFFCEBGBCDPMMFDUJPOTVTFST

    &OUJUZ@*OEFY ,FZDEEFFCEBGBCVTFSTVTFSOBNF $PMVNO/BNF7BMVF TVOHKV DBFCDEDGF GEGBF CDEDGF &OUJUZ@*OEFY@&OUSJFT ,FZDBFCDEDGF $PMVNO/BNF7BMVF-JTU VTFSOBNF  TVOHKV UJNFTUBNQ6VJE OBNF *OEFY$PEF #ZUFT 4USJOH 66*% */5
  44. */%&9  8IBUJT"QBDIF6TFSHSJE   #BTJD$PODFQUT  3FTUGVM"1*T  "SDIJUFDUVSF

     "O0WFSWJFXPG%BUB1SPDFTTJOH  )PXJUXPSLT$36%  $SFBUFBOFOUJUZ  6QEBUFBOFOUJUZ  %FMFUFBOFOUJUZ  3FBEBOFOUJUZ
  45. */%&9  8IBUJT"QBDIF6TFSHSJE   #BTJD$PODFQUT  3FTUGVM"1*T  "SDIJUFDUVSF

     "O0WFSWJFXPG%BUB1SPDFTTJOH  )PXJUXPSLT$36%  $SFBUFBOFOUJUZ  6QEBUFBOFOUJUZ  %FMFUFBOFOUJUZ  3FBEBOFOUJUZ
  46. */%&9  8IBUJT"QBDIF6TFSHSJE   #BTJD$PODFQUT  3FTUGVM"1*T  "SDIJUFDUVSF

     "O0WFSWJFXPG%BUB1SPDFTTJOH  )PXJUXPSLT$36%  $SFBUFBOFOUJUZ  6QEBUFBOFOUJUZ  %FMFUFBOFOUJUZ  3FBEBOFOUJUZ
  47. )PXJUXPSLT$36% $PMVNO'BNJMZ &OUJUZ@*E@4FUT ,FZCVDLFU ,FZCVDLFU ,FZCVDLFU ,FZCVDLFU j &OUJUZ@%JDUJPOBSJFT ,FZQSPQFSUJFT

    ,FZDPMMFDUJPOT ,FZJOEFYFT &OUJUZ@"MJBTFT ,FZ &OUJUZ@6OJRVF ,FZ &OUJUZ@$PNQPTJUF@%JDUJPOBSJFT ,FZDPOUBJOFS@FOUJUJFT &OUJUZ@*OEFY ,FZCVDLFU ,FZCVDLFU ,FZCVDLFU ,FZCVDLFU j &OUJUZ@1SPQFSUJFT ,FZ VVJE $BTTBOESBDMVTUFS &OUJUZ@*OEFY@&OUSJFT ,FZ 3FBEBOFOUJUZ3FUSJFWFFOUJUJFTCZ2VFSZ
  48. )PXJUXPSLT$36% $PMVNO'BNJMZ &OUJUZ@*E@4FUT ,FZCVDLFU ,FZCVDLFU ,FZCVDLFU ,FZCVDLFU j &OUJUZ@%JDUJPOBSJFT ,FZQSPQFSUJFT

    ,FZDPMMFDUJPOT ,FZJOEFYFT &OUJUZ@"MJBTFT ,FZ &OUJUZ@6OJRVF ,FZ &OUJUZ@$PNQPTJUF@%JDUJPOBSJFT ,FZDPOUBJOFS@FOUJUJFT &OUJUZ@*OEFY ,FZCVDLFU ,FZCVDLFU ,FZCVDLFU ,FZCVDLFU j &OUJUZ@1SPQFSUJFT ,FZ VVJE $BTTBOESBDMVTUFS &OUJUZ@*OEFY@&OUSJFT ,FZ 3FBEBOFOUJUZ3FUSJFWFFOUJUJFTCZ2VFSZ
  49.  1BSTFRVFSZQBSBNFUFSVTJOH"/5-3 SFQSFTFOU2VFSZDMBTT )PXJUXPSLT$36% PSHBOUMSSVOUJNF1BSTFS 2VFSZ'JMUFS1BSTFS 2VFSZ 3FBEBOFOUJUZ3FUSJFWFFOUJUJFTCZ2VFSZ 66*%-JUFSBM $PNNPO5SFF

    0QFSBOE #PPMFBO0QFSBOE "OE0QFSBOE (SFBUFS5IBO &RVBMJUZ0QFSBOE (SFBUFS5IBO&RVBM -FTT5IBO -FTT5IBO&RVBM /PU0QFSBOE 0S0QFSBOE 8JUIJO0QFSBOE -JUFSBM7 4USJOH-JUFSBM 1SPQFSUZ /VNFSJD-JUFSBM -POH-JUFSBM 'MPBU-JUFSBM #PPMFBO-JUFSBM
  50. )PXJUXPSLT$36% "OE/PEF /PU/PEF <">2VFSZ/PEF #PPMFBO/PEF "MM/PEF 0S/PEF 4MJDF/PEF
 2VFSZ4MJDF 8JUIJO/PEF

    /PEF7JTJUPS 4FBSDI7JTJUPS .FSHF4PSU7JTJUPS .FSHF4PSU$POOFDUJPO7JTJUPS 2VFSZ1SPDFTTPS  1BSTFRVFSZQBSBNFUFSVTJOH"/5-3 SFQSFTFOU2VFSZDMBTT   3FQSFTFOU2VFSZ/PEFGSPN2VFSZDMBTTBU2VFSZ1SPDFTTPSQSPDFTT  7JTJUOPEFTJO4FBSDI7JTJUPSWJTJUBOEUIFOGFUDIEBUBBOENFSHF TPSU 3FBEBOFOUJUZ3FUSJFWFFOUJUJFTCZ2VFSZ
  51. )PXJUXPSLT$36%  1BSTFRVFSZQBSBNFUFSVTJOH"/5-3 SFQSFTFOU2VFSZDMBTT   3FQSFTFOU2VFSZ/PEFGSPN2VFSZDMBTTBU2VFSZ1SPDFTTPSQSPDFTT  7JTJUOPEFTJO4FBSDI7JTJUPSWJTJUBOEUIFOGFUDIEBUBBOENFSHF TPSU

    3FBEBOFOUJUZ3FUSJFWFFOUJUJFTCZ2VFSZ 4MJDF/PEF 2VFSZ4MJDF 2VFSZ4MJDF BHF 2VFSZ4MJDF QSPQFSUZ/BNFBHF TUBSU3BOHF7BMVF <DPEF 
 WBMVF  JODMVTJWFGBMTF>  GJOJTIOVMM  DVSTPSOVMM  SFWFSTFEGBMTF  OPEF*E 
 DPTU HFOEFS 2VFSZ4MJDF <QSPQFSUZ/BNFHFOEFS 
 TUBSU3BOHF7BMVF <DPEF WBMVFNBO  JODMVTJWFUSVF>  GJOJTI3BOHF7BMVF <DPEF WBMVFNBO  JODMVTJWFUSVF>  DVSTPSOVMM  SFWFSTFEGBMTF  OPEF*E DPTU> FY TFMFDU XIFSFBHFBOEHFOEFSNBO FY TFMFDU XIFSFBHFBOEHFOEFSrNBOPSBHF 2VFSZ4MJDF 2VFSZ4MJDF BHF 2VFSZ4MJDF QSPQFSUZ/BNFBHF TUBSU3BOHF7BMVF <DPEF 
 WBMVF  JODMVTJWFGBMTF>  GJOJTIOVMM  DVSTPSOVMM  SFWFSTFEGBMTF  OPEF*E 
 DPTU HFOEFS 2VFSZ4MJDF <QSPQFSUZ/BNFHFOEFS 
 TUBSU3BOHF7BMVF <DPEF WBMVFNBO  JODMVTJWFUSVF>  GJOJTI3BOHF7BMVF <DPEF WBMVFNBO  JODMVTJWFUSVF>  DVSTPSOVMM  SFWFSTFEGBMTF  OPEF*E DPTU> 4MJDF/PEF 2VFSZ4MJDF 2VFSZ4MJDF BHF 2VFSZ4MJDF <QSPQFSUZ/BNFBHF  TUBSU3BOHF7BMVF <DPEF WBMVF  JODMVTJWFUSVF>  GJOJTI3BOHF7BMVF <DPEF WBMVF  JODMVTJWFUSVF>  DVSTPSOVMM  SFWFSTFEGBMTF  OPEF*E DPTU>
  52. )PXJUXPSLT$36%  1BSTFRVFSZQBSBNFUFSVTJOH"/5-3 SFQSFTFOU2VFSZDMBTT   3FQSFTFOU2VFSZ/PEFGSPN2VFSZDMBTTBU2VFSZ1SPDFTTPSQSPDFTT  7JTJUOPEFTJO4FBSDI7JTJUPSWJTJUBOEUIFOGFUDIEBUBBOENFSHF TPSU

     *GMPHJDBMPQFSBOE "/% 03 FUD JTOVMMPSEFSCZGJFMEXIFSFGJFME
 4JNQMF2VFSZ
 FMTF
 $PNQMFY2VFSZ  TFMFDU XIFSFDBUFHPSZDBUPSEFSCZDBUFHPSZEFTD4JNQMF2VFSZ  TFMFDU XIFSFDBUFHPSZDBUPSEFSCZDSFBUFEEFTD$PNQMFY 2VFSZ  TFMFDU XIFSFDBUFHPSZDBU"/%HJSMUSVFPSEFSCZDBUFHPSZEFTD $PNQMFY2VFSZ 3FBEBOFOUJUZ3FUSJFWFFOUJUJFTCZ2VFSZ
  53. )PXJUXPSLT$36% 3FBEBOFOUJUZ3FUSJFWFFOUJUJFTCZ2VFSZ ,FZBQQ*%DPMMFDUJPOQSPQFSUZCVDLFU
 …VTFSTHFOEFS… $PMVNOT *OEFYDPEF 1SPQFSUZWBMVF &OUJUZ*E 5JNF66*% 

    NBO …… j  XPNFO …… j  NBO …… j  XPNFO …… j &OUJUZ@*OEFY ,FZCVDLFU ,FZCVDLFU ,FZCVDLFU ,FZCVDLFU j *OEFY$PEF ↟ #ZUFT ↟ 4USJOH ↟ 66*% ↟ */5 ,FZBQQ*%DPMMFDUJPOQSPQFSUZCVDLFU
 …VTFSTHFOEFS… $PMVNOT *OEFYDPEF 1SPQFSUZWBMVF &OUJUZ*E 5JNF66*%  NBO …… j  XPNFO …… j  NBO …… j  XPNFO …… j 3FUSJFWFEBUBUISPVHIDBTTBOESBDPNNBOE HFU NVMUJHFU HFU@TMJDF NVMUJHFU@TMJDF  2VFSZTFMFDU XIFSFHFOEFSNBOPSEFSCZDSFBUFEEFTD