From c5db6f7efbd6d151c31f2781c9a6c3c3c9d7d299 Mon Sep 17 00:00:00 2001 From: "@tomnight" <@tomnight> Date: Fri, 29 Jan 2021 12:33:10 -0500 Subject: [PATCH] Update to version v5.2.0 --- CHANGELOG.md | 20 ++ README.md | 5 +- architecture.png | Bin 157074 -> 117024 bytes .../lib/serverless-image-handler.ts | 141 +++++++- source/constructs/package.json | 2 +- .../test/serverless-image-handler-test.json | 301 ++++++++++++++-- source/custom-resource/index.js | 76 +++++ source/custom-resource/package.json | 4 +- source/custom-resource/test/index.spec.js | 130 ++++++- source/image-handler/image-handler.js | 100 +++++- source/image-handler/image-request.js | 58 +++- source/image-handler/package.json | 16 +- .../image-handler/test/image-handler.spec.js | 320 +++++++++++++++++- .../image-handler/test/image-request.spec.js | 50 ++- 14 files changed, 1149 insertions(+), 74 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3be4c499d..350513e8b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,26 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [5.2.0] - 2021-01-29 +### Added +- Support for ap-east-1 and me-south-1 regions: [#192](https://github.com/awslabs/serverless-image-handler/issues/192), [#228](https://github.com/awslabs/serverless-image-handler/issues/228), [#232](https://github.com/awslabs/serverless-image-handler/issues/232) +- Unit tests for custom-resource: `100%` coverage +- Cloudfront cache policy and origin request policy: [#229](https://github.com/awslabs/serverless-image-handler/issues/229) +- Circular cropping feature: [#214](https://github.com/awslabs/serverless-image-handler/issues/214), [#216](https://github.com/awslabs/serverless-image-handler/issues/216) +- Unit tests for image-handler: `100%` coverage +- Support for files without extension on thumbor requests: [#169](https://github.com/awslabs/serverless-image-handler/issues/169), [#188](https://github.com/awslabs/serverless-image-handler/issues/188) +- Inappropriate content detection feature: [#243](https://github.com/awslabs/serverless-image-handler/issues/243) +- Unit tests for image-request: `100%` coverage + +### Fixed +- Graceful failure when no faces are detected using smartCrop and fail on resizing before smartCrop: [#132](https://github.com/awslabs/serverless-image-handler/issues/132), [#133](https://github.com/awslabs/serverless-image-handler/issues/133) +- Broken SVG returned if no edits specified and Auto-WebP enabled: [#247](https://github.com/awslabs/serverless-image-handler/issues/247) +- Removed "--recursive" from README.md: [#255](https://github.com/awslabs/serverless-image-handler/pull/255) +- fixed issue with failure on resize if width or height is float: [#254](https://github.com/awslabs/serverless-image-handler/issues/254) + +### Changed +- Constructs test template for constructs unit test: `100%` coverage + ## [5.1.0] - 2020-11-19 ### ⚠ BREAKING CHANGES - **Image URL Signature**: When image URL signature is enabled, all URLs including existing URLs should have `signature` query parameter. diff --git a/README.md b/README.md index 30bd10043..1b640c71a 100644 --- a/README.md +++ b/README.md @@ -64,8 +64,8 @@ chmod +x ./build-s3-dist.sh Deploy the distributable to the Amazon S3 bucket in your account: ```bash -aws s3 sync ./regional-s3-assets/ s3://$DIST_OUTPUT_BUCKET-$REGION/$SOLUTION_NAME/$VERSION/ --recursive --acl bucket-owner-full-control -aws s3 sync ./global-s3-assets/ s3://$DIST_OUTPUT_BUCKET-$REGION/$SOLUTION_NAME/$VERSION/ --recursive --acl bucket-owner-full-control +aws s3 sync ./regional-s3-assets/ s3://$DIST_OUTPUT_BUCKET-$REGION/$SOLUTION_NAME/$VERSION/ --acl bucket-owner-full-control +aws s3 sync ./global-s3-assets/ s3://$DIST_OUTPUT_BUCKET-$REGION/$SOLUTION_NAME/$VERSION/ --acl bucket-owner-full-control ``` ### 6. Launch the CloudFormation template. @@ -84,6 +84,7 @@ aws s3 sync ./global-s3-assets/ s3://$DIST_OUTPUT_BUCKET-$REGION/$SOLUTION_NAME/ - [@pch](https://github.com/pch) for [#227](https://github.com/awslabs/serverless-image-handler/pull/227) - [@atrope](https://github.com/atrope) for [#201](https://github.com/awslabs/serverless-image-handler/pull/201) - [@bretto36](https://github.com/bretto36) for [#182](https://github.com/awslabs/serverless-image-handler/pull/182) +- [@makoncline](https://github.com/makoncline) for [#255](https://github.com/awslabs/serverless-image-handler/pull/255) *** ## License diff --git a/architecture.png b/architecture.png index 8d6ac401c11e3a1b2ab283deee841c751c521961..94f3e90cd33c56871796d06d7aa478fbc4f53202 100644 GIT binary patch literal 117024 zcmZs?by$>Lv_3q7h|;JC0s{yl-BJSrDu^^n!%!k!4$KS<(nzXEcXxM-#7GU&4Z;9J zcSwH^`kr(B&UJnB7tB1*+H3C>`(F3j`;)4&EHME!0SE*lmU}Jz76iIk4Fch0+`a_@ z-EhjUCI^1F;rLee1*jNJy9)es)BL&8a}cO3g7DlJ5BUGihu1oeAP^<+ASL;Y?kD?_ zAkbBoob+>bXM>F-d}sBJNfhS7PNQU|fK{;J4%ut(UvfyxBWt`yA6KrYcUUzyUdg|p zly4h-<`pnVI!> zdUroUoMVRJ?}P+X`2BSIer5?($f_Rnj+L06B%s9%qgjJ{tpl273qo@#}R!+8-RpvyeT zbBRIlM)jDvYDNzIp=)V$MZf@$-k4egWeWR1>+n424@&gFZh>T(%Cls{2t`QHNVhSC z;8^4;pJOTcwqmsQ0d%fr|0}5-yzza2sU7a=DL!+srfwx+Nfvgo<;B0%$}@W~%@{_K zeXSKD`6uI+QC0GWic=%skXy(wHK*-DNJV$3Inv-7`sH`0GOE;uH@k21f*B z-NeRo>*xm-PYmDYue=}qCrOZQLvFftbaPg&s^aX6$xl#TD;!_p9$l!VglVY?zFHve z?-Z{YFPc@7&K<5jX=869NBk++2TA4#w{LG#T&8n;^V)9g^iMcl#q^Ryi#UJW(C+n0 zb_+1$`4d1*NE*F&VDjy}*JSqJXy&snOgdt*4^CWT7rZzwKZ7|n;Jp339Y%0&RiPZy z8L8=3bRBBND8dz@eV*FzGtMz$!>Gkxho>pdGg$pv7qwG(7Qa~Rp3yR||FuERGf)V1 zO?(0SFZI`&0Imj-lGEmBTDa4_L;T~x&u65XTvf8;kBw=)s!P?4-H9R}g|_`NOqFJ# zVht60fGSzI?JY>^#PGzx_JoQULIDDO)Xq_h;Y^uIYS7zuR44lwY`h5t`4Pdn$%KB@ zNsUWkag1@33gQQv4DIqL8w(ExbAOgG1dxH}eG|$Zl4i;sy!gcY1#RMkqk}Ho6GZCf zo>|8#Z0q&l^AQ=^P*lQ`6N}h&7ZR5F=1d%`31|wD%!z?D)0Q$KEqX19QMA#YKp$Ci z>^q(A7v?egnB@t?`S2l}{k2EWYzR7s=QU`|Ba!!W^IrP=C?2|Ll^>K^wl3lw3u$~Y zj!2YJ1RGSrGHdCp*I#R@P55^H|2{$|G)WAbT|vVdvE5-UP#J%^Ehsyc<_1LR4f#MP z1-|K@@anm)5>1``(mck6`ss0jT+*2hUYhc)Z2cj#6F6h_58RW=TC;SOL||BLvA)5p z%RU;j-ls#u^N%{7J$jzd~7~H5IlbQd5zqPd^zU zpBhSQ{&kX=IBK9ys7QQ~SfH`5d7jdKI$$X|JX?u^{Aqm!r$kHgbT@j*LNS5fS$(vB zMchmqZ189Uf-W~OcWDb%iRVW+zwV;aJX53yC2EBi8`-ItnGbZvo<-94?oW(m2j8Zi z(Q${w1otS&9|ufOfi(lQZa0LtC57zz^|QutD}w1XCnH`nXoZ_ZPZB@-as;grj8pLN zZ$4cZ>4WQ?LUpTFKGxhTyS3ky^8+x@KvKsBl*o-|R`SnT z>{j_EadQ4uw2$eIN`449oh zft}F;ZeHffUBP52fEk{r_%UfoHS2&~xO(z%t|IgJZJ;cXlk)jXcJ0GoVE;{T4zF~H zA_W4cYB!!F6;l2ENR>o(MuzFJSsgXJrWN$th3cQl1qMtJdE%iY1#KLDRYMjgdv?zz z8oVr)A|zJVc0Oaei(;~TB;Zs@RJ$Z#{$BLgnF}rY{>;slc^s8fui$4?H1z!n8aOr0 zEbp@jW^^{5#*AFATTFo+B8al0jdxjMY8Pz1C{%)41q6QJK_X5B5J6nv&T%KkX0Cjr zk+uy^o5)+-6g98rNQAbEJDzTqnM%NH@`FB>o_#==vyC@IR4;|@P1OYx5LzA=VjIua zb_mkMLM+W#x*IN1s(06RN(Ur_n-j?Px6Mgl28HP_BA7;GZs^FHr9mFE7J^^t^)Js2 zo(YVqk(N~{n5)U$44d%oHu)>1XOcz00_(<<8TXRh2I2|))dXAnKz19M^hEXgL4DMn z_UmQdkY3_Lh}^!}pnNYEaN^El%*}Uz0OK(j4q&@qL1KLn3eHH^FoCy!wla|~BbqPr z^i?}PsUSQuO3dAZt#Ja^g)JSu6)U~>3sR+N_r>jB4zj?FLj^hzSp=_wRle!W2du^* z{HQ%o@MHSz;|8P`QWRS7a-K56=rpJ=KORi!)%t3See%o*xnw|K`6b8qkemh*@0^VP z97+?7S!O$G^N7wrT^EhTj?3z}{IahzJ{Wb+x@&Sl>)ex#dHF&Hd}|J(L8k81JM}QI z58ZLLAQWpIW-h}0NOUM`$hqJv=r-vN6r^rmC~(_UX$(ZhJ1`j6yMG&b;vAI3% zk=JMWGE%cLPlsl5lHa$w204JP-n6JGz}>W-`$Ph7j3qH}X9G7MI6z!GT2|YmwC3OW zmg~d~`<)|8iB#~Xri$PH+l-bD)jo-hH&67tijB7l&wVlM{CxlZeJ5TmH~W7NH2S^Y zLze2K`(};LF+Lmuc7^A>k2C9qSTfDrS=!i&!D#idGQV$%DcdxiI3XCCFIz@ubDj}L z=tQPx~ZHi`4aGYl00w=Yu!`VizOW}&VX)*7}r z(RXTyCar;QwKeL$9(=j{Sc+4nw{&v&!0!7Cwfg+VneaWu24cYToE47P+EU zsv-c~JPItwTo(HcosS3(=Zq8)*K@!Jy z>(7Zheiw60U+BJgtqffaL_bK@%Y=w?2KBqgouB8lKjVT7 zdv#zXWwunp8{V{Eq?UVIm|wQ60hZH4DeoY8Jwo0SSDSALFefvP07wfPSh4tk-Pcmc5{zD6mKwO$XZa(K8QkQfLUaB_BJj3gxDqbq8UMaj9TOA!` zrB7Q5^Y4sNzHjSvG9P8E@GZmFW8L^pX*e*TVQpcVbm|cMLx4nc8kqKXpDl6WpG^zl z?>DJv?JuIMwp6FP3Q>-MOZ|s{R$;d|&2;PhPI_@C{aNcJcnIt8w^|TlLJu6&S z6$vSlUe#v0QD?HnNOuo;V)g>xINYLZ6vJ`v!uBMW>GSa;3;DCj`k6qRLu6`vnwbCA z?Zy_=y>GGHWA0i$=#nezUXk?&H%YyUkz=<%eonh`nfO(gPUQhRph5ikq}4{*?~WU> z>Vfc7#+dx^?r<+R>&2&4RhmbCFVPuH`q9`VF#ScOw_M7Jp-81KJhLsaGwExV@60cv zYZL_nF+ejz-M+<(@88T)p_AsyCe9ia2z=9-_+`=6n5fFjg%;s@@vwfeNDh9|ptd?k zk4`O+jC(oeaYT!_*kk5exlx)k5F5xkPLdrA`koxXM9)3&1O&4T$Vlbg zR@3nJ6(fHc83{U@_0|hdu~>E-kQ?pGTdFutrR1clmjg_2)RZIZ$*OD<*k%>Y^%QxD zt*&{kaT9bj+z0qWtJ4<&EZs!w*H@C#E%q}E_Fo!D=r+n@P%%43`L{tEd57AD3nWL2 zDEnXjzNbATW+O%ze=Njd!THXYl54#P>9&-r=o(%kd5?_TLxvgW`1U*j4Lx>!?y7vb zmLPiNO$TpnYkH4gu)6}@Bc#^#6}(&X6N88MZP`5b1;vez&#<#@gh^N5H_LrT$P5aP zFgoznMd(D=mdmlrYU}0x!p%DS&A-}+T7T~Y5We_G>$oq){RiFX_EP+WCZpnEqtJ;~ zb#ll@d0|9TE5Q=4PIx|$$v5UM%Gp1)6BTlhQW zMF8C;LF`GBbf>#Z@X1@U{RHeOhuQha(^uH}@`JHoQi1_u-dp0+I&l2?Z8|HFBr(R8 zS*aGCfVR`BTh!s^Z8d2C=2pj_-rA6K+L(4qo4l^}01Q6ZWXK&LlOCm@`=T) zJT@^+_YtE&#i1Mm?~hL0L+h{|%ZT#7@g`JP;uZVcyfR((K7NI^1I8@o7jz~Sr-&)9 z73h+_fgaDOMoIKWa`Umo`Jguwb*EkcOUspz&zV`QV~PxF?iYBJ7uj%XF710g`3 zwUA_dl)BfmRL7p-$Om!Pi>z~)syL}(9s~rzk{XWBwefoVw^+qcDtk!k1~hZqZkR=0 zMwzeypyMcs$tEfshb^V3t?{GiWY zMKh7lC^)@2#_F{26qxg$QMOIBov<_}g>04;w>Y;!ND}}Xz-7z!p#?lG%61Qv9(+Pq z6=EOG@?s*h6)DKyLPf*%*;$QMvVCBivah;q-%O_m7dExCVm9L$P zeO{iiZda={ouQ6xj^qIF=y(5E6&u5@?eky)J)~Z$p6*I^IAgiKc(ku2i$FD+G0c|Ta-YMzgIOt) zAje!I`_R+MeS3B)&jmH80-#``Wg3n2OyyeYd1{}?s3A{;&P%;f+PzO&fhfeVk6bNjW=rK;S0 zSw5zByVGt9bxwO#uJQjwQ<&l6h|9C{2N(y>*Bq5z=S{zntEM-RaAT%Qzw6e z4~g;C&$%Ot)?;<-i*<0*OXXbJo2Oyu7NppA z@Cyv@wHtdT5VkO~1~PGeh<7OyTn@DJ5d0zuZ>q=a!OW8C6|G&|Nv69*^sxij_fB?8 zt%V9PeR}%bfqh=DlX9m07LaDq#sL{`9XoC_Yu=X@INid$?t?yNBC2g$f$s}h2sU@D z@nUa`Bz{2NbpFdFz3a>kfP$ zYCY(W`XQLF~{uC@AYc3EICz(xa@&8;|IQ18OG z=9A@S`8_rLI`nXFR-;#RMTaE}G3`a!D!J>)xg*>3Sa)FuUaHYI=?WPieh9aj;GZ0C z#{fi=Nv~ceJ0m9m&j~uP&0LTA5GhPqGtBQ&?!M*6b?s47cjC4S8c$qQbW|dnPxl+v zq#RW_;?%r%E|-P6*)nD+Rqwmxb;RuQR2u?5fi>?Karxt0>u_2s3w(j&>v2|Zv__98r+V--$)EXyotFex%iiN#$ITC2kCXHK z?J`$YJiPv68{%txieXD0M_k*dF56;d#lG5rwk-0IUam`Oh#Z65m zX?!>D?9MM1Klf#Z7A`q#5~ovWg$>}PQySIm{VLdwAs#_-aOfAhjdRyQ-%YQxXD%V{ z|2(LBR86||d;wyzF_V^YO^-f}q(8ff_3x3TbJkgVTl`3HiLyir&Z?0naVHqqS*+Nh zb{gadqa}kef$Z~jQqI3;i^M)o4C!#J>P_QR3C=g3KFFUxpNv}PAE;v|xpJ)7E&43E z|55yI0Hc(Sw%Bba?glR;88ei-x6$JCU7UTfF;C&M3gt0_SbC#_-Nq4>_GMh}yc3KtUh#@x_6lUc1qcmoIqD zG_zsovW9c$GoJK|KUZQgQ#)OJKJ4CYWW{I8T9ugmvdEkyL#QH94Zz^vPNpp!ns@^y zoBrJYi^ZK0;t1ExhxIFApWs~ykt>5WIloM|m9wr{?W;?pTl$9sob{)X6Y##A{y{{_ zGufmT=NnfaKp%s@JhfsFq~0eJ4EMu58^?TC9|3{LXb%JDWQkviOA%j)ln&of`4#_6 zYzb%Iu(~i~wZ&b*u&^ugOlF}Z>%;pcgi*c~2y~mo9R2KDtQ$`muC>VCjX{Eq0TqKB z9xbk{;oS%|fE3Td_~Q-g#J%sOdvt&NcKu0`P9^r|qX=9#%R;yjI10BR7Cf%^!@Ehq zpIeJWQG*x+Y9*Ik;dUT;D1}aQasyKhNr{vNWYA}F;UB#%S2YUr&w3c~S?Pq&VUo;s zp}@&<`n*32*Q7DxbCw9Nh9J;`kWFGK&$UB(qMkfiw;AOAx8;%DMC z9M!?T@gI@*Gi9n8o!{2++Gu-fHH!ikoNVo6i?;qxT~2OCC~fyt-G~!WFWjiajW#x) z8U*smSkCas9X0Wg6DvKNbMaolpOc}Kn20Es^wekP)igXM9~2|Zqov{~T?E$co?+w5 zz8sRYm#B!m=jY^};QwTF`aWCr33OBIlMMz_wGnKTet3asKU#}3c@IqyHj~GXh8(@A zlUz$61?DvF-4s*v`E5tE`6Io)pNH%JndqwiN(cf}C+{Jp@e#9+lE^tqOC)KI5zVG{0)bP#N4dz;rChS z!M(7QW62U+1(#F4)$i01UX^~hY8tp8sSkHTo~TBK&Y^Her9A@^38yB4-(ncz;^7KI%{;IeGVX zD=jW42=?dr^+Cx!OGQ*h5-DnxUS$~Fex5`=B)5t=VPS*E&SMUmFJV#_gsGRmO?vl# z&%GSLT8-WTfyn*6NLkoD@8Ms|W;k6PW-b^;)hO#%@S5R)g1F@!p^QZ>1ktO%fnVQ! ze{=(sPx}Fgbas4NAkyU@C61bJ)LvIh4Gm^VCF#%oT2;1iRh562veS!jlRcK23{`-hooSXbn29m?;AB>0?s|T5CC8Vku4+s)oJsf zU=GlAVe~~v1CdoW9H;pAkMhFfiTjpn8ou4_U*bo&+Yd`E^ePiN;BKi!~J zs8!O?&l?ww{*aJQ{mu6?2R9NLe*d@)sCH&=j0AuFRp~3&W@k! z)0uVlofW1`y7@H_QLRbq+C!e|ICTz*dIGnYD;q7;yV=;~zVfl1C?5av)0+_uf0^ta zPO1L(=SK_yNDP%;q_XZ(J~TTrk3aWEDEUv8>; z9K=rHj-dp>AI^z414Q#?c5Yf07G{PWY*gIosG5jM7*E`9a7eO8nW8S_=xA~B8yAAx z^(W9}yiT|AOljsug_Tiym@Nwv`u=Ns7b<6!(`sb`R>_+1Hk{2^^5{SQBvvmP5j~46 zSAkjr&)j`af@se7k*K75TSFqoQKjcYl5vqEgZBjv1uD|%d>`YEHFekOKhf1il8Qrg z`mZFtnj<|g-?7Y0T)M5z4DLHy^!0b5d%10UCfmxztsC>}2TLJQgS2B`A;j;eM8YS2 z70_>9{bt&3b_o?O4i+nJD_HJ9e)#h zJ}uqZOMOnJ++@yiH)2+N&a1Y`k6P~>W1y1^6zBieLmj2j&}_4Qn&A2?zMv#W$!SIf zrCIXDg=(M59!i0Po_V>4X-;bd?ztwuQrBk15RhzSHcqJ=c4?_=OS#mXbWX(O*UK}| zoe*g78ck1ZNt%=7JNe&EUi|dw#rVLuXligg(+F5FJS1$un9gFZYAIKx-jcp|TI#}| z(Ioo3a*QR6@3`tZjtbOTGtyDWW=S7S$-&`<6sI%Eyq)n!54qVzxRc_PO-uk4w(gk= z0*mrJYTcs9=LQCi;C$QqncSfxiXkbKgJ{`PMS~o+K}$%}riX-DN7J%?v7;Vp7!i*@ zz7$%+p3c&k_vI*QfQ2B)t+OJ6$#)3$OWLu?b^9YfF{hlRJ^_u|1mUECld7&-`43Rj zsyM(=CWZP}UaretOtIK0A+0B$&Oh0fFu^v47wWy19lctlbaaW#u%*sF`l?<9soVg!JrDX>5mX{x6|Z>( z``GMhU0^F=o4;22X0&IgP}v_mmM*}(^QpipnBy}gXj1e+HG+vdtEi&feIa^ICjr?k z*2@werZYO^)Z0U2|H(v6LpC(H`F5F$oo|I$sPf~qOk_jglT1XP@@awm*ILx5Xxp>l z0mDqnTG?+`1LbdnRJw?I4g?FhDMCe%;T=}uFKgY_-%N?pE-d!9514;Q>!t8-QXSxONl2n#m2tKdgH6UjeWMEjd-ER=;$(Sjeogxgfwdq zT@(0gFyU&gs!{Lq`3a#U=NB!Sii1wcGupQCB@GQ<2Qr5aijaSa7l;r?&iQNc@37iG zYylYdA|%P=PR+mUde=@(LyP@i%D%M(3MTw$MMT=#o>Ti|h1dSN5p^RlDes{}Rde{5 zwScH3cD_`gFNz}N>j_!lLuJQIGgotRQD_P5Rq*6e`K<7mb7xMy0|GLZ5q2y}AJacC z-)hH~f8DuaVs=cKj3OSUzXf7A54vhWu&*Gft+ck*i!3)R#-;yw#0}g+n?soPui`zt zC8DpcCP;slcBAxWu^7>m4}SgY@L4Oy?AqFQ9$$$9m9VDSIx74)J1W^&XCD|;cxvK@ zCd_YA`EK^m_=5i?dFRe9ZO*`M@6r#6-J4A=y^TfE!rSiO6)0-qgQ zIX%R7pZo~3%a9=TXx2Qa8d&N7SV9^os!wywq|cqR+UQD%b2B2iIX3CjRopn-e98He zWo*U$lzy`P9JO4!)lP&RF%CFJ)MaA^P4{+}C1Ir`A$3B#j`&eRkbnt)VzHkRQiB|Q{;U-L^;bP>c0KMC>4}~KPn=!Uh!qC zOE-mz0i^c?Ui+5*;SJD0AQHN^+q<49JuOTdZKCu5)j@TVi6MUi{?Bc0K_m2O8>SZXbZl_g7*TcF4U+uQ~mkI27qr6{)5 zTXv_ofCrg^-@*}Lxc9J_(&GippB%n3esgSu(kn$)WKNj~Me*uatI0j6mLYo^%$wJT zgidcKLbDdYLHQ-tC~l9#`VuQ8Q((MeUK|uf!p*%GKh|#E*9yIX!pp~1h4S5^r3^wy z(_e+2)wzaB7|JN5*5!3A7{sw3KAt(=w33(=t@@AA_nbodt~;%isVDL!|jcFiRtB&=P?;*b^-c{e2DZ zzu^LymMD5mC4+)^$inpPy$IZUQyz}VJVV|TOV}Zj`F2ITY7{v3KXkmv{CMb^e=(38 zL3wW`T+nX1jbgqZDJ96Mt4h%f={keQ%Tm19G>zURNV*oD!$N0XeA`aLEKRAfKr?Xnl9|biL@~GI!qH&ojZp%>*so7j>#SbOHj|T$Vf{>t z1O3gZ`iz|5Sb98Q3uI4xe0rw5b(~I556iCg#Mb%^E1n3vKeyv1S5Y<(8FH3T3}M9_Y0#D#pBS2;nh$`*zS! zW|~jp)neBJn9Lo^xDe~%*OEF9Zl(vzAZP~Z55HQJeK1l;>L3Z-b@8)FRJN9`HJU=E z$o>pt>sx8>RATP@PC`T@*Dz`L{_J*Melh=Jq3-jDl_C5@wk_i6lscY}3oYrZ=GW(v z=g^$+Ga_^OsnuO#y(f<|%@naF()Ay-+{mmdSH716Kn<}0ukEr#-lq^RoBNH@P^{F8ItdM+CJ zIr2He@-x6(ifjp^ar3EUOcpNRJmo8XpcLl27R>M2#OwWFRPpiVcOgkWKY)56AfW}! z?DE6Xw(jgk*7x|g^Q|u{xvW3B`%T9Vyn*C}tuFAr4f6(HoKU_|{$frxS04I81H2y; zkgR?H2aYR6Vz@KM7Ti5A>KlP&k^`E?o&cqFM5z?w_VEd7L}MW9McV?JGoH>VQsf99 zHh-yNGxt`GLH@e;d-1kSE*tlZi7iPJiVV~8-lZDNFEYRM!3T{987?i@Y(D`YngE8fJg3gKq5_eVN zdNAa&TPY<{nnH|^wApmk{ZmpuEBjN15&EDpc0?d(F1?*Ia}_AMHSW&WDpPngMy#Ci z1aHa@^hfkGOA6W*1f4-Q%tJ2cA5Dbbe+ho8A{Na|6fbeXj&2M zc&J2WK+>=in^QFCIm-UvWUE*A;6kUW3*~)>qLY(MuLNhRR<4uF+Uw!PBU+u-OWev@ zWn5j|nj4#5SdX~sdfUKv_(JPC^WT@pA=kVJ#VawqfF%DDw?OL6r@f8HaD^O8e3N67 z>_ju{$6orkroHurOFm@0$CZSuQ$yB+jRH2bv3*RLqCwkQ-h!-}Mg=rNK=8fC&(06O z)jJnLbkxW=NEZszpxYqo3&%N7)Qhk8QG-+;7+zw;PuCXryWmFqez+XFxASi8E^#j6 zU4p4f+J$4@-1nj!+&8sD8suB4lH?aG@Ow?_U(t%Yxr5C_X3q1R@6BRmCHBb&-NQ-_ zVXAXFy<&Iit&drMevr_23g_Jykxxkrx7OZ=$BEXbY>pAhm|!u&V@xA>cmkzaV{meltio)_N;N~DczG_yF`+E>%2g-RBpV> zGLV2%3ikK3q8|;gjYvh|h7*E(zX8-=r8!;BlY8ZC9)pp?HhTc|hxkYRnO#$V0cumC zOsxA8Zx&rWpVk?=2T!&=*Q-6nd;JbgRKb9fWZN;>nxrA3&o?f@~Pv#Zt z*D%-ApX18p6+rz-dL`GppD-dW)|k(6aX>ySE*nhWy2Gs-OE6Xvh#(XUV3{DrM4Pn+ zyx=kC5={Lf7ZR%WEPNfe4d$@`gN~J9P8aY*xIj`nPwDo_T)^iJVz(a(ygB^6jztkAc&IYjA|dA@m39}J#zaL?CXvy!TwYoskHh2cHwPRxc zk1q}M&hI@tK0Cf96CVoiVoPwTFy$oZexD&6&`p(v(z9IeFpNCiaV}iZ$!q89TG!iPurR#f%Ll09pc-k9Y{y3bT=dzKl#;HDQL7KhmWPE7P@ag$ z@Pfz@Sd-p)Zf^c9(8oOt75_)zt<>D0M5e9C;E=k7i5z(%wD7&orwLy$2&icU%;kQ} zHD%bXa{jyFCvX6`1mmzc`_ixw%1J?~<~1y3)gBR|BDn@mv}fe>=w>*{{aLzDe~^{K zWneJ)jZl@a!-QFq-L-iSWB8v@hCLg3TxertVSI(Pv8PP(X!dx+lK~Sb zkt91>zr`oMfUkJ)e)h>Fa8Hv?gLake5#!q(zsU zvvy>eQB3?N9{T5lJwKSTEqHxQ$vO}HTPzFnt}r-cAUK4NB4#tDkhml3?^-*yzHD0g zA$#f!9@A^NkQSudd`T(piNE>G{nuIUPYYDmyljV?q%>upDQ7Rnl_eb_u0Y9kXy}O)j(H{UfbUf}ufJNY)rRdZ zs0Gkd7+!ctH0`2rTIMu{|FbwY(akQ+iw$L}0X1nkSA}FwPUuJws-C!#Jc8JU+{R)*^)#7 zcT>3a@N~oqDy+bkg3@bA_OE|odmHT1E4GhBxV?gV>Ooc7Fqh8SyZ$=hv6m^0uN127 zxkWpfY5)0i|HF%hNI2A#m3y@|xzrJQOy2UE*Z7aeAWV?|LF(*TYY!Y_t>$4kBW}z3 z*ZY+F*IpT*G@f@X-6!dVLn-^HcW<*x?28Br{?GV%9`#@0P;XZ59xcxeI>4QFoha5x8m6!f!Ka&K{}Z8( z^4r|-HSm}lt=4Ud7^kIkHBvWxY}J2R=|r|4{TQqT3I=GT=KCF{7hkK?p&0tWzb-Rp z-xA#z&Vdsg@;?e1+Bd|z(`o^EYj}yQI=Dxmz(NChZRP*_k;)v;s7^CVo#fxOD&QN! zNozd00UG(JG8{c%jC_}uocjLjB){t~H z3j~rDoV2_FY+fK`LXc|KM_}F5*?w1oKpF(sTSFAi|9nl6?bZT?GpZUxkgEwfK3R|_ zB3!D*zbmD3jRJ@B97oBktO)@xNtM5mgU3$vO>=QII%;2@H^r@{aN5wX@3+Z>vmrB{ zk_-CfVjm>}t5({t^YI&nE5{x$&n2>6FV9zETvZ%=iJcex>Gwr=u#t#A zkfI`f-;bC&IughD(EHkLr{ZvJTMs&|lk*}hp_D(L7*i0@d0a&XFGY9|W;fk1IEgX` z>zO(@KH)s5AX1drO54B6-p!LwYuQ*5KBU~wVu0F>p5Nc=Vmdn9U4troYt!zh{77Je z1P}!9A(KzNUgzLok)q~@b8k#z^PAsluPJ7~P5@|A9pJ7&a3!#(-X=zpFyGD2FS);w zD1S}Zua1jGT@&`|w|3cziP4qFMVq_2z@eu+yT~Jix*&N6I!*eA`eBq$lG%(NSMX6>P+t=Pj;Fs*Pw7AeB3;6s(>Me%chX9ct9%`7}B+JtWchE`LoPh0crBq(+_q3^+h> z3KkkT1irbmNVm)hUuuu&rqyi-2$JZEq^69K5ZvO4%di@A#6l$OCHcLfb!eaB2{|u~ zt^wIfNYMw5BC#ni9#BM%Rjy$c*rCYx%}P$sj8bF)iudLhtBOuQ!OroH?b8oL zMbzWtLPeZv8fVOdDc+Kk5k@SF7DY(h&M3^eHf@dm<}1pP0n3Z+4kftA)y)~>Pbrsw z_#v*fQpi30%Zo_3fm7v0I0>D|^OWY&E|!v{yfx;rS-2a9Tlg?&yo6#(G^&G=-5jyQ zz(r0FjG?lYpueYVZ5u;l>b!X<+;cv4i?%JBi4N}r?hr-9`B@19BkS1jzD5`briTHRe#9*ti23qwn*3a zQH$lgqc)-Jk8as{shh0PCRFtFdi15v2`wT=l^U9sX__R^tvhBTA`XtgL*ig0_1FWLqsx?<}b6Y0xw zO)zBzM;YRy%8R@0VqH-fDz@^TU2b&SR4x;+5F&J>aRyupkfb(z!j)DIudnmTR*E5I z%lni7qix7`J*Ww#7W~}rc;F3+tNFW}n}NGb0LMZlJFZyHLjTdZJ>%b|&DP4Y>B5^` z#gy7|MGf#_Z6IDrv>)zNuFrr>W>WN2(ghYU=}HOm;;vOr2f^z2{Exf4CfiU&!GR(So>`>kwyfk{2ddtNRaroY7n1mg-Fb{gvFH9B>TNvVvghpP6(_k?bY6Z2o#tEM zv>HjqJ(uhqr>gar1$=^6kLXAphwb3xaybb7V}qo6#JWfLBry$=WGSg@eI;2TIEGi; zeG_Nmjo116KoyB0D(mT{nDf{6O1fH%$^SFid#|TkUFImaQKdt=d<+J5`(9_U(TAdA zEJZs%pRYFd)(&1z?{-zC6rKXZpk`elBzlMGea`%DPJxA7L)u~S3h&eT7gaR+(u0_BUP?82)mA#8$jxp`Dyv_=mfj>I` zgiKwvqAJU_K_{`!D`)hk=Rn8k-KZsCWBqEr?IX1g&n}&|#wq0o5q+{A3-UmBXc&W* zs~t)LADdULQ>Nu-S7Ta_jdw|NFY3h6OVs2k3kz94lK8GOH`A$5BrXFRjSChu?W zbI#W{y4OGR;HF4qO{eQ?ITQ^zb{YK@y3UbEg}Ilb_`eR|v~zY+c|0P#beT5yfXzJW z@zA>wOK|sD0C2BHr~1orMB!B!(3V+_l+8XAZ(~8H047S#+^B7-cSxkno8j-GUC8ag z-4}Oc{Wh-s>@&Sata8s5hiI!d>#YS2pQM+@TVw=1G%ShzY3Dfc2S&-$=J?2!?{^@j zV@`RvCR+*YeOCFW@~vyC<5XTSlx9(O*v0nYmVkoQScFo}$hzW$1PLYGG>7^Kn*?k! zdUlT#Qsxw*k|+uAD|ejJatUq`6>w67O8i*WPVcg`l*u}l^t6kFUf3-gV^GfnlBl-r z^_|99E{@C`EoTPZQ$%e48!dKl!I^mM`L2aUHY$B+Qp|~@XvI(=pzrzdy|e0kRL4Ri zKi9`NX&_Ih>XQisWfA|@g3P-MD!IGnOyb0em6XUA=c52BDy!J(e@cK{_Aeq=<-J z&*%?K1rN6~Xz6D6fS~8N7739kTC1wlZX$hVHSN=!aqgo zD9$+aDTjcrV+3`MhGv2wQdx#ZO_!Fmlah9PDH7fDD13VsXtHr-Dn;5IDX9TG4HdZI zpiiyUfk}Ocgo5byaVZ3$-MlSUkJ#1SsTv&Y+{r&~OgZYN z*h0Eg_PIIHfYCgu$$i*v6RHOHNg&TF>zA|AW(V_lU#sWcexi*>N4kj?zMma@9FnAF zJoPk9%$CYAN@aR-W3=*O3EyLZ%2WL*##z;~E9^=ZFYxHJ-5SXF@5TatX}2_JP%NeE z7h_xi&9uTXcod<^>}!>@Y;ky+YH}3pVo>D}R8H&}Pl5_??A10wb}FXCK8>zV939Mu zs@_o4pnt&KT=hHqPO-|KHC?UIyWz>jS7@!dFCC2+WBO&@*P=AAd zZYe{eX71{+AV=Gb;JSMi&HXr0bdkf1hVprCXySgq#sD4bR_4*mL=vZB$1m(#dbo+j0^d=Wj0}!vS(`|B+GR|y9qI#Z|9|d-e5yFGi>Yk1)O(21-amlk#r^|N)&O@tmbqH~EYz0H_J<`O9zKbxf$x*b z;el}p;OYw^3)mTBvxKikP*euQ_Ay>AE%D#3req~fV&EYmaybs->#mFM;DjSZwGcyjH(`Gx+!0J40)>C2B-f5w;dYGQtxPoj?% z=qjExgxMMZTx183^!>a4@AKDy6PJv7gI50Wbw2%vSnCG?umW^Cfmfs~qe%b3QZ2|o zBzh~AN~CDd7^@DnK>wmazbW;Rs29M6J0F4ozw7IG>YrnHH`SisiBKsps=Iw80+I@S z2jL!i9<*}?95iQnyw}~4m8gOpff1oZhoCxEW4g&ij-s(H$$AY=cKD@>e7_?gF zRr~ALX!xqF4hsYIZWsX$=*R6Vp1rGt6UkK?G&Iwvg9J6cR(hE-a)k|jy$=yL4_=p_ zJrxzw%1Ky(cM{3owDxc8XUR9soE84@$Vr#NMf@g%CM?@*I@8CX_ev`bIl3xNTQXFr zx9_Fd-qeqR#ZttO2$(%A%oR}*MB;QPxqoeYEM%MOtiyDxqJ6l(irgD>5lMU_Wj(6loPY8%=5b&}Q0TQ}Li#8FOCmK~$sQ z#hsNFF{T}{%A|-|b$9Ja$v}2Pc>)m^L|)7DKg8{u4W>B8iyd`Wo>og4ZCs2e- zqDoBG5OA6TB!2Ucv&HfNiL|{EwoPxSb=BDmu>$8vG^B6S)2Gbn5xy$x+v{swY86Kp zi*J@vHH}sA_};oLo(hBbjhwM58U5c+LL19Y37Ej98TghxzFfNOZg(WDTY z#s?^#^o`pn8qC7V$2y@oC=aEsb%+BIcle#LpNUR*w8-yxoe z&>t_$^dmDVNL~NB=m$Phx4j4daR5@8zv;t%8#cUY0BY44c>Phh<{nEu&Uumy2$Ty? ztz1}u%#Aa(SRW@_T2X$B>2?-ZcbY1)qEu(fZx~veZoSrxrA#P&_kW28GKyGqF3_W%%Qw0M zFb)2#m`ArMHaTyX!PosHXAj0q`0KG(yPwKePp)Mmn6A{RuI{H{Rql&H1Qr`-=zM08vYcm-vBxtRakWiDx#WguN8vU@c z2=T<$9+M8XovGx=0B@pgRNSV)7WNI{l_eK4l`R+L;t0ZmRM&=IpnMcKiiMSd8oO&C;6 zL8Mr@8>U}KJC;=)zV7Gnmy}|aET9%-ZVB(nuN{Zs71UnpZ(MWe_i?lEa7<0xo~Y+z z2&xuNk2O{jQXhZNWl+_8`kHA7MzJw1XWd>s%*Smkb8_-L;y;>}Q$dlL9u+n07hA=+ zkx?68!_3b5+45^TBLxFwZ|khGA#6$(29A?ZV=wk)zCT9sK^OG#cbCHJG}A*5@K}C; z<>132V-z#p!?fQqW^!iKR4rBg~kq(Qnvq$HKD0Rf32 z1%{L`Kw=0{VCa!Aixg@vJ=z{t800|=hfU9eew{*_|l1=(vB6Z)m1F*)iD;@ZohK0)5NwHwvqsJO_Ws{*;zvF=v3oj?$l|sfat;r zHL-9-ixJ%MemNu})naWx(CM|8t>b{oH9AT*Xv!(#D!tU3st`Bp?gYrrah@`0amw(Cr=mv}VPUnd zxh3@C%+}oe#8PQaz(XoMm|}oOXU_-sy(7_W!F}M-h7|M+sXQ4Y_008*+WJArBv?|< zd^e=XnjkxIBI^&DkGMC2f7;x!2fZ_-w6IejN4rn&89-Ud!LZcrcK zR7Wlwm@^iSFJ}5uYJ%S|9(q>n<{ya|y^qq;xzw;W#f&o8)t5t~87_-vM5dnD`bYiQ}J$@cDgRua~Eir8yKxVGOfBh^Ftp?63ICzmkQEj6#zV@b01_rCp2d5<>>DTN!5WMT>I@FM2lJ$m8-3{N zO3%!CD-Y}-JMLWGm1eG?f2_ROabD%1JFO?e_h&2%>|U%d63!ab@Zeqb;!q@Xn=Xw8 z2xi4b-Ys98^hc&w*Sbq>)cbt(HFsV=O@Qa|;kxtTZ;GfLlUOMD~x|;NfZE zj0a1MSELPdHqN~nn%6~D)q`Un}w#@{y8Rz_Nc+vNT!pybXG(Nr25O-<~S zR{y$6pB%V*+5CfH_lgDUlB&q4iyqWTuur1p;{1=}z^aT~n_i=#`}S;blg^EqOAWIr zkiNBHT3scUBvC~)kc2c&9Rb}=52t6Xl?8YXl%1JL4-&uG2%+NZYZewpVMy(W-DHz%gFoKy zGVFQY%a2{0JpFTL@AQ^7+(fy{9O?CY<51S}82m|n>JK8;Q2KK~OL4a|by2TWarf1_ z%OyQOb|qoktty_Xv5;S{s~6;Esg`po^^E%D2hp zvGc3F|MqTywV8+ix1H6kg|;-(S_|{DTFoX$A$az{+WQEt{H zYALnu_#t`UH$uFxlo+@fEa=3j$-}%e(h0j;{>x3#i;p}OI_6~#z*qgRakrP(Oi0__ zc2U!djT}Qy;v@fwYVNj6dI1li&RtfT4bKCin)OTS&jOZ_YxQT%V_jK)6*h&I29pA0 z7l3@=ke;jDNQ094S~<~o-UC5TV%#^9#CowW1_#_r3(%jui5ch5%d&#vzM=tv0R)W| z1jV%1C~OV+jm)G0Djqt=-thzw(*eHp6vf_{Q{qoBLo6|~b>rb;Y6(6*_NTXE0_0 z3%4=WrO&2%V5H_b~My^0q+_WTIKXY)lBkpeWi6CT1 zuVd0*e5qcn)HBDFEVS(|f)~FdSGtQvGeWa1gS2`>p4yDs2I`NL*9?Bxoi!3Cy6Up8 zw9ui-kNYijV-BjB>7?0p>%5v_R#Ftg^4Yr;Rl;k7R@&mb!cFCCXsfdJ)#`6*q9Flq zPC{Qvl?`>(Q;+SHES`X5xLy6M9exV(uN9|;ngsKHuzXkmAX)bA-PaeR&hP9|ZJ+xv z1TJwbVeDS5?t}Im*W8%rE9Q$%A6{J~=sBX7c|td)tqLpcT@qo$hy?PNTxk9pRP3G( zwoouc8YC`Mo_?+YPzGJ>S8-KFm)G!7^*Q31Fj34Fe*4CdxYKU%hxsOin`g?!+&9dP zpn@pvY(|}G?{UXo@%*s|fVERzpThb<$CSbAd1yrV=p zt{NgIBZ~LjqD5{wU!4~oa>x@So__H z83^l1gIPORD*ev(u>>e)6r8;LIPb%}ARiyJ^tca}W5VbZGbv;T!c!uj@oBhBj`gvF zk5DLGoJev;>n6%Llnf}?c$v!d{)ka0$$=rk$;9EYL`&AD_6~qqF7i@}o8nKbGbT#x zP)}^_lAJS|_WrOC6$@TMsC<6s`LO@+$Ez)c)Fjz9MOaJR4#l1FcOs+m0`|Yui8epp z`O2`O3_T(1L_9#x$;UU4N|K%x63B+&)m*!NLxbt!x-|@6a7jq z_zU+dRD&B8k*PLG{=B- zZ?*Lhh!j@TKG;MSY@cNim+o01#q258&(Ji6?X?Pw@*=Wkyo*d)^>vsUr4yPrWMFJ`TwVaN5N`D)}j_^ZX0J#1*?;u8#lbAr6u( zyDxY2cDbGw9FMS!SWiB8l#~qvNbeHH{4tLmg`Fg7l4ajd4$wWJ^HkC8s>~tk!jLb*j56|w%VY9m%A@nO%jKWaG|Ro?_qSmMonamVXrS7k z5ZsjBN~KTU(DEkX8@KzQ?F-1s;T_?XD;^LY`Lt($neghV5}z$Rl*% zqxD^E;VzB9bC`f-PFb72=ik?6)mY4D%6lcoj?k@M@z2XyakL9Bqt**MiR5RgH$`!C zA%vQL^CkmmL*r^xaZ|GC(e6G#lHd1qE} z6*;J=;cwr?v4i(Mj5zc?9WhSgLMRFkiOST+@v}53$`0kG5M5nDYH~k@LG4*~NCG>e zhXGd^&d-G7_VTaTi{tn79}LRjQ5f7WRD~2`u3ufPlz6*+GygUl)7MHRn2-OU(9kF( z%RYxkE5rG$8&4v=}@u>M#yKlQcORUQk0c3*KgQKrsO=R^l;2Z_Pq%M=Ks*#0k95KU5n{v5% ztTCZRC-F}_A}f|5C#ko6H9KsTi`ow{Qc1 zeUzV9ylpZ4qRL!;_Mz+iND{QY;Op4+-pQ`aN6Vkb6 zaQ=TsN_X?8bm8n*>1S6{RC6#_6~W}Ysmv9W5*4Tv0}-V?#ydy&rAIkEcKn)V(e&qd z8`AXcZ46b~rzyG3zHKrPU&uH&CwDx~IlJ{#iLlI0F@SHp$uO~Vt-;qn?iLzz;|=3*x`)C4D_eU%XL%^o?#3HKKQd=|&Ea9$={k?<0KgZy$MDv)|; z7a#UCyrR;AZcsnGOhrdt5loS>zlmFTQMP}2@arO5wP3WwDz}wk z)H|ow$Nz;W&DETIP&wkiM_jZ&&bUMc(m9GOV}ZA@EC0HsvzNdIqLE8xKXmi+i$taH zH@XS*z^`-Lqd4ZRK5j z@E-oXiv1zrMYpRg(h@OHp3FB5vg4}QBrrIb-#mfKgCNl!%_pKKP z9jUo-AskIr09`WwzD@DOul@e!-a>1BbbQ-N4=%fj2v?pWY1*ZgbjYQ3_D2}uJBiOc zn6NX#CbAqR;4m$NlCDwdKkt@q?%rJG=HaZ2hBC z4_azRIJkWN!>KWjpJ`c_4J07Tev2mc-<4h{`0dW9?>7!VW!U32HKUX8JGom8*ivlM zFce)xR&E7vT|A~<{MA^9`Ff%6`8v2rc1c^E*4r%t*LgI5`1xs)XGh@3Yt8L9h@{a* zpXZhMyJ|)|zBAdcOYWMd;C2}&M3=la zou2HR;+fyDsk$F#`+LyVr1Vg(61u8|4aEE3WzgIDr!nEe>(V7h8GW1^1xY`AEin1b z9!B}JEWfIm2^gZQwSy4Kh*y%+w z5H`^!r&qYySDbIIMVXNGk=vA=|IxV-r_0g@eR-^fI;}s+D5@EDKbBTaTt+-Y4s;;R zDDAF@SytYbwM^xw84(sZJ7E-MIRA>Oqp4ZBU%t}^YMhpCrae+azYf20g96|x`x!5a zbkVoB(EW<9si0*$Q4n0{Ud?D7jgxGKa&*{?&SkP}%t?#b2mdCKP${jRO#i31yW{xp zl&@8m;M5s{H)EPvw_FtIZ%mfQp?SNwxkV<;CwBYLLuO!h^QC zl7TPp9e>%o_4;_3C>v#k+o%MeR-ou{8)N@d@WBV?BlwgMkXmFi;)H^3bN-Iw zk6js(zp+GlD(_~_raTJTlmQf0#g^k^%#-6sr&(F7juHp+2<5sD5;`kc@!2_gU038(hUwyO_n~{!NvPcj8O%6zEezQSa@n%{~ z9KRl9q7+AH3@MEJ-=&9B<+-hg^)b~eQVm8cDp!5(o#XVWHI5&(m$jjWc975d-{2fi zxu8kup=H6eS;Zr9W#J__p*)(WkN>rtuHNwf_s}Of!H15yq3=<4VeKaGwW+f`rDdie z?n6baS@lW${TlNCb*<_+kj^)ce=AHcwBnQTce3{eZ4%`K`R*A;OBu})*7Zzs8HWx0 z_poSNhi&UNoZ);2w(ELa1WgyVqYK-cWbO1>sEc198zrggLKi64Bq~oMJkytL#nOFx zB5ZTyTb8o3dS+oYS; zf9>A~Q3}p~E%6Yte}ur>$JZ+WLIXO0k$`$^D@$$*Y^<6VXmw|IXH?PpWVG8X!Ix{N9P)cYE3Lc7#&>ggw_${N;mM1%o?> zE40^W$ni+Ewusb1?+q$O)TJZrY`Z%=uI>jMFFyd_Cws0+#H;4gtoPUdc|1J4-!y%4 zo%r>i9*oV)&0dko)zG7_pqpf{a_^@X^1rU&pI79|aq}h9bc1{Hz7L@B?1#Ht zu_M%M4hPMm;acC6hOq<+^-qFh$zHQO;iXW!6x$7dEw{-tsGyhz!T3tYy_Af(HDf53 z(U~^Ti%dQ)`Gz0AUvP5dn~>A9mopQeur`8I=Z*B#GYc%s;+NCLCSd3LrAs*SlaX6; zVSc>@yW#_#Y|nFjt4G+^gZw_-N>*JmXk_0CQt8}34VY~b5GE|~T6OwimHgyo*A3u> zzmh+8>$~{nx9&PEr8T{E9?9p#sGC;M6p$tgYR{G*6R8MpZT0AFEFbu=279jpJQ5^H z`FUMQT7{7A4{+sO_FDbw4&H2$dQFoU^7l=n@aV2x$)&p(Ux1uyU(iq@R*dSFLf`u! zCbr*-?~PTa*Dc8cr=?A^=7Ugd3Q{Gt%t?w0v83+f+`7j2l*~xQTw_|!%;$OI)+JzT zc}pl$YW3TL((M3#sWQrnPBv#b_!qw@*Vr!J_K-#8Am$(3G3ic0Ox{*qXHA`BJW_NT zDdMwtZ;(R2#v*~?x*E~{$MFF2@_=v|03<;@7=?W1s7V<}W7sFOfso*1pwNm?zAJRD^4D__h62}R? z7>kUWKln!RsKNn|oFNGXj1#)7c8!zK{%PPpWicY+o%yfI3|^4kVl$f;A6;^cNPirm z3@D82(pKb9;C>3m5gru@$HHM0DYe1Iw946|Zb5N}Hz0X6U$V^|#j_NgL+A9r6tjD` zJ*3tWrNLhhdB&RpD6dfpJ!eVXX_DO_MUT9*^fCvQOz<6+dMV#a6COQh18VQAhw)?i z`!cH&XJ+>UcFRT9elG7}I%@VVqV_$c_0~yRa7M`k$Lld9xrL96H2%{pDeyu&;SW70pq zq@=eu|CB#nr#Z9$QHnEf2>cxhchGE=UpY6S=M0{6Px#^hFcpd{wG!F-dGFtJD*AcN zeV?x`E%UwLyY$Cgv3!M7pTrJYVT8LRMa4?-=z?UI*|#MYYzBlc<};sG<1*e=5>GWP zKOUWa3uKi#TXSgk*htSZJS;~o@Vi&8h8|domvgeVp z)b`{RX|q*6NZI?Xi+hzEi*b%;GqB45puEps)VQ2mt&Z-P`D12ttAp!Q&0XeRCov)X zukAY=@V$tO`rNkGNK*U8`z8gG@qKb&6TAMGhs#o3&9WRkGGv-x~g-u zpHA+)7NY_Hj@Ya=#mQe-ZBq}c>!l3`x9MPL&Y6oN1L2>HtV z3L&)rlfj+%-crLj(2`ABMi0i~5!a4x2J*Rgo$23NxVekoju+vPn*D(CWgMJhN=t_- zT+Q7-`PXhy8GCp6#W3^b+;|f+?4pGsye6s>^IEX@QsSj_LU)_XXx0rO6xz+T^cN)C z(Srctz3Im@7f}4UP>+OG+RD172JQ6)F099?GzO49WOXW~I-3krqcw9zVU`-9 zr?TjD6ZH8Q`SH4@C^~WVb-ETXnf-WaE7(iX$vgEQpz`@m8TnIKg3LlpVk*D*frQmz zvT7A@1D-$T$Zc=Mz50)m!L1G>e)$C}-xdZ6(YZ5QA*?=SUxdQC=1Q}kJWy~pxVNtK z%p?(@9>;0cxyk5SQ})7bZT&-rBNjue?N47InhQzITw1f4SYu2YMJx#g8f_+w3tT`x z#+d#Klt8UtkI?9=R(xzKI`>U%w4-<)ATSK4B!fPm1<=4PQDPvo`p!f!6cr0Q_SS+k z{^Eo=x)yfqc!^a|JX#jq6j=yfaKQ0ha$0#K9n6A|txFYmXwFe$vhjH-^prAQ-K-dd zYcqX8fg_2|#g(dg+rqH!97Z{aMe?hZ~{&V^^kI*kuc6UM})p=M$cyvh!2f!~FL5RaM^^LBZ z-fbO@%T#7g<*mtM=DW-~0Re2L!wrp^X0tNG9GfWvGq0pJ%ORlkh{h9t9lC@EwIUV1 z|BSu!=yw$eq@7i&(lxWZbpMQmX|AGnq_B<3XEg5kAV3ln<2|uV5L$>aq-DbC{&3Xl zB1Psl9m#S@~iRTTWofyPXRaQ|S*YsgP7U;|a_r@4668#KYO8@s;S z2q55^^47YoVvklwv(~|FVPzN3Fo8}BrmH-w6}>k0fGQ%tn)V*C&Y}*iss&A820LNp zxR~M7ZPw^RC-G0V`g!A#Ucd}5;4R0}?I0NXQZ@W!&vdBDn#7-Arp|u~*Wxk(pB^bI zf8gY?_{G>um6&W;Bw(ikU>@?`P6VcuWH+$`y!7;z#F?ok1Dz6z(+%`!}4b`KxvGu8^IeCeX|{F z3v>PNbFT_T8-sw!omsu?lO|B!|0CBjBJh&UyqMXEW!L4+c2EWLiSlky!-J45efXOs zn~2GK_&za<_cQD$kxZY5qZp6i1Jm4(%l4QblW?7P8XTTo~z#XS3%|<x2LtJPtNQbZ%njR?(yG&mJfjYM&nNg~ZQw`caNWiygHqBL zmRV_*Q?Xl3P>m2+Ewe#gjQT+)sLUqZl;j{YGE(YswDGm~j1$(rrK+5*{0#lW;ilu` zgTwen;+7_YX6uWoTE9FTC`d4Tt9Yngn$R zMiU_Ec>35?+kG-HLdbQ~NH{R2VzSE}^s42a4#*~zsiY9|o^+wdtNPDlsdwfd7Af@g z)qdBQD?Z<_+U{iSOIREqcYPIL=2MpaJS5ipK2tD)2kjR^vuG*Ed#veYtdCb=aE+U_ zRs`g_IwfR13o*mtE=*8AQ*&8B7#b2ezACoT) zFn?w^T) zi4X3^TVtN9>LuKY|HxHKzBLv80-DZQalgE=XU^xnSh>`a(Zh;;%7t*t&F3j<3r4bA z1qmNplgIOG+?X!tnDgLMm;NOdeAvOUnlP^5&4{oVNy1T3EPnK^H2f&>_sWN9vqS)=m_4mYG!LPM3W@wuYA-h+SG zOTTK+z-}fW52)SG2=OyM^KLYo9hwVSG93=Yd)4B+^HR+D{ti>;_2Z_GT3nZF4b?@% zRO~|mcddEWudGYsS(p4CREFi@%fsmQeK!6txYS28>(OT7>#RD{A@qSeC&uMf4%o)_ zS1qF?dE;2Fu&W_i?D3K@9rQAL_dsbTRVF3ZJ3Fy}$}9>X016=$K!&7;d+?B213bC9 zQM=d;&QPHe^r_wN zsw>R~#(88mQ@hdBibMU3PC(s$Y-egV8mGip+j9B3QRhM-8V$z5a#P%Lf{*T_AS2_~ zpv~^)n?R`^u_Qcuu?2IM? zE^d{0zjyZP?kH$^0WArsS!c+CR4OnE3eEssncfSlYw6>ypcvPQWvkxCbA4`^fVYIP zOVEJ)qa2rv*{2qDH9B@j9jC@9VesXd_^X!XbN+8AinoQBu7~M}J=wuR&pFtrYsb8J zQ==z?K*7wXVb&?X6iP^g_L-8-H;Lit4r+LsAe&rgplUOv&zys(>SEsoko)(>ceTnQ zrMS^ivF5vWe7v2^=Z@jf&|AtD71^ECmy|kw7W*%Ol_gb=s(Ks*SpPsmTFBkY?Q^D0 zak>V%GNUn23>lvb&ndc@!7_c z8hQ`&2Cwpk&TU8WqKF+)vy59i2BAIX512QG!wugAo|)n(gHs#LBEQ;u8ukPRVG}{X z*r}p?`Dlphe~1g@c=;WBR67mIpc)%3g8id6+}|ZRdL(oP_VNW|2V;prm573Zw^!@s z!+0byx5r=e1>D7EdMoUZDATLDLoET!TNdN8-}HxV)9~_m+`Cy`5wj@%b1K)2Z}VXI zRZw`T_4JHCy!|{=4_$JXib~Kly3jB2z8`mYpVyhHvJtJ1_J=OTZoa*yo1@3+kui=B zYMoz;fmPobTl=fRNl2`V1G?U?1Pi!+9&kTAu+e{=6<%8+`LOdd=%O-8nZCU|=;dH1 zbX)YSQh#l-bO%@@2_M`L>&`P*^^smIcL54j3tIXf)Cdm4_nam_|E$~I#$6lo^|P0l zgJPpyU*`M3Q`;7xcvEN7IAP~sdp4*POQ-L<{^_j5WNRE_wdVEl%#KxWa+B3xYiVM4 zUo$y)xjEv%@9u|jZcJ90NnOvy?}3Y|$Rhpe39kX4WeGUxf`j;F8cD3$b{)QS6uH== zI4Q#2u40Lxgd0#%ohB@@1k@0N0)1E%FzS3CscWlRt81?8SZDf@L;bzr#YEc7RE)an zPokMQ_>ax;6psAUo)pt1NQTOE%a2`8S^rF#)-fxEd}ilZg06pd-W_nhvSbAw(^o?W zgNu;@AAfiJk=@xRW}z|@pH^(dHYwaXmCfpTO143J8YOY3PKIV`@f>h41Dk0I>BSl& zWNmpOJOIpQdbWBe2u-awnRWcxo0{37EQ1$Vh61pkga7TIiefh-tjLNaXK&6iG3`uX;L8_3@}n=QE- zohuV39-TO%nX{}lITRy^`V|3cbXIM?F6O=-;UayNA?n~aTwCcp6|npt$A!1Ib)7v# z>UrXv!BlOUZYeey^7<#bD5Ub;`1L`Rkx0Jha@NnBm5cvhZh|Yn2jF_N05(P?|G9BT z77(NcHsyaE9C&Y6I<@0FivDk3Ya`4fv$?6s_VNGX+HkE2LElF^rNw1=XU81rqs3Qy zJ)nKNkgHUMMT2;fw7mCE^fH8w0`z|gkeUfz2h_ZlXoD%RueTo5_k8zVJL&2%45fiA zp3|ibfCDYLd!zX~J>1$8>p$4A_tsdu1a?EKKKy#NH`Y|%`Nc!X8 z>6kCS>Mf1$UKQWwZPx!F$10N)R+kSnC~T*|HwJp`Mk!_&Lnac|V!7ojbLC119F4N# z3-qf_p8gIvxgly$(&C%OA4{R09^F10a4q0d!o822fEzVF6d`{yEwI!)V3*U&-*;S% zH<+y|WfAKEHtzoBK3;<6g^?Z3ky}G|lUUWz#RD}R`0)ftod2?9(V3kEf9&R|`J*s{ zYVp`v_2|rj*hL7v9|RSJbph)izYz&m8zXYI4tl9B(<~tU7JH*_8Tx%&3dHpAam;RU zeKx^A{@ajydM-k|-+jaNKJr=j!Xrypt$A*~ev@tREuF7VM%)t~ytzi9^G$JOr@rL% z*+*l}fr=(xQtDE4{4=UVHs^$Co-Y4^FCjP-%JR(-()Eu2d-9f#wl(Rys%M7_Mfias z+t_w^^T+bhdl_FttJ9Rf?6kYS{MZ zV}YCRB$=>X&;Z3If&V;&S`~19uPynuOdJWc$Kz8JGA4X(~G^U?UK{-+%yf}Wv5pphq<|)sC0f~ z6LHfFxQp&T)(Ue%6U#9dhc7NR$n2Vzh>L*|P4Ykt*@yjNNyct>-;Ly=pn~o5A5rht zhP$vu@^5y}O0Yc}7*xXU8tQvr`*}wb%eEjUI=(!=PIKtwl-jquXT$;P7554}KW6X(nLj%8Y}~~>4mLE{zCD0-Z5F$KE^qHreBn&H zD?IpGa!lep*>n)jXoIO3D;%^Mun(F&$^6mRyAn7%IZCm+r5V$()yTSHE8$qzlVx9Z zy|a(Gy8;jcil1mcyXkr(!I`h}aP&0oX25cmn{~X_d1`30rxm9qZNc9Q@sKK~YMBQk zQD*1*P8me);tB&cRNf584S;pQbNR%pIjw98Y>kcDSRGn^YzJCDk_@h&UjvHkv|(+V zXU9B8H^inotu9LZ<{a-bw_CZwTOOTBCc`raiszdGv`SV2#?Bt)=DH`Fi(%)TN>O2h z+X#Wj2+)c75$&uvGdXQKT(CW$X#(CaG8@~mPb@lpd)IUL==3hFw0xU8f;su}&ZCpd z0TC7Cnp1(iYWl!)k~DKe3o-$m(YUmbsBaCqtEd{y?1q5MI&4dey%U{I?DdjVqSD z?Ez$;m(N-tv75B_pT_6ob=-7+n|k~soR8@zIdb2qQO@@D(E`7Tb`4RH#PS9+K!ZG} zcdM9^mNbH_s5f-o7c{4xqzlm9lSYkKl1Bv?2=!q685Vq*z^gIx;Mp4(pM^pMqQpW?~=ZR{D} zSml{Ca8)?zRXF*14cU7h%W={Tl;0FETpu-gZ$&x3QwJg&cyFIq0wqBzO0~e+Yq}Gr zzfMG~v`mLSJ}Py1I&4@i*i7Z3?xvNRQj^*5+&?vxNbLf4>b(mFxG~kIW+&NQRO!Vx z9M2*D;!LOrl#THa1_AZEX6IF|POuGOj=bmwgZ+ zI|7K1zt#J!8-Y?Iecrfb$WkRw4r8T>|k?Oy%7UmF=|@}SoG=GDk>n#@R~k5~WRp#t#%*uQK_km76b z;Aqp`!O<>K5O2LY8Sv|%hUR^*Aq2F_g9y30lDGcuVCVZ@Qc$S+|3di&(J4bkD!^$Y zNX=Gc**#u_@l{JDKueQGke@I3ttf$3_sxyk+}?-3eFOPV6TPeXLmpNw zSpe#c{E9r3!)|UJo4ZBmkOS>BQWu`=xxQNV2KOt~ZFrkqBZ819m(emsHEhm5>|n-I zeq+^_YlD(CIuy2{=)a~08&9;)fzk{W|BGG(YUr4DJyM2|nqR0Ol%`wgs&ZE*8E71@a=i!)`Wxg+dNo>0<`RUD74tl0UlS9?H)mdi&;Hi|FtPRDNE^f0a2X-^c z$e^PajLQ1o0&Z=z994d116f~or(s`ZWDB%rDH%<$ft;^`a#VN2JFWtPz$^u5=KTnq z)gkPOazi!hAtapg=x^X@PA#lRpAmWjY(;m-XxibZSn-xP__ zI^Z|9=~91MJs+tSHKwzP+8Ce5AJieeHco5QqS!4>+9kKw<$S% z2vNZ{Dq8#>8u$~{_NKlw;=VPt!gzNF`1vAf2oYQh8N#Mu4-et z`l>4Y3N1shZOe$`7Hl>ia1-#S9%{t>TDP}lRGszx;tdt?yu$C$j;8={4AR@HBZa#@ zs_I?21ck{0K$ug!66N!-Q7qydd;g(E@HvMS2SMv)j&SGsFWgT$`<@%OT|! z1!n?dr0%{Q=P)^=Ag~fuJ$tHE2p?;?M^x^w1^Q_%uiC+^qxMsV^@8hucyNr!wodh2 zGDeE?La^K*49T8jJIi|UBsN?^U9JDSa z(wS&Y+#NJgZyUBdBqTJT<-Cfp=+M&Wt=}{EVgS-5sFC8VwL<_fM-80;76v1Ko13zC zpdIDeKum+|CGL7sXRQLS5KBt$kd&$|N0GH6;1?bMS_qH;Asb6Zs;{cEKiG5)&0{U` zSFfNl5BAdHKMhr~pPru-{xPG^t92PE0KW;VidgfGCH0_slvC5FymYGfHz%;D`1^#! zt~)AI@wup1ow}O)CTY-Rf!dTF+p}=)TTlUeN4s~N*x}n+!cO5*a-_>t5gXFcAu9`~ zTIY5fYaAj!*EcDb!=GyJFc2t+vU1@Ts#fcoa$I$bp{Sx4*8Z=slXoOQZaX#&>Lz zU*KuA5l2?hLsK+Gre23f%xea6B zJ8+&+_61?H@ZdHs>qaw~-1>!KKQS|H=W<|?MuG!MnC`irpi z??(!=dw${kkk1$VTFeP+2!OwHzZGadHPx?UIe%dkQRW|{g6Qy`Guu?JsM72>JwM3u z*Fih73?#M74;%s@-(-uu5}cIOB}cN)m+nO$Ef^EdF@a^5>3qwkb zZxn*|l%oc%A5zdar0llb2~tC;sRQL)s|psuq8?p`1nzSV=&;`BbUgRMOKDkB1eW}` zxbnk;zfw&fcgl~mk}We1m0s0tJqjD|1S>LV=?=Qrd=Va?ynIaG;XX$+#j&no57p3F z6d}8eKMI>(>_c}8;{F_CZv!<_4=3-f97^3Q2w4$QK^Q~$ zG{9WS1Cs+Y*G-3OxCKox@&Nbl6fC<(e28Z-w{uJ-j^k74-W&hDxMLqLMBl-3fj1j~ zu7A)W@!3=|v~@XbEnv;m#GQGCEifo@&8eOFl8dGDoE=GIwV&KwRpjb%dXo0rd8CVF z;SgFmOI52BUQOaR_LONkcHKE6BMpW9jx09Dvrg^Ui>h56W0XFMHx3^=fb=S)m zgSji@E$|DnSvRIm_NTTUSA9RXkHcPLDIn~WABzYX@iy{ZSX@{Y{qs7byHSO~EGa2b z(m=_t)67~O6Rad7Pv%06EYnu|X*{plKhApK1NE3ycQljPB*EK4UF9l@1BnMghr&ZO zhv|p8-%VJD)K3ogZ*mCn#@wM0O{Vc%~kbAcYo2M0!y!&4RyEB$EDM%1(ukpNoh z8eZmAHY3QSBE72gcn5(!RqZExTm&BKVuSI|Tg@he4O z;UR-YImVx6+RDh7VdffguzT~vRw5kCVkQ1PxcBXyB?lOgG~nS$7wo*u4em2#`DP4Z zJhp0?Mwe)49-L8r0-i^92+#!7WR{QxiFD(d$l4m`wZ^>Ozd9bDr44zIo9w==6n9Sj zpg-pH&EQ_WSqLgvXZ*T5lV6)5p&93&r*1{gcpZdrZQ{nObS0ABGLT! zr(-da`Z)ln&X*)GUKdMv@aN0?=rgUrpe=voImyqX8iMHa%e$XQ%~FSC){qBsCm|at z0OS&P1-2wrT&byVCA19A-m2*hS@F{gDbJ-@9H88u_2KyVB`bE};?Y@9I#7;nfU2dn zR3i2RZ;QSVUPUy6%Y8)#iJzn21sATkULG2Z zNm+mwrAk}~TWKi!=8rQ`*MiQ5ZK?j|Z7Qbet(TK|=SxxI{SLc@m2~)VOnlOCn;y!a z4*)#dc2}RhtJ*w|1;>%Tyl82zKRWYGb{kGVq$9#5tT=vB54}T--wSig!g8r(Sjae^ z>627-CF?ItL1*LmD`d}-vCW`V-Bj55hB7+<#(t9YmB2lpka=3^$l;(L8R{nY@a&wJ z%z~wM^VdjynKH$qV}*ilSbT(U_{A4e-Ta73U1ho($`h^OJ7V}#JnJukk#uJ*W4aeB z4O(v%SieJUvAU&x4cHzj8Z>>{!P#h=M;_T98=nn3Q(TfBTfZ@PhIYt508`*X+qA=j zGi=&odcTG5=IM~(zAVN>Y{|t9T)q|v4;ITO^^vnYq(Vkff%&(e%-{0Ci~pf>8JQ0s zfO1fSSf@}*uALBX0gzq!c+RO`#jOm>rmP+GI((Q>%}=!@hOB(W>1w@e zBe2>m*Be&%z_tNTCnq;u{ni~-KLg`U4QgZx(8o-q4Yurw51FZ4^~lZNVGb-!{G{HE zTNACnUd>nKcQ8`TU#ACj>v{9RX&dUzu#$xpM~8cuato-fh4j>jvOh{1#=L6aCG%yT z6fCaf_$XK8YBOZ625g3sgI#4)0IG6*T_CNcp(JZ9Hr`NoeLd~C1V~^(al#&x%}Q~? zytR{7D+B4x8@)i#gmzTOaMW?h>d zng8qo%;0~a*vCL2zz(rXb1Pj4K~)sQF9gPdP)cLiAh&j&s*k94Iw0!UT&s+M00xD( zTTb1@-A^bI3#h~<3a{TUW=w5xG;K^&`;ZP-X*O)jafQ>z=ecqK{3E@9!rY{0&jt;8 z)L^7$X2>X*q64x7n{!mzBJ}d@8KANLHvF%L;`z=@a?Q$Vm7~U&wl#*>Eg;Fr^ua=H)IoSjI;usjHH}$7 z6=58(;g1ugLzRaaPYFYVC>EkRVSrp2XF8kbkm}gPk+%VmbSR%(gqZ!kuUU&oTa#0Z z;4g-vYJ8GIqEoau0NK9tccX`gN5yK8G@7{;)Wop@>+w*eyDCMJeS5d+*L+pz#`ev? zwtzp=x9?%Gkgk*D9izBY-}iV*G`j-@%DnX@S-q|~P8TLM4pTXF)e87R!A^)ED)-=r zxx+27atUqSA(p3KEmgSNsdwbh(+u5oDN&O?f+g5Dad(zCzpPy8u~wSbdiLG#w{K7LOCL=i)1C{Hjd_kNyUW1uY?_5q zB9rsvY4EaQ+;mz$wa7L<>X**WE4@m6=-o`=-{0sYcgraUS+=~(aH$v<@X~@U+rL#W z!I94gR>AY%r#CKf!dii?kdhJ4h5Su+D|k2j-l@^S1jCrzq`C>*>KnXb#{Ea40qzPN z%DJqVNadzg2d#q+XT29x%`QPEUw*Yqi4dLTenlI+>@?2xZ9AM1X%-5rAr9WQ&0Mp( zle6{`B8kCTGa6JE7dP$SASDBeuV3qzjlP8r6)C3#u<%1vK$2L^3itL0v~4MF$3)Go zDo-O8BB~7&P!Y9^ag2fBn41jyZ*?Zg^@T7iP2^WxF5Xcdo)bE`ma^zqyttpZcs!rT zY~CN{6@v{7OdIt{HSS&DgF}Npk>r>Up!|;JQ`_wV&2J+;Cs=M-^QdqxD(=W%^Wh)J zR`n5KKxT^~vcY?5#5OZR82N{8UUvYWaTjC8AmiL*G7uX%hMT}_t@!}oqDO3--8m*6}&1G z=dWTzATyUl&Si&rP^i043QrMZ6o&)ifs4j!nJmWi`o66#?^zoA$Tq&Vwd4l?1%M;; z`fR5+1gFNxPBJwcOGDWD(9d%n-IX)4Dm^Ou^Vg*_gA>-ksgDw|Af^(%LF@D;_TW($ z16xGHt+z(?Y8s@~SSZFq42-ZcWx#_2(nL$_2DvQVh2kEj5m2pjZyZXh3k zu2de@Vys#OGD-ea8$fvlQI9=GJh0?0AAD(9zi*Qr4jj5wrxX?Kk?cuL59d2g-m-*- z==-715390g8}N6@rQbZvT=GYWe?K$LUUKHi;3D$_zY3f~s>~1dco$Z7vWw2{{61PA z@b2T9{d9yh27cLrVg_aq^)rNk=2hxow^^d{9|#A|y!|g#*f=7CLy6XHWb89U6qk3p zka@v&uF32fCxQkUQFFgaf%ZU@G@TBU5fkf`4XoS-osL5I_O4*>T^l%`C8wFMrXC;7 zkVE2V|IphynFQc$d_~xCG{y1BG&H&V2H5Qgez8qc0<9EZ^TNw>G_VEg2h^EoWozCI zXMR)+XYbywPR$(#%7ZO6T`27v^h7(le~AOTLnW`FobYCfrp9d&NiK5({n{gsrh{Tf zy>u}+kA9RZED>qjy;WHP4D*Bbr>nGU|M=Gz5}#XXlJ+mBDfy0L&b8SpdCZf$b=}53 zSay+pkHskn455x&DyME=eu2a8+xI+bvNF&|>!4#!<-r2)yO;ng+T&Y6EQhbTPY$y#+Qh zM7Bx68Fi_p_ps#%LFcVRaT34Zy2>Ahw@JJ;Iqw40C2}<)M{S@+BA@Iy2_b=DLaYua z|H@1cf;_o<0xL>a7P zE!Bc%a3pd*{t=B%YJaf8!C|=SDwDZOHp=Lbh?zk0P6Sc{(RtGP31&fyz-L1ggNt## zmmvFcF;fl9e;CTodt>B9tUb0Guk+x`NgQT%d&#R3wN+n&{Oc{67?Bx1S(iJ1doBnFKSNS^5> z)Q)T}I**UO){8Wl>FIXes$DlZD&uiTZgU<1*OXTjWo#`A^`rPk&r${Sv&8wEnj^@| zhB5{WebHHVb(La%SCXgZl)*X=EDzPc32O9!t1*lPfL>eCCxRIyBIcqZg=SQo#`TmW zf)8*=sinCfBv~jfZv!DkCb$0*vuOw=2-=^cd#r_od z8$sItV~^n@M>ZcZ1LsP#=7W(hLDj}zf_Sot2}^m1(PaS3%U_{ll7Dx;tp=LKPXDfI zSAIJhI@OV$eJJ}We`>XT%sZ^S;8i}P`uo^dTTi^2#%L}p@8zGOX)2-*`I<>(7YUjCfCNx>CtCBKtJS$^wu(_`~+ntN>H$YMQ{|JhH7 zy;8RPe5zDJGj9^RkJo+uo^K3TWqZ6X=muyau{GD(aWe< z^qgm@SC9E!&_gG)!ild^;LnoC1et;}L5BZOW->TDzq7z3O#(v1E_<~rGZp@Qzt=#2 z-PbR%*q!AnvKJ}r+Jazqa-562dVeS|O{2e6;r+eq^Tg@t=SRjYZ`;@0znEI zKH`*qDPB6?2LHMJER`Nae^2#?Kg+ZHyg)Y+e-{0K z(cA}_>a{?dklt$AF+HsENA!AYsj9_26zt=s=o@_KQSm$VStZtcsmz3zdD#2uxvepu z{`IA{r|_PZZks(n702@@iqYkB!T2K_po!5}hRw3Jfs0o30a^`tL~Pdeaz1PUX1ED| zKkge!HyTXFdg_z=rQItuSyOG^TPhl1C1)4wqjBMugB^SCgWh;KZb@6#nl^?V9x}XeH7+A;l@hm~h}FS%QlB$;&ckVy3`Hh=-!Gp2eic!foXC zGtc6=o$>?A%{x4nE{hjhv-~q9!Ia?unc)7(zXOc^;)PF)!)_8#6v3OH~PfaVKuPzHF3nKXhyRn8!%DNx)RQG zu}++`q`@+#V0_;*60@N9a>LC3NMEq?`dsW2Ou*k4Qww9QjbM_dt(~NZpnh{N?x&OT z0Fyx{L-9cD_rt66IIa>N?fki$sVyf{`8JZwvwpq4nHr7UlZ!*My;x)6EiB+7fbi=2 zPRsl)h5|tkz8SZh0g|KF8TY)y+HLQP|8q4g7SWu^Uj@PIN8%(s9*7c1+uIpS!7ma58H5oEn8;kn+al|#_y=@scN$Eku<0koy=JDnh9`}TT;n(0bZPtqYr zky`4;$2wOeXyY2;Qnm=x@+U^jxF2HGq>74UTmLgfGC;9#PsZXw@zOzr0|dWGChS|z z3_mQIJzZ6S@(9Cre(#|!f16O8svH_{YhT8)2aqbW@Fj7D;AIHB4wRN2^Uk%vCB5ky z>b~;If77+UuDPFru!TF2`xkXl01LSr>!0i|GY#|Qewm9nNC;Lq7}ba_Uz63 zHM+ezBH=bM>2BQ9g`)V3V{G4lmu7y-TvW3^Y$(>a`}C#iX?2Q#x)Rf~$oi;Oofd^| zhL9J^Onj86CqUyCe?08yn)h3Gb?d>R4A>QB*YV4u{-zTF3PUN7A~mSeHreAmq>&7J==2DfnnrbAI6Ea4s%C=Cmc40OI{kbDVK}^ zy?{V1>fJR&Mj13^cuxNr+?5B(I9M{IWcwOIug6*&yI3fEs-#sry_@BfImqjp5c z8$zU!;f_|+i73t*Xuso3kUntnAf!YhkErB7^0@=OP_0;G7R>QzC-hmPC^{jzk&H}j zTB9iCH1vBeO~8@L?>7zQyacMx!EFl*s$>2vK(q0J;nApg54Nt$&(@|58+85RJ1Zp1 zVP``rqpNj9;h0(uYGH-FXeEsiodq{>$EwJ|OyJDPzcT@jI*RtUIA|VfwyqZ==m;-J z;QoOW)yuhx&un9oM%55-`zEo#Z2K0}Q`2ABTHq#J+!g~vE_AV?7Vq2rYof-ytMSJ@ z)p1H&Tm83sg*TdIyyV-tuT!F0fXnJ1H$@b2n||0!LEI+Mivr!5h*5Rew`bx44!#@k zEO-VXG4t@fj~j>VnQGIxGhN!(kaa{Fe_PZ6ne(@bw6)$c^2h~c zpBgL6BznCpr0>&(-f@YxU~5Uf9BfdVeZu8y`nJp12?zayS+&aah@{Rn3ihZ)E}42( zwJ@{dB~?Yh^#(i>N>Tt>5eDR5a@KV^A(>mjH7wcd1q{bv7Zw97_S}V(sum8hwGBuX zz@FIy!GYfi$hLfLy-vIb%;MK>QMwg_>noWdp;D$#mb3U7y#i;oXB&dPcYrtf{$y0F z`(NvwzyD6TanVT4Va`aWb3DqkMMNVky>U}iucq>1_`3=8J?y$g-Ro!CL7orgtG)Ov z)fxQlEDMB>+)5zBgEnPFCb6fO6Fp_(M3P(1=aws0ItI%??;~Els|7EEZvEqJZKm4O z�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

Aavs<^{Z{Nn;b41K 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 literal 157074 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əT;?99a?n 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 N#6@I;O9gd({vY{=Z|ML4 diff --git a/source/constructs/lib/serverless-image-handler.ts b/source/constructs/lib/serverless-image-handler.ts index e48ace63f..da60248fa 100644 --- a/source/constructs/lib/serverless-image-handler.ts +++ b/source/constructs/lib/serverless-image-handler.ts @@ -81,6 +81,21 @@ export class ServerlessImageHandler extends Construct { }); enableDefaultFallbackImageCondition.overrideLogicalId('EnableDefaultFallbackImageCondition'); + const isOptInRegion = new cdk.CfnCondition(this, 'IsOptInRegion', { + expression: cdk.Fn.conditionOr( + cdk.Fn.conditionEquals("af-south-1", cdk.Aws.REGION), + cdk.Fn.conditionEquals("ap-east-1", cdk.Aws.REGION), + cdk.Fn.conditionEquals("eu-south-1" , cdk.Aws.REGION), + cdk.Fn.conditionEquals("me-south-1" , cdk.Aws.REGION) + ) + }); + isOptInRegion.overrideLogicalId('IsOptInRegion'); + + const isNotOptInRegion = new cdk.CfnCondition(this, 'IsNotOptInRegion', { + expression: cdk.Fn.conditionNot(isOptInRegion) + }); + isNotOptInRegion.overrideLogicalId('IsNotOptInRegion') + // ImageHandlerFunctionRole const imageHandlerFunctionRole = new cdkIam.Role(this, 'ImageHandlerFunctionRole', { assumedBy: new cdkIam.ServicePrincipal('lambda.amazonaws.com'), @@ -122,7 +137,8 @@ export class ServerlessImageHandler extends Construct { }), new cdkIam.PolicyStatement({ actions: [ - 'rekognition:DetectFaces' + 'rekognition:DetectFaces', + 'rekognition:DetectModerationLabels' ], resources: [ '*' @@ -182,6 +198,12 @@ export class ServerlessImageHandler extends Construct { }); const cfnLambdaFunctionLogs = lambdaFunctionLogs.node.defaultChild as cdkLogs.CfnLogGroup; cfnLambdaFunctionLogs.retentionInDays = props.logRetentionPeriodParameter.valueAsNumber; + this.addCfnNagSuppressRules(cfnLambdaFunctionLogs, [ + { + "id": "W84", + "reason": "Used to store store function info" + } + ]); cfnLambdaFunctionLogs.overrideLogicalId('ImageHandlerLogGroup'); // CloudFrontToApiGatewayToLambda pattern @@ -193,6 +215,16 @@ export class ServerlessImageHandler extends Construct { // ApiLogs const cfnApiGatewayLogGroup = apiGatewayLogGroup.node.defaultChild as cdkLogs.CfnLogGroup; + this.addCfnNagSuppressRules(cfnApiGatewayLogGroup, [ + { + "id": "W84", + "reason": "Used to store store api log info, not using kms" + }, + { + "id": "W86", + "reason": "Log retention specified in CloudFromation parameters." + } + ]); cfnApiGatewayLogGroup.overrideLogicalId('ApiLogs'); // ImageHandlerApi @@ -242,6 +274,7 @@ export class ServerlessImageHandler extends Construct { const cloudFrontToApiGateway = cloudFrontApiGatewayLambda.node.findChild('CloudFrontToApiGateway'); const accessLogBucket = cloudFrontToApiGateway.node.findChild('CloudfrontLoggingBucket') as cdkS3.Bucket; const cfnAccessLogBucket = accessLogBucket.node.defaultChild as cdkS3.CfnBucket; + cfnAccessLogBucket.cfnOptions.condition = isNotOptInRegion; this.addCfnNagSuppressRules(cfnAccessLogBucket, [ { "id": "W35", @@ -252,8 +285,76 @@ export class ServerlessImageHandler extends Construct { // LogsBucketPolicy const accessLogBucketPolicy = accessLogBucket.node.findChild('Policy') as cdkS3.BucketPolicy; + const cfnAccessLogBucketPolicy = accessLogBucketPolicy.node.defaultChild as cdkS3.CfnBucketPolicy; + (accessLogBucketPolicy.node.defaultChild as cdkS3.CfnBucketPolicy).cfnOptions.condition = isNotOptInRegion; (accessLogBucketPolicy.node.defaultChild as cdkS3.CfnBucketPolicy).overrideLogicalId('LogsBucketPolicy'); + //OptInRegionLogBucket + const optInRegionAccessLogBucket = cdkS3.Bucket.fromBucketAttributes(this, 'CloudFrontLoggingBucket', { + bucketName: + cdk.Fn.getAtt( + cdk.Lazy.stringValue({ + produce(context) { + return cfLoggingBucket.logicalId} + }), + 'bucketName').toString(), + region: 'us-east-1' + }); + + //OptInRegionLogBucketPolicy + const optInRegionPolicyStatement = cfnAccessLogBucketPolicy.policyDocument.toJSON().Statement[0]; + optInRegionPolicyStatement.Resource = ""; + + //Choose Log Bucket + const cloudFrontLogsBucket = cdk.Fn.conditionIf(isOptInRegion.logicalId, optInRegionAccessLogBucket.bucketRegionalDomainName, accessLogBucket.bucketRegionalDomainName).toString(); + + + //ImagehandlerCachePolicy + const cfnCachePolicy = new cdkCloudFront.CfnCachePolicy( + this, + 'CachePolicy', + { + cachePolicyConfig: { + name: `${cdk.Aws.STACK_NAME}-${cdk.Aws.REGION}-ImageHandlerCachePolicy`, + defaultTtl: 86400, + minTtl: 1, + maxTtl: 31536000, + parametersInCacheKeyAndForwardedToOrigin: { + cookiesConfig: {cookieBehavior: "none"}, + enableAcceptEncodingGzip: true, + headersConfig: { + headerBehavior: "whitelist", + headers:['origin', 'accept'] + }, + queryStringsConfig: { + queryStringBehavior: "whitelist", + queryStrings: ["signature"] + }, + } + } + }); + cfnCachePolicy.overrideLogicalId("ImageHandlerCachePolicy"); + + //ImageHandlerOriginRequestPolicy + const cfnOriginRequestPolicy = new cdkCloudFront.CfnOriginRequestPolicy( + this, + "OriginRequestPolicy", + { + originRequestPolicyConfig: { + cookiesConfig: {cookieBehavior: "none"}, + headersConfig: { + headerBehavior: "whitelist", + headers: ['origin', 'accept'] + }, + name: `${cdk.Aws.STACK_NAME}-${cdk.Aws.REGION}-ImageHandlerOriginRequestPolicy`, + queryStringsConfig: { + queryStringBehavior: "whitelist", + queryStrings: ["signature"] + }, + } + }); + cfnOriginRequestPolicy.overrideLogicalId("ImageHandlerOriginRequestPolicy"); + // ImageHandlerDistribution const cfnCloudFrontDistribution = cloudFrontWebDistribution.node.defaultChild as cdkCloudFront.CfnDistribution; cfnCloudFrontDistribution.distributionConfig = { @@ -273,13 +374,10 @@ export class ServerlessImageHandler extends Construct { defaultCacheBehavior: { allowedMethods: [ 'GET', 'HEAD' ], targetOriginId: apiGateway.restApiId, - forwardedValues: { - queryString: true, - queryStringCacheKeys: [ 'signature' ], - headers: [ 'Origin', 'Accept' ], - cookies: { forward: 'none' } - }, - viewerProtocolPolicy: 'https-only' + viewerProtocolPolicy: 'https-only', + cachePolicyId: cfnCachePolicy.ref, + originRequestPolicyId: cfnOriginRequestPolicy.ref + }, customErrorResponses: [ { errorCode: 500, errorCachingMinTtl: 10 }, @@ -291,7 +389,7 @@ export class ServerlessImageHandler extends Construct { priceClass: 'PriceClass_All', logging: { includeCookies: false, - bucket: accessLogBucket.bucketRegionalDomainName, + bucket: cloudFrontLogsBucket, prefix: 'image-handler-cf-logs/' } }; @@ -378,7 +476,7 @@ export class ServerlessImageHandler extends Construct { httpVersion: 'http2', logging: { includeCookies: false, - bucket: accessLogBucket.bucketRegionalDomainName, + bucket: cloudFrontLogsBucket, prefix: 'demo-cf-logs/' } }; @@ -416,6 +514,10 @@ export class ServerlessImageHandler extends Construct { }), new cdkIam.PolicyStatement({ actions: [ + 's3:putBucketAcl', + 's3:putEncryptionConfiguration', + 's3:putBucketPolicy', + 's3:CreateBucket', 's3:GetObject', 's3:PutObject', 's3:ListBucket' @@ -461,6 +563,12 @@ export class ServerlessImageHandler extends Construct { }); const cfnCustomResourceLogGroup = customResourceLogGroup.node.defaultChild as cdkLogs.CfnLogGroup; cfnCustomResourceLogGroup.retentionInDays = props.logRetentionPeriodParameter.valueAsNumber; + this.addCfnNagSuppressRules(cfnCustomResourceLogGroup, [ + { + "id": "W84", + "reason": "Used to store store function info, no kms used" + } + ]); cfnCustomResourceLogGroup.overrideLogicalId('CustomResourceLogGroup'); // CustomResourceCopyS3 @@ -565,6 +673,19 @@ export class ServerlessImageHandler extends Construct { condition: enableDefaultFallbackImageCondition, dependencies: [ cfnCustomResourceRole, cfnCustomResourcePolicy ] }); + + const bucketSuffix = cdk.Aws.STACK_NAME + cdk.Aws.REGION + cdk.Aws.ACCOUNT_ID; + const cfLoggingBucket = this.createCustomResource('CustomCFLoggingBucket', customResourceFunction, { + properties: [ + { path: 'customAction', value: 'createCFLoggingBucket' }, + { path: 'stackName', value: cdk.Aws.STACK_NAME }, + { path: 'bucketSuffix', value: bucketSuffix }, + { path: 'policy', value: optInRegionPolicyStatement } + ], + condition: isOptInRegion, + dependencies: [ cfnCustomResourceRole, cfnCustomResourcePolicy ] + + }); } catch (error) { console.error(error); } diff --git a/source/constructs/package.json b/source/constructs/package.json index 70b5ec012..546f8e93d 100644 --- a/source/constructs/package.json +++ b/source/constructs/package.json @@ -1,7 +1,7 @@ { "name": "constructs", "description": "Serverless Image Handler Constructs", - "version": "5.1.0", + "version": "5.2.0", "license": "Apache-2.0", "bin": { "constructs": "bin/constructs.js" diff --git a/source/constructs/test/serverless-image-handler-test.json b/source/constructs/test/serverless-image-handler-test.json index 5bb6e86b2..50497f483 100644 --- a/source/constructs/test/serverless-image-handler-test.json +++ b/source/constructs/test/serverless-image-handler-test.json @@ -209,6 +209,49 @@ }, "Yes" ] + }, + "IsOptInRegion": { + "Fn::Or": [ + { + "Fn::Equals": [ + "af-south-1", + { + "Ref": "AWS::Region" + } + ] + }, + { + "Fn::Equals": [ + "ap-east-1", + { + "Ref": "AWS::Region" + } + ] + }, + { + "Fn::Equals": [ + "eu-south-1", + { + "Ref": "AWS::Region" + } + ] + }, + { + "Fn::Equals": [ + "me-south-1", + { + "Ref": "AWS::Region" + } + ] + } + ] + }, + "IsNotOptInRegion": { + "Fn::Not": [ + { + "Condition": "IsOptInRegion" + } + ] } }, "Resources": { @@ -308,7 +351,10 @@ } }, { - "Action": "rekognition:DetectFaces", + "Action": [ + "rekognition:DetectFaces", + "rekognition:DetectModerationLabels" + ], "Effect": "Allow", "Resource": "*" } @@ -478,12 +524,36 @@ } }, "UpdateReplacePolicy": "Retain", - "DeletionPolicy": "Retain" + "DeletionPolicy": "Retain", + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W84", + "reason": "Used to store store function info" + } + ] + } + } }, "ApiLogs": { "Type": "AWS::Logs::LogGroup", "UpdateReplacePolicy": "Retain", - "DeletionPolicy": "Retain" + "DeletionPolicy": "Retain", + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W84", + "reason": "Used to store store api log info, not using kms" + }, + { + "id": "W86", + "reason": "Log retention specified in CloudFromation parameters." + } + ] + } + } }, "ImageHandlerApi": { "Type": "AWS::ApiGateway::RestApi", @@ -673,7 +743,8 @@ } ] } - } + }, + "Condition": "IsNotOptInRegion" }, "LogsBucketPolicy": { "Type": "AWS::S3::BucketPolicy", @@ -711,7 +782,8 @@ ], "Version": "2012-10-17" } - } + }, + "Condition": "IsNotOptInRegion" }, "ImageHandlerDistribution": { "Type": "AWS::CloudFront::Distribution", @@ -745,18 +817,11 @@ "GET", "HEAD" ], - "ForwardedValues": { - "Cookies": { - "Forward": "none" - }, - "Headers": [ - "Origin", - "Accept" - ], - "QueryString": true, - "QueryStringCacheKeys": [ - "signature" - ] + "CachePolicyId": { + "Ref": "ImageHandlerCachePolicy" + }, + "OriginRequestPolicyId": { + "Ref": "ImageHandlerOriginRequestPolicy" }, "TargetOriginId": { "Ref": "ImageHandlerApi" @@ -767,9 +832,31 @@ "HttpVersion": "http2", "Logging": { "Bucket": { - "Fn::GetAtt": [ - "Logs", - "RegionalDomainName" + "Fn::If": [ + "IsOptInRegion", + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "CustomCFLoggingBucket", + "bucketName" + ] + }, + ".s3.us-east-1.", + { + "Ref": "AWS::URLSuffix" + } + ] + ] + }, + { + "Fn::GetAtt": [ + "Logs", + "RegionalDomainName" + ] + } ] }, "IncludeCookies": false, @@ -853,6 +940,88 @@ } } }, + "ImageHandlerCachePolicy": { + "Type": "AWS::CloudFront::CachePolicy", + "Properties": { + "CachePolicyConfig": { + "DefaultTTL": 86400, + "MaxTTL": 31536000, + "MinTTL": 1, + "Name": { + "Fn::Join": [ + "", + [ + { + "Ref": "AWS::StackName" + }, + "-", + { + "Ref": "AWS::Region" + }, + "-ImageHandlerCachePolicy" + ] + ] + }, + "ParametersInCacheKeyAndForwardedToOrigin": { + "CookiesConfig": { + "CookieBehavior": "none" + }, + "EnableAcceptEncodingGzip": true, + "HeadersConfig": { + "HeaderBehavior": "whitelist", + "Headers": [ + "origin", + "accept" + ] + }, + "QueryStringsConfig": { + "QueryStringBehavior": "whitelist", + "QueryStrings": [ + "signature" + ] + } + } + } + } + }, + "ImageHandlerOriginRequestPolicy": { + "Type": "AWS::CloudFront::OriginRequestPolicy", + "Properties": { + "OriginRequestPolicyConfig": { + "CookiesConfig": { + "CookieBehavior": "none" + }, + "HeadersConfig": { + "HeaderBehavior": "whitelist", + "Headers": [ + "origin", + "accept" + ] + }, + "Name": { + "Fn::Join": [ + "", + [ + { + "Ref": "AWS::StackName" + }, + "-", + { + "Ref": "AWS::Region" + }, + "-ImageHandlerOriginRequestPolicy" + ] + ] + }, + "QueryStringsConfig": { + "QueryStringBehavior": "whitelist", + "QueryStrings": [ + "signature" + ] + } + } + } + }, "DemoBucket": { "Type": "AWS::S3::Bucket", "Properties": { @@ -976,9 +1145,31 @@ "IPV6Enabled": true, "Logging": { "Bucket": { - "Fn::GetAtt": [ - "Logs", - "RegionalDomainName" + "Fn::If": [ + "IsOptInRegion", + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "CustomCFLoggingBucket", + "bucketName" + ] + }, + ".s3.us-east-1.", + { + "Ref": "AWS::URLSuffix" + } + ] + ] + }, + { + "Fn::GetAtt": [ + "Logs", + "RegionalDomainName" + ] + } ] }, "IncludeCookies": false, @@ -1102,6 +1293,10 @@ }, { "Action": [ + "s3:putBucketAcl", + "s3:putEncryptionConfiguration", + "s3:putBucketPolicy", + "s3:CreateBucket", "s3:GetObject", "s3:PutObject", "s3:ListBucket" @@ -1208,7 +1403,17 @@ } }, "UpdateReplacePolicy": "Retain", - "DeletionPolicy": "Retain" + "DeletionPolicy": "Retain", + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W84", + "reason": "Used to store store function info, no kms used" + } + ] + } + } }, "CustomResourceCopyS3": { "Type": "Custom::CustomResource", @@ -1462,6 +1667,54 @@ "CustomResourceRole" ], "Condition": "EnableDefaultFallbackImageCondition" + }, + "CustomCFLoggingBucket": { + "Type": "Custom::CustomResource", + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ + "CustomResourceFunction", + "Arn" + ] + }, + "customAction": "createCFLoggingBucket", + "stackName": { + "Ref": "AWS::StackName" + }, + "bucketSuffix": { + "Fn::Join": [ + "", + [ + { + "Ref": "AWS::StackName" + }, + { + "Ref": "AWS::Region" + }, + { + "Ref": "AWS::AccountId" + } + ] + ] + }, + "policy": { + "Action": "*", + "Condition": { + "Bool": { + "aws:SecureTransport": "false" + } + }, + "Effect": "Deny", + "Principal": "*", + "Resource": "", + "Sid": "HttpsOnly" + } + }, + "DependsOn": [ + "CustomResourcePolicy", + "CustomResourceRole" + ], + "Condition": "IsOptInRegion" } }, "Outputs": { diff --git a/source/custom-resource/index.js b/source/custom-resource/index.js index cd484b346..b3961fd08 100644 --- a/source/custom-resource/index.js +++ b/source/custom-resource/index.js @@ -4,8 +4,10 @@ const AWS = require('aws-sdk'); const axios = require('axios'); const uuid = require('uuid'); +const crypto = require('crypto'); const s3 = new AWS.S3(); +const s3USEast = new AWS.S3({apiVersion: '2006-03-01', region: 'us-east-1'}); const secretsManager = new AWS.SecretsManager(); const METRICS_ENDPOINT = 'https://metrics.awssolutionsbuilder.com/generic'; @@ -72,6 +74,15 @@ exports.handler = async (event, context) => { response.data = await checkFallbackImage(fallbackImageS3Bucket, fallbackImageS3Key); } break; + case 'createCFLoggingBucket': + if(['Create'].includes(event.RequestType)) { + const stackName = properties.stackName; + let bucketPolicyStatement = properties.policy; + const currentDate = new Date(); + const bucketSuffix = crypto.createHash('md5').update(properties.bucketSuffix + currentDate.getTime()).digest("hex"); + response.data = await createLoggingBucket(stackName, bucketSuffix, bucketPolicyStatement); + } + break; default: break; } @@ -455,4 +466,69 @@ async function checkFallbackImage(bucket, key) { async function sleep(retry) { const retrySeconds = Number(process.env.RETRY_SECONDS); return new Promise(resolve => setTimeout(resolve, retrySeconds * 1000 * retry)); +} + +/** + * Creates a bucket with settings for cloudfront logging. + * @param {String} stackName - Name of CloudFormation stack + * @param {JSON} bucketPolicyStatement - S3 bucket policy statement + * @return {Promise} - Bucket name of the created bucket + */ +async function createLoggingBucket(stackName, bucketSuffix, bucketPolicyStatement){ + const bucketParams = { + Bucket: `${stackName}-logs-${bucketSuffix.substring(0,8)}`.toLowerCase(), + ACL: "log-delivery-write" + }; + + //create bucket + try{ + await s3USEast.createBucket(bucketParams).promise() + console.log(`Successfully created bucket: ${bucketParams.Bucket}`); + } catch(error) { + console.error(`Could not create bucket: ${bucketParams.Bucket}`, error); + throw error; + } + + const encryptionParams = { + Bucket: bucketParams.Bucket, + ServerSideEncryptionConfiguration: { + Rules: [{ + ApplyServerSideEncryptionByDefault: { + SSEAlgorithm: 'AES256' + }, + },] + } + }; + + //Add encryption to bucket + console.log("Adding Encryption...") + try { + await s3USEast.putBucketEncryption(encryptionParams).promise(); + console.log(`Successfully enabled encryptoin on bucket: ${bucketParams.Bucket}`); + } catch(error) { + console.error(`Failed to add encryption to bucket: ${bucketParams.Bucket}`, error); + throw error; + } + + //Update resource attribute of policy statement + bucketPolicyStatement.Resource = `arn:aws:s3:::${bucketParams.Bucket}/*` + bucketPolicy = {"Version": "2012-10-17", "Statement":[ bucketPolicyStatement ]}; + + //Define policy parameters + const policyParams = { + Bucket: bucketParams.Bucket, + Policy: JSON.stringify(bucketPolicy) + }; + + //Add Policy to bucket + console.log("Adding policy...") + try { + await s3USEast.putBucketPolicy(policyParams).promise(); + console.log(`Successfully added policy added to bucket: ${bucketParams.Bucket}`); + } catch(error) { + console.error(`Failed to add policy to bucket ${bucketParams.Bucket}`, error); + throw error; + } + + return {bucketName: bucketParams.Bucket}; } \ No newline at end of file diff --git a/source/custom-resource/package.json b/source/custom-resource/package.json index 7eba78e65..599d9b010 100644 --- a/source/custom-resource/package.json +++ b/source/custom-resource/package.json @@ -5,14 +5,14 @@ "author": { "name": "aws-solutions-builder" }, - "version": "5.1.0", + "version": "5.2.0", "private": true, "dependencies": { "axios": "^0.21.1", "uuid": "^8.3.0" }, "devDependencies": { - "aws-sdk": "2.712.0", + "aws-sdk": "2.771.0", "axios-mock-adapter": "^1.18.2", "jest": "^26.4.2" }, diff --git a/source/custom-resource/test/index.spec.js b/source/custom-resource/test/index.spec.js index 6517c67cb..cf099e9ec 100644 --- a/source/custom-resource/test/index.spec.js +++ b/source/custom-resource/test/index.spec.js @@ -40,7 +40,11 @@ jest.mock('aws-sdk', () => { copyObject: mockS3, putObject: mockS3, headBucket: mockS3, - headObject: mockS3 + headObject: mockS3, + createBucket: mockS3, + putBucketEncryption: mockS3, + putBucketPolicy: mockS3, + waitFor: mockS3 })), SecretsManager: jest.fn(() => ({ getSecretValue: mockSecretsManager @@ -723,4 +727,128 @@ describe('index', function() { }); }); }); + + describe('CreateCustomLoggingBucket', function() { + const event = { + "RequestType": "Create", + "ResponseURL": "/cfn-response", + "ResourceProperties": { + "customAction": "createCFLoggingBucket", + "stackName": "teststack", + "bucketSuffix": `teststacktest-region01234567898`, + "policy": { + "Condition": { + "Bool": { + "aws:SecureTransport": "false" + } + }, + "Action": "*", + "Resource": "", + "Effect": "Deny", + "Principal": "*", + "Sid": "HttpsOnly" + } + } + }; + + beforeEach(() => { + mockS3.mockReset(); + }); + + it("Should return success and bucket name", async function() { + + mockS3.mockImplementation(() => { + return { + promise() { + + return Promise.resolve(); + } + }; + }); + const result = await index.handler(event, context); + expect(result).toMatchObject({ + status: 'SUCCESS', + data: {bucketName: expect.stringMatching(/^teststack-logs-[a-z0-9]{8}/)} + }); + }); + + it("Should return failure when there is an error creating the bucket", async function() { + mockS3.mockImplementation(() => { + return { + promise() { + return Promise.reject({message: "createBucket failed"}); + } + }; + }); + const result = await index.handler(event, context); + expect(result).toEqual({ + status: 'FAILED', + data: { + Error: { + code: "CustomResourceError", + message: "createBucket failed", + } + } + }); + }); + + it("Should return failure when there is an error enabling encryption on the created bucket", async function() { + mockS3.mockImplementationOnce(() => { + return { + promise() { + return Promise.resolve(); + } + }; + }).mockImplementationOnce(() => { + return { + promise() { + return Promise.reject({message: "putBucketEncryption failed"}); + } + }; + }); + + const result = await index.handler(event, context); + expect(result).toEqual({ + status: 'FAILED', + data: { + Error: { + code: "CustomResourceError", + message: "putBucketEncryption failed", + } + } + }); + }); + it("Should return failure when there is an error applying a policy to the created bucket", async function() { + mockS3.mockImplementationOnce(() => { + return { + promise() { + return Promise.resolve(); + } + }; + }).mockImplementationOnce(() => { + return { + promise() { + return Promise.resolve(); + } + }; + }).mockImplementationOnce(() => { + return { + promise() { + return Promise.reject({message: "putBucketPolicy failed"}); + } + }; + }); + + const result = await index.handler(event, context); + expect(result).toEqual({ + status: 'FAILED', + data: { + Error: { + code: "CustomResourceError", + message: "putBucketPolicy failed", + } + } + }); + }); + }); }); \ No newline at end of file diff --git a/source/image-handler/image-handler.js b/source/image-handler/image-handler.js index e71e2598e..62e1f6b17 100644 --- a/source/image-handler/image-handler.js +++ b/source/image-handler/image-handler.js @@ -67,8 +67,8 @@ class ImageHandler { edits.resize = {}; edits.resize.fit = 'inside'; } else { - if (edits.resize.width) edits.resize.width = Number(edits.resize.width); - if (edits.resize.height) edits.resize.height = Number(edits.resize.height); + if (edits.resize.width) edits.resize.width = Math.round(Number(edits.resize.width)); + if (edits.resize.height) edits.resize.height = Math.round(Number(edits.resize.height)); } // Apply the image edits @@ -128,10 +128,9 @@ class ImageHandler { image.composite(params); } else if (editKey === 'smartCrop') { const options = value; - const metadata = await image.metadata(); - const imageBuffer = await image.toBuffer(); - const boundingBox = await this.getBoundingBox(imageBuffer, options.faceIndex); - const cropArea = this.getCropArea(boundingBox, options, metadata); + const imageBuffer = await image.toBuffer({resolveWithObject: true}); + const boundingBox = await this.getBoundingBox(imageBuffer.data, options.faceIndex); + const cropArea = this.getCropArea(boundingBox, options, imageBuffer.info); try { image.extract(cropArea); } catch (err) { @@ -141,6 +140,45 @@ class ImageHandler { message: 'The padding value you provided exceeds the boundaries of the original image. Please try choosing a smaller value or applying padding via Sharp for greater specificity.' }; } + } else if (editKey === 'roundCrop') { + const options = value; + const imageBuffer = await image.toBuffer({resolveWithObject: true}); + let width = imageBuffer.info.width; + let height = imageBuffer.info.height; + + //check for parameters, if not provided, set to defaults + const radiusX = options.rx && options.rx >= 0? options.rx : Math.min(width, height) / 2; + const radiusY = options.ry && options.ry >= 0? options.ry : Math.min(width, height) / 2; + const topOffset = options.top && options.top >= 0 ? options.top : height / 2; + const leftOffset = options.left && options.left >= 0 ? options.left : width / 2; + + if(options) + { + const ellipse = Buffer.from(` `); + const params = [{ input: ellipse, blend: 'dest-in' }]; + let data = await image.composite(params).toBuffer(); + image = sharp(data).withMetadata().trim(); + } + + } else if (editKey === 'contentModeration') { + const options = value; + const imageBuffer = await image.toBuffer({resolveWithObject: true}); + const inappropriateContent = await this.detectInappropriateContent(imageBuffer.data, options); + const blur = options.hasOwnProperty('blur') ? Math.ceil(Number(options.blur)) : 50; + + if(options && (blur >= 0.3 && blur <= 1000)) { + if(options.moderationLabels){ + for(let item of inappropriateContent.ModerationLabels) { + if (options.moderationLabels.includes(item.Name)){ + image.blur(blur); + break; + } + } + } else if(inappropriateContent.ModerationLabels.length) { + image.blur(blur); + } + } + } else { image[editKey](value); } @@ -238,7 +276,28 @@ class ImageHandler { const faceIdx = (faceIndex !== undefined) ? faceIndex : 0; try { const response = await this.rekognition.detectFaces(params).promise(); - return response.FaceDetails[faceIdx].BoundingBox; + if(response.FaceDetails.length <= 0) { + return {Height: 1, Left: 0, Top: 0, Width: 1}; + } + let boundingBox = {}; + + //handle bounds > 1 and < 0 + for (let bound in response.FaceDetails[faceIdx].BoundingBox) + { + if (response.FaceDetails[faceIdx].BoundingBox[bound] < 0 ) boundingBox[bound] = 0; + else if (response.FaceDetails[faceIdx].BoundingBox[bound] > 1) boundingBox[bound] = 1; + else boundingBox[bound] = response.FaceDetails[faceIdx].BoundingBox[bound]; + } + + //handle bounds greater than the size of the image + if (boundingBox.Left + boundingBox.Width > 1) { + boundingBox.Width = 1 - boundingBox.Left; + } + if (boundingBox.Top + boundingBox.Height > 1) { + boundingBox.Height = 1 - boundingBox.Top; + } + + return boundingBox; } catch (err) { console.error(err); if (err.message === "Cannot read property 'BoundingBox' of undefined") { @@ -249,13 +308,38 @@ class ImageHandler { }; } else { throw { - status: 500, + status: err.statusCode ? err.statusCode : 500, code: err.code, message: err.message }; } } } + + /** + * Detects inappropriate content in an image. + * @param {Sharp} imageBuffer - The original image. + * @param {Object} options - The options to pass to the dectectModerationLables Rekognition function + */ + async detectInappropriateContent(imageBuffer, options) { + + const params = { + Image: {Bytes: imageBuffer}, + MinConfidence: options.minConfidence ? parseFloat(options.minConfidence) : 75 + } + + try { + const response = await this.rekognition.detectModerationLabels(params).promise(); + return response; + } catch(err) { + console.error(err) + throw { + status: err.statusCode ? err.statusCode : 500, + code: err.code, + message: err.message + } + } + } } // Exports diff --git a/source/image-handler/image-request.js b/source/image-handler/image-request.js index 8b250fc52..37b318c16 100644 --- a/source/image-handler/image-request.js +++ b/source/image-handler/image-request.js @@ -79,13 +79,15 @@ class ImageRequest { * 2) If headers contain "Accept: image/webp", the output format is webp. * 3) Use the default image format for the rest of cases. */ - let outputFormat = this.getOutputFormat(event); - if (this.edits && this.edits.toFormat) { - this.outputFormat = this.edits.toFormat; - } else if (outputFormat) { - this.outputFormat = outputFormat; + if (this.ContentType !== 'image/svg+xml' || this.edits.toFormat || this.outputFormat) { + let outputFormat = this.getOutputFormat(event); + if (this.edits && this.edits.toFormat) { + this.outputFormat = this.edits.toFormat; + } else if (outputFormat) { + this.outputFormat = outputFormat; + } } - + // Fix quality for Thumbor and Custom request type if outputFormat is different from quality type. if (this.outputFormat) { const requestType = ['Custom', 'Thumbor']; @@ -124,7 +126,13 @@ class ImageRequest { const originalImage = await this.s3.getObject(imageLocation).promise(); if (originalImage.ContentType) { - this.ContentType = originalImage.ContentType; + //If using default s3 ContentType infer from hex headers + if(originalImage.ContentType === 'binary/octet-stream') { + const imageBuffer = Buffer.from(originalImage.Body); + this.ContentType = this.inferImageType(imageBuffer); + } else { + this.ContentType = originalImage.ContentType; + } } else { this.ContentType = "image"; } @@ -142,7 +150,6 @@ class ImageRequest { } else { this.CacheControl = "max-age=31536000,public"; } - return originalImage.Body; } catch(err) { throw { @@ -271,7 +278,7 @@ class ImageRequest { parseRequestType(event) { const path = event["path"]; const matchDefault = new RegExp(/^(\/?)([0-9a-zA-Z+\/]{4})*(([0-9a-zA-Z+\/]{2}==)|([0-9a-zA-Z+\/]{3}=))?$/); - const matchThumbor = new RegExp(/^(\/?)((fit-in)?|(filters:.+\(.?\))?|(unsafe)?).*(.+jpg|.+png|.+webp|.+tiff|.+jpeg|.+svg)$/i); + const matchThumbor = new RegExp(/^(\/?)((fit-in)?|(filters:.+\(.?\))?|(unsafe)?)(((.(?!(\.[^.\\\/]+$)))*$)|.*(\.jpg$|.\.png$|\.webp$|\.tiff$|\.jpeg$|\.svg$))/i); const matchCustom = new RegExp(/(\/?)(.*)(jpg|png|webp|tiff|jpeg|svg)/i); const definedEnvironmentVariables = ( (process.env.REWRITE_MATCH_PATTERN !== "") && @@ -280,7 +287,16 @@ class ImageRequest { (process.env.REWRITE_SUBSTITUTION !== undefined) ); - if (matchDefault.test(path)) { // use sharp + //Check if path is base 64 encoded + let isBase64Encoded = true; + try { + this.decodeRequest(event); + } catch(error) { + console.error(error); + isBase64Encoded = false; + } + + if (matchDefault.test(path) && isBase64Encoded) { // use sharp return 'Default'; } else if (matchCustom.test(path) && definedEnvironmentVariables) { // use rewrite function then thumbor mappings return 'Custom'; @@ -376,6 +392,28 @@ class ImageRequest { return null; } + + /** + * Return the output format depending on first four hex values of an image file. + * @param {Buffer} imageBuffer - Image buffer. + */ + inferImageType(imageBuffer) { + switch(imageBuffer.toString('hex').substring(0,8).toUpperCase()) { + case '89504E47': return 'image/png'; + case 'FFD8FFDB': return 'image/jpeg'; + case 'FFD8FFE0': return 'image/jpeg'; + case 'FFD8FFEE': return 'image/jpeg'; + case 'FFD8FFE1': return 'image/jpeg'; + case '52494646': return 'image/webp'; + case '49492A00': return 'image/tiff'; + case '4D4D002A': return 'image/tiff'; + default: throw { + status: 500, + code: 'RequestTypeError', + message: 'The file does not have an extension and the file type could not be inferred. Please ensure that your original image is of a supported file type (jpg, png, tiff, webp, svg). Refer to the documentation for additional guidance on forming image requests.' + }; + } +} } // Exports diff --git a/source/image-handler/package.json b/source/image-handler/package.json index 49ced547b..1b002e371 100644 --- a/source/image-handler/package.json +++ b/source/image-handler/package.json @@ -5,20 +5,16 @@ "author": { "name": "aws-solutions-builder" }, - "version": "5.1.0", + "version": "5.2.0", "private": true, "dependencies": { - "sharp": "^0.26.1", - "color": "3.1.2", - "color-name": "1.1.4" + "color": "3.1.3", + "color-name": "1.1.4", + "sharp": "^0.27.0" }, "devDependencies": { - "aws-sdk": "2.712.0", - "aws-sdk-mock": "^5.1.0", - "jest": "^26.4.2", - "mocha": "^8.1.3", - "sinon": "^9.0.3", - "nyc": "^15.1.0" + "aws-sdk": "2.771.0", + "jest": "^26.4.2" }, "scripts": { "pretest": "npm run build:init && npm install", diff --git a/source/image-handler/test/image-handler.spec.js b/source/image-handler/test/image-handler.spec.js index 08df73c90..45d73fbe4 100644 --- a/source/image-handler/test/image-handler.spec.js +++ b/source/image-handler/test/image-handler.spec.js @@ -5,7 +5,8 @@ const fs = require('fs'); const mockAws = { getObject: jest.fn(), - detectFaces: jest.fn() + detectFaces: jest.fn(), + detectModerationLabels: jest.fn() }; jest.mock('aws-sdk', () => { return { @@ -13,7 +14,8 @@ jest.mock('aws-sdk', () => { getObject: mockAws.getObject })), Rekognition: jest.fn(() => ({ - detectFaces: mockAws.detectFaces + detectFaces: mockAws.detectFaces, + detectModerationLabels: mockAws.detectModerationLabels })) }; }); @@ -522,8 +524,8 @@ describe('applyEdits()', function() { const image = sharp(originalImage, { failOnError: false }).withMetadata(); const edits = { resize: { - width: '100', - height: '100' + width: '99.1', + height: '99.9' } } // Act @@ -531,10 +533,247 @@ describe('applyEdits()', function() { const result = await imageHandler.applyEdits(image, edits); // Assert const resultBuffer = await result.toBuffer(); - const convertedImage = await sharp(originalImage, { failOnError: false }).withMetadata().resize({ width: 100, height: 100 }).toBuffer(); + const convertedImage = await sharp(originalImage, { failOnError: false }).withMetadata().resize({ width: 99, height: 100 }).toBuffer(); expect(resultBuffer).toEqual(convertedImage); }); }); + describe('012/roundCrop/noOptions', function() { + it('Should pass if roundCrop keyName is passed with no additional options', async function() { + // Arrange + const originalImage = Buffer.from('/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAAEAAQDAREAAhEBAxEB/8QAFAABAAAAAAAAAAAAAAAAAAAACv/EABQQAQAAAAAAAAAAAAAAAAAAAAD/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8AfwD/2Q==', 'base64'); + const image = sharp(originalImage, { failOnError: false }).withMetadata(); + const metadata = image.metadata(); + + const edits = { + roundCrop: true, + + } + + // Act + const imageHandler = new ImageHandler(s3, rekognition); + const result = await imageHandler.applyEdits(image, edits); + + // Assert + const expectedResult = {width: metadata.width / 2, height: metadata.height / 2} + expect(mockAws.getObject).toHaveBeenCalledWith({ Bucket: 'aaa', Key: 'bbb' }); + expect(result.options.input).not.toEqual(expectedResult); + }); + }); + describe('013/roundCrop/withOptions', function() { + it('Should pass if roundCrop keyName is passed with additional options', async function() { + // Arrange + const originalImage = Buffer.from('/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAAEAAQDAREAAhEBAxEB/8QAFAABAAAAAAAAAAAAAAAAAAAACv/EABQQAQAAAAAAAAAAAAAAAAAAAAD/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8AfwD/2Q==', 'base64'); + const image = sharp(originalImage, { failOnError: false }).withMetadata(); + const metadata = image.metadata(); + + const edits = { + roundCrop: { + top: 100, + left: 100, + rx: 100, + ry: 100, + }, + + } + + // Act + const imageHandler = new ImageHandler(s3, rekognition); + const result = await imageHandler.applyEdits(image, edits); + + // Assert + const expectedResult = {width: metadata.width / 2, height: metadata.height / 2} + expect(mockAws.getObject).toHaveBeenCalledWith({ Bucket: 'aaa', Key: 'bbb' }); + expect(result.options.input).not.toEqual(expectedResult); + }); + }); + describe('014/contentModeration', function() { + it('Should pass and blur image with minConfidence provided', async function() { + // Arrange + const originalImage = Buffer.from('iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQDwAEhQGAhKmMIQAAAABJRU5ErkJggg==', 'base64'); + const image = sharp(originalImage, { failOnError: false }).withMetadata(); + const buffer = await image.toBuffer(); + const edits = { + contentModeration: { + minConfidence: 75 + } + } + // Mock + mockAws.detectModerationLabels.mockImplementationOnce(() => { + return { + promise() { + return Promise.resolve({ + ModerationLabels: [ + { + Confidence: 99.76720428466, + Name: 'Smoking', + ParentName: 'Tobacco' + }, + { Confidence: 99.76720428466, Name: 'Tobacco', ParentName: '' } + ], + ModerationModelVersion: '4.0' + }); + } + }; + }); + // Act + const imageHandler = new ImageHandler(s3, rekognition); + const result = await imageHandler.applyEdits(image, edits); + const expected = image.blur(50); + // Assert + expect(mockAws.detectFaces).toHaveBeenCalledWith({ Image: { Bytes: buffer }}); + expect(result.options.input).not.toEqual(originalImage); + expect(result).toEqual(expected); + }); + it("should pass and blur to specified amount if blur option is provided", async function() { + // Arrange + const originalImage = Buffer.from('iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQDwAEhQGAhKmMIQAAAABJRU5ErkJggg==', 'base64'); + const image = sharp(originalImage, { failOnError: false }).withMetadata(); + const buffer = await image.toBuffer(); + const edits = { + contentModeration: { + minConfidence: 75, + blur: 100 + } + } + // Mock + mockAws.detectModerationLabels.mockImplementationOnce(() => { + return { + promise() { + return Promise.resolve({ + ModerationLabels: [ + { + Confidence: 99.76720428466, + Name: 'Smoking', + ParentName: 'Tobacco' + }, + { Confidence: 99.76720428466, Name: 'Tobacco', ParentName: '' } + ], + ModerationModelVersion: '4.0' + }); + } + }; + }); + // Act + const imageHandler = new ImageHandler(s3, rekognition); + const result = await imageHandler.applyEdits(image, edits); + const expected = image.blur(100); + // Assert + expect(mockAws.detectFaces).toHaveBeenCalledWith({ Image: { Bytes: buffer }}); + expect(result.options.input).not.toEqual(originalImage); + expect(result).toEqual(expected); + }); + it("should pass and blur if content moderation label matches specied moderartion label", async function() { + // Arrange + const originalImage = Buffer.from('iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQDwAEhQGAhKmMIQAAAABJRU5ErkJggg==', 'base64'); + const image = sharp(originalImage, { failOnError: false }).withMetadata(); + const buffer = await image.toBuffer(); + const edits = { + contentModeration: { + moderationLabels: ["Smoking"] + } + } + // Mock + mockAws.detectModerationLabels.mockImplementationOnce(() => { + return { + promise() { + return Promise.resolve({ + ModerationLabels: [ + { + Confidence: 99.76720428466, + Name: 'Smoking', + ParentName: 'Tobacco' + }, + { Confidence: 99.76720428466, Name: 'Tobacco', ParentName: '' } + ], + ModerationModelVersion: '4.0' + }); + } + }; + }); + // Act + const imageHandler = new ImageHandler(s3, rekognition); + const result = await imageHandler.applyEdits(image, edits); + const expected = image.blur(50); + // Assert + expect(mockAws.detectFaces).toHaveBeenCalledWith({ Image: { Bytes: buffer }}); + expect(result.options.input).not.toEqual(originalImage); + expect(result).toEqual(expected); + }); + it("should not blur if provided moderationLabels not found", async function() { + // Arrange + const originalImage = Buffer.from('iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQDwAEhQGAhKmMIQAAAABJRU5ErkJggg==', 'base64'); + const image = sharp(originalImage, { failOnError: false }).withMetadata(); + const buffer = await image.toBuffer(); + const edits = { + contentModeration: { + minConfidence: 75, + blur: 100, + moderationLabels: ['Alcohol'] + } + } + // Mock + mockAws.detectModerationLabels.mockImplementationOnce(() => { + return { + promise() { + return Promise.resolve({ + ModerationLabels: [ + { + Confidence: 99.76720428466, + Name: 'Smoking', + ParentName: 'Tobacco' + }, + { Confidence: 99.76720428466, Name: 'Tobacco', ParentName: '' } + ], + ModerationModelVersion: '4.0' + }); + } + }; + }); + // Act + const imageHandler = new ImageHandler(s3, rekognition); + const result = await imageHandler.applyEdits(image, edits); + // Assert + expect(mockAws.detectFaces).toHaveBeenCalledWith({ Image: { Bytes: buffer }}); + expect(result).toEqual(image); + }); + it("should fail if rekognition returns an error", async function() { + // Arrange + const originalImage = Buffer.from('iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQDwAEhQGAhKmMIQAAAABJRU5ErkJggg==', 'base64'); + const image = sharp(originalImage, { failOnError: false }).withMetadata(); + const buffer = await image.toBuffer(); + const edits = { + contentModeration: { + minConfidence: 75, + blur: 100 + } + } + // Mock + mockAws.detectModerationLabels.mockImplementationOnce(() => { + return { + promise() { + return Promise.reject({ + status: 500, + code: 'InternalServerError', + message: 'Amazon Rekognition experienced a service issue. Try your call again.' + }); + } + }; + }); + // Act + const imageHandler = new ImageHandler(s3, rekognition); + try { + const result = await imageHandler.applyEdits(image, edits); + } catch(error) { + // Assert + expect(mockAws.detectFaces).toHaveBeenCalledWith({ Image: { Bytes: buffer }}); + expect(error).toEqual({ + status: 500, + code: 'InternalServerError', + message: 'Amazon Rekognition experienced a service issue. Try your call again.' + }); + } + }); + }); }); // ---------------------------------------------------------------------------- @@ -696,4 +935,75 @@ describe('getBoundingBox()', function() { } }); }); + describe('003/noDetectedFaces', function () { + it('Should pass if no faces are detected', async function () { + //Arrange + const currentImage = Buffer.from('TestImageData'); + const faceIndex = 0; + + // Mock + mockAws.detectFaces.mockImplementationOnce(() => { + return { + promise() { + return Promise.resolve({ + FaceDetails: [] + }); + } + }; + }); + + //Act + const imageHandler = new ImageHandler(s3, rekognition); + const result = await imageHandler.getBoundingBox(currentImage, faceIndex); + + // Assert + const expectedResult = { + Height: 1, + Left: 0, + Top: 0, + Width: 1 + }; + expect(mockAws.detectFaces).toHaveBeenCalledWith({ Image: { Bytes: currentImage }}); + expect(result).toEqual(expectedResult); + }); + }); + describe('004/boundsGreaterThanImageDimensions', function () { + it('Should pass if bounds detected go beyond the image dimensions', async function () { + //Arrange + const currentImage = Buffer.from('TestImageData'); + const faceIndex = 0; + + // Mock + mockAws.detectFaces.mockImplementationOnce(() => { + return { + promise() { + return Promise.resolve({ + FaceDetails: [{ + BoundingBox: { + Height: 1, + Left: 0.50, + Top: 0.30, + Width: 0.65 + } + }] + }); + } + }; + }); + + //Act + const imageHandler = new ImageHandler(s3, rekognition); + const result = await imageHandler.getBoundingBox(currentImage, faceIndex); + + // Assert + const expectedResult = { + Height: 0.70, + Left: 0.50, + Top: 0.30, + Width: 0.50 + }; + expect(mockAws.detectFaces).toHaveBeenCalledWith({ Image: { Bytes: currentImage }}); + expect(result).toEqual(expectedResult); + }); + }); }); \ No newline at end of file diff --git a/source/image-handler/test/image-request.spec.js b/source/image-handler/test/image-request.spec.js index 77ea12e40..2f706514c 100644 --- a/source/image-handler/test/image-request.spec.js +++ b/source/image-handler/test/image-request.spec.js @@ -608,6 +608,54 @@ describe('getOriginalImage()', function() { } }); }); + describe('004/noExtension', function() { + const testFiles = [[0x89,0x50,0x4E,0x47],[0xFF,0xD8,0xFF,0xDB],[0xFF,0xD8,0xFF,0xE0],[0xFF,0xD8,0xFF,0xEE],[0xFF,0xD8,0xFF,0xE1],[0x52,0x49,0x46,0x46],[0x49,0x49,0x2A,0x00],[0x4D,0x4D,0x00,0x2A]]; + const expectFileType = ["image/png", "image/jpeg", "image/jpeg", "image/jpeg", "image/jpeg", "image/webp", "image/tiff", "image/tiff"]; + testFiles.forEach(function (test, index) {it('Should pass and infer content type if there is no extension, had default s3 content type and it has a vlid key and a valid bucket', async function() { + //Mock + mockAws.getObject.mockImplementationOnce(() => { + return { + promise() { + return Promise.resolve({ + ContentType: 'binary/octet-stream', + Body: Buffer.from(new Uint8Array(test)) + }); + } + }; + }) + + // Act + const imageRequest = new ImageRequest(s3, secretsManager); + const result = await imageRequest.getOriginalImage('validBucket', 'validKey'); + // Assert + expect(mockAws.getObject).toHaveBeenCalledWith({ Bucket: 'validBucket', Key: 'validKey' }); + expect(result).toEqual(Buffer.from(new Uint8Array(test))); + expect(imageRequest.ContentType).toEqual(expectFileType[index]); + });}) + it('Should fail to infer content type if there is no extension and file header is not recognized', async function() { + //Mock + mockAws.getObject.mockImplementationOnce(() => { + return { + promise() { + return Promise.resolve({ + ContentType: 'binary/octet-stream', + Body: Buffer.from(new Uint8Array(test)) + }); + } + }; + }) + + //Act + const imageRequest = new ImageRequest(s3, secretsManager); + try { + const result = await imageRequest.getOriginalImage('validBucket', 'validKey'); + } catch(error){ + //Assert + expect(mockAws.getObject).toHaveBeenCalledWith({ Bucket: 'validBucket', Key: 'validKey' }); + expect(error.status).toEqual(500); + } + }); + }); }); // ---------------------------------------------------------------------------- @@ -966,7 +1014,7 @@ describe('parseRequestType()', function() { it('Should throw an error if the method cannot determine the request type based on the three groups given', function() { // Arrange const event = { - path : '12x12e24d234r2ewxsad123d34r' + path : '12x12e24d234r2ewxsad123d34r.bmp' } process.env = {}; // Act