From 0494975e832f61fe6b7497542e66fca3e2c4dc16 Mon Sep 17 00:00:00 2001 From: Julien Lengrand-Lambert Date: Fri, 19 Mar 2021 10:42:36 +0100 Subject: [PATCH] Latest version of slideS --- .../data/GithubDataGrabber.java | 6 - .../interactionModels/custom/en-GB.json | 18 ++- slides/hey-google-javaland.pdf | Bin 9337213 -> 9341436 bytes test-javaland/CODE_OF_CONDUCT.md | 4 + test-javaland/CONTRIBUTING.md | 61 ++++++++++ test-javaland/LICENSE | 96 +++++++++++++++ test-javaland/NOTICE | 2 + test-javaland/README.md | 34 ++++++ test-javaland/ask-resources.json | 23 ++++ test-javaland/getting-started.png | Bin 0 -> 3595 bytes .../instructions/1-setup-vui-aws-hosted.md | 35 ++++++ .../2-create-aws-hosted-function.md | 14 +++ test-javaland/instructions/3-create-isp.md | 85 +++++++++++++ test-javaland/instructions/4-testing.md | 48 ++++++++ test-javaland/instructions/5-customization.md | 39 ++++++ .../6-submit-for-certification.md | 114 ++++++++++++++++++ test-javaland/instructions/next.png | Bin 0 -> 2291 bytes test-javaland/lambda/pom.xml | 56 +++++++++ .../helloworld/HelloWorldStreamHandler.java | 43 +++++++ .../handlers/CancelandStopIntentHandler.java | 36 ++++++ .../handlers/FallbackIntentHandler.java | 31 +++++ .../handlers/HelloWorldIntentHandler.java | 37 ++++++ .../handlers/HelpIntentHandler.java | 37 ++++++ .../handlers/LaunchRequestHandler.java | 39 ++++++ .../handlers/SessionEndedRequestHandler.java | 35 ++++++ .../skill-package/assets/en-US_largeIcon.png | Bin 0 -> 41316 bytes .../skill-package/assets/en-US_smallIcon.png | Bin 0 -> 12447 bytes .../interactionModels/custom/en-US.json | 38 ++++++ test-javaland/skill-package/skill.json | 30 +++++ 29 files changed, 949 insertions(+), 12 deletions(-) create mode 100644 test-javaland/CODE_OF_CONDUCT.md create mode 100644 test-javaland/CONTRIBUTING.md create mode 100644 test-javaland/LICENSE create mode 100644 test-javaland/NOTICE create mode 100755 test-javaland/README.md create mode 100644 test-javaland/ask-resources.json create mode 100755 test-javaland/getting-started.png create mode 100755 test-javaland/instructions/1-setup-vui-aws-hosted.md create mode 100755 test-javaland/instructions/2-create-aws-hosted-function.md create mode 100755 test-javaland/instructions/3-create-isp.md create mode 100755 test-javaland/instructions/4-testing.md create mode 100755 test-javaland/instructions/5-customization.md create mode 100755 test-javaland/instructions/6-submit-for-certification.md create mode 100755 test-javaland/instructions/next.png create mode 100644 test-javaland/lambda/pom.xml create mode 100644 test-javaland/lambda/src/com/amazon/ask/helloworld/HelloWorldStreamHandler.java create mode 100644 test-javaland/lambda/src/com/amazon/ask/helloworld/handlers/CancelandStopIntentHandler.java create mode 100644 test-javaland/lambda/src/com/amazon/ask/helloworld/handlers/FallbackIntentHandler.java create mode 100644 test-javaland/lambda/src/com/amazon/ask/helloworld/handlers/HelloWorldIntentHandler.java create mode 100644 test-javaland/lambda/src/com/amazon/ask/helloworld/handlers/HelpIntentHandler.java create mode 100644 test-javaland/lambda/src/com/amazon/ask/helloworld/handlers/LaunchRequestHandler.java create mode 100644 test-javaland/lambda/src/com/amazon/ask/helloworld/handlers/SessionEndedRequestHandler.java create mode 100644 test-javaland/skill-package/assets/en-US_largeIcon.png create mode 100644 test-javaland/skill-package/assets/en-US_smallIcon.png create mode 100644 test-javaland/skill-package/interactionModels/custom/en-US.json create mode 100644 test-javaland/skill-package/skill.json diff --git a/lambda/src/com/amazon/ask/githubtemplates/data/GithubDataGrabber.java b/lambda/src/com/amazon/ask/githubtemplates/data/GithubDataGrabber.java index 28fea2c..feb8db7 100644 --- a/lambda/src/com/amazon/ask/githubtemplates/data/GithubDataGrabber.java +++ b/lambda/src/com/amazon/ask/githubtemplates/data/GithubDataGrabber.java @@ -49,12 +49,6 @@ public class GithubDataGrabber { System.out.println(TEMPLATES.get("java").getValue0()); System.out.println(TEMPLATES.get("java").getValue1()); -// github.createRepository("theoneandonlytest") -// .fromTemplateRepository( -// TEMPLATES.get("java").getValue0(), -// TEMPLATES.get("java").getValue1() -// ).create(); - } public Set getLanguages() throws IOException { diff --git a/skill-package/interactionModels/custom/en-GB.json b/skill-package/interactionModels/custom/en-GB.json index bce9d96..97ada0d 100644 --- a/skill-package/interactionModels/custom/en-GB.json +++ b/skill-package/interactionModels/custom/en-GB.json @@ -72,6 +72,8 @@ } ], "samples": [ + "give me a new repository in {language} called {title} .", + "create me a new repo", "make me a new {language} repo", "make me a new {language} repository", "create a repository in {language} called {title}", @@ -103,17 +105,17 @@ }, { "name": { - "value": "Shell" + "value": "shell" } }, { "name": { - "value": "Typescript" + "value": "typescript" } }, { "name": { - "value": "Kotlin" + "value": "kotlin" } }, { @@ -123,12 +125,12 @@ }, { "name": { - "value": "Elm" + "value": "elm" } }, { "name": { - "value": "Scala" + "value": "scala" } }, { @@ -138,7 +140,7 @@ }, { "name": { - "value": "Java" + "value": "java" } } ] @@ -729,6 +731,10 @@ { "id": "Elicit.Slot.1247776455707.488691447960", "variations": [ + { + "type": "PlainText", + "value": "in which language" + }, { "type": "PlainText", "value": "Which language do you need" diff --git a/slides/hey-google-javaland.pdf b/slides/hey-google-javaland.pdf index 73c11b4f2a4e928f7858538e6ce16323f69c4950..64596524f69cc5c1e77eaca1b7359dc959deb2bb 100644 GIT binary patch delta 51614 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 WIyB50M>%?-nWD3HbR6jCZT&y(&p|){ delta 47785 zcma%jby$?$^S5+&cS!fb?$RM8C0&9@i8P8JAhpuDNZ*Qtv~)-a3eq7Gf+B(-DJrRe zs0h6G0?#Ax==b;j@wwo-=k%E~GiPSb{z_`Z-2K{s883%`Lg1`&a`+yeH|(rk@qN(3 z^!waK6euSLO&Gntu+QC+&nwPRfAT<|lO5TCUL{gaAQU&*!8P>EzRR75nCiQRoLF=7 z9go#X>kuYW=&Fi8q`R_W9Zm4-%|X3yz3Ny=m#50xO9p2nfbFP*xd`9#&4Y8y(_aPcE91$Lp-2wS7TIlCfAsN$SoyDk%8yj zq$QJn7PGC5Z>H3Q3aw#9pnTlTSfa=p`4f`8-?R^!n}2iS7cYXUj3) zm^E>^d)_TSGn#{g98oUB@4p((tRuFa&73JF%3bvX zYbL0JD9OEmBFO~Zk^tN_JGU#>Y@G0+sW`y~z{3<*q9kDqTwtt9llzemMgTsVM3NK+ z10Z?Nl@S3GmpHM{WrpvaCqzgCw=KW8>h!i>=}l!K(6GKBHF_=^ONq{wq}KI=~U zh2>w`dS;Ec%I5#-K&hNx^Dji>gaT7fl|p#o?)TYSh~m-mi8@Xm~GRGTg!T-GS7{Z{9mIUUxK^ z39d+46qyjYA9N*;GDh+utmkIhl}4WRE0LJWZspD{yk^oY%ZpsCTvgX5y|+4ttt!(`&uhDrkp&NF|bd$~}YoeSTuG*%W&hlpAqhbEztJrmIG&v|sI)zQm2M z!J&o6Y+51buDT69FX}?&$LNys(uhcXqP$ex;$@ud`R_!@J?Fk$i{=tGo(wlD<#o&| z;#sY|rwgINqqh{>&P3Ew-gSJE>SlSyBuNE8@!yf)IO4=4y&@3`2!vIHRi9N@>6)9T zotvizD?|if`|86Faw%)l`yx#WVM9YvR*2|fDMLdsR)`pojTcNy!wP|-KH|&Cp?LME zO$ZeD^3_KqX_QPC4Gts_=&(OhCzno6$|qBN)Kwsdh7OSc+&Ut85U`UR?i%0c)Gk7* zvb`7m#DykBwR$T!US(O}DJ}==$8ibbfH7B>`u(gbilkIyjNz6S?<7rRi9eoW6)4&l%&5EN55JxkJ51oxTK9%rloz%?k+=@WgD<-)Hak z0`?K*kMr9o**U2MeuRcLTpel4+#ZO;MLTzkjMDKH6P!$kL*fqX={-L;on=$=SM@#h-or@GH~h`XGf*u$8mA#J!8-YAI(FcA!Y<0$*d#n^kfovt3;}rRxj}GZO3YGxhxM@Zy+gw zs?JE}r0Ydw6cEYN`yzqb7d|w}qn)v05jiZO?kdJAdbo=xwgMQ!@fQQU{guc7u?-(4 zbWyRS)?zj^C~8+YLU2kVa7xfXpo72wfmx4Jf;IUP4T9Q02tXZxEt1qy%m6TbFl31E z55NY20|FNW9teC81Rw}O5P={DK>~sl1Q`f&5ELLNK~RC920;UY76cs#dJw2~89^|C zUL2!WJ1i=M@8w3vsUJ!gB_(2GO5CkCvLKuVy2nYyK5Mm&pAYdTi zAjCmPfRF?s1wtBx3i1YQ{{%XQP z^`y(jmIUC!0`A+!6y&1tgAK9x=PZbdr?{KE#Zm}m#|*5``x(@NgIU!c-3`3-$EE(r>w!~w=SwF8;Y42V2aqeO_4cCPL4`nU)aO8ye#Ae|@WcJRX;dVuZgWz?X~Cy88P z{<*TlP+pVBE)6$hs2tUqzy6_r?!_|A_Edm-(EG74`D`rjCtlAQ8MbFARYaCB~}QH8>JJG;`dqon5J z4c^NPBoNB1`_FORrSRQ-`ro=R-w{~p-=3{ee*fh~S>5VZKEIuR)6U~}jWhu8w)4~1 z@qleFzb*H7K?v-l}8+xr8(NU^7C`xO5k^& z{kiwg8Za!*-`umc-77t- ze)vD~+GZIg`8su@>rxH>#^VOZ(Ooh1itck+@owz0cx$}9-Hd5EZ=KMMa&FXTl@j^- z`)W1)q)+TiU?)q-lhtL^4nRm1rrU5Dsyyw&mrbzEiTKH#UD^I%Ygn3JUysc*$t!y^S{AlVfUz<_m$~(SAL<+I`V8(T)i#eOi=?^<%?wJL+X!u-kP^@SUmGmjoZDYDhi?gjQwS3O3~^2)QeCN zHJ*10Ch2LCNiXa?>3qpX2{Ch}wIj-~4ARa&GHTc7z%5`c!qeQ@Nc*mUXc7%t-ZfLk zK=`eZ45yuqjrke5?u;y_?H_o#f}vz&7S8t^>*A7>QIh?T+at>vpIOgZQsKQ;4FS(G zdZP9Xg_KEK8G5dl;UeZL<6KHN6pO^#Ou|{8Yj;>Zrz|8CcONwqfL?m69BvyZL3uZf24s3b^Oxx0ILseEws10`BdL9 z*_2PDDf`%7$g*G!A$&Zh(ah%!xM{5OJY~nq27KDpSP--mV=2kbLySPC80`h*rlhr- z`rQlj_8&K`#sM@Kmo}b7I#0BV?8R{d;b!9xMA)`mUG8SpV@m0HiQye9tr+dJpC?;h zvBN`&p`=r=>4EsPs?O%i(n@tPqi+NavwtKTz6Fp}Xv+uadZFf;QLkBi5zzId=ClF_`5B+KP~Qy-y0G6XHx zO;mOQ-t{F~cx;_BmxxQ{l_C>$GMN~(yda3zuD5cCY+pe%nJ6#K#+4-tBQkCIvGPqG z0gcvSX5QVqKc%eCuGoJJakRWl7)@tLpKOX2gISNbsq#>NlD#D%k=KLaGF1yHv_b=e0fVq<=8*e7Xd_~_gm#Ve6=f37^ za)Vgqnd+F@hje0cIN|WCp(fAi-d>x#>42>YW2$E-z|`Dmz|2I1tqHm*!Sh$e`?T~)J%%RjLfz1)_GlI zP*}X^y`8i(iM7|2@SS^eI`i73{JY$p>sy?S{WLVchO$O4&94E-QKz@X!3bgGPuf3K(ORjfcZVG$F^Y)GIC5Ae5qqDuykD2iHe|R**F$=E^fB^h-{q?oQ!uM|C!Vz-=Lu=hLSr3G-W(@BUWzv6CvT7NaEDSC5%S7Mj zS7z#7D_-}l#knak3pD8pWWFbMLz+iYy@tZHyQu?FJgWHDIK}LS}Z*DZaY-E4B zbgMG&r*RO6^1w7yjpP*;m`x)**oPN1grUC*pr))LxFV>}lhE#^+Q7`9epy+l7y zHI)%IeY8@tbc(L&$hgo15s!5CoTxP_--k&dIApzBi+0I#?P;VQuiSC$?{=%{-tF^B z4KWy~tHUa+J15QGUO03iZZ)_Lon6*_Zz?h3S}se=tV%zQrc&SqW$DPF5`Ckj%X)*R z)e$QlkNWzj+M0tZ!_L%A7{z2`F{ycRyMxM!NHuP92U8Sc>>1+YaE;B|e@%)VqDDK0 zIAe0DF}?Q&-Q{pS3g?0_rTV)AkG{ckZ+VubajOJd;cEzb46g>r{-3G z8QVBcWn^8lJD_%oa|5+g83|2zaWzYEJV7w{UWc6f7w|e8U@24!mk1R1hHlpzDQso0L_+a zy-tL6zlM_aekxa&6N`Kyo7w1+=x5!F$sxnc34w8--V$4}AB}N*Z%J583`NizCf-&F z_PY+t)>k5%Ruk-bCu@S`LYh`Wet|@GY}_e(+)im^;*uQ%gDy2kC?}waB2*xrmh_Tq zn1*_~&NxO<{u~-t4g+U!{{wNA*J1`*(NQ)!PI@I5e6$(fnF?OwHR*F>c$58FH{`;mxVitGd>E(e|%`YUz@3zu}O*(Xb_iSg3oi$sBj zIpXh1kBvD3-|2~!u~h=*QgR9x1s6k%dh83bvd{cJXCbmV0NW%<)Ny2f_pK6w?6hB1O&VJrgt1_?cbMX>wwB-3n`bGM3 z0Yc)K>{sjelE^7+F`d)fx?1@tVRRS76zkY8k=yM59oFQ80UA zwqi%ox|-c*!kY9j9>TkF?@ev3<%Ss0C^W4`bH=U|1xXh26}N>U1Ex*szo@XTtArif#ctQeh&EAGFoaZ)_?wN0 zr?F(d>r2{M`1WSRd|hWBV+U6T69{3A;{;gKKxZlF6d@ObopOqZ0SR3GeCT2@&?%z% zH#0{95W45ejR6%E1*nJAd=Te-{5wV(J2nb_rM;AF=gHGcej2T)?){~U;Ew+qCK)fA zUUF2j>f}sOn}+(g68e`HU?v7Pd5WXaVm@O$yS}~aF_y7!<!FCB0X`b-?sjNaqK3n+Ch9=TyoNWmk1LMaNb8 zZn*Z{dlyZbm?C%UyMl`_rMmN{6!p>uLbe2ko8B6}=ds7tZJaw9tMtt5Jv-hl*2a#% zy-hDOCAmhf7@r(WQmHOl`f)LGh$F@Q*Cp|Q5>_fb=%uV~;p|v64|`R<&vtvy)qvRQ zUx9QT$-~gNyG0}1Q7l+=*x|CR zQebj_+j%-ud-A6motpMlQie-K~5dp-Y8Wr%gGm_%KT_twfT_twluHps8 zULG2uRG>4_0uRaxJ+xMV$w4)GAg~RI4Xjg`umVIQYQkuupo5AP^t!M%YqCe&9#I3K zUVnQ;BexYz?9eL(79*>_nxg5%hz6~HS*2Nx3tZnerX+(NxFT8qb-h4=R$Lt(1XL7u z!m@Quyl`zogfM*VC)Jv}v@-RU;De9Z+9a}=4m23jIN>oqwM$)IZ=T7IBQuDL>>@Ea z6Yr>Hu7^@k3Tvc^Q&IiIfA%F>fCYEq4Clz^Es|MS^2p>Tvz^ZTdpEO(UR2RDeu-Ts z6BqCC`q553F!zlb;XT2){p8nvQf0bG7&JQ3M33i_TrKZR)W$%h8eUY6Rvz>@wKo=A zqxy1kq+7EGwMtAW53MQX;CDU7CA41%Mv}9{v?brlBx9-4%KhkuUJ1X}p+sD_ybde> zK6_8+Qbt~wj9=-`YF~!;Bt$=bXOUO(i33${Jny+18#W^9ON98UH~#VIG|d%~vi7eoEG;^uO|I!zW%|Ke^?Yeyre#3}5l`z(#)c3Z zraJF;R+q$Bs$D0kAg-cVk5J*j`zYQ-bN(LVXiZwOsQ8@j&3A^g7NXC;#tV?rj684j ziB2rseE!_FN#1+z6Uz;kigJK7Mf2Ffhl-y%_)tJE&6N)wDt_b*wZMR}LV=kyR|=r8 zQIiPx_0@+H7--TIK@&kS6*>$O!Pcw^LJP!&dbVb53dTcMrwFPTdA;|z_H|Am9arZd zB*P16F!~qQw&{%HpotuM_h5%E@PAnhc6fUNKI7^zBTVY@HAvBs8A|v;n3%Gm%)!Oe zw^_DwH`lyZxQ2$E!l0FB`?+sQDvZDNDSHm0}c zxrqU$2R|j1^U^a`i5;thlD}9`%L{i_N$@G1ruqAje%tk~#BZFOY!E}~t zmCn4|@+*$0UC&3$U(0bUEQ)LGJKx>Qhb*}rlvFY^@k89KX7SpiPVj6ZRreP>CjfyH*P{Ubahu+eYF6-80 zB*mdXkSEX)LW2P>J0jT7VUqQr&)P5r{O3>%fJCx--fSHX0-&rO+%ei^r8;}~ z=rD=H?Sdc5nSZwnE_R>=5MrQX{dfq~HKEn5O@vf=?ML(vG{!aGrY{oYgj-#*adnb{qm0Zp5N$eIIoTKoPVEY+gwQmz8!LlCe{i=_^8gY(rG@zI@tFL*) zt9ou;ZK9$ivTobyOEk?Z^B0Q`#rwAK)2d9Tt!tMz5NbW>3z&6WS9&q47&YAR^VCGN z&5)E6?Y9u$fBg(}a}V?|eot7e7%=n@+xAPl>QC& zho+H+m_^rh$-?6|V1Zjf1;zWr$;xa630DmVc`iES6q$F$)AP~#L~r6U!Sks{mIUbwq)^Py=D0yHN)oVH;*pZyRPPX9al4>52j)3x>kLn4B&= zLgIrV2%~z555{9ypynY%`TY+C1E_mWdi}*=r@j8PD6jv?1A__#i$hSHN=bG&{eKx% z9R6?p=k+>hCScTHd@Q=B-eTLB9PJ>OaQt(Mgoy;8i3hF*7&vAEbjVG}5UuzJ480q@ zjgfYNq*dWl>nkM^EWfV;**WpW7q<2%Kg<&gw2MlM5u7E+scatQ#9`C9Cob*euE zwIq(hQy>EfqoD#?2YbsH;YDcz!W6_s5N06EL0kf10pch zAnZXnfN%ui1i~4FOT8DR>yXFcj$bA~mpF{{kV%}{a|x8W!3%6Axq2aDD=$@>iMx39 z??*SA1QQrVmh)FdJ^U&jgRvvxU88mxGm7_CRhX!;xqtU_2n}aS>#eV%_zQQ+HANS5 z+`T^_H+|9|!bFZc$^{$U%JN^NzW7~9oLU;(l^2_GuW-5a{pI(rcB0leHMRe8lmy61 zz@yGcMvgx$_-PF)ai~EhP#W|gAAuNTXq2H0hGtLt1MLj^+`#OEr%U|ba5R!Mg&Ht} z8J)J{m2MXRnHcBJ5%##-KH1$H&`;#7flqgLNT+v;W^F2F&3_?G`7--@#O^`X=D8=k zFkJ-aTCwbng4>I=_3y_AweKfX1+2;-kJKTSEkrow1zqt9%RD^omr+oN*nRcWYvgK2G>o=~s5mUZWir~zjfM?`^&K6cdj3TH4~7U7a5hxIK0@x z@cC@j&Y`uYe*DT5Tcv1G=P{wnUG@06JAaf)MoX75xu)0WTSgt^7AorA=LGumJ*i*0 zNKBJHhH}N^Q%4fG2vMA|4ei2<#Lvs2b*4V?=9Jv_Y`;pA8-mxoBA5 zlinfv+FPO%J;wWn1Nx{<1}BH#wcf!qP&CKg>2?<^L$Z7v7KbVqL$bbX(;vJvk80Ut zUfy)Wr`-##=uHXzI;13qFJzfZp;Bj@O4Z0dT6oc7@xw6EdB!Bu+x8_^;DTewRSTk^ zH=%-4FD^WBxD<13Vz%y)vtT(d(*(k&Hs`~c`X0&+QG2Ej4Ma}_K2R~4+37o(6TC7n zG=@b8in@LfeLctCPf#6S-^3@xuLdlQQWNyrv96?z+w6L{vwhx0P`>$5w!7%_gFs#p z4f+R$1yc}M{vaJB4^RGY%^`V^l)#HF3HhJWK@y7MU{yrRJMy;HnIMd)bea2DxxEGG zKlcUGmo?K0eoQ&r$KE~1K6jB`vQ2a*nA_8oXck{Tkl)!_+4Q95oFoqoCrOmybf7R*F-2J= z;Q;+TSC&H?m+QW(5Sk>)PC5$J$KH31h`sLy;u?tSAl&O?@87_*MVFLBDK1cqNgmor z6q1LRwtrO*LEl#11kN_3P)S>Ay(7lc?W^!9L2|OSk=_& zyxSajm}PJe`^l=663gdu-z1(l8%Gh{2z?`gkUZy8yLTfF+VzRoc+vUNrLz5g4uf!> zu|$HD>z~}INfMkN=Qhi-CkK-!^0w0S)R{W^e~7ioIM=m%&wa!^)QqCC(8E9E*|_)P ziV}IW(9riY4Q^?cYv}$F%^hJ}G;xoIqn6^os0x1N5i2q@=$iR@_M37-IS-rXogv#! zpI3;i`?*1W>cLSH+zPuA)BVhmJSsUhUBG;oE^lJMJ$D8tfpGe~-C-yiHOEeNxm@-` zsfl^6M}qIX?ISwpnpdn=oo*Bj;$-e*x@v7%^;GomBzt~RO}{?cU9h;`f|VGe z)d9RB4~U{kC%uZ%N)+GrJ&A)guJu+KQ2Wd*4MM_^=58FKV~D$LDnzzg?Mi&Xw5)PK z%mv}~_Pqww=&oW%q89s2*04sqz?rb^xJVJ~@EQ@0vyZ8rV{mvS>WR&eX<6NMxMg5!Ccg4IeODw zzNrfu_o66w?9>GGZSYg*txfaUIdeMhT7C85w)|EuWBDu^J7C3+JAc0-x>jvO;-@`3 zLhfB1<=M4hhEFpLKSmv3sKh~Z5$M4daQ$fujtu2vTL7?vXVSJVek%Bmuq6C^mFdrdP8jEpQz_7(YUp)B}Vkh?^k1KzP?HllrVw z055U;4=R$^d$#y^aspYaKDa49CT8^-AAAf!K9M}QaN$9YGRZ7}sRbYEgFHqIafmqZ zWz|O*A)=l}u&FY!{Ym~F!v*$Q&a-x^-E!UgKYmSUHs*8k%A`a03=M1eK8p1_N|=c) zIO~fV$*)CyDcx{#gSmd=%YPS0pt4YBtWM&o)6O6znLV@h@oRcc?udbuG|S7*t&f9b z@8c9e7fTY##qznrsg-kdQX?;!$2~bJrNCbmVNXYt+~J*S!f)u2W&+Q(PCZxIv-*jE z37J)3*H94At9g#%=dEW_TydT?cdt#2TnUUAt5@GMe6beyiQmq|GXd>IoFSPK|4sW) z8<+Fp;+=fL&DS!yIm-%CJQo#)y2=`@l3qbB3b^Hu2qoSW?U+U?NVoUVnM+wN3txcL z5+Ig^G7P1I?P9O4Fn+A6(&Hw{dG3pYSB@_E%P={qe>0y}@Oh_`6hFMgajM4!H$*^l zPUhlDzI7SD^>pcqm*Ph8mmDJWsocK)3Ye^1g}A5ITigEf_hQCpS{^zi?!AdNnY+U> zwbl8}_d|jG%txGyjphAP^d?u!=%$y>gnW635F0u3VY)}O#XwH#-cwDZid3ZGOImzm zRp;cOml^oODzxEbn_Z!DHnD($-HuF5QCH-Y%%rx;(yaFLlG)f8euE}-r#GIvE&bQ(_T!}ezFB3~; ze!vsQLIM(ZukMMfzf5|%OJwrW`4Q^y0U|9v6eyPlG1q@CFOb8`$Ky$pU{WL~0QrH5 zFFu5*m^;edsfh#TPNG8Z2lOl6wst8L{pGR;Mn}mZA z&gm)RBy^_=7wI03;n7C+sBqM{Qf0#|ePRzMOGQ3n_-<2eKcle7oiW<_Xlak$D+7?$ z3lBVPexavmU^z##rbJSnhs?8I#EquqEex(neN($y!rolkJn&wHX_G~6B5#wd;`2_N z(6z_4qN-Du)0qR&*mtg20aZVOC_xbgCO@)r9hrW=-3Sm-u~W`J2w7fVf@1%pLUhCED*qz2kT5!(qV> z#2Y0<^zZ`p+gJkAEKt`apbtHm9Pu`80!|t5#^l|%UTm|p7&!I0Gxp>U3|JLH@OzYA z;;1U!dF}8e@~gzgqutcY&vP8^l)efnA~J{auw?iRSbRT|HI2s8d~g1{iUEFE_@Hk4 z=Pr>RB36 z28-NO`kGpOh(P26tu81LPgETLP798|n+{nXX0JXw-9o&{x==_KZ|lueCHk#xLZCF* zD3xu7b)toR!s&aCR?tf*L(l!6diAO|RSZhVU%A<*#_tlbh*Hi;%Bp^95x(mNIUms2 zIho3-&8^pwNS3C{%$OU=k!_90MOZQ^k-86W{uRIS4AWODEnId*hDEvxd26(1E%X6JUiqsvH|M#B zx;{4Y8(x$XWWx)=y4YqJzk4;{X3npVyjo18185aA1v(s9>X<1NG;)b}2{VYu`SzN? ztiGG(^6*<(*K|uX{6;g=YHv{MsGO%MBRb!)#4xLCg7R`Fa5v1C=nn`%&{O-I!E!S+hJ&DBa;hwC2}W?5L$Yv*s= zrkQ@+A&~iC0ZudIlZPlYCACs+mH66X>hX!wF$Z zc*-&5Wk1-MDfrkyfo^yxmm^jrs9LV?fz1oniVBkT%uUU!ihQ_t&T|M)#t<@;y}W3ObX2W!-AE@$aQxZ3)O_Nwm* z221jE87Qtid_3Pu-@Lr!PjG>t*aF?G_VIg@hqXawOVR<}`uI)f2BM}_B7(kr|8$=V z&Z$bFsB*WtnHSQ9+nqG5+)Z#3vJ{4KFS*nE#qCu`adT?o>uu2yKE?LG8aU5>W4t<% z*jdB9ApM%xuQtrxQf9VNWOV-v)SCNOAp))YMZf96aR&U+gK>e!oso2Z5H$bEq=Fo# zQh@)avSa@bH(Fe03(}@_3nl9&bqPL>a|6syD!NL zWGHY)N^gs&x009&wQetzM>A2EP{EC&R+@haCfv>MX}xjIm>>zSp!v}i#9Ng`Jo3@D zMC;U0HUCvvkLsk&6wG{Yml5esU_pp%I^(4R!ykfZE$;bSuWKapHefr6o2exMsS_#kQRAYOQ(! z2&Oxz5~!;6VAa=*pq>G5!N&D64Uu>R=wO%ey}(#^{VrRQ=eRo&ij-l1;-jzq8Cn!NxtbXm2}nb4|Bz~=+03w`H*oG zpJ{cuWTvDa#`moYzQ3p;y`=mg!@kz1o9b8S7X2?%Mh&%l){k1t1uEsK_e+1dk>T`( z)|lN@7TGGXxuVl6#!(uU5`K|a-;mi&I)bKE?FqhWzii)(%wvzx^vC>}b(0KrdtU>V zhA_3P8*5f*eiqR=V>raXGX->?%`*F*cwY1U%O6F|#XmjrT4~d8wIa1BF3uZk zRK4Q~Nq2NMhI5)%X=$Vko&Db0NA-MyJa7+2elY%8IX^X;*GqcNoJAS4 z^Y$P)-%_fZ^OBW3!qLR~@g+6lcS-5O^_^&fJk%3Vw=1|7VH8trF_|-d@s;hv^o%9j zA>NfRM0uzlcc@4+)p{_&JoAR+eEC?i)j*Z0l@Yb+TJ)3DhFbQBp2#w;qoo*4ivAsxxRm#1$ zXN1Iw?&tlwTTLRbTWQMq@5uu`w?+^Ebw!c?W9wk2oolGYJ20nUDDT?A-4S@u6^Vr= zdU$t)0gx7O=a#x6^+3}KJZo$bm%AhDFLy^3odp`ZA{Fb^m!cf84}IVhU!nvtaSPpT z0m83QjEFE3e+6pU_HV4&bG;tdA5L|-#5Twa_CKUh6x(|}9ZfJ#wgj8c9s{P6tKM3f zQ;#u4GAqUT`sQZ}O^QZ}ROQ#NDbc!4h)QHu3;%(2}V z;DR4ysz^ZKfC+nS1R^tZ&Q?N}q5a2#k3D~-`9~b8*pk~Sp?YsMy5=#=+|n`g6~09B z4alf1UZ-zo%e{0x(jfAR$3wqP586)1Ppw(=?|9njkFWPg;w(<#kK^x-j#w>pmK&BS zFjn%jlnqt**YV$@a^incT3OxpinC09chP-q=pD0}8C$*LnsWtX<4&~1$64XXXDzp4 zYl!C<$0bPWb5;ba&!tzJ1Ab>?^$?ADev_1MVPS!~ys|a#=$6y>9>MKw>MQDoa^*<8 zYORH+>8lws7+Xv%j6^K1GzbB=^yhA1ZK!-AXAT0d;R3+LAbTkrNVY4ZyvvgsBbQ(z zcU!CcL`nkIk5=1+GvRiwI^}u#P%C|6bO+HZ(w>DS^q=ox@0N}jWeDP9KoB~^JEf09 zoY3mkfAlJ_?bysIxo`#eQ@vy*ykNpQMl~8gIxIJxjM7!Z4Lkuu{ zGXk$sv(Qn$56?K4!5@y!^QR6pmnTaPON)MV_1ViGg^?=B^T+4odj#o{60hB3nLMt?E?Z&mRQUwr!Td*Z%%W$ z<;F-7OW4P(UVXYppaa{(McsNq0bAJ_$@T}^2>u^|4?ht2EC3N#EI!3Q!F-e?LIpP= z@PE|6UtbW?0MEE$vHtjo@E{C~YQ~%uauf#st(bwCK`=>x6oC{0B)DVc5AL}rnUuyI zTc5^_v^7C}InejQ2;?nvU@s7P5FKR%hJujt2ruV1ke6!x32XgZvfGy|<>#meAN;g_ z_XYvYeu%ZIXCsnG*nr9T?$<1>mb|EVbC+w?mikMph#UtSs=LZMZG;%;psXF607yR2b%&apKH zYqy|wvF3+o!pt{Eo+X)jD{-r}OEq%lQCkJvJGV$SFTan!JR|!0`I<(nG;cbSfm)fy z6RxWlRL?e^HGM%B)i&n16)ll%Jy(CO%s9ySBEorr`Ig$VdOEjI`x#Qm9Xuk5HTE!d ziUPk{$S-*K=#GnkQO1JC?28bVwx(xFbgZ=^rQOFFPT)X*LCAb?I@* zYkKMjsd#iAt)W!5Qh7xDsr}oS+dL%;?Sz{7${8sQ@$2b=H~0HR-wh`I>>$~lUlC*& zzDpP~rYhAk%w)&eg|3n+@6=G4RzjEDW4|DS7{o_@4)ecL-1XMM^H$On)2%o;&I%*3 z@jkH!Wa4!pS2YiZwY?e;dr)- zc<1|v*Sx5!3-CA+Nd)xc>M$bU zU^3lt7kx(ZjN5$?((Y$Fyn7Se@n+rFTI+^JPD$Ekg&JkSh8HH}bXE1K$&FbxcOw06 zHw_X;ssni!AF+ldxejbU*`Ji1#wH=%R9hL!!o`fntiPKp&ciuN9=!B(aVLH=**&06 z4(|6&eRK?bTjFo`xEn#+$hV{TDy#`>UfA(@rwe;L|ToU zUz^Ac^qcfw%HbMb9II`%Q`FpY0Jx5S_C1t z^)&A*OW}T`Ux)q3%6RJS_vm$U8a6w322F<2GC@vba~D6&vSZCznSbv5@y)mu$^ccHu0n3TQH)rG#HO z!+)ocb2U-IEIGM_3nSUVV`gG2jN!T#Uw6wcQ_OI5lBnOqO7%`JT}P~Z*mjuy&cpE+ zq_4SW6A~}}K!5-B#~LEFyiGLC_wyNtX-aMbm8uKAZ z1*-mVmV|x#GAj+Sw+y#W!&S?Ya&G@A?|?Z+`5!kE_F{`M7oh#s2y#8^M~%J|hTFZx zi4?IL=sJ1(Y7y1Pcxm-=u0~i)v@*M?T(2CMVtVjWX*P-*iNlo+sNj zKa9WQ{PsE^FDJY}Zb?(BN8LGcRv_ug*g@hX-eiSD? zcA*sik97t*S3&CxNbN-uqdc;j{~xCS%sx4cQh~{S$B)3xJDSem>-5mIJt_|u;*_n( zEnGHU_ZuJCbVD8hmxGs{R#Le%Y_6G9TWA;*WA(Q=c*)oD3BA$RBVW z4{j6^DEXsF2i^n0oRa_kSbzkOkcOlM9>*bxD2{S!z-9l(gaEJR50GrY50Gk(N^L>? zOo1jVXc9;qS{o3F!##&c9NY%+Argm9aERn#auMVxjQ}EfDElCihc*mE@-Te|au{x} zC%c2p#w4*|MQ!=-zS)wI0^l<{?PMey_~&{ulKbq@5QTN^S&wF{$trrP8l)U4fGzI3?yd&?IRpL9&7^N2MUy0lj^uM|I-HNv86cH z3-tI_ib8;@k|W;y%cx+0(!G<@KGql& zfI$E)R0)*8I59$TfGiIjesT66*ir0vbur*m_9=c62P*Qw1yRd6wIJfD`QYb!r#?eL z=Tkn|(We}+qtjvw`meTxi35VUC%5((Q341AiO0teHmgtoHv2C356ce{6Hr8+Jfz_9 zm4*Gw!f*)Sl81!`%R4!iV>QJ9{QQ$+fq@SGLU8Ji`AC7|EyDj*zF<0dDOl+* zL^!aU|A$RHR$Uy>DEMo23E=)IBKWIZM@9%-5?DS({B5CtmoM4EBi=YZv|}Y8Kpd*X zX?b;Iz<}C7TojlnJUO&uL@_|%;Ys3=X@jZ>1p+`K?J;Q!5jo1X2B|P$;Nj8O{#FDI zuoV5h0de5^|Db}I&_zehbNyumCoBt5@JFKlu`GyBRsbeTK}`S$P=?sap&q>}&}5Z> z0F}jmoXzhdq5xV6QtISjepAIxC_6X+d4d!;t`{L9zssIfj6n8+AqDUt6-j?$aR2;L z7C1NS50$L@w zd|+(l^z!{4p(F%&U3SEVr)y_}wE>ZGq~Kp>Cn*NpEI-91qW`iPn26h5{-=#ORs;sn zRUCDGqK{)m;DCL_-}?{;8vaB5_k@But^}2T9Kr7*l7I!O2QF_YUCfOplza14^rRMAo))83H?_KfazEO zeeKak{?FPE8*QCJHrxd{I~Try~qf z15i|~`cupXMxusL1k?H>W;@a6KX2^7y9<~Nm06FJ`YRcHJ6r#!)j8e-6i|44N=p9L zlMwJ3?Xl~f7@&LaPeVFh0S`XxI)|3F}B z1qo%%|82?zMflbHM+T4tp0t7j5WI{EoY;HufAup2Oe9EocIs#zCrbeH&rb0qXe^bs zft@P1AO-){EEpY+ZaJmL!Ft;5V7(75r)B{XvQY$B>wgLBC_?BT2=W~uVdM{lI23`s z?Y~V;c7SVfqYWu=Vw=D>bON0qp|cIib8=+M>YuLNNGckCILBAI`|Oi(M*p-C@2;V<`01%em_1h&|&&}V!S7N6#cz^M~n&) zKWYKc>;N5zVEzpzK=d5R!2|!d=%F+7=uN;;ZVvuGZdnT;4OP$QIg%8WU=#fuc@8v0 z4+eM4yD5UQfsW#<;3I?9J|q*-frIw&8~AJ!^@;FcHiw_!KuaHzh3H`Wjw(VAJ`o@6 z#nC5_`w!ase|)_KSX|2zEsPV~-6goYYjAgWcPIGZ3GNK;65QQ_1QLQeau0aQzG8;r$Exojvgv1RB?Yw1|;^hs57CL0yF3 z7--?qe?0>Q-fwHaZ}wk$pb_X_RbOwy-&H}Kvfmi@A5}r0OBW*`e_yZsKWZ$0S>t^j zg#U$s`miozAg$M1{*#DS<-!uZq9J z^6!d&xq<$B+WZv~5Flk11%1DPcy}ja_<(VfF*LyI0niNk(L@Xu=HG$*zt~_0IfFSF z^A?CZ6+;OmosKbv0DS?ckEnAP=m*Pr$7xg9ORi?N(MevHoHV9)U9$ZTSs z+mvYDmXNGRTQ#>I;+lt}3Zn{2O2g+D{eYnhK@|=L2WNx+PWcv5O` zX3`WCgaZ$yIker(+U+XAf~&Qd?_Fu3+x4mM&(-&5w;erBZEKlFs{lU|_WI0pK;-p_ zVErRal2H2+-WK(ZA;3Ue2&Z|o_3*IpF^*<0*I1rt4R9A;vE%j(H<%GeJm2CgDP)D? z%s}!P`aTQC#a_sHyInY8yeV$O>*c)3H|6ZwGm8XdQYraj!8_|i&4Ryqt{(vAQs;2L ziKJCgNa+{)&{AACAlFqmci`78`Ztq$gnBHKxZYIG5fBPP?%w4Q)R2E*(m*~i4rTu_l*)3H%4KArKLowzRQdXv?9`-P;0oZ&3X2@_e0h@Df{x^8*tsixc^k3NSv%F0S=p7EIL#>U##7;O^`kd)5~b-xu}{N>GDNK%mqXZ&iR+F-+-$QcX555iv5!ydZn2V?ykm z>Dob=y;rP5y1>U@dejtd{%YMjr`=^`$X`{G2nB+dl$1pK9x>r~0J6aPs8*RIU6LF% zi6Lrkg|QWZ{mdhRtV;>NcS#y6V~_x74Q-{u`XistF!tBL zk7d)PGE`%s*5;=N)205U`4R3C(Iajp`hg|xape})Ikz!NQ(FF}15!8xA8~sHN?^$J za&>zwT;H%qOvoel0AOheI-#Z>b|N+nDN3}MMHkPBMQwe!<1^N~udG+2* z4ZaUoe}W8TqFBB~ezV3v;rElD)Lt*B_8EoZSUZQC>R`a02)(cR_KnGHhv@vzYSbI1 zad+rGp^*i-H;+KH)1RYt7E=%#naqU@k0iWLfG`1Pxa}w42w*tdxnFTEra1->nQ{l4 z8o*eT2I-LP+PG;g8a3%(&SHn%-FcOI&Ov}4&{xn`#q$y_;f*+i`84jv<0!`eMZeE* zE-%B3ZX>674PKBT`X^hg3SmDF%pJ@?d>7B!z_7kC(Q?}rUv*7M_aVno-qFtrR`4?muOy>L6G(EolPSiBb0KbvA z3DkFi@D#)xtZ4ZKVG?L_o0V89WD(A(mUyWW1H%nm1Av%KS@2)XW3rVDqtkHab9H#0 zf{#$+7cwuw=WjPWQuLZ6{l%WscAqnVjh-h~jcXI##c~Id9!@j7M}tQ~s<-Vgp3l(z z)JVcrXP#ZWg~$QCCSDr;?cypFqpR zp-TRX5juc|?MNi>Bd2MDWaX3jb?I_fVFs3`W_qoeOVzoDtYJHAKMpFhhW43Z!MzOFsuauy@ZPIG*(LXRyMn85_nw}@R87by+`e^b6@kFul!vwL^BY$J~ zK>!lq5u8t06r+R;Pc?IFoPFBc?*f8hmy^Q;fAf0ZYeIK&adNIeA)n}72lxr*;)*p& zp+YOdR-oy*eoaYlLzl&m>YVi_kPd8q7tXP*v6tx1@8@ z9~lC5BBZAd6D~~@nX;CIhYNEX2c|YYMNJ+6^LF(tV#l2h0)!paz9WU?;jqE=f%$R` zGmPGl76;I-3O-A{6~c-`apJtlOzZ&_=SX+336~<2>S>rgt*Ho!zw)B^Mwm>o6w1>I zjdxmzrzPpd8QuE0H+Q5Vh1E|2dEPjKvFZY8I?Qsuh|;<0)XQf<4uLt(eCIg~qHwhW z;7JKO&p`hFiBJydMzgLH+;0&H$8&?8c}Gy)9G@`uxo9mX-tA*Y3WAum_7COhYMG}B z%S4x4?Yg+}hTUNjCA56hfHZGrYrJ89L|58IBIzd_t*qee#@#J71l@?WG7{H?wo3w< z->=Q2~-M z=GoX}t!527=_tY<=E=R-Z>^N)4_js815VlJHsK9Ergb{nz)~x1td3DV-T=iw1~<|# zLdU$7Gt_#&*yL$4*kZ}|@a_a3E4V+_(pumGB@>VpsC`Q?n0s8O>sF4+S( zIXIR0%_=q~p=Z^Ay^3C;Cx_XpzWYR<(q(GzN_JSq93?E@ z<^8~6Rm7!v4NcZ|ifbi(Jk#Z)m3s5L&WQtiTEJaL&7l*#r+tOHgB_|o0m1^O196>G zxjyl?;*e1;&L>#%oOReU4eh*Z1ZP<`xubj>akX6WzNkV?UR`sNh$!^p*~FYI$9K~k zREJ07JD1C3n)c_}VTsmQZ6P%ozcLQDudWnk-GVnpxhviao_}_EX*&#xLlUaAhDO~SW}#mP>nXWs3P)g=HI}XtPf&vs{_0| z?}B{mepY`03jiNKq=8ZP5fQWYfxthI@Sl>)V5`c<&kuG~HLGIEpx3ORgb5Wp2y3vq z&tbR9;dO)Q%K)yTGJTe+vEsjz!l{jjl?B9Up6}BrQ?eHBKkD?%+!ogK2?j(IdKOdH z^^h+T-@$qzc9 z8$#IVFPIbp^26 zLEM@A-D03vsE5q+n}_~95(5%RqwicY{#BtfR3#em^|dBfwPC%W3_)EcW%7_cCc|t# z6w~>42H|SP&eA~z`m|8@#TNyhIvg9-h<$JFh3iG(0nC%Cb<3`k6q~{ECoA@K$l*UT z7sYeTeR-BAY2MV;`r3;ZoBfc2;m#47nDscv*wXSZspa&nY&rWnsP4DY+kMkzhY>41 zm0vTh4w%OMcGq_>D7{Ec<^2(1N1LW;cervs>H0n-$JzWY14(>nP?d@>Ao9gO@PZ8ouN@c?E}5z-r}L&)5Vud|65Ti z`CKH?7r}jk^{P$6V$|x|bn#Dmc%K;`9f;B@Dgdlnu)Bw!^+9DwHxJ`#!j-9qNS$x^@4jN%u}OTzBvT8ONBh4OzEN}M7>V3feS3R^9LycVL-jFQ^bU{Q z02O{#T=4Km;dp$TTJD5fUX9mbqC7^`*D3%S?XQo6m?TwwTB=Z3M(zD*2wbTcvra!x z+K4D3Ucigq80aAwJ%1OAW6W~C_#j+khv+-yLaf8ku{1bb@qSU?ZrCBDDkjQpZA|lN z6j{&`Jxs|PUg+&$>;#7eGkT-6CQ+y$j7gm6ycudZ#%nQBG|d#X1UHoScMY@3R=HM(CvF=Z&mDYuPChki9^zf29u&J=DI1TMYQjY9sgcbr}= zUTZ9AWZH5zpG$!#4$bYEXsGBZ+d5R+B2XG@9Fjt*F=Suh<4G7(L~dHlnA+Zp(DUuB z^3lu-q?N)KoRjcZyzB-vVmBhYUP>GV`sZ zwLRET23Br-r(le0bvxdmi5muAo>)L<6EO*#pNmwXFqVKS39(PTG{ZpU0yp`83R&Z~ zJvI=1$uQ!uf;pwVGzjPPfHs`A7dZ-qenFpaY0Ls%9{bYZqxX(ts z6>QvLPX%3$Ttc;+f&m(t2W$5gvw2k-?p)!jtIkS$sfpA*o=2BiVS8`8i?l4M`gkqI zw(qTLG(LoJ88=6c>LL_JR^{#0F61{X{n~M=`1RFbt-4#*r>hgvw~qI;N@!eVGnIEC zgq0)N*P4ZiF;{Zz5n!`o{wuHgVw`UPp!Hliz-yA0^S;+IF34%+IG~_fexr6%wom(k z91Dta49fyVEA#{XoPa*sXY7rQ$a7~2uU2x<5pngK-)H*zvHk-WY;PQHY@p*t&7`pF z!LsQMPy2l9Z=z3j8ah`Op-$1w6WuW_i9pf-NNOMiR|nUZ6@E%g z^u5F9*pWkbAEN5KuCaB+P~U3por_d%jZ5+L!2IsX6~glf&urcq7!CY&f@TvUcLq;d zfH0P$%5`{S-bn|tf=BF=DEJYf%hS*T!0@S^rL&b3F_)A&@a<>10KEE7CT-9i*wYbE%^O9PT=aE z_q4Kmkl^0$+T!#}KLmmq$qu%?bio6zNG-M7eE?Ruv`4g3p;{2V7N7qmhU(^Ne{@s6JH^zrBKa7Jh)olE|_yiQ~BD8s;N|q*BPfQ?%!R+KGZ@ z$lShbyPu_k+oo~0VTEQHqGrv?E~njd9goI3lxBE9*XJ=9RX~(2uK7qkJF9VBSt=S# zkIGP9Ib_K5I<0rhh_Nu@O}~f_4B*kEmIUVCBEJAe_9b5X``Z;_mxWs_*V)l@R~xkZee>|G&xR7z7k0MJ2G z4oRAkPB(_cHC2svU>x1P_c$hwC0fn3L$Tz43K|n&V+ni23nPd#hK(zB4yJ0vRIJp3 zh&l9@A6~7p+ zCaCT7QVrcfpO2A_E(WJBUf|jo40pKVex1{tWZBR1^yUq1P#v zS@CY&4)UuEmF4a61(aXT;HQ&F2aKouL(i9qG3EJE9}+DE`4ZC4IoC)8}+sduRT zPRGZzW!by&E`kmpBV--ovPGM6r^4wCWr*pZ69+6ib2ert0sIbQ1w_u}TUDA07vYdL z6@@Y}%b!wq0NFQz!OLE#u7 zO;j*RYsbKS&j0#YFGn8;+*wFw{3f$^X0cQqTuy#i38=85Z!miJ;pD$j5xQxVVz@z} z#B`o%9UV3QT=y(B#2^@bAnn%gR_-!yoZ+8F!we~t+(K$W=@_r~hDL@-qxWq~;8QE~ znqKX(tAl{v(oULjrO-O|2c|2Yl+B|zGj6Uu2ZVyULz{`SMael?4s*7W1H{FC?g`R~ zW|I-cu>c(_8dGcZ(Z0&DNp!@>m_r@FlCz!n$j*E+bM!s5Xu}7k!4O2HxaJ{7 zuh{go#gD|gFBJ0iE@N1I&ff8=(c|~h>QQQL3W9bAde?DH$|my8a~KTiD;TYa*^(l& zyP$QI^@+9JWXS|_!AhVf{E1`Zhshj~N92sF)o+ypVvzuHeP$O?%E!v8%EW$ym(>GS zGtwW+Stz95-?+K=AO;uq&vQ;syZR^h&sR@R1^ZQ)LfhGbL`vu}4@VxJ7siywN2EFU z*rox~4NjEU1Pjy~T86sJh_ZKY=ha-tj#OO@aT<#QB{NfXPwi4Uxy9Yw6x>vM5l2TS zmj7RZuneK-JF7YPIA5AvJz9Hv))}8M2_sk}OTwDT*R~o$6+czN{0~U7-M-$G-lcvm z1N@n;K>!#tQhF|n5cf(UVR|p_oki-!=a<-Tr^~HcX*Z=EVqd)=r9H&*s~d9xCN6hc zliIc`)ut9})>Ij|q^Ds)29mv}aJixX)*s)Cp5Z6GJ zLIa2!h$#*lWHWBk>j)D^{T|#8qplq7(Kb)nn}9Pd{9s>`VAPh7k^w(udIb}X zIt%)9_m?KJmQM2(AUzilunX$%0=)bL)|)$7nUU&euR!+uxO zPWGoIqw0Z{LM+ZMlevh#Dj16u>JmzN%I(Z{X_r-@!|t0+u~JBIt?YHG&G2(5qYBwx zFa%(AOc|y)i zbF;36Zf{6BBzXI_9Z0#9azsGhU33W6FFsRB*j%v9cqQr3wp>@xw+nx%TesCf9kzYw za4<6?t=qy!`S*q>2f>Z>TYJ(_-FT)rvMlgUxJ;= zo$f1oF^GuOSfffZvF~p6g{AK%5v})2k(kOO)`9Tko_NFj@#rUag>UVJjWSo7M>7GZ z(LAa#Fr{@1{vs30ZsTKz@6C8?43!Ni-ke&Fd7?|L|L~WVDe^K?zDa;V1b8=#gHH$L z(^BZ5ImJ83xRv1WA`cHxzO2WzCC3|c?N1;mbr!h1>5lpaBy=tpE}eiq&gRTw?%9OP5^;j>s1Omb>kyj?Q;J==_CG1PE=CqEGqOQc@T@jJo?2vjuXd zb^5gF>P$m!kT2GsFg=_D4&~+YO+<*KJ>Gq)?Oz}@e@UXm@DQh?PH4j=i@Fp^l=GKi zIzee{ByqlpQp&{Dd1z419AHLj?Rd2wKo6 zj~DxvwVo16KHZ1gVn95%|+@o>#xcfe76(NG%|j>A^wF=cvyytiUq-*dZ9s-zfn=sAi?!vNBK9rr ze+;P$#4>;~ZG&EowhP2w0dKzj=PK6)W9KpdUi|&11$N+wP%K4Cz7_?bN=wh4&SK-P1EJ5 zQJ3smjoiQZx8COR-S6WawPD>>l`4*F|J1=6-y3$DTdfF42&$U{SqX8oxZzEit` zyKzQVNE8?FtJZ1@2^(u|V~cs^vDZ5QU?=i?UDYy|c$3-OuwMFYaY&ourEOBi<&kc+ z$G9iL!|4+1NGnfq)LVD(6ryQ&fi0C_m|mHWRzl@c4Z-s9XH9$zAC02PrD_AKSdFnx zEJtLo7jm)^`lsAWK#^*wz;2O6y;(7{5w&a#z=Mko=53r7o1kdi1i3-jse^o?Uahzx z1qqs^yV6{ljn?&EG~?W1rAwWV>=4Ejmc*yej9fQCW&jOo##d=*!;zr7y` zL+@1>zNgpxBKUi=PkUTc3mw#Ia;BDA9`8L4`n2uK*fgWcY;FAx7OM}Zn(ESYD@;<& zR#de|CNsJCO&TaZ+$OetH#`nvv_(MhQxbr~^Eg=S6SD`Gjz&|cVy}k@Oddy@-ty2~ z(AcS=%fR1)1Z0$#)fRGvcV)Iy-)at-L<}?9ypYJ+9GfLKR}w_FRk753$(y<6RXKcN zNcIuJC|>oD6BaE);qv7ze({i{uY0Ros;&lP@{3e{=s~PeGi*cH!I2+kUJkqbJVYb) z(4{1S-6y!z${5Yz2){DJ5UtFPLBJh)I*1g2lN&CC1Xzf9KOJ*)Ozv*A1?id5*T*3N zMg8{tiLO3$BhIL5J8x|>rvP&9BkL3IbK2})gAo|7HgGwaj5!RKa+7jAWsB%G0 zMr{vS=Zhz7hKUoc3tmdr=nyjsnQ2{$6lpy0lbQ)a6`3bjTI+YzHJ@O)hn(%iMC}Wh zzM`5F6v3p2Wqt62ycGPZ1Y$mX0dpZ5s9xo}*94FXe%C&u7~Lb$m7JaV^lbuuPCI+J zf@e_F0$!92^@SVU8_X5a75S2K8-82jt6cmM>JL%eN2=r&vOZDuEA$&w6%V;pi{U8L{UjB@?oqn@FjAqtXw4S|Zf1ko(f1VoOHm()6Wt2i`nvB53>ps@D=X^7k5(HbtZZ8P za~VE;BL)aiP)p5Uj5V$hB^0Uv`zKwE+2(-AZ)X$7cMe=@FsD}_FD#8bf1*V7X5mK< zQOE$20^QeNiY@OLp+NgEv?&s;rUZe0_+1-|taa>R13Sl$2~Mt*a^MH@vy2+@PhAo@YXldS3cs4WA_?0Al|*=dvY z)?l3@C6erBhFmW0^e8Zi>XPg`;GP=9|?%&-HoS%6kxgj&%!hEZ?Hlw z0J<(oB6n}eGKd*0R3Ame>MK>XTjCaK%+{>rJ7Q+VCV>g3@Nhi#j|h-{mKaAQ`&PiU zls>?T4|#e*Hc5Sr?4os5=gx+Mj>p!^3(_NfyORq1yV><~7%swLs;40Jy$C6;r`;XpK6OcniM=8Xj<*LFbVTrAai2ycuzx9I=TD=5RDh|c1^x|4K6aZc<w(qO4`aE=|&afX_zO6$!+HC9wRdN z-6l5s|3bi7yI(l!BR13u5O_dozQ66kn8%pIt30Xp*v}j{@Oe=rVzWo9IJZkUZLoLg zPsO#T%}aG1Ls-`fhSHK3?5dBBV~&6i&-PEX9HZ@H?woTO4-KyWsYchaMN>M~==lMl zMj&wcwb;a0nvsTel*{v;!lTaA$?=F-_MM#1+$_f&|CO=qIsDC1i#Chuab$6ykoU=s z(tg)Q_eWiMZv!-q)6pIHC813|NI&?<(r-<$^W@mgZ%pZ71WhUFq{{rzgZe{RCTg1W z=J@(_jp#Do!xu(jS+*?Y@N+uqV1K+euqupjmTUGnL7Lk_Y>_A~C7HL~QG~S@0WT50 zELSPz2-QLmmcDk|%j67>mkJf=`vnsZ_Z2eUEZ!}inoNt7S;2ldYy;h5E|!4Jmul{rZ?XYJMk{r^B+@&5)JoVDM#M|C zrG)evkOe8=T#QTf?s&%PB?uEA=Eo5@jqeaZJufb%7W7Yph0ET*V2Cr zhT2ETdYqdcK@C?NYoQXQll z46Rz-K7CI*9}v&aFZ+nPy>QjsUZ&;p5niR%Y-!0*vYPcmZ@gxe>Y=)EM|hS88u?=ahfGnXRo)MG!V!B1H?1|W z16Ku8ZwER|f0}$*O1*rTcKP+Ap^%?F?C_mX+G*6<545xI+f&Ey>JkB-k9<;B=1gSV zHmWqcD87UW-CRA)pPXcUpWA$W)w**qCDslb$%XsC;g#ri%hsJ5#(gZsNaA}b0m2FwCizj+bCI|bn{U@E@ z)1W&f`8oP!BaVbZJz5={fm&l)nhZtPBupm> zM{mM=l3nLRHee&n1najI!4Q6!Vs5mImK}w z8S(SNY6?0-lT=<^FvDBnFkZKY&dkAjGi(dij?<2_wr*ml1(~obzi#IC?hawea|bB4 zu>hN0Ekb@6+d&Z&E$kbYvp~1p)BIJjMn#Qs-zCeex#Ug#r7f;X5`%m zL&_a3Q^<=lMtKH6U)fj$c5*!80fz8SiJGAuk&H>p0EO+Av61XdUUq)LCb!*Vd6Vzo z+6tG(Cd2Fk~t1K}oO2#84VGhT~P1fU^ptjLc2#T z*Rc4iEr!Ny^I>`Br*h4XLlQE8dLNZ6L$U4qLfii8W_pPWl8E{W$13$n$0V+m`H8i* z+YZD*1ulBV{mbWWH>15Aw^QD|)wu6bS|tFTw;h8VTs$5ZGZ0(C#qTffCTEg>;+qEi zA$ubueG5^8k3DQ9FG~w;rB(wS_iBUqVtXY@D*O-mFGPDH>rV1E{p_x%n>(cgz6Wbt zyu94P7BiW@;LggTN^{tDty(UK+uaX08?D#gZCPUP=C;~*cAPJ_)bcnqYEktnwS59$ z0ASLL7sv z;Cx+yg2yFes&UdW*&JN?P##CU$y_fWL)$rNY9Qn6=*y}p+ME+dBBaE^h6Cgm?b8=W zZXNVWoseTwGF3~Y{#Lhc=XBx*k zTtmophAd*&nvKW}x|%ULSB{WFXq_DsNvkIek=J)=kQfskkaowCnW%1;x3&y`Qmm1= z{P4qUZGD7k*36im4rQFaOx)ZqxYV<=Jku%#<6c-zYcQlK++I=_<^3*mf_|!xo!;M} zikGmBR|lOJxWb3e%=Q%+>?#6D)wn?sNjVx?l&^=w51+o%yNh=N@rayh!Ym#TMWb-6 zcT7j~I1&5_QT3~ncDgvN)p#BtO`YBsa_%wq5Ve1sb%LBg)NkvzkJ)V6A#+y%@-pjL`Gs>TjXx@v!g*}!kj2~ zPf~N1hoSf43fY^YngK?rAe$m0sQc^bohkdf=YX!!Ie~a=g*zX*b^J zryp+e-v@P&kx@laj!bF+8n}JxJELZ>)E|1a({L;9Y~l2{?j@IGo$WTzs~;$2<{vyL z?H_f~o1I*JazlyM7ZlN}SCh|;jnf@c&YK({ECB8a{4E~|EvpslHK7$%FYNtd_i7hM z>UBR_%#Q0I@)Rku5-Az1#7)IHToW9}uh}o>Q+I_Bt0->TSdv))f>Y2GDvUL7b$gkg z)$3L54UTnqEJQcVx8gpM=+Q3KHOtVLlqft|i4|-PPwWml94O6ObTU?nP}(rQ+K@T^>Anv0 zWZT?hj4J<*rOq6%0V5e#AP3h@Ba&`EgXT#?L#HQP_+*~lRNip=BKv&gOO$4?a7Rdd ztabRP{bQ>FHz-v%QU43+EGZftBpvK<<~lk3f;Z;1*D8cA;BA4}Tf27$k_$1WeX{cF zt1g-PWG=%WSqJ+DXsMIY@}s>U5z;H!KeZVYTXq@QI7NLyfnC~Mt=rh@g6x7kd`xeM z6J~$7%3eSq5&SvAyvG7%&K2EbH+iLz-V>IKW2hW(8=S_Dfbk4*IjOCBQA2L2N9vUr1@W$- zCKv&s508u_o`j~R4oRJE2wX@+4w-8L^>gTii50a9sU!wLDAtL1Zxl?qQlkMAM9*8S-DyPkWNXDx8H=Du7BFcGvH)|2-4bXLCV5{RoD;!^LTKoc zwULixSaz7cLI>(#3K`)AqJ#x>C`+oy4~1PdHV1J2z*k>ks<3UgbtF2=e%AHXlbt1y zU9lS%{w3>`H<7-$G;RFz!|_;rjcxU^#$Npo?~3K#@bZ_O3au2tnE>A>Sl2B)L7b|F z#gNH4X*Yn8?0ap04>SOaj#?Yw4TD(3LX6UkQXY`iQ~&-O9hb@5C>J90z&r};EfxDI z0Vy+)$1p<}V?TYO+`QNja5!W$mYs{v!58^pB#5FkEy^%0v>kXAY;YkA4Jz%g0sAh( zYBnF^!0)u(&;_IdeT3*~uy5!-vkfyQb0(uG%g+Ez!72#^(Bp5iD6yzoKC#G$vMl_h zBN%$>@~e{yl;oj%s&l+xeVA zgcpd0374j)P>&3I%34sM%Eg83#H)L_5<-ZExK>pGF#IQKLs(KMVdbPiMZzNI`U`bIeDu_AefYKn6O z5Lx{S-Lr*mhQ7W?Yhnm4hMpWKVR%gjZW^cvomG!R)q8ITzAvs4w+5Dr?MfmAK30f( z8ac*!?X30pt8cTk*84t9P5Lxq9DZJhA|`KxW{&0%S&k*l;Pakczl_BjiDJP5X)UWl z2a~0GrRe>S{=pl|JOq=7TqCG}1STd392_)(RPZ}xbQ%MiLK^bw6=PakC(!{#Q99b% zj6NNzum+>ZR1;GvFiU0ideadPnTMC)i4Zuc4SZ!8G3yuHSRbJB%$ACqUj-6@BFE}M z@r3kCLo4hI$!)eAq0M3oN4laC(@CLKF*EjE+^Q75?Xv@HM+ay?d~g7;b+;9d^Dz)) zXI6~v;hA3I|GDYqZqIQh%p$PrRZa2Uhdd>NC%e!JPq?*$q47eGvw*KoLn@_7gYYLq zJe2p8XC88FMxb+|!tQ8%Ez04~I*v%mn_8&PDR*idRA}!%&*K{pAej$v<#QlyQmR4i zluq$7n9wQK!5R0#)#oYz3Y8gbhiH7cFd`9Yx%(qUyCUCcY(vFJ?@ls2@vbiaie`+T<>YcCD}H*~AVup!xiZwA zA&#N;y;9VQITsMfXTa2u!^SONeAR28z51+N)J=cz{>Knu`b(lj6)k`iZ)qAsrxGtt zgL`IP;94aU(7Gqgi@r6NOiMpux~U9!V0eHBJermSr0>~>~RKB8nU8?HleYUQpJ zxk0Ca=SXl2U(Y6t86UOI@PonOS55y)nV{4pn_(qJWlUNwxNkbf=Be)8@RF863cAKg z*j@?}n zP&fF;-N2YZK4$t=m3gJKw|4JO@E6o6uCUgzPnIo7>TZ4$oaUFb^qd2B9InVN_%I2~ z<0Cfh5X5F7ww#GAQ)EA^+tF!@c{^dz)dxyl0yyDF6SO)4v$pMMeu!`>c+Zl8UuIK- zV=K1`S(+f|yH1~v62_xB*A9RmBty_i@TOaeoo$=Zsqv?TnBsYLBN(V`ul`zByxBp%9` z6=438k0a7AwqT1DVgR&R=+`f4#;80@1@8IL1?P>I!I)#v36PnjbMVXFDnfOAPq@>H zW~zP-{jn#`3Z6XD{DegYd>~1gt^dyVO}v+vjI66{umv(Il$tXa4>BeOPbUrrPs3&8 zA!6xKu+B;q5B?%~m49>FWqyQ9AcI$JGAAVq2dNBFV-&mj-fM3Y=UprHRrzCdQVk0OeUWvTi4MR-TN5``13wij+(N>)8(y46Tvbd77aiW@Q)OB{ z7|VAzYGREBW%!j$E0ar|G{4lx&u`{ZcZ4QFas-I&r1@f=%vz!|#PxMC$>qNBZMBj1 z8B685=JH>8xt%N_V~c83dEXFRblvYJN+dC7og<=@cZa0ENVVIEb;Y?`qIdyjzWCPN z)Q%E6#tkltY5MZuv|fe^&aG`C@X3pZ_$H-q&mUAb4-wni+6P!aJNq+{Am3WqinsaE z%m9PF2R)>flizqJug~$rwkMMtfw_$K8@TlQRlSL(|KM$NOa?cROu)R7Y+cJ7BkxPh z6c~q^XiOYJfC(X8J-I63DXjxAx{!YOd>xB65qY2ky`TiW5SNhC7O{>E6)DeErbKXM zLxGUjB|ANz_gW4Sa?sDkH!Y4qXLH?>JjdS#1IoP7e3q@A-SXUz#T<)}PABp?D>xKN z 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 diff --git a/test-javaland/CODE_OF_CONDUCT.md b/test-javaland/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..5b627cf --- /dev/null +++ b/test-javaland/CODE_OF_CONDUCT.md @@ -0,0 +1,4 @@ +## Code of Conduct +This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct). +For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact +opensource-codeofconduct@amazon.com with any additional questions or comments. diff --git a/test-javaland/CONTRIBUTING.md b/test-javaland/CONTRIBUTING.md new file mode 100644 index 0000000..4b4c981 --- /dev/null +++ b/test-javaland/CONTRIBUTING.md @@ -0,0 +1,61 @@ +# Contributing Guidelines + +Thank you for your interest in contributing to our project. Whether it's a bug report, new feature, correction, or additional +documentation, we greatly value feedback and contributions from our community. + +Please read through this document before submitting any issues or pull requests to ensure we have all the necessary +information to effectively respond to your bug report or contribution. + + +## Reporting Bugs/Feature Requests + +We welcome you to use the GitHub issue tracker to report bugs or suggest features. + +When filing an issue, please check [existing open](https://github.com/alexa/skill-sample-java-premium-hello-world/issues), or [recently closed](https://github.com/alexa/skill-sample-java-premium-hello-world/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aclosed%20), issues to make sure somebody else hasn't already +reported the issue. Please try to include as much information as you can. Details like these are incredibly useful: + +* A reproducible test case or series of steps +* The version of our code being used +* Any modifications you've made relevant to the bug +* Anything unusual about your environment or deployment + + +## Contributing via Pull Requests +Contributions via pull requests are much appreciated. Before sending us a pull request, please ensure that: + +1. You are working against the latest source on the *master* branch. +2. You check existing open, and recently merged, pull requests to make sure someone else hasn't addressed the problem already. +3. You open an issue to discuss any significant work - we would hate for your time to be wasted. + +To send us a pull request, please: + +1. Fork the repository. +2. Modify the source; please focus on the specific change you are contributing. If you also reformat all the code, it will be hard for us to focus on your change. +3. Ensure local tests pass. +4. Commit to your fork using clear commit messages. +5. Send us a pull request, answering any default questions in the pull request interface. +6. Pay attention to any automated CI failures reported in the pull request, and stay involved in the conversation. + +GitHub provides additional document on [forking a repository](https://help.github.com/articles/fork-a-repo/) and +[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). + + +## Finding contributions to work on +Looking at the existing issues is a great way to find something to contribute on. As our projects, by default, use the default GitHub issue labels (enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any ['help wanted'](https://github.com/alexa/skill-sample-java-premium-hello-world/labels/help%20wanted) issues is a great place to start. + + +## Code of Conduct +This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct). +For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact +opensource-codeofconduct@amazon.com with any additional questions or comments. + + +## Security issue notifications +If you discover a potential security issue in this project we ask that you notify AWS/Amazon Security via our [vulnerability reporting page](http://aws.amazon.com/security/vulnerability-reporting/). Please do **not** create a public github issue. + + +## Licensing + +See the [LICENSE](https://github.com/alexa/skill-sample-java-premium-hello-world/blob/master/LICENSE) file for our project's licensing. We will ask you to confirm the licensing of your contribution. + +We may ask you to sign a [Contributor License Agreement (CLA)](http://en.wikipedia.org/wiki/Contributor_License_Agreement) for larger changes. diff --git a/test-javaland/LICENSE b/test-javaland/LICENSE new file mode 100644 index 0000000..44b3db7 --- /dev/null +++ b/test-javaland/LICENSE @@ -0,0 +1,96 @@ +Amazon Software License 1.0 + +This Amazon Software License ("License") governs your use, reproduction, and +distribution of the accompanying software as specified below. + +1. Definitions + + "Licensor" means any person or entity that distributes its Work. + + "Software" means the original work of authorship made available under this + License. + + "Work" means the Software and any additions to or derivative works of the + Software that are made available under this License. + + The terms "reproduce," "reproduction," "derivative works," and + "distribution" have the meaning as provided under U.S. copyright law; + provided, however, that for the purposes of this License, derivative works + shall not include works that remain separable from, or merely link (or bind + by name) to the interfaces of, the Work. + + Works, including the Software, are "made available" under this License by + including in or with the Work either (a) a copyright notice referencing the + applicability of this License to the Work, or (b) a copy of this License. + +2. License Grants + + 2.1 Copyright Grant. Subject to the terms and conditions of this License, + each Licensor grants to you a perpetual, worldwide, non-exclusive, + royalty-free, copyright license to reproduce, prepare derivative works of, + publicly display, publicly perform, sublicense and distribute its Work and + any resulting derivative works in any form. + + 2.2 Patent Grant. Subject to the terms and conditions of this License, each + Licensor grants to you a perpetual, worldwide, non-exclusive, royalty-free + patent license to make, have made, use, sell, offer for sale, import, and + otherwise transfer its Work, in whole or in part. The foregoing license + applies only to the patent claims licensable by Licensor that would be + infringed by Licensor's Work (or portion thereof) individually and + excluding any combinations with any other materials or technology. + +3. Limitations + + 3.1 Redistribution. You may reproduce or distribute the Work only if + (a) you do so under this License, (b) you include a complete copy of this + License with your distribution, and (c) you retain without modification + any copyright, patent, trademark, or attribution notices that are present + in the Work. + + 3.2 Derivative Works. You may specify that additional or different terms + apply to the use, reproduction, and distribution of your derivative works + of the Work ("Your Terms") only if (a) Your Terms provide that the use + limitation in Section 3.3 applies to your derivative works, and (b) you + identify the specific derivative works that are subject to Your Terms. + Notwithstanding Your Terms, this License (including the redistribution + requirements in Section 3.1) will continue to apply to the Work itself. + + 3.3 Use Limitation. The Work and any derivative works thereof only may be + used or intended for use with the web services, computing platforms or + applications provided by Amazon.com, Inc. or its affiliates, including + Amazon Web Services, Inc. + + 3.4 Patent Claims. If you bring or threaten to bring a patent claim against + any Licensor (including any claim, cross-claim or counterclaim in a + lawsuit) to enforce any patents that you allege are infringed by any Work, + then your rights under this License from such Licensor (including the + grants in Sections 2.1 and 2.2) will terminate immediately. + + 3.5 Trademarks. This License does not grant any rights to use any + Licensor's or its affiliates' names, logos, or trademarks, except as + necessary to reproduce the notices described in this License. + + 3.6 Termination. If you violate any term of this License, then your rights + under this License (including the grants in Sections 2.1 and 2.2) will + terminate immediately. + +4. Disclaimer of Warranty. + + THE WORK IS PROVIDED "AS IS" WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + EITHER EXPRESS OR IMPLIED, INCLUDING WARRANTIES OR CONDITIONS OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE OR + NON-INFRINGEMENT. YOU BEAR THE RISK OF UNDERTAKING ANY ACTIVITIES UNDER + THIS LICENSE. SOME STATES' CONSUMER LAWS DO NOT ALLOW EXCLUSION OF AN + IMPLIED WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO YOU. + +5. Limitation of Liability. + + EXCEPT AS PROHIBITED BY APPLICABLE LAW, IN NO EVENT AND UNDER NO LEGAL + THEORY, WHETHER IN TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE + SHALL ANY LICENSOR BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY DIRECT, + INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR + RELATED TO THIS LICENSE, THE USE OR INABILITY TO USE THE WORK (INCLUDING + BUT NOT LIMITED TO LOSS OF GOODWILL, BUSINESS INTERRUPTION, LOST PROFITS + OR DATA, COMPUTER FAILURE OR MALFUNCTION, OR ANY OTHER COMM ERCIAL DAMAGES + OR LOSSES), EVEN IF THE LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF + SUCH DAMAGES. diff --git a/test-javaland/NOTICE b/test-javaland/NOTICE new file mode 100644 index 0000000..c257be9 --- /dev/null +++ b/test-javaland/NOTICE @@ -0,0 +1,2 @@ +Skill Sample Java Premium Hello World +Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. diff --git a/test-javaland/README.md b/test-javaland/README.md new file mode 100755 index 0000000..3ee3d36 --- /dev/null +++ b/test-javaland/README.md @@ -0,0 +1,34 @@ +# Build An Alexa Skill with In-Skill Purchases - Premium Hello World + + +Adding premium content to your skill is a way for you to monetize your skill. This Alexa sample skill is a template for a basic ISP skill. It takes the hello world skill and adds greetings in a variety of languages as premium content. This premium content is accessed through a one-time purchase of the "Premium Greeting Pack". This guide walks through the setup of this skill, including the creation of the in-skill products. + +## License + +This library is licensed under the Amazon Software License. + +## Skill Architecture +Each skill consists of two basic parts, a front end and a back end. +1. The front end is the voice interface, or VUI. The voice interface is configured through the voice interaction model. +2. The back end is where the logic of your skill resides. + +## Skill Setup (AWS Hosted) +In this sample skill, we will be deploying the skill to [Lambda](http://aws.amazon.com/lambda) function using [Amazon Web Services](http://aws.amazon.com) + +To **Get Started** using the Alexa Developer Console, click the button below: + +[![Get Started](./getting-started.png)](./instructions/1-setup-vui-aws-hosted.md) + +## Additional Resources + +### Community +* [Amazon Developer Forums](https://forums.developer.amazon.com/spaces/165/index.html) - Join the conversation! +* [Hackster.io](https://www.hackster.io/amazon-alexa) - See what others are building with Alexa. + +### Tutorials & Guides +* [Voice Design Guide](https://developer.amazon.com/designing-for-voice/) - A great resource for learning conversational and voice user interface design. +* [Codecademy: Learn Alexa](https://www.codecademy.com/learn/learn-alexa) - Learn how to build an Alexa Skill from within your browser with this beginner friendly tutorial on Codecademy! + +### Documentation +* [Official Alexa Skills Kit SDK for Java](https://github.com/alexa/alexa-skills-kit-sdk-for-java) - The Official Java SDK Documentation +* [Official Alexa Skills Kit Documentation](https://developer.amazon.com/docs/ask-overviews/build-skills-with-the-alexa-skills-kit.html) - Official Alexa Skills Kit Documentation diff --git a/test-javaland/ask-resources.json b/test-javaland/ask-resources.json new file mode 100644 index 0000000..d08df24 --- /dev/null +++ b/test-javaland/ask-resources.json @@ -0,0 +1,23 @@ +{ + "askcliResourcesVersion": "2020-03-31", + "profiles": { + "default": { + "skillMetadata": { + "src": "./skill-package" + }, + "code": { + "default": { + "src": "./lambda" + } + }, + "skillInfrastructure": { + "userConfig": { + "runtime": "java8", + "handler": "com.amazon.ask.helloworld.HelloWorldStreamHandler", + "awsRegion": "eu-west-1" + }, + "type": "@ask-cli/lambda-deployer" + } + } + } +} \ No newline at end of file diff --git a/test-javaland/getting-started.png b/test-javaland/getting-started.png new file mode 100755 index 0000000000000000000000000000000000000000..ee1a3fa40c1377bfa09f016a2ab06c2b6d9d5de3 GIT binary patch literal 3595 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 H=@RunD}Tg> literal 0 HcmV?d00001 diff --git a/test-javaland/instructions/1-setup-vui-aws-hosted.md b/test-javaland/instructions/1-setup-vui-aws-hosted.md new file mode 100755 index 0000000..59b8908 --- /dev/null +++ b/test-javaland/instructions/1-setup-vui-aws-hosted.md @@ -0,0 +1,35 @@ +# Build An Alexa Skill with In-Skill Purchases - Premium Hello World + + + +1. **Go to the [Amazon Developer Portal](https://developer.amazon.com/alexa/console/ask). In the top-right corner of the screen, click the "Sign In" button.** +(If you don't already have an account, you will be able to create a new one for free.) + +2. Once you have signed in, move your mouse over the **Your Alexa Consoles** text at the top of the screen and Select the **Skills** Link. + +3. From the **Alexa Skills Console** select the **Create Skill** button near the top-right of the list of your Alexa Skills. + +4. Give your new skill a **Name**. This is the name that will be shown in the Alexa Skills Store, and the name your users will refer to. Also change the locale if so desired. + +5. Select the **Custom** model button to add it to your skill, and select the **Create Skill** button at the top right. + +6. **Build the Interaction Model for your skill** + 1. On the left hand navigation panel, select the **JSON Editor** tab under **Interaction Model**. In the textfield provided, replace any existing code with the code provided in the [Interaction Model](../../skill-sample-java-premium-hello-world/models) (make sure to pick the model that matches your skill's language). Click **Save Model**. + 2. If you want to change the skill invocation name, select the **Invocation** tab. Enter a **Skill Invocation Name**. This is the name that your users will need to say to start your skill. + 3. Click "Build Model". + + **Note:** You should notice that **Intents** and **Slot Types** will auto populate based on the JSON Interaction Model that you have now applied to your skill. Feel free to explore the changes here, to learn about **Intents**, **Slots**, and **Utterances** open our [technical documentation in a new tab](https://developer.amazon.com/docs/custom-skills/create-intents-utterances-and-slots.html?&sc_category=Owned&sc_channel=RD&sc_campaign=Evangelism2018&sc_publisher=github&sc_content=Survey&sc_detail=fact-nodejs-V2_GUI-1&sc_funnel=Convert&sc_country=WW&sc_medium=Owned_RD_Evangelism2018_github_Survey_fact-nodejs-V2_GUI-1_Convert_WW_beginnersdevs&sc_segment=beginnersdevs). + +7. **Optional:** Select an intent by expanding the **Intents** from the left side navigation panel. Add some more sample utterances for your newly generated intents. Think of all the different ways that a user could request to make a specific intent happen. A few examples are provided. Be sure to click **Save Model** and **Build Model** after you're done making changes here. + +8. If your interaction model builds successfully, proceed to the next step. If not, you should see an error. Try to resolve the errors. +In our next step of this guide, we will be creating our Lambda function in the AWS developer console, but keep this browser tab open, because we will be returning here again. + + + If you get an error from your interaction model, check through this list: + + * **Did you copy and paste the provided code correctly?** + * **Did you accidentally add any characters to the Interaction Model or Sample Utterances?** + +[![Next](./next.png)](2-create-aws-hosted-function.md) + diff --git a/test-javaland/instructions/2-create-aws-hosted-function.md b/test-javaland/instructions/2-create-aws-hosted-function.md new file mode 100755 index 0000000..470b589 --- /dev/null +++ b/test-javaland/instructions/2-create-aws-hosted-function.md @@ -0,0 +1,14 @@ +# Build An Alexa Skill with In-Skill Purchases - Premium Hello World + + +## Setting Up A Lambda Function Using Amazon Web Services + +In the [first step of this guide](1-setup-vui-aws-hosted.md), we built the Voice User Interface (VUI) for our Alexa skill. On this page, we will be creating an AWS Lambda function using [Amazon Web Services](http://aws.amazon.com). You can [read more about what a Lambda function is](http://aws.amazon.com/lambda), but for the purposes of this guide, what you need to know is that AWS Lambda is where our code lives. When a user asks Alexa to use our skill, it is our AWS Lambda function that interprets the appropriate interaction, and provides the conversation back to the user. + +Refer to [Hosting a Custom Skill as an AWS Lambda Function](https://developer.amazon.com/docs/custom-skills/host-a-custom-skill-as-an-aws-lambda-function.html) reference for a walkthrough on creating a AWS Lambda function with the correct role for your skill. When creating the function, select the “Author from scratch” option, and select the Java 8 runtime. + +To build the sample, open a terminal and go to the directory containing pom.xml, and run 'mvn org.apache.maven.plugins:maven-assembly-plugin:2.6:assembly -DdescriptorId=jar-with-dependencies package'. This will generate a zip file named "premium-hello-world-1.0-jar-with-dependencies.jar" in the target directory. + +Once you've created your AWS Lambda function and configured “Alexa Skills Kit” as a trigger, upload the JAR file produced from above and set the handler to the fully qualified class name of your handler function. Finally, copy the ARN for your AWS Lambda function because you’ll need it when configuring your skill in the [Amazon Developer Portal](https://developer.amazon.com/alexa/console/ask). + +[![Next](./next.png)](./3-create-isp.md) \ No newline at end of file diff --git a/test-javaland/instructions/3-create-isp.md b/test-javaland/instructions/3-create-isp.md new file mode 100755 index 0000000..d2fec0d --- /dev/null +++ b/test-javaland/instructions/3-create-isp.md @@ -0,0 +1,85 @@ +# Build An Alexa Skill with In-Skill Purchases - Premium Hello World + + +# Create In-Skill Products + +On [page #1](./1-setup-vui-aws-hosted.md) of this guide, we created a voice user interface for the intents and utterances we expect from our users. On [page #2](./2-create-aws-hosted-function.md), we created the AWS Hosted Lambda function that contains all of our logic for the skill. Now we will create the in-skill products that customers can purchase. + +This sample implements a "One-Time Purchase" product called "Greeting Pack", which provides greetings in a variety of languages as premium content, and a monthly subscription called "Premium Subscription", which greets the customer using a variety of voices using Amazon Polly. + + +1. Create a "One-Time Purchase" +2. Create a "Subscription" + + +## Create a "One-Time Purchase" +1. Navigate to the Monetization Tool by clicking on the **In-Skill Products** section while on the **Build** tab of the Developer Console. + > If you cannot see the correct section in the left nav, click on the **Permissions** section, then click on **In-Skill Products**. +1. Click **Create in-skill product**. +1. Enter a Reference name. This is code-friendly name you want to assign to your in-skill product. For this sample, the code is expecting the reference name `Greetings_Pack`. + > Be sure to enter all the reference names exactly as provided. They are used in the sample code and it won't work properly if the name does not match exactly. +1. Choose **One-Time Purchase**. +1. Click **Create in-skill product**. +1. On the **Distribution** sub-section, enter the following details for the subscription: + + Field|Description|Value for Sample + -----|-----------|------------------ + **Display Name**|The display name of the product. Customers will see and hear this. | Greetings Pack + **One sentence description**| Summary description of the product. Customers will hear this. | The Greetings Pack says hello in a variety of languages like French, Spanish, Hindi, and more. + **Detailed Description**|A full description explaining the product's functionality and any prerequisites to using it. Customers will see this.| The Greetings Pack says hello in a variety of languages like French, Spanish, Hindi, and more. + **Example Phrases**| Example phrases customers can use to access your in-skill products. You should populate all three examples. | say hello in other languages, give me the special greeting, get greetings pack + **Small Icon**| Small icon used with product when displayed in the skill store or Alexa app. You can use this placeholder icon if you don't have an image you would like to use. | https://s3.amazonaws.com/ask-samples-resources/icons/moneyicon_108.png + **Large Icon**| Large icon used with product when displayed in the skill store or Alexa app. You can use this placeholder icon if you don't have an image you would like to use. | https://s3.amazonaws.com/ask-samples-resources/icons/moneyicon_512.png + **Keywords** | Keywords that will be used with search. | greetings + **Purchase prompt description**| The description of the product a customer hears when making a purchase or when they cancel a subscription.| The Greetings Pack says hello in a variety of languages like French, Spanish, Hindi, and more. + **Purchase confirmation description**|A description of the product that displays on the skill card in the Alexa app. Customers will see this. | You now have the Greetings Pack, which says hello in a variety of languages like French, Spanish, Hindi, and more. + **Privacy Policy URL**|A URL to the privacy policy for this locale. For this sample, we'll use a placeholder value. |https://localhost/privacy.html + + > Need help creating icons for your ISP or skill? Check out the [Alexa Skill Icon Builder](https://developer.amazon.com/docs/tools/icon-builder.html) + +1. Click **Save and continue**. +1. On the **Pricing** sub-section, the default values (amazon.com, $0.99 USD, releasing "today") are fine for the sample, however you can change the values if you like. +1. Set the **Tax Category** to 'Information Services'. This is suitable for this sample, however you should consult your tax professional for guidance on what to choose for this value. The available options are listed [here](https://developer.amazon.com/docs/in-skill-purchase/3-create-isp-dev-console.html#tax-category) +1. Click **Save and continue**. +1. Normally you would provide testing instructions to help the certification team find and test your in-skill product. (These testing instructions are specific to this in-skill product, and are in addition to the skill testing instructions you will provide on the **Certification** tab.) We're going to leave them blank for now. +1. Click **Save and finish**. +1. If you've provided all the necessary information, you will be able to click **Link to skill** which will link this in-skill product with your skill. If that's not an option, click **Continue** and then go back and fill in any missing information. +1. Congrats! You have added a "One-time Purchase" product to your skill. Now you are ready to test! + +> Before leaving the In-skill Products page, take a note of the links which say **Reset test purchases**. During testing if you want to 'un-buy' one of your products so you can re-buy it, click on these links. + +## Create a "Subscription" +1. Navigate to the Monetization Tool by clicking on the **In-Skill Products** section while on the **Build** tab of the Developer Console. + > If you cannot see the correct section in the left nav, click on the **Permissions** section, then click on **In-Skill Products**. +1. Click **Create in-skill product**. +1. Enter a Reference name. This is code-friendly name you want to assign to your in-skill product. For this sample, the code is expecting the reference name `Premium_Subscription`. + > Be sure to enter all the reference names exactly as provided. They are used in the sample code and it won't work properly if the name does not match exactly. +1. Choose **Subscription**. +1. Click **Create in-skill product**. +1. On the **Distribution** sub-section, enter the following details for the subscription: + + Field|Description|Value for Sample + -----|-----------|------------------ + **Display Name**|The display name of the product. Customers will see and hear this. | Premium Subscription + **One sentence description**| Summary description of the product. Customers will hear this. | The Premium Subscription greets the user in a variety of voices. + **Detailed Description**|A full description explaining the product's functionality and any prerequisites to using it. Customers will see this.| The Premium Subscription Pack unlocks the magic of Polly Voice, and greets you in a variety of languages, like hindi, spanish, italian, and more. + **Example Phrases**| Example phrases customers can use to access your in-skill products. You should populate all three examples. | Surprise me, switch personality + **Small Icon**| Small icon used with product when displayed in the skill store or Alexa app. You can use this placeholder icon if you don't have an image you would like to use. | https://s3.amazonaws.com/ask-samples-resources/icons/moneyicon_108.png + **Large Icon**| Large icon used with product when displayed in the skill store or Alexa app. You can use this placeholder icon if you don't have an image you would like to use. | https://s3.amazonaws.com/ask-samples-resources/icons/moneyicon_512.png + **Keywords** | Keywords that will be used with search. | personality,polly,voice + **Purchase prompt description**| The description of the product a customer hears when making a purchase or when they cancel a subscription.| The Premium Subscription Pack unlocks the magic of Polly Voice, and greets you in a variety of languages using Amazon Polly. + **Purchase confirmation description**|A description of the product that displays on the skill card in the Alexa app. Customers will see this. | You now have the Premium Subscription, which will greet you in multiple languages in a variety of voices using Amazon Polly. + **Privacy Policy URL**|A URL to the privacy policy for this locale. For this sample, we'll use a placeholder value. |https://localhost/privacy.html + + > Need help creating icons for your ISP or skill? Check out the [Alexa Skill Icon Builder](https://developer.amazon.com/docs/tools/icon-builder.html) + +1. Click **Save and continue**. +1. On the **Pricing** sub-section, the default values (amazon.com, $2.99 USD, Monthly billing, 7 day trial, releasing "today") are fine for the sample, however you can change the values if you like. +1. Set the **Tax Category** to 'Information Services'. This is suitable for this sample, however you should consult your tax professional for guidance on what to choose for this value. The available options are listed [here](https://developer.amazon.com/docs/in-skill-purchase/3-create-isp-dev-console.html#tax-category) +1. Click **Save and continue**. +1. Normally you would provide testing instructions to help the certification team find and test your in-skill product. (These testing instructions are specific to this in-skill product, and are in addition to the skill testing instructions you will provide on the **Certification** tab.) We're going to leave them blank for now. +1. Click **Save and finish**. +1. If you've provided all the necessary information, you will be able to click **Link to skill** which will link this in-skill product with your skill. If that's not an option, click **Continue** and then go back and fill in any missing information. +1. Congrats! You have added a "One-time Purchase" product to your skill. Now you are ready to test! + +[![Next](https://m.media-amazon.com/images/G/01/mobile-apps/dex/alexa/alexa-skills-kit/tutorials/general/buttons/button_next_testing._TTH_.png)](4-testing.md) diff --git a/test-javaland/instructions/4-testing.md b/test-javaland/instructions/4-testing.md new file mode 100755 index 0000000..48c04f5 --- /dev/null +++ b/test-javaland/instructions/4-testing.md @@ -0,0 +1,48 @@ +# Build An Alexa Skill with In-Skill Purchases - Premium Hello World + + +## Testing Your Alexa Skill + +So far, we have created a Voice User Interface, created the in-skill products and deployed code to a backend service linked to the skill. Your skill is now ready to test. + +1. **Go back to the [Amazon Developer Portal](https://developer.amazon.com/alexa/console/ask) and select your skill from the list.** You may still have a browser tab open if you started at the beginning of this tutorial. + +2. Access the **Alexa Simulator**, by selecting the **Test** link from the top navigation menu. + +3. Enable Testing by selecting **Development** from the drop down found directly below the top navigation menu. Once enabled, the label should read **Skill testing is enabled in:** `Development`. + +4. To validate that your skill is working as expected, invoke your skill from the **Alexa Simulator**. You can either type or click and hold the mic from the input box to use your voice. + 1. **Type** "Open" followed by the invocation name you gave your skill in [Step 1](./1-setup-vui-aws-hosted.md). For example, "Open Premium Hello World". + 2. **Use your voice** by clicking and holding the mic on the side panel and saying "Open" followed by the invocation name you gave your skill. + 3. **If you've forgotten the invocation name** for your skill, revisit the **Build** panel on the top navigation menu and select **Invocation** from the sidebar to review it. +5. Test phrases like: + - Alexa, open premium hello world + - give me a premium greeting + - what can I buy + - buy premium greeting + - what have I bought + > Note: if you have enabled a voice code to prevent accidental purchases via voice, you will be required to provide it before you can make an in-skill purchase. If you type that code, be sure to spell the numbers out, e.g. "one two three four" instead of "1234", otherwise the simulator will not recognize your code. + +6. Ensure your skill works the way that you designed it to. + - After you interact with the Alexa Simulator, you should see the Skill I/O **JSON Input** and **JSON Output** boxes get populated with JSON data. You can also view the **Device Log** to trace your steps. + - If it's not working as expected, you can dig into the JSON to see exactly what Alexa is sending and receiving from the endpoint. If something is broken, AWS Lambda offers an additional testing tool to help you troubleshoot your skill. + + + +> **Note: The developer account associated with the skill is never charged for in-skill products.** For more details about testing skills with in-skill products, please refer to the [In-Skill Purchase Testing Guide](https://developer.amazon.com/docs/in-skill-purchase/isp-test-guide.html) + +> If you need to reset a test purchase, you can return to the In-Skill Products page in the Alexa Developer Console. (That's on the **Build** tab, and click on **In-Skill Products** in the left nav. If you don't see it there, click on the In-Skill Products item in the Skill Builder Checklist.) Then click on the **Reset test purchases** link to reset your purchases for that product. This will work regardless of how you setup the in-skill product (console or CLI). + +> **Pro Tip**: type or say `exit` in the simulator to reset the session before each test pass. The simulator holds a session open longer than on a device to assist in your testing and it's easy to forget a session is still open. + + +## Other testing methods to consider:** + * Testing on your Alexa enabled devices and applications - any devices registered using the same account as your Alexa developer account will have your skill enabled on them when testing is enabled in development mode. You should always test your skill on an actual device rather than relying solely on the simulator. Keep in mind that in-skill products may not be purchased on all devices, but already purchased products will be available for use on all devices. + * [Echosim.io](https://echosim.io) - a browser-based Alexa skill testing tool that makes it easy to test your skills without carrying a physical device everywhere you go. + * [Unit Testing with Alexa](https://alexa.design/postman-guide) - a modern approach to unit testing your Alexa skills with [Postman](http://getpostman.com) and [Amazon API Gateway](http://aws.amazon.com/apigateway). + +> Note: While in-skill products are only currently available in the English (US) locale, any developer account (regardless of home locale), can be used to create skills with in-skill products. When testing, you must use an account which defaults to the amazon.com marketplace. (You may recall see that marketplace mentioned on the in-skill products' pricing page.) If your developer account does not default to that marketplace, or your billing address is outside the United States, then you will need to create a new account for testing purposes. Create this account using https://www.amazon.com and set an address for somewhere in the United States. + +If your sample skill is working properly, you can now **customize** your skill. + +[![Next](https://m.media-amazon.com/images/G/01/mobile-apps/dex/alexa/alexa-skills-kit/tutorials/general/buttons/button_next_customization._TTH_.png)](5-customization.md) diff --git a/test-javaland/instructions/5-customization.md b/test-javaland/instructions/5-customization.md new file mode 100755 index 0000000..4527809 --- /dev/null +++ b/test-javaland/instructions/5-customization.md @@ -0,0 +1,39 @@ +# Build An Alexa Skill with In-Skill Purchases - Premium Hello World + + +## Customization / Next Steps + +At this point, you should have a working copy of your skill. This is a clone of a sample skill, so if you want to publish the skill, you will first need to customize it so it offers content/functionality not currently available via the Alexa Skill Store. + +### Update Premium Greetings + +You can expand the premium greeting pack with greetings in more languages by updating the object `premium_greetings` inside index.js. + + ``` + const premium_greetings = [ + { language: "hindi", greeting: "Namaste" }, + { language: "french", greeting: "Bonjour" }, + { language: "spanish", greeting: "Hola" }, + { language: "japanese", greeting: "Konichiwa" }, + { language: "italian", greeting: "Ciao" } + ]; +``` +## Update/Create In-Skill Products + +In the developer console, switch to the **In-Skill Products** sub-section of the **Build** tab. Unlink/delete/modify products you don't intend to keep in your skill. Repeat the process we used to add new in-skill products which match your categories. + +### In-Skill Product Testing Instructions and Other Placeholders + +You may recall we didn't provide testing instructions for our sample in-skill products. When you are updating your in-skill products, be sure to include those testing instructions. It does not have to be complex. At a minimum, provide a simple scenario for how to invoke your skill and request your in-skill product. + +Also update the privacy policy, icons and other placeholder values used as part of the sample. As previously mentioned, your skill won't pass certification with placeholder values. + +## Test, Test, Test + +After making the above changes, be sure to test thoroughly. After you're done testing, have a friend or colleague test as well. + +## Publication + +Once you've customized your skill, proceed to the certification / publication step. + +[![Next](./next.png)](6-submit-for-certification.md) diff --git a/test-javaland/instructions/6-submit-for-certification.md b/test-javaland/instructions/6-submit-for-certification.md new file mode 100755 index 0000000..79ec1f9 --- /dev/null +++ b/test-javaland/instructions/6-submit-for-certification.md @@ -0,0 +1,114 @@ +# Build An Alexa Skill with In-Skill Purchases - Premium Hello World + + + +## Get Your Skill Certified and Published + +We are almost done! The last step is to add the metadata that your skill will use in the [Skill Store](http://amazon.com/skills). This page will walk you through the remaining steps to launch your skill! + +1. Select the **Distribution** link from the top navigation menu. + +2. Fill out the form fields per the guidance on the screen. Hover over the question mark icons for details regarding each respective field. **Fields marked with an Asterisk, are required!** + * Take the time to get these right so that your skill will pass certification! + +3. **Write your skill descriptions.** + + * **Spend some time coming up with an enticing, succinct description.** This is one of the few places you have an opportunity to attract new users, so make the most of it! These descriptions show up in the list of skills available in the [Alexa app](http://alexa.amazon.com/spa/index.html#skills) and the [skills store](http://www.amazon.com/skills). + +4. For your example phrases, **come up with the three most exciting ways** a user can talk to your skill. + + * Make sure that each of your example phrases are a **perfect match with one of your Sample Utterances.** Incorrect example phrases are one of the most common reasons that skills fail certification, so we have provided a short list of things to consider as you write your example phrases: + + | Common Failure Points for Example Phrases | + | ----------------------------------------- | + | Example phrases **must** adhere to the [supported phrases](https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/supported-phrases-to-begin-a-conversation?&sc_category=Owned&sc_channel=RD&sc_campaign=Evangelism2018&sc_publisher=github&sc_content=Survey&sc_detail=fact-nodejs-V2_GUI-6&sc_funnel=Convert&sc_country=WW&sc_medium=Owned_RD_Evangelism2018_github_Survey_fact-nodejs-V2_GUI-6_Convert_WW_beginnersdevs&sc_segment=beginnersdevs). | + | Example phrases **must** be based on sample utterances specified in your Intent Schema. | + | Your first example phrase **must** include a wake word and your invocation name. | + | Example phrases **must** provide a contextual response. | + + * **Choose three example phrases that are likely to be the most common ways that users will attempt to interact with your skill.** Make sure that each of them works well, and provides an excellent user experience. + +5. **Create your skill's icons.** You need two sizes of your icon: 108x108px and 512x512px. When you upload an image, it will be automatically fit to the required dimensions. + + * **Make sure you have the rights to the icons you create.** Please don't violate any trademarks or copyrights. + * **If you don't have software to make icons, try one of these free options:** + + * [Alexa Skill Icon Builder](https://developer.amazon.com/docs/tools/icon-builder.html) (a link to this is included in the console) + + * [GIMP](https://www.gimp.org/) (Windows/Mac/Linux) + * [Canva](https://www.canva.com/) (Web) + * [Paint.NET](http://www.getpaint.net/index.html) (Windows) + * [Inkscape](http://inkscape.org) (Windows/Mac/Linux) + * [Iconion](http://iconion.com/) (Windows/Mac) + + * To make it easier to get started, we've created blank versions of these icons in both sizes for many formats: + + * [PSD](https://m.media-amazon.com/images/G/01/mobile-apps/dex/alexa/alexa-skills-kit/tutorials/general/icon-templates/psd._TTH_.zip) + * [PNG](https://m.media-amazon.com/images/G/01/mobile-apps/dex/alexa/alexa-skills-kit/tutorials/general/icon-templates/png._TTH_.zip) + * [GIF](https://m.media-amazon.com/images/G/01/mobile-apps/dex/alexa/alexa-skills-kit/tutorials/general/icon-templates/gif._TTH_.zip) + * [PDF](https://m.media-amazon.com/images/G/01/mobile-apps/dex/alexa/alexa-skills-kit/tutorials/general/icon-templates/pdf._TTH_.zip) + * [JPG](https://m.media-amazon.com/images/G/01/mobile-apps/dex/alexa/alexa-skills-kit/tutorials/general/icon-templates/jpg._TTH_.zip) + * [SVG](https://m.media-amazon.com/images/G/01/mobile-apps/dex/alexa/alexa-skills-kit/tutorials/general/icon-templates/svg._TTH_.zip) + * [PDN](https://m.media-amazon.com/images/G/01/mobile-apps/dex/alexa/alexa-skills-kit/tutorials/general/icon-templates/pdn._TTH_.zip) - for [Paint.NET](http://www.getpaint.net/index.html) + * [XCF](https://m.media-amazon.com/images/G/01/mobile-apps/dex/alexa/alexa-skills-kit/tutorials/general/icon-templates/xcf._TTH_.zip) - for [GIMP](https://www.gimp.org/) + +6. Choose the most appropriate category for your skill. + +7. **Provide a comprehensive list of keywords for users that are searching for new skills.** This is an optional field, and searching the [Alexa app](http://alexa.amazon.com) or the [skill store](http://www.amazon.com/skills) will also find the words in your Skill Name and descriptions, so you don't need to overdo it. That being said, if there are words that you want users to find your skill with, you should include them here. Separate the keywords with commas. + +8. **Privacy Policy URL.** This is an optional field, and should not be required for this fact skill sample. You can leave it blank. + +9. **Terms of Use URL.** This is also optional, and you can leave it blank. + +10. When you're ready, click **Save and Continue** at the bottom of the screen to move onto **Privacy & Compliance** + +11. * **Does this skill allow users to make purchases or spend real money?** For this fact skill, the answer is no. For future skills, make sure you answer this appropriately. + + * **Does this Alexa skill collect users' personal information?** Again, for this fact skill, the answer is no. If you do collect information about a user, such as names, email addresses, phone numbers, and so forth, ensure that you answer Yes to this question. + * Answering "yes" to this question will also require you to provide a link to your Privacy Policy on the previous page. + + * **Is your skill directed to children under the age of 13?** Because you customized this skill with data you provided, it is possible that you created a skill that targets children under the age of 13. For this fact skill, the answer is **no** because it doesn't target a specific age group. + * Factors to consider in determining if this skill is directed to children under 13 include: + * Subject matter of the skill + * Presence of child-oriented activities and incentives + * Type of language used in the skill + * Music and other audio content in the skill + * How the skill is described and marketed + * Intended audience for the skill + + If you're not sure, please see the [FTC's COPPA Guidance and FAQ](https://www.ftc.gov/tips-advice/business-center/guidance/complying-coppa-frequently-asked-questions) for more information. + +12. **Export Compliance.** Be certain that you agree with all of the conditions. If you do, make sure to check this box, as Amazon requires this permission to distribute your skill around the globe. + +13. **Provide testing instructions.** Testing instructions give you an opportunity to explain your skill, and any special or possibly confusing features, to the certification team. A value is required in this box. + + * Since you are using our Sample, make sure to add a sentence to your Testing Instructions referencing the Sample you used. For example: + + ```text + This was built using the Fact Sample. + ``` + + This will let the testing team understand what you're providing them, and should decrease the testing time required. + + **Note:** More details on certification are [available here.](https://alexa.design/certification) + +1. Click the **Save and Continue** button at the bottom of the page to move on to **Availability**. + * You'll want to allow the Public to access the skill unless you are using [Alexa for Business](https://aws.amazon.com/a4b). + * Beta testing is a good idea for every skill, however since this is from a template and is very basic, we'll skip that for now. When you make your next skill, don't skip this step. Seriously. You won't regret it. + * It is recommended to allow your skill to be available in all countries and regions where Amazon distributes skills, unless you are using facts which aren't applicable to a given area. Reasons to restrict distribution include not having intellectual property rights to distribute to that area and the content being illegal, offensive or otherwise prohibited in that area. + +1. If you feel that your skill is ready for certification, click the **Save and Continue** button at the bottom of the page and you'll be taken to the certification tab. + +1. The **Validation** page will tell you if you have missed any steps along the way which will prevent your skill from being submitted. You shouldn't see anything on this page, but if you do, go back and fix the issues. + +1. Click on the **Functional test** section and click the **Run** button to run functional tests against your skill. You shouldn't see any errors on this page, but if you do, go back and fix the issues. + +1. Click on **Submission**, and the click **Submit for Review**. + +15. **You're done with your submission!** Here are a few things you might need to know: + + * **Certification can take several days to complete.** Please be patient. It takes time because we want to get it right. + + * **Did something go wrong?** Our team of evangelists run [online office hours every Tuesday from 1-2pm Pacific Time](https://alexa.design/officehours). They can help answer any questions you might have. + + * **Want the coolest t-shirt you've ever seen?** Every month, we create a brand-new Alexa Developer t-shirt or hoodie, and send them out to developers that published a skill that month. [You can get yours here if you live in the US](https://developer.amazon.com/alexa-skills-kit/alexa-developer-skill-promotion?&sc_category=Owned&sc_channel=RD&sc_campaign=Evangelism2018&sc_publisher=github&sc_content=Survey&sc_detail=fact-nodejs-V2_GUI-6&sc_funnel=Convert&sc_country=WW&sc_medium=Owned_RD_Evangelism2018_github_Survey_fact-nodejs-V2_GUI-6_Convert_WW_beginnersdevs&sc_segment=beginnersdevs), [here for the UK](https://developer.amazon.com/en-gb/alexa-skills-kit/alexa-developer-skill-promotion?&sc_category=Owned&sc_channel=RD&sc_campaign=Evangelism2018&sc_publisher=github&sc_content=Survey&sc_detail=fact-nodejs-V2_GUI-6&sc_funnel=Convert&sc_country=WW&sc_medium=Owned_RD_Evangelism2018_github_Survey_fact-nodejs-V2_GUI-6_Convert_WW_beginnersdevs&sc_segment=beginnersdevs), [here for Germany](https://developer.amazon.com/de-de/alexa-skills-kit/alexa-developer-skill-promotion?&sc_category=Owned&sc_channel=RD&sc_campaign=Evangelism2018&sc_publisher=github&sc_content=Survey&sc_detail=fact-nodejs-V2_GUI-6&sc_funnel=Convert&sc_country=WW&sc_medium=Owned_RD_Evangelism2018_github_Survey_fact-nodejs-V2_GUI-6_Convert_WW_beginnersdevs&sc_segment=beginnersdevs), [here for India](https://developer.amazon.com/alexa-skills-kit/alexa-developer-skill-promotion-india?&sc_category=Owned&sc_channel=RD&sc_campaign=Evangelism2018&sc_publisher=github&sc_content=Survey&sc_detail=fact-nodejs-V2_GUI-6&sc_funnel=Convert&sc_country=WW&sc_medium=Owned_RD_Evangelism2018_github_Survey_fact-nodejs-V2_GUI-6_Convert_WW_beginnersdevs&sc_segment=beginnersdevs), [here for Japan](https://developer.amazon.com/ja/alexa-skills-kit/alexa-developer-skill-promotion?&sc_category=Owned&sc_channel=RD&sc_campaign=Evangelism2018&sc_publisher=github&sc_content=Survey&sc_detail=fact-nodejs-V2_GUI-6&sc_funnel=Convert&sc_country=WW&sc_medium=Owned_RD_Evangelism2018_github_Survey_fact-nodejs-V2_GUI-6_Convert_WW_beginnersdevs&sc_segment=beginnersdevs), [here for France](https://developer.amazon.com/fr/alexa-skills-kit/alexa-developer-skill-promotion?&sc_category=Owned&sc_channel=RD&sc_campaign=Evangelism2018&sc_publisher=github&sc_content=Survey&sc_detail=fact-nodejs-V2_GUI-6&sc_funnel=Convert&sc_country=WW&sc_medium=Owned_RD_Evangelism2018_github_Survey_fact-nodejs-V2_GUI-6_Convert_WW_beginnersdevs&sc_segment=beginnersdevs), and [here for Australia](https://developer.amazon.com/alexa-skills-kit/anz/alexa-developer-skill-promotion). \ No newline at end of file diff --git a/test-javaland/instructions/next.png b/test-javaland/instructions/next.png new file mode 100755 index 0000000000000000000000000000000000000000..8fbebf79a9abe07456021c16f1ada6c9e62dab1f GIT binary patch literal 2291 zcmXw)c|26>AIHz&iV>qxLsZ73Xc}YB5*0?FC_@<$i6LV4C?reB7WbDJw+J_xK_)wi zk+m|GqAZQl6&hm9&z7}&^m^Stp6_#B@6Y>rUe9t~=OmnSI3){Jh5`T}YionUgZ%*5 z&PhpvHSzW62e6Z-*tpUGU~l|ZgQSj&h#=g?u(h||HU>e+BE|f02Km2{HGyGqopF^+ z1K6cJ8xU=0fCxvVd(-?W41Y2SP>@#J4|3=hw<1$+()|6dGJp~o&lIF`zbTFAwWT5% z{y{{*a2X~ICemAp6WNy$;zc6@mngrsbeZ3i`_sJxy+D-))HGG5f>>$`yLiz^{v?9)PsKILa6c4Q{Q>bdt$*DESP)!ys^vnm*!W)l$o^<=LQZZ zG#^KIxdLR!yX08rlS7ZnN@BU;?Yt+lvywCoETuFu z01djW$5+%8o-%Qz9W`~4GC>=D%;esEk*DX<6sYzoB;iHjVT%v7)0M{;1B`KNk4x7X zknicS7^#F8yC~fSigW2nEV{$EU-j`aj5;(vp#9vJ3h*IeGu`m4>+4?Bl*eV)*KQ7X zo8J)-(JA$~uV1w^aCu{3*)eA{+Ya$9ef|L56gsqFb=?4xyj_A@-B#XOY&Si_`o(U) zB;a|rLO#>r)%>R^oQPu6)V@Pe@tJaekRDzt@}hQ00zPqC{Cas9pTyZ&%@1i7L85%} z<70;WZgkqhc2=t+F3fnq{??ila;c59hil%vjp&+33pT-ZiTHwnzjIlljQjgE&qul) zt~$45wPEiPUDV`9_ImO^>0LYLW0kR~uJt*UuY(4eo@I`M<&H(HjlHV!Oywl60NxtM zKarS_^-`sEzjzZL_tMLA_!}#htt+Fyf=(m~sTHRUF(t!Hx3{DEpkxz4)Zs$! z?&S#;?q1M27Iw~>)Dm2Nft}wywqUCNFlD<`@^%*TZO|ZrP?asM0MypG(?9O24%E1s zNLIwlT-|@ohWb5y;~(U5A9ubBjx% z!=LOou!DJJ@ujI9ltvG@Z)P!bk2#;=RuL}lY&!|FF?STZan!PMNMuY?A)8r1Z**Ef zGl$#=!d@MHMR5#TkZ#IxB~-aNbggOZ;Mpc1+h*EF?G8G}bt)6DnjSEoSKI;aaq!2D zJxSL%+3Xbt`lsQtU&fG#Fd96Z6}cht2gU336>67nq;+INta-*67W-zl{rdRh2`(b| z;DKQCGM)RdS!mW9mp^x#^4{zC{LuO#-X|b*%DfSz*Z6<*L?Alf_ig*`$*rAeXe4%H zGtlU!i(eO?jfj>JMZ9r=mQU_X>=0e|>}0sSehYiP60O&Q_}B?gy8WpeXRQbEiQ|_{ zz;YONmxImX@NL-z{jX}AZq`1(XvIc}1kXQIh9A%dcL1RWG-iQ^J^$3hy+Zds=ZO2j z>f+0gr5;Z?56)vw*FE9Oy+Dr$>Nd4HD73e8fwres%!&`VoxuZ5EvKiVsl6+XzJtvz zr{m2mrnI-|w~*wg=gqZPX6sZ`H|B%dZE_xf@s7jAfny-bnoFos|re zNkFxJw#>H?(Pa`WJ9@O#6Hid$C7E@1U+h{Joc*DtKBc_nG;byH|Ji98QiQ`~=ENuGC)z+Ovi^=D&2|X9#j>ug$x}C4xJ3c!W=QLj4 zL{0TqWWw=cR>GnV1Q34fttCnlvwlcKkAj@6baSD>dpztO8KdVek2EkbkkO^YlxsIt z@GoRyDTRWrlr98e>T=YCn=e(LCEo6^BJT+8O%_qvq&v+5sfVqjRW zV~4(C^}it6S$rd(`?n0UR=@alyq0eS2`cK`qY literal 0 HcmV?d00001 diff --git a/test-javaland/lambda/pom.xml b/test-javaland/lambda/pom.xml new file mode 100644 index 0000000..67b0585 --- /dev/null +++ b/test-javaland/lambda/pom.xml @@ -0,0 +1,56 @@ + + 4.0.0 + alexa-skills-kit-samples + helloworld + jar + 1.0 + helloworld + http://developer.amazon.com/ask + + + The Apache License, Version 2.0 + http://www.apache.org/licenses/LICENSE-2.0.txt + + + + + Alexa Skills Kit + ask-sdk-java@amazon.com + Alexa + http://developer.amazon.com/ask + + + + scm:git:https://github.com/amzn/alexa-skills-kit-java.git + scm:git:https://github.com/amzn/alexa-skills-kit-java.git + https://github.com/amzn/alexa-skills-kit-java.git + + + + + com.amazon.alexa + ask-sdk + 2.20.2 + + + + + src + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.7.0 + + 1.8 + 1.8 + true + + + + + + + diff --git a/test-javaland/lambda/src/com/amazon/ask/helloworld/HelloWorldStreamHandler.java b/test-javaland/lambda/src/com/amazon/ask/helloworld/HelloWorldStreamHandler.java new file mode 100644 index 0000000..c340d2a --- /dev/null +++ b/test-javaland/lambda/src/com/amazon/ask/helloworld/HelloWorldStreamHandler.java @@ -0,0 +1,43 @@ +/* + Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file + except in compliance with the License. A copy of the License is located at + http://aws.amazon.com/apache2.0/ + or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for + the specific language governing permissions and limitations under the License. +*/ + +package com.amazon.ask.helloworld; + +import com.amazon.ask.Skill; +import com.amazon.ask.Skills; +import com.amazon.ask.SkillStreamHandler; +import com.amazon.ask.helloworld.handlers.CancelandStopIntentHandler; +import com.amazon.ask.helloworld.handlers.HelloWorldIntentHandler; +import com.amazon.ask.helloworld.handlers.HelpIntentHandler; +import com.amazon.ask.helloworld.handlers.SessionEndedRequestHandler; +import com.amazon.ask.helloworld.handlers.LaunchRequestHandler; +import com.amazon.ask.helloworld.handlers.FallbackIntentHandler; + +public class HelloWorldStreamHandler extends SkillStreamHandler { + + private static Skill getSkill() { + return Skills.standard() + .addRequestHandlers( + new CancelandStopIntentHandler(), + new HelloWorldIntentHandler(), + new HelpIntentHandler(), + new LaunchRequestHandler(), + new SessionEndedRequestHandler(), + new FallbackIntentHandler()) + // Add your skill id below + //.withSkillId("") + .build(); + } + + public HelloWorldStreamHandler() { + super(getSkill()); + } + +} diff --git a/test-javaland/lambda/src/com/amazon/ask/helloworld/handlers/CancelandStopIntentHandler.java b/test-javaland/lambda/src/com/amazon/ask/helloworld/handlers/CancelandStopIntentHandler.java new file mode 100644 index 0000000..039e9d0 --- /dev/null +++ b/test-javaland/lambda/src/com/amazon/ask/helloworld/handlers/CancelandStopIntentHandler.java @@ -0,0 +1,36 @@ +/* + Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file + except in compliance with the License. A copy of the License is located at + http://aws.amazon.com/apache2.0/ + or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for + the specific language governing permissions and limitations under the License. +*/ + + +package com.amazon.ask.helloworld.handlers; + +import com.amazon.ask.dispatcher.request.handler.HandlerInput; +import com.amazon.ask.dispatcher.request.handler.RequestHandler; +import com.amazon.ask.model.Response; + +import java.util.Optional; + +import static com.amazon.ask.request.Predicates.intentName; + +public class CancelandStopIntentHandler implements RequestHandler { + @Override + public boolean canHandle(HandlerInput input) { + return input.matches(intentName("AMAZON.StopIntent").or(intentName("AMAZON.CancelIntent"))); + } + + @Override + public Optional handle(HandlerInput input) { + String speechText = "Goodbye"; + return input.getResponseBuilder() + .withSpeech(speechText) + .withSimpleCard("HelloWorld", speechText) + .build(); + } +} diff --git a/test-javaland/lambda/src/com/amazon/ask/helloworld/handlers/FallbackIntentHandler.java b/test-javaland/lambda/src/com/amazon/ask/helloworld/handlers/FallbackIntentHandler.java new file mode 100644 index 0000000..363107b --- /dev/null +++ b/test-javaland/lambda/src/com/amazon/ask/helloworld/handlers/FallbackIntentHandler.java @@ -0,0 +1,31 @@ +package com.amazon.ask.helloworld.handlers; + +import com.amazon.ask.dispatcher.request.handler.HandlerInput; +import com.amazon.ask.dispatcher.request.handler.RequestHandler; +import com.amazon.ask.model.Response; + +import java.util.Optional; + +import static com.amazon.ask.request.Predicates.intentName; + +// 2018-July-09: AMAZON.FallackIntent is only currently available in en-US locale. +// This handler will not be triggered except in that locale, so it can be +// safely deployed for any locale. +public class FallbackIntentHandler implements RequestHandler { + + @Override + public boolean canHandle(HandlerInput input) { + return input.matches(intentName("AMAZON.FallbackIntent")); + } + + @Override + public Optional handle(HandlerInput input) { + String speechText = "Sorry, I don't know that. You can say try saying help!"; + return input.getResponseBuilder() + .withSpeech(speechText) + .withSimpleCard("HelloWorld", speechText) + .withReprompt(speechText) + .build(); + } + +} diff --git a/test-javaland/lambda/src/com/amazon/ask/helloworld/handlers/HelloWorldIntentHandler.java b/test-javaland/lambda/src/com/amazon/ask/helloworld/handlers/HelloWorldIntentHandler.java new file mode 100644 index 0000000..28c6519 --- /dev/null +++ b/test-javaland/lambda/src/com/amazon/ask/helloworld/handlers/HelloWorldIntentHandler.java @@ -0,0 +1,37 @@ +/* + Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file + except in compliance with the License. A copy of the License is located at + http://aws.amazon.com/apache2.0/ + or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for + the specific language governing permissions and limitations under the License. +*/ + +package com.amazon.ask.helloworld.handlers; + +import com.amazon.ask.dispatcher.request.handler.HandlerInput; +import com.amazon.ask.dispatcher.request.handler.RequestHandler; +import com.amazon.ask.model.Response; + +import java.util.Optional; + +import static com.amazon.ask.request.Predicates.intentName; + +public class HelloWorldIntentHandler implements RequestHandler { + + @Override + public boolean canHandle(HandlerInput input) { + return input.matches(intentName("HelloWorldIntent")); + } + + @Override + public Optional handle(HandlerInput input) { + String speechText = "Hello world"; + return input.getResponseBuilder() + .withSpeech(speechText) + .withSimpleCard("HelloWorld", speechText) + .build(); + } + +} diff --git a/test-javaland/lambda/src/com/amazon/ask/helloworld/handlers/HelpIntentHandler.java b/test-javaland/lambda/src/com/amazon/ask/helloworld/handlers/HelpIntentHandler.java new file mode 100644 index 0000000..adabc20 --- /dev/null +++ b/test-javaland/lambda/src/com/amazon/ask/helloworld/handlers/HelpIntentHandler.java @@ -0,0 +1,37 @@ +/* + Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file + except in compliance with the License. A copy of the License is located at + http://aws.amazon.com/apache2.0/ + or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for + the specific language governing permissions and limitations under the License. +*/ + +package com.amazon.ask.helloworld.handlers; + +import com.amazon.ask.dispatcher.request.handler.HandlerInput; +import com.amazon.ask.dispatcher.request.handler.RequestHandler; +import com.amazon.ask.model.Response; + +import java.util.Optional; + +import static com.amazon.ask.request.Predicates.intentName; + +public class HelpIntentHandler implements RequestHandler { + + @Override + public boolean canHandle(HandlerInput input) { + return input.matches(intentName("AMAZON.HelpIntent")); + } + + @Override + public Optional handle(HandlerInput input) { + String speechText = "You can say hello to me!"; + return input.getResponseBuilder() + .withSpeech(speechText) + .withSimpleCard("HelloWorld", speechText) + .withReprompt(speechText) + .build(); + } +} diff --git a/test-javaland/lambda/src/com/amazon/ask/helloworld/handlers/LaunchRequestHandler.java b/test-javaland/lambda/src/com/amazon/ask/helloworld/handlers/LaunchRequestHandler.java new file mode 100644 index 0000000..100f825 --- /dev/null +++ b/test-javaland/lambda/src/com/amazon/ask/helloworld/handlers/LaunchRequestHandler.java @@ -0,0 +1,39 @@ +/* + Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file + except in compliance with the License. A copy of the License is located at + http://aws.amazon.com/apache2.0/ + or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for + the specific language governing permissions and limitations under the License. +*/ + +package com.amazon.ask.helloworld.handlers; + +import com.amazon.ask.dispatcher.request.handler.HandlerInput; +import com.amazon.ask.dispatcher.request.handler.RequestHandler; +import com.amazon.ask.model.LaunchRequest; +import com.amazon.ask.model.Response; + +import java.util.Optional; + +import static com.amazon.ask.request.Predicates.requestType; + +public class LaunchRequestHandler implements RequestHandler { + + @Override + public boolean canHandle(HandlerInput input) { + return input.matches(requestType(LaunchRequest.class)); + } + + @Override + public Optional handle(HandlerInput input) { + String speechText = "Welcome to the Alexa Skills Kit, you can say hello"; + return input.getResponseBuilder() + .withSpeech(speechText) + .withSimpleCard("HelloWorld", speechText) + .withReprompt(speechText) + .build(); + } + +} diff --git a/test-javaland/lambda/src/com/amazon/ask/helloworld/handlers/SessionEndedRequestHandler.java b/test-javaland/lambda/src/com/amazon/ask/helloworld/handlers/SessionEndedRequestHandler.java new file mode 100644 index 0000000..2d4f59d --- /dev/null +++ b/test-javaland/lambda/src/com/amazon/ask/helloworld/handlers/SessionEndedRequestHandler.java @@ -0,0 +1,35 @@ +/* + Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file + except in compliance with the License. A copy of the License is located at + http://aws.amazon.com/apache2.0/ + or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for + the specific language governing permissions and limitations under the License. +*/ + +package com.amazon.ask.helloworld.handlers; + +import com.amazon.ask.dispatcher.request.handler.HandlerInput; +import com.amazon.ask.dispatcher.request.handler.RequestHandler; +import com.amazon.ask.model.Response; +import com.amazon.ask.model.SessionEndedRequest; + +import java.util.Optional; + +import static com.amazon.ask.request.Predicates.requestType; + +public class SessionEndedRequestHandler implements RequestHandler { + + @Override + public boolean canHandle(HandlerInput input) { + return input.matches(requestType(SessionEndedRequest.class)); + } + + @Override + public Optional handle(HandlerInput input) { + // any cleanup logic goes here + return input.getResponseBuilder().build(); + } + +} diff --git a/test-javaland/skill-package/assets/en-US_largeIcon.png b/test-javaland/skill-package/assets/en-US_largeIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..28ee1aa79a66324cb0af6accc1f4976c94455927 GIT binary patch literal 41316 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 gmwX)05Dp}WtI4TCu=L6Au=FXG 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%0AQQ+A;%U}qpL#z%U_@L04;4Ir~mB% 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 S`Rio}_|w-h(yrHZ#QYzmZGqAN literal 0 HcmV?d00001 diff --git a/test-javaland/skill-package/assets/en-US_smallIcon.png b/test-javaland/skill-package/assets/en-US_smallIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..2d1e0daf5b6208d9263cf7c688899eb4b6ea6522 GIT binary patch literal 12447 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 literal 0 HcmV?d00001 diff --git a/test-javaland/skill-package/interactionModels/custom/en-US.json b/test-javaland/skill-package/interactionModels/custom/en-US.json new file mode 100644 index 0000000..1c6b40c --- /dev/null +++ b/test-javaland/skill-package/interactionModels/custom/en-US.json @@ -0,0 +1,38 @@ +{ + "interactionModel": { + "languageModel": { + "intents": [ + { + "name": "AMAZON.CancelIntent", + "samples": [] + }, + { + "name": "AMAZON.HelpIntent", + "samples": [] + }, + { + "name": "AMAZON.StopIntent", + "samples": [] + }, + { + "name": "HelloWorldIntent", + "samples": [ + "say hello", + "say hello world", + "hello", + "say hi", + "say hi world", + "hi", + "how are you" + ], + "slots": [] + }, + { + "name": "AMAZON.FallbackIntent", + "samples": [] + } + ], + "invocationName": "hello world" + } + } +} diff --git a/test-javaland/skill-package/skill.json b/test-javaland/skill-package/skill.json new file mode 100644 index 0000000..927908d --- /dev/null +++ b/test-javaland/skill-package/skill.json @@ -0,0 +1,30 @@ +{ + "manifest": { + "publishingInformation": { + "locales": { + "en-US": { + "summary": "Sample Short Description", + "examplePhrases": [ + "Alexa open hello world", + "hello", + "help" + ], + "name": "test-javaland", + "description": "Sample Full Description" + } + }, + "isAvailableWorldwide": true, + "testingInstructions": "Sample Testing Instructions.", + "category": "KNOWLEDGE_AND_TRIVIA", + "distributionCountries": [] + }, + "apis": { + "custom": { + "endpoint": { + "uri": "arn:aws:lambda:eu-west-1:618362251982:function:ask-test-javaland-default-default-1615986998257" + } + } + }, + "manifestVersion": "1.0" + } +} \ No newline at end of file